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>
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from setuptools import setup
|
|
import os
|
|
from glob import glob
|
|
|
|
package_name = 'saltybot_phone'
|
|
|
|
setup(
|
|
name=package_name,
|
|
version='0.1.0',
|
|
packages=[package_name],
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages', ['resource/' + package_name]),
|
|
('share/' + package_name, ['package.xml']),
|
|
(os.path.join('share', package_name, 'launch'), glob('launch/*.py')),
|
|
(os.path.join('share', package_name, 'config'), glob('config/*.yaml')),
|
|
],
|
|
install_requires=['setuptools'],
|
|
zip_safe=True,
|
|
maintainer='seb',
|
|
maintainer_email='seb@vayrette.com',
|
|
description='Android/Termux phone node for SaltyBot',
|
|
license='MIT',
|
|
tests_require=['pytest'],
|
|
entry_points={
|
|
'console_scripts': [
|
|
'camera_node = saltybot_phone.camera_node:main',
|
|
'gps_node = saltybot_phone.gps_node:main',
|
|
'imu_node = saltybot_phone.imu_node:main',
|
|
'openclaw_chat = saltybot_phone.openclaw_chat_node:main',
|
|
'phone_bridge = saltybot_phone.ws_bridge:main',
|
|
],
|
|
},
|
|
) |