徐興輝,唐大林,顧書豪,左家祺,王曉東,3,任同群,3
(1.大連理工大學 微納米技術及系統遼寧省重點實驗室,遼寧 大連 116024;2.北京航天測控技術有限公司,北京 100041;3.大連理工大學 高性能精密制造全國重點實驗室,遼寧 大連 116024)
國防高端武器中常用的傳感器、慣性器件等,具有尺度小、精度高的特點,裝配是其制造過程中的重要環節。裝配任務就是基于視覺、力覺等傳感器對作業環境的感知,控制引導多操作臂協作完成序列零件的拾取、搬運、位姿調整對齊以及釋放等操作,即多操作臂的協同操作。由于任務需要綜合考慮裝配序列信息,操作臂運動區域等條件,導致在操作臂前往目標位置的途中,難以始終保持連續、直線的運動路徑,因此通常需要對任務路徑進行規劃。目前,大多在調試階段通過多次人工試驗找到一個優先保證安全的控制方案。然而這種方式相當耗時,且在試驗過程中由于沒有明確目標,容易操作失誤,造成操作臂之間的運動干涉,甚至產生硬件損壞[1-2]。除此,人工方式不能全局規劃,所得運動控制方案并非最優,勢必犧牲一定的裝配效率。此時,微裝配任務自主規劃就成為了傳統微裝配演變成數字化智能微裝配的關鍵手段之一[3]。
針對規劃問題,典型的方法是人工勢場法[4]及其衍生的算法[5-7]。其優點是收斂速度快,路徑平滑,運行穩定[8]。還有學者將各類智能搜索算法如遺傳算法、模擬退火以及模糊控制算法等融入人工勢場法[9-11],以此來增加算法的搜索能力,改善局部最優問題。微裝配的任務由操作臂連續動作決策所構成,因此可將其歸為序貫決策問題。強化學習(RL,reinforcement learning)的出現主要用于序貫決策問題,能夠增加了操作臂的適應能力,且只需要操作臂在探索過程中不斷地從錯誤中學習,即可得到穩定的路徑[12]。近年來,針對大維度數據帶來的迭代復雜問題,有學者將深度學習(DL,deep learning)融入RL中形成深度強化學習(DRL,deep reinforcement learning),如控制機械臂重新排列物體[13],完成協作任務[14],在非結構化區域中抓取目標對象[15]。
在裝配領域,李彥江利用多智能體深度確定性策略梯度算法(MADDPG,multi-agent deep deterministic policy gradientalgorithm)算法,實現了雙關節臂的協同裝配并進行了仿真驗證[16]。李妍等將模糊貝葉斯與深度Q網絡結合,提高了狹窄空間中的運行效率[17]。微裝配系統特有的支撐框架、直角坐標、空間密集使其對精度、空間等要求較高。而障礙物與目標點集中等特征加劇了迭代復雜、局部最優問題,因而傳統的人工勢場法等并不適用此類規劃問題。一次任務中有不同的子任務,而各子任務的操作臂個數、障礙物布置等均不同,此類先驗信息、環境信息的變化將導致使用智能搜索算法規劃時需要重新構建環境,耗費了大量資源。當前DRL方法多用于移動機器人的路徑規劃[18-19]、無人機導航與任務分配[20]、以及實際生產線上的人機協作問題[21]等。然而上述工況與微裝配任務特點差異較大,存在動作空間不符、獎勵函數條件不合理等可能導致微裝配實物訓練難度大的問題,以及精確度低的仿真環境可能導致訓練失敗。
綜上所述,提出了多智能體強化學習(MARL,multi-agent reinforcement learning)下更契合微裝配任務的動作、狀態、獎勵條件的構建方法。同時,基于MADDPG算法,利用Coppelisiam軟件對已有測量設備進行物理建模,構建了任務的深度強化學習模型并進行訓練得到可工程化的路徑,實現了微裝配設備的自主規劃。
深度強化學習方法將深度學習較強的感知能力與強化學習具有的決策能力相結合。主要思想是利用深度神經網絡實現對原始低層特征輸入的非線性變換,增強智能體的環境感知能力,并結合強化學習的探索能力,形成一種將原始環境狀態輸入直接映射為動作決策輸出的端對端的學習方法[22]。與強化學習一樣,深度強化學習框架中也由智能體(Agent)、動作、狀態及獎勵等要素組成。
策略(Policy),狀態集(State)與動作空間(Action):策略π是智能體與環境交互時的行為選擇依據,π(s,a)智能體在狀態s下根據π選擇動作a。狀態空間S表示智能體狀態信息的集合,是智能體訓練過程中制定決策和獲取長期收益的交互依據;動作空間A包含了智能體在某狀態下所能做出所有可選動作的集合。S→A表示狀態空間到動作空間的映射。
獎勵函數(Reward):獎勵函數r反映當前環境狀態St∈S下所選擇的動作At∈A對達成目標的貢獻度,其將任務目標具體化和數值化,是實現操作臂與環境之間交互的載體,影響著智能體策略的選擇。獎勵值是否合理,決定著智能體通過訓練之后選擇的動作能否有利于達成目標。
價值函數(Value Function):價值函數Q(s,a)表示某個狀態下在選擇某動作時的價值,其由帶有折扣因子的未來獎勵組成,因此表示選擇動作的潛在價值。從定義上看,價值函數就是回報的期望:
Rt=rt+λrt+1+λ2rt+2+…
(1)
Q(s,a)=
E[rt+λmaxQ(st+1,at+1)|St=s,At=a]
(2)
其中:λ為獎勵的折扣因子。在DRL中,使用神經網絡逼近擬合價值函數。
經驗回放池(ER,experience replay):深度學習對訓練數據的假設是獨立同分布的,然而在DRL中,訓練數據由高度相關的“智能體環境交互序列”組成,不符合采樣數據獨立性條件。智能體在探索狀態空間的不同部分時是主動學習的,因此訓練數據的分布是非平穩的,不符合采樣數據獨立同分布條件。ER機制使DRL中的智能體能夠記住并回放過去的經驗數據,通過與最近數據混合,打破觀測序列的時間相關性,有助于解決數據非獨立同分布造成的問題。
由于微裝配任務規劃是一個典型的多操作臂問題,在利用多智能體強化學習進行求解時,存在環境不穩定問題,當前狀態優化的策略在下一個變化的環境狀態中可能又無效了,這就導致不能直接使用ER來進行訓練,因此適用于單智能體的DRL方法需要改進。由Lowe等提出的MADDPG算法將多智能體思想融入了基于深度強化學習的演員-評論家算法[23],MADDPG算法采用集中學習,分散執行的方法解決了多智能體競爭、合作或者競爭合作共存的復雜環境中存在的環境不穩定問題。集中學習指的是環境中的所有智能體的信息是全局共享,分散執行指智能體在做出決策時,僅依靠自己觀測得到的環境情況進行選擇合適的動作,無需其他智能體的狀態或動作,因此該算法解決了之前單智能體算法只能獲得自己的狀態動作的問題。微裝配環境中,各操作臂既有多操作臂共同完成一項工作的合作關系,同時也有不同模塊間避免干涉的競爭關系。因此在使用多智能體強化學習訓練多操作臂時,應具體分析微裝配任務特點設計合理的環境交互機制,對動作、狀態,特別是獎勵函數進行針對性設計。
分析微裝配任務特點:其通常采用直角坐標機器人,運動方式不能脫離支撐框架,難以完成順滑的非直線運動軌跡,因此一些高精度避障、協調的動作難以通過插補實現。同時,規避干涉時應盡量避免停頓和反向運動,以減小控制難度和裝配精度損失;其次,多操作臂擁擠在狹小的操作空間內,既有協作也有競爭(運動干涉),使得規劃求解空間有限;最后,操作臂的運動軌跡相對于操作空間多為長序列,且易干涉區域相對集中,使得協同運動時干涉的風險增加。動作、狀態以及獎勵函數構建以上述特點為依據。
狀態空間的設計包括子任務劃分、觀測空間的建立。在微裝配中,操作臂應盡量避免反向運動,但還是存在如操作臂取放工件,相機觀測不同位置零件等難以避免反向運動的情況。因此可將這些裝配任務中運動方向的臨界位置作為各子任務的劃分點,既便于進行精度控制,又便于后續動作空間設計后續路徑的訓練。觀測空間是狀態空間的基礎,決定了要對哪些操作臂的狀態進行觀測,并將觀測結果輸入策略網絡以及價值評價網絡。在進行觀測時,各模塊操作臂所處位置可作為觀測空間的組成部分,為了便于網絡輸入,對實時位置應當進行歸一化處理:
(3)
其中:pr是當前操作臂位置,pf是子任務中操作臂需要運動的總長度。同時,對于無碰路徑,還需要對實體之間的碰撞情況進行觀測,最終得到的觀測空間為:
S={Collision,Rle}
(4)
動作空間決定了操作臂動作庫的動作數量。動作空間的設計應具有完備、高效以及合理的特點。在進行動作空間設計時,應當對無效動作進行屏蔽。無效動作是指操作臂選擇的動作違反其所處的實際環境。不同于無人機控制、關節機械臂的應用場景,微裝配設備在運行時由于高精度要求,需要盡量避免停頓和反向運動的無效動作,以減少頻繁啟停和回程誤差造成的裝配精度損失,尤其在進行干涉規避時,更應避免隨意反向運動等無效運動;停頓次數過多也會導致脈沖計數誤差增大,增加操作臂的控制難度。因此微裝配測量系統的子任務中,操作臂一旦朝向一個方向運動,原則上就不能再向反方向移動,但仍可以接受由于避碰而導致的較少次數的停頓。對于已經到達目標點的操作臂,其動作將始終為0,因此動作空間設計為:
(5)
其中:v為操作臂所選擇動作的速度,包括選擇速度為0的停頓,dir為操作臂的運行方向。每一個step開始時,都通過將操作臂當前的狀態輸入策略網絡得到選擇不同動作組合的概率,并以概率最大的動作組合作為該step的動作。
操作臂的訓練過程就是不斷試錯的過程,獎勵函數作為評價操作臂所選擇動作的好壞評價標準,直接決定了能否訓練出成功的方案。微裝配任務中,各操作臂通過環境給予的獎勵得知自己在某一狀態下采取的動作是否合理,因此獎勵函數的本質是建立狀態動作對與獎勵之間的映射關系,并將這種關系用于對操作臂所采取的動作的評價和約束。獎勵函數直接影響了算法的收斂性,與微裝配環境契合的獎勵函數是實現設備無碰、高效的前提。
各操作臂的首要任務是到達目標位置,因此獎勵函數應具有吸引操作臂前往目標點的功能。以操作臂所處位置為自變量,構建主要的獎勵函數為:
(6)
其中:Δp是操作臂當前位置與目標點之間的距離。pf是子任務中操作臂需要運動的總長度。該函數下,隨著操作臂靠近目標點,Δp不斷減少,則正向獎勵值不斷增大。動作空間中包含速度為0的停止動作,對每個子任務而言,為了保證精度以及保證操作臂的運動可控性,頻繁啟停將會導致精度損失,顯著增加控制難度,在規劃時需要避免,因此操作臂的停頓次數應當越少越好。然而在MADDPG算法中,為了讓操作臂保證一定的探索性,各動作的選擇概率具有一定的隨機性,所以對停頓次數過多的行為進行懲罰:
(7)
其中:s0為子任務中操作臂選擇動作為0的step個數,s為操作臂在路徑中所經歷的step個數,α為對應的系數。由于對于路徑的要求還有無碰的要求,因此當操作臂產生碰撞時需要給予較大的懲罰,即為:
R3=-a
(8)
其中:a為一常量,表示碰撞結果一經產生,就給予操作臂固定的懲罰。然而,微裝配設備中多為狹小空間,多臂協同動作時碰撞極易發生,這導致操作臂即便通過大量冗余試驗也不能明白碰撞前的路徑是低價值的,此時若僅當產生碰撞時才懲罰,則會由于相關信息不直接而導致操作臂始終選擇低價值動作,避碰失敗,在這種情況下,操作臂需要通過大量冗余試驗才能明白碰撞前的路徑也是低價值的。其中,正是因為與控制目的相關的信息并未在獎勵函數的設計中得到體現,而導致此類問題的產生。此時就需要使用獎勵函數進行外部干預,這意味著獎勵函數不僅需要對碰撞行為進行懲罰,還需要能夠對碰撞進行預測。具體到微裝配中,就是以實體對象之間的距離為依據,構建獎勵函數為:
R4=ω(Δd-Dt)
(9)
其中:ω為系數,用于調節該部分獎勵函數對整體獎勵的影響程度。Dt為碰撞檢測閾值,Δd為實體之間的實時距離,當實體距離小于Dt時,則R4為負值,對操作臂開始懲罰,反之進行正向獎勵。綜上,可得符合微裝配測量設備的獎勵函數為
(10)
采用CoppeliaSim軟件對已有的測量設備進行物理建模,基于前述獎勵函數的設計方法,在CoppeliaSim中以MADDPG算法進行訓練并驗證。訓練過程中,利用仿真軟件自身提供的實體間碰撞以及距離檢測功能,實現零部件之間的距離檢測和碰撞檢測,操作臂實時位置監測等操作,這些信息通過軟件的消息機制送給訓練算法,再由訓練算法處理并將得到的策略通過遠程控制實現仿真運動,訓練環境與仿真環境關系如圖2所示。目標設備為課題組研制的“航天陀螺儀氣浮動壓馬達間隙測量設備”,結構如圖3所示。設備中,由9自由度操作臂協同完成馬達軸向及徑向μm級間隙的測量任務[24]。
CoppeliaSim是一款機器人仿真平臺,其具有完備的物理引擎,支持實體重構模型、距離檢測、實體碰撞檢測等,支持通過Python遠程控制關節進行移動。為了節約仿真計算量,通常將復雜的模型部件進行重構,將各零部件有具有精準細節的實體轉換為凸包體,因此利用開源的V-HACD庫對操作臂組成部分進行凸分解,實現粗略建模,同時由于對夾指、工件、測頭等進行較為精細的重構,使凸包體與部件形狀接近一致,如圖4所示。最終得到的物理模型如圖5所示。
雖然操作臂的運動是一個連續的動作,但連續運動時,持續性的碰撞檢測將使得訓練時間成本過高,如平均兩個零部件之間的碰撞檢測就需要1.5 s的時間,導致操作臂連續運動時進行訓練、處理仿真軟件信息流的延遲過大。因此,將操作臂的連續運動簡化為離散勻速運動,即在仿真環境中以操作臂在固定時間的位移表示其在實際設備中的速度。則在間隔時間確定的情況下建立操作臂在實際設備中與仿真模型中運動的模型映射關系為:
s=vT
(11)
其中:T為確定的間隔時間,v為操作臂運行的實際速度。Coppeliasim機械臂控制器中的Background Task通過UDP向外部程序每隔50 ms循環發送當前各軸位置,確定T為50 ms的整倍數即可。基于MADDPG算法構建設備操作臂的訓練算法。對動作、狀態空間以及獎勵函數進行重構,各step之間的間隔為T。
以圖6中的工件姿態旋轉子任務為例,該子任務包含多臂協同、避障兩個動作要求。旋轉模塊上的夾指沿Y軸運動并夾住工件后,操作臂的具體目標位置為:旋轉模塊Y軸執行后退動作至限位位置使零件退出上料區域,在Y軸退出的同時,旋轉模塊R軸旋轉90°使馬達由水平轉至豎直狀態。同時,三爪夾持模塊的X軸與Z軸也同時向目標位置運動,以準備零件的對接工作。
在Pycharm中搭建好基于Python的訓練所需環境,然后使用基于MADDPG算法的訓練算法對設備整體進行多個episode的訓練。訓練算法輸出的策略通過封裝好的函數對仿真軟件中的物理模型進行遠程控制。物理仿真環境中實時交互產生的操作臂位置、零部件間的距離、碰撞檢測結果等作為觀測值返回到訓練算法。
首先構建好訓練所需的動作,狀態空間。然后根據式(6)設計僅以目標點吸引作為正向獎勵的獎勵函數,通過多次訓練,得到兩個操作臂位移變化曲線、動作選擇曲線以及所經歷的各位置處的獎勵值如圖7所示。
雖然位移的實際運動曲線顯示操作臂成功避障并到達了目標位置,但由動作選擇曲線可看出,操作臂運行時存在斷斷續續反復啟停的問題,選擇了過多無必要的零動作,無法保證連續穩定的運動,這違反了微裝配任務規劃的準則,如此頻繁的啟停增加了控制難度,不能契合微裝配的操作特點,使得訓練結果無法實際工程化。同時,該路徑花費時長較大,使用了近100多個step,觀察實時獎勵值可看到當操作臂選擇了朝向目標位置的運動動作時,環境給予一定的獎勵值,然而當操作臂選擇停止時,并無任何獎懲。因此,根據式(7)增加對停頓次數有約束效果的獎勵函數,再次訓練,可得到相關曲線如圖8所示。
可以看到,動作選擇曲線中再未出現操作臂頻繁啟停的現象,但由于缺少對碰撞的約束,操作臂始終在剛開始就產生碰撞,從圖中可看出操作臂在第5個step就產生了碰撞。因此依據式(8)增加碰撞約束的獎勵函數得到圖9路徑曲線,經過訓練后可以由運動曲線圖和動作選擇曲線看到,旋轉模塊R軸的積極性被打消,不再進行任何的旋轉動作,這是由于操作臂運動初期在狹窄的空間中較易產生碰撞,進而很容易就得到很大的懲罰,導致探索難度增大,這種懲罰使得操作臂產生“積極性喪失”的現象。為了降低操作臂初期的探索難度,根據式(10)對獎勵函數進行改進,提升對碰撞情況的預測能力,得到各操作臂的相關曲線如圖10所示。可以看到,旋轉模塊R軸在運動初期靜止不動,直到Y軸操作臂運動了一定的距離后R軸的旋轉運動才開始,最終實現避障,且為了避碰而產生的停頓集中,路徑效率較高,在目標點吸引的正向獎勵中做出更加有利于路徑整體規劃的動作選擇。

圖1 MADDPG算法框架示意圖[22]

圖2 訓練環境以及仿真環境關系示意圖

圖3 氣浮軸承間隙測量設備實物圖[24]

圖4 凸分解構建凸包體示意圖

圖5 待規劃設備在CoppeliaSim中的物理模型

圖6 工件姿態旋轉子任務實驗對象

圖7 僅以目標點吸引的正向獎勵為獎勵函數

圖8 增加停頓次數獎懲的路徑曲線

圖9 增加碰撞約束獎勵函數

圖10 根據式(10)訓練后的曲線圖
可以看出在該穩定路徑下的一個episode中,當操作臂未到達目標位置時,獎勵值隨step的增加而穩定增加。從動作選擇曲線中可看出,受獎勵函數約束,動作選擇能夠保持穩定,符合微裝配設備操作臂運行特點。
分析了微裝配的任務特點,提出了微裝配任務動作、狀態、獎勵條件設計準則以及構建方法,使得多智能體深度強化學習與直角坐標下的微裝配任務更契合,克服了現有環境不符合微裝配特點的問題。在仿真軟件中對已有的測量設備各零部件進行了凸分解。最后,基于MADDPG算法模型進行訓練,得到了完整的測量方案,并通過試驗證明設計的獎勵函數能夠使得路徑更加符合微裝配的實際工況,為微裝配自主規劃提供了理論、技術支撐。