Simulation
Le paquet ratbot_sim permet de développer et tester sans robot réel.
Simulateur cinématique léger
Le nœud base_sim imite le firmware, vu du graphe ROS : il s’abonne à
base/cmd_vel_safe (la sortie du garde-barrière, comme la vraie carte),
intègre une odométrie parfaite et publie base/odom,
base/joint_states et la TF ratbot_N/odom → ratbot_N/base_footprint.
Le watchdog du firmware est simulé : sans commande pendant 0,5 s, le
robot s’arrête. Toute la chaîne réelle est donc en jeu, arrêt d’urgence
compris.
source ros2/install/local_setup.bash
ros2 launch ratbot_sim sim.launch.py robot_id:=1
Arguments : robot_id (défaut 1), rviz (défaut true).
Dans RViz : Fixed Frame = ratbot_1/odom, ajouter un affichage
RobotModel (topic /ratbot_1/robot_description) et TF.
Piloter au clavier :
ros2 run teleop_twist_keyboard teleop_twist_keyboard \
--ros-args -r cmd_vel:=/ratbot_1/base/cmd_vel
Tester l’arrêt d’urgence global pendant que le robot roule :
ros2 topic pub --once /emergency_stop std_msgs/msg/Bool "data: true"
Paramètres du nœud base_sim : wheel_radius (0,03 m) et
wheel_separation (0,12 m) — à garder cohérents avec l’URDF —, rate
(50 Hz), cmd_timeout (0,5 s).
Gazebo
TODO : simulation physique sous Gazebo (masses, inerties et maillages à intégrer dans l’URDF — données de conception à venir). Le simulateur cinématique restera utile pour les tests rapides sans physique.