基于人體運(yùn)動(dòng)建模的逆運(yùn)動(dòng)學(xué)算法研究
逆運(yùn)動(dòng)學(xué)是給定末端執(zhí)行器的目標(biāo)位置和姿態(tài),求解機(jī)器人各個(gè)關(guān)節(jié)的關(guān)節(jié)角。逆運(yùn)動(dòng)學(xué)在機(jī)器人的研究領(lǐng)域占有重要,它的好壞直接影響到后面的運(yùn)動(dòng)分析、運(yùn)動(dòng)控制和軌跡規(guī)劃。因此,設(shè)計(jì)性能優(yōu)越的逆運(yùn)動(dòng)學(xué)求解算法成為仿生機(jī)器人研究中的一個(gè)熱點(diǎn)。
針對逆運(yùn)動(dòng)學(xué)求解問題,國內(nèi)諸多外學(xué)者進(jìn)行了深入研究,并提出了一系列有效的方法。目前逆運(yùn)動(dòng)學(xué)求解方法主要分為三大類:代數(shù)法、幾何法和數(shù)值法。代數(shù)法可以求解出所有解,但是這種方法計(jì)算復(fù)雜,適用于六自由度機(jī)器人求逆解。幾何法需要將機(jī)器人空間分解為平面來求解幾何參數(shù),適用于機(jī)器人連桿參數(shù)滿足特定值情況下的求解。數(shù)值法可以很好的處理自由度較多的復(fù)雜運(yùn)動(dòng)鏈,且在關(guān)節(jié)約束條件下,也具有很好的通用性和靈活性。由于人體逆運(yùn)動(dòng)學(xué)問題較為復(fù)雜,數(shù)值法在反復(fù)迭代后所求得的解準(zhǔn)確度不高,因此需要對數(shù)值法的求解進(jìn)行優(yōu)化。目前常用的數(shù)值法是牛頓法、Newton-Raphson法、粒子濾波法、循環(huán)坐標(biāo)下降法算法(CCD)等。牛頓法當(dāng)矩陣有奇異值時(shí)無法求解;Newton-Raphson法在初始點(diǎn)離目標(biāo)點(diǎn)較遠(yuǎn)時(shí)無法求解;粒子濾波法計(jì)算復(fù)雜度高,而且會(huì)出現(xiàn)奇異值問題;傳統(tǒng)CCD算法在離目標(biāo)點(diǎn)較遠(yuǎn)時(shí)求解速度很快,而在近目標(biāo)點(diǎn)時(shí)求解速度急劇下降。針對上述方法只能求得特定情況下的人體運(yùn)動(dòng)逆解問題,本文提出了一種更加普遍、快速的逆運(yùn)動(dòng)求解算法。
本文的核心思想是將傳統(tǒng)CCD算法和BFGS算法結(jié)合,融合它們的優(yōu)點(diǎn)得到一個(gè)新的算法,從而達(dá)到快速求解的目的,并進(jìn)行了求解仿真,驗(yàn)證了所提算法的可行性。
1 人體運(yùn)動(dòng)模型的建立
1.1 運(yùn)動(dòng)數(shù)據(jù)獲取
本文用NOKOV三維紅外被動(dòng)式光學(xué)運(yùn)動(dòng)捕捉系統(tǒng)來實(shí)時(shí)捕捉人體的下肢運(yùn)動(dòng)數(shù)據(jù),所用動(dòng)作捕捉系統(tǒng)主要由6個(gè)相機(jī)、上位機(jī)、mark點(diǎn)、定位桿、校正桿等組成,每個(gè)mark點(diǎn)只要同時(shí)被兩個(gè)鏡頭捕捉到,便能記錄下mark點(diǎn)的坐標(biāo),進(jìn)而得到特定點(diǎn)隨時(shí)間變化的連續(xù)運(yùn)動(dòng)軌跡。運(yùn)動(dòng)捕捉系統(tǒng)以每秒100幀的速率記錄所有標(biāo)記點(diǎn)的空間坐標(biāo),并且其捕捉精度可達(dá)1mm。動(dòng)作捕捉系統(tǒng)中mark點(diǎn)位置和相機(jī)的布置如圖1所示。
(a)mark點(diǎn)位置 (b)相機(jī)布置
圖1 mark點(diǎn)位置和相機(jī)布置
1.2 建立關(guān)節(jié)模型
人體下肢是一個(gè)極其復(fù)雜的系統(tǒng),為了便于研究一般將下肢分為髖關(guān)節(jié)、膝關(guān)節(jié)、踝關(guān)節(jié)、大腿和小腿五部分。這樣就可以把關(guān)節(jié)看做為點(diǎn),大腿和小腿看做是鏈,如圖2所示。每個(gè)關(guān)節(jié)都固定一個(gè)局部坐標(biāo)系,根據(jù)歐拉角的表示方法,從子關(guān)節(jié)局部坐標(biāo)系旋轉(zhuǎn)變換到父關(guān)節(jié)局部坐標(biāo)系的旋轉(zhuǎn)矩陣可以表示為
式中分別表示繞軸,軸,軸的旋轉(zhuǎn)角度。用表示子關(guān)節(jié)相對于父關(guān)節(jié)在軸,軸,軸的平移。則子關(guān)節(jié)相對于父關(guān)節(jié)的變換矩陣可以表示為
設(shè)子關(guān)節(jié)在局部坐標(biāo)系的坐標(biāo)表示為,子關(guān)節(jié)在父關(guān)節(jié)坐標(biāo)系中的坐標(biāo)表示為,則有
局部坐標(biāo)系之間的變換矩陣可以表示為:,這樣人體的運(yùn)動(dòng)學(xué)問題轉(zhuǎn)化為關(guān)節(jié)模型的運(yùn)動(dòng)方程求解問題。
圖2 人體下肢關(guān)節(jié)模型
2 逆運(yùn)動(dòng)學(xué)求解算法的研究
2.1 循環(huán)坐標(biāo)下降(CCD)算法
循環(huán)坐標(biāo)下降(CCD)算法是一種啟發(fā)式迭代方法,該方法根據(jù)運(yùn)動(dòng)鏈末端位置信息,依次調(diào)整各個(gè)關(guān)節(jié)的旋轉(zhuǎn)角度,逐步使末端位置逼近目標(biāo)位置。該算法同時(shí)考慮了各個(gè)關(guān)節(jié)的約束條件,對于大范圍運(yùn)動(dòng)收斂快速、穩(wěn)定,因此在機(jī)器人運(yùn)動(dòng)研究領(lǐng)域得到了廣泛應(yīng)用。
算法的基本思想如下:
假設(shè)當(dāng)前位置的世界坐標(biāo)和姿態(tài)分別為:和,其中為各個(gè)旋轉(zhuǎn)角度組成的向量。設(shè)要達(dá)到的末端位置和姿態(tài)為:和,這樣問題就轉(zhuǎn)化為找到一個(gè)合適的向量,使當(dāng)前位姿到達(dá)目標(biāo)位姿,即,。
定義位置誤差為:
定義姿態(tài)誤差為:
總的誤差為:
從而轉(zhuǎn)化為求合適的向量,使得總的誤差最小。關(guān)節(jié)的優(yōu)化目標(biāo)函數(shù)為:
設(shè)和為加權(quán)因子,取值為任意正實(shí)數(shù),,,為當(dāng)前坐標(biāo)原點(diǎn)的位置矢量,為第個(gè)關(guān)節(jié)相對于基坐標(biāo)的單位向量,則常系數(shù)和可以表示為:
取得極大值的條件為
由,結(jié)合上式可以求出關(guān)節(jié)的最優(yōu)調(diào)整值,從而獲得合適的向量,并得到各個(gè)關(guān)節(jié)的旋轉(zhuǎn)角度,由于每個(gè)關(guān)節(jié)有一定的關(guān)節(jié)約束,即關(guān)節(jié)旋轉(zhuǎn)范圍,如果,則旋轉(zhuǎn)角度取;如果,則旋轉(zhuǎn)角度為;如果,則旋轉(zhuǎn)角度取。這樣得到的旋轉(zhuǎn)角度可以滿足實(shí)際要求,由新的旋轉(zhuǎn)角度得到新的人體運(yùn)動(dòng)模型。
2.2 BFGS算法
BFGS算法是一種應(yīng)用最為廣泛的擬牛頓算法,不需要計(jì)算二階導(dǎo)數(shù),而且保存了牛頓算法的超線性收斂性。本文將BFGS算法融入到循環(huán)坐標(biāo)下降算法中,BFGS算法的校正公式為:
BFGS算法應(yīng)用二階導(dǎo)數(shù)信息具有更快的收斂速度,接近目標(biāo)點(diǎn)時(shí)收斂速度很快,而當(dāng)目標(biāo)點(diǎn)較遠(yuǎn)時(shí)則速度較慢。本文將2種算法的優(yōu)點(diǎn)結(jié)合起來。首先利用循環(huán)坐標(biāo)下降算法進(jìn)行大范圍的移動(dòng),在目標(biāo)點(diǎn)小范圍內(nèi)采用BFGS算法。
3 實(shí)驗(yàn)流程及結(jié)果分析
本文所用實(shí)驗(yàn)的具體流程如下:
Step1:輸入人體下肢運(yùn)動(dòng)的骨架模型和人體運(yùn)動(dòng)的初始值,設(shè)定人體運(yùn)動(dòng)的目標(biāo)位置和局部坐標(biāo)系、迭代停止閾值和轉(zhuǎn)向BFGS算法的閾值;
Step2:計(jì)算出人體各個(gè)關(guān)節(jié)的世界坐標(biāo),運(yùn)用式計(jì)算出總的誤差,如果總誤差小于閾值,轉(zhuǎn)到Step5,否則執(zhí)行下一步,直到總誤差小于閾值,轉(zhuǎn)到Step4,執(zhí)行BFGS算法;
Step3:對當(dāng)前模型運(yùn)用改進(jìn)循環(huán)坐標(biāo)下降算法,更新人體運(yùn)動(dòng)數(shù)據(jù),轉(zhuǎn)到Step2;
Step4:對當(dāng)前模型執(zhí)行BFGS算法,直到誤差小于設(shè)置閾值,轉(zhuǎn)到下一步;
Step5:繪制人體運(yùn)動(dòng)圖形。
為了驗(yàn)證算法的有效性,設(shè)目標(biāo)點(diǎn)位姿為:=[161.5614,965.4743,-5.0585],=[0.0990,-0.9951,0],=[-0.9951,0.0990,0],=[0,0,1],一個(gè)精確解。圖3為傳統(tǒng)CCD算法和CCD-BFGS算法平均執(zhí)行時(shí)間的對比,從圖中可以看出本文提出的CCD-BFGS算法明顯優(yōu)于傳統(tǒng)CCD算法。
圖3 傳統(tǒng)算法與CCD-BFGS算法對比
4 結(jié)語
針對人體運(yùn)動(dòng)建模中逆運(yùn)動(dòng)學(xué)求解問題,提出一種CCD算法和BFGS算法結(jié)合的新的算法,并通過仿真驗(yàn)證了算法的性能。仿真結(jié)果表明,CCD-BFGS算法不僅克服了傳統(tǒng)CCD算法近目標(biāo)點(diǎn)收斂慢的缺點(diǎn),而且具有較強(qiáng)的魯棒性。本算法思想還可以應(yīng)用于運(yùn)動(dòng)壓縮和合成等方向,同時(shí)在推動(dòng)仿生機(jī)器人的運(yùn)動(dòng)仿真研究有一定的借鑒意義。
本文來源:《企業(yè)科技與發(fā)展》:http://m.k2057.cn/w/qk/21223.html
欄目分類
- 為什么發(fā)表論文都不開雜志社的發(fā)票呢?
- 2021-2022年CSCD中國科學(xué)引文數(shù)據(jù)庫來源期刊列表-理科南大核心目錄完整版
- CSCD中國科學(xué)引文數(shù)據(jù)庫來源期刊列表(2023-2024年度)南大核心目錄
- 融媒體環(huán)境下地方新聞網(wǎng)站媒體的發(fā)展路徑
- 創(chuàng)新與繼承:70周年獻(xiàn)禮片“三杰”研究
- 人本導(dǎo)向下的城市更新規(guī)劃思路探索——以上海松江區(qū)中山街道老城區(qū)為例
- 預(yù)制裝配式地鐵車站施工技術(shù)
- 從框架理論看“中國學(xué)習(xí)的人”
- 互聯(lián)網(wǎng)環(huán)境下古都洛陽城市形象建構(gòu)與傳播探析
- 價(jià)值工程在房地產(chǎn)開發(fā)管理分工中應(yīng)用
- 官方認(rèn)定!CSSCI南大核心首批191家“青年學(xué)者友好期刊名單”
- 2023JCR影響因子正式公布!
- 國內(nèi)核心期刊分級(jí)情況概覽及說明!本篇適用人群:需要發(fā)南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的學(xué)者
- 我用了一個(gè)很復(fù)雜的圖,幫你們解釋下“23版最新北大核心目錄有效期問題”。
- 重磅!CSSCI來源期刊(2023-2024版)最新期刊目錄看點(diǎn)分析!全網(wǎng)首發(fā)!
- CSSCI官方早就公布了最新南核目錄,有心的人已經(jīng)拿到并且投入使用!附南核目錄新增期刊!
- 北大核心期刊目錄換屆,我們應(yīng)該熟知的10個(gè)知識(shí)點(diǎn)。
- 注意,最新期刊論文格式標(biāo)準(zhǔn)已發(fā)布,論文寫作規(guī)則發(fā)生重大變化!文字版GB/T 7713.2—2022 學(xué)術(shù)論文編寫規(guī)則
- 盤點(diǎn)那些評職稱超管用的資源,1,3和5已經(jīng)“絕種”了
- 職稱話題| 為什么黨校更認(rèn)可省市級(jí)黨報(bào)?是否有什么說據(jù)?還有哪些機(jī)構(gòu)認(rèn)可黨報(bào)?