孔令軻
(華僑大學(xué)工業(yè)智能化技術(shù)與系統(tǒng)福建省高校工程研究中心,泉州362021)
機(jī)器人是近年來發(fā)展起來的綜合學(xué)科[1],集中了機(jī)械工程、電子工程、計(jì)算機(jī)工程、自動(dòng)化控制工程以及人工智能等多種學(xué)科的最新科研成果,對(duì)工業(yè)生產(chǎn)發(fā)展、勞動(dòng)生產(chǎn)率等多方面都產(chǎn)生了深遠(yuǎn)的影響。其中,仿人機(jī)器人是一個(gè)多關(guān)節(jié)且具有冗余自由度的復(fù)雜系統(tǒng)[2],它不同于一般機(jī)器人,在外形和功能等方面更像人類,它的最終目標(biāo)是研制出具備人類特征(如行走、感官、思維、判斷等能力),在相當(dāng)程度上替代人類并服務(wù)于人類的高級(jí)智能機(jī)器人。因此研究如何讓機(jī)器人在行為上更貼近人類在當(dāng)前服務(wù)領(lǐng)域[3]、工業(yè)領(lǐng)域[4]、健康領(lǐng)域[5]的研究是非常具有應(yīng)用價(jià)值的。
仿人機(jī)器人運(yùn)動(dòng)穩(wěn)定性研究是機(jī)器人領(lǐng)域的一個(gè)熱點(diǎn)。目前,穩(wěn)定運(yùn)動(dòng)的規(guī)劃主要是基于動(dòng)力學(xué)模型[6],而運(yùn)動(dòng)規(guī)劃形成的運(yùn)動(dòng)模式往往需要復(fù)雜的計(jì)算,機(jī)器人的運(yùn)動(dòng)形式單一。為了實(shí)現(xiàn)機(jī)器人的多樣化運(yùn)動(dòng)[7]生成。以人體行走信息為教學(xué)數(shù)據(jù),實(shí)現(xiàn)仿人機(jī)器人對(duì)人體運(yùn)動(dòng)過程的模擬學(xué)習(xí),簡化了運(yùn)動(dòng)規(guī)劃[8],使機(jī)器人的運(yùn)動(dòng)更加多樣化和擬人化。為了滿足機(jī)器人在運(yùn)動(dòng)仿真過程中的穩(wěn)定性,本文采用Kinect 深度傳感器來捕捉人體的教學(xué)運(yùn)動(dòng)[9]。針對(duì)Kinect 坐標(biāo)系與機(jī)器人坐標(biāo)系精確統(tǒng)一的問題,以Nao 機(jī)器人為中心重構(gòu)三維坐標(biāo)解,將解的值轉(zhuǎn)化為Nao 機(jī)器人的底層控制,實(shí)現(xiàn)實(shí)時(shí)動(dòng)作仿真。
本文以機(jī)器人Nao 為研究對(duì)象,依托Kinect 的骨骼追蹤識(shí)別功能搭建動(dòng)作捕捉系統(tǒng),實(shí)時(shí)將目標(biāo)人物的動(dòng)作簡化為關(guān)節(jié)角度傳遞給機(jī)器人,完成實(shí)時(shí)模仿效果。該方法精確度高、實(shí)時(shí)度好、簡便易行,規(guī)避了復(fù)雜的運(yùn)動(dòng)模型建立過程。
Nao 機(jī)器人重4.5kg,高0.57m,擁有25 個(gè)自由度(見圖1),機(jī)構(gòu)復(fù)雜程度高,動(dòng)作較為靈活,智能程度高[10]。其軀干內(nèi)安裝了3 軸加速度傳感器(ACC)和陀螺儀(GYRO),能夠進(jìn)行信息融合生成軀干姿態(tài)角度。同時(shí)Nao 每只足有4 個(gè)壓力傳感器(FSR)來確定每只腳壓力中心位置,擁有慣性導(dǎo)航儀裝置用以保持在移動(dòng)模式下的平穩(wěn),通過超聲波傳感器探測并繞過障礙物[11],正是有了以上硬件支持,保證了Nao 動(dòng)作格外平穩(wěn)和流暢,完美支撐了我們研究的展開。
Kinect 是一款微軟發(fā)布的體感設(shè)備感知器,作為一種非合作方式的人體跟蹤系統(tǒng),可以提供骨骼圖像、景深圖像及骨架追蹤。它含有3 個(gè)鏡頭,中間是RGB彩色攝像機(jī),左右兩邊鏡頭分別是紅外線發(fā)射器和紅外線CMOS 攝像機(jī)所構(gòu)成的3D 深度傳感器。它們負(fù)責(zé)捕捉人肢體動(dòng)作,然后將其和本身內(nèi)部存有的人體模型相對(duì)照,符合的便會(huì)被創(chuàng)造成和他相關(guān)的骨骼模型,系統(tǒng)可識(shí)別人體各個(gè)關(guān)鍵部位,見圖2。利用彩色攝像頭采集到彩色圖像和紅外攝像頭采集到的深度圖像,我們可以提取出人體骨架和關(guān)節(jié)空間位置信息,見圖3。

圖1 Nao各自由度示意圖

圖2 人體各個(gè)關(guān)鍵節(jié)點(diǎn)總覽

圖3 Kinect提取人體骨骼框架
Kinect 三維坐標(biāo)是根據(jù)Kinect 攝像頭建立的,原點(diǎn)位于攝像頭位置,x 軸由原點(diǎn)從左指向右,y 軸垂直主光軸向上,按右手系法則確定出z 軸方向。但是該種建立的坐標(biāo)系的方式會(huì)收到距離和背景的影響,捕捉的數(shù)值具有一定的噪聲,為了解決這個(gè)問題,我們重新以人體為依據(jù),重新建立了坐標(biāo)系。設(shè)SHOULDER_CENTRE、SPINE、HOULDER_RIGHT 和SHOULDER_LEFT 四個(gè)節(jié)點(diǎn)分別為點(diǎn)A、點(diǎn)B、點(diǎn)C 和點(diǎn)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ì)算機(jī)器人關(guān)節(jié)角度計(jì)算:取SHOULDER(S)、ELBOW(E)、WRIST(W)三個(gè)點(diǎn)坐標(biāo)(Xs,Ys,Zs)、(XE,YE,ZE)和(XW,YW,ZW)。

圖5 人體右手關(guān)節(jié)點(diǎn)
其中,各個(gè)向量表示如下所示:

將SHOULDER_ELBOW 與向量(公式(2))求得θ1。

將θ作為傳遞給Nao 機(jī)器人右手臂的RShoulder-Pitch 關(guān)節(jié)的值;



REblowYaw 為自由旋轉(zhuǎn)角度用上述方法無法直接計(jì)算,我們通過實(shí)驗(yà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é)與以上算法類似,在這里不再贅述。通過計(jì)算出手臂的八個(gè)關(guān)節(jié)角度值傳入Nao機(jī)器人的驅(qū)動(dòng)系統(tǒng)來實(shí)現(xiàn)運(yùn)動(dòng)控制,以及實(shí)時(shí)的動(dòng)作模仿。
考慮到Nao 機(jī)器人每一個(gè)關(guān)節(jié)能活動(dòng)的范圍并不能像人一樣大,過大的角度會(huì)造成Nao 機(jī)器人損壞,所以超過各個(gè)關(guān)節(jié)閾值的角度后,一律傳入最大角度。Nao 機(jī)器人各節(jié)點(diǎn)活動(dòng)閾值見表1。

表1 Nao 機(jī)器人各節(jié)點(diǎn)活動(dòng)閾值
Nao 機(jī)器人是法國阿爾德巴蘭公司研發(fā)的一款具有25 個(gè)自由度、可雙足行走的人形機(jī)器人,目前世界范圍內(nèi)有超過5000 所高校和研究機(jī)構(gòu)將其作為研究實(shí)驗(yàn)平臺(tái),本文創(chuàng)建Nao 機(jī)器人動(dòng)作模仿系統(tǒng),人體關(guān)節(jié)點(diǎn)采集以及示教數(shù)據(jù)讀取使用Python 語言開發(fā)實(shí)現(xiàn),將示教動(dòng)作信息傳入Naoqi 達(dá)到數(shù)據(jù)更新,再映射到Nao 機(jī)器人控制端從而完成動(dòng)作模仿的效果。
實(shí)時(shí)通過Kienct 實(shí)現(xiàn)Nao 機(jī)器人動(dòng)作模仿如下圖所示,其中圖6 為手臂伸展動(dòng)作模仿,圖7 為手臂彎曲復(fù)合動(dòng)作模仿。

圖6 手臂伸展動(dòng)作

圖7 手臂彎曲復(fù)合運(yùn)動(dòng)
本文針對(duì)仿人機(jī)器人實(shí)現(xiàn)實(shí)時(shí)模仿目標(biāo)人物運(yùn)動(dòng)進(jìn)行研究與實(shí)驗(yàn),提出了一種基于Kinect 的動(dòng)作捕捉模仿方法,該方法規(guī)避了復(fù)雜的底層運(yùn)動(dòng)建模,簡便易用的使仿人機(jī)器人能像真實(shí)人類一樣運(yùn)動(dòng),該方法精確度高、實(shí)時(shí)度好。但是同時(shí)也存在缺陷,即因?yàn)镵inect 無法感知目標(biāo)人物平向運(yùn)動(dòng)變化(如左右轉(zhuǎn)動(dòng)頭部),因此無法完成機(jī)器人模仿目標(biāo)人物該類型的動(dòng)作。同時(shí),本實(shí)驗(yàn)未引入機(jī)器人平衡控制,所以即使Nao 能接受下半身目標(biāo)人物關(guān)節(jié)信息,但當(dāng)運(yùn)動(dòng)下半身,很大幾率會(huì)出現(xiàn)摔倒的情況。以上問題將在后續(xù)的工作中進(jìn)一步研究和解決。另外,本文方法將在未來時(shí)間進(jìn)行如下拓展:將各個(gè)動(dòng)作相關(guān)信息按照時(shí)間維度存儲(chǔ)數(shù)據(jù)庫中,之后進(jìn)行調(diào)用,從而達(dá)到仿人運(yùn)動(dòng)的效果。