我看了博客上也有人遇到这个问题,和他们交流他们也不知道问题所在,好在还是弄出来了!对后面的同学一定很有帮助!
运行程序 打开第一个终端
打开第二个终端
进入工作区间内,分别输入:
cd /
//单独一个端口,编译后关闭,没有修改程序不用编译,可以用于检查程序问题
devel/setup.bash
vins .
打开第三个终端
进入工作区间内,分别输入:
cd /
devel/setup.bash
vinssrc/VINS-///g.yaml /home////
单目
vinssrc/VINS-///.yaml /home////
打开第四个终端
进入工作区间内,分别输入:
cd /
devel/setup.bash
情况一、单目+IMU
个人感觉效果还是可以的!我们再来看看 双目+IMU
情况二、双目+IMU
评价:一个字,惨不忍睹!
我有点想不明白了,单目+IMU 跑kitti数据可以,为什么吗 双目+IMU 就不行?
你要是说是程序有问题,但是 程序跑RUROC的双目+IMU时,也是好的呀!
而且跑kitti数据的双目程序也是好的呀,这样一排除,个人感觉还是出在了外参上面,如果发现我错误的小伙伴别忘了留言提醒我!
对了,我看了相关数据介绍的论文了,好像GPS/IMU是与相机不同步,可是不同步为什么 单目+IMU效果是好的?
要么都不同步呗,这个我无法理解!注意咱的思路,后面验证我是对的!
上面问题已经解决了!过程很艰辛,但是我想说的是我的思路很好,不然估计还是解决不了!处理的方式上面已经给了!
修正后,双目+IMU+GPS 的效果如下:
完美!
对应的程序如下: 添加的主程序:.cpp
/*说明:本程序尝试:相机+IMU+GPS,其实VINS-fusion 已经具备这个条件了,主要在于结合;本次程序是rosNodeTest.cpp 和 KITTIGPS.cpp 的结合;通过读取不同的配置文件,可以决定是单目相机还是双目相机;先尝试用Kitti的数据,在尝试用自己采集的数据!*/#include #include #include #include #include