Your own arm already knows the answer
Sit still and pick three angles: how far you rotate your shoulder, how much you bend your elbow, how you cock your wrist. Hold them. Your fingertip is now at one specific point in the room — you could mark it with a pen. You did not have to think about where to put your fingertip; you set the angles, and the position simply happened. That everyday miracle is exactly the problem we call forward kinematics: given the angle of every joint, compute where the end of the arm lands.
A robot arm is the same picture stripped down to bare metal. It is a chain of stiff segments (the upper arm, the forearm) connected by motors at the joints. Tell the robot every joint angle and there is exactly one place the tip — the end-effector, whether that is a gripper, a welding torch, or a suction cup — can be. Forward kinematics is the recipe that turns that list of angles into a position and an orientation.
A map from joint space to task space
Engineers like to give the two ends of this calculation names. The full list of joint angles is a point in joint space: if your arm has six motors, one snapshot of all six numbers is a single point in a six-dimensional space of "poses the joints can take." The place the gripper ends up — its position and which way it is pointing — is a point in task space, the ordinary 3D world where the actual work gets done.
With those names, forward kinematics is just a map: hand it a point in joint space, it returns a point in task space. The thing that makes this direction so friendly is that the map is a true function — one input, one output, no ambiguity. Feed in a list of angles and there is never a question of "which position?" The links are rigid and the angles are fixed, so geometry leaves only a single possible answer.
Working a two-link arm by hand
Let's make it concrete with the smallest interesting robot: a flat, two-link arm lying on a tabletop, like a drawing of a bent elbow seen from above. The first link has length L1 and pivots at the shoulder by angle θ1, measured from the x-axis. The second link has length L2 and bends at the elbow by angle θ2, measured relative to the first link. We want the (x, y) where the fingertip lands.
Walk it link by link. The elbow sits at the end of the first link, a distance L1 out along direction θ1, so the elbow is at (L1·cos θ1, L1·sin θ1). From the elbow, the second link points along the combined angle θ1 + θ2 — because its bend stacks on top of however the shoulder was already turned. Add that second leg and you reach the fingertip. The angles simply accumulate as you walk outward; that stacking is the whole heart of the idea.
x = L1*cos(t1) + L2*cos(t1 + t2) y = L1*sin(t1) + L2*sin(t1 + t2) # try L1 = L2 = 1 # t1 = 0, t2 = 0 -> arm straight out # (x, y) = (2, 0) # t1 = 90, t2 = 0 -> straight up # (x, y) = (0, 2) # t1 = 0, t2 = 90 -> forearm bent up # (x, y) = (1, 1)
Plug in a few numbers and you can feel the function breathe. Straight arm (both angles zero) reaches farthest, two link-lengths out. Bend the elbow to a right angle and the fingertip pulls in to (1, 1). Nothing here is harder than sines and cosines, yet you have just computed forward kinematics for a real, if tiny, robot.
Stacking frames for real robots
Our flat arm got away with adding angles because everything lived in one plane. A real arm twists and tilts in three dimensions, so we need a bookkeeping trick that never loses track. The trick is to glue a little coordinate frame — three axes labeling "forward, left, up" — to each link, then describe how each frame sits relative to the one before it.
Each "how this frame sits relative to the last one" is captured by a single object called a homogeneous transformation matrix — a compact 4-by-4 grid that bundles a rotation (which way the next link is twisted) and a translation (how far along the link you travel) into one step. You do not need to compute one by hand today; just trust that one matrix means "turn this much, then move this far."
Now the payoff: to find where the gripper is, you multiply these matrices together, shoulder to wrist, one per joint. Each multiplication is the 3D version of the angle-stacking you just did by hand — it carries you from one link's frame out to the next. The product is one final transform that says exactly where the end-effector is and how it is oriented in the world. This step-by-step product, fed by a table of link lengths and twists, is what a real controller computes many times a second.
Two languages, and why the next problem is harder
Step back and notice you now have two ways to describe the same robot. In joint space you speak the motors' language: "shoulder at 30 degrees, elbow at 45." In task space you speak the world's language: "the gripper is at this point, facing this way." Both describe one configuration; they are two dialects for the same moment.
Forward kinematics is the translator that goes one way — from the motors' language to the world's language — and it does so flawlessly, because the geometry is fully determined. Plan a motion by listing joint angles and you can always read off exactly where the hand will be at every instant. That reliability is why simulators, safety checks, and animation all lean on it.
But real tasks usually start from the world's language: "put the gripper here." Now you need the translation backward — pick joint angles that achieve a chosen point. That reverse trip, inverse kinematics, is where the trouble we hinted at lives: a target might be reachable by several elbow-up or elbow-down poses, or by none at all if it sits outside the arm's reach. Because you mastered the easy direction here, you are now perfectly set up to appreciate why the hard direction earns its own guides.