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.
 
hello-jesus 3fd117339d
example_2.md
1 year ago
..
images Add details to getting started tutorial 1 year ago
README.md Add link to stretcha_ros2 repo in overview page 1 year ago
align_to_aruco.md Update bash prompt and no copy 1 year ago
avoiding_deadlocks_race_conditions.md Add avoiding deadlocks and race conditions 1 year ago
coming_soon.md fix broken links 2 years ago
deep_perception.md Update bash prompt and no copy 1 year ago
example_1.md Update bash prompt and no copy 1 year ago
example_2.md example_2.md 1 year ago
example_3.md Update bash prompt and no copy 1 year ago
example_4.md Update bash prompt and no copy 1 year ago
example_10.md Update bash prompt and no copy 1 year ago
follow_joint_trajectory.md Update follow joint trajectory readme 1 year ago
gazebo_basics.md Update bash prompt and no copy 1 year ago
getting_started.md Update bash prompt and no copy 1 year ago
internal_state_of_stretch.md Update bash prompt and no copy 1 year ago
intro_to_hellonode.md Add new introductory tutorials 1 year ago
intro_to_ros2.md Add new introductory tutorials 1 year ago
moveit_basics.md Update documentation with stretch_ros2 restruct 1 year ago
moveit_movegroup_demo.md Update documentation with stretch_ros2 restruct 1 year ago
moveit_rviz_demo.md Update documentation with stretch_ros2 restruct 1 year ago
navigation_overview.md Clear typos 1 year ago
navigation_simple_commander.md Update documentation with stretch_ros2 restruct 1 year ago
navigation_stack.md Update documentation with stretch_ros2 restruct 1 year ago
obstacle_avoider.md Update bash prompt and no copy 1 year ago
rviz_basics.md Update bash prompt and no copy 1 year ago
teleoperating_stretch.md Update bash prompt and no copy 1 year ago

README.md

Tutorial Track: Stretch ROS 2 (Beta)

!!! 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 in the stretch_ros2 repository, please see the Stretch ROS2 and Stretch Tutorials issue trackers.

Robot Operating System 2 (ROS 2)

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.

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:

Basics

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.

Other Examples

To help get you started on your software development, here are examples of nodes to have 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.