Hood ROS2 Tutorials
From wikidb
References
Colcon
Create Workspace
$ mkdir -p ~/ros2_example_ws/src
$ cd ~/ros2_example_ws
$ git clone https://github.com/ros2/examples src/examples
$ cd ~/ros2_example_ws/src/examples/
$ echo $ROS_DISTRO crystal
$ git checkout $ROS_DISTRO Branch 'crystal' set up to track remote branch 'crystal' from 'origin'. Switched to a new branch 'crystal'
$ cd ~/ros2_example_ws
Build and Test
$ colcon build --symlink-install Starting >>> examples_rclcpp_minimal_action_client Starting >>> examples_rclcpp_minimal_action_server Starting >>> examples_rclcpp_minimal_client Starting >>> examples_rclcpp_minimal_composition Finished <<< examples_rclcpp_minimal_client [14.0s] Starting >>> examples_rclcpp_minimal_publisher Finished <<< examples_rclcpp_minimal_action_server [15.2s] Starting >>> examples_rclcpp_minimal_service Finished <<< examples_rclcpp_minimal_action_client [17.2s] Starting >>> examples_rclcpp_minimal_subscriber Finished <<< examples_rclcpp_minimal_composition [18.6s] Starting >>> examples_rclcpp_minimal_timer Finished <<< examples_rclcpp_minimal_service [13.6s] Starting >>> examples_rclpy_executors Finished <<< examples_rclpy_executors [2.80s] Starting >>> examples_rclpy_minimal_action_client Finished <<< examples_rclcpp_minimal_publisher [17.6s] Starting >>> examples_rclpy_minimal_action_server Finished <<< examples_rclpy_minimal_action_client [1.20s] Starting >>> examples_rclpy_minimal_client Finished <<< examples_rclpy_minimal_action_server [1.75s] Finished <<< examples_rclcpp_minimal_subscriber [16.3s] Finished <<< examples_rclcpp_minimal_timer [14.8s] Starting >>> examples_rclpy_minimal_publisher Starting >>> examples_rclpy_minimal_service Starting >>> examples_rclpy_minimal_subscriber Finished <<< examples_rclpy_minimal_client [1.98s] Finished <<< examples_rclpy_minimal_publisher [1.34s] Finished <<< examples_rclpy_minimal_service [1.59s] Finished <<< examples_rclpy_minimal_subscriber [1.82s] Summary: 15 packages finished [35.6s]
$ colcon test Starting >>> examples_rclcpp_minimal_action_client Starting >>> examples_rclcpp_minimal_action_server Starting >>> examples_rclcpp_minimal_client Starting >>> examples_rclcpp_minimal_composition Finished <<< examples_rclcpp_minimal_action_client [0.07s] Finished <<< examples_rclcpp_minimal_client [0.06s] Starting >>> examples_rclcpp_minimal_publisher Starting >>> examples_rclcpp_minimal_service Finished <<< examples_rclcpp_minimal_action_server [0.08s] Finished <<< examples_rclcpp_minimal_composition [0.07s] Starting >>> examples_rclcpp_minimal_subscriber Starting >>> examples_rclcpp_minimal_timer Finished <<< examples_rclcpp_minimal_publisher [0.06s] Starting >>> examples_rclpy_executors Finished <<< examples_rclcpp_minimal_service [0.07s] Starting >>> examples_rclpy_minimal_action_client Finished <<< examples_rclcpp_minimal_subscriber [0.07s] Starting >>> examples_rclpy_minimal_action_server Finished <<< examples_rclcpp_minimal_timer [0.07s] Starting >>> examples_rclpy_minimal_client Finished <<< examples_rclpy_executors [2.33s] Starting >>> examples_rclpy_minimal_publisher Finished <<< examples_rclpy_minimal_action_client [2.84s] Finished <<< examples_rclpy_minimal_action_server [2.85s] Starting >>> examples_rclpy_minimal_service Starting >>> examples_rclpy_minimal_subscriber Finished <<< examples_rclpy_minimal_client [3.86s] Finished <<< examples_rclpy_minimal_publisher [2.38s] Finished <<< examples_rclpy_minimal_service [2.53s] Finished <<< examples_rclpy_minimal_subscriber [2.92s] Summary: 15 packages finished [6.18s]
Environment Setup
$ . install/setup.bash
Demo
Terminal 1 - Subscriber
$ ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function [INFO] [minimal_subscriber]: I heard: 'Hello, world! 0' [INFO] [minimal_subscriber]: I heard: 'Hello, world! 1' [INFO] [minimal_subscriber]: I heard: 'Hello, world! 2' [INFO] [minimal_subscriber]: I heard: 'Hello, world! 3' [INFO] [minimal_subscriber]: I heard: 'Hello, world! 4'
Terminal 2 - Publisher
$ ros2 run examples_rclcpp_minimal_publisher publisher_member_function [INFO] [minimal_publisher]: Publishing: 'Hello, world! 0' [INFO] [minimal_publisher]: Publishing: 'Hello, world! 1' [INFO] [minimal_publisher]: Publishing: 'Hello, world! 2' [INFO] [minimal_publisher]: Publishing: 'Hello, world! 3' [INFO] [minimal_publisher]: Publishing: 'Hello, world! 4'
Terminal 3
$ ros2 topic list /parameter_events /rosout /topic
$ ros2 node list /minimal_subscriber /minimal_publisher