Two new packages: - saltybot_emergency_msgs: EmergencyEvent.msg, RecoveryAction.msg - saltybot_emergency: threat_detector, alert_manager, recovery_sequencer, emergency_fsm, emergency_node Implements: - ObstacleDetector: MAJOR <30cm, CRITICAL <10cm; suppressed when not moving - FallDetector: MINOR/MAJOR/CRITICAL tilt thresholds; floor-drop edge detection - StuckDetector: MAJOR after 3s wheel stall (cmd>threshold, actual~0) - BumpDetector: jerk = |Δ|a||/dt with gravity removal; MAJOR/CRITICAL thresholds - AlertManager: per-(type,level) suppression; MAJOR×N within window → CRITICAL escalation - RecoverySequencer: REVERSING→TURNING→RETRYING FSM; max_retries before GAVE_UP - EmergencyFSM: NOMINAL→STOPPING→RECOVERING→ESCALATED; acknowledge to clear - EmergencyNode: 20Hz ROS2 node; /saltybot/emergency, /saltybot/e_stop, cmd_vel mux 59/59 tests passing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
848 B
XML
25 lines
848 B
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_emergency</name>
|
|
<version>0.1.0</version>
|
|
<description>Emergency behavior system — collision avoidance, fall prevention, stuck detection, recovery (Issue #169)</description>
|
|
<maintainer email="sl-controls@saltylab.local">sl-controls</maintainer>
|
|
<license>MIT</license>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>sensor_msgs</depend>
|
|
<depend>nav_msgs</depend>
|
|
<depend>geometry_msgs</depend>
|
|
<depend>std_msgs</depend>
|
|
|
|
<test_depend>ament_copyright</test_depend>
|
|
<test_depend>ament_flake8</test_depend>
|
|
<test_depend>ament_pep257</test_depend>
|
|
<test_depend>pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|