孫巍偉,王晗,黃民
(北京信息科技大學 機電工程學院,北京 100192)
軌跡規(guī)劃在工業(yè)機器人領(lǐng)域具有十分重要的意義,如何為多自由度的機械臂生成柔性而準確的軌跡,學者們進行了廣泛的研究。在軌跡規(guī)劃過程中,限制機器人的運動學約束可以減少執(zhí)行機構(gòu)的磨損,并且能夠提高追蹤的速度和精度[1-5],因此,在進行軌跡規(guī)劃時,往往要考慮機器人的運動學約束,如速度、加速度和加加速度等。此外,由于機器人控制具有實時性的要求,軌跡規(guī)劃算法必須快速,以便機器人能夠?qū)χ苓叚h(huán)境的變化產(chǎn)生即時的響應。
為實現(xiàn)機器人在關(guān)節(jié)坐標系或者任務(wù)坐標系中的柔性運動,國內(nèi)外開展了大量的研究工作。J.Lloyd等[6]通過改變相鄰路徑區(qū)間內(nèi)的傳遞曲線的形狀進行優(yōu)化設(shè)計,實現(xiàn)了工業(yè)機器人柔順的軌跡規(guī)劃;LIU S[7]把三次多項式用于表達單自由度機器人的運動軌跡,取得了一定的成效;R.L.Andersson[8]把單獨的四次多項式函數(shù)用于機器人運動軌跡規(guī)劃中,用于表達整條軌跡;S.Macfarlane等[9]則在其工作基礎(chǔ)上進行延伸,成功地把7段五次多項式應用于工業(yè)機器人的軌跡規(guī)劃中;周旋[10]、張平[11]、翁文武[12]將三次B樣條曲線插值算法應用于工業(yè)機器人的軌跡規(guī)劃中。此外,還有很多學者利用各種方法進行研究,如利用S型速度曲線[13]、雙向?qū)?yōu)插補算法[14]、三次非均勻B樣條[15]等。但是,目前針對工業(yè)機器人的軌跡規(guī)劃一般是基于高階的多項式插值以及樣條曲線插值等方法,這些方法雖然能夠產(chǎn)生相對平滑和柔性的運動軌跡,但其計算量比較龐大,無法滿足實時性的要求,而且在機器人的運動學約束上也存在一些問題。
基于上述分析,本文提出一種多自由度的快速平滑軌跡生成算法,使用三次多項式表達機器人的運動軌跡,兼顧到機器人的運動學約束,包括速度、加速度和加加速度。該算法不涉及任何優(yōu)化,因此,計算復雜度低,能夠在機器人的一個控制周期(1~2 ms)內(nèi)完成軌跡的計算和生成,從而滿足機器人運動控制的實時性要求。
工業(yè)機器人是由一系列通過關(guān)節(jié)相連的連桿組成的一個運動鏈,其中,每個空間關(guān)節(jié)可表示為i=1,2,…,n,i為機器人運動鏈的序列位置[16]。圖1所示為某7自由度工業(yè)機械臂及其拓撲結(jié)構(gòu),該機械臂具有7個球形關(guān)節(jié),每個關(guān)節(jié)都具有不同的運動速度、加速度和加加速度的最大約束,每個關(guān)節(jié)的運動學約束也會隨著機器人所執(zhí)行任務(wù)的不同而有所差異。比如,機器人在末段執(zhí)行器空載時或者執(zhí)行較長的運動路線時,為了降低機器人所受的應力,軌跡規(guī)劃時應適當限制其加速度和加加速度的值,而在機器人執(zhí)行夾持或抓取任務(wù)時,相應的關(guān)節(jié)可以具有較大的速度和加速度。另外,由于機器人具有多個獨立的運動關(guān)節(jié),如何保證所有自由度機構(gòu)的運動同步,對于提高機器人運動精度有著重要的意義。
圖1 7自由度工業(yè)機器人及其拓撲結(jié)構(gòu)Fig.1 7-DOF industrial robot and its topology
本文針對多自由度的工業(yè)機器人軌跡規(guī)劃問題,考慮將一條路徑轉(zhuǎn)換為機器人控制器能夠直接執(zhí)行的軌跡,即時間的函數(shù)。該路徑由一系列的路徑點P組成。表1所示是在軌跡規(guī)劃中所用到的符號。
表1 軌跡規(guī)劃中所用到的符號Tab.1 Symbols used in trajectory planning
因此,軌跡規(guī)劃的目的是根據(jù)每個路徑點P的機器人的運動狀態(tài)要求,生成一條機器人軌跡,滿足
(3)
其中,?i∈[1,n]。
從最簡單的單自由度軌跡規(guī)劃開始,假定機器人只通過兩個路徑點,分別為起始點Pt0和終止點Ptf,機器人在這兩個點的速度和加速度都為0,因此,機器人在這兩個點的運動狀態(tài)分別為
(x(t0),0,0),
(4)
(x(tf),0,0)。
(5)
為了達到運動時間最優(yōu),在運動過程中,機器人的速度、加速度和加加速度中的某個或某幾個參數(shù)要達到其最大值,因此,采用7段多項式疊加的形式表示一條單自由度的運動軌跡,其運動學各項參數(shù)如圖2所示。
圖2 單自由度7段式機器人的運動軌跡Fig.2 Single-DOF seven-stage robot motion trajectory
由圖2可以清晰看到,該軌跡被分成了7段,每一段都有一個運動學變量達到了最大值。在T1段機器人的加加速度達到了其最大限定值,此時機器人處于變加速運動狀態(tài),各個變量表達為
(9)
機器人在T2段的運動學方程為
(13)
在第2段運動中,機器人的加速度達到最大值,因此,加加速度被設(shè)定為0,以防止加速度超過其最大限制,該時間段內(nèi)機器人以最大的加速度執(zhí)行勻加速運動。
機器人在T3段的運動學方程為
(17)
該時間段內(nèi),機器人處于變加速運動,加速度值隨時間減小但依然為正值,因此,機器人仍然加速直到速度達到其最大約束值Vmax。然后機器人運動達到T4階段,該區(qū)間內(nèi)機器人以最大速度執(zhí)行勻速運動,由圖2可以看出,機器人的運動軌跡關(guān)于T4段是對稱的,T5~T7段內(nèi),機器人執(zhí)行減速運動,從而在終點實現(xiàn)預期的運動狀態(tài)。T4段機器人的運動學方程為
(20)
x(t)=Vmaxt+x(t3)。
(21)
在7段式的軌跡生成算法中,采用Bang-Bang加加速度曲線,保持了機器人速度和加速度的連續(xù)性,計算過程未涉及任何優(yōu)化算法卻達到了條件約束范圍內(nèi)的最優(yōu)時間,原因是確保了在每個運動階段,系統(tǒng)都會有一個變量達到最大值,這就保證了機器人在最短的時間內(nèi)達到最大的加速度和速度。
工業(yè)機器人往往由多個串聯(lián)或者并聯(lián)的關(guān)節(jié)組合而成,是一個多自由度的系統(tǒng)。多自由度系統(tǒng)的軌跡規(guī)劃可以認為是多個獨立單自由度規(guī)劃的疊加,但是實際的工業(yè)應用中,簡單的疊加可以實現(xiàn)多自由度系統(tǒng)的運動,卻無法滿足精度上的要求,因為通過單自由度算法規(guī)劃出的n條軌跡,雖然每條軌跡都達到了時間最優(yōu),但每條軌跡的執(zhí)行時間都不相同,這會導致機器人的某個關(guān)節(jié)已經(jīng)停止運動的時候,其他關(guān)節(jié)仍在運動,這樣的運動形式會大大影響機器人在軌跡追蹤時的精度。因此,在對多組自由度系統(tǒng)進行軌跡規(guī)劃時,要考慮不同自由度之間的時間同步性。時間同步是指機器人在執(zhí)行運動時,所有自由度在同一時刻完成該運動,時間同步可以減少機器人運動時的誤差,從而保證機器人在軌跡追蹤時的精度。算法1說明了如何將多自由度的軌跡進行時間同步。
算法1:多自由度軌跡同步
輸入:機器人的起點運動狀態(tài)M(ti)和終點運動狀態(tài)M(tf),運動學約束K
輸出:時間同步的運動軌跡
1:fork=1 到ndo
2:計算第k個自由度的軌跡,并計算該自由度上軌跡的執(zhí)行時間Tk
3:通過比較得到最大執(zhí)行時間Tmax
4:計算時間調(diào)整系數(shù)Ci=Tk/Tmax(Ci≤1)
5:改變每個自由度上運動學約束Ki′=KiCi
6:根據(jù)新運動學約束Ki′計算新的運動軌跡
7:end for
算法首先按照舊的運動學約束計算每個自由度上的運動軌跡與運行時間,然后根據(jù)最大的運行時間對其他自由度上的運動進行調(diào)整,方法是通過簡單的線性運算減小運動學約束,通過這種方法,機器人能夠在其中一個自由度上實現(xiàn)給定的最大速度、加速度和加加速度,而將其余n-1個自由度運動時間延長至與該自由度相同。
為了驗證本文提出的算法,分別使用時間未同步和時間同步算法生成一條二自由度的軌跡。該軌跡連接3個路徑點,其位置為P1(0,0),P2(0.2,0.3)和P3(0.1,0.5)。假定機器人在這3個路徑點的運動速度和加速度都為0,該例中采用的運動學約束為
|Jmax|=0.9 m/s3,
|Amax|=0.3 m/s2,
|Vmax|=0.15 m/s。
(22)
圖3和圖4分別是未使用同步算法和使用同步算法生成的運動軌跡。
圖3 時間未同步的二自由度運動軌跡Fig.3 Two-DOF trajectories of time unsynchronized
從圖3可以看出,未同步的軌跡中,x軸的運動完成的時間早于y軸上的運動,但是兩個軸上的運動學參數(shù)都到達了其最大的約束值。
從圖4可以看出,時間同步的軌跡則在兩個自由度上保持了相同的運動時間,為了保證兩個軸的運動時間相同,算法對x軸原本的運動學約束進行了調(diào)整。計算效率上,通過100次的軌跡計算,該二自由度軌跡在Core(TM)2 Quad CPU 2.66 GHz的計算機上平均計算時間為0.8 ms。因此,該算法可以滿足實時性的需求,比如視覺伺服等。
本文將提出的軌跡生成算法運用到AuBo-i5工業(yè)機械臂上,該機械臂含有6個關(guān)節(jié)自由度,試驗設(shè)定機械臂的起始關(guān)節(jié)位置為(0,0,0,0,0,0),終點關(guān)節(jié)位置為(120°,50°,20°,60°,40°,90°),機械臂的運動學約束設(shè)置為(Jmax,Amax,Vmax)=(90 °/s3,30 °/s2,15 °/s)。采用提出的時間同步算法計算生成運動軌跡,然后發(fā)送給機械臂執(zhí)行,圖5 記錄了機械臂的實際運動軌跡及各項參數(shù)??梢钥闯?,機械臂在所有的關(guān)節(jié)上保持了相同的運動時間,由于在獨立的自由度上,關(guān)節(jié)1的運動距離最大,運動時間最長,因此,只有該關(guān)節(jié)的運動學參數(shù)達到了約束范圍內(nèi)的最大值,而其余各關(guān)節(jié)為了保證能夠達到相等的運動時間,按照比例減小了其運動學約束。該6自由度軌跡的計算時間僅為0.9 ms,因此,完全可以滿足工業(yè)機器人運動控制實時性的要求。
圖4 時間同步的二自由度運動軌跡Fig.4 Two-DoF trajectories of time synchronization
圖5 機械臂的試驗運動軌跡Fig.5 Experimental trajectories for the robot manipulator
該試驗考慮了工業(yè)機械臂關(guān)節(jié)空間的軌跡規(guī)劃,本文提出的軌跡生成算法主要應用在路徑規(guī)劃算法的下一層,即路徑規(guī)劃給出路徑點后由本文的算法計算出相應的運動軌跡。工業(yè)機器人運動軌跡規(guī)劃包含關(guān)節(jié)空間軌跡規(guī)劃和笛卡爾空間軌跡規(guī)劃,由于受自由度限制,笛卡爾空間光滑的軌跡可能不一定很合理,因此需要引入合理的逆運動學算法將空間路徑點轉(zhuǎn)化為合理的關(guān)節(jié)路徑點,再利用提出的算法進行計算。
本文提出了一種基于運動學約束的工業(yè)機器人軌跡規(guī)劃算法,該算法使用三次多項式表達機器人軌跡,因此可以生成柔性的運動。由于該方法不涉及任何優(yōu)化算法,軌跡的產(chǎn)生由多項式直接計算生成,所以該算法所需要的計算時間極短,可以在機器人一個運動控制周期內(nèi)生成運動軌跡,這對將各種傳感器信號集成到機器人的反饋控制中有重要的實際意義。同時提出了一種簡單有效的時間同步策略以減小機器人軌跡跟蹤時的誤差,通過試驗驗證,該算法符合機器人的運動控制實時性要求,可以作為機器人控制邏輯結(jié)構(gòu)中路徑規(guī)劃和底層控制的中間層,軌跡生成算法接收路徑規(guī)劃的結(jié)果,并快速地將其轉(zhuǎn)化為機器人底層控制器可以直接執(zhí)行的時間函數(shù)。因此,該算法在視覺伺服或者力覺阻抗控制的應用中具備一定的使用價值,可以在未來開展相應的試驗驗證。