Windows运行orbslam3的stereo_inertial_euroc示例(提供EuRoC数据集的夸克下载链接)
此篇博文仅进行运行,具体前期编译请参考我上一篇文章
1. 编译 stereo_inertial_euroc 可执行程序
(1)打开项目
- 打开
ORB_SLAM3.sln(位于ORB-SLAM3forWindows/build/目录下)

- 在 Visual Studio 顶部工具栏选择:
- 配置:Release
- 平台:x64

(2)配置stereo_inertial_euroc 项目属性
右键 stereo_inertial_euroc 项目 → 属性(Properties)
🔧 C/C++ 设置
- 代码生成 → 运行库:选择 多线程 (/MT)

- 预处理器 → 预处理器定义:添加
COMPILEDWITHC11

🔗 链接器设置
- 链接器→高级 → 导入库:清空内容(删除默认值)

(3)添加 OpenCV 和 Boost 路径
VC++ 目录 → 包含目录:添加
-
- OpenCV 的
include路径(如D:\opencv341\build\include) - OpenCV 的
include\opencv路径 - OpenCV 的
include\opencv2路径 - Boost 的根目录(如
D:\boost_1_83_0)
- OpenCV 的

VC++ 目录 → 库目录:添加
- OpenCV 的 lib 路径(如
D:\opencv341\build\x64\vc15\lib) - Boost 的 stage/lib 路径(如
D:\boost_1_83_0\stage\lib)

(4)链接依赖库(.lib 文件)
链接器 → 输入 → 附加依赖项:添加boost和opencv的lib静态库
Boost:Thirdparty\boost_1_88_0\stage\lib\下的libboost_serialization-vc143-mt-s-x64-1_88.lib
💡 提示:文件名中的 xxxxx 是编译器和版本标识(如 vc143-mt-x64-1_83),请按实际文件名填写。

Opencv: opencv\build\x64\vc15\lib\下的opencv_world341.lib


(5)添加第三方库头文件路径
- C/C++ → 常规 → 附加包含目录:添加
DBoW2的 include 路径(如..\Thirdparty\DBoW2)g2o的 include 路径(如..\Thirdparty\g2o)

(6)修改源码 mono_euroc.cc
✏️ 添加 usleep 兼容函数(Windows 不支持 usleep)
在文件顶部(#include 区域下方)加入:
#ifdef _WIN32
#include <windows.h>
// 将微秒转换为毫秒,向上取整(至少休眠 1ms 如果 >0)
#define usleep(us) Sleep((us) > 0 ? ((us) + 999) / 1000 : 0)
#endif

(7)生成可执行文件
- 右键
mono_euroc项目 → 生成(Build)

- 成功后会在
Examples\Stereo-Inertial\Release下生成stereo_inertial_euroc.exe

2. 准备运行环境
(1)下载 EuRoC 数据集
- 网址:https://pan.quark.cn/s/9e4c92e8545b
- 下载例如
MH01.zip
(2)复制 glew.dll
将 glew-2.1.0/bin/Release/x64/glew32.dll 复制到 项目根目录(即 ORB-SLAM3forWindows/)否则运行时会报“找不到 glew32.dll”
(3)解压词典文件
- 进入
Vocabulary/目录 - 解压
ORBvoc.txt.tar.gz→ 得到ORBvoc.txt

3. 运行命令
运行 ORB-SLAM3 的 stereo_inertial_euroc.exe 程序的标准命令行格式如下:
✅ 通用格式(适用于所有 EuRoC 序列)
<可执行文件路径> <词袋文件> <配置文件> <数据集根目录> <时间戳文件> <输出前缀>
a、可执行文件路径:即stereo_inertial_euroc.exe路径
"A:\ORB-SLAM3\orbslam3\Examples\Stereo-Inertial\Release\stereo_inertial_euroc.exe"

b、词袋文件:即ORBvoc.txt路径
"A:\ORB-SLAM3\orbslam3\Vocabulary\ORBvoc.txt"

c、配置文件:即EuRoc.yaml路径
"A:\ORB-SLAM3\orbslam3\Examples\Stereo-Inertial\EuRoC.yaml"

d、数据集根目录:即MH01目录路径
"A:\MH01"

e、图像时间戳文件:
"C:\orbslam3-win\orbslam3\Examples\Stereo-Inertial\EuRoC_TimeStamps\MH01.txt"

f、输出轨迹文件的前缀名:MH01_output
| 位置 | 参数 | 作用 |
|---|---|---|
argv[0] | stereo_inertial_euroc.exe | 程序本身(由系统自动传入) |
argv[1] | ORBvoc.txt | 视觉词袋模型(用于闭环检测) |
argv[2] | EuRoC.yaml | 相机与 IMU 的标定参数配置文件 |
argv[3] | A:\MH01 | EuRoC 数据集根目录 |
argv[4] | MH01.txt | 图像时间戳文件(用于同步) |
argv[5] | MH01_output | 输出轨迹文件的前缀名 |
打开 CMD,进入项目根目录,执行:(例子,根据电脑路径执行)
A:\ORB-SLAM3\orbslam3\Examples\Stereo-Inertial\Release\stereo_inertial_euroc.exe A:\ORB-SLAM3\orbslam3\Vocabulary\ORBvoc.txt A:\ORB-SLAM3\orbslam3\Examples\Stereo-Inertial\EuRoC.yaml A:\MH01 A:\ORB-SLAM3\orbslam3\Examples\Stereo-Inertial\EuRoC_TimeStamps\MH01.txt MH01_output

✅ 如果一切配置正确,程序将启动并显示 SLAM 实时建图窗口!

如你在操作中遇到具体错误(如链接失败、找不到符号、运行崩溃等),欢迎提供错误信息,我可以帮你逐一定位。
更多推荐


所有评论(0)