六自由度机器人(机械臂)运动学建模及运动规划系列(四)——轨迹规划
本篇目錄
- 一、軌跡規劃概述
- 二、關節空間規劃
- 1. 點對點規劃
- 2. 多節點規劃
- 示例程序
- 三、笛卡爾空間規劃
- 1. 速度規劃
- 2. 位置規劃
- 3. 姿態插補
- 4. 基于幾何解法的一種簡化位置規劃方法
- 5.兩種規劃的Matlab程序
- 四、小結
一、軌跡規劃概述
對機器人進行軌跡規劃的主要任務是,根據機器人的工作環境和工作任務要求,求得一系列機器人末端位姿變換的時間序列,使得機器人末端可以正確地從初始姿態沿著期望的軌跡運動到終止位姿,完成工作任務,。對于六自由度的機器人來說,軌跡規劃要解決的關鍵問題是將末端位姿的變換轉變為六個關節變量的變換,這也是其與移動機器人軌跡規劃的不同之處。
進行軌跡規劃的方法有兩種:一種是在關節空間進行規劃,另一種是在笛卡爾空間,即直角坐標空間進行規劃。
(1)關節空間規劃是通過確定各個關節轉角變化序列,從而規劃機械臂末端的空間運動軌跡。其優點是只用對六個關節變量分別進行規劃,計算簡單,但不能精確地控制機械臂末端的位姿變化。
(2)笛卡爾空間規劃就是對機械臂末端的位姿變化直接進行規劃,在得到機械臂末端在某一時刻的位姿后,利用逆運動學方程直接求出此刻各個關節轉角變量的值。其優點是機械臂末端的軌跡易于觀察,可以更精確控制地控制末端軌跡,同時避免末端執行器與空間障礙物發生碰撞。但缺點是需要進行大量的逆運動學計算,并且需要選取大量的中間插值點以得到精確的末端軌跡,控制過程復雜。
二、關節空間規劃
機器人關節空間規劃一般分為點對點規劃和多節點規劃。
1. 點對點規劃
當給定起始點和終止點的約束條件,需要求出連接兩點的軌跡時,這樣的問題稱為點對點軌跡規劃。常用的點對點軌跡規劃方法有三次多項式規劃,五次多項式規劃等。這里采用五次多項式進行規劃,其一般形式為:
六個未知數需要給定六個約束條件,分別為起點和終點的角位移,角速度和角加速度。約束條件的方程為:
求解方程組,得到六個未知數,其中T=(te-ts)。
將參數代入到五次多項式中,得到所求軌跡。
2. 多節點規劃
當給定除起點和終點外,若干個中間點的約束條件,需要求出經過所有點的軌跡時,這樣的問題稱為多節點軌跡規劃。進行多節點規劃時,可以將多節點分段,每段有兩個節點,對每段分別進行點對點規劃。即多節點規劃可以看作多段點對點規劃的組合。
為了保證機器人平穩運行,在多節點規劃時,一種有效的方法是使中間連接點處的角位移,角速度和角加速度相同。在這種情況下依然可以采用五次多項式規劃。只需要給出每個節點處的角位移,角速度和角加速度條件,按照上一節中的方法,求出每段軌跡的六個參數,代入軌跡方程中,即可得到所求軌跡。
示例程序
這里對六個關節角進行多節點規劃,一共給定四個節點的角度,角速度和角加速度條件,其中一段的規劃程序如下:
for i=1:3 %每一段規劃的時間T=t_array(i+1)-t_array(i);a10=q1_array(i);a11=v_array(i);a21=a_array(i)/2;a31=(20*q1_array(i+1)-20*q1_array(i)-(8*v_array(i+1)+12*v_array(i))*T-(3*a_array(i)-a_array(i+1))*T^2)/(2*T^3);a41=(30*q1_array(i)-30*q1_array(i+1)+(14*v_array(i+1)+16*v_array(i))*T+(3*a_array(i)-2*a_array(i+1))*T^2)/(2*T^4);a51=(12*q1_array(i+1)-12*q1_array(i)-(6*v_array(i+1)+6*v_array(i))*T-(a_array(i)-a_array(i+1))*T^2)/(2*T^5);%計算五次多項式系數 ti=t_array(i):0.01:t_array(i+1);qi=a10+a11*(ti-t_array(i))+a21*(ti-t_array(i)).^2+a31*(ti-t_array(i)).^3+a41*(ti-t_array(i)).^4+a51*(ti-t_array(i)).^5;vi=a11+2*a21*(ti-t_array(i))+3*a31*(ti-t_array(i)).^2+4*a41*(ti-t_array(i)).^3+5*a51*(ti-t_array(i)).^4;ai=2*a21+6*a31*(ti-t_array(i))+12*a41*(ti-t_array(i)).^2+20*a51*(ti-t_array(i)).^3;t=[t,ti(2:end)];q=[q,qi(2:end)];v1=[v1,vi(2:end)];a1=[a1,ai(2:end)]; end角度規劃結果如圖所示
完整的示例代碼如下所示:
四節點五次多項式規劃完成代碼。
三、笛卡爾空間規劃
在進行機器人笛卡爾空間軌跡規劃時,一般的方法為:
(1)根據機械臂末端起點和終點的軌跡,確定一條從起點到終點的路徑。
(2)確定插補點的個數,進而確定路徑上的若干中間點。
(3)由一系列的機械臂末端坐標進行逆運動學計算,求解出六個關節轉角的變化情況。
這種方法稱為數值解法。
主要涉及到三個方面的規劃:
1. 速度規劃
由力學原理可知,機器人在運動過程中如果出現加速度突變的情況,會產生機械沖擊,導致機器人關節磨損。因此在進行軌跡規劃時,首先需要對各關節進行速度規劃,保證運行過程中加速度連續變化。
S曲線是適用于此種情況的速度曲線,整段曲線由拋物線和直線段組成,對應的加速度曲線連續。S曲線一般有三段,五段和七段S曲線三種,七段S曲線包括七個階段,其在滿足加速度連續的基礎上,還有兩端加速度恒定的過程,運動更加平穩。七段S曲線的計算方法采用分類討論法,示意曲線為:
除了S曲線外,也可以使用多項式曲線等等。
2. 位置規劃
位置規劃指對機械臂末端的軌跡進行規劃,一般采用直線插補和圓弧插補以及這兩種的組合進行規劃。
(1)直線插補
目的是使機械臂末端的軌跡為一段直線,具體步驟非常簡單:只需將起點與終點直線連接,然后根據所需的精度確定插補點的個數,最后確定每一個插補點的坐標即可。
(2)圓弧插補
由于空間中的圓弧軌跡插補比較復雜,因此可以采用這樣的步驟:
1)首先根據起點終點與圓心確定一個新的平面;
2)接著以建立的平面為基準,建立一個新的坐標系;
3)確定新坐標系與末端坐標系之間的轉換關系;
4)在新坐標系里完成平面圓弧插補,確定每個插補點的坐標;
5)根據坐標轉化關系,得到末端坐標下的三維插補點坐標。
直線插補和圓弧插補的運動示意圖如下:
3. 姿態插補
在機器人運行過程中,有些場景的末端姿態不發生變化,如打磨等,但在執行較復雜的工作時,末端姿態在運動過程中也會變化,如復雜的焊接過程等等。姿態規劃的任務時,根據機械臂末端起始點和終止點的姿態,規劃出合理的姿態變化過程,以滿足特定的約束條件(如避障,工作任務約束等)。
規劃時,一種方法是采用四元數進行規劃,具體方法我當時沒有具體研究,有需要的小伙伴可以自行探索。
4. 基于幾何解法的一種簡化位置規劃方法
前文介紹的位置插補規劃方法原理簡單,但缺點是需要進行大量的逆運動學計算。這里根據機器人運動過程的特殊性,提出了一種幾何求解法,對問題求解進行了簡化。
(1)首先討論平面內的豎直運動過程:
由正運動學分析可知,關節轉角θ1只與機械臂末端的橫縱坐標有關,因此在豎直運動過程中θ1保持不變。另外,在運動過程中,末端的姿態保持不變,由機器人關節的結構可知,關節轉角θ4與θ6為定值。經過以上分析,豎直方向的運動只需研究剩下的三個關節轉角的變化,這三個轉角的相對關系如上圖所示。
圖中定義了兩個角度α1,α2及一個長度l,當起始點和終止點給定時,l為定值。他們與關節轉角θ2,θ3,θ5的關系如下式所示:
得到以上關系后,進行規劃時,只需對起點和終點的末端坐標進行兩次逆運動學計算,得到其中一個關節角的起點和終點坐標,接著對其進行插補,得到中間插補點的角度,最后根據關節角之間的關系,得到其他關節角的一系列角度。
最后得到的桿件仿真圖如下:
(2)平面內的水平直線運動
圖中定義了一個高度差?h,當軌跡起始點和終止點給定,式中?h為定值。同樣的,運動過程中,關節角的關系為:
通過計算得到的桿件仿真圖如下:
將這兩種運動與關節1的運動組合,就可以形成不同的末端軌跡,以實現簡單運動情況下的位置規劃。
具體的代碼如下所示:
基于簡化幾何解法的位置規劃,包括水平直線運動和豎直直線運動
5.兩種規劃的Matlab程序
Matlab提供了jtraj和ctraj兩種函數,分別用于笛卡爾空間以及關節空間的軌跡規劃。兩者的使用格式分別為:
(1)關節空間規劃
給定q1,q2分別為起始點和終止點的關節角,50為插補點個數。得到的q,qd,qdd,分別為關節角度,角速度以及角加速度系列。
(2)笛卡爾空間規劃
給定p1,p2為起始點和終止點的四乘四位姿矩陣,step為插補點個數,得到的Tc為一系列中間姿態矩陣。
這里利用兩個函數,進行一個簡單的規劃示例:
四、小結
本篇介紹了六軸機器人關節空間以及笛卡爾空間軌跡規劃的簡單方法,并給出了一種幾何解法,以簡化規劃過程,并提供了簡單的Matlab軌跡規劃函數介紹。
總結
以上是生活随笔為你收集整理的六自由度机器人(机械臂)运动学建模及运动规划系列(四)——轨迹规划的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: telerik grid ajax,Te
- 下一篇: Vista系统安全设置