1. 程式人生 > >小豆包的學習之旅:感測器觀測模型

小豆包的學習之旅:感測器觀測模型

  感測器觀測模型,主要針對鐳射測距感測器進行說明。

1.Beam Model 測量光束模型

  鐳射測量光束模型是對鐳射測量過程的近似物理描述,鐳射測距儀沿鐳射發出的光束測量周圍物體的距離。該模型將一條沿光束進行的測量$p(z_{t}|x_{t},m)$表達為四種概率密度的混合。認為存在四種類型的測量誤差。

2.Likehood Field 似然場模型

   主要思想是將鐳射感測器掃描的端點投影到地圖的全域性座標系下。機器人$t$時刻的位姿為$x_{t}=(x,y,\theta)^T$,感測器的安裝位置相對於機器人的中心座標$(x_{k,sens}    y_{k,sens})^T$,鐳射光束相對於機器人的朝向(Heading direction)的角度為$\theta_{k,sens}$。鐳射測量端點的座標為$z_{t}^k$,相對於鐳射器中心。鐳射掃描到的點投影到地圖的全域性座標系座標為$(x_{z_t^k} y_{z_t^k})$.

\[\left( {\begin{array}{*{20}{c}}
{{x_{z_t^k}}}\\
{{y_{z_t^k}}}
\end{array}} \right) = \left( {\begin{array}{*{20}{c}}
x\\
y
\end{array}} \right) + \left( {\begin{array}{*{20}{c}}
{\cos \theta }&{ - \sin \theta }\\
{\sin \theta }&{\cos \theta }
\end{array}} \right)\left( {\begin{array}{*{20}{c}}
{{x_{k,sens}}}\\
{{y_{k,sens}}}
\end{array}} \right) + z_t^k\left( {\begin{array}{*{20}{c}}
{\cos (\theta + {\theta _{k,sens}})}\\
{\sin (\theta + {\theta _{k,sens}})}
\end{array}} \right)\]

  該模型認為存在三種類型的噪聲和不確定性。即:測量誤差$p_{hit}$,最大測量距離$p_{max}$,背景噪聲$p_{rand}$

  (1)測量誤差$p_{hit}$,描述的是測量點到對應地圖上物體之間存在的誤差。

\[{{\rm{p}}_{{\rm{hit}}}}\left( {{\rm{z}}_t^k|{x_t},m} \right) = {\varepsilon _{{\sigma _{hit}}}}\left( {dist} \right)\]

  (2)最大測量距離$p_{max}$,鐳射的最大觀測會產生很大的似然值。

  (3)用一個均勻分佈$p_{rand}$描述觀測中的隨機噪聲

  已知t時刻位姿$x_t$和地圖m的情況下,則觀測到$ z_t^k$的概率$p(z_t^k|x_{t},m)$

\[{\rm{p}}\left( {{\rm{z}}_t^k|{x_t},m} \right) = {z_{hit}} \cdot {p_{hit}} + {z_{rand}} \cdot {p_{rand}} + {z_{\max }} \cdot {p_{\max }}\]

  其中$z_{hit}$,$z_{rand}$,$z_{max}$為權重。

總結:

  機器人的運動模型主要是對機器人的運動過程進行建模,利用的是感測器對機器人運動的觀測資料(如里程計)。

  鐳射感測器的作用主要是感知周圍環境,獲取的掃描資料在SLAM過程中有兩個作用:一是構建地圖(佔用概率柵格地圖);另外一個是掃描匹配,優化里程計獲取的機器人位姿,掃描匹配是建立區域性子圖和全域性地圖位置關係的過程,常用到的就是感測器觀測模型。[SLAM]2D鐳射掃描匹配方法

  地圖的更新時一個增量過程,每個時刻掃描的新的觀測資料都要融合到現有的地圖中,佔用概率柵格地圖介紹了一種增量更新地圖的方法。

相關推薦

豆包學習感測器觀測模型

  感測器觀測模型,主要針對鐳射測距感測器進行說明。 1.Beam Model 測量光束模型   鐳射測量光束模型是對鐳射測量過程的近似物理描述,鐳射測距儀沿鐳射發出的光束測量周圍物體的距離。該模型將一條沿光束進行的測量$p(z_{t}|x_{t},m)$表達為四種概率密度的混合。認為存在四種類型的測量誤

豆包學習里程計運動模型

星球大戰裡面有2個非常出色的機器人一個是3PO,一個是R2。我的機器人呢就叫小豆包啦,代號FR2,不許侵犯它的署名哦。   常見的機器人運動模型包括:速度計運動模型,里程計運動模型和慣導運動模型。概率運動模型是對機器人運動的一種概率描述。   里程計是比較常見的一種型別。嚴格來說,里程計是一種感測

豆包學習入門篇

  人總是對未知充滿了好奇,人的一生是不斷髮現,不斷探索未知的過程。哥倫布發現新大陸,月球探索,火星探索,人類的腳步將永不停止。探索是一個充滿未知的旅程,人類根據自身的知識,藉助外部工具,利用自己的智慧,發現或者發明新的事物,這是一個非常有意思的過程。   不識廬山真面目,只緣身在此山中,如何克服認知的侷限

豆包學習機器人定位

  《概率機器人》一書用兩章介紹了幾種定位方法,一種是基於馬爾科夫決策,另外一章是柵格和蒙特卡羅方法。 1.馬爾科夫定位 2.EKF定位 3.柵格定位 4.MCL蒙特卡羅定位   這裡主要學習一下蒙特卡羅定位。機器人定位問題可以描述為:如何確定機器人在關聯的已知環境地圖中的位姿pose。拋開SLAM

豆包學習佔用概率柵格地圖和cost-map

  接下來將製圖和定位問題分別進行介紹。這兩個問題可以視為SLAM過程中兩個相互聯絡的子問題,但是也可以視為兩個單獨的問題。雖然說SLAM問題是雞和蛋的問題,但是在實際處理過程中總是有先後的。為了簡化問題,首先將兩者視為單獨的問題進行分析,在處理這兩個獨立的問題的時候需要設定一些約束。   描述機器人制圖M

豆包學習開發記錄

宣告:軟體截圖為個人所有,嚴禁用於商業目的和其他盈利行為。 雲臺控制和鐳射點雲獲取軟體 第一階段:三維點雲採集視覺化 第二階段:MoblieSim模擬資料接入,sim_lms1xx_1鐳射。Gmapping建圖實現效果圖,感覺效果一般,估計有的引數還是要調整一下。 進一步工作: (1)當前真實軌

Python學習用Python製作一個打字訓練工具

一、寫在前面   說道程式設計師,你會想到什麼呢?有人認為程式設計師象徵著高薪,有人認為程式設計師都是死肥宅,還有人想到的則是996和 ICU。      別人眼中的程式設計師:飛快的敲擊鍵盤、酷炫的切換螢幕、各種看不懂的字元程式碼。   然而現實中的程式設計師呢?對於很多程式設計師來說,沒有百度和

程式學習----open-data web-view 以及 canvas、map

<open-data type="userAvatarUrl"></open-data> <open-data type="userGender" lang="zh_CN"></open-data> <view></view>

程式學習----圖片image媒體元件camera、audio、video、live-player、live-pusher

<!--pages/image/image.wxml--> <text>這是一個image元件</text> <!-- <image src='../../images/0.jpg'></image> <image src='

程式學習---表單元件 picker picker-view 實現日期 區域 聯動選擇

Page({ /** * 頁面的初始資料 */ data: { cityList: ['北京', '上海', '深圳', '廣州'], cityIndex: 1, time: '17:01', date: '2018-6-28',

程式學習----表單元件 button checkbox form input label radio slider switch textarea 獲取表單資料

<view class='input'> <input placeholder="請輸入內容1" confirm-type="done" type='text' focus="true" bindinput='doInput'/> </view> <

程式學習----基礎內容元件icon 、text 、rich-text、progress

Page({ data: { motto: 'Hello World', nodes: [{ name: 'h2', attrs: { class: 'h2_class', style: 'line-height: 60p

程式學習----覆蓋物元件

<view class='video_box'> <video id="myVideo" src="http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f02016904

程式學習----上拉重新整理例項

Page({ /** * 頁面的初始資料 */ data: { list: [], windowHeight: '400', page: 1, flag: true }, /** * 生命週期函式--監聽頁面載入 */

程式學習----slot 子元件呼叫父元件的方法、父元件呼叫子元件的方法

slot子元件 <!--pages/user/user.wxml--> <header title='{{title}}'></header> {{title}} <footer> <button>我是footer子元件裡的按鈕&l

程式學習----自定義元件toast例項

components目錄下新建資料夾toast,新建component,之後修改toast.js和toast.wxml <!--components/toast/toast.wxml--> <view class='wx_toast_container' hidden="{{!

程式學習----基礎知識

<view wx:if="{{flag}}"> <text> view 當作div text 當作span 繫結資料--{{message}} 繫結物件--{{obj.name}} 條件判斷wx:if='{{

程式學習---wxs模組自定義方法

// pages/user/user.js Page({ /** * 頁面的初始資料 */ data: { d: '1500000000000' }, goShop () { wx.navigateTo({ url:

Spring Boot學習(四)springboot 整合 fastjson

springboot 預設使用的 jackson 但是聽說某寶的fastjson 效能很好,而且平時用的習慣,所以來整合一下。 首先在pom 中匯入依賴 <dependency> <groupId>

程式學習注意事項統計

這篇文章記載在小程式的一些注意事項和遇到的bug,包括解決方案 子控制元件點選事件和父控制元件之間的傳遞 當一個view裡面包裹了了一個子view(如text控制元件),然後兩個控制元件都新增點選事件,如何讓點選text的時候父view的點選事件不觸發呢?  在點選事件t