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 hardware interface 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).

qb_device_hardware_interface

This device-independent library provides all the common structures to interface both the qb_hand and the qb_move ROS packages with their related physical devices. It exploits the Communication Handler (cf. qb_device_driver) to manage the serial communication and inherits its core from the hardware_interface for the sake of compatibility with other robots which use ROS. This package paves the way for control applications (cf. qb_device_control).

Published Topics

/<namespace>/state (invalid message type for MsgLink(msg/type))
  • Advertise the whole device state, i.e. currents and positions for both actuators and joints, plus additional device infos.

Services Called

/communication_handler/activate_motors (qb_device_srvs/Trigger)
  • Activates the motors of the device which ID is specified in the service request. The response success variable is set to true if motors are active.
/communication_handler/deactivate_motors (qb_device_srvs/Trigger)
  • Deactivates the motors of the device which ID is specified in the service request. The response success variable is set to true if motors are inactive.
/communication_handler/deregister_device (qb_device_srvs/Trigger)
  • Deregisters the device which ID is specified in the service request from the Communication Handler; it will not be able to request anymore services until a new registration is performed. Does nothing if the device was not already registered.
/communication_handler/get_info (qb_device_srvs/Trigger)
  • Retrieves the printable configuration setup of the device which ID is specified in the service request. On error, the response message variable is empty.
/communication_handler/get_measurements (qb_device_srvs/GetMeasurements)
  • Retrieves the motor positions and currents of the device which ID is specified in the service request. The response success variable is set to true if data retrieved (i.e. the response currents and positions variables) is meaningful.
/communication_handler/register_device (qb_device_srvs/RegisterDevice)
  • Registers the device which ID is specified in the service request to the Communication Handler (i.e. it will be able to request any of the services provided by this node); if requested, activates the device motors. A physical device configured with the same ID has to be connected through any serial port to the handler itself. The response success variable is set to true if the whole registration process ends with no failures.
/communication_handler/set_commands (qb_device_srvs/SetCommands)
  • Send the reference commands (i.e. the request commands variable) to the motors of the device which ID is specified in the service request.

Parameters

~actuators (string[])
  • The actuator names in the robot_description.
~device_id (int, default: 1)
  • The device ID, in range [1, 128].
~joints (string[])
  • The joint names in the robot_description.
~namespace (string, default: qbdevice_<device_id>)
  • The device namespace used to avoid name clashes among same-type devices.
~robot_description (string)
  • The urdf xml robot description.
~transmission (string, default: transmission)
  • The name of the current transmission derived from transmission_interface::Transmission: qbhand and qbmove use their own specific transmission.

Wiki: qb_device_hardware_interface (last edited 2017-03-09 14:52:17 by AlessandroTondo)