深蓝学院-多传感器融合定位-第7章作业

本文介绍了在深蓝学院多传感器融合定位课程中,使用Error-State Kalman Filter进行LiDAR和IMU数据融合的作业实现。作者详细探讨了从及格到优秀各个级别的参数调整,包括Version 1到6的效果,通过APE指标展示了不同版本的定位精度。在优秀题中,作者引入了避免随机游走bias的策略,并展示了在KITTI数据集上的优秀运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Github: https://github.com/WeihengXia0123/LiDar-SLAM

在这里插入图片描述

1. 及格题

(大概整了一两天,终于可以编译了…关键问题在于,docker的环境可能被很多次作业打乱了。在助教葛大佬的提示下,新创建了一个assignments/来放第七章作业的代码,神奇地解决了初始代码的编译问题)

及格部分的代码就是按照深蓝07章课件中的Error-State Kalman Filter的公式来。

注意: 和EKF有点区别。

//
// TODO: perform Kalman prediction
//
X_ = F * X_;                                          // fix this
P_ = F * P_ * F.transpose() + B * Q_ * B.transpose(); // fix this


//
// TODO: set measurement:
// 误差:预测值 - 观测值
//
Eigen::Vector3d P_nn_obs = pose_.block<3,1>(0,3) - T_nb.block<3,1>(0,3);             // fix this
Eigen::Matrix3d R_nn_obs = T_nb.block<3,3>(0,0).transpose() * pose_.block<3,3>(0,0); // fix this

YPose_.block<3, 1>(0, 0) = P_nn_obs;
YPose_.block<3, 1>(3, 0) = Sophus::SO3d::vee(R_nn_obs - Eigen::Matrix3d::Identity());

Y = YPose_;

// set measurement equation:
G = GPose_;

//
// TODO: set Kalman gain:
//
MatrixRPose R = RPose_; // fix this
MatrixCPose C = Eigen::MatrixXd::Identity(6,6);
K = P_ * G.transpose() * (G*P_*G.transpose() + C*R*C.transpose()).inverse(
### 深蓝学院多传感器融合第五资料 #### 5.1 惯性器件误差分析概述 惯性测量单元(IMU)作为自动驾驶车辆中的重要组成部分,在提供高精度位置估计方面起着至关重要的作用。然而,由于制造工艺、环境因素以及长期运行的影响,IMU不可避免地存在各种类型的误差[^1]。 这些误差可以分为两大类:静态误差和动态误差。静态误差主要包括偏置、比例因子失配等;而动态误差则涉及随机游走、角速度噪声密度等问题。了解并掌握这些误差特性对于提高基于IMU的姿态解算精度至关重要。 #### 5.2 常见惯性器件误差源解析 具体来说,常见的惯性器件误差来源有以下几个方面: - **加速度计零位漂移**:即使在静止状态下,输出也并非绝对为零; - **陀螺仪常值偏差**:当设备处于稳定状态时,理论上应保持恒定的角度变化率,但实际上会有微小波动; - **温度敏感度影响**:随着工作环境中温度的变化,内部参数会发生相应改变,进而引起读数不准; - **振动干扰效应**:外部机械震动会通过结构传递给传感元件,造成额外的扰动信号叠加到原始数据之上。 为了有效应对上述挑战,研究者们提出了多种校准算法和技术手段来降低或消除各类误差带来的负面影响。 ```python import numpy as np def calibrate_imu(sensor_data, temperature_coefficients): """ 对IMU数据进行温度补偿校正 参数: sensor_data (np.array): IMU原始采集的数据集 temperature_coefficients (dict): 各种温度系数字典 返回: calibrated_data (np.array): 经过处理后的更精确的结果数组 """ # 实现具体的校准逻辑... pass ``` #### 5.3 应用实例——基于Kalman滤波器的状态估计优化 针对实际应用场景中存在的复杂情况,采用扩展卡尔曼滤波(EKF)方法能够较好地解决非线性系统的最优估计问题。通过对预测模型与观测方程的设计,EKF可以在一定程度上抑制由IMU引起的累积误差增长趋势,从而获得更加可靠的导航解决方案。 ---
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值