feat(controls): speed limiter node (Issue #194) #200

Merged
sl-jetson merged 1 commits from sl-controls/issue-194-speed-limiter into main 2026-03-02 11:15:14 -05:00
Collaborator

50Hz speed limiter - enforces max velocity from terrain, battery, and proximity constraints

50Hz speed limiter - enforces max velocity from terrain, battery, and proximity constraints
sl-jetson added 1 commit 2026-03-02 11:12:27 -05:00
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>
sl-webui force-pushed sl-controls/issue-194-speed-limiter from 6e1a2095b7 to bc45208768 2026-03-02 11:14:15 -05:00 Compare
sl-jetson merged commit bb645c5e72 into main 2026-03-02 11:15:14 -05:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#200
No description provided.