@yanbo01haomiao
2020-08-05T11:34:10.000000Z
字数 2391
阅读 1318
官方安装参考链接:Installation-introlab/rtabmap
1.Ubuntu 16.04系统依赖(已经安装ROS)
$ sudo apt-get update
$ sudo apt-get install libsqlite3-dev libpcl-dev libopencv-dev git cmake libproj-dev libqt5svg5-dev
如果在安装时候出现了依赖包的不匹配,但是代码和包确保没有问题,使用rosdep命令安装依赖
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro indigo -y
其中的indigo需要换成自己实际使用的ros版本,比如melodic,kinetic等。
2.其他依赖
如果你git clone的时候速度比较慢,运行命令nslookup github.global.ssl.fastly.net
和nslookup github.com
把对应的Non-authoritative answer下的Name和Address记住,并且按照ip address的格式加到/etc/hosts文件里。下面是我使用的例子,具体的ip按本机为准:
$ nslookup github.global.ssl.fastly.net
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: github.global.ssl.fastly.net
Address: 173.252.102.241
$ nslookup github.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: github.com
Address: 13.229.188.59
$ sudo gedit /etc/hosts
// 在文件末尾添加
173.252.102.241 github.global.ssl.fastly.net
13.229.188.59 github.com
然后刷新DNS
$ sudo /etc/init.d/networking restart
这样一来命令git clone
来自github的速度就会提升很多。
可选 安装OpenCV。如果要在RTAB-Map中启用SURF / SIFT功能,则还必须从源代码构建OpenCV才能访问非自由模块(对于OpenCV3和OpenCV4,使用opencv_contrib构建)
推荐 从源码安装g2o,仓库地址,依赖Eigen3包,需要先行安装。
$ sudo apt-get update
$ sudo apt-get install libeigen3-dev
$ mkdir slam
$ cd slam
$ git clone https://github.com/RainerKuemmerle/g2o.git
$ cd g2o
$ mkdir build
$ cd build
$ cmake -DBUILD_WITH_MARCH_NATIVE=OFF -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF -DG2O_USE_OPENGL=OFF ..
$ make -j4
$ sudo make install
推荐 从源码安装GTSAM
$ git clone --branch 4.0.0-alpha2 https://github.com/borglab/gtsam.git gtsam-4.0.0-alpha2
$ cd gtsam-4.0.0-alpha2
$ mkdir build
$ cd build
$ cmake -DGTSAM_USE_SYSTEM_EIGEN=ON -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_UNSTABLE=OFF ..
$ make -j4
$ sudo make install
可选 安装cvsba,安装介绍
$ sudo apt-get install liblapack-dev libf2c2-dev
$ tar -zxvf cvsba-1.0.0.tgz
$ mkdir cvsba-1.0.0.tgz/build
$ cd cvsba-1.0.0.tgz/build
$ cmake ..
$ make
$ sudo make install
为了让rtabmap能够找到它,还需要执行下面的步骤:
$ sudo mkdir /usr/local/lib/cmake/cvsba
$ sudo mv /usr/local/lib/cmake/Findcvsba.cmake /usr/local/lib/cmake/cvsba/cvsbaConfig.cmake
3.Rtab-map
3.1 下载源码编译
$ git clone https://github.com/introlab/rtabmap.git rtabmap
$ cd rtabmap/build
$ cmake ..
$ make -j4
$ sudo make install
$ sudo ldconfig
3.2 安装rtabmap-ros
4.运行程序
测试了一下双目的测试集,跑出来的效果还不错。官方实例
sudo apt install libsuitessparse-dev
就可以解决。这个包的安装需要在g2o的包安装之前安装才可以。所以如果已经安装g2o需要卸载一下,重新安装上面的包之后再次安装就没有问题了。