75 double position = {std::numeric_limits<double>::quiet_NaN()};
76 double velocity = {std::numeric_limits<double>::quiet_NaN()};
77 double effort = {std::numeric_limits<double>::quiet_NaN()};
80 double effort_cmd = {std::numeric_limits<double>::quiet_NaN()};
147 virtual bool updateJointInterfaces(
const TransmissionInfo& transmission_info,
150 RawJointDataMap& raw_joint_data_map) = 0;
167 const RawJointDataMap& raw_joint_data_map,
171 const RawJointDataMap& raw_joint_data_map,
174 virtual bool getActuatorStateData(
const TransmissionInfo& transmission_info,
178 virtual bool getActuatorCommandData(
const TransmissionInfo& transmission_info,
185 template <
class Interface>
186 static bool hasResource(
const std::string& name,
const Interface& iface)
191 const std::vector<std::string>& existing_resources = iface.getNames();
192 if (existing_resources.end() != std::find(existing_resources.begin(), existing_resources.end(), name))
195 demangledTypeName<Interface>());
201 demangledTypeName<Interface>());
206 template <
class HardwareInterface,
class Handle>
209 std::vector<Handle>& handles)
215 HardwareInterface* hw_iface = robot_hw->
get<HardwareInterface>();
221 demangledTypeName<HardwareInterface>() <<
"'.");
226 for (
const auto& info : actuators_info)
230 handles.push_back(hw_iface->getHandle(info.name_));
232 catch(
const HardwareInterfaceException& ex)
235 "' does not expose the required hardware interface '" <<
236 demangledTypeName<HardwareInterface>() <<
"'.");
335 bool load(
const std::string& urdf);
345 bool load(
const std::vector<TransmissionInfo>& transmission_info_vec);
bool getActuatorHandles(const std::vector< ActuatorInfo > &actuators_info, hardware_interface::RobotHW *robot_hw, std::vector< Handle > &handles)
RobotTransmissions * robot_transmissions_ptr_
ActuatorData act_cmd_data
TransmissionSharedPtr transmission
RequisiteProviderClassLoaderPtr req_provider_loader_
JointInterfaces joint_interfaces
#define ROS_DEBUG_STREAM_NAMED(name, args)
#define ROS_ERROR_STREAM_NAMED(name, args)
hardware_interface::RobotHW * robot_hw_ptr_
TransmissionClassLoaderPtr transmission_class_loader_
ActuatorToJointPositionInterface act_to_jnt_pos_cmd
Contains pointers to raw data representing the position, velocity and acceleration of a transmission'...
Parses <transmission> elements into corresponding structs from XML (URDF).
ActuatorToJointEffortInterface act_to_jnt_eff_cmd
Contains semantic info about a given transmission loaded from XML (URDF)
std::shared_ptr< RequisiteProviderClassLoader > RequisiteProviderClassLoaderPtr
hardware_interface::VelocityJointInterface velocity_joint_interface
Robot transmissions interface.
JointToActuatorEffortInterface jnt_to_act_eff_cmd
std::string demangledTypeName()
std::shared_ptr< TransmissionClassLoader > TransmissionClassLoaderPtr
JointToActuatorPositionInterface jnt_to_act_pos_cmd
InverseTransmissionInterfaces inverse_transmission_interfaces
Class for loading transmissions from a URDF description into ros_control interfaces.
hardware_interface::EffortJointInterface effort_joint_interface
Joint interfaces of a robot. Only used interfaces need to be populated.
Structs to hold transmission data loaded straight from XML (URDF).
ForwardTransmissionInterfaces transmission_interfaces
static bool hasResource(const std::string &name, const Interface &iface)
hardware_interface::JointStateInterface joint_state_interface
RawJointDataMap raw_joint_data_map
pluginlib::ClassLoader< TransmissionLoader > TransmissionClassLoader
pluginlib::ClassLoader< RequisiteProvider > RequisiteProviderClassLoader
ActuatorToJointVelocityInterface act_to_jnt_vel_cmd
Contains pointers to raw data representing the position, velocity and acceleration of a transmission'...
std::shared_ptr< RequisiteProvider > RequisiteProviderPtr
JointToActuatorStateInterface jnt_to_act_state
TransmissionLoaderData loader_data_
ActuatorToJointStateInterface act_to_jnt_state
std::shared_ptr< Transmission > TransmissionSharedPtr
JointToActuatorVelocityInterface jnt_to_act_vel_cmd
std::vector< TransmissionSharedPtr > transmission_data
hardware_interface::PositionJointInterface position_joint_interface
std::map< std::string, RawJointData > RawJointDataMap
TransmissionLoaderData * getData()
Raw data for a set of joints.
ActuatorData act_state_data