亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種實時模仿人體上半身動作的人形機器人控制方法與流程

文檔序號:11078620閱讀:1259來源:國知局
一種實時模仿人體上半身動作的人形機器人控制方法與制造工藝

本發(fā)明屬于自動化和人機交互領(lǐng)域,具體涉及一種實時模仿人體上半身動作的人形機器人控制方法。



背景技術(shù):

目前,大多數(shù)研究專注于機器人對人體上下肢動作的模仿以及模仿時的全身平衡控制,尚沒有系統(tǒng)地控制人體上肢、頭部轉(zhuǎn)動和手掌開合的模仿方法,如果能系統(tǒng)實現(xiàn)這些模仿,則功能更為完善。具有頭部模仿功能的機器人可通過利用控制機器人頭部攝像機轉(zhuǎn)向,改變攝像頭視野,從而擴大機器人視野,在更大范圍內(nèi)尋找操作對象,實現(xiàn)相應(yīng)地作業(yè)。而手部模仿將使機器人能夠完成抓取、釋放等動作,從而使得通過模仿技術(shù)來操縱機器人完成某種任務(wù)成為可能。



技術(shù)實現(xiàn)要素:

為了克服現(xiàn)有機器人模仿中無法完全模仿上半身動作的不足,本發(fā)明提出一種實時模仿人體上半身動作的人形機器人控制方法,包括上肢、手部和頭部。

為了實現(xiàn)上述目的,采用的技術(shù)方案如下。

一種實時模仿人體上半身動作的人形機器人控制方法,其包括如下步驟:

1)通過Kinect傳感器獲取人體骨骼信息、彩色信息和深度信息;

2)從骨骼信息中提取上肢各關(guān)節(jié)的三維坐標(biāo),通過幾何分析方法計算出人體上肢左右手臂的關(guān)節(jié)角度;

3)利用彩色信息和深度信息作為輸入,通過Kinect SDK中的面部追蹤算法獲取人的面部轉(zhuǎn)動角度;

4)在深度圖像中分割出人的手部并判斷手掌開合狀態(tài);

5)用步驟2)-4)計算出的人體上肢左右手臂角度、頭部轉(zhuǎn)動角度和判斷出的手部狀態(tài)驅(qū)動機器人完成與人相同的動作。

進一步地,所述步驟2)使用幾何分析方法,具體是提取人的肩部、肘部、手部、髖部的三維坐標(biāo),用坐標(biāo)構(gòu)成向量,分析手臂運動過程中關(guān)節(jié)角度與向量之間的關(guān)系,找出能代表關(guān)節(jié)角度的向量夾角,用數(shù)量積公式求出向量夾角。

進一步地,所述步驟3)具體是:使用Kinect SDK的面部追蹤算法,輸入彩色和深度信息,實時識別和追蹤人臉,存儲追蹤結(jié)果并提取人臉轉(zhuǎn)動角度。

進一步地,步驟4)使用手掌分割方法分割出人的手部并判斷手掌開合狀態(tài),具體是利用深度信息獲取手部的深度區(qū)間[DMIN,DHAND]從而將手部分割出來,用像素點的個數(shù)判斷是否檢測到手部,并使用手部在深度圖中的坐標(biāo)定位手部的位置,判斷分割出的部分是屬于左手還是右手;同時,將手部開合狀態(tài)判斷轉(zhuǎn)化為手掌拳頭面積比較,為了使面積差異更為明顯,繪制包圍手部的最小圓,通過比較最小圓面積S和設(shè)定閾值S1的大小判斷手部的開合狀態(tài),如果S>1,則手掌狀態(tài)為開,否則為合;結(jié)合左右手判斷和手掌拳頭判斷,可區(qū)分雙手四種狀態(tài):左手開、左手閉、右手開、右手閉。

與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點和技術(shù)效果:本發(fā)明能系統(tǒng)地構(gòu)成人形機器人模仿人上半身動作,克服現(xiàn)有機器人模仿中無法完全模仿上半身動作的不足。本發(fā)明基于向量運算的幾何分析方法無需建模即可計算出上肢左右手臂的關(guān)節(jié)角度;基于面部識別的角度獲取方式解決了機器人模仿人頭部轉(zhuǎn)動的問題;利用深度信息進行手掌分割的方法簡便地判斷人手部狀態(tài)。

附圖說明

圖1為本實例中一種實時模仿人體上半身動作的人形機器人控制方法的流程圖;

圖2為左上肢各關(guān)節(jié)角度計算示意圖;

圖3為Nao機器人的左臂關(guān)節(jié)各自由度及其范圍示意圖;

圖4為頭部轉(zhuǎn)動角度示意圖;

圖5為面部識別追蹤流程圖;

圖6為手部分割示意圖;

圖7為左右手檢測的矩形框;

圖8為包圍手部的最小圓以及手掌拳頭面積比較;

圖9為手部檢測流程圖。

具體實施方式

下面結(jié)合附圖和實例對本發(fā)明的具體實施作進一步說明,但本發(fā)明的實施和保護不限于此。

圖1所示的實時模仿人體上半身動作的人形機器人控制方法主要由圖像數(shù)據(jù)采集和預(yù)處理1,基于向量法的幾何分析、Kinect SDK面部追蹤算法、手掌檢測算法2,人形機器人3三個執(zhí)行部分組成。先通過Kinect傳感器獲取骨骼信息、彩色信息和深度信息,完成圖像數(shù)據(jù)采集和預(yù)處理,再通過基于向量法的幾何分析、Kinect SDK面部追蹤算法、手掌檢測算法獲取相關(guān)角度和手部開合狀態(tài)信息,將關(guān)節(jié)角度和手部狀態(tài)等數(shù)據(jù)傳遞給機器人,實現(xiàn)上半身模仿。

圖2以Nao機器人左臂為例給出了求解關(guān)節(jié)角度的方法。當(dāng)機器人雙臂向前平舉時各角度為0。推導(dǎo)過程在Kinect坐標(biāo)系下進行,公式考慮機器人關(guān)節(jié)角度的正負(fù)限制,機器人關(guān)節(jié)活動范圍如圖3所示。從Kinect的角度看,Kinect坐標(biāo)系以攝像頭為原點,x軸指向左側(cè),y軸指向上方,z軸指向前方。為便于描述,將需要使用的點用數(shù)字代替:左肩-1,右肩-2,左肘-3,左手-4,左髖-5,右髖-6;用表示從點x到y(tǒng)的向量;關(guān)節(jié)角度LShoulderRoll(左肩翻滾角)、LShoulderPitch(左肩俯仰角)、LElbowRoll(左肘翻滾角)、LElbowYaw(左肘偏航角)依次用θSR,θSP,θER,θEY表示。

θSR:引入一個從人體左髖部指向右髖部的向量θSR即為從左肩指向左肘的向量與該向量的夾角:

θSP:設(shè)則θSP可以表示為:

θER:該角度可以直接由上臂和下臂的夾角求得:

θEY:該角度可認(rèn)為是由左肩、右肩、左肘三點構(gòu)成的平面和由左肩、左肘、左手三點構(gòu)成的平面的夾角,這兩個平面的法向量分別用表示,

設(shè)則:

Kinect SDK中的面部追蹤算法支持對人臉進行實時識別和跟蹤,以彩色圖像和深度圖像作為輸入,可以估算頭部姿態(tài)。圖4為人的頭部的三種轉(zhuǎn)動角度:俯仰角(pitch)、翻滾角(roll)和偏航角(yaw),這三種角度在Kinect坐標(biāo)系中定義。追蹤步驟如下:啟動Kinect后初始化變量,獲取深度數(shù)據(jù)、彩色數(shù)據(jù)以及頸部和頭部的三維坐標(biāo),作為面部追蹤的輸入,并開始追蹤。如果沒有追蹤到,那么追蹤繼續(xù)執(zhí)行;如果追蹤到了面部,生成的數(shù)據(jù)將被存儲。提取數(shù)據(jù)中的頭部姿態(tài),其輸出結(jié)果的單位為角度,根據(jù)機器人關(guān)節(jié)度數(shù)設(shè)置的需要可進行角度-弧度的轉(zhuǎn)換。其流程如圖所示。在更明亮的場景下圖像質(zhì)量更好,識別率更高,在臉部可識別范圍內(nèi),臉部離Kinect更近,識別效果也更好。面部識別追蹤流程如圖5所示。

對于機器人手部控制,首先在深度圖像中遍歷所有像素點尋找距離Kinect最近的點,其深度值為DMIN。在DMIN上加上一個合適的深度值h,得到比人手部最大深度像素點的深度更大的深度值DHAND

DHAND=DMIN+h,

根據(jù)深度區(qū)間[DMIN,DHAND]可將人的手部與身體其他部位區(qū)別開從而將手部分割出來,如圖6所示。利用左右手在深度圖中的坐標(biāo),設(shè)置兩個各自能夠完全包含左手和右手的矩形框,對深度圖中深度值介于DMIN和DHAND之間并且位于矩形框中部分的像素點進行計數(shù),得到左矩形框和右矩形框中的點數(shù)分別為N1和N2。我們可以根據(jù)以下情況判斷是左手被檢測到還是右手被檢測到:

如果有左手或右手被檢測到時,摳出手形,如圖7所示。為避免當(dāng)手部距離身體其他部位太近時其他部位也會被檢測到,利用3維坐標(biāo)計算手部與身體的距離d,當(dāng)d小于某個閾值d1時,將暫停手部檢測。在摳出手形后要進行手部狀態(tài)判斷,換句話說,就是區(qū)分此時手部展示的是手掌還是拳頭。因為目標(biāo)只是判斷手部的開合兩種狀態(tài),因而問題可以轉(zhuǎn)化為比較手掌和拳頭的面積大小,為了使兩種面積差異更明顯,使用Opencv庫函數(shù)畫出包圍手部的最小圓,通過比較最小圓的面積S來判斷手部狀態(tài),圖8展示了兩手分別為手掌和拳頭時的面積比較。當(dāng)S大于某一個閾值S1時判定為手掌,否則為拳頭。記左手和右手某種狀態(tài)連續(xù)出現(xiàn)次數(shù)分別為t1和t2,為了提高準(zhǔn)確度,只有當(dāng)t1或t2大于閾值a時才會被最終確定。整個流程如圖9所示。根據(jù)上述檢測方法,可以得到4種狀態(tài):左手開、左手閉、右手開、右手閉。

將上述求得的角度和手部狀態(tài)傳送給機器人,從而控制機器人模仿人體上半身動作,實現(xiàn)本發(fā)明的方法。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1