47 raw_joint_data_map)) {
return false;}
51 if (!robot_hw->
get<VelocityJointInterface>())
55 VelocityJointInterface&
interface = *(robot_hw->
get<VelocityJointInterface>());
58 for (
const auto& joint_info : transmission_info.
joints_)
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<VelocityActuatorInterface, 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.
velocity[i] =
const_cast<double*
>(handles[i].getCommandPtr());
142 interface.registerHandle(handle);
void registerInterface(T *iface)
ActuatorData act_cmd_data
TransmissionSharedPtr transmission
std::vector< double * > velocity
bool updateJointInterfaces(const TransmissionInfo &transmission_info, hardware_interface::RobotHW *robot_hw, JointInterfaces &joint_interfaces, RawJointDataMap &raw_joint_data_map) override
Update a robot's joint interfaces with joint information contained in a transmission.
Contains pointers to raw data representing the position, velocity and acceleration of a transmission'...
bool getActuatorCommandData(const TransmissionInfo &transmission_info, hardware_interface::RobotHW *robot_hw, ActuatorData &act_cmd_data) override
Contains semantic info about a given transmission loaded from XML (URDF)
hardware_interface::VelocityJointInterface velocity_joint_interface
Joint interfaces of a robot. Only used interfaces need to be populated.
bool getJointCommandData(const TransmissionInfo &transmission_info, const RawJointDataMap &raw_joint_data_map, JointData &jnt_cmd_data) override
bool registerTransmission(TransmissionLoaderData &loader_data, TransmissionHandleData &handle_data) override
ForwardTransmissionInterfaces transmission_interfaces
static bool hasResource(const std::string &name, const Interface &iface)
hardware_interface::JointStateInterface joint_state_interface
Handle for propagating joint velocities to actuator velocities for a given transmission.
Contains pointers to raw data representing the position, velocity and acceleration of a transmission'...
JointStateHandle getHandle(const std::string &name)
std::vector< double * > velocity
ActuatorToJointStateInterface act_to_jnt_state
RobotTransmissions * robot_transmissions
Lifecycle is externally controlled (ie. hardware abstraction)
std::vector< ActuatorInfo > actuators_
JointToActuatorVelocityInterface jnt_to_act_vel_cmd
bool registerTransmission(TransmissionLoaderData &loader_data, TransmissionHandleData &handle_data) override
#define PLUGINLIB_EXPORT_CLASS(class_type, base_class_type)
std::map< std::string, RawJointData > RawJointDataMap
std::vector< JointInfo > joints_
bool updateJointInterfaces(const TransmissionInfo &transmission_info, hardware_interface::RobotHW *robot_hw, JointInterfaces &joint_interfaces, RawJointDataMap &raw_joint_data_map) override
Update a robot's joint interfaces with joint information contained in a transmission.
Raw data for a set of joints.