Hood ROS2 Tutorials

From wikidb
Jump to: navigation, search

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