47 raw_joint_data_map)) {
return false;}
51 if (!robot_hw->
get<PositionJointInterface>())
55 PositionJointInterface&
interface = *(robot_hw->
get<PositionJointInterface>());
60 const std::string& name = joint_info.
name_;
70 interface.registerHandle(handle);
79 const unsigned int dim = transmission_info.
joints_.size();
82 for (
unsigned int i = 0; i < dim; ++i)
84 const std::string& joint_name = transmission_info.
joints_[i].name_;
85 RawJointDataMap::const_iterator raw_joint_data_it = raw_joint_data_map.find(joint_name);
86 if (raw_joint_data_it == raw_joint_data_map.end()) {
return false;}
87 const RawJointData& raw_joint_data = raw_joint_data_it->second;
104 std::vector<ActuatorHandle> handles;
105 if (!this->getActuatorHandles<PositionActuatorInterface, ActuatorHandle>(transmission_info.
actuators_,
107 handles)) {
return false;}
110 const unsigned int dim = transmission_info.
actuators_.size();
113 for (
unsigned int i = 0; i < dim; ++i)
116 act_cmd_data.
position[i] =
const_cast<double*
>(handles[i].getCommandPtr());
142 interface.registerHandle(handle);
void registerInterface(T *iface)
ActuatorData act_cmd_data
TransmissionSharedPtr transmission
bool registerTransmission(TransmissionLoaderData &loader_data, TransmissionHandleData &handle_data)
bool getActuatorCommandData(const TransmissionInfo &transmission_info, hardware_interface::RobotHW *robot_hw, ActuatorData &act_cmd_data)
Contains pointers to raw data representing the position, velocity and acceleration of a transmission'...
std::vector< double * > position
bool registerTransmission(TransmissionLoaderData &loader_data, TransmissionHandleData &handle_data)
Contains semantic info about a given joint loaded from XML (URDF)
Contains semantic info about a given transmission loaded from XML (URDF)
bool updateJointInterfaces(const TransmissionInfo &transmission_info, hardware_interface::RobotHW *robot_hw, JointInterfaces &joint_interfaces, RawJointDataMap &raw_joint_data_map)
Update a robot's joint interfaces with joint information contained in a transmission.
JointToActuatorPositionInterface jnt_to_act_pos_cmd
Joint interfaces of a robot. Only used interfaces need to be populated.
ForwardTransmissionInterfaces transmission_interfaces
static bool hasResource(const std::string &name, const Interface &iface)
hardware_interface::JointStateInterface joint_state_interface
Contains pointers to raw data representing the position, velocity and acceleration of a transmission'...
bool getJointCommandData(const TransmissionInfo &transmission_info, const RawJointDataMap &raw_joint_data_map, JointData &jnt_cmd_data)
JointStateHandle getHandle(const std::string &name)
ActuatorToJointStateInterface act_to_jnt_state
RobotTransmissions * robot_transmissions
Lifecycle is externally controlled (ie. hardware abstraction)
std::vector< double * > position
bool updateJointInterfaces(const TransmissionInfo &transmission_info, hardware_interface::RobotHW *robot_hw, JointInterfaces &joint_interfaces, RawJointDataMap &raw_joint_data_map)
Update a robot's joint interfaces with joint information contained in a transmission.
std::vector< ActuatorInfo > actuators_
PLUGINLIB_EXPORT_CLASS(transmission_interface::BiDirectionalEffortJointInterfaceProvider, transmission_interface::RequisiteProvider)
Handle for propagating joint positions to actuator positions for a given transmission.
hardware_interface::PositionJointInterface position_joint_interface
std::map< std::string, RawJointData > RawJointDataMap
std::vector< JointInfo > joints_
Raw data for a set of joints.