Odometry
- 又稱: Wheel Odometry, Dead Reckoning
- 類別: State estimation & navigation › Localisation
- 標籤: navigation, localization, sensors, fundamentals
利用車輪編碼器或攝影機等感測器資料,估計機器人隨時間的位置變化。
定義
里程計是利用感測器資料,估計機器人相對於起點隨時間變化的位置改變量。它回答一個基本問題:「我離出發的地方移動了多遠?」
最常見的里程計形式: - 輪式里程計:使用車輪編碼器計算轉數並算出行進距離。簡單又快速,但會因車輪打滑、表面不平與機械誤差而累積誤差。這是最基本的機器人定位形式。 - 視覺里程計(VO):透過追蹤攝影機影格之間的視覺特徵來估計運動。比較不受車輪打滑影響,但運算成本高,也會受光線以及缺乏紋理的環境影響。 - 慣性里程計:使用 IMU(加速度計 + 陀螺儀)資料估計運動。更新頻率非常快,但因為對帶雜訊的加速度資料做兩次積分,漂移得很快。 - 雷射里程計:比對連續的光達(LiDAR)掃描來估計運動。在結構化環境中很精確。
所有里程計方法的一項重大限制是漂移:微小的誤差會隨時間累積,使估計的位置逐漸偏離實際位置。只依賴輪式里程計的機器人,可能以為自己走的是直線,實際上卻已經偏離了路線。
為了對抗漂移,里程計通常會與下列方法結合: - SLAM:利用迴環偵測修正累積的漂移。 - 感測器融合:使用擴展卡爾曼濾波器 (EKF) 或因子圖最佳化,結合多種里程計來源(輪式 + 視覺 + 慣性)。 - 外部參考:GPS(戶外)或基準標記(室內)提供絕對位置校正。
里程計是機器人導航的基礎:沒有它,機器人就無法感知自己在世界中的運動。
為何重要
里程計是機器人對自己移動了多遠的估計,由累加自身的運動量測值計算而來。它是成本最低的位置資訊,也是其他一切據以修正的基礎:導航堆疊預期有連續的里程計資料流,SLAM 則把它當作要精煉的先驗。它的決定性特性是會漂移:誤差會不斷積分、永遠不會被抵銷,這就是為什麼里程計總是要搭配某種量測絕對位置的方法。
主要應用
- 在兩次絕對位置更新之間進行航位推算
- 提供 SLAM 與粒子濾波器所精煉的運動先驗
- 閉迴路驅動控制的速度回饋
- 對接等短距離操控,平順度比全域精度更重要
- 打滑偵測,比較輪式里程計與 IMU 或視覺的估計值
- 記錄行進距離,用於維護與工作週期追蹤
實際應用
差速驅動機器人會計算車輪編碼器的刻數,並把它們積分成位姿,這個方法運作得很好,直到車輪在光滑地面上打滑,或機器人被人用手推了一下。在 ROS 2 中,這表現為 odom 與 map 座標系的區別:odom 平順且連續但會漂移,map 經過修正且為絕對值,但在定位器更新時會跳動。理解這個區分,就能明白為什麼控制器被設定為使用 odom 來求短期平順,而導航目標則以 map 表示。
常見誤解
- 里程計告訴你機器人在哪裡:它告訴你的是機器人從起點以來移動了多遠,而且帶有累積誤差
- 更好的編碼器能消除漂移:車輪打滑、輪胎壓縮與地面不平造成的誤差,是任何編碼器都偵測不到的
- 里程計與定位是同一件事:前者對運動做積分,後者則根據地圖或外部參考進行修正
- 漂移只是長期才有的問題:單一車輪打滑就可能在幾秒內造成很大的航向誤差
誰需要了解
- 任何第一次啟用移動底盤的人
- 設定使用里程計之導航堆疊的開發者
- 診斷機器人地圖慢慢旋轉或歪斜問題的工程師
- 想了解為何單靠航位推算永遠不夠的學生
- 任何比較輪式、視覺與慣性里程計來源的人
相關技術
- 車輪編碼器(增量式與絕對式)
- 慣性量測單元 (IMU)
- 視覺里程計(VO)與視覺慣性里程計(VIO)
- 擴展卡爾曼濾波器 (EKF) 與無跡卡爾曼濾波器(UKF)
- 光達(LiDAR)里程計(例如 LOAM、LIO-SAM)
- 用於漂移修正的 GPS/GNSS
- 機器人定位(AMCL、粒子濾波器)
- 航位推算
相關術語
相關專案
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
- ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
- AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
- MRPT: Comprehensive C++ toolkit for mobile robotics, SLAM, and sensor-based navigation
影片
- What is Odometry? An Introduction to the Essence of Robot Odometry: Rex Liu