一种康复机器人的振动反馈系统、方法及装置与流程

文档序号:29259366发布日期:2022-03-16 11:52阅读:222来源:国知局
一种康复机器人的振动反馈系统、方法及装置与流程

1.本发明属于康复机器人领域,具体涉及一种康复机器人的振动反馈系统、方法及装置。


背景技术:

2.目前在运动康复过程中,一般会让患者使用康复设备配合相应的游戏场景进行运动训练。部分游戏场景中需要设备提供振动反馈来提升患者与游戏场景的交互体验,从而达到更好的治疗效果。另外,对于弱视或者盲视的患者,需要提供触觉反馈来引导患者完成康复训练。目前市面上的康复产品还没有此功能。
3.现有的康复设备如图1所示(cn113244578a,图1、图2),患者的手部抓住竖向手柄进行康复训练。控制器通过二维力传感器采集患者的发力来控制x向伺服电机和y向伺服电机提供相应的助力/阻力,并通过同步带(相当于cn113244578a中的x向柔索和y向柔索)将助力/阻力传递到竖向手柄上,进一步传递到用户手上,以达到锻炼患者上肢力量的目的。但是目前的上肢康复设备中几乎都没有提供触觉反馈的功能,对训练过程中的交互体验有一定的影响。
4.专利cn208673182u公开了一种振动控制手柄,通过在手柄中安装振动马达为用户提供振动反馈。这种方式需要在康复设备上安装额外的振动马达,增大了手柄的体积,同时也增加了设备成本。振动马达能够提供的振动力较小,对于手部感知能力受损的患者,可能无法感知到振动。
5.为了解决以上问题,本发明提出了一种提供振动反馈的装置和方法。


技术实现要素:

6.为了克服现有技术中存在的问题,本发明提供一种不需要额外安装振动马达、振动反馈调节范围大的康复机器人的振动反馈系统、方法及装置。
7.为了实现上述目标,本发明采用如下的技术方案:一种康复机器人的振动反馈系统,其特征在于,包括训练反馈模块、事件信号计算模块、力矩与振动信号叠加模块;
8.训练反馈模块包括肌力等级判定模块和振动反馈计算模块;由肌力等级判定模块判定患者肌力等级;振动反馈计算模块根据肌力等级得到振动反馈等级,并计算振动信号参数;
9.事件信号计算模块接收来自游戏的振动事件信号,根据当前用户的振动反馈等级和振动信号参数计算出实时振动反馈信号;
10.力矩与振动信号叠加模块接收实时力矩控制指令、实时振动反馈信号和建模误差补偿信号,将三者叠加形成总力矩控制信号,发送至电机驱动器。
11.实时力矩控制指令指:根据游戏场景和训练模式,机器人控制器给电机驱动器发送的不同的力矩值指令,由阻抗控制模块生成。
12.所述的建模误差补偿信号由建模误差补偿模块生成,建模误差补偿信号等于实时
力矩控制指令减去力传感器检测到的力信号。建模误差补偿模块也集成于机器人控制器中。
13.事件信号计算模块中接收游戏发出的振动事件信号,振动事件信号中包括振动频率ω和持续时间t;如果在游戏中同时发生了n个振动事件,第i个振动事件的信号为fi=sin(wit)t∈[0,ti]
ꢀꢀ
(2),则实时振动事件信号为
[0014]
所述振动反馈等级与肌力等级呈正相关,即肌力等级越高,则振动反馈等级越高。一种可行的方案是振动反馈等级等于肌力等级。所述振动反馈信号的幅值与振动反馈等级呈正相关,即振动反馈等级越高,振动反馈信号的幅值越大。一种可行的方案是振动反馈信号的幅值a=2lv,其中lv表示振动反馈等级。最终得到实际振动反馈信号fv=af。即实际振动反馈信号fv等于振动反馈信号的幅值a乘以实时振动事件信号f。
[0015]
振动反馈等级lv由振动反馈计算模块计算得到,而实际振动反馈信号由事件信号计算模块得到。
[0016]
本发明的又一个目的是提供一种康复机器人的振动反馈方法,包括如下步骤:
[0017]
由肌力等级判定模块判定患者肌力等级;振动反馈计算模块根据肌力等级得到振动反馈等级,并计算振动信号参数;
[0018]
事件信号计算模块接收来自游戏的振动事件信号,根据当前用户的振动反馈等级和振动信号参数计算出实时振动反馈信号;
[0019]
力矩与振动信号叠加模块接收实时力矩控制指令、实时振动反馈信号和建模误差补偿信号,将三者叠加形成总力矩控制信号,发送至电机驱动器,驱动电机产生扭矩。
[0020]
本发明的另一个目的是提供一种康复机器人的振动反馈装置,包括机器人控制器,训练反馈模块、事件信号计算模块、力矩与振动信号叠加模块、阻抗控制模块、建模误差补偿模块集成于机器人控制器中;
[0021]
训练反馈模块包括肌力等级判定模块和振动反馈计算模块;由肌力等级判定模块判定患者肌力等级;振动反馈计算模块根据肌力等级得到振动反馈等级,并计算振动信号参数;
[0022]
事件信号计算模块接收来自游戏的振动事件信号,根据当前用户的振动反馈等级和振动信号参数计算出实时振动反馈信号;
[0023]
由阻抗控制模块生成实时力矩控制指令,由建模误差补偿模块生成建模误差补偿信号;
[0024]
力矩与振动信号叠加模块接收实时力矩控制指令、实时振动反馈信号和建模误差补偿信号,将三者叠加形成总力矩控制信号,发送至电机驱动器。
[0025]
相对于现有技术,本发明的有益效果为:利用上肢康复设备已有的驱动电机作为振动发生器,给患者提供振动反馈。提出了一种基于阻抗控制的振动反馈控制方案,能够根据实时交互场景为患者提供振动反馈。
[0026]
利用设备上已有的电机提供振动反馈力,不需要额外安装振动马达。缩小了操作手柄的体积,降低了设备成本。相较于振动马达,该方案的振动信号的幅值和频率可以在较大的范围内进行调节,克服了手部感知能力受损的患者无法感受到振动的问题。
附图说明
[0027]
图1为康复机器人振动反馈流程图;
[0028]
图2为一般的阻抗控制框图;
[0029]
图3为本发明的控制框图;
[0030]
图4为肌力等级判定示意图。
具体实施方式
[0031]
以下结合附图和具体实施例对本发明作具体的介绍。
[0032]
本发明公开了一种上肢康复机器人的振动反馈系统、方法及装置。具体原理如下:
[0033]
训练反馈模块、事件信号计算模块、力矩与振动信号叠加模块、阻抗控制模块、建模误差补偿模块均集成于机器人控制器内。训练反馈模块包括肌力等级判定模块和振动反馈计算模块;由肌力等级判定模块判定当前用户肌力等级;振动反馈计算模块根据肌力等级得到振动反馈等级(例如,肌力等级等于振动反馈等级),并计算振动信号参数(振动反馈信号的幅值a)。事件信号计算模块接收来自游戏的振动事件信号,根据当前用户的振动反馈等级和振动信号参数计算出实时振动反馈信号fv;由阻抗控制模块生成实时力矩控制指令fd,由建模误差补偿模块生成建模误差补偿信号(建模误差补偿信号=实时力矩控制指令f
d-力传感器检测到的力信号fs);其中建模误差补偿模块接收阻抗控制模块发出的实时力矩控制指令fd以及力传感器检测到的力信号fs并将两者相减得到建模误差补偿信号;力矩与振动信号叠加模块接收阻抗控制模块给出的实时力矩控制指令和事件信号计算模块给出的实时振动反馈信号fv以及建模误差补偿模块发出的建模误差补偿信号,将三者叠加形成总力矩控制信号(即fd+(f
d-fs)+fv),发送至电机驱动器。实时力矩控制指令指:根据患者选择的游戏场景和训练模式,由机器人控制器的阻抗控制模块给出该指令,该指令被发送至力矩与振动信号叠加模块,与实时振动反馈信号和建模误差补偿信号叠加后被力矩与振动信号叠加模块发送至电机驱动器,驱动电机并给患者提供助力或者阻力、振动反馈,以达到训练目的。
[0034]
本发明公开了一种上肢康复机器人的振动反馈系统、方法及装置。具体原理如下:
[0035]
1、在患者进行康复训练前,先通过训练反馈模块判断患者的触觉感知能力,以确定振动反馈信号的等级与参数。在训练过程中,患者握住竖向手柄在设备平面上进行移动(这里的设备指上肢康复机器人)。同时设备的坐标(指竖向手柄的坐标)通过机器人控制器发送到游戏界面中,控制游戏中的元素进行运动。当在游戏场景中发生振动事件(例如碰撞事件或者需要模拟振动的事件时(比如模拟凹凸不平的路面时)),游戏根据事件信号计算模块给出相应的振动反馈信号并发送给设备,具体地,振动反馈信号被发送至上肢康复机器人的机器人控制器的力矩与振动信号叠加模块。同时,阻抗控制模块发出实时力矩控制指令至力矩与振动信号叠加模块。同时,由建模误差补偿模块生成建模误差补偿信号并发送至力矩与振动信号叠加模块;机器人控制器的力矩与振动信号叠加模块在收到前述的实时力矩控制指令后,在当前的实时力矩控制指令上叠加上实时振动反馈信号以及建模误差补偿信号(实时力矩控制指令、实时振动反馈信号、建模误差补偿信号直接相加),即可在产生助力/阻力的同时产生振动反馈。电机的振动反馈通过同步带(不限于同步带)传导到末端操作手柄(即竖向手柄),再传导至人的手臂。流程图如图1所示。
[0036]
在cn113244578a的上肢康复机器人的硬件结构基础上,在机器人控制器中设置本发明的振动反馈系统。本发明所适用的上肢康复机器人的硬件结构可与cncn113244578a完全一样或等同,但本发明的控制系统与cn113244578a不同。
[0037]
2、所述的振动反馈信号一般为正弦信号(但不限于正弦信号),参数包括振动频率,振动幅值和振动持续时间;
[0038]
f=a
·
sin(ω
·
t) 0<t<t
ꢀꢀ
(1)
[0039]
其中,f表示信号值,a表示振动反馈信号的幅值(取值范围在0~10n),ω表示信号频率(取值在8~60hz范围内),t表示时间(单位为s),t表示振动信号持续时间。为了不影响训练所需的助力/阻力,振动反馈信号的幅值a一般取较小的值。
[0040]
3、事件信号计算接收来自游戏中的振动事件信号和振动参数(包括信号频率和持续时间),如有多个振动事件信号则将所有的振动事件信号做加权平均。再将结果乘以振动幅值得到最终的实际振动反馈信号。不同的振动事件的信号频率ω和持续时间t均不相同且由游戏直接给出信号频率和持续时间。具体过程如下:
[0041]
a)游戏中预先设定好不同振动事件所对应的信号频率和持续时间,当发生一个或多个振动事件时,游戏向控制器发送振动事件信号以及参数。如果同时发生了n个振动事件,第i(i=1..n)个振动事件的信号为
[0042]fi
=sin(wit) t∈[0,ti]
ꢀꢀ
(2),公式(2)中ωi表示第i个振动事件的信号频率,其中i=1、2、3

n;ti表示第i个振动事件的持续时间;t表示时间(单位为s);
[0043]
则实时振动事件信号为
[0044]
即当一个控制周期(例如2ms)内发生了n个振动事件,则将所有事件的fi值直接相加并取平均值即得到实时振动事件信号(即将所有振动事件在当前时刻的振动事件信号做加权平均)。
[0045]
b)通过训练反馈模块得到振动反馈等级,并根据式a=2lv求得振动反馈信号的幅值(即a是lv的2倍)。振动反馈信号的幅值a再乘以实时振动事件信号f得到最终的实时振动反馈信号fv。
[0046]
在一个实施例中,实时振动反馈信号fv根据设备(即竖向手柄)的实时运动方向作分解,将分解后的振动反馈信号值分别加在x向伺服电机和y向伺服电机的电机驱动器上。例如,针对cn113244578a的硬件结构,具体分解过程如下:
[0047]
从两个电机驱动器中分别读出竖向手柄在x向的线速度v
x
和竖向手柄在y向的线速度vy。根据下面的公式求得分解到x向伺服电机上的振动信号f
vx
和分解到y向伺服电机上的振动信号f
vy
。其中v
norm
表示速度向量的模长。
[0048][0049][0050]
4、上述电机驱动器应工作在力矩模式,由机器人控制器计算得到相应的总力矩控制信号,并发送给电机驱动器驱动电机产生力矩。其为实时控制,控制周期一般可以为2ms。
[0051]
一般的阻抗控制框图如图2,其为现有技术,其即本发明的阻抗控制模块;其中,为期望速度,zd为控制器阻抗,j
t
为机器人雅克比矩阵的转置,表示机器人的动力学模型,j表示机器人雅克比矩阵。阻抗zd的表达式有如下形式(本方案中以第一种方式为例);
[0052][0053]
其中,x表示实际位置(即竖向手柄的实际位置),表示实际速度(竖向手柄的实际速度),表示实际加速度(竖向手柄的实际加速度)。xd表示期望位置(当患者不用力的时候竖向手柄的期望位置),表示期望速度(当患者不用力的时候竖向手柄的期望速度),表示期望加速度(当患者不用力的时候竖向手柄的期望加速度)。m表示质量参数,b表示阻尼参数,k表示刚度参数。m一般取0.1-10kg,b一般取5-1000n*m/s,k一般取0。这些参数根据训练模式或者游戏场景的不同而变化。在患者上肢力量较强的情况下,可以增加m、b、k这3个参数以增加患者的训练阻力。在患者力量较弱的情况下,可以减小这3个参数以减小患者的训练阻力。fd表示需要施加在患者手上的力,经过雅克比矩阵的转置j
t
转换后变成关节力τc。同时患者直接施加在末端的力fu也经过雅克比矩阵转置的变换作用在机器人上。这两者的合力作用在机器人动力学模型上,驱动机器人关节产生运动速度经过雅克比矩阵变换得到空间坐标系的运动速度并与患者的手部接触并产生接触力fu(又称为患者直接施加在末端的力)。
[0054]
本发明的改进控制框图如图3所示。其中,为期望速度(当患者不用力的时候竖向手柄的期望速度),zd为控制器阻抗,j
t
为机器人雅克比矩阵的转置,表示机器人的动力学模型,j表示机器人雅克比矩阵,fv表示实时振动反馈信号,fd表示需要施加在患者手上的力(fd即阻抗控制模块给出的实时力矩控制指令);患者直接施加在末端的力fu被力传感器检测到,力传感器检测到的力信号为fs,建模误差补偿模块使fd减去fs得到建模误差补偿信号。实时振动反馈信号fv、实时力矩控制指令fd和建模误差补偿信号f
d-fs,一起经过雅克比矩阵的转置j
t
变成关节力τc(针对一个x向伺服电机和一个y向伺服电机的结构,其为向量,包括施加到x向伺服电机的转矩和施加到y向伺服电机的转矩)。即,振动反馈信号fv、实时力矩控制指令fd和建模误差补偿信号叠加形成的总力矩控制信号乘以雅克比矩阵的转置j
t
分别得到两个电机的转矩,实现总力矩控制信号分解到两个电机上。其中,电机数量任意均可,不限于一个x向伺服电机和一个y向伺服电机的组合。与一般的阻抗控制相比,本发明中增加了力传感器来测量设备末端与患者之间的接触力,用来补偿机器人动力学模型的建模误差,此外还增加了实时振动反馈信号fv,用于模拟振动反馈。
[0055]
图2和图3中仅以公式(4)中的第一个式子为例。
[0056]
实时振动反馈信号fv和阻抗信号(即前述的实时力矩控制指令,由公式(4)计算得
到,例如可以由公式(4)中的第一个算式计算得到)是相互独立的,两者共同作用于当前用户(患者)。阻抗用来模拟虚拟环境中的弹性力,阻尼力和惯性力。振动信号则是模拟振动。
[0057]
所述训练反馈模块,通过判定病人的肌力等级来确定振动反馈信号的等级。参见图4,所述肌力等级的判定流程如下所示。
[0058]
a)由肌力等级判定模块计算当前用户的肌力等级:使患者在软件界面的引导下分别往图4中8个方向(a1-a8,相邻两个方向之间夹角均为45度)发力,由力传感器检测患者的发力并发送给机器人控制器,由机器人控制器记录力的大小,计算后得到病人的肌力等级(j)。
[0059]
图4中8个方向a1-a8分别检测到的患者用力大小为f1、f2、f3、f4、f5、f6、f7、f8,在一个实施例中,计算f1-f8的平均值为pf,若pf为0-10n,则肌力等级为1级;若pf为10-20n(不包括10n,包括20n),则肌力等级为2级;若pf为20-30n(不包括20n,包括30n),则肌力等级为3级;若pf为30-40n(不包括30n,包括40n),则肌力等级为4级;若pf为40n以上(不包括40n),则肌力等级为5级。肌力等级等于振动反馈等级。
[0060]
在另一个实施例中,考虑患者在不同运动方向上的肌力等级可能不一样,分别记录8个方向的力f1、f2、f3、f4、f5、f6、f7、f8分别对应的肌力等级;当f1-f8的任意一个为0-10n,则肌力等级为1级;若为10-20n(不包括10n,包括20n),则肌力等级为2级;若为20-30n(不包括20n,包括30n),则肌力等级为3级;若为30-40n(不包括30n,包括40n),则肌力等级为4级;若为40n以上(不包括40n),则肌力等级为5级;然后在计算振动信号的时候,先计算当前设备(竖向手柄)的运动方向,然后判断当前运动方向属于或最接近8个方向的哪一个。再将对应的肌力等级代入计算振动信号。比如运动方向在22.5-67.5的时候属于a2方向,67.5-112.5的时候属于a3方向。
[0061]
b)由振动反馈计算模块计算a和lv:根据病人的肌力等级计算振动反馈等级和振动信号参数。一种可行的计算方式为振动反馈等级lv等于肌力等级j,振动反馈信号的幅值a与振动反馈等级呈线性关系,即:
[0062]
a=2lvꢀꢀ
(5)
[0063]
其中lv为振动反馈等级,一般情况分为1-5级。
[0064]
本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1