ROS Navigation 스택에 MPPI 를 Local Planner에 추가하기
MPC는 현재 시점에서 미래의 상태를 예측하는 최적화 기반 접근법을 사용, 미래의 특정 시간 범위 동안 상태를 예측해 계산이 많이 필요
Sampling-based MPC는 MPC의 전통적인 최적화 접근법과 경로 적분 제어의 샘플링 접근법 사이의 연결 고리 역할, 가중 평균을 사용하지 않고 단일 최적 경로 선택
MPPI는 경로 적분 제어의 일종으로, 확률론적으로 모든 가능한 경로의 분포를 계산하는 데 중점
→ 계획을 매우 빠르게 생성하고 필요에 따라 재계획할 수 있는 능력을 갖추어 불확실한 동적 환경에서도 효과적으로 작동할 수 있지만, 장애물이 매우 빠르게 움직이거나 예측이 어려운 패턴을 보이는 경우, 알고리즘이 충분히 빠르게 적절한 응답을 생성할 수 있다는 단점과, 최적의 작업 분포를 가우시안 분포를 활용해 근사시켰지만, 최적 분포가 다중 모드를 가질 경우 최적해를 못 찾는다는 단점이 있다.
MPPI 단점 1. 좋은 경로들이 서로 멀리 떨어져 있고, 그 사이에 로봇이 피해야 하는 나쁜 경로들이 있는 상태에서 MPPI가 단순히 모든 경로의 평균을 내면, 나쁜 경로를 선택할 가능성이 높아지는 단점. (즉, 가중 평균을 통해 계산한 경로가 안정적이지 않을 수 있다.)
idea : 만약, 왼쪽 최적 경로의 cost와 오른쪽 최적 경로의 cost가 동일하면, 왼쪽이나 오른쪽으로만 움직이게 세팅해서 해결가능 하지 않을까? 만약, 왼쪽으로 가게 세팅한다면 왼쪽에 장애물이 있으면, 애초에 cost가 양쪽이 동일하지 않아서 오른쪽으로 갈테고, cost가 양쪽 동일하다면 왼쪽으로만 가면 되니까?
→ 그래서 나온 게 clustering ?
MPPI는 모든 샘플 경로의 가중 평균을 사용하여 최종 제어 결정을 내리는 반면, Sampling-based MPC는 최적의 샘플 경로를 선택