跳到內容

機器人/導航/定位

來自華夏公益教科書

定位涉及一個問題:機器人現在在哪裡?或者,以機器人的角度來說,我身在何處,記住“此處”相對於某個地標(通常是起點或目的地),並且如果你不在乎你在哪裡,你就永遠不會迷路。

儘管這是一個簡單的問題,但回答起來並不容易,因為答案取決於機器人的特性。適用於一臺機器人在一個環境中的定位技術可能不適用於另一個環境,或者根本不適用於另一個環境。例如,在戶外環境中表現良好的定位方法可能在室內毫無用處。

所有定位技術通常提供兩個基本資訊

  • 機器人在某個環境中的當前位置是什麼?
  • 機器人在該環境中的當前方向是什麼?

第一個可以是笛卡爾座標或極座標,也可以是地理緯度和經度。後者可以是橫滾、俯仰和偏航的組合,也可以是指南針方向。

當前位置

[編輯 | 編輯原始碼]

機器人的當前位置可以通過幾種截然不同的方式確定

航位推算

[編輯 | 編輯原始碼]

航位推算使用里程計來測量機器人移動的距離。三角學和運動學方程是計算其新位置所需的一切。

此方法有兩個要求

  • 它需要一種方法來確定其初始位置。
  • 隨著時間的推移,其精度通常會下降,因為每次測量都會產生誤差,並且誤差會累積。

航位推算通常與其他方法一起使用以提高整體精度。

最小均方

[編輯 | 編輯原始碼]

解決機器人定位問題的方案有很多。這些方案從簡單的航位推算方法到使用昂貴雷達或視覺系統的先進演算法不等。選擇機器人定位演算法的最重要因素是準確的相對位置和全域性位置資料的可用性。對於具有基本相對位置感測器和某種全域性位置感測器的簡單系統,最實用且最易於實現的定位方法是最小均方。

有關使用最小二乘法為超定系統尋找解的更多資訊,請參見最小二乘法:http://en.wikipedia.org/wiki/Least_squares

為了從一般意義上看最小均方 (LMS) 演算法,首先要了解其背後的基本原理。所有定位方法的目標都是最小化機器人實際位置與其應在位置之間的誤差。該演算法必須能夠遵循預設軌跡或找到機器人位置的最小誤差(自適應演算法和結構,第 97 頁)。透過自適應地調整權重來最小化實際函式和 LMS 演算法生成的函式之間的誤差,將這些機器人定位目標應用於 LMS 演算法。作為最速下降演算法的子集 (http://en.wikipedia.org/wiki/Gradient_descent),該方法旨在透過估計梯度 (http://en.wikipedia.org/wiki/Gradient) 來最小化誤差,並且被稱為具有全域性位置輸出的最簡單的定位方法。

LMS 演算法推導

[編輯 | 編輯原始碼]

LMS 演算法可以應用於兩種情況

• 並行多個輸入

• 序列單個輸入

File:LinearCombinerConfiguration.jpg

圖 1:線性組合器配置 [1]

File:CurveFit.jpg

圖 2:對資料進行曲線擬合以最小化誤差 [3]

File:TransversalCombinerConfiguration.jpg

圖 3:橫向組合器配置 [1]

在這兩種情況下,梯度計算如下

εk = dk - XTkWk

其中 ‘Yk’ 是期望輸出,‘XTk’ 是實際輸入,‘Wk’ 是第 k 個輸入元素。接下來,梯度估計計算如下

現在我們有了梯度估計,可以透過以下公式更新權重

Wk+1 = Wk - μdelk = Wk + 2μεkXk

以透過迭代更改最小化誤差。‘μ ’ 是用於訓練演算法的增益常數。使用訓練來調整權重更新函式 [1] 對誤差的校正速度。如果訓練常數過高,系統將振盪並且永遠不會收斂到最小誤差值。

為了說明除數學格式以外的過程,可以透過使用虛擬碼來演示 LMS 演算法。下面程式碼的目的是僅供說明。本示例旨在提供一個逐步的視覺化工具,用於開始編碼過程。

LMS 程式

[編輯 | 編輯原始碼]

初始化權重重複選擇訓練對 (x,d) 對於所有 k 執行

   yk = WkXk	 

結束對於所有 k 執行

   εk = Yk - dk 

結束對於所有 k 執行

   Wk(j+1) = Wk(j) + μεkXk

結束直到達到終止條件

各種變體

[編輯 | 編輯原始碼]

改進的 LMS 方法

對於具有順序到達資料的問題,改進的 LS 方法可用於新增或刪除資料行。在各種時間序列問題中,可以採用移動“視窗”來評估預定義時間範圍內的資料。此方法在統計學、最佳化和訊號處理 [2] 中出現的 LMS 問題中非常有用。

約束 LMS 方法

對於曲線和曲面擬合應用問題,約束 LMS 方法非常有用。此類問題需要滿足具有各種未知量的線性方程組。只有在每個輸入都可以按某個幅度縮放並且仍然保持常數的情況下,此方法才能提供有用的解決方案 [2]。

稀疏問題的直接方法

稀疏 LMS 問題涉及在矩陣具有“相對較少”的非零元素時解決 LMS 問題。“J. H. Wilkinson 將稀疏矩陣定義為‘任何具有足夠零的矩陣,以至於利用它們是值得的’” [2]。更精確的定義更難提供。此類問題通常涉及大小很大,並且涉及大量的未知量。以下是可以歸類為稀疏問題的示例:模式匹配、聚類分析和曲面擬合 [2]。

LMS 問題的迭代方法

解決稀疏問題(除了上面提到的直接方法)的第二種方法是迭代方法。一般來說,迭代方法用於分析欠定、稀疏問題,以根據輸入資料的範數計算最小解 [2]。

非線性 LMS 方法

對於具有非線性系統的 problems,非線性 LMS 方法對於迭代計算問題的相對 LMS 解很有用。此方法可用於無約束最佳化和各種調查方法 [2]。

應用和理論的額外來源

[編輯 | 編輯原始碼]

為了進一步參考和額外閱讀,以下資源可用於更全面地概述該主題。

參考文獻

[編輯 | 編輯原始碼]
  • 自適應訊號處理 [1]
  • LS 問題數值方法書籍 [2]

GPS 全球定位系統

[編輯 | 編輯原始碼]

在廣闊的地形上,GPS 可以提供或多或少的準確座標,航位推算及其其他感測器的​​資料可以填補空白。但是,在地形狹小或室內,GPS 的不準確性會成為問題,而航位推算和感測器資料成為確定位置的主要因素。

GPS 類系統

[編輯 | 編輯原始碼]

儘管 GPS 在室內不太有用,但與 GPS 中使用的類似技術可以在室內使用。機器人只需要測量它到 3 個固定信標的距離。每個距離都描述了一個以信標為中心的球體。3 個球體只會在一個點相交。

最簡單的方法:在地面上畫一條線,然後使用紅外反射感測器來跟蹤它。 作為軌道或標記機器人工作區域的邊緣很有用。

這也可以透過在地面放置一根電纜並在其中傳送調製訊號來完成。 機器人可以使用磁性感測器(霍爾感測器或線圈)檢測到這條電纜。

複雜的循線方式包括使用視覺(相機)等感測器,這有助於降低感測器的整體成本和實施成本,同時還能提供檢測各種顏色線條的 versatility 。 它也為系統的自治提供了很大的範圍。

放置地標是幫助您的機器人在其環境中導航的另一種方法。 地標可以是主動信標(紅外或聲音)或被動信標(反射器)。 使用條形碼掃描器是另一種可能性。

如果環境是預先知道的,一個特殊的技巧是使用碰撞檢測(即感測器緩衝器或類似物)與已知物體進行碰撞檢測。 與航位推算一起,即使使用廉價的裝置,精度也可以非常高。

在新的環境中,地標通常需要由機器人本身確定。 透過使用雷射、聲納或相機收集的感測器資料,可以識別特定的地標型別(例如牆壁、門、走廊)並將其用於定位。

當前航向

[編輯 | 編輯原始碼]

可以使用指南針感測器確定機器人的航向。 這些感測器通常由以 90° 角放置的兩個磁場感測器組成。

這些感測器測量地球的磁場,並且可能會受到其他磁場的影響。 揚聲器、變壓器、電纜和冰箱磁鐵會降低指南針的精度。 指南針感測器模組可以內建用於過濾交流磁場的濾波器。

華夏公益教科書