第 4 章
路径规划和决策
自主移动机器人 (AMR) 使用感知和跟踪工作流程识别环境后,便会使用该信息结合规划和决策算法,从一个位置移动到下一个位置并执行任务。
路径规划
路径规划是指寻找最优路径并计算转向指令,从而让 AMR 从一个位置移到另一位置的过程。路径规划算法也称路径规划器,能够生成最短路径并避开地图上的所有障碍物。典型的规划算法包括快速扩展随机树 (RRT) 和 RRT* 等基于采样的方法,在 MATLAB 的 Navigation Toolbox 中均有支持。规划器会生成路点,经 Dubins 和 Reeds-Shepp 运动模型进一步平滑处理,以提升可行驶性。最后,使用路径指标来验证平滑度以及与障碍物的距离。您可以借助数值比较和视觉比较选择最佳路径。
除了状态转移图,Stateflow 还提供了流程图、状态转移表和真值表。借助 Stateflow,您可以对组合和时序决策逻辑进行建模,然后可以将其作为 Simulink 模型中的模块进行仿真,或者作为 MATLAB 中的对象执行。使用图形动画,您还可以在逻辑执行时对其进行分析,让操作员能够在机器人执行任务时读取机器人的决策逻辑。这可以简化任务调度和调试。
1.使用纯跟踪控制器进行路径跟踪
纯跟踪是一种计算角速度指令的路径跟踪算法,可控制 AMR 从当前位置移至其前方的某个预瞄点。当 AMR 到达该点时,算法会基于 AMR 的当前位置移动路径上的预瞄点。该过程一直重复,直到 AMR 到达路径的最后一个点。因此,AMR 一直跟随它前方的点移动。该算法假设存在一个恒定线速度,当然,您可以随时更改 AMR 的线速度。Navigation Toolbox 中的 controllerPurePursuit 对象提供了纯跟踪控制器算法,可用于路径跟随。该算法使用指定的路点列表,对象属性包括 LookAheadDistance,它决定了 AMR 当前位置与预瞄点之间的距离。
2.模型预测控制
模型预测控制 (MPC) 是一种反馈控制算法,它使用模型来预测某一过程的未来输出。这种方法需要求解一个在线优化算法,以选择最佳控制行为,使预测的输出接近参考值。MPC 可以控制多输入多输出 (MIMO) 系统,这类系统的输入输出间存在相互作用。使用 MPC 进行路径跟踪可以实现多约束最优跟踪控制,例如最大速度、最短目标距离等。MPC 也称为实时优化控制或滚动时域控制。
要确保优化会选择最佳控制动作,必须对 MPC 算法的预测模型进行仿真,并设置必要的参数。借助 Model Predictive Control Toolbox™,您可以在 MATLAB 中编程创建 MPC 控制器,并在图形化界面中设置必要的参数。您还可以使用 Simulink 对闭环系统进行数值仿真来验证设计。
3.通过强化学习实现避障
强化学习是实现路径跟随和避障的另一种方法。强化学习是一种机器学习方法,在该方法中,智能体(或机器人)会观察环境中的状态并决定要采取的行动。过去,强化学习不具备处理图像和点云等高维传感器数据的能力。随着深度学习技术的出现,端到端深度强化学习作为一种可行的路径跟随方法,正在获得越来越多的关注。借助深度强化学习,AMR 可以根据图像和点云识别障碍,并在反复试错中学会避障路径。此外,通过不断的学习,AMR 可以灵活应对环境变化。
但是,直接在真实 AMR 上应用此方法存在困难,因为安全运行所要求的学习量需要花费大量时间才能达成。因此,多数强化学习方法会从模拟器开始。当学习过程在模拟器中取得足够的进步时,再到真实 AMR 上完成进一步的学习和验证。MATLAB 和 Simulink 为构建用于训练的仿真环境提供了强大支持。此外,Reinforcement Learning Toolbox™ 支持 DQN 和 DDPG 等各种强化学习算法。
- 差速驱动机器人路径跟随 - 示例
- 了解模型预测控制 (9 个视频) - 系列视频
- 通过强化学习实现避障 - 示例
- 使用 MATLAB 进行运动规划 - 电子书
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)