熊方瑩 劉懷民 張?jiān)?/p>
關(guān)鍵詞:NAO;單目視覺;機(jī)器人高爾夫;機(jī)器人步態(tài)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)10-0029-03
近年來,機(jī)器人技術(shù)蓬勃發(fā)展,許多機(jī)器人比賽也陸續(xù)開展。相關(guān)技術(shù)主要體現(xiàn)在以下幾個(gè)方面:識(shí)別目標(biāo)對(duì)象、平衡處理、避讓障礙物、感知環(huán)境以及相應(yīng)事件的決策等[1]。NAO機(jī)器人全長(zhǎng)約為58cm,使用Linux嵌入式處理器,可通過使用C++或Python語言對(duì)機(jī)器人進(jìn)行控制。NAO機(jī)器人一般用于人機(jī)交互、舞蹈表演、監(jiān)測(cè)識(shí)別等領(lǐng)域,它的多用途是基于它可以通過現(xiàn)成的指令塊進(jìn)行可視化編程,因此它允許用戶探索各種領(lǐng)域,運(yùn)用各種復(fù)雜程度的編程程序?qū)崿F(xiàn)用戶想要體驗(yàn)的各種不同效果。而在NAO機(jī)器人高爾夫比賽中,NAO機(jī)器人通過對(duì)比賽場(chǎng)地的感知以及對(duì)紅球的識(shí)別,找到紅球,調(diào)整位置,最后將球打入球洞中,完成比賽[2]。本文為提高紅球識(shí)別效果,決定先提取RGB三通道色彩,再將其轉(zhuǎn)化為更接近觀察且受光照強(qiáng)度影響較小的HSV顏色空間,以使得NAO機(jī)器人的識(shí)別更加精確。同時(shí)對(duì)NAO機(jī)器人的身體各個(gè)電機(jī)的配合進(jìn)行了算法重寫,使得NAO機(jī)器人可以在更多的場(chǎng)景下完成工作。
1 研究現(xiàn)狀
1.1 NAO 機(jī)器人研究現(xiàn)狀
針對(duì)NAO機(jī)器人的研究中一共有以下四個(gè)研究方向。
1)將NAO機(jī)器人平臺(tái)與孤獨(dú)癥兒童治療智能陪護(hù)的實(shí)際需求相結(jié)合的陪護(hù)型機(jī)器人,該陪護(hù)機(jī)器人實(shí)現(xiàn)了人臉識(shí)別、智能避障、語音交互、物品抓取及視頻監(jiān)控等功能,以減輕醫(yī)護(hù)人員工作負(fù)擔(dān),緩解孤獨(dú)癥兒童病情[3]。
2)研究生成式Camshift跟蹤算法的優(yōu)缺點(diǎn),提出結(jié)合ORB特征匹配和Kalman濾波改進(jìn)Camshift算法應(yīng)用于NAO機(jī)器人運(yùn)動(dòng)目標(biāo)跟蹤,解決跟蹤過程中顏色干擾導(dǎo)致跟蹤失敗的問題[4]。
3)基于NAO機(jī)器人的校園導(dǎo)游機(jī)器人實(shí)施方案,實(shí)現(xiàn)和學(xué)生語音交互、唱歌跳舞等功能。借助NAO機(jī)器人,通過百度API語音轉(zhuǎn)文本、Gensim、Jieba等第三方庫以及數(shù)據(jù)庫的調(diào)用,實(shí)現(xiàn)了問答系統(tǒng),完成導(dǎo)游功能[5]。
4)以仿人智能機(jī)器人“NAO”作為研究對(duì)象,結(jié)合目標(biāo)識(shí)別、行走控制以及手臂控制三個(gè)研究方向,,搭建了基于NAO機(jī)器人的目標(biāo)識(shí)別及手臂抓取系統(tǒng),最終實(shí)現(xiàn)對(duì)目標(biāo)物體的識(shí)別以及抓取。提出多項(xiàng)式誤差補(bǔ)償方法對(duì)位置坐標(biāo)進(jìn)行補(bǔ)償[6]。
1.2 紅球定位研究現(xiàn)狀
在過去的研究中,NAO機(jī)器人紅球定位一般分為紅球識(shí)別與三維信息定位兩個(gè)部分。首先識(shí)別到紅球后,獲取到紅球數(shù)據(jù),再依據(jù)其信息進(jìn)行定位,即可獲得紅球與機(jī)器人的相對(duì)定位信息。紅球識(shí)別部分一般總結(jié)[1,7]為以下三步:1)提取紅球色域,通過YUV 顏色空間提取紅色部分;2)圓形檢測(cè),通過圓形檢測(cè)進(jìn)行圓形標(biāo)定;3)定位紅球的像素信息,結(jié)合當(dāng)前的紅球數(shù)據(jù)以及圓形信息,得到當(dāng)前的紅球在畫面中的數(shù)據(jù)信息。
針對(duì)三維信息定位部分,是利用NAO機(jī)器人自身所帶的攝像頭進(jìn)行單目識(shí)別[2]。單目識(shí)別的一般步驟分為:1)獲取紅球的像素信息,將紅球的圖片信息讀??;2)轉(zhuǎn)換紅球信息,轉(zhuǎn)換紅球的像素信息為三維空間位置信息;3)得到紅球相對(duì)于NAO機(jī)器人的位置信息。利用獲取到的紅球識(shí)別數(shù)據(jù)與機(jī)器人自身的位置相結(jié)合,結(jié)合相似性原理,將紅球的相關(guān)數(shù)據(jù)進(jìn)行相似性轉(zhuǎn)換,最終將數(shù)據(jù)轉(zhuǎn)換為當(dāng)前空間下的位置信息。最終實(shí)現(xiàn)單目識(shí)別,將獲取到的數(shù)據(jù)轉(zhuǎn)換成紅球與機(jī)器人的相對(duì)位置,以此獲取紅球定位。
目前針對(duì)紅球定位的研究現(xiàn)狀仍然存在無法適配更多場(chǎng)景的問題,而機(jī)器人的單目識(shí)別同樣也存在會(huì)出現(xiàn)誤差的情況,針對(duì)以上的問題我們對(duì)NAO機(jī)器人的紅球定位進(jìn)行了進(jìn)一步的更改。
1.3 步態(tài)重寫研究現(xiàn)狀
在目前的研究中,沒有針對(duì)NAO機(jī)器人的步態(tài)重寫策略。但依據(jù)官方的運(yùn)動(dòng)文檔可知,針對(duì)NAO機(jī)器人的運(yùn)動(dòng)模型一般是由機(jī)器人自帶的D-H連桿模型,依據(jù)反向運(yùn)動(dòng)學(xué)[8]的運(yùn)動(dòng)學(xué)方程:
2 實(shí)驗(yàn)與數(shù)據(jù)
2.1 紅球定位
根據(jù)當(dāng)前紅球定位的研究現(xiàn)狀,結(jié)合實(shí)際需要,實(shí)驗(yàn)進(jìn)行了部分改進(jìn)。
首先,需要識(shí)別紅球。在過去的研究中是通過YUV顏色空間提取紅色部分,但是我們考慮到使用的是由紅、綠、藍(lán)三種顏色組成的RGB顏色空間,它是其他顏色變換的基礎(chǔ)。由于RGB顏色空間沒有考慮光照強(qiáng)度的影響,所以若采用RGB顏色空間獲取圖像,環(huán)境中的光照強(qiáng)度將會(huì)對(duì)識(shí)別產(chǎn)生較大影響[1]。為了降低環(huán)境中的光照強(qiáng)度對(duì)識(shí)別產(chǎn)生的影響,并且得到紅球的最新位置信息,選擇了數(shù)字化圖像處理的方法。先通過處理,降低GBR圖像中的G與B的值,將原本的數(shù)據(jù)轉(zhuǎn)換為HSV色域[10],再通過圓形檢測(cè)進(jìn)行紅球識(shí)別。
其次,需要定位紅球。通過霍夫圓找球確定紅球位置,為防止篩選錯(cuò)誤,我們還設(shè)置了紅球半徑的約束條件,并針對(duì)當(dāng)前捕獲的畫面大小以及機(jī)器人的俯仰角度來確定最終的數(shù)據(jù),最后結(jié)合上述約束條件,來確定已選定的紅球集合中最準(zhǔn)確、最符合條件的紅球位置數(shù)據(jù)。并根據(jù)紅球在畫面中的分布,來更新紅球的最新位置信息:[centerX, centerY, Alpha]。
然后,我們根據(jù)紅球的位置與信息進(jìn)行三維建模,得到紅球的空間位置,并且求出紅球與機(jī)器人的相對(duì)位置與距離。公式(2)與公式(3)表示的是:根據(jù)像素比例計(jì)算出紅球的三維相對(duì)數(shù)據(jù),根據(jù)畫面的像素比例可以推算出紅球在實(shí)際位置上的數(shù)據(jù)信息,即得到DisReal。
最后,需要返回信息。根據(jù)得到的數(shù)據(jù)來整合紅球與機(jī)器人的相對(duì)位置,即可得到紅球的三維空間信息。將紅球的相關(guān)信息記錄為數(shù)組之后,再利用獲取到的紅球識(shí)別數(shù)據(jù)與機(jī)器人自身的位置相結(jié)合,利用單目識(shí)別[2]將獲取的數(shù)據(jù)轉(zhuǎn)換成紅球與機(jī)器人的相對(duì)位置,以此獲取紅球定位。
2.2 機(jī)器人步態(tài)重寫
在我們的實(shí)驗(yàn)過程中,我們發(fā)現(xiàn)由于機(jī)器人的使用年限以及機(jī)器人的電機(jī)損耗不同,機(jī)器人的關(guān)節(jié)會(huì)不可避免地出現(xiàn)角度偏移,以至于原本的行走、擊球姿勢(shì)無法適用。針對(duì)這個(gè)問題,我們重新定義一個(gè)新的動(dòng)作鏈來解決本問題。
使用歐拉角描述可以對(duì)NAO機(jī)器人的各個(gè)關(guān)節(jié)以及其電機(jī)進(jìn)行更加精確的描述以及聯(lián)動(dòng)[11],同時(shí)通過對(duì)NAO機(jī)器人的各個(gè)連桿、關(guān)節(jié)位姿的描述,我們發(fā)現(xiàn)可以進(jìn)一步更正機(jī)器人的步態(tài)姿勢(shì),使其在運(yùn)動(dòng)姿勢(shì)以及運(yùn)動(dòng)速度上可以有更大的提升。本實(shí)驗(yàn)可以使得NAO機(jī)器人具有更強(qiáng)的實(shí)用性以及在面對(duì)不同場(chǎng)景時(shí),NAO機(jī)器人也能具有更好的應(yīng)對(duì)效率。
2.3 實(shí)驗(yàn)數(shù)據(jù)與對(duì)比
通過對(duì)比,發(fā)現(xiàn)此方法可以檢測(cè)到更遠(yuǎn)距離的紅球。我們?cè)诖罅康膱D像數(shù)據(jù)中進(jìn)行測(cè)試,使用機(jī)器人進(jìn)行多次的紅球識(shí)別與定位,描述了傳統(tǒng)方法與本實(shí)驗(yàn)方法的可測(cè)距離范圍以及準(zhǔn)確率數(shù)據(jù)變化。使用控制變量法對(duì)距離與角度進(jìn)行控制,以觀測(cè)數(shù)據(jù)的準(zhǔn)確性,并且得到更加準(zhǔn)確的方位數(shù)據(jù)信息。表1描述了在控制距離不變的情況下,其角度的最佳范圍。表2則描述了在角度不變的情況下,其距離的最遠(yuǎn)值。
通過多組數(shù)據(jù)的調(diào)研與使用,最終得到了目前的紅球識(shí)別數(shù)據(jù)與過去方法的紅球識(shí)別數(shù)據(jù)的對(duì)比,如表3所示。在過去的方法中,識(shí)別的距離僅為0.05~0.7m,且受光線以及機(jī)器人運(yùn)動(dòng)的震動(dòng)等干擾嚴(yán)重,所以其最終準(zhǔn)確識(shí)別率僅為60%~75%。而通過我們的方法改進(jìn)后,其最遠(yuǎn)距離增加至1.3m,且其識(shí)別的準(zhǔn)確率也大幅提高。
為了得到更加精確的距離與角度之間的關(guān)系數(shù)據(jù),表1描述了在控制距離不變的情況下,其角度的最佳范圍。我們?cè)谝粋€(gè)圓形范圍內(nèi)確定紅球信息,當(dāng)距離為0.5m 時(shí),機(jī)器人的可視角度為±120?,距離為0.7m時(shí),則降低為±110°,并且隨著距離的增加,其可視范圍也逐步降低,最終在最遠(yuǎn)可視的1.3m處,僅可識(shí)別當(dāng)前正面視角的數(shù)據(jù),而不可視其更廣的范圍。這一信息也向我們表明了,紅球識(shí)別部分的數(shù)據(jù)信息與機(jī)器人所處位置有密切關(guān)系。
表2則描述了在角度不變的情況下,其距離的最遠(yuǎn)值。我們固定了當(dāng)前的角度,不停更改其遠(yuǎn)近距離,最終測(cè)得了其相應(yīng)位置的距離參數(shù)信息。在120° 處時(shí),其最遠(yuǎn)距離為0.5m,在100°處時(shí)其最遠(yuǎn)距離為0.75m,并且該數(shù)據(jù)隨著識(shí)別角度的縮小而逐漸變大。這一信息也向我們表明了,紅球識(shí)別部分的數(shù)據(jù)信息與機(jī)器人的識(shí)別角度也有密切關(guān)系。
3 總結(jié)
本文描述了通過傳統(tǒng)紅球識(shí)別方法改進(jìn)得到的本文的紅球識(shí)別定位方法,同時(shí)通過實(shí)驗(yàn)得出了在原有紅球測(cè)距范圍下的提升幅度。我們通過圖像二值化、紅球閾值設(shè)定、紅色噪點(diǎn)過濾、霍夫圓變換等方法,識(shí)別紅球。其次,使用歐拉角描述了NAO機(jī)器人腿部各個(gè)電機(jī)與關(guān)節(jié)的轉(zhuǎn)動(dòng)程度,并通過定義動(dòng)作鏈、時(shí)間軸的方式來得到更加貼合每臺(tái)機(jī)器人的步態(tài)參數(shù)與行走姿態(tài),最后由機(jī)器人本身的反運(yùn)動(dòng)學(xué)公式進(jìn)行協(xié)調(diào),即可使得NAO機(jī)器人的整體運(yùn)動(dòng)步態(tài)與整體協(xié)調(diào)性更強(qiáng)。