1. 引言
自疫情爆发以来,大多数医院显露出人手不足的问题,其中一条原因就是护士在日常配送药品中花费了大量的人力资源以及时间资源,人力配送本身就会加重护士工作和生活的压力,但大多数护士都需要轮班和加夜班,这种特殊状态也会加重护士人员的配备程度,从长远来看,这件小事不仅会加重护士本身的工作压力、增加与患者接触的机会而导致二次感染的风险,更重要的就是会影响护士人员的工作质量。
我们经过初步的调查,发现目前市场上只有正在试验的应用于病区之间运送药物的智能送药机器人,且尚未出现集多种功能于一体的应用于病房送药的智能送药机器人或者小车,经过我们比较发现制造一台送药机器人的成本将是小车的数十倍以上,但两者在效率上并没有太大的差距,而在目前,送药机器人的方案并不成熟,在没有上位机的情况下,交互的复杂程度远高于智能送药小车,并且随着5G技术的到来,智能小车方向的应用将会是一片蓝海。
医院缺乏人手的问题迫在眉睫,所以我们拟设计出一款集图像识别和自动循迹于一体的智能送药小车系统,来实现在病房、药房等环境下的无人配送方案,一是可以很好的解决医院中存在的人力和时间资源浪费的问题,大量节省经济成本,二是减少护士和病人之间直接接触的次数,减少医患交叉感染的概率。应用智能送药小车在提升工作效率的同时,也能减少出现事故的概率。
2. 需求分析
作为医院一线基层的医护人员,其身心健康问题长时间被忽略 [1]。护士作为医护人员中的基本人群,其工作量一般是巨大的,加班时间以及工作压力也是巨大的。在护士的工作内容中,为每位病房的病人配送药物占据了极大部分的时间与精力,而其他的任务就需要通过加班加点来去完成,容易使得护士产生疲倦感,产生精神负担。
医护人员的工作内容繁多,其工作压力的来源也是无处不在,例如医疗服务、医学教育以及学科研究等等,而怎样去逐步的缓解医护人员的精神负担成为了目前社会亟待解决的问题。智能送药小车提出的主要目的就是为了缓解护士群体的精神负担,解决为每位病房的病人配送药物这份任务所带来的工作压力。
护士群体的迫切需求具体的表现为:
1) 能够代替人工进行药物配送的工具;
2) 能够24小时待命,随时进行药物配送;
3) 能够在配送药物的过程中,保证药物的完好;
4) 药物的配送需要保证效率。
智能送药小车系统以物联网系统四层架构中的下三层作为设计的总体框架,分别为感知层、传输层以及平台层,各层模块分布如表1系统各层模块分布表所示。

Table 1. Work hierarchy table for each module
表1. 各模块工作层次表
以表1的总体框架为基础,本文设计小车时对于功能的规划为下:
1) 小车可以正常的在药房处装载药物并在病房处卸载药物;
2) 小车可以在行驶过程中保证不偏离专用道路;
3) 小车可以在装卸药物的开始和结束的时候进行提醒;
4) 小车可以通过识别道路中的病房号,来找到需要配送药物的目的病房;
5) 当需要给多个病房配送药物的时候,小车可以实现联合配送;
6) 小车在配送完药物之后,可以按照原定路线返回。
3. 小车硬件选型
3.1. 主控板选型
小车的主控需要读取、分析传感器采集的数据并驱动外设作出反馈动作,经过测试与对比,在此选用抗干扰能力强、驱动能力强、兼容性高的STM32G474RE作为主控板,该主控板主要用于控制小车能够沿着专用送药道路行驶,具体的实物图如图1所示。

Figure 1. STM32G474RE physical drawing
图1. STM32G474RE实物图
STM32G474RE系列芯片应用Cortex-M4内核,主频170MHz,213DMIPS,MPU,DSP指令(DMIPS每秒百万条指令–用于测整数计算能力,MPU存储器保护单元,DSP数字信号处理)具有数学硬件加速器CORDIC与FMAC,非常适于智能送药小车的工作环境。
3.2. 摄像头模块选型
摄像头模块主要用于识别小车在行驶过程中所遇到的病房号,并且反馈图像的识别结果。摄像头模块在此采用OpenMV摄像头的OpenMV4 H7 PLUS模块。
OpenMV4 H7 PLUS是OpenMV4的升级版本,RAM的大小升级到现在的1MB+32MB SDRAM,FLASH的大小也提升到2MB+32MP QSPI FLASH,而且能支持更多的功能如TensorFlow Lite神经网络模型、实现人脸检测以及采用NCC模板匹配识别车牌号等。当摄像头模块处在高速移动中的状态时拍摄无运动模糊,这个特性对于智能送药小车的实现的是至关重要的,因为小车在行驶的过程中如果不能够获取到道路中的信息那么就不能够及时停下,进行识别,判断所需要配送的病房号,OpenMV4 H7 PLUS的实物图如图2所示。

Figure 2. OpenMV4 H7 PLUS camera module
图2. OpenMV4 H7 PLUS摄像头模块
3.3. 药品检测模块选型
药品检测模块的主要功能是检测药品是否被放置在小车上或是取走。
对于该功能的实现方式有很多,可以采用压力传感器、超声波传感器,或者是红外对射传感器,这些传感器均可以通过3.3~5 V电压供电,实现对于药品放置取走进行检测。
因为重力传感器的成本较高,而超声波的传感器的体积较大会占用药品的放置空间,而红外对射管是一端发送一端接收,而且经过实际的测试,红外对射管传输的最大距离为0.7 m,成本最低、体积也最小,非常适合搭载在智能送药小车上,具体实物图如图3所示。
综上所述,红外对射管结构简单、功耗低以及低廉的价格,成为智能送药小车的首选。
3.4. 电机选型
电机的主要作用是提供与给定电压呈正比例的转速,通过正确的程序控制,小车可以实现前进、后退以及转向等功能。
市场上的电机种类繁多,经过初步的筛选,智能送药小车中采用的是直流电机,如图4所示,此种电机相比于市场上的其他电机而言,成本更低,驱动方便,但比较明显的缺点就是,对于行驶速度的控制不如其他种类电机,因为受到制造工艺的影响,同样的控制方式可能会导致两个一样的直流电机出现不同的转速 [2],不过这个缺点可以通过测试过程中的软硬件调试进行规避,编写相应的程序可以使得电机转速一致。

Figure 3. Infrared light switch sensor
图3. 红外对射式开关传感器

Figure 4. Actual diagram of the car DC motor
图4. 小车直流电机实物图
3.5. 电机驱动模块选型
L298N是目前市场上消费类电子模块中最为畅销的电机驱动模块,可以接受高电压,直流电机和步进电机都能够被驱动。L298N的供电范围较大,35伏以下5伏以上均可,对于需要在板内取电的情况,则需要保证供电的最低电压为7 V。L298N双H桥直流电机驱动板如图5所示。
主控板通过输出不同占空比的PWM波就可以实现对小车不同速度的调整 [3]。而这对于小车的设计来说,驱动板所提供的2路稳定输出正是小车所需要的。

Figure 5. L298N double H-bridge DC motor drive board physical drawing
图5. L298N双H桥直流电机驱动板实物图
3.6. 循迹模块选型
在智能送药小车的设计中,循迹模块的作用是使小车能够判别专用道路中间的红色引导线。
经过仔细的筛选后,小车的循迹功能采用7路灰度寻线传感器进行实现 [4],如图6所示,这款传感器是主要用于智能小车中,进行道路上的路线跟踪。这款传感器可靠性高,可以适应绝大部分的特殊环境。它的每一路检测传感器使用一对抗干扰较强的灰度传感器,通过感应反射光的强度,在经过逻辑判断后,来跟踪道路中红色引导线。

Figure 6. 7-way tracking module physical diagram
图6. 7路循迹模块实物图
在小车的设计中,采用奇数路灰度寻线传感器可以使得中间的灰度传感器刚好处于道路的中间,帮助小车实现直行,并且该模块的上的每一路灰度传感器上都带有可调电位器,通过调节电位器,可以使得小车适应较为复杂的道路环境。
3.7. 无线模块选型
无线模块的主要作用是为了实现小车与小车之间的正常通信,实现多个小车在专用送药道路上的协同运行。由于小车与小车之间的通信数据不需要通过云平台进行转发,因此在选择无线通信模块的过程中,不需要考虑像ESP32或者ESP8266这样的联网模块。
智能送药小车在具体的应用场景中,可能会出现两个小车之间间隔较长的情况,因此也不太适合使用蓝牙模块进行数据的传输。经过综合考虑在此采用NRF24L01,如图7所示。主控板可以只使用5个通用GPIO,1个中断输入引脚,就可实现无线通信功能,非常适合智能送药小车的应用环境 [5]。

Figure 7. NRF24L01 wireless transceiver chip
图7. NRF24L01无线收发模块
4. 电路设计
4.1. 电机驱动模块电路设计
电机驱动模块的电路原理图如图8所示。L298N驱动模块通过PWM波对电机A和B的速度进行调节。直流电机可以通过输入1-4引脚对电机的转动速度以及正反旋转控制。当输入端1为高电平,输入端2为低电平时,电机A正向转动,反之则电机A反向转动,电机B的驱动方式同理。

Figure 8. Motor drive schematic diagram
图8. 电机驱动原理图
4.2. 无线通信模块电路设计
无线通信模块的电路原理图如图9所示。从NRF24L01的电路原理图上来看,在使用主控板进行控制时,仅需要关注6个控制和数据信号引脚即可。

Figure 9. Schematic diagram of wireless communication module
图9. 无线通信模块原理图
5. 小车软件设计
5.1. 药品检测程序
药品检测程序会在小车启动之前实时查看红外对射管的状态,如果红外对射管被阻拦则对当前状态进行多次判断,如果最终判断仍为红外对射管被阻拦,则判定药品已放置完成,程序的工作流程如图10所示。

Figure 10. Flow chart of drug testing procedures
图10. 药品检测程序流程图
5.2. 循迹程序设计
循迹程序的硬件模块对应7路灰度循迹模块。该模块上共有7个灰度传感器,当每个传感器对应的可调电位器调整完毕之后,传感器在遇见红色引导线时会输出高电平 [6]。按照红色引导线的宽度,当循迹模块位于红色引导线之上时,至多引起连续的3路灰度传感器输出高电平,基于这个原理,对小车循迹程序进行设计。
按照上面描述的传感器的输出状态,可以推理出小车在赛道上会遇到的4中情况,分别是红色引导线相对于小车居左、居右、居中以及横跨小车,其中横跨小车的情况表示7路灰度传感器全部输出高电平,遇见了岔路口。
循迹程序在实际测试的过程中也发现了一些特殊的情况,由于病房号是贴在道路中心两侧的图片,小车在行驶通过对应区域时,7路灰度传感器可能会产生不太规则的输出,此时需要将这种情况过滤,避免影响小车的行驶,而判断是否特殊情况的依据则是检测输出高电平的灰度传感器是否连续,如果不连续,则代表小车正在经过带有病房号的区域。
循迹程序会在小车识别了目标病房之后开始正式工作,循迹程序在小车的行驶期间会不断的检测道路中间的红色引导线并判断红色引导线相对于小车的位置,然后向电机驱动程序反馈小车应该如何转向。当红色引导线在小车左侧时反馈左转信息,在小车右侧时反馈右转信息,在小车中心时反馈直行信息,横跨小车时反馈停车信息。小车循迹程序的工作流程如图11所示。

Figure 11. Trolley tracking procedure flow chart
图11. 小车循迹程序流程图
5.3. 电机驱动程序
电机驱动程序的功能是控制直流电机按照固定的速度和方向转动,使得小车能够按照沿着道路中的红色引导线行驶。
电机驱动程序会向L298N电机驱动模块输入端1-4引脚输入PWM波,用于控制连接在输出端1-4上的直流电机进行直行、后退、停止、左转以及右转。
基于上述原理,小车这四种状态,程序中采用了STM32G474RE中定时器0的4路通道输出PWM进行实现。
但需要注意的是,由于直流电机制造工艺的差异并且主控板对直流电机的转速控制并不是采用的闭环结构,因此需要在设置直流电机的转速参数时,事先对直流电机固定转速所需要的占空比测量出来。
电机驱动程序的工作流程如图12所示。
5.4. 串口数据收发程序设计
串口数据收发程序的功能是通过主控串口接收来自OpenMV通过串口传递的路口转向数据并进行存储,使得循迹程序在遇见引导线横跨小车时,可以向电机驱动程序传递下一步小车的运行状态。
串口数据收发程序的实现采用了STM32G474RE中的串口1,通过串口1与OpenMV的串口进行连接,互相传递数据并进行数据解析,接收的指令一共有四种,分别是R (右转)、L (左转)、G (直行)以及S (停止),串口程序在收到了相应的控制指令后,会将数据暂存,供给电机驱动程序读取,当小车遇见岔路口时,可以判断下一步的行驶方向。串口数据收发程序的工作流程如图13所示。
5.5. 路径回溯程序设计
路径回溯程序的作用是控制小车在配送完药物之后能够快速的返回至起点。
由于小车在返回起点的过程中,不需要识别道路中心两侧的数字图片,所以可以将配送药物时所遇到的所有路口的转向信息利用堆栈结构进行存储,在返程遇到岔路口时按顺序取出堆栈中的转向数据,供循迹程序向电机驱动程序发送小车的转向信息。具体的实现逻辑为,如果堆栈中取出的转向信息是左转,那么返程过程中遇到路口则右转,同理右转对左转,直行对直行。路径回溯程序的工作流程如图14所示。

Figure 14. Path backtracking procedure flow chart
图14. 路径回溯程序流程图
5.6. 无线通信程序设计
通信程序的作用是每过一段时间,向其他小车发送当前送药小车的运行状态。
通信程序对应的硬件模块是NRF24L01无线接发模块,通信程序通过驱动无线收发模块,向其他小车发送当前送药小车的运行状态,只有其中一辆小车处于停止状态时,另一辆小车才会开始运送物品。小车之间的通信协议采用0和1构成,其中0表示小车处于停止状态,1表示小车处于运动状态。通信程序的具体工作流程如图15所示。

Figure 15. Flow chart of wireless communication program
图15. 无线通信程序流程图
5.7. 图像识别程序设计
图像识别程序主要是用于识别道路中的数字图片,并产生识别的结果。
图像识别程序运行在OpenMV中,采用NCC模板匹配算法进行实现,在使用该算法之前,需要事先将小车放置在道路中获取道路中的数字图像图片,便于程序进行比对。NCC模板匹配算法只能够匹配与模板图片大小和角度相差不多的图案,相较于神经网络算法而言,局限性较大,如果识别的图片相对于模板图片而言大一些或者小一些,都有可能识别不成功。但这点对于智能送药小车的图像识别功能的设计而言并无大碍,因为智能送药小车在识别目的病房或者识别道路中心两侧的病房号时,角度和大小都是相对固定的,误差较小,只要选择好角度和大小适合的模板图片,那么就能够使得NCC模板匹配算法的匹配成功率大幅度的提高。
图像识别程序需要面对的应用场景一共有两种,第一种是小车在启动前需要识别的目的病房号,这种情况所需要处理的图像数据角度固定,大小固定,很容易就能够进行识别,第二种是识别的病房号在道路中心的两侧(此种情况需要摄像头先识别出岔路口后控制小车停止),摄像头在获取图像进行识别的时候,需要控制云台转动固定的角度来找到需要识别的病房号,此时采用NCC模板匹配算法进行识别,需要提前收集大量的模板图片以供匹配。在此经过大量的测试工作采集到的模板图片一共73张。图像识别程序的工作流程如图16所示。

Figure 16. Flow chart of image recognition program
图16. 图像识别程序流程图
6. 实物测试
为了使小车能够更好的完成已规划的各项功能,所以制定了一个相对完整的测试标准,来衡量小车的设计是否合理,功能的实现是否高效。针对于小车制定的测试标准如下:
1) 小车的测试在如图17所示的场地上进行;
2) 小车能够识别指定的病房号;
3) 小车能够在放置和取走药品时进行提示;
4) 小车在行驶的过程中可以保持在道路中央且不会碾压边界黑线;
5) 小车能够运送药品到指定的病房并且返回,不算取药的时间,用时在20 s以内;
6) 两个小车可以协同将药品运输至不同的病房。
6.1. 数字识别测试
在正常光照下,将手持的目的病房号供给小车进行识别,测试进行了多次,其中10次的测试结果如表2所示。

Table 2. Digital Identification test results
表2. 数字识别测试结果
经过分析这次实验数据,我们发现小车使用了NCC模型匹配算法后在正常的环境下能够达到我们所预期的效果,同时我们将这次测试的数据同CCN卷积神经网络的方法想比较发现,使用卷积神经网络方案不仅正确率达不到要求只有60%,而且在识别速度上要比NCC模型匹配方案慢8秒左右。
6.2. 小车行驶情况测试
在正常光照下,按照测试过程中的1~7步进行测试,测试进行了多次。小车最终的行驶速度测试结果如表3所示。

Table 3. Test results when changing the intensity of the light
表3. 改变光照强度时的测试结果
6.3. 联合配送测试
在正常光照下,对小车联合配送功能进行测试,截取了测试过程中的10次测试结果,当小车能够正常沿着道路行驶时,小车的联合配送不会出现碰撞。
6.4. 测试总结
对于智能送药小车的测试完全按照既定计划进行,所有的测试结果均记录在案,从5.3中的测试结果来看,得到的结论如下:
1) 从小车的数字识别测试结果来看,小车对开始的手持的数字识别的准确率较高,达到了100%及以上,功能能够实现,可靠性达到预期;
2) 从小车的速度及压线测试结果来看,小车对于远端病房的药品配送偶尔存在着超时以及压线的情况,通过对测试过程的观察发现,造成超时的原因是小车在岔路口处识别的病房号所消耗的时间太多,使得整个配送过程超时。另外的压线情况是因为小车在经过岔路口转向时,支架被卡住导致无法转向,使得小车直行后压线,这是由于场地本身及小车物理结构的缺陷所导致。
3) 从小车的联合配送的测试结果来看,当单独的小车能够完成独立配送时,两个小车的联合配送不会产生冲突。
7. 文献综述
7.1. 国内外研究现状
智能小车可以按照预先设定的模式在特定环境中完成相应动作,具备良好的自动寻迹寻光、避障功能及较强的稳定性、实时性等优点,在物流运输、科学勘探、跟踪识别、抗震救灾等方面具有广阔的应用前景,国内外科研院所和企业对智能小车的应用开展了大量研究。
第一台智能小车是有NilsNi-ssen和Charlenrosen等人在1972年研制而成的,取名为Shakey。从20世纪70年代开始,美国等发达国家开始进行无人驾驶汽车的研究,主要方向是军事、高速公路和城市环境。在80年代初,美国国防部对自主陆地车辆ALV的研究投入了大量资金,并在该领域取得了极大进步。
欧洲在进行前车距控制、视觉增强、道路环境的感知及传感器融合等方面的研究也取得了较大进步。例如,用“智能速度适应”提升汽车整体安全性,辅以道路标识、车载地图等综合信息的方式完成车辆导航和自动控制车辆时速的功能。
20世纪80年代末,我国才开始智能小车的研究,经过几十年的不断发展,取得了若干阶段性成果。
1992年,国防科技大学研制成功了国内第一辆无人驾驶汽车。清华大学研制的清华V型智能汽车。西安交通大学研发了Spingrobot智能试验平台。同济大学研制了一款时速高达 50km/h 的基于无人驾驶技术的清洁能源电动游览车。
7.2. 国内相关技术应用现状
其中,赵晓玉在《一种智能送药小车的设计研究》一文中,研究并设计了一款多功能自动送药小车 [7]。该小车综合当今社会所现存的多种助老助残服用药品的机器的功能,弥补了各种机器的不足之处,具有结构简单、操作方便、设计成本较低等特点。它主要由自动提醒及接水装置和送药系统两部分组成,可以圆满地完成辅助病人吃药任务。
陈威在《基于多传感器的智能小车避障控制系统设计》一文中,针对当前大多数智能小车以单一的超声波传感器进行检测及避障的不准确性,设计了一种基于摄像头和超声波的多传感器智能小车避障控制系统。实验结果表明,该系统在智能小车自主行驶过程中,可实现快速避障,同时,基于多传感器的智能小车避障系统的准确度比单一传感器避障系统有了明显提高 [8]。
翟钟鹏在《基于迁移学习的嵌入式数字识别系统》一文中,针对现有神经网络数字识别模型因结构复杂在终端设备部署面临的计算性能瓶颈,设计了一种轻型数字识别网络EmbedNet,来降低模型对高性能硬件的依赖。同时针对模型识别真实图片效果差的问题,使用迁移学习和灰度分布调整结合的方法提高模型的识别准确度。实验结果显示:轻量级网络EmbedNet在数据集MNIST中的识别精度达到97.4%,经改进迁移学习方法训练后,模型对真实样本的识别准确率从29%提高到82%,该方法有效提升了模型的识别能力。整体方案能够在嵌入式设备中运行 [9]。
7.3. 总结
综上所述,智能小车的研究和应用涉及传感器技术、机械结构、智能控制等多个学科,除军事应用外,还可以应用于物流运输、地质勘探、危险搜索等领域。目前,国内科研院所虽然在小车的研发上取得了较大进步,但仍存在较大不足,例如智能小车的应用并没广泛的铺开,大多数研究项目都还是处于试验阶段,随着5G技术的铺开,相信相关的技术都会得到巨大的推进,智能小车的应用前景是一片蓝海。
8. 结语
智能送药小车采用STM32G474RE作为主控板,使用OpenMV4H7PLUS视觉模块来判断行驶过程中的图像数据,同时搭载七路数字量灰度循迹传感器来使小车按照规定的路线行驶,大大降低了小车误送的几率,小车上还搭载红外对射传感器来判断药物放置,最后小车通过NRF24L01芯片来实现多车配送。整个小车的设计与实现非常的完整,在通过了多次测试后,小车也达到了预期的效果,目前小车能够在日常普通光照下能正常工作,但是在光线较暗或者较强的环境下测试还是偶发错误,所以针对小车设计中的不足,下一步优化方案来进行改进,使得小车能够在更多复杂的环境中进行配送。相信智能送药小车的设计在未来复杂多变的环境中也会起到重要的作用
基金项目
本篇论文获得项目编号为202211654166武汉商学院2022年度大学生创新创业训练项目《药达》的研究资助。
NOTES
*通讯作者。