仿人機(jī)器人的視覺(jué)伺服控制系統(tǒng)
視覺(jué)是人類(lèi)感知外界信息的重要手段,視覺(jué)伺服系統(tǒng)是機(jī)器人獲取環(huán)境信息的關(guān)鍵組成部分。本文主要討論仿人機(jī)器人BHR-1的視覺(jué)伺服系統(tǒng)。首先介紹機(jī)器人頭部的視覺(jué)總體結(jié)構(gòu)方案,然后論述了基于立體視覺(jué)的信息處理和頭部運(yùn)動(dòng)控制,最后通過(guò)目標(biāo)跟蹤和物體抓取實(shí)驗(yàn)說(shuō)明了系統(tǒng)的可行性。
總體方案及控制系統(tǒng) 仿人機(jī)器人的視覺(jué)伺服系統(tǒng)要求能夠根據(jù)具體環(huán)境和具體情況進(jìn)行主動(dòng)搜索,實(shí)時(shí)將攝像頭轉(zhuǎn)向目標(biāo),實(shí)現(xiàn)對(duì)空間目標(biāo)的實(shí)時(shí)跟蹤并獲取物體的三維位置信息,從而控制手臂實(shí)現(xiàn)對(duì)物體的準(zhǔn)確抓取?! HR-1)的頭部有2個(gè)自由度,面部放置兩只CCD攝像頭作為視覺(jué)傳感器來(lái)模擬人的眼睛。機(jī)器人的手臂也是模仿人類(lèi)的上肢設(shè)計(jì)的,具有7個(gè)自由度,肩關(guān)節(jié)3個(gè)自由度,肘關(guān)節(jié)2個(gè)自由度,腕關(guān)節(jié)2個(gè)自由度,可以實(shí)現(xiàn)人類(lèi)上肢的各種動(dòng)作。機(jī)器人根據(jù)目標(biāo)的三維位置信息實(shí)現(xiàn)對(duì)物體的抓取。
仿人機(jī)器人BHR-1的總體設(shè)計(jì)方案如圖2所示。為了實(shí)現(xiàn)物體的快速定位,需要完成圖像處理和運(yùn)動(dòng)控制的任務(wù)。一臺(tái)計(jì)算機(jī)將難以滿(mǎn)足快速定位的實(shí)時(shí)性要求,因此本文采用了雙計(jì)算機(jī)處理和Memolink通信方式的系統(tǒng)結(jié)構(gòu),使用兩臺(tái)計(jì)算機(jī)分別負(fù)責(zé)雙目立體視覺(jué)的信息處理和機(jī)器人的運(yùn)動(dòng)控制。Memolink是系統(tǒng)間進(jìn)行快速通信的一種有效解決方案。
機(jī)器人的視覺(jué)跟蹤以及目標(biāo)抓取的實(shí)現(xiàn)都依賴(lài)運(yùn)動(dòng)控制計(jì)算機(jī)對(duì)機(jī)器人的運(yùn)動(dòng)控制。運(yùn)
圖2 系統(tǒng)總體方案
動(dòng)控制系統(tǒng)根據(jù)視覺(jué)處理系統(tǒng)的處理結(jié)果,控制機(jī)器人采取相應(yīng)決策。例如:頭部的兩自由度轉(zhuǎn)動(dòng),以跟蹤目標(biāo)的運(yùn)動(dòng)或者上肢手臂去抓取目標(biāo)。運(yùn)動(dòng)控制子系統(tǒng)以RT-Linux實(shí)時(shí)操作操作系統(tǒng)作為軟件平臺(tái),保證了機(jī)器人控制系統(tǒng)的實(shí)時(shí)性。
機(jī)器人的運(yùn)動(dòng)控制子系統(tǒng)的被控對(duì)象是機(jī)器人的各關(guān)節(jié)的角度,而關(guān)節(jié)是由電機(jī)帶動(dòng)的,因此被控對(duì)象實(shí)際上是帶動(dòng)關(guān)節(jié)轉(zhuǎn)動(dòng)的電機(jī)轉(zhuǎn)動(dòng)的角度,是一個(gè)位置伺服系統(tǒng)。
系統(tǒng)使用了一套多功能接口板,將所有的A/D轉(zhuǎn)換、D/A轉(zhuǎn)換、ENC、PWM、32位IO等多種功能都集成在該接口板上,提高了系統(tǒng)的集成性并減小了系統(tǒng)體積和重量。
在控制信號(hào)的輸入方面,由于控制的目的是為了機(jī)器人的頭部能夠跟蹤運(yùn)動(dòng)的目標(biāo),因此實(shí)際上輸入量就是根據(jù)圖像處理子系統(tǒng)的處理結(jié)果得到的,在圖像處理的過(guò)程中,最終求得的目標(biāo)的位置就是后面運(yùn)動(dòng)控制子系統(tǒng)的輸入量。由于圖像處理子系統(tǒng)的處理結(jié)果本身就是數(shù)字量,運(yùn)動(dòng)控制子系統(tǒng)所得到的位置信息也是數(shù)字信號(hào),因此,這里不需要模數(shù)轉(zhuǎn)換的過(guò)程。
在反饋信號(hào)的輸入方面,因?yàn)楸豢貙?duì)象是電機(jī),確切的說(shuō)是電機(jī)轉(zhuǎn)動(dòng)的角度,是位置控制,因此可以用電機(jī)上面的軸角編碼器的輸出作為反饋信號(hào)。軸角編碼器是一個(gè)測(cè)量電機(jī)所轉(zhuǎn)過(guò)的角度的器件,它以脈沖的方式來(lái)反饋電機(jī)轉(zhuǎn)過(guò)的角度,電機(jī)轉(zhuǎn)過(guò)的角度越大,它輸出的脈沖個(gè)數(shù)就越多,反之,輸出的脈沖個(gè)數(shù)就越少。因此我們采用了接口板上的ENC(encoder)
圖3 機(jī)器人頭部運(yùn)動(dòng)控制子系統(tǒng)框圖
接口來(lái)作為反饋信號(hào)的輸入通道,它可以測(cè)量軸角編碼器的脈沖輸出個(gè)數(shù)。機(jī)器人頭部的運(yùn)動(dòng)控制子系統(tǒng)的結(jié)構(gòu)框圖如圖3所示。
基于立體視覺(jué)的視覺(jué)信息處理 系統(tǒng)采用了基于立體視覺(jué)的解決方案,通過(guò)加入了深度信息,使得目標(biāo)的搜索結(jié)果更加準(zhǔn)確。系統(tǒng)使用了美國(guó)SRI人工智能中心所開(kāi)發(fā)的一套高速的雙目立體視覺(jué)系統(tǒng)SVS(small vision system)。
圖像分割是物體識(shí)別的預(yù)處理階段,是機(jī)器人視覺(jué)伺服系統(tǒng)的關(guān)鍵技術(shù)之一。該系統(tǒng)采用了基于顏色信息的閾值分割方法。理論分析和實(shí)驗(yàn)結(jié)果都表明,對(duì)同一顏色屬性的物體,在光源種類(lèi)、照度、物體反射特性等不同條件下,測(cè)得的RGB顏色值分布很分散,很難確定識(shí)別RGB的閾值范圍。而HSV模型更接近人眼對(duì)顏色的感知,它將采集的顏色信息分為色調(diào)、飽和度和亮度三種屬性量化,色調(diào)屬性H能比較準(zhǔn)確地反映顏色種類(lèi),對(duì)外界光照條件的變化敏感程度低,因此,HSV較之RGB更適合于用做識(shí)別處理的基礎(chǔ)。本文采用HSV模型作為顏色識(shí)別處理的基礎(chǔ),選取其中的參數(shù)H和V作為識(shí)別處理的判別依據(jù)。RGB空間中一點(diǎn)到HSV空間中一點(diǎn)的具體轉(zhuǎn)化關(guān)系如下:
V=max(r,g,b),V′= min(r,g,b);
If V= 0orV = V′then H=0, S=0;
If r = V then H=(g-b)/(V-V′);
If g= V then H=2+ (b-r)/(V-V′);
If b = V then H=4+ (r-g)/(V-V′), H=H×60;
If H 0 then H=H+360, S=(V-V′)/V
系統(tǒng)首先離線(xiàn)采樣目標(biāo)圖像區(qū)域,將該局部彩色圖像從RGB模型轉(zhuǎn)化為HSV模型,對(duì)其中H、S兩個(gè)分量分別作直方圖,得到選定區(qū)域的H、S閾值,這是一個(gè)離線(xiàn)的學(xué)
圖4 視覺(jué)處理流程圖
習(xí)過(guò)程。在隨后的實(shí)時(shí)圖像識(shí)別中,H、S閾值根據(jù)前一個(gè)視覺(jué)周期的彩色圖像實(shí)時(shí)更新以適應(yīng)新的光照條件。
視覺(jué)處理系統(tǒng)的流程圖如圖4所示,系統(tǒng)使用攝像頭來(lái)采集圖像,在對(duì)圖像進(jìn)行一系列的預(yù)處理之后,對(duì)其進(jìn)行區(qū)域分割,以得到多個(gè)區(qū)域,再搜索這些區(qū)域,根據(jù)已知目標(biāo)特征找到目 標(biāo)所在的區(qū)域。如果找到,則控制機(jī)器人頭部面向目標(biāo),同時(shí)更新目標(biāo)的特征,以用來(lái)在下次搜索時(shí)使用,如果沒(méi)有找到相匹配的目標(biāo),則可能目標(biāo)被暫時(shí)隱藏或丟失,這時(shí)開(kāi)始下一次處理,以等待目標(biāo)再次出現(xiàn)。
因?yàn)橐曈X(jué)處理系統(tǒng)處理的是上一個(gè)周期的圖像,所以得到的目標(biāo)坐標(biāo)也是上一個(gè)周期的坐標(biāo),如果用此方向坐標(biāo)來(lái)作為運(yùn)動(dòng)控制的輸入,則頭部運(yùn)動(dòng)始終滯后一個(gè)周期。為了加快系統(tǒng)的速度,本文采用了比例微分控制,系統(tǒng)地輸入輸出函數(shù)為:
Iα(k+1)=kp eα(k)+kd(eα(k)-eα(k-1))
Iβ(k+1)=kp eβ(k)+kd(eβ(k)-eβ(k-1))
eα(k)=αk-αk’,eβ(k)=βk-βk’
式中Iα(k+1)和Iβ(k+1)為在t(k+1)時(shí)間上控制系統(tǒng)的輸出;(αk,βk)表示在時(shí)間 t(k)目標(biāo)的方向坐標(biāo);(αk’, βk’)該時(shí)刻二自由度機(jī)構(gòu)的方向坐標(biāo);eα(k)和eβ(k) 分別表示該時(shí)刻頭部位置與目標(biāo)位置之間的偏差;kp和kd分別為控制系統(tǒng)的比例系數(shù)和微分系數(shù)。通過(guò)實(shí)驗(yàn)調(diào)節(jié)kp和kd,kd<<kp,系統(tǒng)可以既有較高的反應(yīng)速度,同時(shí)又具有穩(wěn)定性。 運(yùn)動(dòng)控制過(guò)程 根據(jù)前面的敘述,計(jì)算機(jī)控制系統(tǒng)的工作過(guò)程是一個(gè)循環(huán)的實(shí)時(shí)數(shù)據(jù)采集,實(shí)時(shí)決策,實(shí)時(shí)控制的過(guò)程,在本系統(tǒng)中,根據(jù)所選用器件的具體情況,假設(shè)對(duì)所有的控制環(huán)完成這樣的一個(gè)循環(huán)大約需要m毫秒的時(shí)間左右。在視覺(jué)信息處理系統(tǒng)中,處理一幀圖像平均需要n毫秒左右的時(shí)間,由于視覺(jué)處理和運(yùn)動(dòng)控制任務(wù)的特點(diǎn)的不同,n>>m,也就是說(shuō)視覺(jué)處理的周期要遠(yuǎn)遠(yuǎn)大于運(yùn)動(dòng)控制的周期。在一個(gè)視覺(jué)處理的周期內(nèi),系統(tǒng)可以完成多個(gè)控制周期的處理。因此在一個(gè)視覺(jué)處理周期之后,系統(tǒng)應(yīng)該做好下一個(gè)視覺(jué)處理周期之內(nèi)的運(yùn)動(dòng)規(guī)劃,也就是做好后面多個(gè)控制周期之內(nèi)的運(yùn)動(dòng)規(guī)劃,這樣才能保證機(jī)器人的頭部以均勻、平緩,同時(shí)又是準(zhǔn)確的速度來(lái)跟蹤目標(biāo)。
控制系統(tǒng)軟件流程如圖5所示。
在每一個(gè)運(yùn)動(dòng)控制周期內(nèi),程序都首先要查看Memolink,看視覺(jué)信息處理系統(tǒng)是否有新的處理結(jié)果通過(guò)Memolink傳遞到運(yùn)動(dòng)控制系統(tǒng),如果沒(méi)有,程序就按照預(yù)設(shè)的運(yùn)動(dòng)規(guī)劃來(lái)控制機(jī)器人運(yùn)動(dòng);如
圖5 機(jī)器人運(yùn)動(dòng)控制的軟件流程
果有,程序就先要根據(jù)視覺(jué)系統(tǒng)的處理結(jié)果來(lái)修改運(yùn)動(dòng)規(guī)劃。為了使機(jī)器人頭部的運(yùn)動(dòng)平穩(wěn),我們把每次預(yù)設(shè)的運(yùn)動(dòng)規(guī)劃所規(guī)劃的時(shí)間定為略大于視覺(jué)處理的平均周期,這樣就能夠保證系統(tǒng)在每次新的視覺(jué)處理結(jié)果到來(lái)之時(shí),原有的運(yùn)動(dòng)規(guī)劃還沒(méi)有執(zhí)行完。從而使只要目標(biāo)在不斷運(yùn)動(dòng),機(jī)器人頭部便可以處于不斷運(yùn)動(dòng)過(guò)程中,避免了機(jī)器人頭部時(shí)轉(zhuǎn)時(shí)停的現(xiàn)象。隨后程序分別讀取規(guī)劃和反饋,根據(jù)兩者之差來(lái)求得控制量,再發(fā)出控制信號(hào),控制機(jī)器人頭部的轉(zhuǎn)動(dòng)。
對(duì)于控制量的求法程序采用了傳統(tǒng)的PID算法,設(shè)t(k)為第k個(gè)運(yùn)動(dòng)控制周期時(shí)刻,在t(k)時(shí)間上,系統(tǒng)的輸出量為Yk,運(yùn)動(dòng)規(guī)劃的規(guī)劃量為Xk,依據(jù)PID算法,在t(k+1)時(shí)間上,系統(tǒng)的輸出Yk+1為
Yk+1=KP(Xk-Yk)+Ki∑(Xk-Yk)+Kd(Xk-Yk-Xk-1+Yk-1)
上式中KP,Ki,Kd分別為比例系數(shù),積分系數(shù),微分系數(shù)。在一個(gè)控制系統(tǒng)中,一定大小積分系數(shù)可以使系統(tǒng)沒(méi)有殘差,但會(huì)降低響應(yīng)速度;而一定大小的比例系數(shù)可以加快系統(tǒng)的響應(yīng)速度,并能根據(jù)輸入的變化提前做出響應(yīng),但可能導(dǎo)致系統(tǒng)不穩(wěn)定。因此在結(jié)果可以接受的情況下,應(yīng)該只使用比例系數(shù),如果結(jié)果達(dá)不到要求再使用積分系數(shù)和微分系數(shù)。
實(shí)驗(yàn) 本系統(tǒng)中,視覺(jué)信息處理系統(tǒng)和運(yùn)動(dòng)控制系統(tǒng)分別適用Windows和RT-Linux作為軟件開(kāi)發(fā)平臺(tái)。RT-Linux是實(shí)時(shí)操作系統(tǒng),使用它可以滿(mǎn)足運(yùn)動(dòng)控制的實(shí)時(shí)性,而Windows系統(tǒng)的強(qiáng)大的多媒體功能使其成為圖像處理的平臺(tái)。視覺(jué)信息處理計(jì)算機(jī)的CPU為PⅣ 2.4GB,內(nèi)存512M;運(yùn)動(dòng)控制計(jì)算機(jī)的CPU為PⅢ 700MHz,內(nèi)存256M;Memolink是連接視覺(jué)處理系統(tǒng)與運(yùn)動(dòng)控制系統(tǒng)的橋梁,我們選用的產(chǎn)品采用PCI接口,最大傳輸速率為1Mbytes/s。攝像頭為SVS視覺(jué)處理系統(tǒng),每秒鐘采樣15幀。
SVS視覺(jué)處理系統(tǒng)安裝才2自由度的運(yùn)動(dòng)機(jī)構(gòu)上,該機(jī)構(gòu)在2個(gè)自由度方向的運(yùn)動(dòng)足以使其指向任何方向,因此可以實(shí)現(xiàn)跟蹤物體。BHR-1的頭部的三維尺寸為寬19cm,高27cm,深19cm,重量2.8kg,以上數(shù)據(jù)包括機(jī)械結(jié)構(gòu)、軸承、電機(jī)、攝像機(jī)等。
利用該系統(tǒng)跟蹤和定位物體時(shí),圖像的處理速度為每秒鐘10幀,視覺(jué)伺服周期為100ms左右,運(yùn)動(dòng)控制系統(tǒng)的伺服周期是3ms,近距離的定位精度較高,最高精度為1m處3‰。圖6為BHR-1的頭部跟蹤和物體定位實(shí)驗(yàn)。 為進(jìn)一步驗(yàn)證本文提出的視覺(jué)定位與動(dòng)作規(guī)劃的方法的有效性,BHR-1系統(tǒng)實(shí)現(xiàn)了對(duì)物體的抓取試驗(yàn)(如圖7),機(jī)器人手臂是具有7個(gè)自由度的機(jī)器人的右臂,實(shí)驗(yàn)過(guò)程中,視覺(jué)系統(tǒng)將目標(biāo)物體的三維信息通過(guò)memolink傳遞給運(yùn)動(dòng)控制計(jì)算機(jī),運(yùn)動(dòng)控制計(jì)算機(jī)根據(jù)上面提出的方法規(guī)劃數(shù)據(jù)并實(shí)現(xiàn)抓取物體。結(jié)語(yǔ) 本文給出了一種基于雙目視覺(jué)的物體的跟蹤和定位方案。雙目視覺(jué)用于獲取目標(biāo)物體的三維空間信息,實(shí)現(xiàn)物體的定位。這個(gè)系統(tǒng)采用了雙計(jì)算機(jī)處理和Memolink 通訊方式,兩臺(tái)計(jì)算機(jī)分別進(jìn)行視覺(jué)信息處理和運(yùn)動(dòng)控制,保證了系統(tǒng)具有較高的響應(yīng)速度。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論