diff --git a/multibody/multibody_doxygen.h b/multibody/multibody_doxygen.h index a71251f12b65..52baf56a8c36 100644 --- a/multibody/multibody_doxygen.h +++ b/multibody/multibody_doxygen.h @@ -281,17 +281,19 @@ case, the assumed expressed-in frame is frame F's basis. Alternately, to use a different expressed-in frame, say W, typeset with the bracket notation: @f$[^Fv^P]_W@f$. +Kane/monogram notation was developed decades ago for kinematics and dynamics. +It explicitly communicates the quantity being measured and how it is expressed. The typeset symbol @f$^Fv^P@f$ is translated to monogram notation as `v_FP`. The quantity type always comes first, then an underscore, then left and right -superscripts. The symbol `v_FP` implies the vector is expressed in frame F. -Alternately, to express in frame W, we typeset as @f$[^Fv^P]_W@f$ and use the -monogram notation `v_FP_W` (adding a final underscore and expressed-in frame W). +superscripts. By default, the symbol `v_FP` implies the vector is expressed in +frame F. Alternately, to express in frame W, use the typeset @f$[^Fv^P]_W@f$ and +monogram notation `v_FP_W` (add a final underscore and expressed-in frame W). We adhere to this pattern for all quantities and it is quite useful once you get familiar with it. As a second example, consider the position vector of point Bcm (body B's center of mass) from point Bo (the origin of frame B), expressed in B. -In full typeset, this is @f$[^{B_o}p^{B_{cm}}]_B @f$ whereas in implicit typeset -this can be abbreviated @f$^Bp^{B_{cm}}@f$ (where the left-superscript B denotes -Bo and the expressed-in frame is implied to be B). The corresponding +In explicit typeset, this is @f$[^{B_o}p^{B_{cm}}]_B @f$ whereas in implicit +typeset this is abbreviated @f$^Bp^{B_{cm}}@f$ (where the left-superscript B +denotes Bo and the expressed-in frame is implied to be B). The corresponding monogram equivalents are `p_BoBcm_B` and `p_BBcm`, respectively. Here are some more useful multibody quantities. @@ -301,7 +303,7 @@ source file. However, each row must be specified on a single line of text. You can violate the 80-character style guide limit if you have to, but be reasonable! Alternately, use a footnote to avoid running over. --> -Quantity |Symbol| Typeset | Code | Meaning † +Quantity |Symbol| Typeset | Monogram | Meaning † ---------------------|:----:|:------------------------:|:----------:|---------------------------- Rotation matrix | R |@f$^BR^C@f$ |`R_BC` |Frame C's orientation in frame B Position vector | p |@f$^Pp^Q@f$ |`p_PQ` |Position from point P to point Q @@ -319,6 +321,7 @@ Inertia matrix | I |@f$I^{B/Bo}@f$ |`I_BBo` |Body B's in Spatial inertia | M |@f$M^{B/Bo}@f$ |`M_BBo` |Body B's spatial inertia about Bo † Jacobian wrt q ††† | Jq |@f$[J_{q}^{{}^Pp^Q}]_E@f$ |`Jq_p_PQ_E` |Q's position Jacobian from P in E wrt q Jacobian wrt q̇ | Jqdot|@f$J_{q̇}^{{}^Bv^Q}@f$ |`Jqdot_v_BQ`|Q's translational velocity Jacobian in B wrt q̇ +Jacobian wrt v | Jv |@f$J_{v}^{{}^Bv^Q}@f$ |`Jv_v_BQ` |Q's translational velocity Jacobian in B wrt v Jacobian wrt v | Jv |@f$J_{v}^{{}^B\omega^C}@f$|`Jv_w_BC` |C's angular velocity Jacobian in B wrt v † In code, a vector has an expressed-in-frame which appears after the quantity. @@ -356,7 +359,19 @@ B and when there are no motion constraints (no relationships between q̇₁ ... @f$\;[J_{q}^{{}^{Bo}p^Q}]_B = [J_{q̇}^{{}^Bv^Q}]_B\;@f$ i.e., `(Jq_p_BoQ_B = Jqdot_v_BQ_B)`. -Next topic: @ref Dt_multibody_quantities +Monogram notation addresses frequently used kinematics. In a context-sensible +way (and in collaboration with reviewers), extend notation to related concepts. +Some examples are shown below. +Extended notation || Description (herein E is the vectors' expressed-in-frame) +:------------------------:||--------------------------------------------- +p_PQset_E | p_PQlist_E | Set of position vectors from a point P to each of the points in the set Q = {Q₀, Q₁, Q₂, ...} +v_BQset_E | v_BQlist_E | Set of translational velocities in frame B for the set of points Q = {Q₀, Q₁, Q₂, ...} +w_BCset_E | w_BClist_E | Set of angular velocities in frame B for the frames in the set C = {C₀, C₁, C₂, ...} +vset_E | vlist_E | Set of generic vectors v = {v₀, v₁, v₂} expressed in frame E +mesh_B || A mesh whose underlying vertices' positions are from Bo (frame B's origin), expressed in frame B +point_cloud_B || A point cloud whose underlying points' positions are from Bo (frame B's origin), expressed in frame B + + Next topic: @ref Dt_multibody_quantities */ //------------------------------------------------------------------------------