Tinca/Docs/Widgets/Joint Sliders

Joint Sliders

PRO
CONTROL · 18 FIELDS · 4×3 DEFAULT

Multi-joint arm control with live feedback

When to reach for it

Joint Sliders poses several joints together: manual posing and live streaming control against joint_trajectory_controller. For a single joint, use Slider. For waypoint planning with progress and cancel, Action Client (Pro) against MoveIt or Nav2 is the right tool.

Worked example: SO-101 arm

Set Command Schema to JointTrajectory, Command Topic /arm_controller/joint_trajectory; Message Type auto-fills to trajectory_msgs/msg/JointTrajectory. Tap Auto-detect from robot to pull the five arm joints (the gripper runs its own controller). Leave Publish on Release Only on, Move Duration at 1500 ms, and enable Track Robot State against /joint_states so the feedback ghost trails the thumb as the controller interpolates.

Watch out for
  • Picking JointState as the Command Schema on a real ros2_controlarm (SO-101, UR, MoveIt) is the classic “sliders move but the robot does not” trap; the Command Schema description below explains why it never reaches the controller.
  • Auto-detect from robot listens to the derived controller_state topic and the feedback topic at once and takes whichever answers first. The controller gives its configured joint order; the feedback topic comes sorted alphabetically by joint_state_broadcaster. It also fills each joint's limits from the robot description. A list that lands out of order usually means the feedback topic won; fix it in Joint Configuration.
  • Auto-fit Range to Feedbackoff plus an out-of-range reading pins the thumb amber at the edge. Widen the joint's min/max or turn auto-fit on.

Configuration fields

Command Schemaselect

JointTrajectory works with real arms (ros2_control). JointState skips the controller: hobby setups only.

JointTrajectory (ROS 2 standard)JointState (hobby setups only)
Command Topictopic

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

Message Typestring

The ROS message type, like sensor_msgs/msg/Image. Fills in when you pick a topic.

Number of Jointsslider
1 to 12, step 1
Joint Configurationjoint-list

Tap a joint to set its name, range, rest position, and unit. Reorder with the button beside this title. Auto-detect from robot (while connected) reads the joint names from the controller or feedback topic, and the joint limits from the robot description (robot_state_publisher or the /robot_description topic), including any narrower soft or controller limits in it. A range you set inside the limits is kept, a bound outside them is narrowed, and joints still at ±0.5 take the full limits. If no topic answers, your joint list stays and other joints in the description are offered to add. Nothing changes until you Save.

Move Duration (ms)slider

Sets time_from_start per point, default 1500 ms for real arms. Lower toward 100 ms only for streaming teleop.

0 to 3000, step 100
Publish on Release Onlyboolean

Send one value when you release a slider, instead of streaming continuously while you drag.

Publish Rate (Hz)number

Messages per second while active. Higher is smoother but uses more bandwidth.

Track Robot Stateboolean

Show the robot's actual joint positions as a ghost on each slider, separate from your command.

Feedback Topictopic
Max Message Rate (Hz)number

Messages per second this widget takes from the feedback topic. Lower saves data, higher tracks closer.

0.1 to 60, step 0.1
Recouple Timeout (ms)slider

If feedback has not caught up this long after release, the thumb jumps to the robot's reported position.

500 to 10000, step 500
Auto-fit Range to Feedbackboolean

Widen a slider when feedback falls outside its range. Off pins that feedback at the edge in amber.

Smooth Feedbackboolean

Ease the ghost and thumb toward reported positions instead of snapping. Your commanded value is unaffected.

Smoothingselect

How strongly to smooth the feedback. Heavy damps a noisy controller but adds lag.

LightMediumHeavy
Horizontal Layoutboolean
Show Joint Namesboolean
Show Valuesboolean