phone/voice_cmd.py — listens via termux-speech-to-text, parses commands (go forward/back, turn left/right, stop, e-stop, go to waypoint, speed up/down, status) and publishes structured JSON to saltybot/phone/voice_cmd. TTS confirmation via termux-tts-speak. Manual text fallback via --text flag. Co-Authored-By: Claude Sonnet 4.6 <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