경로를 찾은 뒤 무엇을 개선할지 정한다
장애물을 피하는 경로를 찾았어도 불필요한 우회나 급한 굽힘이 남을 수 있다. 최적화 기반 개선은 경로를 나타내는 변수들을 조금씩 바꾸어 목적함수, 즉 줄이려는 비용을 낮추는 접근이다. 시작과 목표, 관절 제한, 충돌 회피와 필요한 동역학 조건은 비용과 구분해 명시해야 한다. 짧거나 매끄러운 경로라는 이유만으로 충돌이나 실행 불가능을 허용하는 것은 아니다.
경로의 waypoint는 경로를 표현하는 중간 configuration이다. 실제 제어 시각의 표본과 같다고 가정하려면 시간 간격도 정해야 한다. 아래 예는 (0,0)과 (2,0) m를 끝점으로 고정하고 중간 점 (1,y) m의 높이 y 하나만 조정한다. 세 점 사이는 직선으로 연결하며 y≥0인 위쪽 경로를 본다. 로봇 형상은 이미 장애물에 반영된 점 모델이고 실제 로봇의 축이나 제동 성능은 포함하지 않는다.
비용을 정의하고 미분으로 한 번 움직인다
교육용 매끄러움 대용 비용은 두 구간의 높이 변화 제곱합 y²+(−y)²=2y²다. 이는 시간 가속도 비용이 아니라 공간의 굽힘을 줄이려는 단순 대용량이다. 장애물 쪽을 피하도록 중간 높이 h=0.6 m를 선호하는 유한 벌점도 더한다. h는 전체 경로의 실제 최소 거리와 다르며 중간 점의 높이 기준이다. 가중치 8은 무차원이고 J의 단위는 m²다.
그림 M17.05-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
y=0.2 m이면 매끄러움 항은 0.08 m², 벌점은 8×0.4²=1.28 m²여서 J=1.36 m²다. y<h에서 미분하면 J′(y)=4y−16(h−y)이고 단위는 m다. y=0.2에서 J′=−5.6 m다. gradient는 변수를 조금 바꿀 때 비용이 어느 방향으로 증가하는지 나타내므로 그 반대 방향으로 움직인다.
무차원 보폭 α=0.05로 y_new=y−αJ′를 적용하면 0.2−0.05×(−5.6)=0.48 m다. 새 비용은 2×0.48²+8×0.12²=0.576 m²로 낮아진다. 그러나 y_new는 여전히 0.6보다 작다. 유한 벌점은 위반을 비싸게 만들지만 위반을 불가능하게 만드는 제약과는 다르다. 보폭을 0.2로 크게 하면 y_new=1.32 m, J=3.4848 m²로 오히려 나빠진다. 미분 방향을 안다고 아무 크기로 움직여도 좋은 것은 아니다.
CHOMP는 경로 전체의 매끄러운 변형을 고려한다
CHOMP 저자 원논문은 장애물 비용과 매끄러움 비용을 결합하고 공변 gradient로 경로를 개선한다. 공변이라는 표현은 경로 변형의 크기를 어떤 기하적 척도로 재는지와 관련된다. 단순히 각 waypoint의 좌표 성분을 독립적으로 같은 보폭만큼 바꾸는 것과 구별한다. 여기의 metric은 측정 공분산과 같은 말이 아니며 경로 변형의 척도다.
두 waypoint 높이를 묶은 열벡터 ξ를 생각하자. g는 두 높이에 대한 비용 미분을 묶은 gradient이고 α는 보폭이다. metric 행렬 M이 양의 정부호일 때 공변 갱신의 간단한 형태는 ξ_new=ξ−αM⁻¹g로 이해할 수 있다. 양의 정부호는 0이 아닌 변화에 양의 크기 제곱을 주는 조건이며 임의의 특이 행렬을 역으로 쓰지 않는다.
구체적으로 M=[[2,−1],[−1,2]], g=(1,0) m를 교육용 입력으로 주자. M⁻¹=(1/3)[[2,1],[1,2]]이므로 M⁻¹g=(2/3,1/3) m다. α=0.03이면 높이 변화는 (−0.02,−0.01) m다. 같은 입력의 보통 gradient 변화 (−0.03,0) m와 달리 이웃 waypoint도 함께 움직인다. 경로 전체의 부드러운 변형을 고려하는 직관이다. 실제 CHOMP의 고차원 비용·장애물 기하·제약과 행렬 구성을 이 2×2 예로 대체했다고 말하지 않는다.
STOMP는 주변 경로의 비용으로 변형을 고른다
STOMP 원논문은 초기 경로 주변에 잡음을 더한 후보들을 만들고 비용을 이용해 갱신하는 방법을 설명한다. 비용의 해석적 gradient를 요구하지 않아 미분하기 어려운 비용을 사용할 수 있다는 차이가 있다. 그렇다고 비용 함수나 충돌 모델이 없어지는 것은 아니다. 실제 방법은 시간에 걸친 상관을 가진 경로 잡음과 비용 가중·매끄러운 갱신을 사용하며, 각 waypoint를 무관한 난수로 흔들고 가장 짧은 것만 고르는 절차와 같지 않다.
비용 가중의 의미만 보려면 앞의 한 높이 모델에서 후보 y_k=[0.2,0.5,0.8] m를 제공하자. k는 후보 번호이고 비용 J_k는 각각 [1.36,0.58,1.28] m²다. 이 자료는 실제 난수로 생성한 STOMP 실행 결과가 아니다. 교육용 가중 규칙을 w_k=exp(−J_k/λ)를 모든 후보 합으로 나누는 것으로 정하고 λ=0.5 m²를 준다. 지수 안은 무차원이다.
정규화 가중치는 약 [0.1443,0.6865,0.1693]이고 가중 후보 평균은 약 0.507509 m다. 가장 비용이 낮은 y=0.5가 큰 영향을 준다. 이것은 후보 비용이 갱신 방향을 어떻게 바꾸는지 보는 스칼라 예이며 실제 STOMP의 시간별 비용 평가·정규화·매끄러운 갱신 전체를 구현한 것이 아니다. 비용 가중치를 충돌 확률이나 성공 확률로 해석해서도 안 된다. 후보를 섞은 경로 역시 다시 검사해야 한다.
비용 감소와 실제 경로 유효성을 독립 판정한다
실제 합성 장애물을 중심 (1,0) m, 반지름 0.5 m인 닫힌 원으로 별도 제공하자. 경로 (0,0)→(1,y)→(2,0)에서 y=0.48 m일 때 중간 waypoint 자체부터 원 안에 있으므로 무효다. 그런데 비용은 1.36에서 0.576으로 줄었다. 최적화 개선이라는 사실과 충돌 없음이라는 사실이 다른 이유다.
y=0.8 m 경로는 각 구간에서 원 중심까지의 최소 거리가 약 0.624695 m로 반지름보다 커서 유효하다. 하지만 J=1.28 m²로 앞의 무효 후보보다 비용이 높다. 이 목적함수는 전체 구간 충돌을 정확히 표현하지 않은 대용 모델이므로 낮은 비용 순으로 승인하면 안 된다. 모든 waypoint가 원 밖인 경우에도 연결 중간이 원을 스칠 수 있어 전체 구간을 검사해야 한다. 제약과 벌점·대용량의 의미를 섞지 않는다.
실제 장애물 환경의 목적함수는 비선형·비볼록일 수 있어 초기 경로에 따라 다른 국소 해나 실패에 도달한다. 이 스칼라 비용 자체는 그 복잡한 국소 최소들을 재현하지 않는다. Modern Robotics 저자 최적화 설명처럼 다른 계획기가 초기 경로를 주고 최적화가 개선하는 구성을 사용할 수 있다. 다른 초기 경로·보폭·가중과 조건을 비교하되 성공을 보장한다고 일반화하지 않는다.
마지막 승인에는 시작·목표와 관절 제한, 전체 구간 충돌·여유, 시간 배정 뒤 속도·가속도와 제어 입력, 현재 지도·로봇 상태를 확인한다. 정지한 그림의 매끄러움만으로 시간 미분이나 실제 실행이 적절하다고 판정하지 않는다. 기존 3.5 안전한 텔레오퍼레이션 루프와 6.6 평가 설계를 연결해 비용·유효성·실행 근거를 따로 남긴다. 아래 활동은 CHOMP/STOMP나 장비를 실행하지 않는다.