/cmd_vel mit einem Timer mit 10 Hz veröffentlichen
PythonDer Startcode fährt den Roboter aus einer while-Schleife mit time.sleep(0.1). Das blockiert den Knoten, also kann rclpy nie seine Callbacks ausführen, und die Periode driftet um die Zeit, die jedes Veröffentlichen braucht. Schreib es auf die ROS-2-Art um: ein 0,1-s-Timer, der den Twist (0,2 m/s vorwärts, 0,5 rad/s Drehung) veröffentlicht und protokolliert, was er gesendet hat, dann rclpy.spin().
Prüfungen
- Noch nicht ausgeführtBenutzt einen 0,1-s-Timer und rclpy.spin, ohne sleep-Schleife
- Noch nicht ausgeführtVeröffentlicht zehnmal pro Sekunde 0.20 m/s und 0.50 rad/s
- Noch nicht ausgeführtLäuft 2 Sekunden ohne Fehler
Tipps
- self.create_timer(0.1, self.tick) ruft tick alle 0,1 s auf, sobald der Knoten spinnt.
- Protokollier jede Nachricht mit self.get_logger().info(f'linear.x={msg.linear.x:.2f} angular.z={msg.angular.z:.2f}').
- Ersetz Drive().run() durch node = Drive() und rclpy.spin(node).