feat(webui): live camera viewer — multi-stream + detection overlays (Issue #177) #182
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-webui/issue-177-camera-viewer"
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
/camera/depth/image_rect_raw/compressed,/camera/panoramic/compressed,/social/faces/detections,/social/gestures,/social/scene/objectsTest plan
ros2 launch saltybot_bringup rosbridge.launch.py→ D435i topics appear compressedCloses #177
🤖 Generated with Claude Code
UI (src/hooks/useCamera.js, src/components/CameraViewer.jsx): - 7 camera sources: front/left/rear/right CSI, D435i RGB/depth, panoramic - Compressed image subscription via rosbridge (sensor_msgs/CompressedImage) - Client-side 15fps gate (drops excess frames, reduces JS pressure) - Per-camera FPS indicator with quality badge (FULL/GOOD/LOW/NO SIGNAL) - Detection overlays: face boxes + names (/social/faces/detections), gesture icons (/social/gestures), scene object labels + hazard colours (/social/scene/objects); overlay mode selector (off/faces/gestures/objects/all) - 360° panoramic equirect viewer with mouse/touch drag azimuth pan - Picture-in-picture: up to 3 pinned cameras via ⊕ button - One-click recording (MediaRecorder → MP4/WebM download) - Snapshot to PNG with detection overlay composite + timestamp watermark - Cameras tab added to TELEMETRY group in App.jsx Jetson (rosbridge bringup): - rosbridge_params.yaml: whitelist + /camera/depth/image_rect_raw/compressed, /camera/panoramic/compressed, /social/faces/detections, /social/gestures, /social/scene/objects - rosbridge.launch.py: D435i colour republisher (JPEG 75%) + depth republisher (compressedDepth/PNG16 preserving uint16 values) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>