基于车轮安装MEMS IMU的航迹推算算法研究

2023-12-22 12:52

本文主要是介绍基于车轮安装MEMS IMU的航迹推算算法研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文由来:前一篇文章“零速更新(ZUPT)辅助INS定位”,并通过开源方案ZUPT-aided-INS进行了算法验证。在验证过程中,意识到在进行多源传感器融合算法中,利用载体自身运动信息进行约束修正非常重要,因为这不需要额外增加传感器在现有系统上进行ZUPT/ZIHR,可以提高系统精度和鲁棒性,特别是在部分场景中多源传感器中部分传感器退化的情况下,在日常工作中也常称为“engineer trick”。
在阅读相关论文时,发现论文“基于车轮安装MEMS IMU的航迹推算算法研究”,发现文章写的很好,收获很大,很有参考意义,算是阅读记录一下吧。

文章参考来源论文:“基于车轮安装MEMS IMU的航迹推算算法研究”

由于Wheel-IMU跟随车轮不断旋转,安装方式和imu坐标系定义不同,在算法中的处理方式也不同。基于旋转效应对捷联惯导误差的调制作用,充分挖掘Wheel-IMU的定位能力。基于陀螺间接测量得到的车轮速度,进一步探讨由车轮速度信息构建不同观测值用于滤波量测更新的算法,并基于载体自身运动信息约束,构建零速更新和零航向角速率观测值,设计一种性能最优、计算最简洁的约束算法。

一、Wheel-IMU的安装方案和安装角的标定方法

为了避免俯仰角出现奇异问题,将imu的旋转轴定义为X轴,指向车体右侧,且认定imu与载体之间的偏航角偏差固定为90°。imu与载体系坐标定义如下图:

在这里插入图片描述

1.旋转调制效应分析

姿态误差和速度误差受陀螺和加速度计误差影响,而周期性旋转可以抑制误差累计,以陀螺为例,假设车轮imu的X轴指向正北,且在短时间内车轮转速固定,则imu角速度误差在n系下的投影为:
在这里插入图片描述
假定在车轮旋转一圈的时间内误差恒定,对上式积分得到由于陀螺误差引起的姿态误差:
在这里插入图片描述
从上式可以看出,由于车轮旋转,imu非旋转轴的测量误差在n系下被调制成正弦波,经过一圈积分后,累计误差为零。同理,加速度计测量误差所引起的速度误差,在经过一圈的积分后,非旋转轴累计误差为零。
因此,在一圈旋转周期内造成的东向和地向的累计速度误差以及俯仰、航向误差为零,imu安装在车轮上在一定程度上抵消了imu的常值偏差。

2.车轮imu安装角标定

由于imu安装无法与车轮完全对齐,存在imu中心与车轮中心不重合的误差,以及imu轴系与车轮坐标系不平行的误差,分别称为杠臂误差和安装角误差。
由于imu随着车轮一直旋转,车轮坐标系和imu坐标系的y/z轴指向会周期性地变化,所以忽略imu与车轮坐标系之间的横滚角,只对航向角和俯仰安装角进行校准。
忽略地球自转,在载体沿直线形式或者车轮空转时,可以认为imu测量的角速度完全来自于车轮角速度的投影,则有:
在这里插入图片描述
仅考虑航向角和俯仰角,忽略无关项,有:
在这里插入图片描述
代入上试,得到:
在这里插入图片描述
求解,可以得到imu相对于车轮的安装角:
在这里插入图片描述
实际应用中,可以将轮架空,提前利用静止时段数据扣除陀螺零偏,然后是车轮空转,利用一段时间数据求平均值。对于不能架空车轮的机器,可以沿着既定轨迹走一段直线,并采集wheel-imu数据求平均结果。
另杠臂误差的校准,后续会增广到卡尔曼滤波的状态向量中进行实时估计。

二、基于滤波航迹推算算法

1.算法整体框架

a.初始化载体位置、速度和姿态(PVA)后,利用wheel-imu测量数据进行机械编排推算载体状态;
b.利用imu角速度和比力测量值探测载体状态,判断载体是否进入静止状态,若进入,则进行ZUPT和ZIHR量测更新;
c.当载体开始运动时,采用速度信息作为量测更新。速度约束观测值有三种形式:(1)利用imu角速度和车轮半径计算车轮前进速度,结合NHC在v系进行约束,即传统的ODO/INS组合导航思路;(2)将车轮前进速度投影到n系,积分得到imu在一段时间内的位移,以此作为观测值;(3)通过杠臂、车轮半径和imu水平姿态将imu速度投影到车轮上的触地点,利用“当载体不发生侧滑和颠簸等状况时,车轮上与地面接触点相对于n系速度为零”这一条件构建约束。
d.利用滤波后得到的imu误差估计值补偿imu原始数据,同时载体运动误差反馈给载体状态,得到滤波更新之后的运动信息。并将ekf输出的航向结果,结合车轮速度得到平面DR推算位置结果。
三种观测值构建的航迹推算系统框架如下:
在这里插入图片描述

2.系统误差状态方程(视觉里程计比例因子、imu的零偏误差和比例因子误差、杠臂误差)

考虑车辆行驶过程中,由于自重、温度等变化导致轮胎压强变化造成车轮实际半径与标称半径的偏差,将该误差建模为与车轮半径按比例变化,视为里程计比例因子误差sv,则:
在这里插入图片描述
由于杠臂误差直接会影响到imu的向心加速度和速度投影,与其它误差有较好的区分度,所以imu y、z轴的杠臂误差有较强的客观性。将上述误差增光到卡尔曼滤波系统状态中,可以得到基于车轮安装imu的航迹的推算算法滤波模型的状态向量如下:
在这里插入图片描述
将imu的零偏误差和比例因子误差建模为一阶高斯-马尔科夫过程,可得imu零偏和比例因子误差的微分方程:
在这里插入图片描述
将里程计比例因子和杠臂误差建模为随机游走,其微分方程为:
在这里插入图片描述

3.车轮速度信息约束算法

a.车轮中心速度约束

补偿imu安装角和陀螺误差后,可以更准确由陀螺x轴测量值和车轮半径计算车轮前进速度:
在这里插入图片描述对于一般车辆,其在平面上正常行驶,假设不发生颠簸和侧滑,车体只有沿着前进方向的速度,侧向和垂向速度为零。这一基本假设,称为非完整性约束(NHC)。车辆满足该约束时,载体坐标系下的观测向量可以表示为:
在这里插入图片描述
车辆运动约束和非完整性约束均属于载体坐标系下的观测值,因此与imu的状态构建约束时需要获得b系和v系的转换关系。
在传统的车载里程计、惯导组合导航算法中,imu安装在车身,需要提前标定或在线标定imu安装角,并视为固定值。而在该方案中,imu安装在车轮上,imu相对于载体的横滚角程周期性变化,无法感受载体的水平姿态,即仅仅依靠车轮imu,无法判断车辆是上坡还是下坡。
因此,假设车辆行驶在水平面上,v系相对于n系只存在航向角误差,则有:
在这里插入图片描述
载体的航向角误差可认为与imu的航向角误差相等。
由imu速度经过杠臂投影得到的车轮速度为:
在这里插入图片描述
则,车轮中心速度约束方程误差方程可以表示为:
在这里插入图片描述
ps:状态向量的误差方程有固定思路,如下:
该推导方式下,误差等于预测减去观测值。当然也可以观测减去预测。

在这里插入图片描述

b.里程增量约束算法

思路:由陀螺角速度和车轮半径可以计算车轮在任意时刻的速度,经过积分之后可以得到位移增量。
n系下的里程速度观测:
在这里插入图片描述
由imu速度推算得到的车轮在n系下的速度为:
在这里插入图片描述
两式相减得到:
在这里插入图片描述
两边积分,并认为积分区间内误差恒定,则:
在这里插入图片描述
忽略地球自转,则:
在这里插入图片描述
综上,得到里程增量约束算法的观测方程:
在这里插入图片描述

c.车轮接触地点零约束算法

根据非完整性约束,轮式机器人正常行驶在路面上时,测向和垂向的速度为零。
假设某个瞬间车轮中心相对于地面前进的速度为v,此时由于车轮子在旋转,车轮上与地面接触点相对于车轮中心的速度也为v,方向与车辆前进的方向相反,则当载体不发生颠簸和侧滑时,该点相对于地面的速度始终为零。
不同于传统的里程计速度约束,该方案无需获得车轮速度,而是通过杠臂将车轮imu速度投影换算至车轮与地面接触点,这时该点速度v(p2n) = [0 0 0]^T。
车轮接触点零速投影示意图如下:
在这里插入图片描述
由imu速度计算得到的车轮触地点p的速度为:
在这里插入图片描述
l(p2b)表示p点在b系下的杠臂。随着车轮转动,p点在b系下的位置动态地变化,需要根据imu横滚角实时计算。假设车辆在水平面上运动,则:
在这里插入图片描述
p点速度观测值可以表示为:
在这里插入图片描述
因此,速度投影约束算法的误差方程可以表示为:
在这里插入图片描述

4.零速修正和静止航向锁定

在不外加传感器的情况下,依靠载体自身的运动信息引入约束,抑制INS误差发散,主要包括ZUPT/ZIHR。
以文章(零速更新(ZUPT)辅助INS定位)一样,流程1.零速检测;2.零速更新成立,进行误差修正。
本文采用固定长度滑动窗口内的加速度、速度和角速度三个量的峰峰值来和阈值对比,判断载体是否处于静止状态。实际功能工程应用中,可以针对不同的运动载体和环境选用不同阈值。
在这里插入图片描述
当判断零速更新成立时,imu速度观测值可以表示为:
在这里插入图片描述
零速更新的观测方程可以表示为:

在这里插入图片描述
由误差扰动分析,imu推算得到的载体姿态矩阵和航向角可以分别表示为:
在这里插入图片描述
静止航向锁定的观测方程可以表示为:

在这里插入图片描述

三、基于车轮速度信息构建的三种观测约束算法讨论

从以上推导可以看出,三种观测值更新算法本质上都是利用载体车轮速度信息对系统状态进行修正。其中:
1.车轮中心速度约束算法将imu速度经杠臂和姿态矩阵C_b2n)投影到车轮中心,联合NHC与陀螺数据推算的v系下的车轮速度构建约束。引起观测误差的系统误差状态主要包括速度误差、姿态误差、陀螺误差、杠臂误差和里程计比例因子误差。
2.里程计增量约束算法是将载体速度投影在n系下进行积分得到一段时间内的位移增量,并假设在积分区间内系统误差状态不变。引起观测误差的系统状态包括速度误差、姿态误差、陀螺误差、杠臂误差、加速度计误差和车轮比例因子误差。
3.车轮触地点投影约束并不需要利用陀螺数据计算车轮中心的速度,而是利用“当载体不发生颠簸、侧滑等现象时,车轮触地点相对于n系的速度为零”这一条件构件约束。引起观测误差的系统状态包括速度误差、姿态误差、陀螺误差、杠臂误差和车轮比例因子误差。

同时,三种算法都依赖非完整性约束和载体水平面运动假设。对于车轮中心速度约束算法和里程增量约束算法比较直观,因其观测方程建立时需要载体在v系下的速度和载体姿态。而对于车轮触地点投影约束,载体水平面运动约束提现在利用车轮旋转角和半径进行速度投影。此时若载体运动在斜面上,则速度投影还应该在imu横滚角上补偿载体俯仰角。对于里程计增量约束算法,在载体动态较大时,不满足积分区间内系统保持不变这一假设,同时速度观测噪声也在无形中进行了积分,一定程度上破坏了卡尔曼中观测噪声服从高斯分布这一条件,并且里程计增量约束对NHC的假设更强一些,需要保证在积分区间内载体垂向速度和侧向速度均为零。对于车轮中心约束,由于载体航向也来自于imu姿态,因此在速度投影时引入了额外的航向误差。而对于车轮触地点零点约束,则在速度投影引入了横滚角误差。

综上,三种观测值约束算法利用的信息本质上是相同的,只是观测值加工的手段不同,不同的观测值引入不同的微小误差,因此,最终的导航结果也不应有明显的差异。

缺陷:1.单体车轮安装imu受限于水平面运动假设,在起伏不平的路段精度会下降,同时单个系统的鲁棒性有待提高。

改进:针对缺陷1,可以通过车体安装imu,检测载体的水平姿态信息;针对缺陷2,考虑在两个非转向轮同时安装imu,进行两次观测去平均。同时车身安装imu,可以用imu之间的空间位姿关系来修正系统误差。

这篇关于基于车轮安装MEMS IMU的航迹推算算法研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/524012

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme