VirtualBox
1. Installer le CD add-on (CD des additions invité) ici
2. Si il y a une erreur:
2.1. sudo apt install gcc make perl -y
2.2. cd /media/ros2/VBox_GAs_6.1.50/
2.3. sudo ./VBoxLinuxAdditions.run
2.4. sudo reboot

Installation de ROS2 iron

TP1: Turtle
Dans une 1ère fenêtre (Ctrl + Alt + t)
1. cd ros2_iron/install/
2. source local_setup.bash 
3. ros2 run turtlesim turtlesim_node

note1: ros2 node list permet d'observer le nom du node: ici turtlesim

note2: ros2 topic list permet d'observer les topic disponibles: ici

/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose

note3: Consultez cette page pour comprendre le fonctionnement des topics

note4: ros2 topic list -t permet d'observer les topics disponibles mais aussi leur type: ici
/parameter_events [rcl_interfaces/msg/ParameterEvent]
/rosout [rcl_interfaces/msg/Log]
/turtle1/cmd_vel [geometry_msgs/msg/Twist]
/turtle1/color_sensor [turtlesim/msg/Color]
/turtle1/pose [turtlesim/msg/Pose]

note5: ros2 topic info /turtle1/cmd_vel (par exemple) nous affiche les informations suivantes:Le type de message + Le nombre de publicateur (UK: publisher) (normalement 0) +Le nombre d'abonnés (UK: subscribers) (devrait être 1, ou 2 si vous fonctionnez en même temps avec des versions Python et C++).

Exemple: ros2 topic info /turtle1/cmd_vel 
Type: geometry_msgs/msg/Twist
Publisher count: 0
Subscription count: 1

note6: ros2 interface show turtlesim/msg/Pose (par exemple) nous affiche quelques informations comme:

Exemple: ros2 interface show turtlesim/msg/Pose
float32 x
float32 y
float32 theta

float32 linear_velocity
float32 angular_velocity


Dans une 2nde fenêtre (Ctrl + Alt + t) ou dans un 2nd onglet (Ctrl + Shift + t)
4. cd ros2_iron/install/
5. source local_setup.bash 
6. ros2 run turtlesim turtle_teleop_key : On commande bien le node turtlesim. Ainsi, on peut commander la tortue avec le clavier.

7. Il est envisageable de publier dans le topic comme ci-dessous:

ros2 topic pub /turtle1/cmd_vel geometry_msgs/msg/Twist "linear:
  x: 0.5
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.5"

note7: il est également possible d'effectuer un rosbag (ros2bags) pour rejouer la séquence plus tard.

[SOURCE]