基于人体运动建模的逆运动学算法研究
逆运动学是给定末端执行器的目标位置和姿态,求解机器人各个关节的关节角。逆运动学在机器人的研究领域占有重要,它的好坏直接影响到后面的运动分析、运动控制和轨迹规划。因此,设计性能优越的逆运动学求解算法成为仿生机器人研究中的一个热点。
针对逆运动学求解问题,国内诸多外学者进行了深入研究,并提出了一系列有效的方法。目前逆运动学求解方法主要分为三大类:代数法、几何法和数值法。代数法可以求解出所有解,但是这种方法计算复杂,适用于六自由度机器人求逆解。几何法需要将机器人空间分解为平面来求解几何参数,适用于机器人连杆参数满足特定值情况下的求解。数值法可以很好的处理自由度较多的复杂运动链,且在关节约束条件下,也具有很好的通用性和灵活性。由于人体逆运动学问题较为复杂,数值法在反复迭代后所求得的解准确度不高,因此需要对数值法的求解进行优化。目前常用的数值法是牛顿法、Newton-Raphson法、粒子滤波法、循环坐标下降法算法(CCD)等。牛顿法当矩阵有奇异值时无法求解;Newton-Raphson法在初始点离目标点较远时无法求解;粒子滤波法计算复杂度高,而且会出现奇异值问题;传统CCD算法在离目标点较远时求解速度很快,而在近目标点时求解速度急剧下降。针对上述方法只能求得特定情况下的人体运动逆解问题,本文提出了一种更加普遍、快速的逆运动求解算法。
本文的核心思想是将传统CCD算法和BFGS算法结合,融合它们的优点得到一个新的算法,从而达到快速求解的目的,并进行了求解仿真,验证了所提算法的可行性。
1 人体运动模型的建立
1.1 运动数据获取
本文用NOKOV三维红外被动式光学运动捕捉系统来实时捕捉人体的下肢运动数据,所用动作捕捉系统主要由6个相机、上位机、mark点、定位杆、校正杆等组成,每个mark点只要同时被两个镜头捕捉到,便能记录下mark点的坐标,进而得到特定点随时间变化的连续运动轨迹。运动捕捉系统以每秒100帧的速率记录所有标记点的空间坐标,并且其捕捉精度可达1mm。动作捕捉系统中mark点位置和相机的布置如图1所示。
(a)mark点位置 (b)相机布置
图1 mark点位置和相机布置
1.2 建立关节模型
人体下肢是一个极其复杂的系统,为了便于研究一般将下肢分为髋关节、膝关节、踝关节、大腿和小腿五部分。这样就可以把关节看做为点,大腿和小腿看做是链,如图2所示。每个关节都固定一个局部坐标系,根据欧拉角的表示方法,从子关节局部坐标系旋转变换到父关节局部坐标系的旋转矩阵可以表示为
式中分别表示绕轴,轴,轴的旋转角度。用表示子关节相对于父关节在轴,轴,轴的平移。则子关节相对于父关节的变换矩阵可以表示为
设子关节在局部坐标系的坐标表示为,子关节在父关节坐标系中的坐标表示为,则有
局部坐标系之间的变换矩阵可以表示为:,这样人体的运动学问题转化为关节模型的运动方程求解问题。
图2 人体下肢关节模型
2 逆运动学求解算法的研究
2.1 循环坐标下降(CCD)算法
循环坐标下降(CCD)算法是一种启发式迭代方法,该方法根据运动链末端位置信息,依次调整各个关节的旋转角度,逐步使末端位置逼近目标位置。该算法同时考虑了各个关节的约束条件,对于大范围运动收敛快速、稳定,因此在机器人运动研究领域得到了广泛应用。
算法的基本思想如下:
假设当前位置的世界坐标和姿态分别为:和,其中为各个旋转角度组成的向量。设要达到的末端位置和姿态为:和,这样问题就转化为找到一个合适的向量,使当前位姿到达目标位姿,即,。
定义位置误差为:
定义姿态误差为:
总的误差为:
从而转化为求合适的向量,使得总的误差最小。关节的优化目标函数为:
设和为加权因子,取值为任意正实数,,,为当前坐标原点的位置矢量,为第个关节相对于基坐标的单位向量,则常系数和可以表示为:
取得极大值的条件为
由,结合上式可以求出关节的最优调整值,从而获得合适的向量,并得到各个关节的旋转角度,由于每个关节有一定的关节约束,即关节旋转范围,如果,则旋转角度取;如果,则旋转角度为;如果,则旋转角度取。这样得到的旋转角度可以满足实际要求,由新的旋转角度得到新的人体运动模型。
2.2 BFGS算法
BFGS算法是一种应用最为广泛的拟牛顿算法,不需要计算二阶导数,而且保存了牛顿算法的超线性收敛性。本文将BFGS算法融入到循环坐标下降算法中,BFGS算法的校正公式为:
BFGS算法应用二阶导数信息具有更快的收敛速度,接近目标点时收敛速度很快,而当目标点较远时则速度较慢。本文将2种算法的优点结合起来。首先利用循环坐标下降算法进行大范围的移动,在目标点小范围内采用BFGS算法。
3 实验流程及结果分析
本文所用实验的具体流程如下:
Step1:输入人体下肢运动的骨架模型和人体运动的初始值,设定人体运动的目标位置和局部坐标系、迭代停止阈值和转向BFGS算法的阈值;
Step2:计算出人体各个关节的世界坐标,运用式计算出总的误差,如果总误差小于阈值,转到Step5,否则执行下一步,直到总误差小于阈值,转到Step4,执行BFGS算法;
Step3:对当前模型运用改进循环坐标下降算法,更新人体运动数据,转到Step2;
Step4:对当前模型执行BFGS算法,直到误差小于设置阈值,转到下一步;
Step5:绘制人体运动图形。
为了验证算法的有效性,设目标点位姿为:=[161.5614,965.4743,-5.0585],=[0.0990,-0.9951,0],=[-0.9951,0.0990,0],=[0,0,1],一个精确解。图3为传统CCD算法和CCD-BFGS算法平均执行时间的对比,从图中可以看出本文提出的CCD-BFGS算法明显优于传统CCD算法。
图3 传统算法与CCD-BFGS算法对比
4 结语
针对人体运动建模中逆运动学求解问题,提出一种CCD算法和BFGS算法结合的新的算法,并通过仿真验证了算法的性能。仿真结果表明,CCD-BFGS算法不仅克服了传统CCD算法近目标点收敛慢的缺点,而且具有较强的鲁棒性。本算法思想还可以应用于运动压缩和合成等方向,同时在推动仿生机器人的运动仿真研究有一定的借鉴意义。
本文来源:《企业科技与发展》:http://www.zzqklm.com/w/qk/21223.html
- 2025年中科院分区表已公布!Scientific Reports降至三区
- 官方认定!CSSCI南大核心首批191家“青年学者友好期刊名单”
- 2023JCR影响因子正式公布!
- 国内核心期刊分级情况概览及说明!本篇适用人群:需要发南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的学者
- 我用了一个很复杂的图,帮你们解释下“23版最新北大核心目录有效期问题”。
- 重磅!CSSCI来源期刊(2023-2024版)最新期刊目录看点分析!全网首发!
- CSSCI官方早就公布了最新南核目录,有心的人已经拿到并且投入使用!附南核目录新增期刊!
- 北大核心期刊目录换届,我们应该熟知的10个知识点。
- 注意,最新期刊论文格式标准已发布,论文写作规则发生重大变化!文字版GB/T 7713.2—2022 学术论文编写规则
- 盘点那些评职称超管用的资源,1,3和5已经“绝种”了