智能服务机器人的设计探究
2022-12-26任晋萍李志坚亓彦斌王磊杜浩
任晋萍 李志坚 亓彦斌 王磊 杜浩
1、山西工学院通识教育学院 2、太原工业学院
前言
随着人工智能和机器人技术的发展,工业自动化和生活智能化程度越来越高,智能化的出现,给我们的生产生活带来了很大的便利,这也是现代社会发展的趋势和科学研究的方向之一[1]。智能小车被广泛应用于科学探索、工业生产等领域。无接触式智能服务机器人有了一个很好的发展前景。近期大多数智能小车用于餐厅送餐,或者送外卖等。基于此,本文产品通过树莓派开发板和Arduino单片机,搭建智能车控制系统。使用树莓派4B完成整个智能车运行的总控的搭建,包括信息传输,视觉,传感器等。使Arduino uno开发板完成智能车的运动的控制,使得整体功耗更小,模块化分工更明显。利用python编程预计可实现路径安排、机械臂控制、道路识别、环境监测以及二维码识别的任务。可以很好地适应当今时代的需求,本设计可以完成楼内定点无接触配送,病毒消杀,上门核酸以及环境监测的任务,在满足用户需求的情况下,极大地节省了人力,同时提供了更加安全、便捷、智能的服务[2]。
1 硬件设计方案
本产品以树莓派4B单板计算机为处理核心,配合Arduino UNO辅助控制。整个系统由电源模块、高清摄像头模块、超声波模块、运动传感器模块、环境监测模块、电机驱动模块以及交互模块组成,其系统结构框图如图1所示。
图1 系统结构框图
电源模块给系统各个模块提供所需电压。高清摄像头模块识别道路信息,供计算机进行处理分析,处理后信息将交由单片机进行验证实施,控制电机驱动模块驱动产品的行进任务。运动传感器模块以及超声波模块将产品状态以及所处环境反馈给计算机,由计算机模拟当前产品状态以做出状态上的调整。环境监测模块则将信反馈至计算机,计算机对相应情况做出反应且将信息通过交互系统上传至云端。
1.1 主控树莓派4B
图2为树莓派4B,在本产品中,主控板是最核心的部分,负责连接摄像头模块、运动模块、信息采集模块、交互模块,是产品的大脑。通过树莓派各型号的相比,树莓派4B是树莓派最新发布的第四代产品,性能与树莓派3B+相比无论是处理器速度,还是多媒体和内存上都有显著提升。这满足了产品在数据处理上的需求。同时,它有2.4/5.0 Ghz双频无线LAN,蓝牙5.0/BLE以及千兆以太网,满足了信息交互的需求。整体而言,非常适合本产品。
图2 主控树莓派4B
1.2 副控Arduino UNO
图3是Arduino,由一个基于单片机的开放源码的硬件平台和一套专门的开发环境组成。它便捷灵活、方便上手,可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各电机和其他物理设备。它没有复杂的单片机底层代码,没有难懂的汇编,只是简单而实用的函数。而且具有简便的编程环境IDE,极大的自由度,可拓展性能非常高.因此,我们采用本单片机作为机器人的副控,负责完整基础物理设备的控制,减小产品功耗。
图3 副控Arduino UNO
1.3 高清摄像头模块
采用树莓派高清夜视摄像头,与主控板配套,满足各种光线条件下的拍摄需求。可实时反馈道路信息以及所需拍摄的人物信息或二维码信息,为本产品的运作提供了眼睛。
1.4 数字运动传感器模块
采用数字运动传感器MPU9250来采集机器人运动中的加速度,角速度等数据。MPU-9250是一个多芯片模块(MCM),由集成到单个QFN封装中的两个芯片组成。一个模具装有3轴陀螺仪和3轴加速度计。因此,MPU-9250是一个9轴运动跟踪设备,结合了3轴陀螺仪,3轴加速度计,3轴磁力计和数字运动处理器。
1.5 超声波模块
使用超声波等微小的传感器能够测量产品自身和最近的固体物体之间的距离,对于机器人避免碰撞,识别环境很有用,搭配视觉系统,可完善产品对环境的识别能力。
1.6 环境监测模块
使用DHT11数字温湿度传感器,高效、稳定的对产品所在环境进行监测。
1.7 电机及电机驱动模块
使用42GA775直流减速电机以及DS3115舵机,为产品提供动力执行。使用L298N对电机进行直接控制,通过主控芯片的I/O输入对其控制电平进行设定后,为电机进行正转反转驱动,操作简单、稳定性好,满足直流电机的大电流驱动条件。
2 软件设计方案
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
2.1 主程序设计
系统软件设计采用Python语言编程实现,利用单片机PWM输出模块和普通I/O模块和树莓派高清夜视摄像头等模块来保证小车的运动进行,根据系统需求,对各个模块进行初始化配置,以实现其相应功能。主程序流程如图4所示。
图4 主程序流程
2.2 实时图像传输程序设计
将树莓派摄像头拍摄到的视频流传到PC端,并在PC端查看。目的是为了便于摄像头姿态的调整和图像处理算法的调试。我们使用UDP传输协议进行图像传输。具体实现主要分为发送端和接收端两部分:其中,发送端在树莓派端运行,接收端在PC端运行。二者同时运行。
2.3 视觉自动行驶程序设计
基于视觉opencv库,使用pygame模块来远程控制机器人的前后左右移动,配合数据采集代码,使摄像头进行拍摄以及数据采集。数据采集完成后进行一些数据清洗的工作,将处理过的数据使用神经网络模型对数据进行训练,得到训练好的模型。在树莓派机器人上使用行驶模块和训练好的模型,载入模型,即可实现在原先道路的自动驾驶。根据模型,来进行自动行驶。
2.4 目标检测程序设计
识别并定位摄像头图像中的各类常见物体。系统调用了TensorFlow Object Detection API,使用了训练好的SSDLite目标检测模型,在树莓派端进行目标检测。使用的SSDLite模型主要优点是运行速度快、占用内存小,适合在树莓派端进行运算。
2.5 超声波测距程序设计
实现了超声波测距和对测距进行移动平均来减小误差。超声波测距是通过控制口发一个10us以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可根据声速算出距离。
(1)采用IO口TRIG触发测距,给至少10us的高电平信号。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回。
(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=高电平时间*声速/2。
3 测试情况
电学性能测试:对所有设备进行上电,充电等操作,测试供电,充电电路设计是否合理。经过测试,设备正常上电运行,RevPi Core 3正常3.3伏供电,树莓派摄像头模块,HC-05蓝牙无线模块都正常运行。锂电池充放电正常,4.2伏充电截止,3.5伏截止放电,充放电指示灯正常表示信息。数据采集测试:RevPi Core 3与树莓派摄像头模块上电后,按照写定程序,正常执行应执行的任务。蓝牙通讯测试:RevPi Core 3连接数字运动传感器与主蓝牙串口模块正常上电。打开树莓派的VNC桌面,单击右上角的蓝牙图标,选择Add Device。进而,进入蓝牙搜索界面,稍等片刻,便正常运行查找到对应的HC-05模块,点击Pair进行配对,配对正常。
4 结语
本文基于树莓派4B和Arduino单片机设计了一款楼内智能服务机器人,可实现产品自主楼内运动。在程序的控制下,产品依托视觉检测模块和超声波模块实现自主运动以及避障,在工作同时可实时监测产品所处环境,通过交互系统为用户提供环境信息。