参考文章:ROS下使用 Realsense D435i 运行ORBSLAM2_with_pointcloud_map_苏碧落的博客-CSDN博客ORBSLAM2_with_PointCloud编译ROS包并使用kinect2实现室内稠密点云地图创建_Andyoyo007的博客-CSDN博客
按照第一篇文章搞完后,发现运行的时候相机动一下就会程序中断,并且提示段错误(核心已转储),解决方法是这篇博文ubunto16.04编译orbslam2,运行时出现---段错误的解决方案---之-march=native大坑!!!!!!!!!!!!_qq_43525260的博客-CSDN博客_orbslam 段错误
解决完之后正常运行,但是没有点云图显示,保存地图后用pcl也读不出来,翻看评论发现是D435i的yaml文件末尾少了一行代码,参见下面:
在写D435i的yaml文件时,最后一行要加上
#--------------------------------------------------------------------------------------------
# PointCloud Mapping
#--------------------------------------------------------------------------------------------
PointCloudMapping.Resolution: 0.03
目前正常运行,点云图也可以正常显示。
但是效果不是很好,漂移很严重,还没有我之前单目相机跑出来的效果好,不知道是相机配置文件出了问题还是怎么了,后续解决了再补充。
问题出在D435i的yaml文件设置的问题,附上我的yaml文件:
%YAML:1.0
#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------
# Camera calibration and distortion parameters (OpenCV)
Camera.fx: 608.3692016601562
Camera.fy: 607.1261596679688
Camera.cx: 321.56707763671875
Camera.cy: 245.23976135253906
Camera.k1: 0.0
Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0
Camera.k3: 0.0
Camera.width: 640
Camera.height: 480
# Camera frames per second
Camera.fps: 30.0
# IR projector baseline times fx (aprox.)
Camera.bf: 40.0
# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1
# Close/Far threshold. Baseline times.
ThDepth: 40.0
# Deptmap values factor
DepthMapFactor: 5000.0
#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------
# ORB Extractor: Number of features per image
ORBextractor.nFeatures: 1000
# ORB Extractor: Scale factor between levels in the scale pyramid
ORBextractor.scaleFactor: 1.2
# ORB Extractor: Number of levels in the scale pyramid
ORBextractor.nLevels: 8
# ORB Extractor: Fast threshold
# Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
# Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
# You can lower these values if your images have low contrast
ORBextractor.iniThFAST: 20
ORBextractor.minThFAST: 7
#--------------------------------------------------------------------------------------------
# Viewer Parameters
#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1
Viewer.GraphLineWidth: 0.9
Viewer.PointSize: 2
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3
Viewer.ViewpointX: 0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500
#--------------------------------------------------------------------------------------------
# PointCloud Mapping
#--------------------------------------------------------------------------------------------
PointCloudMapping.Resolution: 0.03
下面是运行的截图:
稳定性很好,比单目稳定多了,也不怕快速的转弯,就是点云图啥也看不出来,后续再解决。