Awesome
mc_franka
Interface between libfranka and mc_rtc. It provides multi-robot support and connect mc_panda devices to their libfranka counterpart.
Dependencies
This package requires:
You will also need the linux-libc-dev
package on Ubuntu and Debian systems.
Usage
- Make sure the system is setup properly to work with the robot
- Install this project's dependencies
- Install this project (
cmake
/make
/make install
) - Make sure your user account has sufficient memory limits
For that last point, you want to edit /etc/security/limits.conf
and add the following line:
USERNAME - memlock 1000000000
Then log-out and log-in, you can confirm the new limit is active by running:
ulimit -l
Your mc_rtc configuration file (typically ~/.config/mc_rtc/mc_rtc.yaml
) should contain the following lines:
# General mc_rtc configuration to run a panda controller at 1kHz
MainRobot: PandaDefault # Or PandaHand/PandaFoot/PandaPump according to the end-effector installed on the robot
Enabled: YourController
Timestep: 0.001
# Set a LogPolicy suitable for real-time
LogPolicy: threaded
# Franka specific configuration
Franka:
ControlMode: Position # Can be: Position/Velocity/Torque
panda_default: # Name of the robot in the controller
ip: 172.16.0.2 # IP of the robot
panda_2: # Name of an extra panda in the controller
ip: 172.16.1.2
# Actuated robots that are not controlled via mc_franka
ignored: [env/door, env/box]
Run the program:
MCFrankaControl
You can also provide an additional configuration file (to swap between different network configurations easily for example):
MCFrankaControl -f conf.yaml
Known issues
MCFrankaControl
will not pick up on newly installed libraries. To work-around this issue, run the following command after installing a new module:
sudo ldconfig
MCFrankaControl
will not pick up ROS libraries. If you're usingmc_rtc
's ROS plugin, create a file/etc/ld.so.conf.d/ros.conf
with content:
/opt/ros/noetic/lib
It seems that this change will only be picked up after reboot.
Video presentation
A video demonstrating panda motion generation and simultaneous pump actuation employing this implementation is available here:
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}
}
This work was partially supported by the Research Project I.AM. through the European Union H2020 program under GA 871899.