自动驾驶多传感器联合标定系列之IMU到车体坐标系的标定工程 , 本商品在已知GNSS/GPS到...
Imu2Car工程的核心目标是实现IMU到车体坐标系的角度误差标定,通过“安装依赖→编译工程→执行标定”的流程,最终输出角度误差结果。依赖明确:严格依赖Ubuntu系统与Boost/Eigen3.3.7/PCL库,需按步骤安装确保兼容性;算法可选:提供两种标定算法,分别适配“直线行驶”与“自由运动”场景,覆盖不同标定需求;结果直观:标定结果以CSV文件形式输出,便于后续分析与使用,无复杂结果解析成
自动驾驶多传感器联合标定系列之IMU到车体坐标系的标定工程 , 本商品在已知GNSS/GPS到车体坐标系的外参前提下,根据GNSS/GPS的定位信息与IMU信息完成IMU到GNSS/GPS 的外参标定,并进一步获得IMU到车体坐标系的外参标定 本商品提供两种标定模式:车辆直线运动及自由运动,这两种模式下的注释工程
一、工程环境基础
本工程的运行与编译依赖Ubuntu操作系统,所有操作均需在Ubuntu环境下执行,核心依赖包括第三方库安装、基础编译工具配置,最终实现IMU(惯性测量单元)到车体坐标系的标定功能。工程的核心产出是可执行文件与标定结果文件,通过指定算法类型和数据路径完成标定任务。
二、基础工具安装(编译前准备)
在安装第三方库前,需先配置Ubuntu环境的基础编译与操作工具,包括vim(文本编辑工具)、cmake(编译构建工具)、git(代码版本管理工具)、gcc/g++(C/C++编译器),具体安装指令如下:
- 安装
vim与cmake:bash
sudo apt-get install vim cmake
-vim用于后续可能的代码编辑或配置文件修改;
-cmake是工程编译的核心工具,负责生成Makefile,支撑后续编译流程。 - 安装
git:bash
sudo apt-get install git
- 用于拉取工程代码(若工程代码通过Git仓库管理),或后续版本控制操作。 - 安装
gcc与g++:bash
sudo apt-get install gcc g++
- 作为C/C++语言的编译器,是工程源码编译为可执行文件的核心依赖,需确保版本兼容性(推荐GCC 7.0及以上)。
三、第三方库安装(工程核心依赖)
工程运行依赖Boost、Eigen3.3.7、PCL三类第三方库,三者分别提供数值计算、矩阵运算、点云处理能力,是IMU到车体标定算法的基础支撑,具体安装步骤如下:
3.1 Boost库安装
Boost库是C++通用库,提供容器、算法、多线程等基础功能,工程采用指令直接安装方式,操作简单且兼容性强:
sudo apt install libboost-all-dev
- 安装后无需额外配置路径,系统会自动将库文件与头文件放入默认搜索路径(如
/usr/lib、/usr/include),编译时可直接调用。
3.2 Eigen3.3.7库安装(推荐源码安装)
Eigen是线性代数库,核心用于矩阵运算、向量计算,是标定算法中姿态解算、误差计算的关键依赖,需通过源码安装确保版本为3.3.7(版本兼容性对算法精度至关重要):
- 解压缩安装包:将下载的Eigen3.3.7源码压缩包(如
eigen-git-mirror.tar.gz)解压至任意目录,得到源码文件夹eigen-git-mirror; - 编译与安装:进入源码目录,通过
cmake生成编译文件,执行安装指令:bash
cd eigen-git-mirror # 进入源码根目录
mkdir build # 创建编译目录(避免污染源码)
cd build # 进入编译目录
cmake .. # 生成Makefile,..表示上级目录(源码根目录)
sudo make install # 执行安装,将头文件与库文件安装到系统默认路径 - 头文件移动(关键步骤):Eigen安装后,头文件默认路径为
/usr/local/include/eigen3/,但工程编译时需从/usr/local/include/直接引用,因此需执行移动指令:bash
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
--r参数表示递归复制,确保Eigen目录下所有头文件完整迁移,避免编译时出现“头文件找不到”的错误。
3.3 PCL库安装
PCL(点云库)提供点云处理、几何计算能力,支撑标定过程中数据预处理与特征提取,工程推荐参考指定博客完成安装,确保版本适配与功能完整性:
- 参考链接:https://blog.csdn.net/qq42257666/article/details/124574029
-
- 说明:该博客提供Ubuntu环境下PCL库的完整安装流程(含依赖库配置、源码编译、环境变量设置),需严格按照步骤执行,避免因依赖缺失导致安装失败。
四、Imu2Car工程编译(生成可执行文件)
完成基础工具与第三方库安装后,进入Imu2Car工程源码目录,通过cmake与make指令编译工程,最终生成可执行文件,具体步骤如下:
- 进入工程目录:假设工程源码文件夹名为
Imu2Car,通过cd指令进入:bash
cd Imu2Car - 创建编译目录:为避免编译文件污染源码目录,创建
build子目录:bash
mkdir build - 进入编译目录:
bash
cd build - 生成Makefile:通过
cmake解析工程根目录的CMakeLists.txt(工程编译配置文件),生成Makefile:bash
cmake ..
- 若执行过程中提示“找不到Boost/Eigen/PCL库”,需检查对应库的安装路径是否正确,或通过cmake -DCMAKEINCLUDEPATH、cmake -DCMAKELIBRARYPATH指定库路径。 - 执行编译:通过
make -j指令多线程编译(-j后可加数字指定线程数,如make -j4表示4线程编译,速度更快):bash
make -j - 编译结果:编译成功后,工程根目录的
bin文件夹中会生成可执行文件runimuheading——该文件是Imu2Car工程的核心执行入口,用于后续标定任务。
五、Imu2Car工程运行(执行标定任务)
5.1 运行指令格式
进入Imu2Car工程根目录,通过./bin/runimuheading调用可执行文件,指令需传入两个核心参数:算法类型id与离线数据文件夹路径,格式如下:
cd Imu2Car # 进入工程根目录(必须在此目录执行,确保路径正确)
./bin/run_imu_heading 算法类型id 离线录制好的数据文件夹路径
5.2 关键参数说明
5.2.1 算法类型id(仅两种可选)
工程仅支持两种标定算法,通过id区分,核心差异在于可标定的角度误差维度:
- id=1:直线矫正:仅能标定IMU与车体坐标系之间的yaw偏航角误差,适用于车辆可稳定直线行驶、仅需修正航向偏差的场景;
- id=2:自由运动矫正:可同时标定roll翻滚角、pitch俯仰角、yaw偏航角三个角度的误差,适用于车辆运动轨迹复杂(如包含转向、坡道行驶)、需全面修正姿态偏差的场景。
5.2.2 离线数据文件夹路径
需传入存储“离线录制好的标定数据”的文件夹路径(相对路径或绝对路径均可),数据需满足工程预设的格式要求(如包含IMU原始数据、车体运动数据等,具体格式需参考工程文档,当前文件未明确,暂以“离线录制好的数据”为准)。
5.3 运行示例
假设离线数据存储在工程根目录的data文件夹中,若需执行“自由运动矫正”(算法类型id=2),指令如下:
cd Imu2Car
./bin/run_imu_heading 2 ./data
- 若需执行“直线矫正”(算法类型id=1),指令如下:
cd Imu2Car
./bin/run_imu_heading 1 ./data
5.4 运行结果输出
运行成功后,工程会在“离线数据文件夹路径”下的calibration子文件夹中,生成标定结果文件imu_heading.csv——该文件是标定任务的核心产出,包含IMU与车体坐标系之间各角度的误差数据,可通过文本编辑器(如vim、Excel)打开查看,直接获取roll、pitch、yaw角度的偏差值(具体字段格式当前文件未明确,以实际生成的CSV内容为准)。
六、核心功能总结
Imu2Car工程的核心目标是实现IMU到车体坐标系的角度误差标定,通过“安装依赖→编译工程→执行标定”的流程,最终输出角度误差结果。工程的核心特点的是:
- 依赖明确:严格依赖Ubuntu系统与Boost/Eigen3.3.7/PCL库,需按步骤安装确保兼容性;
- 算法可选:提供两种标定算法,分别适配“直线行驶”与“自由运动”场景,覆盖不同标定需求;
- 结果直观:标定结果以CSV文件形式输出,便于后续分析与使用,无复杂结果解析成本。
自动驾驶多传感器联合标定系列之IMU到车体坐标系的标定工程 , 本商品在已知GNSS/GPS到车体坐标系的外参前提下,根据GNSS/GPS的定位信息与IMU信息完成IMU到GNSS/GPS 的外参标定,并进一步获得IMU到车体坐标系的外参标定 本商品提供两种标定模式:车辆直线运动及自由运动,这两种模式下的注释工程


更多推荐
所有评论(0)