A Flexible MATLAB/Simulink Simulator for Robotic Floating-base Systems in Contact with the Ground: Theoretical background and Implementation Details
Nuno Guedelha, Venus Pasandi, Giuseppe L'Erario, Silvio Traversaro, Daniele Pucci
TL;DR
Addressing the need for an accessible, flexible MATLAB/Simulink platform for simulating floating-base robots in contact with the environment, the paper presents an open-source library that combines object-oriented MATLAB classes with block-based Simulink components. It builds on iDynTree for multibody dynamics and Whole-Body Toolbox to expose dynamics via Simulink blocks, while implementing a Gauss principle-based rigid contact model and an inelastic impact formulation. The authors introduce dynamic mask subsystems and output buses to support arbitrary numbers of links, open- and closed-chain configurations, and configurable actuators, achieving code-generation-friendly performance through Simulink Functions and WBT blocks. This work provides a practical, extensible tool for rapid prototyping, sensor/actuator integration, and comparative testing against other simulators, with installation and execution streamlined via Conda/GitHub.
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.
