Go to the documentation of this file.
6 #ifndef __pinocchio_multibody_constraint_generic_hpp__
7 #define __pinocchio_multibody_constraint_generic_hpp__
12 template<
int _Dim,
typename _Scalar,
int _Options,
int _MaxDim>
25 typedef Eigen::Matrix<Scalar, Dim, 1, Options, _MaxDim, 1>
JointForce;
26 typedef Eigen::Matrix<Scalar, 6, Dim, Options, 6, _MaxDim>
DenseBase;
35 template<
int Dim,
typename Scalar,
int Options,
int _MaxDim>
38 typedef Eigen::Matrix<Scalar, 6, Dim, Options, 6, _MaxDim>
ReturnType;
41 template<
int Dim,
typename Scalar,
int Options,
int MaxDim,
typename MotionDerived>
44 typedef Eigen::Matrix<Scalar, 6, Dim, Options, 6, MaxDim>
ReturnType;
47 template<
int Dim,
typename Scalar,
int Options,
int MaxDim,
typename ForceDerived>
52 typedef Eigen::Matrix<Scalar, Dim, Dim, Options, MaxDim, MaxDim>
ReturnType;
55 template<
int Dim,
typename Scalar,
int Options,
int MaxDim,
typename ForceSet>
64 template<
int _Dim,
typename _Scalar,
int _Options,
int _MaxDim>
68 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
91 EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(DenseBase,
D);
98 _Dim !=
Eigen::Dynamic, YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR)
106 _Dim ==
Eigen::Dynamic, YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR);
107 assert(_MaxDim < 0 ||
dim <= _MaxDim);
111 template<
int D,
int MD>
116 _Dim ==
Eigen::Dynamic, YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR);
117 assert(_MaxDim < 0 || subspace.
matrix().cols() <= _MaxDim);
125 template<
typename VectorLike>
126 JointMotion
__mult__(
const Eigen::MatrixBase<VectorLike> & vj)
const
128 return JointMotion(
S * vj);
139 template<
typename ForceDerived>
143 return (
ref.
S.transpose() *
f.toVector()).eval();
146 template<
typename ForceSet>
150 return ref.
S.transpose() * F.derived();
170 return (
int)
S.cols();
173 template<
typename S2,
int O2>
177 typedef typename JointMotionSubspaceTpl::DenseBase ReturnType;
178 ReturnType
res(6,
S.nv());
183 template<
typename S2,
int O2>
184 friend Eigen::Matrix<_Scalar, 6, _Dim, _Options, 6, _MaxDim>
187 typedef Eigen::Matrix<_Scalar, 6, _Dim, _Options, 6, _MaxDim> ReturnType;
188 return ReturnType(Ymatrix *
S.matrix());
193 DenseBase
res(6,
nv());
200 DenseBase
res(6,
nv());
205 template<
typename MotionDerived>
208 DenseBase
res(6,
nv());
215 os <<
"S =\n" <<
S << std::endl;
229 template<
int Dim,
typename Scalar,
int Options,
int MaxDim>
237 return constraint.
matrix().transpose() * constraint.
matrix();
244 #endif // ifndef __pinocchio_multibody_constraint_generic_hpp__
DenseBase motionAction(const MotionDense< MotionDerived > &v) const
DenseBase se3Action(const SE3Tpl< Scalar, Options > &m) const
static void inertiaAction(const InertiaTpl< Scalar, Options > &I, const Eigen::MatrixBase< Mat > &iF, Eigen::MatrixBase< MatRet > const &jF)
Action of an Inertia matrix on a set of motions, represented by a 6xN matrix whose columns represent ...
MatrixMatrixProduct< Eigen::Transpose< const DenseBase >, ForceSet >::type ReturnType
Return type of the Constraint::Transpose * Force operation.
static void motionAction(const MotionDense< MotionDerived > &v, const Eigen::MatrixBase< Mat > &iF, Eigen::MatrixBase< MatRet > const &jF)
Action of a motion on a set of motions, represented by a 6xN matrix whose columns represent a spatial...
traits< JointMotionSubspaceTpl< Dim, Scalar, Options, MaxDim > >::DenseBase DenseBase
JointMotion __mult__(const Eigen::MatrixBase< VectorLike > &vj) const
ReducedSquaredMatrix StDiagonalMatrixSOperationReturnType
static ReturnType run(const JointMotionSubspaceBase< Constraint > &constraint)
PINOCCHIO_EIGEN_REF_CONST_TYPE(Matrix6Like) operator*(const Eigen
ReturnTypeNotDefined ReturnType
ConstraintForceOp< JointMotionSubspaceTpl, ForceDerived >::ReturnType operator*(const ForceDense< ForceDerived > &f) const
Return type of the ation of a Motion onto an object of type D.
JointMotionSubspaceTpl< Dim, Scalar, Options, MaxDim > Constraint
Eigen::Matrix< Scalar, Dim, Dim, Options, MaxDim, MaxDim > ReturnType
static void se3ActionInverse(const SE3Tpl< Scalar, Options > &m, const Eigen::MatrixBase< Mat > &iV, Eigen::MatrixBase< MatRet > const &jV)
Inverse SE3 action on a set of motions, represented by a 6xN matrix whose column represent a spatial ...
JointMotionSubspaceTpl(const Eigen::MatrixBase< D > &_S)
Eigen::Matrix< Scalar, 6, Dim, Options, 6, _MaxDim > DenseBase
DenseBase se3ActionInverse(const SE3Tpl< Scalar, Options > &m) const
MatrixReturnType matrix()
ReturnTypeNotDefined ReturnType
ConstraintForceSetOp< JointMotionSubspaceTpl, ForceSet >::ReturnType operator*(const Eigen::MatrixBase< ForceSet > &F)
Eigen::Matrix< Scalar, Dim, 1, Options, _MaxDim, 1 > JointForce
Transpose(const JointMotionSubspaceTpl &ref)
Transpose transpose() const
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointMotionSubspaceBase< JointMotionSubspaceTpl > Base
MatrixReturnType matrix_impl()
ConstMatrixReturnType matrix_impl() const
const JointMotionSubspaceTpl & ref
MotionTpl< Scalar, Options > JointMotion
bool isEqual(const JointMotionSubspaceTpl &other) const
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > const Eigen::MatrixBase< TangentVectorType > & v
JointMotionSubspaceTpl(const JointMotionSubspaceTpl< D, _Scalar, _Options, MD > subspace)
constexpr static int MaxNV
Return type of the Constraint::Transpose * ForceSet operation.
Eigen::Matrix< Scalar, Dim, Dim, Options, _MaxDim, _MaxDim > ReducedSquaredMatrix
void disp_impl(std::ostream &os) const
Eigen::Matrix< Scalar, 6, Dim, Options, 6, MaxDim > ReturnType
traits< Constraint >::StDiagonalMatrixSOperationReturnType ReturnType
Eigen::Matrix< Scalar, 6, Dim, Options, 6, _MaxDim > ReturnType
traits< JointMotionSubspaceTpl< Dim, Scalar, Options, MaxDim > >::DenseBase DenseBase
#define PINOCCHIO_CONSTRAINT_TYPEDEF_TPL(DERIVED)
JointMotionSubspaceTpl(const int dim)
Common traits structure to fully define base classes for CRTP.
#define PINOCCHIO_EIGEN_REF_TYPE(D)
friend JointMotionSubspaceTpl< _Dim, _Scalar, _Options, _MaxDim >::DenseBase operator*(const InertiaTpl< S2, O2 > &Y, const JointMotionSubspaceTpl &S)
static void se3Action(const SE3Tpl< Scalar, Options > &m, const Eigen::MatrixBase< Mat > &iV, Eigen::MatrixBase< MatRet > const &jV)
SE3 action on a set of motions, represented by a 6xN matrix whose column represent a spatial motion.
friend Eigen::Matrix< _Scalar, 6, _Dim, _Options, 6, _MaxDim > operator*(const Eigen::Matrix< S2, 6, 6, O2 > &Ymatrix, const JointMotionSubspaceTpl &S)
static JointMotionSubspaceTpl Zero(const int dim)
Main pinocchio namespace.
pinocchio
Author(s):
autogenerated on Thu Apr 10 2025 02:42:19