Windows10使用OrbSlam3-VS2017-VC12版本

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

OrbSlam3集成了IMU信息可用以VIO融合重建。参考这哥们的地址依据GitHub上的介绍git clone --recursive 之后编译即可

ORBSLAM3 Win10 VS2017 配置简明指南_滥觞LanShang的博客-CSDN博客_orbslam3 windows

Git地址GitHub - chanho-code/ORB-SLAM3forWindows: ORB-SLAM3 for Windows Platform

编译过程

1.使用sourcetree git下载

 选择递归 GitHub - chanho-code/ORB-SLAM3forWindows: ORB-SLAM3 for Windows Platform

2.先编译 pangolin按照这个教程 复制 glew不然会在cmake之后找不到包含GL/Glew.h

     OpenGL(glut包)在Visual Studio 环境配置 - 简书

问题15>LINK : fatal error LNK1104: cannot open file '..\..\..\lib\Debug\pangolin.lib'

15>已完成生成项目“SimpleRepeatVideo.vcxproj”的操作 - 失败。

17>LINK : fatal error LNK1104: cannot open file '..\..\..\lib\Debug\pangolin.lib'

解决5>c:\program files\openni\include\XnPlatform.h(58): fatal error C1189: #error :  Xiron Platform Abstraction Layer - Win32 - Microsoft Visual Studio versions above 2010 (10.0) are not supported!

解决 在cmake里面把OpenNI的包含给去掉编译lib成功

3.编译G2O

 根据GitHub上的指导编译编译G2O

编译成功生成dll文件但是需要静态库lib...

按照前几个条目修改为lib库的配置重新编译或者添加在lib配置里面添加importlib条目名字

问题

几个编译的语法问题

orb-slam3forwindows\include\Map.h(140): error C2061: syntax error : identifier 'list'

orb-slam3forwindows\include\MapDrawer.h(66):

error C2536: 'ORB_SLAM3::MapDrawer::ORB_SLAM3::MapDrawer::mfFrameColors' : cannot specify explicit initializer for arrays

解决把那个list的使用函数直接注销掉

    没法在头文件里面初始化移动到CC文件里编译成功

4.编译OrbSlam3应该能一次成功

   生成 ORB_SLAM3.lib 和ORB_SLAM3.dll文件以动态库的方式调用。

   也可以直接生成程序测试main()函数

5. 编译示例 程序和引用以最简单的mono_tum 为例这个没有使用imu信息数据较少

   出现问题  链接不到函数体

mono_tum.obj : error LNK2019: unresolved external symbol "public: __cdecl ORB_SLAM3::System::System(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,enum ORB_SLAM3::System::eSensor,bool,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0System@ORB_SLAM3@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0W4eSensor@01@_NH00@Z) referenced in function main

  

解决方法

   在System.h这个头文件里面找到构造函数

   System(const string &strVocFile, con..........................

添加 引用声明

_declspec(dllexport)  

System(const string &strVocFile, con..................

编译运行成功

二、测试效果

使用mono_tum 数据集合...

     

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: windows