王政博,唐 勇,劉海波,孫東來(lái),栗夢(mèng)媛
(1.河北水利電力學(xué)院 自動(dòng)化與通信工程學(xué)院,河北省滄州市重慶路1號(hào) 061001;2.河北省高校水利自動(dòng)化與信息化應(yīng)用技術(shù)研發(fā)中心,河北省滄州市重慶路1號(hào) 061001)
隨著德國(guó)政府在2011年4月的漢諾威工業(yè)博覽會(huì)上正式提出“工業(yè)4.0”[1]戰(zhàn)略,中國(guó)于2015年5月正式提出《中國(guó)制造2025》并成為中國(guó)實(shí)施制造強(qiáng)國(guó)戰(zhàn)略的第一個(gè)十年行動(dòng)綱領(lǐng),智能制造已經(jīng)成為現(xiàn)在工業(yè)制造的熱門(mén)發(fā)展方向。在汽車(chē)及零部件制造、食品加工、機(jī)械加工等領(lǐng)域應(yīng)用的傳統(tǒng)工業(yè)機(jī)器人價(jià)格不斷降低,使用量不斷增長(zhǎng)的背景下,機(jī)器人的應(yīng)用領(lǐng)域變得更加廣泛。隨著智能機(jī)器人的發(fā)展,機(jī)器人需要完成更多智能化操作,這對(duì)機(jī)器人的操作精度、柔性等方面提出更高的要求。傳統(tǒng)機(jī)器人無(wú)法滿足新興領(lǐng)域?qū)C(jī)器人性能的要求,于是更多的科技公司、科研院所、高校開(kāi)始研發(fā)可以感知環(huán)境的智能協(xié)作共融機(jī)器人。
國(guó)外在協(xié)作共融機(jī)器人領(lǐng)域一直處于領(lǐng)先水平,例如基于機(jī)器人操作系統(tǒng)(ROS)的智能機(jī)器人Baxter,日本本田公司研制的ASIMO[2]仿人機(jī)器人等。在國(guó)內(nèi)卻很少有優(yōu)秀的產(chǎn)品投入使用,比較有代表性的是北京理工大學(xué)黃強(qiáng)等人研制的“匯童”仿人機(jī)器人和上海交通大學(xué)開(kāi)發(fā)的擬人雙臂機(jī)器人等,而這些高校和科研所研制的機(jī)器人離面向市場(chǎng)投產(chǎn)還有一定距離。ROS系統(tǒng)在機(jī)器人的研發(fā)中提供了標(biāo)準(zhǔn)操作系統(tǒng)服務(wù),例如硬件抽象,底層設(shè)備控制,實(shí)現(xiàn)進(jìn)程間消息及數(shù)據(jù)包管理等功能,并且可以提高開(kāi)發(fā)的代碼復(fù)用率。
文中主要介紹冗余雙臂機(jī)器人Baxter的控制原理和Baxter機(jī)器人手臂末端進(jìn)行運(yùn)動(dòng)跟隨的方法。該方法的創(chuàng)新性在于:利用ROS系統(tǒng)對(duì)機(jī)械臂運(yùn)動(dòng)進(jìn)行控制;機(jī)器人眼內(nèi)視覺(jué)傳感器與機(jī)械臂運(yùn)動(dòng)控制的配合,完成了機(jī)械臂對(duì)目標(biāo)物體的精準(zhǔn)跟隨;跟隨軌跡較傳統(tǒng)視覺(jué)方法有了明顯優(yōu)化。
Baxter[3]機(jī)器人是美國(guó)Rethink Robotics公司研究并開(kāi)發(fā)的一款雙臂協(xié)作機(jī)器人。作為一款新型的智能協(xié)作機(jī)器人產(chǎn)品,Baxter機(jī)器人已經(jīng)被國(guó)內(nèi)外眾多知名大學(xué)和科研機(jī)構(gòu)用于教學(xué)、研究工作中。
機(jī)器人系統(tǒng)的組成大體上可以分為4部分:操作臂(包括內(nèi)部傳感器)、末端執(zhí)行器、外部傳感器和執(zhí)行器(比如視覺(jué)系統(tǒng)和反饋系統(tǒng))、控制器,如圖1所示。
圖1 Baxter機(jī)器人的硬件配置Fig.1 Hardware configuration of Baxter robot
Baxter軟件系統(tǒng)是基于ROS構(gòu)建的[3],ROS是一種應(yīng)用于機(jī)器人的分布式計(jì)算、通信框架。
ROS分布式計(jì)算模型由ROS節(jié)點(diǎn)(node)模型、ROS消息(message)/主題(topic)模型以及ROS服務(wù)器(service)模型3部分[4]組成。Baxter機(jī)器人的主體計(jì)算機(jī)提供了一個(gè)獨(dú)立的ROS主機(jī)用于節(jié)點(diǎn)的管理,任何遠(yuǎn)程計(jì)算機(jī)都可以通過(guò)ROS的API來(lái)連接并控制Baxter。
機(jī)器人控制系統(tǒng)主要是用戶計(jì)算機(jī)通過(guò)局域網(wǎng)、以太網(wǎng)與主體計(jì)算機(jī)通信,能夠向機(jī)器人發(fā)送指令并實(shí)時(shí)監(jiān)測(cè)其運(yùn)行狀況(見(jiàn)圖2)。主體計(jì)算機(jī)采用Intel Core i7系列處理器,其最頂層的API是用于接收關(guān)節(jié)指令和發(fā)布關(guān)節(jié)狀態(tài)的關(guān)節(jié)控制器例程、描述機(jī)器人模型的URDF以及用于計(jì)算關(guān)節(jié)坐標(biāo)變換的tf包,等等。嵌入式控制器與主體計(jì)算機(jī)通信,接收主體計(jì)算機(jī)傳來(lái)的指令并轉(zhuǎn)化為驅(qū)動(dòng)電機(jī)的控制信號(hào)驅(qū)動(dòng)電機(jī)運(yùn)動(dòng),同時(shí)還采集編碼器和霍爾元器件的信號(hào)送到主體計(jì)算機(jī)。
圖2 Baxter機(jī)器人的控制系統(tǒng)Fig.2 Control system of Baxter robot
目前,機(jī)器人視覺(jué)伺服控制[5]系統(tǒng)按照攝像機(jī)位置的不同,可以分為手眼系統(tǒng)和固定攝像機(jī)系統(tǒng),也可以根據(jù)機(jī)器人的空間位置或圖像特征分為基于位置的視覺(jué)伺服系統(tǒng)和基于圖像的視覺(jué)伺服系統(tǒng)。在Baxter機(jī)器人的手眼系統(tǒng)中將視覺(jué)傳感器裝入手臂的末端執(zhí)行器,以提供物體和障礙物的高分辨率信息,而且各個(gè)坐標(biāo)系統(tǒng)可以更容易地實(shí)現(xiàn)轉(zhuǎn)換。固定攝像機(jī)系統(tǒng)是將攝像機(jī)布置在工作空間之外從而起到感知整個(gè)工作空間的作用,此類(lèi)系統(tǒng)普遍采用Kinect深度傳感器布置在機(jī)器人的頭部以獲取整個(gè)機(jī)器人的周?chē)h(huán)境3D信息;或者使用普通攝像頭放在機(jī)器人頭部,先獲得機(jī)器人手臂的2D俯視圖,再通過(guò)圖像處理來(lái)表達(dá)機(jī)器人的手臂和周?chē)h(huán)境?;趫D像的視覺(jué)伺服系統(tǒng)受噪聲的影響較小,但由于不涉及對(duì)目標(biāo)姿態(tài)的估計(jì),難以生成準(zhǔn)確的三維空間路徑,甚至使得目標(biāo)位置脫離相機(jī)的視線。文中關(guān)注Baxter機(jī)器人手臂對(duì)物體的跟隨,強(qiáng)調(diào)目標(biāo)檢測(cè)的準(zhǔn)確性和手臂跟隨相機(jī)的三維空間路徑準(zhǔn)確性,設(shè)計(jì)方案選用黃色網(wǎng)球?yàn)楦S目標(biāo)對(duì)象,利用顏色檢測(cè)方法實(shí)現(xiàn)視覺(jué)引導(dǎo),采用基于位置的視覺(jué)伺服手眼系統(tǒng)解決機(jī)械臂在三維空間中的最優(yōu)路徑問(wèn)題。
另外,在機(jī)器人的運(yùn)動(dòng)部分,按順序移動(dòng)一組媒介完成目標(biāo)信息的控制,以達(dá)到并保持一組期望的相對(duì)位置,利用手眼系統(tǒng)進(jìn)行目標(biāo)跟隨,相對(duì)方位測(cè)量比相對(duì)距離測(cè)量更為準(zhǔn)確,因此文中實(shí)驗(yàn)部分使用相對(duì)方位測(cè)量以提升機(jī)器人運(yùn)動(dòng)性能。
物體位置的檢測(cè)基于相機(jī)拍攝到的圖像中獲取的信息,由圖3和圖4可知,僅通過(guò)一個(gè)攝像頭無(wú)法明確3D對(duì)象的坐標(biāo)信息[6],故通過(guò)預(yù)先獲取對(duì)象的一個(gè)坐標(biāo)信息來(lái)解決該問(wèn)題。獲取坐標(biāo)信息可以通過(guò)Baxter機(jī)器人提供的紅外傳感器檢測(cè)末端執(zhí)行器和物體之間的距離或者將網(wǎng)球固定在桌子上的2種方式,這表明已事先得到了跟隨對(duì)象的Z坐標(biāo)。但紅外傳感器在檢測(cè)網(wǎng)球等小型物體時(shí)性能差,不能準(zhǔn)確檢測(cè)手臂末端距離網(wǎng)球的距離,因此文中選擇了將網(wǎng)球固定在水平桌面上的方式,使三維空間環(huán)境變?yōu)槎S圖像環(huán)境。
圖3 單視圖不確定性Fig.3 Single view uncertainty
圖4 對(duì)極幾何Fig.4 Opposite pole geometry
平面轉(zhuǎn)換方式
(1)
式中:Px,Py是物體坐標(biāo);Cc相機(jī)校準(zhǔn)因子,設(shè)置為0.0025;D是給定的相機(jī)與桌子之間的距離;Opx,Opy是圖像像素坐標(biāo);Opx,Opy是像素中心點(diǎn)坐標(biāo);Pcx,Pcy是基于Baxter機(jī)器人的相機(jī)坐標(biāo)。
為了獲得穩(wěn)定的輸出,一個(gè)明亮和光線充足的環(huán)境以及適當(dāng)?shù)念伾珯z測(cè)閾值對(duì)于獲得正確的跟蹤對(duì)象十分必要。文中的顏色閾值設(shè)置如表1所示。
表1 檢測(cè)的顏色閾值設(shè)置
此外,Baxter手臂上的相機(jī)會(huì)產(chǎn)生相對(duì)較大的噪音,一般會(huì)采用高斯濾波器消除噪音,但高斯濾波會(huì)模糊掉輸入圖像中邊緣信息,故采用可以讓邊緣保持平滑的雙邊濾波器。同時(shí)為了避免出現(xiàn)球的輪廓不能被完全檢測(cè)到,只用膨脹功能而去除了腐蝕功能以達(dá)到放大檢測(cè)到的像素以覆蓋輪廓內(nèi)部的未檢測(cè)像素的效果。
物體位置檢測(cè)[7]流程圖如圖5所示。
圖5 物體位置檢測(cè)流程圖Fig.5 Flow chart of object position detection
機(jī)器人手臂的運(yùn)動(dòng)控制主要執(zhí)行關(guān)節(jié)軌跡規(guī)劃、軌跡插補(bǔ)等算法程序。運(yùn)動(dòng)控制由目標(biāo)識(shí)別定位和手臂運(yùn)動(dòng)控制的2個(gè)節(jié)點(diǎn)組成,通過(guò)ROS消息主題方式進(jìn)行通信。手臂在運(yùn)動(dòng)過(guò)程中,會(huì)不斷檢測(cè)關(guān)節(jié)速度值是否溢出等情況,并及時(shí)做出相應(yīng)處理,直到手臂完成跟隨運(yùn)動(dòng)。
如圖6和圖7所示,分析Baxter手臂的運(yùn)動(dòng)控制問(wèn)題時(shí),將N個(gè)點(diǎn)的集合標(biāo)識(shí)為V={1,2,…,N},點(diǎn)的位置為{xi},i∈V,節(jié)點(diǎn)之間的距離定義[8]為:
Dij=‖xj-xi‖i,j∈V
(2)
βij—方向,Dij—距離,Sij—錐體,r—半徑圖6 節(jié)點(diǎn)的距離定義Fig.6 Distance definition of nodes
Cjj、Qij—相似性度量,βgij—期望的方向、距離圖7 節(jié)點(diǎn)的方向定義Fig.7 Orientation definition of nodes
方向定義為:
(3)
代價(jià)函數(shù):
(4)
(5)
(6)
(7)
=DijCij-Dg,ij
(8)
在代價(jià)函數(shù)中αb,αd分別對(duì)應(yīng)邊緣Eb,Ed的步長(zhǎng)。式(4)可以根據(jù)式(5)~式(8)求得,其中
fb(c)=1-c,fd(q)=0.5q2。
具體運(yùn)動(dòng)控制如圖8所示。
圖8 運(yùn)動(dòng)跟隨控制流程圖Fig.8 Flow chart of motion following control
文中視覺(jué)跟蹤對(duì)象是一個(gè)擺放在水平桌面上半徑為0.03m的黃色網(wǎng)球,該物體具有圓形輪廓且具有易與周?chē)h(huán)境區(qū)分的顏色。Baxter機(jī)器人左臂的末端執(zhí)行器位置設(shè)置為垂直于桌面。位置檢測(cè)系統(tǒng)首先得到小球外形輪廓,計(jì)算出輪廓中心點(diǎn)坐標(biāo),再對(duì)輸入信息進(jìn)行濾波等處理。
圖9(a)和圖10(a)是HSV圖像,檢測(cè)到的物體為白色,圖9(b)和圖10(b)是帶圓心標(biāo)記的原始圖像。
(a)HSV圖像(a)HSV image
(b)圓心標(biāo)記圖像(b)Circle tag image圖9 普通檢測(cè)的輸出結(jié)果Fig.9 The output of general processing
(a)HSV圖像(a)HSV image
(b)圓心標(biāo)記圖像(b)Circle tag image圖10 本文圖像處理的輸出結(jié)果Fig.10 Output results of image processing in this paper
對(duì)比圖9普通檢測(cè)的輸出結(jié)果和圖10文中圖像處理的輸出結(jié)果:普通檢測(cè)的結(jié)果中未能檢測(cè)到整個(gè)網(wǎng)球,導(dǎo)致網(wǎng)球中心點(diǎn)計(jì)算有偏差;本文圖像處理結(jié)果中可以清楚地看到檢測(cè)到完整的網(wǎng)球,且網(wǎng)球中心點(diǎn)定位準(zhǔn)確。文中的檢測(cè)性能遠(yuǎn)遠(yuǎn)優(yōu)于普通檢測(cè)。
圖11為手臂跟隨軌跡圖,圖11(a)、圖11(b)均為網(wǎng)球移動(dòng)軌跡為弧線時(shí)的軌跡圖,其中,紅色軌跡為視覺(jué)拍到的網(wǎng)球移動(dòng)路線,藍(lán)色軌跡為機(jī)械手臂末端跟隨軌跡。通過(guò)matlab數(shù)據(jù)分析功能得到的軌跡圖可以看到,機(jī)械臂可跟隨小球運(yùn)動(dòng),且實(shí)時(shí)性較好。
(a)手臂跟隨軌跡1(a)Arm following track 1
(b)手臂跟隨軌跡2(b)Arm following track 2圖11 手臂跟隨軌跡圖Fig.11 Arm following track diagram
圖11中軌跡的不完全一致現(xiàn)象是由于Baxter機(jī)械臂本身的冗余度、機(jī)械臂末端執(zhí)行器在實(shí)際運(yùn)動(dòng)過(guò)程中的抖動(dòng)以及其硬件實(shí)時(shí)計(jì)算能力所致。手臂跟隨實(shí)驗(yàn)數(shù)據(jù)見(jiàn)表2。
表2 手臂跟隨實(shí)驗(yàn)數(shù)據(jù)
分析表2中的數(shù)據(jù)發(fā)現(xiàn),即使在黑暗環(huán)境中,在設(shè)置適當(dāng)?shù)念伾吔缰?,跟隨的軌跡精度亦可以達(dá)到0.2cm,而且在實(shí)驗(yàn)中,多次改變網(wǎng)球的運(yùn)動(dòng)軌跡,手臂均可實(shí)現(xiàn)跟隨且精度不會(huì)因軌跡的改變而變化。
以Baxter為研究對(duì)象,利用ROS平臺(tái)提出了一種視覺(jué)伺服方法,用于Baxter手臂跟隨運(yùn)動(dòng)。首先根據(jù)手臂相機(jī)圖像識(shí)別出要跟隨的物體,然后計(jì)算出物體中心點(diǎn)位置坐標(biāo),最后引導(dǎo)手臂跟隨目標(biāo)物體運(yùn)動(dòng)。文中使用機(jī)械臂自帶的視覺(jué)傳感器,未增加外置攝像頭或昂貴的深度傳感器,簡(jiǎn)單而高效的實(shí)現(xiàn)了機(jī)械臂運(yùn)動(dòng)跟隨功能。