優化方法求解機械臂軌跡規劃

2021-09-03 02:59:10 字數 1709 閱讀 3993

基於優化的方法中乙個問題是如何表示障礙物,進而進行碰撞檢測。

乙個比較直觀的方法:將機械臂,障礙物用非常簡單、易用解析形式表達的形狀包圍,如圓柱,圓球,圓錐。尤其是圓球,因為它具有完美的對稱性,碰撞檢測只需要判斷到球心的距離就可以。但是這種方法在一些對幾何約束要求較高的場合不適用,並且有可能會讓求解器無法求出可行解;

比較精確的建模方法是利用多面體去表示物體,帶來的問題就是計算複雜度高。比如要表示乙個矩形:⋃}

⋂⋃}\\le x\}\bigcup\\}\}\bigcap \\le y\}\bigcup\\}\}

⋃}⋂⋃

},當判斷乙個點在矩形內還是矩形外時,相當於要做4次運算。這是乙個非常簡單的情況,當判斷兩個多面體是否相交時,需要判斷的項要比這個多很多。目前判斷多面體相交比較快速的演算法有gjk。

在求解優化問題時,由於優化問題是乙個非凸問題,傳統的凸優化方法不能直接使用。目前的方法有:向約束集投影的方法,sqp方法(序列式凸優化)。

schulman曾提出一種基於sqp進行求解的方法,用帶符號距離構造碰撞約束,將碰撞約束表示為以關節角為引數的式子。下面對其進行介紹。如圖所示,我們想要讓機械臂繞過某些障礙物,去抓取某個物體,針對這個任務求出所有關節的連續的軌跡。

數學模型

minimizef(

x)subject togi

(x)≤

0,i=

1,…,

nine

qhi(

x)=0

,i=1

,…,n

eq\begin\textf(x)\\ \text\\ g_i(x)\le 0,\quad i=1,\dots,n_\\ h_i(x)=0,\quad i=1,\dots,n_ \end

minimizef(

x)subject togi

​(x)

≤0,i

=1,…

,nin

eq​h

i​(x

)=0,

i=1,

…,ne

q​​其中x

xx是乙個高維陣列,橫向維度為運動過程中的取樣時間,縱向維度為每個時刻的聯合關節角

目標函式要考慮的乙個主要因素是使總移動路徑最短,另外還可以考慮加入速度,能耗等。

對於總路徑最短作為目標,並將關節角作為變數時,可將目標函式表示為:f(θ

1:t)

=∑t=

1t−1

∥θt+

1−θt

∥2f(\theta_)=\overset}\|\theta_-\theta_t\|^2

f(θ1:t

​)=t

=1∑​

t−1​

∥θt+

1​−θ

t​∥2

將優化問題化為拉格朗日對偶形式,然後使用序列式優化,即:

1.每一迭代步都在當前x附近對問題做一次凸近似求解

2.每一次計算限制x改進很小的一步

相應的示意圖:

後續會更新

matlab,機械臂軌跡規劃,跟蹤軌跡。

clear l1 link 0 0 0 0 0 modified l2 link pi 2 0 70 pi 2 0 modified l3 link 0 20 100 0 modified l4 link pi 70 0 pi 2 modified l5 link 0 0 0 pi 2 0 modi...

機械臂正逆運動學及軌跡規劃基礎

目錄動力學 dynamics 將所需的關節力和扭矩對映為它們的位置,速度和加速度 參考運動學 kinematics 將機械人機械手的關節位置對映為感興趣的座標系的位置和方向 一般是末端 如下圖所示,若已知各個關節的角度變數,則末端執行器的位姿是確定的,即 x,y 但是若已知末端執行器的位姿,反求關節...

使用規劃求解進行優化計算

在日常工作中,對身邊的情況進行優化計算節省一些成本。例如分工計算,假設經理手上有四個團隊,每個團隊的工作效率和成本都不一樣,當乙個訂單簽訂後,需要計算如何給四個團隊分配任務以達到成本最小。這種情況使用 規劃求解 進行計算,具體步驟如下 建立excel 工作表,用來描述四個團隊和任務,或開啟光碟中第 ...