Suction Gripper

Has anyone tried replacing the gripper on the Stretch with a suction gripper? If so, what gripper has worked well for you? Also, what was it like modifying the URDF? Thanks!

Hey @TheMichaelChen, I haven’t tried a suction gripper myself, but I can comment on modifying the URDF.

It’s pretty easy to change the gripper because the URDF is compiled from a modular file that includes the different parts of the robot. The file is called stretch_description.xacro and includes the following modules:

  • stretch_main.xacro - Main body of the robot.
  • stretch_aruco.xacro - ArUco markers on the robot.
  • stretch_d435i.xacro - The Realsense depth camera in the robot’s head.
  • stretch_respeaker.xacro - The ReSpeaker microphone array in the robot’s head.
  • stretch_head_nav_cam.xacro - The wide angle navigation camera in the robot’s head.
  • stretch_laser_range_finder.xacro - The planar lidar in the robot’s base.
  • stretch_base_imu.xacro - The IMU in the robot’s base.
  • stretch_wrist_dw3.xacro - The quick-connect 3 DOF wrist at the end of Stretch’s arm.
  • stretch_tool_sg3.xacro - The gripper.

By default, the included tool/gripper module is: stretch_tool_sg3.xacro. You would create an XACRO file for your suction gripper, and swap the module in the XACRO. Then you would follow the URDF Management tutorial to recompile your URDF.

1 Like

Hey @bshah thanks for the help! I tried to implement this today and ran into some issues.
I imported the mesh files + custom tool xacro, edited the stretch_description.xacro file, and then ran “stretch_urdf_ros_update.py --model SE3 --tool eoa_wrist_dw3_tool_sg3”. But, nothing after I ran the python script the stretch_description.xacro file was restored to its original state and when I visualized the URDF it appeared unchanged. Do you know if there’s something I did wrong or could do differently?

Hi @TheMichaelChen, the stretch_urdf_ros_update.py tool is only applicable for the tools we officially support for the robot. In your case I would advise you to manually generate an URDF file out of the modified xactro files using the command ros2 run xacro xacro stretch_description.xacro to generate your custom URDF.

1 Like

Hey @Mohamed_Fazil thanks for the help! I was able to successfully create the custom URDF. Is there a way I can visualize the URDF using the stretch_urdf_viz tool? Also, would you recommend making the new tool supported by stretch_configure_tool? What would be the benefits of doing this? Would it enable all the existing scripts to work with the new tool configuration?

@Mohamed_Fazil I still haven’t been able to figure this out. I couldn’t figure out a way to use the stretch_urdf_viz with my custom urdf. Instead I created my own visualization launch file. Is this what you’d recommend?
Also, do you know if there’s a way to configure the new tool to be supported by stretch_configure_tool? If so, would that mean it would work will all the hello robot scripts?

Hey @TheMichaelChen, were you able to figure this out? If you’re looking to visualize a ROS2 URDF, I’d recommend using this launch file: stretch_ros2/stretch_description/launch/display.launch.py at humble · hello-robot/stretch_ros2 · GitHub

If you’re looking to build on stretch_configure_tool, here’s the source code: stretch_body/tools/bin/stretch_configure_tool.py at master · hello-robot/stretch_body · GitHub

I wrote that script, so I can give you some pointers on how to get started.

1 Like

Thank you @bshah we actually figured it out! I appreciate it

1 Like