基于物理引擎的機(jī)器人動(dòng)作生成方法
【專利摘要】本發(fā)明公開了一種基于物理引擎的機(jī)器人動(dòng)作生成方法,包括以下步驟:利用3D建模得到機(jī)器人模型,利用物理引擎構(gòu)造模擬地面環(huán)境;設(shè)置機(jī)器人模型的重量、重力加速度和平面摩擦系數(shù),并將其放置在模擬地面環(huán)境中;機(jī)器人模型根據(jù)模擬平臺(tái)生成的動(dòng)作信號(hào)在重力、運(yùn)動(dòng)慣性或摩擦力下執(zhí)行相應(yīng)的動(dòng)作。本發(fā)明采用模擬平臺(tái)、物理引擎和3D建模技術(shù)實(shí)現(xiàn)了在計(jì)算機(jī)內(nèi)部高效模擬機(jī)器人的真實(shí)運(yùn)動(dòng)物理環(huán)境,實(shí)現(xiàn)了原本只有靠真機(jī)測(cè)試才能試驗(yàn)出的運(yùn)動(dòng)效果,提高了機(jī)器人動(dòng)作生成與測(cè)試的效率,可大規(guī)模并行模擬運(yùn)算,且無累積誤差。
【專利說明】
基于物理引擎的機(jī)器人動(dòng)作生成方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及機(jī)器人領(lǐng)域,具體涉及基于物理引擎的機(jī)器人動(dòng)作生成方法。
【背景技術(shù)】
[0002] 現(xiàn)有對(duì)機(jī)器人動(dòng)作的調(diào)試主要是采取手動(dòng)或程序生成動(dòng)作集合,然后將動(dòng)作集合 燒錄到機(jī)器人內(nèi)部并進(jìn)行實(shí)機(jī)測(cè)試才能得出實(shí)際運(yùn)行結(jié)果,具體的操作需要人工一對(duì)一的 對(duì)機(jī)器人動(dòng)作進(jìn)行真實(shí)測(cè)試,但是在長(zhǎng)時(shí)間大量測(cè)試之后,機(jī)器人關(guān)節(jié)與結(jié)構(gòu)件可能會(huì)因 為嚴(yán)重磨損而需要調(diào)整或更換,否則誤差會(huì)累積并影響測(cè)試結(jié)果,而為了避免誤差的累積 對(duì)測(cè)試結(jié)果的影響,需要及時(shí)調(diào)整或更換機(jī)器人的關(guān)節(jié)與結(jié)構(gòu)件。
[0003] 綜上所述,現(xiàn)有對(duì)機(jī)器人動(dòng)作的調(diào)試技術(shù)存在以下缺點(diǎn):(1)效率較低;(2)為了避 免誤差的累積對(duì)測(cè)試結(jié)果的影響需要及時(shí)調(diào)整或更換機(jī)器人的關(guān)節(jié)與結(jié)構(gòu)件。
[0004] 有鑒于此,急需設(shè)計(jì)一種對(duì)機(jī)器人動(dòng)作進(jìn)行調(diào)試的新方法,實(shí)現(xiàn)高效且無累積誤 差的對(duì)機(jī)器人動(dòng)作進(jìn)行調(diào)試。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)問題是提供一種對(duì)機(jī)器人動(dòng)作進(jìn)行調(diào)試的新方法,實(shí)現(xiàn)高 效且無累積誤差的對(duì)機(jī)器人動(dòng)作進(jìn)行調(diào)試的問題。
[0006] 為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是提供一種基于物理引擎的機(jī) 器人動(dòng)作生成方法,包括以下步驟:
[0007] 利用3D建模得到機(jī)器人模型,利用物理引擎構(gòu)造模擬地面環(huán)境;
[0008] 設(shè)置機(jī)器人模型的重量、重力加速度和平面摩擦系數(shù),并將其放置在模擬地面環(huán) 境中;
[0009] 通過模擬平臺(tái)生成的動(dòng)作信號(hào)控制機(jī)器人模型在重力、運(yùn)動(dòng)慣性或摩擦力下執(zhí)行 相應(yīng)的動(dòng)作。
[0010] 在上述技術(shù)方案中,在同一個(gè)所述模擬地面環(huán)境中放置有多個(gè)所述機(jī)器人模型。
[0011] 在上述技術(shù)方案中,所述動(dòng)作信號(hào)包括但不限于:每一幀各關(guān)節(jié)旋轉(zhuǎn)角度與移動(dòng) 位置、每一幀各足末端相對(duì)于足坐標(biāo)系的坐標(biāo)位置、每一幀各足末端相對(duì)于機(jī)身中心坐標(biāo) 系的坐標(biāo)位置、每一幀各足末端相對(duì)于虛擬場(chǎng)地平面坐標(biāo)系的坐標(biāo)位置、各足獨(dú)立周期在 起止時(shí)間內(nèi)的坐標(biāo)位置列表以及頭部旋轉(zhuǎn)信號(hào)。
[0012] 在上述技術(shù)方案中,所述物理引擎包括但不限于Havok和PhysX。
[0013] 在上述技術(shù)方案中,所述模擬地面環(huán)境包括地形和地面上的物體。
[0014] 在上述技術(shù)方案中,所述機(jī)器人模型包括但不限于:六足步行機(jī)器人、機(jī)械臂、人 形機(jī)器人和多足機(jī)器人。
[0015] 本發(fā)明,采用模擬平臺(tái)、物理引擎和3D建模技術(shù)實(shí)現(xiàn)了在計(jì)算機(jī)內(nèi)部高效模擬機(jī) 器人的真實(shí)運(yùn)動(dòng)物理環(huán)境,實(shí)現(xiàn)了原本只有靠真機(jī)測(cè)試才能試驗(yàn)出的運(yùn)動(dòng)效果,提高了機(jī) 器人動(dòng)作生成與測(cè)試的效率,可大規(guī)模并行模擬運(yùn)算,且無累積誤差。
【附圖說明】
[0016] 圖1為本發(fā)明實(shí)施例提供的基于物理引擎的機(jī)器人動(dòng)作生成方法流程圖。
【具體實(shí)施方式】
[0017] 下面結(jié)合說明書附圖和【具體實(shí)施方式】對(duì)本發(fā)明做出詳細(xì)的說明。
[0018] 本發(fā)明實(shí)施例提供了一種基于物理引擎的機(jī)器人動(dòng)作生成方法,如圖1所示,包括 以下步驟:
[0019]步驟101、利用3D建模得到機(jī)器人模型,利用物理引擎(例如Havok和PhysX)構(gòu)造模 擬地面環(huán)境。
[0020]步驟102、設(shè)置機(jī)器人模型的重量、重力加速度和平面摩擦系數(shù),并將其放置在模 擬地面環(huán)境中。
[0021] 步驟103、通過模擬平臺(tái)生成的動(dòng)作信號(hào)控制機(jī)器人模型在重力、運(yùn)動(dòng)慣性或摩擦 力下執(zhí)行相應(yīng)的動(dòng)作。
[0022] 在同一個(gè)模擬地面環(huán)境中放置有多個(gè)機(jī)器人模型。上述機(jī)器人模型包括但不限 于:六足步行機(jī)器人、機(jī)械臂、人形機(jī)器人和多足機(jī)器人。
[0023] 上述動(dòng)作信號(hào)包括但不限于:每一幀各關(guān)節(jié)旋轉(zhuǎn)角度與移動(dòng)位置、每一幀各足末 端相對(duì)于足坐標(biāo)系的坐標(biāo)位置、每一幀各足末端相對(duì)于機(jī)身中心坐標(biāo)系的坐標(biāo)位置、每一 幀各足末端相對(duì)于虛擬場(chǎng)地平面坐標(biāo)系的坐標(biāo)位置、各足獨(dú)立周期在起止時(shí)間內(nèi)的坐標(biāo)位 置列表以及頭部旋轉(zhuǎn)信號(hào)。
[0024] 上述每一幀指的是機(jī)器人整個(gè)動(dòng)作周期內(nèi)的每一幀,各足獨(dú)立周期指的是以各足 為單位,獨(dú)立做自己的動(dòng)作,不受其他足的干涉,例如:1號(hào)足從0秒開始,以3秒為周期,每周 期平均分為9幀,做一個(gè)向上抬起-向前移動(dòng)落地-向后蹬地的循環(huán)動(dòng)作;2號(hào)足從0.8秒開 始,以5秒為周期,每周期平均分為15幀,做一個(gè)向上抬起-左右擺動(dòng)兩次-落回原位的動(dòng)作。 1號(hào)足和2號(hào)足的動(dòng)作互不相干,但機(jī)器人內(nèi)部程序根據(jù)這兩個(gè)足的獨(dú)立動(dòng)作計(jì)算出整個(gè)機(jī) 器人每一幀的姿態(tài)并執(zhí)行,因此從機(jī)器人整體看來則是一套完整動(dòng)作。
[0025] 上述機(jī)身中心坐標(biāo)系為以機(jī)器人的機(jī)身圓心點(diǎn)為坐標(biāo)原點(diǎn),經(jīng)坐標(biāo)原點(diǎn)平行于機(jī) 身平面并垂直于機(jī)器人頭部的攝像頭所在平面的連接線為Y軸,經(jīng)坐標(biāo)原點(diǎn)并垂直于Y軸方 向的軸為X軸,經(jīng)坐標(biāo)原點(diǎn)并垂直于機(jī)身平面的軸為Z軸建立起來的坐標(biāo)系。
[0026] 上述虛擬場(chǎng)地平面坐標(biāo)系為以虛擬場(chǎng)地平面的中心點(diǎn)或邊緣的某個(gè)點(diǎn)為坐標(biāo)原 點(diǎn),虛擬場(chǎng)地平面為X-Y平面,經(jīng)坐標(biāo)原點(diǎn)并垂直于X-Y平面的軸為Z軸建立起來的坐標(biāo)系, 虛擬場(chǎng)地平面坐標(biāo)系用于機(jī)器人根據(jù)動(dòng)作信號(hào)尋找目標(biāo)移動(dòng)位置,計(jì)算移動(dòng)路徑。
[0027] 上述足坐標(biāo)系為以每足根部與機(jī)身連接點(diǎn)為坐標(biāo)原點(diǎn),經(jīng)坐標(biāo)原點(diǎn)的機(jī)身切線為 X軸,以坐標(biāo)原點(diǎn)與機(jī)身圓心點(diǎn)的連接延長(zhǎng)線為Y軸、經(jīng)坐標(biāo)原點(diǎn)垂直于X軸和Y軸的軸為Z軸 的坐標(biāo)系。
[0028] 在本發(fā)明中,以在標(biāo)準(zhǔn)站立姿態(tài)下各足末端的位置為參照,計(jì)算出各足末端的平 移直線路徑,由于在標(biāo)準(zhǔn)站立姿態(tài)下,足末端和機(jī)身圓心點(diǎn)的相對(duì)位置是固定的,所以在機(jī) 身位于任意位置時(shí),都能算出各足末端的坐標(biāo),所以也就能通過機(jī)身圓心點(diǎn)平移路徑計(jì)算 出各足末端的平移路徑。
[0029] 通過坐標(biāo)變換算法建立足坐標(biāo)系與機(jī)身中心坐標(biāo)系的對(duì)應(yīng)關(guān)系具體包括以下步 驟:
[0030] 通過機(jī)器人旋轉(zhuǎn)得到機(jī)身中心坐標(biāo)系(x,y)在足坐標(biāo)系中的坐標(biāo)(x',y ')為: 丨 - sm 0} fx C〇〇31] }/\
[0032] 其中,0為機(jī)身圓心點(diǎn)和機(jī)器人頭部攝像頭方向的連線與機(jī)身圓心點(diǎn)和足根部在 機(jī)身連接點(diǎn)連線的夾角;
[0033] 通過機(jī)器人旋轉(zhuǎn)之后再進(jìn)行平移得到機(jī)身中心坐標(biāo)系(x,y,z)在足坐標(biāo)系中的坐 標(biāo)(x",y",z"),其中x" =x' ;y" =y'+r;r為機(jī)身半徑,即機(jī)身圓心點(diǎn)到足根部在機(jī)身連接點(diǎn) 的距離;由于z軸未發(fā)生變換,所以z"=z;
[0034] 利用上述方法,通過機(jī)身圓心點(diǎn)的移動(dòng)推算出移動(dòng)過程中各足末端位置的對(duì)應(yīng)坐 標(biāo)。
[0035] 上述模擬地面環(huán)境包括地形(平面或者凹凸不平)和地面上的物體等,地面上的物 體可以屬于地面環(huán)境的一部分(不可移動(dòng))或獨(dú)立物體(受到外力影響后可移動(dòng),比如能被 撞倒的柱子),設(shè)定好模擬地面環(huán)境中各物體和機(jī)器人模型的重量、重力加速度和平面摩擦 系數(shù)等,然后將建立的機(jī)器人模型放置在模擬地面環(huán)境中,通過模擬平臺(tái)生成的動(dòng)作信號(hào) 控制機(jī)器人模型在重力、運(yùn)動(dòng)慣性或摩擦力下執(zhí)行相應(yīng)的動(dòng)作,機(jī)器人模型在物理引擎作 用下自行遵循物理定律。
[0036]本發(fā)明采用模擬平臺(tái)、物理引擎和3D建模技術(shù)實(shí)現(xiàn)了在計(jì)算機(jī)內(nèi)部高效模擬機(jī)器 人的真實(shí)運(yùn)動(dòng)物理環(huán)境,實(shí)現(xiàn)了原本只有靠真機(jī)測(cè)試才能試驗(yàn)出的運(yùn)動(dòng)效果,提高了機(jī)器 人動(dòng)作生成與測(cè)試的效率,可大規(guī)模并行模擬運(yùn)算,且無累積誤差。
[0037]本發(fā)明不局限于上述最佳實(shí)施方式,任何人應(yīng)該得知在本發(fā)明的啟示下作出的結(jié) 構(gòu)變化,凡是與本發(fā)明具有相同或相近的技術(shù)方案,均落入本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 基于物理引擎的機(jī)器人動(dòng)作生成方法,其特征在于,包括以下步驟: 利用3D建模得到機(jī)器人模型,利用物理引擎構(gòu)造模擬地面環(huán)境; 設(shè)置機(jī)器人模型的重量、重力加速度和平面摩擦系數(shù),并將其放置在模擬地面環(huán)境中; 通過模擬平臺(tái)生成的動(dòng)作信號(hào)控制機(jī)器人模型在重力、運(yùn)動(dòng)慣性或摩擦力下執(zhí)行相應(yīng) 的動(dòng)作。2. 如權(quán)利要求1所述的方法,其特征在于,在同一個(gè)所述模擬地面環(huán)境中放置有多個(gè)所 述機(jī)器人模型。3. 如權(quán)利要求1所述的方法,其特征在于,所述動(dòng)作信號(hào)包括但不限于:每一幀各關(guān)節(jié) 旋轉(zhuǎn)角度與移動(dòng)位置、每一幀各足末端相對(duì)于足坐標(biāo)系的坐標(biāo)位置、每一幀各足末端相對(duì) 于機(jī)身中心坐標(biāo)系的坐標(biāo)位置、每一幀各足末端相對(duì)于虛擬場(chǎng)地平面坐標(biāo)系的坐標(biāo)位置、 各足獨(dú)立周期在起止時(shí)間內(nèi)的坐標(biāo)位置列表以及頭部旋轉(zhuǎn)信號(hào)。4. 如權(quán)利要求1所述的方法,其特征在于,所述物理引擎包括但不限于Havok和PhysX。5. 如權(quán)利要求1所述的方法,其特征在于,所述模擬地面環(huán)境包括地形和地面上的物 體。6. 如權(quán)利要求1所述的方法,其特征在于,所述機(jī)器人模型包括但不限于:六足步行機(jī) 器人、機(jī)械臂、人形機(jī)器人和多足機(jī)器人。
【文檔編號(hào)】G06F17/50GK105930588SQ201610251372
【公開日】2016年9月7日
【申請(qǐng)日】2016年4月21日
【發(fā)明人】孫天齊
【申請(qǐng)人】奇弩(北京)科技有限公司