谷歌的Cartographer由於其開源社區特性,非常適合SLAM入坑。
入坑前注意兼容性,比如ROS使用kinetic,則ubuntu版本建議爲16,不要圖新鮮升什麼ubuntu18。都是血淚教訓。
可能的話,儘量一臺虛擬機做一件事,保持純淨性,避免系統、環境、配置等的互相影響。一個典型的例子是,我之前根據別家教程安裝了pcL庫,版本爲1.9,後續按谷歌教程裝cartographer時,由於1.9的pcl要求c++14,而配置文件裏面是c++11,調節起來就很麻煩,而且往往一個坑接一個坑,因爲你的環境和教程不一樣,你就可能遇到很多本來新系統中不會遇到的問題。
另外,cartorgrapher ROS本身並沒有包含ROS,所以需要先安裝好ROS(下載大約2G的內容),參見http://wiki.ros.org/kinetic/Installation/Ubuntu。先安裝ROS的好處在於,可以自動安裝ROS的依賴項。
建議使用官方提供的清華源。注意如果採用源碼編譯,內存一定要足夠,可以用swap空間的方式暫時的解決內存不足的問題,但長遠看還是需要增加內存容量。
安裝Cartographer ROS時,首先參考https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html
但是要注意cere-solver的原始路徑不可用需要替換,參考https://blog.csdn.net/rjasd1128hf/article/details/79888305
另外,建議下載前,虛擬機裝下shadow分割socks,然後在shell裏面開一下代理,否則速度太慢。下面是一個典型的代理腳本(代理服務器,端口之類的信息需要你自己百度找免費的或者付費搭VPS),拷貝到/bin下面賦權爲755,之後shell中提前運行下 XX.sh start即可,此後,shell中的下載都會走代理。
#!/bin/bash
start() {
if [ "$(pidof sslocal)" == "" ]
then
echo "run ss"
sslocal -s 代理IP -p 代理端口 -b 127.0.0.1 -l 1080 -k 密碼 -m 加密方式
fi
echo "set shell proxy"
hwclock --show
export http_proxy=http://127.0.0.1:1080
export https_proxy=https://127.0.0.1:1080
export http_proxy=socks://127.0.0.1:1080
export http_proxy=sock4://127.0.0.1:1080
export http_proxy=sock5://127.0.0.1:1080
}
stop() {
echo "stop shell proxy"
unset http_proxy
unset https_proxy
}