基于树莓派的搜检机器人的设计∗
2019-03-26陈超波马嘉跃胡海涛
曾 杰 陈超波 赵 楠 马嘉跃 胡海涛
(西安工业大学 西安 710021)
1 引言
随着计算机科学与网络技术的不断创新,为智能机器人技术的发展带来了新的发展机遇,各种机器人在不同的领域发挥着越来越重要的作用[1]。在一些对人们人身安全有威胁性的领域广泛应用移动机器人,对于消除危险隐患,减少人员伤亡具有重要意义[2]。国外自20世纪80年代起,就开始系统地研究小型移动机器人,用以代替人做一些监测巡检工作。近年我国对移动机器人的研究也取得了一些进展,“排爆奇兵”就是由中国航天科工集团研究开发的新一代大型排爆机器人,可较好适应恶劣环境并排除危险物品[3]。
用传统AMR芯片作为主控芯片,无法连续执行较多次的图像处理步骤[4],处理速度较慢。不能使用OpenCV图像处理函数库,灰度化、二值化、拉普拉斯边缘检测函数需要单独写出,增大了工作量并且处理效果不理想。
本设计采用的树莓派作为一个微型计算机,可以安装OpenCV图像处理函数库,更便于调用图像处理函数,高速的处理器可以更加快速地得到图像处理结果。
2 基于树莓派及OpenCV图像处理
树莓派做为微型计算机相比于传统计算机树莓派只是缺少了显示屏幕和键盘,被广泛用于图像,文字处理。树莓派拥有强大的处理器可以对摄像头采集到的图像进行实时处理,完成采集和识别,USB端口可以方便地连接LINUX免驱摄像头,具有独立的40个GPIO引脚,可以在完成图像处理的同时输出电机、机械臂的控制信号,HDMI接口可以接入显示器方便图像显示。树莓派可以运行Python语言进行编译,其内置了Python-GPIO函数库,在利用GPIO引脚输出控制信号时并不需要独立编写底层的IO控制驱动,可以直接使用Python-GPIO函数库驱动GPIO[5~8]。十分便捷而且易于学习。树莓派运算速度快,价格低。鉴于树莓派的种种优点本设计选择使用树莓派作为系统主控。
本设计用树莓派进行图像处理还需用到的一个重要工具是OpenCV,OpenCV全称是Open Source Copputer Vision Libra,是一种跨平台的计算机视觉库,基于BSD许可(开源)可在Linux,Windows,Android和Mac OS操作系统上运行。它是轻量级和高效的,由一系列C函数和少量的C++类组成,它还提供了诸如Python,Ruby和Matlab之类的语言接口,并且实现了许多用于图像处理和计算机视觉的通用算法[9~12]。本设计正是利用其Python接口调用OpenCV图像库完成图像的处理。
开启摄像头后采集一帧目标物体的照片,OpenCV默认读取图像是RGB通道,现需要转化到HSV颜色空间,设置HSV空间中目标颜色的阈值,覆盖掩模后只剩下目标颜色,经过腐蚀和膨胀后目标物体边缘变得更加清晰,利用中值滤波和低通滤波过滤掉噪声后,进行Canny边缘检测。经过Canny边缘检测后的图片就处理的只剩物体轮廓,之后进行霍夫边缘检测返回目标物体的边缘数量从而完成对目标物体的识别。流程图如图1所示。
以三角形,长方体和圆柱体为例,经上述步骤得出图2的检测结果,对于目标物体的边缘进行直线检测,并将边缘数量返回。三角形的检测结果是三条直线,长方体的检测结果是四条直线,易与长方体混淆的圆柱体上下边缘是曲线,所以只能检测到两条直线,这样就可正确识别目标物体。
图2 检测结果
3 机械结构设计
本设计由机械结构部分和智能控制系统两部分构成。机械结构部分包括可移动载体平台和机械手臂。其中可移动载体是本设计的硬件基础,搜检机器人的信号采集系统,驱动系统和控制系统都要以可移动平台为载体。考虑到履带式移动载体的支撑面积大,对地面的压力较小,履带支撑面上附有多条棱起,移动时不易产生滑动,牵引附件性能好,有较好的越障能力,可更好地适应各种恶劣的路面环境[13],故而本设计选用履带行走方式。实物图如图3所示。
图3 履带式移动机器人底盘
多自由度机械臂具有高速,灵活等特点,在生产和生活中的应用越来越广泛并起着非常重要的作用[14]。本设计要求搜检机器人可识别出目标物体并用机械手夹取放置到安全地方,故采用了4自由度的多关节机械手臂,可使夹持器到达臂长范围内任一三维坐标点,满足设计要求。最大臂展接近30cm,属于小型专用机械臂,它由四个转动舵机组成,固定于履带式移动机器人底盘的前端,实现对目标物体的抓取。机械臂由舵机驱动板驱动,由树莓派提供控制信号,外接锂电池供电。结构图如图4所示。
图4 机械臂机构图
4 控制系统设计
4.1 总体方案设计
本系统采用Linux免驱USB摄像头完成对目标物体的图像采集,树莓派作为系统主控处理和识别摄像头采集到的图像,手机通过无线WIFI热点与树莓派连接显示图像识别结果。同时由树莓派产生驱动信号,经过驱动电路后控制机械臂和电机运动。超声波模块通过GPIO口与树莓派连接,测量履带式移动底盘与目标物体之间的距离,使得能在摄像头最佳焦距内完成对目标物体的识别。系统结构如图5所示。
图5 系统结构图
本设计基本工作原理描述如下:首先向控制器发出启动信号,控制器启动超声波测距模块测量履带移动底盘与目标物体的距离后,驱动电机向前或向后转动。当到达预定距离后停止移动并开启摄像头模块采集一帧图像,进行图像处理后将结果返回至控制器。在得到正确的识别结果并且履带式移动底盘与目标物体的距离为预定值时,驱动机械臂完成对目标物体的抓取。当未能正确识别目标物体时,调节摄像头与目标物体的位置后重新进行识别直到产生正确结果。
4.2 方案特点
1)该方案采用树莓派+USB摄像头模块。使用高清USB摄像头完成对目标物体的采集,采集到的图像由树莓派进行处理与识别。因为树莓派可以安装OpenCV图像处理函数库,更便于调用图像处理函数,高速的处理器可以更加快速地得到图像处理结果。
2)树莓派具有40个IO引脚,可以在完成图像处理的同时输出电机、机械臂的控制信号,完全可以实现设计要求。
4.3 电源模块
在本次设计中电源模块外围电路由4个电容和1个二极管组成,2个电容相结合完成对输入输出电流的高低次谐波的滤波,二极管可以防止电源模块短接。电源模块原理图如图6所示。
图6 电源模块原理图
由于系统采用外接12V锂电池供电,而驱动板中芯片均需要5V电压供电,所以整体需要进行电压转换。本设计采用常见的ASM1117-5.0电压转换芯片完成电压转换。
4.4 稳压模块
添加稳压模块是因为电源模块的最大输出电流为1.2A,而稳压模块最大输出电流为3A,为保证整个驱动板安全使用大电流驱动机械臂,保证不会因为电流过大而烧毁芯片。添加稳压模块还可以隔离电路中的干扰和噪声,使用单独的模块为机械臂供电保证机械臂不受其他模块干扰,尽量较少机械臂操作过程中的不正常抖动,保持运行平稳。稳压模块原理图如图7所示。
图7 稳压模块原理图
本设计采用的是输出可调式电路,根据式(1)可计算出外围电阻阻值。其中VREF=1.23V,为了确保输出稳定,R1选用标称阻值为1KΩ,精度为1%的电阻。
4.5 电机驱动模块
电机驱动模块采用常见的电机驱动芯片L298N配合外围电路实现对2个直流电机的正反转控制。
L298N是专用驱动集成芯片,属于H桥集成电路,具有输出电流大负载能力强等特点,可以直接控制两台直流电机,并可实现电机的正转和反转,实现此功能只需要改变输入逻辑电平,通过使用PWM波即可实现速度调节。L298N电机驱动模块原理图如图8所示。
图8 电机驱动模块原理图
因为使用L298N控制2个直流电机正反转正常需要使用6路控制信号,需要从树莓派的GPIO中引出6个引脚,为了保护主控的引脚安全在设计时就使用高速光耦进行隔离,为了降低硬件成本,减少高速光耦的数量,在这里使用74LS046非门反相器将IN1、IN3输入信号进行反向处理后得到IN2、IN4控制信号。74LS04反相器原理图如图9所示。
图9 74LS04反相器原理图
4.6 软件设计
在系统启动前需要先使用树莓派连接手机分享的WIFI热点,在远程登录后使用手机控制启动整体程序,还可通过手机控制机器人的动作,在完成对个模块和GPIO引脚的初始化后,首先启动超声波测距模块,测量履带式移动底盘与前进方向上障碍物体之间的距离,如果距离大于预先设定的距离值则可前进,若小于预定值则避障,然后再次判断底盘与障碍物体的距离,判断是否到达设定位置,到达摄像头采集一帧图像,将图像返回树莓派进行图像处理,得到识别结果后驱动机械臂进行抓取,并将目标物体带到指定的位置,系统流程图如图10所示。
图10 系统流程图
5 试验与结果分析
搜检机器人的样机如图11所示,能否通过树莓派及OpenCV进行图像处理正确识别出目标物体(以三角体,长方体,圆柱体为目标做测试)并夹取该物体到特定地方是衡量智能移动搜检机器人性能优劣的关键条件。本文以树莓派作为图像处理的核心,用OpenCV做为图像处理的工具,圆柱体作为要识别且夹取的目标物体,长方体,三角体作为识别的干扰项,在机器人自主运行的情况下进行了实验。通过实验证明该机器人可控制自身正常移动,能准确识别出目标物体且夹取到指定地方。树莓派可以完成对机械臂和履带式移动底盘的驱动,各部分可协调工作。使用树莓派做为搭载在机器人上的主控芯片,使图像处理更加简单方便的同时又能实现对电机、机械臂的控制,实验证明这是一种简单有效的方案。
图11 搜检机器人样机
6 结语
鉴于一些工作危险性较大或有些区域人类难以到达设计了基于树莓派的智能移动式搜检机器人,本设计融合了自动化技术和图像处理技术,以树莓派作为核心平台,完成图像处理的同时也能对机器人的行动进行控制,系统结构简单。以树莓派为平台,OpenCV为图像处理工具,简化了图像处理过程,提高了识别率。该机器人机械结构简单,灵活性高,机动性强,便于携带,易维修,成本低,可自主对危险品完成识别与抓取,并将危险品放置于便于处理的地方。也可利用手机或遥控器控制机器人的移动和机械臂的抓取,最大程度地适应真实环境,减少未知干扰对机器人的影响。如能将本设计用于实际中,将大大较少人力物力,方便在一些狭小的地方进行安检。