23 (std::vector<int16_t>& _strokes,
const std::vector<double>& _angles)
25 static const float rad2Deg = 180.0 / M_PI;
26 static const float scale = 100.0;
32 _strokes[0] =
static_cast<int16_t
>(scale * rad2Deg * _angles[0]);
37 _strokes[3] =
static_cast<int16_t
>(scale * rad2Deg * _angles[3]);
38 _strokes[4] =
static_cast<int16_t
>(scale * wrist.
two);
39 _strokes[5] =
static_cast<int16_t
>(scale * wrist.
one);
40 _strokes[6] =
static_cast<int16_t
>(scale * (-rad2Deg * _angles[6] + 50.0) * 0.18);
50 (std::vector<double>& _angles,
const std::vector<int16_t>& _strokes)
52 static const float deg2Rad = M_PI / 180.0;
53 static const float scale_inv = 0.01;
55 _angles[0] = deg2Rad * scale_inv * _strokes[0];
58 _angles[3] = deg2Rad * scale_inv * _strokes[3];
63 _angles[6] = -deg2Rad * (scale_inv * _strokes[6] * 5.556 - 50.0);
std::vector< StrokeMap > table
void Angle2Stroke(std::vector< int16_t > &_strokes, const std::vector< double > &_angles)
bool makeTable(std::vector< StrokeMap > &_table, const std::string _file_name)
float setStrokeToAngle(const float _stroke, const std::vector< StrokeMap > &_inv_table)
std::vector< StrokeMap > inv_table
const std::string lifter_csv_dir
void Stroke2Angle(std::vector< double > &_angles, const std::vector< int16_t > &_strokes)
const std::string upper_csv_dir
float setAngleToStroke(const float _angle, const std::vector< StrokeMap > &_table)
DiffJoint setDualAngleToStroke(const float _r_angle, const float _p_angle, const std::vector< StrokeMap > &_r_table, const std::vector< StrokeMap > &_p_table, const bool _is_pitch=false)
PLUGINLIB_EXPORT_CLASS(transmission_interface::BiDirectionalEffortJointInterfaceProvider, transmission_interface::RequisiteProvider)
void makeInvTable(std::vector< StrokeMap > &_inv_table, const std::vector< StrokeMap > &_table)