


在使用orb slam3进行稠密建图时,建图过程是使用elas计算双目视差,再转换为深度图得到深度,计算出点云的三维坐标。我使用kitti数据集就没有出现这样的问题,如上图1。但是在自制数据集的.bag上运行,就会在点云地图里总是有一些稠密的点在上方(如图二、图三),请问这是因为什么啊?
以下是为双目相机的参数文件。





关注【相关推荐】
可以从目录home/catkin_ws/src/ORB_SLAM2/Examples/Monocular/ 下把KITTI00-02.yaml文件复制过来。修改为自己相机对应的相机内参和畸变参数。
或者把数据集中calib.txt放到与图片序列同一文件夹中,其实这里面也就是畸变参数。

Camera.P0: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 0.000000000000e+00 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
Camera.P1: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 -3.861448000000e+02 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
Camera.P2: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 4.538225000000e+01 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 -1.130887000000e-01 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 3.779761000000e-03
Camera.P3: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 -3.372877000000e+02 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 2.369057000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 4.915215000000e-03
图像集times.txt文件:

一共是需要用到是下面这几个文件:
image_0是图片序列文件夹;
calib.txt是畸变参数,如果直接在.yaml文件中修改了则不需要该文件了;
KITTI00-02.yaml是ORB-SLAM2编译生成的针对MONO_KITTI数据集的可执行文件;
times.txt是图像集文件。

运行:
进入自己的ORB_SLAM2目录。
cd ~/catkin_ws/src/ORB_SLAM2
使用下列命令来执行程序。要注意修改为自己的.yaml文件和刚刚存放数据集的路径。
./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTI00-02.yaml /home/hadoop/test
运行结果如下图所示:
上边的图像(图片序列)一帧一帧变化,下边的相机路径也同步变化。FrameDrawer类为显示图像帧的窗口,MapDrawer为显示地图路径的窗口。图中的绿色记号为每一帧图像中识别出来的特征关键点,下图中所有的倒三角行连在一起构成了相机的运动轨迹,红色的点云为图像中的特征点。


参考教程:https://www.cnblogs.com/wxt11/p/6442687.html?utm_source=itdadao&utm_medium=referral