写在前面
Ubuntu16.04 (已安装ROS-kinetic)安装MRPT(Mobile Robot Programming Toolkit,移动机器人编程工具箱),下面是安装过程中遇到的坑:
1. 查看二进制安装的MRPT版本
利用 sudo apt-get install libmrpt-dev mrpt-apps
安装的MRPT版本,可以通过文件 /usr/share/mrpt/MRPTConfig.cmake
来查看:
比如我这里安装的是 MRPT 1.5.9版本
2. 二进制安装,安装的是 MRPT 1.3版本
自己按照github链接中的master分支(对应MRPT 2.0版本) ( https://github.com/MRPT/mrpt/tree/master )
sudo add-apt-repository ppa:joseluisblancoc/mrpt
sudo apt-get update
sudo apt-get install libmrpt-dev mrpt-apps
进行二进制安装,最终安装的是 MRPT-1.3版本,理论上应该安装的是MRPT 2.0版本, 不知道是不是我这边是个特例,(但是编译 mrpt_navigation 的时候需要MRPT 1.5版本,没办法只能换一种方式安装 或者 源码安装)
3.二进制安装,安装MRPT 1.5版本
自己按照MRPT的另一个版本github链接(https://github.com/MRPT/mrpt/tree/mrpt-1.5 ),执行二进制安装,安装的是MRPT-1.5版本
sudo add-apt-repository ppa:joseluisblancoc/mrpt-1.5
sudo apt-get update
sudo apt-get install libmrpt-dev mrpt-apps
这个和上一个链接的本质区别就是 PPA 源不同,但是这次理论上安装的是MRPT 1.5 版本,实际上安装的就是MRPT 1.5 版本!(这样才对嘛哈哈哈哈哈)
关于Ubuntu添加或者删除PPA源,可以看下这篇博客:Ubuntu添加或者删除PPA
4. MRPT源码安装时,如果需要运行git submodule update --init --recursive
,却会报错
MRPT源码安装 cmake ..
的时候提示运行 git submodule update --init --recursive
, 但是运行git submodule update --init --recursive
以后报错
解决方法:
(1). 进入报错的目录,我这里进入到
cd ~/test_ws/src/mrpt-1.5/3rdparty/nanogui/ext/glfw
(2). 切换到master
git checkout master
(3). 查看当前的状态,一般提示有修改
git status
得到下面的结果
(4). 更新子模块
git submodule update
(5).查看状态,确认已更新
参考链接:
[1] MRPT github - https://github.com/MRPT/mrpt/tree/master
[2] Git submodule !Unable to checkout !应对办法- https://blog.csdn.net/yaoyutian/article/details/104603915?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task