제7부 자율성·군집
7.12 민첩 비행 궤적: 최소 스냅 다항식·안전 비행 통로·시간 최적·실시간 재계획
7.12.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자
7.2은 장애물을 피하는 경로(A·RRT)를 찾고, 7.2.7.1에서 한 구간의 최소 스냅 다항식으로 그 경로에 시간표를 붙이는 첫걸음을 보였다. 이 장은 그 다음을 작성한다. 경유점이 여럿일 때 궤적을 한 번에 푸는 법, 구간마다 시간을 어떻게 나누느냐가 궤적의 모양과 속도를 바꾸는 이유, 그 궤적을 기체가 정말 날 수 있는지 2.15의 평탄성으로 검사하는 법, 장애물 사이에서 궤적을 가두는 법, 그리고 미지의 공간을 빠르게 날면서 다시 계획하는 법이다. 민첩 비행은 여기서 기체의 추력·각속도 한계 근처까지 사용하는 비행을 뜻한다.
배우는 것:
- 다구간 최소 스냅 — 구간 다항식과 연속 조건, 이차계획 정식화와 그 닫힌 해, "제약 없는 최소 스냅은 6차 미분까지 연속인 7차 스플라인"이라는 결과.
- 시간 배분 — 총 시간의 배율은 모양을 바꾸지 않고 비용만 $\alpha^{-7}$로 바꾸지만, 구간 사이의 비율은 모양을 바꾼다.
- 동역학 실현 가능성 반복 — 평탄성으로 로터 추력을 계산하고 시간을 늘리는 반복, 같은 경유점에서 배분만으로 최소 시간이 12 % 달라지는 계산.
- 안전 비행 통로와 거리장 기울기 최적화 — 비볼록한 장애물 회피를 볼록 제약의 묶음으로 바꾸는 법과, 거리장(ESDF)으로 궤적을 이탈시키는 법.
- 시간 최적과 레이싱 수준의 비행 — 매끄러움이 치르는 시간, 진행 변수로 시간을 함께 푸는 방법, 윤곽 추종형 MPC.
- 실시간 재계획 — 이동 구간, 재계획 주기와 감지 거리가 허용하는 속도, 아는 빈 공간 안의 대피 궤적으로 안전을 보장하는 구조.
선수 지식: 계획의 층과 A·RRT는 7.2.2~7.2.5, 한 구간 최소 스냅과 가속도 한계는 7.2.7.1이다. 미분 평탄성과 로터 추력 검사는 2.15.3·2.15.4, 기준 기체는 2.1.5의 2 kg 쿼드다. 필요 탐지 거리와 감지 거리가 허용하는 속도는 7.1.4, 재계획의 시간 버짓은 7.2.4.3에 있다. 지도 표현(점유 격자·옥트리·거리장)의 상세는 7.13, 학습 기반 레이싱은 7.7.6이다. 계획 이론 일반은 자매서 robotics의 제11부(계획)가 맡는다.
특히 중요한 독자: 자율 비행 엔지니어는 전체를 읽는다. 운용·인증 담당자는 7.12.8(재계획과 안전 보장)과 7.12.13을 본다. 사업 담당자는 7.12.4의 표(같은 경로에서 시간이 얼마나 달라지나)와 7.12.11의 비교표만 읽어도 된다.
기준 시점과 정직성. 이 장은 2026년 10월을 기준으로 작성한 기술 장이며 집필에 사용한 지식은 2026년 중반까지다. 수치 예시는 가상의 경유점 코스와 2.1.5의 2 kg 쿼드 기준 모델(로터당 0~9.81 N)로 계산했고, 실제 기체나 경기장의 값이 아니다. 계산은 표준 라이브러리
math만 사용한 파이썬으로 했다(mil-uam/fig-src/7.12-calc.py). 이차계획의 KKT 연립방정식은 가우스 소거를 직접 짜서 풀었고, 평탄성 검사는 2.15의 계산 모듈을 불러 사용했다. 논문이 보고한 수치는(논문 보고), 공개 저장소의 설명은(2차 출처), 확인하지 못한 사실은(확인 필요)로 표시했다.
7.12.2 개념·직관 — 경로에 시간표를 붙이면 동역학이 들어온다
경로는 공간의 선이고, 궤적은 그 선에 시간표를 붙인 것이다. 시간표가 붙는 순간 속도·가속도·저크·스냅이 생기고, 2.15.3.2의 대응표대로 그것들이 추력·기울기·각속도·토크가 된다. 그래서 궤적 생성은 기하의 문제이면서 동역학의 문제다. 경로 계획이 "어디로"를 풀면 궤적 생성은 "어떤 속도로, 기체가 감당할 수 있게"를 푼다.
다항식 궤적이 오래 사용된 이유는 세 가지다. 첫째, 미분이 쉽다. 평탄성 검사에 필요한 4차 미분까지 계수로 바로 나온다. 둘째, 비용이 계수의 이차식이고 경유점·연속 조건이 선형이라 문제 전체가 이차계획이 된다. 셋째, 결과가 매끄럽다. 대가는 그 매끄러움이 시간을 치른다는 점이다(7.2.7.1에서 한 구간 50 m가 뱅뱅보다 37 % 느렸다). 이 장은 그 대가를 줄이는 두 방향(시간 배분 최적화, 시간 최적 정식화)과, 장애물·미지 공간을 다루는 두 방향(통로, 재계획)을 차례로 본다.
세 축의 요구는 다르다. 군용 드론은 FPV·요격 드론처럼 한계 근처에서 빠르게 다시 계획하는 능력이 성능 그 자체다(10.8·11.11). 민간 UAS는 숲·실내·교량 아래처럼 지도가 없는 좁은 곳을 안전하게 지나는 능력이 점검·수색·배송의 범위를 넓힌다(14.4·14.7·14.11). AAM은 승인된 비행 절차와 회랑을 따르므로 민첩 궤적의 여지가 작다. 대신 같은 수학이 회랑 안의 매끄러운 궤적과 비상 시 대체 착륙지까지의 실현 가능한 궤적에 사용된다(15.12·2.6.7).
7.12.3 다구간 최소 스냅 — 정식화와 닫힌 해
7.12.3.1 구간 다항식과 연속 조건
경유점 $W_0,\dots,W_n$ 사이의 구간 $i$마다 축별 7차 다항식을 둔다. $\tau$는 구간 안의 시간, $T_i$는 구간 시간이다.
$$p_i(\tau)=\sum_{k=0}^{7}c_{i,k}\,\tau^{k},\qquad 0\le\tau\le T_i,\qquad J=\sum_{i=1}^{n}\int_0^{T_i}\bigl(p_i^{(4)}(\tau)\bigr)^2\,d\tau$$
비용 $J$는 스냅 제곱의 적분이다. 7차인 이유가 있다. 스냅 제곱을 최소화하는 함수는 오일러-라그랑주 조건에서 8차 미분이 0이어야 하므로 구간마다 7차 다항식이 된다. 조건은 다음과 같다(축 하나, 구간 $n$개).
| 조건 | 개수 | $n=5$일 때 |
|---|---|---|
| 각 구간 양 끝의 위치 = 경유점 | $2n$ | 10 |
| 출발·도착의 속도·가속도·저크 = 0 | 6 | 6 |
| 내부 경유점에서 속도·가속도·저크 연속 | $3(n-1)$ | 12 |
| 조건 합계 | $5n+3$ | 28 |
| 미지 계수 | $8n$ | 40 |
| 남는 자유도(내부 경유점의 속도·가속도·저크) | $3(n-1)$ | 12 |
남는 12개 자유도를 비용이 가장 작아지게 정하는 것이 최적화다. 경유점을 지나는 속도·가속도·저크를 사람이 정하지 않고 비용이 정하게 한다는 뜻이다.
7.12.3.2 이차계획과 닫힌 해
결론부터: 부등식 제약이 없으면 다구간 최소 스냅은 연립일차방정식 한 번으로 풀린다. 비용은 계수 벡터 $\mathbf c$의 이차식이고 조건은 선형이다.
$$J=\mathbf c^{\mathsf T}Q(\mathbf T)\,\mathbf c,\qquad Q_{kl}^{(i)}=\frac{k!\,l!}{(k-4)!\,(l-4)!}\,\frac{T_i^{\,k+l-7}}{k+l-7}\quad(k,l\ge4),\qquad A(\mathbf T)\,\mathbf c=\mathbf b$$
등식 제약만 있는 이차계획의 최적 조건(KKT)은 선형이다.
$$\begin{bmatrix}2Q&A^{\mathsf T}\\ A&0\end{bmatrix}\begin{bmatrix}\mathbf c\\ \boldsymbol\lambda\end{bmatrix}=\begin{bmatrix}\mathbf 0\\ \mathbf b\end{bmatrix}$$
구간 5개면 축마다 68×68 행렬이다. 이 장은 부분 피벗 가우스 소거를 직접 짜서 풀었다. Richter·Bry·Roy(ISRR 2013, Springer 2016)는 미지수를 계수 대신 경유점의 미분값 $\mathbf d$로 바꿨다. 계수는 $\mathbf d$의 선형 사상이므로 비용이 $\mathbf d$의 이차식이 되고, 정해진 값 $\mathbf d_F$(위치, 양 끝의 미분)와 자유로운 값 $\mathbf d_P$(내부 경유점의 속도·가속도·저크)로 나누면 최적의 자유 변수가 바로 나온다.
$$J=\begin{bmatrix}\mathbf d_F\\ \mathbf d_P\end{bmatrix}^{\mathsf T}\begin{bmatrix}R_{FF}&R_{FP}\\ R_{PF}&R_{PP}\end{bmatrix}\begin{bmatrix}\mathbf d_F\\ \mathbf d_P\end{bmatrix}\quad\Rightarrow\quad \mathbf d_P^{*}=-R_{PP}^{-1}R_{FP}^{\mathsf T}\,\mathbf d_F$$
제약이 없는 이차식이라 차수가 높아도 수치적으로 안정하다는 것이 그 방식의 장점이다. 두 방식의 답은 같다.
계산에서 확인한 성질이 하나 있다. 연속 조건은 저크(3차)까지만 걸었는데, 풀어 낸 궤적은 경유점에서 4·5·6차 미분까지 연속이었다(좌우 차가 상대 $10^{-12}$ 이하). 6차까지 연속 조건을 직접 걸어 풀어도 비용이 소수점 여섯째 자리까지 같았다(170.535259). 변분법의 자연 경계 조건이 그대로 나타난 것이다. 그래서 제약 없는 최소 스냅의 해는 경유점에서 6차 미분까지 연속인 7차 스플라인이다. 스냅의 미분까지 매끄러우므로 2.15.3.3이 말한 모터 지연 보상(5차 미분)도 연속이다.
7.12.3.3 시간 배분이 결과를 좌우하는 이유
구간 시간 $\mathbf T$를 정하지 않으면 위 문제는 풀리지 않는다. 시간은 두 가지로 작용한다.
① 총 시간의 배율은 모양을 바꾸지 않는다. 모든 구간 시간을 $\alpha$배 하면 같은 곡선을 $\alpha$배 천천히 지나는 것이다. $k$차 미분은 $\alpha^{-k}$배가 되고 비용은 다음과 같다.
$$J(\alpha\mathbf T)=\alpha^{-7}J(\mathbf T)$$
계산으로도 총 시간 15 s의 비용이 30 s의 128배($2^7$)였다. 가속도가 $\alpha^{-2}$, 스냅이 $\alpha^{-4}$로 변하므로, 시간을 조금만 줄여도 추력과 토크 요구가 가파르게 는다.
② 구간 사이의 비율은 모양을 바꾼다. 짧은 구간에 시간을 많이 주면 기체가 그 구간에서 천천히 가야 하므로 앞뒤 구간과 이어지려고 크게 부푼다. 그래서 비율을 정하는 방법이 품질을 좌우한다. 흔한 방법은 셋이다. 균등 배분, 거리 비례 배분, 그리고 총 시간을 고정한 채 비율을 바꿔 비용을 줄이는 경사 하강(Mellinger·Kumar 2011이 사용한 방식)이다. 실무 계획기는 대개 $J+k_T\sum_iT_i$처럼 시간에 벌점을 두고 둘을 함께 줄인다.
경유점 6개(구간 5개, 직선 길이 10.0·6.3·8.9·6.3·10.2 m, 합 41.8 m)의 수평 코스에 세 배분을 적용했다. 고도와 요는 고정이다.
| 배분(총 15 s) | 구간 시간 [s] | 스냅 비용 $J$ [m²/s⁷] | 직선에서 최대 이탈 |
|---|---|---|---|
| 균등 | 3.00·3.00·3.00·3.00·3.00 | 360.3 | 4.1 m |
| 거리 비례 | 3.59·2.27·3.21·2.27·3.66 | 170.5 | 1.9 m |
| 스냅 최소화 | 4.03·2.67·1.64·2.35·4.30 | 54.9 | 3.1 m |
스냅만 최소화하면 비용이 균등의 15 %로 준다. 그러나 직선에서는 더 멀리 벗어난다. 짧은 구간(W1→W2, W3→W4)에서 모서리를 크게 돌아 비용을 줄이기 때문이다. 비용이 가장 작은 궤적이 장애물 옆에서 가장 안전한 궤적은 아니다. 이 긴장을 7.12.5의 통로 제약이 푼다.
7.12.4 동역학 실현 가능성 — 평탄성 검사와 시간 늘리기
결론부터: 궤적이 정해지면 2.15의 평탄 사상으로 각 순간의 로터 추력을 계산하고, 한계를 넘으면 총 시간을 늘려 다시 검사한다. 배율이 모양을 바꾸지 않으므로(7.12.3.3 ①) 다시 풀 필요도 없다. 시간만 다시 매기면 된다. 반복은 다음과 같다.
- 구간 비율을 정하고 이차계획을 푼다.
- 궤적을 촘촘히 표본화해 평탄 사상(2.15.3)으로 추력·각속도·토크·로터 추력을 구한다.
- 로터 추력이 0~9.81 N을 벗어나거나 각속도가 측정 범위를 넘으면 총 시간을 늘리고, 여유가 크면 줄인다(이분법).
- 처음 한계에 닿는 총 시간이 그 배분의 최소 실현 가능 시간이다.
| 배분 | 최소 실현 가능 총 시간 | 그때 최대 속도 | 최대 가속도 | 최대 기울기 | 최대 롤·피치 각속도 | 최대 총추력 |
|---|---|---|---|---|---|---|
| 균등 | 8.34 s | 11.4 m/s | 16.8 m/s² | 59.8° | 3.39 rad/s | 39.0 N |
| 거리 비례 | 7.75 s | 9.6 m/s | 15.2 m/s² | 57.2° | 2.83 rad/s | 36.2 N |
| 스냅 최소화 | 7.38 s | 11.7 m/s | 16.1 m/s² | 58.6° | 2.73 rad/s | 37.7 N |
세 경우 모두 묶이는 제약은 가장 큰 로터 추력이다. 가장 작은 로터 추력은 4.3~4.4 N으로 여유가 크다. 스냅 최소화 배분(7.38 s)의 속도는 경유점에서 0·9.6·9.3·10.6·7.4·0 m/s이고, 구간별 최대 가속도는 9.6·16.1·11.4·15.5·10.8 m/s²다. 짧고 꺾인 구간(W1→W2, W3→W4)에서 가속도가 한계 근처까지 간다. 실제 비행 길이는 46.9 m라서 평균 속도는 6.4 m/s다.
읽을 것은 둘이다. 첫째, 같은 경유점에서 배분만 바꿔도 최소 시간이 8.34 s에서 7.38 s로 12 % 준다. 매끄러운 배분이 순간 요구를 고르게 펴서 같은 한계 안에서 더 빨리 갈 수 있기 때문이다. 둘째, 최소 실현 가능 시간은 제어 여유가 없는 값이다. 2.15.6에서 앞먹임 없는 추종기는 실현 가능한 궤적에서도 할당 포화에 자주 걸렸다. 실제 계획은 로터 상한을 80~90 %로 낮춰 검사하는 식으로 추종기와 외란 몫을 남긴다 (경험 범위).
7.12.5 안전 비행 통로 — 장애물 회피를 볼록 제약으로
장애물 회피는 비볼록 문제다. 장애물의 왼쪽으로 갈지 오른쪽으로 갈지가 이산적 선택이라 이차계획 하나로 풀리지 않는다. 안전 비행 통로(safe flight corridor)는 이 선택을 앞단 경로 계획에 맡기고, 그 경로 둘레의 빈 공간을 볼록 다면체 여러 개로 피복한다. 그러면 궤적 구간 $i$가 다면체 $i$ 안에 있어야 한다는 조건은 선형 부등식이 된다.
$$A_i\,\mathbf p_i(\tau)\le\mathbf b_i\qquad\text{모든 }\tau\in[0,T_i]$$
구간 경계점은 이웃한 두 다면체의 중첩 영역 안에 있어야 한다. Liu 외(IEEE RA-L 2(3), 2017)는 격자 탐색으로 경로를 찾고, 그 둘레에 볼록 통로를 만들어, 통로 안에서 동역학적으로 실현 가능한 궤적을 이차계획으로 푸는 구조를 보였다. 볼록 영역을 크게 부풀리는 알고리즘(IRIS 계열 등)이 통로 생성에 사용된다.
"모든 $\tau$에서"는 무한히 많은 제약이다. 실무 해법은 셋이다. ① 구간 안의 점 몇 개에서만 검사한다(빠르지만 사이에서 벗어날 수 있다). ② 다항식을 베지어 곡선의 제어점으로 표현해 제어점이 다면체 안이면 곡선 전체가 안이라는 볼록 껍질 성질을 사용한다(충분 조건이라 보수적이다). ③ 벗어난 구간에 경유점을 더 넣고 다시 푼다(Richter 외가 사용한 반복 방식). Wang 외의 MINCO·GCOPTER(IEEE T-RO 38(5), 2022)는 통로 제약과 동역학 제약을 변수 변환과 벌점으로 바꿔 제약 없는 최적화로 풀고 시간 배분도 함께 최적화한다 (논문 보고).
③을 이 장의 코스에 적용했다. 직선 구간마다 반폭 $w$의 띠를 통로로 보고(장애물에서 만든 통로를 단순화한 것), 벗어난 구간의 가운데에 경유점을 넣었다. 배분은 거리 비례다.
| 통로 반폭 | 삽입 반복 | 구간 수 | 직선에서 최대 이탈 | 최소 실현 가능 총 시간 |
|---|---|---|---|---|
| 제약 없음 | — | 5 | 1.89 m | 7.75 s |
| 1.0 m | 1회 | 7 | 0.98 m | 8.27 s(+7 %) |
| 0.5 m | 2회 | 12 | 0.44 m | 9.93 s(+28 %) |
통로가 좁을수록 궤적은 꺾인 선을 닮아 가고 시간이 늘어난다. 반폭 0.5 m는 모서리마다 거의 멈췄다 가는 궤적이다. 좁은 통로에서 빠르게 날려면 통로를 넓게 만드는(볼록 영역을 최대로 부풀리는) 앞단과, 시간 배분을 통로와 함께 푸는 뒷단이 모두 필요하다.
7.12.6 거리장 기반 기울기 최적화
통로 대신 거리장을 사용하는 갈래가 있다. 거리장(ESDF, Euclidean signed distance field)은 공간의 각 점에서 가장 가까운 장애물까지의 부호 있는 거리 $d(\mathbf p)$를 포함하고, 그 기울기 $\nabla d$는 장애물에서 멀어지는 방향을 준다(7.1.6.1). 궤적을 B-스플라인의 제어점 같은 변수로 두고 다음 비용을 경사법으로 줄인다.
$$J=\lambda_s J_{\mathrm{smooth}}+\lambda_c\sum_k\max\bigl(0,\ d_{\mathrm{safe}}-d(\mathbf p(t_k))\bigr)^2+\lambda_d J_{\mathrm{dyn}}$$
둘째 항이 장애물에 가까운 점을 $\nabla d$ 방향으로 이동시키고, 셋째 항이 속도·가속도 한계를 넘는 몫에 벌점을 준다. 로봇 팔의 CHOMP(Ratliff 외, ICRA 2009)에서 시작해 멀티콥터의 Fast-Planner(Zhou 외, IEEE RA-L, 2019) 같은 국소 계획기로 이어졌다.
| 방식 | 장점 | 약점 | 지도에 요구하는 것 |
|---|---|---|---|
| 통로 + 이차계획 | 통로 안에서 해가 있으면 찾는다. 제약을 정확히 만족한다 | 통로 생성이 앞단에 달렸고 좁은 통로에서 느려진다 | 점유 격자·점군에서 볼록 영역 생성 |
| 거리장 기울기 | 장애물 사이를 유연하게 비집고 간다 | 국소 최소에 빠지고, 벌점이라 제약이 정확하지 않다 | 거리장 유지(갱신 비용이 크다) |
| 거리장 없는 기울기 | 거리장 유지 비용이 없다 | 같은 국소성, 안내 경로에 기댄다 | 점유 격자와 충돌 없는 안내 경로 |
거리장의 유지 비용이 실시간 국소 계획의 병목이 되곤 한다. EGO-Planner(Zhou 외, IEEE RA-L, 2021)는 거리장을 만들지 않고, 궤적이 장애물을 지나는 구간에서만 충돌 없는 안내 경로와 비교해 이격시키는 방향을 정해 연산을 한 자릿수 넘게 줄였다고 보고했다 (논문 보고). 공개 저장소는 계획 한 번에 약 1 ms라고 적고 있다 (2차 출처). 어떤 지도 표현이 어느 해상도에서 얼마의 메모리와 갱신 시간을 소비하는지는 7.13이 다룬다. 여러 기체가 서로의 궤적을 피하는 문제는 7.9.6으로 넘긴다.
7.12.7 시간 최적 궤적과 레이싱 수준의 민첩 비행
매끄러움은 시간을 치른다. 그 크기를 이 장의 코스에서 쟀다. 스냅 최소화 궤적의 모양(길이 46.9 m)을 그대로 두고, 점질량이 가속도 크기 한계 안에서 그 길을 가장 빨리 지나는 속도 프로파일을 계산했다(곡률에서 나오는 속도 상한에 전진·후진 적분을 거는 표준 방법). 가속도 한계는 총추력 한계에서 나온다. 고도를 유지하려면 $\sqrt{(T_{\max}/m)^2-g^2}=\sqrt{19.62^2-9.81^2}=16.99$ m/s²다.
| 같은 모양을 지나는 방식 | 총 시간 | 비고 |
|---|---|---|
| 최소 스냅, 평탄성 검사로 최소화 | 7.38 s | 로터 상한에서 묶임 |
| 점질량 시간 최적(가속도 16.99 m/s²) | 5.30 s | 최고 속도 16.6 m/s, 회전 동역학 무시 |
| 점질량 시간 최적(가속도 80 %) | 5.93 s | 여유를 남긴 경우 |
같은 모양에서도 최소 스냅은 시간 최적보다 39 % 느리다. 점질량 값은 회전 동역학과 로터별 한계를 무시한 하한이고, 진짜 시간 최적은 모양까지 바꾼다(경주로의 "레이싱 라인"). 다항식이 한계를 다 사용하지 못하는 이유는 매끄러움 때문이다. 시간 최적 궤적은 가속도가 한계에 붙어 있다가 갑자기 바뀌는 뱅뱅 꼴에 가깝다.
시간 최적을 직접 푸는 데는 난점이 있다. 경유점을 언제 지날지가 미지수라는 점이다. Foehn·Romero·Scaramuzza(Science Robotics 6(56), 2021)는 진행 변수와 상보 제약으로 "경유점 근처를 지났는가"를 표현해 시간과 궤적을 함께 최적화했고, 로터별 추력 한계를 사용하는 전체 쿼드로터 모형으로 풀었다. 모션 캡처 경기장의 실제 비행에서 전문 조종사보다 빨랐다고 보고했다 (논문 보고). 계산은 실시간이 아니라 사전 계산이다 (계산 시간은 확인 필요).
실시간 쪽에서는 윤곽 추종형 MPC(MPCC, model predictive contouring control)가 사용된다. 시간표를 따라가는 대신 경로 위의 진행량 $\theta$를 상태로 두고, 경로에서 벗어난 정도와 진행 속도를 맞바꾼다.
$$\min\ \sum_{k}\Bigl(q_c\,\lVert\mathbf e_c(\theta_k)\rVert^2+q_l\,e_l(\theta_k)^2-\mu\,v_{\theta,k}\Bigr)$$
$\mathbf e_c$는 경로에 수직인 윤곽 오차, $e_l$은 경로 방향의 지연 오차, $v_\theta$는 진행 속도다. 마지막 항이 "더 빨리 가라"를 뜻한다. 기준 경로가 실현 불가능해도 되므로 단순한 모형으로 만든 경로를 넣을 수 있다. Romero 외(arXiv:2108.13205)는 전체 쿼드로터 동역학과 로터별 추력 한계를 넣은 MPCC로 최대 60 km/h·5 g 넘는 비행과 세계 정상급 조종사보다 빠른 기록을 보고했다 (논문 보고, 게재지 확인 필요). 같은 과제에서 학습 정책이 최적 제어를 앞선 사례와 그 이유(목적 함수의 차이)는 7.7.6에 있다.
7.12.8 실시간 재계획 — 이동 구간과 멈출 수 있는 궤적
미지의 공간을 나는 기체는 지도를 다 알기 전에 움직여야 한다. 그래서 계획은 이동 구간(receding horizon) 방식으로 돈다. 감지 범위 안의 짧은 궤적을 풀고, 그 앞부분만 실행하고, 다음 주기 $T_r$에 새 관측으로 다시 푼다. 실행 중인 앞부분은 확정 구간이라 바꿀 수 없다. 새 계획이 나오기까지 기체는 옛 계획을 날기 때문이다.
안전의 핵심은 "언제든 멈출 수 있는가"다. 미지 공간을 비어 있다고 보고 계획하면(낙관적 계획) 빠르지만, 다음 관측에서 벽이 나타나면 멈출 거리가 모자랄 수 있다. 그래서 공격적 궤적과 함께 아는 빈 공간 안에서 정지하는 대피 궤적을 늘 하나 확보해 두는 구조가 사용된다. FASTER(Tordesillas 외, IEEE T-RO 38(2), 2022)가 대표적이다. 매 재계획 주기의 시작에 아는 빈 공간 안의 안전한 대피 궤적이 있도록 보장하고, 미지 공간을 사용하는 빠른 궤적은 그 위에서만 실행한다. 어수선한 미지 공간에서 최대 7.8 m/s의 비행을 보고했다 (논문 보고).
이 구조가 허용하는 속도를 어림했다. 새 장애물이 보이고 나서 그것을 반영한 계획이 실행되기까지 최악으로 감지 지연 $t_d$와 재계획 주기 $T_r$이 걸리고, 그다음 감속 $a$로 멈춰야 한다. 아는 빈 거리 $R$ 안에서 여유 $d_m$을 남기는 조건은 7.1.4.3의 식에 $T_r$을 더한 꼴이다.
$$v\,(t_d+T_r)+\frac{v^2}{2a}+d_m\le R\quad\Rightarrow\quad v_{\max}=a\Bigl(-(t_d+T_r)+\sqrt{(t_d+T_r)^2+2(R-d_m)/a}\Bigr)$$
탑재 깊이 카메라·LiDAR로 빠르게 반응하는 기체를 가정해 $t_d=0.1$ s, $a=10$ m/s²(기울기 약 46°), $d_m=0.5$ m로 두었다(7.1.4의 0.8 s·4 m/s²보다 공격적인 가정이다).
| 아는 빈 거리 $R$ | $T_r=0.01$ s | 0.1 s | 0.5 s | 1.0 s |
|---|---|---|---|---|
| 5 m | 8.5 m/s | 7.7 m/s | 5.2 m/s | 3.5 m/s |
| 10 m | 12.7 m/s | 11.9 m/s | 9.0 m/s | 6.6 m/s |
| 20 m | 18.7 m/s | 17.9 m/s | 14.6 m/s | 11.6 m/s |
| 10 m, 감속 4 m/s² | 8.3 m/s | 8.0 m/s | 6.6 m/s | 5.4 m/s |
재계획 주기가 1 s에서 0.1 s로 짧아지면 같은 센서로 허용 속도가 1.5~2.2배 는다. 계획기를 밀리초 단위로 빠르게 만드는 연구(거리장 없는 계획기 등)가 이 표의 왼쪽 열을 향한다. 동시에 감지 거리가 상한을 정한다. 10 m를 보는 기체는 재계획을 아무리 빨리 해도 이 가정에서 13 m/s를 넘기 어렵다. 숲·실내처럼 시야가 가려지는 곳에서 아는 빈 거리는 센서 범위보다 훨씬 짧다.
계획이 실패할 때의 동작도 설계의 일부다. 주기 안에 해를 못 찾으면 직전의 대피 궤적을 실행하고, 그것도 위태로우면 정지·상승 같은 단순 반응으로 넘긴다. 이 넘김을 독립 감시기가 맡는 구조가 런타임 보증(7.8)이고, 지오펜스와 비상 착륙의 논리는 2.6이다.
7.12.9 운동 기본형과 고정익·하이브리드 VTOL의 궤적
다항식 궤적을 최적화하는 대신 짧은 궤적 조각을 많이 만들어 고르는 방식도 있다. 최소 저크 운동 기본형(motion primitive)은 시작 상태와 목표 상태만 주면 닫힌 꼴로 나오고 실현 가능성 검사도 빠르다. 그래서 초당 수많은 후보를 만들어 장애물과 교차하지 않는 것 가운데 비용이 가장 작은 것을 고르는 국소 계획에 사용된다(Mueller·Hehn·D'Andrea, IEEE T-RO 31(6), 2015). 최적성은 후보 집합의 질에 달렸지만 계산 시간이 예측 가능하다는 장점이 있다.
고정익은 사정이 다르다. 멈출 수 없고, 휘는 정도가 경사각으로 정해진다. 협조 선회에서 곡률 $\kappa=1/r$인 길을 속도 $V$로 따르려면 경사각이 $\tan\phi=V^2\kappa/g$여야 한다. 최소 선회 반경만 만족하는 최단 경로는 원호와 직선으로 된 Dubins 경로(Dubins, 1957)다. 그런데 직선에서 원호로 넘어가는 순간 곡률이 계단처럼 뛰므로 경사각도 순간적으로 바뀌어야 한다. 롤 각속도가 유한하므로 그 사이를 곡률이 서서히 변하는 완화 구간(클로소이드 등)으로 메운다. 롤 각속도 45°/s를 가정한 계산이다.
| 속도·반경 | 필요 경사각 | 경사각까지 걸리는 시간 | 그동안 나는 거리 |
|---|---|---|---|
| 15 m/s, 100 m | 12.9° | 0.29 s | 4.3 m |
| 15 m/s, 50 m | 24.6° | 0.55 s | 8.2 m |
| 20 m/s, 100 m | 22.2° | 0.49 s | 9.9 m |
| 20 m/s, 50 m | 39.2° | 0.87 s | 17.4 m |
멀티콥터의 "가속도는 기울기, 저크는 각속도"(2.15.3.2)가 고정익에서는 곡률은 경사각, 곡률 변화율은 롤 각속도가 된다. 경로 추종은 7.2.7.2의 L1 유도가 맡는다. 결합형 하이브리드 VTOL은 천이 구간에서 속도 일정이 곧 궤적의 일부이고(2.3.5), 날개가 무게를 받기 전의 속도대에서는 회전익의 궤적 규칙을, 그 뒤로는 고정익의 규칙을 따른다. 평탄성이 고정익에서 가정 아래에서만 성립한다는 점(2.15.9)이 고정익 궤적 생성을 멀티콥터보다 어렵게 만든다.
7.12.10 설계 트레이드오프 — 어떤 계획 구조를 사용하는가
선택지는 셋이다.
① 앞단 경로 + 통로 + 다항식 이차계획. 근거는 해가 있을 때 찾는다는 성질과 제약을 정확히 만족하는 점이다. 시간 배분과 평탄성 검사를 붙이면 실현 가능성도 입증된다(7.12.4). 이해관계자는 지도가 있는 실내·점검 비행, 승인된 구역 안의 민간 운용이다. 한계는 좁은 통로에서의 시간 손실(7.12.5의 +28 %)과 통로 생성 비용이다.
② 거리장 또는 거리장 없는 기울기 국소 계획기. 근거는 밀리초 단위의 재계획과 유연한 회피다(7.12.8의 표에서 왼쪽 열). 숲·건물 사이를 빠르게 지나는 연구 기체와 군집 실험에 사용된다. 한계는 국소 최소와 벌점 방식의 부정확성이라 대피 궤적과 독립 감시가 따로 필요하다.
③ 시간 최적 계획 + 윤곽 추종 MPC. 근거는 기체 한계를 끝까지 사용하는 성능이다(7.12.7의 39 %). 경주와 한계 기동이 이해관계자다. 한계는 연산, 사전 지도·경기장 의존, 그리고 여유를 남기지 않는 궤적이 외란 앞에서 무엇을 하느냐다.
견해: 민간 UAS의 자율 비행에는 ②를 빠른 바깥 고리로, ①의 실현 가능성 검사와 대피 궤적을 안쪽 보증으로 중첩하는 구조가 현실적이라고 본다. 근거는 둘이다. 첫째, 미지 공간에서 안전을 정하는 것은 궤적의 최적성이 아니라 재계획 주기와 대피 궤적의 존재다(7.12.8). 둘째, 평탄성 검사는 몇 밀리초면 끝나므로 어떤 계획기 위에도 적용할 수 있다. 반대 입장도 있다. 학습 정책이나 시간 최적 MPC가 인지에서 명령까지를 한 번에 풀어 지연을 줄이는 편이 결국 안전에도 낫다는 주장이다(7.7.7). 이 비교는 같은 조건의 공개 시험이 부족해 결론을 내기 어렵다.
7.12.11 세 축 비교
| 항목 | 군용 드론 | 민간 UAS | AAM |
|---|---|---|---|
| 민첩 궤적의 용도 | 한계 기동, 빠른 재계획(10.8·11.11) | 숲·실내·교량 아래 점검·수색, 배송 마지막 구간 | 회랑 안의 매끄러운 궤적, 비상 착륙 궤적 |
| 지도 | 사전 지도가 없거나 바뀐다 | 일부 사전 지도 + 탑재 지도(7.13) | 사전 조사된 회랑과 장애물 자료(15.12) |
| 시간 배분·평탄성 검사 | 성능 한계 탐색 | 실현 가능성 + 여유 확보 | 승차감 한계(가속도·저크) 검사 |
| 통로·회피 | 자율 회피가 기본 | 운용 구역 안의 회피, 지오펜스(2.6) | 회랑 이탈 금지, 회피는 관제·DAA와 함께(2.14) |
| 재계획 주기 | 밀리초~수십 밀리초 | 수십 밀리초~초 | 초 단위, 사람·관제 승인 포함 |
| 보증의 초점 | 임무 성공과 생존성 | 운용 위험 기반 승인(17.17) | 결정적 동작과 형식증명(8.8) |
7.12.12 관련 규격·프로토콜
| 문서 | 발행 | 무엇을 정하나 | 상세 |
|---|---|---|---|
| MAVLink 공통 메시지(SET_POSITION_TARGET_LOCAL_NED) | MAVLink | 임무 컴퓨터가 위치·속도·가속도 목표를 비행 제어기에 보낸다. 궤적 계획기 출력의 통로 | 9.5 |
| MAVLink 궤적 표현 메시지(경유점·베지어) | MAVLink | 궤적을 경유점이나 베지어 곡선으로 주고받는 메시지(TRAJECTORY_REPRESENTATION_WAYPOINTS·BEZIER). 두 메시지 모두 common.xml에서 2025-03에 대체 없이 폐기로 표시되었고 현행 오토파일럿은 사용하지 않는다고 적혀 있다(9.5) | 9.5 |
| ROS 2 메시지(경로·궤적 형식) | Open Robotics | 계획기와 제어기 사이의 경로·궤적 자료 형식 | 9.6 |
| ASTM F3442/F3442M | ASTM | 소형 UAS 탐지·회피 시스템의 성능 요건(회피 기동 포함) | 9.13 |
| ASTM F3269-21 | ASTM | 복잡한 기능(최적화·학습 계획기)을 런타임 보증으로 감싸는 구조 | 7.8 |
| EUROCAE ED-269 | EUROCAE | 지오존 데이터 형식. 계획기가 피해야 할 구역을 읽어 들인다 | 9.14 |
| RTCA DO-178C | RTCA | 계획 소프트웨어를 안전 필수 경로에 둘 때의 개발 보증 | 8.8 |
궤적 생성 알고리즘 자체를 정하는 표준은 없다. 규격이 정하는 것은 궤적을 주고받는 형식과, 계획기를 감싸는 보증·회피 성능의 틀이다.
7.12.13 관련 규제·인증 요구와의 연결
- 운용 구역 안에 머무는 것은 계획의 하드 제약이다. 위험 기반 승인의 격납(containment) 요구는 계획된 궤적과 그 추종 오차가 승인된 운용 부피 안에 있을 것을 요구한다(17.17). 지오펜스 완충 폭(2.6.4.2)은 이 장의 최대 이탈·추종 오차와 함께 정해야 한다.
- 비가시권 자율 회피. 사람이 개입하지 않는 회피에는 탐지·회피 성능 요건과 시험이 걸린다(2.14·9.13·14.15).
- 결정성과 보증. 비행 중 다시 푸는 최적화는 같은 입력에 같은 출력을 내는지, 마감 안에 끝나는지를 입증해야 한다. 그렇지 못하면 런타임 보증으로 감싼다(7.8·8.8).
- 사람 위 운용. 사람 위나 군중 근처에서 민첩 궤적은 충돌 에너지와 고장 시 낙하 범위를 키운다(14.18·1.30).
- 기록. 계획된 궤적·실제 궤적·재계획 사유를 남겨야 사고 조사에서 "왜 그 길로 갔는가"를 답할 수 있다(8.23).
- 경주와 행사. 드론 레이싱 대회의 안전 구역과 관중 보호는 14.14에서 다룬다.
7.12.14 함정과 한계
| 오해 | 실제 | 더 볼 곳 |
|---|---|---|
| "최소 스냅 궤적은 경유점 사이를 직선에 가깝게 지난다" | 균등 배분에서 4.1 m, 스냅 최소화 배분에서 3.1 m 벗어났다 | 7.12.3.3 |
| "시간을 같은 배율로 줄이면 모양이 바뀐다" | 모양은 같고 비용만 $\alpha^{-7}$배다. 모양을 바꾸는 것은 구간 사이의 비율이다 | 7.12.3.3 |
| "총추력이 남으면 더 빨리 갈 수 있다" | 묶이는 것은 로터 하나의 추력이었다. 그때 총추력은 한계의 92~99 % | 7.12.4 |
| "실현 가능한 최소 시간으로 비행 계획을 짠다" | 여유가 0이다. 추종기와 외란 몫으로 로터 상한을 80~90 %로 낮춰 검사한다 | 7.12.4 |
| "통로를 좁히면 더 안전하다" | 반폭 0.5 m에서 시간이 28 % 늘고 모서리마다 거의 멈춘다 | 7.12.5 |
| "거리장 기울기 최적화는 장애물을 반드시 피한다" | 벌점 방식이라 국소 최소와 제약 위반이 가능하다. 사후 검사가 필요하다 | 7.12.6 |
| "최소 스냅이면 충분히 빠르다" | 같은 모양에서도 점질량 시간 최적보다 39 % 느리다 | 7.12.7 |
| "재계획을 빨리 하면 얼마든지 빨리 날 수 있다" | 감지 거리가 상한을 정한다. 10 m를 보면 이 가정에서 약 13 m/s | 7.12.8 |
한계도 밝힌다. 이 장의 코스는 고도와 요가 고정된 수평 코스이고 바람·항력·추종 오차를 넣지 않았다. 통로는 직선 둘레의 띠로 단순화했으며 실제 장애물에서 만든 다면체가 아니다. 시간 최적 비교는 같은 모양을 지나는 점질량 하한이라 진짜 시간 최적(모양까지 바꾸는)과 다르다. 재계획 속도는 정지 장애물·완전한 감지를 가정한 어림이며 움직이는 장애물과 오경보·미탐(7.1.8)을 넣지 않았다. 미해결 문제는 미지 공간에서 최적성과 안전 보장을 함께 얻는 계획기, 그리고 계획기의 최악 실행 시간과 실패 동작을 인증에서 어떻게 입증하느냐다.
7.12.15 체크포인트·연구 질문
체크포인트
- 구간 5개의 최소 스냅 문제에서 미지 계수·조건·남는 자유도의 개수를 세고, 남는 자유도가 무엇인지 말하라.
- 연속 조건을 저크까지만 걸었는데 해가 6차 미분까지 연속인 이유를 설명하라.
- 총 시간을 두 배로 늘리면 가속도·스냅·비용이 각각 몇 배가 되는가? 구간 비율을 바꾸는 것과 무엇이 다른가?
- 7.12.4의 반복에서 묶이는 제약이 총추력이 아니라 로터 하나의 추력인 이유를 2.15.4와 연결해 설명하라.
- 안전 비행 통로가 비볼록 문제를 볼록 문제로 바꾸는 방식과, "모든 $\tau$에서"를 다루는 세 방법을 말하라.
- 재계획 주기와 감지 거리가 허용 속도를 정하는 식을 작성하고, 대피 궤적이 왜 필요한지 설명하라.
연구 질문(25.7에 모은다)
- 시간 배분과 통로 제약을 함께 최적화할 때 같은 연산 버짓에서 최소 실현 가능 시간을 얼마나 더 줄일 수 있는가? 여유(로터 상한 80~90 %)를 어떻게 정량적으로 정할 것인가?
- 미지 공간에서 대피 궤적 보장과 낙관적 계획의 속도 이득을 함께 얻는 계획기의 성능 상한은 감지 거리·지연의 함수로 어떻게 사용되는가?
- 비행 중 최적화 계획기의 최악 실행 시간과 실패 동작을 인증에서 입증 가능한 형태로 만들 수 있는가(7.8·8.8)?
- AAM 회랑 안의 궤적 생성에서 승차감(가속도·저크) 한계와 회랑 폭, 관제 지연을 함께 고려한 시간 배분은 어떤 꼴인가?
1차 출처(이 장)
- Mellinger, D.; Kumar, V., "Minimum Snap Trajectory Generation and Control for Quadrotors", ICRA, 2011.
- Richter, C.; Bry, A.; Roy, N., "Polynomial Trajectory Planning for Aggressive Quadrotor Flight in Dense Indoor Environments", ISRR 2013; Robotics Research(Springer Tracts in Advanced Robotics), 2016.
- Liu, S. 외, "Planning Dynamically Feasible Trajectories Using Safe Flight Corridors in 3-D Complex Environments", IEEE Robotics and Automation Letters 2(3), 2017.
- Wang, Z.; Zhou, X.; Xu, C.; Gao, F., "Geometrically Constrained Trajectory Optimization for Multicopters", IEEE Transactions on Robotics 38(5), 2022.
- Ratliff, N.; Zucker, M.; Bagnell, J. A.; Srinivasa, S., "CHOMP: Gradient Optimization Techniques for Efficient Motion Planning", ICRA, 2009.
- Zhou, B.; Gao, F.; Wang, L.; Liu, C.; Shen, S., "Robust and Efficient Quadrotor Trajectory Generation for Fast Autonomous Flight", IEEE Robotics and Automation Letters, 2019.
- Zhou, X.; Wang, Z.; Ye, H.; Xu, C.; Gao, F., "EGO-Planner: An ESDF-free Gradient-based Local Planner for Quadrotors", IEEE Robotics and Automation Letters, 2021.
- Foehn, P.; Romero, A.; Scaramuzza, D., "Time-Optimal Planning for Quadrotor Waypoint Flight", Science Robotics 6(56), 2021.
- Romero, A.; Sun, S.; Foehn, P.; Scaramuzza, D., "Model Predictive Contouring Control for Time-Optimal Quadrotor Flight", arXiv:2108.13205(게재지 확인 필요).
- Tordesillas, J. 외, "FASTER: Fast and Safe Trajectory Planner for Navigation in Unknown Environments", IEEE Transactions on Robotics 38(2), 2022.
- Oleynikova, H. 외, "Voxblox: Incremental 3D Euclidean Signed Distance Fields for On-Board MAV Planning", IROS, 2017.
다음 장: 7.13(탑재 SLAM과 지도 표현: VIO·LiDAR-관성 오도메트리·팩터 그래프·OctoMap·ESDF·신경 장면 표현)은 이 장의 계획기가 기대는 지도를 만든다. 기체가 자기 위치를 추정하며 지도를 쌓는 SLAM의 백엔드와, 점유 격자·옥트리·거리장이 해상도·메모리·갱신 시간에서 무엇을 치르는지를 본다.