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