趙禹翔,劉樹鈺,袁順東,張立紅
(中國石油大學(華東)理學院,山東 青島 266580)
機器人技術作為自動化領域重要的發(fā)展課題,經過多年的發(fā)展已在工業(yè)領域獲得了廣泛的應用[1-3]。隨著社會老齡化程度加快,人力資源短缺和勞務成本上升等社會問題日漸凸顯,服務業(yè)急需一種可替代人工勞動且易于操作的機器。仿生機械臂作為機器人末端操作器,由于其多個自由關節(jié)在獨立動作的同時又能相互配合,做出多種動作應對不同情況,能滿足更為靈巧以及精細的任務要求[4-6],因此在需要高度靈活性和適應性的服務領域中受到了廣泛關注。仿生機械臂是一個復雜的機器人系統(tǒng),傳統(tǒng)的控制系統(tǒng)大多數(shù)依靠鼠標鍵盤向控制器輸入指令的控制模式,這種控制方法的效率過于低下,很難實現(xiàn)實時性和較好的交互性。最好的控制方法是用人手進行操控,讓人直接用自己的手來指揮機器人進行動作。而如何獲取人體手臂姿態(tài)數(shù)據(jù)則成為解決問題的關鍵。
目前主要是利用數(shù)據(jù)手套采集手臂姿態(tài)數(shù)據(jù),文獻[7]設計了基于數(shù)據(jù)手套的仿人機械手控制系統(tǒng),該系統(tǒng)采用附著有傳感器的數(shù)據(jù)手套,采集壓力、彎曲角度等物理信息模擬手臂姿態(tài)。這種系統(tǒng)校準調試復雜,價格昂貴易于損壞,很難在民用領域推廣。
隨著體感技術的飛速發(fā)展,采用計算機視覺獲取人體手臂姿態(tài)數(shù)據(jù)是目前人機交互領域發(fā)展的主要趨勢,在交互的自然性與成本上有很大的優(yōu)勢。本文以機器人仿生機械臂為研究對象,采用Leap Motion體感傳感器獲取人體手臂各部位空間位置坐標信息,根據(jù)手部姿態(tài)算法將空間坐標轉化為手部的角度參數(shù),經PC端串口將信息發(fā)送給單片機控制仿生機械臂完成同步運動。對本文方案進行了實驗測試。測試結果表明,該控制系統(tǒng)不僅能靈活地控制仿生機械手動作且具有自然、實時性強的優(yōu)點,提升了仿生機械手操作性能和操作效率,實現(xiàn)了機器人控制方式上的創(chuàng)新和更加自然的人機交互[7-9]。
Leap Motion是Leap公司生產的一種專門采集手部運動信息的傳感器,其內部主要由三支紅外LED和兩個紅外攝像頭構成[10],如圖1所示。
圖1 Leap Motion內部結構
Leap Motion的工作原理是紅外立體視覺原理[11]。紅外LED通過頻閃在濾光片上方區(qū)域發(fā)出扇形的結構光線,雙紅外攝像頭對反射回來的紅外光進行光跟蹤,利用視差對進入視野識別區(qū)內的目標建立三維影像模型,并實時獲取目標的空間信息。其識別空間為倒置的金字塔型,塔尖位于設備中心,有效探測范圍在設備上方25~600 mm處。Leap Motion工作原理如圖2所示。
圖2 Leap Motion工作原理
對影像進行噪點過濾和背景分離處理后,可獲得含有空間信息的目標影像數(shù)據(jù),Leap Motion的采集速率為100~200幀/秒,精度高達0.1 mm。通過內部高速芯片對數(shù)據(jù)進行數(shù)字化處理發(fā)送至計算機內,計算機內置的后期處理軟件經圖像識別和三維模型還原運算后可獲得諸如手、手腕、手指等信息,并將手勢和動作等靜態(tài)與動態(tài)信息反饋至桌面應用程序[12-15]。
本系統(tǒng)主要由數(shù)據(jù)處理系統(tǒng)和機械臂控制系統(tǒng)組成,系統(tǒng)總體結構如圖3所示。
圖3 系統(tǒng)總體結構
數(shù)據(jù)處理系統(tǒng)由Leap Motion體感控制器、PC機和顯示器組成。系統(tǒng)的主要功能是通過對手部骨骼參數(shù)的采集和手部姿態(tài)參數(shù)的處理獲取定量描述手型的數(shù)據(jù),并通過COM串口傳送給仿生機械臂控制系統(tǒng)。
機械臂控制系統(tǒng)主要由仿生機械臂和驅動電路組成,系統(tǒng)的主要功能是對不同的運動觸發(fā)信號產生映射對應舵機角度的脈沖寬度調制(pulse width modulation,PWM)波,控制驅動電路驅動指定舵機,調整機械臂姿態(tài),以此來完成機械臂的同步仿生動作。
程序初始化完成后,Leap Motion開始檢測識別區(qū)內是否有人手出現(xiàn)。當區(qū)域內出現(xiàn)人手后,體感傳感器對手部持續(xù)跟蹤并發(fā)送數(shù)據(jù),并將關鍵數(shù)據(jù)發(fā)送給桌面控制系統(tǒng)。
控制系統(tǒng)使用微軟.Net架構中C#語言開發(fā),系統(tǒng)中所使用的Frame類代表了在一幀中檢測到的一組手和手指的追蹤數(shù)據(jù),在該子類中返回值為FingerType函數(shù)可獲取當前幀中檢測到的所有手指對象。在Bone類里調用BoneType函數(shù)可獲取一個手指列表,該列表包含了識別到的這只手的所有手指指骨對象。通過調用Vector類中包含的Direction、Position或 Velocity等屬性可獲取手指的方向、位置或速度等多種參數(shù),以定量描述設備識別空間內的手形及動作。系統(tǒng)所使用的類和函數(shù)之間的關系如圖4所示。
圖4 類和函數(shù)之間的關系
為準確描述用戶手掌的空間姿態(tài),使用關鍵點參數(shù)作為人手姿態(tài)的具體表達方法,構建關鍵點模型代替復雜的人手約束模型,使人手的3D信息精簡為手部骨架信息。人體每個手指的骨骼分別由4個骨節(jié)組成,分別為遠端指骨(distal)、中間指骨(intermediate)、近端指骨(proximal)以及掌骨(metacarpal),人體手部骨骼模型如圖5所示。
圖5 人體手部骨骼模型
利用Vector類中的Direction屬性可獲取每個骨節(jié)的三維朝向向量坐標。在只考慮自主扭曲的情況下,手指的彎曲狀態(tài)可近似用近端指骨和掌骨向量間夾角定量表示。以食指為例:設θ2為食指關節(jié)彎曲的夾角,已知(x1,y1,z1),(x2,y2,z2)分別為近指關節(jié)與遠指關節(jié)朝向向量。
由此,根據(jù)三角函數(shù)中向量夾角公式
求解反三角函數(shù)得:
實現(xiàn)代碼如圖6所示。
圖6 實現(xiàn)代碼
各手指自由彎曲時角度的變化范圍如表1所示。
表1 各手指角度變化范圍
將數(shù)據(jù)采集、處理、轉化后通過COM口發(fā)送至機械臂控制系統(tǒng)以實現(xiàn)對仿生機械臂的控制。系統(tǒng)流程圖如圖7所示。
圖7 系統(tǒng)流程圖
為對仿生機械臂控制系統(tǒng)的實際運行效果進行驗證,本文針對系統(tǒng)的交互效率和易用性設計了實驗。實驗平臺的硬件環(huán)境包括一臺處理器頻率為3.2 GHz,運行內存為4 GB的 PC機,Leap Motion v2體感傳感器和仿生機械臂及其控制裝置。使用Leap公司提供的SDK V2.3.1 for Windows獲取Leap Motion傳感器返回的手部關鍵點數(shù)據(jù)。
為驗證仿生機械臂仿生人手動作的真實程度,本文設計了如下實驗,實驗先選取仿生機械臂的整體動作過程進行研究,研究人員將右手手部放在Leap Motion的識別空間內,待體感傳感器檢測到手部后隨機做出手勢動作并保持一段時間。這個過程中,體感傳感器每8 ms完成一次數(shù)據(jù)采集,并轉化成手指關節(jié)角度的曲線圖如圖8所示。圖8中每條曲線表示一個手指角度隨時間的變化。動作過程結束時操作者手部的真實圖像和仿生機械臂的圖像如圖9所示。
圖8 手指關節(jié)角度隨時間變化曲線圖
圖9 實驗動作過程結束時圖像
從圖8的曲線圖可以看出,體感傳感器采集數(shù)據(jù)過程較為平穩(wěn),角度變化數(shù)據(jù)可真實反映手部動作過程。
在姿態(tài)吻合度和通用性實驗中,選取在實驗室中工作的10名在讀本科生作為實驗志愿者,讓被試者采用Leap Motion交互方式完成控制任務。實驗要求實驗者將右手放置在Leap Motion識別區(qū)域內部,做出動作并等待機械臂動作完成后記錄當前數(shù)據(jù),將手部恢復初始動作后再依次做出其余動作。實驗記錄的數(shù)據(jù)包括每次動作開始到仿生機械臂動作結束的時間差,體感傳感器采集到的手部原始數(shù)據(jù)和處理后獲得的手部姿態(tài)數(shù)據(jù),將仿生機械臂動作、真實的手部圖像和獲得的數(shù)據(jù)進行比對,分析不同情況下三者間的吻合程度并對其進行評估。不同狀態(tài)下手臂真實圖像和仿生機械臂姿態(tài)如圖10所示。由于相機的擺放位置、拍攝角度難以完全一致,所以人手真實圖像與仿生機械臂動作姿態(tài)存在一定的視角差異。
實驗結果顯示,在人體手部自然動作且無遮擋的情況下,仿生機械臂在一定精度范圍內能夠較好地模擬人體手部姿態(tài),整個過程中幀數(shù)維持在110~150幀/秒高速率范圍,動作延遲小于200 ms,能夠實時控制仿生機械臂跟隨人手進行相同的動作序列,在人眼觀察中已經屬于同步運動。在不同人不同手勢操作過程中,仿生機械臂均能保證手型姿態(tài)與真實手基本一致,對不同手型具有良好的適用性,符合人機交互通用性的條件。
圖10 不同狀態(tài)下實驗圖像
本文針對現(xiàn)有仿生機械臂控制方法存在的弊端,提出了基于Leap Motion的仿生機械臂控制方法。利用體感控制技術結合仿生機械臂控制技術,使用C#語言開發(fā)了控制仿生機械臂的實時交互控制系統(tǒng),研究了根據(jù)手部姿態(tài)算法處理手部姿態(tài)特征數(shù)據(jù)與手勢交互控制的關鍵技術,并在此基礎上實現(xiàn)了仿生機械臂的仿生控制,使機械臂能夠實時模擬并完成大多數(shù)人體手臂的基本動作。測試結果表明,系統(tǒng)運行穩(wěn)定,實時性良好,且具有良好的操作性能。與傳統(tǒng)的基于 “鼠標+鍵盤”的控制方式相比,該控制方法可以較為靈活快速地對機械臂進行控制,能夠大幅提高操作效率,降低用戶的操作強度??刂七^程簡單有效,人機交互流暢自然,可在工業(yè)控制和服務業(yè)等領域內進行推廣,應用前景良好。
[1]胡弘,晁建剛,楊進,等.Leap Motion關鍵點模型手姿態(tài)估計方法[J].計算機輔助設計與圖形學學報,2015(7):1211-1216.
[2]張昊,王超亮,田文龍,等.同步仿生機械臂設計[J].兵工自動化,2015,34(5):77-80.
[3]盧浩然,張宇,牛苗苗,等.基于Leap motion的三維文物虛擬拼接方法[J].系統(tǒng)仿真學報,2015,27(12):3006-3011.
[4]劉春,李秋雨.Leap Motion體感控制器及其在飛機結構展示系統(tǒng)中的應用[J].計算機應用與軟件,2016,33(4):227-229.
[5]康楊雨軒,鄭文,李松林,等.基于Leap Motion的機械臂交互控制研究[J].傳感器與微系統(tǒng),2016,35(6):34-37.
[6]林德江,井志勝,王國德,等.基于Leap Motion體感控制技術的數(shù)字化展示系統(tǒng)研究[J].火炮發(fā)射與控制學報,2015,36(4):86-90.
[7]韋婷,肖南峰.基于數(shù)據(jù)手套的仿人機械手控制系統(tǒng)[J].計算機工程與設計,2009,30(7):1707-1711.
[8]嚴利民,杜斌,潘浩,等.基于Leap Motion的三維動態(tài)手指姿勢識別[J].激光與光電子學進展,2016(11):86-92.
[9]陳敬德,趙文麗,梁洪濤,等.基于Kinect的機器人控制系統(tǒng)[J].電子設計工程,2014,22(10):81-84.
[10]胡弘,晁建剛,林萬洪,等.Leap Motion虛擬手構建方法及其在航天訓練中的應用[J].載人航天,2015, 21(3):257-262.
[11]吳福理,丁胤,丁維龍,等.基于Leap Motion的虛擬農作物人機交互系統(tǒng)設計[J].農業(yè)工程學報,2016, 32(23):144-151.
[12]張雨薇,林雄民.基于仿生機械臂的體態(tài)遙控與可視化系統(tǒng)設計[J].電子技術應用,2015,41(12):22-24.
[13]陶林,李凱格,王淼.基于Leap Motion手勢識別的機器人控制系統(tǒng)[J].制造業(yè)自動化,2015,37(24):64-66.
[14]林燕姿,趙翠蓮,范志堅,等.基于機器視覺的抓握狀態(tài)模型及其適用性[J].計算機應用與軟件,2015(8):166-169.
[15]SMERAGLIUOLO A H, HILL N J, DISLA L, et al.Validation of the Leap Motion Controller using markered motion capture technology[J].Journal of Biomechanics,2016, 49(9):1742-1750.