Configuration Space
- 다른 이름: C-space, joint space, configuration manifold
- 카테고리: Foundations & spatial maths › Kinematics
- 태그: motion-planning, kinematics, collision-avoidance, path-planning, robot-arms
로봇이 취할 수 있는 모든 구성의 공간으로, 각 점이 모든 관절 값이나 몸체 자세를 지정하므로 모션 계획이 단일 점의 경로를 찾는 문제로 바뀐다.
정의
구성 공간(configuration space), 또는 C-공간(C-space)은 로봇이 취할 수 있는 모든 구성의 집합이며, 여기서 구성이란 로봇의 모든 부분의 위치를 완전히 지정하는 최소한의 값 집합이다. 로봇 암에서는 관절 각도 벡터이고, 바닥 위의 모바일 로봇에서는 위치와 방향이다. 구성 공간의 차원은 로봇의 자유도 수와 같다.
이 개념은 1983년 Tomás Lozano-Pérez의 공간 계획 연구를 통해 모션 계획의 중심이 되었다. 핵심 아이디어는 물리적 작업 공간의 장애물을 구성 공간으로 C-장애물(C-obstacle), 즉 로봇이 충돌하게 되는 구성들의 집합으로 사상할 수 있다는 것이다. 남는 것은 자유 공간(free space)이다. 그러면 복잡한 형상을 가진 로봇의 충돌 없는 움직임을 계획하는 일은 자유 구성 공간을 지나는 단일 점의 경로를 찾는 문제가 된다.
구성 공간에는 그 나름의 형태가 있다. 한계가 없는 회전 관절은 원처럼 한 바퀴 돌아 이어지므로, 그런 관절이 여러 개인 로봇 암의 C-공간은 평평한 상자가 아니라 토러스와 비슷한 형태이다. 평면에서 움직이는 강체의 구성 공간은 두 병진과 하나의 회전을 결합한다. 이 구조는 거리를 측정하는 방식과 경로를 보간하는 방식에 중요하다.
고차원 C-공간에서는 C-장애물을 명시적으로 계산하는 것이 비현실적이다. 확률적 로드맵(PRM)과 급속 탐색 랜덤 트리(RRT) 같은 샘플링 기반 플래너는 이를 피한다. 구성을 샘플링하고, 순기구학으로 로봇의 형상을 작업 공간에 배치한 다음, 충돌 검사를 실행한다. 최적화 기반 플래너도 작업 공간에서 비용을 평가하면서 C-공간에서 작동한다.
중요한 이유
구성 공간은 모션 계획의 공통 언어이다. 이를 이해하면 작업 공간에서 짧아 보이는 경로가 로봇에게는 왜 길거나 불가능할 수 있는지, 그리고 플래너가 왜 엔드 이펙터 위치가 아니라 관절 값을 샘플링하는지 설명된다.
주요 응용
- 로봇 암과 모바일 매니퓰레이터를 위한 충돌 없는 모션 계획
- PRM과 RRT 같은 샘플링 기반 플래너
- 도달 가능성과 관절 한계 제약 분석
- 점유 면적과 방향을 고려해야 하는 모바일 로봇의 경로 계획
실제 사례
매니퓰레이션 팀이 MoveIt 같은 프레임워크로 로봇 암의 움직임을 계획할 때, 플래너는 로봇 암의 관절 공간에서 작동한다. 관절 벡터를 샘플링하고, 각각을 로봇과 장면의 충돌 모델에 대해 검사하고, 유효한 샘플을 이어 경로를 만든다. 엔지니어는 관절 한계를 설정하고 어떤 관절이 한 바퀴 돌아 이어지는지 정하며, 큰 근위 관절에 적절한 가중치를 주는 거리 척도를 고르고, 얇은 장애물이 샘플 사이에서 건너뛰어지지 않도록 각 경로 구간을 따라 충돌 검사 해상도를 조정한다.
흔한 오해
- 구성 공간은 작업 공간과 같다 — 작업 공간은 엔드 이펙터가 도달할 수 있는 물리적 영역이고, 구성 공간은 관절 값이나 몸체 자세의 공간이다
- 플래너는 C-장애물 전체 집합을 계산한다 — 차원이 몇 개를 넘으면 이는 비현실적이므로, 대부분의 플래너는 대신 샘플링한 구성을 검사한다
- 구성 공간은 항상 관절 범위로 이루어진 평평한 상자이다 — 회전 자유도는 한 바퀴 돌아 이어지므로 휘어진 주기적 구조를 갖게 된다
알아야 할 사람
- 모션 계획 엔지니어
- 기구학과 계획을 배우는 로보틱스 학생
- MoveIt 같은 플래너를 통합하는 소프트웨어 엔지니어
관련 기술
- 모션 계획(Motion Planning)
- 확률적 로드맵(Probabilistic Roadmap, PRM)
- 급속 탐색 랜덤 트리(Rapidly-exploring Random Tree, RRT)
- MoveIt
- 충돌 검사(Collision Checking)
- 순기구학(Forward Kinematics)
관련 용어
관련 프로젝트
- 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
동영상
- Modern Robotics, Chapter 2.3.1: Configuration Space Topology: Northwestern Robotics