Spatial vector algebra is a subset of Lie algebra where we follow two conventions that simplify
calculations: we use spatial vectors rather than body vectors whenever
possible, and Plücker transforms rather than affine transforms to represent
members of the Lie group. Like with any other algebra, the more identities we
swing, the more proficient we get at it. This cheat sheet lists the ones I have
found useful so far. It references both spatial and body vectors. Because when
a spatial vector formula resists intuition (not the rareliest occurrence), it
can help to explicit all the frames involved.
Notations
We adopt the subscript right-to-left convention for transforms, and superscript
notation to indicate the frame of a motion or force vector:
Quantity |
Notation |
Body angular velocity of frame A in frame B |
AωBA |
Plücker transform from frame A to frame B |
XBA |
Position of frame B in frame A |
ApB |
Rotation matrix from frame A to frame B |
RBA |
Spatial angular velocity of frame A in frame B |
BωBA |
World frame (inertial) |
W |
With these notations frame transforms can be read left to right, for example:
XCA=XCBXBABω=RBAAωBpC=RBAApC+BpANote that we part from Roy Featherstone's notation BXA to be
able to keep track of the original transforms in time derivatives. For example,
the angular velocity ωBA that derivates from the rotation
RBA satisfies:
R˙BA=(BωBA×)RBA=RBA(AωBA×)The operator v↦v× turns a 3D vector v
into its 3×3 cross-product skew-symmetric matrix. See
below for some identities related to this operator.
Cross and dot products
Euclidean cross products
Name |
Formula |
Vector triple product |
a×(b×c)=(a⋅c)b−(a⋅b)c |
Rotation of cross product |
R(a×b)=(Ra)×(Rb) |
Cross product by rotated vector |
(Rv)×=R(v×)R⊤ |
Rotation of cross product matrix |
R(v×)=(Rv)×R |
Rotation of cross product matrix |
RBA(Av×)=Bv×RBA |
Spatial cross products
Name |
Formula |
Cross product by transformed vector |
(Xv)×=X(v×)X−1 |
Transform of cross product matrix |
X(v×)=(Xv)×X |
Transform of cross product matrix |
XBA(Av×)=Bv×XBA |
Dot products
Property |
Formula |
Invariance by rotation |
(Ra)⋅(Rb)=a⋅b |
Invariance by dual transforms |
(Xm)⋅(X∗f)=m⋅f |
Kinematics
Inversions
Inversion |
Formula |
Rotation matrix |
RAB=RBA−1=RBA⊤ |
Angular velocity |
AωAB=−AωBA |
Time derivatives
Quantity |
Spatial derivative |
Body derivative |
Rotation matrix |
R˙BA=BωBA×RBA |
R˙BA=RBA(AωBA×) |
Quantity |
Spatial vector algebra |
Screw algebra |
Rotation matrix |
R˙BA=B(ωA−ωB)×RBA |
R˙BA=B(ωWA−ωWB)×RBA |
Plücker transform |
X˙BA=B(vA−vB)×XBA |
X˙BA=B(vWA−vWB)×XBA |
Plücker to world |
X˙WA=vA×XWA |
X˙WA=WvWA×XWA |
Rotation time derivatives
Let's go a little bit beyond the cheat sheet. We can check that B(ωWA−ωWB)=BωBA so that the formulas for
the rotation time derivatives are consistent:
R˙BA=BωBA×RBA=dtd(RBWRWA)=R˙BWRWA+RBWR˙WA=BωBW×RBWRWA+RBWRWA(AωWA×)=BωBW×RBA+RBA(AωWA×)=(−BωWB)×RBA+BωWA×RBA=(BωWA−BωWB)×RBA
To go further
The reference book on spatial vector algebra is Roy Featherstone's Rigid Body Dynamics Algorithms. Its tables are cheat sheets of their own. The book itself is better as an implementation reference than for learning things, as it often assumes the reader is already familiar with screw theory. For first-time learners, Modern Robotics might be a better place to start, or A Mathematical Introduction to Robotic Manipulation for those who like their math fresh.
There are plenty of cheat sheets on the web, which says something about both the importance and the trickiness of Lie algebras ;-) Pinocchio has a useful SE(3) algebra cheat sheet. So does the Kindr library. For rotations, which are also a Lie algebra denoted by SO(3) rather than SE(3), Diebel's Representing attitude: Euler angles, unit quaternions, and rotation vectors is also a great cheat sheet. For spatial vector algebra specifically, Jan Carius has also started some nice notes on spatial velocities.
See also
- Screw axes: more details on central and noncentral axes.
- Screw theory
- Some notes on Lie groups by Wilson Jallet: mathematically, spatial vector algebra is the Lie algebra se(3) of the Lie group SE(3).
Discussion
Feel free to post a comment by e-mail using the form below. Your e-mail address will not be disclosed.