30.5.5. 원뿔형 복귀(Cone RTL) 메커니즘의 공간 기하학적 교차점(Intersection Point) 산출 및 비행 궤적 고도 클리핑(Altitude Clipping) 알고리즘
기존의 전통적인 RTL(Return To Launch) 반환 논리는 이륙 지점에 인접한 거리에서도 기체를 무조건 설정된 안전 고도(RTL_RETURN_ALT)까지 수직 상승시킨 후 복귀하게 하여 막대한 시간과 배터리를 낭비하게 만드는 단점이 있었다. PX4-Autopilot은 이 비효율을 타파하기 위해 목적지 상공을 중심으로 가상의 3차원 뒤집힌 원뿔(Inverted Cone) 형태의 안전 구역을 형성하는 원뿔형 복귀(Cone RTL) 알고리즘을 도입하였다.
본 장에서는 기체의 현재 위치가 이 가상의 3D Cone(원뿔) 표면과 교차(Intersection)하는 지점을 기하학적으로 산출하고, 불필요한 고도 상승을 억제하며 부드럽게 대각선으로 하강 비행할 수 있도록 유도하는 비행 궤적 고도 클리핑(Altitude Clipping) 수학 모델을 분석한다.
1. Cone RTL의 개념 및 RTL_CONE_ANG 파라미터
원뿔형 복귀의 핵심 아이디어는 **“목적지에 가까울수록 장애물이 존재할 확률이 적으므로 안전 고도를 낮춰도 된다”**는 휴리스틱(Heuristic) 전제에 기반한다. (물론 이 전제는 이륙 지점 주변이 개활지라는 조건 하에 성립한다.)
- 가상의 Inverted Cone: 원뿔의 꼭짓점(Vertex)은 목적지 지표면(또는
RTL_DESCEND_ALT)에 위치하며, 위로 갈수록 넓어지는 V자 형태의 공간 기하학적 제약 경계(Boundary)를 이룬다. RTL_CONE_ANG: 이 원뿔의 측면 기울기(사잇각)를 정의하는 각도 파라미터이다.- 각도가 0^\circ (기본값)이면 Cone RTL 로직이 비활성화되고 기존의 일반 RTL(무조건
RTL_RETURN_ALT준수)을 수행한다. - 각도가 넓을수록(예: 45^\circ) 기체는 더 먼 거리에서부터 하강을 시작할 수 있게 허용된다.
2. 반각(Half-angle) 기반 교차점(Intersection) 고도 벡터 산출 연산
네비게이터의 rtl.cpp는 기체가 위치한 2D 수평 거리와 Cone의 기하학적 표면을 연립하여 교차 고도를 동적으로 계산한다.
- 지상 이격 거리(Ground Distance) 구하기:
기체의 현재 위치 반경 D_{xy} = \sqrt{\Delta X^2 + \Delta Y^2} - Cone 표면 교차 고도(Alt_{cone}) 산출:
삼각함수 탄젠트(Tangent) 법칙을 이용하여 거리에 비례하는 허용 고도를 구한다.
Alt_{cone} = \frac{D_{xy}}{\tan(\frac{\theta_{cone}}{2})} + Alt_{destination\_surface}
(여기서\; \theta_{cone} 은\; RTL\_CONE\_ANG)
이 수식을 통해 도출된 Alt_{cone}은 기체가 목적지 좌표로부터 떨어진 D_{xy} 반경 지점에서 허락되는 “최소 한계 고도“를 의미하게 된다.
3. Min/Max 기반 궤적 고도 클리핑 (Altitude Clipping)
이제 기체의 현재 고도(Alt_{current}), RTL 고정 안전 고도(RTL_RETURN_ALT), 그리고 방금 산출한 원뿔 표면 고도(Alt_{cone})를 비교하여 최종 복귀 고도(Alt_{target})를 결정하는 클리핑(Clipping) 로직이 구동된다.
graph TD
A[RTL 발동 수신 처리] --> B{RTL_CONE_ANG > 0 인가?}
B -->|No| C[Alt Target = 기존 RTL_RETURN_ALT 유지]
B -->|Yes| D[현재 거리 $D_{xy}$ 기반 $Alt_{cone}$ 산출]
D --> E{현재 고도 $Alt_{current}$ 가 <br>$Alt_{cone}$ 보다 높은가?}
E -->|Yes| F[원뿔 내부에 위치함 <br>Alt Target = $Alt_{current}$ (상승 불필요)]
E -->|No| G[원뿔 외부에 위치함 <br>Alt Target = min($Alt_{cone}$, RTL_RETURN_ALT)]
F --> H[목적지로 비행 개시]
C --> H
G --> H
H --> I[거리가 좁혀짐에 따라 $Alt_{cone}$이 점진적으로 낮아짐 <br>(기체는 대각선으로 Slide 하향 비행)]
3.1 Case Study: 고도 클리핑 발동 시나리오
- Case 1 (기체가 아주 멀고 낮은 곳에 있을 때):
저 멀리서 RTL을 켰는데 Alt_{cone}이 100m로 나왔고RTL_RETURN_ALT가 50m로 설정되었다면, 클리핑 로직에 의해 Target = \min(100, 50) = 50m가 된다. 즉 기체는 50m까지만 상승 후 수평 이동한다. (기존 RTL과 동일) - Case 2 (수평 이동 중 Cone의 경계와 맞닥뜨렸을 때):
50m 고도로 수평 이동 중, 목적지에 반경에 접어들어 Alt_{cone} 값이 40m, 30m, 20m로 점점 낮아지기 시작한다. Target = \min(40, 50) = 40m가 되므로, 기체는 수평 이동을 끝내고 원뿔의 빗면을 타고 **눈썰매장(Slide) 내려오듯 부드러운 대각선 강하(Diagonal Descent)**를 시작하게 된다. - Case 3 (기체가 이미 목적지 근처에서 RTL을 발동했을 때):
기체가 이륙 지점 반경 10m 안에서 5m 고도 비행 중 RTL을 켰을 때, Alt_{cone}이 8m로 계산되었다면 기체는 불필요하게 50m까지 상승하지 않고 8m로 소폭 상승한 후 원뿔 경사면을 따라 귀환한다. (단거리 이착륙 에너지 절감의 핵심 기술)
4. Ardupilot 로직과의 차별적 유용성
- Ardupilot도 RTL Cone 설정(
RTL_CONE_SLOPE)을 지원하나, 종종 구현 방식이 복잡하게 얽혀 거리 대비 고도 비례(Ratio)가 선형적이지 않거나, 지형 추종(Terrain Following) 모드와 충돌하여 비정상적으로 급상승/급강하하는 케이스가 제보되곤 한다. - PX4-Autopilot의 로직은 수식(Tangent 역산) 한 줄과 Min/Max 수속 구문 몇 줄로 명료하게 네비게이터 미들웨어 코어 단에 위치해 있으며, 무조건적인 고도 상승(Pop-up) 현상을 근절하여 드론 렌탈 플랫폼이나 상업용 딜리버리 허브 환경에서 압도적인 배터리 타임 확보와 시각적인 부드러움(Graceful return)을 자랑한다.
5. 결론 및 운용 시 주의 사항
Cone RTL 로직은 복귀 경로에 장애물이 없다는 전제가 깔린 고도화된 스위트 스팟(Sweet-spot) 에너지 절감 기술이다.
만약 이륙 지점이 숲으로 둘러싸여 있거나 공장 단지 등 수직 구조물이 많은 지역에서 RTL_CONE_ANG 각도를 크게 푼다면, 드론이 원뿔 경사면을 따라 대각선 하강을 하다가 철탑이나 나뭇가지에 대각선으로 돌진해 충돌(CFIT)할 위험이 매우 높다. 따라서 지형의 개활지 반경(Clear Area Radius) 데이터를 기반으로 삼각함수 탄젠트 역산을 통해 안전한 \theta_{cone} 최대 허용각을 유추하여 세팅(QGroundControl 파라미터 부여)하는 전술적 엔지니어링 감각이 요구된다.