当前位置: 首页 > news >正文

在自动驾驶中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以及重力模型误差(如不同地区的重力变化),更适合复杂场景(如坡道、运动中的初始化)。

未完待续。。。

http://www.xdnf.cn/news/1345915.html

相关文章:

  • ASPICE过程能力确定——度量框架
  • Unity--判断一个点是否在扇形区域里面(点乘和叉乘的应用)
  • 视觉语言大模型应用开发——基于 CLIP、Gemini 与 Qwen2.5-VL 的视频理解内容审核全流程实现
  • ref 简单讲解
  • flutter geolocator Android国内定位失败问题解决
  • JVM 调优全流程案例:从频繁 Full GC 到百万 QPS 的实战蜕变
  • 【大模型本地运行与部署框架】Ollama的cmd常用命令
  • Linux 软件编程(九)网络编程:IP、端口与 UDP 套接字
  • 【Python】两条命令永久切国内源
  • 本地组策略编辑器图形化工具
  • 力扣(在排序数组中查找元素的第一个和最后一个位置)
  • 当我们想用GPU(nlp模型篇)
  • 开源 python 应用 开发(十)音频压缩
  • 开源 python 应用 开发(十一)短语音转文本
  • ZKmall模块商城的跨境电商支付安全方案:加密与权限的双重防护
  • 数据结构 -- 树
  • STM32G4-比较器
  • 亚马逊老品怎么再次爆发流量?
  • 计算机内存中的整型存储奥秘、大小端字节序及其判断方法
  • 量子计算基础
  • 豆包AI PPT与秒出PPT对比评测:谁更适合你?
  • 树莓派安装pyqt5 opencv等库一些问题
  • 使用 YAML 文件,如何优雅地删除 k8s 资源?
  • 高并发用户数峰值对系统架构设计有哪些影响?
  • .java->.class->java 虚拟机中运行
  • 设计模式:抽象工厂模式
  • 实验二 Cisco IOS Site-to-Site Pre-share Key
  • 异质结3.0时代的降本提效革命:捷造科技设备技术创新与产业拐点分析
  • 高级SQL优化 | 告别 Hive 中 GROUP BY 的大 KEY 数据倾斜!PawSQL 自适应优化算法详解
  • Logstash——输出(Output)