基于顏色識(shí)別的智能小車(chē)集群控制
引言
本文引用地址:http://www.ex-cimer.com/article/201610/309878.htm隨著嵌入式技術(shù)的發(fā)展,基于小型便攜式識(shí)別和集群控制技術(shù)較傳統(tǒng)計(jì)算機(jī)技術(shù)具有更廣闊的應(yīng)用?;跀z像頭的顏色識(shí)別技術(shù)較一般傳感器定位和采集技術(shù)具有穩(wěn)定性和可移動(dòng)等方面的優(yōu)勢(shì),在生產(chǎn)車(chē)間自動(dòng)物料配送車(chē)的循跡以及基于顏色的物料提取中具有廣泛的應(yīng)用前景。而集群控制作為一種新生的控制方式,在大范圍、多控制對(duì)象的控制方面具有舉足輕重的作用,如太陽(yáng)能發(fā)電板的集群控制、風(fēng)力發(fā)電機(jī)的集群控制以及大型舞臺(tái)劇中的燈光集群控制。而本文中的小車(chē)集群控制是將顏色識(shí)別與集群控制的較好方式。小車(chē)位置及方向信息通過(guò)攝像頭的顏色識(shí)別技術(shù)獲取,處理之后傳送到STM32進(jìn)行校驗(yàn),并通過(guò)無(wú)線(xiàn)模塊發(fā)送出去,驅(qū)動(dòng)多輛小車(chē)按指定的路線(xiàn)行走,從而實(shí)現(xiàn)集群控制。
1 系統(tǒng)整體構(gòu)架
本文中的設(shè)計(jì)系統(tǒng)由智能小車(chē)和攝像頭控制模塊兩部分組成,為滿(mǎn)足集群控制的需要選用3輛小車(chē),小車(chē)由兩輪驅(qū)動(dòng),便于在行走過(guò)程中調(diào)節(jié)方向。每輛小車(chē)搭載NRF無(wú)線(xiàn)模塊和測(cè)速模塊,可以實(shí)現(xiàn)小車(chē)的旋轉(zhuǎn)角度測(cè)量以及速度調(diào)整。跑道的正上方是USB攝像頭,通過(guò)5m長(zhǎng)的延長(zhǎng)線(xiàn)與地面的主控板相連接。為滿(mǎn)足數(shù)據(jù)的實(shí)時(shí)處理及多任務(wù)控制的需要,主控板采用Tiny2440四核Cortex—A9核處理器,搭載Linux系統(tǒng),通過(guò)QT的設(shè)計(jì)使得操作界面美觀易操作。為減輕處理器內(nèi)核的負(fù)擔(dān)以及確保傳送指令的準(zhǔn)確性,指令的校驗(yàn)工作由外圍的STM32芯片處理,并通過(guò)nRF模塊與小車(chē)通信。系統(tǒng)整體結(jié)構(gòu)圖如圖1所示。
2 硬件結(jié)構(gòu)
2.1 主控制器硬件結(jié)構(gòu)
Exynos 4412采用哈佛結(jié)構(gòu)設(shè)計(jì),使得數(shù)據(jù)和代碼的讀取速率較高,而其特有的四核處理器具有1.5 GHz的主頻,使得對(duì)攝像頭采集數(shù)據(jù)的處理更加實(shí)時(shí),并流暢支持1280× 800高清屏,可通過(guò)LCD屏指定小車(chē)路線(xiàn)范圍,實(shí)施控制??刂破鲀?nèi)部結(jié)構(gòu)圖如圖2所示。
2.2 智能控制結(jié)構(gòu)
智能小車(chē)對(duì)于接收指令的實(shí)時(shí)響應(yīng)決定了最終的控制效果,本文中的智能小車(chē)采用意法半導(dǎo)體公司的STM32F103C8T6作為控制芯片,通過(guò)產(chǎn)生的PWM信號(hào)來(lái)控制直流電機(jī)的轉(zhuǎn)速。在實(shí)際控制過(guò)程中需要涉及到小車(chē)的定向旋轉(zhuǎn),以及直線(xiàn)行駛的問(wèn)題,于是在小車(chē)中引入了光電紅外對(duì)射管作為小車(chē)的測(cè)速模塊。
當(dāng)直線(xiàn)行駛時(shí),小車(chē)將通過(guò)測(cè)速碼盤(pán)的脈沖輸出來(lái)判斷轉(zhuǎn)速的大小,從而作出左右輪轉(zhuǎn)速的調(diào)整。同時(shí)小車(chē)會(huì)將調(diào)整的結(jié)果存入到內(nèi)部Flash中作為下一次啟動(dòng)時(shí)的調(diào)整數(shù)據(jù),這樣只要在實(shí)際運(yùn)行前做測(cè)試調(diào)整,小車(chē)就會(huì)在直線(xiàn)行駛時(shí),實(shí)現(xiàn)不同場(chǎng)地的阻力誤差記憶。小車(chē)控制板結(jié)構(gòu)圖如圖3所示。
2.3 小車(chē)定位方式
小車(chē)的頂部色盤(pán)必須同時(shí)具備小車(chē)位置定位和方向定位功能。由于通過(guò)形狀定位的傳統(tǒng)方式對(duì)攝像頭要求過(guò)高且識(shí)別精度有較大誤差,本設(shè)計(jì)采用兩個(gè)圓盤(pán)的顏色識(shí)別方式來(lái)實(shí)現(xiàn)這一功能。小車(chē)頂部色盤(pán)如圖4所示。
2.4 小車(chē)的控制指令
小車(chē)的控制數(shù)據(jù)由8個(gè)字節(jié)組成,如下所示:
其中,1、2、3、8為指令校驗(yàn)碼,4~7為指令內(nèi)容。第1個(gè)字節(jié)到第3個(gè)字節(jié)表示數(shù)據(jù)頭,都是0x80。第8個(gè)字節(jié)表示數(shù)據(jù)尾,是0x81。這樣只有出現(xiàn)數(shù)據(jù)頭的字節(jié),其后面的內(nèi)容才被小車(chē)識(shí)別為有用的數(shù)據(jù),使得小車(chē)正確運(yùn)轉(zhuǎn)。數(shù)據(jù)尾的出現(xiàn)代表對(duì)小車(chē)的控制結(jié)束。
數(shù)據(jù)內(nèi)容為發(fā)送控制指令的具體形式。小車(chē)有以下幾個(gè)命令。
2.5 小車(chē)搭載色盤(pán)顏色的確定
由于USB攝像頭采集到的顏色數(shù)據(jù)為YUV格式,需要將其轉(zhuǎn)換成RGB格式來(lái)顯示。所以在確定小車(chē)搭載定位色盤(pán)的顏色時(shí)需要選定特殊的顏色,以使得采集到的數(shù)據(jù)容易被分辨。本設(shè)計(jì)在原色選擇時(shí)采用Y、U、V為三維坐標(biāo)軸使得色盤(pán)的YUV分量之間存在一定差距,再通過(guò)公式將其轉(zhuǎn)換成RGB基色值。
3 軟件實(shí)現(xiàn)
3.1 主控軟件系統(tǒng)
軟件平臺(tái)為L(zhǎng)inux Kemel 3.5、Qtopia-2.2.0;交叉編譯環(huán)境為嵌入式QT、arm-linux-gcc;開(kāi)發(fā)語(yǔ)言為C++。
3.2 顏色識(shí)別算法
此模塊在一個(gè)線(xiàn)程中,先讀取配置文件,得到各個(gè)顏色的Y、U、V平均值,然后從攝像頭取得一幀的圖像,按行掃描每個(gè)像素,根據(jù)Y、U、V平均值確定Y、U、V的閥值對(duì)像素的Y、U、V值進(jìn)行匹配,從而確定像素的顏色。程序把各個(gè)顏色的像素點(diǎn)分類(lèi),同一顏色的像素點(diǎn)坐標(biāo)放在一起,然后算出同一顏色像素點(diǎn)的中心坐標(biāo)。然后通過(guò)表1對(duì)應(yīng)到小車(chē)的坐標(biāo)。
得到3輛小車(chē)的中心點(diǎn)坐標(biāo)和方向點(diǎn)坐標(biāo)后,存放在內(nèi)存中,供其他模塊調(diào)用。攝像頭采集數(shù)據(jù)流程圖如圖5所示。
3.3 集群防碰撞控制算法
集群小車(chē)在行走的過(guò)程中為了防止相互之間的碰撞,必須采用相應(yīng)的防碰撞措施。在本設(shè)計(jì)中采用角度與距離來(lái)實(shí)現(xiàn)防碰撞控制,當(dāng)小車(chē)1和2之間的距離L
評(píng)論