qb_device: qb_device_bringup | qb_device_control | qb_device_description | qb_device_driver | qb_device_hardware_interface | qb_device_msgs | qb_device_srvs | qb_device_utils

Package Summary

This package contains a device-independent control library for qbrobotics® devices.

This package is barely usable alone since it provides only the common features to be exploited and expanded in the derived packages (cf. qb_hand and qb_move).

Launch files


This launch file loads the controller parameters (i.e. the given yaml file) to the Parameter Server and spawns them in the controller_manager. If specified, starts the rqt_joint_trajectory_controller GUI.


controllers (string)
  • The list of names of the controllers to be spawned (e.g. *_trajectory_controller)
namespace (string)
  • The namespace prefix (without "_controllers.yaml") of the controller configuration file, necessary with many devices (e.g. my_device if it is my_device_controllers.yaml). The file must be located in the config/ subdirectory of the selected _control package. In addition, the joint names inside should be consistent with the ones specified in the description bringup, usually the share the same namespace.
package_prefix (string)
  • The base package name prefix (without "_control") where controller settings are stored (e.g. qb_device if it is qb_device_control).
use_controller_gui (bool, default: false)
  • Selects whether to load joint trajectory controller GUI.



This device-independent library provides all the common structures to control both the qb_hand and the qb_move devices. It exploits the qb_device_hardware_interface and thus requires all the ROS resources related to it.

Actions Called

~<namespaced_action_type>_trajectory_controller/follow_joint_trajectory (control_msgs/FollowJointTrajectory)
  • The control action advertised by the controller_manager relative to the controller in use.

Services Called

/communication_handler/sync_nodes (qb_device_srvs/Trigger)
  • Checks if all the already registered devices are completely initialized and ready for the control application; a device node is considered ready if it has requested this service at least once. The response success variable is set to true if all the control nodes are ready.


~namespaced_action_type (string)
  • The namespaced type of the control action advertised by the controller_manager without the "_trajectory_controller/follow_joint_trajectory" suffix (e.g. device_foo if it is device_foo_trajectory_controller/follow_joint_trajectory).
~control_duration (double, default: 0.01)
  • The duration of the control loop, in [s].
~waypoints (list of maps)
  • The list of waypoint. Each contains a time array, which can be either a single value or an interval for which all the specified joint_positions hold, and a joint_positions map, which pairs contain the device namespace (i.e. the map key) associated with the relative joint positions array. If a namespace used before is not specified for a given waypoint, it is assumed that it does not change the device configuration. Nonetheless for critical applications it is recommended to specify every namespaces to avoid interpolation approximations.

Wiki: qb_device_control (last edited 2017-03-10 14:34:46 by AlessandroTondo)