摘 要:針對體育場館內(nèi)人工撿拾乒乓球效率低下、損害運動員身心健康等問題,設計了一款基于OpenMV的智能撿球機器人。該機器人以STM32F103RCT6為控制核心,通過OpenMV獲取圖像信號,采用霍夫圓檢測和顏色閾值檢測相結(jié)合的算法識別乒乓球并計算其與機器人的相對位置,將該位置信息依次傳遞給Arduino Mega2560和STM32F103RCT6,二者分別控制5自由度機械臂動作和機器人運動,將目標乒乓球撿起后放入存球筐。測試結(jié)果表明,所設計的機器人能夠準確識別乒乓球并實現(xiàn)自動抓取,達到預期效果和設計目標,為智能撿球機器人的研究和發(fā)展提供了參考和借鑒。
關鍵詞:撿球機器人;OpenMV;霍夫圓檢測;顏色閾值檢測;機械臂;自動抓取
中圖分類號:TP242.6 文獻標識碼:A 文章編號:2095-1302(2024)05-00-04
0 引 言
隨著我國社會經(jīng)濟的不斷發(fā)展,體育運動的社會化和產(chǎn)業(yè)化進程加速,機器人技術與物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等信息化技術的結(jié)合將為未來的體育行業(yè)帶來重要助力。然而,盡管人工智能在文體領域得到了廣泛應用,但對于撿乒乓球機器人的研究相對較少。國內(nèi)的撿乒乓球機器人研究目前仍處于起步階段,尚無相關成熟產(chǎn)品,已有的研究主要集中在機器人的機械結(jié)構(gòu)設計和乒乓球的檢測識別等方面[1]。
文獻[2]設計的撿乒乓球機器人采用MultiFLEXTM2-PXA270作為核心控制器,感知系統(tǒng)由語音檢測模塊、顏色檢測模塊和避障模塊三部分組成,運動系統(tǒng)由電動機驅(qū)動模塊和舵機驅(qū)動模塊組成。該機器人基本實現(xiàn)了自動撿球功能,但其制造成本較高、撿球效率低。文獻[3]利用蟻群算法對移動式撿乒乓球機器人的避障路徑進行規(guī)劃,構(gòu)建動力學模型并設計視覺反饋控制器,完成了對撿乒乓球機器人避障路徑的視覺反饋控制,但是路徑控制不夠精準。
本文針對體育場館內(nèi)人工撿拾乒乓球效率低下、損害運動員身心健康等問題,旨在設計一款低成本、高效智能的撿乒乓球機器人,推動智能撿球機器人的普及應用。該機器人不僅能夠幫助運動員專注于運動本身,提高訓練效率,還具有減少運動員損傷、適應復雜環(huán)境等多重優(yōu)勢,助力實現(xiàn)場館的無人化運作,從而為體育場館管理帶來更多的便利和創(chuàng)新。
1 整體方案設計
智能撿球機器人(以下簡稱為“機器人”)的整體設計方案如圖1所示。系統(tǒng)共使用了3塊開發(fā)板,用于實現(xiàn)機器人的不同功能,分別是OpenMV、Arduino Mega2560(以下簡稱為Arduino)和STM32F103RCT6(以下簡稱為STM32)。
OpenMV圖像識別模塊是實現(xiàn)智能撿球機器人的核心組件,該器件能夠使用自帶的OV5640攝像模組實時采集圖像,并通過圖像處理算法準確識別目標乒乓球,從而為機器人的運動控制和機械臂動作提供重要數(shù)據(jù)。
Arduino通過串口接收OpenMV提供的控制指令,該指令一方面用于控制舵機的運動,實現(xiàn)對機械臂動作的精準調(diào)整,從而確保抓球的成功率;另一方面控制Arduino將速度信息通過串口傳遞給STM32,為其提供一系列速度指令,STM32解讀和處理指令后,生成相應頻率脈沖控制信號,發(fā)送給電機驅(qū)動模塊以控制機器人四個電機的轉(zhuǎn)速,從而實現(xiàn)對機器人運動狀態(tài)的實時控制。
對機械臂和機器人運動的控制分別采用兩個控制板,是因為單個開發(fā)板端口資源不足。同時,這種分離控制的方法可以減少代碼耦合度,方便維護和升級,因此提高了系統(tǒng)的穩(wěn)定性,降低了整個系統(tǒng)的復雜度。
2 系統(tǒng)硬件設計
2.1 機器視覺模塊
機器視覺模塊用于識別乒乓球,采用低功耗、低成本、高效實用的OpenMV對乒乓球進行識別、位置鎖定和距離測量工作,為機器人移動提供導航[4-5]。此外,OpenMV使用高級語言Micro Python編程,可以簡便地實現(xiàn)復雜的機器視覺算法。
2.2 機器人底盤
機器人采用MG42L1步進電機,步距角為1.8°,由四細分數(shù)的四路LV8731芯片驅(qū)動。電機上附帶有編碼器,可由STM32控制進行測速。機器人底盤運動以STM32作為主控板,底盤車輪使用麥克納姆輪,是一種典型的全方位移動輪[6]。
2.3 機械臂
機械臂由1個機械爪、3個機械臂關節(jié)、1個臺座組成,每個組件由1個TBSN-K15舵機控制轉(zhuǎn)向,Arduino控制這5個舵機實現(xiàn)機械臂5自由度可控。該自由度控制能力使5自由度機械臂具有優(yōu)越的空間結(jié)構(gòu)調(diào)節(jié)性能,以便更好地抓取目標乒乓球。
3 軟件設計
圖2為系統(tǒng)軟件流程,其中機器人撿球共分為三個階段。第一階段是尋球階段。機器人上電啟動后,即進入尋球階段。在此階段,機器人將在STM32的控制下原地旋轉(zhuǎn),同時啟動機器視覺模塊進行視野掃描,采用智能識別算法尋找視野中的乒乓球。當識別到乒乓球,且乒乓球在視野中心時,機器人將停止旋轉(zhuǎn),進入第二階段尋跡追蹤。
在尋跡追蹤階段,機器人在PID算法的控制下按目標速度向目標乒乓球移動??拷倪^程中,機器視覺模塊會根據(jù)目標乒乓球在視野中的大?。ǚQ“視野距離”)計算乒乓球與機器人之間的距離,本文使用距離閾值THRdistance來表征二者的距離。當視野距離大于或等于距離閾值THRdistance時,機器人將停止移動,并進入第三階段抓取,否則將持續(xù)前進。本文設置OpenMV輸出QVGA圖像,分辨率為320*240,因而機器人視野總像素點數(shù)為86 400。經(jīng)過多次測驗,該距離閾值THRdistance=19 200 像素點數(shù),實際距離約為5 cm,此時機器人可以取得良好的抓取效果。
在抓取階段,機械臂收到指令后執(zhí)行固定動作抓取乒乓球,并將其放入存球筐。當抓取完成后,機器人將繼續(xù)原地旋轉(zhuǎn),進入新的尋球階段。下面分別對三個階段進行詳細介紹。
3.1 機器視覺與智能識別
在使用OpenMV進行圖像識別任務時,參考文獻中多采用單一的顏色閾值或神經(jīng)網(wǎng)絡方法[7-8]。由于OpenMV自身的像素較低,在遠距離情況下,采用單一的算法識別經(jīng)常出現(xiàn)錯判、漏判,識別效果不理想。本文采用將霍夫圓形檢測和顏色閾值檢測相結(jié)合的識別算法,大大提高了機器人識別、鎖定目標和路徑規(guī)劃的效率和準確性。本模塊的軟件設計流程如圖3所示。
首先,系統(tǒng)上電后進行OpenMV的軟硬件初始化,隨后進行圖像采集和有關預處理,包括調(diào)整圖像亮度、對比度和顏色空間等操作。
其次,使用霍夫變換檢測機器人視野中的圓形。識別圓形的基本思路是:第一步,選擇視野掃描區(qū)。為消除OV5640攝像模組的邊緣圖像畸變問題對圓形識別的影響,選擇攝像頭視野中央2/3的區(qū)域作為視野掃描區(qū)。經(jīng)實測,此時可認為乒乓球在攝像頭的視野中央。第二步,采用經(jīng)典的霍夫檢測方法[9]檢測出視野掃描區(qū)中所有圓形。第三步,對初步圓形檢測結(jié)果按圖形面積進行篩選。為提高檢測速度,減少不必要的圖像噪聲干擾,設定圓形檢測閾值THRcircle,若潛在圓的相對面積小于該閾值,則不認為是有效圖形。選取圓形檢測閾值THRcircle=3 500像素點數(shù),經(jīng)過實測證明,此時可以取得良好的識別效果。
最后,在檢測到視野中的所有圓形后,OpenMV將比較所有圓形的面積,選擇距離機器人最近,即相對面積最大的圓形區(qū)域作為新的視野掃描區(qū),進一步進行顏色閾值識別。由于體育場館常用乒乓球均為白色或橙黃色,因此本文選用橙黃色和白色作為乒乓球的標志色,一旦在視野掃描區(qū)發(fā)現(xiàn)對應顏色色塊,即認為識別到乒乓球,并使用紅圈和矩形框進行標記。檢測效果如圖4所示。
據(jù)此,通過霍夫圓形檢測和顏色閾值檢測相結(jié)合的算法,準確地確定機器人視野中距其最近的乒乓球的位置。
3.2 機器人運動控制
3.2.1 機器人的運動原理
機器人底盤結(jié)構(gòu)及運動坐標系如圖5所示。當機器人的車輪均向前轉(zhuǎn)動時,各輪受力方向與圖中一致;車輪向后轉(zhuǎn)動時,各輪受力與圖中各輪相反。機器人總受力為F=FA+FB+FC+FD。
下面對3種典型運動情況舉例說明:
(1)當四個車輪同時向前或向后以同一轉(zhuǎn)速運動時,F(xiàn)方向為y軸方向,機器人實現(xiàn)沿y軸向前或向后運動。
(2)當輪B和輪D向前或向后以同一轉(zhuǎn)速運動,輪A和輪C的轉(zhuǎn)速與輪B和輪D大小相同、方向相反時,F(xiàn)方向為x軸方向,機器人實現(xiàn)沿x軸向左或向右平移。
(3)當輪B和輪A向前或向后以同一轉(zhuǎn)速運動,輪C和輪D的轉(zhuǎn)速與輪B和輪A大小相同、方向相反時,機器人左側(cè)受力為y軸方向,右側(cè)受力為x軸方向,機器人實現(xiàn)原地順時針或逆時針旋轉(zhuǎn)。
本文使用STM32輸出四路脈沖信號至電機驅(qū)動板,控制機器人運動;經(jīng)過驅(qū)動板上四路 LV8731 驅(qū)動芯片處理脈沖信號后,將四路脈沖信號的頻率分別轉(zhuǎn)換為機器人四個車輪的角速度,進而控制機器人的運動,同時使用車輪上的編碼器進行測速。編碼器測速后,經(jīng)過PID算法將機器人運動速度調(diào)節(jié)至設定速度[10],機器人到達距離乒乓球5 cm位置時,停止運動。
3.2.2 機器人底盤運動信息的接收與處理
本文通過STM32與Arduino之間的串口通信發(fā)送機器人的運動信息。機器人的運動方向有三種,分別為x軸左右運動、y軸前后運動、z軸旋轉(zhuǎn)運動。Arduino發(fā)送的信息格式為[u, v, w],其中u、v、w分別表示機器人x、y、z方向的速度等級,取值范圍均為[0, 28-1]內(nèi)的自然數(shù),一共256個速度等級,取值越大,速度越快。當某個參數(shù)取值為0時,代表機器人在該方向沒有速度。例如發(fā)送信息為[0, 0, 1],則機器人只沿z軸方向以“1”等級速度旋轉(zhuǎn),x、y軸方向無速度。
得到速度等級u、v、w后,STM32將其轉(zhuǎn)換為各方向?qū)嶋H速度Vx、Vy(單位:m/s)和ω(單位:rad/s)。由內(nèi)部脈沖頻率的設置,機器人x、y方向的最大速度為0.8 m/s,z方向的最大角速度為3 rad/s。將最大速度分為256個等級即得到每個等級的速度值:
,,
由于麥克納姆輪的特殊結(jié)構(gòu),車輪轉(zhuǎn)速與機器人運動速度不同,STM32得到機器人目標運動速度后,經(jīng)過如下公式轉(zhuǎn)換得到每個車輪的轉(zhuǎn)速[11]。
VA=-Vx+Vy-ω(a+b),
VB=+Vx+Vy-ω(a+b),
VC=-Vx+Vy+ω(a+b),
VD=+Vx+Vy+ω(a+b)
式中:VA、VB、VC、VD分別為車輪A、B、C、D的轉(zhuǎn)速,設車輪向前轉(zhuǎn)動時轉(zhuǎn)速為正;a、b為底盤尺寸參數(shù)。STM32根據(jù)VA、VB、VC、VD輸出相應頻率的脈沖波來控制四個車輪的轉(zhuǎn)速。
機器人一個運動周期內(nèi)的信息控制過程如下:
(1)機器人未識別到乒乓球或乒乓球不在視野中心時,Arduino發(fā)送運動信息[0, 0, 1]給STM32,機器人逆時針旋轉(zhuǎn),角速度為0.011 8 rad/s。
(2)待機器視覺模塊檢測到乒乓球且乒乓球在攝像頭的視野中心時,即乒乓球位于y軸上時,Arduino發(fā)送運動信息[0, 5, 0],機器人按照1.57 cm/s的速度向正前方運動。
(3)待機器人運動到距離乒乓球5 cm時,Arduino發(fā)送運動信息[0, 0, 0],機器人停止運動,等待機械臂抓取乒乓球。
(4)待乒乓球放入存球筐后,重復步驟(1)。
3.3 機械臂控制
本文使用Arduino開發(fā)板控制5個舵機的轉(zhuǎn)動角度,以實現(xiàn)對機械臂的5個自由度控制。舵機的轉(zhuǎn)動角度可以通過脈沖寬度調(diào)制(PWM)進行精確控制,脈沖信號周期恒定為20 ms,不同脈沖信號寬度對應不同的舵機轉(zhuǎn)動角度。對于本文采用的270°舵機TBSN-K15,其轉(zhuǎn)動角度θ(單位:°)與所需脈沖信號寬度Wpulse(單位:ms)的對應關系可由如下線性方程和限制條件表述:
θ=135×(Wpulse-0.5)," " 0.5≤Wpulse≤2.5
OpenMV識別到目標乒乓球在視野正前方5 cm時,向Arduino發(fā)送字符“1”作為抓取信號;Arduino接收信號后控制5個舵機依次轉(zhuǎn)動到預置的角度,以控制機械臂做出抓取動作。下面介紹預置轉(zhuǎn)動角度的取值原理。
機械臂控制系統(tǒng)中,5個舵機分別控制1個機械爪、1個臺座和3個機械臂關節(jié)。整個過程中,為了在因外界擾動等因素使機械臂偏離工作位置的情況下完成復位,增強系統(tǒng)運行穩(wěn)定性,控制臺座的舵機轉(zhuǎn)動角度始終保持在0°。
機械臂接收到抓取信號后的動作分為兩個階段。第一階段,機械臂由初始狀態(tài)開始動作,完成抓取乒乓球的任務。經(jīng)測試,本文采用的機械爪在舵機轉(zhuǎn)動角度為135°時張開最大,轉(zhuǎn)動角度為20°時可靠閉合。因此在抓取階段,控制機械爪的舵機首先轉(zhuǎn)動到135°,以張開機械爪。此后依次計算三個控制機械臂關節(jié)的舵機轉(zhuǎn)動角度并控制其按此角度轉(zhuǎn)動。
求取轉(zhuǎn)動角度時,可將該問題等效為一個三變量幾何問題,如圖6所示。該等效問題中A點表示臺座與機械臂關節(jié)連接點,D點表示機械爪與機械臂關節(jié)連接點,等長線段AB、BC、CD分別表示三個機械臂關節(jié);需要求取的三個舵機轉(zhuǎn)動角度分別為α、β、γ。由于該問題只有兩個定解條件,即lAD已知,三個機械臂關節(jié)長度相等,均為lservo,因此設定α=45°,在此基礎上求取β和γ,由α、lservo和lAD易得lBD,從而根據(jù)三個機械臂關節(jié)等長容易求解得γ,進而求得β,計算公式如下:,,至此三個機械臂關節(jié)轉(zhuǎn)動角度α、β、γ已求得。
三個控制機械臂關節(jié)的舵機依次轉(zhuǎn)動到α、β、γ角度后,控制機械爪的舵機轉(zhuǎn)動到20°,閉合機械爪以抓得乒乓球。
第二階段,機械臂通過動作將抓得的乒乓球放入存球筐;再求取三個控制機械臂關節(jié)的舵機轉(zhuǎn)動角度,并依次轉(zhuǎn)動三個舵機,此時機械爪已位于存球筐上方,張開機械爪即可將乒乓球放入存球筐。
4 測 試
在根據(jù)上文所述原理設計、組裝后,對撿球機器人進行實地測試。測試共分為3個部分,即尋球和尋跡追蹤,如圖7(a)所示;撿球階段,如圖7(b)所示;為展示機器人工作的連續(xù)性,還展示了新的尋球和追蹤階段,即完成一次抓取乒乓球任務后機器人尋找下一個乒乓球的過程,如圖7(c)所示。
5 結(jié) 語
本文設計的智能撿球機器人具有全向移動、精準識別和抓取目標的能力,具備較強的環(huán)境適應能力,擁有廣闊的應用前景。特別是在乒乓球訓練領域,實現(xiàn)自動化撿球的需求不斷增加。撿球機器人的普及應用,可以有效避免運動員因為頻繁撿球而出現(xiàn)健康問題,提升訓練效率。在國家大力推動人工智能在各產(chǎn)業(yè)應用的背景下,本文設計智能撿球機器人將為推動體育場館無人化運作做出貢獻,也將推動智能化機器人在其他領域中的應用和發(fā)展,具有良好的市場前景和經(jīng)濟價值。
注:本文通訊作者為沈瑤。
參考文獻
[1]譚柏軒,易向東,鐘雄源,等.智能撿球小車的設計與實現(xiàn)[J].福建電腦,2023,39(1):97-100.
[2]范昭君. 智能控制在自動撿球機器人中的應用[J].自動化技術與應用,2020,39(5):67-71.
[3]閆慧君,韓玉彬. 移動式撿球機器人避障路徑視覺反饋控制方法[J]. 機械設計與制造,2023,61(1):278-281.
[4]耿浩楠,周磊,劉新成,等.基于OpenMV的二維碼檢測技術在自動分揀系統(tǒng)中的應用[J].工業(yè)控制計算機,2022,35(12):11-13.
[5]常晏鳴,廖宇,馮志強,等.基于OpenMV的自動追蹤識別儀表小車設計[J].湖北民族大學學報(自然科學版),2022,40(4):451-456.
[6]陳鎮(zhèn)江,封瀟揚.基于麥克納姆輪的全向移動自主機器人設計研究[J].科技與創(chuàng)新,2022,9(22):150-152.
[7]劉靜,林沖,郭世財,等.柑橘類水果采摘機器的設計與研究[J].包裝工程,2019,40(17):56-62.
[8]鄒浩,郭雨婷,李佳盈,等.基于OPENMV的色彩引導機器人系統(tǒng)研究[J].科技資訊,2018,16(25):85-86.
[9]鄭南寧.計算機視覺與模式識別[M].北京:國防工業(yè)出版社,1998:155-156.
[10]陳伯時. 電力拖動自動控制系統(tǒng)—運動控制系統(tǒng)(第3版)[M].北京:機械工業(yè)出版社,2003.
[11]孫偉棟,張宇,費雄,等. Mecanum輪參數(shù)化設計和運動學分析[J].農(nóng)業(yè)裝備與車輛工程,2020,58(10):40-43.
作者簡介:沈京燁(2002—),男,在讀本科,研究方向為電氣工程。
沈 瑤(1988—),女,碩士研究生,高級工程師,主要從事電路電磁場實驗教學方面的研究。
收稿日期:2023-04-23 修回日期:2023-05-19
基金項目:2022年國家級大學生創(chuàng)新訓練項目