基于FPGA的掃雷機器人軟硬件設計
系統結構和功能簡(jiǎn)介
系統主要由三部分組成:
1、PC端的用于完成系統自我學(xué)習的初始化程序。
2、進(jìn)行數字圖像處理和模擬人類(lèi)思維進(jìn)行掃雷的決策模塊。
3、機械手臂。
PC端初始化程序:
在系統開(kāi)始進(jìn)入游戲之前,初始化程序會(huì )配合嵌入式系統在電腦顯示屏上生成相應的與掃雷游戲相關(guān)的圖案,輔助系統完成自我學(xué)習過(guò)程。
決策模塊:
這部分是系統的核心部分,主要由FPGA、攝像頭等其它必要的外圍設備組成,完成對電腦屏幕的圖像采集,然后利用OPENCV或者Simulink編寫(xiě)的算法對圖像進(jìn)行處理,并根據游戲規則模擬人類(lèi)的思維做出決策,這些決策包括對游戲中的哪個(gè)雷區小方塊進(jìn)行操作,進(jìn)行怎樣的操作(單擊、右擊、同時(shí)兩個(gè)鍵雙擊),作出決策之后將決策信息輸出給機械手臂。
機械手臂:
機械手臂的工作比較簡(jiǎn)單,包括對鼠標位置的精確移動(dòng),完成對鼠標按鍵的操作(單擊、雙擊等)。機械手臂對鼠標進(jìn)行控制來(lái)完成游戲,就像人控制鼠標一樣。
圖1.1 系統結構圖
掃雷過(guò)程:
在介紹自我學(xué)習過(guò)程之前我們先介紹主要的掃雷過(guò)程,掃雷過(guò)程的流程圖如圖2.2所示。
圖2.2 掃雷過(guò)程流程圖
方塊分割過(guò)程:
攝像頭對電腦屏幕捕獲圖像之后進(jìn)行一些必要的圖像預處理(濾波、均衡化等),然后判斷是否是第一次掃雷。如果是第一次掃雷則要進(jìn)行邊緣檢測和圖像分割等處理,這樣做的目的是我們要分離出雷區的每一個(gè)方塊,用于后面對每個(gè)方塊類(lèi)型進(jìn)行判斷。在獲取各個(gè)方塊的坐標之后進(jìn)行存儲操作,之后的處理就可以不再進(jìn)行方塊的分割操作了。下圖是通過(guò)直接對屏幕進(jìn)行截圖之后在Matlab中對截圖進(jìn)行的邊緣檢測(sobel)結果。
圖2.3 原始圖像
圖2.4 灰度圖像
圖2.5 邊緣檢測結果圖
圖2.6 邊緣檢測結果局部放大圖
從上面的結果圖來(lái)看效果是可以接受的,在對邊緣檢測的結果在進(jìn)行相應的形態(tài)學(xué)操作之后再進(jìn)行相應的處理和分析就可以得到各個(gè)方塊的坐標信息。
決策過(guò)程:
決策過(guò)程首先是要確定各個(gè)方塊的類(lèi)型,我們利用方塊分割過(guò)程確定的方塊坐標信息將每個(gè)方塊與9(還是10)種方塊類(lèi)型的圖像進(jìn)行對比,通過(guò)它們的相似程度來(lái)確定該方塊的類(lèi)型。例如2.7圖中的最右下角的方塊是 ,我們使用
、
、
等方塊類(lèi)型與之比較,通過(guò)對比最右下角方塊與各個(gè)確定類(lèi)型方塊的相關(guān)系數的大小來(lái)判斷該未知方塊的類(lèi)型。也可以使用顏色信息等其它方式來(lái)判斷類(lèi)型不確定方塊的類(lèi)型。在方塊類(lèi)型確定之后,問(wèn)題就變得簡(jiǎn)單了,我們只需要利用已知的信息結合游戲規則來(lái)推斷哪些方塊是地雷。然后用機械手臂控制鼠標完成掃雷游戲。在完成一幅圖像的所有操作后繼續采集下一幅圖像重復以上工作,在每判斷出每一個(gè)地雷的時(shí)候系統都會(huì )記錄下來(lái),當記錄的地雷數達到了游戲的所有地雷數時(shí)系統會(huì )自動(dòng)退出。
也許會(huì )遇到無(wú)法判斷的情況,為了避免出現死循環(huán)系統將會(huì )采取隨機的方式處理,這時(shí)就得看機器人的運氣如何了。
自我學(xué)習過(guò)程:
由于在圖像的采集過(guò)程中,圖像的效果很容易受到周?chē)h(huán)境的影響,比如攝像頭到屏幕的距離、攝像頭與屏幕的角度以及周?chē)饩€(xiàn)等,所有必要讓系統具有一定的自適應能力。
我們的策略如下幾點(diǎn)。
一、在屏幕上以全屏的方式顯示顏色鮮艷純色背景圖案,這可以是系統準確的獲取屏幕的位置,為后續的處理節省時(shí)間和空間。
二、在屏幕上對比強烈地顯示位置確定的圖塊,這就像是使用觸摸屏時(shí)使用的坐標校準功能,這主要是為后續系統對光標的控制提供準確的坐標映射信息。
三、按確定的順序依次顯示各種類(lèi)型確定的方塊圖案,這主要是服務(wù)于后續的方塊類(lèi)型確定過(guò)程,也就是說(shuō)我們每次都使用相同環(huán)境下的確定類(lèi)型的方塊去匹配位置類(lèi)型的方塊而不是一成不變的使用固定的方塊圖像去匹配,這可以在一定程度上提高匹配的準確率。
評論