Repository navigation
fix: preserve manual-control button requests and close WebSocket cleanly - #14
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Short keyboard presses can reach
/keyboard_joybut be overwritten by their release before the 20 Hz control timer samples them. A delayed arm/mode service response can also cause a later request to be discarded. Separately, the WebSocket server can continue publishing after the ROS context shuts down, and malformed JSON uses an unsupported logger method.Changes
logger.warningfor malformed JSON.Validation
Base:
23bb608a9a89b9cda3472792316a81711f1ce73e(after camera PR #5).Apple M2 host, Linux ARM64 Docker, ROS 2 Lyrical / Gazebo Jetty. No physical vehicle or gamepad.
colcon test-resultreports 49 including three CTest wrappers, not 49 independent tests.Limits / unrelated failures retained
The standalone Gazebo run also recorded one heartbeat timeout, the existing headless GUI-camera timeout, and a stock
ros_gz_bridgeSIGSEGV at shutdown. These are not claimed as fixed by this PR. Earlier combined-overlay and browser results are supplementary, not the basis for independent shutdown claims. Windows/AMD64 and physical-gamepad validation remain outside this local test.Pending disarm still depends on the earlier service response; it is not an emergency stop and cannot guarantee completion if that service never responds.
Run the committed regression tests
colcon build --packages-select posim_robot_models --cmake-args -DBUILD_TESTING=ON colcon test --packages-select posim_robot_models --event-handlers console_direct+ colcon test-result --verbosePlease review; no merge or release is requested by this validation run.
CI infrastructure note (2026-10-08)
ARM64 run 37743078860 stopped in the runner-admin pre-job hook, before checkout/build: ~61.15 GiB free vs its 80 GiB minimum. This is not a compiler/test result for this change. No runner files, free-space thresholds, or maintenance hooks were changed. ARM64 CI remains unverified until the runner is ready; the Docker workflow does not publish PR images.