mc_panda

July 2, 2026 ยท View on GitHub

License CI

Video presentation

A video demonstrating panda motion generation and simultaneous pump actuation employing this implementation is available here:

Video presentation

Robots

This package provides the following robot modules for mc_rtc:

Robot ModuleDescription
Panda_FR1_DefaultFR1 robot without an end-effector
Panda_FR1_HandFR1 robot with the standard panda gripper
Panda_FR1_PumpFR1 robot with the standard panda pump
Panda_FR1_FootFR1 robot with a static foot-like end-effector
Panda_FR1_MukcaFR1 robot with Mukca tool
Panda_FR1_PandaToPandaCalibFR1 robot with PandaToPandaCalib tool
Panda_FR3_DefaultFR3 robot without an end-effector
Panda_FR3_HandFR3 robot with the standard panda gripper
Panda_FR3_PumpFR3 robot with the standard panda pump
Panda_FR3_FootFR3 robot with a static foot-like end-effector
Panda_FR3_MukcaFR3 robot with Mukca tool
Panda_FR3_PandaToPandaCalibFR3 robot with PandaToPandaCalib tool

Naming Convention Update (between v1.1.1 and v2.0.0)

Robot modules now follow the naming convention:

Panda_<Robot>_<Tool>

where <Robot> is one of FR1, FR3 and <Tool> is one of Default, Hand, Pump, Foot, Mukca, PandaToPandaCalib.

Migration Guide

Old NameNew Name
PandaDefaultPanda_FR3_Default
PandaHandPanda_FR3_Hand
PandaPumpPanda_FR3_Pump
PandaFootPanda_FR3_Foot

If you previously used e.g. PandaDefault, update your configuration to use Panda_FR3_Default. For FR1 robots, use the corresponding Panda_FR1_* variant.

Tools

Here are all the tools defined in the project:

| Tool                | Description                        |
|---------------------|------------------------------------|
| `Panda_Tool_Hand`              | Standard panda gripper             |
| `Panda_Tool_Pump`              | Standard panda pump                |
| `Panda_Tool_Foot`              | Static foot-like end-effector      |
| `Panda_Tool_Mukca`             | Mukca tool                         |
| `Panda_Tool_PandaToPandaCalib` | Panda-to-Panda calibration tool    |

Devices

It also contains the following devices:

  • mc_panda::Robot is an asynchronous interface for franka::Robot commands and franka::RobotState which are connected to the actual robot when mc_franka is running the controller;
  • mc_panda::Pump is an asynchronous interface for franka::VacuumGripper which is connected to the pump when mc_franka is running the controller. It is only available in the PandaPump variant.

FSM States

And it provides some panda-specific FSM states:

  • PandaStop: immediately stop panda motion execution
  • PandaWaitForCollision: monitor panda contact sensor until certain threshold are reached
  • PumpDropOff: sends a dropOff command to the panda's pump and wait for the command completion
  • PumpStop: interrupt the pump operation
  • PumpVacuum: sends a vacuum command to the panda's pump and wait for the command completion

See state examples for details on the available parameters for each state.

Dependencies

This package requires:

If mc_openrtm is installed this will also install compatible Choreonoid projects for the FR1 panda robot.

Models:

  • FR1 model was generated from an (unknown) older franka_description version
  • FR3 model was generated from franka_description v2.1.0
  • Pump model was downloaded from Schmalz

Use with Nix

You can build and develop this package using Nix flakes:

  1. Enter the development shell:

    nix develop
    

    This will provide a shell with all dependencies (including mc-rtc, libfranka, the current local version of mc-panda repository etc.) and build tools.

  2. Build the project (optional):

    cmake -B build
    cmake --build build
    

    Note that using the version built manually in this step will require a custom mc_rtc.yaml configuration (documentation coming soon)

  3. Run the GUI or list available robots:

    mc-rtc-magnum &
    mc_robot_visualization
    

    This displays the robot built from the latest local sources of the repository available when nix develop was last executed.

  4. List all available robot variants:

    mc_robot_visualization
    

Reference

Writing code takes time. If this implementation is useful for your research, please cite the related publication:

@INPROCEEDINGS{Dehio2021ICRA,
  title={Robot-Safe Impacts with Soft Contacts Based on Learned Deformations},
  author={Dehio, Niels and Kheddar, Abderrahmane},
  booktitle={IEEE Int. Conf. on Robotics and Automation},
  pages={1357-1363},
  year={2021},
  pdf = {https://hal.archives-ouvertes.fr/hal-02973947/document},
  url = {https://hal.archives-ouvertes.fr/hal-02973947}
}

I.AM.Logo

This work was partially supported by the Research Project I.AM. through the European Union H2020 program under GA 871899.