制造出像人一樣具有智能的能替代人類(lèi)勞動(dòng)的機器人,一直是人類(lèi)的夢(mèng)想,人類(lèi)獲取的信息80%以上是通過(guò)視覺(jué)。因此,在智能機器人的研究中,具有視覺(jué)的機器人的研究也就成了第一位的。對機器人視覺(jué)伺服系統的研究是機器人領(lǐng)域中的重要內容之一,其研究成果可應用在機器人自動(dòng)避障、軌跡跟蹤和運動(dòng)目標跟蹤等問(wèn)題中。從反饋信息類(lèi)型的角度分類(lèi),機器人視覺(jué)伺服系統可分為基于位置的視覺(jué)伺服系統(position-base)和基于圖像的視覺(jué)伺服系統(image-base)[1];谖恢玫囊曈X(jué)伺服系統首先要估計目標物體在直角坐標空間中相對于攝像機的位置,其視覺(jué)伺服誤差定義在三維笛卡爾空間,視覺(jué)或特征信息用來(lái)估計機械手末端與目標的相對位姿,這種方法需要對視覺(jué)系統和機器人進(jìn)行精確標定,另外由于要對圖像進(jìn)行解釋?zhuān)蚨嬎懔枯^大;趫D像的視覺(jué)伺服系統的伺服誤差直接定義在圖像特征空間,即攝像機觀(guān)察到的特征信息直接用于反饋,不需要對三維姿態(tài)進(jìn)行估計,但系統需在線(xiàn)計算圖像雅可比矩陣(圖像特征參數變化量與任務(wù)空間位姿變化量的關(guān)系矩陣)及其逆陣,而圖像雅可比矩陣跟許多實(shí)時(shí)變化的參數有關(guān),這是一個(gè)復雜的非線(xiàn)性過(guò)程,從理論上很難分析,并且對機器人的控制設計提出了較大的要求[2]。機器人視覺(jué)伺服系統是一個(gè)很復雜的系統,綜合了許多學(xué)科的內容,而各學(xué)科的發(fā)展又極不平衡,影響了其進(jìn)一步發(fā)展。正是基于此,機器人視覺(jué)伺服研究目前處于停滯不前的狀態(tài),國內對此方面的研究大多只是進(jìn)行了仿真實(shí)驗,而未在實(shí)際機器人系統上實(shí)現。本文利用松下交流伺服系統、pmac運動(dòng)控制卡、dsp圖像處理系統、工控機和機器人組成了伺服系統,在具體機器人系統中對其進(jìn)行實(shí)驗研究,探索基于圖像的機器人視覺(jué)伺服實(shí)現問(wèn)題。機器人視覺(jué)伺服系統組成部分 機器人系統及研究?jì)热?br /> ![]() 機器人視覺(jué)系統數學(xué)模型 ![]() 本文擬對系統進(jìn)行實(shí)驗研究。建立機器人坐標、攝像機坐標、圖像坐標和目標點(diǎn)坐標的坐標變換關(guān)系。圖2是在機器人的第二根桿末端安裝一個(gè)攝像頭,形成eye-in-hand構型而建立的坐標變換關(guān)系圖。圖3是攝像機系統坐標與圖像坐標的關(guān)系及成像原理示意圖。 設機器人第一關(guān)節和第二關(guān)節的轉角分別為θ1和θ2,第一根桿長(cháng)為l1,第二根桿長(cháng)為l2。選取圖2中o點(diǎn)作為基坐標參考點(diǎn),用[x0 y0 z0]t表示,攝像機坐標系用[xc yc zc]t表示,圖像坐標系用[u w]t表示;機器人第一關(guān)節用[x1 y1 z1]t表示,第二關(guān)節用[x2 y2 z2]t表示,設固定的目標點(diǎn)pc在攝像機坐標系(c)的齊次坐標為: pc =[xc yc zc1]t,在基坐標系(o)的齊次坐標為:p0=[x0 y0 z0 1]t,兩個(gè)坐標系之間的變換關(guān)系為:p0=0tcpc。 根據機器人運動(dòng)學(xué)得到攝像機坐標系與基坐標系之間的變換矩陣如下: ![]() 本實(shí)驗中機器人兩個(gè)關(guān)節均是由松下交流伺服電機驅動(dòng),電機和其驅動(dòng)控制器共同構成了松下交流伺服系統。松下minasa系列交流伺服系統由a系列驅動(dòng)器和配套交流伺服電機組成。其以三相交流伺服系統為基本原理[5],采用光電編碼器作為電機轉速和轉子磁極位置檢測單元,系統在驅動(dòng)器內部集成了相關(guān)功能模塊,構成了一個(gè)高集成度、高控制精度、數字化、智能化的閉環(huán)伺服控制系統。根據期望輸入指令值,按照已設定好的控制方式和各參數設定值,驅動(dòng)器控制各相關(guān)功能單元,產(chǎn)生出控制igbtpwm模塊的信號,最終控制伺服電機按照期望值運轉。系統具有分倍頻功能,可以以多種形式將反饋脈沖輸出給外部控制器或接收位置控制指令信號。系統具有多種控制模式,如速度和轉矩控制模式,以模擬信號作為輸入,本文采用的是轉矩控制模式[6]。 pmac運動(dòng)控制卡 pmac運動(dòng)控制卡是美國delta tau data systems公司生產(chǎn)的一種可編程、高性能伺服運動(dòng)多軸控制器,采用motorola公司的數字信號處理芯片dsp56001作為cpu。 pmac可認為是一臺完整的計算機,用dsp芯片作為主處理器,處理8個(gè)軸的所有計算并可同時(shí)控制8軸運動(dòng),具有獨立的存儲空間、輸入輸出接口以及其他外圍擴展電路。它可與各種類(lèi)型的主機、放大器、電機、傳感器結合完成各種類(lèi)型的功能,只要我們應用好其硬件特性和軟件特性,依據特定的功能要求對其進(jìn)行設置,就能使它正常高效地工作。pmac卡為用戶(hù)提供了pwin32應用軟件和pcomm32pro動(dòng)態(tài)鏈接庫。高級語(yǔ)言通過(guò)pcomm32pro動(dòng)態(tài)鏈接庫,可以直接調用相關(guān)函數與pmac卡進(jìn)行通訊,從而實(shí)現對pmac卡的控制[7]。本文將它與松下交流伺服系統配合使用。 dsp圖像處理系統及圖像處理 系統簡(jiǎn)介 本實(shí)驗中采用的是北京合眾達公司的seed-vpm642視頻處理系統,該系統是一款專(zhuān)為各種視頻應用而開(kāi)發(fā)的pci插卡或帶10/100m以太網(wǎng)接口的處理系統。它是在tms320dm642芯片基礎上通過(guò)外擴容量為4m×64位的同步動(dòng)態(tài)存儲器sdram;容量為4m×8位的在線(xiàn)電可擦/寫(xiě)異步存儲器flash;可配置為rs232/rs422/rs485標準的兩路uart串行接口;4路pal/ntsc標準模擬視頻輸入,1路pal/ntsc標準模擬視頻輸出;4路立體聲音頻輸入/輸出;實(shí)時(shí)時(shí)鐘rtc和512×8位eeprom;32位的33mhz、支持主/從模式的pci接口或者10/100mbase-tx標準以太網(wǎng)接口;標準ata硬盤(pán)接口;以及esam硬件加密模塊。系統可實(shí)時(shí)實(shí)現多路數字視頻/音頻的編解碼運算,如mpeg4、h.264、g.729等;可實(shí)時(shí)接收4路視頻/音頻輸入,并實(shí)時(shí)輸出。并能實(shí)現與其他io設備、計算機、存儲設備、以太網(wǎng)絡(luò )進(jìn)行實(shí)時(shí)數據的高速傳輸和處理。系統由實(shí)驗箱體、ccd攝像頭、seed-vpm642處理板等組成。在箱體上已固定好兩個(gè)串行接口、硬盤(pán)接口、4路圖像輸入和輸出接口、液晶顯示器等[8]。 圖像處理 本實(shí)驗圖像處理具體實(shí)現過(guò)程如圖4所示。 ![]() 機器人視覺(jué)伺服系統工作流程 硬件流程 本實(shí)驗系統由工控機、pmac運動(dòng)控制卡、松下交流伺服系統、dsp圖像處理系統和機器人組成。了解和熟悉松下交流伺服系統的原理和功能后,調試機器人關(guān)節伺服電機的運行,優(yōu)化相關(guān)控制參數以求獲得最好伺服效果;研究pmac運動(dòng)控制卡的原理和功能,并與松下交流伺服系統配合,編寫(xiě)運動(dòng)程序,不斷調整和優(yōu)化pmac卡的控制參數,以求獲得滿(mǎn)意的運動(dòng)控制效果;對seed-vpm642圖像處理系統進(jìn)行深入學(xué)習和研究后,開(kāi)發(fā)視頻圖像處理程序。組成該系統的硬件流程圖如圖5所示。 ![]() 系統工作流程 給定期望目標物體質(zhì)心圖像坐標,主控程序計算其與由dsp圖像處理系統反饋的質(zhì)心圖像坐標值的差值,判斷系統是否已到達伺服位置,若已到達,則結束伺服過(guò)程;否則,求解圖像雅可比矩陣的逆陣,得到機器人兩個(gè)關(guān)節應轉動(dòng)的角度值,并將其輸出給pmac運動(dòng)程序,pmac卡按運動(dòng)程序計算并輸出轉矩指令給松下伺服控制器,由它直接控制機器人關(guān)節電機的運轉,通過(guò)編碼器檢測關(guān)節的位置,反饋給伺服控制器和pmac卡(伺服控制器對編碼器信號進(jìn)行處理后自身使用并可同時(shí)輸出)。ccd攝像頭跟隨機器人運動(dòng),攝取目標物體圖像,通過(guò)dsp圖像處理程序處理后求得目標物體質(zhì)心圖像坐標,通過(guò)串口通訊傳遞給主控程序作為視覺(jué)反饋量,形成視覺(jué)伺服循環(huán)。 實(shí)驗結果 基于上述系統原理,在vc++6.0環(huán)境下編寫(xiě)主控程序,主控程序主要包括界面的顯示和人機交互部分、圖像雅可比矩陣逆陣部分、pmac應用程序部分,串口通信部分、數據存儲部分。程序運行界面如圖6所示。 ![]() ![]() |