黄大志,游栖霞,杭智刚,黄丹
(淮海工学院机械工程学院,江苏连云港222005)
护士助手机器人是服务机器人[1-2]的一种,能够应用于日常医疗护理、代替医生实施手术、军事救援等领域。近年来,“非典”、禽流感、甲型H1N1 流感等流行病时常爆发,而远离病毒源和传染病患者是预防传染病的最好方法。护士助手机器人不仅能对病房消毒,运送医疗器械、实验样品及结果,为病区的人运送药、送饭和生活用品,清除病房垃圾,还能减少护理人员感染传染病的几率和工作强度,从而可以提高医疗机构的自动化程度。所以研制护士助手机器人具有非常重要的意义。
工作人员只需一台PC机,就可远程遥控护士助手机器人。工作人员根据机器人摄像头不断反馈回来的图像,利用PC机上的软件通过无线传输模块向护士助手机器人发送各种命令,这样就可遥控机器人完成巡游病房,通过摄像头监视病人情况,通过机械手抓取药物送给病人并清理医疗垃圾等任务。机器人的设计方案如图1所示。
图1 护士助手机器人方案图
护士助手机器人的三维模型图如图2所示。机器人主要由车体、电机、万向轮、机械手、摄像头等部分组成。车体由现有医院及卫生场所常用的护士医疗手推车改造而来,将两个原有的万向轮换成电机驱动的主动轮,这样机器人就可以自由运动,具体转向靠两个电机的转速差来实现。在机器人平台上面放置一个5自由度的机械手,机械手可以到达平台的任何地方,可以拿起送给病人的食物、药品或药具等。摄像头放置在小车后面,不仅可以观察机器人运动的环境,还可以反馈机械手运动的过程,方便控制人员精准控制机器人的运动。另外摄像头下有两自由度的云台,可以调整摄像头上下左右的位置,以达到最佳的监控角度。
图2 机械人三维建模图
如图3所示,机器人控制系统主要由上位机和下位机构成。上位机为普通的PC机,只要有USB接口,就可以通过监控软件控制机器人代替护士去做一些简单的医疗服务。下位机主要由2个单片机及控制模块组成。1号单片机主要负责控制无线接收模块并和2号单片机通讯。2号单片机控制电机模块来实现对车体运动的控制,控制机械手以及云台的舵机。
图3 控制系统硬件结构图
上位机主要由PC机、无线发送模块和摄像头无线接收模块组成。PC机要求配置如下:操作系统:Windows 98/2000/XP/vista/W7;CPU:Intel Pentium IV 2.8 GHz以上;内存:大于等于512 MB;硬盘:2 GB 剩余空间;接口:USB接口2个以上;光驱:16倍CD-ROM以上。
下位机主要由2个单片机以及电机驱动模块组成。单片机选用STC89C51,该单片机比传统51类单片机执行速度快10倍以上,内部有8KB的EPROM,3个定时器,4路外部中断,32个I/O接口,完全满足控制机器人的需要[3-4]。1号单片机负责与上位机、2号单片机通讯。2号单片机主要用来控制电机驱动模块和舵机。
电机驱动模块电路如图4所示。用2个L298N[5]芯片来分别控制机器人2个运动电机。ENA,IN1,IN2的高低电平就可以控制电机停止,正转,反转和急停。2号单片机发给ENA的不同占空比的脉冲信号就可实现电机的PWM 调速。
图4 电机驱动模块电路
机器人的手臂和摄像头云台的运动都是由舵机的转动带动的,舵机转动的角度与单片机发送给舵机的脉冲高电平时间的关系如表1所示。通过运动学分析后,通过软件可操控机器手和云台自由运动,也可设定自动运动流程。
表1 高电平时长与转角关系
上位机与下位机的通讯都是无线的。监控摄像头是线摄像头,发送信号到无线接收模块,通过模块处理后,即可传入PC机,通过软件看到监控画面。同样PC机发出的控制指令也是通过无线的方式传送给单片机的。采用的是APC220-43模块,它是高度集成半双工微功率无线数据传输模块,其嵌入高速单片机和高性能射频芯片,TTL串口接口,配合1个USB转换器可以实现电脑与单片机之间通讯。通过串口通讯将上位机指令发送到无线发送模块,再通过无线电方式传送给无线接收模块,无线接收模块与1号单片机串行通信,这样实际上在PC机与单片机之间建立起无线的串行通信渠道。指令经1号单片机分析完毕后,传送给2号单片机执行控制。
机器人设计要求机器人能够连续工作4 h以上,所以选择24 V、5 000 mAh的可充电锂电池。它体积小质量轻,电量充沛,完全满足需要。
在机器人控制系统中,24 V 不能完全满足各部件电压的需要,需要进行降压和稳压。摄像头为12 V 直流电,所以设计了24~12 V的降压电路。驱动电机需要稳定的9 V 直流电,又将24 V 直流电经稳压器稳定到9 V,随着电源电量降低,加在驱动电机上的电压波动不大,保证了控制车体运动的稳定。其他的电路系统、舵机都需要5V的直流电,有需要将24 V 降压并稳定到5 V。这都为控制系统的稳定运行提供了保障。
软件由上位机监控软件和下位机单片机程序组成。该护士助手机器人通过上位机传输无线信号给下位机。上位机软件由VB 语言开发完成。上位机软件开发的重点是实现串口通信。下位机软件基于STC89C51 单片机,利用C 语言编程,利用Keil软件调试、编译和生成。
护士助手机器人监控软件如图5所示。该软件有以下功能:黑色区域为监控区,摄像头收集到的图像信息在该区域实时显示出来,方便操作人员了解机器人的状态。界面左下部分为机械手控制区,可以控制机械手的每个自由度运动,实现一定的功能。中下部为摄像头控制区,可以方便地调节摄像头云台的前后左右状态,来调整摄像头拍摄的最佳位置。右下部为车体控制区,主要控制机器人前后左右自由的移动,甚至能够原地转动。该软件还设置了复位功能,方便机器人自动恢复到初始状态。为了避免机器人意外的错误操作,特意设置了急停功能,它能使机器人停止所有动作。
图5 监控软件界面
上位机监控软件程序流程图如图6所示。
图6 监控软件程序流程图
上位机监控软件利用VB的通信控件MSCOMM,文件名为MSCOMM.VBX 来实现串口通信。可对该控件设置串行通信是发送数据还是接收数据,设定串口状态和通信信息协议和格式。
下位机利用了串行通信。使用CMOS 移位寄存器或TTL 来扩充I/O 口。当单片机的RXD与通信设备的TXD 相连时,单片机接收信号。当单片机的TXD与通信设备的RXD 相连时,单片机发送信号。SBUF是串行口缓冲寄存器,包含发送和接收寄存器。
波特率(Boud Rate)指在串口通信中一秒钟发送或接收的位数(bits/s)。波特率的设定是关键,串口通信准确进行的前提之一是上下位机的波特率一致。在该护士助手机器人程序中设置波特率为9 600 bits/s。
在电动机负载一定时(即转矩一定时),降低电压,对应的转速不同,这样就可实现电机调速。而要实现电机反转,只要给电机加反向电压即可。电机的控制是通过PWM 来实现的。PWM[6](Pulse Width Modulation)控制即脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制而等效地得到所需要的波形(含幅值和形状)。脉冲信号事由单片机通过定时器来实现的。
舵机控制的重点在于实现产生周期为20 ms的脉冲电平信号,其中当高电平在0.5 至2.5 ms之间变动时实现舵机由左极限(0)到右极限(180°)的转动。经过多次试验,发现机器人用的舵机控制信号的高低电平的脉宽长度参数 (h,l)与舵机的角度(θ)存在如下线性关系:h=θ/6+15;l=530-h。利用这个关系可以实现对舵机的控制。
制作的护士助手机器人样机如图7所示。它能够在200 m 范围内正常通讯和运行,能够抓起矿泉水放到病床旁,当然也能拿起体温计等小的医疗用品给病人。该机器人运动速度与普通人相当,运动灵活可靠,非常适合不宜护理人员经常出入的病区或隔离区。
图7 护士助手机器人样机
【1】常江,孟庆鑫.非完整轮式移动机器人的轨迹跟踪滑模控制[J].控制工程,2010(6):849-852.
【2】黄大志,周庆贵,陈业强.基于单片机轮式寻迹机器人控制系统的设计[J].机床与液压,2009,37(8):350-352.
【3】李朝青.单片机原理及接口技术[M].3版.北京:北京航空航天大学出版社.2010:17-24.
【4】张江梅,王妲.基于单片机和光电检测技术的机器人行为控制系统[J].机床与液压,2008,36(12):127-128,172.
【5】黄大志,周庆贵,刘明芹,等.三轮移动机器人直线行进数字PID控制的研究[J].微计算机信息,2009(35):199-200,213.
【6】庹朝永.基于单片机的直流电机PWM 调速系统设计与开发[J].煤炭技术,2011(6):62-63.