接上一篇文章一起做RGB-D SLAM 学习笔记(1),这本来应该是学习笔记2,然而在我尝试编译高博第二讲从图到点云的代码时,opencv出现了报错,好不容易解决各种opencv造成的问题之后又碰上了出现"undefined reference to 'std::__cxx11…"错误,尽管经历一番挣扎,最后还是投降了,于是重头再来,速战速决,拒绝一切花里胡哨。
opencv
安装依赖
sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev
完成后直接用apt-get install 安装OpenCV 2.4.9,我自己测试已经没问题,能够顺利跑完高博一起做RGB-D SLAM1-7的代码。
sudo apt-get install libopencv-dev
PCL
在 Ubuntu 1604,PCL库已经存在于公共软件源中,直接安装即可: 没错,并不需要像我之前说的那么麻烦。。。
sudo apt-get install libpcl-dev pcl-tools
安装完成后即可。还有几个问题会在编译高博代码的时候遇到,之后遇到再说。
qt5
同上篇文章,这里就不白再重复。要注意的是,新版本的g20需要qt5而不再是qt4。
g2o
安装g20我不建议编译高博Github里提供的版本,因为我在这个过程中遇到了很多麻烦,同样的报错网上非常多,也有解决办法,但是很不幸还是遇到了解决不了的。。。所以我推荐https://github.com/RainerKuemmerle/g2o下载新版本编译。
进入g2o的代码目录,并:
先用脚本自动安装依赖
cd script
sudo ./install-deps-linux.sh
编译g2o
cd ..
mkdir build
cd build
cmake ..
make
sudo make install
我编译时没有报错,相比老版本不会遇到那么多问题。但之后在用到g2o时需要对高博的源码进行一些修改。
kdevelop
安装kdevelop,作为之后我们使用的IDE
sudo apt-get install kdevelop
HELLO SLAM!
用kdevelop来打开hello slam。
Open/Import Project 打开工程目录下CMakeLists.txt文件。
如果出现问题清空build目录再尝试。
菜单栏找到Run–>Configure Launches,选中刚刚打开的工程,Add New–>Compiled Binary,按如下配置。Executable 中找到bin目录下生成的可执行文件。
这样就可以在kdevelop中运行你的代码,并输出在下面。另外Debug也能用,在简单的程序里试过断点、步进、查看变量都可以使用。
快捷键 :
注释:按Ctrl + d
取消:CTRL + SHIFT + d