SLAM十四讲笔记(第五,六讲实践部分)(Ubuntu16.04)
我是一个完完全全的小白,但仍有心想帮助跟我一样的人,所以在这里分享一下前几章我遇到的实践部分的问题,如果有什么不对的地方希望能得到大家的指正,有问题大家可以一起交流鸭。
1.第五讲:操作OpenCV
编译时应先返回build(用于存放cmake中间文件,以下皆为相同作用)的上一级文件夹即imageBasics文件夹中
再使用
build/imageBasics ubuntu.png
2.第五讲:拼接点云
ubuntu14以上使用一下命令安装PCL
sudo apt install libproj-dev
14以下则安装教程步骤
安装后若编译出现一下错误:
make[2]: *** No rule to make target
‘/usr/lib/x86_64-linux-gnu/libproj.so’, needed by ‘joinMap’. Stop.
CMakeFiles/Makefile2:67: recipe for target
‘CMakeFiles/joinMap.dir/all’ failed make[1]: ***
[CMakeFiles/joinMap.dir/all] Error 2 Makefile:83: recipe for target
‘all’ failed make: *** [all] Error 2
则使用
sudo apt-get install libproj-dev
再次编译出现以下错误
- Build files have been written to: /home/wd/code/slambook-master/ch5/joinMap/build [ 50%] Linking CXX
executable joinMap /usr/bin/ld: cannot find -lvtkproj4 collect2:
error: ld returned 1 exit status
CMakeFiles/joinMap.dir/build.make:349: recipe for target ‘joinMap’
failed make[2]: *** [joinMap] Error 1 CMakeFiles/Makefile2:67: recipe
for target ‘CMakeFiles/joinMap.dir/all’ failed make[1]: ***
[CMakeFiles/joinMap.dir/all] Error 2 Makefile:83: recipe for target
‘all’ failed make: *** [all] Error 2
解决方法,需要在CMakeLists中加一条指令修复,即在add_executable语句前面加上**
list(REMOVE_ITEM PCL_LIBRARIES “vtkproj4”)
再次编译即可成功
3.第六讲:Ceres和g2o
Ceres依赖项libcxsparse3.1.2报错问题:安装libcxspase3.1.4即可
g2o依赖项使用sudo apt-get install libcholmod
然后按下Tab键自动补全,之后安装即可
Ceres和g2o编译完成后需要安装,使用sudo make install
即可
得到函数结果的命令需要在build的上一级执行,可以说 build/ 开头的都是在build的上一级执行