fix(simulation): tolerate cold ROS publisher startup
This commit is contained in:
@@ -12,6 +12,7 @@ from k1link.simulation.contracts import AckermannControlSetpoint
|
|||||||
|
|
||||||
OFFBOARD_HEARTBEAT_SECONDS: Final = 0.1
|
OFFBOARD_HEARTBEAT_SECONDS: Final = 0.1
|
||||||
OFFBOARD_WARMUP_HEARTBEATS: Final = 12
|
OFFBOARD_WARMUP_HEARTBEATS: Final = 12
|
||||||
|
ROS_PUBLISHER_STARTUP_TIMEOUT_SECONDS: Final = 15.0
|
||||||
OFFBOARD_ADMISSION_TIMEOUT_SECONDS: Final = 60.0
|
OFFBOARD_ADMISSION_TIMEOUT_SECONDS: Final = 60.0
|
||||||
STOCK_ROVER_MAX_THROTTLE_SPEED_MPS: Final = 3.1
|
STOCK_ROVER_MAX_THROTTLE_SPEED_MPS: Final = 3.1
|
||||||
VEHICLE_COMMAND_DO_SET_MODE: Final = 176
|
VEHICLE_COMMAND_DO_SET_MODE: Final = 176
|
||||||
@@ -83,7 +84,7 @@ class Ros2Px4AckermannControl:
|
|||||||
daemon=True,
|
daemon=True,
|
||||||
)
|
)
|
||||||
self._thread.start()
|
self._thread.start()
|
||||||
if not self._started.wait(timeout=3):
|
if not self._started.wait(timeout=ROS_PUBLISHER_STARTUP_TIMEOUT_SECONDS):
|
||||||
self._abort_thread()
|
self._abort_thread()
|
||||||
raise Px4RoverControlError("PX4 ROS 2 command publisher did not start")
|
raise Px4RoverControlError("PX4 ROS 2 command publisher did not start")
|
||||||
self._raise_failure()
|
self._raise_failure()
|
||||||
|
|||||||
Reference in New Issue
Block a user