自治系统

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

我在哪里?(本土化问题)

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

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


以前的文章,我谈到了自主导航所必需的能力。在接下来的三篇文章中,我们将更详细地探讨其中一种功能——本地化。在第一篇文章中,我们将讨论什么是本地化,以及我们需要什么样的信息来完成本地化。

我想从定义开始。一辆车的构成是它的位置和方向的结合。它指的是车辆所在的位置以及它面对的方向。例如,如果一辆车可以绕其垂直轴旋转,并在平面二维平面上移动,那么它的姿态可以用三元向量来描述。它在2D平面上的位置(与某个已知参考系的X和Y距离),以及它的方向(偏离+X轴的角度)。

描述姿态所需的元素数量随着系统自由度(DOF)的增加而增加。例如,一架自动驾驶飞机可能需要六个元素来描述它的姿态:纬度、经度和高度表示位置,滚转、俯仰和偏航表示方向。一个具有多个自由度的机械臂可能需要比这更多的元素。

本地化

定位是估计姿态的过程。它正在寻找每个位置和方向元素的值,这样车辆就能了解它所处的位置以及相对于周围地标的方向。

简单地说,如果我们给车辆一个环境地图,它应该能够找出它在地图中的位置。

在本博客系列的后面,我们将讨论在没有环境地图的情况下如何进行本地化。这就是所谓的同时定位和映射(大满贯)的问题。现在,我们假设车辆只需要在已有的地图中找出它的位置。

那么,什么是地图呢?

地图是环境的模型(接下来,在讨论如何表示环境时,我将交替使用地图和模型。)它所采用的形式取决于我们想要如何表现这个世界。通过地图,我们定义了对我们重要的地标,并建立了一个坐标系统,我们可以用它来量化我们与这些地标的关系。

地标可以是任何物理的东西。例如,如果车辆需要在建筑物内导航,它们可能是墙壁的位置。我们可以定义一个坐标系统它指向房间里的一个角落我们可以用a来模拟墙壁二元占用网格.这种类型的模型将环境划分为离散数量的较小区域,然后将有墙壁占用的区域分配为“1”,将未占用的区域分配为“0”。

然后,定位将包括感知环境墙壁的距离和方向,并将你所看到的与二进制占用网格相匹配,以确定你所处的位置。

然而,一辆车的姿态并不总是与一个像墙一样容易想象的地标相联系。例如,我们已经说过,飞行器可以用纬度、经度、高度、滚转、俯仰和偏航来描述它的姿态。这些值描述了车辆相对于的位置大地坐标系统,它的方向与局部垂直,局部水平(LVLH)坐标系。在这种情况下,地图非常简单,因为我们只需要表示地球的形状。我们不需要二元占用网格提供的离散细节,而是可以使用球体、扁圆球体、高阶球面谐波模型或任何其他类型的地形图将其建模为连续曲面。

这个飞行器的定位可以用GPS来找到纬度,经度和高度,用加速度计来找到下面,用指南针来找到北方。

简要回顾一下,如果车辆拥有环境地图,那么定位就是感知环境并在该地图中确定位置和方向的过程。

示例场景

为了更好地理解这一点,让我们来看看一个假设的本地化问题。我们有一个机器人在办公大楼里闲逛。机器人得到了一个以二元占用网格形式的建筑地图。因此,它知道墙壁和家具的大致布局,但它不知道最初它在地图上的位置——它可能在任何地方。问题是机器人需要使用它的传感器和运动模型来估计它的姿势,也就是确定它在建筑物中的位置和方向。

这个机器人有一个激光雷达传感器,可以返回视野内物体的距离。因此,如果传感器正在观察一个角落和两扇门,它可能会返回一个点云,看起来像左边的图。我们可以将这种模式与右侧的环境地图相匹配,并确定机器人可能的位置和方向。

除了测量噪声外,机器人还有一种方法死去的估计它的位置使用里程测量数据。航位推测法是指使用过去的位置和相对测量(如速度和角速度)来计算未来的位置。例如,如果你知道机器人面向北方,并以每秒1米的速度移动,3秒后,你可以估计出该位置在它原来位置以北3米的位置。你可以对机器人在那里有一定的信心,而不必再次观察环境。

航位推算可以在较短的时间框架内使用,并取得了很大的成功,但由于相对测量中的噪声,误差会随着时间的推移而增加,需要通过测量相对于环境的姿态来纠正。要更深入地了解航迹推算,请查看传感器融合和跟踪视频3,其中我们结合了来自GPS的绝对测量和来自IMU的相对测量。

我们有两种可能的方法来确定位置;我们有一个有噪声的激光雷达传感器,它可以感知我们可以与环境地图进行比较的特征,我们有噪声里程测量数据,可以估计机器人是如何移动的。如果你熟悉卡尔曼滤波器,您可能会认识到,混合有噪声的测量和有噪声的过程模型正是它的用途。如果你不熟悉卡尔曼滤波器,你可以通过观看这个视频来加快速度MATLAB技术讲座系列,但你不需要太多的经验来理解这篇博客的其余部分。

不幸的是,卡尔曼滤波器并不适合这种定位问题。主要缺点是它期望概率分布是高斯分布或接近高斯分布。对于我们的问题,这意味着随机航迹推算噪声和激光雷达测量噪声都需要是高斯分布的。它们可能真的是,或者至少接近到仍然可以使用卡尔曼滤波器。

然而,重要的是,机器人估计状态的概率分布也必须是高斯分布,我们将在下一篇博文中看到,这对于我们的定位示例来说肯定不是这样的。因此,我们需要一个可以处理非高斯概率分布的估计滤波器。这就是粒子过滤器的用武之地。


要了解更多关于这些功能的信息,您可以观看有关“基于MATLAB和Simulink的自主系统传感器融合与导航金宝app”。谢谢你坚持到最后!如果你还没有,请订阅并关注这个博客,继续获得即将到来的内容的更新。此外,我们很乐意在评论区听到你关于机器人和自主系统项目的评论。在你的旅程中,随时随地放下!

|

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。