D-Pad
FREEDirectional buttons for discrete movement
When to reach for it
D-Pad is for discrete directional commands, not continuous velocity: jog increments, menu navigation, or one locked axis like a gripper's open/close (set Directions Shown to Up / Down or Left / Right). For analog driving use Single Joystick or Dual Joystick. For one tap, one action, Custom Button is simpler.
Worked example: TurtleBot3 Burger jog
D-Pad's shipped defaults already wire a jog on /cmd_vel (geometry_msgs/msg/Twist): Up is linear.x 0.5, Down -0.5, Left angular.z 0.5, Right -0.5. That outruns a TurtleBot3 Burger, whose hard cap is 0.22 m/s linear and 2.84 rad/s angular. Scale the four Direction messages down to that before shipping this as a jog rather than a sprint.
Watch out for
- The four Direction messages are never blank: each ships pre-filled with a real half-speed Twist. Duplicate this widget for another robot and forget one, and it keeps publishing its old velocity, not a stop. Malformed JSON in a message means the tap does nothing at all, silently.
- Letting go of any button always publishes a zero Twist on this topic, whatever Message Type is actually configured. Repurpose D-Pad for a non-Twist schema like
std_msgs/msg/Stringand every release still fires that Twist-shaped zero underneath it.
Configuration fields
The topic this widget publishes to. While connected, tap to pick one the robot advertises.
The ROS message type, like sensor_msgs/msg/Image. Fills in when you pick a topic.
Publish repeatedly while a direction is held, instead of once per tap.
Streaming rate while a direction is held.
WITH PRODefault 10 Hz. Raise it for more responsive jogging, lower it on slow links.
Full shrinks to one axis on a small widget. The other options stay fixed at every size.
Set each direction's published Message. Directions outside the set chosen above are dimmed.
The color used to draw this widget.
WITH PROPro tints the whole pad to match a theme or tell several pads apart at a glance.