Package Summary

Tags No category tags.
Version 0.1.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/unisa-acg/inverse-dynamics-solver.git
VCS Type git
VCS Version humble
Last Updated 2025-04-08
Dev Status DEVELOPED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A C++ library implementing the inverse dynamics solver for the Franka Emika Panda (FER) real robot.

Additional Links

Maintainers

  • Enrico Ferrentino

Authors

  • Vincenzo Petrone

franka_inria_inverse_dynamics_solver

Contents

This dynamics solver for the real Franka Emika (FER) robot is based on a model identified by the following paper:

C. Gaz, M. Cognetti, A. Oliva, P. Robuffo Giordano, and A. De Luca, “Dynamic Identification of the Franka Emika Panda Robot With Retrieval of Feasible Parameters Using Penalty-Based Optimization,” IEEE Robotics and Automation Letters, vol. 4, no. 4, pp. 4147-4154, Oct. 2019, doi: 10.1109/lra.2019.2931248.

The group at INRIA provided the library for the computation of the dynamic parameters, composed by four header files (one per function) and several source files with different implementations. On top of these, the library InverseDynamicsSolverFrankaInria has been developed, to include the following files:

  • get_CoriolisMatrix.h: given the 7X1 vector of positions and the 7X1 vector of velocities, both in joint space, it computes the 7x7 matrix of torques related to centrifugal and Coriolis effects;
  • get_FrictionTorque.h: given the 7X1 vector of velocities, it computes the 7x1 vector of torques due to friction;
  • get_GravityVector.h: given the 7x1 vector of positions in joint space, it computes the 7x1 vector of torques due to gravity;
  • get_MassMatrix.h: given the 7x1 vector of positions in joint space, it computes the 7x7 inertia matrix.

The dynamics solver implements the inverse_dynamics_solver::InverseDynamicsSolver class.

How to build

To build this package, run the following from the root of your colcon workspace:

colcon build --packages-up-to franka_inria_inverse_dynamics_solver
source install/setup.bash

Demo

You can evaluate the solver using the demo, currently configured in a launch file. The demo reads a bag file containing a sequence of sensor_msgs/msg/JointState messages and, for each state, computes the corresponding torques according to the InverseDynamicsSolverFrankaInria solver, which are saved in another bag file.

Run the demo

To launch the demo, run the following:

ros2 launch franka_inria_inverse_dynamics_solver evaluate_solver_franka.launch.py

By default, the demo reads the panda_exciting_trajectory.db3 bag file, and produces the output under the panda_exciting_trajectory_real_torques folder (created under the current working directory), with the computed torques written to the /torques topic. You can change this configuration with

ros2 launch franka_inria_inverse_dynamics_solver evaluate_solver_franka.launch.py input_bag:=<my_bag_file> output_bag:=<my_output_folder> topic:=<my_output_topic>

Visualize the results

Please refer to the parent class documentation to visualize the results, i.e. the evaluation of joint torque signals on input_bag, stored in output_bag.

Citation

If you find this work useful, please cite it as

@article{Gaz_2019,
    title={Dynamic Identification of the Franka Emika Panda Robot With Retrieval of Feasible Parameters Using Penalty-Based Optimization},
    volume={4},
    ISSN={2377-3774},
    url={http://dx.doi.org/10.1109/lra.2019.2931248},
    DOI={10.1109/lra.2019.2931248},
    number={4},
    journal={IEEE Robotics and Automation Letters},
    publisher={Institute of Electrical and Electronics Engineers (IEEE)},
    author={Gaz, Claudio and Cognetti, Marco and Oliva, Alexander and Robuffo Giordano, Paolo and De Luca, Alessandro},
    year={2019},
    month=oct,
    pages={4147–4154}
}

CHANGELOG

Changelog for package franka_inria_inverse_dynamics_solver

0.1.1 (2025-04-03)

0.1.0 (2025-04-03)

  • Commit for release
  • Contributors: Vincenzo Petrone

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Name
eigen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged franka_inria_inverse_dynamics_solver at Robotics Stack Exchange

No version for distro jazzy. Known supported distros are highlighted in the buttons above.
No version for distro rolling. Known supported distros are highlighted in the buttons above.
No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro iron. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.