機器人運動規劃--基於《MODERN ROBOTICS》

機器人運動規劃要解決的問題是,找到一種讓機器人從初始狀態運動到目標狀態的運動方式,同時要能避開環境中的障礙,以及滿足其他限制條件,如關節角度限制或力矩限制等。

一、運動規劃概述

運動規劃有一個重要的概念是構型空間,即C-space。C-space中的任意一點都與機器人構型唯一對應。free C-space表示機器人不會碰到任何障礙物,以及滿足各種關節限制的自由運動構型空間,簡寫成:
在這裏插入圖片描述
q表示機器人構型,是一個n維向量。C表示C-space,即:
在這裏插入圖片描述
u表示機器人的控制量,是一個m維向量,即:
在這裏插入圖片描述
例如對於一個典型的6自由度機械臂來說,m=n。然而並不一定都是m=n的情況,很多情況下是m<n。
控制量u也可以是位置、速度或力矩,根據實際情況決定。

根據上述定義,運動規劃問題的一個相對廣泛的定義如下:
在這裏插入圖片描述
在本章的講述中有兩個假設:
1.使用了閉環控制器,保證期望的運動都能被很好的跟隨,運動的誤差不在本章的考慮範圍之內。
2.在運動規劃過程中,機器人和環境的幾何模型都能精確已知,從而可以用來估計free C-space。(在實際情況下,這一步是很難做到的)

關於運動規劃,有幾點需要注意:
1.路徑規劃和運動規劃的區別
路徑規劃是運動規劃的子問題。路徑規劃是純粹的幾何問題,不會考慮動力學、運動持續時間、運動的各種限制條件或控制輸入等。
2.控制輸入
對於m<n的情況,即控制量的個數少於自由度的個數時,有許多運動路徑是機器人無法到達的。例如汽車的n=3(車身的位置和角度),但是m=2(前後運動和方向盤)。所以在側方停車的時候不能直接側移進去。如下圖,需要控制這兩個僅有的控制量,規劃一條合適的路徑才能停好車。
在這裏插入圖片描述
3.在線和離線
如果環境是靜態的,那麼離線規劃器就已足夠。如果環境經常變化,例如障礙物經常出現和消失,那麼需要在線規劃快速得到結果。
4.最優或者滿足度
可以使代價函數最小的到達目標狀態,例如可以設置如下代價函數:
在這裏插入圖片描述
如果讓L=1,那麼就是一個時間最優的運動;如果讓:
在這裏插入圖片描述
那麼就是一個控制量最小的運動。
5.精確還是近似
有時候要精確運動到目標狀態很難,可以設置一個近似值:
在這裏插入圖片描述
使得其在一定誤差範圍內接近目標狀態:
在這裏插入圖片描述
6.有無障礙物
單純是因爲m<n或者最優目標的存在就能使運動規劃問題變得非常複雜,如果再加上障礙物的存在就更加複雜。

運動規劃器可以根據如下性質進行區分:
1.多查詢和單查詢規劃
當環境不變,要求機器人解決一系列不同的運動規劃問題時,表示這是一個多查詢規劃。這種情況下,非常值得花時間建立一個用於精確描述free C-space的數據結構,從而可以在同一個環境中解決多個不同的運動規劃問題。
而單查詢規劃則是每次都在不同的環境中解決同樣的規劃問題。
2.“隨時”規劃
“隨時”規劃的意思是當找到第一個解之後,規劃器並不停止,而是繼續尋找更優解。規劃器可以在任意時刻停止,例如指定的時間到達,或者最優解已經找到。
3.完整性
如果一個運動規劃器能保證在有限的時間內,找到解(如果解存在),報告失敗(如果解不存在),那麼運動規劃器是完整的。
如果一個運動規劃器在解決問題的離散化表示情況下保證能找到解(如果解存在),那麼運動規劃器是分辨率完整的。
如果一個運動規劃器當規劃時間趨近於無窮時,找到解(如果解存在)的概率趨近於1,那麼運動規劃器是概率完整的。
4.計算複雜度
計算複雜度表示的是一個運動規劃器需要執行的時間以及需要的內存大小。這些可以由規劃問題的具體描述來度量,例如C-space的維度,或表示機器人和障礙物的頂點數等。計算複雜度可以用規劃器的平均情況或最複雜的情況表示。

運動規劃方法概述:
1.完整方法
這樣的方法重點在於精確完整的表示出free C-space的幾何拓撲,確保完整性,除了一些簡單或低自由度的問題,絕大多數free C-space在數學上或計算上難以推倒。
2.網格方法
這樣的方法將free C-space離散成網格,在網格中搜索一條從開始到目標的運動路徑。
這樣的方法比較容易實現,也能返回優化的解,但是隨着構型空間維度的增長,需要的存儲空間和搜索時間會呈指數增長,這就限制了該方法只能用於低維問題。
3.採樣方法
通常的採樣方法需要一個隨機或確定性函數從C-space中選取樣本,一個函數去判斷樣本是否處於free C-space中,一個函數用於確定前一個可用空間樣本的最接近值,以及一個本地規劃器,嘗試連接或移動到上一個樣本中的新樣本。
這種方法比較容易實現,是概率完整的規劃器,甚至可以解決高自由度規劃問題,但是求解出來的並不是最優解,而且很難確定計算複雜度。
4.虛擬勢場法
虛擬勢場在機器人上產生力,將其拉向目標,並將其推離障礙物。
這種方法比較容易實現,甚至可以解決高自由度的運動規劃問題,能夠快速評估,通常允許在線實現。缺點是勢函數的局部極小,即機器人可能會陷入吸引力和排斥力相互抵消的狀態,但機器人並不處於目標狀態。
5.非線性優化
運動規劃問題可以轉換成非線性優化問題,只需要將路徑或控制量表示成有限數量的設計參數,例如多項式或傅里葉級數的係數。問題將會轉變成求解這些設計參數,使得代價函數最小而且滿足控制、障礙和目標的要求。
雖然這些方法可以產生近似最優解,但它們需要對解進行初始猜測。由於目標函數和可行解空間一般不是凸的,優化過程可能會遠離可行的解決方案,更不用說最優的解決方案了。
6.平滑化
通常由規劃器求解出的運動不平滑,通常需要在運動規劃器求解出結果後進行平滑化處理。

近年來的主要趨勢是採用易於實現且能處理高維問題的抽樣方法。

二、運動規劃基礎

2.1 構型空間障礙物
構型空間與機械臂的關節空間、笛卡爾空間、任務空間都不相同。爲了更容易理解構型空間的概念,以一個平面連桿爲例,如下圖所示。機器人的構型表示成q:
在這裏插入圖片描述
在機器人的工作空間存在A, B, C三個障礙物,機器人的C-space由一部分平面表示,如最右邊的圖,表示的範圍如下:
在這裏插入圖片描述
實際上機器人的C-space是一個圓環,因爲矩形邊界:
在這裏插入圖片描述
與邊界:
在這裏插入圖片描述
是連接在一起的,而同樣邊界
在這裏插入圖片描述
與邊界
在這裏插入圖片描述
也是連接在一起的。這裏爲了直觀,將圓環鋪平看起來像一個矩形。
在這裏插入圖片描述
在上圖的C-space中可以看出,A, B, C三個障礙物被表示成了C-obstacles. C-obstacles的內部就對應於機器人工作空間中的障礙物。
圖中,分別在工作空間和C-space表示了一條從start到end的路徑。

在這裏插入圖片描述
上圖a中,圓形代表一個圓形移動機器人,三角形代表障礙物。圖b表示C-space,黑實線以外的部分就是free C-space。

在這裏插入圖片描述
同理,上圖a中三角形代表只能平移的移動機器人,長方形代表障礙物。圖b是其C-space,黑色實線外的部分是free C-space。

在這裏插入圖片描述
如果將上述三角形機器人改成可旋轉機器人,那麼其C-space如上圖。可見當自由度增加時,C-space的描述將會變得非常複雜。

2.2 與障礙物的距離及碰撞檢測
首先要在C-space裏定義距離以及碰撞。
給定一個C-obstacle B 和一個機器人構型q,定義機器人和障礙物的距離爲:
在這裏插入圖片描述
則碰撞的定義如下:
在這裏插入圖片描述
距離檢測算法就是要確定:
在這裏插入圖片描述
比較流行的距離檢測算法叫做:GJK(Gilbert-Johnson-Keerthi)。該算法能有效計算用三角形網格表示的兩個凸體之間的距離。
任何機器人或障礙物都可以看作多個凸體的並集。將此算法拓展用於機器人、圖形和遊戲物理引擎的許多距離測量算法和碰撞檢測例程中。

2.3 圖和樹
主要用於表示C-space,這裏不做詳細分析。

2.4 圖搜索
當free C-space被表示成圖,那麼就可以用圖搜索的方法來找到最優路徑。

三、完整路徑規劃器

這種方法需要將free C-space精確的表示出來,在數學和計算上非常複雜,實際應用中不可能實現。
如下圖是一個簡單的例子,可以看一下這種方法是如何實現的。
在這裏插入圖片描述
a. 方形機器人(參考點在圖中畫出)的起始和目標位置如圖,在環境中有三角形和矩形兩個障礙物。
b. 畫出C-space。
c. 連接C-free中的可見路線圖。
d. 加入起始點和目標點的路線圖。
e. 在所有的路線圖中搜尋最短的一條。
f. 機器人沿着這條路徑運動。

四、網格法

五、採樣法

六、虛擬勢場法

七、非線性優化

八、平滑化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章