DSO(Direct Sparse Odometry)在windows下运行方法

简述

本文主要是提供DSO如何在windows下编译运行的方法。

(总是一些人建议用Linux,在我看如果是学习的前提下,编译这些源代码,linux很nice;如果是做一些基于windows下的应用,代码的迁移可躲不开。)

源代码地址:https://github.com/JakobEngel/dso
Win下修改代码地址:https://github.com/jhincapie/DSOonWin

一、源码不能在Windows下直接运行原因

我直接下载Github源码,试图在windows下运行DSO,遇到了以下问题。

  1. Unix一些头文件,在windows下没有对应头文件。

    一些头文件中包含了dso使用的基本功能,如时间、usleep等等,这些头文件包括unistd.h、dirent.h。

  2. 代码中基本函数,如swap,会导致编译错误,如下图。这些错误很让人发懵,居然是C++的库文件vector报错。

二、解决方案(需要使用Nuget)

我尝试了自己修改,比如重写timeval和swap,没有改完。但是在休息的时候看了下github,有人已经改过了,万分惊喜。下载了尝试编译,除了一些小问题,可以直接运行。

源码Github地址:https://github.com/jhincapie/DSOonWin

如何运行DSO

  1. 在自己的Visual Studio中扩展安装Nuget,这是一个包管理器,我也只用过几次,大致功能就是可以直接拉取一些常见的库,如Eigen,OpenCV,SuiteParse的编译好版本,并且配置好在工程中。

    但是需要注意:配置有时候可能会失效,则需要我们手动解决这个问题。

  2. 下载上述地址的代码,使用VS2015及以上版本打开(若提示需要升级解决方案,确认即可)。按照上述主页的方法,用Nuget更新所需库,并且修改一处,见下图。
    在这里插入图片描述

  3. 可能出现问题:png,jpeg,zlib几个库的依赖项未配置。

    出现以下错误:
    在这里插入图片描述
    解决方法:手动配置缺失lib的目录,以jpeg举例,依照下图可以很容易找到:
    在这里插入图片描述
    运行时,可能还会出现找不到dll,在上述类似目录中找到dll复制到exe目录下即可。

运行结果如下,跑的是tum sequence 14

在这里插入图片描述

三、总结与数据集

  1. Nuget是个好东西,免去了很多麻烦。需要常见的slam用的库都能找到,可以用点精力多学习一下。
  2. Github资源很多,做一下白嫖党也不是不可以,但是记得给个Star。
  3. 自己在百度网盘保存了一些单目数据集,可供下载:
    链接:https://pan.baidu.com/s/1f556-SR1opC2A0JGI8uH3A
    提取码:0e7z
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值