一种通用健康监护及医疗服务机器人系统设计
2010-01-26张赛董海强杜宏伟江朝晖
【作 者】张赛, 董海强,杜宏伟,江朝晖
1 中国科学技术大学电子科学技术系, 安徽,合肥,230027
2 安徽农业大学信息与计算机学院,安徽,合肥,230036
对于独居老人、残疾人等特殊人群,其低成本健康监护与医疗服务是现代医疗领域的重要课题。已有多种生理参数监护的设备被提出,以下列举几种监护设备:
Choi, J. M. 等人[1]设计了一种通过蓝牙技术和无线局域网技术的生理参数采集系统。Salvador CH等人[2]描述了一种基于GSM网络的监护系统监护不在医院的心脏病患者的健康状况。以上系统虽能够实现对ECG等信号的采集,但没有考虑功耗因素,系统不能长期有效运行。
Mao-Cheng Huang 等[3]介绍了一种基于低功耗ZigBee传感器网络技术的健康参数采集系统。 该系统能实现对生理参数的采集,但无法从接收信号中获得有关受监护者位置的信息,因此当生理参数出现异常时无法通过自动设备提供救助。虽然蓝牙技术在数据传输方面优于ZigBee,但是ZigBee技术较蓝牙技术功耗更低[4],因此在长时间的实时监护设备中更有优势。
特殊人群身体状况存在易变、不稳定的特点,容易出现心脏病、哮喘等严重疾病突发的危急情况。如果不得到及时有效的医疗救助,他们的生命安全有可能受到威胁。另一方面,由于行动障碍或视力障碍,危急情况下自主报警及取药救助异常困难,监护系统有必要在上述情况发生时及时提供可靠的报警和药物救助。为了完成这个任务,需要解决的关键问题是医疗报警信息的发送和对监护目标的实时定位。目标实时定位有多种可行的方法,如航位推算(dead reckoning), RFID,主动信标(active beacon),路标法(landmark) 以及基于地图的定位[5]。近年来,一种新型的基于ZigBee网络接收信号强度(Received Signal Strength, RSS)的定位方法被提出并得到了应用。该方法由若干已知坐标的参考节点(Reference Node)和未知坐标的盲节点(Blind Node)组成。盲节点通过收集来自参考节点的接收信号强度,即可通过运算得到自己的坐标。CC2431是TI公司推出的一款完全支持ZigBee/IEEE 802.15.4协议栈的2.4 GHz射频片上系统,同时其携带的硬件定位引擎能够收集网络中的接受信号强度并计算坐标。CC2431良好的射频传输和定位功能特性使得生理参数传输和实时定位能够有效集成在一个便携节点上[6]。
目前,多数的生理参数监护设备基于蓝牙等高功耗的技术,而基于ZigBee网络的生理参数监护系统尚不多见,同时多数的健康监护机器人系统仅着眼于参数的采集和报警,没有考虑到利用机器人系统提供辅助送药功能。因此,基于ZigBee技术的健康监护和辅助送药机器人系统有着广泛的应用前景和科研价值。
1 系统结构
1.1 Zigbee网络结构简介
ZigBee是一种新兴的短距离,低速率,低功耗的无线网络通信技术,主要用于近距离无线连接。它支持IEEE802.15.4 标准协议,工作在2.4 GHz自由频段。ZigBee网络由多个分布式无线节点相互协调共同工作,各节点之间采用多跳方式递送数据,效率较高。ZigBee分布式和多跳的特点使其特别适用于家居自动化,监护系统,工业控制等领域。ZigBee网络中由三种类型的节点,分别负责不同的工作。
1.1.1 协调器(Coordinator)
协调器是网络中存在的第一个节点,负责建立和初始化网络。具体说来,协调器负责选定频段、信道、网络标示,并且初始化网络配置。协调器也负责配置网络相关的安全参数和安全等级等。值得注意的是,由于ZigBee网络的分布性特点,协调器不一定始终存在于网络中,在网络启动后,协调器可以退出网络,由路由器(Router)负责维护网络,这使得网络的稳定性较好。
1.1.2 路由器(Router)
路由器的主要功能是允许新的节点加入网络,进行多跳路由,以及协助子节点进行通信。当有信源消息到达时,路由器负责暂存消息,等待子节点醒来时再将消息传送到子节点;同时当子节点有消息发送时,路由器接受该消息并等待网络空闲时发送,以使子节点能够立即进入休眠状态。路由器的存在能够有效的降低子节点的功耗。
1.1.3 终端设备(End Device)
终端设备没有管理和维护网络的任务,只负责周期性的在休眠和苏醒期循环,完成接受和发送消息的任务。终端设备功耗极低,适用于电池供电的便携式无线节点。
1.2 网络结构
ZigBee的分布式特性使得其网络结构较为灵活。常用的网络结构有网状网络和星型网络,分别如图1(a)、(b)所示
本设计采用了网状网络结构以方便定位广播通信,机器人搭载的无线节点作为协调器,用于定位的无线节点配置为路由器,受监护者携带的节点由电池供电,为减小功耗配置为终端设备。
图1 网络结构Fig.1 Network structure
1.3 系统概述
整个机器人系统的结构如图2所示。该系统由位于机器人系统RoboDoc上的节点(D节点),位于受监护者腕部的节点(P节点),和若干个已知坐标的参考节点构成。在网络结构方面,D节点作为协调器负责ZigBee网络的建立、扩展和维护。参考节点负责与D节点和P节点通信,向两者提供用于定位的接收信号,因此配置为路由器。P节点负责收集和传输生理参数信号,因而配置为终端设备。
正常情况下,P节点定时采集生理参数信号并传输给D节点,D节点分析并存储采集结果以供分析使用。一旦检测到健康状况出现异常,D节点立即通过GSM短消息向家人或医生发送求助短消息。而后,D节点首先要求P节点收集其周围的接收信号强度并定位,在接收到来自P节点的坐标信息后,D节点用相同的方法自行定位。D节点除了需要得到绝对坐标外,还要通过电子罗盘得到自己的偏向角(在图中由θ标出),根据两组坐标和偏向角,RoboDoc会选择最快的路径为受监护者提供药物递送服务,整个工作过程如图2所示。
图2 系统概述Fig.2 Schematic system
2 算法和软件设计
2.1 定位算法
本设计利用ZigBee网络中节点的接收信号强度实现室内实时定位,其基本原理如下:在ZigBee网络中,接收信号强度RSS随节点之间距离的增大而减小,RSS和距离d满足关系:
式(1)中n表示信号传播常数,和具体的环境如墙体的厚度,反射强度等相关,应该实地测量,经验表明,n=3.2-5.5时可以得到比较好的结果。
A表示信源和信宿距离1 m时测定得到的接收信号强度,一般取45-49较为准确[7]。
为了实现定位,ZigBee网络中要存在两种类型的节点,一种为已知自己坐标固定不动的节点,即参考节点,一种为未知位置且位置不断变化的节点,即盲节点。定位算法的基本思想是盲节点收集来自多个参考节点的RSS值,通过式(1)即可得到离的估计值,如图3所示。本设计采用的CC2431带有硬件定位引擎,式(1)中的非线性运算全部通过硬件实现,极大地加快了定位的速度。具体的流程如下:
图3 定位算法Fig.3 Location algorithm
1) 盲节点发送一系列的广播帧给参考节点,所有接收到广播帧的参考节点依次记录广播帧的RSS值;
2) 参考节点对收到的RSS值求均值得到平均RSS值,用以减少单个RSS值误差的影响:
在连续定位中,可以采用滑动平均方法避免因RSS值不准确造成的过大偏离:
为提高实时性,滑动平均窗口取2;
3)所有收到广播的参考节点将自己的坐标(X,Y)和计算出的RSS值构成回复帧,依次发送给盲节点,回复帧的结构如下:
每个坐标用2字节表示,最低两比特表示小数点后,故X、Y维坐标的表示范围为0.00 - 16383.75 m;
4)选择8个信号强度最大的节点,作为计算用节点,如果收到广播帧的参考节点数目小于8,则所有RSS值均参与运算;
5) 将节点坐标输入定位引擎,得到估计的盲节点坐标。
2.2 软件设计
系统主要由参考节点、P节点和D节点组成,软件的开发也要分成三个部分进行。软件设计中必须充分考虑到通信的可靠性和同步策略,这样才能使ZigBee网络中的各个节点按照正确的时序启动和工作。同时因为机器人工作在高噪声的不确定环境下,还要注意程序健壮性和有效性。软件模块结构如图4所示。
2.2.1 参考节点
图4 软件结构Fig.4 Software structure
参考节点和P节点的软件设计都是建立在ZigBee协议栈Z-STACK的应用层[9]。Z-STACK支持完整的IEEE802.15.4协议并且提供了消息路由机制,使得多个无线通信应用程序能够在一个节点中共存,其基本结构如图4(a)所示。整个协议栈包括应用层,应用子层,网络层,802.15.4MAC层和物理层。由于参考节点只关心和定位有关的通信,所以只需在应用层建立一个应用对象,即定位对象。参考节点开机后搜索信道,尝试加入ZigBee网络,等待来自D节点和P节点的定位请求。定位请求到达时,参考节点将包含RSS值的消息返回给发送方,而后进入新的等待循环。
2.2.2 P节点
如上所述,P节点的软件设计也是基于Z-STACK的应用层。不同之处在于P节点不仅要处理与定位相关的通信,还要处理与生理参数采集相关的通信。因此,我们设计了两个应用对象分别处理两个部分,以使软件结构清晰,易于维护,如图4(b)所示。发送到不同应用对象的消息由应用程序框架进行路由选择:
监护对象 监护应用对象负责收集和发送生理参数。在P节点加入网络后,它等待来自RoboDoc的开始测量命令。一旦收到命令,P节点开始周期性的控制各个传感器测量心率、体温和皮肤电阻,并发送到D节点。如果进入异常状态,P节点会收到来自RoboDoc的暂停测量命令,进而切换到另一个对象进行定位,完成定位后恢复测量。
定位对象 定位对象只在异常模式下启用。一旦D节点的诊断程序确认参数异常,会发送一帧暂停测量的消息给P节点。P节点接收消息后暂停测量,开始向参考节点发送一系列的广播帧,以使得参考节点测定RSS值,随后P节点会收到来自参考节点的RSS值,在收到多于三组RSS值的情况下,P节点启动定位引擎计算得到坐标,并发送给D节点。
2.3.3 D节点
D节点上的软件设计基于小型嵌入式实时操作系统uCOS-II。我们采用了模块化的程序设计思想,使得程序易于升级和修改。软件结构如图4(c)所示。
用户接口模块 用户接口在软件体系的最高层,负责在LCD上显示参数和诊断结果、语音交互和响应触摸屏命令事件。为了实时的处理用户的命令,在系统中用户接口任务处于最高优先级。
监护模块 监护模块对应于P节点应用程序的监护对象,负责处理两者之间的通信。当收到来自P节点的消息时,该模块还负责分析数据包,提取生理参数信息传递给诊断模块。
定位模块 定位模块对应于P节点和参考节点应用程序中的定位对象,负责处理和定位相关的消息。该模块接受诊断模块异常消息,要求P节点定位,得到P节点的坐标后启动自身定位程序进行定位。
诊断模块 该模块判断受监护者的健康状况是否正常。新的消息到达后,诊断模块判断心率(Heart Rate)、体温(Body Temperature)是否在正常范围,以及皮肤电阻(Skin Resistance)是否有剧烈变化:
如果连续n(n取3 - 5)帧数值异常,诊断模块就判定健康状况异常,发消息使得RoboDoc进入异常处理状态。
路径规划模块 路径规划模块控制RoboDoc进行药物递送。该模块首先计算两组坐标的差得到东西方向和南北方向移动的绝对距离,而后根据偏向角修正机器人的朝向以进行移动,并在移动过程中实时修正坐标。遇到障碍物时,转向并进行重新规划。在机器人将药物递送到距受监护者一定范围内时,药箱会被送出。
3 硬件设计
硬件系统也主要由参考节点,P节点和D节点 组成,本节介绍各个模块的硬件组成。
3.1 参考节点
参考节点是系统中最简单的模块,因为它只负责将包含RSS的消息帧传送到请求定位的节点。参考节点的结构如图5(a) 所示。因为只需一个接收信号强度探测器就可以测定RSS值,而不需要硬件定位引擎,考虑成本因素,我们采用了和CC2431有相同射频收发机但没有定位引擎的CC2430来构建参考节点。同时,考虑到对于参考节点来说射频特性应尽量达到最佳,我们采用了具有全辐射图的鞭状天线[8]。这样以来,当盲节点在以参考节点为中心的同心圆上时,参考节点收集的RSS值是基本相同的。
3.2 P节点
P节点负责收集、计算和传输生理参数,因此需要和多种不同的传感器交互。如图5(b)所示,P节点包括电源管理模块,CC2431芯片,测定生理参数的传感器和接口电路,以及PCB天线。这里我们选用PCB天线主要是考虑到PCB天线具有体积小,便携性好的优点。CC2431自带的增强型8051内核可以通过单总线方式和心率体温传感器交互,同时可以通过内置的14位A/D转换器测定皮肤电阻。
图5 硬件结构Fig.5 Hardware structure
3.3 D节点
D节点即为机器人RoboDoc,它负责处理生理参数信号并进行危急情况处理。同时RoboDoc的设计也充分考虑了运行稳定性和方便的人机交互功能。图6显示了D节点的结构。
用户接口 交互式的用户接口包括LCD触摸屏以及语音识别模块。我们采用三星ARM9处理器S3C2440作为主控制器,控制LCD显示生理参数,同时接受通过触摸屏传递的用户命令,如查看健康记录,发送短消息等。
图5 硬件结构 D节点Fig.6 Hardware structure of nodal point D
无线通信和GSM通信 ARM9微处理器和CC2431通过串行总线通信,接受CC2431传递的生理参数,进行实时的诊断,如果连续若干帧收到异常的参数,ARM9则向CC2431发送定位命令要求定位操作,同时向外发送GSM短消息。GSM模块采用了支持AT指令集的TC35模块,通过RS232接口和微处理器进行通信。
药物递送 RoboDoc携带一个便携的药箱,存放受监护者的常用药物。当机器人抵达受监护者的范围内时,便携药箱会被推出以方便老年人取药。
导航和驱动 导航部分由电子罗盘和碰撞传感器等构成,驱动部分主要由驱动底盘的电机,控制药物递送的电机和主控板组成。DSP2812有多达16路的PWM输出,非常适用于控制和驱动,因此选用DSP2812作为驱动模块的主控制器。同时,DSP负责周期性对电子罗盘进行询问,更新机器人的方位角信息,还负责与碰撞传感器等交互避免碰撞的发生。
4 实验和结果
为了验证设计的功能,我们在室内环境下进行了多次实验。
用于实验的机器人平台如图7所示。为了验证健康监护的功能,我们要求P节点周期性的收集生理参数并传递给RoboDoc,后者实时地显示测定的参数。实验表明当测量周期为4 - 6秒时,传输的时序能够顺利完成,并且系统能够实时测量到生理参数的变化。实验结果如图7所示,图中的心率、体温和皮肤电阻的单位分别为次/min、摄氏度(0C)和兆欧(MΩ)。实验结果表明该系统能够实时监护健康状况的小范围变化。
在另一组实验中,异常参数被人工送往RoboDoc来测试其异常处理能力。结果表明,D节点接到异常数据后5s内能够发送出GSM短消息求助,15s内能够定位出受监护者和机器人并开始移动。在软件配置中生理参数测量周期被定为4 ~ 6 s,故系统能够检测到4 ~6s内的健康状况变化,并在约20s内做出危急情况应对。
图8显示了室内的测试环境,为了测试RoboDoc的辅助送药能力,我们在一个7 m*7 m的空间令P节点人工送出异常信号给机器人,并让机器人追踪信号源显示在LCD屏幕上。在送出GSM短消息后,机器人开始追踪P节点,P节点的移动情况如图8中直线所示。每次要求P节点定位后得到的坐标如图8中圆点表示,实验结果说明,实时定位的准确性能够引导机器人正确的进行药物递送。以上实验结果表明,该设计能够实时提供健康监护和危急情况下的辅助送药功能,且在室内环境下能够稳定运行。
图7 实验平台 RoboDocFig.7 Experiment platform of RoboDoc
图8 追踪实验结果Fig.8 Result of tracking experiment
5 结论
本文提出了一种新型的为老年人提供辅助服务的通用机器人系统。实时监护健康状况对确保老年人安全十分重要,但仅仅完成监护,不能在健康状况发生异常时提供有效帮助是不够的。有效的辅助送药功能可以在危急情况下提供及时的救助,因而有重要的研究价值。我们将两个功能结合在低功耗的ZigBee局域网中,能够及时捕捉健康状况的变化,并且能够准确完成辅助送药功能。我们建立实验原型,进行了多组实验,验证了设计的有效性和实用性。
未来的工作主要着眼于完善设计,使得机器人对危急情况的处理更加迅速和鲁棒。我们计划测量更多的生理参数,并且设计一个药物选择装置,使得机器人能够根据不同的健康状况提供不同的药物。同时我们还将实验不同的场地环境对定位精度的影响,以提高定位的准确性。
[1] Choi, J.M, Kim, B.O, Hwang, B.S, et al. A system for ubiquitous health monitoring in the bedroom via a Bluetooth network and wireless LAN[R]. Conf Proc IEEE Eng Med Biol Soc, 2004,5:3362-3365.
[2] Salvador CH, Cartasco MP, de Mingo MAG, et al. Airmedcardio: a GSM and Internet services-based system for out-ofhospital follow-up of cardiac patients[J]. IEEE Trans Inf Technol Biomed, 2005, 73-85.
[3] Huang MC, Huang J C, You J C, et al. The wireless sensor network for home-care system using ZigBee [A]. Processing of 2007 Third International Conference on Intelligent Information Hiding and Multimedia Signal Processing[C] 2007, 613-616.
[4] Safaric S; Malaric K. ZigBee wireless standard, Multimedia Signal Processing and Communications[A]. 48th International Symposium ELMAR-2006 Zadar, Croatia, 2006, 259-262
[5] Sunhong Park, Shuji Hashimoto: Indoor localization for autonomous mobile robot based on passive RFID[A]Proceedings of the 2008 IEEE International Conference on Robotics and Biomimetics[C] 2009, 1856-1861.
[6] Texas Instruments, Datasheet of CC2431, [OL]. http:// focus.ti.com/docs/prod/folders/print/cc2431.html
[7] K. Aamodt, CC2431 Location Engine, Application Note AN042,[OL] http://focus.ti.com/docs/prod/folders/print/cc2431. html
[8] Richard Wallace, Antenna Selection Guidence, [OL]. http://focus.ti.com/lit/an/swra161a/swra161a.pdf
[9] Texas Instruments, Z-Stack Developer’s Guide, [OL]. http://focus.ti.com/docs/toolsw/folders/print/z-stack.html