feat: Phone video bridge (Issue #585) #592
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-android/issue-585-video-bridge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Two-file implementation: phone-side streaming server + Jetson-side ROS2 receiver.
phone/video_bridge.py— Termux MJPEG streaming servertermux-camera-photofallbackws://0.0.0.0:8765— binary JPEG frames; JSON info frame on connecthttp://0.0.0.0:8766/stream—multipart/x-mixed-replace/snapshot— single JPEG withX-Timestampheader/health— JSON{frames, dropped, width, height, fps}--width/--height/--fps/--qualityflagssaltybot_phone/phone_camera_node.py— Jetson ROS2 receiver/saltybot/phone/camera(Image bgr8),/camera/compressed(CompressedImage),/camera/info(String)websocketsurllib) on WS failurelatency_warn_ms(default 200 ms)Also:
phone_camera_noderegistered insetup.py; added tophone_bringup.pywithphone_host/phone_cam_enabledlaunch args.Test plan
pip install websockets && python3 phone/video_bridge.py --debughttp://<phone>:8766/streamin browser — see live feedhttp://<phone>:8766/healthreturns JSON statsros2 run saltybot_phone phone_camera_node --ros-args -p phone_host:=<ip>ros2 topic hz /saltybot/phone/camera→ ~15 Hzros2 topic echo /saltybot/phone/camera/info→ resolution/fps JSONvideo_bridge.py, wait, restart — Jetson node reconnectsros2 launch saltybot_phone phone_bringup.py phone_host:=<ip>— node startspython3 -m py_compile phone/video_bridge.py— syntax clean🤖 Generated with Claude Code