diff --git a/CHANGELOG.md b/CHANGELOG.md index b45e6f591a..43490c234c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Clean up empty documentation pages and sections ([#2167](https://github.com/stack-of-tasks/pinocchio/pull/2167)) ### Added -- Add `examples/floating-base-velocity-viewer.py` to visualize floating base velocity [#2143](https://github.com/stack-of-tasks/pinocchio/pull/2143) +- 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 `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 0da08d2ad3..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 @@ -132,7 +138,14 @@ namespace pinocchio * * @return The classical 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