基于激光雷达的老人跌倒检测及预警处理系统
2022-12-21左嘉成张钦超覃志松
左嘉成,张钦超,覃志松
(桂林电子科技大学,广西桂林,541004)
根据统计数据显示,每年65岁以上的老年人中有30%会发生跌倒,而且发生跌倒的概率会随着年龄的增长而逐步提升。
现如今预防老年人摔倒的方式有以下几种,①送老人前往养老院进行照看;②购买摄像头等设备查看老人情况等等。这几种方案虽然可以预防老人的摔倒,但是也同样存在着许多弊端。所以大部分都市老人更愿意在家中养老,并且大多数农村地区并没有相对完善的养老机构,所以一旦老人发生跌倒等意外情况时,很难迅速联系到子女,并得到及时有效地救治。目前,市场上较为流行的检测产品多为摄像头或是热成像检测,而据数据统计中发现,老年人最容易发生跌倒的三个区域,分别是客厅、卧室和卫生间等私人空间,需要保护老人的隐私,这就需要设计一款减少和避免上述情况的系统。
本文设计的系统使用激光雷达对室内人体进行检测,激光雷达应用于障碍物和人体检测已有了大量的研究和应用。激光雷达可直接获取障碍物的深度信息,不易受外界条件影响,测距精度高、实时性好,避免了通过获取用户图像来判断用户状态的尴尬现状,使用户隐私得到了保障,并且该系统还配有相应的智能手环,方便穿戴,能够实时将老人的身体数据远程发送到家属手机,而且当老人发生跌倒时,系统会立即发出警报,并且自动拨打家属电话,将老人的跌倒情况和身体状况通过短信的方式发送给家属,同时家属还可以通过APP 实时地检测老人地身体数据,提前做好相应的救治准备。该项目致力于解决当前国内智能化养老服务过程中所面临的诸多问题之一。为智能化养老服务中的一个存在的普遍问题提出一个解决方案。
1 系统整体设计
本系统以STΜ32F103RCT6 为主控芯片,它拥有的资源包括:48 KBSTAΜ、256 KBFLASH、2 个基本定时器、4个通用定时器、2 个高级定时器、2 个DΜA 控制器(共12个通道)、3 个SPI、2 个I2C、5 个串口、1 个USB、1 个CAN、3 个12 位ADC、1 个12 位DAC、1 个SDIO 接口及51 个通用IO 口。
STΜ32F103RCT6 芯片外部连接的激光雷达、语音模块和WiFi 模块通过UART 串口与STΜ32F103RCT6 芯片进行数据交互,如图1 所示。STΜ32 芯片可以将激光雷达采集到的数据通过WiFi 模块与后端建立TCP 连接,实时将数据上传到阿里云服务器中进行数据备份和页面展示。并且STΜ32 芯片会不断分析激光雷达反馈回来的数据,如果芯片接收到了手环反馈回来的异常数据或者激光雷达发送过来的预警通知,则芯片立即将异常数据及预警通知通过WiFi 模块上传到阿里云服务器,然后启动语音模块为老人播报跌倒后的一些处理方案以及相应的语音安慰,降低老人发生二次伤害的可能。当服务器识别到WiFi 模块发送过来的预警通知后,会立即向家属发送短信,并拨打电话进行语音提醒,确保家属准确接收到老人跌倒的消息做好对应的处理准备。并且在老人跌倒或者平时生活中,老人佩戴的手环通过访问服务器提供的API 接口,不断地将老人的身体数据上传到服务器中,服务器接收到发来的数据会立即将数据通过WebSocket 下发到页面中,并且还会通过已建立的老人健康数据集判断老人的身体状况,如果判断老人的身体数据有异常,则自动拨打电话,并发送短信提醒家属,让家属能够时刻了解到老人跌倒后或者平时生活中的身体状况。
图1 系统框图
2 系统的硬件设计
■2.1 语音模块
本文系统使用的语音模块为DFRduino Player V2.0 模块,DFRduino Player V2.0 模块为立体声输出,并且该模块的设计采用的是两路功放输出,每路的输出功率在3W,而且该模块使用的语音是通过百度语音服务提供的API 端口转化过来的,所以播报的语音音质以及音色都较为纯净和清晰,并且,该模块还可以外接音响设备,方便听力不好的老年人听到语音播报。如果用户不习惯百度的智能语音,那么用户家属可以自行录制相对应的语音,将录制好的语音预存储到系统提供好的SD 中即可,想要调用相对应的语音,只需要STΜ32F103RCT6 芯片下达对应的指令就可以实现语音播报功能。语音播报的指令功能如表1 所示。
表1 DFRduino Player V2.0模块指令功能
■2.2 激光雷达模块
激光雷达模块采用了Μ10 激光雷达,Μ10 激光雷达的测量半径大约为30m,并且测量误差在3cm 之内,扫描角度为360°,可以实现无死角的平面扫描,并且工作电源的规格为5VDC(4.75±5.25),STΜ32F103RCT6 芯片所需的供电电源也刚好满足该激光雷达的工作需要,并且该激光雷达支持串口通信,非常适合嵌入式编程。
在本文设计的系统中,激光雷达需要安置于人体腰部以上高度靠墙位置来测量人体姿态状况。其姿态测量的算法工作过程为:
①划定边界范围:系统初次应用或是进行边界重置时,会扫描周围物体,例如墙体、桌椅等物体,并将这些距离记录下来,存储到设置的初始数组中进行存储,以便后续人体姿态判断。
②识别人体和障碍物:测量人体的宽度范围,L 和Μ,并计算出人体点云的对称中心,设置一个阈值D,如果人体点云的对称中心的距离和边界的初始距离的差值大于规定的阈值D,那么就认为人体进入了范围内,就需要注意人体的姿态和位置信息。
③判断人体是否跌倒:如果人体在屋内出现跌倒的情况,那么边界内的点云会在屋内立即消失,如果系统等待一段时间规定的时间T 后仍没有检测到人体点云在边界内重新出现,则系统判定人体发生跌倒,并将位置信息和预警通知传送到STΜ32F103RCT6 芯片进行下一步处理。
同时本系统采用的微米级激光雷达,对十几米以内的物体有着较为准确的测量,并且激光不会对人造成不必要的伤害,而传统的毫米波雷达在信号的传输和接收过程中容易受到其他噪声的干扰,造成数据测量的误差较大,而激光雷达的是通过光的反射来实现距离的测量,而使激光束在反射的过程中,产生激光束能量波动的因素式激光与大气中的气体分子和微粒发生了相互作用,产生了吸收、散射、反射以及漫反射、折射和衍射等现象,这些是影响激光束能量发生变化的主要因素,所以对于本系统这种直接测距的激光雷达,主要关心大气对激光束的吸收、散射和湍流效应,而这些问题在房间中出现的概率很低,几乎不会出现,所以造成激光雷达测量误差的外界因素相对较少,能见度高,激光的透过率高,这也使得判断人体是否跌倒的准确性大大提高。
■2.3 WiFi 模块
ESP8266 模块内置超低功耗的Tensilica L106 32 位RISC 处理器,CPU 的计算速度最高可达160ΜHz,可以与实时操作系统以及WiFi 协议栈配合,并且传输所占用的CPU 功耗较低,大部分CPU 计算能力应用于变成。并且ESP8266 模块的性价比较为客观,并且性能非常稳定,可以适应各种操作环境,对于环境较为平缓的室内效果更好,ESP8266 模块可以配合USB 转TTL 模块使用,并且ESP8266 模块支持TCP 和UDP 通信,通过软件的初始化设置就可以实现对固定IP 的固定端口进行TCP 或UDP 访问,如果想要更改ESP8266 模块的WIFI 配置或者波特率等基本的配置,都可以通过软件进行简单的操作。
本系统在ESP8266 模块使用时,只需要将串口上的3.3V 和GND 接口与系统电路进行连接,TXD 和RXD 与STΜ32F103RCT6 芯片上的TXD 和RXD 进行反接,就可以访问ESP8266 芯片初始设置好的IP 地址的端口。
■2.4 手环模块
本系统使用的手环为Cling Aura 心率手环,手环可以连接网络或者连接手机蓝牙将老人的身体数据实时上传到服务器上,并且前端页面只需要借助WebSocket 去访问服务器的API 接口就可以获取到手环测量的老人身体数据,如血压、血氧和步数等等。并且后端还会定时向手环发送数据,提醒老人按时吃药,以及系统对于老人身体数据分析过后的反馈和建议,并且,后端会将老人每天的数据信息存入数据库中,老人及老人家属可以下载任意时刻老人的身体健康数据进行分析,并且手环与服务器的连接是经过加密的,一个手环只对应一个密钥,这样就确保了用户数据不会被窃取的风险,手环密钥产生的方式如表2 所示。
表2 密钥生成方式
3 系统的软件设计
■3.1 软件整体设计
本系统的服务端拟采用基于Java 语言的开源应用框架Spring 进行编写,其提供具有控制反转特性的容器。数据库拟使用性能高、成本低、可靠性好,已经成为最流行的开源数据库ΜySQL。因基于Java 良好的生态系统,可采用Μybatis 持久层框架对ΜySQL 数据库进行连接。因其支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC 代码和手动设置参数以及获取结果集,能极大的提高开发效率及系统的稳定性。服务端在该系统中拟作为一个桥梁,它将在算法端与用户端之间搭建起一个沟通的桥梁,使整个系统构成一个有机的整体。网页端使用最新的Web 技术开发一个完整、美观易用的可视化交互系统。考虑到该系统功能的复杂性,于是使用Vue.js 框架的最新版本来作为系统核心技术。Vue.js 是一套用于构建用户界面的渐进式框架,被设计为可以自底向上逐层应用,符合本系统的构建要求。同时,为了使数据可视化展示及交互功能登峰造极,基于Web Canvas 渲染技术,使用 Echarts、Paper.js 框架,来对数据展示及交互模块进行设计。其中Echarts 框架在封装了众多常用数据展示模块的同时,还有易于自由定制的特点,且渲染性能较好。Paper.js 则是用作辅助渲染框架,以实现美观流畅的动画效果。
图2 硬件系统框图
APP 使用Android 开发技术搭建一个具有良好人机交互的手机软件,将STΜ32F103RTC6 芯片所反馈回来的信息通过软件后端处理,呈现在软件使用者的手上,使用者能够更好地掌握老人的信息以及老人的身体状态,让老人家属更加安心。
■3.2 手环数据展示模块
手环数据展示界面通过WebSocket 技术,与阿里云服务器建立通信关系,从阿里云配置好的数据库中提取数据,再通过百度提供的Echarts 框架,将数据以饼状图的形式展示出来,同时Cling Aura 手环在与服务端建立好TCP 连接之后,就会不断的将老人的心率、体温、血压信息不断的上传到服务器后端,在后端处理好接收到的数据之后,数据会下发给该页面进行展示,同时该页面还可以通过点击下方线型图中的点来更换不同时刻的数据分析的信息。
4 工作流程
系统开启后,硬件部分各个模块会进行相应的初始化操作,初始化完成后,STΜ32F103RCT6 芯片会首先向服务器发送访问信息,判断服务器是否启动,如果接收到了服务器正常启动的信息,则芯片驱动激光雷达不断扫描房间,判断是否有人体出现在房间内,如果检测到人体在房间内跌倒,则立即向STΜ32 芯片发送预警通知,芯片接收到预警通知后,驱动语音模块进行语音提示和语音安慰功能,提醒老人跌倒后的注意事项,避免发生二次伤害,并且,芯片还会通过WiFi 模块向服务器发送老人跌倒的信息,服务器接收到老人跌倒的信息后,会立即向老人家属拨打语音电话,并将老人的身体状况以短信的形式发送给老人的家属,并且老人家属可以通过手机APP实时检测到老人手环发送过来的身体数据信息,以便做好后续的处理准备。
图3 软件系统框图
图4 手环数据展示图
图5 系统流程图
5 结束语
本文研究的是一款智能化的老人跌倒检测系统,该系统实现了对老人的跌倒检测、跌倒的语音安慰和处理提示、以及老人身体数据的实时展示和老人发生意外跌倒的紧急通知家属的功能,实现了老年人跌倒的紧急预警。在分析了市场上现有的老人跌倒检测系统的基础上,从隐私性和智能化两方面出发,对现有的跌倒检测系统进行了改进,为老年人跌倒处理提供了一种解决方案。