黃曉林,周浩鋒,曾泳達,謝志雄
(廣東松山職業技術學院 電氣工程學院,廣東 韶關 512126)
隨著智能控制為核心技術的新型控制體系的高速發展,智能控制已經深入到工作生活的方方面面,在各個領域得到了越來越廣泛的應用,對傳統工作方式的改變發揮越來越重的作用,成為生產現代化不可替代的至關重要的環節。用機械臂替代傳統人工方式作業,不僅可改善勞動條件,減輕勞動強度,降低生產成本,還可大大提高生產效率和提升生產質量,而且可以減少因人工疏忽造成的安全事故[1]。然而傳統機械臂完成預期的各種任務作業,要么是執行根據特定工作場合實現特定功能的任務作業而事先編寫好的程序,其環境適應能力差,靈活性不強;要么是通過控制臺復雜按鈕進行組合操作,操作起來比較復雜,必須要經過專業訓練過的操作人員才能做到安全操作,精確控制,這些都使機械臂難以推廣普及。
針對傳統機械臂完成預期各種作業任務時操作復雜、環境適應能力差等實際存在問題,提出了一種基于手勢識別遠程同步控制的智能機械臂系統設計方案。手勢包含著大量信息,以其直觀、形象和生動等特點在日常生活中被廣泛使用,是人們最自然和最直觀的交流方式,能在特定的場合表達特定的意義[2-3]。現在手勢識別成為像點擊鼠標一樣的人機交互信息的重要手段,手勢識別在人機交互控制領域扮演著越來越重要的角色[4]。將手勢識別技術與智能機械臂控制技術進行完美結合,不但簡化了機械臂操控步驟,降低了機械臂控制難度,使機械臂控制更加精準靈活,而且增強了機械臂工作環境的適應能力,在實現手勢動作與機械臂控制完全同步的基礎上,完全滿足機械臂完成預期作業任務時實時控制的需要。
系統由手勢識別器和智能機械臂兩部分組成,系統整體架構示意框圖如圖1所示。手勢識別器是一種智能穿戴設備,設計時需要符合普通人手的活動習慣,以穿戴在使用者的手指和手腕上部為宜。手勢識別器由電池為其供電,姿態傳感器實時感知手腕運動傾斜姿態,手指間檢測器識別規定的手勢動作,經ARM單片機綜合評判后形成對應控制命令并通過無線通信傳輸到遠程的智能機械臂。智能機械臂以ARM單片機為核心控制部件,由關節舵機、機械抓手舵機和壓力傳感器等組成,具有多輸入多輸出、非線性和強耦合等特點。智能機械臂不但每個關節舵機和抓手舵機是可以獨立控制,而且能實時監測每個關節舵機的位姿信息。當智能機械臂收到不同的控制命令時,其本身的自主決策系統能結合各個關節舵機和抓手舵機的位姿信息,快速決策,迅速規劃機械臂的運動軌跡,控制有關舵機協同完成組合動作。為提高系統控制效率,可同時啟動抓取關節舵機控制,實現手勢控制協同智能機械臂同步控制機械臂的平移、伸展和機械手、旋轉、抓取等動作。機械手安裝有壓力傳感器,使機械手既穩固又柔性的抓取物品,不會因抓取力度過大而使物品變形。

圖1 系統總體架構示意框圖
手勢識別器是一種智能穿戴設備,穿戴固定于手指間和手腕上部,實時感知手指間的相互接觸動作和檢測手腕活動的姿態信息等特征信息,經ARM單片機分析和綜合評判后形成對應的手勢控制指令。為使手勢識別器獲取的手勢控制指令更加高效精準,手勢識別器只識別被定義的特定手勢動作,其余沒有被定義的手勢動作則均認為是手在活動中產生的噪聲而棄去。手勢動作定義基本原則是手勢動作不但要使手勢識別器易于識別,而且對于使用者本身來說應該是容易學習和記憶,操作簡單,便于重復[5]。如表1所示為當使用者的手掌面垂直于地面朝下時被定義的特定手勢動作。

表1 手勢動作定義
手勢識別器穿戴固定于手指間和手腕上部,實時采集手勢動作及手腕傾斜的姿態等特征信息,經ARM單片機分析和綜合評判形成相應的控制命令并通過無線通信傳輸到遠程智能機械臂以實現保持同步控制。控制命令由主命令和命令數據兩個部分組成,其中主命令包含抓手順反時鐘旋轉、抓取和釋放等動作控制,也包含機械臂的左右移動和機械臂的上下伸展等動作控制,還包含智能機械臂維持當前狀態的控制。除維持當前狀態的控制命令外,其它主命令可以組合同時進行,以提高智能機械臂完成預期作業任務的效率。命令數據主要控制機械臂完成預期作業任務時相應動作的幅度大小。手勢識別器與智能機械臂之間數據信息傳輸是通過無線通信來實現的,相互之間采用主從通信方式。手勢識別器作為主設備,將實時采集的手勢動作及手腕傾斜的姿態等特征信息,經ARM單片機分析和綜合評判后形成相應的控制命令并通過無線通信發出。智能機械臂始終處于從設備地位,只能被動的接收控制命令,但其本身具有的自主決策系統能根據接收的控制命令及命令數據并結合自身抓手舵機和關節舵機的位姿信息,迅速規劃最優運動軌跡,協調抓手舵機和關節舵機動作,達到與手勢識別器相互之間同步完成各種預期作業任務。
手勢識別器與智能機械臂相互之間命令信息是以數據幀格式傳輸,手勢識別器發送的命令信息必須按照相互規定的通信協議幀格式進行封裝,智能機械臂收到的命令信息也必須嚴格遵守相互規定的通信協議幀格式進行解析,信息數據規定的通信協議幀格式如表2所示。

表2 數據幀格式
幀頭占1個字節,表示幀數據信息的開始,數據信息是一幀幀傳輸的,每一幀數據都必須有一個固定值為0x1b幀頭。
地址占1個字節,是受控智能機械臂被設置的地址編碼。手勢識別器發出的每幀數據必須包含智能機械臂的地址編碼,而智能機械臂收到數據幀只有地址編碼與自身設置的地址編碼相一致時,才解析數據幀的數據信息并執行相應的控制命令。系統支持用一個手勢識別器對一定區域范圍內進行作業任務的多臺智能機械臂進行指揮,地址編碼為0x00的數據幀比較特殊,表示此數據幀進行廣播方式傳輸,要求區域范圍內作業任務的所有智能機械臂都要執行對應的控制命令。
主控制命令占1個字節,其中字節低4位對應智能機械臂抓手如狀態維持、抓手順反時鐘旋轉、抓手抓取或釋放等控制動作。字節高4位對應智能機械臂關節舵機如左右移動或上下伸展等控制動作。由此可知智能機械臂在完成預期作業任務時可以將機械臂動作和抓手動作組合同時進行,大大提高智能機械臂的工作效率。
命令數據占4字節,必須和主控命令配合使用,表示智能機械臂完成當前預期作業任務相應控制命令的動作幅度。其中第1個字節為機械臂抓手旋轉動作的旋轉幅度參數或抓取物體的抓取力度參數,其余3個字節是機械臂左右移動或上下伸展時分別對應X軸、Y軸和Z軸3個方向的傾斜程度參數值。
校驗和占1字節,是幀數據從地址編碼開始至校驗和之間所有字節之和并對0xff取余得到的校驗值。手勢識別器先計算發送幀數據的校驗和,在發送幀數據時連同校驗和一并發送。智能機械臂收到的幀數據包含校驗和,先自己計算本幀數據的校驗和,只有自己計算的校驗和與接收的校驗和一致才認為接收的數據信息是正確的并執行相應的控制命令。
手勢識別器是遠程同步控制智能機械臂系統的核心,由電池為其供電,能夠根據手指間相互接觸動作和手腕活動傾斜姿態等特征信息迅速評判手勢要表達的控制命令,并把控制命令通過無線可靠傳輸到智能機械臂,實現手勢動作同步控制智能機械臂完成預期作業任務,如圖2所示為手勢識別器電路原理圖。其中fg0連接地線穿戴在拇指中,Fg1、fg2、fg3和fg4分別穿戴在其它手指中并被上拉電阻拉成高電平,當拇指與其它任何一個手指接觸時,對應手指的輸入信號就會變成低電平而表示相應的手勢控制命令。傳感器ADXL335是一款低功耗超薄型的完整三軸加速度測量系統芯片,具有開環加速度測量架構,加速度最小測量范圍為±3 g,并輸出經過信號調理的模擬電壓。芯片ADXL335既可測量傾斜檢測的靜態重力加速度,也可測量沖擊或振動運動導致的動態加速度。由于ADXL335芯片X、Y和Z三軸的軸方向檢測的正交特性很高但跨軸檢測靈敏度很低,所以采用三軸單一結構檢測。為更好地實現軸上引腳的抗混疊和噪聲抑制,X、Y和Z三軸方向引腳具有限帶功能,各引腳必須添加一個電容,以便利用低通濾波實現抗混疊和噪聲抑制。可根據實際應用需要選擇合適的帶寬,帶寬的大小可以通過并聯在對應軸上低通濾波電容進行調整。帶寬經驗計算公式為:

圖2 手勢識別器電路原理圖
F=5μF/C
根據帶寬的經驗計算公式,X、Y和Z三軸方向并聯的低通濾波電容都為0.1 μf時,則其選取的帶寬值為50 Hz。
本系統中手勢識別器與智能機械臂是通過無線Wifi實現數據通信,使用的無線通信Wifi模塊型號為ESP-12F,如圖3所示為無線Wifi電路原理圖。無線通信Wifi模塊ESP-12F由深圳市安信可科技有限公司開發的一款高性能串行口轉無線Wifi模塊,模塊核心是處理器 ESP8266,支持標準的IEEE802.11b/g/n協議,內置完整的TCP/IP協議棧和板載天線,僅需極少的外部電路,能夠與其它MCU快速搭建實現串行口與無線Wifi之間的轉換。

圖3 無線Wifi電路原理圖
手勢識別器的控制命令通過無線通信傳輸到遠程的智能機械臂,為降低電路噪聲,提高無線通信傳輸數據的穩定性,需要進一步優化無線通信的供電性能,如圖3所示為通信供電性能優化電路原理圖。其中芯片RT9193是專為便攜式射頻或無線通信應用在性能和空間要求比較苛刻的高紋波抑制比、低壓差高PRSS而設計的線性穩壓器,能穩定輸出3.3 V電壓,電容C11是噪聲旁路電容,可進一步降低噪聲優化供電性能輸出。

圖4 通信供電性能優化電路原理圖
系統智能機械臂關節數量較多,各個關節由舵機組成,通過對機械臂的相關關節舵機的運動控制,使得機械臂能夠完成抓手旋轉、抓取、釋放以及機械臂左右移動、上下伸展等各種復雜的動作。為保證關節舵機擺角的準確性,各個關節舵機的控制必須是獨立的,所以需要多個驅動引腳。為了防止多個舵機同時工作導致電流過大而燒毀供電穩壓電路,每個關節舵機都采取獨立供電方式。關節舵機的旋轉位置是通過控制旋轉角度來實現的,而旋轉角度可以利用控制占空比來實現。關節舵機旋轉角度可以從0度轉到180度之間,旋轉角度越大則占空比越大,旋轉角度越大則舵機的轉速越快。為了使舵機轉動時連貫均速和速度可控,甚至快要到達目標角度時降低轉動速度,可以將舵機旋轉角度分割成若干小的角度,并在轉動時加上很小的適當延時。
智能機械臂關節舵機的工作電壓為3.3 V,而系統為5 V的供電電壓,故需要對系統供電進行電壓轉換處理,如圖5所示為智能機械臂關節舵機控制電路原理圖。智能機械臂關節舵機旋轉位置控制端PWM通過P2接口連接到ARM單片機,調節關節舵機PWM占空比來調節關節舵機的旋轉位置。開關電源調節器LM2596是降壓型電源管理芯片,內部高度集成固定頻率發生器和頻率補償,能夠持續供電輸出3.3 V電壓,輸出最大驅動電流為3 A,同時具有很好的線性和負載調節特性[6]。LM2596芯片具有自我保護電路,極大地簡化了開關電源電路設計,在一定的輸入電壓和輸出負載情況下,輸出電壓誤差穩定在4%的范圍內。

圖5 機械臂關節舵機控制電路原理圖
手勢識別的準確性對整個系統的穩定性具有決定性影響力。手勢識別準確性測試是指在各種復雜環境影響下,手勢識別器對控制智能機械臂狀態維持、抓手旋轉、抓手的抓取與釋放、機械臂左右移動、機械臂上下伸展等手指手腕動作的識別。如表3所示為5名同學被要求以自己的習慣方式在滿足手勢定義的前提下,每個手勢動作各做20次共100次手勢數據樣本采集的手勢識別準確性測試結果。

表3 手勢識別準確性測試
從表3手勢識別準確性測試結果可以看出,手指手勢動作控制狀態維持、抓手旋轉、抓手抓取與釋放等規定動作的識別達到100%,而手腕手勢動作中控制機械臂左右移動、上下伸展的動作卻分別只有92%和90%的識別率,這跟個人手臂傾斜保持習慣有關,同樣的轉動傾斜角度,不同段的轉動加速度是有差別的。手腕轉動盡量在平穩中轉動,不要出現抖動現象,因為手勢控制的數據信息發送頻率較高,在極短時間內出現相互相反的手勢動作時,智能機械臂的自主決策系統將會誤判為無效手勢,并將此次手勢控制命令剔除,但不影響手勢實時操作智能機械臂。
手勢控制實時性是指識別手勢動作并協同完成智能機械臂同步控制的時間,一般是指單位時間內,通過更換不同手勢的次數進行測試。如表4所示為20 s時間內手勢動作更換次數以及手勢動作識別次數的測試結果。

表4 手勢控制實時性測試
從表3測試結果可以看出,20 s時間手勢更換在40次以內,手勢動作識別失誤較小,手勢控制成功率較高,手勢識別并協同完成同步控制可以在500 ms左右完成,此時手勢控制執行效率最高,可以達到較好的實時性控制要求。
本系統是將手勢識別技術與機械臂智能控制進行完美結合,集手勢識別、遠程控制、智能決策于一體的智能機械臂控制系統。對整個系統進行綜合性功能測試的結果表明,系統運行穩定,環境適應能力強,手勢識別準確性較高,簡化了機械臂操控步驟,降低了機械臂控制難度,使控制更加靈活更加精準,完全滿足完成預期作業任務時要求同步實時控制的需要,在工農業安全生產、野外探險與救援等領域具有較好的實用性和廣泛的應用前景。