李喜龍
(西安文理學(xué)院 機(jī)械與材料工程學(xué)院,西安 710065)
機(jī)器人機(jī)械臂在工作時(shí)的運(yùn)動軌跡過多,為了減少損耗,使機(jī)器人機(jī)械臂壽命延長,并且減少運(yùn)動時(shí)間,提高工作效率,研究基于雙目視覺的機(jī)器人機(jī)械臂運(yùn)動軌跡自動化檢測。
目前國內(nèi)對于此方面的研究有很多,如文獻(xiàn)[1]研究通過和聲搜索對遺傳算法種群完成初始化,通過遺傳算法種群進(jìn)化過程中的離散度來確定交叉和變異的順序,使用自適應(yīng)與非線性方法使和聲遺傳算法有更好的速度與搜索能力,從而達(dá)到機(jī)械臂運(yùn)動軌跡的最優(yōu)檢測,此方法雖然安全的完成機(jī)械臂最優(yōu)運(yùn)動軌跡檢測,但其速度過慢,導(dǎo)致工作效率太低;文獻(xiàn)[2]研究使用Q-learning 算法對機(jī)械臂的動作集合進(jìn)行構(gòu)建,通過空間移動中最小距離原則,計(jì)算出偏差最低的機(jī)械臂運(yùn)動軌跡,實(shí)現(xiàn)機(jī)械臂運(yùn)動軌跡規(guī)劃,此方法雖然實(shí)現(xiàn)了機(jī)械臂運(yùn)動軌跡規(guī)劃檢測,但其安全性較低,容易出現(xiàn)檢測錯(cuò)誤,使機(jī)械臂發(fā)生碰撞;文獻(xiàn)[3]研究通過使用五次多項(xiàng)式插值對機(jī)械臂軌跡模型進(jìn)行構(gòu)建,利用自適應(yīng)變換蝙蝠算法實(shí)現(xiàn)以時(shí)間為目標(biāo)的最優(yōu)機(jī)械臂運(yùn)動軌跡檢測,但此方法檢測軌跡時(shí)考慮的目標(biāo)過于單一,導(dǎo)致可能錯(cuò)過更好的機(jī)械臂運(yùn)動軌跡。
雙目視覺多用于機(jī)械臂或機(jī)器人工作中對物體進(jìn)行識別與定位[4]。為此本文研究基于雙目視覺的機(jī)器人機(jī)械臂運(yùn)動軌跡自動化檢測,獲取最佳機(jī)械臂運(yùn)動軌跡,使其在工作中發(fā)揮最大作用。
本文通過顏色、屬性來對機(jī)器人機(jī)械臂的抓取目標(biāo)進(jìn)行識別。通過平行光軸理論建立立體視覺模型,使用該模型對機(jī)器人機(jī)械臂的抓取目標(biāo)的顏色信息進(jìn)行提取,對提取后的結(jié)果使用HSV 閾值分割,從而獲取機(jī)器人機(jī)械臂的抓取目標(biāo)的三維坐標(biāo)。
1.1.1 基于平行光軸的立體視覺模型
本文的立體視覺模型是使用2 個(gè)互相平行的攝像頭組成立體攝像機(jī)[5]。通過該模型對同一場景的機(jī)器人機(jī)械臂抓取目標(biāo)圖像進(jìn)行捕獲,模型圖如圖1 所示。
圖1 立體視覺模型圖Fig.1 Stereo vision model
圖1 中,左右攝像機(jī)的焦距表達(dá)為b;極限距離表達(dá)為f;世界坐標(biāo)系中目標(biāo)的坐標(biāo)值表達(dá)為P(xp);左攝像頭的成像平面為l1,同理右攝像頭的成像平面表達(dá)為l2。其中左右攝像頭的光軸垂直與圖像平面,且左右2 個(gè)光軸相互平行。
因?yàn)椤鱌OF2與△Pl1l2相似,所以可得世界坐標(biāo)系中機(jī)器人機(jī)械臂抓取目標(biāo)的坐標(biāo)值,表達(dá)為
1.1.2 基于HSV 模型的抓取目標(biāo)三維坐標(biāo)獲取
在機(jī)器人機(jī)械臂抓取目標(biāo)識別時(shí),合適的顏色空間很重要[6],本文使用HSV 模型對雙目立體視覺模型所獲取的機(jī)器人機(jī)械臂抓取目標(biāo)進(jìn)行識別,從而獲取目標(biāo)的三維坐標(biāo)。對機(jī)器人機(jī)械臂抓取目標(biāo)圖像的像素點(diǎn)進(jìn)行轉(zhuǎn)換,使其變成HSV 值,目標(biāo)物體的HSV 閾值信心使用離線學(xué)習(xí)進(jìn)行記錄,通過提取閾值信息獲得目標(biāo)區(qū)域,利用左右攝像頭獲取圖像的位置偏差來計(jì)算機(jī)器人機(jī)械臂抓取目標(biāo)物體的三維坐標(biāo)。
在機(jī)械臂的工作路徑被路徑點(diǎn)約束時(shí),利用NURBS曲線對機(jī)械臂關(guān)節(jié)進(jìn)行曲線插值[7]。NURBS 曲線表達(dá)式為
式中:Ni,k(u)為曲線基函數(shù),k 為次數(shù)的表達(dá),通常是3 次或5 次,本文是使用5 次,權(quán)因子與參變量分別表達(dá)為ω 與u;插值所需的個(gè)數(shù)表達(dá)為n;di為曲線反求的控制頂點(diǎn),n 與di的數(shù)目相同,樣條曲線的節(jié)點(diǎn)U 表達(dá)為
令u0=u1=…=uk=0,un+1=…=un+k+1=1,其中包含n-k 個(gè)節(jié)點(diǎn)向量,因?yàn)椴煌南蛄看_定方法會使曲線的控制效果產(chǎn)生波動,導(dǎo)致曲線形狀不同,所以本文使用累積弦長參數(shù)化方法對機(jī)械臂節(jié)點(diǎn)向量進(jìn)行確定[8]。選擇DeBoor-Cox 遞推式:
當(dāng)ωi為1 時(shí),曲線是B 樣條曲線。通過笛卡爾空間路徑規(guī)劃對機(jī)械臂工作路徑進(jìn)行空間映射[9],使空間坐標(biāo)變成平面坐標(biāo),表達(dá)式為
通過式(5),使三維空間點(diǎn)映射成二維平面,使機(jī)械臂與抓取目標(biāo)物體可以使用坐標(biāo)形式進(jìn)行表達(dá),將機(jī)械臂與抓取目標(biāo)物體的坐標(biāo)代入到NURBS曲線函數(shù)中,其表現(xiàn)形式為
通過對曲線進(jìn)行求導(dǎo),得到曲線的速度與加速度等,從而對NURBS 曲線的高階平滑性進(jìn)行驗(yàn)證。
U 為已知節(jié)點(diǎn)矢量,若是想讓NURBS 曲線在反算控制點(diǎn)的同時(shí)順利的通過型值點(diǎn),則:
式中:控制頂點(diǎn)與時(shí)間節(jié)點(diǎn)分別表達(dá)為di與uk;曲線要經(jīng)過的極值點(diǎn)表達(dá)為Qk。根據(jù)控制頂點(diǎn)的計(jì)算規(guī)則可以發(fā)現(xiàn),求解方程數(shù)與控制點(diǎn)要相同,由于目前的方程式只有n-1 個(gè),所以需在方程式中引入約束方程:
式(8)是約束曲線的最后一個(gè)型值點(diǎn)與第一的控制點(diǎn)相等的表達(dá),且將0 設(shè)為初速度與加速度。
通過5 次NURBS 曲線差值獲取各機(jī)械臂關(guān)節(jié)的運(yùn)動曲線,實(shí)現(xiàn)機(jī)器人機(jī)械臂運(yùn)動軌跡自動化檢測。
用于衡量機(jī)械臂工作效率的工作時(shí)間T、用于衡量機(jī)械臂能耗的關(guān)節(jié)的加速度f2′與用于衡量機(jī)械臂平滑程度的關(guān)節(jié)的平均躍度f3′三個(gè)性能指標(biāo)均最小,建立機(jī)器人機(jī)械臂軌跡優(yōu)化目標(biāo)函數(shù):
式中:am為機(jī)械臂關(guān)節(jié)加速度的表達(dá);jm為機(jī)械臂躍度的表達(dá)。
以機(jī)械臂工作時(shí)間、機(jī)械臂關(guān)節(jié)平均躍度與機(jī)械臂關(guān)節(jié)加速度為目標(biāo),運(yùn)動學(xué)約束為機(jī)械臂各關(guān)節(jié)工作運(yùn)動時(shí)的約束條件,通過遺傳算法求出機(jī)械臂運(yùn)動軌跡優(yōu)化的最優(yōu)解[10]。本文遺傳算法的步驟大致為以下幾個(gè)步驟:
(2)根據(jù)公式(12)對n+2 個(gè)機(jī)械臂關(guān)節(jié)控制點(diǎn)進(jìn)行計(jì)算:
(4)為了得到B 樣條函數(shù),對基因碼中與染色體相應(yīng)的時(shí)間控制點(diǎn)進(jìn)行計(jì)算。
(5)對染色體相應(yīng)的角速度與加速度等的變化量和機(jī)械臂關(guān)節(jié)力矩的約束范圍進(jìn)行判斷。
(6)按大小規(guī)律對個(gè)體的適應(yīng)度值進(jìn)行排序,個(gè)體的性能由適應(yīng)度值的大小來決定,性能好的個(gè)體其適應(yīng)度值更大。
(7)選擇一個(gè)最好的適應(yīng)度值作為父代個(gè)體。
(8)通過自適應(yīng)遺傳算法來對子個(gè)體進(jìn)行選擇。設(shè)置閾值為種群的平均適應(yīng)度值favg,從種群中將適應(yīng)度值大于閾值的個(gè)體篩選出來作為子個(gè)體。
(9)進(jìn)行交叉與變異操作。
(10)對下一代新種群進(jìn)行組建。
(11)先對子個(gè)體的最大適應(yīng)度值進(jìn)行計(jì)算,其次對父代種群個(gè)體與子個(gè)體兩者的適應(yīng)度值大小進(jìn)行判斷,在父代種群的個(gè)體中選擇一個(gè)比子代種群的最大適應(yīng)值大的個(gè)體,用其替換子種群中染色體差的個(gè)體。
(12)如果結(jié)束條件得到滿足,則迭代停止,輸出機(jī)械臂運(yùn)動軌跡優(yōu)化的最優(yōu)解;反之,回到步驟(4)迭代繼續(xù),直到結(jié)果收斂到最優(yōu)。
具體過程如圖2 所示。從圖2 可知通過遺傳算法獲取滿足約束條件的工作時(shí)間最短、平均躍度最小、關(guān)節(jié)的加速度最低的機(jī)械臂運(yùn)動軌跡優(yōu)化結(jié)果。
以某機(jī)械臂為實(shí)驗(yàn)對象,機(jī)械臂總高35 cm,可活動范圍為以自身為中心的50 cm,擁有多個(gè)關(guān)節(jié)與一個(gè)機(jī)械手用來抓取物料,使用本文方法對機(jī)械臂抓取一個(gè)物料的運(yùn)動軌跡進(jìn)行自動化最優(yōu)檢測,具體效果如圖3 所示。根據(jù)圖3 可以看出,本文方法成功對機(jī)械臂抓取物料的運(yùn)動軌跡進(jìn)行最優(yōu)規(guī)劃,從而實(shí)現(xiàn)機(jī)械臂的物料精準(zhǔn)抓取,證明了本文方法的有效性。
圖3 機(jī)械臂運(yùn)動軌跡規(guī)劃效果圖Fig.3 Effect diagram of motion trajectory planning of mechanical arm
一般情況下B 樣線條都是基于3 次或5 次,實(shí)驗(yàn)分析基于3 次的B 樣線條與基于5 次的B 樣線條對于NURBS 曲線的影響,具體如圖4 所示。根據(jù)圖4 可以看出機(jī)械臂關(guān)節(jié)3 次NURBS 插值曲線的位移曲線較為平滑,但其余曲線的突變明顯,機(jī)械臂關(guān)節(jié)5 次NURBS 插值的所有曲線都比機(jī)械臂關(guān)節(jié)3 次NURBS 插值的曲線平滑,說明5 次NURBS插值既對軌跡的精度進(jìn)行了很好的保證,又使加速度與加加速度的平滑性與連續(xù)性更好,使機(jī)械臂在平穩(wěn)抓取物料的同時(shí),振動減少,如此一來可以使機(jī)械臂的使用壽命大大延長。
圖4 機(jī)械臂關(guān)節(jié)NURBS 插值曲線對比Fig.4 Comparison of NURBS interpolation curves of robotic arm joints
實(shí)驗(yàn)分析使用本文方法進(jìn)行機(jī)器人機(jī)械臂運(yùn)動軌跡優(yōu)化前后,械臂運(yùn)動軌跡結(jié)果,具體效果如圖5 所示。并統(tǒng)計(jì)機(jī)械臂運(yùn)動軌跡優(yōu)化前后的性能指標(biāo),結(jié)果如表1 所示。結(jié)合圖5 和表1 可以看出,相較于優(yōu)化前,使用本文方法進(jìn)行機(jī)器人機(jī)械臂運(yùn)動軌跡優(yōu)化后,獲取的機(jī)器人機(jī)械臂運(yùn)動軌跡更佳,時(shí)間、加速度、平均躍度均有所降低,表明運(yùn)動軌跡優(yōu)化后,機(jī)械臂運(yùn)動效率提升,機(jī)械臂關(guān)節(jié)能耗降低、關(guān)節(jié)運(yùn)動平滑性提升。實(shí)驗(yàn)結(jié)果說明了本文方法的應(yīng)用可提升對機(jī)械臂運(yùn)動軌跡的規(guī)劃效果。
表1 優(yōu)化前后性能指標(biāo)對比Tab.1 Comparison of performance indicators before and after optimization
圖5 機(jī)械臂運(yùn)動軌跡檢測最優(yōu)結(jié)果Fig.5 Optimal results of robotic arm motion trajectory detection
實(shí)驗(yàn)分析本文方法對目標(biāo)物體定位的準(zhǔn)確性。設(shè)置不同的5 組物料,每組2 個(gè)物料,通過本文方法對其定位,為了對目標(biāo)的準(zhǔn)確性進(jìn)行驗(yàn)證,使用多目標(biāo)物測距方法對實(shí)驗(yàn)結(jié)果進(jìn)行驗(yàn)證,具體數(shù)據(jù)如表2 所示。通過表2 可以看出,本文方法利用雙目視覺進(jìn)行目標(biāo)物體定位的誤差在0.37%~1.3%之中,誤差很小,可以此為依據(jù)進(jìn)行機(jī)器人機(jī)械臂運(yùn)動軌跡規(guī)劃。
表2 多組物料多目標(biāo)物測距結(jié)果Tab.2 Results of multi-group material and multi-object ranging
本文使用雙目視覺對目標(biāo)圖像進(jìn)行獲取,使用目標(biāo)圖像更加準(zhǔn)確清晰,可以使HSV 模型所獲得的目標(biāo)物體三維坐標(biāo)更加精準(zhǔn),從而使機(jī)械臂運(yùn)動軌跡檢測的最終結(jié)果更加精確,減少出錯(cuò)率。實(shí)驗(yàn)驗(yàn)證了本文方法的有效性與準(zhǔn)確性,可有效規(guī)劃機(jī)械臂運(yùn)動軌跡,助力其更好地完成工作。