Publier /cmd_vel à 10 Hz avec un timer
PythonLe code de départ fait rouler le robot depuis une boucle while avec time.sleep(0.1). Cela bloque le nœud : rclpy ne peut jamais exécuter ses callbacks, et la période dérive de la durée de chaque publication. Réécrivez-le à la manière de ROS 2 : un timer de 0,1 s qui publie le Twist (0,2 m/s en avant, 0,5 rad/s en rotation) et journalise ce qu'il a envoyé, puis rclpy.spin().
Vérifications
- Pas encore lancéUtilise un timer de 0,1 s et rclpy.spin, sans boucle avec sleep
- Pas encore lancéPublie 0,20 m/s et 0,50 rad/s dix fois par seconde
- Pas encore lancéTourne 2 secondes sans erreur
Indices
- self.create_timer(0.1, self.tick) appelle tick toutes les 0,1 s une fois que le nœud tourne.
- Journalisez chaque message avec self.get_logger().info(f'linear.x={msg.linear.x:.2f} angular.z={msg.angular.z:.2f}').
- Remplacez Drive().run() par node = Drive() et rclpy.spin(node).