Go to the documentation of this file.
5 #ifndef __pinocchio_multibody_joint_revolute_unbounded_hpp__
6 #define __pinocchio_multibody_joint_revolute_unbounded_hpp__
17 template<
typename Scalar,
int Options,
int axis>
20 template<
typename _Scalar,
int _Options,
int axis>
41 typedef Eigen::Matrix<Scalar, 6, NV, Options>
U_t;
42 typedef Eigen::Matrix<Scalar, NV, NV, Options>
D_t;
43 typedef Eigen::Matrix<Scalar, 6, NV, Options>
UD_t;
51 template<
typename _Scalar,
int _Options,
int axis>
58 template<
typename _Scalar,
int _Options,
int axis>
65 template<
typename _Scalar,
int _Options,
int axis>
67 :
public JointDataBase<JointDataRevoluteUnboundedTpl<_Scalar, _Options, axis>>
69 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
90 ,
joint_v(TangentVector_t::Zero())
102 return std::string(
"JointDataRUB") + axisLabel<axis>();
111 template<
typename NewScalar,
typename Scalar,
int Options,
int axis>
117 template<
typename _Scalar,
int _Options,
int axis>
119 :
public JointModelBase<JointModelRevoluteUnboundedTpl<_Scalar, _Options, axis>>
121 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
132 typedef Eigen::Matrix<Scalar, 3, 1, _Options>
Vector3;
136 return JointDataDerived();
141 return {
false,
false};
149 template<
typename ConfigVector>
150 void calc(JointDataDerived &
data,
const typename Eigen::MatrixBase<ConfigVector> &
qs)
const
157 data.M.setValues(sa, ca);
160 template<
typename TangentVector>
162 calc(JointDataDerived &
data,
const Blank,
const typename Eigen::MatrixBase<TangentVector> & vs)
166 data.v.angularRate() =
data.joint_v[0];
169 template<
typename ConfigVector,
typename TangentVector>
171 JointDataDerived &
data,
172 const typename Eigen::MatrixBase<ConfigVector> &
qs,
173 const typename Eigen::MatrixBase<TangentVector> & vs)
const
177 data.v.angularRate() =
data.joint_v[0];
180 template<
typename VectorLike,
typename Matrix6Like>
182 JointDataDerived &
data,
183 const Eigen::MatrixBase<VectorLike> & armature,
184 const Eigen::MatrixBase<Matrix6Like> & I,
185 const bool update_I)
const
187 data.U = I.col(Inertia::ANGULAR +
axis);
189 (
Scalar)(1) / (I(Inertia::ANGULAR +
axis, Inertia::ANGULAR +
axis) + armature[0]);
198 return std::string(
"JointModelRUB") + axisLabel<axis>();
210 return Vector3::UnitX();
212 return Vector3::UnitY();
214 return Vector3::UnitZ();
216 assert(
false &&
"must never happen");
222 template<
typename NewScalar>
235 template<
typename ConfigVectorIn,
typename Scalar,
typename ConfigVectorOut>
237 const Eigen::MatrixBase<ConfigVectorIn> &
q,
240 const Eigen::MatrixBase<ConfigVectorOut> & dest)
242 EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(ConfigVectorIn, 2);
243 EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(ConfigVectorOut, 2);
252 SINCOS(theta_transform, &dest_.coeffRef(1), &dest_.coeffRef(0));
256 template<
typename Scalar,
int Options,
int axis>
276 #include <boost/type_traits.hpp>
280 template<
typename Scalar,
int Options,
int axis>
282 :
public integral_constant<bool, true>
286 template<
typename Scalar,
int Options,
int axis>
288 :
public integral_constant<bool, true>
292 template<
typename Scalar,
int Options,
int axis>
294 :
public integral_constant<bool, true>
298 template<
typename Scalar,
int Options,
int axis>
300 :
public integral_constant<bool, true>
305 #endif // ifndef __pinocchio_multibody_joint_revolute_unbounded_hpp__
MotionZeroTpl< Scalar, Options > Bias_t
#define PINOCCHIO_JOINT_DATA_BASE_ACCESSOR_DEFAULT_RETURN_TYPE
Eigen::Matrix< Scalar, 6, NV, Options > UD_t
Vector3 getMotionAxis() const
std::string shortname() const
int idx_q(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdxQVisitor to get the index in the full model configuration space...
JointMotionSubspaceRevoluteTpl< Scalar, Options, axis > Constraint_t
int idx_v(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdxVVisitor to get the index in the full model tangent space corre...
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointRevoluteUnboundedTpl< _Scalar, _Options, axis > JointDerived
static std::string classname()
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
std::string shortname() const
JointDataRevoluteUnboundedTpl()
JointRevoluteUnboundedTpl< _Scalar, _Options, axis > JointDerived
void calc_aba(JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I) const
TransformRevoluteTpl< Scalar, Options, axis > Transformation_t
void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs) const
void setIndexes(JointIndex id, int q, int v)
JointModelRevoluteUnboundedTpl< Scalar, Options, axis > JointModelDerived
void SINCOS(const S1 &a, S2 *sa, S3 *ca)
Computes sin/cos values of a given input scalar.
PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
JointDataRevoluteUnboundedTpl< Scalar, Options, axis > JointDataDerived
JointRevoluteUnboundedTpl< context::Scalar, context::Options, 1 > JointRUBY
#define PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR
JointModelRevoluteUnboundedTpl< NewScalar, Options, axis > cast() const
JointDataRevoluteUnboundedTpl< context::Scalar, context::Options, 2 > JointDataRUBZ
const std::vector< bool > hasConfigurationLimit() const
JointRevoluteTpl< Scalar, _Options, axis > JointDerivedBase
PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE(JointDerived)
const std::vector< bool > hasConfigurationLimitInTangent() const
void calc(JointDataDerived &data, const Blank, const typename Eigen::MatrixBase< TangentVector > &vs) const
MotionRevoluteTpl< Scalar, Options, axis > Motion_t
static std::string classname()
Eigen::Matrix< Scalar, 3, 1, _Options > Vector3
JointCollectionTpl const Eigen::MatrixBase< ConfigVectorType > & q
JointModelRevoluteUnboundedTpl< context::Scalar, context::Options, 0 > JointModelRUBX
JointRevoluteUnboundedTpl< _Scalar, _Options, axis > JointDerived
Eigen::Matrix< Scalar, NV, 1, Options > TangentVector_t
JointModelRevoluteUnboundedTpl< NewScalar, Options, axis > type
JointRevoluteUnboundedTpl< context::Scalar, context::Options, 2 > JointRUBZ
JointDataRevoluteUnboundedTpl< context::Scalar, context::Options, 0 > JointDataRUBX
JointDataRevoluteUnboundedTpl< context::Scalar, context::Options, 1 > JointDataRUBY
JointModelBase< JointModelRevoluteUnboundedTpl > Base
Eigen::Matrix< Scalar, NV, NV, Options > D_t
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointRevoluteUnboundedTpl< _Scalar, _Options, axis > JointDerived
void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs, const typename Eigen::MatrixBase< TangentVector > &vs) const
JointRevoluteUnboundedTpl< context::Scalar, context::Options, 0 > JointRUBX
Common traits structure to fully define base classes for CRTP.
Eigen::Matrix< Scalar, 6, NV, Options > U_t
JointDataDerived createData() const
PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR ConfigVector_t joint_q
JointModelRevoluteUnboundedTpl< context::Scalar, context::Options, 2 > JointModelRUBZ
Eigen::Matrix< Scalar, NQ, 1, Options > ConfigVector_t
Type of the cast of a class C templated by Scalar and Options, to a new NewScalar type....
Main pinocchio namespace.
JointModelRevoluteUnboundedTpl< context::Scalar, context::Options, 1 > JointModelRUBY
pinocchio
Author(s):
autogenerated on Mon Dec 16 2024 03:41:03