王若愚,盧小康,陳蘇明
(中國(guó)礦業(yè)大學(xué)徐海學(xué)院,江蘇 徐州 221008)
針對(duì)目前常用的機(jī)械臂控制方式存在的操作復(fù)雜、靈活性差、靈敏度低、控制精度低等問(wèn)題設(shè)計(jì)了一種通過(guò)人體手勢(shì)來(lái)控制機(jī)械臂運(yùn)動(dòng)的系統(tǒng)。此系統(tǒng)基于圖像識(shí)別技術(shù),采用卷積神經(jīng)網(wǎng)絡(luò)并結(jié)合C++語(yǔ)言和Python語(yǔ)言,設(shè)備的組成由1個(gè)二維RGB攝像頭和1個(gè)三維深度攝像頭組合成視覺(jué)運(yùn)動(dòng)傳感器,并結(jié)合機(jī)械臂運(yùn)動(dòng)控制算法,使機(jī)械臂完成相應(yīng)的人體手勢(shì)仿生動(dòng)作。此手勢(shì)控制機(jī)械臂系統(tǒng)的操作簡(jiǎn)單靈活、可以實(shí)現(xiàn)遠(yuǎn)程控制,經(jīng)測(cè)試結(jié)果表明控制精度滿(mǎn)足系統(tǒng)穩(wěn)定性和精確控制的要求。因此可以廣泛應(yīng)用在軍事和醫(yī)學(xué)中,如炸彈拆除,即拆彈人員通過(guò)遠(yuǎn)程操控機(jī)械手完成拆彈工作,從而保證拆彈人員的安全;對(duì)于一些醫(yī)學(xué)手術(shù)可以利用手勢(shì)控制機(jī)械手臂遠(yuǎn)程執(zhí)行解決偏遠(yuǎn)地區(qū)醫(yī)學(xué)落后問(wèn)題。
本手勢(shì)運(yùn)動(dòng)控制數(shù)據(jù)處理系統(tǒng)的主要特點(diǎn)之一就是用了多信息系統(tǒng)互相融合的數(shù)據(jù)處理技術(shù),同時(shí)采集和提取了有關(guān)用戶(hù)手臂和二維深度手部的運(yùn)動(dòng)姿態(tài)和三維深度的運(yùn)動(dòng)狀態(tài)變化的數(shù)據(jù)和信息。1個(gè)二維rgb深度運(yùn)動(dòng)攝像頭和1個(gè)三維tof兩個(gè)深度運(yùn)動(dòng)攝像頭組成一個(gè)獨(dú)立的視覺(jué)運(yùn)動(dòng)傳感器,采集有關(guān)用戶(hù)機(jī)械臂和手部的二維深度圖像進(jìn)行信息處理與三維深度的運(yùn)動(dòng)攝像頭信息,然后將其發(fā)送至一臺(tái)計(jì)算機(jī)端口進(jìn)行數(shù)據(jù)處理,同時(shí)單片機(jī)可以準(zhǔn)確和持續(xù)地追蹤用戶(hù)手部的二維深度運(yùn)動(dòng)狀態(tài)情況,通過(guò)串口數(shù)據(jù)通信將一臺(tái)計(jì)算機(jī)端數(shù)據(jù)處理得到的二維深度手勢(shì)的控制指令和三維深度的運(yùn)動(dòng)攝像頭信息分別傳送至單片機(jī)進(jìn)行解析和轉(zhuǎn)換,將機(jī)械臂手勢(shì)的控制和運(yùn)動(dòng)指令集解析轉(zhuǎn)換成為兩個(gè)機(jī)械臂各自由度的運(yùn)動(dòng)指令集,經(jīng)過(guò)單片機(jī)發(fā)送給相應(yīng)的機(jī)械臂舵機(jī),從而實(shí)現(xiàn)通過(guò)用戶(hù)手勢(shì)的運(yùn)動(dòng)來(lái)達(dá)到控制整個(gè)機(jī)械臂運(yùn)動(dòng)的目的。
此方案采用手勢(shì)來(lái)達(dá)到靈活控制機(jī)械臂的效果,既可以實(shí)現(xiàn)遠(yuǎn)程控制、又可以使控制指令的方法簡(jiǎn)單、方便工人操作;此外,還在機(jī)械臂爪端搭載了壓力傳感器,可以及時(shí)反饋被抓物體的信息,調(diào)整抓取方式。
基于圖像識(shí)別的機(jī)械臂手勢(shì)控制系統(tǒng)包括單片機(jī)控制系統(tǒng)、舵機(jī)模塊、電源模塊、視覺(jué)傳感器模塊、串口通信模塊等系統(tǒng)模塊。
為了能夠更好控制機(jī)械臂精準(zhǔn)地完成工作,本設(shè)計(jì)的機(jī)械臂控制系統(tǒng)采用stm32f103zet6微處理器作為控制芯片,該單片機(jī)內(nèi)置有晶振以及高可靠復(fù)位系統(tǒng),該芯片與目前市場(chǎng)上傳統(tǒng)的51單片機(jī)相比,具有系統(tǒng)功耗小,運(yùn)算處理能力大大增強(qiáng)等諸多優(yōu)點(diǎn)。此外在機(jī)械爪端集成壓力傳感器可以實(shí)時(shí)檢測(cè)抓取物體的抓取力量從而及時(shí)對(duì)抓取方式進(jìn)行調(diào)整。
本系統(tǒng)的基本工作原理:STM32處理器內(nèi)部本身具有的pwm單元可產(chǎn)生pwm波信號(hào),此種信號(hào)驅(qū)動(dòng)電機(jī)運(yùn)動(dòng),依據(jù)stm32f103zet6微控制器輸出的pwm信號(hào)和舵機(jī)輸出信號(hào)的的頻率和占空比來(lái)控制舵機(jī)的運(yùn)動(dòng)狀態(tài),此種控制方式更加簡(jiǎn)單、準(zhǔn)確。
此機(jī)械臂手勢(shì)控制系統(tǒng)主要采用雙電源直流穩(wěn)壓供電的工作模式,stm32單片機(jī)經(jīng)過(guò)一個(gè)AMS1117-3.3 V穩(wěn)壓芯片進(jìn)行供電,舵機(jī)驅(qū)動(dòng)模塊選用7.2 V可充電電池經(jīng)LM2596 dc-dc可調(diào)降壓模塊進(jìn)行供電。
采用1個(gè)二維采集圖像顏色信息的攝像頭和三維采集深度的攝像頭控制模塊組成視覺(jué)傳感器模塊,此模塊用來(lái)采集用戶(hù)手部的二維圖像顏色信息與三維深度圖像顏色信息并將其發(fā)送至計(jì)算機(jī)端進(jìn)行數(shù)據(jù)處理。并將這些數(shù)據(jù)進(jìn)行整合,從而轉(zhuǎn)換成機(jī)械臂運(yùn)動(dòng)的指令集,并通過(guò)通信子網(wǎng)絡(luò)傳送至機(jī)械臂,從而可以實(shí)現(xiàn)機(jī)械臂與人體手勢(shì)同步運(yùn)動(dòng)的狀態(tài)。
可通過(guò)STM32處理器內(nèi)部發(fā)出的pwm信號(hào)來(lái)控制舵機(jī)的旋轉(zhuǎn)角度,不同類(lèi)型的舵機(jī)最大可以旋轉(zhuǎn)的角度是不相同的,但是其中間位置的脈沖寬度都是1.5 ms。在選擇舵機(jī)時(shí)主要考慮的因素是扭矩的大小,本設(shè)計(jì)選用的60 kg超大扭力雙軸數(shù)字電機(jī),具精度高、虛位小、扭力大的特點(diǎn),可以很好地保證機(jī)械臂的運(yùn)行。
串口只是無(wú)線通信的一種方式,它是指外部設(shè)備和計(jì)算機(jī)之間,通過(guò)微機(jī)數(shù)據(jù)信號(hào)線 、地線和控制縱向線等,按一定位置轉(zhuǎn)換順序相互進(jìn)行直接傳送數(shù)據(jù)的一種通用無(wú)線通信的通信方式。這種通信方式使用的數(shù)據(jù)線少并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信,所以本設(shè)計(jì)采用串口與系統(tǒng)中的單片機(jī)進(jìn)行串口通信以此達(dá)到控制機(jī)械臂的目的。
本作品由手勢(shì)位置提取、基于Python的深度學(xué)習(xí)的樣本特征提取、手勢(shì)信息處理及機(jī)械臂舵機(jī)指令轉(zhuǎn)換、機(jī)械臂控制和壓力檢測(cè)部分等若干子部分組成。
在機(jī)械臂手勢(shì)識(shí)別系統(tǒng)開(kāi)始運(yùn)行之前,在網(wǎng)絡(luò)上采集了大量的手部和臂膀不同姿態(tài)和形狀下的機(jī)械臂圖片并對(duì)其進(jìn)行了分類(lèi)。為了更進(jìn)一步提高機(jī)械臂圖片的識(shí)別率,從不同運(yùn)動(dòng)角度、遠(yuǎn)近程度和運(yùn)動(dòng)方向?qū)C(jī)械臂手勢(shì)特征和運(yùn)動(dòng)進(jìn)行來(lái)數(shù)據(jù)分析,然后通過(guò)卷積神經(jīng)網(wǎng)絡(luò)自動(dòng)提取機(jī)械臂手勢(shì)的特征,并為進(jìn)行下一次的機(jī)械臂手勢(shì)特征識(shí)別訓(xùn)練提供了判斷的依據(jù),當(dāng)機(jī)械臂的手勢(shì)特征點(diǎn)識(shí)別成功后,系統(tǒng)會(huì)自動(dòng)計(jì)算當(dāng)前機(jī)械臂手勢(shì)在特征點(diǎn)中心的二維深度和坐標(biāo),然后計(jì)算機(jī)利用三維tof深度攝像頭自動(dòng)計(jì)算特征點(diǎn)的深度和坐標(biāo)。最后將上述機(jī)械臂手勢(shì)的特征類(lèi)型、坐標(biāo)點(diǎn)等信息進(jìn)行融合,并將其轉(zhuǎn)換為特征點(diǎn)的機(jī)械臂6個(gè)自由度舵機(jī)的運(yùn)動(dòng)位置和控制指令,通過(guò)計(jì)算機(jī)串口發(fā)送給特征點(diǎn)的機(jī)械臂。如果特征點(diǎn)識(shí)別不成功,則重新再發(fā)送回到機(jī)械臂訓(xùn)練的特征點(diǎn)。
首先在機(jī)械臂控制系統(tǒng)上電后,對(duì)其進(jìn)行系統(tǒng)初始化。機(jī)械臂的步進(jìn)電機(jī)是由STM32內(nèi)部處理器具有的pwm信號(hào)來(lái)控制,因此需要控制stm32f103zet6芯片產(chǎn)生pwm信號(hào),然后不間斷地監(jiān)測(cè)串口是否有信息傳入。在機(jī)械臂手指處添加了壓力傳感器,因此MCU可以及時(shí)檢測(cè)手指處的壓力。通過(guò)手指閉合時(shí)的壓力設(shè)置壓力閾值,當(dāng)系統(tǒng)檢測(cè)到閉合時(shí)的壓力大于設(shè)置的壓力閾值時(shí)就不再繼續(xù)閉合,此時(shí)機(jī)械臂可以?shī)A取相對(duì)脆弱的物體。
利用圖像識(shí)別技術(shù)采集人體手勢(shì)運(yùn)動(dòng)的基本數(shù)據(jù),通過(guò)串口傳輸給控制器進(jìn)行數(shù)據(jù)處理,最后控制機(jī)械臂進(jìn)行仿生運(yùn)動(dòng)。這種控制機(jī)械臂的方式能夠更加流暢和簡(jiǎn)單,且經(jīng)過(guò)測(cè)試精確率達(dá)到98.5%可以滿(mǎn)足系統(tǒng)穩(wěn)定性和精確度。操控者可憑借此種機(jī)械臂控制方式減輕工作強(qiáng)度,進(jìn)而提高工作效率。并且具有一定的抗外界干擾能力,避免了工作過(guò)程中發(fā)生碰撞現(xiàn)象,最終實(shí)現(xiàn)末端執(zhí)行精準(zhǔn)控制??稍诠I(yè)控制和服務(wù)領(lǐng)域進(jìn)行推廣,具有良好的應(yīng)用前景。