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.