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

圖1 Nao各自由度示意圖

圖2 人體各個關鍵節點總覽

圖3 Kinect提取人體骨骼框架
Kinect 三維坐標是根據Kinect 攝像頭建立的,原點位于攝像頭位置,x 軸由原點從左指向右,y 軸垂直主光軸向上,按右手系法則確定出z 軸方向。但是該種建立的坐標系的方式會收到距離和背景的影響,捕捉的數值具有一定的噪聲,為了解決這個問題,我們重新以人體為依據,重新建立了坐標系。設SHOULDER_CENTRE、SPINE、HOULDER_RIGHT 和SHOULDER_LEFT 四個節點分別為點A、點B、點C 和點D。
可以求解:
X 軸為:(CX-DX,CY-DY,CZ-DZ);
Z 軸為:(BX-AX,BY-AY,BZ-AZ);

圖4 重建三維坐標系建立
再通過公式(1)求出向量作為Y 軸,即:

得到的人體坐標系見圖4 所示。
以右手為例見圖5 所示,接下來將詳細介紹計算機器人關節角度計算:取SHOULDER(S)、ELBOW(E)、WRIST(W)三個點坐標(Xs,Ys,Zs)、(XE,YE,ZE)和(XW,YW,ZW)。

圖5 人體右手關節點
其中,各個向量表示如下所示:

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

將θ作為傳遞給Nao 機器人右手臂的RShoulder-Pitch 關節的值;



REblowYaw 為自由旋轉角度用上述方法無法直接計算,我們通過實驗調試最終將WRIST 的Z 坐標值與ELBOW 的Z 坐標值做差再除以WRIST 與ELBOW 之間的距離求反三角函數再加上RShoulderPitch 的值將其作為Nao 機器人REblowYaw 的關節值(公式(5))。

Nao 機器人左臂關節與以上算法類似,在這里不再贅述。通過計算出手臂的八個關節角度值傳入Nao機器人的驅動系統來實現運動控制,以及實時的動作模仿。
考慮到Nao 機器人每一個關節能活動的范圍并不能像人一樣大,過大的角度會造成Nao 機器人損壞,所以超過各個關節閾值的角度后,一律傳入最大角度。Nao 機器人各節點活動閾值見表1。

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

圖6 手臂伸展動作

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