You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
3.4 KiB

3 years ago
  1. ![](../images/banner.png)
  2. ## Overview
  3. *stretch_description* provides materials for a [URDF](http://wiki.ros.org/urdf) kinematic model of the Stretch mobile manipulator from Hello Robot Inc.
  4. ## Quick View
  5. ```
  6. roslaunch stretch_description display.launch
  7. ```
  8. ## Details
  9. The *meshes directory* contains [STL mesh files](https://en.wikipedia.org/wiki/STL_(file_format)) representing the exterior geometry of various parts of the robot.
  10. The *urdf directory* contains [xacro files](http://wiki.ros.org/xacro) representing various parts of the robot that are used to generate the robot's URDF.
  11. stretch_ros expects a URDF with the name stretch.urdf to reside within the urdf directory. The file stretch.urdf serves as the URDF for the robot and must be generated. Typically, it is a calibrated urdf file unique to the particular Stretch robot being used. To generate this file, please read the documentation within stretch_ros/stretch_calibration.
  12. The xacro_to_urdf.sh will usually only be indirectly run as part of various scripts and launch files within stretch_ros/stretch_calibration.
  13. Sometimes a stretch_uncalibrated.urdf file will reside with the urdf directory. This file is typically generated directly from the xacro files without any alterations.
  14. ## Exporting a URDF
  15. Sometimes a URDF is useful outside of ROS, such as for simulations and analysis. Running the *export_urdf.sh* script in the urdf directory will export a full URDF model of the robot based on stretch.urdf.
  16. The exported URDF will be found within an exported_urdf directory. It is also copied to a directory for your specific robot found under ~/stretch_user. The exported URDF includes meshes and controller calibration YAML files. The exported URDF can be visualized using `stretch_robot_urdf_visualizer.py`, which is part of the stretch_body Python code.
  17. ## Changing the Tool
  18. 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.
  19. `<xacro:include filename="stretch_gripper.xacro" />`
  20. As an example we provide the xacro `stretch_dry_erase_marker.xacro` and its dependent mesh files with stretch_ros.
  21. Some of the tools found in the [Stretch Tool Share](https://github.com/hello-robot/stretch_tool_share/) include URDF data. To integrate these tools into the URDF for your Stretch
  22. ```bash
  23. >>$ cd ~/repos
  24. >>$ git clone https://github.com/hello-robot/stretch_tool_share
  25. >>$ cd stretch_tool_share/<tool name>
  26. >>$ cp stretch_description/urdf/* ~/catkin_ws/src/stretch_ros/stretch_description/urdf/
  27. >>$ cp stretch_description/meshes/* ~/catkin_ws/src/stretch_ros/stretch_description/meshes/
  28. ```
  29. Next add the xacro for the particular tool to `/stretch_description/urdf/stretch_description.xacro`. Then you can generate and preview the uncalibrated URDF:
  30. ```bash
  31. >>$ cd ~/catkin_ws/src/stretch_ros/stretch_description/urdf
  32. >>$ cp stretch.urdf stretch.urdf.bak
  33. >>$ rosrun stretch_calibration update_urdf_after_xacro_change.sh
  34. ```
  35. Now visualize the new tool
  36. ```bash
  37. >>$ roslaunch stretch_calibration simple_test_head_calibration.launch
  38. ```
  39. ## License and Patents
  40. Patents are pending that cover aspects of the Stretch RE1 mobile manipulator.
  41. For license information, please see the LICENSE files.