閩南理工學(xué)院 陶慶鳳
虛擬交互新技術(shù)正在進(jìn)行快速的發(fā)展,傳統(tǒng)使用人機(jī)交互的輸入設(shè)備如手柄、鼠標(biāo)和鍵盤等已經(jīng)滿足不了人們生產(chǎn)生活的需求,所以人們急需一種更加符合人體動(dòng)力學(xué)的方式來實(shí)現(xiàn)全新的人機(jī)交互。手勢(shì)控制器輸入法是一種全新的人機(jī)交互方式,具有生動(dòng)、直觀和形象的特點(diǎn),可以給操作者帶來非常自然的人機(jī)交互體驗(yàn),在促進(jìn)虛擬現(xiàn)實(shí)體驗(yàn)的臨場(chǎng)感種具有很重要的意義。在上述背景下,本項(xiàng)目設(shè)計(jì)出一個(gè)基于四元數(shù)姿態(tài)算法的機(jī)械手臂系統(tǒng),來滿足當(dāng)今虛擬現(xiàn)實(shí)技術(shù)的交互需求。
科學(xué)技術(shù)以及社會(huì)經(jīng)濟(jì)快速發(fā)展,促進(jìn)虛擬現(xiàn)實(shí)技術(shù)逐漸向各行各業(yè)滲透,并因此衍生出了很多新的高科技的研究領(lǐng)域。而在此當(dāng)中,虛擬交互行業(yè)是一個(gè)綜合性的領(lǐng)域,它代表著時(shí)代的需求,并集合了多種新技術(shù)、新算法于一體,它的研究方向包含多學(xué)科交叉的內(nèi)容,比如人機(jī)交互的技術(shù)、計(jì)算機(jī)圖形的技術(shù)、人工智能技術(shù)、信息技術(shù)、傳感技術(shù)等。
為了促進(jìn)虛擬交互技術(shù)的發(fā)展,國(guó)家先后出臺(tái)了多項(xiàng)政策與規(guī)劃措施,保障行業(yè)朝著健康有序的方向發(fā)展,所以未來虛擬交互行業(yè)一定會(huì)迎來蓬勃發(fā)展的階段。
在系統(tǒng)開發(fā)過程中使用的是標(biāo)準(zhǔn)化的四元數(shù),它的三角函數(shù)式可以表示為:,通過該表達(dá)式可以計(jì)算剛體旋轉(zhuǎn)運(yùn)動(dòng)的數(shù)據(jù),表達(dá)式中代表旋轉(zhuǎn)的瞬軸,?代表剛體旋轉(zhuǎn)的角度[1]。
通常慣性導(dǎo)航過程中,都具有初始狀態(tài)時(shí)導(dǎo)航坐標(biāo)系m和載體坐標(biāo)系a重合的現(xiàn)象,且載體坐標(biāo)系a是動(dòng)態(tài)坐標(biāo)系,也就是上述四元數(shù)的矢量變換中提到的OX'Y'Z'這個(gè)新坐標(biāo)系,而導(dǎo)航坐標(biāo)系m對(duì)應(yīng)上述四元數(shù)的矢量變換中提到的OXYZ這個(gè)舊坐標(biāo)系。假設(shè)a坐標(biāo)系下有定坐標(biāo)(xa,ya,za)在m坐標(biāo)系中的投影是(xm,ym,zm),將其代入到矩陣表達(dá)式中就得出姿態(tài)矩陣的表達(dá)式為:
四元數(shù)的微分方程可以用如下方程式表達(dá):
把表達(dá)式寫成矩陣的形式如下:
求解這個(gè)四元數(shù)的微分方程式,可以得出四元數(shù)p0、p1、p2、p3。
人類生產(chǎn)生活中、和大自然的接觸中,手是極其重要的媒介,手部動(dòng)作有著很高的精度和靈敏度。手部結(jié)構(gòu)也相當(dāng)復(fù)雜,手的結(jié)構(gòu)是由17個(gè)關(guān)節(jié)以及27塊骨骼所組成的,如圖1所示,它相當(dāng)于一個(gè)多關(guān)節(jié)組成的運(yùn)動(dòng)系統(tǒng)。手部結(jié)構(gòu)的自由度等于每根手指的自由度相加,單手一共是二十四個(gè)自由度,包括小指、無(wú)名指、中指和食指等四指各指頭四個(gè)自由度,以及拇指上的五個(gè)自由度,除此之外還有手腕的曲度、外展、手掌的弧度等3個(gè)自由度。
圖1 人體手部結(jié)構(gòu)圖Fig.1 Structure of the human hand
除拇指外,其余4指的運(yùn)動(dòng)狀態(tài)都是相似的,例如食指,當(dāng)它做出伸展的動(dòng)作時(shí),食指的指掌部位的關(guān)節(jié)可以完成環(huán)轉(zhuǎn)、彎曲伸展、側(cè)向擺動(dòng)等動(dòng)作。而拇指的結(jié)構(gòu)跟其余四指比就相對(duì)復(fù)雜,當(dāng)拇指做出伸展的動(dòng)作時(shí),它的指掌關(guān)節(jié)、遠(yuǎn)指關(guān)節(jié)可以完成彎曲伸展的動(dòng)作,手掌腕部的關(guān)節(jié)可以完成對(duì)掌、彎曲伸展以及環(huán)轉(zhuǎn)等動(dòng)作。
在機(jī)械手臂的開發(fā)中,一個(gè)非常重要的事情就是傳感器的布局,優(yōu)良的傳感器布局方法不但可以確保實(shí)現(xiàn)系統(tǒng)的基本功能,還可以進(jìn)一步精簡(jiǎn)系統(tǒng)的內(nèi)容以及提高系統(tǒng)穩(wěn)定性、安全性[2]。
在人體手部骨骼分析中,知道了人體手部結(jié)構(gòu)圖的關(guān)節(jié)特點(diǎn)、自由度以及運(yùn)動(dòng)過程。由此可知食指能夠靈活地做出彎曲伸展的活動(dòng),依賴于各個(gè)關(guān)節(jié)以及指骨的相互配合,整個(gè)動(dòng)作過程如下:首先根關(guān)節(jié)也就是指掌關(guān)節(jié),它是食指活動(dòng)的起點(diǎn),有著指揮官的作用;其次近指關(guān)節(jié)屬于根關(guān)節(jié)底下的子關(guān)節(jié),作用是連接遠(yuǎn)指和指掌2個(gè)關(guān)節(jié);最后遠(yuǎn)指關(guān)節(jié)也是子關(guān)節(jié)底下的次子關(guān)節(jié),它是最靈敏的一個(gè)關(guān)節(jié)。如圖2所示可以看出遠(yuǎn)指骨依賴于遠(yuǎn)指關(guān)節(jié)來活動(dòng),近指骨依賴于指掌關(guān)節(jié)來進(jìn)行彎曲伸縮活動(dòng),而中指骨可以圍繞著近指關(guān)節(jié)展開相關(guān)活動(dòng)。在運(yùn)動(dòng)過程中,近指骨和中指骨圍繞著指掌和近指關(guān)節(jié)產(chǎn)生的動(dòng)作是由人的意識(shí)來決定的,是屬于主動(dòng)形式的動(dòng)作,而遠(yuǎn)指骨則相反,遠(yuǎn)指骨不是獨(dú)立產(chǎn)生的動(dòng)作,它是附屬遠(yuǎn)指關(guān)節(jié)的動(dòng)作,是人的意識(shí)無(wú)法操控的,也就是在沒有外力的時(shí)候,它不能自己獨(dú)立產(chǎn)生動(dòng)作,一旦遠(yuǎn)指骨運(yùn)動(dòng)必然會(huì)引起中指骨也做出相應(yīng)的動(dòng)作[3]。
圖2 食指活動(dòng)的各個(gè)關(guān)節(jié)Fig.2 The joints of the index finger
遠(yuǎn)指骨和中指骨之間動(dòng)作互相影響、互相帶動(dòng),這種關(guān)系可以用一組數(shù)學(xué)表達(dá)式來體現(xiàn),表達(dá)式如下所示:
通過表達(dá)式(5)我們知道,遠(yuǎn)指骨的活動(dòng)狀態(tài)可以依據(jù)中指骨的活動(dòng)狀態(tài)推算出來,那么對(duì)于食指來說,我們可以在近指骨以及中指骨的地方分別布局一個(gè)傳感器,用來測(cè)量近指骨與中指骨活動(dòng)產(chǎn)生動(dòng)作的數(shù)據(jù),得出相關(guān)數(shù)據(jù)之后,再使用表達(dá)式(5)來得出遠(yuǎn)指骨活動(dòng)產(chǎn)生的數(shù)據(jù),至此整個(gè)食指的活動(dòng)狀態(tài)的數(shù)據(jù)都可以完整獲取。而拇指數(shù)據(jù)的獲取,一般來說我們只需要采集近指骨與遠(yuǎn)指骨活動(dòng)產(chǎn)生的數(shù)據(jù),所以在近指骨與遠(yuǎn)指骨的地方分別布局一個(gè)傳感器,來獲取相關(guān)數(shù)據(jù)即可。腕關(guān)節(jié)是整個(gè)手掌的底部,要獲取其數(shù)據(jù),只需在手背的地方布局一個(gè)傳感器即可。
綜上可以得出整個(gè)手部結(jié)構(gòu)傳感器設(shè)置的方案:先在手背上布局1個(gè)傳感器的節(jié)點(diǎn),然后在四指的中指骨與近指骨的地方各布局1個(gè)節(jié)點(diǎn)傳感器,最后是大拇指,在其近指骨處與遠(yuǎn)指骨處各布局1個(gè)節(jié)點(diǎn)傳感器,該布局設(shè)計(jì)能夠完整地計(jì)算出手部的運(yùn)動(dòng)數(shù)據(jù)。
傳感器的節(jié)點(diǎn)是設(shè)置在機(jī)械手臂相關(guān)骨骼上的,是用來計(jì)算骨骼運(yùn)動(dòng)狀態(tài)的設(shè)備,其構(gòu)成主要由磁力計(jì)、陀螺儀、加速度計(jì)以及微處理器組成。要符合安全流暢的運(yùn)動(dòng)狀態(tài),必須要將傳感器的節(jié)點(diǎn)大小設(shè)計(jì)成微型化,所以設(shè)計(jì)過程采用的是微處理器,它是整個(gè)傳感器最核心的器件,在工作時(shí)通過IIC的總線來讀取磁力計(jì)、加速度計(jì)以及陀螺儀的原始數(shù)據(jù),然后經(jīng)過數(shù)據(jù)融合的操作得到機(jī)械手臂的姿態(tài)信息,再把該姿態(tài)信息的數(shù)據(jù)發(fā)送給CAN總線,最后實(shí)現(xiàn)數(shù)據(jù)采集以及數(shù)據(jù)處理與數(shù)據(jù)傳輸?shù)热蠊δ堋?/p>
有兩個(gè)主要的操作模式界面,分別為滾動(dòng)條控制界面和按鈕點(diǎn)擊控制界面,可根據(jù)用戶的實(shí)際需求來進(jìn)行切換。在進(jìn)入操作界面前需打開手機(jī)藍(lán)牙,進(jìn)入操作界面后點(diǎn)擊右邊的第二個(gè)按鈕使得手機(jī)藍(lán)牙與手勢(shì)控制器的藍(lán)牙配對(duì),配對(duì)之前藍(lán)牙的初始值為紅色停止?fàn)顟B(tài)的圖標(biāo),配對(duì)成功后紅色藍(lán)牙圖標(biāo)變成了藍(lán)色工作狀態(tài)中的圖標(biāo),此時(shí)方可進(jìn)行有效手勢(shì)控制器的操作,系統(tǒng)開發(fā)過程的主要界面如圖3、圖4所示。
圖3 滾動(dòng)條操作界面Fig.3 Scroll bar operation interface
圖4 按鈕點(diǎn)擊操作界面Fig.4 Button click operation interface
(1)滾動(dòng)條操作界面
滾動(dòng)條控制界面:開始工作前五根手指對(duì)應(yīng)的五根滾動(dòng)條分別處于各滾動(dòng)條的中間位置,可手動(dòng)向上或向下調(diào)節(jié)滾動(dòng)條的位置。向上是調(diào)節(jié)對(duì)應(yīng)手指伸展的狀態(tài),向下是調(diào)節(jié)對(duì)應(yīng)手指彎曲的狀態(tài),右邊第三個(gè)按鈕為恢復(fù)初始狀態(tài)的按鈕,手勢(shì)控制器使用完畢后可點(diǎn)此按鈕恢復(fù)初始狀態(tài)。
(2)按鈕點(diǎn)擊操作界面
按鈕點(diǎn)擊控制界面:開啟時(shí)手勢(shì)控制器處于初始狀態(tài),分別點(diǎn)擊大拇指、食指、中指、無(wú)名指、小指等按鈕,則對(duì)應(yīng)的機(jī)械手指開始產(chǎn)生彎曲,點(diǎn)擊持續(xù)時(shí)間越久彎曲的程度越深。松開按鈕時(shí),相應(yīng)的機(jī)械手指會(huì)逐漸伸展開來,調(diào)整完畢后可按右邊第三個(gè)按鈕使其恢復(fù)初始狀態(tài)。
本系統(tǒng)開發(fā)過程中采用了基于互補(bǔ)濾波器的四元數(shù)姿態(tài)解算方法,該計(jì)算方法能精確地得出機(jī)械手臂的運(yùn)動(dòng)姿態(tài)。同時(shí)分析了人體手部結(jié)構(gòu),包括對(duì)小指、無(wú)名指、中指、食指和大拇指的各個(gè)關(guān)節(jié)以及指骨進(jìn)行了細(xì)致地分析,對(duì)機(jī)械手臂上傳感器的布局提供了方案。然后對(duì)機(jī)械手臂的軟件開發(fā)部分進(jìn)行了介紹,該系統(tǒng)對(duì)機(jī)械手臂進(jìn)行運(yùn)動(dòng)控制,控制過程中具有良好的負(fù)載能力和控制精度,能自動(dòng)調(diào)節(jié)手勢(shì)控制器的握力大小,該控制器的功能可以進(jìn)行擴(kuò)展和挖掘,對(duì)后續(xù)的二次開發(fā)提供了良好的延展性。