一种仿人腿的膝踝刚度匹配方法与流程

文档序号:11153082阅读:382来源:国知局
一种仿人腿的膝踝刚度匹配方法与制造工艺

本发明属于机器人技术领域,尤其涉及一种多自由度仿人腿的刚度匹配方法。



背景技术:

生物学研究表明,在人类跳跃和跑步过程中,脚踝关节发挥着非常重要的作用,尤其脚踝处的肌腱和韧带在跑跳运动中具有缓冲、能量吸收和释放等功能。比如在落地瞬间,脚踝关节可以起到缓冲和存储能量的作用;而在离地时刻,关节释放能量并通过主动发力与膝关节共同完成起跳动作。在慢速跳跃时,站立相采用脚尖-脚掌-脚跟着地,在快速跳跃时,站立相始终采用脚尖-前脚掌着地。前者通过脚掌支撑面为跳跃运动提高稳定支撑域,确保稳定性要求,而后者充中分利用跟腱的储能作用提高了运动的能效性。依据仿生的思想和原理,在单腿机器人引入脚踝关节来提高机器人的运动性能和能效系能。驱动方式采用SEA(串联弹性驱动),SEA中的柔性元件可以模拟人类的肌肉和跟腱,在跳跃过程中存储能量,提高机器人在跳跃中的能量效率。但是在加入脚踝关节后,膝踝关节SEA中弹簧刚度的不同组合,会带来机器人被动特性的不同。ETH的ScarlETH采用固定的膝关节刚度,以踝关节刚度为变量,仿真优化了膝关节电机的控制率,通过比较不同踝关节刚度的总能耗确定了最优的踝关节刚度。TUD的BioBiped2膝踝关节在弹簧刚度不匹配情况下可能出现某个关节超过限位的问题进行了研究,以膝踝关节压缩至最低点的时间差为指标,在仿真和实物中通过选取不同的弹簧刚度进行实验,给出了合适的弹簧刚度。但是,两者均未解决如何自动的选取不同的膝踝刚度最优匹配问题。



技术实现要素:

本发明针对驱动方式为SEA(串联弹性驱动)的带有髋、膝、踝三个关机的单腿机器人,提出了一种仿人腿的膝踝刚度匹配方法。

本发明的目的是通过以下技术方案来实现的:一种仿人腿的膝踝刚度匹配方法,包括以下步骤:

(1)、单腿机器人仿真平台搭建,包括以下子步骤:

(1.1)、在solidworks设计软件中,将机器人的多个装配体根据身体、大腿、小腿、脚板整合成四个装配体,并将四个装配体另存为可以导入到Adams软件中的.xmt_txt文件格式,并计算出四个装配体的质量和转动惯量;

(1.2)、将solidworks中保存的.xmt_txt文件导入到Adams软件中;在Adams软件中,通过Modify功能,选择user_input选项将solidworks中计算的连杆质量和转动惯量添加进去;通过Jiont模块对机器人各连杆添加转动约束;通过Force模块对机器人各转动副添加力矩驱动;并添加机器人各关节角度的测量变量和各关节力矩的输入变量;再添加一个长方体刚体作为地面,地面与ground模块通过固定副相连;在地面与脚板之间加入Contact碰撞力模块;

(1.3)、通过Adams软件的Control模块,配置输入输出变量,将Adams模型输出为Matlab可执行的.m文件;在Matlab中,通过adams_sys指令生成机器人的simulink模型,在Matlab的simulink模块中添加机器人的各关节控制模块,状态机判断模块,完成单腿机器人仿真平台的搭建;

(2)、选取单腿机器人仿真平台的控制算法:机器人的足底力等于零时,机器人状态定义为飞行相;机器人的足底力大于零时,机器人状态定义为站立相;包括以下子步骤:

(2.1)、选取机器人的飞行相控制算法:机器人在飞行相主要任务是进行落脚点的控制,根据机器人的逆运动学算法反解出在机器人落脚点为零时各关节的位置;各关节控制关节位置,采用PD力矩控制算法:

式中:τ为关节控制力矩,Kp、Kd为PD力矩控制参数,q、分别为机器人关节的角度和角速度,qd、分别为机器人关节的角度设定值和角速度设定值;

(2.2)、选取机器人的站立相控制算法:机器人在站立相的主要任务有两个,分别为身体平衡控制和膝踝协调控制;

(2.2.1)、选取身体平衡控制算法

机器人在站立相,通过髋关节进行身体平衡控制,控制算法如下:

式中:τhip为髋关节控制力矩,Kphip,Kdhip为PD力矩控制参数,qbody,分别为机器人身体偏离水平位置的角度和角速度,qbody_d,分别为机器人身体角度设定值和角速度设定值;

(2.2.2)、选取膝踝协调控制算法

膝踝关节的力矩模拟SEA的被动力矩:

τ=KΔL;

式中:K为关节的SEA弹簧刚度,ΔL为SEA弹簧的压缩量或拉伸量;

(3)、PSO算法优化膝踝弹簧刚度,包括以下步骤:

(3.1)、PSO算法前期设置:采用PSO算法在单腿机器人仿真平台中优化膝踝关节的弹簧刚度;在Matlab的simulink模型中设计Kknee和Kankle两个系统变量,作为单腿机器人仿真平台的输入变量;Kknee为膝关节弹簧刚度,Kankle为踝关节弹簧刚度;PSO算法粒子的位置和速度的定义为:P=[Kknee,Kankle],V=[Vknee,Vankle],Vknee,Vankle分别为膝踝关节刚度粒子的变化率;(3.2)、PSO算法单次实验:在仿真平台中,关节弹簧刚度Kknee和Kankle作为系统输入变量,每次实验中,机器人落脚点为零,从距离地面高度(10-30cm)的初始位置自由下落;采用步骤2中选取的控制算法,完成一次跳跃后,记录机器人各关节角度和角速度等运动学数据用于PSO算法的更新;

(3.3)、PSO算法的搜索流程:PSO算法的适应度函数为:

fit=tc/ts

式中:tc为站立相膝踝关节处于角速度反向时间的总和,ts为站立相总时间;

PSO算法的搜索流程如下:

(3.3.1)、根据粒子的初始范围,随机初始化粒子群;

(3.3.2)、遍历粒子群,每个粒子进行一次跳跃实验,根据实验后的运动学数据,计算粒子的适应度;

(3.3.3)、判断最优粒子是否收敛,实验中收敛指标为fit>90%;

如果未收敛,根据PSO算法更新公式:

Vi+1=ω·Vi+c1·rand()·(Pbest-Pi)+c2·rand()·(Pgbest-Pi)

Pi+1=Pi+Vi+1

式中:Vi为当前粒子速度,Vi+1为更新后的粒子速度,ω为惯性权重,Pi为粒子当前位置,Pbest为粒子当前最有位置,Pgbest为整个粒子群最优位置,rand()为介于(0,1)之间的随机数,c1、c2是学习因子;

更新粒子群,重复3.3.2;

如果收敛,搜索结束;

(3.4)、选取PSO算法优化结果:根据搜索结果,最优粒子P=[Kknee,Kankle]会收敛多对最优解;即可以得到多组优化后的膝踝关节的弹簧刚度组合。

本发明的有益效果:本发明通过分析人类在垫脚跳跃过程中的运动学数据,提出膝踝关节协调运动的评价指标。根据机器人设计的Solidworks模型数据,搭建Adams与Matlab联合仿真平台。设计机器人在飞行相和站立相的控制率,机器人可以完成落脚点为零的原地跳跃。根据分析人体跳跃运动规律,提出PSO算法的评价函数,根据PSO算法搜索出满足评价指标的膝踝关节弹簧刚度。根据PSO算法搜索结果,选取实物中机器人可用弹簧刚度。本发明实现了机器人连续稳定的高能效跳跃运动,能量效率可达到55.8%。

附图说明

图1为机器人控制算法框图;

图2为PSO算法搜索流程图;

图3为人类运动学数据图;

图4为机器人运动学数据图。

具体实施方式

本发明测试和分析了人体在原地连续跳跃过程中的运动数据。数据表明,人在跳跃的站立相阶段,膝踝两个关节的角速度始终处于反向状态,膝踝关节的力矩也始终处于反向状态。根据功率计算公式

式中:τ为关节力矩,为关节角速度。

人类的膝踝关节采用上述的运动方式,在站立相阶段,膝踝关节功率始终是同向的,即下落过程中先同时对身体做负功,起跳过程同时对身体做正功,保证了人类跳跃运动的高能效性。根据仿生的思想,本发明采用类人的运动方式进行运动。

由于本发明针对的机器人采用SEA方式驱动,机器人在被动状态下,膝踝关节的弹簧产生的力矩也处于反向状态。因此,在运动学上,通过选取合适的膝踝关节的弹簧刚度保证膝踝关节的角速度反向,即可以仿造人类的运动方式,解决了运动学冗余下的运动规划问题,同时也保证了机器人运动的能效性。依据这一结论,提出机器人协调运动的评价指标为单腿机器人在站立相膝踝关节处于角速度反向时间总和与站立相总时间之比。占比越高,机器人运动越协调,能量效率越高。

根据机器人协调运动的评价指标,膝踝刚度的选取方法具体步骤如下:

1、单腿机器人仿真平台搭建

1.1、在solidworks设计软件中,将机器人的多个装配体根据身体、大腿、小腿、脚板整合成四个装配体,并将四个装配体另存为可以导入到Adams软件中的.xmt_txt文件格式,并计算出四个装配体的质量和转动惯量。

1.2、将solidworks中保存的.xmt_txt文件导入到Adams软件中。在Adams软件中,通过Modify功能,选择user_input选项将solidworks中计算的连杆质量和转动惯量添加进去。通过Jiont模块对机器人各连杆添加转动约束。通过Force模块对机器人各转动副添加力矩驱动。并添加机器人各关节角度的测量变量和各关节力矩的输入变量。再添加一个长方体刚体作为地面,地面与ground模块通过固定副相连。在地面与脚板之间加入Contact碰撞力模块。

1.3、通过Adams软件的Control模块,配置输入输出变量,将Adams模型输出为Matlab可执行的.m文件。在Matlab中,通过adams_sys指令生成机器人的simulink模型,在Matlab的simulink模块中添加机器人的各关节控制模块,状态机判断模块,完成单腿机器人仿真平台的搭建。

2、选取单腿机器人仿真平台的控制算法

在Matlab中,需要为机器人的各个关节控制模块选取合适的控制算法。单腿机器人的控制框图如图1所示。机器人根据不同的状态采用不同的控制策略。因此首先根据机器人的触地信息进行状态的判断。机器人的足底力等于零时,机器人状态定义为飞行相;机器人的足底力大于零时,机器人状态定义为站立相。

2.1、选取机器人的飞行相控制算法

机器人在飞行相主要任务是进行落脚点的控制,根据机器人的逆运动学算法反解出在机器人落脚点为零时各关节的位置。各关节控制关节位置,采用PD力矩控制算法:

式中:

τ为关节控制力矩,Kp、Kd为PD力矩控制参数,q、分别为机器人关节的角度和角速度,qd、分别为机器人关节的角度设定值和角速度设定值。

2.2、选取机器人的站立相控制算法

机器人在站立相的主要任务有两个,分别为身体平衡控制和膝踝协调控制。

2.2.1、选取身体平衡控制算法

机器人在站立相,通过髋关节进行身体平衡控制,控制算法如下:

式中:τhip为髋关节控制力矩,Kphip,Kdhip为PD力矩控制参数,qbody,分别为机器人身体偏离水平位置的角度和角速度,qbody_d,分别为机器人身体角度设定值和角速度设定值。

2.2.2、选取膝踝协调控制算法

膝踝关节的力矩模拟SEA的被动力矩:

τ=KΔL

式中:K为关节的SEA弹簧刚度,ΔL为SEA弹簧的压缩量或拉伸量。

3、PSO算法优化膝踝弹簧刚度

3.1、PSO(Particle Swarm Optimization,粒子群优化算法)算法前期设置。采用PSO算法在单腿机器人仿真平台中优化膝踝关节的弹簧刚度。在Matlab的simulink模型中设计Kknee和Kankle两个系统变量,作为单腿机器人仿真平台的输入变量。Kknee为膝关节弹簧刚度,Kankle为踝关节弹簧刚度。PSO算法粒子的位置和速度的定义为:P=[Kknee,Kankle],V=[Vknee,Vankle],Vknee,Vankle分别为膝踝关节刚度粒子的变化率。

3.2、PSO算法单次实验。在仿真平台中,关节弹簧刚度Kknee和Kankle作为系统输入变量,每次实验中,机器人落脚点为零,从距离地面高度(10-30cm)的初始位置自由下落。采用步骤2中选取的控制算法,完成一次跳跃后,记录机器人各关节角度和角速度等运动学数据用于PSO算法的更新。

3.3、PSO算法的搜索流程。本发明根据上文提出的膝踝关节运动的评价指标,提出PSO算法的适应度函数:

fit=tc/ts

式中:tc为站立相膝踝关节处于角速度反向时间的总和,ts为站立相总时间。

PSO算法的搜索流程如下:

3.3.1、根据粒子的初始范围,随机初始化粒子群。

3.3.2、遍历粒子群,每个粒子进行一次跳跃实验,根据实验后的运动学数据,计算粒子的适应度。

3.3.3、判断最优粒子是否收敛,实验中收敛指标为fit>90%。

如果未收敛,根据PSO算法更新公式:

Vi+1=ω·Vi+c1·rand()·(Pbest-Pi)+c2·rand()·(Pgbest-Pi)

Pi+1=Pi+Vi+1

式中:Vi为当前粒子速度,Vi+1为更新后的粒子速度,ω为惯性权重,Pi为粒子当前位置,Pbest为粒子当前最有位置,Pgbest为整个粒子群最优位置,rand()为介于(0,1)之间的随机数,c1、c2是学习因子。

更新粒子群,重复3.3.2。

如果收敛,搜索结束。

PSO算法搜索流程图如图2所示。

3.4、选取PSO算法优化结果。根据搜索结果,最优粒子P=[Kknee,Kankle]会收敛多对最优解。即可以得到多组优化后的膝踝关节的弹簧刚度组合。不同的最优解区别为硬度不同,最后的运动学协调情况均在90%以上,可以根据不同的性能需求来选取不同的最优解。本发明的实物机器人,由于SEA结构设计的原因,实际可用弹簧的刚度范围有限,实际应用中,本发明根据实际的膝关节弹簧刚度,在搜索结果中选取匹配的踝关节刚度,再根据选取的结果,使用最接近选取结果的弹簧进行实验即可。图3为人类的运动学数据,图4为实物机器人的运动学数据,机器人在模拟人类完成原地的跳跃运动。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1