Skip to content

Commit 658e6d8

Browse files
authored
Typos (#38)
* ros2 README/getting_started typos * ROS 2 misspelling * indenting for better rendering on website
1 parent b992310 commit 658e6d8

13 files changed

Lines changed: 104 additions & 96 deletions

developing/basics.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ In this section, we'll cover where to find the files that are important for deve
6868
Your account's files all live under the home folder. This directory contains standard organizational folders like `Documents` or `Downloads`, as well as folders that are unique to Stretch's SDK, such as:
6969

7070
- `stretch_user`: The [Stretch User folder](#the-stretch-user-folder) is required to be present in the home directory for Stretch's SDK to work correctly. It contains calibration data unique to your robot and assets (e.g. neural net checkpoints, maps for navigation, etc.) used by various programs. If you're missing this directory, reach out to support.
71-
- `ament_ws`: The Ament Workspace folder contains Stretch's ROS2 SDK. This directory will be covered in more detail in the [Using ROS 2 with Stretch](#TODO) tutorial. If this folder is missing, you may be using an older [robot distribution](../../../software/distributions/) and should consider upgrading.
71+
- `ament_ws`: The Ament Workspace folder contains Stretch's ROS 2 SDK. This directory will be covered in more detail in the [Using ROS 2 with Stretch](#TODO) tutorial. If this folder is missing, you may be using an older [robot distribution](../../../software/distributions/) and should consider upgrading.
7272
- `catkin_ws`: The Catkin Workspace folder contains Stretch's ROS1 SDK. If this folder exists, you may be using an older [robot distribution](../../../software/distributions/) and should consider upgrading.
7373

7474
![files](./images/files.png)
@@ -79,8 +79,8 @@ The Stretch User folder contains calibration data unique to your robot and asset
7979

8080
- `stretch-yyy-xxxx`: This is the [robot calibration directory](#the-robot-calibration-folder). Its naming scheme is "stretch-" following by "re1" for a Stretch RE1, "re2" for a Stretch 2, or "se3" for a Stretch 3, finally followed by your robot's four digit serial number.
8181
- `stretch_deep_perception_models`: This directory contains open deep learning models from third parties, including object detection, head detection, facial landmarks detection, and human pose detection.
82-
- `maps`: This directory contains [occupancy maps](https://www.cs.cmu.edu/~16831-f14/notes/F14/16831_lecture06_agiri_dmcconac_kumarsha_nbhakta.pdf) that are to be used with the Stretch Nav2 ROS2 package.
83-
- `debug`: This directory contains debug output from the Stretch FUNMAP ROS2 package.
82+
- `maps`: This directory contains [occupancy maps](https://www.cs.cmu.edu/~16831-f14/notes/F14/16831_lecture06_agiri_dmcconac_kumarsha_nbhakta.pdf) that are to be used with the Stretch Nav2 ROS 2 package.
83+
- `debug`: This directory contains debug output from the Stretch FUNMAP ROS 2 package.
8484
- `log`: This directory contains logfiles from various Stretch programs.
8585

8686
### The Robot Calibration Folder
@@ -169,7 +169,7 @@ TODO - CLI flags
169169
170170
### APT Package Manager
171171
172-
APT is a system package manager used to install applications. It can install packages that have no GUI. For example, all ROS2 software is installed through APT. The APT CLI enables you to introspect and install new software onto Stretch. Since APT makes changes at the system level, it requires "super user access", which means each of the commands below is preceded by `sudo` and will ask for your password.
172+
APT is a system package manager used to install applications. It can install packages that have no GUI. For example, all ROS 2 software is installed through APT. The APT CLI enables you to introspect and install new software onto Stretch. Since APT makes changes at the system level, it requires "super user access", which means each of the commands below is preceded by `sudo` and will ask for your password.
173173
174174
| Command | Arguments | Description | Examples |
175175
|-----------------|-----------------------------|---------------------------------------------------------------|-----------------------|

developing/cli.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ For<span class="w"> </span>use<span class="w"> </span>with<span class="w"> </spa
9696
<span class="k"> hello-robot-stretch-factory = </span><span class="m">0.4.13</span>
9797
<span class="k"> hello-robot-stretch-diagnostics = </span><span class="m">0.0.14</span>
9898
<span class="k"> hello-robot-stretch-urdf = </span><span class="m">0.0.18</span>
99-
<span class="s">[Pass] ROS2 Humble is ready</span>
99+
<span class="s">[Pass] ROS 2 Humble is ready</span>
100100
<span class="k"> Workspace at ~/ament_ws/src/stretch_ros2</span>
101101
</code></pre></div>
102102

103-
In addition to checking the robot's hardware, this tool also prints out a software report. This includes which version of Stretch's Python, ROS2, etc. software your system has installed. Check out the [Keeping your Software Up-to-date](../../../software/updating_software/#identifying-your-current-software) guide for a how-to on using this report to keep your robot's software up-to-date.
103+
In addition to checking the robot's hardware, this tool also prints out a software report. This includes which version of Stretch's Python, ROS 2, etc. software your system has installed. Check out the [Keeping your Software Up-to-date](../../../software/updating_software/#identifying-your-current-software) guide for a how-to on using this report to keep your robot's software up-to-date.
104104

105105
### `stretch_robot_home.py`
106106
[Link to source code](https://github.com/hello-robot/stretch_body/blob/master/tools/bin/stretch_robot_home.py)

developing/onboot.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Notice the 3 sections: Unit, Service, and Install.
2828

2929
"Unit" describes the service and declares what the service needs. For web teleop, we need the robot to be connected to the network before launching our application, so we say `Wants=network-online.target` and `After=network-online.target`. There are many targets available. For example, you could target `graphical-session.target` if your application needs a screen to render to. Also notice `ExecStartPre=/bin/sh -c 'until ping -c1 web.hello-robot.com; do sleep 1; done;'` in the next section, which is a reliable way of ensuring the robot is connected to the network **and** able to connect to web.hello-robot.com before launching the service.
3030

31-
"Service" describes what the service should run. `ExecStart=/home/hello-robot/ament_ws/src/stretch_web_teleop/launch_interface.sh -f` is telling systemd that I want it to run the `launch_interface.sh` bash script in my ROS2 workspace. I use the absolute path including `/home/hello-robot` because there is only one user on my robot called "hello-robot" and my unit file is specific to the "hello-robot" user. Here's what launch_interface.sh looks like:
31+
"Service" describes what the service should run. `ExecStart=/home/hello-robot/ament_ws/src/stretch_web_teleop/launch_interface.sh -f` is telling systemd that I want it to run the `launch_interface.sh` bash script in my ROS 2 workspace. I use the absolute path including `/home/hello-robot` because there is only one user on my robot called "hello-robot" and my unit file is specific to the "hello-robot" user. Here's what launch_interface.sh looks like:
3232

3333
```bash
3434
#!/bin/bash
@@ -55,7 +55,7 @@ echo "Stopping previous instances..."
5555
echo "Reload USB bus..."
5656
sudo udevadm control --reload-rules && sudo udevadm trigger &>> $REDIRECT_LOGFILE
5757

58-
echo "Start ROS2..."
58+
echo "Start ROS 2..."
5959
sleep 2;
6060
screen -dm -S "web_teleop_ros" ros2 launch stretch_web_teleop web_interface.launch.py $MAP_ARG $TTS_ARG &>> $REDIRECT_LOGFILE
6161
sleep 3;
@@ -65,12 +65,12 @@ Notice that almost every command has `&>> $REDIRECT_LOGFILE` after it. The reaso
6565

6666
This bash script performs four steps before starting the application:
6767

68-
- Setting up the environment. It's important that env vars like HELLO_FLEET_ID are set and that ROS2 is enabled if your application is based on ROS2
68+
- Setting up the environment. It's important that env vars like HELLO_FLEET_ID are set and that ROS 2 is enabled if your application is based on ROS 2
6969
- Freeing the robot process. Systemd can automatically restart services if they experience an error, so it's nice for this script to ensure the robot is freed up before continuing.
7070
- Stopping previous instances of web teleop.
7171
- Reloading the USB bus. `network-online.target` comes after the USB bus is configured in the boot sequence, but it doesn't hurt to ensure USB is ready.
7272

73-
Lastly, the script launches our Web Teleop ROS2 application inside of GNU `screen`. We use `screen` because it collects ROS2 logs in a nicer way than other tools. However, because `screen` launches another process to run the app, we need to inform systemd that the application is still running in the background. Hence, we include `RemainAfterExit=yes` in the unit file
73+
Lastly, the script launches our Web Teleop ROS 2 application inside of GNU `screen`. We use `screen` because it collects ROS 2 logs in a nicer way than other tools. However, because `screen` launches another process to run the app, we need to inform systemd that the application is still running in the background. Hence, we include `RemainAfterExit=yes` in the unit file
7474

7575
In the last section, "Install", we set `WantedBy=graphical-session.target`. It's important that our service is wanted by some other service, otherwise our service would never be executed by systemd. By telling systemd that our service is wanted by `graphical-session.target`, which is part of the boot sequence, our service also becomes part of the boot sequence.
7676

@@ -93,7 +93,7 @@ This allows ALL users to run `shutdown`, `udevadm`, `pkill`, and `wifi-connect`
9393

9494
### Where to put unit files
9595

96-
The unit file described above is a "user unit file", as opposed to a "system unit file". User unit files run when the user logins. By default, the "hello-robot" user is configured to login automatically on boot. Furthermore, since the Web Teleop unit file needs a ROS2 workspace in the "hello-robot" user, it makes sense to use a user unit file.
96+
The unit file described above is a "user unit file", as opposed to a "system unit file". User unit files run when the user logins. By default, the "hello-robot" user is configured to login automatically on boot. Furthermore, since the Web Teleop unit file needs a ROS 2 workspace in the "hello-robot" user, it makes sense to use a user unit file.
9797

9898
User unit files live in the `~/.config/systemd/user` directory. So when installing the Web Teleop application to launch on boot, we run:
9999

mkdocs_rt.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ extra:
8383

8484
nav:
8585
- Getting Started: ./getting_started.md
86-
- ROS2 Basics:
86+
- ROS 2 Basics:
8787
- Creating Packages & Nodes: ./writing_nodes.md
88-
- Introduction to ROS2 Client (rclpy): ./intro_to_ros2.md
88+
- Introduction to ROS 2 Client (rclpy): ./intro_to_ros2.md
8989
- Introduction to HelloNode: ./intro_to_hellonode.md
9090
- Simulation Tutorial: ./stretch_simulation.md
9191
- Teleoperation: ./teleoperating_stretch.md

ros2/README.md

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,34 +14,31 @@ Ensure that:
1414

1515
## Robot Operating System 2 (ROS 2)
1616

17-
ROS 2 is the successor to ROS, The ROS in ROS 2 stands for "robot operating system", but despite the name, ROS is not an operating system. It's a middleware framework that is a collection of transport protocols, development and debugging tools, and open-source packages.
17+
ROS 2 is the successor to ROS. The ROS in ROS 2 stands for "robot operating system", but despite the name, ROS is not an operating system. It's a middleware framework that is a collection of transport protocols, development and debugging tools, and open-source packages.
1818

1919
As a transport protocol, ROS enables distributed communication via messages between nodes. As a development and debugging toolkit, ROS provides build systems that allow for writing applications in a wide variety of languages (Python and C++ are used in this tutorial track), a launch system to manage the execution of multiple nodes simultaneously, and command line tools to interact with the running system. Finally, as a popular ecosystem, there are many open-source ROS packages that allow users to quickly prototype with new sensors, actuators, planners, perception stacks, and more.
2020

21-
22-
Despite the name, ROS is not an operating system. ROS is a middleware framework that is a collection of transport protocols, development and debugging tools, and open-source packages. As a transport protocol, ROS enables distributed communication via messages between nodes. As a development and debugging toolkit, ROS provides build systems that allow for writing applications in a wide variety of languages (Python and C++ are used in this tutorial track), a launch system to manage the execution of multiple nodes simultaneously, and command line tools to interact with the running system. Finally, as a popular ecosystem, there are many open-source ROS packages that allow users to quickly prototype with new sensors, actuators, planners, perception stacks, and more.
23-
2421
This tutorial track is for users looking to get familiar with programming Stretch robots via ROS 2. We recommend going through the tutorials in the following order:
2522

2623
## Basics
2724

2825
| | Tutorial | Description |
2926
|--|---------------------------------------------------------------------------------|----------------------------------------------------|
30-
| 1 | [Creating your own package, launch files, nodes](writing_nodes.md) | Setup instructions for ROS 2 on Stretch|
31-
| 2 | [Simulation Tutorial](stretch_simulation.md) | Explore the client library used in ROS2 |
27+
| 1 | [Creating your own package, launch files, nodes](writing_nodes.md) | Setup instructions for ROS 2 on Stretch.|
28+
| 2 | [Simulation Tutorial](stretch_simulation.md) | Explore the client library used in ROS 2. |
3229
| 3 | [Teleoperating Stretch](teleoperating_stretch.md) | Control Stretch with a Keyboard or a Gamepad controller. |
3330
| 4 | [RViz Basics](rviz_basics.md) | Visualize topics in Stretch. |
3431
| 5 | [Follow Joint Trajectory Commands](follow_joint_trajectory.md) | Control joints using joint trajectory server. |
35-
| 6 | [Introduction to HelloNode](intro_to_hellonode.md) | Explore the Hello Node class to create a ROS2 node for Stretch |
36-
| 7 | [Robot Driver](robot_drivers.md) | ROS2 Wrapper for the python API. |
32+
| 6 | [Introduction to HelloNode](intro_to_hellonode.md) | Explore the HelloNode class to create a ROS 2 node for Stretch. |
33+
| 7 | [Robot Driver](robot_drivers.md) | ROS 2 Wrapper for the python API. |
3734
| 8 | [Twist Control](twist_control.md) | Using Twist messages to control the mobile base. |
3835
| 9 | [Sensors](sensors_tutorial.md) | Stretch sensors including the ReSpeaker microphone array, IMU, bump sensors, and cliff sensors. |
3936
| 10 | [Nav2 Stack](navigation_overview.md) | Motion planning and control for mobile base. |
40-
| 11 | [Perception](perception.md) | Use the Realsense D435i camera to visualize the environment. |
37+
| 11 | [Perception](perception.md) | Use the RealSense D435i camera to visualize the environment. |
4138
| 12 | [Deep Perception](deep_perception.md) | Perception using Deep Learning. |
4239
| 13 | [ArUco Marker Detection](aruco_marker_detection.md) | Localize objects using ArUco markers. |
4340
| 14 | [Offloading Computation Tutorial](remote_compute.md) | Offloading computationally intensive processes. |
44-
| 15 | [Avoiding Race Conditions and Deadlocks](avoiding_deadlocks_race_conditions.md) | Learn how to avoid Race Conditions and Deadlocks |
41+
| 15 | [Avoiding Race Conditions and Deadlocks](avoiding_deadlocks_race_conditions.md) | Learn how to avoid Race Conditions and Deadlocks. |
4542
| 16 | [Autonomy Demos](demo_hello_world.md) | A few demos showcasing Stretch's autonomous capabilities. |
4643
| 17 | [FUNMAP](https://github.com/hello-robot/stretch_ros2/tree/humble/stretch_funmap) | Fast Unified Navigation, Manipulation and Planning. |
4744

@@ -56,13 +53,13 @@ To help get you started on your software development, here are examples of nodes
5653
| 1 | [Voice to Text](speech_to_text.md) | Interpret speech and save transcript to a text file.|
5754
| 2 | [Voice Teleoperation of Base](voice_teleop.md) | Use speech to teleoperate the mobile base.|
5855
| 3 | [Filter Laser Scans](lidar_filtering.md) | Publish new scan ranges that are directly in front of Stretch.|
59-
| 4 | [Give Stretch a Balloon](rviz_markers.md) | Create a "balloon" marker that goes where ever Stretch goes.|
56+
| 4 | [Give Stretch a Balloon](rviz_markers.md) | Create a "balloon" marker that goes wherever Stretch goes.|
6057
| 5 | [Align to ArUco](align_to_aruco.md) | Detect ArUco fiducials using OpenCV and align to them.|
6158
| 6 | [ArUco Tag Locator](aruco_locator.md) | Actuate the head to locate a requested ArUco marker tag and return a transform.|
6259
| 7 | [Print Joint States](joint_states.md) | Print the joint states of Stretch.|
6360
| 8 | [Store Effort Values](joint_effort_plotting.md) | Print, store, and plot the effort values of the Stretch robot.|
6461
| 9 | [Tf2 Broadcaster and Listener](tf2_transforms.md) | Create a tf2 broadcaster and listener.|
65-
| 10 | [Capture Image](realsense_camera.md) | Capture images from the RealSense camera data.|
62+
| 10 | [Capture Image](realsense_camera.md) | Capture images from RealSense camera data.|
6663
| 11 | [Mobile Base Collision Avoidance](collision_avoidance.md) | Stop Stretch from running into a wall.|
6764
| 12 | [Obstacle Avoider](obstacle_avoider.md) | Avoid obstacles using the planar lidar. |
6865
<!--| 11 | [PointCloud Transformation](example_11.md) | Convert PointCloud2 data to a PointCloud and transform to a different frame.| -->

ros2/align_to_aruco.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ArUco markers are a type of fiducials that are used extensively in robotics for
44

55
There are three main parameters to creating an ArUco tag:
66

7-
- Dictionary Size (Use 6x6_250 when using Stretch tutorials or ROS2 nodes, this is explained more [below](#aruco-detection))
7+
- Dictionary Size (Use 6x6_250 when using Stretch tutorials or ROS 2 nodes, this is explained more [below](#aruco-detection))
88
- ID (A unique identifier for the tag, see [Create a New ArUco Marker](#create-a-new-aruco-marker) for reserved IDs)
99
- Marker Size (The physical dimensions of the tag in mm, this can be customized freely.)
1010

0 commit comments

Comments
 (0)