首页 / 基于功能性电刺激的神经肌肉协同康复训练方法及装置

基于功能性电刺激的神经肌肉协同康复训练方法及装置实质审查 发明

技术领域

[0001] 本发明属于康复训练技术领域,具体涉及基于功能性电刺激的神经肌肉协同康复训练方法及装置。

相关背景技术

[0002] 在众多的康复手段中,功能性电刺激(Functional Electrical Stimulation,FES)治疗被广泛应用于医学康复领域,其主要的工作原理是使用一定强度的低频电流刺激
患者肢体的运动功能受损部位,诱发肌肉组织产生收缩,以模拟正常的自主运动,是一种应
用场景广泛的神经系统损伤康复技术。
[0003] 然而,目前市场上的功能性电刺激设备普遍存在功能单一的问题,其主要作为电刺激波形发生器使用,而患者在参与康复训练时所经历的是一种重复性、机械性的电刺激
过程,此过程依赖医师手动设定工作参数,患者肌肉被在功能性电刺激作用下被动收缩与
舒张,缺乏有效的反馈机制,电刺激参数和强度的调整完全依赖于医生的经验和判断,一般
也不实现对肢体运动的精确控制。这种单一的刺激方式治疗效果有限。
[0004] 康复临床研究表明,主被动结合康复训练相对于被动康复训练具有以下优势:
[0005] 1)提高患者的主动参与:主被动结合康复训练中,患者不仅接受被动的治疗,还需要主动参与训练。这可以帮助患者更好地理解和掌握运动技巧,增强主动性和积极性,提高
治疗效果。
[0006] 2)促进肌肉控制和协调:通过主动参与康复训练,患者可以加强对肌肉的控制和协调能力。主动参与训练可以激活中枢神经系统,加强神经肌肉连接,从而提高肌肉的运动
功能。
[0007] 因此,主被动结合康复训练相对于被动康复训练可以更好地促进患者的康复进程,并提高康复效果。
[0008] 因此,本发明提出一种能够实现主被动相结合的功能性电刺激康复训练方法及装置。

具体实施方式

[0091] 下面将结合附图说明对本发明的技术方案进行清楚地描述,显然,所描述的实施例并不是本发明的全部实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得
的所有其他实施例,都属于本发明的保护范围。
[0092] 需要说明的是,术语“中心”、“上”、“下”、“水平”、“左”、“右”、“前”、“后”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,并不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方
位构造和操作,因此不能理解为对本发明的限制。
[0093] 英文缩写说明:
[0094] IMU为惯性测量单元。
[0095] FES为功能性电刺激(Functional Electrical Stimulation,FES)。
[0096] 实施例1
[0097] 如图1所示,本发明提供一种基于虚拟现实的功能性电刺激上肢康复训练装置,包括显示器、计算机、功能性电刺激器、电极线及电极片套装、IMU传感器、急停开关。
[0098] 计算机安装有康复游戏客户端和上位机控制终端,负责运行康复游戏和上位机控制终端程序以及闭环控制算法。
[0099] 计算机通过蓝牙连接IMU传感器,IMU传感器固定于上肢待训练的关节处,IMU传感器为能够贴放在人体手臂上的便携惯导传感器,用于测量和跟踪手臂的姿态、加速度和角
速度等运动参数。
[0100] IMU又称惯性传感器,是一种能够测量加速度与旋转运动的传感器,IMU通常由加速度计、陀螺仪、磁力计三个主要的传感器组成。
[0101] 本发明以XSense公司的Xsens DOT传感器为例,它是一种小型、轻便且高精度的传感器装置,用于测量和跟踪物体的姿态、加速度和角速度等运动参数,它支持蓝牙连接,可
以与计算机进行无线通信和数据传输。计算机能够直接获取IMU传感器的欧拉角,四元数等
数据。
[0102] 计算机与功能性电刺激器连接,功能性电刺激器通过电极线连接电极片,电极片固定于上肢上。功能性电刺激器能够根据关节运动的实际角度与关节运动的目标角度的差
值,产生不同强弱的功能性电刺激,该功能性电刺激作用于肌肉上能够使肌肉收缩,从而产
生运动。
[0103] 本发明中的关节指代人体上肢的关节,包括肩关节、肘关节、腕关节。
[0104] 功能性电刺激器的具体结构,详见专利CN 218998050 U一种多通道双极性功能性电刺激电路。
[0105] 基于多IMU传感器的上肢关节角度解算方法,并结合PID控制器动态调整电刺激器强度,以实现对上肢的运动辅助功能,同时上肢的关节角度数据也将传输至康复游戏中用
来控制游戏中虚拟角色的移动。
[0106] 上位机控制终端用于管理功能性电刺激器、IMU传感器,以及与康复游戏客户端通信。
[0107] 康复游戏客户端采用虚拟现实技术,通过建立虚拟角色引导用户上肢运动至预期关节运动的目标角度。
[0108] 显示器与计算机连接,显示器用于显示康复游戏运行界面。
[0109] 功能性电刺激器与急停开关连接;急停开关由患者手持,用于控制功能性电刺激器的运行与否。
[0110] 使用时,
[0111] 设定期望的上肢运动关节运动的目标角度,患者自主运动,IMU传感器将上肢运动的关节运动的实际角度反馈至计算机,计算机通过PID控制器动态调整功能性电刺激器的
电刺激强度,以实现对上肢的运动辅助功能,同时上肢的关节运动的实际角度数据也将传
输至康复游戏客户端中用来控制游戏中的虚拟角色的移动。
[0112] 急停开关由患者手持,在必要时可以按下开关随时关闭刺激,电极片和IMU传感器由医师为其佩戴于手臂上,随后运行游戏界面选择训练部位即可开始康复训练。
[0113] 在上位机控制终端设计上,为了确保软件高效的运行,采用Qt C++作为上位机的开发工具。Qt是一个跨平台的应用程序开发框架,它提供了一套丰富的工具和类库,用于开
发图形化界面和跨平台应用程序。C++是一种高性能的编程语言,通过其直接内存访问、低
级别控制和优化能力以及Qt的事件驱动机制,可以实现对实时数据的快速响应和处理,从
而能够创建高效的上位机应用程序,保证了整个康复系统在软件上的安全性。
[0114] 结合图2、图3所示,上位机控制终端包括:
[0115] IMU传感器控制模块,用于建立或断开IMU传感器与上位机的通信连接,扫描IMU传感器状态和已连接的传感器数量、获取IMU传感器ID、获取IMU传感器的欧拉角实时参数
(roll、pitch、yaw)、IMU传感器的电量信息;并通过IMU控制面板单元显示。
[0116] IMU传感器控制模块包括IMU控制面板单元和IMU驱动单元;
[0117] IMU控制面板单元,用于建立或断开IMU传感器与上位机的通信连接,以及显示IMU传感器的参数信息;
[0118] IMU驱动单元,IMU传感器与上位机的通信连接后,IMU驱动单元通过无线连接方式,扫描并连接周围的IMU设备,还包括获取IMU传感器ID、获取IMU传感器的欧拉角实时参
数(roll、pitch、yaw)、IMU传感器的电量信息,返回到的信息将显示在IMU控制面板单元上。
[0119] IMU驱动单元通过执行传感器扫描线程后,返回扫描到的IMU传感器数量;以及执行传感器连接线程后,返回已连接的IMU传感器数量。
[0120] FES控制模块,用于建立或断开功能性电刺激器与上位机的通信连接,获取功能电刺激器通道的开关状态、刺激强度、频率、正脉冲脉宽、过度脉宽、保护电压、保护电流、刺激状态。
[0121] FES控制模块包括FES控制面板单元、串口管理器单元。
[0122] FES控制面板单元,用于通过串口管理器单元建立或断开功能性电刺激器与上位机的通信连接;以及设定功能电刺激器通道的开关状态、刺激强度、频率、正脉冲脉宽、过度脉宽、保护电压、保护电流、刺激状态。
[0123] 串口管理器单元,计算机通过串口向FES刺激器发送功能性电刺激指令。
[0124] 康复游戏连接模块,用于建立康复游戏客户端与上位机控制终端的通信连接,上位机控制终端会自动打开TCP端口对设置的特定端口进行监听,等待康复游戏客户端运行
之后,两者便能自动连接;上位机控制终端从康复游戏客户端获取待训练关节运动的目标
角度等,上位机通过闭环控制算法,生成指令控制下位机功能性电刺激器。
[0125] 康复游戏连接模块包括Socket管理器单元,用于打开TCP端口进行监听,准备将上位机控制终端与康复游戏客户端连接,康复游戏客户端将通过Socket接口向上位机控制终
端发送待训练关节运动的目标角度。
[0126] 关节角度控制模块,包括闭环控制单元,用于执行闭环控制算法,通过姿态算法解算待训练关节运动的实际角度,并利用待训练关节运动的实际角度与待训练关节运动的目
标角度差值,作为闭环控制单元的输入,输出用于控制功能性电刺激器的指令。
[0127] 闭环控制算法能够根据患者自主运动能力自动调节功能性电刺激强度的控制算法。
[0128] 因人体肌肉运动机理复杂多变,不同人之间的肌力也有所不同,使用开环的控制策略很难保证运动效果的一致性,从而降低了康复效率。相比起开环的关节肌肉刺激,采用
闭环的控制策略能够充分发挥患者的主动运动功能。
[0129] 本发明的关节角度闭环控制模块中可以采用PID控制,也可以是其他常用的闭环控制方式,为了实现关节角度的闭环控制,本发明采用加入了输出限幅和抗积分饱和的PID
闭环控制算法,作为功能性电刺激的控制方法。
[0130] PID闭环控制算法的具体逻辑如下。
[0131] 如图4所示,以腕关节的康复训练为,
[0132] 1)设定本次康复训练腕关节运动的目标角度为rin;
[0133] 2)建立肢体运动模型,根据IMU传感器检测的角度信息设算法推导计算出患者腕关节运动的实际角度yout,具体计算方法详见申请号20241085953963.1的发明中;
[0134] 3)计算腕关节运动的目标角度和实际运动角度的误差error=rin‑yout;
[0135] 4)整个控制器的输入是某一关节运动的目标角度,并根据发明20241085953963.1中的姿态解算方法获取关节运动的实际角度,将误差作为PID控制器的输入,PID控制器的
输出将作为功能性电刺激器的控制强度,最后功能性电刺激器将强度值转换为对应的电流
脉冲作用于人体,IMU传感器测量出关节运动的实际角度,并反馈给PID控制器,形成闭环控
制系统。
[0136] 工作流程:
[0137] 1、上位机连接IMU传感器,获取IMU传感器的参数信息:
[0138] 用户在IMU控制面板单元上点击连接按钮或通过设置进行自动连接,发出连接IMU传感器的请求;
[0139] IMU驱动单元开始扫描传感器并返回扫描到的传感器数量;
[0140] IMU驱动单元启动传感器连接线程,并返回已连接的传感器数量。
[0141] 2、上位机连接功能性电刺激器,获取功能性电刺激器的参数信息:
[0142] 用户在FES控制面板单元上点击连接FES按钮或通过设置进行自动连接,发起连接功能性电刺激器的请求;
[0143] 串口管理器单元开始寻找下位机功能性电刺激器,并返回连接成功的信号。
[0144] 3、上位机控制终端连接康复游戏客户端:
[0145] 用户打开康复游戏客户端,如上位机控制终端已打开,则自动连接上位机控制终端和康复游戏客户端。
[0146] Socket管理器单元打开TCP端口监听,获取康复游戏客户端中的实时数据,可进行相关康复训练。
[0147] 本系统基于Unity3D设计了专门用于上肢康复的康复游戏客户端,通过将使用者的上肢动作映射至游戏当中,让其能够交互式的在游戏中康复。
[0148] 康复游戏客户端,采用“玩家角色接触移动目标角色将其清除掉的玩法”,从而获取分数,图5展示的是游戏界面。
[0149] 本发明中设定显示器的左下角为坐标原点。
[0150] 在游戏中,上位机控制终端将回传通过IMU传感器解算得到的待训练关节运动的实际角度,并计算出映射到游戏中的向导角色的纵坐标位置,用于控制游戏中向导角色的
上下移动。
[0151] 游戏中设计了一个向导角色,位于图5中显示器中左侧上方所示,该向导角色用于引导指示玩家,也是患者运动的目标位置,称为患者期望关节运动的目标角度。
[0152] 游戏中将随机出现移动目标角色,即图5中显示器中右侧所示,患者通过手的抬升运动控制玩家角色接触移动目标角色,当玩家无法达到相应的高度时,功能性电刺激器会
介入,通过PID闭环控制算法计算功能性电刺激器的刺激强度,利用功能性电刺激刺激患者
上肢的肌肉,使其达到目标高度,并以此往复,达到训练患者运动手臂或者手腕的效果。
[0153] 游戏中玩家角色清除自屏幕右侧生成的移动目标角色后会获得相应的分数,并发出激励患者的提示音,让患者能够产生积极的反馈。
[0154] 在Unity中,最基本的元素是GameObject,一个GameObject可以挂载多个组件,其中脚本组件用于给GameObject进行编程,这里将不同的功能的类作为组件挂载在游戏对象
之上。
[0155] 整个游戏逻辑如图6所示,游戏运行的流程如下:
[0156] 1、开始游戏:
[0157] 游戏开始时,生成移动目标角色,位于屏幕右侧随机位置,移动目标角色从右向左移动。
[0158] 2、计算出距离玩家角色最近的移动目标角色:
[0159] 康复游戏客户端计算玩家角色与各个移动目标角色之间的距离,确定最近的移动目标角色。
[0160] 3、确定向导角色的位置:
[0161] 获取最近移动目标角色的Y轴坐标,将该坐标作为向导角色的位置。
[0162] 4、上位机控制终端进行闭环控制:
[0163] 康复游戏客户端将步骤3中获取的坐标值映射为关节运动角度,并发送给上位机控制终端作为目标角度,用于闭环控制。
[0164] 5、判断当移动目标角色经过玩家角色时是否发生接触:
[0165] 如果玩家角色接触成功,玩家得分,清除该移动目标角色。
[0166] 如果玩家角色接触失败,玩家不加分。
[0167] 6、判断此轮游戏流程是否结束:
[0168] 如果否,游戏继续,返回步骤2。
[0169] 如果是,游戏结束或重新开始新一轮游戏。
[0170] 如图7所示,康复游戏客户端,包括:
[0171] 连接管理模块,用于负责建立康复游戏客户端与上位机的通信连接,并接收上位机的数据和向上位机发送数据,保持与上位机的通信,实时获取功能性电刺激器的状态信
息;
[0172] 游戏管理模块,用于执行康复游戏客户端的功能,包括生成虚拟场景,虚拟场景中的玩家角色、向导角色、若干个移动目标角色;
[0173] 训练参数设定模块,用于输入关节的训练参数。
[0174] 具体的,康复游戏客户端具有:
[0175] 视图窗口模块,采用view类(视图窗口类),用于处理康复游戏客户端中UI相关的操作,对上肢训练部位进行设定,包括关节活动范围,训练时间等参数,方便适配不同的患
者。通过滑块设置上肢关节运动目标的最小和最大角度,上肢的训练部位的选择,上肢训练
的剩余时间的显示,连接状态的显示。
[0176] 视图窗口模块的输入参数:连接按钮对象、断连按钮对象、重新连接按钮对象、最小和最大角度的输入值滑块对象、当前连接状态文本框对象、连接类对象、训练部位选择框
对象。
[0177] 视图窗口模块的输出参数:当前连接状态信息文本、当前分数文本、剩余时间文本。
[0178] 游戏管理模块,采用GameManager类(游戏管理类),用于核心康复游戏客户端的运行,包括生成虚拟角色,重新开始游戏流程,计算虚拟角色之间位置等函数方法。
[0179] 游戏管理模块的输入参数:生成移动目标角色用的预制件、生成移动目标角色的列表、产生移动目标角色的最高最低点、单轮同时能产生的最多移动目标角色数量、每次产
生新的移动目标角色之间的延时、两轮移动目标角色之间的时间间隔、最高点和最低点之
间的距离长度。
[0180] 游戏管理模块的输出参数:生成的移动目标角色、移动目标角色纵坐标在可移动范围内的百分比、离玩家最近的移动目标角色、游戏运行相关的进程。
[0181] 向导模块,采用Guide类(向导类),用于控制向导角色的脚本,包含扫描离向导角色最近的移动目标角色,控制向导角色的移动协程。
[0182] 向导模块的输入参数:训练部位信息对象、GameManager类对象、handControl类对象。
[0183] 向导模块的输出参数:扫描出的离向导角色最近的移动目标角色、向导角色的移动、设置角度的指令。
[0184] 手部控制模块,采用handcontrol类(手部控制类),用于记录手部控制的状态,发送设置角度的指令,同时也存储训练的参数。
[0185] 手部控制模块的输入参数:训练部位信息、训练部位状态、关节运动的实际角度、关节运动的目标角度、关节运动的目标角度的最大值和最小值。
[0186] 手部控制模块输出参数:发送设置关节运动的目标角度的指令。
[0187] 通信连接模块,采用Connection类(通信连接类),用于管理康复游戏客户端与上位机控制终端的连接,并处理康复游戏客户端和上位机控制终端之间的数据收发工作。
[0188] 通信连接模块的输入参数:view对象类、DataAnalysis对象类、Socket连接对象。
[0189] 通信连接模块的输出参数:连接结果信息(在程序调试后台输出)。
[0190] 数据解析模块,采用DataAnalysis类(数据分析类),用于对上位机发来的数据进行解析,此类中使用正则表达式去解析数据,此项目中以手腕和肘关节的角度为例。
[0191] 数据解析模块的输入参数:训练部位信息对象。
[0192] 数据解析模块的输出参数:解析数据后得出的角度值。
[0193] 玩家角色控制模块,采用PlayerController类(玩家角色的控制类),用于控制玩家角色的上下移动。
[0194] 玩家角色控制模块的输入参数:训练部位信息对象、场景的上下边界坐标值。
[0195] 玩家角色控制模块的输出参数:玩家角色的当前位置。
[0196] 用户使用康复游戏客户端的流程:
[0197] 1、用户在显示器的UI界面上选择要训练的关节部位,通过滑块调整最大和最小的关节运动的目标角度范围,程序将在handcontrol类下存储当前训练的部位、训练范围、手
臂状态信息。
[0198] 2、用户通过UI界面开始新游戏,程序将通过GameManager类完成场景的初始化,并开始移动目标角色的生成过程,距离计算函数的运行。
[0199] 3、在游戏开始之后,程序通过Guide类对向导角色的位置进行控制,使其起到辅助用户、提示期望的角度作用。
[0200] 4、游戏运行过程中,有两个进程并行运行:
[0201] 向导角色的移动进程:通过获取生成向导角色的纵坐标,程序将通过Guide类动态调整向导角色位置,同时设置关节抬升的目标角度,并将该角度通过Connection类发送给
上位机控制终端;
[0202] 玩家角色的控制进程:程序通过Connection类得到上位机控制终端传输来的实时的关节运动的实际角度数据,并送入DataAnalysis类进行正则式解析,将该解析后的角度
发送到handcontrol类,PlayerController类通过handcontrol类里的角度数据,实时对玩
家角色进行上下位置的控制。
[0203] 5、当满足结束条件后,游戏结束,UI界面显示提示信息。
[0204] 康复游戏客户端关键的程序方法说明:
[0205] 1)生成从右向左移动的移动目标角色,康复系统中的移动目标角色,其所在的纵坐标值反映用户关节运动的目标角度:
[0206] 移动目标角色的生成与移动:
[0207] 1.初始化计时器和生成计数器。
[0208] 2.当计时器超过预设时间间隔且生成计数器小于最大生成数量时,执行步骤3,否则不生成新的移动目标角色,预设时间间隔和最大生成数量均可设置。
[0209] 3.从预设的对象列表中随机选择一个对象模板。
[0210] 4.根据选择的对象模板,生成新的移动目标角色并设置其初始位置、大小和移动速度,其中初始位置为一个随机的生成位置,横坐标为固定值,即显示虚拟场景的显示器屏
幕最右边点的横坐标,纵坐标在指定范围内随机;大小和移动速度为设置范围内的随机值。
[0211] 5.将新生成的移动目标角色加入到当前对象列表中,为其设置编号。
[0212] 6.持续更新生成的移动目标角色横轴坐标位置值,使其从右向左移动。
[0213] 7.重置计时器,返回步骤1。
[0214] 2)计算距离玩家角色最近的移动目标角色,即获取最近的移动目标角色的位置:
[0215] 1.如果当前目标对象列表为空,则返回空退出流程,否则继续执行步骤2。
[0216] 2.初始化记录的最小距离为一个初始值,该初始值大于显示虚拟场景的显示器屏幕最右边点的横坐标值即可,初始化最近的移动目标角色的序号为0。
[0217] 3.计算移动目标角色对象列表中当前序号的移动目标角色与玩家角色之间的距离。
[0218] 4.如果计算出的距离小于记录的最小距离,则更新当前最小距离为记录的最小距离,更新最近的移动目标角色的序号为当前序号,最近当前序号递增1,如果未完全遍历移
动目标角色对象列表中的所有对象,则返回上述的步骤3。
[0219] 5.通过最近的移动目标角色的序号返回最近的移动目标角色的位置。
[0220] 3)获取最近移动目标角色的纵坐标值,并设定玩家角色的目标位置的纵坐标为该最近的移动目标角色的纵坐标值,即为玩家角色需要到达的目的地:
[0221] 1.初始化玩家角色移动的持续时间为0,设定向导角色的当前位置移动到向导角色的目标位置的设定时间为1s。
[0222] 2.累计持续时间,检查向导角色的当前位置和目标位置的差值,如果差值小于0.001f的Unity单位,则无需移动,结束当前流程,否则继续执行步骤S123
[0223] 3.当持续时间在设定时间内时,每帧做一次循环,执行以下步骤:
[0224] 持续时间增加固定量,固定量为0.04s,用于记录移动过程中的时间进度;
[0225] 根据时间进度插值更新向导角色当前位置,向导角色位置纵坐标变换值为:
[0226] (目标位置‑当前位置)/(设定时间/每次持续时间增量),横坐标不变;
[0227] 等待持续时间到之前,重复跳转至增加持续时间固定量步骤依次向下执行,进行循环。
[0228] 4、直到向导角色到达目标位置停止步骤3的循环;
[0229] 5、将向导角色纵坐标值转换为关节运动的目标角度,并将该关节运动的目标角度发送至上位机控制终端。
[0230] 向导角色纵坐标值与关节运动的目标角度的映射关系如图8所示,通过指定关节运动的目标角度的最大和最小关节角度,从而让玩家利用上肢关节直接控制游戏对象。
[0231] 其映射公式为:Anglejoint=Minjoint+Pos×(Maxjoint‑Minjoint),
[0232] Anglejoint=Minjoint+Pos×(Maxjoint‑Minjoint),
[0233] 此公式建立了虚拟场景中虚拟角色纵坐标和现实中用户关节角度之间的映射关系,其中Anglejoint为关节运动的角度,Pos为虚拟场景中角色(指玩家角色和向导角色)的纵坐标映射参数,纵坐标映射参数为真实的纵坐标归一化值,在实际使用时乘以屏幕高度即
可完成映射;Minkoint为关节运动的目标角度的最小值,Maxjoint为关节运动的目标角度的最大值。
[0234] 上述公式在整个康复游戏客户端中有两处应用:
[0235] 1、将从上位机控制终端接收到的用户训练关节运动的实际角度,映射成为屏幕上的玩家角色纵坐标位置;
[0236] 2、将向导角色的纵坐标位置映射为关节运动的目标角度,发送回上位机控制终端。
[0237] 此公式的推导过程如下:
[0238] 在康复游戏客户端运行中,需要将用户训练关节运动的实际角度映射成为屏幕上的纵坐标位置,此纵坐标位置要保证用户训练关节,在目标角度范围内运动时不超过屏幕
显示范围且呈一定对应关系;同时,需要将向导角色的纵坐标位置映射为训练关节的目标
角度,此目标角度要求不会超出设定好的范围,如图8所示。
[0239] 关节运动的目标角度最大值Maxjoint和最小值Minjoint是通过用户在康复游戏客户端中设置的训练参数。
[0240] 目标角度可能存在的值域大小Range=Maxjoint‑Minjoint
[0241] 要满足不超过屏幕范围的要求,则需要保证当Anglejoint=Maxjoint时,玩家角色处于屏幕最顶端;当Anglejoint=Minjoint时,玩家角色处于屏幕最底端。
[0242] 关节角度在该值域中的比例参数
[0243] 将此比例参数作为玩家角色的纵坐标轴位置映射参数Pos,则:
[0244]
[0245] 变形后可得:
[0246] Anglejoint=Minjoint+Pos×(Maxjoint‑Minjoint)
[0247] 上述公式在该工程中的实际应用说明:
[0248] 以此项目工程中的应用1情况为例,映射后玩家角色纵轴坐标Y即满足:
[0249]
[0250] 其中Anglejoint是通过上位机控制终端的闭环控制模块解算得出的实际关节角度,Ytop为屏幕顶端纵坐标值,Ybottom为屏幕底端纵坐标值,目标角度最大值Maxjoint和最小值Minjoint是用户设置的训练参数。本发明中设定显示器的左下角为坐标原点。
[0251] 以此项目工程中的应用2情况为例,映射后发送的关节运动的目标角度AngleDestination满足:
[0252]
[0253] 其中AngleDestination是康复游戏客户端向上位机控制终端发送的目标关节角度,Y是向导角色纵轴坐标,Ytop为屏幕顶端纵坐标值,Ybottom为屏幕底端纵坐标值,目标角度最大值Maxjoint和最小值Minjoint是用户设置的训练参数。本发明中设定显示器的左下角为坐标
原点。
[0254] 5、将玩家角色纵坐标值映射为关节运动的目标角度,康复游戏客户端通过TCP Socket连接,并发送关节运动的目标角度到上位机控制终端。
[0255] 上位机控制终端中接收端:接收到数据后,利用正则表达式提取角度数据,并作为关节运动的目标角度参数参与PID闭环控制运算处理,最终发送给下位机功能性电刺激器
完成康复校正流程。
[0256] 4)得分判断逻辑:
[0257] 在游戏中,用户改变关节的运动角度,IMU传感器接收到实时信号后将该角度用于控制玩家角色的上下移动。这个过程中,玩家角色在游戏中的位置将与受训关节运动的实
际角度绑定。通过控制玩家角色在纵轴方向上下移动,从而触碰迎面游过来的移动目标角
色,将其清除掉,从而达到康复训练的目的。
[0258] 1.初始化游戏得分,并为玩家角色与移动目标角色设置碰撞触发器。
[0259] 2.如果检测到玩家角色与移动目标角色发生接触时,销毁移动目标角色,则判定玩家加分,更新计分器UI界面的相关提示文字。
[0260] 3.如果玩家角色未与移动目标角色发生接触,而移动目标角色到达场景最左侧固定横坐标,则判定玩家减分,更新计分器UI界面的相关提示文字。
[0261] 同时在康复训练,游戏计分时,记录功能性电刺激启动时间,让患者尽可能主动运动,该装置能够量化患者实现目标过程中患者主动运动的程度,从而激励患者积极进行主
动康复训练,具有更好的疗效。
[0262] 康复训练计分方法:
[0263] 每次康复训练共完成10次清除移动目标角色的游戏。每次清除掉一条生成的移动目标角色最高得10分。在康复训练时,为了鼓励患者自主运动,计分时,将考虑每清除一条
移动目标角色的过程中功能性电刺激启动的时间,如果没有用功能性电刺激,完全是患者
自主运动则此次清除移动目标角色得到满分。
[0264] 如果患者不能自主运动,则根据功能电刺激发生的时间占此次游戏总时间的比例决定该次清除移动目标角色游戏得分。例如,在清除移动目标角色过程中,有一半是患者自
主运动的,一半是功能性电刺激辅助的,则本次清除移动目标角色游戏得5分。该计分方法
能够客观反馈出患者自主完成康复训练的能力。
[0265] 实施例2
[0266] 如图9所示,本发明提供一种基于功能性电刺激的神经肌肉协同康复训练方法,采用前述的基于功能性电刺激的神经肌肉协同康复训练装置,包括如下步骤:
[0267] 步骤S1、康复游戏客户端生成虚拟场景和用户界面,用户通过用户界面设置关节的训练参数,包括设定需要训练的关节、关节运动的目标角度的最大值和最小值、训练时
间,开启训练流程;
[0268] 步骤S2、康复游戏客户端生成虚拟场景中的初始虚拟角色,包括玩家角色、向导角色、若干个移动目标角色;玩家角色,用于反映关节实际运动;移动目标角色,为虚拟场景中移动的物体,作为玩家角色需要追踪的目标;向导角色,用于引导玩家角色与移动目标角色
相遇时所要到达的坐标;初始化功能性电刺激的初始强度为零;同时获取距玩家角色最近
的移动目标角色的纵坐标值,依据最近的移动目标角色的纵坐标值调整向导角色的纵坐标
位置,将该向导角色的纵坐标位置转换成关节运动的目标角度,向导角色的纵坐标位置与
关节运动的目标角度互为映射;向导角色的纵坐标值与最近的移动目标角色的纵坐标值相
同,向导角色的横坐标值与玩家角色的横坐标值相同;
[0269] 步骤S3、进行神经康复训练:玩家角色、向导角色刺激患者的视觉神经并反馈至患者大脑神经,基于玩家角色、向导角色的高度确定关节运动康复训练的目标高度,患者确定
肢体运动方向,大脑神经发出运动指令,并将该运动指令传导给肌肉,患者神经得到康复训
练;
[0270] 步骤S4、进行肌肉康复训练:肌肉一方面在患者运动指令产生肌肉主动运动;另一方面通过功能性电刺激闭环运动算法读取关节运动的实际角度,计算关节运动的目标角度
和关节运动的实际角度两者的差值,若差值小于0,则无需使用功能性电刺激;若差值大于
0,关节运动的实际角度小于目标角度,根据差值计算功能性电刺激强度,并发出该功能性
电刺激,使肌肉产生收缩,从而产生关节运动;康复游戏客户端读取上位机控制终端发送过
来的关节运动的实际角度,将该关节运动的实际角度实时映射为玩家角色的纵坐标位置,
实时更新玩家角色位置;
[0271] 步骤S5、上位机控制终端读取康复游戏客户端发送过来的关节运动的目标角度,对比上位机控制终端从IMU传感器接收到的关节运动的实际角度,基于关节运动的目标角
度与实际角度差值,若关节运动的实际角度小于目标角度,则返回步骤S3继续执行,直至关
节运动的目标角度大于实际角度,即玩家角色抵达向导角色的位置,功能性电刺激辅助用
户关节运动到目标角度,退出循环,完成用户的神经肌肉协同康复训练。
[0272] 根据步骤S5中完成康复训练时功能性电刺激累计强度和发生时间,在康复游戏中设置计分单元评估患者自主运动的能力,功能性电刺激累计强度、发生时间与患者自主运
动的能力成反比;
[0273] 若功能性电刺激不介入关节运动,患者完全自主控制玩家角色到达向导角色时,计分单元增加的分数为满分a;
[0274] 若功能性电刺激发生时间大于零、功能性电刺激强度大于零,患者需要功能性电刺激辅助后控制玩家角色到达向导角色,计分单元增加分数为满分a×(1‑功能电刺激发生
时间/单次游戏总时间)×(1‑功能性电刺激强度/功能性电刺激强度最大强度),单次游戏
总时间是指玩家角色从初始位置运动至向导角色位置的时间;
[0275] 若患者完全依赖功能性电刺激才能控制玩家角色到达向导角色,计分单元增加分数为0。
[0276] 以上技术特征构成了本发明的最佳实施例,其具有较强的适应性和最佳实施效果,可根据实际需要增减非必要技术特征,来满足不同情况的需要。
[0277] 最后应当说明的是,以上内容仅用以说明本发明的技术方案,而非对本发明保护范围的限制,本领域的普通技术人员对本发明的技术方案进行的简单修改或者等同替换,
均不脱离本发明技术方案的实质和范围。

当前第1页 第1页 第2页 第3页