Tesseract
Motion Planning Environment
|
Kinematics utility functions. More...
#include <tesseract_common/macros.h>
#include <vector>
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <Eigen/Eigenvalues>
#include <console_bridge/console.h>
#include <tesseract_scene_graph/graph.h>
#include <tesseract_kinematics/core/forward_kinematics.h>
#include <tesseract_kinematics/core/kinematic_group.h>
Go to the source code of this file.
Classes | |
struct | tesseract_kinematics::ManipulabilityEllipsoid |
Used to store Manipulability and Force Ellipsoid data. More... | |
struct | tesseract_kinematics::Manipulability |
Contains both manipulability ellipsoid and force ellipsoid data. More... | |
Namespaces | |
namespace | tesseract_kinematics |
Typedefs | |
template<typename FloatType > | |
using | tesseract_kinematics::VectorX = Eigen::Matrix< FloatType, Eigen::Dynamic, 1 > |
Functions | |
static 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. More... | |
static void | tesseract_kinematics::numericalJacobian (Eigen::Ref< Eigen::MatrixXd > jacobian, 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... | |
static 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. More... | |
static bool | tesseract_kinematics::dampedPInv (const Eigen::Ref< const Eigen::MatrixXd > &A, Eigen::Ref< Eigen::MatrixXd > P, const double eps=0.011, const double lambda=0.01) |
Calculate Damped Pseudoinverse Use this SVD to compute A+ (pseudoinverse of A). Weighting still TBD. More... | |
bool | tesseract_kinematics::isNearSingularity (const Eigen::Ref< const Eigen::MatrixXd > &jacobian, double threshold=0.01) |
Check if the provided jacobian is near a singularity. More... | |
Manipulability | tesseract_kinematics::calcManipulability (const Eigen::Ref< const Eigen::MatrixXd > &jacobian) |
Calculate manipulability data about the provided jacobian. More... | |
template<typename FloatType > | |
void | tesseract_kinematics::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 > | |
std::vector< VectorX< FloatType > > | tesseract_kinematics::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 > | |
bool | tesseract_kinematics::isValid (const std::array< FloatType, 6 > &qs) |
Given a vector of floats, this check if they are finite. More... | |
template<typename FloatType > | |
void | tesseract_kinematics::harmonizeTowardZero (Eigen::Ref< VectorX< FloatType > > qs, const std::vector< Eigen::Index > &redundancy_capable_joints) |
This take an array of floats and modifies them in place to be between [-PI, PI]. More... | |
Kinematics utility functions.