Open Maaliiik opened 1 week ago
bach nmachou notre robot de maniere autonome, on doit dabord creer une carte de l'environement.
Pour cela, il y'a plusieurs manieres d'utiliser Slam sur ros tel que " slam toolbox "
pour notre cas, on prend : cartographer
$ ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True
note : nous utilisons "use_sim_time" a chaque fois car on est en train d'utiliser le temps de simulation sur gazebo.
sur rviz, tu peux z voir les TFs du robot, ainsi que le LaserScan provenant du capteur Lidar (points rouges). Certains pixels sont déjà gris/noirs. Lorsque tu fais déplacer le robot, les pixels seront classés en trois catégories :
Espace libre (deviendront blancs), Obstacle (deviendront noirs), Espace inconnu (restera gris).
pour enregistrer la carte :
$ ros2 run nav2_map_server map_saver_cli -f my_map
run navigation
$ ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=path/to/my_map.yaml
Make sure u install gazebo, the navigation stack and the slam toolbox
$ sudo apt install ros-iron-navigation2 ros-iron-nav2-bringup
$ sudo apt install ros-iron-gazebo-ros-pkgs
$ sudo apt install ros-iron-navigation2 ros-iron-slam-toolbox
L'objectif de ce premier tuto est une prise en main du stack Navigation2, et de comprendre comment les differents composants interagiisent entre eux. Vu qu'on a pas encore definit de maniere explicite l'application qu'on souhaite concretiser a la fin, je propose qu'on decale la definition de l'URDF pour plus tard, pour qu'on se retrouve pas a devoir le modifier a chaque fois si l'on souhaite changer d'avis.
du coup pour la prise en main de navigation2, on va utiliser l'urdf deja pret du robot turtlebot3 qu'on retrouve sur internet. pour installer les packages necessaires, run this command :
$ sudo apt install ros-humble-turtlebot3*
une fois que c'est fait,on choisi le modele du robot et on lance gazebo et on spawn l'urdf du turtlebot a travers un launch file : export TURTLEBOT3_MODEL=waffle
$ ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
normalement ca fonctionnera puis faudra faire bouger le robot sur gazebo, et on le fera en envoyant des commandes manuellements sur le clavier $ ros2 run turtlebot3_teleop teleop_keyboard
maintenant on a un robot avec lidar, qui bouge dans une carte. pour bien inspecter ce qui se passe, on peux jetter un coup d'oeil sur les differents noeuds et topics qui sont actives
ros2 topic list ros2 node list blabla