版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
[9]內(nèi)部特意設(shè)置了過(guò)熱保護(hù)與低壓檢測(cè)電路,PWM控制的頻率可高達(dá)100kHz121。如圖3.5所示。圖3.5電機(jī)H橋驅(qū)動(dòng)部分電路3.7藍(lán)牙電路設(shè)計(jì)本設(shè)計(jì)通過(guò)藍(lán)牙將數(shù)據(jù)發(fā)送至手機(jī),同時(shí)手機(jī)也可以發(fā)送指令到單片機(jī)進(jìn)行控制。HC-05是一款經(jīng)典的藍(lán)牙2.0模塊,該模塊具有性價(jià)比高、體積小巧、功耗低、收發(fā)數(shù)據(jù)穩(wěn)定的特點(diǎn),其內(nèi)部的芯片支持SPP藍(lán)牙協(xié)議。HC-05藍(lán)牙的實(shí)物圖如圖3.6所示,其具體的參數(shù)如下:(1)供電電壓:3.6V-6V,工作電流:10-50mA。(2)通信頻段:2.4GHz。(3)通信接口:TTL異步串口,默認(rèn)波特率為9600。(4)配置方式:AT通信指令。圖3.6HC-05藍(lán)牙模塊實(shí)物圖HC-05藍(lán)牙模塊具有6個(gè)對(duì)外接口,這是設(shè)計(jì)藍(lán)牙通信電路的基礎(chǔ),下面對(duì)模塊的通信接口進(jìn)行介紹:(1)VCC/GND:模塊工作供電引腳,本設(shè)計(jì)使用的5V電源供電,供電的電流為500mA。(2)通過(guò)連接RX/TX模塊的串口輸入/輸出接口與單片機(jī)的串口,實(shí)現(xiàn)了數(shù)據(jù)通信的無(wú)縫銜接。(3)STATE:用于輸出系統(tǒng)工作狀態(tài)的模塊狀態(tài)指示引腳,以指示系統(tǒng)的運(yùn)行狀態(tài)(4)ENB:模塊使能引腳,使能通過(guò)AT指令進(jìn)行控制,當(dāng)ENB接3.3V后,模塊進(jìn)入AT配置模式。圖3.7是HC-05電路原理圖,圖中U30是HC-05藍(lán)牙模塊,模塊的VCC和GND與板子的5V連接。HC-05模塊的RX連接單片機(jī)的PA9口,HC-05的TX連接單片機(jī)的PA10口。圖3.7HC-05電路原理圖3.8收集裝置我設(shè)計(jì)的撿球機(jī)器人主要是由舵機(jī)與小框組成。當(dāng)攝像頭識(shí)別到網(wǎng)球時(shí),機(jī)械臂會(huì)自動(dòng)將網(wǎng)球拾取進(jìn)小框內(nèi)。舵機(jī)電路如圖3.8所示。圖3.8舵機(jī)電路3.9處理器系統(tǒng)撿球機(jī)器人不光要看見(jiàn)識(shí)別網(wǎng)球更主要的是要讓他具有一定的自我選擇的權(quán)力,必須具有清晰的頭腦,所以我們給他安裝了較為強(qiáng)大的處理系統(tǒng),能夠更加準(zhǔn)確的識(shí)別網(wǎng)球從而進(jìn)一步撿球。一般的處理系統(tǒng)由微控制器如DSP、單片機(jī)、ARM等組成。在撿球機(jī)器人的處理過(guò)程中,機(jī)器人的處理器系統(tǒng)包含了上機(jī)位和下位機(jī)。上機(jī)位可以更加清楚的收集數(shù)據(jù)和信息,從而更進(jìn)一步的將控制指令發(fā)送到我們的運(yùn)動(dòng)系統(tǒng)上。軟件采用了對(duì)網(wǎng)球識(shí)別的圖像顯示。通過(guò)對(duì)撿球機(jī)器人的進(jìn)一步處理(如上下移動(dòng)、左右轉(zhuǎn)彎、機(jī)械臂撿球等)和一些傳感器的進(jìn)一步處理和計(jì)算。通過(guò)串行連接等方式從而進(jìn)行通信。3.10傳感器系統(tǒng)撿球機(jī)器人在對(duì)場(chǎng)上進(jìn)行獲取到所有情況,故而我安裝了傳感器來(lái)獲取信息。對(duì)機(jī)器人的內(nèi)部結(jié)構(gòu)來(lái)說(shuō),傳感器是必不可上的一個(gè)重要組成部分。傳感器系統(tǒng)分別由內(nèi)部傳感器和外部傳感器組成。內(nèi)部傳感器我們通過(guò)編程來(lái)解決,外部傳感器是有視覺(jué)傳感器的重要組成部分。在機(jī)器人不清楚場(chǎng)上的情況時(shí),我們通過(guò)視覺(jué)傳感器來(lái)獲取相應(yīng)的信息。我設(shè)計(jì)的撿球機(jī)器人帶有一個(gè)攝像頭,用于進(jìn)行的信息收集;兩個(gè)增量型光電編碼器,主要用于驅(qū)動(dòng)輪進(jìn)行速度檢測(cè)。2.11執(zhí)行機(jī)構(gòu)對(duì)于我設(shè)計(jì)的這個(gè)撿球機(jī)器人來(lái)說(shuō),要完成我交給他的任務(wù)就必須有自我的執(zhí)行能力,撿球機(jī)器人的執(zhí)行方式主要由運(yùn)動(dòng)結(jié)構(gòu)和撿球結(jié)構(gòu)組成,目前的帶有輪轂的機(jī)器人有很多,他們一般都裝有一個(gè)電機(jī),另一種就是有兩個(gè)輪轂的,它們是通過(guò)驅(qū)動(dòng)電機(jī)來(lái)控制的一個(gè)點(diǎn)機(jī)用來(lái)轉(zhuǎn)動(dòng),另一個(gè)電機(jī)用來(lái)控制方向,而我設(shè)計(jì)的這個(gè)是通過(guò)履帶來(lái)控制的。第4章系統(tǒng)軟件設(shè)計(jì)4.1系統(tǒng)軟件總體設(shè)計(jì)本機(jī)器人由全金屬外殼機(jī)械臂,純鋁合金底盤,金屬齒馬達(dá),履帶輪,金屬電機(jī),大手爪,電流驅(qū)動(dòng),移動(dòng)電源等部位組成,我用于設(shè)計(jì)的這一款撿球機(jī)器人是通過(guò)攝像頭來(lái)進(jìn)行分辨網(wǎng)球,在第一時(shí)間發(fā)現(xiàn)網(wǎng)球的時(shí)候會(huì)把網(wǎng)球的位置通過(guò)控制軟件來(lái)反饋,控制軟件會(huì)通過(guò)履帶來(lái)推動(dòng)機(jī)器人的運(yùn)動(dòng)從而進(jìn)一步的靠近目標(biāo),當(dāng)機(jī)器人靠近網(wǎng)球時(shí)會(huì)通過(guò)機(jī)械臂來(lái)控制并拾取網(wǎng)球,從而通過(guò)機(jī)械臂放進(jìn)事先準(zhǔn)備好的框里。當(dāng)完成第一次拾取后,機(jī)器人會(huì)繼續(xù)進(jìn)行的同樣的運(yùn)動(dòng)從而實(shí)現(xiàn)撿球工作。如圖4.1所示。圖4.1系統(tǒng)總體結(jié)構(gòu)框圖4.2測(cè)距避障功能為了實(shí)現(xiàn)對(duì)網(wǎng)球的測(cè)距,需要通過(guò)單片機(jī)向傳感測(cè)距模塊控制端發(fā)出10μs的高電平信號(hào),隨后從接收端檢測(cè)信號(hào)是否返回。當(dāng)在設(shè)定好的時(shí)間段內(nèi)沒(méi)有接收到信號(hào)時(shí),單片機(jī)就會(huì)產(chǎn)生一個(gè)低電平信號(hào)。若有,則向接收端發(fā)出高電平信號(hào)并激活定時(shí)器計(jì)算高電平持續(xù)時(shí)間,再通過(guò)公式(距離=(時(shí)間*聲速)/2,聲速340m/s)進(jìn)一步計(jì)算撿網(wǎng)球機(jī)器人與障礙物的距離。對(duì)于網(wǎng)球進(jìn)球機(jī)器人避障功能,提前由程序設(shè)計(jì)規(guī)則將安全距離定為10cm。如果前方障礙物的距離在10cm以內(nèi),則立刻停止行進(jìn),這時(shí)舵機(jī)驅(qū)動(dòng)傳感測(cè)距模塊旋轉(zhuǎn)以測(cè)量左右兩個(gè)障礙物之間的距離,以選擇朝向距離大的方向旋轉(zhuǎn);如左、右障礙物間距均在20cm以內(nèi),作后退處理。如圖4.2所示為測(cè)距避障流程。圖4.2測(cè)距避障流程4.3網(wǎng)球識(shí)別功能實(shí)現(xiàn)OpenMV4攝像頭識(shí)別圖像并轉(zhuǎn)為灰度的圖像,規(guī)定的閾值并切割圖像。通過(guò)降噪等預(yù)處理加強(qiáng)網(wǎng)球圖像的重要特征,然后提取網(wǎng)球的輪廓、長(zhǎng)度、寬度、面積、顏色等各種特征值。采取圖像梯度的方法來(lái)獲取網(wǎng)球輪廓,分別產(chǎn)生二值圖的邊緣來(lái)提取圖提取網(wǎng)球面積和周長(zhǎng)。采集網(wǎng)球圖片的素材制作數(shù)據(jù)集并訓(xùn)練模型,使用網(wǎng)絡(luò)ResNet來(lái)作為基石,模型的訓(xùn)練要用生成器來(lái)將數(shù)據(jù)集循環(huán)進(jìn)而寫(xiě)入內(nèi)存,同時(shí)圖像增強(qiáng)以泛化模型REF_Ref19312\r\h[12]。通過(guò)訓(xùn)練能夠得到一種網(wǎng)球的識(shí)別規(guī)則來(lái)進(jìn)行網(wǎng)球識(shí)別,模塊內(nèi)部的處理器經(jīng)過(guò)分類來(lái)進(jìn)行決策后就能夠進(jìn)一步識(shí)別到網(wǎng)球,從而得出網(wǎng)球的具體位置,采用視差測(cè)距法來(lái)計(jì)算網(wǎng)球的距離REF_Ref19241\r\h[13],然后進(jìn)一步傳遞給單片機(jī)。如圖4.3所示為網(wǎng)球識(shí)別流程。圖4.3網(wǎng)球識(shí)別流程4.4控制電路總體結(jié)構(gòu)設(shè)計(jì)我設(shè)計(jì)的網(wǎng)球機(jī)器人的控制電路整體結(jié)構(gòu)設(shè)計(jì)包括以下幾個(gè)部分:1.控制器:控制器是控制電路的核心部分,它的功能是用于接收用戶的指令,從而控制各個(gè)電器元件的工作。控制器也可以選擇單片機(jī)或者嵌入式系統(tǒng),可以通過(guò)對(duì)機(jī)器人的復(fù)雜度和功能要求選擇不同的控制器型號(hào)和配置。2.電源管理模塊:通過(guò)為整個(gè)電路提供電源,他們中也包括自主供電和外部供電兩種模式,進(jìn)而滿足機(jī)器人運(yùn)行所需的電源需求。在電源模塊中,還需要添加過(guò)壓保護(hù)、電流保護(hù)、電源開(kāi)關(guān)、電池充電等一系列功能。3.傳感器:傳感器是通過(guò)機(jī)器人的重要的硬件。通過(guò)對(duì)傳感器,機(jī)器人可以來(lái)感受運(yùn)動(dòng)過(guò)程中他們的位置、速度、方向等信息。在網(wǎng)球機(jī)器人中,需要加入重量傳感器、距離傳感器、方向傳感器等。4.驅(qū)動(dòng)模塊:驅(qū)動(dòng)模塊是機(jī)器人運(yùn)動(dòng)過(guò)程中所必不可少的一部分,包括電機(jī)驅(qū)動(dòng)、機(jī)械臂驅(qū)動(dòng)和輪子驅(qū)動(dòng)等功能。要實(shí)現(xiàn)機(jī)器人運(yùn)動(dòng)的平穩(wěn)性和精確性,需要使用高精度的電機(jī),可以選擇步進(jìn)電機(jī),直流電機(jī)等。保護(hù)模塊:保護(hù)模塊是機(jī)器人安全保障的最后一道保護(hù)措施,可以設(shè)置緊急停止按鈕和電路保護(hù)器等。4.5藍(lán)牙模塊藍(lán)牙通信軟件子程序是通過(guò)串口進(jìn)行透?jìng)靼l(fā)送接收數(shù)據(jù)的,通過(guò)調(diào)用串口發(fā)送函數(shù)printf()發(fā)送數(shù)據(jù)到HC-05模塊,如果HC-05模塊接收到數(shù)據(jù)后,單片機(jī)通過(guò)串口中斷函數(shù)進(jìn)行接收,接收的數(shù)據(jù)放到串口結(jié)束數(shù)據(jù)緩存數(shù)組USART_RX_BUF中,主程序通過(guò)對(duì)數(shù)組進(jìn)行校驗(yàn),如果校驗(yàn)正確擇根據(jù)數(shù)組解析的數(shù)據(jù),進(jìn)行相應(yīng)的程序執(zhí)行,之后子程序返回。
第5章系統(tǒng)調(diào)試5.1軟件調(diào)試軟件調(diào)試是以硬件調(diào)試為根本進(jìn)行的,需要保證硬件電路沒(méi)有問(wèn)題,是調(diào)試過(guò)程中相對(duì)復(fù)雜的過(guò)程,很多問(wèn)題不容易被儀器測(cè)試出來(lái)。軟件調(diào)試的思路與硬件調(diào)試思路完全不同。既需要語(yǔ)言語(yǔ)法基礎(chǔ)又需要一定的編程經(jīng)驗(yàn)。本設(shè)計(jì)采用的是C語(yǔ)言,調(diào)試程序第一步就是將C語(yǔ)言程序中的語(yǔ)法錯(cuò)誤部解決好。本設(shè)計(jì)使用的Keil軟件進(jìn)行程序編寫(xiě),在編寫(xiě)編譯過(guò)程中會(huì)進(jìn)行語(yǔ)法檢測(cè),可以實(shí)現(xiàn)大部分語(yǔ)法問(wèn)題的調(diào)試。但是程序的驅(qū)動(dòng)和程序的執(zhí)行邏輯是無(wú)法通過(guò)軟件進(jìn)行識(shí)別的,要結(jié)合測(cè)試現(xiàn)象、調(diào)試結(jié)果和設(shè)計(jì)者經(jīng)驗(yàn)進(jìn)行一步一步的修改嘗試,直到使程序正常運(yùn)行。其中常見(jiàn)的問(wèn)題比有數(shù)組越界、內(nèi)存混亂、子程序之間相互干擾等問(wèn)題。這些問(wèn)題需結(jié)合硬軟件調(diào)試工具進(jìn)行逐步的探索和解決問(wèn)題。在對(duì)IIC子程序進(jìn)行調(diào)試時(shí),通過(guò)軟件編譯以后,顯沒(méi)有錯(cuò)誤可以正常進(jìn)行下到單片機(jī)中,單片機(jī)運(yùn)行程序以后出現(xiàn)了系統(tǒng)失靈,顯示錯(cuò)誤,系統(tǒng)死機(jī),無(wú)法執(zhí)行后邊的程序。經(jīng)過(guò)斷開(kāi)電源重新啟動(dòng)之后仍然現(xiàn)前面的現(xiàn)象。Keil軟件提供了程序調(diào)試器和單步執(zhí)行功能。在出問(wèn)題的子程序上,通過(guò)設(shè)置斷點(diǎn),判斷每一步執(zhí)行以后每個(gè)變量的數(shù)值是多少,通過(guò)watch窗口可以看到出現(xiàn)問(wèn)題的變量是哪個(gè),再結(jié)合變量的實(shí)際位置,進(jìn)定位出現(xiàn)問(wèn)題的程序語(yǔ)句,實(shí)現(xiàn)程序的寄存器、變量等數(shù)據(jù)的監(jiān)測(cè)。在程序運(yùn)行一個(gè)for循環(huán)語(yǔ)句的時(shí)候,指針變量訪問(wèn)到了數(shù)組規(guī)定范圍以外的位置,發(fā)生了越界,數(shù)組定義的偏離位置最高位8位,但指針在訪問(wèn)過(guò)程卻訪問(wèn)到了第9位,將其他變量的數(shù)據(jù)進(jìn)行了異常修改。導(dǎo)致執(zhí)行到這條語(yǔ)句以后,使程序崩潰,無(wú)法進(jìn)行運(yùn)行。程序整個(gè)內(nèi)存中數(shù)據(jù)發(fā)亂,系統(tǒng)無(wú)法正常執(zhí)行,導(dǎo)致程序指令混亂死機(jī),圖5.1為程序調(diào)試過(guò)程的截圖,通過(guò)調(diào)試解決了程序中存在的數(shù)組越界問(wèn)題,使程序正常運(yùn)行,達(dá)到了的預(yù)期的效果。圖5.1子程序仿真調(diào)試圖通過(guò)使用軟件內(nèi)置的調(diào)試器發(fā)現(xiàn)了這個(gè)問(wèn)題。這個(gè)問(wèn)題的解決方案是對(duì)讀取數(shù)組過(guò)程中的偏移變量進(jìn)行排查,防止越界讀寫(xiě)數(shù)據(jù)。數(shù)組越界是很常見(jiàn)的軟件編寫(xiě)錯(cuò)誤,造成這種問(wèn)題的原因可能是程序編寫(xiě)人員在輸入的時(shí)候輸入了錯(cuò)誤的計(jì)數(shù)值,也有可能是沒(méi)有確定好數(shù)組的具體范圍。本次設(shè)計(jì)出現(xiàn)了數(shù)組越界以后對(duì)程序其他代碼也進(jìn)行了檢查,尤其是對(duì)使用循環(huán)語(yǔ)句訪問(wèn)數(shù)組,進(jìn)行重點(diǎn)關(guān)注,確保程序中其他位置不會(huì)出現(xiàn)類似的問(wèn)題。5.2實(shí)物調(diào)試圖5.2是撿球機(jī)器人的實(shí)物圖。機(jī)器人上方通過(guò)機(jī)械臂的表面來(lái)安裝攝像頭與藍(lán)牙模塊,尾部由機(jī)械臂的底部來(lái)支撐所有的機(jī)械設(shè)備,從而保證各個(gè)模塊直接不會(huì)發(fā)生故障,進(jìn)而可以更好的完成測(cè)試工作。通過(guò)測(cè)試,我設(shè)計(jì)撿球機(jī)器人可以通過(guò)攝像頭來(lái)精準(zhǔn)的抓取網(wǎng)球,同時(shí),在路線上有一定的障礙時(shí),我們的機(jī)器人可以正確的判斷出正確的路線,從而實(shí)現(xiàn)自主避障。此外,我們可以通過(guò)藍(lán)牙模塊來(lái)連接手機(jī),從而進(jìn)行遠(yuǎn)程操作。圖5.2是撿球機(jī)器人的實(shí)物圖圖5.3時(shí)撿球機(jī)器人自主避障的測(cè)試結(jié)果。通過(guò)表上的數(shù)據(jù)我們可以直觀的發(fā)現(xiàn)機(jī)器人的避障功能有了更好的提高,圖5.4為撿球率的測(cè)試。通過(guò)測(cè)試表明,我們的機(jī)器人在通過(guò)對(duì)光照的強(qiáng)度、網(wǎng)球的密度、網(wǎng)球的位置等環(huán)境方面的影響,進(jìn)而我們進(jìn)行了更加便利的改變。圖5.3自主避障的測(cè)試結(jié)果圖5.4為網(wǎng)球撿拾率測(cè)試結(jié)果隨機(jī)在場(chǎng)館放40個(gè)球進(jìn)行多次實(shí)驗(yàn),來(lái)記錄機(jī)器人開(kāi)始工作及工作后的時(shí)間、拾球個(gè)數(shù),測(cè)試結(jié)果如圖8所示.場(chǎng)館網(wǎng)球數(shù)越多,機(jī)器人移動(dòng)速度就會(huì)越慢,隨著地上網(wǎng)球數(shù)量的逐步減少,網(wǎng)球機(jī)器人的移動(dòng)速度會(huì)進(jìn)一步增加.實(shí)驗(yàn)結(jié)果來(lái)表明拾球機(jī)器人抓取精度能達(dá)到97%.如圖5.5所示。圖5.5測(cè)試結(jié)果第6章總結(jié)與展望由于目前市面上的智能網(wǎng)球收集機(jī)器人還是寥寥無(wú)幾,已經(jīng)有的設(shè)備大多是簡(jiǎn)單的輔助撿球器,而不能實(shí)現(xiàn)高效自主收集網(wǎng)球,對(duì)于正在訓(xùn)練的運(yùn)動(dòng)員和業(yè)余愛(ài)好者來(lái)說(shuō),拾取散落在球場(chǎng)上的網(wǎng)球是繁重的體力勞動(dòng),雇傭球童費(fèi)用又較高。針對(duì)拾球難的問(wèn)題,進(jìn)而對(duì)網(wǎng)球收集機(jī)器人的關(guān)鍵技術(shù)研究,試圖研制一款基于視覺(jué)的智能網(wǎng)球收集機(jī)器人,代替人工實(shí)現(xiàn)自主收集網(wǎng)球。網(wǎng)球底線區(qū)域智能撿球機(jī)器人系統(tǒng)設(shè)計(jì)雖然已有一定的研究成果,但仍然存在一些問(wèn)題和挑戰(zhàn)。以下是一些主要的問(wèn)題和發(fā)展趨勢(shì):1.精度問(wèn)題:當(dāng)前技術(shù)雖然可以精確識(shí)別網(wǎng)球的位置,但在撿球過(guò)程中機(jī)器人的機(jī)械臂和抓取器的精度還存在一定的問(wèn)題,撿球不夠靈活和準(zhǔn)確。2.移動(dòng)速度問(wèn)題:機(jī)器人在撿球過(guò)程中需要快速移動(dòng),否則會(huì)影響比賽的進(jìn)程,但目前機(jī)器人的移動(dòng)速度還不能達(dá)到專業(yè)選手和人類的速度。目前智能撿球機(jī)器人的研發(fā)和制造成本較高,需要更多的技術(shù)創(chuàng)新和成本優(yōu)化。未來(lái),智能撿球機(jī)器人的發(fā)展趨勢(shì)將有以下幾個(gè)方面:1.技術(shù)創(chuàng)新:機(jī)器人技術(shù)將不斷創(chuàng)新和完善,更加精準(zhǔn)的識(shí)別技術(shù)、更高效的移動(dòng)速度或更靈活的機(jī)器臂等新技術(shù)將不斷涌現(xiàn)。2.應(yīng)用拓展:初步的研究表明,智能撿球機(jī)器人不僅可以在網(wǎng)球比賽中使用,還可以在其他球類和運(yùn)動(dòng)比賽中使用,例如,足球、籃球和棒球等。3.集成化應(yīng)用:隨著人工智能、云計(jì)算和大數(shù)據(jù)技術(shù)的發(fā)展,智能撿球機(jī)器人將與其他解決方案集成,為運(yùn)動(dòng)員和球迷提供更多智能服務(wù),如實(shí)時(shí)數(shù)據(jù)分析、球員排名和比賽回放等。綜上所述,雖然智能撿球機(jī)器人的研發(fā)還面臨許多問(wèn)題和挑戰(zhàn),但其發(fā)展前景廣闊,具有無(wú)限的潛力和探索空間。網(wǎng)球底線區(qū)域智能撿球機(jī)器人系統(tǒng)設(shè)計(jì)有以下幾個(gè)發(fā)展趨勢(shì):1.多功能化:未來(lái)的智能撿球機(jī)器人將不僅僅是處理網(wǎng)球的撿球任務(wù),而是要具備更多的功能,例如,可以幫助球員訓(xùn)練、提供數(shù)據(jù)分析和反饋等,這將為球員提供更好的訓(xùn)練和比賽體驗(yàn)。2.自主導(dǎo)航技術(shù)的提高:自主導(dǎo)航技術(shù)是智能撿球機(jī)器人實(shí)現(xiàn)自主行動(dòng)的核心技術(shù),未來(lái)的智能撿球機(jī)器人將具備更加先進(jìn)的自主導(dǎo)航技術(shù),可以在不同的場(chǎng)地和環(huán)境下,更加靈活地完成任務(wù)。3.環(huán)保化和可持續(xù)性:環(huán)?;涂沙掷m(xù)性是未來(lái)機(jī)器人發(fā)展的趨勢(shì),未來(lái)的智能撿球機(jī)器人將越來(lái)越注重環(huán)保,采用更加環(huán)保和節(jié)能的技術(shù),同時(shí)具備更長(zhǎng)的使用壽命,減少對(duì)環(huán)境的影響。4.互聯(lián)網(wǎng)+:智能撿球機(jī)器人將與互聯(lián)網(wǎng)技術(shù)緊密結(jié)合,未來(lái)可以通過(guò)云計(jì)算和大數(shù)據(jù)技術(shù),實(shí)現(xiàn)數(shù)據(jù)的共享和分析,打造更加智能化、集成化的服務(wù)系統(tǒng),為用戶提供更好的服務(wù)和體驗(yàn)。5.個(gè)性化和定制化:未來(lái)的智能撿球機(jī)器人將越來(lái)越注重個(gè)性化和定制化,可以根據(jù)不同用戶的需求和場(chǎng)地環(huán)境進(jìn)行個(gè)性化定制,提供更加適合的服務(wù)和解決方案。綜上所述,未來(lái)網(wǎng)球底線區(qū)域智能撿球機(jī)器人系統(tǒng)設(shè)計(jì)將不斷發(fā)展和進(jìn)步,不僅具備更高的精度、速度和自主性,還將具備更多的功能。參考文獻(xiàn)段元奕,劉家博,沈怡平.基于嵌入式系統(tǒng)的撿球機(jī)器人設(shè)計(jì)[J件,2022,43(05):162-165.覃靜,孫霞.基于STM32單片機(jī)的撿球機(jī)器人設(shè)計(jì)[J].計(jì)算機(jī)與網(wǎng)絡(luò),2021,47(22):60-62.馬飛.一種智能撿球機(jī)器人的多傳感器數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].信息技術(shù)與信息化,2021(09):243-245.章明干.AI撿球機(jī)器人[J].中國(guó)科技教育,2021(07):64-65.任云青.智能乒乓球自動(dòng)撿球機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)[D].南京郵電大學(xué),2020.陳青華,左太虎,徐一紅.基于OpenMV的智能撿球機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù)與信息化,2020(10):210-213.陳章寶,侯勇.網(wǎng)球撿球機(jī)器人視覺(jué)導(dǎo)航系統(tǒng)設(shè)計(jì)[J].廊坊師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2020,20(02):42-45.劉永兵.基于SoC的羽毛球撿拾機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)[D].重慶大學(xué),2020.普邑,楊哲,王新勇.基于OpenMV的撿球機(jī)器人系統(tǒng)設(shè)計(jì)[J].山西電子技術(shù),2020(01):70-73.陳衛(wèi),鄧志良.撿球機(jī)器人路徑規(guī)劃算法研究及仿真[J].計(jì)算機(jī)仿真,2020,37(10):291-296.彭磊.視覺(jué)導(dǎo)航的自主撿球機(jī)器人設(shè)計(jì)與開(kāi)發(fā)[D].東南大學(xué),2019.DOI:10.27014/ki.gdnau.2019.003512.鄭植,席先鵬,王楠,蔣欣燎,夏山淋.機(jī)器視覺(jué)在網(wǎng)球撿球機(jī)器人中的應(yīng)用研究[J].科技創(chuàng)新與應(yīng)用,2019(16):34-35.馬天月.基于ESP8266WiFi芯片的物聯(lián)網(wǎng)模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2017.蓋榮麗,蔡建榮,王詩(shī)宇,等.卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別中的應(yīng)用研究綜述[J].小型微型計(jì)算機(jī)系統(tǒng),2021,42(9):1980-1984.姜映舟.基于計(jì)算機(jī)視覺(jué)的測(cè)距技術(shù)研究[D].桂林:桂林電子科技大學(xué),2019.黃玉金,楊越,薛偉,等.無(wú)線模塊的AT指令UDP透?jìng)髟O(shè)計(jì)[J].電子產(chǎn)品世界,2018,25(1):34-36.LiJiaxin.DesignofIntelligentDaylilyPickingRobot[J].HanJinghai.MultimediaMotionofPickingRobotBasedonCooperativeRelationshipofMatchingGradientAlgorithm[J].AdvancesinMultimedia,2021,2021.TangZuoliang,XuLijia,WangYuchao,KangZhiliang,XieHong.Collision-FreeMotionPlanningofaSix-LinkManipulatorUsedinaCitrusPickingRobot[J].AppliedSciences,2021,11(23).Zhang,Huan,Yu,Li.Cantilevermulti-axiscontrolmethodforanewarmpickingrobot[J].InternationalJournalofSystemAssuranceEngineeringandManagement,2021(prepublish).LiuPeng,QiaoXinzhou,ZhangXuhui.Stabilitysensitivityforacable-basedcoal–ganguepickingrobotbasedongreyrelationalanalysis[J].InternationalJournalofAdvancedRoboticSystems,2021,18(6).Miki,Kohei,Nagata,Fusaomi,Ikeda,Takeshi,Watanabe,Keigo,Habib,MakiK..Moldedarticlepickingrobotusingimageprocessingtechniqueandpixel-basedvisualfeedbackcontrol[J].ArtificialLifeandRobotics,2021,26(4).TheveninSimon,MebarkiNasser,ChatellierPauline.Dynamicschedulingofapickingrobotwithlimitedbufferandrejection:anindustrialcasestudy[J].InternationalTransactionsinOperationalResearch,2021,29(3).附錄程序#Untitled-By:mengfei-周一2月132023importsensor,time,image,lcd,mathfrompybimportServo,UART,Pin,TimerfrompidimportPID#自動(dòng)搬運(yùn)小車數(shù)據(jù)協(xié)議:0x00停止;0x01前進(jìn)(機(jī)械臂向上);0x02后退(機(jī)械臂向下);0x03左轉(zhuǎn)(機(jī)械臂向左);0x04右轉(zhuǎn)(機(jī)械臂向右);#0x05循跡(自動(dòng)搬運(yùn));0x06跟隨(自動(dòng)撿球);0x07機(jī)械臂控制(上下左右按鈕用來(lái)控制機(jī)械臂);0x08釋放;0x09抓取#小車狀態(tài)全局變量#定義小車狀態(tài)數(shù)據(jù)結(jié)構(gòu)classCARSTATE(object):enSTOP=0enRUN=1enBACK=2enLEFT=3enRIGHT=4enRELEASE=5enCATCH=6enMANUAL=7enTRACING=8enTRAKING=9enAVOIDING=10#globalg_carstate,g_cardir,power,ball_sg_carstate=CARSTATE.enTRAKINGg_cardir=CARSTATE.enSTOPpower=800ball_s=0#串口uart1=UART(1,9600)#PA9,PA10#globalbluetooth_stutas,key_state,key_event,G_FLAGbluetooth_stutas=0G_FLAG=0key_state=0key_event=0key=Pin('D8',Pin.IN,Pin.PULL_UP)THRESHOLD=[(40,96,-9,-38,20,57)]#黃綠色網(wǎng)球#THRESHOLD=[(53,99,-13,46,29,57)]#黃色乒乓球##生成50HZ方波,使用TIM3,channels1,2#控制舵機(jī)需要輸出2.5%-12.5%的PWM#0度0.5/20*100=2.5;(要看實(shí)際的舵機(jī)是否支持0度,一般運(yùn)動(dòng)不到0度,需要把這個(gè)值調(diào)大一點(diǎn))#45度1.0/20*100=5;#90度1.5/20*100=7.5;#135度2.0/20*100=10;#180度2.5/20*100=12.5;#生成50HZ方波#控制舵機(jī)需要輸出2.5%-12.5%的PWMtim=Timer(2,freq=50)#Frequencyin50Hz(20ms)claw=tim.channel(3,Timer.PWM,pin=Pin("A2"),pulse_width_percent=7.5)#初始角度90度globalclaw_offset#定義機(jī)械爪中心和攝像頭圖像中心偏移位置claw_offset=(-20)claw_release=160claw_catch=10count=0#控制舵機(jī)需要輸出2.5%-12.5%的PWMpan_servo=Servo(1)#左右控制tilt_servo=Servo(2)#上下控制#PID云臺(tái)PID,小車跟隨PID,小車循跡PIDpan_pid=PID(p=0.2,i=0,imax=90)#脫機(jī)運(yùn)行或者禁用圖像傳輸,使用這個(gè)PIDtilt_pid=PID(p=0.15,i=0,imax=90)#脫機(jī)運(yùn)行或者禁用圖像傳輸,使用這個(gè)PIDdis_pid=PID(p=0.9,i=0.01)len_pid=PID(p=0.6,i=0.01)#Untitled-By:mengfan_zheng-周日5月82022############################電機(jī)驅(qū)動(dòng)部分#############################如果上電時(shí)出現(xiàn)電機(jī)異常運(yùn)轉(zhuǎn),是因?yàn)镻B4引腳默認(rèn)為JTAG功能,更新到最新日期的固件可解決這個(gè)問(wèn)題pwmA1=Pin('B0')#TIM3_CH3pwmA2=Pin('B1')#TIM3_CH4pwmB1=Pin('B4')#TIM3_CH1pwmB2=Pin('B5')#TIM3_CH2#定義定時(shí)器3,頻率為1000Hz,即1ms一次定時(shí)器中斷tim=Timer(3,freq=1000)#初始化PWM,通過(guò)調(diào)節(jié)PWM控制左右輪速度,初試占空比為0(車靜止)Left1=tim.channel(4,Timer.PWM,pin=pwmA1,pulse_width_percent=0)Left2=tim.channel(3,Timer.PWM,pin=pwmA2,pulse_width_percent=0)Ritht1=tim.channel(1,Timer.PWM,pin=pwmB1,pulse_width_percent=0)Ritht2=tim.channel(2,Timer.PWM,pin=pwmB2,pulse_width_percent=0)#定義機(jī)械爪舵機(jī)運(yùn)動(dòng)角度#輸入:舵機(jī)運(yùn)動(dòng)到目標(biāo)角度#輸出:無(wú)defclaw_angle(servo_angle):ifservo_angle<=0:servo_angle=0ifservo_angle>=180:servo_angle=180percent=(servo_angle+45)/18claw.pulse_width_percent(percent)#定義舵機(jī)運(yùn)動(dòng)#輸入:舵機(jī)運(yùn)動(dòng)的起止角度#輸出:無(wú)defservo_move(servo_n,start_angle,end_angle):ifstart_angle>=end_angle:while(start_angle>=end_angle):servo_n.angle(start_angle-2)time.sleep(50)start_angle=start_angle-2return0ifstart_angle<=end_angle:while(start_angle<=end_angle):servo_n.angle(start_angle+2)time.sleep(50)start_angle=start_angle+2return0#功能:小車控制#輸入:左,右速度#輸出:無(wú)defrun(left_speed,right_speed):#print("left_speed",left_speed)#print("right_speed",right_speed)ifleft_speed<-100:left_speed=-100elifleft_speed>100:left_speed=100ifright_speed<-100:right_speed=-100elifright_speed>100:right_speed=100ifleft_speed>0:Left1.pulse_width_percent(abs(left_speed))Left2.pulse_width_percent(abs(0))else:Left1.pulse_width_percent(abs(0))Left2.pulse_width_percent(abs(left_speed))ifright_speed>0:Ritht1.pulse_width_percent(abs(right_speed))Ritht2.pulse_width_percent(abs(0))else:Ritht1.pulse_width_percent(abs(0))Ritht2.pulse_width_percent(abs(right_speed))#功能:尋找最大的目標(biāo),計(jì)算方式為像素面積排序#輸入:鏈表objects,坐標(biāo)X,坐標(biāo)y,像素寬,像素高#輸出:最大目標(biāo)元組deffind_max_object(objects):max_size=0forobjectinobjects:ifobject[2]*object[3]>max_size:max_object=objectmax_size=object[2]*object[3]returnmax_objectdefclaw_auto_catch(img,ball_s,max_blob):globalcountpan_error=0tilt_output=0title_angle=0pan_error=img.width()/2-max_blob.cx()tilt_error=(img.height()/2-claw_offset)-max_blob.cy()print("pan_error:",pan_error)#pan_output=pan_pid.get_pid(pan_error,1)/2tilt_output=tilt_pid.get_pid(tilt_error,1)#關(guān)閉左右追蹤title_angle=tilt_servo.angle()-tilt_output#pan_servo.angle(pan_servo.angle()+pan_output)tilt_servo.angle(title_angle)############################抓取#############################抓取得策略是攝像頭與夾子呈一定角度安裝,大概45度,讓一半得夾子在圖像中,目的是方便判斷目標(biāo)是否一直在夾子上#然后修訂目標(biāo)在夾子中得位置,當(dāng)修訂好之后再執(zhí)行夾取動(dòng)作。if(ball_s>=60andball_s<=100):run(0,0)count=count+1ifcount>=3:count=0run(0,0)claw_angle(claw_catch)#夾取time.sleep(1000)servo_move(tilt_servo,tilt_servo.angle(),45)#抬起time.sleep(1000)run(60,60)#前進(jìn)time.sleep(3000)run(0,0)servo_move(tilt_servo,tilt_servo.angle(),60)#向下time.sleep(1000)claw_angle(claw_release)#釋放time.sleep(1000)run(-60,-60)#后退time.sleep(5000)run(0,0)if(ball_s>100)and(ball_s<800):############################云臺(tái)追蹤############################count=0claw_angle(claw_release)#############################小車追蹤############################power=0power_s=0power_l=0#前進(jìn)與后退控制,#沒(méi)有做后退,而是采用先大致接近目標(biāo),再修訂距離得方式#前進(jìn)與后退控制,這里采用的是像素面積計(jì)算距離,而抓取采用的是距離參數(shù),#兩者可以統(tǒng)一一下,具體可以根據(jù)實(shí)際物體大小測(cè)定后調(diào)整ifball_s>300andball_s<=800:dis_error=ball_s-300power_s=int(dis_pid.get_pid(dis_error,1)/2)if(power_s>100):power_s=100if(power_s<60):power_s=60elifball_s>100andball_s<=300:dis_error=ball_s-100power_s=int(dis_pid.get_pid(dis_error,1)/2)#電機(jī)PWM限幅,防止最后一點(diǎn)距離走不到if(power_s<60):power_s=60else:power_s=0power_l=int(len_pid.get_pid(pan_error,1))print("power_s:",power_s)print("power_l:",power_l)run(power_s-power_l,power_s+power_l)defcolor_detect(img):globallast_objects,objectsball_s=0iflast_objects:#如果上一張圖像中找到了色塊,就在色塊周邊擴(kuò)展,然后在擴(kuò)展后的ROI區(qū)域進(jìn)行尋找色塊,這樣有利于追蹤forbinobjects:x1=b[0]-7y1=b[1]-7w1=b[2]+12h1=b[3]+12#print(b.cx(),b.cy())roi2=(x1,y1,w1,h1)#print(roi2)objects=img.find_blobs(THRESHOLD,roi=roi2,area_threshold=200)last_objects=objectselse:#如果沒(méi)有找到色塊,就重新計(jì)算全圖的色塊,并將全圖色塊信息保存到上一張圖像上,這樣下一次就可以再進(jìn)行ROI區(qū)域?qū)ふ疑珘Kobjects=img.find_blobs(THRESHOLD,area_threshold=200)last_objects=objectsifobjects:#如果找到了色塊,就計(jì)算最大的色塊位置,并做舵機(jī)追蹤max_blob=find_max_object(objects)#色塊的位置和大小需要滿足圖像本身大小的要求,以免越界ball_s=20000/(max_blob[2]+max_blob[3])#計(jì)算距離img.draw_rectangle(max_blob.rect())#rect目標(biāo)區(qū)域畫(huà)矩形img.draw_cross(max_blob.cx(),max_blob.cy())#cx,cy畫(huà)中心點(diǎn)img.draw_string(max_blob.cx(),max_blob.cy(),"%.2fmm"%(ball_s))#顯示目標(biāo)的距離參數(shù)claw_auto_catch(img,ball_s,max_blob)else:run(0,0)if(tilt_servo.angle()<=45):tilt_servo.angle(45)else:tilt_servo.angle(tilt_servo.angle())claw_angle(claw_release)defbluetooth_deal(img):globalbluetooth_stutas,G_FLAG,g_cardir,g_carstateifuart1.any():rec=uart1.read(1)ifrec!=None:rec=bytes(rec)print(rec)ifrec==b'\x00':#停車g_cardir=CARSTATE.enSTOPelifrec==b'\x01':#前進(jìn)g_cardir=CARSTATE.enRUNelifrec==b'\x02':#后退g_cardir=CARSTATE.enBACKelifrec==b'\x03':#左轉(zhuǎn)g_cardir=CARSTATE.enLEFTelifrec==b'\x04':#右轉(zhuǎn)g_cardir=CARSTATE.enRIGHTelifrec==b'\x05':#循跡g_carstate=CARSTATE.enTRACINGelifrec==b'\x06':#跟隨g_carstate=CARSTATE.enTRAKINGelifrec==b'\x07':#避障#按兩次就回到手動(dòng)模式bluetooth_stutas=bluetooth_stutas+1ifbluetooth_stutas==1:g_carstate=CARSTATE.enAVOIDINGG_FLAG=1ifbluetooth_stutas==2:g_carstate=CARSTATE.enMANUALG_FLAG=0bluetooth_stutas=0elifrec==b'\x08':#app上是關(guān)燈按鈕,自定義釋放g_cardir=CARSTATE.enRELEASEelifrec==b'\x09':#app上是開(kāi)燈,自定義抓取g_cardir=CARSTATE.enCATCHelifrec==b'\xF0':#一鍵切換到手動(dòng)模式g_carstate=CARSTATE.enMANUALBST_fLeftMotorOut,BST_fRightMotorOut,g_power=0,0,800if(g_carstate==CARSTATE.enMANUAL):#手動(dòng)控制小車if(g_cardir==CARSTATE.enSTOP):BST_fLeftMot
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024裝修合同范本版
- 個(gè)人倉(cāng)庫(kù)租賃協(xié)議樣本
- 小學(xué)食堂食品供應(yīng)合同
- 2024年冷鏈車運(yùn)輸合同
- 校企合作框架協(xié)議書(shū)范例
- 2024售樓處物業(yè)服務(wù)合同(物業(yè))
- 2024英文股份合同范本英文股份合同
- 2024個(gè)人裝修房屋合同范本
- 2024《鋁合金門窗合同》
- 機(jī)動(dòng)車輛交易協(xié)議文本
- 雙塔精餾正常停車雙塔精餾正常停車
- 安徽省A10聯(lián)盟2023-2024學(xué)年高三上學(xué)期11月期中英語(yǔ)試題(含答案解析)
- 北師大版五年級(jí)數(shù)學(xué)上冊(cè)典型例題系列之第四單元:平行四邊形面積的實(shí)際應(yīng)用專項(xiàng)練習(xí)(原卷版)
- 國(guó)開(kāi)2023秋《電子商務(wù)概論》實(shí)踐任務(wù)B2B電子商務(wù)網(wǎng)站調(diào)研報(bào)告參考答案
- 【教學(xué)能力比賽】建筑CAD-教學(xué)實(shí)施報(bào)告
- 第四章-草地類型、分布及分區(qū)
- 2023專業(yè)質(zhì)量負(fù)責(zé)人聘用合同正規(guī)范本(通用版)
- 印刷合同協(xié)議書(shū) 完整版doc正規(guī)范本(通用版)
- 胃癌(英文版)課件
- 初中數(shù)學(xué)七年級(jí)下冊(cè)《5.2.1平行線》教學(xué)課件7
- 浙江省溫州市實(shí)驗(yàn)中學(xué)2023-2024學(xué)年九年級(jí)上學(xué)期期中科學(xué)試卷
評(píng)論
0/150
提交評(píng)論