从系列:了解传感器融合和跟踪
这个视频继续我们的讨论在使用传感器融合定位和定位通过展示如何使用GPS和IMU估计物体的方向和位置。我们将算法的结构和展示GPS和IMU都为最终解决方案有一个更直观的了解这个问题。
让我们继续我们的讨论在使用传感器融合定位和本地化。上一节,我们结合了传感器在一个IMU估计对象的定位和显示的绝对测量加速度计和磁强计被用来修正陀螺的漂移。现在在这个视频中,我们要做类似的事情,但我们要添加一个GPS传感器。GPS可以测量位置和速度,所以这种方式我们可以扩展融合算法来估计。就像上次一样,我们的目标不是完全描述融合算法;它的一个视频又太多。相反,我主要是想去在算法的结构和给你视觉上的GPS和IMU导致最终的解决方案都有一个更直观的了解这个问题。所以我希望你留下来。我是布莱恩,欢迎来到MATLAB技术说话。
现在似乎明显使用全球定位系统(GPS)如果你想知道的位置相对于地球表面的东西。带一个GPS传感器到你的系统和你有纬度,经度,和高度,你就完成了。在某些情况下这是非常好的。当系统正在加速和改变方向相对缓慢,你只需要几米的位置精度。这可能是一个系统的情况,确定方向,在你的车里。只要GPS定位你几米的实际位置,地图应用程序可以找出哪些路你在所以去哪里。
另一方面,想象一下,如果系统需要位置信息几英尺或更少,它需要以每秒数百次位置更新跟上系统的快速运动。比如,试图遵循快速轨迹与无人机通过障碍。在这种情况下,全球定位系统(GPS)可能必须配合其他传感器,像IMU的传感器,得到所需要的精度。
给你一个视觉的我想说的在这里,让我们运行一个例子从MATLAB传感器融合和跟踪工具箱,称为姿势估计从异步传感器。这个示例使用GPS, accel、陀螺、磁强计估计姿势,方向和位置,以及其他一些国家。脚本生成一个真正的系统遵循的路径和方向。真正的取向是红色的立方体,而真正的立场是红色的钻石。现在有点很难看到,但当它开始会更清楚。现在,对估计算法是使用可用的传感器方向和位置,和它的结果表明,蓝色立方体和蓝色钻石,分别。这就是我们想要的手表。蓝色对象按照红色有多紧密的对象?右边的图表绘制错误如果你想看到更多的定量结果。
最酷的是,脚本运行时,接口允许我们改变每个传感器的采样率或删除它们从完全的解决方案,这样我们可以看到,影响评估。先删除所有的传感器除了GPS和我们将读取GPS 5次。
默认的轨迹是遵循一个圆的半径约15米。你可以看到这个圆移动很缓慢。取向估计的方式,正如你所期望的那样,因为我们没有任何方向传感器活跃。但位置估计不是太坏。算法解决和消除了最初的偏见之后,我们看到的位置误差+ / - 2米左右的每个轴。
所以现在让我添加在乌兹别克斯坦伊斯兰运动传感器,看看我们的结果是改善。服用好几秒的时间取向的融合,但是你可以看到它正在慢慢纠正自己回到真正的方向。位置估计也差不多。正负2米,也许比这少一点。因为这是一个相对缓慢的运动,它是如此大的轨迹建模的IMU传感器只造成轻微改善GPS。GPS速度测量足以预测之间的物体在0.2秒后测量对象不是加速过快。这个设置是一种类似于使用GPS得到地图方向开车时在你的手机上。增加这些额外的传感器并不是真的不会有多大作用。
现在,让我们去相反的方向,并创建一个轨迹,要快得多。轨迹生成脚本,我只会加速物体的速度绕着圈从2.5到12.5米每秒。这将在更短的时间创造更多的角加速度。真正强调一点,我想要在这里,我要缓慢GPS样本时间每秒一次。让我们给这一枪。
好吧,这里发生的事情是,当我们得到一个GPS测量,我们得到两个位置和速度。第二,一旦我们得到一个新的位置更新,将估计几米的真相,但我们也获取当前的速度。一秒钟,算法传播速度向前预测对象做什么之间的测量。这是如果一秒的速度是常数附近,但极其不佳,如您所见,当速度正在迅速改变。
这种类型的情况类似于无人机,制作快速转动,避免障碍,这是这里的乌兹别克斯坦伊斯兰运动将帮助,因为我们不需要依赖传播一个静态速度一秒钟,我们可以使用乌兹别克斯坦伊斯兰运动估计速度和旋转传感器。
现在,看到我放在两个不同的运行的改进下。左边是GPS只是我们刚才看到的,和正确的是乌兹别克斯坦伊斯兰运动。你可以看到,至少在视觉上,GPS与乌兹别克斯坦伊斯兰运动是如何不同于单独GPS。它能够更紧密地跟踪对象的位置并创建一个圆形的结果,而不是一个锯条。所以添加一个IMU似乎帮助估计位置。那么为什么会出现这样的情况,算法结合这些传感器吗?
再次,直觉上我们可以想象,乌兹别克斯坦伊斯兰运动让我们死GPS更新之间的估计系统的状态,类似于我们如何使用陀螺死认为杂志和accel更新上一节。这是真的,除了它不是那样老生常谈;这是一个交织在一起的比你想象的多得多。要理解为什么是这种情况,我们需要探索代码。
continuous-discrete扩展卡尔曼滤波融合算法。这个设置接受传感器异步测量数据,这意味着每一个传感器可以在他们自己的阅读率。这是有益的,如果你想跑,说,你的陀螺在100赫兹,你的杂志和加速度计50赫兹,和GPS在1赫兹。下面你会看到这是如何处理的。
我想指出,虽然,这是一个巨大的卡尔曼滤波器。状态向量有28个元素同时被估计。有明显的取向等州,角速度,线性位置,速度,加速度。但过滤器也估计传感器偏差和杂志领域的向量。估计传感器偏差是非常重要,因为偏差飘。这意味着即使你计算传感器偏差在你操作系统和校准值硬编码到软件,它将长时间不准确。我们不要删除任何偏差将被整合,导致估计离开事实当我们依赖,传感器。
现在,如果你没有一个好的初始估计的传感器偏差当你开始你的系统,那么你不能马上打开你的过滤器和信任。你必须给它一些时间不只是估计的主要州你关心喜欢的位置和速度,而且估计的一些次要偏差等州。通常你让卡尔曼滤波器收敛于正确的解决方案当系统是静止的,而不是控制,或者当你控制它使用不同的估计算法,或者也许你只是让它运行,你不在乎,系统表现欠佳,而滤波器收敛。所以当我们谈论卡尔曼滤波器足够的时间收敛,这是它的一部分。
我们需要考虑的另一件事是如何初始化滤波器。这是一个卡尔曼滤波器,它可以为非线性系统状态估计。它通过线性化模型在目前的估计,然后使用线性模型来预测未来。如果过滤器不是足够接近真实状态初始化,线性化过程可以如此遥远,实际上导致过滤器从来没有收敛。现在这不是一个问题对于这个例子因为地面真理在仿真,所以过滤器只是初始化状态接近真理。但在实际系统中,你需要考虑如何初始化滤波器当你不知道真相。
通常,这可以通过使用直接从传感器测量。像使用最后一个GPS阅读来初始化位置和速度,利用陀螺角速率来初始化,等等。
过滤器的初始化,我们可以开始运行它。和每一个卡尔曼滤波器由相同的两步的过程:预测和正确的。
理解为什么我们可以这样想,如果我们要估计的状态为例,它在哪里,或者多快去那里是两个一般方法:我们可以直接测量它,或者我们可以使用我们的动力学和运动学知识来预测它在哪里。
例如,想象一个汽车在公路上行驶,我们想知道它的位置。我们可以直接使用GPS测量它的位置。这是一种方法。但是,如果我们知道它开始,平均速度,我们也可以预测它将在一定的时间精度。和使用这些预测与测量可以产生一个更好的估计。问题可能是,为什么我们不会完全信任我们的测量吗?可能比我们的估计。作为一个极端的例子,如果你检查你的手表,它说这是下午3点。你等了几秒钟,然后,检查了一遍,说下午4点。你不会自动承担一个小时过去了只是因为你测量这样说。你有一个基本的了解,对吧? That is, you have an internal model that you can use to predict how much time has passed, and that would cause you to be skeptical of your watch if you thought seconds passed and it said an hour. On the other hand, if you thought about an hour had passed but the watch said 65 minutes, you would probably be more inclined to believe the watch over your own estimate since you’d be less confident in your prediction. And sensors have errors and uncertainty associated with them and you can improve the state estimate by including a prediction even if your sensor is pretty good.
这正是一个卡尔曼滤波器。它是预测美国将如何随时间变化的基于模型,和美国,这也是值得信赖的跟踪预测是基于你给它的过程噪声。滤波器预测状态的时间越长,越不自信的结果。然后,每当一个新测量进来,有自己的与之相关的测量噪声,滤波比较预测与测量和纠正了其估计的基础上,在两个相对的信心。
这是脚本做什么。在100赫兹模拟运行时,在每一个时间步,它预测提出了估计的州。然后,如果有一个新的测量从任何的传感器,它运行的更新部分卡尔曼滤波器,基于相对调整美国的信心预测和特定的测量。所以这样的过滤器可以运行异步测量。
现在,随着GPS只有解决方案,我们开始,预测步骤只能假设1秒速度没有变化,因为没有更新正确的假设,估计会彻底逃避真理。然而,IMU,过滤器更新每秒100次的速度和加速度计和看到的速度实际上是改变。所以在这种方式,过滤器能对状态变化迅速做出反应的快速更新IMU比它慢更新的GPS。一旦滤波器收敛,和它有一个很好的估计传感器的偏见,那将给我们一个整体更好的预测,因此,一个更好的整体状态估计。这是传感器融合的力量。
现在,这个解释可能不完全清楚,可能有点快,但是我觉得很难真正得到水槽的主题通过观看视频。所以我鼓励你在这个例子中,打开和关闭传感器,改变利率,噪声特点,和轨迹,看看估计影响自己。你甚至可以将深入研究代码,看看卡尔曼滤波器实现。我发现它是有用的地方断点和暂停执行的脚本,这样我就可以看到不同的功能更新状态向量。
好的,这个我要离开这个地方。下一节,我们将看看估计当我们谈论其他对象的状态跟踪算法。
所以如果你不想错过,和未来的技术演讲视频,别忘了订阅这个通道。如果你想要,你可以查看我的通道,控制系统的讲座,我覆盖更多的控制理论主题。谢谢收看。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。