唐超,張帆,王文龍,李徐
(201620 上海市 上海工程技術(shù)大學(xué) 機(jī)械與汽車(chē)工程學(xué)院)
隨著科學(xué)技術(shù)的不斷發(fā)展,機(jī)器人技術(shù)被廣泛應(yīng)用于社會(huì)的各個(gè)領(lǐng)域。蛇形機(jī)械臂由于具有多自由度、環(huán)境適應(yīng)性強(qiáng)、結(jié)構(gòu)細(xì)長(zhǎng)等特點(diǎn)[1],在醫(yī)療器械、核電設(shè)備檢修、航天航空制造和地震災(zāi)后救援等領(lǐng)域有著廣泛的應(yīng)用[2-5]。特別是在醫(yī)療器械領(lǐng)域,蛇形機(jī)械臂有著較大的發(fā)展空間。HU[6]等人設(shè)計(jì)了一種用于腹腔鏡手術(shù)的基于線驅(qū)動(dòng)機(jī)構(gòu)的被動(dòng)蛇形機(jī)械臂;WEI[7]等人設(shè)計(jì)了一種用于喉部微創(chuàng)手術(shù)的微型蛇形裝置。
在蛇形機(jī)械臂控制領(lǐng)域,通常采用數(shù)學(xué)方法對(duì)其運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)方程進(jìn)行研究。馬影[8]等人提出了一種基于末端跟隨算法的運(yùn)動(dòng)控制策略,該方法采用幾何推導(dǎo)實(shí)現(xiàn)了蛇形機(jī)械臂末端的位置跟蹤;王軫[9]等人提出一種基于脊線模態(tài)法和快速擴(kuò)展隨機(jī)樹(shù)(RRT)的控制算法,實(shí)現(xiàn)了蛇形機(jī)械臂的避障軌跡規(guī)劃。但由于蛇形機(jī)械臂結(jié)構(gòu)的限定,機(jī)械臂通常涉及多個(gè)動(dòng)作變量,從而使其模型更加復(fù)雜。并且由于自由度類(lèi)型和外部不確定性干擾等因素,這些方法在不同的原型之間缺乏魯棒性和可移植性。
近年來(lái)深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL)在機(jī)械臂控制領(lǐng)域逐漸興起,并得到廣泛應(yīng)用。孫康[10]等人基于深度強(qiáng)化學(xué)習(xí)提出了一種空間漂浮基機(jī)械臂抓捕控制策略,實(shí)現(xiàn)對(duì)非合作目標(biāo)的快速逼近和抓捕;劉錢(qián)源[11]基于深度強(qiáng)化學(xué)習(xí)提出了一種雙臂機(jī)器人協(xié)同抓取策略,使雙臂機(jī)器人能夠成功地完成抓取物體的任務(wù)。上述研究表明,深度強(qiáng)化學(xué)習(xí)在多自由度機(jī)械臂逼近和抓捕問(wèn)題上有較好的適用性,但是深度強(qiáng)化學(xué)習(xí)在蛇形機(jī)械臂控制領(lǐng)域還缺乏應(yīng)用。
本文針對(duì)蛇形機(jī)械臂,提出了一種基于深度強(qiáng)化學(xué)習(xí)的控制策略。該策略使用深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法,通過(guò)設(shè)置獎(jiǎng)勵(lì)函數(shù),實(shí)現(xiàn)了蛇形機(jī)械臂在2D 平面對(duì)目標(biāo)物的快速精確逼近。該策略在不同的原型之間具有很大的可移植性,因?yàn)樗鼘W(xué)習(xí)獨(dú)立于特定的蛇形機(jī)械臂模型。最后通過(guò)仿真實(shí)驗(yàn)在2D 平面驗(yàn)證了所學(xué)習(xí)的策略在控制過(guò)程中的適應(yīng)性和魯棒性。
深度學(xué)習(xí)(Deep Learning,DL)是機(jī)器學(xué)習(xí)的一種。深度學(xué)習(xí)的概念來(lái)源于人工神經(jīng)網(wǎng)絡(luò)的研究,具有多個(gè)隱藏層的多層感知器就是一種深度學(xué)習(xí)結(jié)構(gòu)。深度學(xué)習(xí)是通過(guò)建立神經(jīng)網(wǎng)絡(luò)來(lái)模擬人腦解決問(wèn)題。強(qiáng)化學(xué)習(xí)(Reinforcement Learning,RL)也是機(jī)器學(xué)習(xí)的一種,是關(guān)于一個(gè)主體與環(huán)境的相互作用,通過(guò)反復(fù)試驗(yàn),在自然科學(xué)、社會(huì)科學(xué)和工程的廣泛領(lǐng)域中為順序決策問(wèn)題學(xué)習(xí)一個(gè)最優(yōu)策略。深度學(xué)習(xí)感知能力強(qiáng),但缺乏一定的決策能力;而強(qiáng)化學(xué)習(xí)具有較強(qiáng)的決策能力,但沒(méi)有辦法處理感知問(wèn)題。深度強(qiáng)化學(xué)習(xí)將深度學(xué)習(xí)的感知能力和強(qiáng)化學(xué)習(xí)的決策能力相結(jié)合,可以直接根據(jù)輸入的圖像進(jìn)行控制,是一種更接近人類(lèi)思維方式的人工智能方法。
DDPG 是Lillicrap 等人[12]提出的包含價(jià)值網(wǎng)絡(luò)和策略網(wǎng)絡(luò)的算法,該算法包含了深度Q 網(wǎng)絡(luò)算法(Deep Q Network,DQN)和演員-評(píng)論家算法(Actor-Critic,AC)的優(yōu)點(diǎn)。在強(qiáng)化學(xué)習(xí)領(lǐng)域,DDPG 算法是從PG(Policy Gradient)[13]、DPG(Deterministic Policy Gradient)[14]、DDPG(Deep Deterministic Policy Gradient)一路發(fā)展而來(lái)的。
DDPG 是一種基于Actor-Critic 框架的確定性策略梯度的無(wú)模型算法,其學(xué)習(xí)過(guò)程如下:
(1)根據(jù)當(dāng)前的策略和探索過(guò)程的隨機(jī)噪聲選擇應(yīng)執(zhí)行的動(dòng)作(action):
在環(huán)境中執(zhí)行動(dòng)作at,環(huán)境將給出一個(gè)新的狀態(tài)st+1并返回獎(jiǎng)勵(lì)值rt;
(2)將狀態(tài)轉(zhuǎn)移的(st,at,rt,st+1)存儲(chǔ)在replay buffer 中,并隨機(jī)采樣N組數(shù)據(jù)(si,ai,ri,si+1)。
(3)設(shè)置關(guān)于價(jià)值函數(shù)的目標(biāo)值:
(4)更新Critic 網(wǎng)絡(luò):
(5)更新Actor 網(wǎng)絡(luò):
(6)更新目標(biāo)網(wǎng)絡(luò)
系統(tǒng)包括深度強(qiáng)化學(xué)習(xí)算法和實(shí)驗(yàn)仿真2 個(gè)部分[15],系統(tǒng)通過(guò)深度強(qiáng)化學(xué)習(xí)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,使得DDPG 算法可以控制蛇形機(jī)械臂抵達(dá)目標(biāo)物。實(shí)驗(yàn)仿真部分的環(huán)境包括蛇形機(jī)械臂和目標(biāo)物兩部分,搭建仿真環(huán)境,環(huán)境接收算法的控制變量使蛇形機(jī)械臂產(chǎn)生相應(yīng)的運(yùn)動(dòng),然后將運(yùn)動(dòng)后的環(huán)境信息傳遞給深度強(qiáng)化學(xué)習(xí)算法,根據(jù)接收的環(huán)境信息,深度強(qiáng)化學(xué)習(xí)獲得狀態(tài)變量和獎(jiǎng)勵(lì)值[16],通過(guò)狀態(tài)變量計(jì)算蛇形機(jī)械臂的控制量,通過(guò)獎(jiǎng)勵(lì)值更新深度強(qiáng)化學(xué)習(xí)中神經(jīng)網(wǎng)絡(luò)的參數(shù)。
本文所采用的蛇形機(jī)械臂具有4 個(gè)蛇形機(jī)械臂單元,它們通過(guò)具有 2 自由度的萬(wàn)向鉸鏈相互連接。每個(gè)蛇形機(jī)械臂單元長(zhǎng)為72 mm,外徑為55 mm,上下萬(wàn)向鉸鏈距離為95 mm,如圖1 所示。
圖1 相鄰關(guān)節(jié)的偏角姿態(tài)Fig.1 Deflection posture of adjacent joints
由于相鄰蛇形機(jī)械臂單元空間有限,萬(wàn)向鉸鏈的旋轉(zhuǎn)角度受到一定的限制。在萬(wàn)向鉸鏈旋轉(zhuǎn)角度的計(jì)算中,本文將相鄰關(guān)節(jié)軸線的交點(diǎn)作為原點(diǎn),旋轉(zhuǎn)角度關(guān)系如圖2 所示。
圖2 萬(wàn)向鉸鏈的最大轉(zhuǎn)動(dòng)角度Fig.2 Maximum rotation angle of universal joint
由幾何關(guān)系可知,萬(wàn)向鉸鏈可轉(zhuǎn)動(dòng)的最大角度與相鄰關(guān)節(jié)之間的垂直距離D和蛇形機(jī)械臂單元外徑L的數(shù)學(xué)關(guān)系如下:
最后求得萬(wàn)向鉸鏈可轉(zhuǎn)動(dòng)最大角度θw=45.3°
在深度強(qiáng)化學(xué)習(xí)中,獎(jiǎng)勵(lì)reward 表示某一個(gè)狀態(tài)所產(chǎn)生的某一個(gè)動(dòng)作對(duì)達(dá)到目標(biāo)有多大貢獻(xiàn)的評(píng)價(jià)[17]。深度強(qiáng)化學(xué)習(xí)算法通過(guò)獎(jiǎng)勵(lì)函數(shù)輸出的獎(jiǎng)勵(lì)reward 進(jìn)行學(xué)習(xí)訓(xùn)練,同時(shí)獎(jiǎng)勵(lì)函數(shù)也涉及到算法的收斂問(wèn)題,所以獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì)十分重要。
根據(jù)蛇形臂末端是否抵達(dá)目標(biāo)物設(shè)置獎(jiǎng)勵(lì)函數(shù)r1為:
在訓(xùn)練過(guò)程中,某次訓(xùn)練蛇形機(jī)械臂末端抵達(dá)目標(biāo)次數(shù)連續(xù)超過(guò)30 次時(shí),才視為完成此次訓(xùn)練,每抵達(dá)目標(biāo)物一次獎(jiǎng)勵(lì)函數(shù)r1均運(yùn)算一次。
結(jié)合蛇形機(jī)械臂的環(huán)境,獎(jiǎng)勵(lì)函數(shù)還包含目標(biāo)物和蛇形機(jī)械臂末端的位置信息。目標(biāo)物位置為(xgoal,ygoal),蛇形機(jī)械臂末端的位置為(x4,y4)獎(jiǎng)勵(lì)函數(shù)為r2:
最終確定獎(jiǎng)勵(lì)函數(shù)R:
在訓(xùn)練過(guò)程中,較全的蛇形機(jī)械臂狀態(tài)信息會(huì)加快收斂速度。對(duì)于2D 末端執(zhí)行器定位任務(wù),狀態(tài)信息由機(jī)械手末端執(zhí)行器相對(duì)于目標(biāo)的相對(duì)位置定義[17]。而對(duì)于本文所采用的蛇形機(jī)械臂,傳統(tǒng)位置定義的狀態(tài)信息難以滿足快速收斂需求。本文將狀態(tài)信息表示為:每一個(gè)蛇形機(jī)械臂單元末端相對(duì)于目標(biāo)物和中心點(diǎn)的相對(duì)位置,4 個(gè)蛇形機(jī)械臂單元16 個(gè)狀態(tài)信息,及蛇形機(jī)械臂末端是否在目標(biāo)物上(如是返回值1,如果不是返回值0),共17 個(gè)狀態(tài)信息。17 個(gè)位置信息保證了控制精度,也使得收斂速度大幅提升。
動(dòng)作設(shè)計(jì)實(shí)質(zhì)上屬于運(yùn)動(dòng)規(guī)劃范疇,是根據(jù)目標(biāo)物體的位置控制機(jī)械臂的各關(guān)節(jié)運(yùn)動(dòng),進(jìn)而使機(jī)械臂末端執(zhí)行器到達(dá)目標(biāo)物體位置[18]。本文采用的蛇形機(jī)械臂共有4 個(gè)蛇形機(jī)械臂單元,每個(gè)單元在2D 空間均可左右轉(zhuǎn)動(dòng)45°,即轉(zhuǎn)動(dòng)范圍為[-45°,45°],每個(gè)關(guān)節(jié)每次轉(zhuǎn)動(dòng)的角度在[-45°,45°]中隨機(jī)選取一個(gè)值。
本文通過(guò)仿真實(shí)驗(yàn)來(lái)驗(yàn)證所提出方法的優(yōu)劣?;赑ython 語(yǔ)言,使用gym 中的pyglet 模塊搭建了一個(gè)蛇形機(jī)械臂在2D 空間的運(yùn)動(dòng)環(huán)境,整個(gè)環(huán)境如圖3 所示。本文在2D 空間中用矩形代替3D空間中的圓柱形蛇形機(jī)械臂單元。該蛇形機(jī)械臂是由4 節(jié)蛇形機(jī)械臂單元串聯(lián)組成的,其中每節(jié)蛇形機(jī)械臂單元可以分別向左、向右轉(zhuǎn)動(dòng)45°。其目標(biāo)是通過(guò)深度強(qiáng)化學(xué)習(xí),在蛇形機(jī)械臂的工作范圍內(nèi)使蛇形機(jī)械臂的末端抵達(dá)目標(biāo)物,即使第4 節(jié)蛇形機(jī)械臂單元的頂端抵達(dá)灰色正方形區(qū)域。
圖3 蛇形機(jī)械臂仿真環(huán)境Fig.3 Snake-like arm simulation environment
本文使用在深度學(xué)習(xí)領(lǐng)域使用較為廣泛的框架TensorFlow 來(lái)搭建用于訓(xùn)練蛇形機(jī)械臂的深度強(qiáng)化學(xué)習(xí)算法DDPG,使用matplotlib 模塊可視化實(shí)驗(yàn)結(jié)果。深度強(qiáng)化學(xué)習(xí)的網(wǎng)絡(luò)共包含2 個(gè)全連接層,網(wǎng)絡(luò)的輸入為蛇形機(jī)械臂的狀態(tài)(state),輸出為蛇形機(jī)械臂的動(dòng)作(action)。為保證模型的魯棒性,在蛇形機(jī)械臂每一個(gè)episode 后,將蛇形機(jī)械臂的初始位置設(shè)置為隨機(jī)。4 節(jié)蛇形機(jī)械臂單元的臂長(zhǎng)和臂寬均為95 個(gè)單位和24.5 個(gè)單位,并且可以分別向左、向右轉(zhuǎn)動(dòng)45°。
本文設(shè)置的DDPG 訓(xùn)練參數(shù)為:最大迭代次數(shù)(MAX_EPISODES)為600,每次迭代的最大步數(shù)(MAX_EP_STEPS)為300,actor的學(xué)習(xí)率為0.001,critic 的學(xué)習(xí)率為0.001,獎(jiǎng)勵(lì)折扣值為0.9,內(nèi)存容量為30 000,每一個(gè)batch 的大小為32,神經(jīng)元的個(gè)數(shù)為300。當(dāng)某次訓(xùn)練時(shí)蛇形機(jī)械臂末端抵達(dá)目標(biāo)次數(shù)連續(xù)超過(guò)30 次時(shí),則視為完成此次訓(xùn)練。
由圖4 可見(jiàn),仿真實(shí)驗(yàn)過(guò)程中學(xué)習(xí)初期屬于探索階段,蛇形機(jī)械臂在不斷地探索環(huán)境,不斷地收集環(huán)境的樣本數(shù)據(jù),難以抵達(dá)目標(biāo)物。使其獎(jiǎng)勵(lì)值較低,并且每個(gè)episode 所采取的step 較多。在學(xué)習(xí)中期,由于樣本數(shù)量的不斷積累,動(dòng)作策略與獎(jiǎng)勵(lì)函數(shù)之間的關(guān)系被不斷建立起來(lái),蛇形機(jī)械臂從探索環(huán)境開(kāi)始轉(zhuǎn)變?yōu)槔铆h(huán)境,可以較好地抵達(dá)目標(biāo)物,在130 次迭代后模型開(kāi)始收斂。隨著蛇形機(jī)械臂學(xué)習(xí)的不斷深入,蛇形機(jī)械臂嘗試開(kāi)始自己調(diào)整運(yùn)動(dòng)趨勢(shì),使其以最少的step 抵達(dá)目標(biāo)物。最終獎(jiǎng)勵(lì)值穩(wěn)定在25 左右,step 穩(wěn)定在30 左右。從獎(jiǎng)勵(lì)值和step 的變化趨勢(shì)來(lái)看,模型符合要求。
圖4 蛇形機(jī)械臂的學(xué)習(xí)過(guò)程Fig.4 Learning process of snake-like arm
經(jīng)過(guò)學(xué)習(xí)之后,為了測(cè)試學(xué)習(xí)過(guò)程的有效性,我們?cè)谏咝螜C(jī)械臂的工作范圍內(nèi)隨機(jī)選擇一個(gè)目標(biāo)(520,420),然后進(jìn)行了2 組實(shí)驗(yàn)。第1 組實(shí)驗(yàn)使蛇形機(jī)械臂分別向上、向下各移動(dòng)2 次,每次移動(dòng)10 個(gè)單位。第2 組實(shí)驗(yàn)使蛇形機(jī)械臂分別向左、向右各移動(dòng)2 次,每次移動(dòng)10 個(gè)單位。并且我們希望蛇形機(jī)械臂最終能在目標(biāo)物上連續(xù)停留至少30 次,最終測(cè)試結(jié)果如圖5 和圖6 所示,反映了蛇形機(jī)械臂的末端和目標(biāo)物中心之間的距離通常隨蛇形機(jī)械臂采取行動(dòng)而減小,并且最終達(dá)到預(yù)期的效果。這些實(shí)驗(yàn)結(jié)果證明了我們控制策略的有效性。
圖5 蛇形機(jī)械臂以相同縱坐標(biāo)分別向上、向下各移動(dòng)2 次Fig.5 Snake-like arm moves up and down twice with the same vertical coordinate
圖6 蛇形機(jī)械臂以相同縱坐標(biāo)分別向左、向右各移動(dòng)2 次Fig.6 Snake-like arm moves to left and right twice with the same vertical coordinate
為了檢驗(yàn)控制策略的魯棒性,本文對(duì)蛇形機(jī)械臂進(jìn)行了一些人工干擾,在每次的單獨(dú)實(shí)驗(yàn)中分別對(duì)4 個(gè)蛇形機(jī)械臂單元進(jìn)行了鎖死,即不讓該單元產(chǎn)生左右轉(zhuǎn)動(dòng)。同樣,在蛇形機(jī)械臂的工作范圍內(nèi)隨機(jī)選擇一個(gè)目標(biāo)(520,420),希望蛇形機(jī)械臂末端能抵達(dá)目標(biāo)物,且在目標(biāo)物上連續(xù)停留至少30 次。測(cè)試結(jié)果如圖7 所示。
圖7 分別對(duì)4 個(gè)蛇形機(jī)械臂單元進(jìn)行了鎖死Fig.7 Four snake-like arm units locked respectively
系統(tǒng)能夠抵抗第2 節(jié)和第3 節(jié)蛇形機(jī)械臂關(guān)節(jié)鎖死產(chǎn)生的擾動(dòng),蛇形機(jī)械臂仍然能夠順利到達(dá)目標(biāo)物。在鎖死第4 節(jié)蛇形機(jī)械臂關(guān)節(jié)的實(shí)驗(yàn)中,雖然蛇形機(jī)械臂末端不能在目標(biāo)物上連續(xù)停留至少30 次,但蛇形機(jī)械臂末端在該關(guān)節(jié)鎖定的情況下仍能抵達(dá)目標(biāo)物,并且最終停留在目標(biāo)物附近。在鎖死第1 節(jié)蛇形機(jī)械臂關(guān)節(jié)的實(shí)驗(yàn)中,擾動(dòng)已經(jīng)超過(guò)了系統(tǒng)的容差。該策略只是相對(duì)有效的,因?yàn)槟繕?biāo)物已經(jīng)超出了蛇形機(jī)械臂的工作范圍。蛇形機(jī)械臂試圖接近目標(biāo),達(dá)到極限后保持不變。這些實(shí)驗(yàn)證明了我們控制策略的魯棒性。
本文在2D 平面提出了一種基于深度強(qiáng)化學(xué)習(xí)的蛇形機(jī)械臂控制策略。通過(guò)仿真實(shí)驗(yàn)表明了該方法在控制效果和魯棒性上有不錯(cuò)的表現(xiàn),同時(shí)它獨(dú)立于特定的模型,具有較高的可移植性,能夠移植到其他多自由度的機(jī)械臂上,如軟體機(jī)械臂和基于折紙機(jī)構(gòu)的連續(xù)體機(jī)械臂。
在今后的研究中,我們將添加更多的蛇形機(jī)械臂單元,考慮更多真實(shí)情況。比如避開(kāi)障礙物,完成更復(fù)雜的任務(wù)。我們還會(huì)將該方法擴(kuò)展到3D 空間的控制問(wèn)題上,并考慮使用多個(gè)蛇形機(jī)械臂協(xié)同配合完成多目標(biāo)任務(wù)。