Knob

FREE
CONTROL · 15 FIELDS · 2×2 DEFAULT

Rotary 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

Command Topictopic

The topic this widget publishes to. While connected, tap to pick from the topics the robot advertises.

Schema Namestring

The ROS message type for this topic, e.g. sensor_msgs/msg/Image. Usually auto-filled when you choose a topic.

Min Valuenumber
Max Valuenumber
Stepnumber
Publish on Release Onlyboolean

Send one value when you release the dial, instead of streaming continuously while you turn it.

Publish Rate (Hz)PROnumber

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.

Track Robot StatePROboolean

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.

Feedback TopicPROtopic

Topic carrying the robot's actual value, drawn as a ghost alongside your command.

Feedback FieldPROfield-path

Field path on the feedback topic to read as the actual value.

Recouple Timeout (ms)PROslider

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 500
Smooth FeedbackPROboolean

Ease 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.

SmoothingPROselect

How strongly to ease the displayed feedback. Light barely softens; Heavy strongly damps a noisy controller at the cost of more lag.

LightMediumHeavy
Show Labelboolean

Show a name on the widget.

Labelstring