Ⅰ rgbd感測器是什麼
RGBD SLAM屬於視覺SLAM中的一種,使用的RGBD感測器包括zed(雙目立體,適用於室外)、Kinect(結構光,僅限室內)、Kinect v2(TOF,主要用於室內)等。
功能包
現在有比較多的現成的功能包可以進行學習和二次開發:
gmapping:
實時構建室內地圖,在構建小場景地圖所需的計算量較小且精度較高。相比Hector SLAM對激光雷達頻率要求低、魯棒性高(Hector 在機器人快速轉向時很容易發生錯誤匹配,建出的地圖發生錯位,原因主要是優化演算法容易陷入局部最小值)。
而相比Cartographer在構建小場景地圖時,Gmapping不需要太多的粒子並且沒有回環檢測因此計算量小於Cartographer而精度並沒有差太多。但是,不適合構建大場景地圖,並且沒有回環檢測,因此在回環閉合時可能會造成地圖錯位,雖然增加粒子數目可以使地圖閉合但是以增加計算量和內存為代價,不能像Cartographer那樣構建大的地圖。
hector_slam:
設計初衷Hector主要用於救災等地面不平坦的情況,因此無法使用里程計,特點是用IMU解決了激光的運動畸變問題。雖然系統不提供明確的循環關閉能力,但對於許多真實世界場景來說它足夠准確。
cartographer:
累計誤差較前兩種演算法低,能天然的輸出協方差矩陣,後端優化的輸入項。成本較低的雷達也能跑出不錯的效果。是Google開源的一個ROS系統支持的2D和3D SLAM(simultaneous localization and mapping)庫。
Ⅱ 如何運行cartographer-master
0.安裝所有依賴項
sudoapt-getinstall-ygoogle-mocklibboost-all-devlibeigen3-devlibgflags-devlibgoogle-glog-devliblua5.2-devlibprotobuf-devlibsuitesparse-devlibwebp-devninja-buildprotobuf-compilerPython-sphinxros-indigo-tf2-eigenlibatlas-base-devlibsuitesparse-devliblapack-dev
1.首先安裝ceressolver,選擇的版本是1.11,路徑隨意
Gitclonehttps://github.com/hitcm/ceres-solver-1.11.0.git
cdceres-solver-1.11.0/build
cmake..
make–j
sudomakeinstall
2.然後安裝cartographer,路徑隨意
gitclonehttps://github.com/hitcm/cartographer.git
cdcartographer/build
cmake..-GNinja
ninja
ninjatest
sudoninjainstall
3.安裝cartographer_ros。
谷歌官方提供的安裝方法比較繁瑣,我對原來的文件進行了少許的修改,核心代碼不變,只是修改了編譯文件
下載到catkin_ws下面的src文件夾下面
gitclonehttps://github.com/hitcm/cartographer_ros.git
然後到catkin_ws下面運行catkin_make即可。
4.數據下載測試
2d數據,大概500M,用迅雷下載
https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
3d數據,8G左右,同樣用迅雷下載
https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/cartographer_3d_deutsches_museum.bag
然後運行launch文件即可。
roslaunchcartographer_rosdemo_backpack_2d.launchbag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
roslaunchcartographer_rosdemo_backpack_3d.launchbag_filename:=${HOME}/Downloads/cartographer_3d_deutsches_museum.bag
如下圖,左側為2d,右側為3d。
Ⅲ 如何使用Google 的Cartographer SLAM演算法包
0.安裝所依賴項
sudo apt-get install -y google-mock libboost-all-dev libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler Python-sphinx ros-indigo-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev
1.首先安裝ceres solver選擇版本1.11,路徑隨意
Git clone
cd ceres-solver-1.11.0/build
cmake ..
make –j
sudo make install
2.安裝 cartographer,路徑隨意
git clone
cd cartographer/build
cmake .. -G Ninja
ninja
ninja test
sudo ninja install
3.安裝cartographer_ros
谷歌官提供安裝比較繁瑣我原文件進行少許修改核代碼變修改編譯文件
載catkin_ws面src文件夾面
git clone
catkin_ws面運行catkin_make即
4.數據載測試
2d數據概500M用迅雷載
3d數據8G左右同用迅雷載
運行launch文件即
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/cartographer_3d_deutsches_museum.bag
圖左側2d,右側3d
Ⅳ 怎麼做史萊姆。
題主所說的史萊姆,應該就是SLAM吧。SLAM現在是比較火熱的,但是要想做出來真的不容易。首先,需要學習一些基本的定位與導航理論;然後,結合ROS與cartographer等軟體做些模擬模擬;接著,多看些國外的實際應用或做實驗的文章;最後,自己嘗試去根據教程做第一個史萊姆就可以啦。
Ⅳ ROS環境,怎麼在cartographer上添加真實的里程計數據啊
查看鄰居表是否建立。建立的話,查看其他區域是否為完全末節區域或NSSA。是的話,肯定沒了,這兩個區域是隱藏路由信息的。完全末節區域默認是無法學到其他路由的,只能學域內路由和默認路由,NSSA只能學到直連的域間和域內,外部直連,但是無法學到外部轉發的。你可以通過在完全末節區域的ABR上構建一條redistribute connect,加入默認路由。在NSSA的ABR上加入一條default-information originate。在環回上加入ip ospf network point-to-point ,效果可以使你在路由表中看到的環回掩碼為所填寫的,而不是/32
Ⅵ 如何使用 Google Cartographer SLAM 演演算法來建地圖
不用生成直接有現成的Google Earth,谷歌投資了幾十個天上飛的玩意弄出來的,比某度神馬的強