A Flexible MATLAB/Simulink Simulator for Robotic Floating-base Systems in Contact with the Ground: Theoretical Background and Implementation Details
Abstract
This paper presents an open-source MATLAB/Simulink physics simulator for rigid-body articulated systems, including manipulators and floating-base robots. Thanks to MATLAB/Simulink features like MATLAB system classes and Simulink Function blocks, the presented simulator combines a programmatic and block-based approach, resulting in a flexible design in the sense that different parts, including its physics engine, robot-ground interaction model, and state evolution algorithm are simply accessible and editable. Moreover, through the use of Simulink dynamic mask blocks, the proposed simulator supports robot models integrating open-chain and closed-chain kinematics with any desired number of links interacting with the ground. This simulator can also integrate second-order actuator dynamics. Furthermore, the simulator benefits from a one-line installation and an easy-to-use Simulink interface.
References
- 1. A. Afzal, D. S. Katz, C. L. Goues and C. S. Timperley, A study on the challenges of using robotics simulators for testing, preprint (2020), arXiv:2004.07368. Google Scholar
- 2. , A review of physics simulators for robotic applications, IEEE Access 9 (2021) 51416–51431. Crossref, Google Scholar
- 3. , Validating robotics simulators on real-world impacts, IEEE Rob. Autom. Lett. 7 (2022) 6471–6478. Crossref, Web of Science, Google Scholar
- 4. , iCub whole-body control through force regulation on rigid non-coplanar contacts, Front. Rob. AI 2 (2015) 6. Google Scholar
- 5. , A new perspective on constrained motion, Proc. R. Soc. London A: Math. Phys. Sci. 439 (1906) (1992) 407–410. Google Scholar
- 6. , Effects of the weighting matrix on dynamic manipulability of robots, Auton. Rob. 43(7) (2019) 1867–1879. Crossref, Web of Science, Google Scholar
- 7. , A generic synchronous dataflow architecture to rapidly prototype and deploy robot controllers, Int. J. Adv. Rob. Syst. 17(2) (2020), https://doi.org/10.1177/1729881420921625. Web of Science, Google Scholar
- 8. , A flexible matlab/simulink simulator for robotic floating-base systems in contact with the ground, in 2022 Sixth IEEE Int. Conf. Robotic Computing (IRC), 2022, pp. 53–57. Crossref, Google Scholar
- 9. S. Traversaro, Modelling, estimation and identification of humanoid robots dynamics, PhD thesis, University of Genoa (2017). Google Scholar
- 10. , Numerical optimization, 2nd edn. (Springer, 2006). Google Scholar
- 11. , An implicit time-stepping scheme for rigid body dynamics with coulomb friction, in Proc. 2000 ICRA, Millennium Conf., IEEE Int. Conf. Robotics and Automation, Symp. Proc. (Cat. No. 00CH37065), 2000, pp. 162–169. Crossref, Google Scholar
- 12. , Rigid body collisions of planar kinematic chains with multiple contact points, Int. J. Rob. Res. 13(1) (1994) 82–92. Crossref, Web of Science, Google Scholar
- 13. , Compliant contact models for rigid body collisions, in Proc. Int. Conf. Robotics and Automation, 1997, pp. 1382–1387. Crossref, Google Scholar
- 14. , Stability analysis and design of momentum-based controllers for humanoid robots, in 2016 IEEE/RSJ Int. Conf. Intelligent Robots and Systems (IROS), 2016, pp. 680–687. Crossref, Google Scholar
- 15. MathWorks, MATLAB system block, 2022, https://it.mathworks.com/help/simulink/ug/what-is-matlab-system-block.html. Google Scholar
- 16. , OSQP: An operator splitting solver for quadratic programs, Math. Program. Comput. 12(4) (2020) 637–672. Crossref, Web of Science, Google Scholar
- 17. MathWorks, Using buses with MATLAB system blocks, 2022, https://www.mathworks.com/help/simulink/slref/using-buses-with-matlab-system-blocks.html. Google Scholar
- 18. MathWorks, Simulink.bus: Specify properties of buses, 2022, https://www.mathworks.com/help/simulink/slref/simulink.bus.html. Google Scholar
- 19. MathWorks, Specify bus properties with Simulink.bus object data types, 2022, https: //www.mathworks.com/help/simulink/ug/when-to-use-bus-objects.html. Google Scholar
- 20. MathWorks, Dynamic masked subsystem, 2022, https://www.mathworks.com/help/simulink/ug/create-dynamic-masked-subsystems.html. Google Scholar