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>
30 lines
1.0 KiB
XML
30 lines
1.0 KiB
XML
<?xml version="1.0"?>
|
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
|
<package format="3">
|
|
<name>saltybot_speed_limiter</name>
|
|
<version>0.1.0</version>
|
|
<description>
|
|
Speed limiter node for SaltyBot: enforces safety constraints from terrain type,
|
|
battery level, and emergency system. Computes minimum scale factor from multiple
|
|
sources and applies to cmd_vel with JSON telemetry. Runs at 50Hz.
|
|
</description>
|
|
<maintainer email="sl-controls@saltylab.local">sl-controls</maintainer>
|
|
<license>MIT</license>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>geometry_msgs</depend>
|
|
<depend>std_msgs</depend>
|
|
<depend>saltybot_emergency_msgs</depend>
|
|
|
|
<buildtool_depend>ament_python</buildtool_depend>
|
|
|
|
<test_depend>ament_copyright</test_depend>
|
|
<test_depend>ament_flake8</test_depend>
|
|
<test_depend>ament_pep257</test_depend>
|
|
<test_depend>python3-pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|