ROS里程計的學習 odometry 一

2021-08-15 15:15:37 字數 1028 閱讀 1099

什麼是里程計?為什麼需要里程計?

里程計是衡量我們從初始位姿到終點位姿的乙個標準,通俗的說,我們要實現機械人的定位與導航,就需要知道機械人行進了多少距離,是往哪個方向行進的

hector建圖呢有個缺點,如果雷達不夠精確,那麼建出來的圖會導致定位不夠精確,這是我們不期望的,所以要實現精確的定位與導航,需要加入里程計資訊

那麼我們該如何獲得里程計呢?

里程計又包含2 個方面的資訊:

一、是位姿(位置和轉角),即(x,y,θ)

二、是速度(前進速度和轉向速度)。

那麼問題來了,這些資料我們該如何獲取呢????

參考:一、採用編碼器電機來獲取

二、採用ros裡的package : 

laser_scan_matcher  

首先講一下laser_scan_matcher 這個包,

這個包能根據/scan 資料發布2d位姿的資料, 我們是否可以根據2d位姿資料來轉換成表示位置的下x,y, z 以及表示姿態的四元數。理論上是可以的。

速度的獲取:還是根據2d位姿和時間變數,來計算前進速度和轉向速度。2d位姿資料報含:float64 x, float64 y, float64 theta,根據dt 時間裡dx,dy,dtheta, 就可以算出前進速度,和轉向速度。如果2d位姿資料足夠精準,基本都用不上陀螺儀校準。

整個移動機械人的控制結構如下圖所示,其中base_controller節點將訂閱的cmd_vel資訊通過串列埠或其它通訊介面傳送給下位機(嵌入式控制板)。下位機中根據機械人運動學公式進行解算,將機械人速度轉換為每個輪子的速度,然後通過can匯流排(或其它匯流排介面)將每個輪子的轉速傳送給電機驅動板控制電機轉動。電機驅動板對電機轉速進行閉環控制(pid控制),並統計單位時間內接收到的編碼器脈衝數,計算出輪子轉速。

詳細請跳轉頁面:

ROS里程計的學習 odometry

什麼是里程計?為什麼需要里程計?里程計是衡量我們從初始位姿到終點位姿的乙個標準,通俗的說,我們要實現機械人的定位與導航,就需要知道機械人行進了多少距離,是往哪個方向行進的 hector建圖呢有個缺點,如果雷達不夠精確,那麼建出來的圖會導致定位不夠精確,這是我們不期望的,所以要實現精確的定位與導航,需...

視覺里程計學習

大四要做畢業設計了,因為保送去了外校,決定畢業 跟研究生導師做。研究生導師是做gps導航的,想發展視覺導航方向,就想讓我做視覺里程計,嘗試把視覺定位研究一下。基本沒有計算機視覺的基礎的我,就這樣子誤打誤撞進了計算機這個深坑。後來發現了清華博士高翔寫的閒半居士部落格,在這裡有了乙個簡單的入門。他這裡還...

里程計 推算定位與視覺里程計

以下內容翻譯自wiki百科。里程計是一種利用從移動感測器獲得的資料來估計物體位置隨時間的變化而改變的方法。該方法被用在許多種機械人系統 輪式或者腿式 上面,來估計,而不是確定這些機械人相對於初始位置移動的距離。這種方法對由速度對時間積分來求得位置的估計時所產生的誤差十分敏感。快速 精確的資料採集,裝...