5#ifndef __pinocchio_multibody_joint_joint_common_operations_hpp__
6#define __pinocchio_multibody_joint_joint_common_operations_hpp__
8#include "pinocchio/macros.hpp"
9#include "pinocchio/math/matrix.hpp"
10#include "pinocchio/math/fwd.hpp"
12#include <boost/type_traits.hpp>
13#include <boost/variant.hpp>
22 template<typename Scalar, bool is_floating_point = pinocchio::is_floating_point<Scalar>::value>
23 struct PerformStYSInversion
25 template<
typename M1,
typename M2>
26 static EIGEN_STRONG_INLINE
void
27 run(
const Eigen::MatrixBase<M1> & StYS,
const Eigen::MatrixBase<M2> & Dinv)
29 M2 & Dinv_ = PINOCCHIO_EIGEN_CONST_CAST(M2, Dinv);
31 StYS.llt().solveInPlace(Dinv_);
35 template<
typename Scalar>
36 struct PerformStYSInversion<Scalar, false>
38 template<
typename M1,
typename M2>
39 static EIGEN_STRONG_INLINE
void
40 run(
const Eigen::MatrixBase<M1> & StYS,
const Eigen::MatrixBase<M2> & Dinv)
42 M2 & Dinv_ = PINOCCHIO_EIGEN_CONST_CAST(M2, Dinv);
54 template<
typename ConfigVectorIn,
typename Scalar,
typename ConfigVectorOut>
56 const Eigen::MatrixBase<ConfigVectorIn> &
qIn,
57 const Scalar & scaling,
58 const Scalar & offset,
59 const Eigen::MatrixBase<ConfigVectorOut> &
qOut)
63 scaling *
qIn + ConfigVectorOut::Constant(
qOut.size(), offset);
69 template<
typename ConfigVectorIn,
typename Scalar,
typename ConfigVectorOut>
71 const Eigen::MatrixBase<ConfigVectorIn> &
qIn,
72 const Scalar & scaling,
73 const Scalar & offset,
74 const Eigen::MatrixBase<ConfigVectorOut> &
qOut)
79 const typename ConfigVectorIn::Scalar &
ca =
qIn(0);
80 const typename ConfigVectorIn::Scalar &
sa =
qIn(1);
82 const typename ConfigVectorIn::Scalar &
theta = math::atan2(
sa,
ca);
92 template<
typename ConfigVectorIn,
typename Scalar,
typename ConfigVectorOut>
94 const Eigen::MatrixBase<ConfigVectorIn> &,
97 const Eigen::MatrixBase<ConfigVectorOut> &)
99 assert(
false &&
"Joint cannot be used with JointMimic.");
107 template<
typename Jo
int>
Main pinocchio namespace.
void SINCOS(const S1 &a, S2 *sa, S3 *ca)
Computes sin/cos values of a given input scalar.