采用增量式編碼器來實現odometry的計算,首先采用編碼器對脈沖進行采樣實現左右輪運動狀態的獲取,然后再利用增量式測程法得到機器人車體當前坐標系的位姿。
增量式測量法是使用從編碼器采樣到的數據並依據起始位姿來確定機器人當前位姿的一種方法。作為一種增量式航跡推算的方法,每一個新的位姿是基於上一次的位姿得到的,所以每次錯誤發送都會造成些許誤差,這樣下來,隨着機器人運動的時間越長,誤差被累計得越大。但是機器人在完成同時定位與地圖構建和自主導航任務時,可由算法根據實時測距生成的地圖匹配可自動修正部分里程計數據的誤差,保持對機器人車體的運動姿態進行跟蹤,故而我們僅采用編碼器的方式來完成機器人車體位姿的初步估計,這樣一來,便可以在一定程度上減少了構建系統的復雜度和降低成本。
通過對輸出波形的采集,得到的單位時間內的脈沖個數,通過簡單的計算公式可以將角度轉換成位移。假設車輪直徑為L,光電編碼器的線數是P,△t時間內光電編碼器輸出的脈沖數是N,車輪運行距離是△S(左輪距離△Left ,右輪距離△right),兩輪中心距離為Dw,則可以得到以下計算公式:
△S=(N/P)πL
利用雙編碼器也可以計算得到機器人車體轉過的角度。假設△θ為機器人車體轉過的角度,則可以得到以下計算公式:
△S=(△right+△Left)/2 ----->鄰近時間內機器人車體行駛的距離
△θ=(△right-△Left)/Dw ----->機器人車體轉過的角度
當采樣時間足夠短時,機器人車體近似走直線,通過航位推算法得出單位時間內的位置變化進行累加,進而求出機器人車體在坐標系中的位置。
參考:
https://blog.csdn.net/zhu751191958/article/details/79322994