5 #ifndef __pinocchio_algorithm_utils_force_hpp__
6 #define __pinocchio_algorithm_utils_force_hpp__
8 #include "pinocchio/spatial/se3.hpp"
9 #include "pinocchio/spatial/force.hpp"
10 #include "pinocchio/multibody/fwd.hpp"
18 template<
typename Scalar,
int Options,
typename ForceIn,
typename ForceOut>
35 f_out = placement.
act(f_in);
40 f_out = placement.
actInv(f_in);
48 f_out.
linear().noalias() = placement.rotation() * f_in.
linear();
53 f_out.
angular().noalias() = placement.rotation().transpose() * f_in.
angular();
54 f_out.
linear().noalias() = placement.rotation().transpose() * f_in.
linear();
72 assert(
false &&
"This must never happened.");
89 template<
typename Scalar,
int Options,
typename ForceIn>
91 const SE3Tpl<Scalar, Options> & placement,
92 const ForceDense<ForceIn> & f_in,
96 typedef typename ForceIn::ForcePlain ReturnType;
ConstAngularType angular() const
Return the angular part of the force vector.
ConstLinearType linear() const
Return the linear part of the force vector.
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)