欢迎来到 AMR 导航聚焦系列的第七篇博客,我们将重点介绍 AMR 如何处理路线规划和控制。点击此处 阅读本系列的上一篇博客讨论可用于感知和绘图的不同传感器。
如果您一直在家中关注,那么您可能已经拥有了大量的 自主移动机器人的制造。您一定对 自动移动机器人的不同定位选项, 传感器放置的注意事项, 定时和同步, 接口以及 机器人如何使用定位数据。
但如何才能真正编程让机器人从 A 地到达 B 地呢?这就是我们要讨论的问题。现在是介绍规划和控制的时候了。
什么是机器人规划与控制?
别担心,我们说的不是什么人工智能起义(虽然我们不能保证它不会发生)。说到 AMR 导航,规划是指机器人规划从起点到目标的路线的能力。
机器人控制是指 AMR 如何利用规划好的路线,计算出控制指令(也称为控制方案),使机器人沿着路线实际移动。
机器人规划如何进行?
就像卫星导航一样,路线规划涉及到计算路线的算法。为此,算法需要知道一些事情:
- 机器人的位置(通常从机器人的定位堆栈中获取)。
- 目标在哪里(通常已预设)。
- 环境中的障碍物
有关障碍物的数据通常是通过机器人出发前创建的地图文件提供的。不过,有些机器人可以使用类似 SLAM 的算法,边走边建地图。
在确定最佳路线时,不同的规划算法有不同的优先级。有些算法强调最短的路线,有些则强调最安全的路线(例如距离所有已知障碍物最远的路线)。根据系统的先进程度,您甚至可以根据能源效率来优化路线。
无论使用哪种制图方法,机器人规划的路线一般都是一系列到达的航点。每个航点都是 AMR 所需的姿势或状态,即位置、方向、航向等的特定组合。
如何控制机器人
控制理论和控制系统设计是非常专业的课题,需要用大量的方程式来解释。为了避免这种复杂性,我们将在本博客中尽力总结要点。
一路上,我们将通过分享我们自己的原型控制系统的工作原理,帮助您直观地理解我们所说的内容。
步骤 1:机器人建模
大多数控制器都需要一个需要控制的事物的数学模型,在我们的例子中就是机器人。在控制术语中,这被称为 "工厂"。该模型描述了机器人控制器的输入(控制器给机器人下达的指令)如何改变机器人的状态或姿态。可以这样绘制
就我们自己的机器人 ClearPath Jackal 而言,工厂有两个要素:Jackal 的电机和 Jackal ROS2 控制器.Jackal 是一个差速驱动的机器人平台,这意味着它的运动是通过改变左右驱动轮的速度来控制的。两侧速度相等意味着机器人在直行,而速度不同则意味着机器人在转弯。ROS2 控制器会将来自控制堆栈的 ROS 命令转化为这些不同的速度。因此,对于我们的 Jackal,上图实际上是这样的:
对于常见的机器人类型,包括无人机、汽车驱动和差速驱动平台,都有通用的简单数学模型,可以作为规划和控制模型的良好起点。然后,您可以根据自己的机器人和导航需求对模型进行定制。
步骤 2:添加控制器
有了模型之后,就该添加下一个部分了:控制器。控制器是为机器人提供输入的部分,它根据预先确定的理想状态来提供输入。在 AMR 导航中,预期状态通常是已规划路径上的下一个航点。
如果您已经涉足这一领域,您可能已经接触过开环和闭环控制器。对于自主移动机器人来说,闭环控制器是最佳选择。
对于新手来说,开环控制器是一种输出不影响输入的控制器。一个简单的例子是没有恒温器的加热器。只要打开加热器开关,加热器就会产生热量。因为输出(房间温度)对输入(加热器是否开启)没有任何影响,所以无论房间温度多高,加热器都会持续发热。
希望大家都能明白为什么开环控制器不适合控制 AMR。控制器会告诉机器人如何从当前位置移动到理想位置,但不会对沿途发生的任何情况做出反应,包括偏离正确路径或与物体或人发生碰撞。
相反,AMR 与闭环控制器配合使用效果最佳。让我们一起来了解一下。
闭环控制器
闭环控制器中增加了一个称为状态估计器或观测器的组件。状态估计器主要告诉控制器,预期状态与测量状态之间是否存在误差(或差异)。如果存在误差,控制器就会根据反馈调整输入以进行补偿。
因此,如果你想到我们上面提到的加热器,那么恒温器就相当于一个闭环控制器。它打开加热器,然后测量室内温度。一旦预期温度与室温之差(误差)为零,加热器就会关闭。
闭环控制仪是这样的
闭环控制器有很多种类,但最常见的一种是比例、积分和导数(PID)控制器,由工程师为机器人手动配置。使用 PID 控制器的 AMR 能够以与状态误差大小成正比的速率调整其输入,但由于存在积分和导数因子,它的调整方式对机器人来说是安全的(例如,通过限制可能使机器人失去平衡的突然制动或转弯),并降低了超标的几率,而超标则需要复杂的微调来修复。
最佳控制器
许多现代控制系统(包括我们的系统)也会使用优化算法--这也是优化算法名称的由来。最优控制理论是数学的一个大分支,应用于机器人学、宇航学和经济学等多个领域,但就我们的目的而言,只需说明优化算法也能让控制器找到实现特定目标的输入即可。
这个目标可以很简单,比如 "找到一种控制方案,使达到期望状态时的状态误差最小"--本质上就是将工程师可能对 PID 控制器进行的手动调整自动化。或者,它们可以更加复杂:"找到一种控制方案,使状态误差最小,并使达到理想状态所消耗的能量最小"。
线性二次调节器 (LQR) 控制器是最优控制器的一个显著例子。LQR 控制器混合使用状态反馈和机器人将如何移动的知识(来自模型)来预测机器人的未来状态,并根据预测结果优化输入。虽然 LQR 和其他使用预测模型的控制器很受欢迎,但运行它们的算法需要强大的计算能力。
OxTS 原型
我们已经向您展示了我们的规划和控制设置的部分工作原理。下面是完整的示意图:
正如您所看到的,我们在系统中安装了线性二次调节器 (LQR) 控制器,它正在进行所有优化工作,以便将前进速度和转向速度作为 ROS2 命令传递给机器人。正如我们所说,Jackal 会将这些指令转化为电机所需的差速指令,以便使机器人移动。
这其中的秘诀在于我们的辅助设备--惯性导航系统(INS)。
OxTS INS 设备尤其擅长提供精确的姿态估计,涵盖从全球位置、航向到俯仰和滚动等所有方面。除此之外,GAD OxTS GAD 接口允许我们插入额外的传感器,包括 AMR 的感知传感器,以便在室内空间和其他全球导航卫星系统信号有限的区域提供更可靠的状态估计。
我们的 INS 还包括一个扩展的卡尔曼滤波器,可以过滤来自 INS 及其辅助传感器的错误测量数据,从而提高其可靠性。
正如我们所说,这些数据会反馈给 LQR 控制器,然后控制器会更新其输入,帮助 Jackal 到达它需要到达的地方。
在测试阶段(使用计算机模拟机器人),我们对 PID 和 LQR 控制器进行了评估。由于 PID 控制器是单输入/输出的,因此我们必须使用两个控制器:一个控制前进速度,另一个控制转向速度。正因为如此,PID 设置在调整和可靠运行方面非常棘手。相比之下,LQR 控制器是多输入和多输出的,因此两个转向速度只需要一个控制器。这也意味着控制器在运行优化算法时,可以使用豺的完整动态模型。因此,在仿真中更容易达到可重复的性能水平--这种性能在实际机器人上也能重复。
自主机器人导航解决方案简介
AMR 需要一个强大的机器人定位解决方案;一个不仅能记录机器人位置和方向,还能在室内外运行的工具。
本解决方案简介将介绍我们建议客户在决定自主移动机器人的定位来源时所考虑的各个方面。
阅读解决方案简介了解正确的机器人本地化解决方案如何帮助您的 AMR 项目,包括在开展项目前需要问自己的关键问题。
希望您喜欢这篇博客,并对刚刚开始 AMR 之旅的您有所帮助。
如果您想进一步了解我们目前能为 AMR 工程师做些什么、 查看我们的申请页面.
或者,如果您有具体项目想与我们讨论,请使用下面的表格与我们联系。我们随时欢迎您与我们讨论最新、最棒的机器人项目。
敬请关注我们系列的下一篇博客:决策与安全简介。