The qbrobotics qbmove HardWare interface implements the specific structures to manage the communication with the qbmove device. More...
#include <qb_move_hardware_interface.h>
Public Member Functions | |
std::vector< std::string > | getJoints () override |
Return the shaft position and stiffness preset joints whether command_with_position_and_preset_ is true ; the motors joints otherwise. More... | |
bool | init (ros::NodeHandle &root_nh, ros::NodeHandle &robot_hw_nh) override |
Call the base method and nothing more. More... | |
qbMoveHW () | |
Initialize the qb_device_hardware_interface::qbDeviceHW with the specific transmission interface and actuator and joint names. More... | |
void | read (const ros::Time &time, const ros::Duration &period) override |
Call the base method and nothing more. More... | |
void | write (const ros::Time &time, const ros::Duration &period) override |
Update the shaft joint limits and call the base method. More... | |
~qbMoveHW () override | |
Do nothing. More... | |
Public Member Functions inherited from qb_device_hardware_interface::qbDeviceHW | |
int | getDeviceId () |
std::string | getDeviceNamespace () |
qbDeviceHW (qb_device_transmission_interface::TransmissionPtr transmission, const std::vector< std::string > &actuators, const std::vector< std::string > &joints) | |
~qbDeviceHW () override | |
Public Member Functions inherited from hardware_interface::RobotHW | |
virtual bool | checkForConflict (const std::list< ControllerInfo > &info) const |
virtual bool | checkForConflict (const std::list< ControllerInfo > &info) const |
virtual void | doSwitch (const std::list< ControllerInfo > &, const std::list< ControllerInfo > &) |
virtual void | doSwitch (const std::list< ControllerInfo > &, const std::list< ControllerInfo > &) |
virtual bool | prepareSwitch (const std::list< ControllerInfo > &start_list, const std::list< ControllerInfo > &stop_list) |
virtual bool | prepareSwitch (const std::list< ControllerInfo > &start_list, const std::list< ControllerInfo > &stop_list) |
RobotHW () | |
virtual | ~RobotHW () |
Public Member Functions inherited from hardware_interface::InterfaceManager | |
T * | get () |
std::vector< std::string > | getInterfaceResources (std::string iface_type) const |
std::vector< std::string > | getNames () const |
void | registerInterface (T *iface) |
void | registerInterfaceManager (InterfaceManager *iface_man) |
Private Member Functions | |
int | getMaxStiffness () |
Parse the maximum value of stiffness of the device from the getInfo string. More... | |
void | updateShaftPositionLimits () |
Update the shaft joint limits since they depend on the fixed motors limits and on the variable stiffness preset. More... | |
Private Attributes | |
bool | command_with_position_and_preset_ |
qb_move_interactive_interface::qbMoveInteractive | interactive_interface_ |
double | max_motor_limits_ |
double | min_motor_limits_ |
double | position_ticks_to_radians_ |
double | preset_percent_to_radians_ |
bool | use_interactive_markers_ |
The qbrobotics qbmove HardWare interface implements the specific structures to manage the communication with the qbmove device.
It exploits the features provided by the base device-independent hardware interface and the specific transmission interface.
Definition at line 46 of file qb_move_hardware_interface.h.
qbMoveHW::qbMoveHW | ( | ) |
Initialize the qb_device_hardware_interface::qbDeviceHW
with the specific transmission interface and actuator and joint names.
Definition at line 32 of file qb_move_hardware_interface.cpp.
|
override |
Do nothing.
Definition at line 37 of file qb_move_hardware_interface.cpp.
|
overridevirtual |
Return the shaft position and stiffness preset joints whether command_with_position_and_preset_
is true
; the motors joints otherwise.
Implements qb_device_hardware_interface::qbDeviceHW.
Definition at line 41 of file qb_move_hardware_interface.cpp.
|
private |
Parse the maximum value of stiffness of the device from the getInfo string.
Actually it would be better to retrieve it as a firmware parameter, but it is not supported in old firmwares.
Definition at line 48 of file qb_move_hardware_interface.cpp.
|
overridevirtual |
Call the base method and nothing more.
root_nh | A NodeHandle in the root of the caller namespace. |
robot_hw_nh | A NodeHandle in the namespace from which the RobotHW should read its configuration. |
true
on success. Reimplemented from qb_device_hardware_interface::qbDeviceHW.
Definition at line 59 of file qb_move_hardware_interface.cpp.
|
overridevirtual |
Call the base method and nothing more.
time | The current time. |
period | The time passed since the last call to this method, i.e. the control period. |
Reimplemented from qb_device_hardware_interface::qbDeviceHW.
Definition at line 85 of file qb_move_hardware_interface.cpp.
|
private |
Update the shaft joint limits since they depend on the fixed motors limits and on the variable stiffness preset.
What comes out is that an increase of the variable stiffness decreases the absolute value of the shaft position limit, follwing the formula , where S
is the stifness preset (all the values are in ticks).
Definition at line 94 of file qb_move_hardware_interface.cpp.
|
overridevirtual |
Update the shaft joint limits and call the base method.
The update is necessary since an increase of the variable stiffness decreases the shaft position limits, and vice versa.
time | The current time. |
period | The time passed since the last call to this method, i.e. the control period. |
Reimplemented from qb_device_hardware_interface::qbDeviceHW.
Definition at line 100 of file qb_move_hardware_interface.cpp.
|
private |
Definition at line 93 of file qb_move_hardware_interface.h.
|
private |
Definition at line 92 of file qb_move_hardware_interface.h.
|
private |
Definition at line 97 of file qb_move_hardware_interface.h.
|
private |
Definition at line 98 of file qb_move_hardware_interface.h.
|
private |
Definition at line 95 of file qb_move_hardware_interface.h.
|
private |
Definition at line 96 of file qb_move_hardware_interface.h.
|
private |
Definition at line 94 of file qb_move_hardware_interface.h.