文章目录
前言
局部控制器是导航算法中非常重要的一个模块,常见的控制器包括纯跟踪控制器、沿边控制器、TEB控制器、MPPI控制器等。MPPI是一个比较优秀的控制器,本文将对其做简要的介绍。
一、MPPI算法是什么?
它是一种预测控制器(局部轨迹规划器),实现了模型预测路径积分(Model Predictive Path Integral)算法,以跟踪具有自适应防撞功能的路径,并包含基于插件的critic函数来影响算法的行为。它由阿列克谢·布迪亚科夫创作,史蒂夫·马肯斯基为Nav2改编和开发,用于生成在动态环境中移动机器人的局部轨迹以及控制信号。
二、MPPI算法的基本原理
1.描述
MPPI算法是一种MPC变体,它使用迭代方法为机器人找到控制速度。使用前一个时间步长的最佳控制解和机器人的当前状态,应用一组来自高斯分布的随机采样扰动。这些带噪声的控制被正向模拟,以在机器人的运动模型内生成一组轨迹。
接下来,使用一组基于插件的critic函数对这些轨迹进行评分,以找到批次中的最佳轨迹。输出分数用于通过软最大函数设置最佳控制。
然后,此过程重复多次,并返回收敛的解决方案。该解决方案随后被用作下一时间步骤的初始控制的基础。
2.相关概念
2.1 模型预测控制(Model Predictive Control,MPC)
MPPI是一种MPC方法,其中机器人的运动模型被用来预测在未来一系列时间步骤内机器人可能采取的轨迹。这个轨迹是通过多次执行模拟来生成的,每次模拟都包括对机器人的控制序列的应用。
2.2 轨迹采样
在MPPI中,多次执行模拟,每次都对控制序列进行微小的扰动。这些扰动导致了一系列可能的轨迹。这些轨迹的生成是基于路径积分方法,通过对每个时间步长上的控制序列执行数次模拟,然后将每个轨迹的性能进行加权平均,形成一个优化的轨迹。
2.3 成本函数
MPPI使用成本函数来评估每个生成轨迹的性能。成本函数通常包括与目标导航、碰撞回避、速度平滑等相关的项。优化的目标是找到一个最小化成本函数的轨迹,以使机器人能够安全、高效地导航到目标。
2.4 路径积分
路径积分是MPPI的关键概念之一。它通过考虑每个时间步长上的所有轨迹,以加权平均的方式来计算最终的控制序列。这样,MPPI能够对未来可能的多个轨迹进行综合考虑,而不仅仅依赖于单个轨迹。
3.算法基本流程
- 初始化
- 设置时间步长、控制序列的长度等参数。
- 随机生成初始控制序列。
- 轨迹生成
- 根据当前的控制序列和机器人的动力学模型,通过多次模拟生成一系列可能的轨迹。
- 在每个时间步长应用微小的随机扰动,以引入多样性。
- 成本计算
- 使用成本函数评估每个生成轨迹的性能,考虑目标导航、碰撞回避等因素。
- 路径积分
- 对每个时间步长上的所有轨迹进行加权平均,形成一个综合考虑多个轨迹的控制序列。
- 控制序列更新
- 应用更新后的控制序列,执行机器人的下一步动作。
总结
MPPI通过多次模拟和路径积分的方法,考虑了不确定性和动态环境中的变化,生成机器人的最佳轨迹。这使得MPPI适用于需要实时规划的移动机器人,尤其是在面对动态环境和未知障碍物时。在Navigation2中,MPPI算法的实现为机器人提供了高效的路径规划能力。