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

时间:2022-03-02 04:32:24

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

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

vs2013 的vc12和vs2015的vc14根部不是一回事!

虽然vs2012和vs2013都是vc12,但是 Vs2012的tool命令行和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文件以支持vs2015:http://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 不要下载用于windows的exe文件!(因为vs2015编译器和之前版本的不一样,所以要自己编译)

 

解压后,Cmake Opencv

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

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

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

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

  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. 需要ini的90行

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

#            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编译过后,就好了