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