孔令軻
(華僑大學(xué)工業(yè)智能化技術(shù)與系統(tǒng)福建省高校工程研究中心,泉州362021)
機(jī)器人是近年來發(fā)展起來的綜合學(xué)科[1],集中了機(jī)械工程、電子工程、計算機(jī)工程、自動化控制工程以及人工智能等多種學(xué)科的最新科研成果,對工業(yè)生產(chǎn)發(fā)展、勞動生產(chǎn)率等多方面都產(chǎn)生了深遠(yuǎn)的影響。其中,仿人機(jī)器人是一個多關(guān)節(jié)且具有冗余自由度的復(fù)雜系統(tǒng)[2],它不同于一般機(jī)器人,在外形和功能等方面更像人類,它的最終目標(biāo)是研制出具備人類特征(如行走、感官、思維、判斷等能力),在相當(dāng)程度上替代人類并服務(wù)于人類的高級智能機(jī)器人。因此研究如何讓機(jī)器人在行為上更貼近人類在當(dāng)前服務(wù)領(lǐng)域[3]、工業(yè)領(lǐng)域[4]、健康領(lǐng)域[5]的研究是非常具有應(yīng)用價值的。
仿人機(jī)器人運動穩(wěn)定性研究是機(jī)器人領(lǐng)域的一個熱點。目前,穩(wěn)定運動的規(guī)劃主要是基于動力學(xué)模型[6],而運動規(guī)劃形成的運動模式往往需要復(fù)雜的計算,機(jī)器人的運動形式單一。為了實現(xiàn)機(jī)器人的多樣化運動[7]生成。以人體行走信息為教學(xué)數(shù)據(jù),實現(xiàn)仿人機(jī)器人對人體運動過程的模擬學(xué)習(xí),簡化了運動規(guī)劃[8],使機(jī)器人的運動更加多樣化和擬人化。為了滿足機(jī)器人在運動仿真過程中的穩(wěn)定性,本文采用Kinect 深度傳感器來捕捉人體的教學(xué)運動[9]。針對Kinect 坐標(biāo)系與機(jī)器人坐標(biāo)系精確統(tǒng)一的問題,以Nao 機(jī)器人為中心重構(gòu)三維坐標(biāo)解,將解的值轉(zhuǎn)化為Nao 機(jī)器人的底層控制,實現(xiàn)實時動作仿真。
本文以機(jī)器人Nao 為研究對象,依托Kinect 的骨骼追蹤識別功能搭建動作捕捉系統(tǒng),實時將目標(biāo)人物的動作簡化為關(guān)節(jié)角度傳遞給機(jī)器人,完成實時模仿效果。該方法精確度高、實時度好、簡便易行,規(guī)避了復(fù)雜的運動模型建立過程。
Nao 機(jī)器人重4.5kg,高0.57m,擁有25 個自由度(見圖1),機(jī)構(gòu)復(fù)雜程度高,動作較為靈活,智能程度高[10]。其軀干內(nèi)安裝了3 軸加速度傳感器(ACC)和陀螺儀(GYRO),能夠進(jìn)行信息融合生成軀干姿態(tài)角度。同時Nao 每只足有4 個壓力傳感器(FSR)來確定每只腳壓力中心位置,擁有慣性導(dǎo)航儀裝置用以保持在移動模式下的平穩(wěn),通過超聲波傳感器探測并繞過障礙物[11],正是有了以上硬件支持,保證了Nao 動作格外平穩(wěn)和流暢,完美支撐了我們研究的展開。
Kinect 是一款微軟發(fā)布的體感設(shè)備感知器,作為一種非合作方式的人體跟蹤系統(tǒng),可以提供骨骼圖像、景深圖像及骨架追蹤。它含有3 個鏡頭,中間是RGB彩色攝像機(jī),左右兩邊鏡頭分別是紅外線發(fā)射器和紅外線CMOS 攝像機(jī)所構(gòu)成的3D 深度傳感器。它們負(fù)責(zé)捕捉人肢體動作,然后將其和本身內(nèi)部存有的人體模型相對照,符合的便會被創(chuàng)造成和他相關(guān)的骨骼模型,系統(tǒng)可識別人體各個關(guān)鍵部位,見圖2。利用彩色攝像頭采集到彩色圖像和紅外攝像頭采集到的深度圖像,我們可以提取出人體骨架和關(guān)節(jié)空間位置信息,見圖3。
圖1 Nao各自由度示意圖
圖2 人體各個關(guān)鍵節(jié)點總覽
圖3 Kinect提取人體骨骼框架
Kinect 三維坐標(biāo)是根據(jù)Kinect 攝像頭建立的,原點位于攝像頭位置,x 軸由原點從左指向右,y 軸垂直主光軸向上,按右手系法則確定出z 軸方向。但是該種建立的坐標(biāo)系的方式會收到距離和背景的影響,捕捉的數(shù)值具有一定的噪聲,為了解決這個問題,我們重新以人體為依據(jù),重新建立了坐標(biāo)系。設(shè)SHOULDER_CENTRE、SPINE、HOULDER_RIGHT 和SHOULDER_LEFT 四個節(jié)點分別為點A、點B、點C 和點D。
可以求解:
X 軸為:(CX-DX,CY-DY,CZ-DZ);
Z 軸為:(BX-AX,BY-AY,BZ-AZ);
圖4 重建三維坐標(biāo)系建立
再通過公式(1)求出向量作為Y 軸,即:
得到的人體坐標(biāo)系見圖4 所示。
以右手為例見圖5 所示,接下來將詳細(xì)介紹計算機(jī)器人關(guān)節(jié)角度計算:取SHOULDER(S)、ELBOW(E)、WRIST(W)三個點坐標(biāo)(Xs,Ys,Zs)、(XE,YE,ZE)和(XW,YW,ZW)。
圖5 人體右手關(guān)節(jié)點
其中,各個向量表示如下所示:
將SHOULDER_ELBOW 與向量(公式(2))求得θ1。
將θ作為傳遞給Nao 機(jī)器人右手臂的RShoulder-Pitch 關(guān)節(jié)的值;
REblowYaw 為自由旋轉(zhuǎn)角度用上述方法無法直接計算,我們通過實驗調(diào)試最終將WRIST 的Z 坐標(biāo)值與ELBOW 的Z 坐標(biāo)值做差再除以WRIST 與ELBOW 之間的距離求反三角函數(shù)再加上RShoulderPitch 的值將其作為Nao 機(jī)器人REblowYaw 的關(guān)節(jié)值(公式(5))。
Nao 機(jī)器人左臂關(guān)節(jié)與以上算法類似,在這里不再贅述。通過計算出手臂的八個關(guān)節(jié)角度值傳入Nao機(jī)器人的驅(qū)動系統(tǒng)來實現(xiàn)運動控制,以及實時的動作模仿。
考慮到Nao 機(jī)器人每一個關(guān)節(jié)能活動的范圍并不能像人一樣大,過大的角度會造成Nao 機(jī)器人損壞,所以超過各個關(guān)節(jié)閾值的角度后,一律傳入最大角度。Nao 機(jī)器人各節(jié)點活動閾值見表1。
表1 Nao 機(jī)器人各節(jié)點活動閾值
Nao 機(jī)器人是法國阿爾德巴蘭公司研發(fā)的一款具有25 個自由度、可雙足行走的人形機(jī)器人,目前世界范圍內(nèi)有超過5000 所高校和研究機(jī)構(gòu)將其作為研究實驗平臺,本文創(chuàng)建Nao 機(jī)器人動作模仿系統(tǒng),人體關(guān)節(jié)點采集以及示教數(shù)據(jù)讀取使用Python 語言開發(fā)實現(xiàn),將示教動作信息傳入Naoqi 達(dá)到數(shù)據(jù)更新,再映射到Nao 機(jī)器人控制端從而完成動作模仿的效果。
實時通過Kienct 實現(xiàn)Nao 機(jī)器人動作模仿如下圖所示,其中圖6 為手臂伸展動作模仿,圖7 為手臂彎曲復(fù)合動作模仿。
圖6 手臂伸展動作
圖7 手臂彎曲復(fù)合運動
本文針對仿人機(jī)器人實現(xiàn)實時模仿目標(biāo)人物運動進(jìn)行研究與實驗,提出了一種基于Kinect 的動作捕捉模仿方法,該方法規(guī)避了復(fù)雜的底層運動建模,簡便易用的使仿人機(jī)器人能像真實人類一樣運動,該方法精確度高、實時度好。但是同時也存在缺陷,即因為Kinect 無法感知目標(biāo)人物平向運動變化(如左右轉(zhuǎn)動頭部),因此無法完成機(jī)器人模仿目標(biāo)人物該類型的動作。同時,本實驗未引入機(jī)器人平衡控制,所以即使Nao 能接受下半身目標(biāo)人物關(guān)節(jié)信息,但當(dāng)運動下半身,很大幾率會出現(xiàn)摔倒的情況。以上問題將在后續(xù)的工作中進(jìn)一步研究和解決。另外,本文方法將在未來時間進(jìn)行如下拓展:將各個動作相關(guān)信息按照時間維度存儲數(shù)據(jù)庫中,之后進(jìn)行調(diào)用,從而達(dá)到仿人運動的效果。