Enable Jetson autonomous arming while keeping RC as optional override. Key Changes: ============= 1. RC Kill Switch (CH5 OFF) → Emergency Stop (not disarm) - Motors cutoff immediately on kill switch - Robot remains armed (allows re-arm without re-initializing) - Maintains kill switch safety for emergency situations 2. RC Disarm Only on Explicit CH5 Falling Edge (while RC alive) - RC disconnect doesn't disarm Jetson-controlled missions - RC failsafe timer (500ms) still handles signal loss 3. Jetson Autonomous Arming (via CDC 'A' command) - Works independently of RC state - Requires: calibrated IMU, robot level (±10°), no estop active - Uses same 500ms arm-hold safety as RC 4. All Safety Preserved - Arming hold timer: 500ms - Tilt limit: ±10° level - IMU calibration required - Remote E-stop override - RC failsafe: 500ms signal loss = disarm - Jetson timeout: 500ms heartbeat = zero motors Command Protocol (CDC): A = arm (Jetson) D = disarm (Jetson) E/Z = estop / clear estop H = heartbeat (keep-alive) C<spd>,<str> = drive command Behavior Matrix: RC disconnected → Jetson-armed stays armed, normal operation RC connected + armed → Both Jetson and RC can arm, blended control RC kill switch (CH5) → Emergency stop + can re-arm via Jetson 'A' RC signal lost → Disarm after 500ms (failsafe) See AUTONOMOUS_ARMING.md for complete protocol and testing checklist. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
SaltyBot Android/Termux Phone Node (Issue #420)
Android phone node for SaltyBot via Termux. Provides camera, GPS, IMU sensors and local OpenClaw LLM inference.
Setup
On phone (Termux):
bash termux-bootstrap.sh
mkdir -p ~/saltybot_workspace/src
cd ~/saltybot_workspace && colcon build
Running
cd ~/saltybot_workspace && source install/setup.bash
ros2 launch saltybot_phone phone_bringup.py
Topics
| Topic | Type | Description |
|---|---|---|
/phone/camera/image_raw |
Image | Camera frames 320x240@15Hz |
/phone/gps |
NavSatFix | GPS location |
/phone/imu |
Imu | Accelerometer data |
/saltybot/speech_text |
String | Input from Jetson |
/saltybot/chat_response |
String | LLM output to Jetson |
Power Management
nohup bash ~/power-management.sh > ~/power-mgmt.log 2>&1 &
Reduces CPU activity on low battery (<25%) or critical battery (<15%).
Configuration
Edit config/phone.yaml to adjust frame rates and LLM parameters.
Issue #420 Completion
✅ Termux bootstrap ✅ Camera / GPS / IMU nodes ✅ OpenClaw chat (local LLM) ✅ WebSocket bridge to Orin ✅ Termux:Boot auto-start ✅ Power management