From 49b0f47fea0ae29c977bbd60808696b85a9380cd Mon Sep 17 00:00:00 2001 From: DCCONSTRUCTIONS Date: Fri, 24 Jul 2026 22:51:21 +0300 Subject: [PATCH] fix(simulation): tolerate cold ROS publisher startup --- src/k1link/simulation/px4_rover_control.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/k1link/simulation/px4_rover_control.py b/src/k1link/simulation/px4_rover_control.py index 8bf0801..6993d8a 100644 --- a/src/k1link/simulation/px4_rover_control.py +++ b/src/k1link/simulation/px4_rover_control.py @@ -12,6 +12,7 @@ from k1link.simulation.contracts import AckermannControlSetpoint OFFBOARD_HEARTBEAT_SECONDS: Final = 0.1 OFFBOARD_WARMUP_HEARTBEATS: Final = 12 +ROS_PUBLISHER_STARTUP_TIMEOUT_SECONDS: Final = 15.0 OFFBOARD_ADMISSION_TIMEOUT_SECONDS: Final = 60.0 STOCK_ROVER_MAX_THROTTLE_SPEED_MPS: Final = 3.1 VEHICLE_COMMAND_DO_SET_MODE: Final = 176 @@ -83,7 +84,7 @@ class Ros2Px4AckermannControl: daemon=True, ) self._thread.start() - if not self._started.wait(timeout=3): + if not self._started.wait(timeout=ROS_PUBLISHER_STARTUP_TIMEOUT_SECONDS): self._abort_thread() raise Px4RoverControlError("PX4 ROS 2 command publisher did not start") self._raise_failure()