orbslam2+windows10+vs2017下运行常见错误
详细链接见https://github.com/phdsky/ORBSLAM24Windows
1. 链接中使用的opencv版本为2.4.13.6,从官网下载后需要使用cmake进行编译生成vc15的链接库(dll,lib)。
过程参考链接中Step-》DBoW2的过程。
2. 在编译Pangolin的时候,缺少OpenGL的库:
VS2017->项目->管理NuGet程序包->浏览->NupenGL,进行安装。(最后提示1个失败项,忽略即可)
3.在Applications-》5 中添加参数命令时,不要加“./mono_tum”,直接写那三个路径。数据集的那个链接打不开,自己去官网下载。
4.运行前,把mono_tum设为启动项,再运行;运行成功后,运行一段时间可能会出现vector iterators incompatible错误,修改Tracking.cc中的UpdateLocalKeyFrames()函数中的代码。
这是因为:有一个用迭代器iterator来遍历参数mvpLocalKeyFrames的操作,而且在遍历里面有 mvpLocalKeyFrames.push_back()的操作。这就会引发上面vector iterators incompatible的报错。因为当push_back后可能引发vector的容量的变化,标准库会自动为其新分配一段更大的内存空间,从而使得迭代器失效。
修改:把for(vector<KeyFrame*>::const_iterator itKF=mvpLocalKeyFrames.begin(), itEndKF=mvpLocalKeyFrames.end(); itKF!=itEndKF; itKF++)变成for(int i=0;i<mvpLocalKeyFrames.size();i++);
再把KeyFrame* pKF = *itKF;变成KeyFrame* pKF = mvpLocalKeyFrames[i];
差不多就是遇见的所有问题了。。。。。
                    
                
                
            
        
浙公网安备 33010602011771号