Namespaces | |
| test_suite | |
Classes | |
| class | ForwardKinematics |
| Forward kinematics functions. More... | |
| class | FwdKinFactory |
| Define a forward kinematics plugin which the factory can create an instance. More... | |
| class | IKFastInvKin |
| IKFast Inverse Kinematics Implmentation. More... | |
| class | IKFastInvKinFactory |
| class | InverseKinematics |
| Inverse kinematics functions. More... | |
| class | InvKinFactory |
| Define a inverse kinematics plugin which the factory can create an instance. More... | |
| class | JointGroup |
| A Joint Group is defined by a list of joint_names. More... | |
| struct | KDLChainData |
| The KDLChainData struct. More... | |
| class | KDLFwdKinChain |
| KDL kinematic chain implementation. More... | |
| class | KDLFwdKinChainFactory |
| class | KDLInvKinChainLMA |
| KDL Inverse kinematic chain implementation. More... | |
| class | KDLInvKinChainLMAFactory |
| class | KDLInvKinChainNR |
| KDL Inverse kinematic chain implementation. More... | |
| class | KDLInvKinChainNR_JL |
| KDL Inverse kinematic chain implementation. More... | |
| class | KDLInvKinChainNR_JLFactory |
| class | KDLInvKinChainNRFactory |
| class | KinematicGroup |
| class | KinematicsPluginFactory |
| struct | KinGroupIKInput |
| Structure containing the data required to solve inverse kinematics. More... | |
| struct | Manipulability |
| Contains both manipulability ellipsoid and force ellipsoid data. More... | |
| struct | ManipulabilityEllipsoid |
| Used to store Manipulability and Force Ellipsoid data. More... | |
| class | OPWInvKin |
| OPW Inverse Kinematics Implementation. More... | |
| class | OPWInvKinFactory |
| class | REPInvKin |
| Robot With External Positioner Inverse kinematic implementation. More... | |
| class | REPInvKinFactory |
| class | ROPInvKin |
| Robot on Positioner Inverse kinematic implementation. More... | |
| class | ROPInvKinFactory |
| class | URInvKin |
| Universal Robot Inverse Kinematics Implementation. More... | |
| class | URInvKinFactory |
| struct | URParameters |
| The Universal Robot kinematic parameters. More... | |
Typedefs | |
| using | IKSolutions = std::vector< Eigen::VectorXd > |
| The inverse kinematics solutions container. More... | |
| using | KinGroupIKInputs = tesseract_common::AlignedVector< KinGroupIKInput > |
| template<typename FloatType > | |
| using | VectorX = Eigen::Matrix< FloatType, Eigen::Dynamic, 1 > |
Functions | |
| Manipulability | calcManipulability (const Eigen::Ref< const Eigen::MatrixXd > &jacobian) |
| Calculate manipulability data about the provided jacobian. More... | |
| bool | checkKinematics (const KinematicGroup &manip, double tol=1e-3) |
| This compares calcFwdKin to calcInvKin for a KinematicGroup. More... | |
| bool | dampedPInv (const Eigen::Ref< const Eigen::MatrixXd > &A, Eigen::Ref< Eigen::MatrixXd > P, double eps=0.011, double lambda=0.01) |
| Calculate Damped Pseudoinverse Use this SVD to compute A+ (pseudoinverse of A). Weighting still TBD. More... | |
| void | EigenToKDL (const Eigen::Isometry3d &transform, KDL::Frame &frame) |
| Convert Eigen::Isometry3d to KDL::Frame. More... | |
| void | EigenToKDL (const Eigen::Ref< const Eigen::VectorXd > &vec, KDL::JntArray &joints) |
| Convert Eigen::Vector to KDL::JntArray. More... | |
| template<typename FloatType > | |
| std::vector< VectorX< FloatType > > | getRedundantSolutions (const Eigen::Ref< const VectorX< FloatType >> &sol, const Eigen::MatrixX2d &limits, const std::vector< Eigen::Index > &redundancy_capable_joints) |
| Kinematics only return solution between PI and -PI. Provided the limits it will append redundant solutions. More... | |
| template<typename FloatType > | |
| void | getRedundantSolutionsHelper (std::vector< VectorX< FloatType >> &redundant_sols, const Eigen::Ref< const Eigen::VectorXd > &sol, const Eigen::MatrixX2d &limits, std::vector< Eigen::Index >::const_iterator current_index, std::vector< Eigen::Index >::const_iterator end_index) |
| This a recursive function for calculating all permutations of the redundant solutions. More... | |
| template<typename FloatType > | |
| void | harmonizeTowardMedian (Eigen::Ref< VectorX< FloatType >> qs, const std::vector< Eigen::Index > &redundancy_capable_joints, const Eigen::Ref< const Eigen::Matrix< FloatType, Eigen::Dynamic, 2 >> &position_limits) |
| This takes the array of floats and modifies them in place to be between [-PI, PI] relative to limits median. More... | |
| template<typename FloatType > | |
| void | harmonizeTowardZero (Eigen::Ref< VectorX< FloatType >> qs, const std::vector< Eigen::Index > &redundancy_capable_joints) |
| This takes an array of floats and modifies them in place to be between [-PI, PI]. More... | |
| int | inverse (const Eigen::Isometry3d &T, const URParameters ¶ms, double *q_sols, double q6_des) |
| bool | isNearSingularity (const Eigen::Ref< const Eigen::MatrixXd > &jacobian, double threshold=0.01) |
| Check if the provided jacobian is near a singularity. More... | |
| template<typename FloatType > | |
| bool | isValid (const std::array< FloatType, 6 > &qs) |
| Given a vector of floats, this check if they are finite. More... | |
| void | KDLToEigen (const KDL::Frame &frame, Eigen::Isometry3d &transform) |
| Convert KDL::Frame to Eigen::Isometry3d. More... | |
| void | KDLToEigen (const KDL::Jacobian &jacobian, const std::vector< int > &q_nrs, Eigen::Ref< Eigen::MatrixXd > matrix) |
| Convert a subset of KDL::Jacobian to Eigen::Matrix. More... | |
| void | KDLToEigen (const KDL::Jacobian &jacobian, Eigen::Ref< Eigen::MatrixXd > matrix) |
| Convert KDL::Jacobian to Eigen::Matrix. More... | |
| void | KDLToEigen (const KDL::JntArray &joints, Eigen::Ref< Eigen::VectorXd > vec) |
| Convert KDL::JntArray to Eigen::Vector. More... | |
| void | numericalJacobian (Eigen::Ref< Eigen::MatrixXd > jacobian, const Eigen::Isometry3d &change_base, const JointGroup &joint_group, const Eigen::Ref< const Eigen::VectorXd > &joint_values, const std::string &link_name, const Eigen::Ref< const Eigen::Vector3d > &link_point) |
| Numerically calculate a jacobian. This is mainly used for testing. More... | |
| void | numericalJacobian (Eigen::Ref< Eigen::MatrixXd > jacobian, const Eigen::Isometry3d &change_base, const tesseract_kinematics::ForwardKinematics &kin, const Eigen::Ref< const Eigen::VectorXd > &joint_values, const std::string &link_name, const Eigen::Ref< const Eigen::Vector3d > &link_point) |
| Numerically calculate a jacobian. This is mainly used for testing. More... | |
| bool | parseSceneGraph (KDLChainData &results, const tesseract_scene_graph::SceneGraph &scene_graph, const std::string &base_name, const std::string &tip_name) |
| Parse KDL chain data from the scene graph. More... | |
| bool | parseSceneGraph (KDLChainData &results, const tesseract_scene_graph::SceneGraph &scene_graph, const std::vector< std::pair< std::string, std::string >> &chains) |
| Parse KDL chain data from the scene graph. More... | |
| bool | solvePInv (const Eigen::Ref< const Eigen::MatrixXd > &A, const Eigen::Ref< const Eigen::VectorXd > &b, Eigen::Ref< Eigen::VectorXd > x) |
| Solve equation Ax=b for x Use this SVD to compute A+ (pseudoinverse of A). Weighting still TBD. More... | |
| const static URParameters | UR10eParameters (0.1807, -0.6127, -0.57155, 0.17415, 0.11985, 0.11655) |
| The UR10e kinematic parameters. More... | |
| const static URParameters | UR10Parameters (0.1273, -0.612, -0.5723, 0.163941, 0.1157, 0.0922) |
| The UR10 kinematic parameters. More... | |
| const static URParameters | UR3eParameters (0.15185, -0.24355, -0.2132, 0.13105, 0.08535, 0.0921) |
| The UR3e kinematic parameters. More... | |
| const static URParameters | UR3Parameters (0.1519, -0.24365, -0.21325, 0.11235, 0.08535, 0.0819) |
| The UR3 kinematic parameters. More... | |
| const static URParameters | UR5eParameters (0.1625, -0.425, -0.3922, 0.1333, 0.0997, 0.0996) |
| The UR5e kinematic parameters. More... | |
| const static URParameters | UR5Parameters (0.089159, -0.42500, -0.39225, 0.10915, 0.09465, 0.0823) |
| The UR5 kinematic parameters. More... | |
Variables | |
| static const std::string | DEFAULT_REP_INV_KIN_SOLVER_NAME = "REPInvKin" |
| static const std::string | DEFAULT_ROP_INV_KIN_SOLVER_NAME = "ROPInvKin" |
| static const std::string | IKFAST_INV_KIN_CHAIN_SOLVER_NAME = "IKFastInvKin" |
| static const std::string | KDL_FWD_KIN_CHAIN_SOLVER_NAME = "KDLFwdKinChain" |
| static const std::string | KDL_INV_KIN_CHAIN_LMA_SOLVER_NAME = "KDLInvKinChainLMA" |
| static const std::string | KDL_INV_KIN_CHAIN_NR_JL_SOLVER_NAME = "KDLInvKinChainNR_JL" |
| static const std::string | KDL_INV_KIN_CHAIN_NR_SOLVER_NAME = "KDLInvKinChainNR" |
| static const std::string | OPW_INV_KIN_CHAIN_SOLVER_NAME = "OPWInvKin" |
| static const std::string | UR_INV_KIN_CHAIN_SOLVER_NAME = "URInvKin" |
| using tesseract_kinematics::IKSolutions = typedef std::vector<Eigen::VectorXd> |
| using tesseract_kinematics::KinGroupIKInputs = typedef tesseract_common::AlignedVector<KinGroupIKInput> |
Definition at line 73 of file kinematic_group.h.
| using tesseract_kinematics::VectorX = typedef Eigen::Matrix<FloatType, Eigen::Dynamic, 1> |
| Manipulability tesseract_kinematics::calcManipulability | ( | const Eigen::Ref< const Eigen::MatrixXd > & | jacobian | ) |
| bool tesseract_kinematics::checkKinematics | ( | const KinematicGroup & | manip, |
| double | tol = 1e-3 |
||
| ) |
This compares calcFwdKin to calcInvKin for a KinematicGroup.
It checks that the following are the same:
| manip | The kinematic group for a manipulator |
Definition at line 40 of file validate.cpp.
| bool tesseract_kinematics::dampedPInv | ( | const Eigen::Ref< const Eigen::MatrixXd > & | A, |
| Eigen::Ref< Eigen::MatrixXd > | P, | ||
| double | eps = 0.011, |
||
| double | lambda = 0.01 |
||
| ) |
Calculate Damped Pseudoinverse Use this SVD to compute A+ (pseudoinverse of A). Weighting still TBD.
| A | Input matrix (represents Jacobian) |
| P | Output matrix (represents pseudoinverse of A) |
| eps | Singular value threshold |
| lambda | Damping factor |
| void tesseract_kinematics::EigenToKDL | ( | const Eigen::Isometry3d & | transform, |
| KDL::Frame & | frame | ||
| ) |
Convert Eigen::Isometry3d to KDL::Frame.
| transform | Input Eigen transform (Isometry3d) |
| frame | Output KDL Frame |
Definition at line 52 of file kdl_utils.cpp.
| void tesseract_kinematics::EigenToKDL | ( | const Eigen::Ref< const Eigen::VectorXd > & | vec, |
| KDL::JntArray & | joints | ||
| ) |
Convert Eigen::Vector to KDL::JntArray.
| vec | Input Eigen vector |
| joints | Output KDL joint array |
Definition at line 81 of file kdl_utils.cpp.
|
inline |
Kinematics only return solution between PI and -PI. Provided the limits it will append redundant solutions.
The list of redundant solutions does not include the provided solutions.
| sol | The solution to calculate redundant solutions about |
| limits | The joint limits of the robot |
| redundancy_capable_joints | The indices of the redundancy capable joints |
|
inline |
|
inline |
|
inline |
| int tesseract_kinematics::inverse | ( | const Eigen::Isometry3d & | T, |
| const URParameters & | params, | ||
| double * | q_sols, | ||
| double | q6_des | ||
| ) |
Definition at line 53 of file ur_inv_kin.cpp.
| bool tesseract_kinematics::isNearSingularity | ( | const Eigen::Ref< const Eigen::MatrixXd > & | jacobian, |
| double | threshold = 0.01 |
||
| ) |
Check if the provided jacobian is near a singularity.
This is keep separated from the forward kinematics because special consideration may need to be made based on the kinematics arrangement.
| jacobian | The jacobian to check if near a singularity |
| threshold | The threshold that all singular values must be greater than or equal to not be considered near a singularity |
|
inline |
Given a vector of floats, this check if they are finite.
In the case of OPW and IKFast they can return NANS so this is used to check that solutions are valid.
| qs | A pointer to a floats array |
| dof | The length of the float array |
| void tesseract_kinematics::KDLToEigen | ( | const KDL::Frame & | frame, |
| Eigen::Isometry3d & | transform | ||
| ) |
Convert KDL::Frame to Eigen::Isometry3d.
| frame | Input KDL Frame |
| transform | Output Eigen transform (Isometry3d) |
Definition at line 39 of file kdl_utils.cpp.
| void tesseract_kinematics::KDLToEigen | ( | const KDL::Jacobian & | jacobian, |
| const std::vector< int > & | q_nrs, | ||
| Eigen::Ref< Eigen::MatrixXd > | matrix | ||
| ) |
Convert a subset of KDL::Jacobian to Eigen::Matrix.
| jacobian | Input KDL Jacobian |
| q_nrs | Input the columns to use |
| matrix | Output Eigen MatrixXd |
Definition at line 71 of file kdl_utils.cpp.
| void tesseract_kinematics::KDLToEigen | ( | const KDL::Jacobian & | jacobian, |
| Eigen::Ref< Eigen::MatrixXd > | matrix | ||
| ) |
Convert KDL::Jacobian to Eigen::Matrix.
| jacobian | Input KDL Jacobian |
| matrix | Output Eigen MatrixXd |
Definition at line 61 of file kdl_utils.cpp.
| void tesseract_kinematics::KDLToEigen | ( | const KDL::JntArray & | joints, |
| Eigen::Ref< Eigen::VectorXd > | vec | ||
| ) |
Convert KDL::JntArray to Eigen::Vector.
| joints | Input KDL joint array |
| vec | Output Eigen vector |
Definition at line 83 of file kdl_utils.cpp.
| void tesseract_kinematics::numericalJacobian | ( | Eigen::Ref< Eigen::MatrixXd > | jacobian, |
| const Eigen::Isometry3d & | change_base, | ||
| const JointGroup & | joint_group, | ||
| const Eigen::Ref< const Eigen::VectorXd > & | joint_values, | ||
| const std::string & | link_name, | ||
| const Eigen::Ref< const Eigen::Vector3d > & | link_point | ||
| ) |
Numerically calculate a jacobian. This is mainly used for testing.
| jacobian | (Return) The jacobian which gets filled out. |
| joint_group | The joint group object |
| joint_values | The joint values for which to calculate the jacobian |
| link_name | The link_name for which the jacobian should be calculated |
| link_point | The point on the link for which to calculate the jacobian |
| void tesseract_kinematics::numericalJacobian | ( | Eigen::Ref< Eigen::MatrixXd > | jacobian, |
| const Eigen::Isometry3d & | change_base, | ||
| const tesseract_kinematics::ForwardKinematics & | kin, | ||
| const Eigen::Ref< const Eigen::VectorXd > & | joint_values, | ||
| const std::string & | link_name, | ||
| const Eigen::Ref< const Eigen::Vector3d > & | link_point | ||
| ) |
Numerically calculate a jacobian. This is mainly used for testing.
| jacobian | (Return) The jacobian which gets filled out. |
| kin | The kinematics object |
| joint_values | The joint values for which to calculate the jacobian |
| link_name | The link_name for which the jacobian should be calculated |
| link_point | The point on the link for which to calculate the jacobian |
| bool tesseract_kinematics::parseSceneGraph | ( | KDLChainData & | results, |
| const tesseract_scene_graph::SceneGraph & | scene_graph, | ||
| const std::string & | base_name, | ||
| const std::string & | tip_name | ||
| ) |
Parse KDL chain data from the scene graph.
| results | KDL Chain data |
| scene_graph | The Scene Graph |
| base_name | The base link name of chain |
| tip_name | The tip link name of chain |
Definition at line 166 of file kdl_utils.cpp.
| bool tesseract_kinematics::parseSceneGraph | ( | KDLChainData & | results, |
| const tesseract_scene_graph::SceneGraph & | scene_graph, | ||
| const std::vector< std::pair< std::string, std::string >> & | chains | ||
| ) |
Parse KDL chain data from the scene graph.
| results | KDL Chain data |
| scene_graph | The Scene Graph |
| chains | A vector of link pairs that represent a chain which all get concatenated together. The firts link should be the base link and the second link should the tip link of the chain. |
Definition at line 85 of file kdl_utils.cpp.
| bool tesseract_kinematics::solvePInv | ( | const Eigen::Ref< const Eigen::MatrixXd > & | A, |
| const Eigen::Ref< const Eigen::VectorXd > & | b, | ||
| Eigen::Ref< Eigen::VectorXd > | x | ||
| ) |
Solve equation Ax=b for x Use this SVD to compute A+ (pseudoinverse of A). Weighting still TBD.
| A | Input matrix (represents Jacobian) |
| b | Input vector (represents desired pose) |
| x | Output vector (represents joint values) |
|
static |
The UR10e kinematic parameters.
|
static |
The UR10 kinematic parameters.
|
static |
The UR3e kinematic parameters.
|
static |
The UR3 kinematic parameters.
|
static |
The UR5e kinematic parameters.
|
static |
The UR5 kinematic parameters.
|
static |
Definition at line 40 of file rep_inv_kin.h.
|
static |
Definition at line 40 of file rop_inv_kin.h.
|
static |
Definition at line 34 of file ikfast_inv_kin.h.
|
static |
Definition at line 41 of file kdl_fwd_kin_chain.h.
|
static |
Definition at line 40 of file kdl_inv_kin_chain_lma.h.
|
static |
Definition at line 41 of file kdl_inv_kin_chain_nr_jl.h.
|
static |
Definition at line 41 of file kdl_inv_kin_chain_nr.h.
|
static |
Definition at line 38 of file opw_inv_kin.h.
|
static |
Definition at line 82 of file ur_inv_kin.h.