曾關(guān)平 王直杰
摘? 要:機(jī)械臂的時(shí)間最優(yōu)軌跡規(guī)劃是指機(jī)械臂的末端關(guān)節(jié)在從初始位置到給定位置過程中,所花時(shí)間最短的軌跡規(guī)劃。文章以七自由度機(jī)械臂為研究對(duì)象,在用三次多項(xiàng)式規(guī)劃出機(jī)械臂運(yùn)動(dòng)軌跡的前提下,擬采用改進(jìn)遺傳算法的方法,用浮點(diǎn)編碼和設(shè)計(jì)適應(yīng)度函數(shù),生成滿足約束條件的初始種群,然后不斷迭代直到滿足算法終止條件為止,對(duì)機(jī)械臂的運(yùn)動(dòng)軌跡進(jìn)行時(shí)間上的優(yōu)化,通過將機(jī)械臂在全局尋優(yōu)的方法,找到時(shí)間最短的方案。
關(guān)鍵詞:機(jī)械臂;軌跡規(guī)劃;時(shí)間最優(yōu);改進(jìn)遺傳算法
中圖分類號(hào):TP242? ? ? ? ?文獻(xiàn)標(biāo)志碼:A? ? ? ? ?文章編號(hào):2095-2945(2020)22-0006-04
Abstract: The time-optimal trajectory planning of the robotic arm refers to the trajectory planning that takes the shortest time from the initial position of the robotic arm to the given position. In this paper, a seven-degree-of-freedom manipulator is taken as the research object. On the premise of using three cubic polynomials to plan the trajectory of the manipulator, the method of improved genetic algorithm is used to generate the initial population that meets the constraints using floating-point coding and designing the fitness function Then, iterate continuously until the termination condition of the algorithm is satisfied, and optimize the time of the trajectory of the manipulator. By searching the manipulator in the global optimization method, the solution with the shortest time is found.
Keywords: manipulator; trajectory planning; time-optimal; improved genetic algorithm
引言
近年來,隨著機(jī)器人技術(shù)的快速發(fā)展,針對(duì)機(jī)器人展開了各項(xiàng)技術(shù)研究。其中,針對(duì)機(jī)械臂軌跡規(guī)劃的研究主要從關(guān)節(jié)空間軌跡規(guī)劃和笛卡爾空間軌跡規(guī)劃兩種方面進(jìn)行展開,而無論采用哪種規(guī)劃方法所規(guī)劃出來的軌跡,不管是從時(shí)間還是能耗以及關(guān)節(jié)沖擊上都不是最優(yōu)的,因此這就需要我們對(duì)規(guī)劃好的軌跡進(jìn)行優(yōu)化找出一條最優(yōu)的軌跡。隨著企業(yè)對(duì)于生產(chǎn)效率要求的普遍提高,這就要求機(jī)械臂沿著規(guī)劃的軌跡運(yùn)行的同時(shí)還要求其運(yùn)行的軌跡平滑連續(xù)。
為了更充分地利用機(jī)械臂動(dòng)力性能,需要在保證機(jī)械臂約束的前提下對(duì)機(jī)械臂的運(yùn)動(dòng)軌跡進(jìn)行優(yōu)化。就目前來看,機(jī)器人適用的場合不同所優(yōu)化目標(biāo)也不盡相同,大致分為:運(yùn)行時(shí)間優(yōu)化、耗能優(yōu)化和減沖擊優(yōu)化這三種[1],本文主要針對(duì)時(shí)間優(yōu)化展開研究。韋素云,徐敏使用雙臂的機(jī)器人作為執(zhí)行機(jī)構(gòu),將神經(jīng)網(wǎng)絡(luò)算法應(yīng)用到了機(jī)械臂解耦問題上,取得了良好的效果,很好的避免了復(fù)雜軌跡優(yōu)化收斂速度較慢及局部收斂的問題[2]。宮孟孟等人也是用神經(jīng)網(wǎng)絡(luò)的方法,來識(shí)別障礙物來進(jìn)行避障,同時(shí)也能夠判斷設(shè)計(jì)出來的運(yùn)動(dòng)路線是否會(huì)與障礙物發(fā)生碰撞,在一定程度上可以提高計(jì)算速率[3]。文獻(xiàn)[4]采用改進(jìn)的蟻群算法和模糊PID控制算法對(duì)時(shí)間進(jìn)行優(yōu)化,很好地保證了時(shí)間以及沖擊最優(yōu)。本文采用改進(jìn)遺傳算法,對(duì)機(jī)械臂通過固定路徑點(diǎn)進(jìn)行時(shí)間最優(yōu)的軌跡規(guī)劃。
1 三次多項(xiàng)式插值規(guī)劃軌跡
由于機(jī)械臂軌跡規(guī)劃中,需要在軌跡中插入許多中間點(diǎn),我們可以把相鄰的每三個(gè)點(diǎn)都看作是軌跡的起始點(diǎn)、中間點(diǎn)和終止點(diǎn),那么,每段軌跡的終止點(diǎn)的一二階導(dǎo)數(shù)就是下一段起始點(diǎn)的一二階導(dǎo)數(shù),限制在于每個(gè)被當(dāng)成是起始點(diǎn)或終止點(diǎn)的中間點(diǎn)的速度必須是連續(xù)的,而整段軌跡的起始點(diǎn)和中間點(diǎn)的速度均為0。設(shè)?茲0是關(guān)節(jié)的初始角度值,?茲f是終止點(diǎn)的關(guān)節(jié)角度值。三次多項(xiàng)式函數(shù)表達(dá)式為?茲(t)=a0+a1t+a2t2+a3t3。
在起始和終止點(diǎn)處的位移約束條件為:
關(guān)節(jié)速度約束條件為:
聯(lián)立(1)和(2):
2 改進(jìn)遺傳算法
2.1 浮點(diǎn)編碼法
在機(jī)械臂的關(guān)節(jié)軌跡優(yōu)化過程中,很多論文都采用的是傳統(tǒng)的二進(jìn)制編碼方法,這種方法的好處在于直接簡便,但其缺陷也很明顯。例如,線性函數(shù)在離散化的過程中會(huì)產(chǎn)生誤差;編碼方法也對(duì)二進(jìn)制編碼優(yōu)化的準(zhǔn)確度有很大影響。為了解決這些問題,選擇了浮點(diǎn)編碼方法,作為一個(gè)時(shí)間間隔變量,以直接驗(yàn)證該變量與浮點(diǎn)的匹配性,在一定程度上減少了算法的計(jì)算量,從而加強(qiáng)了算法收斂的速度。
2.2 適應(yīng)度函數(shù)設(shè)計(jì)
在適應(yīng)度函數(shù)的設(shè)計(jì)方面,為了防止算法出現(xiàn)較大的誤差,因此采用罰函數(shù)法,對(duì)約束條件中的個(gè)體進(jìn)行篩選,滿足要求的種群后代不會(huì)受到懲罰,而不滿足的后代則將會(huì)施加懲罰。根據(jù)算法迭代中種群的基因變化情況,調(diào)整罰函數(shù)的約束,使得誤差趨于最小化,算法更加精確。適應(yīng)度函數(shù)為:
其中,?滓為懲罰系數(shù),取值0.1;P(t)為懲罰項(xiàng)。當(dāng)關(guān)節(jié)的各個(gè)參數(shù)值都滿足公式中的約束條件時(shí),這時(shí)P(t)的值不發(fā)生變化,相反,如果關(guān)節(jié)的參數(shù)超過了設(shè)定好的區(qū)域,這時(shí)需要加大懲罰來使得參數(shù)滿足約束條件要求。這時(shí),建立的單獨(dú)適應(yīng)度函數(shù)為:
在種群不斷進(jìn)化篩選的過程中,種群中的優(yōu)良個(gè)體數(shù)量也會(huì)越來越多,所以,這時(shí)就需要調(diào)整獨(dú)立的適應(yīng)度函數(shù),使種群能夠在這些個(gè)體中挑選出最接近最優(yōu)解的個(gè)體。重新調(diào)整適應(yīng)度函數(shù):
對(duì)上式的適應(yīng)度重新標(biāo)定為:
其中,F(xiàn)(t)為調(diào)整過后的適應(yīng)度的取值;Fit(t)min為初始的適應(yīng)度函數(shù)值的最小值;Fit(t)max為初始的適應(yīng)度函數(shù)的最大值;?啄為常系數(shù),取值在0~1之間。
2.3 遺傳算子的改進(jìn)
(1)選擇
輪盤賭選擇是目前使用的最多的選擇算法,很多的遺傳算法也是如此,但是這種方法在收斂方面不能滿足本文要求。在種群遺傳過程中,會(huì)不斷產(chǎn)生新個(gè)體,這樣會(huì)導(dǎo)致其中的一些本就比較優(yōu)秀的成員因?yàn)檫z傳而導(dǎo)致基因發(fā)生改變,所以,本文在種群中選擇一些相對(duì)比較滿足要求的個(gè)體,不再進(jìn)行交叉,而是直接將基因傳到下一代,即精英保留策略。
(2)交叉和變異
遺傳算法的交叉概率和遺傳概率應(yīng)當(dāng)隨著適應(yīng)度值做出相應(yīng)的變化,因此對(duì)交叉和變異所取概率進(jìn)行改進(jìn),利用正弦函數(shù)對(duì)算法交叉算子和變異算子進(jìn)行改進(jìn),使算法交叉概率和變異概率隨著個(gè)體適應(yīng)度值自動(dòng)調(diào)整并做非線性變化。
改進(jìn)后的交叉概率Pc和變異概率Pm為:
在這種情況下,各個(gè)系數(shù)的取值與自適應(yīng)遺傳算法的系數(shù)相差不大。與改進(jìn)前的遺傳算法相比,運(yùn)用了正弦曲線的方法,使得交叉概率和算法變化概率不再是常數(shù),而是跟隨個(gè)體適應(yīng)性的正反變化。當(dāng)個(gè)體的適應(yīng)度比較不符合種群進(jìn)化方向時(shí),提高個(gè)體的變異概率;當(dāng)個(gè)體的適應(yīng)度太高導(dǎo)致種群過早收斂時(shí),降低個(gè)體的變異概率。因此,算法根據(jù)實(shí)際情況能夠?qū)ψ儺惛怕首龀鱿鄳?yīng)的調(diào)整,從而避免算法陷入局部最優(yōu),并確保算法能夠在一定時(shí)間內(nèi)完成收斂。
交叉算子的表達(dá)式為:
其中,?琢是區(qū)間[0,1]上的任意數(shù)值。
浮點(diǎn)編碼法交叉算子為:
2.4 改進(jìn)的算法流程
(1)定義種群遺傳過程中的各項(xiàng)參數(shù),同時(shí)進(jìn)行初始化:Pm和Pc分別代表遺傳算法的變異概率和交叉概率;種群的數(shù)量N;迭代的次數(shù)g;機(jī)械臂運(yùn)動(dòng)的時(shí)間段n。
(2)定義算法的約束條件。對(duì)算法需要解決的問題,即關(guān)節(jié)運(yùn)動(dòng)時(shí)間總和,施加關(guān)節(jié)的角速度和角加速度約束,以免算法得出的解超出了關(guān)節(jié)的限制。
(3)初始種群的生成。用隨機(jī)數(shù)法生成滿足條件的初始種群N。
(4)對(duì)生成的種群進(jìn)行交叉和變異,根據(jù)基因的交換結(jié)合形成新的個(gè)體,其中概率的變化依據(jù)改進(jìn)后的公式來選擇。
(5)根據(jù)優(yōu)勝劣汰的進(jìn)化法則,父代通過交叉變異后,將兩代的個(gè)體結(jié)合,根據(jù)設(shè)定好的條件判斷個(gè)體是否優(yōu)良,篩選出優(yōu)良個(gè)體,組成新的種群,然后進(jìn)行下一次遺傳。
(6)每一次遺傳后對(duì)種群進(jìn)行判斷。如果滿足結(jié)束條件,則停止迭代過程,不滿足則繼續(xù)(4)的操作。
遺傳算法的流程如圖1所示:
標(biāo)準(zhǔn)遺傳算法和改進(jìn)遺傳算法迭代收斂速度比較(見圖2、3)。
從圖2和圖3可以看出,改進(jìn)后的算法在30代左右就已經(jīng)開始收斂,而傳統(tǒng)的方法此時(shí)還處于變化過程,直到45代左右才開始收斂過程。改進(jìn)遺傳算法的收斂速度比標(biāo)準(zhǔn)的遺傳算法在收斂速度上更加快速,證明了改進(jìn)后,算法在時(shí)間效率上節(jié)省了很多時(shí)間。從這兩個(gè)圖也能看出,在時(shí)間上,改進(jìn)后的算法明顯縮短了優(yōu)化的時(shí)間,大約節(jié)省了1.2s。
從表1中可以看出,對(duì)于每一段關(guān)節(jié)間的軌跡,算法都實(shí)現(xiàn)了優(yōu)化過程,由于每段軌跡的時(shí)間都設(shè)置成了4s,所以可以很明顯地看到,優(yōu)化后之間基本控制在2s到4s之間,優(yōu)化后的效果可見一斑。將所有的分段軌跡結(jié)合后,得到的總時(shí)間也可以看出,原本的軌跡需要20s的時(shí)間才能到達(dá),優(yōu)化后最短只需要13.2s,優(yōu)化了將近33%。
3 結(jié)束語
本文采用七自由度機(jī)械臂為研究對(duì)象,根據(jù)運(yùn)動(dòng)學(xué)約束采用了三次多項(xiàng)式的插值算法規(guī)劃路徑,然后采用改進(jìn)遺傳算法對(duì)軌跡進(jìn)行時(shí)間上的優(yōu)化,最終規(guī)劃出了每個(gè)關(guān)節(jié)的軌跡,且在保證關(guān)節(jié)的位移,速度,加速度曲線平滑的條件下縮短了機(jī)械臂的運(yùn)行時(shí)間。
參考文獻(xiàn):
[1]居鶴華,付榮.基于GA時(shí)間最優(yōu)機(jī)械臂軌規(guī)劃算法[J].控制工程,2012,19(03):472-477.
[2]韋素云,徐敏.雙臂機(jī)器人神經(jīng)網(wǎng)絡(luò)解耦與路徑規(guī)劃算法研究[J].機(jī)械設(shè)計(jì)與制造,2017(08):245-248.
[3]宮孟孟.基于神經(jīng)網(wǎng)絡(luò)的移動(dòng)機(jī)器人路徑規(guī)劃方法研究[D].哈爾濱工業(yè)大學(xué),2017.
[4]王文杰,秦現(xiàn)生.基于jerk最優(yōu)的機(jī)械臂軌跡規(guī)劃[J].機(jī)械傳動(dòng),201746(3):93-125.
[5]牛永康.六自由度串聯(lián)機(jī)器人軌跡規(guī)劃時(shí)間最優(yōu)研究[D].長春工業(yè)大學(xué),2013.
[6]Yang F, Ding L, Yang C, Yuan X. An algorithm for simulating human arm movement considering the comfort level[J]. Simulation Modelling Practice & Theory, 2005, 13(5):437-449.
[7]Shimizu M, Kakuya H, Yoon W K, Kitagaki K, Kosuge K. Analytical Inverse Kinematic Computation for 7-DOF Redundant Manipulators With Joint Limits and Its Application to Redundancy Resolution[J]. IEEE Transactions on Robotics, 2008, 24(5):1131-1142.
[8]Sciavicco L, Siciliano B. Modeling and Control of Robot Manipulators[J]. Industrial Robot An International Journal, 1996, 21(1):99-100.