Configuration Space
- Also called: C-space, joint space, configuration manifold
- Category: Foundations & spatial maths › Kinematics
- Tags: motion-planning, kinematics, collision-avoidance, path-planning, robot-arms
The space of all possible configurations of a robot, where each point specifies every joint value or body pose, turning motion planning into finding a path for a single point.
Definition
Configuration space, or C-space, is the set of all configurations a robot can take, where a configuration is the minimal set of values that fully specifies the position of every part of the robot. For a robot arm this is the vector of joint angles; for a mobile robot on a floor it is its position and heading. The dimension of the configuration space equals the robot's number of degrees of freedom.
The concept became central to motion planning through Tomás Lozano-Pérez's 1983 work on spatial planning. Its key idea is that obstacles in the physical workspace can be mapped into configuration space as C-obstacles: the set of configurations in which the robot would collide. What remains is free space. Planning a collision-free motion for a robot with a complex shape then becomes the problem of finding a path for a single point through free configuration space.
Configuration spaces have their own shape. A revolute joint without limits wraps around like a circle, so an arm with several such joints has a torus-like C-space rather than a flat box. A rigid body moving in a plane has a configuration space combining two translations with one rotation. This structure matters for how distances are measured and how paths are interpolated.
In high-dimensional C-spaces, computing C-obstacles explicitly is impractical. Sampling-based planners such as probabilistic roadmaps (PRM) and rapidly-exploring random trees (RRT) avoid it: they sample configurations, use forward kinematics to place the robot's geometry in the workspace, and run a collision check. Optimization-based planners also work in C-space while evaluating costs in the workspace.
Why it matters
Configuration space is the common language of motion planning. Understanding it explains why a path that looks short in the workspace can be long or impossible for the robot, and why planners sample joint values rather than end-effector positions.
Key applications
- Collision-free motion planning for robot arms and mobile manipulators
- Sampling-based planners such as PRM and RRT
- Analyzing reachability and joint-limit constraints
- Path planning for mobile robots that must account for their footprint and heading
In practice
When a manipulation team plans arm motions with a framework such as MoveIt, the planner works in the arm's joint space: it samples joint vectors, checks each against the collision model of the robot and scene, and connects valid samples into a path. Engineers set joint limits and decide which joints wrap around, choose a distance metric that weights large proximal joints appropriately, and tune the collision-check resolution along each path segment so that thin obstacles are not skipped between samples.
Common misconceptions
- Configuration space is the same as the workspace — the workspace is the physical region the end effector can reach, while configuration space is the space of joint values or body poses
- Planners compute the full set of C-obstacles — in more than a few dimensions this is impractical, so most planners check sampled configurations instead
- Configuration space is always a flat box of joint ranges — rotational degrees of freedom wrap around, giving it a curved, periodic structure
Who should know this
- Motion planning engineers
- Robotics students learning kinematics and planning
- Software engineers integrating planners such as MoveIt
Related technologies
- Motion Planning
- Probabilistic Roadmap (PRM)
- Rapidly-exploring Random Tree (RRT)
- MoveIt
- Collision Checking
- Forward Kinematics
Related terms
Related projects
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
- OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
- MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
Videos
- Modern Robotics, Chapter 2.3.1: Configuration Space Topology: Northwestern Robotics