第二篇:Scan to Scan(上)

本篇主要講述柵格地圖構建和Scan to Scan方法。

  1. 柵格地圖或者說是概率佔據柵格地圖初步

在Matlab中創建一個1000*1000大小的二維數組,如果數組中每個元素取值為0到255的整數(灰度圖),再把這個數組用Matlab中的圖片轉換函數把數組轉化為BMP圖片(也可以其它你自己覺得合適的格式),這樣我們就手動構建了一張地圖了。直接用Windows自帶的畫圖軟體打開,可以在圖上自己手動修改,這樣就是手動地圖修改,保存後在用Matlab讀取這張BMP圖片,轉換為1000*1000的二維數組,這樣就是地圖的讀取。說明:你也可以生成500*500,或者10000*10000大小,根據實際需求設置。圖片中每個像素點代表一個單位距離,假如一個像素點代表0.05m,那麼1000*1000大小的圖片代表50m*50m大小的地圖,以此類推,一個像素點也可以代表1m單位距離(距離解析度小了)或者0.01m單位距離(距離解析度大了)。在灰度圖中0值為黑色,255為白色,可以假定0值為障礙物和255值為空(也可以反過來,隨自己喜好),其它值代表這個位置是障礙物的概率或者是空的概率的大小,比如128代表既不是空也不是障礙物或者說兩者的情形概率相等,比如200代表是空的概率大點,比如50代表是障礙物的概率大點。

下圖為全是0值的1000*1000像素大小的地圖,這裡假定0值為空。

下圖為自己隨意畫的幾條線代表障礙物,假定255白色為障礙物。

下兩幅圖為實際利用激光雷達SLAM方法生成一個大的房間的地圖,兩幅地圖本質一樣,只是表達方式取值不一樣,第二幅只顯示了障礙物和空地(沒探索到的地方也表示空了)。

  1. 對柵格地圖的進一步說明

柵格地圖理論可以從 概率機器人這本書中或者網上很方便的搜索到,我這邊在仔細說明一下,以我自己實際應用的方式班門弄斧。

到此為止,柵格地圖的大體已介紹完畢,而且這些也基本足夠了,除非特別提到,後面將不再提起,因為如何畫地圖在激光雷達SLAM中只是很簡單的一件事。


推薦閱讀:
相關文章