로봇의 배치를 한 점으로 표현한다
Configuration은 로봇의 전체 기하 배치를 결정하는 독립 좌표의 묶음이다. 평면에서 자유롭게 움직이는 단단한 몸체라면 위치 x,y와 방향 θ를 함께 써서 q=(x,y,θ)로 나타낼 수 있다. 위치 단위는 m, 각도는 rad다. 회전 관절 두 개의 팔이라면 q=(q_1,q_2)처럼 관절각 두 개로 배치를 나타낼 수 있다. 이런 가능한 좌표 묶음의 공간을 Configuration Space, 줄여 C-space라고 한다.
작업 공간의 물체 위치나 팔 끝점은 configuration과 다르다. 끝점이 같은 위치에 있어도 팔꿈치가 위로 굽은 배치와 아래로 굽은 배치가 있을 수 있고 링크가 차지하는 공간은 달라진다. 팔 끝점만 장애물 밖에 있다고 전체 팔이 충돌하지 않는다고 할 수 없다. 이동 로봇도 방향에 따라 몸체나 돌출 센서가 장애물에 닿을 수 있다. 무엇을 q에 포함하고 어떤 부품을 충돌 모델에 넣었는지 명시한다.
원형 원판이 평면에서 이동하는 간단한 예에서는 몸체를 회전시켜도 차지하는 공간이 같다. 이 단위의 계산은 방향을 생략하고 중심 q=(x,y)만 사용한다. 실제 차동 구동 로봇의 방향과 이동 제약까지 제거했다는 뜻은 아니다. 이 예는 모든 방향으로 중심을 옮길 수 있는 기하 모델이며 실제 차량의 주행 가능성은 별도로 확인해야 한다.
장애물을 로봇 중심이 들어가면 안 되는 영역으로 바꾼다
Modern Robotics 저자 설명은 실제 장애물과 부딪치는 configuration의 집합을 C-space 장애물로 다룬다. 이를 이용하면 큰 로봇의 이동을 점 하나의 이동 문제로 생각할 수 있다. 다만 장애물의 모양은 로봇 형상과 방향에 따라 달라지며 실제 공간의 지도 그림을 그대로 C-space라고 부르면 안 된다.
그림 M17.01-1. 주황 실체는 반지름 0.3 m 장애물, 연한 원은 0.5 m로 확장한 금지 영역이다. 파란 원판 반지름은 0.2 m다. 로봇 중심을 점으로 검사할 때는 확장 영역을 사용한다. 방향·제동·추정 오차를 포함한 안전 인증은 아니다. 직접 제작.
합성 로봇은 반지름 r=0.2 m인 원판이고 장애물은 중심 c=(1,1) m, 반지름 R=0.3 m인 원이다. 접촉도 충돌로 정한다. 중심 사이 거리 d와 기하 여유 δ를 다음처럼 정의한다. 길이 표기는 두 점의 유클리드 거리다.
두 반지름의 합은 0.5 m다. 따라서 로봇을 점으로 줄이는 대신 장애물 반지름을 0.5 m로 늘리면 같은 충돌 판정을 할 수 있다. 중심 q=(1.6,1) m에서는 d=0.6 m, δ=0.1 m로 이 모델에서 충돌하지 않는다. q=(1.4,1)에서는 d=0.4 m, δ=−0.1 m로 겹친다. q=(1.5,1)은 d=0.5 m로 접촉이므로 이 단위의 규칙에서는 충돌이다.
이 0.1 m 여유는 기하 모델에서의 값이다. 실제 위치 추정 오차, 돌출물, 지도 오차와 이동 중 제동 거리를 모두 포함한 안전 여유라고 해석하지 않는다. 추가 오차를 보수적으로 반영하려면 어떤 가정으로 얼마나 확장했는지 별도로 정해야 한다. 모르는 셀은 장애물이 없다는 증거가 아니며 유효성 미상을 어떻게 처리하는지도 정책으로 기록한다.
끝점이 아니라 이동 구간도 검사한다
시작 S=(0,1), 목표 G=(2,1) m는 장애물 중심에서 각각 1 m 떨어져 있어 유효하다. 그러나 두 점을 직선으로 연결하면 중간 (1,1)이 장애물 중심을 지난다. 끝점 두 개가 충돌하지 않는다고 간선을 승인하면 로봇이 장애물을 관통하는 계획을 만들 수 있다.
경로의 한 구간은 q(s)=(1−s)S+sG, 0≤s≤1처럼 연속된 배치다. s는 시간을 뜻하지 않는 무차원 진행 변수다. 유효한 구간은 이 모든 배치에서 충돌 조건을 피해야 한다. 몇 개의 표본만 검사하면 표본 사이의 작은 장애물을 놓칠 수 있다. 필요한 경우 연속 충돌 검사나 기하적으로 보장된 거리·분할 기준을 사용하며 유한 표본만으로 무조건 보장한다고 쓰지 않는다.
이 예의 우회는 A=(0,0), B=(2,0) m를 거쳐 S→A→B→G로 간다. 세 구간에서 장애물 중심까지의 최소 거리는 각각 1 m, 1 m, 1 m다. 0.5 m 확장 장애물과 겹치지 않으며 길이는 1+2+1=4 m다. 직접 경로 길이는 2 m지만 충돌하므로 더 짧다는 이유로 선택할 수 없다. 이 계산은 제공한 후보의 유효성이지 모든 가능한 경로 중 최단이라는 증명은 아니다.
격자는 공간을 규칙적인 점과 연결로 나눈다
격자 표현에서는 좌표를 일정 간격으로 나누고 각 configuration을 그래프의 점으로 삼는다. 그래프의 점을 node, 두 점 사이에서 허용한 이동을 edge, 즉 간선이라고 부른다. x,y를 각각 0,0.5,1,1.5,2 m로 두면 후보 node는 5×5=25개다. 네 이웃 연결은 위·아래·왼쪽·오른쪽으로 0.5 m씩 이동하는 간선을 허용하는 규칙이다. 대각선까지 허용하는 여덟 이웃과는 경로·길이가 달라질 수 있다.
원판 예에서 점 위치만 검사하면 (1,1)과 상하좌우로 0.5 m 떨어진 네 점은 접촉 또는 겹침으로 제외한다. 대각선 점 (0.5,0.5)은 중심 거리가 √0.5≈0.7071 m여서 유효하다. 하지만 점이 유효하다는 사실을 그 주변 셀 전체가 유효하다는 뜻으로 확대하지 않는다. node 기반 모델과 셀 전체를 보수적으로 막는 모델은 서로 다른 근사다. 간선을 넣기 전에는 연결 구간도 검사한다.
Modern Robotics의 격자 설명은 이산화와 연결 규칙이 계획 결과에 영향을 준다고 설명한다. 거친 격자가 좁은 통로를 표현하지 못할 수 있으므로 격자에서 경로를 못 찾았다는 결과가 연속 공간의 경로 부재 증명은 아니다. 차원이 n이고 각 축에 k개 후보가 있으면 단순 격자는 k^n개가 되어 높은 차원에서 급격히 커진다. 여기서 n은 configuration의 차원이며 장애물 개수가 아니다.
로드맵은 필요한 배치를 선택해 연결한다
로드맵은 자유 공간의 여러 configuration과 그 사이에 검증된 경로를 그래프로 표현한다. 격자는 규칙적 간격을 쓰지만 로드맵의 node는 임의로 선택할 수 있다. 위 S,A,B,G 네 점을 node로 두고 후보 간선을 S-A, A-B, B-G, S-G로 주면 앞 세 개는 유효하고 마지막 직접 간선은 충돌로 제거한다. 결과 그래프에서 S와 G는 A,B를 통해 연결된다.
연결성은 그래프의 간선들을 따라 한 점에서 다른 점으로 갈 수 있는지다. 각각의 node가 자유 공간에 있다는 사실만으로 모두가 연결되는 것은 아니다. 간선 검사 실패, 이웃 후보 선택과 누락된 표본 때문에 그래프가 끊길 수 있다. 자유 공간에 실제 연결이 있어도 근사 로드맵에는 빠져 있을 수 있다. LaValle 저자 교재가 설명하는 C-space는 이런 다양한 기하 문제를 공통 계획 문제로 다루는 기반이다.
마지막으로 기하 경로는 시간 궤적과 다르다. 모서리에서 즉시 방향을 바꾸는 경로가 실제 속도·가속도 제한을 만족하는 것은 아니다. 움직이는 장애물과 위치 추정 갱신도 이 정적 모델에 없다. 기존 3.3 DLS 역기구학으로 configuration 후보와 목표점의 관계를, 3.5 안전한 텔레오퍼레이션 루프으로 명령과 실제 운용의 별도 점검을 연결한다. 아래 활동의 통과는 실제 경로 실행이나 현장 안전 승인이 아니다.