当前位置: 首页 > news >正文

【Windows + VSCode】ORB-SLAM2 从零下载、编译到运行示例完整复现教程

【Windows + VSCode】ORB-SLAM2 从零下载、编译到运行示例完整复现教程

目标是在一台新的 Windows 主机上,从下载安装到最终运行 ORB-SLAM2 示例程序(mono_tum/stereo_kitti/rgbd_tum),完整复现 ORB-SLAM2 工程。


文章目录

  • 【Windows + VSCode】ORB-SLAM2 从零下载、编译到运行示例完整复现教程
  • 前言
  • 安装基础编译环境
    • 安装 MSVC x64 编译器
    • 安装 CMake
    • 安装 Git
    • 安装 VSCode 和插件
  • 下载第三方库和官方源码 ORB-SLAM2
    • 下载 OpenCV
    • 安装 Eigen3
    • 安装 GLEW
    • 编译 Pangolin
    • 下载官方源码 ORB-SLAM2
    • 解压视觉词典
  • 修改 ORB-SLAM2 源码(Windows 适配)
    • 修改主工程 CMakeLists.txt
    • 新建 usleep 兼容头文件
    • 修复 OpenCV 4 头文件兼容性
    • 修复 OpenCV 4 常量兼容性
    • 修复 GCC 专属头文件
    • 修复 MSVC 可变长数组(VLA)语法
    • 修复 MSVC bool 自增语法
  • 编译 Thirdparty 子工程
    • 编译 DBoW2(Windows 适配)
      • 修改Thirdparty/DBoW2/CMakeLists.txt
      • 修改 Thirdparty/DBoW2/DBoW2/FORB.cpp
      • 编译 DBoW2
    • 编译 g2o(Windows 适配)
      • 修改 Thirdparty/g2o/CMakeLists.txt
      • 修改 Thirdparty/g2o/g2o/stuff/string_tools.cpp
      • 编译 g2o
    • 复制 .lib 文件到 lib/ 根目录
  • 编译主工程 ORB-SLAM2
  • 下载数据集并运行
    • 下载数据集
      • 第一组:TUM RGB-D fr1_xyz(用于 `mono_tum` / `rgbd_tum`)
      • 第二组:KITTI Odometry gray(用于 `mono_kitti` / `stereo_kitti`)
      • 第三组:EuRoC MAV MH_01_easy(用于 `mono_euroc` / `stereo_euroc`)
    • 运行时 DLL 配置
    • 运行示例
  • 完整编译流程总结

前言

ORB-SLAM2 是一个实时的视觉 SLAM 库,由萨拉戈萨大学的 Raul Mur-Artal 等人开发。它可以处理单目双目RGB-D三种相机输入,实时计算相机轨迹并构建稀疏三维地图,同时支持回环检测和重定位。

在 SLAM 系统中,以下三个问题是最核心的:

相机当前在哪里? ← Tracking 线程回答 周围环境长什么样? ← Local Mapping 线程构建地图 是否回到过以前的位置? ← Loop Closing 线程检测回环

ORB-SLAM2 用四个线程并行回答这些问题:

线程做的事
Tracking每帧提取 ORB 特征,估计相机位姿
Local Mapping插入关键帧,三角化新地图点,局部 BA
Loop Closing检测回环,矫正累计漂移
Viewer3D 可视化显示

本文的目标不是讲解 DBoW2 的全部算法细节,而是先解决一个更基础也更容易卡住的问题:如何在 Windows + VSCode 环境下,从零下载依赖、配置 CMake、编译工程,并成功运行 DBoW2 自带 demo。只要能把 demo 跑通,后续再阅读源码、接入 ORB-SLAM、修改词袋模型或做实验,就有了一个可靠的起点。

核心依赖关系:

ORB-SLAM2 ├── OpenCV → 图像读取、特征提取 ├── Eigen3 → 线性代数(g2o 依赖) ├── Pangolin → 3D 可视化 GUI ├── DBoW2(内嵌) → 词袋模型回环检测 └── g2o (内嵌) → 图优化引擎

本文不展开 SLAM 算法细节,重点解决工程复现问题:如何在Windows + VSCode环境下把 ORB-SLAM2 从源码完整编译并运行起来。

推荐运行环境:

注意事项说明
操作系统Windows 10 / Windows 11
编译器Visual Studio 2022 的 MSVC x64 编译器
构建工具CMake
编辑器VSCode
第三方库OpenCV 预编译包 + Eigen3 + Pangolin
示例根目录D:\ORBSLAM
ORB-SLAM2 路径D:\ORBSLAM\ORB_SLAM2-master
OpenCV 路径D:\ORBSLAM\opencv\build

如果你的工程放在其他盘,例如E:\ORBSLAMC:\dev\ORBSLAM,后文所有D:\ORBSLAM都需要替换成你的真实路径。

安装基础编译环境

软件下载说明
Visual Studio 2022 Community包含了 MSVC 编译器工具链,同时还包含完整的 IDE(编辑器、调试器、设计器等)
Visual Studio 2022 Build Tools(推荐)包含了 MSVC 编译器工具链,但只提供命令行环境,不含 IDE 图形界面
CMake跨平台构建工具,现代 C++ 项目必备
Git for Windows用于 git clone 下载源码
VSCode编辑器

安装 MSVC x64 编译器

VSCode 只是编辑器,不自带 C++ 编译器。DBoW2 的.cpp文件最终需要 Visual Studio 提供的 MSVC 编译器编译。(博主这里选择安装 Visual Studio 2022 Build Tools)

安装 Visual Studio Community 或 Build Tools 时,必须勾选:

Desktop development with C++

建议确认包含:

  • MSVC C++ x64/x86 build tools
  • Windows 10 SDK 或 Windows 11 SDK
  • C++ CMake tools for Windows


安装完成后,打开开始菜单中的:

x64 Native Tools Command Prompt for VS 2022

输入:

cl

如果看到 Microsoft C/C++ 编译器版本信息,说明 MSVC 可用。若提示'cl' 不是内部或外部命令,通常是没有安装 C++ workload,或者打开的是普通 CMD/PowerShell。

安装 CMake

推荐 Windows x64 Installer(.msi 安装包):双击安装自动配好环境变量,还带图形界面。

安装 CMake 时注意勾选:将 CMake 的 bin 文件夹路径添加到系统环境变量中。

Add CMake to the PATH environment variable


安装完成后,关闭旧终端,重新打开 PowerShell:

cmake--version


能显示版本号即安装成功。

注意:必须安装 CMake,后续 VSCode 的 CMake Tools 插件不能代替 CMake 本体,插件只是帮你调用cmake.exe

安装 Git

直接选择“Standalone Installer”下的“Git for Windows/x64 Setup”:这是最标准、最推荐普通用户的安装方式(.exe 安装包)。

安装 Git 后,重新打开 PowerShell:

git--version


能显示版本号即可。若不想安装 Git,也可以从 GitHub 下载 ZIP 源码包。

安装 VSCode 和插件

先安装 VSCode 本体:

安装完成后打开 VSCode,快捷键Ctrl + Shift + X在左侧扩展栏中搜索并安装插件:

C/C++ CMake Tools


下载第三方库和官方源码 ORB-SLAM2

代码下载说明
OpenCV 4.8.0 Windows 包OpenCV Windows 自解压包
Eigen3线性代数库,纯头文件无需编译
GLEWOpenGL 扩展加载库(Pangolin 在 Windows 上的依赖)
Pangolin3D 可视化库,需从源码编译
ORB-SLAM2 源码本工程官方源码

建议把所有三方库和 ORB-SLAM2 源码放在同一个父目录下:

D:\ORBSLAM ├── ORB_SLAM2 ← ORB-SLAM2 源码 │ ├── CMakeLists.txt │ ├── include/ │ ├── src/ │ ├── Examples/ │ ├── Thirdparty/ ← DBoW2 + g2o(内嵌) │ ├── Vocabulary/ ← ORBvoc.txt.tar.gz │ └── build/ ├── opencv │ └── build │ ├── OpenCVConfig.cmake │ └── x64\vc16\bin\ ├── eigen-3.4.0 ← Eigen3 头文件目录 ├── glew-2.2.0 ← GLEW 二进制包(Pangolin 依赖) │ ├── include/GL/glew.h │ └── lib/Release/x64/glew32s.lib └── Pangolin ← 从源码编译 └── build/

下载 OpenCV

下载

opencv-4.8.0-windows.exe

双击运行,它本质上是自解压包。建议解压到:

D:\ORBSLAM


解压后应得到:

D:\ORBSLAM\opencv\build


用 PowerShell 检查关键文件:

Test-PathD:\ORBSLAM\opencv\build\OpenCVConfig.cmakeTest-PathD:\ORBSLAM\opencv\build\x64\vc16\bin\opencv_world480.dll


两个都输出True,说明 OpenCV 位置正确。

安装 Eigen3

Eigen3 是纯头文件库,不需要编译。

下载后解压到:

D:\ORBSLAM\eigen-3.4.0


新版 Pangolin 和 g2o 需要 CMake 能找到 Eigen3 的配置文件,因此需要先执行一次 CMake 生成Eigen3Config.cmake

cd D:\ORBSLAM\eigen-3.4.0# 创建构建目录并生成 Eigen3Config.cmakemkdir build && cd build cmake..-G"Visual Studio 17 2022"-A x64

关键路径:

D:\ORBSLAM\eigen-3.4.0\Eigen\Core ← 头文件(无需编译) D:\ORBSLAM\eigen-3.4.0\build\Eigen3Config.cmake ← CMake 查找配置(供 Pangolin/g2o 使用)


安装 GLEW

GLEW(OpenGL Extension Wrangler Library) 是 Pangolin 在 Windows 上的依赖,用于加载 OpenGL 扩展函数。
下载预编译二进制包(选glew-2.2.0-win32.zip)并解压到D:\ORBSLAM\glew
解压后的关键文件:

D:\ORBSLAM\glew-2.2.0\include\GL\glew.h ← 头文件 D:\ORBSLAM\glew-2.2.0\lib\Release\x64\glew32s.lib ← 静态库(64 位 Release)



GLEW 是二进制包,不需要编译步骤,解压即可用。

编译 Pangolin

Pangolin 是 ORB-SLAM2 的 3D 可视化依赖,在 Windows 上需要从源码编译:

# 进入 ORBSLAM 父目录cd D:\ORBSLAM# 下载 Pangolin 源码git clone https://github.com/stevenlovegrove/Pangolin.git# 若 GitHub 访问慢使用 gitcode 镜像git clone https://gitcode.com/gh_mirrors/pa/Pangolin

cd Pangolin# 创建并进入构建目录(隔离编译产物)mkdir build && cd build# CMake 配置:指定 VS2022 64 位生成器 + Eigen3 + GLEW 路径cmake..-G"Visual Studio 17 2022"-A x64-DEigen3_DIR=D:/ORBSLAM/eigen-3.4.0/build-DGLEW_INCLUDE_DIR=D:/ORBSLAM/glew-2.2.0/include-DGLEW_LIBRARY=D:/ORBSLAM/glew-2.2.0/lib/Release/x64/glew32s.lib# 编译 Release 版本(生成 pangolin.dll)cmake--build.--config Release

Pangolin 在 Windows 上依赖 OpenGL(系统自带),不需要额外安装。

编译完成后关键路径:

D:\ORBSLAM\Pangolin\build\Release\pango_core.dll ← 运行时 DLL(多组件) D:\ORBSLAM\Pangolin\build\Release\pango_opengl.dll D:\ORBSLAM\Pangolin\build\Release\pango_video.dll ...(共 8 个组件 DLL) D:\ORBSLAM\Pangolin\build\PangolinConfig.cmake ← CMake 查找配置 D:\ORBSLAM\Pangolin\build\PangolinTargets.cmake


下载官方源码 ORB-SLAM2

  1. 使用 Git 下载(推荐):
    cd D:\ORBSLAM git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2# G
http://www.gsyq.cn/news/1635807.html

相关文章:

  • QT系统篇(5)(下)
  • 网盘下载慢到抓狂?这个开源浏览器脚本让你轻松获取高速直链
  • 机械工程论文降AI工具免费推荐:2026年机械工程毕业论文降AI4.8元知网达标完整方案
  • 架构评审数据化:别让评审会只剩观点碰撞
  • NVIDIA Profile Inspector:解锁显卡隐藏性能,让你的游戏体验飞起来
  • 华硕笔记本轻量级控制中心:释放硬件潜力的终极解决方案
  • GDSDecomp技术实现:PCK文件极速修改与Godot逆向工程架构设计
  • 自己写一个《英雄无敌3》战斗AI
  • 免费分享最新IDEA安装及授权教程(附带文件)
  • 终极指南:40+经典DSGE模型库如何加速你的宏观经济研究
  • FigmaCN:5分钟快速汉化Figma界面,中文设计师的完整解决方案
  • GTA5终极修改器YimMenu:10分钟快速上手指南
  • 独立开发实战:学生管理+考试防作弊机制设计
  • 深耕低代码5年,终于遇见打破行业桎梏的AI原生平台
  • 不受待见的钻石又火了?新娘不要英伟达为啥抢着要?
  • OpenClaw:AI智能体开发的高效跨平台解决方案
  • Python 语法基础 IO
  • 做网课直播还在用手比划?这两款键盘鼠标显示工具,让观众看清你的每一步操作
  • HoRain云--Java文档注释规范与最佳实践指南
  • Java多态:一个父类引用,搞定千变万化的子类
  • 堆与优先队列的并发安全实现机制的技术7
  • 【花雕动手做】行空板 K10 系列实验之TT马达双路差速智能小车方案三号特色底盘
  • 2025微信小程序反编译终极指南:如何用unveilr快速提取小程序源码
  • 黑苹果配置革命:OpCore Simplify - 自动化EFI生成终极解决方案
  • Deepin Boot Maker终极指南:3步制作Linux启动盘的最佳实践
  • 林伽一 · AI科技日报 |LongCat-2.0宣称中国芯片突破,Claude Sonnet 5自报分数解析
  • OpenCore Legacy Patcher完整指南:让老款Mac免费升级最新macOS的终极方案
  • 用 AI 写代码做家庭调酒小程序:真正难的是把酒库到保存跑通
  • YOLOv13超图视觉与NCNN部署实战指南
  • 【OpenHarmony/HarmonyOs 】实验室首页细节拆解:分类侧栏、搜索筛选与推荐探索交互