Mobile Robot Programming Toolkit (MRPT)是一个跨平台的、开源的C++库,旨在帮助机器人研究员设计和实现SLAM、机器视觉和运动规划(避障)的算法。

  MRPT为移动机器人开发者提供了可移植的开发库,它涵盖了移动机器人领域常见的数据结构和算法,是该领域的开发者应该去了解和学习的开源软件。

  一、环境

    windows 7 32bit,VS2013

  二、准备工作

  1、Cmake

    下载地址:https://cmake.org/download/

    下载合适自己系统的版本,安装即可。

  2、wxWidgets

    下载源码包wxWidgets-3.1.0,下载zip或7z。下载地址 http://www.wxwidgets.org/downloads/

    另外还要下载wxWidgets手册Manual ZIP。

    将其解压到C:\wxWidgets-x.x 或D:\wxWidgets-x.x

  

    打开MSVC 32位终端 (开始菜单 -》 Visual Studio 2013 -》 Visual Studio Tools -》 VS2013 x86 本机工具命令提示)

    打开到X:\wxWidgets\build\msw

    

    执行以下命令:  

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

  

    如是64位,则打开MSVC 64位终端,执行以下命令:  

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

  3、OpenCV

    建议使用OpenCV2.4.0或以上版本

    下载地址:http://opencv.org/

    可以下载相应系统的对应版本,也可以下载源码后用Cmake进行编译。前者直接下载安装即可,后者可以参考其他文章,具体过程后续补上。

  4、FFmpeg for Win32

    下载地址:https://ffmpeg.zeranoe.com/builds/

    下载合适的版本,如下载的是32位,解压到D:\ffmpeg-r16537-gpl-lshared-win32

    打开计算机环境配置,添加路径PATH:D:\ffmpeg-r16537-gpl-lshared-win32\bin

  5、zlib

    下载zlib,下载地址:http://www.zlib.net/

    直接下载  zlib source code, version 1.2.8, zipfile format

    解压到文件夹(可自行放置),比如我放在D:/

    打开cmake-gui.exe,设置

    where is the source:  D:/zlib-1.2.8
    where to build:  D:/zlib-1.2.8/win32

    点击Configure,没什么错误,可直接点Generate

    点击Open Project,VS2013会打开该项目文件。

    选择Debug,进行编译。

    选择Release,再进行编译。

    打开目录D:/zlib-1.2.8/win32,将该目录下的zconf.h赋值到根目录下D:/zlib-1.2.8。否则,后面可能会出现错误 : error C1083: 无法打开包括文件: “zconf.h" 。

  三、配置MRPT

  1、下载

    下载地址:http://www.mrpt.org/download-mrpt/

    本文下载Binaries (precompiled) for Windows VS2013 32bit版本。

    直接安装,如安装到D:\Program Files\mrpt-1.4.0

    新建自定义目录,作为MPRT编译工作目录,如本文D:\MRPT\buildVS2013(该目录可自行定义)

  2、Cmake(cmake-core)配置

    (1)设置

      Where is the source code : D:/Program Files/mrpt-1.4.0

      Where to build the binaries: D:/MRPT/buildVS2013

      第一次点Configure,会出现很多问题,一个个解决。

    

  

    (2)详细配置(部分设置需要勾选Advanced才能出现)

      1)MRPT_HAS_FFMPEG_WIN32 使能

      点击Configure,会出现红框选项FFMPEG_WIN32_ROOT_DIR

      设置FFMPEG_WIN32_ROOT_DIR = D:/ffmpeg-r16537-gpl-lshared-win32

    

      2)设置OPENCV路径

      OPENCV_DIR = D:/opencv/build

      

      3)设置wxWidget路径

      wxWidgets_ROOT_DIR = D:/wxWidgets-3.1.0

      wxWidgets_LIB_DIR = D:/wxWidgets-3.1.0/lib/vc_dll

      

      4)设置zlib路径

      ZLIB_INCLUDE_DIR = D:/zlib-1.2.8

      ZLIB_LIBRARY_DBG = D:/zlib-1.2.8/win32/Debug/zlibd.lib

      ZLIB_LIBRARY_REL = D:/zlib-1.2.8/win32/Release/zlib.lib

      出现 Found ZLIB **** 则表示正确配置。

    (3)其他配置

      BUILD_APPLICATIONS:默认为ON。如果未选上,则不能生成应用软件。如不需要,可以取消。建议第一次使用MRPT时,请勾选,可以深入了解其中的代码及过程。

      BUILD_APP_**:默认为ON。对应的应用软件,如不用编译,可以不勾选。

      BUILD_ARIA:默认ON。是否生成用于连接Activemedia机器人的ARIA库,如未使用,请取消。

      PCL_DIR:PCL点云库。如需使用,请先安装PCL点云库。

      BUILD_KINECT:默认ON。如未使用Kinect,可以取消。      

      BUILD_ROBOPEAK_LIDAR:默认ON。RobotPeak Lidar配置。

      

    再一次点击Configure,基本选项配置如下:

     ______________________ OPTIONAL LIBRARIES ______________________

    Assimp (3D models) : Yes (Built-in) [Version: 3.1.1]

    eigen3 : Yes (Built-in) [Version: 3.2.5]

    ffmpeg libs (Video streaming) : Yes (System) [avcodec , avutil , avformat ]

    gtest (Google unit testing library) : Yes (Built-in)

    Intel threading lib (TBB) : No

    lib3ds (3DStudio scenes) : Yes (Built-in)

    libclang (for ConvertUTF) : Yes (Built-in)

    libjpeg (jpeg) : Yes (Built-in)

    liblas (ASPRS LAS LiDAR format) : No

    mexplus : No

    OpenCV (Image manipulation) : Yes (System) [Version: 2.4.13]

    OpenGL : Yes (System)

    GLUT : Yes (Built-in)

    PCAP (Wireshark logs for Velodyne) : No

    PCL (Pointscloud library) : No [Version: ]

    SuiteSparse : No

    wxWidgets : Yes (System)

    zlib (compression) : Yes (Built-in)

    yamlcpp (YAML file format) : No [Version: ]

  

    _____________________ HARDWARE & SENSORS _______________________

    libdc1394-2 (FireWire capture) : No

    DUO3D Camera libs : No

    National Instruments...

    ...NIDAQmx? : No

    ...NIDAQmx Base? : No

    NITE2 library : No

    OpenKinect libfreenect : No

    OpenNI2 : No

    PGR FlyCapture2 : No

    PGR Triclops : No

    Phidgets : No

    RoboPeak LIDAR : Yes

    SwissRanger 3/4000 3D camera : No

    Videre SVS stereo camera : No

    xSENS MT 3rd generation : Yes (Built-in)

    xSENS MT 4th generation : Yes (Built-in)

    Intersense sensors : No

    其他硬件及传感器,请根据自行需要配置。

  四、编译MRPT

    接着上一步,点击open project,可直接用VS2013打开项目文件。

    在进行编译前,请关闭浏览器、杀毒软件、PDF阅读软件等较占用内存较大的软件。如果你是战斗机,请忽略。

    接着就可以直接点击生成解决方案。

    

  编译过程稍长,耐心等待。

  编译完成即可。

  五、异常解决方案

    错误1:

      error LNK1104: 无法打开文件“libmrpt-hwdrivers140-dbg.lib” 等其他类似错误

    解决方法:

      如有以上错误,请先检查其他错误;重新编译后,如果没有其他错误,一般都不会出现。如有,请重新检查以上配置是否正确。

    错误2:

      error C1083: 无法打开包括文件: “zlib.h”: No such file or directory

    解决方法:

      请完成2.5和3.2.4步骤。

    错误3:

      error C1083: 无法打开包括文件: “wx/image.h”: No such file or directory

    解决方法:

      请检查3.2.3步骤,是否设置正确路径。

    错误4:

      error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突

    解决方法:

      请检查下载mrpt包是否是对应系统版本。

    错误5:

      “M_PI”: 宏重定义

    解决方法:

      找到对应的math.h文件,将M_PI定义添加两句代码。如下,      

  #ifndef M_PI
  #define M_PI 3.14159265358979323846
  #endif

    错误6:

      编译器的堆空间不足

    解决方法:

      编译前请关闭浏览器、杀毒软件等占用内存较大的软件。

    错误7:(最关键的一个错误)

      error C2371: “int32_t”: 重定义;不同的基类型  或“int8_t”

    解决办法:

      因为两个.h文件所定义的int32_t和int8_t的类型不同。错误会提示哪两个.h文件冲突,打开pstdint.h文件,找到对应的定义,并修改为另一个.h文件的定义类型。另外因为权限问题,pstdint.h文件无法直接修改,可将其保存在其他目录并复制到该目录下。在覆盖之前,先进行备份。

    错误8:

      error MSB6006: “CL.exe”已退出,代码为X

    解决方法:

      参考 http://www.cnblogs.com/xuanxiaochen/p/6004842.html

  六、参考

    http://www.mrpt.org/Building_and_Installing_Instructions

    《MRPT Tutorial》 (中文版) 汪若博 译

  (欢迎转载,转载请注明出处。)

MRPT笔记——MRPT在VS2013中的配置的更多相关文章

  1. VS2013中安装配置和使用Boost库

    源地址:http://www.itnose.net/detail/6077953.html 时间:2014.07.24 地点:基地 ---------------------------------- ...

  2. pclint在VS2013中的配置

    1.安装pclint a. 从http://download.csdn.net/detail/finewind/8426979下载破解版的pclint9i版: b. 点击pclint9setuo.ex ...

  3. MRPT笔记——使用编译好的MRPT库建立VS2013项目

    接着上一篇<MRPT在VS2013中的配置>,下面接收如何使用编译好的MRPT建立工程项目. 一.设置环境变量 上一篇中,配置MRPT时,使用到了几个相关库,opencv.zlib.wxW ...

  4. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  5. 在VS2013中配置QT5 win7_64

    转自 在VS2013中配置QT5 win7_64 环境: win x64 + vs2013+QT5+vs_addin 下面示例正确配置QT以及VS2013 + QT Addin开发环境: 下载VS20 ...

  6. vs2013中配置SQLite数据库

    转载:https://maplefan.com/index.php/2019/08/14/visual-studio-2013%e9%85%8d%e7%bd%aesqlite3%e7%9a%84%e6 ...

  7. VS2013中Python学习笔记[基础入门]

    前言 在上一节中简单的介绍了在VS2013中如何进行开发Hello World,在VS2013中进行搭建了环境http://www.cnblogs.com/aehyok/p/3986168.html. ...

  8. ASP.NET Core 学习笔记 第四篇 ASP.NET Core 中的配置

    前言 说道配置文件,基本大多数软件为了扩展性.灵活性都会涉及到配置文件,比如之前常见的app.config和web.config.然后再说.NET Core,很多都发生了变化.总体的来说技术在进步,新 ...

  9. VS2013中的MVC5模板部署到mono上的艰辛历程

    部署环境:CentOS7 + Mono 3.10 + Jexus 5.6 在Xamarin.Studio创建的asp.net项目,部署过程非常顺利,没有遇到什么问题:但在VS2013中创建的asp.n ...

随机推荐

  1. 微信小程序-数据缓存

    每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync).wx.getStorage(wx.getStorageSync).wx.clearSt ...

  2. centos7 加入自启动服务的方法 以jexus为例

    在/lib/systemd/system 下创建文件jexus.service vi jexus.service 内容如下 Unit Description=jexus After=network.t ...

  3. git push免输入账号和密码方法

    最近在做些oj,所以需要频繁的git push提交代码,每次都要输入帐号和密码,感觉不舒服,于是乎就做了如下设置,然后就可以开心的提交啦- Linux或者Mac下方法: 创建文件,进入文件,输入内容: ...

  4. hibernate的session对象核心方法注意的问题

    1.session.save()方法 1).session.save()方法会使一个对象从临时状态转变为持久化状态. 2).session.save()方法会赋予持久化对象的OID属性一个ID值,以对 ...

  5. App开发(Android与php接口)之:短信验证码

    最近和同学们一起开发一个自主项目,要用到短信验证码,在网上搜索了很久,看到一个推荐贴,提到了很多不错的短信服务商.经过测试,帖子中提到的服务商他们的短信到达率和到达速度也都不错.最后,由于经费问题,我 ...

  6. Media Player插件

    <object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" ...

  7. HTML基本标签

    h1-h6:标题标签.(从大到小) p:段落标签. img:图片标签:属性src:图片的相对路径:alt:图片加载失败的提示语言. a:超链接标签:属性:href:地址链接:target:网页打开的默 ...

  8. EasyUI的combobox控件使用onchange 问题

    在项目中几次都遇到了同样的问题,现在都不知道怎样解决了! 路过的朋友们帮我看看嘛!谢谢了! 最后我想要实现的效果是这样的.   在下拉列表中不存在值.(这里的是下拉列表中存在值的!)  但是在我输入值 ...

  9. call()和原型继承的方法

    1.call() call()方法接受两个参数,obj和arg 比如functionA.call(obj,arg)   就是说现在运行(执行)functionA这个方法,但是functionA里面的方 ...

  10. USR-BLE101配置

    新买来的模块,默认为slave模式,波特率57600,8位数据位,无检验位,1位停止位. 发送+++a,进入命令模式. 1.设置模块名称 AT+NAME=BT_Shining 2.设置发射功率(最大功 ...