SMACC demonstrates concurrent control of two arms in ROS 2 using MoveIt2 and ros2_control

The main interest and novelty of this base example is that each arm is controlled by its own Controller Manager (ros2_control) and move_group (moveit2) node in different namespaces.

This is different from previous approaches where a single move_group node could control multiple robotic manipulators, but not perform tasks concurrently.

To the best of my knowledge, this is the first time this has been achieved. At least, prior to this pull request on the moveit2 repository: reading namespace from parameter by pabloinigoblasco · Pull Request #1833 · ros-planning/moveit2 · GitHub (which is still pending acceptance in the main branch)

The specific example code is here:

To reproduce it anyone can us this PR:

These are the versions we used to make it work:

You should be able to reproduce it via docker without suffering too much with repositories and version configuration:
docker/build_docker_humble.sh

1 Like