Running MoveIt 2 & ROS 2 on Stretch RE1

Hey, everyone! My name is Chintan Desai. I am pursuing an MS in Robotics Engineering at Worcester Polytechnic Institute while working as an intern at Hello Robot towards porting the codebase to ROS 2, with a present focus on MoveIt 2.

Stretch has a kinematically simple 3 DoF arm (+2 with DexWrist) with a compliant gripper that is suitable for pick and place tasks of varied objects. Its mobile base provides it with additional degrees of freedom that afford it more dexterity and also the ability to navigate freely in its environment. To fully utilize this clever design, we need a planner that can plan for both the arm and the mobile base at the same time. With MoveIt 2 and ROS 2, it is now possible to achieve this, empowering users to plan more complicated and coordinated robot trajectories in difficult and uncertain environments.

Here’s a sneak peek at my progress so far:

It is now possible to interact with Stretch using the Move Group C++ API for MoveIt 2. Here’s a sample node that you can run to plan a simple joint goal:

Feel free to interact with the code in the above demonstration with the setup instructions described in the link below:

To follow my most current work, you can checkout to the feature/hybrid_planning branch of stretch_ros2:

My progress so far would not be possible without help from Binit, who laid the groundwork for me to build upon. Special thanks to Charlie and Aaron for their advice and encouragement, and for coming up with this clever robot design! It has been an amazing learning experience so far. I’m excited to share more updates here as I continue to make progress in the coming weeks and over the summer.

I’d love to hear from anyone who is looking to work on Stretch with ROS 2 and MoveIt. Feel free to reach out to me through this post or via email:

Happy tinkering!

Chintan Desai