Enable Jetson autonomous arming while keeping RC as optional override. Changes: - RC kill switch (CH5 OFF) now triggers emergency stop instead of disarm → Allows Jetson-armed robots to remain armed when RC disconnects → Maintains kill switch safety for emergency situations - RC disarm only triggers on explicit CH5 falling edge (RC still alive) → RC disconnect doesn't disarm Jetson-controlled missions → RC failsafe timer (500ms) handles signal loss separately - Jetson arming via CDC 'A' command works independently of RC state → Robots can operate fully autonomous without RC transmitter → Heartbeat timeout (500ms) prevents runaway if Jetson crashes Safety maintained: - Arming hold timer: 500ms (prevents accidental arm) - Tilt limit: ±10° level required - IMU calibration: Required before any arm attempt - Remote E-stop: Blocks all arming - RC failsafe: 500ms signal loss = disarm - Jetson timeout: 500ms heartbeat = zero motors Command protocol (unchanged): - Jetson: A=arm, D=disarm, E=estop, Z=clear estop - RC: CH5 switch (optional override) - Heartbeat: H command every ≤500ms - Drive: C<speed>,<steer> every ≤200ms 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