#include <pr2_arm_ik.h>
Public Member Functions | |
void | computeIKShoulderPan (const Eigen::Matrix4f &g_in, const double &shoulder_pan_initial_guess, std::vector< std::vector< double > > &solution) |
compute IK based on an initial guess for the shoulder pan angle. | |
void | computeIKShoulderRoll (const Eigen::Matrix4f &g_in, const double &shoulder_roll_initial_guess, std::vector< std::vector< double > > &solution) |
compute IK based on an initial guess for the shoulder roll angle. h | |
void | getSolverInfo (kinematics_msgs::KinematicSolverInfo &info) |
get chain information about the arm. This populates the IK query response, filling in joint level information including names and joint limits. | |
bool | init (const urdf::Model &robot_model, const std::string &root_name, const std::string &tip_name) |
Initialize the solver by providing a urdf::Model and a root and tip name. | |
PR2ArmIK () | |
~PR2ArmIK () | |
Public Attributes | |
kinematics_msgs::KinematicSolverInfo | solver_info_ |
get chain information about the arm. | |
Private Member Functions | |
void | addJointToChainInfo (boost::shared_ptr< const urdf::Joint > joint, kinematics_msgs::KinematicSolverInfo &info) |
bool | checkJointLimits (const std::vector< double > &joint_values) |
bool | checkJointLimits (const double &joint_value, const int &joint_num) |
Private Attributes | |
std::vector< double > | angle_multipliers_ |
std::vector< bool > | continuous_joint_ |
double | elbow_wrist_offset_ |
Eigen::Matrix4f | gf_ |
Eigen::Matrix4f | grhs_ |
Eigen::Matrix4f | home_ |
Eigen::Matrix4f | home_inv_ |
std::vector< double > | max_angles_ |
std::vector< double > | min_angles_ |
double | shoulder_elbow_offset_ |
double | shoulder_upperarm_offset_ |
double | shoulder_wrist_offset_ |
std::vector< double > | solution_ |
double | torso_shoulder_offset_x_ |
double | torso_shoulder_offset_y_ |
double | torso_shoulder_offset_z_ |
double | upperarm_elbow_offset_ |
Definition at line 46 of file pr2_arm_ik.h.
Definition at line 48 of file pr2_arm_ik.cpp.
pr2_arm_kinematics::PR2ArmIK::~PR2ArmIK | ( | ) | [inline] |
Definition at line 56 of file pr2_arm_ik.h.
void PR2ArmIK::addJointToChainInfo | ( | boost::shared_ptr< const urdf::Joint > | joint, |
kinematics_msgs::KinematicSolverInfo & | info | ||
) | [private] |
Definition at line 125 of file pr2_arm_ik.cpp.
bool PR2ArmIK::checkJointLimits | ( | const std::vector< double > & | joint_values | ) | [private] |
Definition at line 630 of file pr2_arm_ik.cpp.
bool PR2ArmIK::checkJointLimits | ( | const double & | joint_value, |
const int & | joint_num | ||
) | [private] |
Definition at line 642 of file pr2_arm_ik.cpp.
void PR2ArmIK::computeIKShoulderPan | ( | const Eigen::Matrix4f & | g_in, |
const double & | shoulder_pan_initial_guess, | ||
std::vector< std::vector< double > > & | solution | ||
) |
compute IK based on an initial guess for the shoulder pan angle.
Input | pose for end-effector |
Initial | guess for shoulder pan angle |
Definition at line 154 of file pr2_arm_ik.cpp.
void PR2ArmIK::computeIKShoulderRoll | ( | const Eigen::Matrix4f & | g_in, |
const double & | shoulder_roll_initial_guess, | ||
std::vector< std::vector< double > > & | solution | ||
) |
compute IK based on an initial guess for the shoulder roll angle. h
Input | pose for end-effector |
Initial | guess for shoulder roll angle |
Definition at line 374 of file pr2_arm_ik.cpp.
void PR2ArmIK::getSolverInfo | ( | kinematics_msgs::KinematicSolverInfo & | info | ) |
get chain information about the arm. This populates the IK query response, filling in joint level information including names and joint limits.
The | response structure to be filled in. |
Definition at line 148 of file pr2_arm_ik.cpp.
bool PR2ArmIK::init | ( | const urdf::Model & | robot_model, |
const std::string & | root_name, | ||
const std::string & | tip_name | ||
) |
Initialize the solver by providing a urdf::Model and a root and tip name.
A | urdf::Model representation of the PR2 robot model |
The | root joint name of the arm |
The | tip joint name of the arm |
Definition at line 52 of file pr2_arm_ik.cpp.
std::vector<double> pr2_arm_kinematics::PR2ArmIK::angle_multipliers_ [private] |
Definition at line 107 of file pr2_arm_ik.h.
Definition at line 117 of file pr2_arm_ik.h.
double pr2_arm_kinematics::PR2ArmIK::elbow_wrist_offset_ [private] |
Definition at line 111 of file pr2_arm_ik.h.
Eigen::Matrix4f pr2_arm_kinematics::PR2ArmIK::gf_ [private] |
Definition at line 105 of file pr2_arm_ik.h.
Eigen::Matrix4f pr2_arm_kinematics::PR2ArmIK::grhs_ [private] |
Definition at line 105 of file pr2_arm_ik.h.
Eigen::Matrix4f pr2_arm_kinematics::PR2ArmIK::home_ [private] |
Definition at line 105 of file pr2_arm_ik.h.
Eigen::Matrix4f pr2_arm_kinematics::PR2ArmIK::home_inv_ [private] |
Definition at line 105 of file pr2_arm_ik.h.
std::vector<double> pr2_arm_kinematics::PR2ArmIK::max_angles_ [private] |
Definition at line 115 of file pr2_arm_ik.h.
std::vector<double> pr2_arm_kinematics::PR2ArmIK::min_angles_ [private] |
Definition at line 113 of file pr2_arm_ik.h.
double pr2_arm_kinematics::PR2ArmIK::shoulder_elbow_offset_ [private] |
Definition at line 111 of file pr2_arm_ik.h.
double pr2_arm_kinematics::PR2ArmIK::shoulder_upperarm_offset_ [private] |
Definition at line 111 of file pr2_arm_ik.h.
double pr2_arm_kinematics::PR2ArmIK::shoulder_wrist_offset_ [private] |
Definition at line 111 of file pr2_arm_ik.h.
std::vector<double> pr2_arm_kinematics::PR2ArmIK::solution_ [private] |
Definition at line 109 of file pr2_arm_ik.h.
kinematics_msgs::KinematicSolverInfo pr2_arm_kinematics::PR2ArmIK::solver_info_ |
get chain information about the arm.
Definition at line 93 of file pr2_arm_ik.h.
double pr2_arm_kinematics::PR2ArmIK::torso_shoulder_offset_x_ [private] |
Definition at line 111 of file pr2_arm_ik.h.
double pr2_arm_kinematics::PR2ArmIK::torso_shoulder_offset_y_ [private] |
Definition at line 111 of file pr2_arm_ik.h.
double pr2_arm_kinematics::PR2ArmIK::torso_shoulder_offset_z_ [private] |
Definition at line 111 of file pr2_arm_ik.h.
double pr2_arm_kinematics::PR2ArmIK::upperarm_elbow_offset_ [private] |
Definition at line 111 of file pr2_arm_ik.h.