17 std::vector<UndercarriageDirectCtrl::WheelParams> wheel_params;
25 for (
unsigned i=0; i<wheel_params.size(); i++){
26 this->
steer_joints_.push_back(p->getHandle(wheel_params[i].geom.steer_name));
30 catch(
const std::exception &e){
34 return this->
setup(root_nh,controller_nh);
40 updateCtrl(time, period);
42 for (
unsigned i=0; i<wheel_commands_.size(); i++){
43 steer_joints_[i].setCommand(wheel_commands_[i].dAngGearSteerRad);
44 drive_joints_[i].setCommand(wheel_commands_[i].dVelGearDriveRadS);
bool parseWheelParams(std::vector< UndercarriageGeom::WheelParams > ¶ms, const ros::NodeHandle &nh, bool read_urdf=true)
std::vector< hardware_interface::JointHandle > steer_joints_
virtual void update(const ros::Time &time, const ros::Duration &period)
std::vector< hardware_interface::JointHandle > drive_joints_
virtual bool init(hardware_interface::RobotHW *robot_hw, ros::NodeHandle &root_nh, ros::NodeHandle &controller_nh)
bool setup(const std::vector< typename Controller::WheelParams > &wheel_params)
JointHandle getHandle(const std::string &name)
#define ROS_ERROR_STREAM(args)
#define PLUGINLIB_EXPORT_CLASS(class_type, base_class_type)