I am trying to create a gazebo simulation for the stretch 2 in ros2. First of all, is there any particular reason as to why the stretch_gazebo package hasn’t been ported to ros2? If not, how would I go about implementing the simulation?
Hi @mlalji, it’s great to hear you’re working on this. We haven’t tackled porting Stretch Gazebo to ROS2 because we’re currently focused on improving the support for the core Stretch ROS2 packages. If you wanted to implement a Gazebo ROS2 implementation of Stretch, here’s a few things to note:
- URDFs for Stretch 2 are available in the Stretch Description package. STL meshes are in the
stretch_ros2/stretch_description/meshes/folder and they’ve been optimized to remove internal geometry which should make simulation faster. XACROs are in the
stretch_ros2/stretch_description/urdffolder and you’ll want to use to edit the
stretch_description.xacroto include the tool you are using (e.g. Standard Gripper vs Dex Wrist) before compiling it to a URDF.
- Despite being called “Gazebo”, the new Gazebo (previously called Ignition) is different from the Gazebo Classic simulator used in ROS1’s Stretch Gazebo package. The physics engine is different, so you will see different physics behavior (might be better, might be worse). The rendering engine is different, so the graphics will look different. The assert library is upgraded and called Fuel. The API is different, so any Gazebo Classic plugins will need to be ported forward.
Happy to answer any questions that come up as you make progress on your implementation.