在自动驾驶中ESKF实现GINS时,是否将重力g作为变量考虑进去的目的是什么?

在自动驾驶的ESKF中,是否将重力 g 作为估计变量,可以从多个维度来比较这两种方法的差异。

对比维度 不将重力 g 作为变量 将重力 g 作为变量
核心假设 重力矢量 g已知且恒定的完美参考量。 重力矢量 g需要被估计或校准的量,其值可能存在不确定性。
状态向量 δx = [δθ, δv, δp, δb_g, δb_a] δx = [δθ, δv, δp, δb_g, δb_a, δg ]
姿态初始化 (Pitch/Roll) 依赖初始静止时段计算,一旦计算完成即固定。无法在运动中修正因误差导致的初始对准偏差。 持续估计。在运动过程中仍可利用重力方向作为参考,不断修正俯仰和滚转角的误差。
加速度计Bias估计 与姿态误差耦合严重。容易将姿态误差误判为Bias,或将Bias误判为姿态误差,导致估计不准。 通过引入重力误差状态,更好地解耦了姿态误差和加速度计Bias,能更准确地估计出Bias。
鲁棒性 较低。对IMU的初始对准精度要求高。在非水平路面、重力异常区域或车辆长时间动态运动时,性能下降明显。 极高。能适应坡道、不同地理经纬度(重力细微变化)、以及初始对准不完美的情况,系统更自适应。
处理运动加速度 "黑盒"处理。通常需依赖车辆动力学模型或机器学习方法来判断当前加速度是运动导致还是姿态导致,设计复杂。 "白盒"优化 。滤波器通过状态估计自动学习 和区分。它将测量到的加速度分解为:运动加速度 + 重力加速度分量 + bias,并通过观测(如GNSS速度)来约束运动加速度,从而反向优化重力和姿态的估计。
计算复杂度 稍低。状态向量维度更小,计算量略小。 稍高。增加了状态维度,计算量略有增加,但对于现代处理器而言可忽略不计。

个人理解:(如果觉得理解有不到位地方,欢迎批评指正!!!)

1. 不估计重力(重力恒定)的情况
  • 初始对准必需:系统必须通过初始静止时段(或其它方法)确定R0。加速度计测量重力矢量在b系中的投影,可得到R0。
  • 参考系固定 :一旦R0确定,整个导航坐标系(n系)就被固定了,其Z轴与初始重力方向对齐(即水平面)。后续所有姿态更新(通过积分陀螺仪数据)都是相对于这个固定的n系。因此,IMU的姿态是相对于初始时刻建立的水平面描述的。
  • 如果初始对准准确,姿态估计正确。但如果初始对准有误差(例如,由于坡道导致计算R0时假设错误),误差会持续影响后续估计。但关键是,n系本身是水平的,与坡道无关。
2. 估计重力(重力作为状态变量)的情况
  • 初始姿态可设为单元阵:即设R0 = I(单位阵)。
  • 重力作为状态变量:重力矢量g被纳入状态估计,初始值可设为[0, 0, -9.8]^T,允许滤波器后续优化其值。
  • 动态估计水平面 :通过融合IMU测量和GNSS等观测数据,滤波器会持续估计重力矢量的方向。这个估计的重力方向实际上定义了当前的真实水平面(因为重力方向垂直向下)。因此,重力矢量的估计值充当了一个动态参考,允许计算IMU当前姿态相对于水平面的偏移,而无需精确的初始对准。
  • 鲁棒性:这种方法能自动校正初始对准误差、IMU bias以及重力模型误差(如不同地区的重力变化),更适合复杂场景(如坡道、运动中的初始化)。

未完待续。。。

相关推荐
黎燃3 小时前
短视频平台内容推荐算法优化:从协同过滤到多模态深度学习
人工智能
飞哥数智坊4 小时前
多次尝试用 CodeBuddy 做小程序,最终我放弃了
人工智能·ai编程
后端小肥肠5 小时前
别再眼馋 10w + 治愈漫画!Coze 工作流 3 分钟出成品,小白可学
人工智能·aigc·coze
唐某人丶7 小时前
教你如何用 JS 实现 Agent 系统(2)—— 开发 ReAct 版本的“深度搜索”
前端·人工智能·aigc
FIT2CLOUD飞致云8 小时前
九月月报丨MaxKB在不同规模医疗机构的应用进展汇报
人工智能·开源
阿里云大数据AI技术8 小时前
【新模型速递】PAI-Model Gallery云上一键部署Qwen3-Next系列模型
人工智能
袁庭新8 小时前
全球首位AI机器人部长,背负反腐重任
人工智能·aigc
机器之心8 小时前
谁说Scaling Law到头了?新研究:每一步的微小提升会带来指数级增长
人工智能·openai
算家计算9 小时前
AI配音革命!B站最新开源IndexTTS2本地部署教程:精准对口型,情感随心换
人工智能·开源·aigc
量子位9 小时前
马斯克周末血裁xAI 500人
人工智能·ai编程