施宏達,李秀飛,張立中
(1.長春理工大學 機電工程學院,長春 130022;2.長春理工大學 光電工程學院,長春 130022;3.中國科學院重慶綠色智能技術研究院,重慶 400714;4.長春理工大學 空地激光通信國防重點學科實驗室,長春 130022)
虛擬現實靈巧手姿態力度控制算法與仿真
施宏達1,3,李秀飛2,3,張立中4
(1.長春理工大學 機電工程學院,長春 130022;2.長春理工大學 光電工程學院,長春 130022;3.中國科學院重慶綠色智能技術研究院,重慶 400714;4.長春理工大學 空地激光通信國防重點學科實驗室,長春 130022)
針對靈巧手虛擬現實的控制,提出了數據手套控制手指關節角度,肌電信號進行抓取力度控制的方法。建立了虛擬現實靈巧手模型,根據神經網絡算法實現前臂肌電信號對抓取過程中的拇指尖力預測。實驗改變拇指接觸狀態,預測力模型與實際力度對比,驗證模型的有效性。該研究可用于智能假肢控制及上肢康復訓練、遙操作機器人等領域。
靈巧手;指尖力預測;肌電信號;抓取力度
靈巧手分為工業用靈巧手和醫用靈巧手。以遙操作方式實時控制靈巧手進行作業是工業靈巧手的用途之一[1]。
醫用靈巧手主要用于替代上肢殘疾者的缺損部分,作為人手的替代品并幫助上肢殘疾者完成抓取動作。現有的假肢無法滿足肢體殘疾者需求,肢體殘疾者需要能夠進行實時控制抓取姿態并對指尖力度能夠精確的控制的新型假肢[2]。肌電控制指尖力是解決方法之一。傳統的肌電指尖力預測在手勢姿態非連續下進行的[3],沒有充分考慮不同的手勢姿態對指尖力的影響。
提出數據手套控制虛擬靈巧手抓取姿態,運用神經網絡信號識別肌電信號。在連續手勢姿態下預測指尖力。
1.1 虛擬現實靈巧手模型
首先,建立虛擬現實靈巧手模型,將靈巧手Solidworks模型轉換為SimMechanics模型。
SimMechanics主要應用于機械系統的剛體運動仿真,SimMechanics由剛體(Bodies)、關節(Joints)、約束及驅動(Constraints&Drivers)、傳感器和驅動器(Sensors&Actuators)等模塊組成,可以對建立的模型進行正動力學分析(Forward Dynamics)、逆運動學分析(Inverse Dynamics)和運動學分析(Kinematics)。利用SimMechanics可以簡化分析過程的數學模型,提高工作效率的同時仿真結果更接近現實[4]。
在Matlab中運行mech_import,選擇XML文件,生成靈巧手對應的SimMechanics模型。
Simlink 3D Animation為Simink建立可視化模型,采用VRML語言建模,在Simlink 3D Animation中改變模型位置,旋轉模型,縮放模型,通過硬件設備輸入信號并能反饋信息,實現人機互動。
使用VrmlPad對VRML文件進行處理,對仿生機械手定義父子節點,使Simmechanics運動的關節與VRML上的關節相對應,靈巧手結構圖如圖1所示[5]。

圖1 靈巧手結構圖
1.2 拇指力預測模型
本文選擇了BP神經網絡的優化構建拇指力預測模型。BP神經網絡結構簡單,能夠有效地解決肌電信號非線性目標的逼近問題,具有結構簡單、可操作性強、具有較好的自學習能力、能夠有效地解決非線性目標函數的逼近問題等優點。
BP神經網絡的模擬:根據BP神經網絡的輸入與輸出關系,從中選擇一個較好的輸出值。
這實際上并不是真正意義上的優化,而是一種模擬,是從模擬結果中選擇一個較優方案。
BP神經網絡的優化:是關于輸入為何值時,能使輸出取得極大值或極小值的問題。
典型的BP網絡結構如圖2所示,假設輸入神經元的個數為M,隱含層神經元個數為I,輸出層神經元個數為J。輸入層第m個神經元記為xm,隱含層第i個神經元記為ki,輸出層第 j個神經元記為yj。從xm到ki的連接權值為wmi,從ki到yj的連接權值為wij。
隱含層傳遞函數是Sigmoid函數為:

向BP神經網絡輸入一個長為M維的肌電信號相關向量,最終輸出一個長為J的肌電信號向量。用u和v分別表示每一層的輸入與輸出,如表示I層第一個神經元的輸入,則神經網絡的實際輸出為:


圖2 典型的BP網絡結構圖
網絡的期望輸出為:

n為迭代次數。第n次迭代的誤差信號定義為:

將誤差能量定義為:

BP神經網絡的計算分為正向過程計算和反向過程計算。基于肌電訓練樣本信號,對拇指力預測模型進行訓練,使用BP神經網絡的反向過程計算每個神經元的修正權值,根據BP神經網絡的輸出的預測值與其期望值之間的誤差,反向計算每層的每個神經元的修正權值。得到每層的每個神經元的修正權值后,拇指力預測模型對肌電測試樣本信號進行測試,使用BP神經網絡的正向過程計算,從輸入節點開始向前逐層計算各節點的輸入值和輸出值,直至計算得到網絡的輸出的預測值。
隱含層神經元個數決定非線性映射能力的強弱,當隱含層節點的個數越多,對應的網絡的非線性映射能力越強。但當隱含層節點個數超過某一閾值,則只是計算時增加了運算量,無法提高網絡精度。因此確定隱含層的神經元個數的閾值,提高網絡精度,減少運算量。
通過經驗與實驗確定隱含層的神經元個數的閾值。隱含層的神經元個數需要經過經驗和實驗確定,輸入的神經元節點數與映射模型有關。本模型采用肌電信號作為自變量,隱含層的神經元個數為10。由于預測的拇指指尖力是一個標量,因此輸出層的神經元節點個數為1。
通過Matlab自帶的神經網絡工具箱的前向神經網絡函數feedforwardnet創建BP神經網絡,使用擬牛頓法對應的訓練函數trainbfg進行訓練。在feedforwardnet函數的參數的參數中指定隱含層為一層節點個數為10個。在Matlab中新建腳本文件main_yuce.m,輸入代碼如下:

1.3 手勢識別模型
靈巧手模型分為 SimMechanics模型和Simlink 3D Animation模型。SimMechanics模型是運動學仿真,SimMechanics模型無法參與人機互動,Simlink 3D Animation模型完成虛擬現實仿真。
物理輸入部分是由CyberGlov數據手套(CyberGlove)、肌肉電流傳感器(Delsys)和力度傳感器(Delsys)組成。
數據手套將手指關節角度信號輸入SimMechanics模型和Simlink 3D Animation模型完成抓取動作。肌電預測指尖力力度,與實際指尖力力度值對比,驗證算法的準確性。拇指改變接觸狀態,系統采集拇指接觸物體時拇指尖力力度值,與預測值進行預測對比。
通過記錄抓取不同形狀物體時所對應的手指關節轉動角度的姿態和位置。數據手套與靈巧手關節映射關系如圖3所示。

圖3 數據手套與靈巧手的關節映射關系
食指、中指、環指、小指的運動方式主要是屈服、伸展、外展與內收,在抓取的過程中拇指起到相當重要的作用,拇指具有能完成屈曲、伸展、內收與外展、環轉及對掌運動六個動作。本實驗中,簡化手指的運動方式,考慮到拇指在抓取過程中的特殊作用,通過兩個關節的復合運動保留拇指的屈曲、伸展、內收與外展及對掌運動,其余關節只具有屈服與伸展運動。
數據手套輸出值為x,抵消值為a,增益系數為K,模型輸入值y,映射關系表達式如下。

傳感器位于手臂前段測試拇長屈肌的肌電信號,SimMechanics模型和Simlink 3D Animation模型與將數據手套、Delay肌肉電流傳感器和力度傳感器連接。圖4是實驗整個流程圖。
數據手套通過藍牙軟件BlueSoleil與電腦建立通信,在Matlab模型里,用UDP接收信號,對Simmechanics仿生機械手模型添加關節驅動,接收數據手套信號,并以此作為驅動信源驅動Simmechanics模型。
Simmechanics模型中添加檢測模塊測量大拇指尖和中指尖位置,當大拇指尖或中指尖與物體接觸時候,物體由白色變為黃色,當拇指尖和中指尖同時接觸物體時候,物體顏色為綠色[8]。
2.3 信號分析
2.3.1 手勢信號
本實驗是通過數據手套采集抓取過程中人手關節的轉動角度,人手的抖動,會導致數據波動,為了提高抓取過程中數據的穩定及數據的連續性,加入防抖處理,當數據手套連續采集的每個關節角度變化5°時,手指執行下一個動作,更新并保存新數據[9]。處理方法如圖4所示。

圖4 實驗流程圖
通過將人手各關節的彎曲角度通過映射關系控制虛擬靈巧手各個關節的角度,由于人手的個體差異,其映射關系略有不同。

圖5 手勢識別防抖濾波方法
實驗測試對象為5人,其中男性3人,女性2人。實驗方法如下:表面肌電傳感器放置于前臂拇長伸肌處,預測不同的抓取動作的拇指指尖力輸出。
壓力傳感器在被抓物體上的位置,測量拇指在手勢姿態連續情況下的指尖力。
被抓物體實物為卡片和水杯,卡片的長85mm、寬55mm、高1mm,水杯直徑65mm,高為175mm。
抓取的三種主要類型為手掌接觸抓取、指端接觸抓取和手指側面接觸抓取[10]:
(1)手掌接觸抓取:是手掌和各指與物體接觸面積大,導致摩擦力也大,抓取穩定性高,但抓取靈活性不足。大拇指可用來更大程度上加大抓取的穩定性和增大抓取力。
(2)指端接觸抓取:此相對抓取方式優點是可以使靈巧手具有高度的靈活性,而且抓取精度很高,缺點是沒有手掌接觸抓取方式那么高的穩定性和抓取力。
(3)手指側面抓取:通過手指間的相對側面而進行抓取。抓取穩定性及靈活性介于兩種抓取方式之間。
實驗中的抓取姿態和位置有四種形式:分別是抓取,兩指捏,側捏,三指捏。
對數據手套進行標定,具體方法如下:四指并攏,大拇指張開與四指成90度,此時為初始位置,默認此時各關節角度值為0,調節加減值,使其顯示關節角度為0,每個手指單獨彎曲90度,調節增益值,對應映射的虛擬仿真平臺中仿生手關節彎曲角度為90度。
將肌電信號分為訓練樣本和測試樣本。對訓練樣本肌電信號進行預處理,得到肌電信號幅值和指尖輸出力的大小,對于同一個動作根據平均誤差選取一路肌電信號用于指尖力預測。為了驗證識別的準確程度,通過已經訓練好的BP神經網絡將剩下測試樣本的肌電信號去預測指指尖力與實際指尖力進行對比得出預測準確率。肌電信號識別流程如圖6所示。

圖6 肌電信號識別流程圖
以抓取動作為例,圖7是抓取動作的原始肌電信號、對肌電信號處理后與抓取動作實際拇指力度信號對比。對肌電原始信號進行歸一化處理,將原始數據經過處理后限制在一定的范圍內,保證程序運行時快速收斂。本實驗采用歸一化中的min-max標準化(Min-Max Normalization)處理,對肌電信號原始數據進行線性變換,使肌電信號值映射到[0-1]之間。
min-max標準化公式如下:

其中max為肌電信號原始數據中的最大值,min為肌電信號原始數據中的最小值。
具體Matlab程序如下:
minv=min(x);%肌電信號原始數據中的最小值
maxy=max(x);%肌電信號原始數據中的最大值
y=x-minv/maxv-minv;%歸一化計算公式
plot(t,y);%顯示視圖如圖7所示,肌電信號與拇指力度信號存在一定的線性關系,拇指力度信號具有被預測的可能。

圖7 抓取的原始肌肉電流信號與實際拇指力度信號對比

圖8 抓取拇指指尖力預測結果

圖9 兩指捏拇指指尖力

圖10 三指捏拇指指尖力預測結果

圖11 側捏拇指指尖力預測結果

圖12 各動作的拇指指尖力度值識別率

圖13 各動作平均識別率
圖8至圖11所示為實驗人員做抓取、二指、三指和抓取四個動作時肌肉電流信號預測拇指尖指力度和實際指尖力度的對比。圖示可以證明肌電信號能夠預測拇指力度,但預測力度與實際力度有一定的差距。由于肌電信號出現時間早于肌肉收縮,因此預測信號出現時間早于實際力度信號。
實驗結果表明,抓取動作拇指指尖力預測結果為88.9%,二指捏取動作拇指指尖力預測結果為87.8%,三指捏取動作拇指指尖力預測結果為89.8%,側捏取動作拇指指尖力預測結果為88.2%,各動作拇指指尖力預測準確率為88.7%,各動作拇指指尖力的預測準確度最大相差為2%,各動作對拇指指尖力測試影響比較小(88.7±1%),表明采用拇長伸肌表面肌電信號預測各動作拇指指尖力是合適的。
數據手套實時控制虛擬靈巧手的姿態,并實時對拇指指尖力實時預測,預測結果為88%,通過在多種連續手勢姿態下做指尖力度預測實驗,得到不同手勢姿態對同一算法的指尖力預測的準確度影響不顯著。
本實驗設計的仿真平臺具有顯示抓取姿態,被抓物體的顏色隨被抓狀態變化,抓取位置可以在被抓物體表面上以圓圈的形狀顯示,抓取預測指尖力度值可以通過改變圓圈的大小與顏色表示。本文具有以下創新點:(1)充分考慮到手勢姿態對指尖力力度的影響;(2)實驗結果證明,肌肉電流預測指尖力力度與實際指尖力力度對比,符合度為百分之87.8%以上,可以為肢體受損、安裝智能假肢的人做康復訓練;(3)實驗結果證明用數據手套控制未接觸前的靈巧手手勢姿態,當靈巧手與被抓物體接觸后,通過肌肉電流控制指尖力力度的大小,使遙操作更精確。
[1] 李昕一.基于虛擬現實遙操作焊接機械手系統的實現[D].西安:西安科技大學,2014.
[2] 朱昊.基于人手肌肉驅動特征的假肢手電機驅動控制研究[D].長沙:中南大學,2013.
[3] Li Xiufei,Fu Jiantin,Xiong Linfei,et al.Identification of Finger Force and Motion from Forearm Surface Electromyography[C].2015 IEEE International Conference on Multisensor Fusion and lntegration for Intelligent Systems(MFI),San Diego,2015.
[4] 張立勛,董玉紅,王琬.機電系統仿真與設計[M].哈爾濱:哈爾濱工程大學出版社,2006:37-39.
[5] 張勇.基于Simulink的機器人虛擬現實仿真研究[D].哈爾濱:哈爾濱工程大學,2007.
[6] 陳明.神經網絡原理與實例精解[M].北京:清華大學出版社,2013:156-191.
[7] 胡伍生.神經網絡理論及其工程應用[M].北京:測繪出版社,2006:25-48.
[8] 張金釗.VRML編程實訓教程[M].北京:清華大學出版社,2008.
[9] 朱玉樂.多指靈巧手抓取運動規劃的研究[D].洛陽:河南科技大學,2013.
[10] 曹文祥.基于人機工程學的虛擬人手的模型建立及運動學仿真[D].武漢:武漢理工大學,2011.
Control Algorithm of Posture and Force Simulation for Dexterous Hand in Virtual Reality
SHI Hongda1,3,LI Xiufei2,3,ZHANG Lizhong4
(1.School of Mechatronical Engineering,Changchun University of Science and Technology,Changchun 130022;2.School of Optoelectronic Engineering,Changchun University of Science and Technology,Changchun 130022;3.Chongqing Institute of Green and Intelligent Technology,Chinese Academy of Sciences,Chongqing 400714;4.Fundamental Science on Space-Ground Laser Communication Technology Laboratory,Changchun University of Science and Technology,Changchun 130022)
For virtual dexterous hand control,proposed a method which uses the data glove control finger joint angle,and control grab force of the experimental method based on EMG.Build a virtual model of dexterous hand,simulation of the grab process,achieve limb muscles current signal prediction crawl on the thumb fingertip force based on BP algorithm based on neural network.Repeatedly changing contact state accuracy crawl thumb,thumb fingertip size of the force will be measured and predicted strength value verified by comparing predicted by.Compare the predictive force of the model with the actual force,verify the validity of the model.Experimental results demonstrate the effectiveness of the method,which can be used in the field of intelligent control and prosthetic rehabilitation of stroke patients,remote operations,etc.
dexterous hands;fingertip force forecasting;emgs;grab control force
TP241.3
A
1672-9870(2016)05-0070-06
2016-01-20
施宏達(1990-),男,碩士研究生,E-mail:shihongda@cigit.ac.cn
張立中(1968-),男,教授,博士生導師,E-mail:zlzcust@126.com