![]() |
Tesseract 0.28.4
|
Kinematics utility functions. More...
#include <tesseract/common/macros.h>#include <Eigen/Dense>#include <tesseract/kinematics/utils.h>#include <tesseract/kinematics/joint_group.h>#include <tesseract/kinematics/forward_kinematics.h>Functions | |
| void | tesseract::kinematics::numericalJacobian (Eigen::Ref< Eigen::MatrixXd > jacobian, const Eigen::Isometry3d &change_base, const ForwardKinematics &kin, const Eigen::Ref< const Eigen::VectorXd > &joint_values, const tesseract::common::LinkId &link_id, const Eigen::Ref< const Eigen::Vector3d > &link_point) |
| Numerically calculate a jacobian. This is mainly used for testing. | |
| 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 tesseract::common::LinkId &link_id, const Eigen::Ref< const Eigen::Vector3d > &link_point) |
| Numerically calculate a jacobian. This is mainly used for testing. | |
| void | tesseract::kinematics::numericalJacobian (Eigen::Ref< Eigen::MatrixXd > jacobian, const JointGroup &joint_group, const Eigen::Ref< const Eigen::VectorXd > &joint_values, const tesseract::common::LinkId &base_link_id, const Eigen::Isometry3d &base_link_offset, const tesseract::common::LinkId &link_id, const Eigen::Isometry3d &link_offset) |
| Numerically calculate a jacobian when both source and target are active links. | |
| 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. | |
| 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. | |
| bool | tesseract::kinematics::isNearSingularity (const Eigen::Ref< const Eigen::MatrixXd > &jacobian, double threshold=0.01) |
| Check if the provided jacobian is near a singularity. | |
| Manipulability | tesseract::kinematics::calcManipulability (const Eigen::Ref< const Eigen::MatrixXd > &jacobian) |
| Calculate manipulability data about the provided jacobian. | |
Kinematics utility functions.
| void tesseract::kinematics::numericalJacobian | ( | Eigen::Ref< Eigen::MatrixXd > | jacobian, |
| const Eigen::Isometry3d & | change_base, | ||
| const ForwardKinematics & | kin, | ||
| const Eigen::Ref< const Eigen::VectorXd > & | joint_values, | ||
| const tesseract::common::LinkId & | link_id, | ||
| 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. |
| change_base | The transform from the desired frame to the current base frame of the jacobian |
| kin | The kinematics object |
| joint_values | The joint values for which to calculate the jacobian |
| link_id | The link id 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 JointGroup & | joint_group, | ||
| const Eigen::Ref< const Eigen::VectorXd > & | joint_values, | ||
| const tesseract::common::LinkId & | link_id, | ||
| 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. |
| change_base | The transform from the desired frame to the current base frame of the jacobian |
| joint_group | The joint group object |
| joint_values | The joint values for which to calculate the jacobian |
| link_id | The link id 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 JointGroup & | joint_group, | ||
| const Eigen::Ref< const Eigen::VectorXd > & | joint_values, | ||
| const tesseract::common::LinkId & | base_link_id, | ||
| const Eigen::Isometry3d & | base_link_offset, | ||
| const tesseract::common::LinkId & | link_id, | ||
| const Eigen::Isometry3d & | link_offset | ||
| ) |
Numerically calculate a jacobian when both source and target are active links.
| 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 |
| base_link_id | The link id for which the jacobian is calculated in |
| base_link_offset | The offset on the base link for which to calculate the jacobian in |
| link_id | The link id for which the jacobian is calculated for |
| link_offset | The offset on the link for which the jacobian is calcualted for |
| 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) |
| 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 |
| 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 |
| Manipulability tesseract::kinematics::calcManipulability | ( | const Eigen::Ref< const Eigen::MatrixXd > & | jacobian | ) |
Calculate manipulability data about the provided jacobian.
| jacobian | The jacobian used to calculate manipulability |