imu_tk标定算法原理
imu_tk代码地址
https://bitbucket.org/alberto_pretto/imu_tk
II. S ENSOR E RROR M ODEL
对于理想的IMU,加速度计三元组的3个轴和陀螺仪三元组的3个轴定义单个共享的正交3D帧。 每个加速度计检测沿一个不同轴的加速度,而每个陀螺仪测量围绕同一轴的角速度。 不幸的是,在实际IMU中,由于组装不准确,两个三元组形成两个不同的(即,未对准的)非正交的帧。 此外,单个传感器并不完美:通常,用于以实际物理量转换传感器的数字输出的比例因子对于相同传感器的不同实例是不同的,而制造商仅提供默认的标称比例因子。 此外,输出信号几乎总是受非零可变偏差的影响。
如上所述,加速度计帧(AF)和陀螺仪帧(GF)通常都是非正交的。 我们可以通过以下方式定义两个相关的正交理想帧(分别为AOF和GOF):
•AOF的x轴和AF的x轴重合
•AOF的y轴位于AF的x轴和y轴所跨越的平面中。
对于陀螺仪情况,分别用GF和GOF替换AF和AOF缩写词就足够了。 最后,我们定义一个主体框架(BF),它是一个正交框架,表示例如IMU底盘的坐标系。 车身框架通常与AF和GF框架的角度不同,但通常它们之间没有直接关系。 对于小角度,非正交帧(AF或GF)中的测量s S可以在正交体帧中变换为(对于推导的细节,参见[18]):
其中s B和s S分别表示车身坐标和加速度计(或陀螺仪)坐标中的特定力(加速度)或等效的旋转速度。 这里βij是围绕第j个BF轴的第i个加速度计或陀螺仪轴的旋转,参见图2。
另一方面,两个正交帧BF和AOF(以及等效地,BF和GOF)通过纯旋转相关。
在所提出的校准方法中,我们假设车身框架BF与加速度计正交框架AOF一致:在这种情况下,角度βxz,βxy,βyx变为零,因此在加速度计情况下,等式1变为:
我们改变字母β,参考一般情况,字母α,指加速度计情况,而O和S分别表示AOF和AF中的特定加速度3。
如前所述,陀螺仪和加速度计测量应参考相同的参考系,在我们的例子中是AOF。 然后,使用Eq 1,对于陀螺仪,我们有:
其中ωO和ωS分别表示AOF和GF中的特定角速度。
加速度计和陀螺仪都受到偏差和尺度误差的影响。 引入了两个缩放矩阵
我们还介绍了两个偏向量
完整的传感器误差模型是
对于加速度计
对于陀螺仪,其中νg和νg分别是加速度计测量噪声和陀螺仪测量噪声。
III. B ASIC C ALIBRATION F RAMEWORK
为了校准加速度计三元组,我们需要估计以下未知参数向量:
我们定义以下函数:
在这里,我们可以忽略测量噪声,因为在我们的校准过程中,我们在每个静态间隔中应用信号平均。
与传统的多位置方案一样,我们将IMU移动到一组M个不同的,暂时稳定的旋转中。 我们可以提取M个加速度矢量Sk(在非正交AF中测量),在每个静态间隔内的时间窗口中对加速度计读数求平均。 我们用来估算加速度计参数的成本函数是:
其中|| g || 是可以从特定公共表格中容易地恢复的局部重力矢量的实际大小(例如,知道我们正在执行校准的位置的纬度,经度和高度)。 为了最小化Eq 10,我们采用Levenberg-Marquardt(LM)算法。
为了校准陀螺仪三元组,我们可以假设系统无偏置,在适当的无运动初始阶段简单地平均静态陀螺仪信号。 以下关于艾伦方差的讨论证明了这一点(参见第IV-C节)。 此外,由于我们需要使用加速度计作为已知参考,我们使用上面计算的校准参数θacc,用等式9校正加速度计读数。
我们定义运算符Ψ,它将n个陀螺仪读数的序列ωSi和由校准的加速度计给出的初始重力值ua,k-1(即表示重力方向的单位矢量)作为输入,并返回最终的重力 或者ug,k,使用第k-1和第k个静态区间之间的陀螺仪测量值计算:
Ψ可以是通过积分输入角速度来计算最终方向的任何积分算法。我们需要估计以校准陀螺仪的未知参数矢量是:
在这种情况下,我们可以将成本函数定义为:
其中M是静态区间的数量,ua,k是在时间窗口中对第k个静态区间中的校准加速度计读数进行平均测量的加速度,并且ug,k是使用等式11计算的加速度对数(即,积分 第k-1和第k个静态区间之间的角速度)。 我们获得θ陀螺,用LM最小化Eq 13。
IV. C ALIBRATION P ROCEDURE
如第二节所述。 I,所提出的校准框架需要收集具有原始加速度计和陀螺仪读数的流的数据集,当操作者在不同的静态位置移动IMU时获取该数据集,以便产生一组不同的,暂时稳定的旋转。 我们的校准协议的简单图表如图1所示。 III,为了减轻Eq 10和Eq 13最小化时的噪声影响,我们需要在适当的时间间隔内对信号求平均值。 这对静态间隔的长度施加了下限(图1中的t等待)。没有运动的初始化周期(图1中的T init)也是必不可少的:这将被用来表征陀螺仪的偏差( 第IV-C节)和静态探测器操作员(第IV-A节)。
A. Static Detector
校准的准确性很大程度上取决于静态和运动间隔之间分类的可靠性:校准加速度计我们使用静态间隔,而对于陀螺仪校准,我们还包括两个连续静态间隔之间的运动间隔。根据我们的经验, 传递基于滤波器的算子,如[8]中使用的准静态检测器,对真实数据集表现不佳:检测到的静态间隔通常包括一小部分运动。 而且,它们需要微调,因为它们取决于三个参数。
我们建议使用基于方差的静态检测器算子,它利用上面介绍的静态区间长度的下限。 我们将探测器基于加速度计信号:给定时间间隔长度为t秒(参见图1),对于每个加速度计样本(tx,a ty,tz),在时间t,我们计算方差幅度,即 方差的大小如下:
其中var t w(a t)是在以t为中心的长度为t w秒的时间间隔内计算一般信号a t的方差的算子。 我们在静态和运动间隔之间进行分类,只需检查ζ(t)的平方是否低于或大于阈值。
作为阈值,我们考虑在所有初始化时段T init上计算的方差幅度ζinit的平方的整数倍。 在所有实验中,我们使用t w = 2秒,而使用Allan方差估计T init(参见第IV-C节)。 值得注意的是,我们的静态探测器不需要任何参数调整:分类中使用的整数乘数由我们的校准算法自动估算(参见第IV-D节)。 图3报告了我们的静态滤波器如何处理实际数据的示例:在这种情况下,估计的整数乘数为6。
B. Runge-Kutta Integration
D. Complete Procedure
为了避免校准参数估计中的不可观察性,必须收集至少九种不同的高度[15](例如,图1)。 根据我们的经验,需要更多N个不同的高度来获得更好的校准结果,同时保持减少每个静态间隔的持续时间,以保持陀螺仪偏差的时间稳定性的假设。当36≤N≤50且1秒≤t等于≤4秒时,我们在校准精度,偏差稳定性和降噪之间取得了良好的平衡。
初始化时段T init的持续时间由Allan方差分析给出(参见第IV-C节)。 校准协议总结在图1中,而在算法1中,报告校准算法的伪代码。
imu_tk标定算法原理的更多相关文章
- imu_tk标定算法
IMU(惯性测量单位)是机器人中非常流行的传感器:其中,它们被用于惯性导航[1],姿态估计[2]和视觉惯性导航[3],[4],也使用 智能手机设备[5]. 机器人技术中使用的IMU通常基于MEMS(微 ...
- Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理
Atitit 图像清晰度 模糊度 检测 识别 评价算法 原理 1.1. 图像边缘一般都是通过对图像进行梯度运算来实现的1 1.2. Remark: 1 1.3. 1.失焦检测. 衡量画面模糊的主要方 ...
- 摄像头Camera 标定Calibration原理Theory
摄像头Camera 标定Calibration原理Theory cv2.cameraCalibration Pinhole camera calibration calls camera vision ...
- Bagging与随机森林算法原理小结
在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...
- RSA算法原理
一直以来对linux中的ssh认证.SSL.TLS这些安全认证似懂非懂的.看到阮一峰博客中对RSA算法的原理做了非常详细的解释,看完之后茅塞顿开,关于RSA的相关文章如下 RSA算法原理(一) RSA ...
- LruCache算法原理及实现
LruCache算法原理及实现 LruCache算法原理 LRU为Least Recently Used的缩写,意思也就是近期最少使用算法.LruCache将LinkedHashMap的顺序设置为LR ...
- MySQL索引背后的数据结构及算法原理【转】
本文来自:张洋的MySQL索引背后的数据结构及算法原理 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持 ...
- OpenGL学习进程(13)第十课:基本图形的底层实现及算法原理
本节介绍OpenGL中绘制直线.圆.椭圆,多边形的算法原理. (1)绘制任意方向(任意斜率)的直线: 1)中点画线法: 中点画线法的算法原理不做介绍,但这里用到最基本的画0<=k ...
- 支持向量机原理(四)SMO算法原理
支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ...
随机推荐
- MongoDB(1)--简单介绍以及安装
前段时间接触了NoSql类型的数据库redis,当时是作为缓存server使用的.那么从这篇博客開始学习还有一个非常出名的NoSql数据库:MongoDb.只是眼下还没有在开发其中使用.一步一步来吧. ...
- tmux入门
按键 man tmux和C+b?两个操作可以获得一切. C-b ? 显示快捷键帮助 C-b C-o 调换窗口位置,类似与vim 里的C-w C-b 空格键 采用下一个内置布局 C-b ! 把当前窗口变 ...
- iOS 几种加密方法
iOS常见的几种加密方法 普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明文形式保存,但是不知道存放的具体位置 1.base64加密 base64 编码是现代密码学的基础 基本原理: ...
- 关于JS拒绝访问错误
错误如图所示,只要点击红色区域 内的任何一部分都会弹出 “js拒绝访问”,以为是浏览器的原因,卸载安装都不好使,左面的是树.点击树的节点弹出右面相应的页面. Node.NavigateUrl = “h ...
- MySQL累积求和
有如下表 id money 1 10 2 20 3 30 4 40 求出如下数据 id money cum 1 10 10 2 20 30 3 30 60 4 40 100 建表 CREA ...
- Socket网络编程--聊天程序(6)
这一小节将增加一个用户的结构体,用于保存用户的用户名和密码,然后发给服务器,然后在服务器进行判断验证.这里就有一个问题,以前讲的就是发送字符串是使用char类型进行传输,然后在服务器进行用同样是字符串 ...
- 动软 生成 linq相关DAO
第一步:新建自定义模板 <#@ template language="c#" HostSpecific="True" #> <#@ outpu ...
- ElasticStack系列之九 & master、data 和 client 节点
在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题. 默认情况下,elasticsearch 集群中每个节点都有成为主节点的资格,也都存 ...
- Spatial Sound Research
Spatial Sound Research What are our goals? The basic goal of our research is to develop cost-effecti ...
- 两次内存断点法寻找OEP
所谓“两次内存断点法寻找OEP”,按照<加密与解密*第三版>上的解释来说,就是这样的.一般的外壳会依次对.text..rdata..data..rsrc区块进行解压(解密)处理,所以,可以 ...