占據柵格地圖(Occupancy Grid Map)(與SLAM構圖有關)


本文來自Coursera(Robotics:Estimation and Learning)

主要講:機器人世界使用的幾種地圖

    占據柵格地圖的表示方法與更新方法

    利用激光傳感器數據構建占據柵格地圖

1、機器人地圖分類

  尺度地圖:坐標、經度緯度等

  拓撲地圖:用於路徑規划

  語義地圖:用於人機交互

2、柵格地圖

  機器人常用的一種地圖表示法。

  機器人經常使用激光傳感器,但是並不能穩定的觀測一個點的距離,比如一個角度下,檢測到障礙物時4m,但是下一刻檢測的是4.1m,我們不能將兩個距離的位置double認為是障礙物,所以我們要采用柵格地圖。

  對一般的地圖來講,地圖上某一個點要么有障礙物要么沒有,但是在柵格地圖中,對於一個點我們把他是空free的概率表示為p(s = 1),有障礙物表示為p(s = 0),兩者的概率和為1.

  兩個值表達比較麻煩,因為稍后我們可能根據概率把這個點定位占據狀態或者空閑狀態,我們就用兩個概率的比值表示就可以。

  ,這就是表示空的概率比上占據概率,整個值越大,空概率越高。

  對於一個點,現在,來了一個新的測量值,測量值也在這個點上有概率計算。

  那么比值公式可以更新一下:

  ,在新的測量事件下,空的概率,占據的概率,比值大小。

  根據貝葉斯公式,

 

  代入比值公式:

  

  通過取對數化簡一下:

    

  (個人意見,其實取對數挺好的,之前比值范圍是0-無窮,兩比值相等的時候是1,現在取完對數后,值范圍是負無窮到正無窮,0為中間值)

  上面那個含有測量值的項稱之為測量值模型,標記為lomeas,測量值的模型有兩種,占據和非占據,都為定值:

  

  一句話就是位置S的狀態,之前的加上lomeas等候之后的S狀態。

  在沒有任何測量下,一個點的初始狀態

  Sinit=logOdd(s)=log(0.5/0.5)=0;

  經過這樣一些數學處理后,一個點得狀態我們只需要做簡單的加減法就可以了。

  每一次掃描激光后,每個格子的概率疊加,每個格子概率越大越是占據狀態,越小越是空余狀態。

3、利用激光傳感器構建占據柵格地圖

  這段講利用激光傳感器構建柵格地圖的細節;

  編寫函數:function maMap = occGridMapping(ranges,scanAngles, pose, param)

  其中,scanAngles是一個N*1的數組,表示激光傳感器N個方向的夾角,ranges是K*N的數組,表示N個時間采樣點激光傳感器的讀數(距離障礙物距離);pose是3*N的數組,表示N個時間采樣點,機器人的位置和朝向信息;param是一些傳入參數,param.origin是機器人起點,param.lo_occ和param.lo_free分別表示占據值和空余值,而param.max與param.min 表示位置狀態閾值,超過了則為閾值便捷,param.resol表示地圖的分辨率,即實際地圖中一米所表示的格點數目,param.size表示地圖的大小。

 

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM