Model Predictive Path Integral
- Também chamado: MPPI, MPPI control, information-theoretic MPC, path integral MPC
- Categoria: Control › Feedback control
- Tags: model-predictive-control, sampling-based-control, optimal-control, gpu-computing, navigation
Um método de controle preditivo baseado em modelo que funciona por amostragem: simula muitas sequências de controle perturbadas aleatoriamente através de um modelo dinâmico e faz a média delas, ponderada pelo custo, para escolher a próxima ação.
Definição
Model Predictive Path Integral (MPPI) é uma forma de controle preditivo baseado em modelo que funciona por amostragem, desenvolvida por Grady Williams, Evangelos Theodorou e colegas, com uma demonstração de 2016 muito citada em um carro de rali autônomo em pequena escala dirigido em alta velocidade em uma pista de terra. Como outros controladores preditivos baseados em modelo, o MPPI planeja uma sequência de entradas de controle em um horizonte curto, aplica a primeira e replaneja no passo de tempo seguinte. O que o diferencia é como o plano é calculado.
A cada passo, o MPPI parte da sequência de controle anterior e gera um grande número de versões perturbadas dela adicionando ruído aleatório. Cada sequência perturbada é desdobrada através de um modelo dinâmico para prever a trajetória resultante, e essa trajetória é pontuada com uma função de custo. A nova sequência de controle é uma média ponderada de todas as amostras, com pesos que diminuem exponencialmente com o custo de acordo com um parâmetro de temperatura. As amostras de baixo custo dominam a média, enquanto a atualização se mantém suave.
O método vem da teoria de controle por integrais de caminho, que relaciona uma classe de problemas de controle ótimo estocástico a esperanças sobre trajetórias amostradas. Na prática, o principal atrativo do MPPI é que ele não precisa de gradientes: o modelo dinâmico e a função de custo podem ser não lineares, descontínuos ou aprendidos, desde que possam ser avaliados muitas vezes. Os desdobramentos são independentes, então se paralelizam bem em GPUs.
As contrapartidas são o custo computacional, que cresce com o número de amostras e o comprimento do horizonte, e a sensibilidade ao nível de ruído e à temperatura. Com pouco ruído, o controlador explora mal; com ruído demais, os comandos ficam trêmulos, por isso é comum suavizar as sequências amostradas ou a saída.
Por que importa
O MPPI permite que robôs planejem com modelos dinâmicos complexos ou aprendidos e com custos difíceis de diferenciar, como mapas de obstáculos e risco do terreno. Como seus desdobramentos rodam em paralelo, ele consegue replanejar rápido o bastante para veículos terrestres, drones e robôs com pernas operando em tempo real.
Principais aplicações
- Direção autônoma em alta velocidade e fora de estrada
- Navegação local para robôs móveis, incluindo a pilha Nav2 do ROS 2
- Controle ágil de quadricópteros
- Planejamento com dinâmicas aprendidas e modelos de mundo
- Manipulação e locomoção com custos de contato não suaves
Na prática
Uma equipe que usa MPPI para navegação ao ar livre normalmente o roda em uma GPU embarcada, amostrando muitas sequências de controle a cada ciclo ao longo de um horizonte de alguns segundos. Cada sequência é propagada através de um modelo do veículo, seja um modelo cinemático ou dinâmico, seja um modelo de dinâmica direta aprendido, e pontuada com um custo que combina o progresso em direção ao objetivo, custos de obstáculos e de trafegabilidade e a suavidade do controle. Existem implementações de código aberto, incluindo um controlador MPPI na pilha de navegação Nav2 do ROS 2. A maior parte do esforço de engenharia vai para a função de custo e os parâmetros de amostragem: as equipes ajustam a covariância do ruído e a temperatura em simulação e depois verificam no hardware que o veículo não oscila e que reage rapidamente a novos obstáculos.
Equívocos comuns
- O MPPI é só uma busca aleatória — ele usa aleatoriedade para explorar, mas sua média ponderada pelo custo é derivada da teoria de controle ótimo estocástico
- Mais amostras sempre corrigem um desempenho ruim — uma função de custo mal projetada ou ruído e temperatura mal ajustados limitam os resultados independentemente do número de amostras
- O MPPI não precisa de um modelo — ele depende de um modelo dinâmico para prever cada desdobramento; apenas os gradientes do modelo são desnecessários
Quem deve saber
- Engenheiros de controle de veículos autônomos e robôs móveis
- Desenvolvedores de controle de drones e quadricópteros
- Pesquisadores que combinam modelos aprendidos com planejamento
- Usuários do Nav2 que configuram controladores locais
Tecnologias relacionadas
- Controle preditivo baseado em modelo (Model Predictive Control)
- Nav2
- Método da entropia cruzada (Cross-Entropy Method)
- iLQR
- Modelo de dinâmica direta (Forward Dynamics Model)
- CUDA
Termos relacionados
Projetos relacionados
- 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