針對傳統(tǒng)類人機(jī)器人在控制系統(tǒng)實(shí)時性和視覺識別方面的不足,以S3C6410作為主控芯片,設(shè)計了具有視覺識別功能的類人機(jī)器人控制系統(tǒng),通過改進(jìn)和簡化視頻識別算法取得了良好的目標(biāo)識別效果。實(shí)驗(yàn)表明,基于本控制系統(tǒng)設(shè)計而成的類人機(jī)器人實(shí)時性好,目標(biāo)識別準(zhǔn)確,通過調(diào)整運(yùn)動路徑能夠快速找到目標(biāo)。
智能移動機(jī)器人是近年來發(fā)展起來的一門綜合學(xué)科,涉及機(jī)械設(shè)計、傳感檢測、人工智能等多方面知識。類人機(jī)器人的控制系統(tǒng)分為三個層次:最上層是機(jī)器人的策略規(guī)劃層,利用各種算法實(shí)現(xiàn)各部分的功能;中間一層運(yùn)行各類應(yīng)用程序的嵌入式實(shí)時操作系統(tǒng);最底層是硬件平臺,通過外圍接口獲得各類數(shù)據(jù)、信息。
自主機(jī)器人利用傳感器獲取的信息控制機(jī)器人的動作。本文根據(jù)武術(shù)擂臺機(jī)器人的實(shí)際需要,設(shè)計了機(jī)器人的控制系統(tǒng),實(shí)現(xiàn)攝像頭圖像采集、處理和舵機(jī)控制等功能。
策略規(guī)劃層中,由于圖像信息具有信息豐富、對場景描述完全的特點(diǎn),主要通過處理攝像頭采集的圖像信息實(shí)現(xiàn)顏色目標(biāo)定位。這里采用Linux嵌入式操作系統(tǒng),由于嵌入式系統(tǒng)資源的限制,要求目標(biāo)識別算法運(yùn)行效率高,占用內(nèi)存空間小。硬件平臺主要是控制舵機(jī)實(shí)現(xiàn)機(jī)器人的運(yùn)動控制。
1 系統(tǒng)控制電路與視頻識別算法
1.1 機(jī)器人整體架構(gòu)
在武術(shù)擂臺技術(shù)挑戰(zhàn)賽中,機(jī)器人要采集目標(biāo)的位置信息。由于I/O、A/D轉(zhuǎn)換的有效檢測距離有限,機(jī)器人采用攝像頭采集場地上的圖像信息,根據(jù)目標(biāo)的顏色進(jìn)行識別、定位。當(dāng)檢測到目標(biāo)位置以后控制舵機(jī)自主運(yùn)動向目標(biāo)靠攏,完成自我介紹、抱繡球等動作。所設(shè)計的機(jī)器人外形如圖1所示。
從圖中可以看出,機(jī)器人頭部采用攝像頭,通過USB接口與主控板進(jìn)行連接,用于采集圖像信息。機(jī)器人腰部、腿部、胳膊各關(guān)節(jié)利用舵機(jī)使其具有一定的自由度,用到的舵機(jī)為CDS系列數(shù)字舵機(jī)。它內(nèi)部有ATmega8芯片,主控板通過串口與ATmega8通信,就可以實(shí)現(xiàn)舵機(jī)的控制。針對以上要求,同時考慮系統(tǒng)的實(shí)時性,采用S3C6410作為主控芯片。實(shí)際控制系統(tǒng)總體框圖如圖2所示。
1.2 舵機(jī)控制系統(tǒng)設(shè)計
主控板通過串口1完成與舵機(jī)之間的數(shù)據(jù)通信,舵機(jī)控制電路的原理圖如圖3所示。
2 圖像識別算法
攝像頭采集到的圖像主要作如下處理:首先對數(shù)據(jù)解碼,利用查表法將RGB空間模型數(shù)據(jù)轉(zhuǎn)化為HSI空間模型,然后采用類間方差法將圖像進(jìn)行二值化,再利用連通域?qū)δ繕?biāo)進(jìn)行標(biāo)定,最后對圖像進(jìn)行去噪,從而實(shí)現(xiàn)目標(biāo)的識別和定位。圖像處理程序流程圖如圖4所示。
實(shí)現(xiàn)顏色空間轉(zhuǎn)換以后就要根據(jù)不同的H值對圖像進(jìn)行二值化處理。二值化的實(shí)質(zhì)是一分類問題,即把一幅圖像所含有的0~255的二進(jìn)制像素按照某個閾值劃分成兩類。如果閾值設(shè)得太低,結(jié)果會引入過多的背景信息,但太高就會導(dǎo)致目標(biāo)信息的丟失。類間方差法(Otsu)、最大熵方法(KSW)和直方圖平衡法(Balanced Histogram Thresholding,BHT)是目前應(yīng)用較廣的自動閾值計算方法。
這里采用類間方差法,它的核心思路就是通過最大化類間方差來尋找最佳閾值。假設(shè)某一閾值T將整個二值圖像分為C0(1,…,T)和C1(T,…,255)兩類,則兩類的出現(xiàn)概率可以用下式計算:
如上所述,最佳閾值的判斷標(biāo)準(zhǔn)是使得類間方差最大。于是通過遍歷每一個灰度值,并計算其劃分帶來的類間方差,總能找到一個合適的閾值滿足條件。由于式(4)計算二階中心矩計算量較大,考慮到:
接下來的工作就是對圖像進(jìn)行標(biāo)定,這里所指的標(biāo)定就是根據(jù)二值化后的圖像,計算出目標(biāo)區(qū)域的外接矩形位置。在目標(biāo)構(gòu)成比較簡單的情況下,投影法是效率最高的方法,而當(dāng)場景中存在多個目標(biāo)時,多數(shù)情況下需要進(jìn)行連通域計算。拓?fù)鋵W(xué)中把連通性定義為,區(qū)域內(nèi)任意兩點(diǎn)之間存在至少一條曲線可以將兩者連接。目前的連通域標(biāo)記方法主要分兩類:掃描法和輪廓跟蹤法。掃描法的基本思路是逐個檢查每個像素的值和連通性,從而獲得所有的連通性描述信息,然后根據(jù)每點(diǎn)之間的相互關(guān)系計算出最后的區(qū)域個數(shù)和構(gòu)成關(guān)系?;趻呙璧倪B通標(biāo)記演示如下(以8連通為例):
首先對二值圖像進(jìn)行行掃描得到線段連通標(biāo)記,如圖5所示。然后檢查每行之間線段與上一行線段之間的連通關(guān)系,并更改標(biāo)記。
第1行:線段1創(chuàng)建標(biāo)記A。
第2行:線段2、1之間連通,線段2標(biāo)記為A;線段3
3 實(shí)驗(yàn)與結(jié)果分析
將控制卡裝到機(jī)器人上,控制機(jī)器人運(yùn)動,在運(yùn)動中攝像頭采集圖像,并且用方框?qū)⒛繕?biāo)進(jìn)行標(biāo)定。利用上述顏色識別算法對圖紅色繡球進(jìn)行標(biāo)定,得到如圖7所示的結(jié)果。
隨著機(jī)器人的運(yùn)動,繡球在圖像中的位置發(fā)生變化,機(jī)器人根據(jù)標(biāo)定結(jié)果,就可以得到繡球的位置,根據(jù)位置調(diào)整自己的運(yùn)動準(zhǔn)確找到繡球。圖像采集的速度達(dá)到15幀/s,舵機(jī)控制準(zhǔn)確度達(dá)到0.32°,可以圓滿完成比賽任務(wù)。
結(jié)語
本文以S3C6410作為主控芯片,設(shè)計了具有視覺識別功能的類人機(jī)器人控制系統(tǒng)。改進(jìn)的顏色識別算法利用查表法、類間方差法、連通域等方法對圖像進(jìn)行處理,取得了良好的視頻識別效果。實(shí)踐證明,由該控制系統(tǒng)的設(shè)計方案制作而成的類人機(jī)器人,具有良好的自主控制穩(wěn)定性和較好的視覺識別能力,能夠較出色地完成比賽。
評論