← 연구 소개

TMECH 2024 — 운하 환경 자율 항법을 위한 장애물 회피 NMPC

C. Lee, D. Chung, J. Kim, J. Kim, IEEE/ASME Transactions on Mechatronics, 29(3), 1985–1996, June 2024. DOI: 10.1109/TMECH.2023.3312672

한 줄 요약 — 좁은 운하에서 실제 소형 선박이 벽과 부딪히지 않고 자율 주행하도록, LiDAR 점군(point cloud)을 선분(line segment)들로 실시간 파싱해 비선형 MPC의 제약으로 직접 넣는 방법을 제시하고 포항 운하에서 실험으로 검증한 연구.

목차

  1. 왜 운하 항법이 어려운가
  2. 배경: 선박의 동역학 모델
  3. 시스템 동정 (System Identification)
  4. LiDAR 점군 → 선분 변환
  5. NMPC 정식화
  6. 포항 운하 실험 결과
  7. 강의 연결 요약

1. 왜 운하 항법이 어려운가

자율 선박(ASV, Autonomous Surface Vehicle)의 대부분 기존 연구는 열린 해역을 가정합니다. 그러나 실제로 사람이 자주 이용하는 항만, 운하, 수로는 폭이 좁고, 벽이 직선이 아니며, 다른 배가 수시로 나타납니다. 여기서 자율 주행에 필요한 요소는 크게 세 가지입니다:

본 논문은 이 세 요구를 모두 만족시키는 파이프라인을 제시합니다. 배경이 되는 모델링은 L2 운동학과 동역학에서, MPC의 일반적 정식화는 L11 MPC에서 설명했던 내용입니다.

2. 배경 — 선박의 동역학 모델

저속에서 3자유도(surge, sway, yaw) 선박은 Fossen 표준 모델로 기술됩니다:

$$ \dot{\boldsymbol\eta} = R(\psi)\,\boldsymbol\nu, \qquad M\dot{\boldsymbol\nu} + C(\boldsymbol\nu)\boldsymbol\nu + D(\boldsymbol\nu)\boldsymbol\nu = \boldsymbol\tau $$

여기서 $\boldsymbol\eta = [x, y, \psi]^\top$은 지구 고정 좌표의 위치와 방위각, $\boldsymbol\nu = [u, v, r]^\top$은 선체 고정 좌표의 전진·횡·요우 속도, $M$은 관성 행렬, $C$는 코리올리 항, $D$는 유체 저항 항, $\boldsymbol\tau$는 제어 입력(프로펠러 추력과 러더).

이 식이 복잡해 보이지만 핵심은 입력 2개(추력·러더)로 3개 자유도를 제어해야 하는 언더액츄에이티드 구조입니다. 이는 L2에서 다룬 자전거 모델의 해양 버전이라고 봐도 됩니다.

3. 시스템 동정 — 모델을 실험 데이터에서 뽑아내기

위의 이론 모델은 파라미터($M_{ii}$, 감쇠 계수들)가 미지입니다. 저자들은 실제 배에서 다음 두 가지 기동 실험을 수행하고 그 응답으로부터 파라미터를 최적화로 추정했습니다:

추정 절차는 간단히 말해 "실측 궤적과 시뮬레이션 궤적의 오차를 최소화하도록 파라미터를 조율"하는 비선형 최소제곱입니다. 이 단계는 L9 회귀에서 본 경사하강법의 로봇공학 버전입니다.

🎮 인터랙티브: 지그재그 시험 감각 익히기

러더를 ±δ로 주기적으로 뒤집으면 배가 S자로 움직입니다. 실제로는 이 궤적이 $Y_v$, $N_r$ 같은 파라미터 식별의 입력이 됩니다.

4. LiDAR 점군 → 선분 (Line Segment) 변환

운하 벽은 수백~수천 개의 LiDAR 점군으로 들어옵니다. 이를 NMPC에 넣으려면 "회피해야 할 집합"을 간결한 수학적 형태로 표현해야 합니다. 저자들이 선택한 것은 허프 변환(Hough Transform) 기반 선분 추출입니다.

  1. LiDAR 스캔의 점군을 극좌표에서 허프 공간 $(\rho, \theta)$로 투표.
  2. 피크를 잡아 직선 후보 생성.
  3. 각 직선 위에 실제 점군이 모여 있는 구간만 남겨 유한한 선분으로 변환.

그 결과 한 스캔당 수 개에서 수십 개의 선분이 남고, 각 선분은 두 끝점 $(\mathbf{p}_1, \mathbf{p}_2)$만 있으면 됩니다. 이 선분들은 MPC의 볼록 제약(convex constraint)으로 들어가기에 이상적입니다.

🎮 인터랙티브: 점군에서 선분 후보 찾기 (단순화 버전)

실제 허프 변환 대신, 이 데모는 "가장 많은 점을 지나는 직선"을 RANSAC으로 찾아 보여줍니다. 점 분포를 보고 어떤 선이 나오는지 관찰하세요. 버튼을 누를 때마다 다른 점 분포가 만들어집니다.

5. NMPC 정식화

매 샘플 시점에서 풀리는 최적 제어 문제는 다음과 같습니다:

$$ \min_{x(\cdot), u(\cdot)} \sum_{i=0}^{N_p-1} \bigl(\|x_i - x_i^\text{ref}\|_Q^2 + \|u_i\|_R^2\bigr) + \|x_{N_p} - x_{N_p}^\text{ref}\|_{Q_f}^2 $$ $$ \text{s.t.}\quad x_0 = x_\text{init}, \quad x_{i+1} = f_d(x_i, u_i, p), $$ $$ g(u_i) \le 0, \quad h_j(x_i) \ge 0 \text{ (선분 } j\text{ 에 대해)} $$

핵심은 선분 제약 $h_j$입니다. 선분 $j$의 양쪽 점이 $\mathbf{p}_1^{(j)}, \mathbf{p}_2^{(j)}$라면, 선분을 포함하는 직선의 단위 법벡터 $\mathbf{n}_j$와 선분 위의 한 점까지의 부호 있는 거리를 취하면 반평면(half-space) 제약이 만들어집니다:

$$ h_j(x_i) = \mathbf{n}_j^\top (\mathbf{p}_{\text{robot},i} - \mathbf{p}_1^{(j)}) - r_\text{safe} \ge 0 $$

여기서 $r_\text{safe}$는 선박 크기 + 여유. 이 제약이 L8 CBF의 이산 형태이기도 합니다 (선분마다 하나의 $h$).

문제는 볼록 QP가 아닌 비선형 NLP이므로 IPOPT로 풉니다. 자동 미분은 CasADi가 제공합니다. 이 부분은 L11 MPC 섹션 8(코드 예제)에서 다룬 CasADi 패턴 그대로입니다.

6. 포항 운하 실험

실험 플랫폼은 길이 약 3 m의 소형 크루즈 보트였습니다. 주요 결과:

이는 실제 무인 선박이 도시 수로 같은 환경에서 자율 주행하기 위한 파이프라인의 가능성을 보여준 중요한 사례입니다.

7. 강의 연결 요약

논문 파트관련 강의
Fossen 동역학, 언더액츄에이티드L2 동역학
상태공간 표현, 선형화L3 상태공간
시스템 동정 (비선형 최소제곱)L9 회귀 · W3 DL 회귀
경로 추종과 횡오차L7 피드백 제어
NMPC OCP 정식화L11 MPC
선분 제약 = 이산 CBFL8 CBF

📖 원문과 관련 자료