# 자율 주행: 제어 (Autonomous Driving: Control)

#### 자율 주행 시스템의 제어 구조

자율 주행 차량의 제어 시스템은 일반적으로 계층적 구조로 나뉜다. 이 구조는 고수준에서 저수준으로 분류되며, 각각의 계층은 다른 기능적 책임을 갖는다. 고수준 제어는 경로 계획 및 행동 계획과 관련된 결정을 내리고, 저수준 제어는 실제 차량의 동작을 구현하는 역할을 한다. 이 계층적 구조는 보통 세 가지 주요 계층으로 나뉜다:

1. **전략적 제어(Strategic Control)**: 고수준에서의 의사 결정이 이루어지는 단계로, 주로 경로 계획 및 행동 선택이 포함된다. 이 단계에서는 차량의 목적지와 경로, 전반적인 주행 전략을 결정한다.
2. **전술적 제어(Tactical Control)**: 주어진 경로와 전략에 따라 보다 구체적인 행동을 결정하는 단계이다. 차선 변경, 속도 조절, 장애물 회피와 같은 세부적인 의사 결정이 여기서 이루어진다.
3. **작동 제어(Operational Control)**: 가장 저수준의 제어 단계로, 차량의 물리적 시스템을 제어하여 주어진 명령을 실행하는 역할을 한다. 이 단계에서는 차량의 엔진, 브레이크, 조향, 가속 등을 제어한다.

#### 전술적 제어 (Tactical Control)

전술적 제어는 자율 주행에서 매우 중요한 역할을 하며, 실시간으로 주변 환경을 평가하고 적절한 운전 전략을 선택하는 것을 목표로 한다. 이는 차량이 감지한 주변 물체의 움직임, 도로의 상태, 교통 신호 등을 고려하여 최적의 행동을 결정하게 된다. 전술적 제어는 다음과 같은 하위 모듈로 구성될 수 있다:

* **행동 선택(Behavior Selection)**: 특정 상황에서의 운전 동작을 결정하는 단계이다. 예를 들어, 앞에 느리게 움직이는 차량이 있을 때 이를 추월할지, 아니면 속도를 줄일지를 결정한다. 이 단계에서는 위험 분석, 경로의 타당성 평가, 주변 차량의 의도 예측 등이 이루어진다.
* **운동 계획(Motion Planning)**: 선택된 행동에 따라 차량의 움직임을 구체적으로 계획한다. 여기에는 주행 경로, 속도 프로파일, 목표 궤적 등이 포함된다. 운동 계획은 주로 최적화 기법을 사용하여 충돌을 피하면서도 부드러운 주행을 구현한다.

#### 작동 제어 (Operational Control)

작동 제어는 전술적 제어에서 결정된 계획을 실제로 실행하는 단계이다. 여기서 가장 중요한 것은 차량의 물리적 시스템을 정확하고 안정적으로 제어하는 것이다. 주요 하위 시스템은 다음과 같다:

* **종방향 제어(Longitudinal Control)**: 차량의 속도와 가속을 제어하는 부분이다. 이를 위해 주로 PID 제어, 모델 예측 제어(Model Predictive Control, MPC) 등의 기법이 사용된다. 종방향 제어는 차량의 가속 페달, 브레이크 시스템을 통해 차량의 속도를 조절한다.
* **횡방향 제어(Lateral Control)**: 차량의 조향을 제어하여 차선을 유지하거나 경로를 따라가게 한다. 대표적인 기법으로는 차선 중심을 유지하기 위한 조향각 제어 및 곡선 주행 시 안정성을 확보하기 위한 측면 제어가 있다. 횡방향 제어도 MPC가 자주 사용되며, 이를 통해 차량의 조향각을 계산하고, 조향 장치를 통해 해당 명령을 실행한다.
* **자세 제어(Stability Control)**: 차량의 주행 안정성을 유지하기 위한 시스템이다. 급격한 방향 전환이나 미끄러운 도로 조건에서 차량의 자세를 제어하여 주행 안전성을 높인다. 이는 차량의 각종 센서 데이터, 예를 들어 자이로스코프나 속도 센서 등을 활용하여 실시간으로 제어 명령을 생성한다.

#### 제어 알고리즘 (Control Algorithms)

자율 주행 시스템의 핵심은 다양한 제어 알고리즘에 의해 구성된다. 자율 주행 차량에서 사용되는 대표적인 제어 알고리즘은 다음과 같다:

* **PID 제어(Proportional-Integral-Derivative Control)**: 가장 기본적이고 널리 사용되는 제어 알고리즘이다. 이 알고리즘은 현재 오차(예: 목표 속도와 실제 속도의 차이)를 바탕으로 차량의 제어 입력을 결정한다. PID 제어는 종방향 제어와 횡방향 제어 모두에서 자주 사용된다.
* **모델 예측 제어(Model Predictive Control, MPC)**: 미래의 시스템 동작을 예측하여 최적의 제어 입력을 결정하는 방법이다. 자율 주행에서는 주로 횡방향 제어에서 사용되며, 궤적 추적, 충돌 회피, 경로 최적화 등에 활용된다. MPC는 계산 비용이 높지만, 다양한 제약 조건을 효과적으로 처리할 수 있는 장점이 있다.
* **적응형 제어(Adaptive Control)**: 차량의 동적 모델이 정확하지 않거나 외부 환경이 변동성이 클 때 사용된다. 적응형 제어는 실시간으로 차량의 모델을 업데이트하며, 이에 따라 제어 입력을 조정한다. 이는 특히 도로 상태나 차량의 하중이 변할 때 유용하다.
* **강화 학습 기반 제어(Reinforcement Learning-based Control)**: 최근 연구에서는 강화 학습을 이용하여 차량의 제어 정책을 학습하는 접근이 주목받고 있다. 이 방법은 환경과 상호작용을 통해 최적의 제어 전략을 학습할 수 있으며, 특히 복잡한 주행 시나리오에서의 제어에 유리한다. 그러나 학습 시간과 안정성 확보가 주요 과제로 남아 있다.

#### 제어 안정성 및 성능 평가

자율 주행 차량의 제어 시스템에서 안정성과 성능은 가장 중요한 고려 사항이다. 제어 시스템이 불안정하거나 성능이 낮을 경우, 이는 곧바로 안전 문제로 이어질 수 있다. 제어 안정성 및 성능 평가에는 다음과 같은 방법이 사용된다:

* **루프 안정성 분석(Loop Stability Analysis)**: 피드백 제어 시스템의 특성을 분석하여 시스템이 안정적으로 동작하는지 확인한다. 이는 주로 리아푸노프 함수(Lyapunov Function)나 주파수 응답 방법(Frequency Response Methods)을 통해 평가된다.
* **성능 지표(Performance Metrics)**: 제어 시스템의 성능을 평가하기 위해 다양한 지표가 사용된다. 대표적인 지표로는 응답 시간, 초과 값(overshoot), 안정 상태 오차(steady-state error) 등이 있다. 이러한 지표들은 제어 시스템이 얼마나 신속하고 정확하게 목표 상태를 달성하는지를 평가하는 데 사용된다.
* **강인성 분석(Robustness Analysis)**: 제어 시스템이 모델 불확실성, 외란(disturbance) 등에 대해 얼마나 강인한지를 평가한다. 강인성은 특히 자율 주행 차량의 다양한 주행 환경에서 중요한 요소이다.

***

관련 자료:

1. Goodarzi, A., & Ersal, T. (2018). A model predictive control formulation for path planning and following in autonomous vehicles. *IFAC-PapersOnLine*, 51(20), 86-91.
2. Falcone, P., Borrelli, F., Asgari, J., Tseng, H. E., & Hrovat, D. (2007). Predictive active steering control for autonomous vehicle systems. *IEEE Transactions on Control Systems Technology*, 15(3), 566-580.
3. Rajamani, R. (2011). *Vehicle Dynamics and Control* (2nd ed.). Springer.
4. Bertsekas, D. P. (2012). *Dynamic Programming and Optimal Control* (Vol. 1, 4th ed.). Athena Scientific.
