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线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的