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