安裝 cartographer踩坑 (ubuntu 16.04 + kinetic)


安裝 cartographer踩坑 (ubuntu 16.04 + kinetic)

主要參考博文:

http://www.cnblogs.com/lvchaoshun/p/9824528.html

這篇博文采用的是分別安裝的方法。

  1. ceres-solver
  2. proto3
  3. cartographer
  4. cartographer_ros。

最后面的 cartographer_ros包的安裝就是源碼拷貝到工作空間.

可以新建一個工作空間也可以用原來的。然后直接進行編譯。

遇到的問題:

一 protobuf 版本混亂問題

按着教程的安裝方式安裝proto3,我們需要把ubuntu里原來的proto的版本更換到3。
對應的就是教程的3.6.0.
到ghithub上下載

https://github.com/google/protobuf/releases

下載 3.6.0 的all版本。

安裝的時候尤其注意安裝路徑。

如果不設置安裝路徑, 也就是執行這句。

$ ./configure

一般情況下,默認會安裝到/usr/include文件下,這樣就會與ROS自帶的proto2發生版本沖突。

因此我們需要找個位置

而我們需要指定安裝到,/usr/local/include文件下.

安裝完成會有一個goole文件在/usr/local/include 下。

這個和google文件夾下就是protobuf

正確的安裝方法如下:

$ tar zxvf protobuf-all-3.6.0.tar.gz
$ cd protobuf-3.6.0/
$ ./configure -prefix=/usr/local/        
# (安裝路徑,一般情況下,默認會安裝到/usr/include 文件下,我們需要指定安裝到,/usr/local/include文件下,安裝完成會有一個goole文件在/usr/local/include 下)
$ make
$ make check
$ make install
$ protoc -version 

二 共享庫路徑問題

剛開始按着別的教程安的protobuf3.6.0

但是在查版本型號的時候遇到了找不到共享庫的問題。

$ protoc --version

error:

error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory

解決辦法:

原因一般有兩個

一個是操作系統里確實沒有包含該共享庫(lib.so.文件)或者共享庫版本不對.

遇到這種情況那就去網上下載並安裝上即可.

另外一個原因就是已經安裝了該共享庫

但執行需要調用該共享庫的程序的時候程序按照默認共享庫路徑找不到該共享庫文件。

順着教程的目錄找一找,共享庫文件,設置一下路徑。

https://www.cnblogs.com/Anker/p/3209876.html
https://blog.csdn.net/sahusoft/article/details/7388617

三 手欠!編譯完改文件夾名

在ceres-solver proto3 cartographer都安裝完成。cartographer_ros編譯通過之后。

我手欠地把存放 ceres-solver cartographer 源碼的文件夾改名了!

所以菜雞處處是問題。

error:
$ /usr/local/include/cartographer/io/points_processor_pipeline_builder.h:23:42: fatal error: absl/container/flat_hash_map.h: 沒有那個文件或目錄

然后意識到問題,重新編譯ceres-solver和cartographer試了一下。報錯如下。

CMake Error: The current CMakeCache.txt directory /home/vistar/desktop/catkin_ws/build/CMakeCache.txt is different than the directory /home/vistar/桌面/catkin_ws/build where CMakeCache.txt was created. This may result in binaries being created in the wrong place. If you are not sure, reedit the CMakeCache.txt

解決辦法:

將…/build/CMakeCache.txt刪掉,重新編譯將…/build/CMakeCache.txt刪掉,重新編譯

https://blog.csdn.net/maizousidemao/article/details/88895990


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM