本發(fā)明屬于智能機(jī)器人領(lǐng)域,主要內(nèi)容是基于人體運(yùn)動捕捉數(shù)據(jù),將人體的步態(tài)模式運(yùn)用到仿人機(jī)器人身上,實(shí)現(xiàn)仿人機(jī)器人的穩(wěn)定行走。
背景技術(shù):
:目前仿人機(jī)器人的研究受到了越來越多的追捧,各個(gè)國家都投入相當(dāng)多的人力、物力來進(jìn)行研究。各國仿人機(jī)器人的研究重點(diǎn)之一是如何實(shí)現(xiàn)仿人機(jī)器人穩(wěn)定的行走。仿人機(jī)器人步態(tài)行走的優(yōu)劣可以從一定程度上反映出仿人機(jī)器人研究水平的高低。目前眾多的仿人機(jī)器人步態(tài)規(guī)劃方法大致可以分為以下幾類:①基于簡化模型的步態(tài)規(guī)劃方法。這種方法的主要思路是忽略機(jī)器人存在的一些物理特征,抓住其主要特征并且將其簡化成基本的模型,例如連桿模型、倒立擺模型、桌子—小車模型等,然后基于這些簡單模型對機(jī)器人進(jìn)行步態(tài)規(guī)劃。這些模型存在的主要問題也正是因?yàn)槠浜雎缘袅藱C(jī)器人本身存在非主要特性,因此構(gòu)建出的簡化模型不能充分反映出機(jī)器人的運(yùn)動學(xué)以及動力學(xué)特征,從而只能復(fù)現(xiàn)嚴(yán)格特定條件下的機(jī)器人的步態(tài),具有很大的局限性。②基于智能計(jì)算的步態(tài)規(guī)劃算法。比如基于神經(jīng)網(wǎng)絡(luò)規(guī)劃法、模糊邏輯規(guī)劃法、遺傳算法規(guī)劃法等?;谥悄苡?jì)算的步態(tài)規(guī)劃算法,由于其強(qiáng)大的學(xué)習(xí)能力、自適應(yīng)和容錯(cuò)能力吸引了眾多研究者,但它本身也存在著學(xué)習(xí)樣本不確定、最終算法收斂性不確定等問題。③基于能耗優(yōu)化的步態(tài)規(guī)劃方法。這種方法是將機(jī)器人的穩(wěn)定性作為約束條件,將機(jī)器人的能量消耗函數(shù)最優(yōu)值作為目標(biāo)來規(guī)劃仿人機(jī)器人的步態(tài)。這種方法由于需要建立精度較高的仿人機(jī)器人運(yùn)動學(xué)以及動力學(xué)模型,因此常常會帶來計(jì)算量大且不能實(shí)時(shí)計(jì)算的問題,尤其是在模型復(fù)雜的情況下,甚至存在不可解情況。④基于人體運(yùn)動捕捉數(shù)據(jù)的仿人機(jī)器人步態(tài)規(guī)劃。這種方法是通過研究人體的行走步態(tài)特征,并將其運(yùn)用到仿人機(jī)器人身上。該種方法不僅能夠簡化步態(tài)規(guī)劃的難度,讓仿人機(jī)器人獲得類人的行走步態(tài),同時(shí)能夠?qū)?fù)雜的動作進(jìn)行規(guī)劃,因此此種方法是目前仿人機(jī)器人步態(tài)規(guī)劃研究的熱點(diǎn)。本發(fā)明專利的目的就是提出一種基于人體運(yùn)動捕捉數(shù)據(jù)的仿人機(jī)器人步態(tài)規(guī)劃方法,探究如何將人體的運(yùn)動模式運(yùn)用到仿人機(jī)器人身上以達(dá)到實(shí)現(xiàn)仿人機(jī)器人穩(wěn)定行走的目的。技術(shù)實(shí)現(xiàn)要素:本發(fā)明提出一種基于人體運(yùn)動捕捉數(shù)據(jù)的仿人機(jī)器人步態(tài)規(guī)劃方法。整個(gè)方法的架構(gòu)如圖1所示,主要包括以下幾個(gè)方面。首先,獲取人體的運(yùn)動捕捉數(shù)據(jù)并且對人體的運(yùn)動進(jìn)行分析;然后,對原數(shù)據(jù)進(jìn)行數(shù)學(xué)預(yù)處理,生成人體運(yùn)動的步態(tài)模式;其次將人體運(yùn)動步態(tài)模式數(shù)據(jù)進(jìn)行相應(yīng)的格式轉(zhuǎn)化,生成適用于仿人機(jī)器人的步態(tài)模式數(shù)據(jù)并將其直接運(yùn)用到仿人機(jī)器人身上;同時(shí),基于zmp算法對仿人機(jī)器人的穩(wěn)定性進(jìn)行判定并且實(shí)時(shí)調(diào)整仿人機(jī)器人的關(guān)節(jié)角度以達(dá)到仿人機(jī)器人穩(wěn)定行走的目的。下面將逐個(gè)介紹具體的實(shí)施方法。此次采用的是來自于卡耐基梅隆大學(xué)運(yùn)動實(shí)驗(yàn)室的人體運(yùn)動捕捉數(shù)據(jù)。該實(shí)驗(yàn)室采用光學(xué)式運(yùn)動捕捉設(shè)備,通過粘貼在人體上的marker,每秒采集120幀的人體運(yùn)動捕捉數(shù)據(jù),輸出的數(shù)據(jù)格式為.asf文件和.amc文件。其中.asf文件定義了人體骨架的拓?fù)浣Y(jié)構(gòu),其樹狀圖如圖2所示,在motionbuilder中的骨骼圖如圖3所示;.amc文件定義了與.asf文件相對應(yīng)的“子關(guān)節(jié)”局部坐標(biāo)系相對于“父關(guān)節(jié)”局部坐標(biāo)系的每一幀歐拉角(xyz)。人體運(yùn)動過程由成百上千個(gè)關(guān)節(jié)自由度同時(shí)作用而成,為了將人體關(guān)節(jié)角度數(shù)據(jù)運(yùn)用到仿人機(jī)器人身上,需要對人體自由度進(jìn)行精簡。為此定義了下肢左右腿各6個(gè)自由度,如圖4所示,具體關(guān)節(jié)角度定義如下:右踝橫滾角θ1,右踝俯仰角θ2,右膝俯仰角θ3,右髖俯仰角θ4,右髖橫滾角θ5,右髖偏航角θ6;左踝橫滾角θ7,左踝俯仰角θ8,左膝俯仰角θ9,左髖俯仰角θ10,左髖橫滾角θ11,左髖偏航角θ12。隨后在webots仿真平臺中搭建了如圖5所示的包含以上自由度的仿人機(jī)器人模型,模型高度及骨骼比例與.asf文件中定義的骨骼模型一致。由于.amc文件定義的關(guān)節(jié)角度是每一幀“子關(guān)節(jié)”局部坐標(biāo)系相對于“父關(guān)節(jié)”局部坐標(biāo)系的歐拉角(xyz),如圖6所示。但是仿人機(jī)器人使用的關(guān)節(jié)角度為笛卡爾坐標(biāo)系下關(guān)于自身局部坐標(biāo)系轉(zhuǎn)過的角度(關(guān)節(jié)空間中),因此需要實(shí)現(xiàn)從人體運(yùn)動捕捉數(shù)據(jù)到仿人機(jī)器人使用數(shù)據(jù)格式的匹配。由于人體骨骼模型和仿人機(jī)器人模型具有相同的自由度數(shù)和關(guān)節(jié)結(jié)構(gòu),并且人體骨骼長度和仿人機(jī)器人對應(yīng)部位幾何長度相等,因此可以通過關(guān)節(jié)的絕對坐標(biāo)相等求解仿人機(jī)器人所有關(guān)節(jié)角度,完成關(guān)節(jié)角度換算。建立人體骨骼運(yùn)動學(xué)模型,其連桿模型結(jié)構(gòu)如圖7所示。根據(jù)此模型,按照以下公式求解左踝絕對坐標(biāo):其中r3×3=[parentxchild,parentychild,parentzchild]代表子坐標(biāo)系在父坐標(biāo)系中x、y、z軸的位置矢量,描述了子坐標(biāo)系的姿態(tài);p3×1代表子坐標(biāo)系原點(diǎn)在父坐標(biāo)系中的位置矢量,描述了子坐標(biāo)系的位置。vo=[0,0,0,1]t代表關(guān)節(jié)在其局部坐標(biāo)系中的坐標(biāo)。分別描述了根節(jié)點(diǎn)相對于世界坐標(biāo)系、髖關(guān)節(jié)相對于根節(jié)點(diǎn)、膝關(guān)節(jié)相對于髖關(guān)節(jié)、踝關(guān)節(jié)相對于膝關(guān)節(jié)的齊次旋轉(zhuǎn)矩陣。同時(shí)求得膝關(guān)節(jié)和髖關(guān)節(jié)的絕對坐標(biāo):利用同樣的運(yùn)動學(xué)建模方法計(jì)算出仿人機(jī)器人模型對應(yīng)關(guān)節(jié)的絕對坐標(biāo):pla=m11(θ11)m12(θ12)m10(θ10)m9(θ9)m7(θ7)m8(θ8)elaplk=m11(θ11)m12(θ12)m10(θ10)m9(θ9)elkplh=m11(θ11)m12(θ12)m10(θ10)elh其中mi(θi)用來描述連桿間的轉(zhuǎn)換矩陣(d-h表示法),ela,elk,elh用來代表關(guān)節(jié)在自身局部坐標(biāo)系中的坐標(biāo)(0,0,0,1)t。由于仿人機(jī)器人的關(guān)節(jié)角度都有一定的域度,因此定義了所求每個(gè)自由度的取值范圍,如表1所示。表1為關(guān)節(jié)自由度取值范圍表關(guān)節(jié)角(度)θ7θ8θ9θ10θ11θ12max25.21260.738130.07151.05230.191.107min-25.212-60.738-1-51.939-21.03-30.942基于以上求出的各關(guān)節(jié)絕對坐標(biāo),和關(guān)節(jié)角度的約束條件,求得θ7,θ8,θ9,θ10,θ11,θ12。利用此種運(yùn)動學(xué)建模方法可以實(shí)現(xiàn)從人體運(yùn)動捕捉數(shù)據(jù)到仿人機(jī)器人關(guān)節(jié)角度數(shù)據(jù)的轉(zhuǎn)換。人體的直線行走是一個(gè)多周期往復(fù)的過程,因此將人體的步態(tài)模式分成三個(gè)階段,如圖8所示:起步至左腳跟著地,左腳跟著地到下一次左腳跟著地,左腳跟著地至終止。參考初始的人體運(yùn)動捕捉數(shù)據(jù)之后,定義每一階段的時(shí)長分別是第一階段90幀,第二階段160幀,第三階段80幀。在確定了步態(tài)模式階段后需要對處理后的人體運(yùn)動捕捉數(shù)據(jù)進(jìn)行數(shù)學(xué)優(yōu)化,主要包括以下幾個(gè)方面:首先是步態(tài)模式的提取,利用腳后跟落地時(shí)角加速度的突變點(diǎn)為分割點(diǎn),分割出步態(tài)模式的三個(gè)階段,即起步、行走、終止;其次是歸一化,因?yàn)椴綉B(tài)模式因人而異,因此要將每個(gè)階段不同人的步態(tài)時(shí)間進(jìn)行歸一化,統(tǒng)一至之前定義的時(shí)長;然后去噪,對比關(guān)節(jié)角度曲線,對于誤差較大的曲線作舍去處理;對每一階段的多組角度曲線作取平均處理;之后對平均值曲線進(jìn)行濾波,針對人體關(guān)節(jié)角度曲線連續(xù),波動幅度不大的特點(diǎn),采用算數(shù)平均值濾波方法,對n個(gè)連續(xù)采樣值相加,然后取其算術(shù)平均值作為本次測量的濾波值,濾波的主要目的是平滑關(guān)節(jié)角度曲線,以便于仿人機(jī)器人的角度不會有突變;最后,為了循環(huán)利用第二階段作為周期步態(tài),需要保證首尾角度,加速度以及加加速度的一致性,因此采用hermite對第二階段的最后20幀進(jìn)行插值,hermite插值能夠三次導(dǎo)數(shù)即加加速度的連續(xù)性。在對人體運(yùn)動捕捉數(shù)據(jù)進(jìn)行了以上的處理后,若直接運(yùn)用于仿人機(jī)器人,會發(fā)現(xiàn)仿人機(jī)器人的穩(wěn)定性較差,因此需要基于zmp算法對仿人機(jī)器人的關(guān)節(jié)角度進(jìn)行微調(diào)。人通過前庭、內(nèi)耳等多器官合作調(diào)整身體姿態(tài)以達(dá)到穩(wěn)定行走的目的。同樣,仿人機(jī)器人可以使用zmp作為一個(gè)控制參數(shù)來對其髖關(guān)節(jié)角度進(jìn)行微調(diào),以達(dá)到提高仿人機(jī)器人魯棒性的目的。為了測量出zmp的位置,仿人機(jī)器人的鞋底設(shè)置一層1cm厚的海綿,然后在海綿上貼了12個(gè)fsr(力傳感器),如圖9所示。當(dāng)仿人機(jī)器人鞋底不同部分受力時(shí)發(fā)生作用的力傳感器如圖10所示。仿人機(jī)器人單足支撐時(shí)的zmp計(jì)算公式如下所示:其中pjx表示第j個(gè)壓力傳感器相對于鞋底中心的位置矢量,fjy表示第j個(gè)壓力傳感器在豎直方向上的壓力值。雙足支撐時(shí)的zmp計(jì)算公式如下:prx、prz表示右腳板底上測量的zmp位置,plx、plz表示左腳板底上測量的zmp位置。fry、fly分別表示右腳和左腳受到的地面作用力?;趜mp的仿人機(jī)器人穩(wěn)定性控制流程圖,如圖11所示。首先判斷是單足支撐還是雙足支撐,分別采用不同的zmp計(jì)算方法;然后計(jì)算出當(dāng)前zmp點(diǎn)距離期望zmp點(diǎn)的距離,如果在期望范圍內(nèi),則不做調(diào)整,如果超出了期望范圍則對仿人機(jī)器人的髖關(guān)節(jié)做反方向調(diào)整以達(dá)到提高仿人機(jī)器人魯棒性的目的。為了讓仿人機(jī)器人實(shí)現(xiàn)類人行走,因此為了評估人類步態(tài)與機(jī)器人步態(tài)的相似性,利用相似性函數(shù)用來比較對應(yīng)的連桿姿態(tài),計(jì)算公式如下所示:[h1,h2,...,hn]t與[r1,r2,...,rn]t代表人與機(jī)器人下肢連桿的姿態(tài)角,s∈[0,1],s為1時(shí)代表完全一樣,s為0時(shí)代表完全不同。附圖說明圖1為本方法系統(tǒng)架構(gòu)圖。圖2為.asf文件定義人體骨架拓?fù)浣Y(jié)構(gòu)圖。圖3為人-機(jī)簡化模型圖。圖4為人體自由度定義圖。圖5為仿人機(jī)器人模型示意圖。圖6為人體骨骼模型圖。圖7為人體骨骼的運(yùn)動學(xué)模型圖。圖8為人體步態(tài)模式分割圖。圖9為fsr粘貼示意圖。圖10為腳底部分著地受力示意圖。圖11為基于zmp控制流程圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施方式對本方法作進(jìn)一步的說明。由于本方法是將人體運(yùn)動數(shù)據(jù)運(yùn)用到仿人機(jī)器人身上,因此數(shù)據(jù)的可靠性尤為重要。推薦采用國內(nèi)外知名的運(yùn)動捕捉數(shù)據(jù)庫,例如卡耐基梅隆大學(xué)運(yùn)動實(shí)驗(yàn)室的運(yùn)動捕捉數(shù)據(jù)庫,kit人體運(yùn)動數(shù)據(jù)庫,hdm05運(yùn)動數(shù)據(jù)庫等。這些數(shù)據(jù)庫通常提供的運(yùn)動捕捉數(shù)據(jù)格式為.bvh或者.amc與.asf結(jié)合的數(shù)據(jù)格式。.bvh文件是數(shù)據(jù)文件.amc與骨架文件.asf的結(jié)合,包含了兩者信息,提供的骨架結(jié)構(gòu)均符合圖2所示的拓?fù)鋱D。.amc文件定義了與.asf文件相對應(yīng)的“子關(guān)節(jié)”局部坐標(biāo)系相對于“父關(guān)節(jié)”局部坐標(biāo)系的每一幀歐拉角(xyz),仿人機(jī)器人使用的關(guān)節(jié)角度為笛卡爾坐標(biāo)系下關(guān)于自身局部坐標(biāo)系轉(zhuǎn)過的角度(關(guān)節(jié)空間中),因此需要對原始數(shù)據(jù)進(jìn)行預(yù)處理。處理的方法是首先建立如圖7所示的人體骨骼的運(yùn)動學(xué)模型,通過運(yùn)動學(xué)建模分別求出髖關(guān)節(jié),膝關(guān)節(jié)和踝關(guān)節(jié)的絕對空間坐標(biāo),然后再運(yùn)用同樣的運(yùn)動學(xué)建模方法建立仿人機(jī)器人的運(yùn)動學(xué)模型(d-h法),由于人體骨骼模型和仿人機(jī)器人模型具有相同的自由度數(shù)和關(guān)節(jié)結(jié)構(gòu),并且人體骨骼長度和仿人機(jī)器人對應(yīng)部位幾何長度相等,因此可以通過關(guān)節(jié)的絕對坐標(biāo)相等求解仿人機(jī)器人所有關(guān)節(jié)角度,完成關(guān)節(jié)角度換算。由于人類的直線步行是一個(gè)循環(huán)往復(fù)的過程,因此可以將人類的步行分割成如圖8所示的三個(gè)階段,其中第二個(gè)步行階段可以被重復(fù)使用。將每個(gè)樣本后腳跟著地時(shí)角速度的突變點(diǎn)作為兩個(gè)階段的分割點(diǎn)。以此操作,則可以得到雙腿12個(gè)自由度的36條關(guān)節(jié)角度曲線。在得到人類的步態(tài)模式之后,需要對這些曲線作數(shù)學(xué)處理,主要包括一下幾個(gè)過程:歸一化,去噪,取平均,濾波,hermite插值。這樣可以得到仿人機(jī)器人的步態(tài)模式,但是為了提高仿人機(jī)器人的魯棒性,還需要引入zmp控制算法對仿人機(jī)器人的關(guān)節(jié)角度進(jìn)行微調(diào)以達(dá)到實(shí)現(xiàn)機(jī)器人穩(wěn)定行走的目的。為了測量出zmp點(diǎn)的位置,仿人機(jī)器人的每個(gè)腳底安裝了12個(gè)力傳感器,通過判定單腿支撐還是雙腿支撐可以計(jì)算出zmp的實(shí)時(shí)位置。通過圖11所示的控制算法流程圖來對仿人機(jī)器人的髖關(guān)節(jié)角度進(jìn)行微調(diào)以達(dá)到提高仿人機(jī)器人魯棒性的目的。當(dāng)前第1頁12