
最近看到“迈步机器人获中信建投近亿元战略融资”的消息36氪在报道中将其描述为“首家盈利的国产医疗外骨骼公司”。这个信息在医疗机器人圈子里讨论度很高因为过去外骨骼机器人更多停留在实验室、论文和样机阶段真正能实现盈利并拿到头部机构战略融资的国产企业并不多。也正因为这样很多开发者开始关注医疗外骨骼背后的技术体系和工程落地方式。本文不准备只点评融资事件而是把重点放在医疗外骨骼机器人的核心技术、开发环境、软硬件架构和可复现的算法示例上。文章会从概念开始逐步拆解一个典型的外骨骼控制系统并给出步态相位识别、关节力矩控制、传感器数据解析等方向的 Python 示例。无论你是机器人方向的学生还是刚进入康复医疗设备领域的嵌入式工程师都可以通过这篇文章建立一条相对完整的学习路径。1. 背景与核心概念1.1 什么是医疗外骨骼机器人医疗外骨骼机器人是一种穿戴在人体外部通过传感器感知用户运动意图再通过电机、气缸或液压执行器为关节提供辅助力矩的机电一体化设备。它并不是简单的“机械骨架”而是一个包含感知、决策、执行三层结构的智能系统。从应用场景看医疗外骨骼主要面向两类人群因脑卒中、脊髓损伤等原因导致下肢运动功能障碍的患者。需要进行术后康复训练、步态重建或长期卧床后重新学习行走的人群。设备需要根据患者的残余肌力、体重、关节活动范围等因素提供不同强度的助力。也就是说外骨骼不是一个固定输出力矩的机械装置而是一个能实时调整助力的主动系统。这也是它区别于普通支具和矫形器的关键点。1.2 为什么需要医疗外骨骼传统康复训练高度依赖康复治疗师训练强度、频次和一致性都受到人力资源的限制。物理治疗师每天需要协助患者进行大量重复的步态训练很容易疲劳也无法保证每一次训练都能维持同样的力度和轨迹。医疗外骨骼的出现本质上是在解决“康复训练强度不够、数据不透明、治疗师负担重”这三个问题。患者穿戴外骨骼后设备可以按照设定轨迹带动下肢完成行走动作同时把关节角度、速度、力矩、步态对称性等数据记录下来。医生和治疗师可以根据这些客观数据调整训练方案而不是只凭经验判断。此外随着电机和传感器成本下降外骨骼设备也开始从大型医院康复科向社区康复中心、甚至家庭场景延伸。1.3 从融资看行业拐点回到迈步机器人这次融资。36氪的报道标题里有两个信息值得关注第一是“首家盈利”第二是“近亿元战略融资”。过去几年国内外骨骼机器人公司大多处于研发投入阶段收入来源主要是科研项目、临床合作、少量设备销售距离规模化盈利较远。如果公开报道属实迈步机器人能够实现盈利说明其产品已经从“样机展示”走向了“临床复购”也就是说产品性能和售后体系已经能够支撑商业化运营。中信建投作为战略投资方进入也不只是财务投资更多是看中康复医疗设备国产替代和老龄化带来的长期市场空间。对开发者来说这个信号意味着医疗外骨骼相关岗位需求会增加产品研发、算法开发、临床应用支持等方向都会释放更多机会。2. 医疗外骨骼系统的总体架构2.1 系统分层医疗外骨骼机器人从硬件到软件可以分成四层层级组成主要职责感知层IMU、编码器、足底压力传感器、EMG传感器采集人体姿态、关节角度、地面反力和肌肉活动数据决策层主控板、嵌入式处理器、算法模型识别运动意图生成关节目标角度或目标力矩执行层电机、减速器、驱动器、电源按照指令输出关节力矩带动人体运动交互层显示屏、App、上位机软件显示康复数据、训练进度供医生调整参数这四层之间通过 CAN、串口、EtherCAT 或 Wi-Fi 等通信方式连接。不同产品的架构略有差异但整体思路一致感知层提供数据决策层计算目标执行层完成动作交互层让人能看见和干预。2.2 核心功能模块从功能角度看一个完整的医疗外骨骼系统可以拆成以下几个模块步态周期检测模块判断当前处于支撑期还是摆动期。运动意图识别模块判断用户是想迈左腿、右腿还是停止。关节轨迹生成模块根据步频和步幅生成髋、膝关节目标角度。力矩控制模块将目标角度或目标力矩转换为电机电流指令。安全保护模块检测关节超限、电机过流、跌倒等异常状态。数据记录与云平台模块保存训练数据便于康复评估。这些模块并不是完全独立的。步态检测结果会直接影响轨迹生成轨迹生成又会作为力矩控制的输入任何一个环节出现延迟或错误都会影响穿戴者的体验和安全。2.3 两种典型工作模式当前医疗外骨骼通常有两种工作模式主动辅助模式用户肌肉还有一定力量外骨骼通过传感器感知用户的主动发力只补充不足的部分。这种模式适合康复中后期的患者有助于保留和训练残余肌力。被动驱动模式外骨骼按照预设的步态轨迹带动下肢运动患者不需要主动发力。这种模式适合早期康复或肌力接近零的患者。从控制算法角度看主动辅助模式比被动驱动模式复杂很多因为它需要解决“人机耦合”问题外骨骼不能和患者对抗必须快速识别用户意图并平滑输出助力。这也是外骨骼开发中最有挑战性的部分。3. 开发环境与硬件平台选型3.1 软件开发环境医疗外骨骼的软件部分通常分为上位机和下位机两侧。下位机使用 C/C 编写运行在 STM32 等 MCU 上负责实时控制和安全保护。上位机使用 Python、C 或 Web 技术开发负责数据可视化、康复训练方案配置和远程管理。算法仿真常用 Python NumPy SciPy Matplotlib 或 MATLAB/Simulink 进行运动学、动力学和控制算法仿真。本文的示例以 Python 为主版本建议使用 Python 3.10 或更高版本。需要声明一点不同项目的依赖版本差异较大下面代码只演示实现思路具体环境中请根据自己的项目实际情况调整。3.2 传感器选型外骨骼最常用的传感器包括惯性测量单元IMU测量三轴加速度和角速度用来估计大腿、小腿的倾角和角速度。关节编码器安装于髋关节和膝关节电机输出端用于获取精确的关节角度。足底压力传感器通常布置在鞋垫前掌和后跟位置用于判断支撑期和摆动期。肌电传感器EMG采集肌肉电信号用于识别主动发力意图但对贴放位置和信号质量要求较高。以步态检测为例常用的方案是“足底压力 IMU”融合。足底压力可以可靠地判断脚是否触地IMU 可以判断摆动过程中腿部的运动状态。两者结合比单纯依赖某一种传感器更稳定。3.3 执行器与驱动医疗外骨骼关节执行器需要同时满足高转矩密度、低噪音、低功耗和精确力矩控制这几个要求。目前比较常见的方案是无刷直流电机配合谐波减速器或行星减速器。直流伺服电机配合力矩传感器。部分轻量级设备使用弹性驱动或串联弹性执行器目的是提高柔顺性。在驱动层面通常会使用专门的无刷电机驱动器通过 CANopen、Modbus 或 PWM 波控制电流环。电流环响应速度越快设备的安全性和柔顺性越好。开发者在做硬件选型时不要只看电机峰值扭矩还要关注额定扭矩、连续运行时间、减速器回差和整体重量。3.4 主控与通信主控板的选型取决于算法复杂度和实时性要求。如果只做角度轨迹跟踪和安全保护使用 STM32F4 或 STM32H7 系列 MCU 就足够了。如果要在设备端运行步态识别神经网络可能需要使用带 NPU 的嵌入式平台例如瑞芯微 RK3588、Jetson Orin 等。如果只是做算法验证也可以先在 PC 上用 Python 完成再移植到嵌入式平台。通信方面关节驱动器与主控之间常用 CAN 总线传感器与主控之间常用 I2C、SPI 或串口。上位机与下位机之间的通信可以用 USB 转串口、Wi-Fi 或蓝牙。这里要注意医疗设备的数据传输必须关注实时性和安全性建议在应用层增加帧头、帧尾、校验字段和超时重传机制。4. 核心技术拆解4.1 人体运动意图识别运动意图识别是主动辅助模式的核心。简单来说系统需要知道“用户现在想做什么”然后决定要不要助力、助力多少、什么时候停止助力。常见的意图识别信号有足底压力中心变化。骨盆倾斜角度和角速度。髋关节和膝关节编码器角度变化趋势。大腿前侧或后侧肌群 EMG 信号。在工程上并不需要一开始就使用复杂的深度学习方法。很多产品先用阈值逻辑判断意图当足底压力从后跟转移到前掌、同时躯干前倾角超过某个阈值时判断为“准备迈步”。这种方式计算量小、响应快、可解释性强适合嵌入式设备实时运行。4.2 步态相位划分一个完整的步态周期可以分为支撑相和摆动相。支撑相脚接触地面身体重心向前移动约占整个步态周期的 60%。摆动相脚离开地面在空中向前摆动约占 40%。进一步细分支撑相又包括足跟着地、全脚掌着地、支撑中期、足跟离地、足尖离地等阶段。这些阶段对外骨骼控制意义重大因为不同阶段关节需要的力矩完全不同。例如在支撑初期膝关节需要较大阻尼防止屈曲过度在摆动相髋关节需要主动屈曲力矩带动大腿向前在支撑后期踝关节需要跖屈力矩完成蹬地动作。因此步态相位识别是所有下肢外骨骼控制算法的基础。4.3 关节力矩控制外骨骼关节控制大致分为两类位置控制让关节角度始终跟踪预设轨迹适合被动驱动模式。力矩控制让关节输出的力矩与人体交互力保持柔顺关系适合主动辅助模式。力矩控制里导纳控制和阻抗控制是两种常用方法。阻抗控制关注“位置偏差-力”的动态关系导纳控制则通过外环力传感器计算期望位置修正量再交给内环位置控制器执行。对于初学者可以从 PID 位置控制开始理解但进入实际产品阶段后必须加入力矩环和柔顺控制否则设备会显得“僵硬”甚至让患者感到不适。4.4 安全保护逻辑外骨骼的安全性比算法精度更重要。一旦系统判断错误可能导致患者摔倒或关节损伤。常见的安全保护包括关节角度限位。电机电流超限保护。足底压力异常检测。跌倒检测。急停按钮和使能开关。电池电压低电量保护。这些保护逻辑不能只写在应用层最好在 MCU 的定时器中断或独立安全协处理器中执行。建议采用“双通道”设计一个通道用于正常控制另一个通道独立监控安全状态一旦异常立即停止电机并释放刹车。5. 完整实战案例Python 模拟步态相位识别5.1 项目目标为了帮助读者理解步态相位识别的基本思路我们用一个 Python 程序模拟足底压力信号并据此判断当前处于支撑相还是摆动相。这不仅是一个算法演示还包含了一个可复用的代码框架。你可以把模拟数据替换成真实传感器采集的数据从而快速验证你的阈值逻辑。5.2 模拟传感器数据我们先用 NumPy 生成一组模拟的足底压力数据。假设前掌和后跟各有一个压力传感器数值范围是 0 到 100pressure_heel表示后跟压力pressure_toe表示前掌压力。# 文件路径simulate_data.py import numpy as np def generate_pressure_data(duration10.0, fs100.0): t np.arange(0, duration, 1.0 / fs) # 模拟交替迈步的足底压力变化 phase 2 * np.pi * 0.8 * t # 步频约 0.8Hz pressure_heel np.clip(70 50 * np.sin(phase 0.5), 0, 100) pressure_toe np.clip(60 55 * np.sin(phase 2.0), 0, 100) return t, pressure_heel, pressure_toe这里使用正弦函数模拟双脚交替受力的变化情况。真实场景中压力信号会有更多噪声并且会受到步速、体重、鞋垫贴合度的影响所以不能直接套用正弦模型。5.3 步态相位判断逻辑接下来定义相位判断函数。基本逻辑是只要后跟压力或前掌压力大于阈值就认为当前处于支撑相否则认为是摆动相。为了增加容错性可以加一个简单的滞后比较器避免信号在阈值附近抖动导致相位频繁切换。# 文件路径gait_phase_detector.py THRESHOLD 25.0 HYSTERESIS 5.0 def detect_phase(pressure_heel, pressure_toe, current_phase): max_pressure max(pressure_heel, pressure_toe) if current_phase swing: # 只有压力超过上阈值才切回支撑相 if max_pressure THRESHOLD HYSTERESIS: return stance return swing else: # 只有压力低于下阈值才切换到摆动相 if max_pressure THRESHOLD - HYSTERESIS: return swing return stance这个滞后比较器在工程上很实用。它不会因为压力值在阈值线附近抖动而反复切换状态能明显提升相位识别的稳定性。阈值参数可以根据用户体重和传感器安装位置做校准。5.4 运行与可视化下面我们把数据生成、相位识别和结果统计整合到一个脚本中运行。# 文件路径main.py from simulate_data import generate_pressure_data from gait_phase_detector import detect_phase import matplotlib.pyplot as plt t, pressure_heel, pressure_toe generate_pressure_data(duration5.0) phases [] current_phase swing for h, toe in zip(pressure_heel, pressure_toe): current_phase detect_phase(h, toe, current_phase) phases.append(current_phase) stance_count sum(1 for p in phases if p stance) swing_count len(phases) - stance_count print(f支撑相采样点: {stance_count}, 摆动相采样点: {swing_count}) # 绘制结果 plt.figure(figsize(10, 4)) plt.plot(t, pressure_heel, labelheel) plt.plot(t, pressure_toe, labeltoe) for i, p in enumerate(phases): if p stance: plt.axvspan(t[i], t[i] 0.01, colorgreen, alpha0.3) else: plt.axvspan(t[i], t[i] 0.01, colorred, alpha0.3) plt.xlabel(time (s)) plt.ylabel(pressure) plt.legend() plt.show()运行这段代码后你会看到绿色区域表示支撑相红色区域表示摆动相。输出的采样点数可以帮你了解相位占比是否符合预期。如果只是做算法验证把matplotlib的部分去掉程序同样可以在嵌入式设备中运行。5.5 扩展到硬件把上面这套逻辑移植到 MCU 时通常不需要使用 Python而是用 C 语言实现同样的滞后比较逻辑。你需要把足底压力传感器的 ADC 值读取出来经过滑动平均滤波后再调用相位判断函数。建议保留一个小的调试接口定期输出相位状态和原始传感器值。这样在患者穿戴时可以快速调整阈值而不需要重新编译整个固件。6. 常见问题与排查思路在开发医疗外骨骼的过程中很多问题并不是单一原因导致的而是传感器、控制算法和机械结构共同作用的结果。下面整理几个高频问题和排查方向。问题现象常见原因解决思路外骨骼动作明显滞后于患者意图算法延迟过大或通信周期设置不合理检查传感器采样率、控制器控制周期、CAN 波特率支撑相和摆动相频繁误切换压力阈值不合理或信号噪声大增加滤波使用滞后比较器重新标定阈值关节电机输出力矩不足减速比太小或电机峰值扭矩不够重新计算峰值力矩与连续力矩需求患者感觉设备僵硬、不自然控制模式偏硬缺少力矩环或柔顺控制从位置控制切换到位置-力矩混合控制开机自检异常传感器初始化失败或电源电压不稳分模块排查先查供电再查总线通信设备运行一段时间后发热严重电机长时间工作在过流状态优化控制参数增加散热结构或降低辅助力上位机数据丢帧串口缓冲区溢出或通信协议不合理使用应答机制增加帧序号和 CRC 校验如果你遇到类似问题建议先记录关键日志再逐步隔离模块。不要一开始就修改算法参数因为传感器噪声、机械摩擦、控制延迟都可能导致同样的现象。7. 医疗器械合规与工程最佳实践7.1 安全性与可靠性设计医疗外骨骼属于医疗器械产品上市前需要满足相关法规要求。国内需要关注 NMPA 的注册审批要求国际市场上需要参考 IEC 60601 系列、ISO 13485、ISO 14971 等标准。作为研发工程师在代码和硬件设计阶段就要为合规做准备。一个比较实际的做法是建立“失效模式与影响分析”文档把每个可能的故障点列出来评估其对患者的影响等级然后设计对应的保护措施。比如电机驱动器失控时机械刹车能否自动抱死电池电量耗尽时控制系统能否安全切换这些问题不能留到产品化之后才考虑。7.2 数据记录与追溯康复外骨骼每天都会产生大量运动数据包括步态周期、关节角度、训练时长、辅助力大小等。这些数据一方面用于训练效果评估另一方面也是故障诊断和迭代优化的基础。建议在软件层面统一数据格式并在数据库中记录以下字段设备编号、固件版本。患者匿名 ID。训练开始、结束时间。每条步态数据的原始传感器值和控制输出值。异常事件标识。数据记录要注意隐私安全。患者数据在传输和存储过程中应当加密展示层尽量对个人信息做脱敏处理。即便只是做开发验证也要养成“最小权限、最小采集”的习惯。7.3 冗余设计与失效保护从安全角度出发医疗外骨骼的关节控制必须考虑单点故障。常见的冗余设计包括两路独立电源控制电路和电机驱动电路分开供电。双编码器电机端编码器用于闭环控制关节端编码器用于安全监控。硬件急停不依赖主控软件直接切断电机驱动使能。低电量保护当电量低于阈值时自动进入安全模式并通知上位机。这些保护策略会增加成本但医疗设备的核心原则永远是“患者安全优先”。在某些极端情况下宁可设备停机也不能让设备输出错误力矩。7.4 临床验证与迭代外骨骼开发不能只在实验室里跑步机测试还应该在临床场景中与康复治疗师共同迭代。治疗师最清楚患者需要什么样的辅助力度和训练节奏。研发团队需要把临床反馈转化为可执行的工程任务比如“大腿抬起幅度不够”可能意味着髋关节屈曲角度目标值偏低或者辅助力矩输出不足。建议开发团队建立一个小型数据分析平台每周对比不同患者的训练数据找出共性问题。通过持续迭代设备的步态跟踪误差、助力平滑度和整体穿戴体验都会逐步提升。8. 总结与学习路线8.1 本文核心内容回顾本文从迈步机器人获得近亿元战略融资的新闻切入梳理了医疗外骨骼机器人的核心概念、系统架构、关键算法和工程落地要点。在技术层面你需要重点掌握三个能力步态相位识别能力能够基于足底压力、IMU 数据判断当前运动阶段。关节控制能力理解位置控制、力矩控制和柔顺控制的区别。安全设计能力知道如何设计急停、限位、异常检测等保护逻辑。8.2 下一步学习建议如果你是机器人方向初学者建议从以下路线继续学习先在本机运行本文的 Python 示例修改阈值、滞后带和数据周期观察相位识别结果的变化。用一款真实的 IMU 和两块压力传感器搭建简易数据采集板把串口数据实时导入 Python。学习 ROS 2 的基本用法在外骨骼仿真环境中搭建虚拟样机。读 1-2 本机器人控制相关书籍重点看导纳控制、阻抗控制和步态分析章节。参与医疗器械合规相关课程或文档撰写提前培养工程规范意识。医疗外骨骼是一个交叉学科领域算法只是其中一部分机械结构、临床康复、人因工程和法规注册同样重要。不要指望短期内掌握所有知识但可以从本文给出的代码框架开始一步步把一个简单的步态相位识别器做到稳定可靠。等你真正把一套小系统跑起来再回头看融资新闻你会更理解为什么这类公司能获得资本市场的认可。