马蓓蓓,胡志刚,2*,时鹏,王新征,2,谢飞虎,宋克纳
(1.河南科技大学医学技术与工程学院,河南 洛阳 471000;2.河南省智能康复医疗机器人工程研究中心,河南 洛阳 471000)
艾灸是用艾草制成的艾柱或艾条,悬放在人体特定穴位上方一定距离进行温热刺激,通过经络的传导达到防病治病、保健强身的功效[1]。艾灸作为中医常用疗法被广泛应用于许多疾病的防治中,比如新型冠状病毒感染[2]、帕金森病[3]、类风湿性关节炎[4]等,且临床疗效显著。传统的艾灸方式依赖人工操作,存在热量不均衡、耗费人力等问题,现有的艾灸仪器存在智能化程度低、操作不便等问题。将机器人技术应用到中医艾灸既可以把医师经验更加稳定且量化地表示出来,又能够解决施灸部位不同需要移动整个艾灸仪器的缺陷,实现机械臂工作空间内任意穴位的艾灸操作。
目前,已经有许多学者对艾灸机器人进行了研究,乐文辉等[5]在2020 年设计了一种四自由度艾灸辅助机器人,对艾灸过程中末端执行器的运动特性和轨迹进行了仿真分析;姚勇等[6]在2020 年基于六自由度艾灸机械臂,设计了艾灸手法模拟系统,为艾灸过程中采用标志物进行穴位定位提供了解决方案;赵国友等[7]在2020 年进行了艾灸机械臂的设计,利用嵌入式系统完成艾灸过程中的温度控制和参数调整;夏世林等[8]基于该艾灸机械臂,设计了一种末端艾灸器,其结构能够进行距离调节和艾烟控制,通过恒温艾灸实验验证了艾灸过程中通过调整施灸距离执行恒温艾灸的可行性,但在机械臂轨迹规划和自动定位穴位方面有待优化。张子昂[9]在2022 年进行了基于单目视觉的艾灸机器人识别定位与跟踪研究,为艾灸机器人单目视觉定位系统的构建提供了解决方案;刁吉瑞等[10]在2022 年进行了艾灸辅疗机器人概念样机的设计和运动学分析,通过模型样机的运动控制实验,验证了机械臂应用于实际艾灸辅疗的可行性。
以上艾灸机器人的相关研究大多只进行了仿真分析或从事系统部分方面的研究,缺乏系统的艾灸机器人控制方案设计与实现,运动规划控制和穴位定位不能满足自动艾灸的需求,从端艾灸器不能进行艾灸过程中信息的实时采集传输及艾条控制,缺乏直观的人机交互界面等。
针对以上问题,本文提出一种新的艾灸机器人系统。通过从端艾灸器的结构和硬件系统配合可进行艾条的自动推进,并对艾灸环境中的信息进行实时的采集和传输。主端系统对从端传输的信息进行整合处理,并完成机械臂的轨迹规划和运动控制。主端的人机交互界面可对艾灸过程中的信息和从端运行状态进行可视化,从而监控艾灸全过程,并可以通过界面灵活调节艾灸参数,以适应不同的艾灸对象和任务。
艾灸机器人系统由主端和从端构成,如图1 所示(彩图效果见《计算机工程》官网HTML 版,下同)。从端包括机械臂和艾灸器两部分,其中,艾灸器可以自动推进艾条,并且收集艾灰以防止烫伤。同时在艾灸过程中通过采集电路、数据传输电路及外围传感器对信息进行实时的采集和传输。主端根据从端反馈的信息调节机械臂运动,实现艾灸过程的协调控制,人机交互界面可以将艾灸过程中的信息可视化地展示给操作者。
图1 系统总体示意图Fig.1 Schematic diagram of system overall
本文提出的艾灸器改进了艾条自动推进装置的结构,并增加了电源管理、采集和信息传输电路以及无线通信功能。艾灸器通过定位孔装配在机械臂末端关节处,使用过程中不需要挂载电源线和通信线,便于安装和拆卸,易在其他机械臂上进行部署,提高了艾灸系统应用的灵活性和可扩展性。
1.1.1 艾灸器结构
艾灸器外壳结构采用锥形腔室设计,艾灸过程温度场分布特性的研究表明,锥形流道相对于柱形流道更优,对热流的导向作用更加明显,对热量的利用也比较高效[11]。艾灸器实物图及其外围模块如图2 所示。
图2 艾灸器及其承载模块示意图Fig.2 Schematic diagram of moxibustion instrument and its bearing module
外壳顶部设有排烟管道口,通过排烟风扇降低艾灸过程中的艾烟浓度,防止其影响摄像头进行穴位定位。硬件电路板固定于外壳凹槽处,通过线路孔连接腔室底部的温度传感器、距离传感器、电机、光耦等外围模块。为避免艾灰堆积、掉落影响艾灸效果及烫伤皮肤,将灰烬收集装置设计为倾斜网面,利于艾灰自动滑落进入灰烬收集槽,并通过U 型滑轨旋转拆卸和安装,相比于固定或螺丝安装类型,操作更加便捷。
在艾灸过程中,艾条经燃烧变短逐渐远离穴位,因此需要设计艾条的自动推进装置,通过对电机的控制实现艾条的灵活推进,推进示意图如图3 所示,其中,1 为推进装置外壳,2 为推进装置基座,3 为与艾灸器连接的固定孔,4 为螺旋滑槽套筒,5 为螺旋滑槽,6 为球型滑块,7 为滑轨,8 为艾条夹持装置,9为艾条,10 为电机转轴装配孔。
图3 艾条推进装置结构示意图Fig.3 Schematic diagram of moxa stick propulsive device structure
具体实现过程为固定推进装置基座后,其内壁上的滑轨随之固定,当电机带动螺旋滑槽套筒旋转时,艾条夹持装置的球形滑块沿滑轨移动,由此方式实现艾条的推出或者收回,图3 中箭头所示方向即为艾条推出方向。
该装置结合电机对艾条的推进长度、速度和方向进行控制,并配合定位光耦实现艾条到达目标位置的监测。采用螺旋推进方式相对于丝杠推进方式[8],具有较好的缓冲作用,且推进过程安全稳定,方向改变灵活,节省结构空间。
1.1.2 硬件系统
艾灸器的硬件系统主要由电源模块、采集控制单元、数据传输单元三部分电路构成,系统框架如图4 所示。
图4 硬件系统总体框架Fig.4 Overall framework of hardware system
电源模块设计通用串行总线充电电路、电源管理电路、升压电路以及多路稳压转换,以满足各执行单元的电压需求,提高对艾灸器供电的稳定性和可靠性。其中,充电管理芯片采用MCP73831T,升压电路的芯片选用SX1308,电源管理电路主要由金属氧化物半导体(MOS)管控制供电回路的通断,并利用数模(A/D)转换功能,实现对锂电池电量的实时检测。
采集控制单元主控芯片采用低功耗、抗干扰性强的STM32F103,该部分电路用于从端艾灸器外围模块的控制和信息采集,包括对电机、功能按键和状态指示模块的控制,实现艾条的自动推进、艾灸器的工作状态提示和预警以及复位、急停、开关机等功能;对距离和温度传感器的信息采集,实现施灸过程中穴位温度和距离的非接触检测,并通过通用异步收发器(UART)端口与数据传输单元通信,实现数据和指令的交互。
数据传输单元的主控模块采用集成度高、无线传输距离远的ESP32-S 模块组,用于实现从端艾灸器与主端之间的数据传输和指令处理,以及获取图像信息、位姿状态、保存执行过程和工作状态等功能。
1.1.3 通信流程
数据传输单元是艾灸执行器实现数据交互的关键,通过WiFi 与主端通信、串口与采集控制单元通信,以协调硬件系统各模块之间的工作。制定统一协议实现数据交互和指令控制,链路层数据帧格式如表1 所示。数据区保存指令信息,与采集控制单元通信时,将链路层数据进行循环冗余校验码(CRC)校验,以确保串口通信数据的有效性。控制字分为设置、查询指令两大类,包含传感器数据获取、状态查询、参数设置、运动控制等,控制字预留部分字段,用于后续扩展和二次开发。
表1 链路层数据帧格式Table 1 Link layer data frame format 单位:Byte
数据传输端的通信流程如图5 所示。
图5 数据传输端通信流程Fig.5 Data transmission end communication procedure
目前在艾灸机器人的相关研究中,缺乏完善的控制系统和直观的人机交互界面。本文设计的主端系统可实现艾灸过程的可视化,帮助医生进行定量监控,并且具备灵活调节参数和艾灸流程编辑的功能,以适应不同的艾灸对象、环境和任务。
1.2.1 艾灸控制系统
艾灸控制系统基于Ubuntu 18.04 操作系统和QT 5.12+ROS 开发环境搭建,采用C++和QWidget 结合SQLite 数据库进行设计,底层控制与逻辑交互采用C++实现,占用资源的模块通过QThread 多线程方式运行,利用信号和槽机制实现控制交互[12]。为提高系统运行的效率和稳定性,将系统框架分为功能模块、交互控制、逻辑处理和硬件单元四层,如图6 所示。
图6 系统控制框架Fig.6 System control framework
用户界面(UI)显示和设备节点控制在主线程中运行,线程交互数据保存节点控制队列及状态等,用于主线程和逻辑处理层的数据交互,实现对子线程的执行信息获取和运行状态控制。在逻辑处理层中,利用OpenPose 与OpenCV 库进行穴位的识别[13],数据缓冲队列保存采集的状态信息并通过互斥锁确保数据的有序读写访问;艾灸记录、运行日志、采集数据等信息保存在SQLite 和配置文件中,并通过数据管理接口实现统一调用;通过MoveIt 实现对机械臂的路径规划[14],UI 通过Rviz 接口实时显示机械臂状态。逻辑处理层通过TCP 通信线程和Move_group 节点对机械臂、图像采集、电机等硬件单元进行调度,以实现艾灸过程的协调控制。
1.2.2 人机交互界面
实时艾灸界面如图7 所示,可实时显示艾灸过程中的穴位温度、施灸距离、时长、机械臂状态、穴位图像等信息,并可调节艾灸时长、温度、模式等参数。
图7 实时艾灸界面图Fig.7 Real-time moxibustion interface diagram
项目流程编辑界面如图8 所示,用于艾灸流程的导入、可视化编辑与显示,通过指令校验、单步运行等按钮完成流程指令的调试。篇幅所限,只列举部分界面。
图8 项目流程编辑界面Fig.8 Project procedure editing interface
人机交互界面的搭建进一步提高了艾灸控制系统的开发完整性和应用价值,拓宽了该系统的应用场景。
机械臂的运动控制是实现艾灸过程的重要部分,本文采用轻型、高精度的七自由度机械臂franka 作为艾灸器的载体,它能在复杂的工作环境中实现无碰撞的轨迹规划和运动。通过对艾灸机械臂进行运动学分析和轨迹规划,得到各关节角度、角速度等轨迹数据[15]。主端将轨迹信息传输到机械臂的开源接口(FCI)和libfranka 库,对机械臂进行运动控制和实时的状态获取[16]。机械臂运动控制流程如图9 所示。
根据从端机械臂和艾灸器的结构,构建改进D-H坐标系,建立关节轴与末端艾灸器之间的映射关系[17],如图10 所示。
图10 机械臂,艾灸器的简化模型和D-H 坐标系Fig.10 Simplified model and D-H coordinate system of manipulator and moxibustion instrument
在图10 中,θi为关节角,αi-1为连杆转角,ai-1为连杆长度,di为连杆偏距,表示机械臂关节之间的相对运动参数,xi与zi分别为第i(i=1,2,…,7)关节的X轴和Z轴,Y轴方向通过右手定则确定。依据相邻连杆的位置关系确定D-H 参数,如表2 所示。
表2 艾灸机械臂的D-H 参数 Table 2 D-H parameters of moxibustion manipulator
根据坐标系变换的链式法则,两个相邻关节坐标系的变换矩阵如式(1)所示:
将表2 中各关节的D-H 参数代入式(1)可分别求得0T1、1T2、2T3、3T4、4T5、5T6、6Tf。
由ATB=ATC×CTB关系,末端在世界坐标系中的位姿矩阵如式(2)所示,在已知各关节的角度时可确定机械臂艾灸末端的位姿。
其中:η、ο、a为姿态描述;p为位置描述。
对机械臂进行逆运动学分析时,根据其结构特征,将关节2、6视为球关节,分别记作O点和A点,关节4位置记为B点,可得机械臂的几何关系,如图11 所示。
图11 机械臂几何关系图Fig.11 Geometric relationship diagram of manipulator
依据几何关系可得:
当存在解时,即已知目标位点的位姿,通过逆运动学可得出各关节的角度[18]。
在低维度空间上,通常使用基于图搜索的路径规划算法,例如Dijkstra[19]、A*[20],这类算法虽在规划中具有较好的完备性,但需要对地图进行完整建模,且在高维度空间中会出现维数灾难等问题。而机械臂的运动规划是属于连续高维度空间下的,为解决这类问题,本文使用基于随机采样的路径规划算法。
目前常见的基于采样的路径规划算法[21]主要是概率路线图(PRM)和快速搜索随机树(RRT)。PRM算法根据随机采样的方式,在地图中建立路径网格图进行路径规划,能够提高在高维空间中的搜索效率,但采样点过多,增大了计算量。RRT 算法的目标是尽可能快地找到一条从起点到终点的可行路径,搜索过程是以起点作为根节点构建一棵搜索树,并不断向四周扩散生长。RRT 算法虽然在高维空间中具有较高的搜索效率,但搜索到的路径只是可行路径,而不是最优路径。因此,目前研究人员基于RRT算法不断进 行优化,例如RRT-Connect[22]、RRT*[23]、Informed-RRT*[24]等,各算法对比如表3 所示。
表3 运动规划算法对比 Table 3 Comparison of motion planning algorithms
Informed-RRT*算法是基于RRT*优化得到的,限制在一定范围内选择采样点重新优化路径,提高了收敛速度和规划效率,本文选用该算法对艾灸机械臂进行轨迹规划。该算法利用椭圆采样方式代替全局均匀采样,在搜索到初始路径后,根据路径长度dbest、起始点xstart和目标点xgoal构建椭圆采样区域,当未搜索到路径时,dbest为无穷大。该算法的采样空间如图12 所示,其中,xstart和xgoal为椭圆的焦点,dmin为两焦点之间的距离,dbest和
图12 Informed-RRT*算法采样空间Fig.12 Informed-RRT* algorithm sampling space
在迭代过程中,每找到一次更优的路径,就将其作为新的dbest更新采样椭圆。该椭圆空间均匀采样xellipse~U(Xellipse),可通过对单位圆n-ball、xball~U(Xball)中均匀分布的样本经矩阵变换、旋转、平移得到,转换关系如式(4)所示:
其中:xcentre代表椭圆的中心;xball代表单位圆的均匀采样点;L表示变换矩阵;C表示旋转矩阵。
以上采样过程的伪代码如算法1 所示。
Informed-RRT*算法在采样过程中不断缩短节点的扩展区域及全局路径长度dbest,逐渐缩小椭圆采样区域,并消除对无效区域(椭圆以外)的采样,以加速搜索速度,最终形成一组路径点并进行连接,可在有限的时间内找到最优路径。利用该算法对机械臂进行轨迹规划,最后主端将规划得到的轨迹信息通过以太网传送至机械臂端,实现对艾灸机械臂的运动控制。
本节通过3 个实验用于评价所设计的艾灸机器人系统。实验1 利用艾灸机械臂的运动仿真实验,分析从端艾灸器设计的合理性;实验2 在真实环境应用中进行艾灸过程的实验,以测试艾灸机械臂的运动控制效果;实验3 用来测试艾灸机器人系统在艾灸过程中自动调整距离以保持温度稳定的情况。
实验环境:Intel®CoreTMi7-11800H @ 2.30 GHz CPU,NVIDIA Geforce RTX 3060 GPU,32 GB 运行内存。操作系统为Ubuntu18.04,从端机械臂为franka panda(Franka Emika GmbH),其定位精度为±0.1 mm。
对艾灸机械臂进行轨迹运动仿真,通过在该艾灸机械臂工作空间内多次设定起始点和目标点进行实验测试,观察运动过程中艾灸器及各关节的运动状态。随机选取一组实验数据,其中艾灸器轨迹、位移如图13所示。机械臂各关节的运动参数如图14所示,其中,3条曲线分别是角度(rad)、角速度(rad/s)、角加速度(rad/s2)。
图13 艾灸器运动参数Fig.13 Motion parameter of moxibustion instrument
图14 艾灸机械臂各关节运动参数Fig.14 Motion parameters of each joints of moxibustion manipulator
由艾灸器运动轨迹和位移图可以看出,其运动始终处于连续无碰撞状态,说明艾灸器结构设计合理,在进行艾灸过程中可安全使用。此外,由各关节运动参数的变化曲线可以看出,机械臂各关节运行连续且稳定,规划的路径光滑,未出现冲击或卡顿现象。
将从端机械臂、艾灸器和主端系统集成部署后,进行艾灸机器人系统的运行实验,以手腕关节处模拟穴位为例,艾灸过程如图15 所示。
图15 艾灸机器人运行过程Fig.15 The operation process of moxibustion robot
第1 阶段:艾灸机械臂由复位状态开始进行初始化,复位状态和初始化完成状态分别如图15(a)和图15(b)所示。
第2 阶段:向下运动到达寻找具体穴位的高度(Z轴方向上距离护理床30 cm 处),如图15(c)所示。
第3 阶段:进行Y轴方向上24 cm 左右范围内的扫描,如图15(d)所示。
第4 阶段:找到具体穴位位置并向下移动至待灸穴位上方4 cm 处进行艾灸,如图15(e)所示。
实验结果表明,艾灸机械臂在真实环境中按照规划的路径运动,且运行过程平稳安全,无异响、振动或冲击,满足本文的设计要求。
为验证艾灸过程中能够通过艾条推进装置自动调整艾条位置,以及机械臂带动艾灸器动态改变施灸距离,维持温度稳定。结合所设计的主端控制系统进行艾灸实验,艾灸过程如图16所示(以足三里穴位为例)。
图16 艾灸过程图示Fig.16 Diagram of moxibustion process
根据世界卫生组织制定的腧穴定位标准确定穴位位置,选取临床上常灸穴位足三里和关元穴作为实验穴位。经调研[25],设定两种穴位目标温度分别为44 ℃、43 ℃,施灸距离为4 cm,安全阈值为1 cm,设置施灸距离低于3 cm 时发出预警,艾灸时长20 min。在实验过程中,从施灸距离达到10 cm 左右时开始记录温度、距离随时间的变化关系,如图17 所示。
图17 足三里和关元穴的温度距离关系Fig.17 Temperature distance relationship of Zusanli and Guanyuan acupoints
由图17(a)可以看出,当施灸距离减少到4 cm时,穴位温度为36.4 ℃,未达到目标温度44 ℃。此时,距离继续减少至3.24 cm 左右,温度达到43.89 ℃。随后,距离逐渐增大,保持温度在目标温度44 ℃左右。在12 min 左右后,施灸距离持续高于4 cm,分析原因在于艾灸时间较长,穴位蓄热温度升高,需要机械臂带动艾灸器增加施灸距离,以保持温度的稳定。
由图17(b)可以看出,当施灸距离减少到4 cm时,穴位温度未达到目标温度43 ℃,施灸距离在设置的安全阈值内持续减少,在艾灸8 min 左右时,温度达到43 ℃,随后施灸距离持续高于4 cm,分析其原因和图17(a)一致。
对比图17(a)和图17(b)可以看出,足三里比关元穴提前5 min 左右达到目标温度,且两者温度上升速度相差较大,主要是因为关元穴位于腹部,由于人体生理组织影响,升温较慢[25]。
在选取艾灸过程中,对达到目标温度之后的阶段进行数据分析,结果如表4 所示。
表4 恒温艾灸实验数据Table 5 Experimental data of constant temperature moxibustion 单位:℃
由表4 可以看出,通过该系统进行距离控制后,目标穴位的温度偏差小于0.5 ℃,满足艾灸温度控制的精度要求。实验结果表明,在艾灸过程中,系统可在设置的距离参数状态下持续以目标温度对穴位进行温热刺激,解决了艾灸过程中温度不均衡、高温烫伤的问题,提升艾灸疗效和受灸者的医疗体验。
本文提出一种艾灸机器人系统,首先对从端艾灸器进行设计,并在结构和硬件两方面进行改进,实现艾灸过程中信息的实时采集传输和艾条自动推进功能,在使用过程中无须挂载电源线和通信线,能更加方便地在其他机械臂上部署,使艾灸系统的灵活性和可扩展性得到提高。对主端控制系统进行设计,实现信息的整合处理和机械臂的运动控制,在主端的人机交互界面实现艾灸参数的灵活调节、流程的编辑和艾灸过程的可视化,可面向不同受灸者、环境或任务制定合适的艾灸过程,并帮助医护人员实现定量监控。实验结果表明,该系统运行稳定,从端艾灸器设计合理,在艾灸过程中可保持穴位温度的稳定,为艾灸机器人的控制及应用提供了解决方案,在中医艾灸领域具有一定的应用价值。下一步将在该系统基础上对单个主端控制多个从端进行扩展研究。