Camera Feed
FREELive video via topic, MJPEG, or WebRTC
When to reach for it
Camera Feed shows the camera image itself. Reach for it to frame a manipulator task, check exposure, or confirm the lens isn't fogged. For range data with no camera involved, Laser Scan (Pro) is cheaper on bandwidth. Free tier is locked to Topic Subscription: Transport itself is Pro-only, so MJPEG HTTP and WebRTC need an upgrade first.
Worked example: TurtleBot 4's OAK-D camera
The OAK-D publishes RGB preview frames as sensor_msgs/CompressedImage on /oakd/rgb/preview/image_raw/compressed. Point Topic Subscription at it and the widget detects the compressed schema, defaulting Max Message Rate (Hz) to 15 Hz. A raw sensor_msgs/Image topic decodes through a heavier path, and the app holds it at 2 Hz or less whatever you set here, because a raw feed above that crowds out everything else sharing the connection. Raising Max Message Rate (Hz) on a raw topic therefore changes nothing: find a /compressed sibling instead.
Watch out for
- Landing on a raw
sensor_msgs/Imagetopic triggers a persistent banner nudging you toward a/compressedsibling or a Pro transport. Look for one before assuming raw is your only option. - Show Topic Rate (Hz) is on by default. The amber pill next to it means the bridge is throttling delivery, not that the feed died.
- Camera Feed's picker and template previews show a synthetic frame, a triggered scan sweep in grid view, a still frame elsewhere, never your real footage, so you can't judge latency until it's applied.
Configuration fields
How the video reaches the phone.
WITH PROPro adds WebRTC for low-latency video and MJPEG HTTP for camera streams outside ROS.
The topic this widget reads from. While connected, tap to pick one the robot advertises.
MJPEG stream URL, e.g. http://<robot-ip>:8080/stream. Needs an MJPEG server on the robot, such as web_video_server.
HTTP address of the robot's WebRTC server, e.g. http://<robot-ip>:8080. Tinca posts its offer to /offer.
Cap on the WebRTC bitrate.
WITH PROSave data on LTE with Low, or get the cleanest picture on strong Wi-Fi with Max.
Messages per second taken from the topic. Quality presets other than Auto override it. Heavy feeds are held lower.
0.5 to 30, step 0.5Frames per second fetched from the MJPEG stream. Lower it to save data.
Tradeoff between fidelity and load on the phone.
Show the received message rate in the top bar. Amber means the bridge is throttling delivery.
Also show rendered FPS in the top bar. Below the topic rate means decoding is falling behind.