Advertisement

一起做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)

还没有任何评论哟~