樊 劍,袁月峰,蔡曉雯
(中國計量學院 質量與安全工程學院,杭州 310018)
AGV是Automated Guided Vehicle的英文縮寫,中文解釋為自動導引車輛[1]。近幾年,隨著計算機技術的發(fā)展和CCD圖像技術的成熟,加上自動化加工生產(chǎn)和柔性制造系統(tǒng)等先進的生產(chǎn)技術在社會生產(chǎn)中逐漸興起,微控制器和機器視覺技術在工業(yè)領域的應用也越來越廣泛,設計穩(wěn)定的AGV自動導航車也顯得越來越重要[2]。AGV自動導航車的控制方法要根據(jù)不同的應用場合而有所變化,本文以制造業(yè)運輸裝配線為研究對象。
主要的研究內容是以單片機為核心控制器采用基于機器視覺的AGV自動導航車的圖像數(shù)據(jù)采集與處理和步進電機的控制方法等。
本系統(tǒng)的自動導航車的軌跡規(guī)劃如圖1所示。由圖可知,自動導航車的運行流程為。
1)導航車在停車工位停止等候送貨指令的發(fā)送,待接收到指令(送貨工位x)后,開始沿著黑線循跡,直到找到工位x的進工位標志,之后直角轉彎進入工位卸貨,待接收到卸貨完成的指令之后繼續(xù)前進,直到出工位標志。
2)直角轉彎之后循跡回到倉庫停車位置等待下一次運輸指令的發(fā)送。
圖1 自動導航車軌跡規(guī)劃
CCD圖像采集和和處理電路的設計是本系統(tǒng)硬件設計的關鍵部分,具體電路設計如圖2所示。其中,J1為Omnivsion公司生產(chǎn)的CMOS圖像傳感器OV7620,系統(tǒng)選用的OV7620是YUV 16/8位可選模式,系統(tǒng)主要研究的是在320×240分辨率下處理8位的Y信號分量。系統(tǒng)涉及的信號有場中斷(VSYNC)、行中斷(HREF)和8位的Y數(shù)據(jù)(Y0-Y7)。U1為單片機控制器,采用的是Microchip公司的16位單片機PIC33FJ256MC710。U2為MAX232電平轉換芯片,P1為電腦的串口。單片機控制器分別通過三個信號線(EN,Dir,PWM)與Stepper motor_1(步進電機驅動器1)和Stepper motor_2(步進電機驅動器2)相連。為了能清晰直觀地看出單片機中采集到的圖像信息,需要將單片機中采集到的數(shù)據(jù)通過串口通信與上位機連接,通過上位機上的軟件顯示采集到的數(shù)據(jù),從而判斷單片機的數(shù)據(jù)采集的準確性[3]。
為了提高系統(tǒng)的實時性,視頻采集采用的是外部中斷觸發(fā)采樣的方式采集圖像數(shù)據(jù)。
系統(tǒng)在進行中斷函數(shù)初始化時,需要將場中斷設置為下降沿捕捉,行中斷設置為上升沿捕捉,在場中斷中開啟行中斷,在行中斷之后連續(xù)讀取8位的Y數(shù)據(jù)[4]。
在8位數(shù)據(jù)的讀取中,要通過調整讀取數(shù)據(jù)的時間間隔來保證采樣的準確性,防止采集到的圖像數(shù)據(jù)發(fā)生左右偏移的現(xiàn)象,這個過程就需要通過上位機進行聯(lián)合測試,系統(tǒng)的圖像采集流程圖如圖3所示。
從整個自動導航車來看,由于場中斷信號的頻率是60Hz,所以系統(tǒng)在16.67ms的場中斷時間間隔中,不但要完成圖像數(shù)據(jù)的采集和處理,還要完成電機脈沖的控制。
因此,系統(tǒng)采用隔行采樣的方式,但又要保證足夠的采樣數(shù)據(jù),所以必須選擇合適的采樣間隔。系統(tǒng)采用從第17行開始采樣,每隔7行采樣一次的方式,這樣的話需要采樣的行為17,24,31……共采集40行50列,即采樣數(shù)組CCD_DATA為40行50列的數(shù)組,數(shù)據(jù)采樣到第290個行中斷之后停止采樣。
圖2 圖像采集與處理電路
圖像信息經(jīng)過CCD采集之后傳輸給單片機,單片機接收到的是灰色圖的數(shù)據(jù),要想更近一步地處理圖像數(shù)據(jù),需要將灰色圖像的數(shù)據(jù)經(jīng)過閾值分割(二值化)之后轉換成黑白兩色的二值化圖,這項技術也叫圖像閾值分割[5]。閾值分割之后的二值化圖只有0(0x00)和255(0xff)兩個值,如圖4所示。其中,0x00表示的是黑色的像素點,0xff表示的是白色的像素點。由此可見,最優(yōu)的二值化分割閾值(T1)就是擁有良好二值化效果的一個關鍵和決定性因素。
圖3 圖像數(shù)據(jù)采集流程圖
圖4 二值化灰度變換函數(shù)
閾值確定的一般方法有:峰谷法、迭代法、大律法和分水嶺法等[6]。為了能使單片機控制器更加快速簡單的實現(xiàn)該算法,本系統(tǒng)采用了大律法進行閾值分割。大律法又稱最大方差法,其實現(xiàn)過程如下:
1)首先記T為分割閾值,利用T把數(shù)組CCD_DATA分成兩組R1和R2,用公式(1)和公式(2)確定R1和R2的平均灰度。
其中N1和N2分別是R1和R2中的像素點個數(shù)。
2)從最小灰度值到最大灰度值遍歷T,當T使得公式(3)達到最大時,T即為分割的最佳閾值。其中 0w和 1w分別表示R1和R2的中像素點數(shù)所占總像素點數(shù)的比例。
在實際控制器的實現(xiàn)過程中,為了減少控制器的運算,可以對該方法進行適當?shù)母倪M??梢栽O定一個T值的合理變化區(qū)間,在驗證公式(3)時,在這個區(qū)間之中從小到大遍歷T,這樣就可以減少運算次數(shù),提高控制器的工作效率。
在閾值的確定中,環(huán)境明亮程度的變化會使最佳閾值發(fā)生變化,固定的閾值就無法適應明亮程度變化的環(huán)境,所以需要采用動態(tài)調整的閾值。本系統(tǒng)的動態(tài)閾值調整法的實現(xiàn)方法是每隔時間Δt,根據(jù)采集到的圖像數(shù)據(jù),重新確定圖像的閾值,使圖像的閾值能根據(jù)環(huán)境的不同做相應的調整,從而消除了固定閾值不能適應環(huán)境變化的弊端。
圖5 單片機二值化路徑與實際路徑對比圖
本系統(tǒng)的圖像采集與處理的試驗是在鋪有接近白色的地面上進行的,在該地面上鋪設黑色的引導線?;趩纹瑱C控制器的視覺導航AGV能準確實時提取標識線的導航參數(shù)AGV實時跟蹤路面標識線,如圖5所示。
圖的上半部分是攝像頭采集到的實際路徑圖,圖的下半部分是上位機顯示,即單片機采集到經(jīng)過二值化處理的的路徑圖像。由圖5可知,當識別不同的路徑時,該導航車系統(tǒng)能表現(xiàn)出較好的路徑識別效果。
檢測路徑的中心位置是用來定位路徑的,圖像數(shù)據(jù)經(jīng)過單片機的二值化處理之后,要想確定中心線,必須將二值化圖中的路徑用邊沿檢測的方法檢測出來,邊沿檢測后,確定一行數(shù)據(jù)的左右邊沿的位置,之后求左右邊沿的均值就可以確定中點的位置,并由中點確定圖像的中心線。
當步進電機的運行頻率(fy)低于它本身的啟動頻率(fq)時,步進電機可以用運行頻率(fy)直接啟動,并以該頻率連續(xù)運行,當需要停止時可以從運行頻率(fy)直接降到零速;當步進電機的運行頻率(fy)高于啟動頻率(fq)時,由于頻率太高會產(chǎn)生丟步,甚至堵轉的情況,所以步進電機必須采用升降速控制,也就是脈沖頻率的升降頻控制[7]。
升降頻采用的是直線升降頻法,這種方法以恒定的加速度進行升降頻,這種方法平穩(wěn)性好,加速時間較長,適用于速度變化不是特別劇烈的情況,加減速過程較簡單,控制器容易實現(xiàn)[8]。
由于步進電機真實速度不僅難以測量,而且用解析式也很難表示,所以在升降速控制時以控制脈沖的實時頻率為基準。
由于系統(tǒng)采用的是直線升降頻法,所以可以隨機截取一段升頻過程。假設當前脈沖頻率為fc,想要設置的脈沖頻率為ft(ft>fc),則升頻的算法如公式(4)所示,其中t為升降頻所用的時間,k為單位時間內所上升的頻率點數(shù)。
則程序運行時,可以由公式(5)計算出升頻所用的時間為:
由于系統(tǒng)采用的脈沖產(chǎn)生模式是定時器中斷模式,為了在單片機中實現(xiàn)升頻,必須將升頻段均勻地離散為n段。取n=6為例,如圖6所示。
將升速過程均勻地分成了6檔。由公式(5)可知,總的升頻時間為t,則相鄰兩次的頻率變化時間間隔為:
公式(6)中的n階梯升頻的分檔數(shù),則每一檔的頻率為:
以上就是對升頻所做的處理,降頻過程的處理方法與升頻過程類似。
圖6 升降頻實現(xiàn)過程圖
由系統(tǒng)的運行線路可知,系統(tǒng)的所有轉彎都是采用直角轉彎,所以準確地轉過每一個直角轉彎是系統(tǒng)安全有效運行的關鍵。步進電機的開環(huán)控制可以使直角轉彎的實現(xiàn)更為簡單,因為步進電機轉過的角度可以通過計數(shù)發(fā)送的脈沖個數(shù)來決定[9,10]。
如圖7所示,車輪間距為R,車輪半徑為r,車子繞一個車輪的中心轉過90°角,則轉動的車輪走過的路程為:
由公式(8)可得電機轉過的角度為:
從而根據(jù)步進電機的步距角a,控制器要想實現(xiàn)直角轉彎需要發(fā)送的脈沖個數(shù)為:
本文介紹了基于PIC33FJ256MC710單片機控制器的機器視覺小車的控制方法,通過上位機測試圖像采集與處理的準確性。以單片機為控制核心,從理論分析和實時測試CCD圖像數(shù)據(jù)的采集與處理過程和步進電機的控制方法,在對步進電機的控制上建立了開環(huán)的控制方法。本文的硬件設計和控制方法是基于特定的運行場景和配送系統(tǒng),本文提出的理論在普適性上還有待提高。
圖7 直角轉彎示意圖
[1] 于洋.AGV及其控制器的設計與開發(fā)[D].浙江大學,2008:1-12.
[2] 孫海濤.基于視覺導航的智能車輛自主行駛研究[D].合肥工業(yè)大學機械與汽車學院,2004:1-20.
[3] Sigal Berman,Edna Schechtman,Tael Edan.Evaluation of automated guided vehicle systems[J].Robotics and Computer-Integrated Manufacturing,2009,(25):522-524.
[4] 朱翔,潘崢嶸.基于OV7620的機器人視覺導航系統(tǒng)設計[J].電子測量技術,2010,33(1):64-66.
[5] 劉進,齊曉慧.基于機器視覺的AGV路徑跟蹤[J].火力與指揮控制,2010,35(8):132-133.
[6] 王立賢,汪濱琦.用單片機實現(xiàn)步進電機變速控制的方法[J].應用科技,2003,30(l):42-42,54.
[7] 王玉琳,王強.步進電機的速度調節(jié)方法[J].電機與控制應用,2006,33(1):53-56.
[8] 吳謹,熊理良.基于場掃描的AGV路徑識別[J].武漢科技大學學報,2005,28(3):284-286.
[9] 王紹燕,王衛(wèi)江.PC機與單片機間通信程序的實現(xiàn)[J].電子產(chǎn)品世界,2002:39-40,55.
[10] Iris F.A.Vis.Survey of research in the design and control of automated guided vehicle systems[J].European Journal of Operational Research,2006,(170):677-681.