張強志,陳德鵬,胡佳林,魏潔鋒,王培杰,梁銳軒
(嘉應學院 物理與電子工程學院,廣東 梅州 514015)
網球作為一種時尚的體育運動,深受人們的喜愛,許多網球愛好者將網球運動作為工作學習之余放松身心的主要方式。然而,在休閑鍛煉過程中,頻繁的人工撿球會消耗大量的體力和時間,大大降低了休閑運動的體驗感。對于比賽訓練活動更是如此,頻繁撿球浪費體力和時間,影響訓練節奏。現如今,隨著智能機器人的應用領域不斷擴大,人們期望智能機器人在更多領域為人類服務,代替人類完成一些復雜和繁瑣的工作,因此撿網球機器人應運而生。目前雖已有基于視覺的撿網球機器人的設計,但仍可以在此基礎上進行相應的創新和改進,通過添加語音識別控制、手機APP控制、智能避障等功能,制作一款基于圖像識別的撿網球機器人,能夠實現對網球的識別并自主抓取回收,計算前進方向上障礙物的距離實現避障,還能夠通過語音控制以及WiFi遠程APP控制,高效地解決撿球的問題。
撿球機器人系統的設計包括硬件設計和軟件程序設計??紤]到要實現網球識別、障礙物距離檢測、語音識別等功能,就需要保證系統的核心控制芯片具有優良的運行速度和響應處理結果的能力。因此選用STM32F407ZGT6單片機作為系統控制核心,搭配HC-SR04超聲波測距模塊、LD3320A語音識別模塊、OpenMV4攝像頭模塊、ESP8266-01S WiFi無線通信模塊、L298N電機驅動模塊、SG-90舵機以及直流電機構成系統硬件電路。單片機執行程序指令實現與各模塊之間的通信及控制,從而實現各功能和各模塊互相協調、互不干擾。系統框圖如圖1所示。

圖1 系統框圖
機器人通過L298N電機驅動模塊驅動四個直流電機轉動從而實現機器人前后左右移動。將該模塊的IN1、IN2、IN3、IN4四個輸入端分別與單片機的I/O口連接,模塊的OUT1、OUT2、OUT3、OUT4四個輸出端分別與機器人底部的四個直流電機相接。ENA和ENB為使能端,當ENA為高電平時,可對OUT1、OUT2進行控制;當ENB為高電平時,則可對OUT3、OUT4進行控制。通過輸入一定脈寬的PWM來控制L298N驅動模塊H橋的通斷,進而改變驅動模塊輸出電壓的有效值,實現對各個直流電機的轉速控制,使機器人可以向不同方向移動。L298N電機驅動模塊電路如圖2所示。

圖2 L298N電機驅動模塊電路
超聲波測距功能的實現采用HC-SR04超聲波傳感測距模塊。該模塊上裝載有兩個壓電陶瓷超聲傳感器,其中一個用于發射超聲波信號,另一個則用于接收反射回來的超聲波信號。將該模塊的Trig控制端和Echo接收端與單片機的I/O口相連,便可實現其與單片機之間的通信。單片機通過計算發射與接收超聲波信號的時間差,進而計算出撿網球機器人前進方向障礙物的距離以實現避障的目的。HC-SR04超聲波測距模塊電路如圖3所示。

圖3 HC-SR04超聲波測距模塊電路
攝像頭網球識別采用OpenMV4攝像頭模塊進行圖像的獲取、預處理、特征抽取和選擇及分類器設計和分類決策。OpenMV4攝像頭模塊以STM32F427單片機為核心控制處理芯片,集成了OV7725攝像頭芯片,預留SD卡卡槽,擁有一個SPI總線接口、一個異步串口、三個舵機控制接口,將單片機串口與模塊異步串口相連即可實現單片機與模塊之間的通信。OpenMV4攝像頭模塊電路如圖4所示。

圖4 OpenMV4攝像頭模塊電路
撿網球機器人的撿球裝置是由多個SG-90舵機搭配一些固件組裝成的機械臂。通過多個舵機的轉動實現對網球的抓取與收集。舵機其實就是一種位置伺服馬達,主要由小型馬達與齒輪等構成。單片機的引腳連接舵機的控制端并發送高低電平信號,舵機內部通過調制芯片就會獲得一個直流偏置電壓,然后直到級聯減速齒輪帶動電位器旋轉使得直流偏置電壓與舵機內部的基準電壓之差的絕對值減為零,舵機才會停止轉動。也就是說,單片機提供高電平的延續時間決定了舵機轉動的角度。舵機的電路如圖5所示。

圖5 舵機電路
語音識別功能的實現采用LD3320A語音識別模塊。該模塊是基于“關鍵詞語列表”的識別技術,使用者通過麥克風傳入語音信號后,模塊內部的聲音傳感器就會將語音流轉化為電壓信號,模塊內部對該信號進行頻譜分析并提取特征發送到內部的語音識別器,然后語音識別器訪問關鍵詞語列表,將識別結果發送給單片機。將單片機的串口與模塊串口相接即可實現單片機與模塊之間的通信。LD3320A語音識別模塊電路如圖6所示。

圖6 LD3320A語音識別模塊電路
WiFi遠程APP控制功能的實現采用ESP8266-01S模塊。該模塊支持標準的IEEE802.11b/g/n協議,內置完整的TCP/IP協議棧以及通用AT指令集,支持STA/AP/STA+AP三種工作模式。將模塊串口與單片機串口相連從而實現模塊與單片機之間的通信,然后單片機向模塊持續發送一系列AT指令,手機就能夠連接上WiFi模塊,進而實現手機APP控制。ESP8266模塊電路如圖7所示。

圖7 ESP8266模塊電路
對于測距的實現,首先需要單片機向超聲波傳感測距模塊控制端發出至少10 μs的高電平信號,超聲波信號發射后則從接收端檢測是否有信號返回。如果有,則向接收端輸出高電平信號,同時啟動定時器計算高電平持續的時間,然后通過公式(距離=(時間×聲速)/2,聲速為340 m/s)計算出撿網球機器人與障礙物之間的距離。
對于避障功能的實現,則是事先由程序設計好的規則,規定安全距離為20 cm。如果前方障礙物距離小于20 cm,便立即停止前進,此時舵機帶動超聲波傳感測距模塊轉動分別測量左右兩側障礙物距離,并選擇向距離較大的一側轉動;如果左右兩側障礙物距離都小于20 cm,則后退。如圖8所示為測距避障流程。

圖8 測距避障流程
OpenMV4攝像頭初始化后,讀取圖像轉為灰度圖像,規定閾值并切割圖像。通過降噪等預處理加強圖像的重要特征,然后提取網球的輪廓、長度、寬度、周長、面積、顏色等特征值。采取圖像梯度的方法獲取網球輪廓,分別產生二值圖和二值圖的邊緣提取圖提取網球面積和周長。采集網球圖片素材制作數據集并訓練模型,使用深度殘差網絡ResNet作為基石,模型的訓練需要用生成器將數據集循環寫入內存,同時圖像增強以泛化模型。通過模型訓練能夠得到一種網球的識別規則的分類器,模塊內部處理器經過分類決策后就能夠識別到網球,得出網球的位置,采用視差測距法計算網球的距離,然后傳遞給單片機。如圖9所示為網球識別流程。

圖9 網球識別流程
舵機通過轉動帶動機械爪閉合實現對網球的抓取,而舵機的轉動需要通過單片機傳輸高電平信號。在控制舵機時,先使單片機的定時器產生一個20 ms周期的PWM信號,而該周期內高電平信號延續時間范圍是0.5~2.5 ms,總間隔為2 ms;舵機根據PWM信號中高電平的占空比而轉動特定的角度,并利用定時器中斷,每1.5 ms中斷一次,從而改變PWM信號中高電平的占空比,即可對舵機的轉動角度進行控制。圖10所示為舵機轉動帶動機械爪閉合瞬間。

圖10 舵機轉動帶動機械爪閉合瞬間
語音控制功能的實現是通過單片機向與之相連的LD3320A語音識別模塊之間的串口發送需要識別的關鍵詞語列表,此后模塊就會對接收到的聲音信號與關鍵詞列表的詞語進行比對;然后將識別結果發送給單片機,單片機通過識別結果來決定是否執行撿網球機器人“前進”“后退”“左轉”“右轉”“網球抓取”的指令。圖11所示為語音控制流程。

圖11 語音控制流程
WiFi無線通信功能的實現是通過單片機向與之相連的ESP8266-01S WiFi模塊之間的串口發送一系列的AT指令來對模塊進行配置。單片機通過發送“AT+CWMODE”“AT+CI PAP”“AT+CIPSERVER”等指令配置模塊的模式、啟動TCP/IP、設置端口號等。手機連接上模塊后就可以向其發送信息,如果模塊收到手機端發來的信號,則會向與單片機相連的串口發送包含收到的網絡信息的描述字符串。圖12所示為WiFi無線通信流程。

圖12 WiFi無線通信流程
圖13所示為撿網球機器人實物圖。機器人采用小車作為模型,小車上方前端位置裝有攝像頭以及舵機云臺,后端位置裝有機械臂支撐底座,各功能模塊裝置在合適位置保證系統模塊間互不干擾、協調工作。經過測試,撿網球機器人能夠準確識別到網球并抓取回收。同時,當前進路線上遇到障礙物時,能夠自主規劃前行路線實現自主避障。此外,能夠通過語音控制以及手機APP遠程控制機器人正常執行“前進”“后退”“左轉”“右轉”“網球抓取”等指令,如圖14所示為APP操作頁面。

圖13 撿網球機器人實物圖

圖14 APP操作頁面
表1為智能避障測試結果。測試表明,機器人能夠達到預期的避障效果。表2為語音控制測試結果。測試表明,機器人能夠正常執行語音指令。表3為網球撿拾率測試結果。測試表明,機器人能夠拾取多數的網球,但撿拾率受到光照強度、網球密度、網球位置等環境因素的影響,因此需要更優的算法進行改進。

表1 智能避障測試結果

表2 語音控制測試結果

表3 網球撿拾率測試結果
現如今人工智能是大勢所趨,更多的繁重瑣碎的體力勞動都將由機器代替完成。本文介紹的基于圖像識別的撿網球機器人實現了超聲波測距和智能避障、網球識別抓取、語音控制及手機APP遠程控制等功能。經測試發現,本設計能夠達到預期要求,性能穩定;在一定程度上能夠幫助網球運動愛好者減輕頻繁撿球的負擔,讓人們更加享受網球運動的過程,專注訓練。
本文介紹的基于圖像識別的撿網球機器人在性能以及功能上還有提升的空間,優化的方向大致為:①多個網球的快速拾取;②效率更高的撿球算法設計;③指定區域內撿球。