Windows 下配置lsd_slam环境

2023-10-31 09:30
文章标签 配置 windows 环境 slam lsd

本文主要是介绍Windows 下配置lsd_slam环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载请注明出处:http://blog.csdn.net/ouyangying123/article/details/70861654

环境:

   VS2013  +  Windows

 

需要:

   Cmake2.8+、Boost 1.5+、Opencv 2.4+、G2O、Eigen3.2+、Qt5、LibQGLViewer、QtVSAddin(可选)。

关系:


一、Opencv

直接运行opencv-2.4.11.exe,按流程完成后在输出目录如(D:\opencv)有两个文件夹build、sources。




二、CMake

直接运行cmake-2.8.12.2-win32-x86.exe,按流程完成后输出目录如下:Bin、doc、man、share、Uninstall.exe。




三、Boost

1.下载解压完成后,使用“VS2013开发人员命令命令提示(VS安装目录\Common7\Tools\Shortcuts\)”进入boost目录,执行bootstrap.bat,生成boost的自用的编译工具bjam.exe。

 

2.使用命令编译boost:

bjam install --toolset=msvc-12.0 --without-python --prefix="输出目录"--build-type=complete  threading=multi debug release

该命令可生成包括debug/release的所有需要的版本,这里只需要改一下输出目录(如D:/boost_1_56_0/vs2013_bin),具体命令参数详解请参考:

http://www.cnblogs.com/zhcncn/p/3950477.html

 

3.编译完成后,输出目录会出现两个文件夹:include  lib。


四、G2O


1、Eigen

下载解压出eigen库后,使用cmake,目录如下:


点击Configure会提示新建build文件夹,选择vs12 2013编译器

然后修改CMAKE_INSTALL_PREFIX改为sourse目录的值(如D:\lsd\eigen)。


修改完成后再次configuregenerate,在eigen\build文件夹中打开eigen.sln工程文件,先生成all_build,完成后再生成install最后可看到eigen文件夹中出现include文件夹。



2、QGLViewer

这个库是在LibQGLViewer中的一个库,LibQGLViewer是QT的一个工程,下载Qt之后编译即可,这里使用的是下载了一个不带MGW的QT,然后用QtVSAddin插件在VS下编译:

 

(1)Qt

运行qt-opensource-windows-x86-msvc2013-5.8.0.exe,按步骤进行安装。

(2)qt_vs_addin

运行qt-vs-addin-1.2.5.exe,按步骤进行安装。

(3)LibQGLVIewer

把下载好的libQGLViewer-2.6.4.zip解压出来。

(4)QGLViewer

在qt_vs_addin安装结束后,打开VS2013可在菜单栏看到QT选项:


点击Qt Options,添加qt的name和path:


然后在VS中打开LibQGLViewer:


右键工程QGLViewer,生成,在.\libQGLViewer-2.6.4\QGLViewer文件夹中编译出QGLViewerd2.dll、QGLViewerd2.lib两个文件。

然后再在release模式下编一次生成QGLViewer2.dll、QGLViewer2.lib两个文件。

这是小白编好的库,可直接使用:点这里


3.G2O

有了eigen和QGLViewer库可以开始编译g2o了,把从github上下载的g2o库解压出来,使用cmake编译,source build目录如下:


这里需要修改以下几个变量:

Qt5_DIR:   .../Qt5.8.0/5.8/msvc2013/lib/cmake/Qt5

EIGEN3_INCLUDE_DIR:   .../eigen/include/eigen3

QGLVIEWER_INLUDE_DIR:   .../libQGLViewer-2.6.4/QGLViewer

QGLVIEWER_LIBARARY_DEBUG:   .../libQGLViewer-2.6.4/QGLViewer/QGLViewerd2.lib

QGLVIEWER_LIBARARY_RELEASE:   .../libQGLViewer-2.6.4/QGLViewer/QGLViewer2.lib

再次点击configure,然后generate。


使用vs打开.../g2o-master/build/g2o.sln,右键ALL_BUILD生成:



完成后会在.../g2o-master目录下生成bin文件夹,bin/Debug下即是将要在lsd中使用的g2o库。

在Release模式下再跑一次,bin/Release下即是将要在lsd中使用的g2o库。

以上步骤完成后注意:

1、将../g2o-master/build/g2o下的config.h 拷贝到 ../g2o-master/g2o下。

 

2、将..../g2o-master/EXTERNAL/csparse下的 cs.h、cs_api.h 拷贝到 

../g2o-master/g2o/solvers/csparse下。

 

3、打开...\g2o-master\g2o\solvers\csparse\csparse_helper.h,把#include <cs.h>改成#include "cs.h"


附上小白编好的g2o库(debug版本),可直接使用:点这里





五、LSD_SLAM

这东西的依赖真多,到此算是可以开始配置lsd了:

把从github下载好的lsd_slam-master.zip解压出来,解压后的目录如下:


使用cmake进行编译:


在build文件夹下会生成一个LsdSlamDependencies_Config.cmake文件,需要修改的地方如下:

 option(LsdSlam_USE_MANUAL_CONFIG_FILE  TRUE)#BOOSTset(BOOST_ROOT D:/boost_1_56_0/bin/include/boost-1_56)set(Boost_INCLUDE_DIR D:/boost_1_56_0/bin/include/boost-1_56)set(BOOST_LIBRARYDIR D:/boost_1_56_0/_bin/lib)set(Boost_NAMESPACE libboost) #OPENCVset(OpenCV_DIR D:/opencv/build)# G2Oset(G2O_ROOT D:/lsd/g2o-master)set(G2O_DIR D:/lsd/g2o-master)set(G2O_CORE_LIBRARY D:/lsd/g2o-master)set(G2O_STUFF_LIBRARY D:/lsd/g2o-master)set(G2O_CORE_LIBRARY_DEBUG D:/lsd/g2o-master)set(G2O_STUFF_LIBRARY_DEBUG D:/lsd/g2o-master)set(G2O_SIMULATOR D:/lsd/g2o-master)set(G2O_INCLUDE_DIR D:/lsd/g2o-master)set(G2O_SIMULATOR_DEBUG D:/lsd/g2o-master)set(G2O_SOLVER_DENSE D:/lsd/g2o-master)set(G2O_SOLVER_DENSE_DEBUG D:/lsd/g2o-master)set(G2O_TYPES_SLAM3D D:/lsd/g2o-master)set(G2O_TYPES_SLAM3D_DEBUG D:/lsd/g2o-master)# Freeglutset(GLUT_INCLUDE_DIR D:/lsd/g2o-master/EXTERNAL/freeglut)

再次点击configure,generate生成项目。

使用vs打开...\lsd_slam-master\build下的lsd_slam_and_apps.sln


然后进行以下操作:

1.删除项目sample_app属性->配置属性->链接器->输入->附加依赖项中的g2o-master.lib

 

2.在项目lsd_slam属性->配置属性->链接器->常规->附加库目录

添加g2o编译出的lib目录:...\g2o-master\bin\Debug

 

3.在项目lsd_slam属性->配置属性->链接器->输入->附加依赖项 自行选择

release模式:

g2o_solver_csparse.lib
g2o_csparse_extension.lib
g2o_ext_csparse.lib
g2o_solver_eigen.lib

debug模式(默认):

g2o_solver_csparse_d.lib
g2o_csparse_extension_d.lib
g2o_ext_csparse_d.lib
g2o_solver_eigen_d.lib

 

4.在项目lsd_slam属性->配置属性->库管理器-> (release模式类似)

附加库目录添加上g2o库所在目录:g2o-master/bin/Debug

附加依赖项中添加:

g2o_interface_d.lib
g2o_parser_d.lib
g2o_simulator_d.lib
g2o_types_sim3_d.lib
g2o_types_icp_d.lib
g2o_types_slam3d_addons_d.lib
g2o_types_sba_d.lib
g2o_types_slam2d_addons_d.lib
g2o_types_slam3d_d.lib
g2o_calibration_odom_laser_d.lib
g2o_solver_slam2d_linear_d.lib
g2o_types_data_d.lib
g2o_types_sclam2d_d.lib
g2o_solver_structure_only_d.lib
g2o_types_slam2d_d.lib
g2o_solver_pcg_d.lib
g2o_solver_dense_d.lib
g2o_solver_eigen_d.lib
g2o_tutorial_slam2d_d.lib
g2o_viewer_d.lib
g2o_hierarchical_d.lib
g2o_solver_csparse_d.lib
g2o_cli_d.lib
g2o_core_d.lib
g2o_stuff_d.lib
g2o_csparse_extension_d.lib
g2o_ext_freeglut_minimal_d.lib
g2o_opengl_helper_d.lib
g2o_ext_csparse_d.lib


至此就可以直接生成了。

(我的最后运行时会出一个bootxxx.dll缺失的错误,只要去boost_1_56_0\bin\lib 下找到相应的.dll放在system32或sysWOW64里即可)

最后把sample_app设为启动项,添加摄像头便可运行(release模式下可流畅运行)。


附上参考下载链接:

Lsd_slam: https://github.com/williammc/lsd_slam

Cmake:   https://cmake.org/download/

Boost:   http://www.boost.org/users/download/

Opencv:   http://opencv.org/opencv-3-2.html

G2O:     https://github.com/RainerKuemmerle/g2o

Eigen:    http://eigen.tuxfamily.org/index.php?title=Main_Page

Qt:      https://www.qt.io/download-open-source/#section-2

LibQGLViewer:   http://libqglviewer.com/installWindows.html

LSD_SLAM一些很赞的视频(需科学上网播放):http://vision.in.tum.de/research/vslam/lsdslam




这篇关于Windows 下配置lsd_slam环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/314393

相关文章

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

Maven 插件配置分层架构深度解析

《Maven插件配置分层架构深度解析》:本文主要介绍Maven插件配置分层架构深度解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Maven 插件配置分层架构深度解析引言:当构建逻辑遇上复杂配置第一章 Maven插件配置的三重境界1.1 插件配置的拓扑

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

Python+Tkinter实现Windows Hosts文件编辑管理工具

《Python+Tkinter实现WindowsHosts文件编辑管理工具》在日常开发和网络调试或科学上网场景中,Hosts文件修改是每个开发者都绕不开的必修课,本文将完整解析一个基于Python... 目录一、前言:为什么我们需要专业的Hosts管理工具二、工具核心功能全景图2.1 基础功能模块2.2 进

Gradle在国内配置镜像加速的实现步骤

《Gradle在国内配置镜像加速的实现步骤》在国内使用Gradle构建项目时,最大的痛点就是依赖下载贼慢,甚至卡死,下面教你如何配置国内镜像加速Gradle下载依赖,主要是通过改写repositori... 目录引言一、修改 build.gradle 或 settings.gradle 的 reposito

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

史上最全nginx详细参数配置

《史上最全nginx详细参数配置》Nginx是一个轻量级高性能的HTTP和反向代理服务器,同时也是一个通用代理服务器(TCP/UDP/IMAP/POP3/SMTP),最初由俄罗斯人IgorSyso... 目录基本命令默认配置搭建站点根据文件类型设置过期时间禁止文件缓存防盗链静态文件压缩指定定错误页面跨域问题

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr