Cartographer是Google基於ROS系統的2D和3D SLAM(simultaneous localization and mapping)庫。Google日前宣佈開源Cartographer(GitHub源碼:https://github.com/googlecartographer),該軟件利用同步定位與製圖技術(SLAM技術:https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping)繪製室內平面圖,能同時用於二維與三維空間的移動製圖操做。git
完成相似工做的開源軟件還有OpenSLAM(http://www.openslam.org,主要用於機器人視覺領域的實時製圖功能)、PointCloudLib(http://www.pointclouds.org/,主要用於激光雷達、攝像頭等產生的「點雲」數據的處理)、以及OpenCV(http://opencv.org,主要用於實時的視頻圖像處理和目標識別),而這些庫已經早就整合進了ROS(開源的機器人操做系統,http://www.ros.org),Google的Cartographer也用到或借鑑了這些庫。github
SLAM 技術是自動駕駛平臺最重要的技術部分,適用於無人駕駛、倉庫自動叉車、吸塵機器人和無人機等。Cartographer 基於此建立了全球範圍內的實時地圖,而且結合 ROS 及其餘外部技術支持,Cartographer 現已經支持 Toyota HSR、TurtleBots、PR二、Revo LDS 這幾個機器人平臺。算法
SLAM 算法結合來自多個傳感器(好比,LIDAR、IMU 和 攝像頭)的數據,同步計算傳感器的位置並繪製傳感器周圍的環境。app
例如,使用該方法繪製住室的平面圖:google
拿着一臺激光測距機站在房屋中央,在紙上畫一 X ;spa
測量你所在位置到任一牆面的距離;操作系統
在牆面所在位置畫一條線,並寫下 X(你所在位置)與牆面之間的距離;視頻
測量你所在位置到另外一牆面的距離並畫出表明牆面的直線;ip
如今,移動到房屋的另外一位置;部署
由於牆面不會移動,你能夠測量到上述兩個牆面的距離,從而測定你的位置;
Cartographer 能實時創建全局一致的地圖。
同時,開源 Cartographer 還搭配有開源機器人操做系統(ROS),使得該技術庫更易於部署機器人、無人駕駛、無人機等系統。
Google 在官方聲明中提到,SLAM 算法結合了來自多個傳感器的數據,好比 LiDAR 激光雷達傳感器、IMU 慣性測量單元,還有來自多個攝像頭的數據。綜合這些龐雜的數據,得以計算傳感器及傳感器周圍的環境。
Cartographer 不光是這項開源技術庫的名字,它對應的仍是一套數據收集裝置—「揹包」,和街景採集揹包 Trekker 類似,Cartographer 也須要穿戴者穿過不一樣樓層,以採集和繪製相應空間。在 2014 年 9月,Google 表示已經過 Cartographer 建立了 6 張室內地圖,而如今,咱們已經能在看到博物館、美術館及不少著名建築的室內情形,而且在和德意志博物館(現世界最大的科技博物館)的合做中,Google 還對外公佈了收集 3 年的 LiDAR 和 IMU 數據。