基于Nios II的機器人視覺伺服控制器的研究與設(shè)計
引言
本文引用地址:http://m.butianyuan.cn/article/88782.htmAltera公司的Nios II處理器是可編程邏輯器件的軟核處理器。NiosII軟核處理器和存儲器、I/O接口等外設(shè)可嵌入到FPGA中,組成一個可編程單芯片系統(tǒng)(SOPC),大大降低了系統(tǒng)的成本、體積和功耗。適合網(wǎng)絡(luò)、電信、數(shù)據(jù)通信、嵌入式和消費市場等各種嵌入式應(yīng)用場合。
本文提出一個基于Nios II處理器結(jié)構(gòu)的系統(tǒng)用于實現(xiàn)機器人實時運動檢測跟蹤,使用線性卡爾曼濾波器算法來快速完成運動估計及進一步分析和校正,算法中的乘除利用MATLAB/DSP Builder生成的模塊作為Nios II處理器的自定義指令的設(shè)計方法。
機器人視覺伺服控制器的研究與設(shè)計
機器人視覺伺服控制就是用各種成像系統(tǒng)代替視覺器官作為輸入的敏感手段,并由高速處理器替代大腦完成相應(yīng)的處理和解釋,其最終研究目標(biāo)就是使機器人視覺伺服控制器能像人那樣通過視覺觀察和理解世界,具有自主適應(yīng)環(huán)境的能力,可依據(jù)視覺敏感和反饋,以某種程度的智能完成一定的任務(wù)。
系統(tǒng)硬件實現(xiàn)
基于SOPC的機器人視覺伺服控制器,主要由FPGA、存儲器和外設(shè)三個部分,如圖1所示。
攝像頭位置固定,它所能采集圖像的范圍稱為視覺區(qū)域,調(diào)整攝像機使視覺區(qū)域覆蓋機器人的工作空間,即機器人要跟蹤的曲線在該視覺區(qū)域內(nèi)。利用攝像機采集圖像,而后系統(tǒng)對采集的圖像進行處理,分析、提取出離散的采樣點序列,最后再根據(jù)采樣點序列規(guī)劃機器人的運動路徑。其中,F(xiàn)PGA部分核心是Nios II處理器Core。在一般的嵌入式系統(tǒng)開發(fā)中,當(dāng)需要新的外設(shè)模塊時往往需要在PCB上加入相應(yīng)的外設(shè)芯片或者換用更高檔的CPU,而SOPC設(shè)計可以同一個FPGA芯片內(nèi)加入相應(yīng)的外設(shè)模塊核,并通過在片上的Avalon總線與NiosⅡ處理器Core相連,因而不需要在PCB這個層面上作更多的修改。成像采集裝置從目標(biāo)對象場景中采集圖像序列,保存在SOPC的片外存儲器中,然后利用NiosⅡ處理器和定制的乘法、除法等DSP運算指令來實現(xiàn)線形卡爾曼濾波器的算法,從而實現(xiàn)運動目標(biāo)的識別與跟蹤。
系統(tǒng)軟件的實現(xiàn)
離散線性卡爾曼濾波算法
線性卡爾曼濾波是美國工程師Kalman在線性最小方差估計的基礎(chǔ)上,提出的數(shù)學(xué)結(jié)構(gòu)上比較簡單的最優(yōu)線性遞推濾波方法,具有計算量、存儲量低,實時性高的優(yōu)點。特別是經(jīng)歷了初始濾波的過渡狀態(tài)后,濾波效果非常好。
線性卡爾曼濾波基本算法如下:設(shè)一隨機動態(tài)系統(tǒng),其數(shù)學(xué)模型為:
公式1中x(k)為系統(tǒng)狀態(tài)矢量,w(k)為系統(tǒng)噪音矢量,φ(k),Г(k)為系統(tǒng)矩陣,公式2中Z(k)為系統(tǒng)觀測矢量,H(k)為系統(tǒng)觀測矩陣,V(k)為系統(tǒng)觀測噪音矩陣。
關(guān)于系統(tǒng)的隨機性,本文假定,系統(tǒng)噪音和觀測噪音是不相關(guān)的零均值高斯白噪聲。隨機系統(tǒng)的狀態(tài)估計問題,就是根據(jù)選定的估計準(zhǔn)則和獲取的測量信息對系統(tǒng)狀態(tài)進行估計,卡爾曼濾波的估計準(zhǔn)則是:
其中,即估計是x(k)無偏和最小方差,根據(jù)這兩個準(zhǔn)則可推導(dǎo)出對系統(tǒng)的完整的濾波算法,即:
預(yù)測誤差方程為:
增益矩陣方程為:
濾波誤差方差陣為:
上述公式中I是單位矩陣,Q為w(k)自協(xié)方差方差陣,R為V(k)自協(xié)方差方差陣??柭鼮V波采用遞推算法,計算最優(yōu)濾波值時,K(k+1)由P(k+1|k)來確定,P(k+1|k)由P(k)來確定,P(k+1)由P(k+1|k)和K(k+1)來確定,如此反復(fù)遞推運算。
系統(tǒng)程序流程
本系統(tǒng)的主要功能是完成運動目標(biāo)的鎖定,并控制運動平臺對目標(biāo)進行實時跟蹤。使用高性能NiosII處理器作為控制器控制著整個系統(tǒng)的實現(xiàn)流程和高效的線性卡爾曼濾波算法對目標(biāo)運動參數(shù)的估計,有效地提高了圖像處理速度,實現(xiàn)了運動目標(biāo)的快速跟蹤。以下是系統(tǒng)流程:
1.系統(tǒng)初始化:由SOPC通過控制總線設(shè)置USB接口微型攝像頭工作模式,并初始化其主控程序變量。
2.確定運動區(qū)域:由Nios II處理器根據(jù)圖像序列鎖定運動物體,根據(jù)被跟蹤物體確定運動跟蹤區(qū)間,接下來的跟蹤操作都是在這個跟蹤窗口中進行。
3.預(yù)測計算:利用線形卡爾曼濾波器方程進行計算。
4.濾波:預(yù)測和濾波是相互作用的,即由濾波得到預(yù)測而由預(yù)測又可得到濾波。
5.輸出:SOPC發(fā)出控制信號給隨動平臺。
該系統(tǒng)采用集成了Nios軟核處理器的Stratix高密度FPGA,控制器通過攝像頭記錄每一時刻運動目標(biāo)的位置和速度作為觀測值。然后按照公式(3)、(4)、(5)、(6)進行最佳狀態(tài)估計,得到每一時刻運動目標(biāo)的位置和速度的預(yù)測值。由于各種干擾因素的存在,經(jīng)過七八個時間段后預(yù)測位置與觀測位置相當(dāng)接近,即可實現(xiàn)準(zhǔn)確的狀態(tài)預(yù)測。
結(jié)語
本文建立了一套基于SOPC結(jié)構(gòu)的多關(guān)節(jié)機器人視覺伺服系統(tǒng),主要應(yīng)用線性卡爾曼濾波算法成功的預(yù)測了運動目標(biāo)的狀態(tài)參數(shù)功能是鎖定運動目標(biāo),實現(xiàn)對目標(biāo)進行實時跟蹤。由于應(yīng)用卡爾曼濾波后極大地縮小了搜索空間,減少了系統(tǒng)的圖像處理時間,可以有效地提高系統(tǒng)的實時性,實現(xiàn)對運動目標(biāo)的快速跟蹤。
評論