From dbb138856091de42f08422076acf56d18180170a Mon Sep 17 00:00:00 2001 From: hello-chintan Date: Wed, 18 Jan 2023 18:31:35 -0500 Subject: [PATCH] Added first pass tool share tutorials --- mkdocs.yml | 12 +++++++- stretch_tool_share/README.md | 24 ++++++++++++++++ stretch_tool_share/dexwrist.md | 15 ++++++++++ stretch_tool_share/dry_erase_holder.md | 34 ++++++++++++++++++++++ stretch_tool_share/gripper_puller.md | 26 +++++++++++++++++ stretch_tool_share/gripper_removal.md | 40 ++++++++++++++++++++++++++ stretch_tool_share/updating_urdf.md | 31 ++++++++++++++++++++ 7 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 stretch_tool_share/README.md create mode 100644 stretch_tool_share/dexwrist.md create mode 100644 stretch_tool_share/dry_erase_holder.md create mode 100644 stretch_tool_share/gripper_puller.md create mode 100644 stretch_tool_share/gripper_removal.md create mode 100644 stretch_tool_share/updating_urdf.md diff --git a/mkdocs.yml b/mkdocs.yml index 20b04a1..4cedf7b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -95,6 +95,7 @@ nav: - Command Line Tools: ./getting_started/command_line_tools.md - Untethered Operation: ./getting_started/untethered_operation.md - Updating Software: ./getting_started/updating_software.md + - Stretch Body Python SDK: - Overview: ./stretch_body/README.md - Basics: @@ -178,4 +179,13 @@ nav: - Deep Perception: ./ros2/deep_perception.md # - PointCloud Transformation: ./ros2/example_11.md # - ArUco Tag Locator: ./ros2/example_12.md - + + - Stretch Tool Share: + - Overview: ./stretch_tool_share/README.md + - Basics: + - Gripper Removal: ./stretch_tool_share/gripper_removal.md + - Gripper Puller: ./stretch_tool_share/gripper_puller.md + - Dry Erase Holder: ./stretch_tool_share/dry_erase_marker.md + - DexWrist: ./stretch_tool_share/dexwrist.md + - Advanced: + - Updating URDF: ./stretch_tool_share/updating_urdf.md diff --git a/stretch_tool_share/README.md b/stretch_tool_share/README.md new file mode 100644 index 0000000..f8580e8 --- /dev/null +++ b/stretch_tool_share/README.md @@ -0,0 +1,24 @@ +# Overview + +We designed Stretch's hardware to be easily extended. You can make your own tool and attach it to the wrist to creatively expand what Stretch can do. Your tool can also use Dynamixel X-series servos from Robotis via the provided TTL bus. + +In this tutorial, we provide examples of some of the tools that we've created. We've released them with a permissive Apache 2.0 license, so you're free to use them as you wish. We hope they'll inspire you to create your own. + +We also include URDF and mesh files for many of the tools in their stretch_description folder. See the Stretch ROS documentation for guidance on integrating these tools into your robot model. + +We'd love it if you shared your creations with the community. We recommend you create a GitHub repository for your own tools and then post an announcement to the forum to let people know about it. + +| Tool | Description | +| :----------------------------------------------------------: | :----------------------------------------------------------: | +| Puller | Attachment to pull drawers, handles or push buttons | +| Dry Erase Holder | Compliant attachment for drawing on white-boards | +| DexWrist | A 3-DoF upgrade for the standard gripper | +| Updating URDF | Updating the URDF after changing a tool | + +## Licenses + +The contents in this tutorial that represent parts of the Stretch robot, such as its head, arm, wrist, and default gripper, are covered by the [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) license. Please note that the Stretch robot and its default gripper are also covered by pending patents. Please see the robot license for details. + +Other contents in this tutorial created by Hello Robot Inc. that specifically pertain to the tools that attach to Stretch as accessories are covered by the [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0) license. Please see the tool license for details. + +The contents of this tutorial are intended for use with the Stretch mobile manipulator, which is a robot produced and sold by Hello Robot Inc. For further information, including inquiries about dual licensing, please contact Hello Robot Inc. \ No newline at end of file diff --git a/stretch_tool_share/dexwrist.md b/stretch_tool_share/dexwrist.md new file mode 100644 index 0000000..75e7f93 --- /dev/null +++ b/stretch_tool_share/dexwrist.md @@ -0,0 +1,15 @@ +## Stretch Dex Wrist + +**Created by**: Hello Robot Inc + +The [Stretch Dex Wrist](https://hello-robot.com/stretch-dex-wrist) is commercially available from Hello Robot. The following hardware guides are available: + +* [Stretch RE1 DexWrist Hardware Guide](https://docs.hello-robot.com/0.2/stretch-hardware-guides/docs/dex_wrist_guide_re1/) +* [Stretch 2 DexWrist Hardware Guide](https://docs.hello-robot.com/0.2/stretch-hardware-guides/docs/dex_wrist_guide_re2/) + + + +Additional resources available here include: + +* [Gazebo Support](https://github.com/hello-robot/stretch_tool_share/blob/master/tool_share/stretch_dex_wrist/gazebo_support/README.md) +* [URDF](https://github.com/hello-robot/stretch_tool_share/tree/master/tool_share/stretch_dex_wrist/stretch_description) \ No newline at end of file diff --git a/stretch_tool_share/dry_erase_holder.md b/stretch_tool_share/dry_erase_holder.md new file mode 100644 index 0000000..e655f78 --- /dev/null +++ b/stretch_tool_share/dry_erase_holder.md @@ -0,0 +1,34 @@ +## Dry Erase Holder + +**Created by**: Hello Robot Inc + +This tool allows Stretch to hold a dry erase marker. It is spring loaded, allowing for compliant interaction between the marker and a white board. + +The tool can be integrated into your robot URDF by integrating its [stretch_description](https://github.com/hello-robot/stretch_tool_share/tree/master/tool_share/dry_erase_holder_V1/stretch_description) as described in the [Stretch ROS documentation](https://github.com/hello-robot/stretch_ros/tree/master/stretch_description). + +image + +image + +## Parts List + +| Item | Qty | Vendor | +| ------------- |:-------------:| -----: | +| [Expo Dry Erase](https://www.amazon.com/gp/product/B00006IFIL/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1) | 1 | Amazon | +| [M5x50mm Hex Head Bolt](https://www.mcmaster.com/91287A333) | 1 | McMaster-Carr | +| [M5 Nut](https://www.mcmaster.com/90591A260) | 2 | McMaster-Carr| +| [wrist_end_cap_5mm](https://github.com/hello-robot/stretch_tool_share/blob/master/tool_share/dry_erase_holder_V1/CAD/wrist_end_cap_5mm.STL) | 1 | PLA 3D Printer | +| [dry_erase_bushing_block](https://github.com/hello-robot/stretch_tool_share/blob/master/tool_share/dry_erase_holder_V1/CAD/dry_erase_bushing_block.STL) | 1 | PLA 3D Printer | +| [Size 30 Rubber Band](https://www.mcmaster.com/12205t76) | 2 | McMaster-Carr | +| [3/4" Shaft Collar](https://www.mcmaster.com/60475k74) | 1 | McMaster-Carr | + +## Assembly instructions +[View 3D assembly](https://github.com/hello-robot/stretch_tool_share/blob/master/tool_share/dry_erase_holder_V1/CAD/ASSEM_Dry_Erase_Holder_V1.STL) + +image + +1. Install the bolt into the dry_erase_bushing block and secure from below with an M5 nut. +2. Attach the dry erase bushing block to the tool plate, securing from below with the wrist_end_cap_5mm and an M5 nut. Orient the block so the marker points forward. +3. Attach the shaft collar to your dry erase marker, approximately 8mm from the back of the marker. +4. Slide the marker into the bushing block. Loop a rubber band around the back of the marker and over to one of the pegs on the side of the bushing block. Repeat with the other peg. +5. The marker should now easily spring back when pushed against. You're ready to write! \ No newline at end of file diff --git a/stretch_tool_share/gripper_puller.md b/stretch_tool_share/gripper_puller.md new file mode 100644 index 0000000..fd6ecd5 --- /dev/null +++ b/stretch_tool_share/gripper_puller.md @@ -0,0 +1,26 @@ +## Puller + +**Created by**: Hello Robot Inc + +This is a a simple puller attachment for the Stretch Compliant Gripper. We've used it to pull open many common drawers, cabinet doors, and even a mini-fridge door. You can also use it to push things closed. You can think of it as a circular hook used to pull things or a finger used to push things. + +It attaches to the 6-32 stud on the side of the gripper. By turning the gripper sideways during manipulation, the hook can drop over the drawer handle, allowing the arm to retract and pull the door open. + +image +image + +## Parts List + +| Item | Qty | Vendor | +| ------------- |:-------------:| -----: | +| [6-32 x 0.5" BHCS](https://www.mcmaster.com/91255A148) | 1 | McMaster-Carr| +| [6-32 x 1" aluminum threaded standoff](https://www.mcmaster.com/93330a449) | 1 | McMaster-Carr| +| [Puller_V1.STL](https://github.com/hello-robot/stretch_tool_share/blob/master/tool_share/puller_v1/CAD/Puller_V1.STL) | 1 | PLA 3D printer| + +## Assembly instructions +[View 3D assembly](https://github.com/hello-robot/stretch_tool_share/blob/master/tool_share/puller_v1/CAD/ASSEM_Puller_V1.STL) + +image + +1. Screw the standoff on to the gripper's threaded post. Secure tightly and add a drop of light duty Loctite if desired. +2. Attach the plastic pull to the standoff using the BHCS. \ No newline at end of file diff --git a/stretch_tool_share/gripper_removal.md b/stretch_tool_share/gripper_removal.md new file mode 100644 index 0000000..37fecd7 --- /dev/null +++ b/stretch_tool_share/gripper_removal.md @@ -0,0 +1,40 @@ +# Gripper + +The Stretch Compliant Gripper utilizes a Dynamixel XL430-W250-T servo to drive the spring grasper mechanism. The kinematics of the grasper mechanism are complex and non-linear relative to the motor position. As shown, it includes mounting features on one side to allow for attachment of simple rigid tools such as [hooks and pullers](https://github.com/hello-robot/stretch_tool_share/tree/master/tool_share/puller_v1). + +![image alt text](https://github.com/hello-robot/stretch_hardware_guides/blob/master/docs/images/re2/gripper.png) + + + + + + + + + + + + + + + + + +
ItemNotes
AStud attachmentThreaded 6-32
BThread attahcmentThreaded M4
+ +The attachment features are spaced at 9mm. + +The weight of the Stretch Compliant Gripper is 240g. + +## Gripper Removal + +Here we describe removing the Stretch Compliant gripper. Installation is simply these steps in reverse. + +1. Unplug the Dynamixel cable from the back of the gripper. +2. Remove the 4 screws holding the gripper to the bracket. +3. Remove the gripper from the mounting bracket +4. Unscrew the 8 screws holding the mounting bracket to the bottom of the tool plate. + +![image alt text](https://github.com/hello-robot/stretch_hardware_guides/blob/master/docs/images/re2/gripper_mount_b_rs.png) + +![image alt text](https://github.com/hello-robot/stretch_hardware_guides/blob/master/docs/images/re2/gripper_mount_a_rs.png) \ No newline at end of file diff --git a/stretch_tool_share/updating_urdf.md b/stretch_tool_share/updating_urdf.md new file mode 100644 index 0000000..21ada08 --- /dev/null +++ b/stretch_tool_share/updating_urdf.md @@ -0,0 +1,31 @@ +## Changing the Tool + +If you wish to remove the default gripper and add a different tool, you will typically edit /stretch_description/urdf/stretch_description.xacro. Specifically, you will replace the following line in order to include the xacro for the new tool and then follow directions within stretch_ros/stretch_calibration to generate a new calibrated urdf file (stretch.urdf) that includes the new tool. + +`` + +As an example we provide the xacro `stretch_dry_erase_marker.xacro` and its dependent mesh files with stretch_ros. + +Some of the tools found in the [Stretch Body Tool Share](https://github.com/hello-robot/stretch_tool_share/) include URDF data. To integrate these tools into the URDF for your Stretch + +```bash +>>$ cd ~/repos +>>$ git clone https://github.com/hello-robot/stretch_tool_share +>>$ cd stretch_tool_share/ +>>$ cp stretch_description/urdf/* ~/catkin_ws/src/stretch_ros/stretch_description/urdf/ +>>$ cp stretch_description/meshes/* ~/catkin_ws/src/stretch_ros/stretch_description/meshes/ +``` + +Next add the xacro for the particular tool to `/stretch_description/urdf/stretch_description.xacro`. Then you can generate and preview the uncalibrated URDF: + +```bash +>>$ cd ~/catkin_ws/src/stretch_ros/stretch_description/urdf +>>$ cp stretch.urdf stretch.urdf.bak +>>$ rosrun stretch_calibration update_urdf_after_xacro_change.sh +``` + +Now visualize the new tool + +```bash +>>$ roslaunch stretch_calibration simple_test_head_calibration.launch +```