当前位置: 首页 > web >正文

《基于电阻抗断层扫描(EIT)驱动的肌肉骨骼模型表征人体手臂动态意图用于人机交互》论文解读

本研究提出一种电阻抗断层扫描(EIT)驱动的肌肉骨骼模型,旨在通过整合 EIT 传感系统与肌肉识别、参数估计及肌肉骨骼系统建模方法,实现人体手臂动态意图(如腕部运动学、端点刚度)的表征。该模型从解剖学横截面捕获肌肉活动,同时提供激活动态和形态特征,相比现有技术需更少训练样本且传感系统更紧凑。通过多自由度腕部运动学估计、手臂端点刚度估计及机器人变导纳控制实验验证,其精度与最先进方法相当,且融入生理约束以确保交互安全性。未来将优化 EIT 系统以适应复杂任务。

目录

一、为什么要做这个研究?

二,核心原理

三,关键技术 1:如何 “测” 肌肉的电阻变化?

四,关键技术 2:如何知道 “哪块肌肉在动”?

五,关键技术 3:如何算出 “手腕转了多少度”?

六,关键技术 4:如何判断 “手臂有多硬”?

七,实验验证:这套方法好用吗?

实验 1:手腕角度估计(无对应单独图,结果见表 2)

实验 2:手臂端点刚度估计(图 8-10)

实验 3:机器人变导纳控制(图 11)

八、总结:这套技术好在哪里?有什么不足?


一、为什么要做这个研究?

当我们和机器人互动时(比如康复机器人辅助训练、机械臂配合搬运),机器人必须精准理解两个关键信息:

动作幅度:比如手腕要向上弯 30 度,还是向左偏 20 度;

用力程度:比如手臂是放松的(容易被推动),还是紧绷的(能抵抗外力)。

但人的手臂肌肉系统非常复杂:

浅层肌肉和深层肌肉(如控制手指的深层屈肌)一起发力,传统传感器(如贴在皮肤表面的肌电传感器)测不到深层信息;

肌肉收缩时,不仅会变短(形态变化),还会变 “硬”(刚度变化),单一信号很难同时反映这两种变化;

过去的模型要么需要海量训练数据(换个人就不准了),要么设备太笨重(如超声仪器),不适合日常使用。

因此,研究团队提出用电阻抗断层扫描(EIT) 技术,结合 “肌肉骨骼模型”,解决这些问题。


二,核心原理

图 1 是整个技术的 “流程图”,清晰展示了从 “大脑想动” 到 “机器人动” 的完整链条:

  1. 神经信号→肌肉活动(左侧):
    大脑发出的神经信号传到肌肉,引发 “兴奋 - 收缩” 过程 —— 肌肉纤维带电(神经兴奋),同时缩短、变粗(形态变化)。这两个变化都会导致肌肉的 “电阻” 改变(就像湿毛巾和干毛巾电阻不同)。

  2. 肌肉活动→EIT 信号(中间):
    EIT 传感器能 “看穿” 手臂横截面,测量这种电阻变化,转换成图像(类似 CT 切片,但更快、更轻便)。从图像中能同时提取两种关键信息:

    • 肌肉是否兴奋(电阻变化反映神经活动);
    • 肌肉长度、厚度的变化(电阻分布变化反映形态)。
  3. EIT 信号→动作意图(右侧):
    用 “肌肉骨骼模型” 把 EIT 信息翻译成具体参数:

    • 手腕角度(比如屈伸 30 度);
    • 手臂端点刚度(比如对抗外力的能力)。
  4. 动作意图→机器人控制(最右侧):
    这些参数传给机器人,机器人就能调整运动轨迹和 “硬度”,实现自然配合。


三,关键技术 1:如何 “测” 肌肉的电阻变化?

要获取 EIT 信号,需要一个能贴在手臂上的 “传感器”。图 2 展示了这个传感器的设计:

外观:像一个弹性袖套,内侧有 16 个电极(图中圆形小点),均匀分布在手臂横截面(比如小臂最粗的地方)。

工作原理

电极轮流发出微弱的正弦电流(40kHz,比家用交流电频率高很多,对人体安全);

电流穿过手臂时,肌肉电阻变化会导致电压变化,其他电极测量这些电压;

每 “扫” 一次所有电极,能得到 208 个电压数据(形成一帧图像),每秒能扫 104 次(104fps),足够实时跟踪动作。

优势
袖套是弹性织物做的,电极线藏在里面(S 形布线),手臂弯曲、转动都不影响,解决了传统传感器 “线容易缠、接触不稳定” 的问题。


四,关键技术 2:如何知道 “哪块肌肉在动”?

EIT 测的是整个手臂横截面的电阻变化,就像一张 “模糊的地图”,必须定位到具体肌肉(比如控制手腕弯曲的 “指浅屈肌”)。图 3 展示了这个 “肌肉识别” 的过程:

找 “活跃区域”
计算每个 EIT 测量点(像素)的 “运动响应度”—— 这个点的电阻变化和实际动作(如手腕动)的关联有多强。关联越强,说明对应的肌肉越可能在工作(图中红色越深,响应度越高)。

匹配解剖结构
把响应度高的 “峰值点” 和人体解剖图对照(比如图 4 中,小臂横截面的肌肉分布是已知的),就能确定具体肌肉:

浅蓝色圈:桡侧腕短伸肌(控制手腕伸直 + 向桡侧偏);

红色圈:指浅屈肌(控制手腕弯曲);

绿色圈:指深屈肌(辅助手腕弯曲,深层肌肉);

深蓝色圈:指伸肌(辅助手腕伸直)。

参数调优
设定阈值(比如相关系数 > 0.5),只保留最相关的肌肉信号,避免干扰。


五,关键技术 3:如何算出 “手腕转了多少度”?

知道哪块肌肉在动后,需要把肌肉活动转换成具体的关节角度。图 5 和图 6 展示了这个过程:

简化手腕运动(图 5):
手腕主要做两个方向的运动(2 个自由度):

屈伸(FE):手心向上 / 向下弯;

桡尺偏(RU):手腕向大拇指侧(桡侧)或小拇指侧(尺侧)偏。
模型把手腕简化成 “两轴关节”,用几何关系描述运动。

肌肉长度→关节角度(图 6):
肌肉收缩时长度会变化(比如屈腕时,屈肌变短,伸肌变长)。通过实验发现,肌肉长度变化和关节角度大致成 “线性关系”(简化复杂计算)。
例如:用 LASSO 模型(一种机器学习方法)把 EIT 信号转换成肌肉长度,再用余弦定理算角度 —— 就像知道三角形两边和夹角,能算出第三边一样。


六,关键技术 4:如何判断 “手臂有多硬”?

“刚度” 是指手臂对抗外力的能力(比如拎重物时手臂会更 “硬”)。图 7 展示了刚度的计算过程:

测手臂姿势
贴两个 IMU 传感器(类似运动手环的加速度计)在手臂上:一个在小臂(靠近手腕),一个在上臂(靠近手肘),实时记录手臂的弯曲角度和位置。

算肌肉激活度
肌肉越用力,对外的推力越大(比如推机器人手柄的力)。用 EIT 信号训练模型,反推肌肉的 “收缩强度”,再根据发力方向校正(比如向前推和向侧推,肌肉用力模式不同)。

转换为端点刚度
通过两个 “Jacobian 矩阵”(数学工具)转换:

肌肉 Jacobian:描述肌肉长度变化如何影响关节角度;

手臂 Jacobian:描述关节角度如何影响手臂端点的位置。
最终算出端点刚度 —— 比如手臂能抵抗多少力才会变形。


七,实验验证:这套方法好用吗?

研究团队做了三组实验,用数据证明技术的有效性:

实验 1:手腕角度估计(无对应单独图,结果见表 2)

过程:5 个人戴 EIT 袖套,做手腕屈伸、桡尺偏、混合运动,对比模型算出的角度和实际角度。

结果

单方向运动:准确率(R²)>0.9(越接近 1 越准),误差(NRMSE)0.06-0.11;

多方向运动:准确率仍 > 0.8,而传统数据驱动模型(如 ElasticNet)在多方向任务中几乎失效(R²<0.5)。


实验 2:手臂端点刚度估计(图 8-10)

装置(图 8):人推 KUKA 机器人的手柄,机器人测力,同时 EIT 测肌肉变化。

扰动测试(图 9):机器人轻轻推手臂(扰动),看手臂抵抗的力度,用来算实际刚度。

结果(图 10):

考虑肌肉发力方向的模型(Model-2)平均误差 13.85%,比不考虑方向的模型(20.81%)更准;

肌肉收缩越用力,端点刚度越大(图 10c),符合实际情况。


实验 3:机器人变导纳控制(图 11)

目的:验证模型能否实时控制机器人。

过程:人通过手腕动作控制 KUKA 机械臂移动,同时通过 “放松” 或 “握拳” 调节机器人的 “灵活性”(放松时机器人易被推动,握拳时不易被推)。

结果(图 11、表 3):

机械臂轨迹和预期几乎一致(图 11a、b);

放松时,单位力导致的位置偏差是 1.40mm/N;握拳时降至 0.64mm/N,说明机器人能根据人的发力状态调整 “硬度”。


八、总结:这套技术好在哪里?有什么不足?

优势

信息全:EIT 同时测深层肌肉和浅层肌肉,兼顾形态和神经活动;

效率高:需要的训练数据少(1k-2k 样本,传统方法需 18k+);

实用化:传感器是弹性袖套,轻便不影响动作,适合日常使用。

不足

目前只能处理简单动作,复杂动作(如多关节联动)还需优化;

EIT 是 2D 的,只能测一个横截面,未来可发展 3D EIT;

实时性有延迟(约 100ms),需提速。

未来研究将聚焦这些问题,让机器人更 “懂” 人类动作。

http://www.xdnf.cn/news/16329.html

相关文章:

  • 当人机交互迈向新纪元:脑机接口与AR/VR/MR的狂飙之路
  • Spring Cloud Gateway 服务网关
  • 2025年第四届创新杯(原钉钉杯)赛题浅析-助攻快速选题
  • Android Studio 2024 内嵌 Unity 3D 开发示例
  • 【第四章:大模型(LLM)】01.神经网络中的 NLP-(1)RNN、LSTM 和 GRU 的基本原理和应用
  • 全国产化5G-A低空经济基座
  • 【Unity笔记】OpenXR 之VR串流开发笔记:通过RenderTexture实现仅在PC端展示UI,在VR眼镜端隐藏UI
  • 大模型进阶面试题
  • 车载 CAN-Bus 数据记录仪说明书
  • 【C语言进阶】一篇文章教会你文件的读写
  • 【unitrix】 6.16 非负整数类型( TUnsigned )特质(t_unsingned.rs)
  • 电子电子架构 --- 软件项目的开端:裁剪
  • Java面试题(中等)
  • Javascript NaN Symbol BigInt
  • TDengine 转化类函数 CAST 用户手册
  • 7.24 C/C++蓝桥杯 | 排序算法
  • Android15或AndroidU广播的发送流程
  • 星慈光编程虫2号小车讲解第三篇--附件概述
  • 深入理解 IO 多路复用:从 select 到 epoll
  • MySQL---索引、事务
  • VUE2 学习笔记5 动态绑定class、条件渲染、列表过滤与排序
  • 【全新上线】境内 Docker 镜像状态监控
  • 秋招Day18 - MyBatis - 基础
  • C语言转义字符‘\\‘‘ 解析与常见误区
  • 六种经典智能优化算法(PSO/GWO/WOA/HHO/DBO/SSA)无人机(UAV)三维路径规划,Matlab代码实现
  • TimeXer - 重新审视时序预测内的外生变量
  • 【LeetCode数据结构】二叉树的应用(一)——单值二叉树问题、相同的树问题、对称二叉树问题、另一棵树的子树问题详解
  • MySQL的命令行客户端
  • markdown学习笔记(个人向) Part.2
  • 跨境支付入门~国际支付结算(区块链篇)