孫江正,孫春霞
(蘭州交通大學 電子與信息工程學院,蘭州730070)
隨著嵌入式技術的發展,基于小型便攜式識別和集群控制技術較傳統計算機技術具有更廣闊的應用。基于攝像頭的顏色識別技術較一般傳感器定位和采集技術具有穩定性和可移動等方面的優勢[1],在生產車間自動物料配送車的循跡以及基于顏色的物料提取中具有廣泛的應用前景[2]。而集群控制作為一種新生的控制方式,在大范圍、多控制對象的控制方面具有舉足輕重的作用,如太陽能發電板的集群控制、風力發電機的集群控制以及大型舞臺劇中的燈光集群控制。而本文中的小車集群控制是將顏色識別與集群控制的較好方式。小車位置及方向信息通過攝像頭的顏色識別技術獲取,處理之后傳送到STM32進行校驗,并通過無線模塊發送出去,驅動多輛小車按指定的路線行走,從而實現集群控制。
本文中的設計系統由智能小車和攝像頭控制模塊兩部分組成,為滿足集群控制的需要選用3輛小車,小車由兩輪驅動,便于在行走過程中調節方向。每輛小車搭載NRF無線模塊和測速模塊,可以實現小車的旋轉角度測量以及速度調整。跑道的正上方是USB攝像頭,通過5 m長的延長線與地面的主控板相連接。為滿足數據的實時處理及多任務控制的需要,主控板采用Tiny2440四核Cortex-A9核處理器,搭載Linux系統,通過QT的設計使得操作界面美觀易操作。為減輕處理器內核的負擔以及確保傳送指令的準確性[3],指令的校驗工作由外圍的STM32芯片處理,并通過nRF模塊與小車通信。系統整體結構圖如圖1所示。
Exynos 4412采用哈佛結構設計,使得數據和代碼的讀取速率較高,而其特有的四核處理器具有1.5 GHz的主頻,使得對攝像頭采集數據的處理更加實時,并流暢支持1280×800高清屏,可通過LCD屏指定小車路線范圍,實施控制??刂破鲀炔拷Y構圖如圖2所示。

圖1 系統整體結構圖
智能小車對于接收指令的實時響應決定了最終的控制效果,本文中的智能小車采用意法半導體公司的STM32F103C8T6作為控制芯片,通過產生的PWM信號來控制直流電機的轉速。在實際控制過程中需要涉及到小車的定向旋轉,以及直線行駛的問題,于是在小車中引入了光電紅外對射管作為小車的測速模塊。
當直線行駛時,小車將通過測速碼盤的脈沖輸出來判斷轉速的大小,從而作出左右輪轉速的調整。同時小車會將調整的結果存入到內部Flash中作為下一次啟動時的調整數據,這樣只要在實際運行前做測試調整,小車就會在直線行駛時,實現不同場地的阻力誤差記憶。小車控制板結構圖如圖3所示。
小車的頂部色盤必須同時具備小車位置定位和方向定位功能。由于通過形狀定位的傳統方式對攝像頭要求過高且識別精度有較大誤差,本設計采用兩個圓盤的顏色識別方式來實現這一功能。小車頂部色盤如圖4所示。

圖4 小車頂部色盤
小車的控制數據由8個字節組成,如下所示:

其中,1、2、3、8為指令校驗碼,4~7為指令內容。第1個字節到第3個字節表示數據頭,都是0x80。第8個字節表示數據尾,是0x81。這樣只有出現數據頭的字節,其后面的內容才被小車識別為有用的數據,使得小車正確運轉。數據尾的出現代表對小車的控制結束。
數據內容為發送控制指令的具體形式。小車有以下幾個命令。
(1)直線前進

(2)停止

(3)原地轉向

小車轉向的幅度可以從0x01到0x1f,方向0x01代表右轉,0x02代表左轉。
④小車左右輪前進

由于USB攝像頭采集到的顏色數據為YUV格式,需要將其轉換成RGB格式來顯示。所以在確定小車搭載定位色盤的顏色時需要選定特殊的顏色,以使得采集到的數據容易被分辨。本設計在原色選擇時采用Y、U、V為三維坐標軸使得色盤的YUV分量之間存在一定差距,再通過公式將其轉換成RGB基色值[6]。
軟件平臺為Linux Kernel 3.5、Qtopia-2.2.0;交叉編譯環境為嵌入式QT、arm-linux-gcc;開發語言為C++。
此模塊在一個線程中,先讀取配置文件,得到各個顏色的Y、U、V平均值,然后從攝像頭取得一幀的圖像,按行掃描每個像素,根據Y、U、V平均值確定Y、U、V的閥值對像素的Y、U、V值進行匹配,從而確定像素的顏色。程序把各個顏色的像素點分類,同一顏色的像素點坐標放在一起,然后算出同一顏色像素點的中心坐標。然后通過表1對應到小車的坐標。

表1 小車顏色像素坐標
得到3輛小車的中心點坐標和方向點坐標后,存放在內存中,供其他模塊調用。攝像頭采集數據流程圖如圖5所示。

圖5 攝像頭采集數據數據流圖
集群小車在行走的過程中為了防止相互之間的碰撞,必須采用相應的防碰撞措施。在本設計中采用角度與距離來實現防碰撞控制,當小車1和2之間的距離L<L′時,L′為—固定值,意味著兩車之間有碰撞的可能性[7],此時需對小車1的運動方向與兩車連線之間的夾角進行計算。當r<r′時,則小車1停止運動。當不滿足夾角r′要求時,小車1則不會停止[8],r′為—固定值。兩小車防碰撞原理圖如圖6所示。

圖6 兩小車防碰撞原理圖
小車在防碰撞過程中若出現全部車輛停止(即進入鎖死狀態),則啟動應急預案,使邊緣小車在原地向鎖死反方向轉動相應的角度,并行走一段距離,以解除鎖死狀態[9]。
小車控制軟件流程圖如圖7所示。

圖7 小車控制軟件流程圖
為防止因環境顏色和光照的影響,測試場地為一塊2 m×3 m的長方形布料,剛好是攝像頭的拍攝范圍。
①小車測試。通過直線行駛指令,將小車放在測試場地中,使小車直線行駛一段距離。小車將獲得兩個不同的PWM信號占空比,作為下一次啟動時的配置參數。
②小車頂部色盤像素的采集。為消除因光照強度所引起的顏色誤差,需先將與小車頂部色盤相同顏色的紙片放在場地中間,攝像頭將采集這一坐標的像素值作為參考值[5],用于實際測試過程中的顏色識別與定位。
③為小車設置起跑路線圖。通過LCD屏,在上面為小車指定運動的路線圖,其后小車將按照設定的軌跡行走。行駛過程中小車很好地實現了集群之間防碰撞的功能。
小車路線圖如圖8所示。

圖8 LCD上指定的小車路線圖
基于顏色識別的集群控制系統,可以通過顏色的采集來實現定位,是自動控制和人工智能方面的一種可行方式,具有運行穩定、使用方便的優點。而多控制對象的集群控制理論的研究,使得多目標協同工作成為可能。基于此模式的智能控制設備具有廣闊的應用前景。
[1]周見行,高紅俐,齊子誠.基于基于攝像頭自動跟蹤定位的疲勞裂紋在線測量方法研究[J].中國機械工程,2011,11(6):1302-1304.
[2]秦峰,劉甜甜,尤海鵬.基于圖像識別的水下機器人自主避障系統[J].兵工自動化,2012,31(11):87-89.
[3]王鵬,秦文進.基于ARM和FPGA的嵌入式工業控制器設計[J].自動化與儀器儀表,2014,1(1):53-55.
[4]潘浩,楊宜民.一種基于光照變化補償的顏色識別方法[J].計算機與現代化,2012,4(3):201-204.
[5]李貴俊,劉正熙,游志勝,等.一種基于色差和彩色歸一化的車身顏色識別算法[J].計算機應用,2004,24(9):47-49.
[6]王志剛,王慶.一種分級的車牌顏色識別方法[J].計算機過程與應用,2008,44(24):178-180.
[7]趙剛,黃席樾.障礙空間中的飛行器編隊與集群控制研究[J].系統仿真學報,2009(2):92-96.
[8]Wang X,V Yadav,S N Balakrishnan.Cooperative UAV Formation Flying with Obatacal Collision Avoidance[J].The IEEE Trans.on Control System Technology(S1063-6536),2007,15(4):672-679.
[9]Balch T,R C Arkin.Behavior-based Formation Control for Multirobot Teams[J].The IEEE Trans on Robotics and Automation(S1042-296),2008,14(6):926-939.