sl-android df49eec21f feat: Android/Termux OpenClaw node (Issue #420)
Add complete phone node infrastructure:

ROS2 Package (saltybot_phone):
- camera_node: /phone/camera/image_raw (320x240, 15 FPS)
- gps_node: /phone/gps (NavSatFix via termux-api)
- imu_node: /phone/imu (accelerometer data)
- openclaw_chat_node: Local LLM inference
  Subscribes /saltybot/speech_text
  Publishes /saltybot/chat_response
- ws_bridge: WebSocket bridge to Jetson Orin (:9090)

Phone Scripts:
- termux-bootstrap.sh: Complete Termux setup
- power-management.sh: Battery/thermal monitoring
- README.md: Setup documentation

Architecture:
- Termux on Android phone
- WiFi/USB tether to Jetson Orin
- ROS2 topic bridge for sensors
- Local LLM for on-device chat (Phi-2)
- Termux:Boot auto-start
- Power management for extended runtime

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-05 08:55:47 -05:00
..

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