Note: This tutorial assumes that you have completed the previous tutorials: qbmove Setup.
(!) Please ask about problems and questions regarding this tutorial on Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

qbmove GUI Control

Description: Control the qbmove motion through a GUI

Keywords: qbmove control GUI

Tutorial Level: BEGINNER

Next Tutorial: qbmove Waypoint Control


This control mode is the simpler and the one suggested to test that everything is working as expected. You are able to move the qbmove shaft position and its stiffness interactively, but nothing more than this.


  1. A qbmove properly connected to your system (cf. qbmove Setup tutorial).

  2. Set the current device ID in the launch file:
    1. Open the qb_move_control/launch/gui_control.launch.

    2. Check if the device_id argument is set with ID you have annotated before.

    3. If not, simply change it with the current ID.


To start the ROS node open a terminal and execute the following command:

roslaunch qb_move_control gui_control.launch

If you have made any modifications at the C++ code (this does not apply for .xml launch files and .yaml configuration files), remember to recompile the the whole Catkin Workspace (cf. qbmove ROS Packages Installation).

After a while a GUI should appear to screen with two empty dropdown menus, a red enable button below them, and a speed scaling slider at the bottom.

  1. Select the Controller Manager namespace from the left menu, e.g. /qbmove/controller_manager (where /qbmove/ is the current device namespace, modifiable from within the launch file). This enables the right menu which provides all the controllers available for the connected device.

  2. Select the qbmove controller: choose to control it either through shaft position and stiffness preset references, or directly through actuator position references.

Be aware that the chosen controller must match the control_action parameter set in the launch file.

  1. Click the enable button (available only after the selection of the controller). Two slider will appear in the GUI, respectively with the following meanings:
    • position_and_preset: the first to control the shaft position (which ranges respectively within the shaft position limits), and the second to control the stiffness preset, which ranges from 0 (lowest stiffness) to 1 (highest stiffness).

    • motor_positions: both to control the related actuator position within its limits.

  2. Move the sliders to perform a control the qbmove. You can also vary the speed through the bottom speed scaling slider if you like a faster/slower motion. No other timing constraints can be set in this mode.

If rviz is enabled (look at the launch file and see if use_rviz is set to true) you should see a virtual cube on screen performing a similar behavior, i.e. moving the shaft and both the actuators accordingly.

Wiki: qb_move_control/Tutorials/qbmove GUI Control (last edited 2017-03-15 14:48:34 by AlessandroTondo)