Table of Contents
Fetching ...

A ROS2-based software library for inverse dynamics computation

Vincenzo Petrone, Enrico Ferrentino, Pasquale Chiacchio

TL;DR

The paper addresses computing joint torques $\boldsymbol{\tau}$ from motion commands using the inverse dynamics equation $ \mathbf{H}(\mathbf{q}) \ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{f}(\dot{\mathbf{q}}) + \mathbf{g}(\mathbf{q}) = \boldsymbol{\tau}$. It proposes a ROS2-based software library with an abstract interface InverseDynamicsSolver and three concrete plugins: a KDL-based simulator solver and real-robot solvers for UR10 and Franka, all configured via URDF/xacro and gravity parameters. The approach is validated through simulations in Gazebo and experiments on UR10 and Franka, showing close agreement between measured and computed torques, demonstrating the platform's applicability to planning, control, and real-time simulation. Future work includes incorporating payload effects and adding a Pinocchio-based solver, as well as integrating the solver into model-based controllers.

Abstract

Inverse dynamics computation is a critical component in robot control, planning and simulation, enabling the calculation of joint torques required to achieve a desired motion. This paper presents a ROS2-based software library designed to solve the inverse dynamics problem for robotic systems. The library is built around an abstract class with three concrete implementations: one for simulated robots and two for real UR10 and Franka robots. This contribution aims to provide a flexible, extensible, robot-agnostic solution to inverse dynamics, suitable for both simulation and real-world scenarios involving planning and control applications. The related software is available at https://github.com/unisa-acg/inverse-dynamics-solver/tree/rap.

A ROS2-based software library for inverse dynamics computation

TL;DR

The paper addresses computing joint torques from motion commands using the inverse dynamics equation . It proposes a ROS2-based software library with an abstract interface InverseDynamicsSolver and three concrete plugins: a KDL-based simulator solver and real-robot solvers for UR10 and Franka, all configured via URDF/xacro and gravity parameters. The approach is validated through simulations in Gazebo and experiments on UR10 and Franka, showing close agreement between measured and computed torques, demonstrating the platform's applicability to planning, control, and real-time simulation. Future work includes incorporating payload effects and adding a Pinocchio-based solver, as well as integrating the solver into model-based controllers.

Abstract

Inverse dynamics computation is a critical component in robot control, planning and simulation, enabling the calculation of joint torques required to achieve a desired motion. This paper presents a ROS2-based software library designed to solve the inverse dynamics problem for robotic systems. The library is built around an abstract class with three concrete implementations: one for simulated robots and two for real UR10 and Franka robots. This contribution aims to provide a flexible, extensible, robot-agnostic solution to inverse dynamics, suitable for both simulation and real-world scenarios involving planning and control applications. The related software is available at https://github.com/unisa-acg/inverse-dynamics-solver/tree/rap.

Paper Structure

This paper contains 20 sections, 1 equation, 8 figures.

Figures (8)

  • Figure 1: The Inverse Dynamics Solver library and its concrete implementations
  • Figure 2: Sequence diagram: the user can instantiate the IDS library with pluginlib, by specifying the parameter plugin_name via launch file; concrete solvers call external libraries (e.g., robot-specific models gaz_dynamic_2019petrone_dynamic_2024 or other software modules, such as KDL) to retrieve dynamic components.
  • Figure 3: Class diagram: methods inherited by the concrete implementations from the interface are omitted for brevity
  • Figure 4: Measured and computed torques on the simulated UR10 robot
  • Figure 5: Measured and computed torques on the simulated Franka robot
  • ...and 3 more figures