張松林
(安徽信息工程學(xué)院 信息系,安徽 蕪湖 241000)
自20世紀(jì)中期開(kāi)始,機(jī)器人系統(tǒng)逐步得到發(fā)展。從簡(jiǎn)單的機(jī)械結(jié)構(gòu)到具有感知識(shí)別功能的智能機(jī)器人系統(tǒng),已經(jīng)在多個(gè)領(lǐng)域廣泛應(yīng)用。其中,物體抓取操作是機(jī)器人的重要功能。隨著硬件技術(shù)的不斷成熟,機(jī)器人系統(tǒng)通過(guò)傳感器實(shí)現(xiàn)環(huán)境感知,并通過(guò)智能算法的設(shè)計(jì)來(lái)實(shí)現(xiàn)物體的任意抓取。由于機(jī)器人系統(tǒng)應(yīng)用領(lǐng)域的復(fù)雜化,對(duì)機(jī)器人的控制算法提出了更高的要求。目前,工業(yè)機(jī)器人的抓取算法設(shè)計(jì)需要依賴(lài)預(yù)先建立好的物體抓取模型并整理為數(shù)據(jù)庫(kù),但對(duì)于在非結(jié)構(gòu)化的環(huán)境中進(jìn)行抓取的機(jī)器人來(lái)說(shuō),建立準(zhǔn)確的數(shù)學(xué)模型難以實(shí)現(xiàn)。因此,要建立起能夠?qū)Νh(huán)境實(shí)時(shí)預(yù)測(cè)并快速整定的抓取規(guī)劃算法。為優(yōu)化這一問(wèn)題,引入基于卷積神經(jīng)網(wǎng)絡(luò)的機(jī)器人規(guī)劃算法。機(jī)器人通過(guò)傳感器獲取的環(huán)境信息,建立對(duì)應(yīng)的抓取位姿映射關(guān)系,即通過(guò)環(huán)境模型庫(kù)來(lái)存儲(chǔ)機(jī)器人抓取經(jīng)驗(yàn),相比與傳統(tǒng)的抓取控制算法而言,基于卷積神經(jīng)網(wǎng)絡(luò)的算法可以實(shí)現(xiàn)對(duì)未知物體的抓取經(jīng)驗(yàn)遷移。
機(jī)器人物體抓取可以視為機(jī)械臂對(duì)物體表面上一組接觸點(diǎn)的施加力,以防止物體在外界擾動(dòng)下發(fā)生運(yùn)動(dòng)。為提高機(jī)器人對(duì)物體抓取的控制性能,首先,需要建立機(jī)器人物體抓取的接觸力數(shù)學(xué)模型[1]。

圖1 物體與末端執(zhí)行器接觸模型的坐標(biāo)系關(guān)系

(1)
式中,fi∈R3為機(jī)械臂在點(diǎn)ci點(diǎn)上的接觸力(N);τi∈R3為機(jī)械臂在點(diǎn)ci點(diǎn)上的接觸力矩(N/m)。由于接觸力和接觸力矩所處的維度不同,特引入?yún)?shù)ρ進(jìn)行調(diào)整,因此得式(2):
(2)
通過(guò)引入?yún)?shù)ρ可使wi的所有成分都采取力單位。確定參數(shù)ρ的方法有兩種,一種為質(zhì)心與物體間任意一點(diǎn)最遠(yuǎn)的距離,使在所抓取的物體上施加最大力矩;另一種是將參數(shù)ρ定義為回轉(zhuǎn)半徑,但該方法計(jì)算較為復(fù)雜、用途不多。接觸模型由兩個(gè)接觸面的幾何形態(tài)和材料的特性決定,并能通過(guò)接觸施加在物體上的力映射成為相對(duì)于物體的力旋量。一般情況下,定義了8種接觸模型,其中最為常用的接觸模型為有摩擦的點(diǎn)接觸模型和無(wú)摩擦的點(diǎn)接觸模型。點(diǎn)接觸模型為剛性接觸模型,即假定機(jī)械臂爪手與所抓物體都為剛體,且物體間的碰撞具有即時(shí)性和不連續(xù)性的特點(diǎn),通過(guò)系統(tǒng)在平衡碰撞后動(dòng)量變化可以推到出運(yùn)動(dòng)方程。在無(wú)摩擦的點(diǎn)接觸模型中,接觸力是沿著法向量方向作用在物體表面,而假定爪手與物體表面不變形。這兩種模型主要應(yīng)用于接觸面小且接觸面光滑的場(chǎng)景。
建立了機(jī)器人與物體之間的接觸力模型g={x,y,d,θ}后,又設(shè)計(jì)了抓取物體的卷積網(wǎng)絡(luò)模型。為提高機(jī)器人抓取物體的準(zhǔn)確性,將傳感器獲得的深度圖像作為卷積網(wǎng)絡(luò)的輸入。以全卷積的形式設(shè)計(jì)網(wǎng)絡(luò)輸出層,可以減少網(wǎng)絡(luò)的訓(xùn)練參數(shù)。為提高網(wǎng)絡(luò)底層數(shù)據(jù)的利用,本設(shè)計(jì)利用殘差單元作為網(wǎng)絡(luò)的基礎(chǔ),而對(duì)于網(wǎng)絡(luò)的輸出,進(jìn)行了歸一化的處理。卷積網(wǎng)絡(luò)模型中需要處理的參數(shù)包括抓取概率、抓取角度、抓取寬度和抓取位置,其中,抓取概率需要先將傳感器傳出的圖片進(jìn)行二進(jìn)制標(biāo)記,再對(duì)相應(yīng)區(qū)域內(nèi)的值進(jìn)行設(shè)置。機(jī)械手的抓取角度范圍為在[-90,90]之間,且設(shè)置sin2θ,cos2θ來(lái)確定抓取角度。為了保證卷積輸出層的值不超過(guò)1,在求取抓取寬度時(shí),要求深度相機(jī)二指夾持器間的最大寬度為50像素。
為保證抓取物體的穩(wěn)定性,機(jī)器手末端不應(yīng)始終垂直于物體所處于的平面。這樣有利于在抓取位置較高且圓形的物體時(shí),在很多角度下都不能準(zhǔn)確抓起物體,此時(shí)需要對(duì)物體末端的位置和姿態(tài)進(jìn)行調(diào)整,再進(jìn)行抓取。本設(shè)計(jì)基于主成分分析法進(jìn)行末端姿態(tài)調(diào)整。首先,求取接觸點(diǎn)處的法向量,將其作為末端姿態(tài)調(diào)整的一部分,具有計(jì)算精度高、計(jì)算速度快和計(jì)算時(shí)間復(fù)雜度低的特點(diǎn)。該方法的應(yīng)用原理就是通過(guò)遍歷,計(jì)算出距離目標(biāo)點(diǎn)k個(gè)歐式距離最小的點(diǎn),通過(guò)最小二乘法擬合出局部領(lǐng)域平面,再通過(guò)計(jì)算領(lǐng)域內(nèi)的協(xié)方差得到去面特性。在確定一個(gè)表面的法線(xiàn)時(shí),需要估計(jì)表面上的一個(gè)相切面的法線(xiàn),就可以將末端姿態(tài)調(diào)整問(wèn)題轉(zhuǎn)化為一個(gè)基于最小二乘法的平面擬合估計(jì)問(wèn)題。由于法線(xiàn)正負(fù)向問(wèn)題無(wú)法確定,因此,通過(guò)主成分分析法計(jì)算出的表面法向量具有二義向,在特殊情況下無(wú)法實(shí)現(xiàn)對(duì)抓取點(diǎn)法向量一致性統(tǒng)一。本文定義一個(gè)法線(xiàn)方向,并將空間中的點(diǎn)vp作為法線(xiàn)的朝向,并滿(mǎn)足:ni·(vp-pi)>0。
為保證機(jī)械爪物體抓取的實(shí)時(shí)性,需要在每個(gè)控制時(shí)刻將末端執(zhí)行器與目標(biāo)位置的圖像作為卷積層的輸入。由于卷積神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的圖像處理功能,在策略搜索算法的監(jiān)督下,通過(guò)訓(xùn)練過(guò)程調(diào)整網(wǎng)絡(luò)權(quán)重與偏置,可獲得執(zhí)行器與目標(biāo)之間的相對(duì)位置。由于機(jī)械臂的各關(guān)節(jié)信息無(wú)法通過(guò)圖像實(shí)時(shí)獲取,在搭建卷積神經(jīng)網(wǎng)絡(luò)策略時(shí),將關(guān)節(jié)角和角速度作為神經(jīng)網(wǎng)絡(luò)連接層進(jìn)行輸入。基于卷積神經(jīng)網(wǎng)絡(luò)的機(jī)械爪控制結(jié)構(gòu)如圖2所示。

圖2 基于卷積神經(jīng)網(wǎng)絡(luò)機(jī)器人控制框圖
在構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)視覺(jué)層時(shí),為保證對(duì)圖像中特征的及時(shí)重組,對(duì)輸入圖像進(jìn)行處理后,在視覺(jué)層的最后加入一層全連接層,同時(shí)還可降低圖像特征的維度,并對(duì)圖像特征的數(shù)值進(jìn)行縮放,使其與機(jī)械臂關(guān)節(jié)狀態(tài)的數(shù)值相近。電機(jī)控制層的輸入為視覺(jué)層輸出的圖像特征和關(guān)節(jié)狀態(tài)信息,通過(guò)兩層全連接層對(duì)擬合策略搜索控制器,電機(jī)控制層后由卷積神經(jīng)網(wǎng)絡(luò)輸出該時(shí)刻的關(guān)節(jié)控制量。在電機(jī)控制層設(shè)計(jì)過(guò)程中,若直接將特征圖與關(guān)節(jié)狀態(tài)信息進(jìn)行組合,由于相機(jī)圖像的特征數(shù)量過(guò)于龐大,會(huì)發(fā)生卷積神經(jīng)網(wǎng)絡(luò)控制策略無(wú)法收斂的問(wèn)題,使關(guān)節(jié)狀態(tài)信息被提取的特征被淹沒(méi),進(jìn)而很難獲取輸入特征與關(guān)節(jié)控制量之間準(zhǔn)確的映射關(guān)系。為解決上述問(wèn)題,在進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)視覺(jué)層設(shè)計(jì)時(shí),增加一個(gè)全連接層。該方法一方面可以有效降低電機(jī)控制層的輸入維度,保證了關(guān)節(jié)狀態(tài)信息不被淹沒(méi);另一方面,卷積層輸出的特征圖在經(jīng)過(guò)全連接層后會(huì)下降,并與關(guān)節(jié)狀態(tài)信息的數(shù)量上較為匹配,使卷積神經(jīng)網(wǎng)絡(luò)在隨機(jī)梯度下降時(shí)能更好優(yōu)化電機(jī)控制層的相關(guān)參數(shù)。
卷積神經(jīng)網(wǎng)絡(luò)的損失函數(shù)是評(píng)價(jià)網(wǎng)絡(luò)輸出結(jié)果優(yōu)劣的重要指標(biāo)。損失函數(shù)設(shè)計(jì)直接決定卷積神經(jīng)網(wǎng)絡(luò)各層權(quán)重與偏置的優(yōu)化方向,進(jìn)而影響卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練后的泛化能力。本設(shè)計(jì)中的損失函數(shù),是為了保證在策略搜索算法監(jiān)督下進(jìn)行網(wǎng)絡(luò)訓(xùn)練,既可以保證完成規(guī)定的放置任務(wù),也對(duì)陌生物體抓取產(chǎn)生一定的是影響。在訓(xùn)練過(guò)程中,卷積神經(jīng)網(wǎng)絡(luò)算法能使受訓(xùn)的機(jī)械系統(tǒng)向提供監(jiān)督的機(jī)械控制器方向進(jìn)行規(guī)范,保證該系統(tǒng)的控制效果,使視覺(jué)層、電機(jī)控制層的優(yōu)化具有較好的泛化能力。在進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)函數(shù)設(shè)計(jì)時(shí),可以從相似度的KL散度項(xiàng)和L2正則化項(xiàng)兩個(gè)方向同時(shí)展開(kāi),其中,KL散度項(xiàng)主要反映卷積神經(jīng)網(wǎng)絡(luò)控制策略與機(jī)械臂控制器兩者之間的相似程度,而L2正則化項(xiàng)的主要功能,是防止數(shù)據(jù)發(fā)生過(guò)度擬合的問(wèn)題。在設(shè)計(jì)損失函數(shù)前,首先假定優(yōu)化的神經(jīng)網(wǎng)絡(luò)處于多元高斯分布的情況下,實(shí)現(xiàn)與策略搜索算法后控制值輸出的線(xiàn)性形式的多元高斯分布的均值處于相同區(qū)域,從而保證了KL散度可以準(zhǔn)確描述卷積神經(jīng)網(wǎng)絡(luò)控制策略與機(jī)械臂控制器兩者之間的相似程度。損失函數(shù)設(shè)計(jì)的第二部分是L2正則化項(xiàng),其設(shè)計(jì)思路是使卷積神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣元素都處于較小,以避免數(shù)據(jù)發(fā)生過(guò)度擬合的問(wèn)題。通過(guò)在實(shí)際數(shù)據(jù)中對(duì)權(quán)重衰減系數(shù)進(jìn)行檢驗(yàn),最后將其取值為0.005。此外,分析所設(shè)計(jì)的損失函數(shù)后發(fā)現(xiàn),由于協(xié)方差矩陣的跡項(xiàng)和對(duì)數(shù)項(xiàng)中都不包括卷積神經(jīng)網(wǎng)絡(luò)策略的實(shí)際輸出數(shù)據(jù),因此,在利用反向傳播的方法求取損失函數(shù)時(shí),輸入梯度時(shí)以上協(xié)方差項(xiàng)不會(huì)影響到神經(jīng)網(wǎng)絡(luò)權(quán)重以及偏置的更新,在計(jì)算損失函數(shù)時(shí)可以對(duì)其進(jìn)行忽略?;谏鲜龅目紤],設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)策略最終的損失函數(shù)為:
訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)時(shí),保證控制器控制效果的重要內(nèi)容,是在正式訓(xùn)練開(kāi)始前,對(duì)卷積神經(jīng)網(wǎng)絡(luò)的視覺(jué)層進(jìn)行預(yù)訓(xùn)練。這樣既可以在一定程度上縮短網(wǎng)絡(luò)的訓(xùn)練時(shí)間,使神經(jīng)網(wǎng)絡(luò)各層的權(quán)重和偏置都能在正式訓(xùn)練之前得到較好的初始化,也能避免在訓(xùn)練過(guò)程中局部最優(yōu)解的結(jié)果。本文選取遷移學(xué)習(xí)的方法,以實(shí)現(xiàn)對(duì)卷積神經(jīng)網(wǎng)絡(luò)的預(yù)訓(xùn)練。該方法可以有效簡(jiǎn)化卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)過(guò)程中的步驟和難度。在對(duì)卷積神經(jīng)網(wǎng)絡(luò)電機(jī)控制層進(jìn)行訓(xùn)練時(shí),需要對(duì)該層參數(shù)進(jìn)行初始訓(xùn)練,避免在預(yù)訓(xùn)練后的正式訓(xùn)練時(shí)造成數(shù)據(jù)的大量丟失。本文采取端對(duì)端訓(xùn)練方法,使卷積神經(jīng)網(wǎng)絡(luò)可以滿(mǎn)足機(jī)械手對(duì)于物體抓取的準(zhǔn)確性和穩(wěn)定性,并完成對(duì)初次探取物品放置位姿的適應(yīng)性。在正式進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)策略設(shè)計(jì)過(guò)程中,需要設(shè)計(jì)有效的策略搜索監(jiān)督算法來(lái)保證訓(xùn)練結(jié)果的準(zhǔn)確性[3],使得受訓(xùn)的卷積神經(jīng)網(wǎng)絡(luò)具有良好的泛化能力。考慮到上述的卷積神經(jīng)網(wǎng)絡(luò)策略訓(xùn)練要求,在進(jìn)行正式訓(xùn)練和測(cè)試過(guò)程中,將物品的放置任務(wù)都限制在規(guī)定的正方形區(qū)域中。本實(shí)驗(yàn)設(shè)計(jì)了邊長(zhǎng)為38cm的正方形,從而避免進(jìn)入到較大區(qū)域。一方面是考慮到卷積神經(jīng)網(wǎng)絡(luò)泛化能力提升的需求;另一方面是考慮對(duì)網(wǎng)絡(luò)深度和采樣位置以及數(shù)量的提升要求。該方法經(jīng)過(guò)試驗(yàn)驗(yàn)證后發(fā)現(xiàn),它有效優(yōu)化了卷積神經(jīng)網(wǎng)絡(luò)策略的訓(xùn)練時(shí)間以及對(duì)神經(jīng)網(wǎng)絡(luò)參數(shù)調(diào)整時(shí)間,機(jī)器人在進(jìn)行物品放置過(guò)程中對(duì)面積的要求也具有較好的適應(yīng)性能。在卷積神經(jīng)網(wǎng)絡(luò)策略正式訓(xùn)練過(guò)程中,電機(jī)控制層參數(shù)的差異會(huì)導(dǎo)致卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練的初始階段因參數(shù)梯度過(guò)大,使卷積神經(jīng)網(wǎng)絡(luò)的各層權(quán)重與偏置都處于大幅度的更新?tīng)顟B(tài),并引起卷積神經(jīng)網(wǎng)絡(luò)視覺(jué)層在參數(shù)更新過(guò)程中所挖掘的特征信息會(huì)大量丟失的問(wèn)題。本文引入的視覺(jué)層參數(shù)的預(yù)訓(xùn)練以及電機(jī)控制層參數(shù)的初始化,就可以有效解決上述問(wèn)題。在對(duì)卷積神經(jīng)網(wǎng)絡(luò)的電機(jī)控制層進(jìn)行相應(yīng)訓(xùn)練時(shí),需要固定卷積神經(jīng)網(wǎng)絡(luò)視覺(jué)層的參數(shù),并根據(jù)訓(xùn)練位置所獲得的數(shù)據(jù)采樣信息,基于隨機(jī)梯度下降理論的方法,對(duì)卷積神經(jīng)網(wǎng)絡(luò)的電機(jī)控制層參數(shù)進(jìn)行更新和迭代。
傳統(tǒng)的工業(yè)機(jī)器人的抓取算法設(shè)計(jì),主要依賴(lài)預(yù)先建立起來(lái)的物體抓取模型并整理為數(shù)據(jù)庫(kù)。對(duì)于倉(cāng)儲(chǔ)物流、家庭服務(wù)等非結(jié)構(gòu)化的應(yīng)用環(huán)境進(jìn)行抓取的機(jī)器人來(lái)說(shuō),建立準(zhǔn)確的數(shù)學(xué)模型難以實(shí)現(xiàn)。這就要求在控制器中建立一個(gè)能夠?qū)Νh(huán)境實(shí)時(shí)預(yù)測(cè)并快速整定的抓取規(guī)劃算法。為解決該問(wèn)題,本文設(shè)計(jì)了基于卷積神經(jīng)網(wǎng)絡(luò)的機(jī)器人規(guī)劃算法。該方法是指實(shí)時(shí)采集機(jī)器人通過(guò)傳感器獲取的環(huán)境信息,建立對(duì)應(yīng)的抓取位姿映射關(guān)系,即通過(guò)環(huán)境模型庫(kù)來(lái)存儲(chǔ)機(jī)器人抓取經(jīng)驗(yàn),與傳統(tǒng)的抓取控制算法而言基于卷積神經(jīng)網(wǎng)絡(luò)的算法相比,這個(gè)方法可以實(shí)現(xiàn)對(duì)未知物體的抓取經(jīng)驗(yàn)遷移。卷積神經(jīng)網(wǎng)絡(luò)的實(shí)用性主要依靠對(duì)網(wǎng)絡(luò)的訓(xùn)練效果,而卷積神經(jīng)網(wǎng)絡(luò)又受到多種因素的直接影響,本文引入的視覺(jué)層參數(shù)的預(yù)訓(xùn)練以及電機(jī)控制層參數(shù)的預(yù)初始化,提高了卷積神經(jīng)網(wǎng)絡(luò)的控制效果,建立完整的機(jī)器人自動(dòng)抓取規(guī)劃系統(tǒng),并通過(guò)實(shí)踐,驗(yàn)證了自動(dòng)抓取規(guī)劃方法是可行的。