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.
As we introduced here, we use to
denote a position of point or frame relative to point or frame expressed in
frame . We use to denote the orientation of frame measured from frame
; unlike vectors, pure rotations do not have an additional "expressed in" frame.
Similarly, we use to denote the pose/transform of frame measured from
frame . 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:
- Positions expressed in the same frame can be added when their
reference and target symbols match: Addition is commutative, and the additive
inverse is well defined: Those should be pretty intuitive; make sure you
confirm them for yourself.
- Multiplication by a rotation can be used to change the "expressed in"
frame: You
might be surprised that a rotation alone is enough to change the
expressed-in frame, but it's true. The position of the expressed-in frame
does not affect the relative position between two points.
- Rotations can be multiplied when their reference and target symbols
match: The
inverse operation is also simply defined:
When
the rotation is represented as a rotation matrix, this is literally the
matrix inverse, and since rotation matrices are orthonormal, we also have
- Transforms bundle this up into a single, convenient notation when
positions are measured from a frame (and the same frame they are expressed
in):
- Transforms compose: and have an inverse
Please
note that for transforms, we generally do
not have that is though it still has a simple form.
Add acceleration
As we introduced here, we represent the rate of
change in pose using a six-component vector for spatial
velocity: is the spatial velocity
(also known as a "twist") of frame measured in frame expressed in frame ,
is the
angular velocity (of frame measured in expressed in frame
), and is the translational velocity
(along with the same shorthands as for positions). Spatial velocities fit nicely into our spatial
algebra:
- Velocities add when they are expressed in the same frame: and have the additive inverse,
.
- Rotations can be used to change between the "expressed-in"
frames:
- Translational velocities compose across frames with:
- This reveals that additive inverse for translational velocities is
not obtained by switching the reference and measured-in frames; it is
slightly more complicated: .
As we introduced here, we define a
six-component vector for spatial
force, using the monogram notation:
is the named spatial force
applied to a point, or frame origin, , expressed in frame . 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, , that the force is
being applied to in the symbol for the point , especially since we will often
have equal and opposite forces.
Spatial forces fit neatly into our spatial algebra:
- Spatial forces add when they are applied to the same body in the
same frame, e.g.:
- Shifting a spatial force from one application point, , to
another point, , uses the cross product:
- As with all spatial vectors, rotations can be used to change
between the "expressed-in" frames: