@@ -253,6 +253,30 @@ namespace pinocchio
253
253
254
254
}; // struct JointDataFreeFlyerTpl
255
255
256
+ // / @brief Free-flyer joint in \f$SE(3)\f$.
257
+ // /
258
+ // / A free-flyer joint adds seven coordinates to the configuration space.
259
+ // / Given a configuration vector `q`:
260
+ // /
261
+ // / - `q[idx_q:idx_q + 3]` are the translation coordinates, in meters,
262
+ // / representing the position of the child frame in the parent frame.
263
+ // / - `q[idx_q + 3:idx_q + 7]` is a unit quaternion representing the rotation
264
+ // / from the child frame to the parent frame, with quaternion coordinates
265
+ // / ordered as (x, y, z, w).
266
+ // /
267
+ // / Likewise, a free-flyer joint adds six coordinates to the tangent space.
268
+ // / Let's consider a tangent vector `v`, say, a velocity vector. Following
269
+ // / Featherstone's convention, all our tangent vectors are body rather than
270
+ // / spatial vectors:
271
+ // /
272
+ // / - `v[idx_v:idx_v + 3]` is the linear velocity, in meters / second,
273
+ // / corresponding to the linear velocity of the child frame with respect
274
+ // / to the parent frame, expressed in the child frame (body linear velocity
275
+ // / of the child frame).
276
+ // / - `v[idx_v + 3:idx_v + 6]` is the angular velocity, in radians / second,
277
+ // / corresponding to the angular velocity from the child frame to the
278
+ // / parent frame, expressed in the child frame (body angular velocity of the
279
+ // / child frame).
256
280
PINOCCHIO_JOINT_CAST_TYPE_SPECIALIZATION (JointModelFreeFlyerTpl);
257
281
template <typename _Scalar, int _Options>
258
282
struct JointModelFreeFlyerTpl : public JointModelBase <JointModelFreeFlyerTpl<_Scalar, _Options>>
0 commit comments