一起做RGB-SLAM中遇到的问题与解决
发布时间
阅读量:
阅读量
跟着高博博士学习《一起做RGB-SLAM》,其中遇到问题就写一下。
1.一起做RGB-SLAM(2)中遇到的问题
a. 问题描述:编译成功,但执行报以下错误。
point cloud size = 0
terminate called after throwing an instance of 'pcl::IOException'
what(): : [pcl::PCDWriter::writeASCII] Input point cloud has no data!
已放弃 (核心已转储)
代码解释
b.解决方案:针对文件路径配置问题,在代码中观察到rgb = cv::imread( "./data/rgb.png" );这一行表示图像位于可执行文件所在目录下的data子目录中。具体操作是将该data子目录移动至bin目录,并与执行点云生成程序generatepointcloud协同运行。最终实现pcd文件的生成过程。

2.一起做RGB-SLAM(3)遇到的问题
使用到的RGB图像和深度图像存在的问题是较为普遍的。解决方法:这个资源的位置位于高翔博士的GitHub存储库https://github.com/gaoxiang12中,请方便自行获取。我已将上传的四幅图片发送至此处。




b. 编译严重错误:slam/src/detectFeatures.cpp:8:39 指出了一个无法找到的非自由软件包(non-free)文件夹:nonfree/nonfree.hpp
sudo add-apt-repository --yes ppa:xqms/opencv-nonfree
sudo apt-get update
sudo apt-get install libopencv-nonfree-dev
代码解释
在底部新增以下内容:src文件夹中的CMakeList.txt文件未包含detectFeatures执行文件所需的make指令。
#生成detectFeatures执行文件
ADD_EXECUTABLE( detectFeatures detectFeatures.cpp )
TARGET_LINK_LIBRARIES( detectFeatures
slambase
${OpenCV_LIBS}
${PCL_LIBRARIES})
代码解释
d. make 报错:
error: ‘AlgorithmInfo’ does not name a type
AlgorithmInfo* info() const;
代码解释
官方库报的错。
解决方法:<>
d. 报错
‘create’ is not a member of ‘cv::DescriptorExtractor {aka cv::Feature2D}’
descriptor = cv::DescriptorExtractor::create("ORB");
代码解释
解决方案:通过 pkg-config –modversion 查看 OpenCV 的当前版本。结果显示为 3.4.2。但代码中采用的是低版本的编译方式。由于高博士项目采用了 OpenCV 2.4 版本,在 CMakeList 中我特意选择了对应低版本的编译方式。FIND_PACKAGE( OpenCV 2.4 REQUIRED )
全部评论 (0)
还没有任何评论哟~
