We’re happy to announce that Poppy robots started supporting ROS (Robot Operating System) with experimental ROS packages for Poppy Ergo Jr.
Support will be built progressively for all robots, dealing with both ROS 1 and ROS 2. Any feedback, wish or contribution is appreciated. Here’s the support status:
ROS 1 : support for Melodic and Noetic
- Poppy Ergo Jr is supported via Poppy Ergo Jr Moveit config
- Poppy Torso is unsupported, but old ROS stacks exist via Poppy Torso controllers and Poppy Torso description
- Poppy Humanoid is unsupported
ROS 2 is yet unsupported
Getting started
Get around with ROS concepts
Newcomers with ROS are advised to install and follow a few tutorials about ROS before going further. Going up to tutorial 7 will give you the keys to use ROS comfortably.
Use Poppy with ROS
You can then clone the packages Poppy Ergo Jr Moveit config in your ROS workspace, compile and source your workspace. Fake execution parameter will allow you to get started in simulation, if you need to take control over a real robot, use the dedicated image for your SD card.
Note: the ROS image has no http://poppy.local
GUI, so action, including motor configuration, must happen through SSH.
ROS pedagogical activities
Some folks published opensource ROS activities, intended to teach ROS to bachelor students with Ergo Jr robots. This is only in french but English should come soon.
Closer look at the ROS packages
Except the controllers which are common to all Poppy robots, each robot relies on at least 2 other packages (replace * with the robot name to get the name if its package):
-
poppy_*_description
: ROS package description the kinematic chain of the robot (in URDF format). When variants exists for a robot, Xacro is able to generate the description corresponding to all variants -
poppy_*_moveit_config
: ROS package ensuring the support of Poppy in MoveIt. MoveIt is the ROS component dedicated to robotic manipulators such as robotic arms -
poppy_controllers
: ROS package telling ROS how to communicate with the robot (relies on pypot). Only theJointTrajectory
action server is supported.
ROS roadmap
- Write documentation
- Generalize poppy_controllers to make them compatible with Torso and Humanoid
- Create for each robot a ROS package as described hereabove
- Make the robots compatible with other controllers of ros_control in poppy_controllers (wiki)
- ROS 2 support