Forward kinematics solves the computational problem: given the joint angles of a robot arm, what is the position and orientation of the end-effector (tool, gripper, or sensor) in Cartesian space? Inverse kinematics solves the inverse problem: given a desired end-effector pose (position and orientation), what joint angles achieve it? Forward kinematics has a unique solution; inverse kinematics often has multiple, no, or infinitely many solutions depending on robot geometry. Both are essential for motion planning and control.
Build a simple 2-link planar arm and solve forward kinematics by hand: given angle θ₁ and θ₂, compute end-effector (x, y). Then solve inverse kinematics for that arm and discover multiple solutions geometrically. Progress to a 3-link arm to see how complexity grows. Use a robot simulator (CoppeliaSim, Gazebo) to visualize configurations in real time.
Imagine you are building a robotic arm to pick objects from a table. The arm has several joints (shoulder, elbow, wrist) that you can rotate through specific angles. Forward kinematics answers the practical question: if I command the shoulder to angle θ₁, elbow to θ₂, and wrist to θ₃, where does the gripper end up? You solve this by following the kinematic chain: the first link rotates the second link, which rotates the third link. The final position is the vector sum of all link contributions in the global frame of reference.
For a 2-link arm, the computation is straightforward. If link 1 has length L₁ and rotates to angle θ₁, its tip is at (L₁ cos θ₁, L₁ sin θ₁). Link 2, with length L₂, attaches to that point and rotates an additional θ₂ (relative angle) or θ₁ + θ₂ (absolute angle). The gripper position is the sum: x = L₁ cos θ₁ + L₂ cos(θ₁ + θ₂), y = L₁ sin θ₁ + L₂ sin(θ₁ + θ₂). This direct calculation yields a unique answer for any joint configuration. Forward kinematics is a function (and typically a well-defined one) from joint space to Cartesian space.
Inverse kinematics is the reverse problem: you want the gripper at a specific position (x_d, y_d). What joint angles achieve this? This is much harder. Unlike forward kinematics, inverse kinematics is not a simple arithmetic calculation. The equations x = L₁ cos θ₁ + L₂ cos(θ₁ + θ₂) and y = L₁ sin θ₁ + L₂ sin(θ₁ + θ₂) are nonlinear in θ₁ and θ₂, with coupled trigonometric terms. Moreover, solutions may not be unique. For the 2-link arm, the gripper can reach most positions in two configurations: elbow-up (where the arm bends one way) and elbow-down (where it bends the opposite way). If the target is at the boundary of the reachable workspace (distance = L₁ + L₂ or distance = |L₁ - L₂|), there is exactly one solution. If the target is unreachable, there is no solution.
As robots become more complex — a 6-DOF arm with six revolute joints — the forward kinematics computation becomes a chain of matrix multiplications (using the Denavit-Hartenberg convention), but the computation is still straightforward and yields a unique answer. Inverse kinematics, however, becomes dramatically harder. With six joints and six position/orientation constraints (3 Cartesian coordinates plus 3 orientation angles), the system is "non-redundant" in principle, but the equations are transcendental (products of sines and cosines) and may have zero, one, multiple discrete solutions, or even continuous families of solutions depending on the arm geometry and target pose. Singularities — special configurations where the arm loses degrees of freedom — create regions where inverse kinematics is ill-posed.
Practical robotics solves inverse kinematics through a mix of analytical and numerical methods. For simple arm geometries (2-DOF planar, 3-DOF SCARA), analytical solutions exist and can be hard-coded. For complex arms, iterative numerical methods (Newton-Raphson, trust region methods) adjust joint angles to minimize the error between the current gripper position and the desired position. These methods require a good initial guess and can get stuck in local minima. This is why trajectory planning (the next topic) is crucial: instead of commanding a large jump to an arbitrary target, the planner constructs a smooth path through joint space that respects the arm's constraints and avoids singularities.
This is a foundational topic with no prerequisites.
No prerequisites — this is a starting point.