• MRPT笔记——MRPT在VS2013中的配置


      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:wxWidgetsuildmsw

        

        执行以下命令:  

    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

      

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

    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

      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-win32in

      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 Filesmrpt-1.4.0

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

      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》 (中文版) 汪若博 译

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

  • 相关阅读:
    React Native 项目运行在 Web 浏览器上面
    iOS:CYLTabBarController【低耦合集成TabBarController】
    iOS原生项目中集成React Native
    iOS根据Url 获取图片尺寸
    iOS关于html缓存
    swift约束框架SnapKit使用
    swift
    Swift关于Any,AnyObject,AnyClass的区别与联系
    swift三方库
    React Native
  • 原文地址:https://www.cnblogs.com/xuanxiaochen/p/5996896.html
Copyright © 2020-2023  润新知