一、项目介绍
本声动护理——智慧护理系统项目基于地平线RDK X3开发平台及相关模块,通过物联网技术开发项目,采用Zeroconf的avahi技术,利用本地端(RDK X3)的ROS系统连接机器人的ROS系统,进而控制机器人运动;通过ros1 bridge技术,连接本地端(RDK X3)的ROS系统和ROS 2系统,实现语音控制机器人运动;运用腾讯云搭建了服务器平台,采用vue3进行前端设计,实现了本地端与云端的信息交互,并为未来实现指令控制提供基础;本项目旨在搭建一个针对老年人群体的智能化护理系统,以及对于监护有需求的人群,同时在未来也将进一步扩大受众面积,提供更便捷,智能化的服务。通过物联网技术和传感器的应用,该系统实现了多功能的智能护理,为老年人群体及其家属提供全面的便捷服务。
目前该智慧护理系统具有多项功能,包括急救报警、跌倒报警、智能呼叫、自动取药、自动取餐、实时监控,手动控制机器人等。这些功能主要通过以下技术实现:1.手势识别模块,被监护人可以通过特定手势控制智能呼叫、自动给药和自动取餐,并通过语音进行反馈,提高生活的便利度,并将基础数据和特殊手势识别结果在网页端显示,方便家属进行监控和处理。2.跌倒检测模块,当摄像头检测到跌倒时,会将信息传输给语音端进行播报,也会传输给网页端,网页端会出现弹窗并响起警报声。3.温湿度传感器模块,实时监测环境,方便监护人及时感知环境变化调节温度,提供更舒适的环境。4.语音转换模块,实时识别被监护人的语音,并在网页端以文字形式输出,方便监护人远程了解被监护人的需求,同时提供智能回复,能够实现查询当日天气,日期,时间等信息。5.智能机器人控制模块,实时监听被监护人的需求,如果出现特定需求则进行相应指令,同时提供手动控制功能,能够自由实现机器人控制功能。
该智慧护理系统结构图如下:
二、作品创新
相比传统的智慧家居系统,本针对老人的智慧监控系统具有以下创新点:
1. 针对特殊群体的设计:该智慧监控系统专门为老人设计,考虑到老人在日常生活中可能面临的困境和难题,关注特殊需求。通过物联网技术和特殊的交互方式,使得老人能够更轻松地与系统进行交互,提高服务的便捷性和贴心性。
2. 手势控制取药操作:传统的取药操作可能需要家属帮助或在规定时间在医护人员的帮助下进行,而这对于存在的老人可能存在一定的困扰,例如帕金森老人,其临床表现为:肌肉常常表现出不自主的持续性紧张和僵硬感,会导致运动变得缓慢和不灵活,使得老人的动作变得笨拙。而本作品中的智慧监控系统通过手势识别技术,允许老人通过“V手势”就能轻松实现取药操作,无需使用额外的设备。
3.手势控制自助取餐:本作品中的智慧监控系统通过手势自助的方式,允许老人在需要吃饭时,自行选取餐食。这样的设计为老人提供了更多的自主权和便利性,不必过度依赖他人的协助,在减少人力物力的不必要的损耗的同时,大大增加了服务的灵活性。
4. 跌倒时触发警报声寻求人工帮助:在出现紧急情况跌倒、需要人工帮助时,智慧病房系统能够通过触发警报声提醒周围人和家属,以便及时提供援助。对于老人来说,这样的功能可以弥补他们因而无法及时察觉紧急情况的缺陷,增加了他们在生活环境中的安全感,提升了针对特殊群体的服务的质量。
5. 语音转换及交互:本系统可识别老人的简单语音指令,进行相应回复并播报。老人可与本系统进行简单的交流,满足空巢老人的情感需求。
6.云平台远程监控:将摄像头画面、语音转换内容、环境温湿度、老人请求等实时上传网址为http://101.32.194.5:8000/的网页,家属可通过云平台实时查看老人状态,同时云平台会在紧急情况,例如老人跌倒时,进行报警。
7.云端及本地端对底层机器人的遥控:我们通过物联网技术将底层机器人和本地端的核心控制器连接,同时能够通过语音,手势等信息控制小车运动,同时小车与云端服务器相连接,具有信息反馈。云端,本地端,移动端的两辆互联实现万物互联的畅想。
这个针对特殊群体的智慧监控系统通过物联网技术和智能化的设计,为老人提供了更加人性化、便捷和安全的生活体验,同时展示了物联网技术在医疗和生活领域的巨大潜力,更加聚焦于特殊需求群体的全面医疗服务。
三、功能实现
1.网页部分
本智慧护理系统利用腾讯云服务器搭建主网页,用户可通过特定域名访问该网页,获取护理环境的温湿度、手势信息、对话日志等信息。系统通过MIPI摄像头实时监控护理环境,将捕获图像传输至网页显示。网页中心显示监控画面,右侧显示对话日志,下侧分为室内环境监测、手势指令控制和摔倒警示三个部分。RDK X3与服务器通过WebSocket协议建立双向通信,实时传输温湿度、手势识别、语音识别及输出信息至服务器,前端网页以文本、图形等形式呈现数据。
2.语音识别及输出部分
本智慧护理系统通过ROS2节点`AudioSmartToTTS`实现语音识别与输出。节点订阅`/audio_smart`话题接收`SmartAudioData`消息,提取命令词`cmd_word`,并通过WebSocket将其发送至服务器`ws://101.32.194.5:8000/ws/message/test`。服务器处理后生成回复信息,节点发布到`/tts_text`话题,实现语音输出。系统使用微雪电子的Audio Driver HAT REV2音频转接板,采用ES7210+ES8156双Codec方案,支持4麦克风阵列录音和双通道音频播放。高质量的音频捕捉和播放确保语音输入和输出的准确性与清晰度,集成了ROS2通信和WebSocket实时传输,实现智能语音交互,提供可靠的护理服务。
3.机器人语音控制部分
机器人语音控制部分通过智能语音识别节点采集音频,并使用语音算法SDK进行处理,将结果发布为`/audio_smart`话题。`hobot_audio_node.py`处理智能语音消息,将命令发布到`/command_topic`话题。`controller.py`节点订阅该话题并根据接收的命令控制小车运动,如接到取药指令则前往区域1,呼叫医生则前往区域2。`receive.py`节点记录命令日志。机器人通过树莓派和STM32实现与本地端的无线通信,利用Zeroconf的avahi服务在Linux系统下进行ROS间通信。
4.手势识别部分
手势识别系统通过摄像头实时识别老年人的V手势、手掌手势和OK手势,分别表示取药、取餐和呼叫医生指令。识别后,系统将信息传递给音频系统、网页端和机器人系统。在音频系统中,结果通过语音播报反馈给用户;网页端展示详细信息,便于家属查看;机器人系统根据指令执行相应任务。系统初始化通过GestureDetectionListener创建ROS2节点并订阅手势检测话题,建立与WebSocket服务器的连接,发布手势和音频合成文本。listener_callback方法处理手势数据并发布到对应话题。
5.跌倒检测部分
在为老年人群体提供便捷服务的智能监控系统中,跌倒检测功能至关重要。系统通过摄像头实时监测老年人活动,识别跌倒事件,确保老年人安全。当检测到跌倒时,系统立即向音频系统发送警报,通过WebSocket将信息发送到网页端,让家属及时查看并处理。为避免误报,系统设计了五秒钟的定时器,在检测状态消失后发送重置消息。实现方面,FallDownDetectionProcessor类初始化时创建ROS2节点并订阅跌倒检测话题,同时建立与WebSocket的连接,发布跌倒警报。listener_callback方法处理检测到的跌倒事件,发送警报信号并重置定时器。定时器管理通过reset_timer方法,在未检测到跌倒时向WebSocket发送“未跌倒”信息,确保系统的准确性和可靠性。
6.温湿度传感器部分
DHT11传感器内置电容式湿度和NTC温度元件,通过单总线协议与微控制器通信,发送40位数据。Hobot.GPIO库读取这些数据,转换为十进制温湿度值,并通过校验和验证数据的正确性。温湿度数据被保存到文本文件后,通过HTTP POST请求发送到服务器,并通过WebSocket传输到服务器,实现远程监控。
四、相关代码及运行
1.跌倒检测
代码仓库:https://github.com/HorizonRDK/hobot_falldown_detection
(1)使用mipi摄像头发布图片
# 配置tros.b环境
source /opt/tros/setup.bash
# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
# 配置MIPI摄像头
exportCAM_TYPE=mipi
# 启动launch文件
ros2 launch hobot_falldown_detection hobot_falldown_detection.launch.py
(2)运行相关节点py文件
python3 falldown_detection.py
(3)音频播放设备为pcmC1D1p,启动命令为:
ros2 run hobot_tts hobot_tts --ros-args -p playback_device:=“hw:1,1”
2.手势识别
代码仓库:https://github.com/HorizonRDK/hand_gesture_detection
(1)使用MIPI摄像头发布图片
# 配置tros.b环境-
source /opt/tros/setup.bash-
# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。-
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .-
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_lmk_detection/config/ .-
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_gesture_detection/config/ .-
# 配置MIPI摄像头-
export CAM_TYPE=mipi-
# 启动launch文件-
ros2 launch hand_gesture_detection hand_gesture_detection.launch.py
(2)启动相关节点文件
python3 gesture_detection.py
(3)音频播放设备为pcmC1D1p,启动命令为:
ros2 run hobot_tts hobot_tts --ros-args -p playback_device:=“hw:1,1”
3.语音识别
代码仓库:https://github.com/HorizonRDK/hobot_audio.git
(1)配置tros.b环境和启动应用
# 配置tros.b环境
source /opt/tros/setup.bash
# 屏蔽调式打印信息
exportGLOG_minloglevel=3
#启动launch文件
ros2 launch hobot_audio hobot_audio.launch.py
(2)运行相关节点文件
python3 hobot_audio_node.py
(3)音频播放设备为pcmC1D1p,启动命令为:
ros2 run hobot_tts hobot_tts --ros-args -p playback_device:=“hw:1,1”
4.网页部分
运行以下代码将视频传至网页端
python3 run_reformer.py
五、项目总结
本项目依托RDK X3开发平台及相关组件,结合物联网技术与手势识别功能,设计并实现了一个面向老年人群体的智能监控系统。该系统具备多项功能,包括自动取药、自动取餐、寻呼请求人工服务、跌倒警报触发以及房间内设备和传感器的联网与信息共享等。
在项目的实施过程中,团队充分发挥了RDK X3开发平台的技术优势,熟练掌握了物联网及其相关的程序设计和调试方法,完成了系统的搭建和调试。同时,运用node.js搭建了服务器平台,采用vue3进行前端设计,实现了网页端数据的动态展示与功能控制。
本项目的设计将智能感知技术与监控服务相融合,为老年人群体提供了更加便捷和人性化的生活体验。借助物联网技术,系统完成了数据的实时传输和云平台监控,家属可以随时掌握老人的健康状态和需求,从而提供及时、安全、便捷的医疗服务。
在未来,本项目可以进一步优化和拓展。通过算法优化和数据处理技术的提升,可以提高手势识别的准确性和响应速度,进一步增强系统的智能化水平。同时,将加强系统的安全性和隐私保护,确保老人的个人信息得到有效的保护。
另外,我们小组将拓展系统的功能,引入更多的医疗服务和辅助功能,如心率监测、智能化调节光强和温度等,以满足不同老人的需求。将智慧监控系统与的其他设备进行互联,实现设备之间的数据共享和协同工作,从而提高服务的整体效率和质量。
随着技术的不断发展,本项目将持续关注行业的最新动态,定期更新和优化系统,保持智慧监控系统的先进性和竞争力。同时,我们将探索更深入的研究与合作,推动智能监控领域的创新发展,为老年人提供更加智能、个性化的优质服务。
falldown_detection.py-
run_reformer.py-
hand_gesture.py-
hobot_audio_node.py
