自治系统

用MATLAB设计、开发和测试自治系统

自主导航系统的能力

Brian Douglas的自主导航:第3部分

本文来自布莱恩•道格拉斯他是YouTube控制系统和自主应用的内容创作者。

最后发表,我们学习了自主导航的启发式和最优方法。乍一看,自动导航的最佳方法似乎是一个相当简单的问题——观察环境来确定车辆的位置,找出它需要的位置,然后确定到达那里的最佳方式。不幸的是,做到这一点可能不像这句话听起来那么容易。

我认为,让自动导航成为一个难以解决的问题的第一件事是,当车辆必须在一个不完全了解的环境中导航时。在这些情况下,车辆无法确定它在哪里,目的地在哪里,或者在路上有什么障碍和限制。因此,提出一个可行的计划并按照该计划行事变得具有挑战性。

一般来说,环境的可预测性和可理解性越强,就越容易实现完全自主导航。

例如,建造一艘绕地球飞行的自主航天器通常比自主飞机的导航问题更简单——至少在环境复杂性方面是这样。太空是一个比空气更可预测的环境,因为我们对作用在飞行器上的力的不确定性更小,而且我们对附近其他物体的行为更确定。当飞行器提出计划时,比如执行原地保持机动,我们有信心航天器将能够自主地遵循该计划,而不会遇到来自环境的未知力量或障碍。因此,我们不需要建造一个需要考虑很多未知情况的飞行器;绕地球运行是一个相对可预测的环境。

另一方面,对于飞机,我们必须在更多的不确定性中航行。这里有未知的阵风,成群的鸟飞来飞去,其他人为控制的飞机,不得不降落和在机场附近滑行,仅举几个例子。

即便如此,自动驾驶飞机的问题通常比自动驾驶汽车要简单。原因是一样的。在一个混乱的城市里开车比在相对开阔的空气中飞行有更多的不确定性。

制造一种可以机动自动驾驶绝对是一项了不起的成就,我不想过于轻视它,然而,我在这里想强调的是,自动驾驶汽车令人印象深刻的不是它们可以自己移动,而是它们可以在不确定和不断变化的环境中自主导航。要让汽车自己前进,只需要一个压缩油门踏板的驱动器。困难来自于了解压缩踏板。对于汽车来说,它要做出调整,使汽车有效地到达目的地,同时遵守当地的交通法规,避开坑洼和其他障碍,在建筑周围重新调整路线,并避开由不可预测的人类驾驶的其他汽车。而且要在雨雪天气中完成这些工作。这可不是件容易的事!


自治系统的4个能力

为了理解我们如何克服这些挑战,让我们把更大的自主导航问题分解为四种一般能力。

请参阅有关“自主系统的传感器融合与跟踪:综述,以获取更多资料

自主系统需要与不确定的物理世界进行交互。为了获得一定的确定性,传感器被用来收集关于系统状态和外部世界状态的信息。传感器依赖于应用,但它们可以是任何观察和测量一些量的东西。例如,自动驾驶系统可以用加速度计测量自身的状态,但它也可以用雷达、激光雷达和可视摄像机等外部传感器测量环境的状态。

传感器数据的原始形式不一定有用。例如,一个相机图像可能有几百万像素,每个像素在三个不同的颜色波段中包含8位或更多的信息。这是大量的数据!为了利用这些庞大的数字数组,算法或人类需要提取一些有价值的东西。这样看来,感知不仅仅是获取信息,而是将信息解释为有用的量的行为。感知可以分为两种不同但同样重要的责任:负责自我意识(感知你自己的状态)它负责态势感知(感知环境中的其他物体并跟踪它们)。

在感知之后,车辆就拥有了做出决策所需的信息,它首先要做的决策之一就是规划从当前位置到目标的路径,避开沿途的障碍物和其他物体。我将在接下来的博客文章中分享更多关于这个主题的内容。

请参阅有关“MATLAB运动规划,以获取更多资料

最后一步是按照计划行动;控制:控制马达和执行器,使车辆沿着路径行驶这是控制器和控制系统的工作。我们可以把计划看作是控制器用来命令执行器和其他控制效应器的参考信号,以某种方式操纵系统沿着这条路径移动。

汽车的状态和物理世界的状态是不断变化的,所以整个自主循环是持续的。车辆感知环境,了解与环境中的地标相关的位置,感知和跟踪动态对象,根据新信息重新规划,控制执行器遵循该计划,直到达到目标。


结合启发式和最优方法

我们将在这篇博客中更详细地讨论这些功能,但在结束这篇文章之前,我想谈谈环境的不确定性如何影响我们解决自主导航问题的方法。

在上一篇文章中,我们介绍了实现完全自主的两种不同方法:启发式方法和最优方法。我想指出的是解决方案不一定是100%启发式的或者100%最优的。我们可以使用这两种方法来实现更大的目标,而这样做的选择通常取决于车辆对其所处环境的了解程度。

以自动驾驶汽车为例。在高层次上,车辆可以规划出通过城市的最佳路线。要做到这一点,汽车需要访问当地的街道地图,以便找到最优的路径,最大限度地减少旅程所需的时间。

然而,其他汽车和障碍物并不存在于该地图中。因此,当自动驾驶汽车接近一辆较慢的汽车时,它必须感知到那辆汽车,并调整其原始计划,要么减速并跟上,要么变道并超过。一开始,超车似乎是最优的解决方案,然而,如果较慢的汽车只以低于限速1英里的速度行驶,情况就不一定是这样了。当然,自动驾驶汽车可以超过它可以更快地到达目的地,但是慢慢超车和在迎面而来的车道上花费大量时间的危险可能会超过稍微快一点到达目的地的好处。

最优解的好坏取决于你用来求解它的模型。因此,如果目标函数没有考虑速度差,那么通过的决定可能不会产生期望的结果。那么,为什么不编写一个更好的目标函数并创建一个更好的环境模型呢?不幸的是,在某些情况下,获取所有信息或充分了解环境是不现实的。

解决这个问题的一种可能的方法是,在没有足够信息的情况下,采用启发式行为或规则来帮助引导车辆。例如,一条规则可以是“only”如果前车的速度低于限速每小时10英里,尝试超车。“这种启发式决策可以只使用领先汽车的状态,然后一旦做出决定,就可以创建进入相邻车道的最佳路径。这样,这两种方法可以相辅相成。

当然,这并不能保证不会有迎面而来的障碍,车辆必须合并回来,但我们可以添加更多的规则来覆盖这些情况!通过这种方式,启发式方法允许我们在信息稀缺时做出决策,然后在信息更多的情况下做出最优决策。


我一直以自动驾驶汽车为例,但它们并不是唯一使用这两种方法的系统。

  • 还有其他的地面车辆就像亚马逊的仓库一样,它们可以快速移动到指定的存储区域,在不撞上其他移动车辆和固定货架的情况下移动包裹。
  • 在灾区搜索的车辆在未知和危险的地形上行驶。
  • 还有像OSIRIS-REX这样的太空任务,它绕着以前从未被访问过的小行星Bennu航行,并准备精确地接触并收集样本返回地球。
  • 有机械臂(cobots)和操纵器,它们在本地空间内导航,拾取物体并将其移动到新的位置。
  • 无人机和无人驾驶飞机这个调查领域,还有很多很多的应用。

这些系统都可以以自己的方式实现自主系统的四种能力;它们可以感知周围的环境,感知周围的环境,规划一条路径,然后沿着那条路径前进。在下一篇文章中,我们将更深入地探讨感知并讨论定位问题——也就是说,车辆如何确定它们在环境中的位置。


要了解更多关于这些功能的信息,您可以观看有关“基于MATLAB和Simulink的自主系统传感器融合与导航金宝app”。谢谢你坚持到最后!如果你还没有,请关注这个博客,继续获得即将到来的内容的更新。

|

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。