向單奇, 高嵩, 楊建中
(華中科技大學 機械科學與工程學院,武漢430074)
在航空工業中經常需要對許多結構件表面鋪纏纖維材料以增強其性能,這些結構件表面多為自由曲面,其局部區域往往曲率變化較大。在鋪纏加工中,由于機床各軸的運動并不均衡,在許多情況下某些軸達到速度上限,而其他軸遠未到速度上限,從而導致實際進給速度受到限制,在加工過程中機床運動軸的速度和加速度無法達到理想規劃的進給速度,成為制約機床加工效率的瓶頸。另一方面,在加工過程中工件和機床的某些運動部件的慣性較大,這就提高了對機床運動部件加減速的能力要求。
機床加工時間的縮短和運動特性的改善是工程優化算法中比較常見的問題。為了提高加工中機床運動的平穩性及加工效率,眾多學者在該方面進行了大量的研究,大多數研究從工件坐標系下的刀具軌跡及刀具姿態角度進行考慮,對刀位軌跡的光順性進行優化以提高機床運動的平穩性。本文從另一個角度出發,在刀具路徑已經確定的條件下,在加工過程中將運動量過大的軸的運動分解到兩個或兩個以上的運動軸來完成加工,即采用具有冗余自由度的機床加工。當機床具有更多自由度[1]時,就會產生運動冗余[2],額外的自由度稱為冗余自由度[3]。機床的逆運動學允許無限多個解,并且需要選擇其中一個的標準進行去冗余。額外增加的旋轉軸可以增加機床的靈活性,提高了在復雜環境中的運動能力,同時增加了運動規劃問題的復雜性,帶來了同向冗余軸的分配問題[4]。
針對此問題,眾多學者在冗余機器人的去冗余問題上做了大量的研究,找到許多方法來求得給定目標的最優解。例如通過在末端執行器的運動上指定關于冗余度的額外約束[3],雖然增加額外約束去冗余非常容易得到解,但解的區域受到約束的限制。基于雅可比行列式的偽逆可用于冗余機器人的去冗余問題[5],但無法避免運動奇點。遺傳算法去冗余效果較好,將機器人的末端執行器定位在目標位置,計算求解最大關節位移最小化問題,將路徑離散并尋找全局最優解,但是缺點在于計算量大,并且并非一定能收斂到最優值。在本文中,這種方法作為強化學習規劃算法的對照組。
機床加工是一個連續過程,這個過程中冗余軸的分配問題本質上是一種連續變量的序列決策問題,本文通過強化學習解決該決策問題。近年來,強化學習成為機器學習中的重要研究領域,它以試錯的機制與環境交互,通過最大化累計獎賞來學習最優策略。強化學習由于其優秀的決策能力在人工智能領域得到了廣泛的應用。2015年,Mnih等[9]用強化學習玩視頻游戲Atari2000,并且超過了人類的表現。2017年,Schulman等[11]提出了一種用于連續動作決策的強化學習算法PPO,該算法簡捷,性能優異,并且在三維虛擬環境里面取得成功。
本文提出的強化學習的冗余自由度分配方法,具有較快的求解速度且能有效地提高規劃軸的運動平穩性,改進機床運動特性。將工件坐標系下已經確定的加工路徑作為輸入,利用強化學習優化機床關鍵關節的運動軌跡。通過賦予智能體(agent)運動學屬性,以其運動軌跡作為加工路徑,訓練決策網絡,從而規劃出滿足機床運動特性的加工路徑。
本文第1節介紹了鋪帶工藝與機床,建立了邊界條件。第2節介紹了強化學習冗余軸分配的算法實現。第3節針對實際加工路徑采用強化學習算法進行了優化,證明了本方法具有改善機床運動特性的優點。
六軸數控鋪纏機床按其運動配置不同而有許多種類,對應著不同的運動學變換,以圖1所示的六軸數控鋪纏機床為例,其關節包括3個線性軸XYZ和2個旋轉軸擺頭(主動軸B軸方向lB:[0,1,0]和從動軸C1軸方向lC1:[0,0,1])、1 個 轉臺旋轉軸(C軸方向lC:[0,0,-1])。
為描述機床運動,建立如圖2所示坐標系統。初始主軸方向為P:[-1,0,0];OtXtYtZt為刀具坐標系,原點為刀位點;Om2Xm2Ym2Zm2是與定軸C1固連的坐標系,原點為擺頭BC1軸交點,Ot相對于其原點Om2的偏移為a:[L1,O,Lt];計機床直線軸初始位置為[X,Y,Z],Om1Xm1Ym1Zm1是與機床固連的坐標系,原點為直線軸為0時Om2在機床坐標系下的位置;工件坐標系原點OwXwYwZw默認位于轉臺C軸軸線,相對于其原點Om1的偏移為b:[L2,0,0],上述各個坐標系方向和機床坐標系一致,刀具坐標系下刀位點初始位置和刀軸方向矢量為pt;刀具參考點在工件坐標系中的位姿矩陣為p0:

回轉軸B、C1和C相對于初始位置的轉角為θB、θC、θC1,建立運動學方程:

求解上述公式可得到機床坐標系和工件坐標系下位置和姿態的變換關系:

由于機床為六軸串聯,在圍繞Z軸的旋轉方向存在兩個同向的旋轉軸,逆運動學有無窮多個解[6],對于每一個加工位置和姿態[7],機床有無窮多個解決方案能滿足這樣的位置姿態。希望找出一組解能夠滿足這樣的條件:針對慣量較大的轉臺軸,能夠盡可能降低轉臺速度變化,在保證轉臺速度平穩運行的基礎上,提升加工效率。
圖3展示了某簡化的零件的加工路徑,測試工件是某艙體零件,高h約1700 mm,橫截面最大長度l約1200 mm,最大寬度w約500 mm,右側是加工路徑映射可行域示意圖,線條對應加工路徑,點對應加工刀位點,當把三維空間上的點位映射到二維平面上,那么橫坐標對應著實際加工路徑的長度,每一個刀位點都對應著一個轉臺C軸的可行范圍。零件的絕大部分區域曲率較低,過渡平緩,但是在某些轉角區域刀軸矢量變化劇烈,如圖4所示。

圖3 零件模型及加工路徑圖

圖4 零件橫截面刀軸矢量
由于零件的尺寸和質量較大,加工時與轉臺固連,增加了轉臺整體的慣性,因此和其他軸相比,運動相同的行程時轉臺的負擔更重。由于零件的特殊形狀,曲率較大的拐角處往往是圍繞Z軸轉角較大,這對圍繞Z軸轉動的轉臺的加減速能力要求高。圖5展示的是當機床恒定以F3000的速度進行加工時,刀軸矢量沿加工路徑的變化圖。回轉軸劇烈變化且超過物理軸的速度、加速度限制時,數控系統會進行相應的減速。本文希望利用機床的額外的自由度,通過調整冗余軸的行程分配,降低轉臺運動軸的速度變化,提升加工效率。

圖5 沿加工路徑的刀軸矢量變化圖
實驗機床由6軸(3個平移和3個旋轉)構成。圍繞Z軸的旋轉軸有2個,因此任務冗余度等于1。理論上,六軸聯動數控機床的旋轉軸可以無限制地自由旋轉,但實際數控機床的旋轉軸及平動軸都有一定的工作范圍。因此實際機床轉角解的選擇也是在有限的空間內進行選擇。以每一個刀位點作為輸入,機床各軸的行程范圍作為約束,以加工路程和C軸的轉角分別為橫縱坐標軸建立平面坐標系,將上述轉臺軸轉角可行域映射在平面坐標系中形成可行域,如圖6所示,橫坐標上各點對應加工路徑中的路程,每個刀位點的縱坐標同時對應C可行域中的最大轉角行程和最小轉角行程,圖中每個刀位點的C軸最大轉角行程和最小轉角行程形成可行域的邊界約束。

圖6 轉臺可行域示意圖
本文提出一種強化學習的方式分配冗余軸轉角,以一系列冗余軸轉角范圍作為輸入條件進行決策,從而得到最快速的刀具路徑。
為了讓C軸轉臺在加工過程中運動平穩——即加工過程中速度波動小,需要在可行域中規劃出斜率變化小的路徑。加工路徑上的每一個位置和姿態都對應機床轉軸一段可行加工區域,需要在這段區域中選擇合適的角度(不同的角度會對機床各軸的位置產生影響,也影響著機床運動到下一個狀態所消耗的時間),因此這種問題是一種連續變量的序列決策問題,適合用強化學習去解決此類問題。
依照機床各軸的運動能力和轉臺可行域搭建用于強化學習的虛擬環境,采用強化學習的方式在虛擬環境中的可行范圍內決策,將得到的轉臺軌跡映射回機床關節實際位置,從而生成符合需求的加工軌跡,其基本流程如圖7所示。
本節主要介紹了一種基于強化學習的路徑規劃方法,利用強化學習在可行域中尋找一條可行解。這樣規劃出來的路徑可能不是最優解,但是粒度比遺傳算法小。通過強化學習規劃出來的路徑可以理解成在所有嘗試過的路徑中的最優解。下面介紹如何搭建強化學習環境、構建網絡,以及如何對模型進行訓練。

圖7 強化學習規劃流程圖
如圖4所示,需要在加工過程轉臺的可行域中尋找一條路徑,使得智能體能夠快速地通過限定區域。為了達到上述目的,本文采用將實際機床的轉臺的可行區域映射到如圖8左所示的虛擬環境。其中小圓點代表強化學習智能體,縱坐標代表是轉臺所處的位置,橫坐標代表著加工路程,為了能夠通過圖片辨識出前行方向,在小圓點上加了一個黑色塊;深灰色的部分是轉臺在加工過程中的可行域以內,淺灰色部分是可行域以外;整張圖片可以理解成該時刻智能體的視野,為了規劃路徑,需要提前觀測到前方的可行域形狀。視野的大小如圖8左圖矩形框所示,智能體所在的位置為視野中央。

圖8 加工可行域和虛擬環境的映射
智能體可以做出的決策是在某一時刻加速、減速、向左、向右。根據該時刻的決策,虛擬環境可以由此計算出下一時刻的狀態。只要保證智能體不越出可行解范圍,那么產生的軌跡必然是符合機床行程范圍約束的。
為了進一步模擬實際機床加工環境,通過構建速度約束條件以保證仿真環境符合實際加工中速度的約束,本文以圖1所示的機床為例說明如何將實際約束添加到虛擬環境中。
圖8中橫坐標代表的意義是實際刀尖點加工軌跡的長度,那么在仿真環境中智能體在橫軸方向的速度分量vs的最大值對應著實際加工中進給速度Ffeed,智能體在橫軸方向上所穿過的時間也對應著實際加工所消耗的時間,通過對分速度vs的約束來保證智能體的仿真過程中不得超過機床實際的進給速度。智能體在橫縱軸方向的速度分量vC和加速度分量accC對應著實際機床轉臺C軸的運動速度和運動加速度,通過約束vC和accC不得超過實際C軸的轉動最大速度VCmax和最大加速度accCmax(如式(4)),如圖9所示。

圖9 虛擬環境中運動約束說明

因為進給速度受到其他各軸的限制,實際加工中進給速度不能時刻達到設定的進給速度Ffeed,因此在模擬加工的過程中也需要考慮其他各軸的速度限制。圖9中智能體的位置表示的是加工路程S和轉臺軸角度C的關系,其他各軸(擺頭B軸,C1軸,直線軸XYZ)的速度不能通過圖像觀測得到。為了保證智能體能夠很好地模擬實際加工的進給速度,在虛擬環境下,通過選取連續時刻轉臺C軸的位置,依照式(2)~式(3)計算不同時刻下各軸的位置,利用多項式擬合下一時刻的速度,如果下一時刻單軸速度超過實際機床物理速度上限,那么智能體此時的橫軸方向的速度上限將被約束(當前速度上限乘以一個減速因子),從而保證進給速度能夠被約束。
為了模擬實際加工的具體情況,繼而考慮到加工過程中其他軸的位置和速度限制,根據前文中對可行域的物理解釋,智能體在X方向速度分量是進給速度,利用已經生成軌跡中的點,反算出其他軸上的位置,再利用差分計算速度,判斷該速度是否超速(如圖9),如果超速則限制進給速度,則啟用算法1。
算法1 速度限制

對于算法1,當t>3時,路徑上已經存在4個點,通過前4個點,計算出其他軸的位置,差分計算出3個速度,再擬合出下一時刻的速度。相比于實際加工中復雜的速度規劃,在仿真環境中進行了簡化處理:如果超速,則要對當前速度極限乘以系數kadd以降低進給速度上限,否則乘以kre適當增加進給速度上限,同時整個過程中進給速度不能超過所預先規定的最大進給速度,在虛擬環境中不斷改變向橫軸方向的速度上限,簡單模擬實際機床加工不同狀態下機床各軸運動能力對實際進給速度的影響,通過這種方式,搭建起模擬實際加工的仿真訓練環境。
本文的優化目標是在保證機床轉臺運動平順的基礎上,提高加工效率,優化的變量是各個刀位點下轉臺軸的轉角。目前主流的求解方式是建立目標函數后通過遺傳算法求解目標函數的極值。然而由于實際加工過程中待優化變量較多,這會大大增加收斂的計算時間甚至無法收斂。在本文中,使用遺傳算法規劃機床加工路徑的用于實驗對照組。
本文采用的方式是在虛擬環境中賦予智能體動力學的屬性,模擬實際加工轉臺的速度和加速度特性,通過在仿真環境中不斷調整推力Fp控制智能體在虛擬環境中運動,智能體可行域中運動所產生的曲線αC=f(S)是滿足實際轉臺運動特性的:

在上文敘述的仿真環境中,機床中其他軸的速度限制對智能體的運動速度有影響,因此實際的加工效率可以通過實際加工總時間反映。通過在模擬環境中訓練智能體的方式來縮減實際加工時間,從而提高加工效率。
至此,原始的路徑規劃問題轉化為:一是如何保證智能體的運動軌跡被約束在可行域中;二是如何讓智能體在虛擬環境的約束下盡可能快速地完成任務。假設智能體從t=1時刻開始運動,到達t=n時刻完成路程,ti時刻環境給予的獎勵為Rti,則總體給予的獎勵為

強化學習的目標在于全局回報最大化,不同時刻下環境依照智能體的運動狀態賦予獎懲,為保證智能體在運動軌跡被約束在可行域內,設計當前時刻ti下的獎勵為Rti:當智能體運動超出可行域,則環境會給予大量懲罰Jti,同時結束本輪訓練;此外,智能體在可行域內運動過程中環境也會依照運動時間增加一定的時間懲罰Tti:

完成仿真環境的搭建之后,需要控制智能體在加工路徑映射的冗余軸可行域內走完全程,并且盡可能獲取最大獎勵。
近年來強化學習的研究主要針對與連續動作的決策問題,并且提出了TRPO、PPO等方法。本文將決策動作設計成為連續值,即向前值取[0,1]中的一個值,向后也是同樣的設計,轉向設計成[-1,1]。將虛擬環境中單幀圖片定義為狀態值(state),本文用1幀96×96×3的RGB圖片。獎懲規則類似于OpenAI gym[14]中的CarRacing環境,每一個時間步給予一定的負獎賞(Reward),將整個路徑離散,每通過一個檢測點獲得相應的正獎賞(這樣可以讓智能體更快地完成整個過程),與CarRacing不同之處在于為了讓智能體不走出可行域,當智能體在可行域之外時給與其較大的負獎賞。借助PPO算法能夠在上述環境中表現良好,算法的框架如圖10所示。向策略輸入當前狀態來判斷此時的動作,將動作傳遞給虛擬環境來獲得下一時刻的狀態和獎賞。存儲狀態和獎賞到達某一值時,利用GAE[10]算出優勢值用于策略和值函數的訓練。

圖10 PPO算法框架
近年來卷積神經網絡在圖片分類、對象檢測等問題中都取得了不俗的成績,對于該虛擬環境,選用卷積神經網絡提取視野中的路徑特征。利用深度學習建立起狀態空間到動作空間的映射,策略π決定了不同時刻下轉向動作的選擇,考慮到動作的連續性,決策的動作并非是有限的選擇,而是符合正態分布動作集合,決策神經網絡輸出為動作的均值μ和方差σ,通過在動作的正態分布中進行采樣,選取當前狀態下決策的動作:

具體的決策網絡結構如圖11所示,決策網絡的具體參數如表1所示,其中值函數的估計與決策網絡共享了所有卷積層和前兩個全連接層。

圖11 利用深度網絡表達策略
如果僅僅在單一可行域中訓練智能體決策,因為樣本之間的相關性太強,訓練結果難以收斂,并且訓練好的網絡泛化能力差。因此本文采用了隨機可行域的方式訓練網絡決策,并且取得了較好的結果。
Schulman等[11]提出的PPO是一種容易實現且高效的強化學習算法,是對TRPO算法的優化改進。文中提出了優化目標函數:

其中:

Schulman等[11]提了一種優勢函數,引入了較小的偏差卻明顯地減小了方差。

本文采用了PPO算法,利用Adam優化方法優化目標函數6在NVIDIA GTX1080Ti上采用0.0001的訓練速度訓練1 h達到了比較理想的訓練結果,訓練3 h平均得分大于850(理論能得到最高分為1000)。
本文提出的路徑規劃方法應用于測試零件的刀具軌跡(圖3)。測試工件是某艙體零件,高約1500 mm,最大寬度約1200 mm。該零件固定在機床的轉臺上,數控機床的各軸結構參數和行程范圍、最大速度限制和上文中仿真環境對應參數是完全一致的。測試的刀具軌跡如圖3所示,選取了艙體表面環繞兩周的加工路徑,長度約5500 mm,刀軸矢量和零件曲面法向垂直,共得到刀具軌跡上的500個刀位點及同樣多的優化變量。
本文以圖12所示的機床結構為例,采用圖3所示的加工路徑,求解機床轉臺的可行域作為輸入。其中機床各軸的行程約束如表2所示,實際機床各軸的運動特性如表3所示。

圖12 加工現場采用的試驗機床
本節介紹了作為對照組的解決方案,試驗表明,相比于曲率上非連續的刀具路徑,曲率連續的刀具路徑能夠獲得更好的加工效率[19],Castagnetti用沿刀具路徑上轉軸的曲率變化最小化方法[20],目標函數為

表2 機床各軸的行程約束

表3 機床各軸的最大速度和最大加速度

式中:qi為關節q在第i個點上的關節位置;為關節q在第i個點上的最初位置。通過各軸軌跡加權平均各軸運動得到Cr。對于每個旋轉軸,分式第一項用于降低曲率的變化,第二項用于降低曲線長度,減小旋轉軸運動幅度;αq是根據旋轉軸的運動性能選擇的系數,最終通過遺傳算法獲得該目標優化問題的解。
由于加工路徑是連續的,待優化點是沿著加工路徑按照一定步長進行選取,當選取的步長較短時會增加待優化變量個數,其結果容易陷入局部最優解;當選取的點比較少時容易使得規劃軌跡超出可行域,采用不同數目的步長進行遺傳算法優化結果如圖13所示,分別沿加工路徑選取較小步長和較大步長的遺傳算法規劃結果。
圖13(a)為步長為110 mm的情況下選取種群數目為600,迭代2000次的規劃結果,優化點之間通過樣條插值,這樣規劃的曲線容易導致插值點超過可行區域。圖13(b)為步長30 mm的情況下選取種群數目為600,迭代3000次的規劃結果,通過增加控制點數目可以將規劃曲線約束在可行范圍中,但是過多的控制點會導致求解容易陷入局部最優。

圖13 遺傳算法規劃結果
為了比較強化學習的規劃結果,在模擬環境下訓練后,在虛擬環境中直接導入數控機床轉臺的加工可行域,直接利用訓練好的決策網絡,強化學習規劃的轉臺C軸的路徑如圖14所示,中間的實線為強化學習規劃的轉臺軌跡的控制值。

圖14 轉臺C軸加工路徑圖
因為在環境的獎懲規則中增加了時間懲罰,訓練完畢后,運動時不會在縱軸方向劇烈抖動,而是盡可能地沿著橫軸方向運動。這也與直覺相符合,盡可能少地讓鋪纏主轉臺轉動,并且盡可能快地完成整個工作。利用上述訓練好的模型可以在可行域內規劃一條符合運動特性的光滑曲線。
相比于遺傳算法所規劃的路徑,采用強化學習策略規劃出的軌跡輪廓更為平滑,由于在運動過程中的智能體的運動是通過對其不斷施加推力調整其在可行域內的運動,這是一個連續的過程,因此其運算的復雜度并不會隨著待優化點數目的增加而陷入局部最優解。
本文默認為實際進給速度恒定為F3000下,在華中8
型數控系統中配置相應的機床參數,運行不同自由度去冗余方式下生成的加工G代碼,并跟蹤機床轉臺的運行狀態,其運行軌跡如圖15所示,采用強化學習所消耗的時間是最短的,整體運行軌跡輪廓更為平滑,振蕩次數最少。比較結果如表4所示。

圖15 沿加工路徑上轉臺速度波動圖

表4 試驗結果比較
本文提出了一種六軸鋪放鋪纏機床的刀具軌跡優化方法。由于數控機床具有一定程度的功能冗余,在工件坐標系下將初始計算的刀具路徑轉換為可以優化的路徑范圍。并在這個可行范圍內采用強化學習的方式進行路徑決策,保證關鍵軸曲率和階數變化較小的前提下,提高加工效率。
考慮到機床各軸動態特性的差異,搭建用于訓練的加工仿真環境,利用PPO訓練出的策略能夠在仿真約束下生成一條加工路徑。這種方式收斂較快,適用于需要在不確定環境下進行連續決策的冗余機床。
通過實際零件的測試可以證實,這種方式生成的機床路徑在改善關鍵軸運動特性及提高加工效率上的有效性。