牟卿志
(濰坊職業學院,山東 濰坊 262737)
隨著科技的發展,機械臂已大量應用在常規生產制造活動中。 傳統機械臂依靠手動編程或示教等方式去實現控制和給定動作的加工,缺少外界感知交互,一旦涉及到復雜靈活的裝配領域,則在準備階段需要花費大量時間進行動作規劃與調試,不利于效率提升及產線的靈活應用。 如何克服上述缺點,實現裝配領域的智能化,一直是業界研究難點和關鍵性挑戰。
隨著人機交互的快速發展,以動作捕捉、體感交互為代表的交互方式,開始受到人們廣泛關注。 各種類型體感傳感器的研發問世,使得捕捉人類原始動作學習并按策略靈活映射到機械臂進行控制的技術研究,成為了前沿課題。 國內外研究者利用MVN慣性運動捕捉套裝[1]、VICON 光學運動捕捉套裝[2]、Kinect 動作捕捉設備[3]等實現了基本動作的捕捉學習及在機器人與機械臂上的復現映射,有效提升了控制的靈活度與有效性。 但上述設備分隔能力基本以四肢軀干為主,精細度較差,在復雜裝配動作的提取指導中指導意義尚顯不足。
Leap Motion 是一款較為新穎的手部信息采集傳感器,能夠以200 幀/s 的速度對手部運動進行追蹤,獲取當前手指、手掌、手臂的位置姿態信息并指定ID,保存在指定幀中。 Leap Motion 進行手部動作傳感識別如圖1 所示。 圖1 中,通過捕獲的手部及臂部運動信息,可以精確提取指尖坐標及方向向量信息,建立六維(位置+姿態)手勢識別模型,進而構建手勢特征數據,最終識別精度可達0.01 mm。 該傳感器提供的信息充實、清晰明確,可對裝配層面的復雜動作提供有意義的指導[4]。

圖1 Leap Motion 進行手部運動傳感識別Fig. 1 Leap Motion for hand motion sensing recognition
Zubrycki 等學者[5]使用單個Leap Motion 傳感器實現對三指機械手的操作,通過關節角度映射實現了對機械手關節角度的控制。 沈赫[6]基于3C 裝配動作的需求,對基于Leap Motion 的人工裝配手部動作軌跡提取方式進行了探究。 張續沖等學者[7]對仿人機械臂自然手勢識別進行了實現。 但上述研究基本集中于手部軌跡提取或手勢控制兩者中的一個,并未實現針對工業裝配的“軌跡運動+裝配動作映射實現”流程環節。
本文基于前期與沈赫[6]合作的相關成果,在進行Leap Motion 性能測試及確定最佳工作空間的基礎上,進一步引入ResNet-50 架構的深度卷積神經網絡,對具體裝配動作進行映射實現,構建實現了完整的基于Leap Motion 的智能裝配系統,對工業裝配智能化發展有一定的借鑒指導意義。
2014年,初代Leap Motion 發布,Guna 等學者對該款設備的識別與定位性能進行了全面測試[8]。實驗結果表明,Leap Motion 傳感器在合理工作空間范圍內,靜態測試標準偏差小于0.5 mm,但當測試點位接近傳感器檢測的側向極限位置或過于遠離傳感器時,標準差會顯著增加。 Guna 同時指出,Leap Motion 是劃時代意義的手部傳感交互的設備,然而由于其工作空間內檢測性能存在不穩定性,以當時配置用作專業的動作捕捉用途尚存在一定困難。
鑒于LeapMotion 近年來一直進行不斷迭代更新,本文前期與沈赫等學者[6]合作,結合工業裝配實際動作特點,對第三代Leap Motion 運動控制器性能進行了測試,以確定最佳工作空間,驗證其在裝配動作獲取精確手部交互信息的可行性,并對整體“軌跡運動+裝配動作映射實現”進行指導。 接著通過選取工作空間內的98 個參考點位進行性能測試,圖2 展示了在X - Z投影平面上參考位置點的分布情況,各參考點處標識的數字對應其在Y向布置的測試高度。 通過靜態實驗參考點位圖,可見實驗所布置的參考點位已基本涵蓋整個Leap Motion 的工作空間范圍,可基于上述點位的有效精度表現,確定出適合裝配動作檢測的最佳工作空間。 實際性能測試時通過UR5 機器人控制模擬手臂移動至測量網格中的參考點,而后進行靜止測量,每個點獲取4 000幀以上數據,用于Leap Motion 整體定位能力的實驗分析。

圖2 靜態實驗參考點位圖Fig. 2 Static experiment reference point map
若以所有參考點在各軸方向的標準差及空間歐氏距離標準差為分析對象,表1 給出在各軸方向及空間歐氏距離處的標準差極值,并求出取得標準差極值處的位置。 可見,各坐標軸的標準差最小值為0.031 mm,在(0,15,0)處的X向取得,空間歐氏距離標準差最小值為0.114 mm,在(-5,30,5)處取得。

表1 性能測試標準差統計Tab. 1 STD of performance test
若以X - Z平面為投影平面,給出Y軸不同高度(區間為150 ~300 mm,各段間隔50 mm)各參考位置點的空間標準差分布如圖3 所示。 由圖3 可以看出,除極個別點位因受干擾或器件因素影響,空間中、尤其是非側向極限位置處,傳感器的定位精度基本可在0.5 mm 以內,完全滿足一般的工業裝配的實際需求。

圖3 參考點位重復定位誤差Fig. 3 Position repetitive error of reference point
根據靜態實驗結果,本文選取Leap Motion 的工作空間中的一個內接長方體部分,作為感知裝配的最佳工作空間。 該長方體在Leap Motion 坐標系下的長、寬、 高(x、z、y) 分別位于[-150 mm,150 mm]、[-150 mm,150 mm]、[150 mm,350 mm]范圍,此范圍內Leap Motion 可避免接近側向極限位置,檢測精度較高,且有充足的空間去執行裝配運動,可以滿足裝配動作感知的應用需求。
在確定合適的工作空間后,需要對空間內的裝配動作進行識別,并按一定規律映射到機械臂的實際運動。 在該部分工作中,本文采用基于視圖軌跡的傳感器數據處理+基于深度學習的手勢識別與定位的方案進行研究[9]。
用戶使用Leap Motion 傳感器將手勢的運動過程采集為深度圖像數據集,建立3D 可視化空間,并對其中每幀數據手勢的關節點進行識別與劃分,投影到特定的2D 視圖平面上。 在2D 視圖平面上,各關節點執行的移動軌跡將隨時間推移進行標識,時間信息用投影點的顏色強度表示,根據時間流逝程度,痕跡將逐漸變淡至等于零的透明度值(α值)。該方法可以最大化濃縮成單幅圖像的信息,有助于使深度學習策略進行有效的提取識別,同時在一定程度上保持了人類的可理解性。
本文使用VisPy 庫實現手部3D 數據可視化,該方法在訓練時能夠從屬于LMDHG 數據集的文件中獲取關節點數據,在實際使用過程中則可通過流行ROS 框架的Leap Motion SDK 模塊實時獲取關節點數據。 通過利用關于手的每個手指、手掌中心、手腕和肘部位置的跟蹤數據來創建3D 手骨架。 如果在某個時間手指的整體或部分不可見,Leap Motion API 允許根據先前的觀察結果和手的解剖模型來估計手指位置。 手部3D 數據向2D 投影過程則根據空間幾何關系進行計算。 其示意效果如圖4 所示。

圖4 隨時間變化生成的手勢2D 視圖Fig. 4 2D view of gestures generated over time
在本環節中,采用2D 視圖所創建的圖像作為輸入,通過預先訓練的ResNet-50 架構的略微調整版本,對生成的2D 視圖進行合理區分,輸出將要區分的手勢類及其中關鍵點位置。
2.2.1 模型架構
對ResNet-50 架構進行調整,刪除最后一個全連接層,并在末端添加新層,新層具有與所預期分類的手勢類數量相同的神經元節點(該過程可以使用Fast. ai 庫所提供的API 快速實現)。 考慮裝配的過程特點,本文將裝配動作劃分為抓取、移動、抓取+移動、往復循環加工四大類,則在ResNet-50 架構修改版本中對輸入的2D 視圖進行這4 類的區分及輸出。 常見裝配動作、以抓取為例2D 軌跡視圖如圖5所示。

圖5 常見裝配動作2D 軌跡視圖-以抓取為例Fig. 5 2D trajectory view of common assembly actions - taking grasping as an example
圖5 中手勢識別的問題以數學描述如下。
設gi是一個動態手勢,是一組手勢類,其中N標識分類手勢的數量。gi隨時間的變化可以定義為:
其中,τ∈[1,Ti] 定義了大小為Ti的時間窗口中的某個時刻,表示時間τ時gi的幀。 研究中,手勢根據用戶需求可以在可變的時間窗口上執行。動態手勢分類問題可以定義為找到gi最有可能屬于的類Ch,即找到概率分布P(gi,Ch) 具有最大值的類Ch。
設Φ是一個映射,可將與手勢gi相關的空間和時間信息轉換為單幅圖像,定義為:
通過這種表示,無論時間窗口大小Ti如何,每個手勢gi都存在一個Ii。 這種新的表示以更緊湊的方式編碼每個手勢的不同時刻τ,并表征了要識別和分類的新數據。 然后,分類任務可以重新定義為:判斷圖像Ii是否屬于某個手勢類Ch,即在任意h中找到概率分布P(Ii,Ch) 具有最大值的對(Ii,Ch)。
2.2.2 模型訓練
在現有公開的3D 手部數據集中,存在完美執行記錄,沒有噪聲或缺失部分的測試性數據集[10],該類數據集有良好的手勢分類分離作用,有效提升了分類結果表現。 也存在包括噪音與顫抖在內的手勢過程記錄真實性數據集[11],該類數據集更加貼近實際裝配應用場景。
為了盡可能保證在真實場景下的實用性,本文在模型訓練過程中,基于呈現1 134 個手勢的LMDHG 數據集[10],對其進行篩選,提取其中涉及抓取、移動、往復循環加工類似動作、共計203 個手勢,搭配本實驗室采集的包含500 個專用手勢(抓取、移動、抓取+移動、往復循環加工)的數據集,并對數據在生成2D 視圖后采用小樣本數據增廣算法,共生成3 000 個樣本,共同構成訓練集,其中,在抓取手勢中,考慮到不同的夾取方式,分別引入二指夾取、三指夾取和五指抓取進行訓練。
根據本次實驗需求對數據集進行了分割,即使用數據集1 至2 433 的序列來訓練模型(代表數據集的~81%),使用2 434 至3 000 的圖像來測試模型(占數據集的~30%)。 所有的輸入數據均為由手部3D 數據生成的2D 投影視圖。 根據實驗結果顯示,分類的總體準確率達到93.83%。
2.2.3 數據映射與輸出
執行過手勢分類后,就需要確定不同裝配手勢中的引導性特征位置,以便對智能裝配系統進行引導。 若智能裝配系統搭配的夾爪自由度與人類手部自由度相同,則可將采集的人類手部特征進行尺寸及點位擬合后直接映射至夾爪進行運動復現,若夾爪自由度與人類手部自由度存在差異,則需要擬定特征規則,用來引導特征位置輔助裝配系統完成動作映射。 特征映射規則一般根據實際裝配動作來進行確定。
為驗證算法,在機械夾爪運動與復現實驗中,定義的特征映射規則與部分特征位置見表2。 特征位置根據二指、三指、五指裝夾方式進行單獨設定。

表2 裝配動作數據的映射規則Tab. 2 Mapping rules for assembly action data
在V-REP 環境中,本文研究采用UR5 機械臂搭配機械夾爪進行仿真實驗,通過采集人類“抓取+移動+釋放”動作,采用二指裝夾、三指裝夾、五指裝夾的方案進行裝配,將指定手勢動作按規則映射至機械夾爪中,指導機械夾爪將夾塊從初始位置A、途經中間點Ai、Bi裝夾到裝配位置B的動作的復現,整體流程如圖6、圖7 所示。

圖6 V-REP 仿真實驗平臺Fig. 6 V-REP simulation experimental platform

圖7 裝配軌跡在V-REP 平臺的映射與復現Fig. 7 Mapping and reproduction of assembly trajectory on VREP platform
驗證裝配精度,以裝配位置B的理想幾何中心作為參考位置,以機械臂運行裝配后夾塊幾何中心作為實際位置,得到不同手勢下的理想位置與實際裝配位置的平均誤差與最大誤差,見表3。

表3 不同裝配動作精度誤差與成功率Tab. 3 Precision error and success rate of different assembly actions
由表3 可知,在二指裝夾實驗中,平均誤差約為0.23 mm,最大誤差為0.87 mm,基本符合工業裝配的精度要求,總體成功率為94%。 三指裝夾映射與五指裝夾映射實驗平均誤差則分別增大至0.41 mm和0.83 mm,且最大誤差相較二指裝夾映射增加1.86倍與2.94 倍,成功率分別降至82%與64%。
探究原因,主要是由于二指裝夾映射實驗時,人類裝配動作關鍵部位(拇指+食指)數據采集清晰,冗余信息較少,同時數據映射方案定義明確,故取得較好的裝配結果,三指裝夾映射實驗次之。 而在五指裝夾實驗中,由于實驗目標對象是小型的夾塊,五指夾取不符合人類常規的抓取方式,且映射方案為由人類五指映射至二指機械夾爪,部分手指數據成為引起誤差的冗余信息,故其成功率與裝配精度均有所下降。 若換裝與人類手部相同自由度夾爪并優化數據映射方案定義,或者夾取對象為符合五指抓取規律的較大夾塊,則可能數據精度將有所提高。
本文基于Leap Motion 手勢交互傳感器,構建了一種輕巧、非接觸式測量的智能裝配系統方案,用以指導機械臂裝配動作的自動實現。 本方案在確定Leap Motion 性能并采集人工裝配數據后,采用基于視圖軌跡的傳感器數據處理和基于深度學習的手勢識別與定位完成裝配動作的機械臂復現。 實驗結果證明,該種方案可以應用于較復雜的動作,在進行的二指裝夾裝配實驗中,平均誤差約為0.23 mm,滿足現代工業裝配應用需求,大幅提升裝配效率。 但實驗同時表明,本方案的精度較為依賴特征映射規則與特征位置的定義,若后續針對不同裝配動作與裝配物料特點,如何對特征映射規則與特征位置的定義進行優化,是需要進一步考慮的研究工作。