周旭華,伍懿美,黃曉茹,翁嘉欣
(河源職業(yè)技術(shù)學(xué)院,廣東 河源 517000)
隨著科技的發(fā)展和進(jìn)步,人們的生活水平逐漸的提高,科技產(chǎn)品的使用也越來越普及,一切都向著智能化發(fā)展[1-3]?,F(xiàn)在,智能機(jī)器人的數(shù)量和適應(yīng)場景的復(fù)雜性也在增加,這也顯示出對智能機(jī)器人的精確性,耐用性和靈活性等性能有更高的要求。機(jī)械臂技術(shù)的應(yīng)用已越來越普及,已逐漸滲透到軍事、航天、醫(yī)療、日常生活及教育娛樂等各個領(lǐng)域,慢慢取代了人類的勞動,尤其是代替人不能到或不適宜去的、有危險的環(huán)境中,工業(yè)自動化對機(jī)器人的智能化水平依賴也越來越高,機(jī)械臂的發(fā)展越來越受到重視[4-5]。
本文設(shè)計(jì)了一種以AT Mega328(Uno)為主控元件的六自由度機(jī)械臂智能垃圾分揀機(jī)器人,包括硬件、軟件和機(jī)械等部分,能夠?qū)崿F(xiàn)上位機(jī)和下位機(jī)的通信及控制,本文制作的樣機(jī)能夠滿足高職院校汽車智能化專業(yè)的實(shí)訓(xùn)教學(xué),通過對樣機(jī)進(jìn)一步優(yōu)化,還能應(yīng)用在貨物搬運(yùn)、智能巡邏等領(lǐng)域,該機(jī)器人的研究符合我國人工智能技術(shù)的政策發(fā)展趨勢,具有很好的實(shí)用價值,具有很好的推廣應(yīng)用前景。
垃圾的分類有很多種,本文設(shè)計(jì)利用顏色來代替不同種類的垃圾[6-8]。智能垃圾分揀機(jī)器人系統(tǒng)的主要結(jié)構(gòu)為機(jī)械臂,視覺功能模塊和藍(lán)牙通信技術(shù),在面對不同場合需求時,需要設(shè)計(jì)不同的動作組來實(shí)現(xiàn)機(jī)械臂的運(yùn)動路徑,也就是說控制各個舵機(jī)的轉(zhuǎn)動角度,本系統(tǒng)視覺功能模塊設(shè)計(jì)中,利用星通科技提供的OpenMV 視覺模塊來完成物體顏色識別,在編程中設(shè)計(jì)三組顏色(紅黃綠)來代替三種類型的垃圾,通過OpenMV 攝像頭的識別來檢測目標(biāo)物體,最終將顏色信息通過藍(lán)牙模塊傳遞給基于Arduino單片機(jī)的開源舵機(jī)控制板,從而實(shí)現(xiàn)機(jī)械臂的顏色自動分揀。
設(shè)計(jì)的智能分揀機(jī)器人,首先由視覺模塊先完成顏色識別功能,同時設(shè)計(jì)機(jī)械臂的動作組,視覺模塊識別物體顏色是否為目標(biāo)顏色,如是目標(biāo)物體,則將結(jié)果發(fā)送給機(jī)械臂的控制板,控制板根據(jù)所得的信息進(jìn)行控制機(jī)械臂做出對應(yīng)的動作組,整體設(shè)計(jì)流程圖如圖1 所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
本系統(tǒng)主要有四個模塊:一是機(jī)械臂的主控模塊;二是機(jī)器的視覺模塊;三是機(jī)械臂模塊;四是藍(lán)牙通信技術(shù)。使用Arduino 編程的開源舵機(jī)控制板控制機(jī)械臂操作的運(yùn)動,并連接藍(lán)牙模塊與OpenMV視覺模塊進(jìn)行串口通信。其系統(tǒng)的硬件設(shè)計(jì)框圖如圖2 所示。
圖2 系統(tǒng)的硬件設(shè)計(jì)框圖
硬件部分包括OpenMV 模塊1 個,藍(lán)牙模塊2個,Arduino 控制板1 塊,數(shù)字舵機(jī)6 個,機(jī)械爪1個,旋轉(zhuǎn)底座1 個,U 型支架4 個,鋰電池1 個。整體設(shè)計(jì)硬件電路及實(shí)物如圖3 所示。
圖3 整體硬件電路圖及實(shí)物圖
智能分揀機(jī)器人整體的軟件設(shè)計(jì)開發(fā)環(huán)境有Arduino IDE 和OpenMV IDE。這兩個軟件系統(tǒng)的共同特點(diǎn)就是擁有豐富的開源功能代碼庫和通俗易通的編程操作。本文主要通過Arduino 編程來控制舵機(jī)的轉(zhuǎn)動和連接藍(lán)牙,從而實(shí)現(xiàn)機(jī)械臂的動作操作。通過OpenMV IDE 編程來對物體進(jìn)行顏色識別。
藍(lán)牙模塊程序設(shè)計(jì)流程圖及部分程序如圖4 所示。
圖4 藍(lán)牙模塊程序設(shè)計(jì)流程圖及部分程序
通過Arduino 編程來控制舵機(jī)的轉(zhuǎn)動,從而實(shí)現(xiàn)機(jī)械臂的動作操作。其機(jī)械臂程序流程圖如圖5 所示。
圖5 機(jī)械臂模塊程序設(shè)計(jì)流程圖及部分程序
通過OpenMV IDE 編程來對物體進(jìn)行顏色識別,將識別的顏色結(jié)果輸出給Arduino 控制板,當(dāng)識別到紅色物體則發(fā)送“red”,綠色“green”,藍(lán)色“blue”,以字符串的形式由藍(lán)牙模塊發(fā)送出去,然后Arduino 板從藍(lán)牙從模塊中讀取,進(jìn)行判斷是否為目標(biāo)顏色,從而實(shí)現(xiàn)機(jī)械臂的分揀動作。其視覺模塊顏色識別部分程序流程圖如圖6 所示。
圖6 視覺模塊顏色識別部分程序流程圖級部分程序
測試部分主要檢測OpenMV 視覺模塊識別目標(biāo)顏色是否正確以及檢測機(jī)械臂是否能正確抓取。首先將符合設(shè)定顏色的積木進(jìn)行位置的擺放,并指定最終放置目標(biāo)物體的位置。當(dāng)視覺模塊檢測到目標(biāo)顏色時,從IDE 界面中攝像頭的圖像里能看到,目標(biāo)顏色的物體被矩形方框框起來,如圖7 所示。
圖7 視覺模塊識別目標(biāo)顏色
經(jīng)過多次的測試,智能分揀機(jī)器人總體的性能是良好的,OpenMV 攝像頭獲取的圖片后處理的信息基本是有效的,能把目標(biāo)物體的顏色信息通過藍(lán)牙串口傳送至主控板,主控板獲取的信息后,能夠有效準(zhǔn)確的控制機(jī)械臂進(jìn)行抓取目標(biāo)物體,機(jī)械臂抓取后能正確的將物體放置在指定的位置。但是OpenMV 在進(jìn)行識別物體顏色時,如果背景顏色和目標(biāo)物體的顏色過于接近的話,那么則會出現(xiàn)多個色塊識別的情況,不能分離出背景和物塊。如果在實(shí)驗(yàn)環(huán)境下光照過強(qiáng)或著過暗,那么識別的物塊顏色可能會有點(diǎn)偏差。
設(shè)計(jì)了一種以AT Mega328(Uno)為主控元件的六自由度機(jī)械臂智能垃圾分揀機(jī)器人,包括硬件、軟件和機(jī)械等部分。文中給出了系統(tǒng)的硬件設(shè)計(jì)方案以及流程圖,同時給出了軟件系統(tǒng)設(shè)計(jì)方法。系統(tǒng)實(shí)現(xiàn)了上位機(jī)通過藍(lán)牙發(fā)送指定字符串、機(jī)械臂通過藍(lán)牙接收字符串和控制機(jī)械手臂的功能,并能實(shí)現(xiàn)機(jī)械臂回到初始位置,在設(shè)計(jì)時,由于需要測量的距離范圍固定,采用了量尺測量法。軟件主要分為顏色識別模塊和無線通信模塊、數(shù)據(jù)處理模塊這三大模塊,軟件的這種“自頂向下”的模塊化軟件編程方法,能使軟件的結(jié)構(gòu)更清晰,并有利于軟件的調(diào)試和修改。經(jīng)過調(diào)試,該機(jī)器人能夠?qū)崿F(xiàn)發(fā)送指定字符串到機(jī)械臂然后機(jī)械臂工作。
目前,該機(jī)器人已經(jīng)應(yīng)用于我校汽車智能化專業(yè)的實(shí)訓(xùn)教學(xué)中,能夠滿足基本教學(xué),在將該機(jī)器人的硬件和軟件部分進(jìn)一步優(yōu)化,還能應(yīng)用在貨物搬運(yùn)、智能巡邏等領(lǐng)域,該機(jī)器人的研究符合我國人工智能技術(shù)的政策發(fā)展趨勢,具有很好的實(shí)用價值。