diff --git a/CHANGELOG.md b/CHANGELOG.md index 67f4a4ba08..6de934f364 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added - Add `examples/floating-base-velocity-viewer.py` to visualize floating base velocity ([#2143](https://github.com/stack-of-tasks/pinocchio/pull/2143)) -- Add remark to the documentation of `getFrameClassicalAcceleration` ([#2169](https://github.com/stack-of-tasks/pinocchio/pull/2169)) +- Add remark to the documentation of `getFrame(Classical)Acceleration` functions ([#2169](https://github.com/stack-of-tasks/pinocchio/pull/2169)) ## [2.7.0] - 2024-01-23 diff --git a/include/pinocchio/algorithm/frames.hpp b/include/pinocchio/algorithm/frames.hpp index cb0d27296f..f848b653ff 100644 --- a/include/pinocchio/algorithm/frames.hpp +++ b/include/pinocchio/algorithm/frames.hpp @@ -102,7 +102,7 @@ namespace pinocchio /** * @brief Returns the spatial acceleration of the Frame expressed in the desired reference frame. - * You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in data structure. + * You must first call pinocchio::forwardKinematics to update placement, velocity and acceleration values in the data structure. * * @param[in] model The kinematic model * @param[in] data Data associated to model @@ -111,7 +111,13 @@ namespace pinocchio * * @return The spatial acceleration of the Frame expressed in the desired reference frame. * - * @warning Second order forwardKinematics should have been called first + * @warning Second order @ref forwardKinematics should have been called first + * + * @remark In the context of a frame placement constraint \f$J(q) a + \dot{J}(q, v) v = 0\f$, + * one way to compute the second term \f$\dot{J}(q, v) v\f$ is to call second-order @ref forwardKinematics with a zero acceleration, + * then read the remaining \f$\dot{J}(q, v) v\f$ by calling this function. + * This is significantly more efficient than applying the matrix \f$\dot{J}(q, v)\f$ (from @ref getFrameJacobianTimeVariation) + * to the velocity vector \f$v\f$. */ template class JointCollectionTpl> inline MotionTpl