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