电子书

第 4 章

路径规划和决策


自主移动机器人 (AMR) 使用感知和跟踪工作流程识别环境后,便会使用该信息结合规划和决策算法,从一个位置移动到下一个位置并执行任务。

节

路径规划

路径规划是指寻找最优路径并计算转向指令,从而让 AMR 从一个位置移到另一位置的过程。路径规划算法也称路径规划器,能够生成最短路径并避开地图上的所有障碍物。典型的规划算法包括快速扩展随机树 (RRT) 和 RRT* 等基于采样的方法,在 MATLAB 的 Navigation Toolbox 中均有支持。规划器会生成路点,经 Dubins 和 Reeds-Shepp 运动模型进一步平滑处理,以提升可行驶性。最后,使用路径指标来验证平滑度以及与障碍物的距离。您可以借助数值比较和视觉比较选择最佳路径。

路径规划。

路径规划。

节

通过状态转移进行决策

AMR 需要根据不断变化的条件或状态做出决策。例如,如果前方有障碍,AMR 就需要更改状态才能执行下一任务。再看一个例子,如果 AMR 的电池用尽,机器人将只好启动一系列状态更改,并规划多个机动策略以到达充电站。虽然 AMR 的设计会包含这类决策和状态更改能力,但是监控 AMR 的决策和转移可以提升安全性。您可以使用 Stateflow 确定这些条件和状态并用流程图表示它们。借助 Stateflow,您可以使用 Simulink 模块实现状态机,并使用状态转移图描述任何系统从一种高级工作模式向另一高级工作模式的转移。

使用 Stateflow 表示状态转移。

使用 Stateflow 表示状态转移。

除了状态转移图,Stateflow 还提供了流程图、状态转移表和真值表。借助 Stateflow,您可以对组合和时序决策逻辑进行建模,然后可以将其作为 Simulink 模型中的模块进行仿真,或者作为 MATLAB 中的对象执行。使用图形动画,您还可以在逻辑执行时对其进行分析,让操作员能够在机器人执行任务时读取机器人的决策逻辑。这可以简化任务调度和调试。

使用 Stateflow 进行逻辑建模。

使用 Stateflow 进行逻辑建模。

节

路径跟随控制

路径规划算法提供的路径是一系列路点。纯跟踪控制器等路径跟随算法会通过为自主移动机器人 (AMR) 计算转向和速度指令来跟踪这些路点。此外,您可以使用向量场直方图等算法来控制机器人避开障碍。

在 MATLAB 中,您可以使用以下三种类型的路径跟踪和避障工作流程来控制 AMR。

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 对闭环系统进行数值仿真来验证设计。

使用模型预测控制 (MPC) 进行路径跟踪。

使用模型预测控制 (MPC) 进行路径跟踪。

3.通过强化学习实现避障

强化学习是实现路径跟随和避障的另一种方法。强化学习是一种机器学习方法,在该方法中,智能体(或机器人)会观察环境中的状态并决定要采取的行动。过去,强化学习不具备处理图像和点云等高维传感器数据的能力。随着深度学习技术的出现,端到端深度强化学习作为一种可行的路径跟随方法,正在获得越来越多的关注。借助深度强化学习,AMR 可以根据图像和点云识别障碍,并在反复试错中学会避障路径。此外,通过不断的学习,AMR 可以灵活应对环境变化。

但是,直接在真实 AMR 上应用此方法存在困难,因为安全运行所要求的学习量需要花费大量时间才能达成。因此,多数强化学习方法会从模拟器开始。当学习过程在模拟器中取得足够的进步时,再到真实 AMR 上完成进一步的学习和验证。MATLAB 和 Simulink 为构建用于训练的仿真环境提供了强大支持。此外,Reinforcement Learning Toolbox™ 支持 DQN 和 DDPG 等各种强化学习算法。

通过强化学习实现避障。

通过强化学习实现避障。