Implements speed limiter ROS2 node that enforces safety constraints from: - Terrain type (via /saltybot/terrain_speed_scale) - Battery level (via /saltybot/speed_limit) - Emergency system state (via /saltybot/emergency) Node computes minimum scale factor and applies to /cmd_vel, forwarding limited commands to /saltybot/cmd_vel_limited. Publishes JSON telemetry on /saltybot/speed_limit_info at 50Hz (20ms cycle). Features: - Subscription to terrain, battery, and emergency constraints - Twist velocity scaling with min-of-three constraint logic - JSON telemetry with timestamp and all scale factors - 50Hz timer-based publishing for real-time control - Emergency state mapping (NOMINAL/RECOVERING/STOPPING/ESCALATED) - Comprehensive unit tests (18 test cases) Package: saltybot_speed_limiter Entry point: speed_limiter_node Launch file: speed_limiter.launch.py Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.4%
JavaScript
9.2%
OpenSCAD
7.8%
HTML
1.5%
Other
2.9%