franzesegiovanni / franka_bimanual_controllers

Bimanual Impedance Controllers for Franka-Emika Panda robot
12 stars 3 forks source link

Franka Bimaual Impedance Controller

This repository was developed for the paper: Interactive Imitation Learning of Bimanual Movement Primitives.

Published in IEEE/ASME Transactions on Mechatronics.

What is this repository useful for?

This code is build on top of Franka Bimanual Cartesian Impedance Control. This code has some other desirable features for controlling the two arms independently and set desired relative stiffness to constraint the movement of the two arms, for example when picking up an object.

Features:

Installation

Be sure to not install the develop branch of fraka_ros that can contain some bugs. For example install the the noetic branch that will be the next stable release.

cd catkin_ws/src
git clone -b noetic-devel https://github.com/frankaemika/franka_ros.git
git clone https://github.com/franzesegiovanni/franka_bimanual_impedance_controller.git
cd .. 
catkin build -DMAKE_BUILD_TYPE=Release -DFranka_DIR:PATH=~/libfranka/build

To start the controller use this command

roslaunch franka_bimanual_controllers dual_arm_cartesian_impedance_example_controller.launch robot_right_ip:=<ip_robot_right> robot_left_ip:=<ip_robot_left> arm_id:=<arm_id>

where and are the ip of the right and left robot respectively. The arm_id is the id of the robot that you have in the bimanual setup, i.e. panda or fr3. This code does not support hybrid panda-fr3 setup. The arm_id is important to change the joint repulsion behaviour.

Learning from demonstration

For python codes, please refer to https://github.com/franzesegiovanni/SIMPLe/tree/main/SIMPLe_bimanual

Cite us!

If this code is useful in your research, please cite us:

Franzese, G., de Souza Rosa, L., Verburg, T., Peternel, L. and Kober, J., 2023. Interactive Imitation Learning of Bimanual Movement Primitives. IEEE/ASME Transactions on Mechatronics.