标定板标定和九点标定的区别_组合导航系列文章(六):IMU误差标定之系统级标定...

《组合导航系列文章》是《从零开始做自动驾驶定位》系列的第二阶段,从本阶段开始,文章在《泡泡机器人》公众号上首发,知乎用来备份和以后可能出现的必要更正。

泡泡机器人文章链接:组合导航系列文章(六):IMU误差标定之系统级标定

以下是原文

1. 概述

上一篇文章我们一起讨论了基于转台的标定,其实它还有另一个名字,叫分立级标定。分立级这个名字是从英文单词“discrete”翻译过来,翻译之后可能就变得不是很直观,它实际表达的意思是“互不关联的”。在标定的任务里,这个互不关联,指的就是各个误差参数的标定可以互不干扰,因为从原理上,我们只需要不断地构建方程,就可以把其他变量抵消掉,提取出我们需要的参数,而不需要知道其他参数的值是多少。

本篇文章我们要探讨的,是另一种原理的方法,叫系统级标定。这个名字就比较直观,谜底就在迷面上。

所谓系统级标定,就是把所有误差参数看成是一个完整系统的一部分,要通过参数辨识估计出系统的所有参数才能得到我们要的值。在这里,这个系统就是导航系统,器件参数误差必然导致导航系统输出误差,即位置、速度有误差,而导航系统里误差传播规律是已有的,所以我们可以通过误差方程反向推算出器件误差。实际中,这个反向推算一般通过kalman滤波器实现,导航误差方程和器件误差方程就是它的状态方程,位置、速度误差就是它的观测。

从系统级标定的原理中可以发现,我们需要测量导航系统的位置、速度误差,而如果惯导系统没有线运动,那么它解算出来的位置减掉初始时刻位置便是位置误差,速度输出便直接是速度误差,即位置、速度的基准值天然存在,并且不需要姿态基准,这也是它可以不依赖转台的原因。

我们在实际工程中,会发现有些系统级标定也在用转台做标定,那是因为标定虽然不需要转台做基准,但也需要翻转惯导,手工翻,累呀!

2. 误差模型

我们上次已经分析了一套惯导系统所有的误差项,包括陀螺仪和加速度计各自的零偏、标度因数、安装误差,一共24项。这次我们要做个减法,把它变成21项,减掉的是3项安装误差。

首先,请大家思考一个问题,一个惯性器件,它的三个互相垂直的坐标轴在哪?好像你找不到这样的坐标轴,或者可以找到无数个这样的坐标轴,也就是说,并没有硬性规定它必须在哪。

我们在用转台做标定的时候,转台的旋转轴就是它的坐标轴,那是因为我们要用转台做基准输入,而在系统级标定里,由于不以输入做基准,也就不存在固定的坐标轴。利用这样的误差模型标定时,kalman滤波器虽然也能够收敛,给出最终的器件误差,但这不是因为它找到了唯一解,而是因为它给出的是它自认为正确的解。这种现象,会导致我们不同次标定的结果可能差别很大。

要解决这样的问题,就得先把坐标系固定,要固定,就得在IMU上找到天然存在的坐标轴,与它绑定。在IMU里,天然存在的就只有陀螺仪和加速度计的六个敏感轴了,还犹豫什么,绑它!

绑不能乱绑,IMU的三个坐标轴是我们规定的三个正交轴,而标定之前,由于安装误差的存在,陀螺仪和加速度计的轴都是不正交的。常见的做法是,把IMU的x轴规定为x方向加速度计的敏感轴,y坐标轴放在x加速度计和y加速度计构成的平面里。这样,我们的安装误差矩阵就变成了下面这个样子。

标定板标定和九点标定的区别_组合导航系列文章(六):IMU误差标定之系统级标定..._第1张图片

至于为什么是这样,大家感兴趣的可以看文献,也可以结合上一篇文章里给出的理解安装误差的方法自己理解一下,这里写太啰嗦反而容易绕晕,就不多讲了。

所以,我们最终的误差模型就变成这个样子啦,注意此处的公式变成了陀螺仪和加速度计输出中的误差,而不是他们的输出值。

陀螺仪输出误差:

标定板标定和九点标定的区别_组合导航系列文章(六):IMU误差标定之系统级标定..._第2张图片

加速度计输出误差:

标定板标定和九点标定的区别_组合导航系列文章(六):IMU误差标定之系统级标定..._第3张图片

简化一下,写成下面的形式。

陀螺仪输出误差:

734583fa16aa4f77fb9114e710dc4366.png

加速度计输出误差:

380be424542b2c0a385935c28bc0b8b2.png

3. 参数估计

我们上面提到,系统级标定需要已知惯性导航误差传播方程,并且使用kalman滤波去反向推算器件误差。但是误差方程和滤波我们都还没讲,那是后面的内容,所以应该换一种思路来介绍这个问题。

滤波当然好理解,我们直接把它当成一个普通的参数辨识方法,上一篇文章我们使用的是解方程方法得到解析解,kalman滤波本质上可以认为就是在使用递推的方式来解方程。

对于导航误差传播方程,我们用f代替,即

46fe2c30fe178e3f73768a80dddb59d8.png

而dW和dA的公式都是已知的。这样整个标定过程,就又变成了熟悉的解方程过程,解方程所需要的条件它都需要。比如在上一篇文章解方程的时候,我们需要通过翻转惯导来构建输入,构建输入的过程,就是改变未知数的参数来构建方程组的过程。这里完全一样,上次怎么转,这次还怎么转,当你把所有位置转完的时候,kalman就把结果给你估计好了。

这就是系统级标定。

4. 总结与思考

1)系统级标定由于不需要转台提供基准,已经使用的越来越广泛。现在很多导航设备里都自带两个旋转轴,其中的一个重要目的,就是随时随地能够标定。比如下面这种,它的旋转精度很难称得上好,但是却可以让标定方便一万倍,尤其是已经把设备装在载体上,开到荒山野岭或茫茫大海,离实验室十万八千里的时候。

标定板标定和九点标定的区别_组合导航系列文章(六):IMU误差标定之系统级标定..._第4张图片

2)凡事有好就有坏,系统级标定由于使用的是位置和速度误差,它和器件误差之间还隔了一个导航误差模型,所以就导致器件参数在这样的模型里耦合性更强,没有分立级标定里“分立”所带来的优势,所以有些时候虽然能够收敛,而且状态预测跟踪观测量跟踪得很好,但是并不代表器件参数估计的很精确,有时候可能只是各个耦合参数之间形成的伪平衡而已,怎样更好地激励误差,减小耦合,一直是标定工作里的一项重要研究内容。

上一篇:组合导航系列文章(五):IMU误差标定之基于转台的标定

下一篇:组合导航系列文章(七):IMU误差标定之基于迭代优化的标定

你可能感兴趣的:(标定板标定和九点标定的区别,误差条图各部分的代表意思)