Rigid Body Motions
Contents
Table of Contents
▼
This whole chapter is notation for one simple idea: glue a coordinate frame to every body, then describe each frame relative to another.[*](Primary reference: Modern Robotics: Mechanics, Planning, and Control by Lynch & Park (2017), Chapter 3.) The symbols look heavy, but each one is careful bookkeeping for a plain question. Whenever a definition or formula shows up here, don't try to memorize the symbols. Stop and ask: which frame is this written in, and what is it actually describing? If you can answer that out loud, the way you'd explain it to a friend who has never seen a robot, you understand the material.
The position and orientation of a rigid body together are called its pose. A rigid body is an idealized object where the distance between any two points stays constant no matter what forces act on it. That single constraint collapses an infinite-dimensional space of configurations down to six numbers: three for position, three for orientation.
Frames: the language of pose
Telling a robot "the gripper is at " is not enough. At that one point the gripper could still be upright, tilted, or upside-down. A position fixes a point; it says nothing about which way the body faces.
So we never track a bare point. We rigidly attach a body frame , a little set of axes, to the object, and describe it inside a fixed frame , the world. The body's pose is both things together: where 's origin sits and which way its axes point. A rigid body's state is a frame, not a point.
All frames in robotics are right-handed: curl the fingers of your right hand from toward , and your thumb points along . Positive rotation about an axis follows the same rule: thumb along the axis, fingers curl in the positive direction.
Rigid body motions in the plane
We start in 2D, where everything can be drawn. Every idea here (frames, a rotation matrix, composing motions) returns in 3D with more bookkeeping but no new concepts.
In the plane a pose is three numbers: a position and one orientation angle . Rather than carry the bare angle, we record where the body's axes point, as the columns of a matrix:
Read those columns literally as arrows: the first is the direction of the body's -axis, the second its -axis, both written in the world's coordinates. The matrix is nothing more exotic than "draw me the body's axes."
Why carry a whole matrix when the single angle holds the same information? Because the bare angle is clumsy to work with. You have to babysit the wrap-around at every time you combine two turns, and it is awkward to differentiate when we get to velocities. The matrix has none of those problems: combining turns is just multiplication, its columns automatically encode a valid orientation, and the very same construction becomes a matrix in 3D with no new ideas.
For :
The first column is where ends up, pointing straight "up" in , exactly a quarter-turn. The matrix and the picture agree.
And for ? Without computing: , the identity. The body frame is perfectly aligned with the space frame.
Rotations in 3D
Orientation is the hard half of pose, so it gets its own treatment. The set of all valid rotation matrices is the special orthogonal group:
The two conditions each forbid a way of not being a real rotation. keeps the axes unit-length and perpendicular: the body is not stretched or sheared. And keeps the frame right-handed: the value would be a mirror image, turning a right hand into a left hand, which no real motion does.
Three gifts fall out for free:
- : undo a rotation by transposing it.
- : rotations compose into rotations.
- : rotating a vector never changes its length.
has 9 numbers and 6 constraints, so degrees of freedom, and no singularities, unlike three Euler angles, which always have a configuration where they break down.
Yaw, pitch, roll
In 2D one angle sufficed. In 3D we stack three elementary turns. The common yaw–pitch–roll convention multiplies , with = roll (about ), = pitch (about ), = yaw (about ). The product balloons into a matrix full of sine–cosine products, and it is tempting to stare at it looking for meaning. Don't. Remember what is: its columns are still just arrows,
where is where the body -axis points, the body -axis, the body -axis, each written in world coordinates. The third column is literally the body's -axis after all three turns. No trig insight required.
One matrix, three jobs
A rotation matrix gets used in three different ways, and quietly confusing them is the number one source of sign and order errors:
| Job | Meaning |
|---|---|
| Describe | is the orientation of frame as seen from . Nothing moves. |
| Change language | : the same arrow, re-written from 's numbers into 's numbers. |
| Operate | actually rotates into a new arrow. The body really turns. |
Read the subscripts like fractions: is " from ." Set it beside (" from ") and the 's cancel: . That one habit kills most ordering mistakes.
Rotating a frame: in whose axes?
The same gives two different results depending on which side you multiply on:
- Premultiply (): the frame turns about an axis of the world.
- Postmultiply (): the frame turns about an axis of the body.
Think of giving someone directions. Multiplying on the left is "turn toward north," a world instruction. Multiplying on the right is "turn left from where you're facing," a body instruction. Same turn, different reference point.
Try it: rotating a frame
Drag the sliders to rotate a body frame relative to the fixed world frame, and watch the columns of change. The determinant stays at no matter what you do: that's the group structure at work.
3D Rotation Frame
Rotation Matrix
Properties
1.000000
Mode: Fixed frame rotation
is applied relative to the world axes:
Angular velocity
At any instant a spinning body turns about one axis at one rate . Bundle "which way" and "how fast" into a single arrow, the angular velocity:
Each body axis is just a point being dragged around a circle, so its tip moves as . Stack that for all three axes and you get the central identity
where is the angular velocity written in the space frame and the same motion written in the body frame. Nothing mysterious: it only says every axis is swept around by the same .
The skew-symmetric trick
What is that bracket? The cross product is a linear operation, so we can write it as a matrix and then use ordinary matrix algebra on rotating motion:
This matrix is skew-symmetric: . The set of all such matrices is named , the Lie algebra of . Keep the two worlds straight: lowercase holds angular velocities, infinitesimal spins, while uppercase holds finished rotations. The exponential map bridges them, and that's the next section.
An aircraft can be rolling (about body ) and pitching (about body ) at the same instant, so you might measure rad/s, with both an - and a -component. Two separate rotations at once?
No. The components combine into one angular velocity vector. The body is not spinning about two independent axes; it spins about the single axis points along, here a line tilted between and . Just as eastward and northward speeds add into one velocity, rotational components add into one angular velocity. For the body instantaneously spins about the diagonal axis, not "half about , half about ."
Exponential coordinates and Rodrigues' formula
Here is the whole idea in one sentence: every orientation can be reached by starting aligned, then turning by a single angle about a single unit axis , like driving a screwdriver. Pick an axis, pick how far to twist.
Those three numbers are the exponential coordinates of the rotation: the direction is the axis, the length is the angle. Three numbers, the bare minimum.
Why
The claim earns its name in four steps:
- A physical model. Spin a vector about a fixed unit axis at a constant 1 rad/s for seconds; let trace the tip's path.
- The differential equation. The tip's velocity is always perpendicular to both and , so .
- Solve the linear ODE. This is , whose solution is the matrix exponential: . So .
- Expand the series. Using the cyclic identity , every higher power collapses back onto or , and the two bracketed series are exactly and .
The result is Rodrigues' formula:
Don't let the scare you. It is not a number raised to a power. It is the machine that takes an axis and angle and hands back the actual rotation matrix. Rodrigues' formula is that machine written out in closed form, so you can compute it by hand with no infinite sum.
Take and . Then
Rodrigues gives
Sanity check: a turn about leaves alone (third row and column match ) and acts as the planar rotation matrix on , exactly the 2D case from earlier.
From rotation back to axis-angle: the log
The reverse trip, the matrix logarithm, reads the axis and angle back off any :
Picture every rotation as a single dot inside a solid ball of radius . The direction from the center is the rotation axis; the distance from the center is the angle, never more than a half-turn. The center itself is "no rotation." The picture even shows why minimal 3-number representations are always a little awkward: opposite points on the surface () are the same rotation, so the chart quietly wraps around on itself.
Take the cyclic rotation that sends :
Angle. Here , so .
Axis. With ,
Sanity check: a turn about the body diagonal cycles the three axes in turn, exactly the we started from.
Try it: axis-angle to rotation matrix
Pick an axis and an angle, and watch Rodrigues' formula produce the matrix. The yellow line is the rotation axis.
Axis-Angle to Rotation Matrix
Rodrigues' Formula
Rotation Matrix
Skew-Symmetric Matrix
is the cross product written as a matrix.
Exponential Coordinates
Unit axis:
Rotation:
Homogeneous transforms and twists
Rotation handled orientation. A full rigid body motion also translates. So we bolt a rotation and a translation into one matrix, the homogeneous transformation:
Stacking them this way means every trick we already had for rotations keeps working for full pose: compose by multiplying, change frames by multiplying, and the subscripts still cancel: .
The bottom row is the bookkeeping that makes it happen. To hit a 3D point with a matrix, first pad it to a 4-vector by appending a . Then one multiply does rotate-and-translate at once:
The trailing is preserved, so transforms chain indefinitely. Undoing a pose is not just a transpose: the translation has to be rotated back too:
And the same trio of jobs carries over: one can describe a configuration (), change frame by the cancellation rule, or displace a point or frame as an operator.
Every motion is a screw
The Chasles–Mozzi theorem says any rigid displacement at all can be achieved by rotating about some fixed axis while translating along that same axis: a screw motion. However tangled a move looks ("turn a bit, then slide over there"), you can always re-pick the axis so the whole thing becomes one clean screw: twist about a line while sliding along it, exactly like driving a bolt. Pure rotation and pure translation are the two extremes.
A screw is set by a point on its axis, a unit direction , and a pitch : how far it advances along the axis per radian turned about it, the threads-per-turn of a bolt. One number sets the whole mix. is pure rotation, spin in place. is pure translation, slide without turning. Everything between is a genuine corkscrew. The resulting transformation is
The twist: velocity of a rigid body
The velocity of a moving frame is a twist : the angular velocity stacked on a linear velocity . It answers two questions about a moving body at one instant: how is it turning (), and how is it sliding (). It is the velocity twin of the screw.
The subtle part is whose velocity is. A rotating body has a different speed at every point, so we cannot quote "the body's speed." Instead is the velocity of the body point passing through the frame origin right now, even if no real material sits there. Read a twist as: "spin like , and the point at my origin moves like ." That fixed reference point is the trick that lets twists add and transform cleanly.
The same physical motion has different numbers in and . The adjoint of converts a twist from one frame to the other:
It is simply the change-of-frame rule for velocities, the way and were the change-of-frame rules for vectors and points. Whenever you need a velocity "from the other frame's point of view," the adjoint is the converter.
The steered car above makes the odd convention concrete. The car is really just pivoting about the point . Yet the spatial twist reports, as its , the velocity of the imaginary chassis point currently at the origin, not the velocity of the car's center. Quoting "the velocity at the origin" feels strange the first time, but it is precisely the bookkeeping that lets twists compose. The body twist tells the same story from the driver's seat.
The screw axis: a unit twist
Normalize a twist and you get the unit screw axis , where . Then any twist factors as direction times speed:
says which screw you are turning: where the axis is, which way it points, how fast it advances. says how quickly you turn it.
The screwdriver idea now scales up to full motion. Just as had , the group has : follow the unit screw for an amount :
Name a screw, say how far to turn it, and the exponential hands back the finished pose. Today's screws are tomorrow's robot joints: this exact exponential is the engine of the product-of-exponentials forward kinematics in the next chapter.
Try it: screw motion
The screw axis here is vertical, through the yellow point. Turn up the pitch and watch rotation pick up a climb along the axis. Hit animate to watch the frame corkscrew its way through the motion.
Screw Motion Visualization
Homogeneous Transform
Screw Parameters
Axis:
Point:
Angle:
Pitch:
Translation:
The screw axis passes through point with direction . The body rotates by while translating along the axis.
Wrenches
Twists package velocities, angular plus linear, into one 6-vector. Wrenches do the same for forces.
The same force does different things depending on where it is applied: push a door at the handle and it swings; push at the hinge and nothing turns. A force alone is an incomplete description of a load. The missing piece is the moment , the turning effect of applied at point about the frame origin. Package both:
A wrench is "a push plus a turn-this-way."
Power pairs them
Notice the pairing: a twist is , a wrench is , both with the angular part first. Their dot product is power:
Power is work done per second, a real physical quantity, so it cannot depend on which frame you wrote it in. Hold onto that single fact: it forces the transformation rule. Twists already transform by , so for the product to come out the same in every frame, wrenches must transform by its transpose:
You never invent a new rule for forces. You take the velocity converter you already built and transpose it. The reason is pure physics: the energy per second has to be the same no matter who is looking, and that demand is exactly a transpose.
A hand (mass 0.5 kg) holds an apple (0.1 kg) under gravity. Two weights pull straight down: one on the apple (frame ), one on the hand (frame ). The wrist sensor (frame ) feels both, but only once each is spoken in its frame. Convert with the adjoint transpose, then simply add:
The moment arms ride in through the adjoints, turning a downward pull into a twisting load at the wrist.
Why must both wrenches be in the same frame before adding? Because 6-vectors only add when written in identical coordinates, like adding "3 steps east" to "3 steps forward" only after agreeing on one compass.
Quiz
A rotation matrix must satisfy which properties?
Summary
- A rigid body's state is a frame; pose = position + orientation .
- Rotations live in (, ): the inverse is the transpose, and there are no singularities. One plays three roles: describe, change language, operate.
- Angular velocity gives . Exponential coordinates and Rodrigues' formula connect axis-angle and matrix in both directions.
- Homogeneous transforms bundle ; every motion is a screw (Chasles–Mozzi). The twist is its velocity; the adjoint moves twists between frames.
- Wrenches bundle moment and force. They transform by the adjoint transpose because is power, and power can't depend on the frame.
Twists and wrenches are dual 6-vectors paired by power, the same screw geometry, read two ways. This duality runs through all of robot dynamics, and the exponential built here is the engine of forward kinematics in the next chapter.