楊明 劉洋 李少衛(wèi)
摘 要:隨著互聯(lián)網(wǎng)技術(shù)以及人工智能的不斷發(fā)展,機器人能夠模仿人的動作正越來越受到科技界重視,怎樣將人體各關(guān)節(jié)夾角計算出來并傳給機器人成為一個難點。本文基于Kinect提出了一種骨骼關(guān)節(jié)夾角計算方法,實現(xiàn)了人體關(guān)節(jié)夾角的計算。通過實驗驗證,最終證明該方法可行,具有較好的實際應(yīng)用價值。
關(guān)鍵詞:Kinect 關(guān)節(jié)夾角 人工智能
中圖分類號:TP391.4 文獻標(biāo)識碼:A 文章編號:1672-3791(2018)06(c)-0102-02
隨著社會和科技的進步,機器人的用途越來越廣泛,它的發(fā)展也越來越受到人類重視。一種能夠代替人類在危險環(huán)境中作業(yè)的機器人正變的越來越受重視。這種機器人能夠遠程操作,還能獲取周圍環(huán)境信息,使人能根據(jù)這些信息做出應(yīng)對方法。在突發(fā)狀況需要臨場應(yīng)變的情況下,機器人能夠捕捉人的反應(yīng),應(yīng)對處理各種事情。本文基于Kinect傳感器,通過對人體姿態(tài)的實時識別,獲取人體各個關(guān)節(jié)的三維數(shù)據(jù),然后利用本文提出的方法將人體各個關(guān)節(jié)夾角計算出來并最終傳給控制器,實現(xiàn)機器人模仿人的動作。
1 Kinect骨骼提取
Kinect是一款可以通過USB接口與PC相連接的攝像頭,比一般攝像頭更加智能。它的外設(shè)是由三個鏡頭組成:左側(cè)是紅外線發(fā)射器,中間是用來獲取RGB彩色圖像攝像頭,最右邊是紅外線CMOS攝像機所構(gòu)成的三維結(jié)構(gòu)的光深度感應(yīng)器。Kinect不能直接通過攝像頭追蹤大骨骼點,也不能直接實現(xiàn)骨骼追蹤,因此需要通過深度圖像獲取得到骨骼數(shù)據(jù),而骨骼點的提取則是通過特征值來進行快速分類。將人體從背景中分離出來后要開始識別人體的不同部位,比如頭部、手臂、四肢等相關(guān)聯(lián)的肢體,用不同的顏色標(biāo)注出人體的不同部位然后尋找圖像中較可能是人體的目標(biāo)物體,通過機器學(xué)習(xí)對深度圖像進行評估,來判別出目標(biāo)身體的各個部位,整個流程如圖1所示。最后根據(jù)Kinect追蹤到的21個骨骼點來生成一幅完整的骨架系統(tǒng)。Kinect通過評估彩色攝像頭和紅外攝像頭所得到的每一個像素點來判斷是否為關(guān)節(jié)點,是哪一部分的關(guān)節(jié)點。通過這樣的方法,Kinect通過所有可靠信息對人體各個部位實際所在的位置進行精確評估分析。
2 人體骨骼夾角計算
要實現(xiàn)機器人模仿人體動作就要計算出人體關(guān)節(jié)旋轉(zhuǎn)角度。利用Kinect可以獲得人體各關(guān)節(jié)的三維坐標(biāo),利用這些坐標(biāo)計算人體各關(guān)節(jié)旋轉(zhuǎn)角度。如圖2是Kinect的空間坐標(biāo)系。常用的計算角度法有解析幾何,但其有一個問題:邊界條件問題。使用其進行計算時,需考慮各種特殊情況:平行、重疊、垂直、相交等,直接導(dǎo)致了軟件代碼量爆炸性增長,由此帶來編程和調(diào)試異常困難。這里采用空間向量法計算角度,從而有效避免以上問題。
2.1 手臂夾角計算
本文所用機器人如圖3所示,機器人手臂是由三個舵機組成,分別控制手臂向前、張開、肘關(guān)節(jié)的張合。
先計算手臂肘關(guān)節(jié)的張合角度,以肘關(guān)節(jié)為基本點連接肘關(guān)節(jié)和手、肘關(guān)節(jié)和肩膀,組成兩條向量。按照向量計算夾角公式(1)所示,計算肘關(guān)節(jié)夾角。其中n1代表肘關(guān)節(jié)和肩膀的連接向量,方向指向肩膀,n2代表肘關(guān)節(jié)和手的連接向量,方向指向手。Kinect掃描會得到相應(yīng)骨骼點的三維坐標(biāo),利用三維坐標(biāo)即可得到相應(yīng)空間的向量。
手臂張開角度則按照投影法將n1和n2的向量投影到XOY面上,然后計算其和Y軸的計算夾角。這里需要有一個判斷,當(dāng)手的Y坐標(biāo)小于肩膀的Y坐標(biāo)時需要180°減去該夾角,這是由于舵機計算角度是從中間位置加上傳過來的夾角差值得到的。
手臂前后角度的計算將兩條法向量投影到Y(jié)OZ平面內(nèi),計算其和Z軸的夾角,同樣當(dāng)角度大于90°時候需要180°減去該數(shù)值算出差值傳給舵機。
2.2 腿部夾角計算
本文機器人腿部由5個舵機組成,共有5個自由度。將膝蓋和腳踝當(dāng)做基本點,連接膝蓋和胯部,膝蓋和腳踝,得到兩個向量,方向分別指向胯部和腳踝,其中胯部與手臂的大臂類似,也是兩個舵機分別控制腿部向前和張開運動,按照空間向量法將向量投影到相應(yīng)坐標(biāo)平面即可計算出相應(yīng)的夾角。同樣將腳踝和膝蓋,腳踝和腳分別相連得到兩條向量,方向分別指向膝蓋和腳,這里計算腳踝的夾角,按照公式(1)計算夾角,但是此刻腳踝夾角初始位置是90°,得到相應(yīng)的度數(shù)之后需要將初始90°減掉然后傳給舵機。
3 實驗驗證及結(jié)論
3.1 實驗驗證
連接Kinect設(shè)備,在Kinect代碼中加入角度計算方法,先屏蔽腿部代碼,檢驗手臂各個角度,手臂依次張開特殊角度,如45°、90°、135°等,控制臺打印相關(guān)角度。然后屏蔽手臂計算角度代碼,打開腿部代碼,腿部依次做出特殊角度,打印臺打印相關(guān)角度,如圖4所示。最終計算角度和實際角度偏差不超過5°,滿足要求。
3.2 結(jié)論
本文基于Kinect提出了一種骨骼關(guān)節(jié)夾角計算方法,實現(xiàn)了人體手臂和腿部關(guān)節(jié)夾角的計算。最終通過Kinect實驗驗證,證明該方法可行,將其傳給機器人相關(guān)部位舵機,可實現(xiàn)機器人對人體動作的模仿。
參考文獻
[1] 陳家順.基于人機交互的機器人動作模仿學(xué)習(xí)[D].華南理工大學(xué),2015.
[2] 馬瓊雄.基于視覺的服務(wù)機器人人機交互技術(shù)研究[D].華南理工大學(xué),2014.
[3] 陳雪鋒.基于人體姿態(tài)識別的機器人控制技術(shù)研究[D].武漢科技大學(xué),2014.
[4] 林云漢.智能機器人“人—機—環(huán)境”交互及系統(tǒng)研究[D].武漢科技大學(xué),2017.
[5] 王梅,盧熙昌,屠大維,于遠芳,周華.基于人體動作姿態(tài)識別的機器人仿人運動[J].機械工程學(xué)報,2016, 52(21):26-34.