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