This repository serves as implementation of a bimanual manipulator approach using two Franka Research 3 robots, also creating a custom hardware interface for a better precision control of the robots.
To show the capabilities of a bimanual approach of the robots, two examples are proposed.
The first one shows the two robots in a disassembly task of electronic components.
The second example show how a robot can be programmed to move a tray with both arms in synchrony.
- Having ROS2 humble set up and working on a Ubuntu Real-Time kernel.
- Having at least two FR3 robots with FCI activated.
- Having libfranka 0.15.0 installed.
This package depends on two Franka packages, that must be installed in the system or in the same workspace of this package.
- franka_ros2 package, version v2.0.1.
- [franka_description] package, version 1.0.2 (commit 4b8948e)
To compile the package:
colcon build --symlink-installRemember to source the workspace:
source install/setup.bashThere is a basic launcher to launch the bimanual implementation of the two robots, either in simulated environment (Gazebo) or controlling the real robots.
For running the simulated environment:
ros2 launch idra_franka_launch bimanual.launch.py use_gazebo:=trueFor connection with the real robots:
ros2 launch idra_franka_launch bimanual.launch.py left_ip:=<left_ip> right_ip:=<right_ip>The default launch file loads all the controllers that are defined inside franka_mm_control/config/basic_controller.yaml, activating the cartesian impedance controller by default. To change the default behavior change the launch file or use rqt_controller_manager package.
Inside franka_mm_control/scripts there are some basic scripts for testing the various controller types implemented inside te robot hardware interface.
To launch impedance control script:
ros2 run franka_mm_control cart_impedance_test.py


