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.
Hi @bshah,
Thanks for your detailed response!
This will help me going forward in my project.
Hi! I am new to Stretch and am trying to play around with it on the gazebo simulator before moving to the physical robot. I am attempting to follow the stretch_gazebo - Stretch Documentation tutorial. I am able to execute everything fine up until the
$ roslaunch stretch_moveit_config demo_gazebo.launch
command, at which I get an error saying that stretch_moveit_config is not a launch file name. I have been following the tutorial to set it all up and am not sure what I am missing.
Additionally to what effect has the simulator and/or documentation tutorials been effecting with the deprecation of Gazebo Classic in January (if it has taken place). I am very new to this so any and all info would be appreciated.
Hey @allib, welcome to the Stretch community! So in ROS1 Melodic, the Gazebo simulation came with a MoveIt configuration that enabled simulated use of MoveIt1. We deprecated Melodic a while ago, but if motivated, you can install Ubuntu 18.04, set up Stretch ROS1 for Melodic, and use the simulator with MoveIt.
Recently (in Jan 2025), support for the last ROS1 distribution, Noetic, was deprecated. With ROS2, I’d point you to try out Samuel’s implementation of an Ignition simulation for Stretch. Gazebo Ignition has replaced the Gazebo classic simulator from ROS1.
Also, if you’re getting started on Stretch hardware, I recommend going through the Getting Started tutorials.