熊方瑩 劉懷民 張越



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