Robot Kinematics
Kinematics is the study of motion without considering forces — how things move, not why. In robotics, kinematics answers two fundamental questions: given the angles of every joint in a robot arm, where is the tip? And the reverse: given a target position for the tip, what angles should the joints be at? These questions — forward and inverse kinematics — are the mathematical core of every robot arm ever built.
1. Forward Kinematics — Joints to Position
Forward kinematics (FK) answers: "I know every joint angle. Where is my end effector in 3D space?" It's computationally straightforward — a chain of matrix multiplications, one per joint.
The kinematic chain
A robot arm is a series of rigid links connected by joints. Each joint has one degree of freedom — either rotation (revolute joint) or translation (prismatic joint). The chain starts at the base (fixed to the floor or robot body) and ends at the end effector (the gripper or tool).
Homogeneous transforms
Each joint's rotation is represented as a 4×4 transformation matrix (recall the math from Phase 1). To find the end effector's pose, multiply all the joint transforms in order: T_total = T_base × T_joint1 × T_joint2 × ... × T_tool. The result is a 4×4 matrix encoding the end effector's position [x, y, z] and orientation in world coordinates.
Denavit-Hartenberg (DH) parameters
A systematic convention for describing the geometry of a kinematic chain. Each link is described by four numbers: link length (a), link twist (α), joint offset (d), and joint angle (θ). With DH parameters, you can automatically generate the full FK transformation chain for any robot arm. Used in every robotics textbook and is the standard way to describe robot geometry.
2. Inverse Kinematics — Position to Joints
Inverse kinematics (IK) answers the harder question: "I want my end effector at this position and orientation in 3D space. What joint angles achieve that?" This is what a robot actually needs to solve when told "pick up the cup at (x=0.4, y=0.0, z=0.3)."
Why IK is hard
FK is a function from joint space to Cartesian space — one input, one output. IK is the inverse — and it often has multiple solutions (a human arm can reach the same point with elbow up or elbow down), no solution (the point is outside the robot's reachable workspace), or infinitely many solutions (a 7-DoF arm has a "redundant" degree of freedom). IK must handle all three cases.
Analytical IK
For simple geometries (like a 6-DoF industrial arm with a spherical wrist), closed-form mathematical solutions exist. These are fast (microseconds) and return all solutions. Most industrial robots use analytical IK for this reason. The math is complex but done once, then used forever.
Numerical IK (Jacobian methods)
When analytical solutions don't exist (7-DoF arms, unusual geometries), numerical methods iteratively improve a guess. The Jacobian matrix maps joint velocity changes to end effector velocity changes. Invert the Jacobian, and you can compute joint velocity changes that move the end effector toward the target. Iterate until close enough. Libraries like IKFast (fast, precomputed) and TRAC-IK (general, reliable) implement this for ROS.
MoveIt 2
MoveIt is the standard ROS 2 motion planning framework for robot arms. It integrates IK solvers, collision checking, and trajectory planning. Define your robot with URDF, configure MoveIt, and call move_group.set_pose_target(pose). MoveIt solves IK, plans a collision-free trajectory, and executes it — all in one clean API call.
3. Workspace & Singularities
Reachable workspace
The set of all positions the end effector can reach is called the workspace. It's bounded by the robot's link lengths and joint angle limits. Understanding the workspace prevents sending infeasible IK goals (position outside the workspace) and helps position the robot relative to the task for optimal manipulation coverage.
Singularities
A singularity is a configuration where the robot loses one or more degrees of freedom — joints align such that some motions become impossible. For example, when a robot arm is fully extended, it can't move the end effector radially outward. Near singularities, the Jacobian becomes ill-conditioned and numerical IK solutions become unstable or require very large joint velocities. Good robot controllers detect and avoid singularities.
Frequently Asked Questions
How many degrees of freedom does a robot arm need?
6 DoF is the minimum to position the end effector at any point in space with any orientation (like a human wrist and arm combined). 7 DoF adds redundancy — an extra joint that allows null-space motions (reconfiguring the arm without moving the end effector), useful for obstacle avoidance. Most industrial arms are 6-DoF; most humanoid arms and collaborative robots are 7-DoF.
What's the difference between workspace and configuration space?
Workspace (task space): The 3D space where the end effector moves [x, y, z, roll, pitch, yaw]. Configuration space (C-space): The space of all possible joint angles [θ1, θ2, θ3, ...]. Path planning is often done in C-space because obstacles that are complex shapes in workspace become regions in C-space that you simply avoid.
What Python library handles kinematics?
ikpy is a pure Python IK library — easy to install, works without ROS. roboticstoolbox-python (by Peter Corke) is a comprehensive robotics toolkit with FK, IK, dynamics, and trajectory planning. For ROS-integrated work, MoveIt 2 is the production choice. Start with ikpy to understand the concepts, then move to MoveIt for real applications.
Do mobile robots need kinematics?
They need a related analysis — differential drive kinematics describes how wheel speeds map to robot velocity and turning rate. It's simpler than arm kinematics (just two equations) but uses the same principles. Holonomic mobile robots (omnidirectional wheels) have their own kinematic model. Kinematics is universal in robotics.
Frequently Asked Questions
What will I learn here?
This page covers the core concepts and techniques you need to understand the topic and progress confidently to the next lesson.
How should I use this page?
Start with the overview, then follow the section links to deepen your understanding. Use the table of contents on the right to jump to specific sections.
What should I read next?
Use the navigation below to continue to the next lesson or explore related topics.