Go to the documentation of this file.
5 #ifndef __pinocchio_multibody_joint_revolute_unbounded_unaligned_hpp__
6 #define __pinocchio_multibody_joint_revolute_unbounded_unaligned_hpp__
18 template<
typename Scalar,
int Options = 0>
21 template<
typename _Scalar,
int _Options>
45 typedef Eigen::Matrix<Scalar, 6, NV, Options>
F_t;
48 typedef Eigen::Matrix<Scalar, 6, NV, Options>
U_t;
49 typedef Eigen::Matrix<Scalar, NV, NV, Options>
D_t;
50 typedef Eigen::Matrix<Scalar, 6, NV, Options>
UD_t;
57 template<
typename _Scalar,
int _Options>
64 template<
typename _Scalar,
int _Options>
71 template<
typename _Scalar,
int _Options>
73 :
public JointDataBase<JointDataRevoluteUnboundedUnalignedTpl<_Scalar, _Options>>
75 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
96 ,
joint_v(TangentVector_t::Zero())
97 ,
M(Transformation_t::Identity())
98 ,
S(Constraint_t::Vector3::Zero())
99 ,
v(Constraint_t::Vector3::Zero(), (
Scalar)0)
102 ,
UDinv(UD_t::Zero())
107 template<
typename Vector3Like>
110 ,
joint_v(TangentVector_t::Zero())
111 ,
M(Transformation_t::Identity())
116 ,
UDinv(UD_t::Zero())
123 return std::string(
"JointDataRevoluteUnboundedUnalignedTpl");
134 template<
typename _Scalar,
int _Options>
135 struct JointModelRevoluteUnboundedUnalignedTpl
136 :
public JointModelBase<JointModelRevoluteUnboundedUnalignedTpl<_Scalar, _Options>>
138 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
141 typedef Eigen::Matrix<Scalar, 3, 1, Options>
Vector3;
162 template<
typename Vector3Like>
166 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Vector3Like);
172 return JointDataDerived(
axis);
177 return {
false,
false};
191 template<
typename ConfigVector>
192 void calc(JointDataDerived &
data,
const typename Eigen::MatrixBase<ConfigVector> &
qs)
const
202 template<
typename TangentVector>
204 calc(JointDataDerived &
data,
const Blank,
const typename Eigen::MatrixBase<TangentVector> & vs)
208 data.v.angularRate() =
data.joint_v[0];
211 template<
typename ConfigVector,
typename TangentVector>
213 JointDataDerived &
data,
214 const typename Eigen::MatrixBase<ConfigVector> &
qs,
215 const typename Eigen::MatrixBase<TangentVector> & vs)
const
219 data.v.angularRate() =
data.joint_v[0];
222 template<
typename VectorLike,
typename Matrix6Like>
224 JointDataDerived &
data,
225 const Eigen::MatrixBase<VectorLike> & armature,
226 const Eigen::MatrixBase<Matrix6Like> & I,
227 const bool update_I)
const
229 data.U.noalias() = I.template middleCols<3>(Motion::ANGULAR) *
axis;
231 Scalar(1) / (
axis.dot(
data.U.template segment<3>(Motion::ANGULAR)) + armature[0]);
240 return std::string(
"JointModelRevoluteUnboundedUnaligned");
248 template<
typename NewScalar>
252 ReturnType
res(
axis.template cast<NewScalar>());
264 template<
typename Scalar,
int Options>
271 #include <boost/type_traits.hpp>
275 template<
typename Scalar,
int Options>
276 struct has_nothrow_constructor<
278 :
public integral_constant<bool, true>
282 template<
typename Scalar,
int Options>
284 :
public integral_constant<bool, true>
288 template<
typename Scalar,
int Options>
289 struct has_nothrow_constructor<
291 :
public integral_constant<bool, true>
295 template<
typename Scalar,
int Options>
297 :
public integral_constant<bool, true>
302 #endif // ifndef __pinocchio_multibody_joint_revolute_unbounded_unaligned_hpp__
#define PINOCCHIO_JOINT_DATA_BASE_ACCESSOR_DEFAULT_RETURN_TYPE
const std::vector< bool > hasConfigurationLimitInTangent() const
JointDataRevoluteUnboundedUnalignedTpl(const Eigen::MatrixBase< Vector3Like > &axis)
JointModelRevoluteUnboundedUnalignedTpl(const Eigen::MatrixBase< Vector3Like > &axis)
bool isUnitary(const Eigen::MatrixBase< MatrixLike > &mat, const typename MatrixLike::RealScalar &prec=Eigen::NumTraits< typename MatrixLike::Scalar >::dummy_precision())
Check whether the input matrix is Unitary within the given precision.
int idx_q(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdxQVisitor to get the index in the full model configuration space...
JointModelRevoluteUnboundedUnalignedTpl(const Scalar &x, const Scalar &y, const Scalar &z)
JointMotionSubspaceRevoluteUnalignedTpl< Scalar, Options > 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...
JointModelRevoluteUnboundedUnalignedTpl< Scalar, Options > JointModelDerived
#define PINOCCHIO_EIGEN_CONST_CAST(TYPE, OBJ)
Macro for an automatic const_cast.
PINOCCHIO_JOINT_DATA_TYPEDEF_TEMPLATE(JointDerived)
void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs, const typename Eigen::MatrixBase< TangentVector > &vs) const
SE3Tpl< Scalar, Options > Transformation_t
JointDataRevoluteUnboundedUnalignedTpl< Scalar, Options > JointDataDerived
void setIndexes(JointIndex id, int q, int v)
boost::mpl::true_ is_mimicable_t
std::string shortname() const
Eigen::Matrix< Scalar, 6, NV, Options > F_t
JointRevoluteUnboundedUnalignedTpl< _Scalar, _Options > JointDerived
#define PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR
JointRevoluteUnboundedUnalignedTpl< _Scalar, _Options > JointDerived
PINOCCHIO_JOINT_TYPEDEF_TEMPLATE(JointDerived)
Eigen::Matrix< Scalar, NV, NV, Options > D_t
Eigen::Matrix< Scalar, 6, NV, Options > U_t
PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION(JointModelFreeFlyerTpl)
Free-flyer joint in .
Eigen::Matrix< Scalar, NV, 1, Options > TangentVector_t
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointRevoluteUnboundedUnalignedTpl< _Scalar, _Options > JointDerived
void calc(JointDataDerived &data, const Blank, const typename Eigen::MatrixBase< TangentVector > &vs) const
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef JointRevoluteUnboundedUnalignedTpl< _Scalar, _Options > JointDerived
Eigen::Matrix< Scalar, 3, 1, Options > Vector3
MotionZeroTpl< Scalar, Options > Bias_t
PINOCCHIO_JOINT_DATA_BASE_DEFAULT_ACCESSOR ConfigVector_t joint_q
JointDataDerived createData() const
MotionRevoluteUnalignedTpl< Scalar, Options > Motion_t
std::string shortname() const
int idx_vExtended() const
Vector3 axis
axis of rotation of the joint.
void calc_aba(JointDataDerived &data, const Eigen::MatrixBase< VectorLike > &armature, const Eigen::MatrixBase< Matrix6Like > &I, const bool update_I) const
void toRotationMatrix(const Eigen::MatrixBase< Vector3 > &axis, const Scalar &cos_value, const Scalar &sin_value, const Eigen::MatrixBase< Matrix3 > &res)
Computes a rotation matrix from a vector and values of sin and cos orientations values.
int idx_vExtended(const JointModelTpl< Scalar, Options, JointCollectionTpl > &jmodel)
Visit a JointModelTpl through JointIdvExtendedVisitor to get the index in the model extended tangent ...
bool comparison_eq(const LhsType &lhs_value, const RhsType &rhs_value)
const std::vector< bool > hasConfigurationLimit() const
static std::string classname()
JointDataRevoluteUnboundedUnalignedTpl()
static std::string classname()
JointModelRevoluteUnboundedUnalignedTpl()
Eigen::Matrix< Scalar, 6, NV, Options > UD_t
Common traits structure to fully define base classes for CRTP.
Eigen::Matrix< Scalar, NQ, 1, Options > ConfigVector_t
JointModelBase< JointModelRevoluteUnboundedUnalignedTpl > Base
bool isEqual(const JointModelBase< OtherDerived > &) const
void normalize(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const Eigen::MatrixBase< ConfigVectorType > &qout)
Normalize a configuration vector.
JointModelRevoluteUnboundedUnalignedTpl< NewScalar, Options > cast() const
void calc(JointDataDerived &data, const typename Eigen::MatrixBase< ConfigVector > &qs) const
Main pinocchio namespace.
bool isEqual(const JointModelRevoluteUnboundedUnalignedTpl &other) const
pinocchio
Author(s):
autogenerated on Wed Apr 16 2025 02:41:49