康复医疗机器人不仅是当前机器人研究的前沿,而且是涉及自动控制、计算机、智能仪器、机械学、康复医学、神经科学等跨学科的研究领域,是一个新兴学科。康复医疗机器人的研究具有重要的科学意义。基于上肢康复训练的要求,笔者研制一种基于STM32的力反馈型上肢康复训练系统。在设计控制系统时,保证系统的安全性与稳定性是最基本的原则⑷。为了避免在突发情况下对患肢造成二次损伤,通常采用限定机器人末端和受训患肢之间作用力大小的办法。经过实验验证,本系统设计合理,性能稳定,可以实现康复机器人的平稳控制,具有的力反馈功能可以在保证系统安全性的前提下充分激发患者残存的功能。
1、上肢康复机器人系统构成
上肢康复机器人的机械臂是关于轴心对称的,能够绕轴心进行反复的弧线运动,既可以由计算机控制训练,也可以由治疗师直接操作机器人引导患者进行训练。图1为该上肢康复训练机器人的实物。
图1单自由度上肢康复训练机器人
该机器人系统主要由机械臂机械结构、电机、位置传感器、扭矩传感器、电机驱动器、机器人控制器和上位机组成,系统框图如图2所示。扭矩传感器、驱动电机和位置传感器沿机械臂轴心依次放置。位置传感器用于检测机械臂的运动角度;扭矩传感器用于检测患者与机械臂的交互作用力,在患者主动能力不足时提供更大的辅助,而在患者有能力完成动作时,适当减小辅助甚至施加阻力,以便充分激发患者残存的功能;电机驱动器,用于产生康复训练的辅助力或阻尼力,推动或是阻碍机械臂和患肢的运动。
图2单自由度的上肢康复训练机器人系统框图
机器人控制器通过USB接口与上位机实现数据交换,一方面控制电路接收上位机发送来的控制信息,解析上位机命令控制电机驱动器;另一方面,机器人控制器将采集到的扭矩传感器和位置传感器数据发送到上位机。康复医师可根据上位机人机交互界面显示的{言息’对患者的康复训练情况进行定量的科学分析与评价,滅者細膝卿计耀供决策依据。
2、系统硬件设计
本机器人控制器采用基于AKM-M3内核的STM32微控制器。ARM-M3内核的设计具有低功耗、高性能、实时性以及具有竞争力的价格,该内核配备了紧耦合的嵌套矢量中断控制器,因此能够更加快速地响应中断事件。微控制器自带I2位的ADC和DAC,可以很好地满足系统的需要。
图3为本系统的电机驱动器硬件电路。微控制器DAC的输出引脚接到图3中的MOTORIN端。由于微控制器的DAC只能输出单极性电压信号,而机械臂需要做往复运动,需要双极性信号驱动电机正反转,故将MOTORIN端接入的信号先进行调理,该调理部分所用OP4177芯片为4路运放。
图3 电机驱动器硬件电路
笔者通过减法电路将DAC输出转换成双极性信号,图中OP4177芯片的左上角运放构成该减法电路。运放正输人端接人DAC输出信号,负输入端接人1.65V电压。减法电路输出为V。=(R3/R8)(^motorin-1.65),当l/M。TQRW》1.65V时,减法电路输出正电压控制电机正转;当hcmwm《1.65V时,减法电路输出负电压控制电机反转;Kmotorin=1.65V时,减法电路输出0V电压,此时电机保持静止状态。图中尺|5~尺?构成了分压电路,经过OP4177芯片左下角运放构成的电压跟随器获得I.65V基准电压。减法电路输出信号接人OP4177芯片右上角运放组成的运算放大电路,其输出为V,=[-(R4+R7)/R5]xV0。
经过运算放大后的电压信号输人到功率放大器,此处采用集成功率放大器为丨,M3886,该芯片具有过电流保护功能,且输出功率较大,可输出60W。图3屮的MOTOROUT端为功放输出的驱动电机的电压信号。功率放大器输出的驱动电压MOTOROUT与微控制器DAC输出MOTORIN比例关系为
笔者采用的扭矩传感器为差分信号输出,其输出为K+和L,电压幅值为毫伏级,故需要进行差分放大后,才能送人微控制器进行A/D转换。该差分放大器采用小尺寸、低功耗、高精度的AD620。差分输出为:
式中RG为增益的外部控制电阻,选择合适的RG使扭矩信号放大至伏级。由于扭矩传感器输出的信号是双极性的,经AD620放大后仍为双极性信号,而微控制器的A/D转换范围为0~3.3V,故须将AD620输出的电压加上1.65V抬升到0~3.3V,使之适合A/D的输人范围。
位置传感器输出为正交脉冲信号,STM32微控制器的每个定时器都有正交脉冲信号的输入接口,通过配置其定时器的工作模式,即可以对位置传感器的输出脉冲进行正向/反向计数,从而得到机械臂的位置。
微控制器将扭矩信息与位置信息通过USB数据线上传到上位机,进行康复机器人状态的监控;同时接收上位机下传的驱动电机的命令,进行相应的D/A转换,通过电机驱动器控制电机工作。
3、系统软件设计
系统上位机与微控制器之间通过USB进行数据交互。系统上电后,微控制器开始工作,首先初始化系统时钟、I/O端口、外部中断、ADC、DAC、定时器和USB等配置。
首先在上位机中设置康复机器人的训练模式,本系统的训练模式分为主动运动训练模式和被动运动训练模式两种[6]。设置成功后,上位机的控制指令通过USB传输到微控制器中,并进入微控制器的USB中断,微控制器在中断处理程序中处理上位机发出的指令,根据上位机发出控制指令,设定相应训练模式的标志,以供主程序进行机械臂运动类型的判断。
软件主程序流程如图4所示,若判断为被动运动训练模式,则进人PID控制子程序,对机械臂的位置进行闭环控制,使机械臂往复运动;若判断为主动运动训练模式,则进入自主训练过程,患者带动机械臂进行主动训练;其他则判断为机械臂无运动模式。
主程序中同时进行机械臂的扭矩信息和位置信息的采集。微控制器的ADC对差分放大后的扭矩信号进行数字量的转换;当机械臂转动时,位置传感器输出相互正交的脉冲信号,微控制器通过配置定时器工作模式对其进行计数。
最后微控制器将扭矩信息与位置信息通过USB脑社位I上位聽撒贿他醒方式直观地显示出来,便于医师对机械臂的工作状态和患者的康复状况进行客观判断。上位机接收到的扭矩信号也是本系统的力反馈信号,当扭矩过小时,可以适当增大驱动电压,使驱动电机的输出扭矩增大;当扭矩过大时,可以适当减小驱动电压,减小驱动电机的输出扭矩,从而保证了患者康复训练的有效性与安全性。
图4 微控制器主程序流程图
4、PID参数整定
微控制器DAC输出的电压值是通过PID箅法计,4算出来的。PID算法的流程图如图5所示。
图5 PID算法原理框图
首先,由上位机给定康复机器人机械臂的运动范围,即图5中所示的目标位置将位置传感器采集的当前位置信息输入到PID控制器中,目标位置与当前位置X(A)的差值e(A)送人PID控制器中,将其输出值送人微控制器的DAC进行转换产生电机的驱动信号,进而带动机械臂做与上位机控制指令相一致的运动。
笔者利用传统方式求出本系统中直流电机模型参数。本系统的被控对象是电机模型,传递函数为:
式中,G为电机电势系数;Ta为电气时间常数;Tm为机械时间常数。所选直流电机的参数如表1所示。
表1直流电机参数
采用Matlab进行仿真。系统单位阶跃信号的响应曲线如图6(a)所示,系统的稳定值在1.0之上,不满足系统要求。
图6 校正前后系统阶跃响应曲线
PID控制器的参数值是在实验过程中不断调整与完善的。经过多次实验,系统最终选定的PID参数是o4t/s246t/s0(a)系统单位阶跃响应曲线KP=0.7241KI=0.0001,KD=10。
5、实验测试与结果
为了测试康复机器人控制系统的稳定性,笔者进行了反复实验。图7(a)所示的是系统的主动运动训练模式。患者带动机械臂进行往复运动,机械臂所转动的角度在框图中显示出来。
系统的被动运动训练模式分为4种:慢速小范围、慢速大細、快速小細和快速大細,可以根据患者的需求设定合删训练类型。图7(b)是慢速大細训练模式下的实验结果,图7(c)是快速小范酬练模式下的实验结果。
对于系统中的力反馈功能,除了可以根据扭矩大小调节驱动电压大小外,还可以避免在突发情况下机构对患者肢体造成的二次损伤,如当患者的肢体发生痉挛时,系统的工作状态可以转变为停止,从而保护患者。实验测试结果如图7(d)所示。图中尖峰状的曲线为扭矩信号,当机械臂的运动被阻止时,扭矩传感器可以检测到很大的扭矩信号,上位机接收到此扭矩信号后,对机械臂状态做出判断,继而向下位机发送停止电机工作的指令,使机械臂处于放松状态,从而避免了对患肢的损伤。
6、结束语
设计了一种基于STM32的具有力反收的康复机器人控制系统。采用扭矩传感器实现系统的力反馈功能,充分发挥患者残存的功目采用位置传感器采集康:复机械臂的位置信息,配合PID算法进行位置反馈,使控制信号更加准确。
上一篇:介绍如何通过意法的STM32 MCU实现用DMA完成多通道的AD采样功能
下一篇:Linux系统移植开发篇1:系统移植前说明及源码编译
推荐阅读最新更新时间:2024-11-17 09:19
设计资源 培训 开发板 精华推荐
- 有奖直播报名 | 大联大世平集团&Molex 互联方案为下一代汽车科技赋能
- 先到先得双重有礼 成为体验FLUKE新品的先锋者
- 造个车,一起驶向诗和远方!学习 TI 汽车参考设计,参加技能小测试赢好礼!
- 【最后1天】MPS 有奖倾诉|说出哪些年让你头大的电感应用问题,赢【颈部按摩仪、智能音箱】
- 直播已结束【解锁 TI Sitara AM2x MCU 在电机驱动中的新可能】
- ADI & 世健 带您了解 化学分析和分析仪器应用方案
- Microchip 安全解决方案系列在线研讨会第30场
- 【已结束】TI 有奖直播|CAN SIC(信号改进功能)
- 深入剖析恩智浦LPC1000处理器
- 一起分享,共同成长!EEWORLD月月有奖优秀主题/回复第29期