Support of ROS available for Poppy Ergo Jr

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:

:small_orange_diamond:ROS 1 : support for Melodic and Noetic

:no_entry_sign: 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 the JointTrajectory action server is supported.

ROS roadmap



May be (probably) my question is irrevelant but I was interesting about ROS (but I’m totally newbee) and check documentation:
To not support ros2 means that it can not be used under Windows OS?
In case of support of ros2 for poppy, what should it mean about Windows? I have check over the net but it is kind of “experimental” support: is it “really” experimental or it could be used?


Hi @Nikolaos,

  • Indeed Windows can only run ROS 2, but Poppy Ergo Jr is only compatible ROS 1 so far, which only runs on Ubuntu. However ROS 1 works well in a virtual machine on Windows. That is only a matter of time to get it running ROS 2, and thus with a Windows and MacOS support. Also community projects are very welcome in this direction :partying_face:
  • The ROS support can definitely be used, it is experimental just because it is currently limited to a small part of the Poppy environment and it could evolve with no retrocompatibility, especially for Poppy Controllers, because the rest is ROS-compatible and will remain ROS-compatible
  • Practical labs with Poppy Ergo Jr + ROS 1 are available there, this is also experimental in the sense that it still misses explanation, slides, and English translation :stuck_out_tongue:

Thanks for your answer.

About the link, I have read it and there is a part about ergo jr + turtlebot (is it with the burger one?).

So my next question: Plug-in an ergo on a turtlebot is immediate? or rather easy enough?
And then to manage everything with ROS (1 nowadays) too?

As an entry point to ROS, I was interested enough about the turtlebot but the possibilities/fun seem really higher with an arm on it such as the ergo :slight_smile:.


Plug-in an ergo on a turtlebot is immediate?

The proposed activity is not an Ergo Jr on top of a Turtlebot Burger, it is an Ergo Jr putting a cube on the Turtlebot.

The latter is easier since robots do not share the same kinematic tree, they just exchange punctual information (e.g. a trigger to grab the cube, or a position where to grab the cube in a world frame).

the possibilities/fun seem really higher with an arm on it such as the ergo

You are definitely right. This is why another activity in could deal with creating a new robot from an ergo on top of a turtlebot, that would illustrate different concepts, such as creating a URDF. But that’s for the future :slight_smile:

Thanks for your answer.

I’m finally going to try that with the WSL and my Ergo Jr as an introduction to ROS.


1 Like