Table of Contents
Fetching ...

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.

A Flexible MATLAB/Simulink Simulator for Robotic Floating-base Systems in Contact with the Ground: Theoretical background and Implementation Details

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.
Paper Structure (23 sections, 24 equations, 3 figures, 1 table)

This paper contains 23 sections, 24 equations, 3 figures, 1 table.

Figures (3)

  • Figure 1: Overview of the Simulator. Solid, single and double arrows represent the data flow between the different blocks, double arrows being used for buses. Dashed arrows denote the programmatic call of its source block.
  • Figure 2: Control flow between the MATLAB System with classes and the Simulink Function wrapping the QP solver.
  • Figure 3: Simulink Function block for computing the Jacobian of the feet for two robots having two and four feet.