劉秀杰,祝長(zhǎng)生,王安航,李世鈺
(山東科技大學(xué)智能裝備學(xué)院,山東 泰安 271019)
乒乓球運(yùn)動(dòng)深受人們喜愛(ài)。然而,當(dāng)人們?cè)趫?chǎng)館內(nèi)訓(xùn)練時(shí),常會(huì)有大量乒乓球掉落在地面,運(yùn)動(dòng)者只能一次次彎腰撿球,消耗大量體力和時(shí)間,相關(guān)的自動(dòng)撿球設(shè)備較少,市場(chǎng)需求比較大。當(dāng)前市場(chǎng)已有安東陽(yáng)研究的主要是通過(guò)機(jī)械手等機(jī)械裝置來(lái)?yè)烨颍?],該裝置結(jié)構(gòu)設(shè)計(jì)關(guān)節(jié)較多,控制起來(lái)比較復(fù)雜,且拾取效率較低。文獻(xiàn)[2]研究的利用風(fēng)扇吸力撿球設(shè)備,還有文獻(xiàn)[3]所設(shè)計(jì)的用真空泵吸力來(lái)?yè)烨虻臋C(jī)械機(jī)構(gòu),這兩種撿球結(jié)構(gòu),原理一樣,都是利用吸力把球吸入容器內(nèi),需要安裝專(zhuān)門(mén)的微型真空泵或者風(fēng)扇,在吸球過(guò)程中,容易把運(yùn)動(dòng)場(chǎng)所內(nèi)的垃圾吸入,不衛(wèi)生,還有噪聲。
針對(duì)以上情況,設(shè)計(jì)了一款存、儲(chǔ)一體式乒乓球智能撿取機(jī)器人,通過(guò)單目視覺(jué)技術(shù),實(shí)現(xiàn)了乒乓球智能撿取機(jī)器人自主移動(dòng)行走、避障及乒乓球定位識(shí)別的功能,再由控制部分控制機(jī)械結(jié)構(gòu)來(lái)完成乒乓球的拾取。解決了當(dāng)前的撿球問(wèn)題,滿(mǎn)足市場(chǎng)需求。通過(guò)本自動(dòng)撿球機(jī)器人的設(shè)計(jì),為以后自動(dòng)撿球設(shè)備提供技術(shù)創(chuàng)新與研發(fā)思路。
根據(jù)乒乓球撿取功能要求,設(shè)計(jì)出該產(chǎn)品的機(jī)械結(jié)構(gòu),它主要由驅(qū)動(dòng)結(jié)構(gòu)、拾取結(jié)構(gòu)、傳動(dòng)系統(tǒng)三部分組成。通過(guò)三部分機(jī)械結(jié)構(gòu)的配合工作來(lái)實(shí)現(xiàn)乒乓球的有效撿取,最后根據(jù)每部分結(jié)構(gòu)組裝來(lái)確定設(shè)備的整體結(jié)構(gòu)及外形尺寸,機(jī)器人的整體結(jié)構(gòu)及內(nèi)部透視圖,如圖1所示。外部結(jié)構(gòu)主要由機(jī)器人底座1、拾取裝置外桶2、拾取裝置內(nèi)桶3、支撐桿4、攝像頭5、超聲波傳感器6、萬(wàn)向輪7、驅(qū)動(dòng)輪8(左、右各一個(gè))組成;機(jī)器人底盤(pán)內(nèi)部裝有齒輪驅(qū)動(dòng)電機(jī)9、蓄能電池10、齒輪齒條傳動(dòng)結(jié)構(gòu)11、主控制器12、霍爾傳感器13、導(dǎo)柱14和驅(qū)動(dòng)輪驅(qū)動(dòng)電機(jī)15(左、右各一個(gè))。機(jī)器人底座1通過(guò)導(dǎo)柱14與拾取裝置外桶2相連,拾取裝置內(nèi)桶3裝在拾取裝置外桶2內(nèi),底盤(pán)上裝有支撐桿4,用以支撐攝像頭5,底盤(pán)下面裝有兩個(gè)驅(qū)動(dòng)輪8和一個(gè)萬(wàn)向輪7,驅(qū)動(dòng)輪8分別由兩個(gè)驅(qū)動(dòng)電機(jī)15帶動(dòng),從而使底盤(pán)可以帶動(dòng)拾取裝置運(yùn)動(dòng)。齒輪齒條機(jī)構(gòu)11由驅(qū)動(dòng)電機(jī)9帶動(dòng),使拾取裝置上下運(yùn)動(dòng),完成撿球,上下位置點(diǎn)裝有霍爾傳感器13 來(lái)提取信號(hào),將信號(hào)傳遞給STM32F103單片機(jī)12,從而控制電機(jī)正反轉(zhuǎn),使齒輪正轉(zhuǎn)或反轉(zhuǎn)來(lái)帶動(dòng)拾取裝置上下運(yùn)動(dòng),完成小球的拾取。該系統(tǒng)所需能量均有由蓄電池10來(lái)提供。
圖1 機(jī)器人的總體機(jī)械結(jié)構(gòu)及內(nèi)部透視圖Fig.1 Overall Mechanical Structure and Internal Perspective of the Robot
其具體工作過(guò)程如下:機(jī)器人在撿球工作之前,先由攝像頭,拍攝工作場(chǎng)地圖片,由視覺(jué)模塊要先識(shí)別乒乓球并確定其三維位置,計(jì)算出球到機(jī)器之間的距離,并將該信號(hào)傳輸給單片機(jī),再由控制系統(tǒng)控制驅(qū)動(dòng)電機(jī)15轉(zhuǎn)過(guò)一定的轉(zhuǎn)數(shù),從而使設(shè)備移動(dòng)到乒乓球所在的位置,到達(dá)指定位置后,控制系統(tǒng)控制驅(qū)動(dòng)電機(jī)9轉(zhuǎn)動(dòng),帶動(dòng)齒輪轉(zhuǎn)動(dòng),齒輪和齒條嚙合,其中齒輪15固定,齒條向下運(yùn)動(dòng),齒條與拾取裝置外桶為一體,內(nèi)桶裝在外桶內(nèi),從而使拾取裝置向下運(yùn)動(dòng),運(yùn)動(dòng)到與地面接觸,由于內(nèi)桶下面裝有一定間隔的彈性繩,在彈力作用下,將小球彈入桶內(nèi),從而完成球的拾取。拾取裝置向下運(yùn)動(dòng)到與地面接觸拾取球的同時(shí),霍爾傳感器向控制系統(tǒng)發(fā)出信號(hào),再由控制系統(tǒng)控制電機(jī)9反轉(zhuǎn),帶動(dòng)齒輪齒條傳動(dòng),使拾取裝置向上運(yùn)動(dòng),為下一次乒乓球的拾取做準(zhǔn)備。
由于桶與導(dǎo)柱的接觸點(diǎn)是不斷變化的,我們研究桶在運(yùn)動(dòng)某一瞬時(shí)點(diǎn)的情況,圓桶上的受力情況,如圖2所示。
圖2 桶的受力分析圖Fig.2 Stress Analysis Diagram of Bucket
首先建立空間坐標(biāo)系(o-x-y-z),由靜力學(xué)方程所得式(1):
式中:G—圓桶的重力(已知);Fz—齒輪給齒條的切向力;Fr—徑向力;fd、Fd—導(dǎo)柱與圓桶間的摩擦系數(shù)和滑動(dòng)摩擦力。
再由補(bǔ)充式(2)所示:
α=20°,齒輪齒條的嚙合角為20°;
以式(3)作為依據(jù),確定所選用電機(jī)的型號(hào)和規(guī)格。
該結(jié)構(gòu)在設(shè)計(jì)時(shí)要解決三個(gè)問(wèn)題,第一是底部彈簧繩的穿孔與分布問(wèn)題;第二,彈性繩變形量的確定;第三,與外桶的連接問(wèn)題。由于乒乓球?yàn)?0mm,質(zhì)量為2.7g,具有體積小、質(zhì)量輕的特點(diǎn)[2]。撿球裝置利用彈性繩的彈性以及彈性形變恢復(fù)的能力將小球彈入桶內(nèi)。當(dāng)拾取桶向下運(yùn)動(dòng)時(shí),當(dāng)球與彈性繩接觸開(kāi)始,彈性繩發(fā)生形變,直到桶底部到達(dá)地面位置時(shí),即彈性繩卡在球的直徑三分之一處,小球拾取瞬時(shí)效果圖,如圖3所示。
圖3 小球拾取瞬時(shí)效果圖Fig.3 Instant Effect Picture of Small Ball Picking
取此瞬時(shí)研究小球的受力,球的受力分析,如圖4所示。由彈性力學(xué)胡克定律所得式(4):
又由于Δx1=Δx2=Δx,所以,F(xiàn)1=F2=F.
F1可以分解成Fx1和Fz1;F2可以分解成Fx2和Fz2,由此建立空間坐標(biāo)系(o1-x1-y1-z1)。由靜力學(xué)方程所得式(5):
式中:F1、F2—球兩側(cè)受到左、右兩邊彈性繩的彈力;G—球的重力;K—彈性繩彈性系數(shù)為;Δx1、Δx2—左右兩側(cè)彈性繩的形變量;r—為乒乓球半徑。
從而確定彈性繩間隔和彈性繩的變形量Δx和相鄰的彈性繩間距L,L要小于乒乓球的直徑,大約在(17~30)mm時(shí),拾取效果較好。由于選擇彈性繩材料不同,彈性系數(shù)不同,所求出的變形量也不同。內(nèi)桶與外桶的連接主要靠?jī)?nèi)桶和外桶底部設(shè)計(jì)有三個(gè)均布的錐形面聯(lián)結(jié)。最后,設(shè)計(jì)出了乒乓球收集與儲(chǔ)存一體的桶式結(jié)構(gòu),如圖4所示。
圖4 球的受力分析圖Fig.4 Force Analysis Diagram of Ball
該設(shè)計(jì)使用STM32F103單片機(jī)作為控制核心,利用攝像頭拍攝場(chǎng)地圖片,將信息傳遞給圖像處理單元,獲取乒乓球的空間位置,計(jì)算出球到機(jī)器人之間的距離;同時(shí),將信息傳遞給控制系統(tǒng),再由控制系統(tǒng)控制驅(qū)動(dòng)電機(jī)帶動(dòng)撿球設(shè)備移動(dòng)到目標(biāo)位置;最后,通過(guò)拾取機(jī)械裝置對(duì)乒乓球?qū)崿F(xiàn)有效撿取。在運(yùn)行過(guò)程中通過(guò)超聲波傳感器監(jiān)測(cè)周?chē)h(huán)境,實(shí)現(xiàn)自動(dòng)避障[4];霍爾傳感器提取桶下移位置信息[16],將此信息傳遞給控制系統(tǒng)[5-7],由控制系統(tǒng)控制電機(jī)9反轉(zhuǎn),使拾取裝置向上運(yùn)動(dòng);穩(wěn)壓模塊進(jìn)行降壓和穩(wěn)壓操作以獲得所需的電壓。其控制系統(tǒng)結(jié)構(gòu),如圖5所示。
圖5 機(jī)器人控制系統(tǒng)結(jié)構(gòu)圖Fig.5 Structure Diagram of Robot Control System
在對(duì)技術(shù)參數(shù)(例如:發(fā)動(dòng)機(jī)驅(qū)動(dòng)的機(jī)器人的承載能力,運(yùn)行扭矩、速度和功率)分析計(jì)算的基礎(chǔ)上,通過(guò)在機(jī)器人的機(jī)械結(jié)構(gòu)中添加減速裝置,進(jìn)一步改善了直流電動(dòng)機(jī)選擇和運(yùn)行扭矩。最后,確定直流電動(dòng)機(jī)型號(hào)為:Y4566RS。
選用L298N用作電動(dòng)機(jī)驅(qū)動(dòng),它可以控制電機(jī)正向、反向轉(zhuǎn)動(dòng)以及速度控制,可以同時(shí)驅(qū)動(dòng)兩個(gè)直流電動(dòng)機(jī),具有良好的啟動(dòng)性能和高啟動(dòng)轉(zhuǎn)矩。該驅(qū)動(dòng)器可以通過(guò)PWM波傳輸接口,然后控制電動(dòng)機(jī)的速度,電動(dòng)機(jī)驅(qū)動(dòng)電路,如圖6所示。
圖6 電機(jī)驅(qū)動(dòng)電路圖Fig.6 Motor Drive Circuit Diagram
電源為系統(tǒng)中的單片機(jī)、電機(jī)、其驅(qū)動(dòng)裝置以及避障系統(tǒng)等提供所需的電源。電源電壓有12V和5V兩個(gè)電壓值,該系統(tǒng)使用12V鋰電池作為電源。需要進(jìn)行降壓和穩(wěn)壓操作以獲得所需的電壓,通常使用電壓穩(wěn)定芯片7812和7805以獲得分別為12V和5V的穩(wěn)定電壓。設(shè)計(jì)電路,如圖7所示。
圖7 電源模塊設(shè)計(jì)電路圖Fig.7 Power Module Design Circuit Diagram
超聲模塊的實(shí)物,如圖8所示。該原理及其在撿球機(jī)器人中的應(yīng)用[4,16]如下:提供大于10μS的脈沖激活信號(hào),該模塊將發(fā)送八個(gè)40kHz周期電平并檢測(cè)回波。當(dāng)檢測(cè)到回聲信號(hào)時(shí),將輸出高回聲信號(hào)。脈沖寬度由單片機(jī)計(jì)時(shí)器計(jì)算,回波信號(hào)的脈沖寬度與測(cè)得的距離成正比。因此,可以根據(jù)發(fā)送信號(hào)和接收回波信號(hào)之間的時(shí)間間隔來(lái)計(jì)算距離,如式(7)所示。
圖8 超聲波模塊實(shí)物圖Fig.8 Physical Drawing of Ultrasonic Module
式中:L—測(cè)試距離,m;T—高電平時(shí)間,s;V—聲速(340M/S)。
單片機(jī)收到計(jì)算出的距離,數(shù)字信號(hào)用于激活電信號(hào)到電機(jī)驅(qū)動(dòng)模塊的傳輸,從而使撿球機(jī)器人可以實(shí)現(xiàn)停止、前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等動(dòng)作,并通過(guò)預(yù)處理的微控制器完成智能拾球機(jī)器人的避障過(guò)程。
機(jī)器人控制系統(tǒng)主要由視覺(jué)識(shí)別模塊、電機(jī)驅(qū)動(dòng)模塊、避障模塊、電源四部分組成,在綜合考慮機(jī)器人的分辨能力、反應(yīng)速度等指標(biāo)后,確定了對(duì)主控芯片的選型,主控芯片STM32F103的電路原理圖,如圖9所示。
圖9 主控芯片原理圖Fig.9 Schematic Diagram of Main Control Chip
其中主控芯片PC10,PC11引腳作為串口發(fā)送與接收端口分別連接攝像頭STM32H743 芯片的PA1,PA2 引腳;主控芯片PD12-PD15引腳連接兩個(gè)如圖6所示的L298N電機(jī)驅(qū)動(dòng)電路;主控芯片PA0-PA3等引腳功能復(fù)用為定時(shí)器編碼器模式與直流電機(jī)的編碼器相連接;主控芯片PA6,PA7引腳功能復(fù)用為定時(shí)器3通道1和通道2分別與超聲波模塊的發(fā)射端和接收端連接。電源模塊通過(guò)電壓穩(wěn)定芯片得到5V和12V電壓,分別給主控單片機(jī)和直流電機(jī)供電,如圖7所示。
軟件設(shè)計(jì)包括攝像頭圖像處理程序設(shè)計(jì)、運(yùn)動(dòng)控制系統(tǒng)程序設(shè)計(jì)。其中攝像頭圖像處理的程序設(shè)計(jì)是在Openmv-ide開(kāi)發(fā)調(diào)試環(huán)境下采用Python編程實(shí)現(xiàn)的,運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì)是在Keil uvision 5 MDK開(kāi)發(fā)調(diào)試環(huán)境下采用C語(yǔ)言編程實(shí)現(xiàn)的,其軟件系統(tǒng)流程圖,如圖10所示。
圖10 撿球機(jī)器人軟件系統(tǒng)流程圖Fig.10 Software System Flow Chart of Ball Picking Robot
撿球機(jī)器人進(jìn)行撿球工作之前,要先識(shí)別乒乓球并確定其三維位置,對(duì)乒乓球的識(shí)別和定位[9-10,14-15],考慮到成本和計(jì)算時(shí)間的問(wèn)題,最后確定選用單目攝像頭來(lái)完成乒乓球的識(shí)別與定位,其工作流程,如圖11所示。
圖11 圖像處理工作流程圖Fig.11 Image Processing Flow Chart
首先利用MATLAB 軟件仿真,再用樣機(jī)驗(yàn)證。利用Python軟件處理MATLAB 仿真處理過(guò)程,如圖12 所示。先利用Open-MV沒(méi)獲取乒乓球的圖像,如圖12(a)所示,系統(tǒng)先對(duì)圖像差分處理,處理后的圖像,如圖12(b)所示;再進(jìn)行中值濾波處理,去除圖像或其他信號(hào)中的噪聲,處理后的圖象,如圖12(c)所示;然后,通過(guò)對(duì)圖像腐蝕膨脹處理,去除圖像中的干擾點(diǎn)和干擾線,處理后的圖象,如圖12(d)所示;緊接著用連通域法處理圖像,找出最大面積,處理后的圖像,如圖12(e)所示;先用Canny 算子邊緣檢測(cè),提取圖像的邊緣,如圖12(f)所示;再用Hough變換算法找取圓,處理后的圖像,如圖12(g)所示;最后求取平均質(zhì)心,如圖12(h)所示。
圖12 乒乓球定位識(shí)別過(guò)程圖Fig.12 Table Tennis Positioning and Recognition Process Chart
系統(tǒng)通過(guò)以上計(jì)算求取圖像的質(zhì)心,從而確定乒乓球在空間中的具體位置,再通過(guò)單目視覺(jué)成像原理,單目視覺(jué)成像原理圖,如圖13所示。求取球的中心位置到機(jī)器人之間的距離L[11-13]。
圖13 單目視覺(jué)測(cè)距原理圖Fig.13 Schematic Diagram of Monocular Vision Ranging
由圖13 所示,(o-x0-y0-z0)為空間坐標(biāo)系,(Oc-x1-y1-z1)為攝像機(jī)坐標(biāo)系,(O'-x2-y2)為圖像坐標(biāo),(O0-u-v)為像素坐標(biāo),由坐變轉(zhuǎn)換后,求出像素中球心O"在空間坐標(biāo)系下的坐標(biāo),球心O"像素坐標(biāo)與空間坐標(biāo)系的轉(zhuǎn)換關(guān)系式(8)所示:
式中:u、v—像素坐標(biāo)系中的像素坐標(biāo);f—相機(jī)焦距,是校準(zhǔn)參數(shù);Dxdy—像素坐標(biāo)系中x軸和y軸方向上每個(gè)像素的物理尺寸;u0v0—顯示坐標(biāo)系,點(diǎn)坐標(biāo)系中原點(diǎn)的坐標(biāo);ax=f/dx,ay=f/dy—分別是使用像素寬度和高度做單位時(shí)的焦距長(zhǎng)度;—它與攝像機(jī)的內(nèi)部結(jié)構(gòu)有關(guān),稱(chēng)為攝像機(jī)的內(nèi)部參數(shù);RT—表示相機(jī)相對(duì)于空間坐標(biāo)系的位置和方向,并稱(chēng)為相機(jī)的外部參數(shù)。
將單目視覺(jué)測(cè)距原理圖轉(zhuǎn)換成二維圖,如圖14所示。球的半徑r已知,像素坐標(biāo)系中的r"在空間坐標(biāo)系下的值可由式(8)求得,f是攝像機(jī)標(biāo)定參數(shù),由幾何關(guān)系式(9)可求得d:
圖14 小孔成像原理二維圖Fig.14 Two Dimensional Diagram of Pinhole Imaging Principle
再由三角形原理,如圖15所示。求出距離的球到攝像機(jī)的水平距離L,如式(10)所示:
圖15 三角形原理圖Fig.15 Triangle Diagram
式中:h—攝像機(jī)距離地面的距離(已知)。
通過(guò)式(10)求取乒乓球到機(jī)器人之間的距離,再由控制系統(tǒng)控制電機(jī)ZY4566RS轉(zhuǎn)過(guò)一定的轉(zhuǎn)數(shù),從而使設(shè)備移動(dòng)到乒乓球所在的位置,再由控制系統(tǒng)控制拾取裝置上、下移動(dòng)將球拾取。
通過(guò)以上機(jī)械結(jié)構(gòu)、控制系統(tǒng)、視覺(jué)識(shí)別與定位三部分的設(shè)計(jì),最終完成了智能撿球機(jī)器人的實(shí)物模型,如圖16所示。
機(jī)器人裝配時(shí),首先對(duì)攝像頭的安裝角度進(jìn)行設(shè)定,設(shè)定撿球機(jī)器人攝像頭安裝角度為45°,在機(jī)器人前方不同方向位置放置若干乒乓球,如圖17(a)所示。啟動(dòng)機(jī)器人,觀察機(jī)器人拾球動(dòng)作的執(zhí)行與效果,檢查機(jī)器人在找不到球的情況下的動(dòng)作執(zhí)行,撿球過(guò)程,如圖17(b)~圖17(h)所示。實(shí)際運(yùn)行測(cè)試結(jié)果表明,機(jī)器人可以順利完成撿球動(dòng)作,撿球效率比較高。
圖17 智能撿球機(jī)器人撿球過(guò)程圖Fig.17 Process Diagram of Intelligent Ball Picking Robot
基于單目視覺(jué)技術(shù)乒乓球智能拾取機(jī)器人,采用移動(dòng)平臺(tái)搭載四自由度的機(jī)械撿取裝置,以STM32F103為控制核心,控制拾取裝置上、下運(yùn)動(dòng),利用存儲(chǔ)一體拾取裝置上的彈性繩的彈力來(lái)實(shí)現(xiàn)撿球。它具有視覺(jué)定位功能,能定位、跟蹤乒乓球在空間中的準(zhǔn)確位置;具有自動(dòng)避障功能,可控性強(qiáng)。通過(guò)實(shí)物模型的測(cè)試表明,該機(jī)器人結(jié)構(gòu)簡(jiǎn)單、運(yùn)動(dòng)靈活,成本低,撿球的效率高。它為自動(dòng)撿球機(jī)的設(shè)計(jì)提供技術(shù)創(chuàng)新與研發(fā)思路,后續(xù)設(shè)計(jì)考慮采用雙目來(lái)代替單目以提高球的定位準(zhǔn)確性,采用新的圖像處理算法來(lái)實(shí)現(xiàn)復(fù)雜背景下的乒乓球的檢測(cè)與跟蹤。