Drake
Drake C++ Documentation
Time Derivatives of Multibody Quantities

Scalar quantities: The ordinary first time-derivative of the scalar x is denoted xdot or xDt whereas the ordinary second time-derivative of x is denoted xddot or xDDt.

Vector quantities (Advanced topic): The ordinary time-derivative of a vector v (such as position or velocity) is different than the derivative of a scalar. A vector has direction whereas a scalar does not. The derivative of a vector requires a frame in which the derivative is being taken. The typeset notation for the ordinary time-derivative in frame \( G \) of a vector \( v \) is \( \frac{^Gd}{dt}\,v \) and its monogram notation is DtG_v. Since the derivative of a vector is a vector, we need to specify an expressed-in frame E. The typeset notation is \( [\frac{^Gd}{dt}\,v]_E \) whereas the monogram notation is DtG_v_E. In unicode comments (e.g., in a header or source file), use [ᴳd/dt v]_E or DtG(v)_E (see below).†

Important note: The derivative operator applies to the vector, not the computational representation of the vector. It is misleading to include an expressed-in frame in the symbol name for the vector v. The expressed-in frame applies only to the final derived quantity. For example, consider V_BC, frame C's spatial velocity in frame B (a spatial velocity contains two vectors, namely angular velocity and velocity). In code, you may express V_BC in frame E as V_BC_E. The definition of the spatial acceleration A_BC is the derivative in frame B of V_BC (the derivative must be in B). However, the resulting expressed-in frame is arbitrary, e.g., a frame F. The expressed-in frame E for V_BC does not impact the final result. The monogram notation for this derivative is DtB_V_BC_F which is interpreted as \( [\frac{^Bd}{dt}\,^BV^C]_F \); the _F goes with the result, not the quantity being differentiated. The resulting vector happens to be A_BC_F, but that is only because the derivative was taken in frame B. If the derivative was taken in F (or C or E or any frame other than B), there is no conventional spatial acceleration name or notation for the result DtF_V_BC.

When using this DtFrame derivative notation in code, the expressed-in frame is always specified at the end of the symbol. However there is never an expressed-in frame specified for the quantity being differentiated. For example, given a vector v, the expression DtG(v_E)_F is misleading. Instead, use DtG(v)_F.

† In unicode comments for the derivative in frame A of a vector v, use ᴬd/dt v (preferred if available) or DtA(v). Although the former is preferred, not all uppercase letters are available as superscripts in unicode. Consider choosing frame names to accommodate this strange quirk in unicode.

Next topic: Spatial Algebra