orbslam2运行遇到的问题

orbslam2运行时为什么map viewer窗口不显示任何点云之类的。

img

  • 这篇文章:orbslam2编译中出现的问题 也许能够解决你的问题,你可以看下
  • 除此之外, 这篇博客: ORBSLAM3编译生成与应用中的 十、编译ORBSLAM3 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、在D:\ORBSLAM3\orbslam3-windows文件夹中,新建build空文件夹,如图所示:
    在这里插入图片描述
    2、对orbslam3-windows进行cmake操作,如图所示:
    在这里插入图片描述
    这时后要注意,在Configure执行过程中,会报如下错误:
    Error in configuration process, project likes may be invalid
    在这里插入图片描述
    解决方法:

    打开orbslam3-windows安装文件夹下的CMakeLists.txt文件(例如我的是在:D:\ORBSLAM3\orbslam3-windows\路径下)

    修改CMakeLists.txt文件(修改内容类似于编译DBOW2时的修改):

    <1> 第一处修改:

    CMakeLists.txt文件中添加如下代码:

    set(OpenCV_DIR D:/ORBSLAM3/opencv-4.1.2/build)
    

    在这里插入图片描述
    注意:我的修改是以上这样的,如果你的opencv-4.1.2的路径与我的不同,则请以你的路径为准!

    <2> 第二处修改:
    在这里插入图片描述
    再次configure就不会报错了:
    在这里插入图片描述
    接着,点击Generate–>Open Project后,进入Visual Studio

    3、进入Visual Studio之后,进行如下编译操作:

    3.1、Release模式下进行编译操作:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    接着,在C/C++–>预处理器–>预处理器定义中添加如下代码:

    WINDOWS;COMPILEDWITHC11;
    

    在这里插入图片描述
    在这里插入图片描述
    完成以上操作后,进行生成操作,步骤如下:
    在这里插入图片描述
    在这里插入图片描述
    在生成时,会报如下错误:

    无法打开包括文件: “opencv/cv.h”: No such file or directory
    在这里插入图片描述
    原因是项目文件中头文件引入有误,改成如下形式即可:

    #include <opencv2/opencv.hpp> 
    

    在这里插入图片描述
    保存之后,再次进行生成操作,会报如下错误:

    "CV_RGB2GRAY": 未声明的标识符

    解决方法:双击报错的内容,进入Traking.cc文件,在该文件中添加如下代码:

    #include <opencv2/imgproc/types_c.h>    //添加
    

    在这里插入图片描述
    再次进行生成操作,还会有如下报错:

    “CvMat”: 未声明的标识符

    解决方法:双击报错的内容,进入PnPsolver.cc文件
    在这里插入图片描述
    找到并进入头文件PnPsolver.h
    在这里插入图片描述
    在头文件中添加如下代码:

    // 引入如下头文件
    #include <opencv2/core/types_c.h>
    #include <opencv2/core/core_c.h>
    

    在这里插入图片描述

    再次对ORB_SLAM3进行生成操作,会报如下错误:

    "CV_GRAY2BGR": 未声明的标识符
    在这里插入图片描述
    双击进入报错文件中,添加如下内容即可:

    // 添加如下代码
    #include <opencv2\imgproc\types_c.h>
    #include <opencv2/imgcodecs/legacy/constants_c.h>
    

    在这里插入图片描述

    再次点击生成按钮,会报如下错误:

    "CV_REDUCE_SUM": 未声明的标识符

    解决方法:
    在报错文件中添加如下代码:

    // 添加的代码
    #include <opencv2/core/core_c.h>
    

    在这里插入图片描述
    再次点击生成按钮,即可完成Release模式下的生成!
    在这里插入图片描述
    3.2、Debug模式下进行编译操作:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    接着,在C/C++–>预处理器–>预处理器定义中添加如下代码:

    WINDOWS;COMPILEDWITHC11;
    

    在这里插入图片描述
    在这里插入图片描述
    ORB_SLAM3上右键,点击生成即可!
    在这里插入图片描述