ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

ROS 2 for Baxter


As a ROS teacher, I am thinking about moving (part of) my course to ROS 2 next year. I believe Noetic + Foxy will be a good entry point for our engineering students.

We use Baxter from Rethink Robotics for the labs, which still works under Indigo (as far as I remember, as I have not accessed the campus for 3 months). It still works flawlessly with Melodic on the remote computer.

Some work has been initiated in order to be able to communicate with Baxter through ros1_bridge, by having ROS 2 versions of the messages and description packages.
Interested people can have a look at the corresponding repository.
ros1_bridge was successfully recompiled using these packages.

People using Baxter know that there are 4 main repos from RR:

  • baxter_common, which includes messages and description, was ported to ROS 2 as stated above
  • baxter_tools and baxter_interface regroup low-level tools, and should still live in the ROS 1 world. We have begun porting them to Python 3 to use it with Noetic.
  • baxter_simulator emulates the robot under Gazebo. There are no plans yet on our side to work on this part as we have a real robot.

As a side note, the message-definition packages were ported to ROS 2 using this small tool, that is still under development.

Any suggestions / help are appreciated if you are interested in using Baxter in the next years while avoiding teaching ROS 1 / Python 2 to new students.



After a few iterations (mostly Python 3 compatibility), Baxter communicates with ROS 2 with the mentioned package.

In addition, baxter_tools and baxter_interface have been ported to Python 3.

A new script is available in baxter_tools : rosrun baxter_tools
It publishes the robot_description parameter, that is robot-specific and only exists on Baxter’s rosmaster. ros1_bridge can thus forward it to the ROS 2 world.