Knob
FREERotary dial control with bidirectional feedback
When to reach for it
Knob is functionally the same widget as Slider: identical min/max/step, feedback, and publish-rate behavior underneath. Reach for it when the control should feel rotary, a heading setpoint or a gain dial, rather than linear.
When the value maps more naturally to a straight throw, a throttle or a linear actuator's travel, Slider is the better fit.
Worked example: heading setpoint
Topic /heading_setpoint, schema std_msgs/msg/Float64. Min 0, Max 360, Step 1. Turn on Publish on Release Only for a one-shot heading goal; leave it off if the controller expects a continuous setpoint while the operator is dialing.
Watch out for
- Min Value, Max Value, and Step are the scale, not a safety limit. The robot does what you command: set them to match what the receiver can actually handle.
- On Pro, with Track Robot State on, if feedback never settles within Recouple Timeout (ms) the indicator auto-recouples to feedback so it does not strand at a stale command. A teleporting indicator means a slow or silent controller, not a broken widget.
Configuration fields
The topic this widget publishes to. While connected, tap to pick from the topics the robot advertises.
The ROS message type for this topic, e.g. sensor_msgs/msg/Image. Usually auto-filled when you choose a topic.
Send one value when you release the dial, instead of streaming continuously while you turn it.
How fast the knob streams updates while the user is rotating.
WITH PRODefault is 10 Hz. Tight servos and position controllers feel smoother at 20 to 50 Hz when turning quickly. Lower it to 5 Hz on bandwidth-constrained links to save throughput. No effect when "Publish on Release" is on.
Show the robot's actual value as a ghost indicator alongside your command.
WITH PROThe widget subscribes to a feedback topic and renders the live state as a ghost on the track. The thumb stays at your commanded value, so you see command and state diverge during motion. On first connect, the thumb snaps to the actual value so the first interaction starts from where the robot is.
Topic carrying the robot's actual value, drawn as a ghost alongside your command.
Field path on the feedback topic to read as the actual value.
After release, the indicator stays at your commanded value while feedback catches up. If feedback never settles within this window (slow controller, no controller listening), the indicator auto-recouples to feedback anyway.
500 to 10000, step 500Ease the ghost and indicator toward the robot's reported value instead of snapping to every sample.
WITH PROApplies a light exponential smoothing to the displayed feedback only. Softens a jumpy or noisy controller. Your commanded value and out-of-range detection are unaffected.
How strongly to ease the displayed feedback. Light barely softens; Heavy strongly damps a noisy controller at the cost of more lag.
Show a name on the widget.