
Introduction
Kinematics is the study of motion (position, velocity, and acceleration) while ignoring the forces that cause it. For a robot arm or mobile robot, knowledge and application of kinematics lets answer two kinds of questions:-
"If the joints are at these angles and positions, where is the end-effector?"
"If I want the end-effector at a desired location; what joint angles get it there?"
These two questions are forward kinematics and inverse kinematics.
Key Concepts
- Forward Kinematics (FK) — Given joint angles/positions, compute the pose (position + orientation) of the end-effector. FK always has a unique solution. It essentially involves applying a chain of transformations across different reference frames.
- Inverse Kinematics (IK) — Given a desired end-effector pose, compute the joint angles that achieve it. IK often has multiple solutions, sometimes none (unreachable pose), and can be analytically or numerically solved. IK solutions require not just finding all possible configurations, but also selection of optimal configuration on the basis of a variety of parameters: energy cost, smoothness of path, deviation, velocity and acceleration thresholds, etc. Even if IK returns a mathematically valid solution, it may violate joint limits or collide with the environment. Practical IK solvers therefore search only among feasible configurations.
- Denavit–Hartenberg (DH) parameters — a standard convention for describing the geometry of a robot's links and joints so FK can be computed systematically. Each joint-to-joint transformation is captured by four numbers: link length a (distance between joint axes along their common normal), link twist α (angle between joint axes), link offset d (distance along the joint axis), and joint angle θ (rotation around the joint axis; the actual variable a revolute joint controls). Chaining these four-parameter transformations link by link builds the FK computation.
- Transformation matrices — 4x4 homogeneous matrices combining rotation + translation between coordinate frames.
- Jacobian & velocity kinematics — FK/IK relate joint positions to end-effector position. The Jacobian is the matrix that relates joint velocities to end-effector velocity (linear + angular). It answers "if I spin this joint at this rate, how fast does the end-effector move, and in what direction?" It is essential for smooth trajectory/velocity control, and its rank is also what determines singularities.
- Singularities — configurations where the robot loses at least one degree of freedom of motion, even though every joint is perfectly free to move(e.g. an arm stretched fully straight can't push its end-effector any further outward no matter how the joints move). Mathematically, the Jacobian loses rank (becomes non-invertible) here. Numerical IK solvers tend to misbehave (blow up, oscillate, or fail to converge) near singularities.
- Workspace — the set of all points an end-effector can reach. We can split it into reachable workspace (all points it can get to, in some orientation) and dexterous workspace (the points it can get to in every orientation). The dexterous workspace is usually much smaller. When picking an arm for a task needing full orientation control near the edges of its reach, it becomes important.
Worked numeric example — 2-link planar arm, l1 = l2 = 1, θ1 = 30°, θ2 = 45°:
x = 1·cos(30°) + 1·cos(75°) = 0.866 + 0.259 = 1.125
y = 1·sin(30°) + 1·sin(75°) = 0.5 + 0.966 = 1.466
So this configuration puts the end-effector at (1.125, 1.466). If we feed those coordinates into the ik_2link function in the Implementation Guide below, it should compute θ1 ≈ 30°, θ2 ≈ 45° (up to the elbow-up/elbow-down ambiguity)
Applications in Robotics
- Robot arm control (industrial arms, manipulators) — IK is how you tell an arm to "pick up the object at this point"
- Mobile robot odometry — relating wheel rotations to robot displacement
- Any simulation environment (Gazebo, MuJoCo) computes FK constantly