tsid  1.8.0
Efficient Task Space Inverse Dynamics for Multi-body Systems based on Pinocchio
tsid::math Namespace Reference

Classes

class  ConstraintBase
 Abstract class representing a linear equality/inequality constraint. Equality constraints are represented by a matrix A and a vector b: A*x = b Inequality constraints are represented by a matrix A and two vectors lb and ub: lb <= A*x <= ub Bounds are represented by two vectors lb and ub: lb <= x <= ub. More...
 
class  ConstraintBound
 
class  ConstraintEquality
 
class  ConstraintInequality
 

Typedefs

typedef double Scalar
 
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > Vector
 
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > Matrix
 
typedef Eigen::VectorXi VectorXi
 
typedef Eigen::Matrix< bool, Eigen::Dynamic, 1 > VectorXb
 
typedef Eigen::Matrix< Scalar, 3, 1 > Vector3
 
typedef Eigen::Matrix< Scalar, 6, 1 > Vector6
 
typedef Eigen::Matrix< Scalar, 3, Eigen::Dynamic > Matrix3x
 
typedef Eigen::Ref< Vector3RefVector3
 
typedef const Eigen::Ref< const Vector3ConstRefVector3
 
typedef Eigen::Ref< VectorRefVector
 
typedef const Eigen::Ref< const VectorConstRefVector
 
typedef Eigen::Ref< MatrixRefMatrix
 
typedef const Eigen::Ref< const MatrixConstRefMatrix
 
typedef std::size_t Index
 

Functions

void SE3ToXYZQUAT (const pinocchio::SE3 &M, RefVector xyzQuat)
 
void SE3ToVector (const pinocchio::SE3 &M, RefVector vec)
 
void vectorToSE3 (RefVector vec, pinocchio::SE3 &M)
 
void errorInSE3 (const pinocchio::SE3 &M, const pinocchio::SE3 &Mdes, pinocchio::Motion &error)
 
void solveWithDampingFromSvd (Eigen::JacobiSVD< Eigen::MatrixXd > &svd, ConstRefVector b, RefVector sol, double damping=0.0)
 
void svdSolveWithDamping (ConstRefMatrix A, ConstRefVector b, RefVector sol, double damping=0.0)
 
void pseudoInverse (ConstRefMatrix A, RefMatrix Apinv, double tolerance, unsigned int computationOptions=Eigen::ComputeThinU|Eigen::ComputeThinV)
 
void pseudoInverse (ConstRefMatrix A, Eigen::JacobiSVD< Eigen::MatrixXd > &svdDecomposition, RefMatrix Apinv, double tolerance, unsigned int computationOptions)
 
void pseudoInverse (ConstRefMatrix A, Eigen::JacobiSVD< Eigen::MatrixXd > &svdDecomposition, RefMatrix Apinv, double tolerance, double *nullSpaceBasisOfA, int &nullSpaceRows, int &nullSpaceCols, unsigned int computationOptions)
 
void dampedPseudoInverse (ConstRefMatrix A, Eigen::JacobiSVD< Eigen::MatrixXd > &svdDecomposition, RefMatrix Apinv, double tolerance, double dampingFactor, unsigned int computationOptions=Eigen::ComputeThinU|Eigen::ComputeThinV, double *nullSpaceBasisOfA=0, int *nullSpaceRows=0, int *nullSpaceCols=0)
 
void nullSpaceBasisFromDecomposition (const Eigen::JacobiSVD< Eigen::MatrixXd > &svdDecomposition, double tolerance, double *nullSpaceBasisMatrix, int &rows, int &cols)
 
void nullSpaceBasisFromDecomposition (const Eigen::JacobiSVD< Eigen::MatrixXd > &svdDecomposition, int rank, double *nullSpaceBasisMatrix, int &rows, int &cols)
 
template<typename Derived >
bool isFinite (const Eigen::MatrixBase< Derived > &x)
 
template<typename Derived >
bool is_nan (const Eigen::MatrixBase< Derived > &x)
 
template<class Matrix >
bool writeMatrixToFile (const std::string &filename, const Eigen::MatrixBase< Matrix > &matrix)
 
template<class Matrix >
bool readMatrixFromFile (const std::string &filename, const Eigen::MatrixBase< Matrix > &matrix)
 

Typedef Documentation

◆ ConstRefMatrix

typedef const Eigen::Ref<const Matrix> tsid::math::ConstRefMatrix

◆ ConstRefVector

typedef const Eigen::Ref<const Vector> tsid::math::ConstRefVector

◆ ConstRefVector3

typedef const Eigen::Ref<const Vector3> tsid::math::ConstRefVector3

◆ Index

typedef std::size_t tsid::math::Index

◆ Matrix

typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> tsid::math::Matrix

◆ Matrix3x

typedef Eigen::Matrix<Scalar, 3, Eigen::Dynamic> tsid::math::Matrix3x

◆ RefMatrix

typedef Eigen::Ref<Matrix> tsid::math::RefMatrix

◆ RefVector

typedef Eigen::Ref<Vector> tsid::math::RefVector

◆ RefVector3

typedef Eigen::Ref<Vector3> tsid::math::RefVector3

◆ Scalar

typedef double tsid::math::Scalar

◆ Vector

typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1> tsid::math::Vector

◆ Vector3

typedef Eigen::Matrix<Scalar, 3, 1> tsid::math::Vector3

◆ Vector6

typedef Eigen::Matrix<Scalar, 6, 1> tsid::math::Vector6

◆ VectorXb

typedef Eigen::Matrix<bool, Eigen::Dynamic, 1> tsid::math::VectorXb

◆ VectorXi

typedef Eigen::VectorXi tsid::math::VectorXi

Function Documentation

◆ dampedPseudoInverse()

void tsid::math::dampedPseudoInverse ( ConstRefMatrix  A,
Eigen::JacobiSVD< Eigen::MatrixXd > &  svdDecomposition,
RefMatrix  Apinv,
double  tolerance,
double  dampingFactor,
unsigned int  computationOptions = Eigen::ComputeThinU | Eigen::ComputeThinV,
double *  nullSpaceBasisOfA = 0,
int *  nullSpaceRows = 0,
int *  nullSpaceCols = 0 
)

◆ errorInSE3()

void tsid::math::errorInSE3 ( const pinocchio::SE3 &  M,
const pinocchio::SE3 &  Mdes,
pinocchio::Motion &  error 
)

◆ is_nan()

template<typename Derived >
bool tsid::math::is_nan ( const Eigen::MatrixBase< Derived > &  x)
inline

◆ isFinite()

template<typename Derived >
bool tsid::math::isFinite ( const Eigen::MatrixBase< Derived > &  x)
inline

◆ nullSpaceBasisFromDecomposition() [1/2]

void tsid::math::nullSpaceBasisFromDecomposition ( const Eigen::JacobiSVD< Eigen::MatrixXd > &  svdDecomposition,
double  tolerance,
double *  nullSpaceBasisMatrix,
int &  rows,
int &  cols 
)

◆ nullSpaceBasisFromDecomposition() [2/2]

void tsid::math::nullSpaceBasisFromDecomposition ( const Eigen::JacobiSVD< Eigen::MatrixXd > &  svdDecomposition,
int  rank,
double *  nullSpaceBasisMatrix,
int &  rows,
int &  cols 
)

◆ pseudoInverse() [1/3]

void tsid::math::pseudoInverse ( ConstRefMatrix  A,
Eigen::JacobiSVD< Eigen::MatrixXd > &  svdDecomposition,
RefMatrix  Apinv,
double  tolerance,
double *  nullSpaceBasisOfA,
int &  nullSpaceRows,
int &  nullSpaceCols,
unsigned int  computationOptions 
)

◆ pseudoInverse() [2/3]

void tsid::math::pseudoInverse ( ConstRefMatrix  A,
Eigen::JacobiSVD< Eigen::MatrixXd > &  svdDecomposition,
RefMatrix  Apinv,
double  tolerance,
unsigned int  computationOptions 
)

◆ pseudoInverse() [3/3]

void tsid::math::pseudoInverse ( ConstRefMatrix  A,
RefMatrix  Apinv,
double  tolerance,
unsigned int  computationOptions = Eigen::ComputeThinU | Eigen::ComputeThinV 
)

◆ readMatrixFromFile()

template<class Matrix >
bool tsid::math::readMatrixFromFile ( const std::string &  filename,
const Eigen::MatrixBase< Matrix > &  matrix 
)

Read a matrix from the specified input binary file.

◆ SE3ToVector()

void tsid::math::SE3ToVector ( const pinocchio::SE3 &  M,
RefVector  vec 
)

Convert the input SE3 object to a 12D vector of floats [X,Y,Z,R11,R12,R13,R14,...].

◆ SE3ToXYZQUAT()

void tsid::math::SE3ToXYZQUAT ( const pinocchio::SE3 &  M,
RefVector  xyzQuat 
)

Convert the input SE3 object to a 7D vector of floats [X,Y,Z,Q1,Q2,Q3,Q4].

◆ solveWithDampingFromSvd()

void tsid::math::solveWithDampingFromSvd ( Eigen::JacobiSVD< Eigen::MatrixXd > &  svd,
ConstRefVector  b,
RefVector  sol,
double  damping = 0.0 
)

◆ svdSolveWithDamping()

void tsid::math::svdSolveWithDamping ( ConstRefMatrix  A,
ConstRefVector  b,
RefVector  sol,
double  damping = 0.0 
)

◆ vectorToSE3()

void tsid::math::vectorToSE3 ( RefVector  vec,
pinocchio::SE3 &  M 
)

◆ writeMatrixToFile()

template<class Matrix >
bool tsid::math::writeMatrixToFile ( const std::string &  filename,
const Eigen::MatrixBase< Matrix > &  matrix 
)

Write the specified matrix to a binary file with the specified name.