cartographer中一些公式的推導

2021-10-07 15:19:15 字數 2272 閱讀 6548

在研讀cartographer**的時候,****現了一些公式,結合本人自己的理解做了一些推導:

在scans中提到通過座標變換將掃瞄點變換到子圖的座標系中。原文如下:

但是這個公式具體是怎麼得到的?

這裡我們嘗試給出乙個推導的過程,畫一張簡單的示意圖如下:

這裡設pm(xl,yl,θ)為機械人在世界座標系中的位姿,前兩個代表座標第****角度。xl、yl代表以機械人為中心的座標系,假定機械人中心與雷射感測器中心重合,p為其中乙個雷射點,它在雷射座標系中的座標為p(x,y)。現在我們要將其轉換為在世界座標系下的座標。那麼根據上圖,我們可以列出方程:

根據下圖求得dx以及dy:

其中:

於是得到:

整理得到:

這個就是**中公式一的形式了。

cartographer中提出了子圖的概念,雖然cartographer採用的也是特徵與地圖之間的匹配,但是它使用特徵與子地圖進行匹配。

原文:

大致意思應該是:對於每一次命中或者未命中,我們會將其劃分到命中集合中以及未命中集合中,且分配乙個初始的概率phit或者pmiss。如果我們再次命中或者未命中這個柵格,則我們通過下式更新這個概率。

這裡我在一篇部落格中看到了對於這個公式三的推導:

他將公式三種odds後面的「-1」理解為倒數,也就是:

但是我感覺好像不是這麼理解的,通過原文我們大致應該是能夠知道這裡mnew(x)求取的是乙個概率值,那麼它應該屬於[0,1]。同理mold(x)也是。現在我假設初始命中概率phit=mold(x)=0.6,區間限定函式為[0,1]。則根據公式更新後的mnew(x)=0。從物理意義的角度來講的話也就是說對於乙個本身佔據概率為0.6的柵格,當我再次命中這個柵格後。這個柵格的佔據概率變成了0?也就是兩次命中後意味著這個柵格是空閒的?很難理解。

首先我們需要明白odds代表什麼,它其實是乙個占用比。也就是乙個事件它發生與不發生之間的比值。比值為1的時候代表發生與不發生概率相同。例如我們認為概率為1時為完全發生(占用),概率為0時為完全不發生(未占用)。則我們可以知道phit>0.5,pmiss<0.5。

既然知道了odds,這跟mnew(x)有什麼關係?

我把mnew(x)理解為新的柵格佔據的概率值,也就是p。那根據p與odds之間的關係就可以理解了:

根據這個公式的理解,我們可以得到公式三的等價公式:

我們從物理意義的角度思考這個公式:

odds(mold(x))很顯然代表我新一次觀測未到來之間柵格x的占用比,此時我新的觀測到達後,這個柵格會重新被擊中一次或者miss一次,然後我就去更新這個占用比,例如我再次擊中了,則我用之前的占用比乘乙個擊中情況的占用比odds(phit)。

根據之前的分析我們知道odds(phit)>1

即odds(mold(x))*odds(phit)>odds(mold(x))

從邏輯分析的角度:當我乙個格仔的占用比為a,如果我再次占用,則我應該提公升我的占用比。這很顯然是符合的。

所以此時我們可以得到新的柵格x的占用比:

則根據新的占用比我們通過相應公式可以求得柵格新的概率值。

純屬個人理解,如有不對歡迎斧正。

PB中一些技巧

取資料視窗中可列新的表名。string ls table ls table dw 1.describe datawindow.updatetable.table 22.取資料視窗物件中列的名稱及型別 string ls cols,ls types intli count,i li count int...

php中一些知識

file 的路徑是當前 所在檔案 dirname dirname file 得到的是檔案上一層目錄名 dirname file 得到的是檔案所在層目錄名 require其實是乙個直譯器解釋的過程,比如當我們在乙個檔案中require另乙個檔案的時候,其實是先解釋另乙個檔案。php中的檔案a的過程中假...

PB中一些技巧

取資料視窗中可列新的表名。string ls table ls table dw 1.describe datawindow.updatetable.table 22.取資料視窗物件中列的名稱及型別 string ls cols,ls types intli count,i li count int...