[論文閱讀] Hector Mapping

dma_dma發表於2020-12-16

[論文閱讀] A Flexible and Scalable SLAM System with Full 3D Motion Estimation

簡介

本文主要介紹了一種2D的基於LIDAR的快速的準確的slam方法,可以實時獲得robot 位置, mapping的結果最終通過occupancy grid 呈現。它採用了fast approximation of mapping gradient, multi-resolution grid, 實現多種複雜環境中的定位。該系統非常可靠,因此在不太大的測量環境中,並不需要loop closure。該演算法相當於只包含slam的frontend (快速實時估算機器人的位置),而不包含backend (優化pose graph,優化所有以產生的pose).

為了獲得機器人的3D座標,該文章運用了2個模組。如下圖所示,SLAM subsystem 用於提供position, heading in ground plane, Navigation subsystem通過融合其它的感測器提供3D位置。2個模組獨立執行,loosely coupled, 且同步。
system
主要的特點是:

  • 計算快速,可以使用high update rate LIDAR system
  • 可以應用於相對較小的室內環境,

SLAM subsystem (2D)

Map access

因為map是用occupancy grid表示的,無法直接用於計算梯度。本文引入了一種雙線性法用於計算概率和導數。首先將map grid cell的值看成是概率分佈。map中任一點 P m P_m Pm的值為 M ( P m ) M(P_m) M(Pm), 梯度 ∇ M ( P m ) \nabla M(P_m) M(Pm)可以通過周圍的四個點計算獲得
在這裡插入圖片描述
M ( P m ) = y − y 0 y 1 − y 0 ( x − x 0 x 1 − x 0 M ( P 11 ) + x 1 − x x 1 − x 0 M ( P 01 ) ) + y 1 − y y 1 − y 0 ( x − x 0 x 1 − x 0 M ( P 10 ) + x 1 − x x 1 − x 0 M ( P 00 ) ) M(P_m)=\frac{y-y_0}{y_1-y_0}(\frac{x-x_0}{x_1-x_0}M(P_{11}) + \frac{x_1-x}{x_1-x_0}M(P_{01})) \\ + \frac{y_1-y}{y_1-y_0}(\frac{x-x_0}{x_1-x_0}M(P_{10}) + \frac{x_1-x}{x_1-x_0}M(P_{00})) M(Pm)=y1y0yy0(x1x0xx0M(P11)+x1x0x1xM(P01))+y1y0y1y(x1x0xx0M(P10)+x1x0x1xM(P00))

Scan Match

scan match 是一個將lidar endpoints與map 匹配的最優化問題,即尋找一個作用於lidar endpoints 的變換 ξ \xi ξ(將lidar endpoints從lidar frame變化到map frame),使得其與已經獲得的map之間的誤差最小。在實際操作中,基於 ξ \xi ξ的初始值,我們只需要獲得 Δ ξ \Delta\xi Δξ的最優值既可。
最優值可以通過高斯-牛頓法獲得,即對誤差值進行泰勒展開,獲得 Δ ξ \Delta\xi Δξ使得導數為0.

多精度map

為了防止陷入local minima,本文采用了對精度的occupancy grid map。每個map的精度是前一個map的一半。然而,需要注意的是,精度的改變不是通過downsample實現的,而是有幾個不同的精度的map同步平行進行更新。pose estimation先從低精度map開始計算,再利用低精度計算結果作為高精度map的初始值,進行高精度map pose estimation的計算。

3D 狀態估算

利用EKF (extended kalman filter) 實現感測器融合。state包含position, velocity, gyroscope bias, accelerometers.

相關文章