标定分享3--lidar与rtk/ins标定外参工程实现分享
背景:最近有rtk与lidar标定相关事情,找找以前写的标定程序,优化优化并开源出来。希望大家能给github工程星星收藏。
一、readme
# calib_AXXB
This is a new project : calib_AXXB .基于AX=XB原理标定程序,基于ceres优化器实现输入: 两个传感器的轨迹
输出: 传感器间的标定外参only_optimize_rotation: 表示是否只优化旋转,true表示不优化平移,false表示平移与旋转均优化,布尔类型,一般给false以防止优化失效
max_iterations: 表示优化器最多迭代次数,整型
residual_threshold: 优化器退出残差最小阈值,double类型
time_tolerance_seconds: 插值最大时间间隔,超过抛弃,double类型
skip: 相对增量计算差的帧数,1表示前后帧,整型
T_A_B_init: 初始化时,给的初始矩阵,较好的初值可以加速收敛,double数组
A_poses_file: 传感器A获取得到的里程计 (timestamp(s) x y z qx qy qz qw)
B_poses_file: 传感器A获取得到的里程计 (timestamp(s) x y z qx qy qz qw)
save_result_file: 标定结果存储路径使用案例:
./bin/calib_AXXB_lidar_rtk config/calib.yamldemo数据lidar_pose.txt rtk_pose.txt的标定外参真值为:T_rtk_lidar:0.736, -0.677, 0.0, 0.0,
0.677, 0.736, 0.0, 0.0,
0.0, 0.0, 1.0, 0.130,
0.0, 0.0, 0.0, 1.000;
二、补充说明
对于手眼标定的原理,网上一大堆,或者直接问chatgpt或deepseek。
工程calib_AXXB app里面虽然只写了lidar与rtk的标定例子,但对基于轨迹进行传感器间标定基本适用,根据实际情况进行修改。数据输入格式,参考demo数据(timestamp(s) x y z qx qy qz qw)。
如果该工程能帮到您,请给github工程星星收藏。
###################
好记性不如烂笔头
积跬步期千里