Binit Shah 3e213efe98 | 1 year ago | |
---|---|---|
.. | ||
images | 1 year ago | |
README.md | 1 year ago | |
align_to_aruco.md | 2 years ago | |
coming_soon.md | 2 years ago | |
deep_perception.md | 2 years ago | |
example_1.md | 2 years ago | |
example_2.md | 2 years ago | |
example_3.md | 2 years ago | |
example_4.md | 2 years ago | |
example_10.md | 2 years ago | |
follow_joint_trajectory.md | 2 years ago | |
gazebo_basics.md | 2 years ago | |
getting_started.md | 1 year ago | |
internal_state_of_stretch.md | 2 years ago | |
moveit_basics.md | 2 years ago | |
moveit_movegroup_demo.md | 2 years ago | |
moveit_rviz_demo.md | 2 years ago | |
navigation_stack.md | 2 years ago | |
obstacle_avoider.md | 2 years ago | |
rviz_basics.md | 1 year ago | |
teleoperating_stretch.md | 1 year ago |
NOTE: Stretch's ROS2 packages and this ROS2 tutorial track are both under active development. They are considered 'beta', and we welcome any feedback. If you find any issues or bugs, please see the Stretch ROS2 and Stretch Tutorials issue trackers.
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 allows 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 mutiple 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.
This tutorial track is for users looking to become familiar with programming the Stretch RE1 and RE2 via ROS 2. We recommend going through the tutorials in the following order:
Tutorial | Description | |
---|---|---|
1 | Getting Started | Setup instructions for ROS 2 on Stretch |
2 | Follow Joint Trajectory Commands | Control joints using joint trajectory server. |
3 | Internal State of Stretch | Monitor the joint states of Stretch. |
4 | RViz Basics | Visualize topics in Stretch. |
5 | MoveIt2 Basics | Motion planning and control for the arm using MoveIt. |
6 | MoveIt2 with Rviz | Motion planning and control for the arm using MoveIt. |
7 | MoveIt2 MoveGroup C++ API | Motion planning and control for the arm using MoveIt. |
To help get you get started on your software development, here are examples of nodes to have the stretch perform simple tasks.
Tutorial | Description | |
---|---|---|
1 | Teleoperate Stretch with a Node | Use a python script that sends velocity commands. |
2 | Filter Laser Scans | Publish new scan ranges that are directly in front of Stretch. |
3 | Mobile Base Collision Avoidance | Stop Stretch from running into a wall. |
4 | Give Stretch a Balloon | Create a "balloon" marker that goes where ever Stretch goes. |
5 | Tf2 Broadcaster and Listener | Create a tf2 broadcaster and listener. |
6 | Obstacle Avoider | Avoid obstacles using the planar lidar. |
7 | Align to ArUco | Detect ArUco fiducials using OpenCV and align to them. |
8 | Deep Perception | Use YOLOv5 to detect 3D objects in a point cloud. |