# Suction Gripper

**URL:** <https://forum.hello-robot.com/t/suction-gripper/1046>\
**Category:** Ask\
**Created:** [July 21, 2024, 5:36pm UTC](https://forum.hello-robot.com/t/suction-gripper/1046 "2024-07-21T17:36:22Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![TheMichaelChen](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/themichaelchen/32/796_2.png) [@TheMichaelChen](https://forum.hello-robot.com/u/TheMichaelChen)\
**Post date:** [July 21, 2024, 5:36pm UTC](https://forum.hello-robot.com/t/suction-gripper/1046/1 "2024-07-21T17:36:23Z")

</div>

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!

---

<div class="post-metadata">

**Author:** ![bshah](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/bshah/32/55_2.png) [@bshah](https://forum.hello-robot.com/u/bshah)\
**Post date:** [July 22, 2024, 9:24pm UTC](https://forum.hello-robot.com/t/suction-gripper/1046/2 "2024-07-22T21:24:30Z")

</div>

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](https://docs.hello-robot.com/0.3/extending_stretch/urdf_management/) tutorial to recompile your URDF.

---

<div class="post-metadata">

**Author:** ![TheMichaelChen](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/themichaelchen/32/796_2.png) [@TheMichaelChen](https://forum.hello-robot.com/u/TheMichaelChen)\
**Post date:** [August 15, 2024, 1:40am UTC](https://forum.hello-robot.com/t/suction-gripper/1046/3 "2024-08-15T01:40:28Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Mohamed\_Fazil](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/mohamed_fazil/32/261_2.png) [@Mohamed\_Fazil](https://forum.hello-robot.com/u/Mohamed_Fazil)\
**Post date:** [August 19, 2024, 8:05pm UTC](https://forum.hello-robot.com/t/suction-gripper/1046/4 "2024-08-19T20:05:32Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![TheMichaelChen](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/themichaelchen/32/796_2.png) [@TheMichaelChen](https://forum.hello-robot.com/u/TheMichaelChen)\
**Post date:** [August 20, 2024, 5:05pm UTC](https://forum.hello-robot.com/t/suction-gripper/1046/5 "2024-08-20T17:05:48Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![TheMichaelChen](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/themichaelchen/32/796_2.png) [@TheMichaelChen](https://forum.hello-robot.com/u/TheMichaelChen)\
**Post date:** [August 22, 2024, 5:55pm UTC](https://forum.hello-robot.com/t/suction-gripper/1046/6 "2024-08-22T17:55:35Z")

</div>

@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?

---

<div class="post-metadata">

**Author:** ![bshah](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/bshah/32/55_2.png) [@bshah](https://forum.hello-robot.com/u/bshah)\
**Post date:** [September 3, 2024, 7:51pm UTC](https://forum.hello-robot.com/t/suction-gripper/1046/7 "2024-09-03T19:51:32Z")

</div>

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](https://github.com/hello-robot/stretch_ros2/blob/humble/stretch_description/launch/display.launch.py)

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](https://github.com/hello-robot/stretch_body/blob/master/tools/bin/stretch_configure_tool.py)

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

---

<div class="post-metadata">

**Author:** ![TheMichaelChen](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/themichaelchen/32/796_2.png) [@TheMichaelChen](https://forum.hello-robot.com/u/TheMichaelChen)\
**Post date:** [September 3, 2024, 11:30pm UTC](https://forum.hello-robot.com/t/suction-gripper/1046/8 "2024-09-03T23:30:57Z")

</div>

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