在demo數據包上運行cartographer
現在Cartographer和Cartographer的Ros包已經都安裝好了,你可以下載官方的數據集到指定的目錄(比如在Deutsches Museum用背包采集的2D和3D
數據),然后使用roslauch來啟動demo。
注:launch文件會自動同時啟動roscore和rviz。
當你想運行cartographer_ros,你可能先要使用source install_isolated/setup.bash來加載你的ros運行環境。install_isolated換成你自己的安裝路徑即可。一般ubuntu系統只要source setup.bash就可以,其他版本可能source setup.zsh。
Deutsches Museum數據集(著名的德意志國家圖書館)
下載2D激光數據包,也可以從這里獲取 百度云盤 提取碼: ng5b
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
然后運行2d激光的demo
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
下載3D激光數據包,
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/with_intensities/b3-2016-04-05-14-14-00.bag
然后運行3D激光的demo
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag
Pure localization(純定位)
這里純定位demo使用2個數據包,一個數據包用于建圖,第2個數據包用來運行純定位。這里解釋一下,一般我們機器人來到一個未知環境,首先需要探索并先建立地圖,然后我們才能使用建立好地圖用來定位自己的信息。這里純定位的“純”是相對于建圖來說,純定位的時候地圖是已知的,使用之前建立好的地圖進行純粹的定位功能,所以這個demo并不像建圖一樣占用大量的cpu。
下載2d數據包,下面是2條指令,下載2個數據包
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/b2-2016-04-05-14-44-52.bag
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/b2-2016-04-27-12-31-41.bag
生成地圖(等待cartographer_offline_node完成建圖后,會生成pbstream地圖文件),然后再運行純定位demo
使用離線數據包建圖
roslaunch cartographer_ros offline_backpack_3d.launch bag_filenames:=${HOME}/Downloads/b3-2016-04-05-13-54-42.bag
使用生成的地圖進行定位
roslaunch cartographer_ros demo_backpack_3d_localization.launch \load_state_filename:=${HOME}/Downloads/b3-2016-04-05-13-54-42.bag.pbstream \bag_filename:=${HOME}/Downloads/b3-2016-04-05-15-52-20.bag
Static landmarks(靜態路標)
這個demo是個大殺器,我們知道很多場景是不斷變化的,那么我們之前建立的激光地圖可能就會失效,那我們頻繁的更新激光地圖是不是太麻煩,所以我們人為的設置一些路標,就可以大大提高我們定位時的穩定性,實際測試效果也很好。
靜態路標可以使用二維碼(可以貼在地上、也可以貼在墻上,根據自己的相機安裝位置不同決定)、反光柱、反光貼紙、反光柱組合等,有些還會使用自定義的激光特征。
一種貼在地面的二維碼,可以配套使用使用海康、大華agv讀碼器。
反光柱
下載數據包
# Download the landmarks example bag.
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/mir/landmarks_demo_uncalibrated.bag
運行landmark的demo
# Launch the landmarks demo.
roslaunch cartographer_mir offline_mir_100_rviz.launch bag_filename:=${HOME}/Downloads/landmarks_demo_uncalibrated.bag
Revo LDS
下載并運行一個低成本激光雷達的demo,這個數據來自一個叫做Neato Robotics的吸塵機器人的Revo的激光雷達。這也是carto的亮點,他可以在精度比較差的激光雷達上穩定運行,證明了carto算法的通用性和高效性,并不挑硬件和精度。
下載數據
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/revo_lds/cartographer_paper_revo_lds.bag
運行demo
roslaunch cartographer_ros demo_revo_lds.launch bag_filename:=${HOME}/Downloads/cartographer_paper_revo_lds.bag
還有一些數據集并沒有突出亮點,我們就不一一舉例了。然后我們下面采集自己的數據集合并測試運行cartograher。
測試自己的數據集
簡單一下幾個步驟
- 根據傳感器的frame_id,創建自己機器人的模型文件,即urdf文件。
- 然后在對應的launch文件中修改使用自己的urdf文件。
- 運行demo就可以了。
這里分享我自己的一些數據包 網頁地址
一般來說精度好一些的激光雷達(比如倍加福R2000、sick等)和陀螺儀(100以上都可以)運行時用默認的lua參數就可以。
效果如圖