Tinca/Docs/Widgets/Camera Feed

Camera Feed

FREE
DISPLAY · 11 FIELDS · 4×2 DEFAULT

Live 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/Image topic triggers a persistent banner nudging you toward a /compressed sibling 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

TransportPROselect

How the video reaches the phone.

Topic SubscriptionMJPEG HTTPWebRTC

WITH PROPro adds WebRTC for low-latency video and MJPEG HTTP for camera streams outside ROS.

Topictopic

The topic this widget reads from. While connected, tap to pick one the robot advertises.

MJPEG URLPROstring

MJPEG stream URL, e.g. http://<robot-ip>:8080/stream. Needs an MJPEG server on the robot, such as web_video_server.

Signaling URLPROstring

HTTP address of the robot's WebRTC server, e.g. http://<robot-ip>:8080. Tinca posts its offer to /offer.

Display Modeselect
Fill WidgetFit Inside
BandwidthPROselect

Cap on the WebRTC bitrate.

AutoLowMedHighMax

WITH PROSave data on LTE with Low, or get the cleanest picture on strong Wi-Fi with Max.

Max Message Rate (Hz)number

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.5
Max Frame Rate (FPS)number

Frames per second fetched from the MJPEG stream. Lower it to save data.

Qualityselect

Tradeoff between fidelity and load on the phone.

AutoLowMediumHigh
Show Topic Rate (Hz)boolean

Show the received message rate in the top bar. Amber means the bridge is throttling delivery.

Show Frame Rate (FPS)boolean

Also show rendered FPS in the top bar. Below the topic rate means decoding is falling behind.