本文主要是介绍ORBSLAM3运行记录(单目+IMU),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ORBSLAM3运行记录
- 1.单目+IMU数据集运行记录
- 自己做的其它测试
- 2.单目+IMU自己采集数据运行记录
- 测试结果
1.单目+IMU数据集运行记录
ORBSLAM3没有预留ROS下单目+IMU的结点,这个需要自己去写代码添加,可以参考这篇博客,《ORBSLAM3 用ROS接口运行双目IMU和单目IMU模式》。我的ROS结点为Mono-IMU,字典文件ORBvoc.txt在ORBSLAM3 / Vocabulary文件夹中,配置文件EuRoC.yaml在ORB_SLAM3 / Examples / Monocular-Inertial 文件夹中。数据集采用的是EuRoC数据集下的MH_05_difficult.bag。
为了进入ORBSLAM3文件夹中,打开终端1执行
cd /home/xiaoqiang/roswork/catkin_ws/src/ORB_SLAM3
接着执行
rosrun ORB_SLAM3 Mono-IMU Vocabulary/ORBvoc.txt Examples/Monocular-Inertial/EuRoC.yaml
等待一会儿,打开终端2执行如下指令,播放.bag文件。
rosbag play /home/xiaoqiang/Downloads/MH_05_difficult.bag
运行结果很完美,用evo评价工具与标准轨迹对比误差5.3厘米。
运行结果
evo评价结果
自己做的其它测试
配置文件EuRoC.yaml中的的外参矩阵的平移量为(-0.0216401454975,-0.064676986768,0.00981073058949)
我将其改为(0.0,0.0,0.0),运行结果依然很完美,用evo评价工具与标准轨迹对比误差厘米级。
我将其改为(0.1,0.1,0.1),运行结果依然很完美,用evo评价工具与标准轨迹对比误差厘米级。
我将其改为(1.0,1.0,1.0),运行结果很糟糕,几乎不能运行。
我将其改为(10.0,10.0,10.0),运行结果很糟糕,几乎不能运行。
以上结果说明,外参阵的平移量在真值附近小范围调整对实验结果影响不大。一般来说,如果相机和IMU的距离在10cm左右,在不知道精确外参平移的情况下可将其置零。
外参旋转为
data: [0.0148655429818, -0.999880929698, 0.00414029679422, -0.00,0.999557249008, 0.0149672133247, 0.025715529948, -0.00,-0.0257744366974, 0.00375618835797, 0.999660727178, 0.00,0.0, 0.0, 0.0, 1.0]
我直接改为
data: [0, -1, 0, -0.00,1, 0, 0, -0.00,-0, 0, 1, 0.00,0.0, 0.0, 0.0, 1.0]
三轴角度变化均值在1°左右,运行结果如下
这篇关于ORBSLAM3运行记录(单目+IMU)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!