Stretch2 - Gazebo + MoveIt?

We recently got the stretch 2. I’d like students to develop solutions in simulation before trying to port to the real robot. But it looks like moveit support for Ros1 has been discontinued (stretch_moveit_config removed from the repo, and no support for the real robot). We would switch to Ros2, but it also looks like Gazebo support for Ros2 is also non-functional. Can anyone recommend a reasonable workaround to support initial simulation development before porting to the hardware? We are starting fresh, so if there is an alternate simulator or manipulation package that we can use, that would be ok - so long as the simulator is close to real performance.

Hi Ebeowulf,

Welcome to the forum!

I am also interested in your described problem. I hope we get a follow-up from the developers soon!

Hi @roboor, thanks for following up here. @ebeowulf and I chatted over video call about his question, and I’ll try to summarize our conversation here. To the question about Stretch simulators, there are a few available:

  • Hello Robot maintains a Gazebo Classic simulation of Stretch in this ROS 1 package. The experience of interfacing with Gazebo’s Stretch is different than with a real Stretch. There’s a few reasons for this, including difference in drivers and simulation quirks, but the result is that the ROS API is different and the behavior of the simulated Stretch doesn’t perfectly match a real Stretch. Despite this, this simulation is certainly a good way to get started, and @ebeowulf plans to use this option.
  • There’s a fork of the Stretch Gazebo package that does better match the APIs and behavior of a real Stretch. To achieve this, I believe they had to create Gazebo Classic plugins to better emulate the real robot. The fork is available here, however, I’m not sure if it is still supported.
  • One of the earliest simulations that included Stretch was called assistive-gym. It uses the Pybullet simulator under the hood, and I believe it focused on simulating and training reinforcement learning models for robotic care-giving tasks.
  • One of the most recent simulations (released yesterday!) of Stretch is part of the Mujoco Menagerie, which is a collection of high quality robot models for the Mujoco simulator. I believe their simulation of Stretch has one of the closest models to how the real gripper opens & closes.
  • HomeRobot, which is a high level API for deep learning research, includes a simulation of Stretch that is used to train RL policies for open vocabulary mobile manipulation. Their simulator is available here.

I’m certain that the list above isn’t comprehensive. If anyone knows of others, please feel free to add them. To the question about the ROS1 package called stretch_moveit_config, we did deprecate it because of the confusion it caused for those wanting to use it with a real Stretch. Since the package was created, it only ever supported experimenting in simulation via Gazebo Classic. For manipulation on real Stretchs, we recommend checking out planners like FUNMAP. However, if your use-case involves simulated manipulation, you might find the stretch_moveit_config package useful.

I hope this information is useful. Since Gazebo Classic will be deprecated January 2025, we will likely switch to another simulator going forward.

2 Likes

Hi @bshah,

Thanks for your detailed response!
This will help me going forward in my project.