【MRPT】【icp-slam-live】Vs2013+ cmake3.6.1 + mrpt1.4.0+opencv2.9.4+wxWidget3.0.2环境配置

Win10下Vs2013 + cmake3.6.1 + mrpt1.4.0+opencv2.9.4+wxWidget3.1.0环境配置

所接触过的最令我崩溃的环境配置。之前没有考虑到vs2013 2015的问题,造成了很多麻烦。在此提示:

vs2013 vc12vs2015vc14根部不是一回事!

虽然vs2012vs2013都是vc12,但是 Vs2012tool命令行和vs2013的也不是一回事wxWidgets)其实很多问题都可以避免,一定要细心细心!

 

主要参考mrpt官网 http://www.mrpt.org/Building_and_Installing_Instructions

由于vs2015和之前版本的不一样,有很多需要注意之处,特别对opencv进行了补充。

如果报错说找不到什么文件,首先检查环境变量。

 

  1. 连接激光,若没有成功安装驱动,安装驱动(可以用360驱动大师安装)

 

2. 下载安装vs2013,添加环境变量

 

  1. 下载并安装cmake3.6.1(较低版本3.0.x不支持vs2015

 

4. 修改wxWidget文件以支持vs2015http://www.cnblogs.com/sqxy110/p/4897494.html

开始菜单——vs2013兼容工具命令提示符——cd WXWIDGETS/build/msw

命令行build wxWidget(很久)http://www.mrpt.org/Building_and_Installing_Instructions

Build for 32bit:

Open the MSVC 32bit command-line prompt (from the start menu -> MSVC -> Visual Studio Tools), do a “cd” to the WXWIDGETS/build/msw directory and run:

nmake -f makefile.vc BUILD=release SHARED=1 RUNTIME_LIBS=dynamic DEBUG_INFO=0 VENDOR=mrpt USE_OPENGL=1
nmake -f makefile.vc BUILD=debug SHARED=1 RUNTIME_LIBS=dynamic DEBUG_INFO=1 VENDOR=mrpt USE_OPENGL=1

Build for 64bit:
Open the MSVC 64bit command-line prompt (from the start menu -> MSVC -> Visual Studio Tools), do a “cd” to the WXWIDGETS/build/msw directory and run:

nmake -f makefile.vc BUILD=release SHARED=1 RUNTIME_LIBS=dynamic DEBUG_INFO=0 VENDOR=mrpt USE_OPENGL=1 TARGET_CPU=amd64
nmake -f makefile.vc BUILD=debug SHARED=1 RUNTIME_LIBS=dynamic DEBUG_INFO=1 VENDOR=mrpt USE_OPENGL=1 TARGET_CPU=amd64

 

 

5. 下载opencv2.4.9 http://opencv.org/

!!!!注意:下载linux版的opencvxxx-zip 不要下载用于windowsexe文件!(因为vs2015编译器和之前版本的不一样,所以要自己编译)

 

 

解压后,Cmake Opencv

Cmake opencv 时候,如果报错std::tuple...可以在cmake时候,对testspertests的钩去掉。引用自:code.opencv.org/issues/4376 四楼Nate Guerin

 

vs中打开opencv build下的sln,重新生成(很久), 可看到Opencv/build/lib/Debug下有很多.lib

 

添加系统环境变量 ../opencv/build

 

 

 

  1. 下载mrpt ,

Cmake mrpt

 

看看wxWidgets的目录和opencv的目录有没有找到,没有的话,自己加上。

 

vs中打开mrpt/build/apps/icp-slam-live 重新生成(很久)。

在这一步,可以先build mrpt-base等等模块,然后再编译别的。直接选allbuild时候,可能很久才发现问题。

 

7. 设置icp-slam-live为启动项。

 

找到icp-slam-live激光配置文件“icp-slam-live_demo_PRL_gridmap.ini”,复制到工程下。

修改ini文件,根据自己连接激光的端口号,更改端口号。修改之前是com10

 

Icp-slam-live右键——属性——调试——命令参数,设置为以上ini文件名称

 

启动icp-slam-live

 

工程目录build/Debug下有个rawlog文件,是输出的数据。

 

Mrpt/build/apps/icp-slam用来看此rawlog

 

或者apps/rawlogviewer。编译运行后,里面有个rawlogviewer.exe,可以看rawlog,可以把地图保存到txt

 

使用rplida  sdk

Sdk/output/win32/debug里面有现成的exe。具体参看sdk/doc

配置文件更改:

  1. 配置文件需要把端口改成连接的端口。

 

2. 需要ini90

# ========================================================

#            MULTIMETRIC MAP CONFIGURATION

# See docs for (Google for) mrpt::maps::CMultiMetricMap

# ========================================================

# Creation of maps:

occupancyGrid_count=1

pointsMap_count=0

 

改为

 

occupancyGrid_count=0

pointsMap_count=1

 

查看机器人位置

/apps/icpslam/LOG_ICP_SLAM下面有个txt就是机器人的轨迹,是以机器人的初始位置为原点。

 

查看生成的png地图图片

rawlog的文件夹下,如果正常退出程序:即关闭3D显示界面,就会生成png图片,否则(如果直接关闭控制台)程序运行不到生成图片的一行。

 

错误记录:

编译wx时候,手贱脑残点了vs2012,结果报错unresolved external symbol....检查是在wx里面出的错。

 

vs2013编译过后,就好了

 

posted @ 2016-08-26 10:34  xy123001  阅读(595)  评论(0编辑  收藏  举报