Robotic Manipulation

Perception, Planning, and Control

Russ Tedrake

© Russ Tedrake, 2020-2023
Last modified .
How to cite these notes, use annotations, and give feedback.

Note: These are working notes used for a course being taught at MIT. They will be updated throughout the Fall 2023 semester.

Previous Chapter Table of contents Next Chapter

Spatial Algebra

Throughout these notes we've introduced the basic rules of spatial algebra. I find myself looking back at them often! For ease of reference, I've compiled them again here. These make heavy use of our "monogram notation".

The Drake documentation also has a very nice summary of the multibody quantities and how they map to the monogram notation.

Position, Rotation, and Pose

As we introduced here, we use ${}^Bp^A_C$ to denote a position of point or frame $A$ relative to point or frame $B$ expressed in frame $C$. We use ${}^BR^A$ to denote the orientation of frame $A$ measured from frame $B$; unlike vectors, pure rotations do not have an additional "expressed in" frame. Similarly, we use ${}^BX^A$ to denote the pose/transform of frame $A$ measured from frame $B$. We do not use the "expressed in" frame subscript for pose; we always want the pose expressed in the reference frame.

The basic rules of spatial algebra are as follows:

Spatial velocity

Add acceleration

As we introduced here, we represent the rate of change in pose using a six-component vector for spatial velocity: \begin{equation}{}^AV^B_C = \begin{bmatrix} {}^A\omega^B_C \\ {}^A\text{v}^B_C \end{bmatrix}.\end{equation} ${}^AV^B_C$ is the spatial velocity (also known as a "twist") of frame $B$ measured in frame $A$ expressed in frame $C$, ${}^A\omega^B_C \in \Re^3$ is the angular velocity (of frame $B$ measured in $A$ expressed in frame $C$), and ${}^A\text{v}^B_C \in \Re^3$ is the translational velocity (along with the same shorthands as for positions). Spatial velocities fit nicely into our spatial algebra:

Spatial force

As we introduced here, we define a six-component vector for spatial force, using the monogram notation: \begin{equation}F^{B_p}_{{\text{name}},C} = \begin{bmatrix} \tau^{B_p}_{\text{name},C} \\ f^{B_p}_{\text{name},C} \end{bmatrix} \quad \text{ or, if you prefer } \quad \left[F^{B_p}_{\text{name}}\right]_C = \begin{bmatrix} \left[\tau^{B_p}_{\text{name}}\right]_C \\ \left[f^{B_p}_{\text{name}}\right]_C \end{bmatrix}.\end{equation} $F^{B_p}_{\text{name},C}$ is the named spatial force applied to a point, or frame origin, $B_p$, expressed in frame $C$. The name is optional, and the expressed in frame, if unspecified, is the world frame. For forces in particular, it is recommended that we include the body, $B$, that the force is being applied to in the symbol for the point $B_p$, especially since we will often have equal and opposite forces.

Spatial forces fit neatly into our spatial algebra:

Previous Chapter Table of contents Next Chapter