5 #ifndef __pinocchio_algorithm_utils_motion_hpp__
6 #define __pinocchio_algorithm_utils_motion_hpp__
8 #include "pinocchio/spatial/se3.hpp"
9 #include "pinocchio/spatial/motion.hpp"
10 #include "pinocchio/multibody/fwd.hpp"
19 template<
typename Scalar,
int Options,
typename MotionIn,
typename MotionOut>
36 m_out = placement.
act(m_in);
41 m_out = placement.
actInv(m_in);
48 m_out.linear().noalias() = placement.rotation() * m_in.linear();
49 m_out.angular().noalias() = placement.rotation() * m_in.angular();
54 m_out.linear().noalias() = placement.rotation().transpose() * m_in.linear();
55 m_out.angular().noalias() = placement.rotation().transpose() * m_in.angular();
62 m_out.angular() = m_in.angular();
63 m_out.linear().noalias() = m_in.linear() + m_in.angular().cross(placement.translation());
68 m_out.angular() = m_in.angular();
69 m_out.linear().noalias() = m_in.linear() - m_in.angular().cross(placement.translation());
73 assert(
false &&
"This must never happened.");
90 template<
typename Scalar,
int Options,
typename MotionIn>
92 const SE3Tpl<Scalar, Options> & placement,
93 const MotionDense<MotionIn> & m_in,
97 typedef typename MotionIn::MotionPlain ReturnType;
ReferenceFrame
Various conventions to express the velocity of a moving frame.
Main pinocchio namespace.
void changeReferenceFrame(const SE3Tpl< Scalar, Options > &placement, const ForceDense< ForceIn > &f_in, const ReferenceFrame rf_in, const ReferenceFrame rf_out, ForceDense< ForceOut > &f_out)
SE3GroupAction< D >::ReturnType act(const D &d) const
ay = aXb.act(by)
SE3GroupAction< D >::ReturnType actInv(const D &d) const
by = aXb.actInv(ay)