溫劍鋒
(廣西建設(shè)職業(yè)技術(shù)學(xué)院信息工程系,南寧530007)
近年來,隨著政府提出“中國制造2025”計(jì)劃,工業(yè)產(chǎn)業(yè)的持續(xù)升級(jí)引起工業(yè)生產(chǎn)中的先進(jìn)技術(shù)發(fā)生極大的改變。越多越多工業(yè)生產(chǎn)都開始引入機(jī)器人進(jìn)行勞作,如物流行業(yè)、焊接行業(yè)、包裝行業(yè)、物料搬運(yùn)等[1],機(jī)器人開始慢慢取代工人進(jìn)行生產(chǎn),這不僅使企業(yè)提高了生產(chǎn)效率,也降低了生產(chǎn)成本。傳統(tǒng)的機(jī)器人工作,都是由工程師設(shè)計(jì)一條固定的路線,機(jī)器人沿著設(shè)計(jì)路線重復(fù)運(yùn)動(dòng),實(shí)現(xiàn)高效的工作。
計(jì)算機(jī)視覺是人工智能技術(shù)的一個(gè)重要分支,它通過攝相機(jī)將拍攝的相片傳入電腦,使用模式識(shí)別技術(shù)、圖像處理技術(shù)等對(duì)所拍圖片進(jìn)行特征分類與識(shí)別,最終實(shí)現(xiàn)對(duì)目標(biāo)的識(shí)別與定位。該技術(shù)目前已經(jīng)在無人駕駛、物流等行車廣泛應(yīng)用。對(duì)此,基于機(jī)器視覺的機(jī)器人的應(yīng)用越來越多。哈工大設(shè)計(jì)的雙目視覺足球機(jī)器可以依靠雙目視覺系統(tǒng)實(shí)現(xiàn)自動(dòng)導(dǎo)航[2]。華中科技大學(xué)開發(fā)出了基于視覺的分揀可精確抓取指定物體[3]。
然而,在復(fù)雜多變的情況下勞作時(shí),機(jī)器人并不能精確識(shí)別物體,導(dǎo)致系統(tǒng)不能正常工作。針對(duì)上述情況,本文將人工智能技術(shù)與機(jī)器人相結(jié)合,開發(fā)一套視覺目標(biāo)定位系統(tǒng),使機(jī)器人能適應(yīng)復(fù)雜情況的目標(biāo)識(shí)別與定位,減少工業(yè)生產(chǎn)過程中機(jī)器人的錯(cuò)誤率,提高生產(chǎn)效率。
位姿即位置與姿態(tài),位姿可以精確描述機(jī)器人所處的狀態(tài)。其中坐標(biāo)分為x、y、z三個(gè)方向,姿態(tài)是機(jī)器人分別與x、y、z軸三個(gè)方向夾角rx、ry、rz。機(jī)器人所處的位置均可以使用坐標(biāo)與姿態(tài)進(jìn)行描述,即(x,y,z,rx,ry,rz)。假設(shè)基本坐標(biāo)系為OXYZ,機(jī)器人所處的坐標(biāo)系為O’X’Y’Z’,機(jī)器人的姿態(tài)可以由如下矩陣組成R。機(jī)器人的運(yùn)動(dòng)過程可以通過齊次坐標(biāo)和齊次矩陣進(jìn)行精準(zhǔn)定位。
本文選擇的是六自由度機(jī)器人RoboArm-II,它由博創(chuàng)公司開發(fā),具有6個(gè)自由度串聯(lián)型的機(jī)械臂。使用6自由度機(jī)器臂,機(jī)器人可以靈活、精確地按指定軌跡進(jìn)行運(yùn)動(dòng),能夠適應(yīng)不同空間和位置的作業(yè)任務(wù),完成例如工業(yè)焊接、快遞分揀等任務(wù)。它的6個(gè)關(guān)節(jié)構(gòu)成的參數(shù)如下:DOF2、DOF3、DOF5這個(gè)三關(guān)節(jié)用來做俯仰運(yùn)動(dòng),DOF1、DOF4用來做旋轉(zhuǎn)運(yùn)動(dòng),DOF6用于安裝機(jī)械手,用來吸取或抓取物體。6個(gè)關(guān)節(jié)的參數(shù)如表1所示,6個(gè)關(guān)節(jié)分布如圖1所示。
表1 6個(gè)關(guān)節(jié)的參數(shù)
圖1 6個(gè)關(guān)節(jié)分布圖
本文使用Kinect v2攝像機(jī),該攝相機(jī)是微軟于2015年生產(chǎn),它由三部分構(gòu)成:color camera、IR projec?tor、IR camera。相機(jī)有彩色攝相頭和紅外線攝相頭,它們分別支持1280×960分辨率、640×480分辨率。彩色攝相頭可以讀取GRB格式圖像和深度圖像,紅外紅攝頭用來讀取深度圖像。相機(jī)包含四個(gè)麥克風(fēng),對(duì)聲音也擁有探知能力。使用該相機(jī)采集的圖像是非常適合機(jī)器學(xué)習(xí)中使用。相機(jī)在拍攝物體圖像時(shí),向物體發(fā)射紅外線,根據(jù)接收器返回來的光脈沖時(shí)間差可以計(jì)算機(jī)攝相頭與物體的距離。這款相機(jī)的計(jì)算精度非常高,在很多場景得到廣泛應(yīng)用。
Java是一種面向?qū)ο蟮目缙脚_(tái)語言,其具有編程簡單、安全性高、支持多線程等特點(diǎn),誕生以來就非常受歡迎,近幾年長期占據(jù)最受歡迎語言榜首,尤其移動(dòng)互聯(lián)網(wǎng)快速發(fā)展的時(shí)期,Java的應(yīng)用前景更加廣闊。由于Java具備很多優(yōu)勢,工程師們?yōu)榱私档烷_發(fā)成本及代碼維護(hù)的復(fù)雜性,開發(fā)了Spring開源框架,它使用了Java的動(dòng)態(tài)代理和反射機(jī)制。
本文使用基于Torch的機(jī)器學(xué)習(xí)框架。Torch框架在大規(guī)模機(jī)器學(xué)習(xí)方面受到廣泛應(yīng)用,尤其是在圖像或視頻領(lǐng)域。Torch7希望像MATLAB這樣,能夠?yàn)闄C(jī)器學(xué)習(xí)搭建一個(gè)較好的開發(fā)平臺(tái)。Torch支持大規(guī)模的模擬訓(xùn)練,并且可以在將代碼轉(zhuǎn)移到GPU上實(shí)行并行運(yùn)算,加快程序計(jì)算效率。Torch能一直保持簡單、靈活、高效等目標(biāo),在極其復(fù)雜的神經(jīng)網(wǎng)絡(luò)方面仍然能保持強(qiáng)大靈活性和高效并行性。Torch具有如下特點(diǎn):支持多維數(shù)組操作、支持GPU計(jì)算、支持常見線性代數(shù)計(jì)算、可移植到IOS或Android平臺(tái)等。
本節(jié)主要詳細(xì)介紹視覺目標(biāo)定位系統(tǒng)的開發(fā)過程。系統(tǒng)總體功能主要有:視覺處理、拍照處理、機(jī)械臂與目標(biāo)之間的通信處理、界面設(shè)計(jì)等。主要使用的技術(shù)包括用Torch模型進(jìn)行視覺處理,用Python實(shí)現(xiàn)機(jī)械臂與視覺部分進(jìn)行通信,用Java相關(guān)技術(shù)開發(fā)服務(wù)端界面,用C++實(shí)現(xiàn)拍照部分的信息處理。視覺目標(biāo)定位的機(jī)械手臂的工作原理如圖2所示:首先使用Kinect相機(jī)拍大量的圖片作為實(shí)驗(yàn)圖片集,然后使用機(jī)器學(xué)習(xí)技術(shù)對(duì)這些圖片進(jìn)行訓(xùn)練,得到訓(xùn)練模型,接著計(jì)算Kinect拍攝的圖片以獲得較精準(zhǔn)目標(biāo)位置,之后將這些目標(biāo)位置信息轉(zhuǎn)成可計(jì)算的坐標(biāo)系,最后將坐標(biāo)系信息傳統(tǒng)機(jī)械手,最終實(shí)現(xiàn)精確的抓取,如此反復(fù)循環(huán)即可實(shí)現(xiàn)重復(fù)的抓取操作。
視覺處理模塊的功能分為神經(jīng)網(wǎng)絡(luò)模型、ResNet結(jié)構(gòu)、圖片的標(biāo)注。神經(jīng)網(wǎng)絡(luò)模型主要使用ResNet神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。該結(jié)構(gòu)簡單、實(shí)用,在人工智能與模式識(shí)別領(lǐng)域中的圖片識(shí)別、分割等方面受到廣泛應(yīng)用,即使在多層次的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中依然能得到較準(zhǔn)確的訓(xùn)練模型。ResNet的結(jié)構(gòu)如圖3所示。
圖2 機(jī)械手的工作原理圖
圖3 ResNet神經(jīng)網(wǎng)絡(luò)核心結(jié)構(gòu)
在使用ResNet結(jié)構(gòu)訓(xùn)練模型的時(shí)候,為了減少計(jì)算參數(shù),往往需要ResNet進(jìn)行變換,將卷積進(jìn)行降維處理,加快訓(xùn)練速度。本文的訓(xùn)練模型的初始數(shù)據(jù)主要通過拍攝獲取,本文的訓(xùn)練模型共有5000張圖片,每一張圖片使用標(biāo)注工具做了標(biāo)注處理。標(biāo)注前后的圖片如圖4所示。
圖4 標(biāo)注前后的圖片
該模型主要使用Kinect v2攝像機(jī),微軟為這款相機(jī)配備了專門的驅(qū)動(dòng)程序方便用戶使用和進(jìn)行開發(fā)。在使用Kinect相機(jī)進(jìn)行圖片處理之前,需要在操作系統(tǒng)上安裝機(jī)器人控制系統(tǒng)。這個(gè)系統(tǒng)可以控制Kinect相機(jī)拍照。每拍照一次都會(huì)自動(dòng)生成三張圖片和一個(gè)點(diǎn)云數(shù)據(jù)。機(jī)器人每做一次抓取操作,機(jī)器人控制系統(tǒng)都將指令發(fā)送到相應(yīng)API接口,以保證系統(tǒng)循環(huán)重復(fù)地工作。
因?yàn)閮赡K之間分別由不同的電腦控制,為了實(shí)現(xiàn)兩模塊之間能正常通信,需要將電腦連接到同一個(gè)局域網(wǎng)上,并選擇Socket通信協(xié)議。此外,為了保證通信,還需要將機(jī)械臂坐標(biāo)系與視覺系統(tǒng)的坐標(biāo)系與深度相機(jī)的坐標(biāo)系進(jìn)行轉(zhuǎn)化匹配。坐標(biāo)系之間轉(zhuǎn)換矩陣公式(2)、公式(3)所示:
其中,A為視覺目標(biāo)矩陣,B為機(jī)械臂矩陣,X為轉(zhuǎn)換矩陣。
前幾節(jié)做了基于人工智能的視覺目標(biāo)定位系統(tǒng)的詳細(xì)介紹,本節(jié)主要對(duì)本系統(tǒng)的開發(fā)環(huán)境以及實(shí)驗(yàn)結(jié)合做分析。本系統(tǒng)的硬件環(huán)境為;Windows 10、CPU In?tel i7-10700F、顯卡NVIDIA GTX1660Ti、硬盤2T、內(nèi)存16G、相機(jī)Kinect v2,軟件環(huán)境:MATLAB開發(fā)軟件、Py?thon語言、Torch框架等。測試過程主要是在實(shí)驗(yàn)室中進(jìn)行,其步聚如下:
(1)運(yùn)行Kinect軟件獲取圖片信息。
圖5
(2)啟動(dòng)視覺處理服務(wù)。
圖6
(3)啟動(dòng)可視化服務(wù),獲取區(qū)域預(yù)測圖片。
圖7
(4)運(yùn)行客戶端服務(wù)。
圖8
(6)得到運(yùn)行結(jié)果
本系統(tǒng)在抓取物體時(shí),首先對(duì)計(jì)算物體的最優(yōu)區(qū)域,以便能精準(zhǔn)抓取物體,然后進(jìn)行標(biāo)色處理,這里面主要對(duì)圖片標(biāo)注三種顏色,一般選取紅色為最優(yōu)抓取區(qū)域。首先對(duì)標(biāo)紅部分進(jìn)行計(jì)算,以獲取這部分區(qū)域的所處的坐標(biāo)位置,然后使用Kinect點(diǎn)云數(shù)據(jù)獲取該區(qū)域?qū)?yīng)下的三維坐標(biāo),再通過矩陣轉(zhuǎn)換方法確定機(jī)械手的姿態(tài),再通過網(wǎng)絡(luò)傳送到機(jī)械手服務(wù)端執(zhí)行抓取操作。
(5)執(zhí)行抓取操作。
圖9
本文利用人工智能相關(guān)技術(shù),訓(xùn)練一套視覺處理模型,并將其應(yīng)用于機(jī)器人抓取時(shí)獲取精準(zhǔn)的位置,降低機(jī)械手抓取物體的失誤率。本系統(tǒng)由于使用了人工智能相關(guān)技術(shù),可以適應(yīng)復(fù)雜情形下的物體識(shí)別與抓取,并有較高的準(zhǔn)確率。由于實(shí)驗(yàn)條件限制,本系統(tǒng)的實(shí)驗(yàn)過程都是在模擬情形下進(jìn)行,實(shí)驗(yàn)結(jié)果有待在真實(shí)環(huán)境進(jìn)行驗(yàn)證,本系統(tǒng)的執(zhí)行效率比較低下,需要對(duì)算法做進(jìn)一步優(yōu)化提高識(shí)別與抓取的準(zhǔn)確率和效率。