Template Function pinocchio::getFrameClassicalAcceleration

Function Documentation

template<typename Scalar, int Options, template<typename, int> class JointCollectionTpl>
inline MotionTpl<Scalar, Options> pinocchio::getFrameClassicalAcceleration(const ModelTpl<Scalar, Options, JointCollectionTpl> &model, const DataTpl<Scalar, Options, JointCollectionTpl> &data, const FrameIndex frame_id, const ReferenceFrame rf = LOCAL)

Returns the “classical” acceleration of the Frame expressed in the desired reference frame. This is different from the “spatial” acceleration in that centrifugal effects are accounted for. You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure.

Remark

In the context of a frame placement constraint \(J(q) a + \dot{J}(q, v) v = 0\), one way to compute the second term \(\dot{J}(q, v) v\) is to call second-order forwardKinematics with a zero acceleration, then read the remaining \(\dot{J}(q, v) v\) by calling this function. This is significantly more efficient than applying the matrix \(\dot{J}(q, v)\) (from getFrameJacobianTimeVariation) to the velocity vector \(v\).

Warning

Second order forwardKinematics should have been called first

Parameters:
  • model[in] The kinematic model

  • data[in] Data associated to model

  • frame_id[in] Id of the operational Frame

  • rf[in] Reference frame in which the acceleration is expressed.

Returns:

The classical acceleration of the Frame expressed in the desired reference frame.