Unit 1Configuration and DOF

Each revolute joint is a circle S1S^1; nn of them form the nn-torus.

Topology, not just dimension, is what distinguishes configuration spaces.

A free body in space has 6 dof: three to translate, three to rotate.

In the plane it drops to 3.

m=6m = 6 for spatial mechanisms, m=3m = 3 for planar ones.

NN counts links including ground, JJ the joints, fif_i the dof of joint ii.

A single holonomic constraint between joints removes one dof.

Seen in Practice exam 3872.

A planar robot reaches a 2-D set of positions, no matter how many joints it has.

Extra joints add redundancy, not workspace dimension.

Seen in Practice exam 3872.

Unit 2.1Pose of a Rigid Body

The right-handed cyclic order x→y→z→xx \to y \to z \to x.

Reversing the order flips the sign.

To complete a frame from two orthonormal vectors aa and bb, take c=a×bc = a \times b; the result is automatically right-handed.

Always verify a cross product with aTc=0a^{T}c = 0, bTc=0b^{T}c = 0 and ∥c∥=1\lVert c \rVert = 1. Ten seconds, catches every sign slip.

Seen in Practice exam 3872.

Column jj is the target frame's jj-th axis, written in the reference frame's coordinates.

This is not algebra: read the arrows off the drawing, one column at a time.

Easiest method is relative. Ask whether each axis of W2W_2 is parallel or anti-parallel to the matching axis of W1W_1, rather than judging each against an imagined baseline.

A superscript names the frame the coordinates are expressed in, so rpW1r_p^{W_1} is the vector to pp written in W1W_1. Never write a bare vector without its frame.

Sanity check: a point further from a frame's origin must have a larger magnitude in that frame. Catches swapped answers instantly.

Write the three axes as columns in any reference you trust, then take the determinant. Works regardless of how the figure is drawn.

Curl rule if you prefer geometry: point the right hand's fingers along +x+x, curl them toward +y+y; the thumb gives +z+z for a right-handed frame.

To repair a left-handed frame, flip exactly ONE axis. Flipping two is just a rotation and changes nothing.

Counting flips between two frames: an even number means the same handedness, an odd number means opposite.

Every question in 2.1 is this one equation solved for a different slot.

p∗p^{*} is the point in WORLD coordinates, pp is the same physical point in BODY coordinates, RR is the body orientation in world, rCr_C is the body origin in world.

Point in world: p∗=Rp+rCp^{*} = Rp + r_C. Point in body: p=RT(p∗−rC)p = R^{T}(p^{*} - r_C). Body origin or centre of mass: rC=p∗−Rpr_C = p^{*} - Rp. Pose: state both {rC,R}\{r_C, R\}.

Inverses go on the LEFT, because that is the side RR sits on. Matrix multiplication does not commute, so you cannot divide across as in scalar algebra.

RR always multiplies a BODY-frame vector. If RR sits next to something, that something is in body coordinates.

Label every vector with its frame before starting. Most errors here are a mislabel, not bad algebra.

Seen in Practice exam 3872.

Unit 2.2Representations of Orientation

Rotation matrix: 9 numbers, 6 constraints, 3 independent parameters. No singularities, but redundant.

Euler and roll-pitch-yaw: 3 numbers, minimal, but singular at certain angles.

Unit quaternion: 4 numbers, free of singularities.

Exponential coordinates: axis plus angle, compact, singularity-free, with a direct velocity interpretation.

All representations convert into one another.

Rotate α\alpha about zz, then β\beta about the NEW xx, then γ\gamma about the NEW zz.

Three parameters instead of nine, at the cost of singularities.

Singular when β=kπ\beta = k\pi: the first and third axes line up and only α+γ\alpha + \gamma is recoverable.

The yy-axis never appears, so a rotation about yy must be reached indirectly by first rotating a usable axis onto it.

A unit rotation axis ω\omega paired with the rotation angle ϕ\phi: axis-angle.

Invert by negating the axis, −ωϕ-\omega\phi, or equivalently by negating the angle.

Example: +90°+90° about yy is [0,1,0]Tπ2[0,1,0]^{T}\tfrac{\pi}{2}; −90°-90° about yy is [0,−1,0]Tπ2[0,-1,0]^{T}\tfrac{\pi}{2}.

Rotating by −α-\alpha undoes a rotation by α\alpha, so it is the inverse.

Because RR is orthonormal the inverse is just the transpose. Never invert a rotation matrix by hand.

Sanity check on any transform: rotations preserve length, so a step that changes a distance is wrong.

These two conditions define SO(3)SO(3). Both are needed.

Columns must be mutually orthogonal AND of unit length: aTb=0a^{T}b = 0, aTa=bTb=1a^{T}a = b^{T}b = 1.

det⁡R=−1\det R = -1 is a reflection, not a rotation: it flips handedness.

Orthonormal columns give R−1=RTR^{-1} = R^{T}, so inverting a rotation is free.

RR has 9 entries and 6 constraints, leaving 3 independent parameters.

Turns the exponential coordinates ωϕ\omega\phi back into a rotation matrix.

Requires ω\omega to be a unit vector.

Reads a unit quaternion Q=[η,νT]TQ = [\eta, \nu^{T}]^{T} backwards: η\eta is the scalar part, ν\nu the vector part.

The factor 2 is the whole point. The quaternion stores the HALF angle, so arccos⁡η\arccos\eta gives ϕ2\tfrac{\phi}{2} and you must double it. Forgetting this is the most common error in both directions.

Normalising ν\nu recovers the unit axis; the length of ν\nu is sin⁡ϕ2\sin\tfrac{\phi}{2}, which carries no axis information.

Every rotation has exactly two unit quaternions, QQ and −Q-Q. Negating all four entries flips both the axis and the angle, which lands on the same rotation. Convention keeps η\eta positive.

Worked example: Q=[22,−22,0,0]TQ = [\tfrac{\sqrt2}{2}, -\tfrac{\sqrt2}{2}, 0, 0]^{T} gives ϕ=π2\phi = \tfrac{\pi}{2} and ω=[−1,0,0]T\omega = [-1,0,0]^{T}, a 90°90° rotation about −x-x.

A new Greek letter next to something familiar is usually a PIECE of it, not a new object. Ask "is this part of that?" before assuming it is something new.

Quaternion QQ: scalar part η\eta (one number), vector part ν\nu (three numbers). ϕ=2arccos⁡Q\phi = 2\arccos Q would be meaningless, since QQ is a four-vector; the formula needs the first entry specifically, and that entry is called η\eta.

Homogeneous transform TT: rotation block RR, translation vector rr.

Screw axis ξ\xi: angular part ω\omega, linear part vv.

The same letter can also mean different things in different sections. ϕ\phi is the SCARA tool heading in 2.1 and the rotation angle in 2.2. Always read a symbol from its context, never from memory.

Roll is γ\gamma about xx, pitch is β\beta about yy, yaw is α\alpha about zz.

Two valid readings of the same product. RIGHT to LEFT: successive rotations about the FIXED initial axes. LEFT to RIGHT: successive rotations about the ROTATED axes.

Singular at β=±π2\beta = \pm\tfrac{\pi}{2}, where roll and yaw act about the same physical axis. This is gimbal lock.

The rotation axis is untouched by its own rotation, so row 1 and column 1 are the identity.

The minus sign sits in the upper of the two off-diagonal slots, same as RzR_z.

Row 2 and column 2 are the identity: the yy-axis is the rotation axis.

RyR_y is the odd one out. Its minus sign is bottom-left, while RxR_x and RzR_z carry theirs top-right, a consequence of the cyclic order x→y→zx \to y \to z.

At α=±π2\alpha = \pm\tfrac{\pi}{2} the cosines vanish, leaving only the two off-diagonal entries and the axis row.

Row 3 and column 3 are the identity: the zz-axis is the rotation axis.

This is also the planar rotation, SO(2)SO(2), padded out to three dimensions.

The 3×33\times3 matrix [w][w] turns a cross product into a matrix product.

Needed to write Rodrigues' formula and the screw matrices.

A rotation by angle ϕ\phi about unit axis ω\omega, as a four-vector of unit length.

Remember the HALF angle. It is the single most missed detail here.

Inverse: Q=[η,νT]TQ = [\eta, \nu^{T}]^{T} gives Q−1=[η,−νT]TQ^{-1} = [\eta, -\nu^{T}]^{T}. Negate the vector part only, which flips the axis direction.

For ϕ=π\phi = \pi the scalar part vanishes and Q=[0,ωT]TQ = [0, \omega^{T}]^{T}.

QQ and −Q-Q describe the same rotation, so every orientation has two unit quaternions.

Free of singularities, which is why game engines store rotations this way.

Seen in Practice exam 3872.

Unit 2.3Homogeneous Transformations

Packs rotation and translation into one 4×44\times4 matrix that composes by multiplication.

Rotation block top-left, translation vector top-right, bottom row always [0,0,0,1][0,0,0,1].

16 entries, 12 of them variable (parameters), 6 degrees of freedom once the 6 orthonormality conditions are applied.

Vectors are right-multiplied, so a chain of transforms is read RIGHT to LEFT for the vector and left to right for the frames.

Not the plain transpose. The rotation block transposes, but the translation becomes −RTr-R^{T} r.

Same structure as p=RT(p∗−rC)p = R^{T}(p^{*} - r_C) from 2.1, written as one matrix.

Unit 2.4Exponential Coordinate Representation

ALWAYS check the rotation block first. That single check picks the branch, and picking the wrong one is the main way these questions go wrong.

Translation branch (prismatic joints, R=IR = I): ω=03\omega = 0_3, so vv carries the unit-length condition. ϕ\phi is the length of the displacement and vv is its normalised direction.

Rotation branch (revolute joints): ωˉ\bar\omega is the normalised rotation axis, ϕ\phi is the LENGTH of the un-normalised angular velocity vector, and vv comes from the cross product with any point pp on the rotation axis.

Why vv is not simply pp: the screw axis is a direction in six dimensions, not a position. A rotation about an axis that misses the origin induces a linear velocity at the origin, and −(ωˉ×p)-(\bar\omega \times p) is exactly that.

Any point on the axis works for pp; coordinates along the axis direction cancel in the cross product.

The equation v=−(ω×rC)+r˙Cv = -(\omega \times r_C) + \dot{r}_C is the SAME formula with a term kept for a body that also translates. With r˙C=03\dot{r}_C = 0_3 the two are identical; pp and rCr_C both just mean a point given in the world frame.

Either branch: stack ξ=[ωT,vT]T\xi = [\omega^{T}, v^{T}]^{T}, six entries, angular part on top. The answer is always the pair ξϕ\xi\phi.

Worked example (rotation branch): ω=[0,0,π]T\omega = [0,0,\pi]^{T} with p=[1,0,0]Tp = [1,0,0]^{T} gives ωˉ=[0,0,1]T\bar\omega = [0,0,1]^{T}, ϕ=π\phi = \pi, v=−([0,0,1]T×[1,0,0]T)=[0,−1,0]Tv = -([0,0,1]^{T} \times [1,0,0]^{T}) = [0,-1,0]^{T}, so ξϕ=[0,0,1,0,−1,0]Tπ\xi\phi = [0,0,1,0,-1,0]^{T}\pi.

ξ\xi is a screw axis; ϕ\phi is the distance travelled around and along it.

Either ω\omega has unit length (general motion), or for a PURE TRANSLATION ω=03\omega = 0_3 and vv has unit length.

Pure translation example: displacement of 1 along xx is ξϕ=[0,0,0,1,0,0]T⋅1\xi\phi = [0,0,0,1,0,0]^{T}\cdot 1.

Interpretation: apply the velocities in ξ\xi for ϕ\phi seconds and you get the rigid transformation.

Both split a motion into a unit direction and a scalar amount, which is why they look related. They are not the same object.

Quaternion: ϕ\phi is a rotation ANGLE, entries are cosines and sines of the HALF angle, 4 numbers, orientation only.

Screw: ϕ\phi is a DISTANCE travelled, entries are a raw unit direction with no trigonometry at all, 6 numbers, rotation AND translation.

Quick tell: if there is no trig in what you wrote, it is not a quaternion.

ξ\xi is the DIRECTION (the screw axis) and ϕ\phi is the AMOUNT (how far you travel around and along it). Same split as ωϕ\omega\phi in 2.2: a unit direction times a scalar.

Look at the rotation block FIRST. If R=IR = I there is no rotation, so ω=03\omega = 0_3 and the motion is a pure translation.

Pure translation: ϕ=∥r∥\phi = \lVert r \rVert and v=r/∥r∥v = r / \lVert r \rVert, where rr is the translation vector.

Example: TT with R=IR = I and r=[1,0,1]Tr = [1,0,1]^{T} gives ϕ=2\phi = \sqrt{2}, v=[22,0,22]Tv = [\tfrac{\sqrt2}{2}, 0, \tfrac{\sqrt2}{2}]^{T}, so ξϕ=[0,0,0,22,0,22]T2\xi\phi = [0,0,0,\tfrac{\sqrt2}{2},0,\tfrac{\sqrt2}{2}]^{T}\sqrt{2}.

Check: multiplying ξ\xi by ϕ\phi must return the original translation in the lower three entries.

Two cases, and the exam asks for both. General motion: the angular part is the unit one. Pure translation: ω\omega is zero and cannot be normalised, so the job passes to vv.

Something must be unit length so that ϕ\phi carries the magnitude unambiguously. Otherwise the same motion could be written with infinitely many (ξ,ϕ)(\xi, \phi) pairs.

Geometric reading: ξ\xi is the bolt, ϕ\phi is how far you drive it in.

Velocity reading: apply the velocities packed into ξ\xi for ϕ\phi seconds and you get the rigid transformation.

Unit 3Forward Kinematics

Four parameters per joint: twist α\alpha, length aa, offset dd, angle θ\theta.

With α=0\alpha = 0, a pure θ\theta rotation sits in the top-left RzR_z block and dd shifts along zz.

Seen in Practice exam 3872.

Maps joint coordinates qq to the end-effector pose xx.

Always single-valued: one configuration gives one pose.

Seen in Practice exam 3872.

One screw axis ξi\xi_i per joint, no chain of link frames needed.

MM is the home configuration of the end-effector, at ϕ=0\phi = 0.

Seen in Practice exam 3872.

Angular part ω\omega on top, linear part vv below.

For a pure rotation about an axis through point pp, v=−ω×pv = -\omega \times p.

Unit 4Inverse Kinematics

Turns a desired end-effector pose into joint coordinates.

For an nn-joint arm the solution lives in Rn\mathbb{R}^{n}; it may have many or no solutions.

Seen in Practice exam 3872.

Iterate the Jacobian until the pose error shrinks below tolerance.

Uses the pseudo-inverse when JJ is not square.

Unit 5Differential Kinematics and Statics

Joint velocities needed to deliver a wanted end-effector velocity.

Blows up near singularities, where J−1J^{-1} does not exist.

Seen in Practice exam 3872.

A square Jacobian loses rank; the arm cannot move in some direction.

Rows or columns become linearly dependent (e.g. one is a multiple of another).

Seen in Practice exam 3872.

How far the configuration is from a singularity; zero at one.

It is the volume of the manipulability ellipsoid.

Forward differential kinematics: joint velocities map to end-effector velocity.

Each column is the partial derivative of the pose with respect to one joint.

Seen in Practice exam 3872.

The transposed Jacobian maps an end-effector force to joint torques at rest.

It is the duality partner of X˙=Jq˙\dot{X} = J\dot{q}.

Seen in Practice exam 3872.

Unit 6Trajectory Planning

Four coefficients match position and velocity at both ends.

Smooth velocity, but the acceleration jumps at the endpoints.

The rate of change of acceleration; high jerk stresses actuators and wastes energy.

It affects smoothness, not the maximum velocity.

Seen in Practice exam 3872.

Two position boundary conditions need a degree-one polynomial, so two coefficients.

Plug in q(0)q(0) and q(T)q(T) to solve for a0a_0 and a1a_1.

Seen in Practice exam 3872.

The linear part of the screw for a body rotating about an axis through rCr_C.

It is the velocity of the body point momentarily at the world origin.

Seen in Practice exam 3872.

Tap a card to unfold the notes.