Browse Source

rework nav and landing pages

pull/14/head
Aaron Edsinger 1 year ago
parent
commit
886345eb96
25 changed files with 198 additions and 127 deletions
  1. +1
    -1
      LICENSE
  2. +12
    -36
      README.md
  3. +19
    -0
      getting_started/README.md
  4. +9
    -0
      getting_started/best_practices.md
  5. +1
    -1
      getting_started/quick_start_guide.md
  6. +4
    -4
      getting_started/safety_guide.md
  7. BIN
     
  8. BIN
     
  9. +71
    -68
      mkdocs.yml
  10. +0
    -13
      ros1/LICENSE
  11. +5
    -4
      ros1/README.md
  12. +1
    -0
      ros1/other_nav_stack.md
  13. +1
    -0
      ros1/ros_testing.md
  14. +37
    -0
      ros2/README.md
  15. +28
    -0
      stretch_body/README.md
  16. +1
    -0
      stretch_body/tutorial_collision_avoidance.md
  17. +1
    -0
      stretch_body/tutorial_command_line_tools.md
  18. +1
    -0
      stretch_body/tutorial_dynamixel_servos.md
  19. +1
    -0
      stretch_body/tutorial_parameter_management.md
  20. +1
    -0
      stretch_body/tutorial_robot_motion.md
  21. +1
    -0
      stretch_body/tutorial_robot_sensors.md
  22. +1
    -0
      stretch_body/tutorial_safe_coding.md
  23. +1
    -0
      stretch_body/tutorial_simple_coding.py
  24. +1
    -0
      stretch_body/tutorial_splined_trajectories.md
  25. +0
    -0
      stretch_body/tutorial_tool_change.md

+ 1
- 1
LICENSE View File

@ -1,4 +1,4 @@
Copyright 2022 Alan G. Sanchez
Copyright 2022 Hello Robot Inc
The contents are licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

+ 12
- 36
README.md View File

@ -1,36 +1,12 @@
# Introduction
This repo provides instructions on installing and using code on the Stretch RE1 robot. The goal is to provide a user familiar with ROS with the tools to operate a Stretch robot.
## Stretch ROS Tutorials
1. [Getting Started](getting_started.md)
2. [Gazebo Basics](gazebo_basics.md)
3. [Teleoperating Stretch](teleoperating_stretch.md)
4. [Internal State of Stretch](internal_state_of_stretch.md)
5. [RViz Basics](rviz_basics.md)
6. [Navigation Stack](navigation_stack.md)
7. [MoveIt! Basics](moveit_basics.md)
8. [Follow Joint Trajectory Commands](follow_joint_trajectory.md)
9. [Perception](perception.md)
10. [ArUco Marker Detection](aruco_marker_detection.md)
11. [ReSpeaker Microphone Array](respeaker_microphone_array.md)
12. [FUNMAP](https://github.com/hello-robot/stretch_ros/tree/master/stretch_funmap)
13. ROS testing
14. Other Nav Stack Features
## Other ROS Examples
To help get you get started on your software development, here are examples of nodes to have the stretch perform simple tasks.
1. [Teleoperate Stretch with a Node](example_1.md) - Use a python script that sends velocity commands.
2. [Filter Laser Scans](example_2.md) - Publish new scan ranges that are directly in front of Stretch.
3. [Mobile Base Collision Avoidance](example_3.md) - Stop Stretch from running into a wall.
4. [Give Stretch a Balloon](example_4.md) - Create a "balloon" marker that goes where ever Stretch goes.
5. [Print Joint States](example_5.md) - Print the joint states of Stretch.
6. [Store Effort Values](example_6.md) - Print, store, and plot the effort values of the Stretch robot.
7. [Capture Image](example_7.md) - Capture images from the RealSense camera data.
8. [Voice to Text](example_8.md) - Interpret speech and save transcript to a text file.
9. [Voice Teleoperation of Base](example_9.md) - Use speech to teleoperate the mobile base.
10. [Tf2 Broadcaster and Listener](example_10.md) - Create a tf2 broadcaster and listener.
11. [PointCloud Transformation](example_11.md) - Convert PointCloud2 data to a PointCloud and transform to a different frame.
12. [ArUco Tag Locator](example_12.md) - Actuate the head to locate a requested ArUco marker tag and return a transform.
![](./images/banner.png)
# Overview
![](./images/stretch_top_view.png)
The Stretch Tutorials reposotory provides tutorials on programming the Stretch RE1 and RE2 robots. The tutorials are organized into the following tracks.
| Tutorial Track | Description |
|--------------------------------------------------------|-------------------------------------------------------------------|
| [Getting to Know Stretch](./getting_started/README.md) | Everything a new user of Stretch needs to get started |
| [Stretch Body](./stretch_body/README.md) | Learn how to program Stretch using its low level Python interface |
| [ROS 1](./ros1/README.md) | Learn how to program Stretch using its ROS1 interface |
| [ROS 2](./ros2/README.md) | Learn how to program Stretch using its ROS2 interface |

+ 19
- 0
getting_started/README.md View File

@ -0,0 +1,19 @@
![](../images/banner.png)
# Tutorial Track: Getting to Know Stretch
New to Stretch? Welcome!
Please take the time to get to know your robot by going through these tutorials in order.
# 1. Basics
| Tutorial | Description |
|---------------------------------------------------------|----------------------------------------------------|
| [Safety Guide](safety_guide.md) | Guide to safe operation of the Stretch RE1 and RE2 |
| [Quick Start](quick_start_guide.md) | Unboxing Stretch and getting started |
| [Best Practices](best_practices.md) | Best practices to keep Stretch safe and healthy |
| [Troubleshooting](troubleshooting_guide.md) | Solutions to common issues |
# 2. Advanced
| Tutorial | Description |
|-------------------------------------------------|---------------------------------------------------------|
| [Network Setup](untethered_operation.md) | Setting up your network to work with Stretch untethered |
| [Updating Software](updating_software.md) | How to periodically update the Stretch software |

+ 9
- 0
getting_started/best_practices.md View File

@ -0,0 +1,9 @@
# Tutorial: Stretch Best Practices
| Video | Description |
|----------------------------------------------------------------------------| ---------------------------------------------- |
| [Stretch Best Practices - Powered Off Video](https://youtu.be/mQdOGEksdYM) | How to work with Stretch when its power is off |
| [Stretch Best Practices - Powered On Video](https://youtu.be/iEaapHNfEWA) | How to work with Stretch when its power is on |
------
<div align="center"> All materials are Copyright 2020 by Hello Robot Inc. The Stretch RE1 robot has patents pending</div>

+ 1
- 1
getting_started/quick_start_guide.md View File

@ -1,4 +1,4 @@
# Stretch RE1: Quick Start Guide
# Stretch RE1 and RE2: Quick Start Guide
Congratulations on your Stretch RE1! This guide will get you started with your new robot.

getting_started/robot_safety_guide.md → getting_started/safety_guide.md View File

@ -2,7 +2,7 @@
![](./images/warning_rs.png)
The Stretch RE1 is a potentially dangerous machine with safety hazards. **If improperly used it can cause injury or death.**
The Stretch RE1 and RE2 are potentially dangerous machine with safety hazards. **If improperly used it can cause injury or death.**
* **All users must carefully read the following safety information prior to using the robot.**
* Anyone near the robot who has not read this safety information must be closely supervised at all times and made aware that the robot could be dangerous.
@ -10,7 +10,7 @@ The Stretch RE1 is a potentially dangerous machine with safety hazards. **If imp
## Intended Use
**The Stretch RE1 (“Stretch”) is intended for use by researchers to conduct research in controlled indoor environments.** This product is not intended for other uses and lacks the required certifications for other uses, such as use in the home by consumers.
**The Stretch RE1/RE2 (“Stretch”) are intended for use by researchers to conduct research in controlled indoor environments.** This product is not intended for other uses and lacks the required certifications for other uses, such as use in the home by consumers.
## Safety Hazards
@ -32,7 +32,7 @@ The robot may drive off stairs, push or pull itself over with its telescoping ar
### Stretch Should Not Be Lifted By A Single Person
Stretch with the standard gripper weighs about 50.5lb, so two or more people should lift and carry the robot. A single person can move the robot around by enabling the runstop button, tilting it over, and rolling it on flat ground.
Stretch with the standard gripper weighs about 23Kg (50.5lb), so two or more people should lift and carry the robot. A single person can move the robot around by enabling the runstop button, tilting it over, and rolling it on flat ground.
**At least two people should lift and carry the robot when needed.**
@ -172,7 +172,7 @@ The runstop logic is:
### Sharp Edges
Stretch RE1 is a piece of laboratory equipment. As such, its structure has moderately sharp edges and corners that can be unsafe. These edges can get snagged during motion, or they may cause lacerations when sufficient force is applied to a person. Care should be taken when grasping or otherwise making contact with Stretch that a sharp corner or edge is not contacted.
Stretch RE1/RE2 is a piece of laboratory equipment. As such, its structure has moderately sharp edges and corners that can be unsafe. These edges can get snagged during motion, or they may cause lacerations when sufficient force is applied to a person. Care should be taken when grasping or otherwise making contact with Stretch that a sharp corner or edge is not contacted.
### Toppling

BIN
View File


BIN
View File


+ 71
- 68
mkdocs.yml View File

@ -27,7 +27,7 @@ theme:
- navigation.instant
extra_css:
- ./docs/extra.css
- ./extra.css
markdown_extensions:
- pymdownx.highlight
@ -82,83 +82,86 @@ extra:
nav:
- Getting to Know Stretch:
- Quick Start: docs/getting_started/quick_start_guide.md
- Robot Safety: docs/getting_started/robot_safety_guide.md
- Best Practices: docs/getting_started/best_practices.md
- Overview: ./getting_started/README.md
- Robot Safety: ./getting_started/safety_guide.md
- Quick Start: ./getting_started/quick_start_guide.md
- Best Practices: ./getting_started/best_practices.md
- Troubleshooting: ./getting_started/troubleshooting.md
- Advanced:
- Untethered Operation: docs/getting_started/untethered_operation.md
- Updating Software: docs/getting_started/updating_software.md
- Untethered Operation: ./getting_started/untethered_operation.md
- Updating Software: ./getting_started/updating_software.md
- Stretch Body:
- Overview: ./stretch_body/README.md
- Basics:
- Safe Coding: tutorial_safe_coding.md
- Command line Tools: tutorial_command_line_tools.md
- Simple Coding: tutorial_simple_coding.py
- Robot Motion: tutorial_robot_motion.md
- Robot Sensors: tutorial_robot_sensors.md
- Safe Coding: ./stretch_body/tutorial_safe_coding.md
- Command line Tools: ./stretch_body/tutorial_command_line_tools.md
- Simple Coding: ./stretch_body/tutorial_simple_coding.py
- Robot Motion: ./stretch_body/tutorial_robot_motion.md
- Robot Sensors: ./stretch_body/tutorial_robot_sensors.md
- Advanced:
- Dynamixel Servos: tutorial_dynamixel_servos.md
- Parameter Management: tutorial_parameter_management.md
- Splined Trajectories: tutorial_splined_trajectories.md
- Collision Avoidance: tutorial_collision_avoidance.md
- Custom Wrist DOF: ./extending_wrist_dof/README.md
- Dynamixel Servos: ./stretch_body/tutorial_dynamixel_servos.md
- Parameter Management: ./stretch_body/tutorial_parameter_management.md
- Splined Trajectories: ./stretch_body/tutorial_splined_trajectories.md
- Collision Avoidance: ./stretch_body/tutorial_collision_avoidance.md
- Changing Tools: ./stretch_body/tutorial_tool_change.md
- ROS1:
- Overview: README.md
- Overview: ./ros1/README.md
- Basics:
- Getting Started: getting_started.md
- Gazebo Basics: gazebo_basics.md
- Teleoperating Stretch: teleoperating_stretch.md
- Internal State of Stretch: internal_state_of_stretch.md
- RViz Basics: rviz_basics.md
- Navigation Stack: navigation_stack.md
- MoveIt! Basics: moveit_basics.md
- Follow Joint Trajectory Commands: follow_joint_trajectory.md
- Perception: perception.md
- ArUco Marker Detection: aruco_marker_detection.md
- ReSpeaker Microphone Array: respeaker_microphone_array.md
- Getting Started: ./ros1/getting_started.md
- Gazebo Basics: ./ros1/gazebo_basics.md
- Teleoperating Stretch: ./ros1/teleoperating_stretch.md
- Internal State of Stretch: ./ros1/internal_state_of_stretch.md
- RViz Basics: ./ros1/rviz_basics.md
- Navigation Stack: ./ros1/navigation_stack.md
- MoveIt! Basics: ./ros1/moveit_basics.md
- Follow Joint Trajectory Commands: ./ros1/follow_joint_trajectory.md
- Perception: ./ros1/perception.md
- ArUco Marker Detection: ./ros1/aruco_marker_detection.md
- ReSpeaker Microphone Array: ./ros1/respeaker_microphone_array.md
- FUNMAP: https://github.com/hello-robot/stretch_ros/tree/master/stretch_funmap
- ROS testing: foo.md
- Other Nav Stack Features: foo.md
- ROS testing: ./ros1/ros_testing.md
- Other Nav Stack Features: ./ros1/other_nav_features.md
- Other Examples:
- Teleoperate Stretch with a Node: example_1.md
- Filter Laser Scans: example_2.md
- Mobile Base Collision Avoidance: example_3.md
- Give Stretch a Balloon: example_4.md
- Print Joint States: example_5.md
- Store Effort Values: example_6.md
- Capture Image: example_7.md
- Voice to Text: example_8.md
- Voice Teleoperation of Base: example_9.md
- Tf2 Broadcaster and Listener: example_10.md
- PointCloud Transformation: example_11.md
- ArUco Tag Locator: example_12.md
- Teleoperate Stretch with a Node: ./ros1/example_1.md
- Filter Laser Scans: ./ros1/example_2.md
- Mobile Base Collision Avoidance: ./ros1/example_3.md
- Give Stretch a Balloon: ./ros1/example_4.md
- Print Joint States: ./ros1/example_5.md
- Store Effort Values: ./ros1/example_6.md
- Capture Image: ./ros1/example_7.md
- Voice to Text: ./ros1/example_8.md
- Voice Teleoperation of Base: ./ros1/example_9.md
- Tf2 Broadcaster and Listener: ./ros1/example_10.md
- PointCloud Transformation: ./ros1/example_11.md
- ArUco Tag Locator: ./ros1/example_12.md
- ROS2:
- Overview: README.md
- Overview: ./ros2/README.md
- Basics:
- Getting Started: getting_started.md
- Gazebo Basics: gazebo_basics.md
- Teleoperating Stretch: teleoperating_stretch.md
- Internal State of Stretch: internal_state_of_stretch.md
- RViz Basics: rviz_basics.md
- Navigation Stack: navigation_stack.md
- MoveIt! Basics: moveit_basics.md
- Follow Joint Trajectory Commands: follow_joint_trajectory.md
- Perception: perception.md
- ArUco Marker Detection: aruco_marker_detection.md
- ReSpeaker Microphone Array: respeaker_microphone_array.md
- Getting Started: ./ros2/getting_started.md
- Gazebo Basics: ./ros2/gazebo_basics.md
- Teleoperating Stretch: ./ros2/teleoperating_stretch.md
- Internal State of Stretch: ./ros2/internal_state_of_stretch.md
- RViz Basics: ./ros2/rviz_basics.md
- Navigation Stack: ./ros2/navigation_stack.md
- MoveIt! Basics: ./ros2/moveit_basics.md
- Follow Joint Trajectory Commands: ./ros2/follow_joint_trajectory.md
- Perception: ./ros2/perception.md
- ArUco Marker Detection: ./ros2/aruco_marker_detection.md
- ReSpeaker Microphone Array: ./ros2/respeaker_microphone_array.md
- FUNMAP: https://github.com/hello-robot/stretch_ros/tree/master/stretch_funmap
- ROS testing: foo.md
- Other Nav Stack Features: foo.md
- ROS testing: ./ros2/ros_testing.md
- Other Nav Stack Features: ./ros2/other_nav_features.md
- Other Examples:
- Teleoperate Stretch with a Node: example_1.md
- Filter Laser Scans: example_2.md
- Mobile Base Collision Avoidance: example_3.md
- Give Stretch a Balloon: example_4.md
- Print Joint States: example_5.md
- Store Effort Values: example_6.md
- Capture Image: example_7.md
- Voice to Text: example_8.md
- Voice Teleoperation of Base: example_9.md
- Tf2 Broadcaster and Listener: example_10.md
- PointCloud Transformation: example_11.md
- ArUco Tag Locator: example_12.md
- Teleoperate Stretch with a Node: ./ros2/example_1.md
- Filter Laser Scans: ./ros2/example_2.md
- Mobile Base Collision Avoidance: ./ros2/example_3.md
- Give Stretch a Balloon: ./ros2/example_4.md
- Print Joint States: ./ros2/example_5.md
- Store Effort Values: ./ros2/example_6.md
- Capture Image: ./ros2/example_7.md
- Voice to Text: ./ros2/example_8.md
- Voice Teleoperation of Base: ./ros2/example_9.md
- Tf2 Broadcaster and Listener: ./ros2/example_10.md
- PointCloud Transformation: ./ros2/example_11.md
- ArUco Tag Locator: ./ros2/example_12.md

+ 0
- 13
ros1/LICENSE View File

@ -1,13 +0,0 @@
Copyright 2022 Alan G. Sanchez
The contents are licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

+ 5
- 4
ros1/README.md View File

@ -1,8 +1,9 @@
# Introduction
![](../images/banner.png)
# Tutorial Track: Stretch ROS1
This repo provides instructions on installing and using code on the Stretch RE1 robot. The goal is to provide a user familiar with ROS with the tools to operate a Stretch robot.
This tutorial track is for users looking to become familiar with programming the Stretch RE1 and RE2 via ROS1. We recommend going through the tutorials in the following order:
## Stretch ROS Tutorials
## Stretch ROS1 Tutorials
1. [Getting Started](getting_started.md)
2. [Gazebo Basics](gazebo_basics.md)
3. [Teleoperating Stretch](teleoperating_stretch.md)
@ -19,7 +20,7 @@ This repo provides instructions on installing and using code on the Stretch RE1
14. Other Nav Stack Features
## Other ROS Examples
## Other ROS1 Examples
To help get you get started on your software development, here are examples of nodes to have the stretch perform simple tasks.
1. [Teleoperate Stretch with a Node](example_1.md) - Use a python script that sends velocity commands.

+ 1
- 0
ros1/other_nav_stack.md View File

@ -0,0 +1 @@
Coming soon

+ 1
- 0
ros1/ros_testing.md View File

@ -0,0 +1 @@
Coming soon

+ 37
- 0
ros2/README.md View File

@ -0,0 +1,37 @@
![](../images/banner.png)
# Tutorial Track: Stretch ROS2
This tutorial track is for users looking to become familiar with programming the Stretch RE1 and RE2 via ROS2. We recommend going through the tutorials in the following order:
## Stretch ROS2 Tutorials
1. [Getting Started](getting_started.md)
2. [Gazebo Basics](gazebo_basics.md)
3. [Teleoperating Stretch](teleoperating_stretch.md)
4. [Internal State of Stretch](internal_state_of_stretch.md)
5. [RViz Basics](rviz_basics.md)
6. [Navigation Stack](navigation_stack.md)
7. [MoveIt! Basics](moveit_basics.md)
8. [Follow Joint Trajectory Commands](follow_joint_trajectory.md)
9. [Perception](perception.md)
10. [ArUco Marker Detection](aruco_marker_detection.md)
11. [ReSpeaker Microphone Array](respeaker_microphone_array.md)
12. [FUNMAP](https://github.com/hello-robot/stretch_ros/tree/master/stretch_funmap)
13. ROS testing
14. Other Nav Stack Features
## Other ROS2 Examples
To help get you get started on your software development, here are examples of nodes to have the stretch perform simple tasks.
1. [Teleoperate Stretch with a Node](example_1.md) - Use a python script that sends velocity commands.
2. [Filter Laser Scans](example_2.md) - Publish new scan ranges that are directly in front of Stretch.
3. [Mobile Base Collision Avoidance](example_3.md) - Stop Stretch from running into a wall.
4. [Give Stretch a Balloon](example_4.md) - Create a "balloon" marker that goes where ever Stretch goes.
5. [Print Joint States](example_5.md) - Print the joint states of Stretch.
6. [Store Effort Values](example_6.md) - Print, store, and plot the effort values of the Stretch robot.
7. [Capture Image](example_7.md) - Capture images from the RealSense camera data.
8. [Voice to Text](example_8.md) - Interpret speech and save transcript to a text file.
9. [Voice Teleoperation of Base](example_9.md) - Use speech to teleoperate the mobile base.
10. [Tf2 Broadcaster and Listener](example_10.md) - Create a tf2 broadcaster and listener.
11. [PointCloud Transformation](example_11.md) - Convert PointCloud2 data to a PointCloud and transform to a different frame.
12. [ArUco Tag Locator](example_12.md) - Actuate the head to locate a requested ArUco marker tag and return a transform.

+ 28
- 0
stretch_body/README.md View File

@ -0,0 +1,28 @@
![](../images/banner.png)
# Tutorial Track: Stretch Body
[Stretch Body](https://github.com/hello-robot/stretch_body) is a set of Python packages that allow a developer to directly program the hardware of the Stretch RE1 robot. The Stretch Body interface is intended for users who chose to not use ROS.
Stretch Body currently supports both Python2 and Python3. These tutorials assume a general familiarity with Python as well as basic robot motion control.
# 1. Basics
| Tutorial | Description |
|------------------------------------------------------|-----------------------------------------------------|
| [Safe Coding](tutorial_safe_coding.md) | Best practices in writing safe Stretch Body code |
| [Command line Tools](tutorial_command_line_tools.md) | Introduction to the Stretch Body command line tools |
| [Simple Coding](tutorial_simple_coding.py) | Simple examples of writing Stretch Body code |
| [Robot Motion](tutorial_robot_motion.md) | Exploring how to command robot motion |
| [Robot Sensors](tutorial_robot_sensors.md) | Exploring how to read robot sensors |
# 2. Advanced
| Tutorial | Description |
|----------------------------------------------------------|-------------------------------------------------------------|
| [Dynamixel Servos](tutorial_dynamixel_servos.md) | How to configure and work with the Stretch Dynamixel servos |
| [Parameter Management](tutorial_parameter_management.md) | How to work with Stretch's parameter system |
| [Splined Trajectories](tutorial_splined_trajectories.md) | How to generated coordinated, smooth, and full-body motion |
| [Collision Avoidance](tutorial_collision_avoidance.md) | How to work with Stretch's collision avoidance system |
| [Changing Tools](tutorial_tool_change.md) | How to integrate 3rd party tools onto the Stretch wrist |

+ 1
- 0
stretch_body/tutorial_collision_avoidance.md View File

@ -0,0 +1 @@
Coming soon

+ 1
- 0
stretch_body/tutorial_command_line_tools.md View File

@ -0,0 +1 @@
Coming soon

+ 1
- 0
stretch_body/tutorial_dynamixel_servos.md View File

@ -0,0 +1 @@
Coming soon

+ 1
- 0
stretch_body/tutorial_parameter_management.md View File

@ -0,0 +1 @@
Coming soon

+ 1
- 0
stretch_body/tutorial_robot_motion.md View File

@ -0,0 +1 @@
Coming soon

+ 1
- 0
stretch_body/tutorial_robot_sensors.md View File

@ -0,0 +1 @@
Coming soon

+ 1
- 0
stretch_body/tutorial_safe_coding.md View File

@ -0,0 +1 @@
Coming soon

+ 1
- 0
stretch_body/tutorial_simple_coding.py View File

@ -0,0 +1 @@
Coming soon

+ 1
- 0
stretch_body/tutorial_splined_trajectories.md View File

@ -0,0 +1 @@
Coming soon

stretch_body/tool_change_tutorial.md → stretch_body/tutorial_tool_change.md View File


Loading…
Cancel
Save