Browse Source

Add dex wrist removal guide

pull/16/head
hello-chintan 1 year ago
parent
commit
70cdbb30fb
3 changed files with 111 additions and 1 deletions
  1. +2
    -1
      mkdocs.yml
  2. +77
    -0
      stretch_tool_share/dex_to_standard.md
  3. +32
    -0
      stretch_tool_share/dex_to_standard_configure_params.py

+ 2
- 1
mkdocs.yml View File

@ -186,6 +186,7 @@ nav:
- Gripper Removal: ./stretch_tool_share/gripper_removal.md
- Gripper Puller: ./stretch_tool_share/gripper_puller.md
- Dry Erase Holder: ./stretch_tool_share/dry_erase_holder.md
- DexWrist: ./stretch_tool_share/dexwrist.md
- Dex Wrist: ./stretch_tool_share/dexwrist.md
- Dex to Standard Wrist: ./stretch_tool_share/dex_to_standard.md
- Advanced:
- Updating URDF: ./stretch_tool_share/updating_urdf.md

+ 77
- 0
stretch_tool_share/dex_to_standard.md View File

@ -0,0 +1,77 @@
# Dex to Standard Wrist
This tutorial will guide you through the process of replacing a gripper with Dex Wrist for one with a Standard Wrist.
Power down your Stretch before proceeding.
## Tools required
* 8 [M2x6mm Torx FHCS bolts](https://www.mcmaster.com/90236A104/) (provided)
* 4 [M2.5x4mm Torx FHCS bolts](https://www.mcmaster.com/92703A448/) (provided)
* 2 [M2.5x8mm SHCS bolts](https://www.mcmaster.com/91290A102/) (provided)
* T6 Torx wrench (provided)
* T8 Torx wrench (provided)
* 2mm Hex key (provided)
## Removing Dex Wrist Gripper
Here we describe removing the Compliant gripper.
Inspect the parts and ensure that you have everthing you need for the procedure.
![Dex Wrist](https://raw.githubusercontent.com/hello-robot/stretch_hardware_guides/master/docs/images/dex_wrist_cable_detail.png)
First, remove the cable clip by removing the M2.5x8mm bolts and unroute the Dynamixel cable out of the wrist pitch servo (pink).
![Remove the cable](https://raw.githubusercontent.com/hello-robot/stretch_hardware_guides/master/docs/images/dex_wrist_cable_route_rs.png)
Next, rotate the wrist yaw joint so the wrist pitch servo body is accessible. Detach the pitch servo from the mounting bracket using the 4 M2.5x4mm screws (C) using the T8 Torx wrench.
![Remove screws](https://raw.githubusercontent.com/hello-robot/stretch_hardware_guides/master/docs/images/dex_wrist_pitch_bracket_attach_rs.png)
Slide the wrist module out horizontally so that the bearing unmates from its post.
![Remove mating](https://raw.githubusercontent.com/hello-robot/stretch_hardware_guides/master/docs/images/dex_wrist_roll_install2_rs.png)
Then, lower the wrist module vertically away from the mounting bracket.
![Remove from mounting bracket](https://raw.githubusercontent.com/hello-robot/stretch_hardware_guides/master/docs/images/dex_wrist_roll_install_rs.png)
Lastly, detach the wrist mount bracket (A) from the bottom of the tool plate by removing the M2x6mm bolts (B) using a T6 Torx wrench.
![Remove tool plate](https://raw.githubusercontent.com/hello-robot/stretch_hardware_guides/master/docs/images/dex_wrist_bracket_install_rs.png)
## Attaching Standard Wrist Gripper
Here we describe attaching the Standard gripper.
First, note where the forward direction is on the wrist yaw tool plate. This is indicated by the additional alignment hole that is just outside the bolt pattern (shown pointing down in the image).
![Alignment hole](https://raw.githubusercontent.com/hello-robot/stretch_hardware_guides/master/docs/images/dex_wrist_C_rs.png)
Then, route the Dynamixel cable through the center of the standard gripper mounting bracket and install the bracket with the 8 screws and T6 Torx wrench. Make sure the forward marking on the bracket matches the forward marking on the wrist yaw.
![image alt text](https://raw.githubusercontent.com/hello-robot/stretch_hardware_guides/master/docs/images/re2/gripper_mount_a_rs.png)
Affix the 4 screws, with the shorter two going to the servo side, to hold the gripper to the bracket. Lastly, route the dynamixel cable through the back of the gripper and plug it securely into the servo.
![image alt text](https://raw.githubusercontent.com/hello-robot/stretch_hardware_guides/master/docs/images/re2/gripper_mount_b_rs.png)
## Software Instructions
Once the hardware has been replaced, it's time to make the software changes for Stretch to recognize the Standart Wrist gripper. Turn on the robot and follow the instructions below.
To revert the changes in stretch_configuration_params.yaml, download the [dex_to_standard_configure_params.py script]() and execute it in a terminal as below: ```bash
python3 dex_to_standard_configure_params.py
```
Next, to ensure the correct gripper is recognized by ROS, we need to update the URDF. For this, first open the stretch_description.xacro file like below.
```bash
cd ~/catkin_ws/src/stretch_ros/stretch_description
gedit stretch_description.xacro
```
Then, replace the contents of the file with the default [stretch_description.xacro](https://github.com/hello-robot/stretch_ros/blob/master/stretch_description/urdf/stretch_description.xacro).
Lastly, to generate the updated URDF, execute the following commands in a terminal.
```bash
rosrun stretch_calibration update_urdf_after_xacro_change.sh
cd ~/catkin_ws/src/stretch_ros/stretch_description/urdf
./export_urdf.sh
```
You can ensure that the gripper is functional by homing the Dynamixel servos as below:
```bash
stretch_gripper_home.py
```
```bash
stretch_wrist_yaw_home.py
```
If you encounter any issues, please contact us at support@hello-robot.com

+ 32
- 0
stretch_tool_share/dex_to_standard_configure_params.py View File

@ -0,0 +1,32 @@
from __future__ import print_function
import stretch_body.hello_utils
import stretch_body.robot_params
import argparse
from os.path import exists
import sys
model_name=stretch_body.robot_params.RobotParams()._robot_params['robot']['model_name']
if model_name=='RE2V0':
dex_wrist_yaml = {
'robot': {'use_collision_manager': 1, 'tool': 'tool_stretch_gripper'},
'params': [],
'stretch_gripper': {'range_t': [0, 8022], 'zero_t': 5212},
'lift': {'i_feedforward': 1.2},
'hello-motor-lift': {'gains': {'i_safety_feedforward': 1.2}}}
if model_name == 'RE1V0':
dex_wrist_yaml = {
'robot': {'use_collision_manager': 1, 'tool': 'tool_stretch_gripper'},
'params': [],
'stretch_gripper': {'range_t': [0, 8022], 'zero_t': 5212},
'lift': {'i_feedforward': 0.54},
'hello-motor-lift': {'gains': {'i_safety_feedforward': 0.4}}}
if not exists(stretch_body.hello_utils.get_fleet_directory()+'stretch_configuration_params.yaml'):
print('Please run tool RE1_migrate_params.py before continuing. For more details, see https://forum.hello-robot.com/t/425')
sys.exit(1)
configuration_yaml=stretch_body.hello_utils.read_fleet_yaml('stretch_configuration_params.yaml')
stretch_body.hello_utils.overwrite_dict(overwritee_dict=configuration_yaml, overwriter_dict=dex_wrist_yaml)
stretch_body.hello_utils.write_fleet_yaml('stretch_configuration_params.yaml', configuration_yaml,
header=stretch_body.robot_params.RobotParams().get_configuration_params_header())

Loading…
Cancel
Save