Robotics
← Roadmap/Control & Motion

Kinematics (FK / IK)

Forward & inverse kinematics, Jacobians.

Progress0/5 questions
mediumControl & MotionSkip to practice questions ↓

Prerequisites

Why it matters in robotics

Kinematics maps a robot's joint angles to the pose of its end-effector (forward kinematics) and back (inverse kinematics), and relates how fast the joints move to how fast the end-effector moves. It governs situations where an arm loses the ability to move freely in some direction, cases where an arm has more joints than strictly needed, the choice between exact closed-form solutions and iterative numerical ones for inverse kinematics, and why an IK problem can have no solution or infinitely many. It is the bread-and-butter of every manipulation, arm, and humanoid system.

What to study

  • Forward kinematics: DH parameters and the product-of-exponentials (PoE) formula in space and body frames
  • Velocity kinematics: the space/body Jacobian, singularities, manipulability, and statics duality (force = J^T wrench)
  • Inverse kinematics: closed-form/analytical solutions vs. numerical Newton-Raphson and damped least squares (pseudoinverse)
  • Redundancy and null-space control: handling >6-DOF arms and using the Jacobian for resolved-rate motion control

Where to study

Cheatsheet

Symbols used below

qqjoint angles (vector)
xxend-effector pose (position + orientation)
J(q)J(q)Jacobian (maps joint velocities to end-effector velocity)
q˙\dot qjoint velocities
x˙\dot xend-effector linear/angular velocity
τ\taujoint torques
FFend-effector force/wrench
JJ^\topJacobian transpose
J+J^+Jacobian pseudoinverse

Forward kinematics

x=f(q)x = f(q)

Chain each joint's local transform (from DH parameters, or as a product of exponentials of screw axes) to get the end-effector pose from the joint angles. Always well-defined — one set of joint angles gives exactly one pose.

Velocity kinematics: the Jacobian

x˙=J(q)q˙\dot x = J(q)\dot q

JJ is the matrix of partial derivatives of the pose with respect to each joint angle — it linearizes the FK map at the current configuration and changes as the arm moves.

Singularities and manipulability

A singularity occurs where J(q)J(q) loses rank: some end-effector directions become momentarily unreachable no matter how fast the joints move (e.g. an arm fully extended).

Manipulability (det(JJ)\propto \sqrt{\det(JJ^\top)}) shrinks toward zero near a singularity — a scalar sense of how far the arm is from losing a direction of motion.

Statics duality

τ=JF\tau = J^\top F

The same Jacobian that maps joint velocity to end-effector velocity also maps end-effector force/wrench back to joint torques — no separate force model needed.

Inverse kinematics: solving for q

Closed-form: exact algebraic solution for specific arm geometries (e.g. spherical wrist) — fast, but only exists for particular structures.

Numerical (Newton-Raphson / damped least squares): iterate qq+J+(xdesf(q))q \leftarrow q + J^+ (x_{des}-f(q)), using the pseudoinverse (or a damped version near singularities) — general-purpose but iterative and only locally convergent.

An IK problem can have no solution (target outside the workspace), a finite number of solutions (e.g. elbow-up/down), or infinitely many (redundant arm).

Redundancy and null-space control

An arm with more than 6 joints has a null space: joint motions q˙n\dot q_n satisfying Jq˙n=0J\dot q_n = 0 that move the joints without moving the end-effector at all.

Resolved-rate control exploits this: q˙=J+x˙des+(IJ+J)q˙0\dot q = J^+ \dot x_{des} + (I - J^+J)\dot q_0, using the leftover freedom q˙0\dot q_0 for a secondary goal (e.g. avoiding joint limits or obstacles) while still tracking the primary task.

l₁l₂θ₁θ₂(x, y)x = l₁cosθ₁ + l₂cos(θ₁+θ₂), y = l₁sinθ₁ + l₂sin(θ₁+θ₂)
Forward kinematics of a planar 2-link arm gives the end-effector directly from the joint angles; inverting it yields two solutions (elbow-up/down), with singularities when the arm is fully extended.
{A}{B}tpT = [R t; 0 1]ᴬp = ᴬT_B ᴮp
A 4×4 homogeneous transform packs rotation R and translation t into one matrix, so composing coordinate frames is just matrix multiplication: ᴬp = ᴬT_B · ᴮp.

Application focus

Select an application above.

Practice questions (5)