Public Member Functions | |
bool | getPositionFK (const std::vector< std::string > &link_names, const std::vector< double > &joint_angles, std::vector< geometry_msgs::Pose > &poses) const |
Given a set of joint angles and a set of links, compute their pose. More... | |
bool | getPositionFK (const std::vector< std::string > &link_names, const std::vector< double > &joint_angles, std::vector< geometry_msgs::Pose > &poses) const |
Given a set of joint angles and a set of links, compute their pose. More... | |
bool | getPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, std::vector< double > &solution, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, compute the joint angles to reach it. More... | |
bool | getPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, std::vector< double > &solution, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, compute the joint angles to reach it. More... | |
bool | getPositionIK (const std::vector< geometry_msgs::Pose > &ik_poses, const std::vector< double > &ik_seed_state, std::vector< std::vector< double >> &solutions, kinematics::KinematicsResult &result, const kinematics::KinematicsQueryOptions &options) const |
Given a desired pose of the end-effector, compute the set joint angles solutions that are able to reach it. More... | |
bool | getPositionIK (const std::vector< geometry_msgs::Pose > &ik_poses, const std::vector< double > &ik_seed_state, std::vector< std::vector< double >> &solutions, kinematics::KinematicsResult &result, const kinematics::KinematicsQueryOptions &options) const |
Given a desired pose of the end-effector, compute the set joint angles solutions that are able to reach it. More... | |
IKFastKinematicsPlugin () | |
IKFastKinematicsPlugin () | |
bool | searchPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, double timeout, std::vector< double > &solution, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). More... | |
bool | searchPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, double timeout, std::vector< double > &solution, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). More... | |
bool | searchPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, double timeout, const std::vector< double > &consistency_limits, std::vector< double > &solution, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). More... | |
bool | searchPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, double timeout, const std::vector< double > &consistency_limits, std::vector< double > &solution, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). More... | |
bool | searchPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, double timeout, std::vector< double > &solution, const IKCallbackFn &solution_callback, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). More... | |
bool | searchPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, double timeout, std::vector< double > &solution, const IKCallbackFn &solution_callback, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). More... | |
bool | searchPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, double timeout, const std::vector< double > &consistency_limits, std::vector< double > &solution, const IKCallbackFn &solution_callback, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). The consistency_limit specifies that only certain redundancy positions around those specified in the seed state are admissible and need to be searched. More... | |
bool | searchPositionIK (const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_seed_state, double timeout, const std::vector< double > &consistency_limits, std::vector< double > &solution, const IKCallbackFn &solution_callback, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions()) const |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). The consistency_limit specifies that only certain redundancy positions around those specified in the seed state are admissible and need to be searched. More... | |
bool | setRedundantJoints (const std::vector< unsigned int > &redundant_joint_indices) |
Overrides the default method to prevent changing the redundant joints. More... | |
bool | setRedundantJoints (const std::vector< unsigned int > &redundant_joint_indices) |
Overrides the default method to prevent changing the redundant joints. More... | |
void | setSearchDiscretization (const std::map< int, double > &discretization) |
Sets the discretization value for the redundant joint. More... | |
void | setSearchDiscretization (const std::map< int, double > &discretization) |
Sets the discretization value for the redundant joint. More... | |
Public Member Functions inherited from kinematics::KinematicsBase | |
virtual const std::string & | getBaseFrame () const |
double | getDefaultTimeout () const |
virtual const std::string & | getGroupName () const |
virtual bool | getPositionIK (const std::vector< geometry_msgs::Pose > &ik_poses, const std::vector< double > &ik_seed_state, std::vector< std::vector< double > > &solutions, KinematicsResult &result, const kinematics::KinematicsQueryOptions &options) const |
virtual void | getRedundantJoints (std::vector< unsigned int > &redundant_joint_indices) const |
double | getSearchDiscretization (int joint_index=0) const |
std::vector< DiscretizationMethod > | getSupportedDiscretizationMethods () const |
virtual const std::string & | getTipFrame () const |
virtual const std::vector< std::string > & | getTipFrames () const |
virtual bool | initialize (const std::string &robot_description, const std::string &group_name, const std::string &base_frame, const std::vector< std::string > &tip_frames, double search_discretization) |
KinematicsBase () | |
virtual bool | searchPositionIK (const std::vector< geometry_msgs::Pose > &ik_poses, const std::vector< double > &ik_seed_state, double timeout, const std::vector< double > &consistency_limits, std::vector< double > &solution, const IKCallbackFn &solution_callback, moveit_msgs::MoveItErrorCodes &error_code, const kinematics::KinematicsQueryOptions &options=kinematics::KinematicsQueryOptions(), const moveit::core::RobotState *context_state=NULL) const |
void | setDefaultTimeout (double timeout) |
bool | setRedundantJoints (const std::vector< std::string > &redundant_joint_names) |
void | setSearchDiscretization (const std::map< int, double > &discretization) |
void | setSearchDiscretization (double sd) |
virtual void | setValues (const std::string &robot_description, const std::string &group_name, const std::string &base_frame, const std::string &tip_frame, double search_discretization) |
virtual void | setValues (const std::string &robot_description, const std::string &group_name, const std::string &base_frame, const std::vector< std::string > &tip_frames, double search_discretization) |
virtual bool | supportsGroup (const moveit::core::JointModelGroup *jmg, std::string *error_text_out=NULL) const |
virtual | ~KinematicsBase () |
Private Member Functions | |
void | fillFreeParams (int count, int *array) |
void | fillFreeParams (int count, int *array) |
void | getClosestSolution (const IkSolutionList< IkReal > &solutions, const std::vector< double > &ik_seed_state, std::vector< double > &solution) const |
void | getClosestSolution (const IkSolutionList< IkReal > &solutions, const std::vector< double > &ik_seed_state, std::vector< double > &solution) const |
bool | getCount (int &count, const int &max_count, const int &min_count) const |
bool | getCount (int &count, const int &max_count, const int &min_count) const |
const std::vector< std::string > & | getJointNames () const |
const std::vector< std::string > & | getJointNames () const |
const std::vector< std::string > & | getLinkNames () const |
const std::vector< std::string > & | getLinkNames () const |
void | getSolution (const IkSolutionList< IkReal > &solutions, int i, std::vector< double > &solution) const |
Gets a specific solution from the set. More... | |
void | getSolution (const IkSolutionList< IkReal > &solutions, int i, std::vector< double > &solution) const |
Gets a specific solution from the set. More... | |
void | getSolution (const IkSolutionList< IkReal > &solutions, const std::vector< double > &ik_seed_state, int i, std::vector< double > &solution) const |
Gets a specific solution from the set with joints rotated 360° to be near seed state where possible. More... | |
void | getSolution (const IkSolutionList< IkReal > &solutions, const std::vector< double > &ik_seed_state, int i, std::vector< double > &solution) const |
Gets a specific solution from the set with joints rotated 360° to be near seed state where possible. More... | |
double | harmonize (const std::vector< double > &ik_seed_state, std::vector< double > &solution) const |
double | harmonize (const std::vector< double > &ik_seed_state, std::vector< double > &solution) const |
bool | initialize (const std::string &robot_description, const std::string &group_name, const std::string &base_name, const std::string &tip_name, double search_discretization) |
bool | initialize (const std::string &robot_description, const std::string &group_name, const std::string &base_name, const std::string &tip_name, double search_discretization) |
bool | sampleRedundantJoint (kinematics::DiscretizationMethod method, std::vector< double > &sampled_joint_vals) const |
samples the designated redundant joint using the chosen discretization method More... | |
bool | sampleRedundantJoint (kinematics::DiscretizationMethod method, std::vector< double > &sampled_joint_vals) const |
samples the designated redundant joint using the chosen discretization method More... | |
int | solve (KDL::Frame &pose_frame, const std::vector< double > &vfree, IkSolutionList< IkReal > &solutions) const |
Calls the IK solver from IKFast. More... | |
int | solve (KDL::Frame &pose_frame, const std::vector< double > &vfree, IkSolutionList< IkReal > &solutions) const |
Calls the IK solver from IKFast. More... | |
Private Attributes | |
bool | active_ |
std::vector< int > | free_params_ |
std::vector< bool > | joint_has_limits_vector_ |
std::vector< double > | joint_max_vector_ |
std::vector< double > | joint_min_vector_ |
std::vector< std::string > | joint_names_ |
std::vector< std::string > | link_names_ |
const std::string | name_ { "ikfast" } |
const size_t | num_joints_ |
Additional Inherited Members | |
Public Types inherited from kinematics::KinematicsBase | |
typedef boost::function< void(const geometry_msgs::Pose &ik_pose, const std::vector< double > &ik_solution, moveit_msgs::MoveItErrorCodes &error_code)> | IKCallbackFn |
Static Public Attributes inherited from kinematics::KinematicsBase | |
static const double | DEFAULT_SEARCH_DISCRETIZATION |
static const double | DEFAULT_TIMEOUT |
Protected Member Functions inherited from kinematics::KinematicsBase | |
bool | lookupParam (const std::string ¶m, T &val, const T &default_val) const |
Protected Attributes inherited from kinematics::KinematicsBase | |
std::string | base_frame_ |
double | default_timeout_ |
std::string | group_name_ |
std::map< int, double > | redundant_joint_discretization_ |
std::vector< unsigned int > | redundant_joint_indices_ |
std::string | robot_description_ |
double | search_discretization_ |
std::vector< DiscretizationMethod > | supported_methods_ |
std::string | tip_frame_ |
std::vector< std::string > | tip_frames_ |
Definition at line 154 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
inline |
Definition at line 179 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
inline |
Definition at line 179 of file duaro_upper_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 728 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
|
private |
Definition at line 700 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
|
private |
Definition at line 735 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
|
inlineprivatevirtual |
Implements kinematics::KinematicsBase.
Definition at line 166 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
inlineprivatevirtual |
Implements kinematics::KinematicsBase.
Definition at line 166 of file duaro_upper_arm_ikfast_moveit_plugin.cpp.
|
inlineprivatevirtual |
Implements kinematics::KinematicsBase.
Definition at line 170 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
inlineprivatevirtual |
Implements kinematics::KinematicsBase.
Definition at line 170 of file duaro_upper_arm_ikfast_moveit_plugin.cpp.
|
virtual |
Given a set of joint angles and a set of links, compute their pose.
link_names | A set of links for which FK needs to be computed |
joint_angles | The state for which FK is being computed |
poses | The resultant set of poses (in the frame returned by getBaseFrame()) |
Implements kinematics::KinematicsBase.
Definition at line 771 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
virtual |
Given a set of joint angles and a set of links, compute their pose.
link_names | A set of links for which FK needs to be computed |
joint_angles | The state for which FK is being computed |
poses | The resultant set of poses (in the frame returned by getBaseFrame()) |
Implements kinematics::KinematicsBase.
|
virtual |
Given a desired pose of the end-effector, compute the joint angles to reach it.
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
solution | the solution vector |
error_code | an error code that encodes the reason for failure or success |
Implements kinematics::KinematicsBase.
|
virtual |
Given a desired pose of the end-effector, compute the joint angles to reach it.
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
solution | the solution vector |
error_code | an error code that encodes the reason for failure or success |
Implements kinematics::KinematicsBase.
Definition at line 1096 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
bool ikfast_kinematics_plugin::IKFastKinematicsPlugin::getPositionIK | ( | const std::vector< geometry_msgs::Pose > & | ik_poses, |
const std::vector< double > & | ik_seed_state, | ||
std::vector< std::vector< double >> & | solutions, | ||
kinematics::KinematicsResult & | result, | ||
const kinematics::KinematicsQueryOptions & | options | ||
) | const |
Given a desired pose of the end-effector, compute the set joint angles solutions that are able to reach it.
This is a default implementation that returns only one solution and so its result is equivalent to calling 'getPositionIK(...)' with a zero initialized seed.
ik_poses | The desired pose of each tip link |
ik_seed_state | an initial guess solution for the inverse kinematics |
solutions | A vector of vectors where each entry is a valid joint solution |
result | A struct that reports the results of the query |
options | An option struct which contains the type of redundancy discretization used. This default implementation only supports the KinmaticSearches::NO_DISCRETIZATION method; requesting any other will result in failure. |
Definition at line 1203 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
bool ikfast_kinematics_plugin::IKFastKinematicsPlugin::getPositionIK | ( | const std::vector< geometry_msgs::Pose > & | ik_poses, |
const std::vector< double > & | ik_seed_state, | ||
std::vector< std::vector< double >> & | solutions, | ||
kinematics::KinematicsResult & | result, | ||
const kinematics::KinematicsQueryOptions & | options | ||
) | const |
Given a desired pose of the end-effector, compute the set joint angles solutions that are able to reach it.
This is a default implementation that returns only one solution and so its result is equivalent to calling 'getPositionIK(...)' with a zero initialized seed.
ik_poses | The desired pose of each tip link |
ik_seed_state | an initial guess solution for the inverse kinematics |
solutions | A vector of vectors where each entry is a valid joint solution |
result | A struct that reports the results of the query |
options | An option struct which contains the type of redundancy discretization used. This default implementation only supports the KinmaticSearches::NO_DISCRETIZATION method; requesting any other will result in failure. |
|
private |
Gets a specific solution from the set.
|
private |
Gets a specific solution from the set.
Definition at line 599 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Gets a specific solution from the set with joints rotated 360° to be near seed state where possible.
|
private |
Gets a specific solution from the set with joints rotated 360° to be near seed state where possible.
Definition at line 618 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 650 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
|
privatevirtual |
Implements kinematics::KinematicsBase.
|
privatevirtual |
Implements kinematics::KinematicsBase.
Definition at line 339 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
samples the designated redundant joint using the chosen discretization method
method | An enumeration flag indicating the discretization method to be used |
sampled_joint_vals | Sampled joint values for the redundant joint |
Definition at line 1346 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
samples the designated redundant joint using the chosen discretization method
method | An enumeration flag indicating the discretization method to be used |
sampled_joint_vals | Sampled joint values for the redundant joint |
|
virtual |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines).
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
Implements kinematics::KinematicsBase.
Definition at line 827 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
virtual |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines).
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
Implements kinematics::KinematicsBase.
|
virtual |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines).
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
the | distance that the redundancy can be from the current position |
Implements kinematics::KinematicsBase.
|
virtual |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines).
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
the | distance that the redundancy can be from the current position |
Implements kinematics::KinematicsBase.
Definition at line 839 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
virtual |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines).
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
Implements kinematics::KinematicsBase.
|
virtual |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines).
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
Implements kinematics::KinematicsBase.
Definition at line 850 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
virtual |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). The consistency_limit specifies that only certain redundancy positions around those specified in the seed state are admissible and need to be searched.
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
consistency_limit | the distance that the redundancy can be from the current position |
Implements kinematics::KinematicsBase.
|
virtual |
Given a desired pose of the end-effector, search for the joint angles required to reach it. This particular method is intended for "searching" for a solutions by stepping through the redundancy (or other numerical routines). The consistency_limit specifies that only certain redundancy positions around those specified in the seed state are admissible and need to be searched.
ik_pose | the desired pose of the link |
ik_seed_state | an initial guess solution for the inverse kinematics |
consistency_limit | the distance that the redundancy can be from the current position |
search_mode is currently fixed during code generation
search_mode is currently fixed during code generation
Implements kinematics::KinematicsBase.
Definition at line 861 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
virtual |
Overrides the default method to prevent changing the redundant joints.
Reimplemented from kinematics::KinematicsBase.
|
virtual |
Overrides the default method to prevent changing the redundant joints.
Reimplemented from kinematics::KinematicsBase.
Definition at line 493 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
void ikfast_kinematics_plugin::IKFastKinematicsPlugin::setSearchDiscretization | ( | const std::map< int, double > & | discretization | ) |
Sets the discretization value for the redundant joint.
Since this ikfast implementation allows for one redundant joint then only the first entry will be in the discretization map will be used. Calling this method replaces previous discretization settings.
discretization | a map of joint indices and discretization value pairs. |
void ikfast_kinematics_plugin::IKFastKinematicsPlugin::setSearchDiscretization | ( | const std::map< int, double > & | discretization | ) |
Sets the discretization value for the redundant joint.
Since this ikfast implementation allows for one redundant joint then only the first entry will be in the discretization map will be used. Calling this method replaces previous discretization settings.
discretization | a map of joint indices and discretization value pairs. |
Definition at line 460 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Calls the IK solver from IKFast.
|
private |
Calls the IK solver from IKFast.
Definition at line 499 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 163 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 162 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 159 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 158 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 157 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 156 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 160 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 164 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.
|
private |
Definition at line 161 of file duaro_lower_arm_ikfast_moveit_plugin.cpp.