Publica /cmd_vel a 10 Hz con un temporizador
PythonEl código de partida conduce el robot desde un bucle while con time.sleep(0.1). Eso bloquea el nodo, así que rclpy nunca puede ejecutar sus callbacks, y el periodo se desvía lo que tarde cada publicación. Reescríbelo a la manera de ROS 2: un temporizador de 0,1 s que publica el Twist (0,2 m/s hacia delante, 0,5 rad/s de giro) y registra lo que ha enviado, y luego rclpy.spin().
Comprobaciones
- Aún sin ejecutarUsa un temporizador de 0,1 s y rclpy.spin, sin bucle con sleep
- Aún sin ejecutarPublica 0,20 m/s y 0,50 rad/s diez veces por segundo
- Aún sin ejecutarFunciona durante 2 segundos sin errores
Pistas
- self.create_timer(0.1, self.tick) llama a tick cada 0,1 s en cuanto el nodo hace spin.
- Registra cada mensaje con self.get_logger().info(f'linear.x={msg.linear.x:.2f} angular.z={msg.angular.z:.2f}').
- Cambia Drive().run() por node = Drive() y rclpy.spin(node).