Hardware interface for a robot. More...
#include <generic_hw_interface.h>
Public Member Functions | |
virtual bool | canSwitch (const std::list< hardware_interface::ControllerInfo > &start_list, const std::list< hardware_interface::ControllerInfo > &stop_list) const |
Check (in non-realtime) if given controllers could be started and stopped from the current state of the RobotHW with regard to necessary hardware interface switches. Start and stop list are disjoint. This is just a check, the actual switch is done in doSwitch() More... | |
virtual void | doSwitch (const std::list< hardware_interface::ControllerInfo > &start_list, const std::list< hardware_interface::ControllerInfo > &stop_list) |
Perform (in non-realtime) all necessary hardware interface switches in order to start and stop the given controllers. Start and stop list are disjoint. The feasability was checked in canSwitch() beforehand. More... | |
virtual void | enforceLimits (ros::Duration &period)=0 |
GenericHWInterface (const ros::NodeHandle &nh, urdf::Model *urdf_model=NULL) | |
Constructor. More... | |
virtual void | init () |
Initialize the hardware interface. More... | |
std::string | printCommandHelper () |
Helper for debugging a joint's command. More... | |
virtual void | printState () |
Helper for debugging a joint's state. More... | |
std::string | printStateHelper () |
virtual void | read (ros::Duration &elapsed_time)=0 |
Read the state from the robot hardware. More... | |
virtual void | read (const ros::Time &, const ros::Duration &period) override |
Read the state from the robot hardware. More... | |
virtual void | registerJointLimits (const hardware_interface::JointHandle &joint_handle_position, const hardware_interface::JointHandle &joint_handle_velocity, const hardware_interface::JointHandle &joint_handle_effort, std::size_t joint_id) |
Register the limits of the joint specified by joint_id and joint_handle. The limits are retrieved from the urdf_model. More... | |
virtual void | reset () |
Set all members to default values. More... | |
virtual void | write (ros::Duration &elapsed_time)=0 |
Write the command to the robot hardware. More... | |
virtual void | write (const ros::Time &, const ros::Duration &period) override |
Write the command to the robot hardware. More... | |
virtual | ~GenericHWInterface () |
Destructor. More... | |
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 bool | init (ros::NodeHandle &, ros::NodeHandle &) |
virtual bool | prepareSwitch (const std::list< ControllerInfo > &, const std::list< ControllerInfo > &) |
virtual SwitchState | switchResult (const ControllerInfo &) const |
virtual SwitchState | switchResult () const |
virtual | ~RobotHW ()=default |
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) |
Protected Member Functions | |
virtual void | loadURDF (const ros::NodeHandle &nh, std::string param_name) |
Get the URDF XML from the parameter server. More... | |
Additional Inherited Members | |
Public Types inherited from hardware_interface::RobotHW | |
enum | SwitchState |
Public Attributes inherited from hardware_interface::RobotHW | |
DONE | |
ERROR | |
ONGOING | |
Protected Types inherited from hardware_interface::InterfaceManager | |
typedef std::vector< InterfaceManager *> | InterfaceManagerVector |
typedef std::map< std::string, void *> | InterfaceMap |
typedef std::map< std::string, std::vector< std::string > > | ResourceMap |
typedef std::map< std::string, size_t > | SizeMap |
Hardware interface for a robot.
Definition at line 63 of file generic_hw_interface.h.
ros_control_boilerplate::GenericHWInterface::GenericHWInterface | ( | const ros::NodeHandle & | nh, |
urdf::Model * | urdf_model = NULL |
||
) |
Constructor.
nh | - Node handle for topics. |
urdf | - optional pointer to a parsed robot model |
Definition at line 47 of file generic_hw_interface.cpp.
|
inlinevirtual |
Destructor.
Definition at line 74 of file generic_hw_interface.h.
|
inlinevirtual |
Check (in non-realtime) if given controllers could be started and stopped from the current state of the RobotHW with regard to necessary hardware interface switches. Start and stop list are disjoint. This is just a check, the actual switch is done in doSwitch()
Definition at line 122 of file generic_hw_interface.h.
|
inlinevirtual |
Perform (in non-realtime) all necessary hardware interface switches in order to start and stop the given controllers. Start and stop list are disjoint. The feasability was checked in canSwitch() beforehand.
Reimplemented from hardware_interface::RobotHW.
Definition at line 133 of file generic_hw_interface.h.
|
pure virtual |
Enforce limits for all values before writing
Implemented in ros_control_boilerplate::SimHWInterface, and rrbot_control::RRBotHWInterface.
|
virtual |
Initialize the hardware interface.
Reimplemented in ros_control_boilerplate::SimHWInterface.
Definition at line 64 of file generic_hw_interface.cpp.
|
protectedvirtual |
Get the URDF XML from the parameter server.
Definition at line 300 of file generic_hw_interface.cpp.
std::string ros_control_boilerplate::GenericHWInterface::printCommandHelper | ( | ) |
Helper for debugging a joint's command.
Definition at line 286 of file generic_hw_interface.cpp.
|
virtual |
Helper for debugging a joint's state.
Definition at line 265 of file generic_hw_interface.cpp.
std::string ros_control_boilerplate::GenericHWInterface::printStateHelper | ( | ) |
Definition at line 272 of file generic_hw_interface.cpp.
|
pure virtual |
Read the state from the robot hardware.
Implemented in ros_control_boilerplate::SimHWInterface, and rrbot_control::RRBotHWInterface.
|
inlineoverridevirtual |
Read the state from the robot hardware.
time | The current time, currently unused |
period | The time passed since the last call |
Reimplemented from hardware_interface::RobotHW.
Definition at line 91 of file generic_hw_interface.h.
|
virtual |
Register the limits of the joint specified by joint_id and joint_handle. The limits are retrieved from the urdf_model.
Definition at line 119 of file generic_hw_interface.cpp.
|
virtual |
Set all members to default values.
Definition at line 258 of file generic_hw_interface.cpp.
|
pure virtual |
Write the command to the robot hardware.
Implemented in ros_control_boilerplate::SimHWInterface, and rrbot_control::RRBotHWInterface.
|
inlineoverridevirtual |
Write the command to the robot hardware.
time | The current time, currently unused |
period | The time passed since the last call |
Reimplemented from hardware_interface::RobotHW.
Definition at line 107 of file generic_hw_interface.h.
|
protected |
Definition at line 177 of file generic_hw_interface.h.
|
protected |
Definition at line 182 of file generic_hw_interface.h.
|
protected |
Definition at line 172 of file generic_hw_interface.h.
|
protected |
Definition at line 196 of file generic_hw_interface.h.
|
protected |
Definition at line 201 of file generic_hw_interface.h.
|
protected |
Definition at line 207 of file generic_hw_interface.h.
|
protected |
Definition at line 185 of file generic_hw_interface.h.
|
protected |
Definition at line 194 of file generic_hw_interface.h.
|
protected |
Definition at line 199 of file generic_hw_interface.h.
|
protected |
Definition at line 204 of file generic_hw_interface.h.
|
protected |
Definition at line 205 of file generic_hw_interface.h.
|
protected |
Definition at line 169 of file generic_hw_interface.h.
|
protected |
Definition at line 195 of file generic_hw_interface.h.
|
protected |
Definition at line 200 of file generic_hw_interface.h.
|
protected |
Definition at line 206 of file generic_hw_interface.h.
|
protected |
Definition at line 163 of file generic_hw_interface.h.
|
protected |
Definition at line 166 of file generic_hw_interface.h.
|
protected |
Definition at line 186 of file generic_hw_interface.h.
|
protected |
Definition at line 175 of file generic_hw_interface.h.
|
protected |
Definition at line 180 of file generic_hw_interface.h.
|
protected |
Definition at line 170 of file generic_hw_interface.h.
|
protected |
Definition at line 187 of file generic_hw_interface.h.
|
protected |
Definition at line 190 of file generic_hw_interface.h.
|
protected |
Definition at line 191 of file generic_hw_interface.h.
|
protected |
Definition at line 176 of file generic_hw_interface.h.
|
protected |
Definition at line 181 of file generic_hw_interface.h.
|
protected |
Definition at line 171 of file generic_hw_interface.h.