Model Predictive Path Integral
- 다른 이름: MPPI, MPPI control, information-theoretic MPC, path integral MPC
- 카테고리: Control › Feedback control
- 태그: model-predictive-control, sampling-based-control, optimal-control, gpu-computing, navigation
무작위로 섭동된 다수의 제어 시퀀스를 동역학 모델로 시뮬레이션하고 이를 비용으로 가중 평균해 다음 행동을 고르는 샘플링 기반 모델 예측 제어 방법.
정의
Model Predictive Path Integral(MPPI) 제어는 Grady Williams, Evangelos Theodorou와 동료들이 개발한 샘플링 기반 모델 예측 제어의 한 형태로, 2016년 소형 자율 랠리카를 비포장 트랙에서 고속으로 주행시킨 시연이 널리 인용된다. 다른 모델 예측 제어기와 마찬가지로 MPPI는 짧은 호라이즌에 걸쳐 제어 입력 시퀀스를 계획하고, 그중 첫 번째를 적용한 뒤, 다음 시간 단계에서 다시 계획한다. MPPI를 구별 짓는 것은 계획을 계산하는 방식이다.
매 단계에서 MPPI는 이전 제어 시퀀스에서 출발해 무작위 노이즈를 더함으로써 그 시퀀스의 섭동된 버전을 다수 생성한다. 섭동된 각 시퀀스를 동역학 모델로 롤아웃해 결과 궤적을 예측하고, 그 궤적에 비용 함수로 점수를 매긴다. 새 제어 시퀀스는 모든 샘플의 가중 평균이며, 가중치는 온도 파라미터에 따라 비용이 커질수록 지수적으로 감소한다. 비용이 낮은 샘플이 평균을 지배하면서도 갱신은 매끄럽게 유지된다.
이 방법은 한 부류의 확률적 최적 제어 문제를 샘플링된 궤적에 대한 기댓값과 연결하는 경로 적분 제어 이론에서 나왔다. 실제로 MPPI의 주된 매력은 기울기가 필요 없다는 점이다. 동역학 모델과 비용 함수는 여러 번 평가할 수만 있으면 비선형이든, 불연속이든, 학습된 것이든 상관없다. 롤아웃은 서로 독립적이므로 GPU에서 잘 병렬화된다.
트레이드오프는 샘플 수와 호라이즌 길이에 따라 커지는 연산 비용, 그리고 노이즈 수준과 온도에 대한 민감성이다. 노이즈가 너무 적으면 제어기가 탐색을 잘 못 하고, 너무 많으면 명령이 떨리게 되므로, 샘플링된 시퀀스나 출력을 평활화하는 것이 일반적이다.
중요한 이유
MPPI는 로봇이 복잡하거나 학습된 동역학 모델과, 장애물 지도나 지형 위험처럼 미분하기 어려운 비용을 사용해 계획할 수 있게 한다. 롤아웃이 병렬로 실행되므로, 실시간으로 동작하는 지상 차량, 드론, 다리 로봇에 충분할 만큼 빠르게 다시 계획할 수 있다.
주요 응용
- 고속 및 오프로드 자율 주행
- ROS 2 Nav2 스택을 포함한 모바일 로봇의 지역 내비게이션
- 민첩한 쿼드로터 제어
- 학습된 동역학과 월드 모델을 이용한 계획
- 매끄럽지 않은 접촉 비용이 있는 조작과 보행
실제 사례
실외 내비게이션에 MPPI를 사용하는 팀은 보통 이를 탑재 GPU에서 실행하며, 매 주기마다 몇 초 길이의 호라이즌에 걸쳐 다수의 제어 시퀀스를 샘플링한다. 각 시퀀스는 기구학 모델이나 동역학 모델, 또는 학습된 순동역학 모델 같은 차량 모델을 통해 전파되며, 목표를 향한 진행, 장애물 비용과 주행 가능성 비용, 제어의 매끄러움을 결합한 비용으로 점수가 매겨진다. ROS 2 Nav2 내비게이션 스택의 MPPI 제어기를 포함해 오픈소스 구현이 있다. 엔지니어링 노력의 대부분은 비용 함수와 샘플링 파라미터에 들어간다. 팀은 시뮬레이션에서 노이즈 공분산과 온도를 튜닝한 뒤, 하드웨어에서 차량이 진동하지 않는지, 새로운 장애물에 빠르게 반응하는지를 확인한다.
흔한 오해
- MPPI는 단순한 무작위 탐색이다 — 탐색에 무작위성을 사용하지만, 비용 가중 평균은 확률적 최적 제어 이론에서 도출된 것이다
- 샘플을 늘리면 나쁜 성능이 항상 해결된다 — 잘못 설계된 비용 함수나 제대로 튜닝되지 않은 노이즈와 온도는 샘플 수와 관계없이 결과를 제한한다
- MPPI에는 모델이 필요 없다 — 모든 롤아웃을 예측하는 데 동역학 모델에 의존하며, 필요 없는 것은 모델의 기울기뿐이다
알아야 할 사람
- 자율 주행 차량 및 모바일 로봇 제어 엔지니어
- 드론 및 쿼드로터 제어 개발자
- 학습된 모델과 계획을 결합하는 연구자
- 지역 제어기를 설정하는 Nav2 사용자
관련 기술
- 모델 예측 제어(Model Predictive Control)
- Nav2
- 교차 엔트로피 방법(Cross-Entropy Method)
- iLQR
- 순동역학 모델(Forward Dynamics Model)
- CUDA
관련 용어
관련 프로젝트
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
- ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
- MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
- TurtleBot3: ROS packages for TurtleBot3 — the standard educational mobile robot platform
- MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo