摘 要:機器人視覺伺服系統的研究是機器人領域中的重要內容之一,其研究成果可以直接用于機器人自動避障、軌跡線跟蹤和運動目標跟蹤等問題中。本文針對機器人視覺伺服系統要求快速準確的特點,設計了基于TMS320C6201的機器人視覺圖像處理系統,并分析了基于圖像雅可比矩陣的機器人視覺伺服方法的基本原理。
關鍵詞:視覺伺服;圖像處理;TMS320C6201;實時性;圖像雅克比矩陣
1. 引言
機器人視覺伺服系統是機器人領域中的重要研究方向,起源于80年代初,隨著計算機技術、圖像處理技術、控制理論的發展,取得了很大進步,有一些系統已投入使用。視覺伺服跟通常所說的機器視覺有所不同,視覺伺服是利用機器視覺的原理,進行圖像的自動獲取分析,從直接得到的圖像處理反饋信息中,快速進行圖像處理,在盡量短的時間內給出反饋信號,構成機器人的位置閉環控制,實現對機器人的控制。正是由于系統以實現某種控制為目的,所以視覺伺服系統中的圖像處理過程必須快速準確。本文主要針對機器人視覺伺服系統要求快速準確的特點,為滿足項目研究的需要,討論研究了基于DSP的圖像反饋機器人視覺伺服技術。
2 . 系統工作原理及硬件構成
基于圖像的視覺伺服直接計算圖像誤差,產生控制信號,并變換到機器人運動空間,驅動機械手,完成伺服任務。該方法對標定誤差和空間模型誤差不敏感。
對于機器人視覺伺服系統,實時性問題一直是一個難以解決的重要問題。圖像采集速度較低以及圖像處理需要較長時間會給系統帶來明顯的時滯;此外視覺信息的引入也明顯增大了系統的計算量。而圖像處理速度是影響視覺伺服系統實時性的主要瓶頸之一。
實時圖像處理設計的難點是如何在有限的時間內完成對大量圖像數據的處理。從人的視覺理論分析,只有圖像處理系統的處理速度達每秒25幀以上時才能達到實時的效果,即要求實時圖像處理系統必須在40ms內完成對一幀l圖像的運算處理,才能保證圖像的實時性。為了達到該處理速度,我們采用了基于DSP的圖像視覺伺服方式,其結構如圖1所示。

圖1 基于DSP的圖像反饋機器人視覺伺服結構圖
2.1 WTC6201PA板簡介
本文選用了聞亭公司的WTC6201PA板,其板上硬件組成如圖2所示。

圖2 WTC6201PA板硬件組成
WTC6201PA板屬于EVM板中的一種,它采用了TI公司的DSP器件TMS320C6201芯片。TMS320C6201芯片的最高時鐘頻率為200MHZ,每個時鐘周期最多可以執行8條指令,從而實現16000MIPS的定點運算能力,它具有如下主要特點:
· 采用了修正的哈佛總線結構,獨立的程序總線、數據總線和DMA總線使得取指、讀寫數據和DMA操作可以并行。
· 采用流水線處理,使兩個或多個不同的操作可以重疊執行,提高了程序執行速度。
· 具有高性能的外部存儲器擴展接口EMIF,可以直接與同步突發靜態存儲器SBSRAM、同步動態存儲器SDRAM連接,用于大容量、高速存儲;還包括直接異步存儲器接口,可與靜態存儲器SRAM、只讀存儲器EPROM連接,用于小容量的數據存儲和程序存儲;芯片內部集成的64K程序存儲器可配置成CASHE,以提高程序執行效率。
· 16位主機口能夠和其它CPU的存儲區以及外圍電路進行通信。且多通道DMA控制器可在沒有CPU參與的情況下完成映射存儲空間中的數據搬移,從而減輕CPU的工作量。
同時板上配置了高速同步存儲器SBSRAM(128K×32Bit)和SDRAM(4M×32bit),兩路A/D轉換器,大容量的FPGA器件和外部I/O接口,板上還提供了一個McBSP接口,兼容5V TTL電平,方便用戶與外部系統通信。WT6201PA板滿足PCI Local Bus Revision 2.1 協議,主機可訪問DSP的所有資源,用戶可通過主機加載程序。WTC6201PA板提供了Win98和NT下的驅動軟件及DSP的應用軟件(APIs),利用這個硬件平臺和底層軟件庫,用戶可以很容易的進行軟件開發。
2.2 系統硬件實現
我們選用了WTC6201PA板上的TMS320C6201芯片、FPGA、SBSRAM、SDRAM、雙口RAM、PCI總線、JTAG接口等硬件資源作為視覺圖像處理單元,和PC主控機、圖像采集卡、CCD攝像機和機器人控制系統組成系統,原理框圖如圖3所示。

圖3 系統原理框圖
系統工作過程如下:
CCD攝像機輸出標準制式的全電視信號,其中包含著圖像信號、復合同步信號、行、場消隱信號、槽脈沖和前后均衡脈沖等七種信號。本系統采用了北京大恒公司的DH-PCI-H圖像采集卡來實現視頻信號的預處理。CCD攝像機將視頻數據輸入到圖像采集卡,圖像采集卡按照設定的窗口位置、大小和方式采集視頻數據,采集的數據存儲在計算機的內存中。圖像傳輸由圖像卡控制的,無需CPU參與,圖像傳輸速度可達40MB/S。
設置圖像采集卡的采集方式是25幀/s連續采集,則采集一幀的時間為40ms,每一幀圖像由奇偶兩場組成,場頻為50HZ,即一場掃描時間為20ms。圖像采集大小為512×512像素,量化為8bit,256灰度級,則一幀圖像的數據量為512×512×8bit=256KB。圖像數據存儲方式為隔行存放,即奇、偶場的圖像數據交叉存放,組成一幀完整圖像函數。
C6201由BOOTMODE[4:0]設置芯片的自舉方式,加載過程采用主機(HPI)引導方式。外部主機通過主機口初始化CPU的存儲空間,主機完成所有的初始化后,將主機口控制寄存器中的DSPINT位設置為1,結束引導過程。CPU退出復位狀態,開始執行地址0處的指令。
系統上電后,主機經HPI口對系統初始化,主要完成對各寄存器的設置,包括EMIF、中斷、DMA等相關的寄存器初始化操作等。主機向HPI控制寄存器的DSPINT位寫1觸發DSP運行,系統進入等待狀態。CCD攝像機實時采集圖像,經圖像采集卡處理后存儲到主機內存。PC機內存緩沖區一幀存滿,向DSP發中斷信號,DSP應答后,通過PCI總線將圖像數據從主機內存經HPI口傳輸到WTC6201PA板片外SDRAM。DSP控制波門范圍內圖像數據以DMA方式傳輸到內部數據存儲器。由于DSP為指令結構處理芯片,具有可編程性好、可以處理大量復雜指令(由程序RAM地址空間的大小決定)等優點,但相對FPGA而言其處理速度比較慢;而FPGA為可編程邏輯器件,具有很強的細粒度并行處理和多級流水線處理能力,但其內部有限的邏輯資源使之不適合實現復雜邏輯運算。因此我們采用FPGA作為協處理器來完成底層操作,再由DSP完成高層操作,兩種操作可以采用流水線的方式并行運行,共同完成高速圖像處理。從FPGA到DSP之間的圖像數據傳輸使用雙端口RAM。處理完一幀圖像后,DSP向主機發信息,主機應答后,將圖像處理結果經PCI總線傳輸至PC機內存,PC機再將位置偏差數據信號送至伺服控制系統,完成伺服任務。