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>
42 typedef Eigen::Matrix<Scalar, 6, NV, Options>
U_t;
43 typedef Eigen::Matrix<Scalar, NV, NV, Options>
D_t;
44 typedef Eigen::Matrix<Scalar, 6, NV, Options>
UD_t;
54 template<
typename _Scalar,
int _Options,
int axis>
61 template<
typename _Scalar,
int _Options,
int axis>
68 template<
typename _Scalar,
int _Options,
int axis>
70 :
public JointDataBase<JointDataRevoluteUnboundedTpl<_Scalar, _Options, axis>>
72 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
93 ,
joint_v(TangentVector_t::Zero())
105 return std::string(
"JointDataRUB") + axisLabel<axis>();
114 template<
typename NewScalar,
typename Scalar,
int Options,
int axis>
120 template<
typename _Scalar,
int _Options,
int axis>
122 :
public JointModelBase<JointModelRevoluteUnboundedTpl<_Scalar, _Options, axis>>
124 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
136 typedef Eigen::Matrix<Scalar, 3, 1, _Options>
Vector3;
140 return JointDataDerived();
145 return {
false,
false};
153 template<
typename ConfigVector>
154 void calc(JointDataDerived &
data,
const typename Eigen::MatrixBase<ConfigVector> &
qs)
const
161 data.M.setValues(sa, ca);
164 template<
typename TangentVector>
166 calc(JointDataDerived &
data,
const Blank,
const typename Eigen::MatrixBase<TangentVector> & vs)
170 data.v.angularRate() =
data.joint_v[0];
173 template<
typename ConfigVector,
typename TangentVector>
175 JointDataDerived &
data,
176 const typename Eigen::MatrixBase<ConfigVector> &
qs,
177 const typename Eigen::MatrixBase<TangentVector> & vs)
const
181 data.v.angularRate() =
data.joint_v[0];
184 template<
typename VectorLike,
typename Matrix6Like>
186 JointDataDerived &
data,
187 const Eigen::MatrixBase<VectorLike> & armature,
188 const Eigen::MatrixBase<Matrix6Like> & I,
189 const bool update_I)
const
191 data.U = I.col(Inertia::ANGULAR +
axis);
193 (
Scalar)(1) / (I(Inertia::ANGULAR +
axis, Inertia::ANGULAR +
axis) + armature[0]);
202 return std::string(
"JointModelRUB") + axisLabel<axis>();
214 return Vector3::UnitX();
216 return Vector3::UnitY();
218 return Vector3::UnitZ();
220 assert(
false &&
"must never happen");
226 template<
typename NewScalar>
249 template<
typename Scalar,
int Options,
int axis>
256 #include <boost/type_traits.hpp>
260 template<
typename Scalar,
int Options,
int axis>
262 :
public integral_constant<bool, true>
266 template<
typename Scalar,
int Options,
int axis>
268 :
public integral_constant<bool, true>
272 template<
typename Scalar,
int Options,
int axis>
274 :
public integral_constant<bool, true>
278 template<
typename Scalar,
int Options,
int axis>
280 :
public integral_constant<bool, true>
285 #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 model tangent space correspond...
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
PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
JointDataRevoluteUnboundedTpl< Scalar, Options, axis > JointDataDerived
boost::mpl::true_ is_mimicable_t
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
int idx_vExtended() const
MotionRevoluteTpl< Scalar, Options, axis > Motion_t
static std::string classname()
Eigen::Matrix< Scalar, 3, 1, _Options > Vector3
JointModelRevoluteUnboundedTpl< context::Scalar, context::Options, 0 > JointModelRUBX
int idx_vExtended(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdvExtendedVisitor to get the index in the model extended tangent ...
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 Wed Apr 16 2025 02:41:49