智能医疗辅助机器人设计韩廷辉韩康杰裴瑾张欣申思梦
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能医疗辅助机器人设计韩廷辉韩康杰裴瑾张欣申思梦
发布时间:2023-06-22T10:30:25.500Z 来源:《中国科技信息》2023年7期作者:韩廷辉韩康杰裴瑾张欣申思梦
[导读] 医疗机器人作为创新型智能医疗设备能够满足人们对优质医疗服务的需求, 同时能够帮助更好应对全球老龄化引起的医疗资源不足等问题, 由此引起各国极大关注。
近年来, 国际上医疗机器人产业和市场已初具规模, 而我国医疗机器人产业处于起步阶段, 与发达国家相比有一定差距。
基于此种情况,作者们提出了基于STM32控制的智能医疗辅助机器人的设计,以STM32单片机为核心,结合Open MV视觉模块的OV7725摄像头芯片,利用摄像头芯片采集到的信号控制医疗辅助机器人的运动方向、转弯等运动实现药物的运输。
太原工业学院山西省太原市 030008
摘要:医疗机器人作为创新型智能医疗设备能够满足人们对优质医疗服务的需求, 同时能够帮助更好应对全球老龄化引起的医疗资源不足等问题, 由此引起各国极大关注。
近年来, 国际上医疗机器人产业和市场已初具规模, 而我国医疗机器人产业处于起步阶段, 与发达国家相比有一定差距。
基于此种情况,作者们提出了基于STM32控制的智能医疗辅助机器人的设计,以STM32单片机为核心,结合Open MV视觉模块的OV7725摄像头芯片,利用摄像头芯片采集到的信号控制医疗辅助机器人的运动方向、转弯等运动实现药物的运输。
关键词:医疗辅助机器人,STM32单片机,Open MV摄像头,视觉,数据处理,April Tag 编码
Design of Intelligent Medical Assisted Robots
HAN Tinghui,HAN Kangjie,PEI JIN, ZHANG Xin,SHEN Simeng
(TaiyuanInstituteofTechnology)
Abstract:As an innovative intelligent medical device, medical robots can meet people's demand for high-quality medical services and help better deal with the problems such as insufficient medical resources caused by global aging, thus attracting great attention from all countries. In recent years, international medical robot industry and market have begun to scale, but our medical robot industry is at the beginning stage, compared with the developed countries there is a certain gap. Based on this situation, the authors proposed the design of intelligent medical assistance robot based on STM32 control. With STM32 microcontroller as the core, combined with OV7725 camera chip of Open MV vision module, the signals collected by the camera chip are used to control the movement direction, turning and other movements of the medical assistance robot to realize drug transportation.
Keywords:Medical assistance robot, STM32 microcontroller, Open MV camera, vision, data processing, April Tag coding
随着科学技术日新月异的发展,智能机器人在众多领域已全部或部分代替了人类,完成规定的任务。
医疗辅助机器人也将逐步进入人们视线,协助医护人员工作,避免不必要的接触及交叉感染等。
基于医疗机器人广泛的市场前景和应用价值,我们开展了这次大学生创新项目——医疗辅助机器人:以STM32单片机为核心,结合Open MV视觉模块的OV7725摄像头芯片,用摄像头芯片采集到的信号控制医疗辅助机器人的运动方向、转弯等运动实现药物的运输.我们设计的医疗辅助机器人是用来辅助医护工作者工作,来预防因给患者送药物而感染病毒等此类事件发生。
该机器人可以自主送药,减少医护工作者与病人的接触,可以有效地降低医护工作者被传染的风险,保护他们的人身安全。
1.设计背景
医疗机器人融合了医学、机械制造、人工智能、大数据等多学科的知识,是高端智能医疗装备的代表,现已被广泛应用于手术、康复、诊断和服务等场景,助力智慧医疗建设,为制造强国和健康中国建设提供有力支撑。
医疗辅助机器人可替代人力,长时间完成消杀、医用耗材管控与运输等工作,并具备全程追踪溯源,优化管理系统等功能。
我们设计的医疗辅助机器人是一款可以智能地向各病房输送药物的机器人,即运输机器人。
将药物放到机器人指定位置——保存药物的地方后,向机器人下达开始行动的指令,该机器人将通过摄像头寻找线路并自主判断药物与对应病房号是否正确[1],以达到准确地将药物送到各个病房的目的。
到达病房门前后,机器人会发出提醒并将装有对应药物的盒子打开;直到药物被拿走后停止提醒,而后继续向下一个病房出发。
当机器人把所有药物送完之后,自动回到药房等待下一次启用。
2.机械设计方案
医疗辅助机器人整体结构采用亚克力板与打印丝相结合的方式,将电子元器件全包围在中间一层避免电子元器件与外界的直接接触,Open MV摄像头放置在舵机云台上,舵机云台处于车中间一层的正前方,这样摄像头可以拥有更广阔的视野,机器人底盘采用的是传统的4轮驱动底盘结构[2],机器人装载药物的结构是采取的车斗结构这样可以使机器人拥有更大的容量。
医疗辅助机器人3D结构图如图1所示:
图 1 机器人3D结构图
3.硬件系统设计硬件系统主要包括STM32F1037ZET6主控器、L298N电机驱动模块、LM2596S电源稳压模块、光电传感器和Open MV摄像头[3],舵机云台。
硬件系统的构成图如图2所示:
图 2 硬件系统构成图
(1)主控模块
主控制器采用STM32F1037ZET6单片机[4],支持SWD和JTAG调试,SWD只要2根数据线,内核:使用高性能的ARM® Cortex™-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达512K字节的闪存和64K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。
所有型号的器件都包含3个12位的ADC、4个通用16位定时器和2个PWM定时器,还包含标准和先进的通信接口:多达2个I 2 C接口、3个SPI接口、2个I 2 S接口、1个SDIO接口、5个USART接口、一个USB接口和一个CAN接口。
整个系统采用L298N电机驱动模块,用于驱动机器人四个DC变速电机,通过Open MV对巡线线条进行精确识别[6],采用LM2596S稳压模块对电源进行DC-DC转换以维持整个系统正常运行。
(2)Open MV摄像头模块
Open MV摄像头是一款基于STM32单片机和图像传感器的机器视觉模块[5],通过Open MV IDE可以轻松地完成机器视觉(Machine Vision)应用,可选的图像处理像素模式有灰度模式和色彩模式2种。
Open MV上搭载了Micro Python解释器,用户可以通过Python语言编写程序从而实现一系列的功能。
机器人采用灰度模式用于检测线条,采用色彩模式用于识别April Tag 编码,Open MV通过调用其内置的图像识别算法库函数资源完成对以上物体的判断,信息在经过特殊PID算法处理,最后将得到的数据通过串口通信传递给STM32主控模块。
(3)电源稳压模块
LM2596S稳压芯片是非常适合单片集成电路。
它是为了简单和方便的设计一个降压开关调节器。
它能够出色地驱动3.0 A负载线路和负载调整。
该装置输出可调版本和它的内部补偿,以减少外部元件数量简化电源设计。
由于LM2596S变换器是一种开关式电源。
LM2596S的开关频率为150kHz,允许比需要的过滤器组件更低频率的开关稳压器。
可在标准中使用TO−220封装,有多种不同的引线弯曲选项D2PAK表面安装包。
其他功能包括保证4%的输出公差,及在规定的输入电压和输出负载条件下的15%电压振荡器频率。
包括外部停机,具有80A(典型)备用电流,自我保护功能,输出开关的逐周期电流限制,以及在故障下的完全保护的热关闭条件。
(4)驱动模块
医疗辅助机器人的驱动模块,采用的是 L298N。
驱动信号频率为1.25MHZ该驱动的输入电压为8V~45V,最大的可接受电流为50A,一片驱动芯片可以同时控制两个直流电机做不同动作。
L298N可对电机进行直接控制,通过主控芯片的 I/O 输入对其控制电平进行设定,就可为电机进行正转反转驱动,操作简单、稳定性好,可以满足直流电机的大电流驱动条件。
驱动与主控之间采用 HCPL2630SD光电耦合器进行隔离,经过实际测试后,使其更加符合此小车的使用,在过温、过压、欠压、过流和短路的情况下,芯片自动关断输入。
为了防止系统在工作过程中因为芯片保护而停止工作,在系统设计时增加散热器、稳压电源、防反接保护等情况并采取措施。
4.软件系统设计
(1)编程软件的使用采用KeiluVision5软件对主芯片进行编程,使用STM32F1037ZET6单片机自带数据线将程序导入芯片。
使用Open MV摄像头采集图像,使用与Open MV摄像头配套的Open MV IDE软件来编写Open MV摄像头的图像处理程序,Open MV摄像头和STM32F1037ZET6单片机以串口通信的方式进行数据的传输,传输完成后由主芯片进行数据的处理。
由于一开始机器人需要以串口通信的方式采集各种数据,我们决定使用XCOMV2.0来查看各传感器的数据。
(2)总体程序的构思
本设计主要采用Python和C++两种语言编写程序,程序流程图如图3所示:
图 3 程序流程图
(3)基于C++语言编程的STM32F1037ZET6单片机控制器STM32F1037ZET6单片机程序主要负责机器人的行进系统,行进系统包括负责电机驱动的PWM正反转调速程序,以及四个光电传感器负责判断机器人是否到达病房前的程序。
STM32F1037ZET6单片机程序还负责储存和运用经过Open MV摄像头图像采集处理过的数据,包
括药物信息,房间号信息和线条信息。
线条信息会经过单片机的滤波程序和PID算法程序将数据直接运用到电机的正反转调速程序上,在这里主要讲解一下编写比较好的电机正反转调速程序:void left_front(int Speed_X)
{
if(Speed_X==0)
{
Speed_X=0;
TIM_SetCompare1(TIM3,0);
TIM_SetCompare2(TIM3,0);
}
if(Speed_X>=900){ Speed_X=900;}
if(Speed_X<=-900){ Speed_X=-900;}
if(Speed_X>0)
{
TIM_SetCompare1(TIM3,Speed_X); TIM_SetCompare2(TIM3,0);
}
if(Speed_X<0)
{
Speed_X=-Speed_X;
TIM_SetCompare1(TIM3,900-Speed_X); TIM_SetCompare2(TIM3,900);
}
}
这个程序是机器人四个电机的其中一个我们为机器人每个电机都编写了上述程序,它的原理是PWM调速需要俩个IO口,当它们中间有电压差时,电机驱动就会让电机转动,同理但他们之间的电压值相反时电机就会反向转动,但是PWM调速程序并不支持负数即没有一个IO口并没有负电压只可以0V到3.3V,这个程序就是将负数带入进去设定正数就是这个电机向前转动负数则是电机向后运动。
将俩个IO口的电压统一换算,当输入值为正的时候一个IO口的电压拉到最高,第二个IO口负责调压变速,当输入值为负的时候第二个IO口是电压拉到最高,第一个IO口负责调压变速。
这样就实现了将数据直接运用到电机速度上。
(4)基于Python语言编程的Open MV摄像头控制器
Open MV摄像头程序主要负责图像的采集,将采集到的信息经过Open MV摄像头上的PID算法进行一次处理后,在将数据利用USART 串口通信发送给STM32单片机。
Open MV摄像头程序还负责舵机云台的转动,舵机云台可以进行左右和上下的转动,以保证摄像头的视野绝对的开阔,可以更好的采集信息。
(5)基于Open MV的图像处理及数据传输
机器人Open MV摄像头模块它所实现的功能主要为房间号的识别和采集巡线线条的识别,房间号采用的是April Tag 编码家族的TAG36H11成员,它相比与其它种类的April Tag 编码相比Open MV摄像头识别的正确率会更高,识别的速度会更快。
Open MV摄像头相比于其他种类的摄像头采集的图像更清晰,图像处理更迅速[6],数据传输更便捷同时也方便了机械的安装和硬件的连接,最重要的是Open MV集成了所有April Tag 编码家族可以做到更准确更快捷地识别,它可以在较远的情况下准确的传输回April Tag 编码的信息。
由Open MV模块上的摄像头(感光元件为OV7725)采集图像并通过 Open MV模块上的单片机进行一系列处理,对图像进行预处理、二值化,拟合直线后,调用PID算法程序得到一次处理后的输出值[7],在用USART串口通信发送到STM32主控板上,再由STM32主控板进行数据的二次处理,这样数据处理的速度更快处理的程序也更加简洁。
5.创新点及优化
本项目医疗辅助机器人是采用的Open MV摄像头和STM32主控板双核控制,比传统的单核心、单Open MV控制或单STM32控制更加方便,功能也更加强大,Open MV主要控制舵机云台的运动、房间编码的识别、巡线线条的识别。
STM32进行PWM电机的调速,光电开关的检测,两个主控芯片之间使用USART串口进行通信相互进行数据的传输与各个系统之间的控制。
6.结语
本研究提出了基于STM32单片机和Open MV摄像头双核控制的医疗辅助机器人设计与优化。
Open MV摄像头模块作为数据处理和舵机云台的控制核心,STM32单片机作为医疗辅助机器人其余部分的控制核心。
该机器人可以正确稳定的实现巡线功能,同时也能够快速地识别April Tag 编码,将药品运送到指定的病房。
在程序方面,主要为巡线程序和April Tag 编码识别程序。
巡线程序由Open MV摄像头进行图像预处理、路径识别及规划,通过PID算法得到输出值,将输出值由USART串口传输给STM32单片机调用机器人控制程序实现机器人沿路径行驶;April Tag 编码识别程序,通过Open MV摄像头识别April Tag 编码,将识别到的内容由USART串口传输给STM32单片机,由单片机判断编码内容是否为药物对应房间号。
参考文献:
[1].朱能飞,王翠,陈勇生,等.基于STM32的SPWM直接面积等效算法的分析与实现[J].计算技术与自动化,2017,36(3):20-22.
[2].施敏虎,栗云鹏,庄曙东,等.基于Open MV的智能搬运车型机器人的设计[J].机械工程师,2020(2):20-22,25.
[3].欧寒芝,匡盈霏,丁慧玉,陈慧,龙慧.一种机器视觉巡线避障小车的设计[J].电脑与信息技术,2022,30(02):13-17.
[4].单片机的应用——STM32 智能小车 [J].农家参谋 ,2019(19):194.
[5].张文青, 龙奕帆. 基于Open MV视觉模块的智能小车巡线系统设计[J].集成电路应用, 2021, 38(10): 232-233.
[6].魏元焜,吴丹阳.基于NI my RIO的机器视觉搬运车设计[J].工业仪表与自动化装置,2019(05):53-56.
[7].赵昕晨, 杨楠. 基于头部姿态分析的摄像头视线追踪系统优化 [J]. 计算机应用, 2020, 40(11): 3295-3299.I1。