APP下载

机器人简单视觉模块的研究

2019-11-07叶伟康薛宇曦吴慧莹赵敏

无线互联科技 2019年15期
关键词:机器视觉

叶伟康 薛宇曦 吴慧莹 赵敏

摘   要:在喷药机器人比赛中,视觉识别成为机器人完成任务不可缺少的重要功能。为了实现机器人自主识别和喷药,文章采用了Pixycam视觉模块,以SPI方式与Arduino控制器相连接,设计了可靠的运动系统和喷药系统。通过Pixy自带的CCC算法来实现对目标的识别、接近和喷药。

关键词:机器视觉;颜色追踪;Pixycam;Arduino

根据2019年中国机器人大赛比赛规则,在机器人喷药项目中需要对杂草进行识别。然而市面上普遍流行的视觉模块都具有算法复杂、入门要求高等特点,不利于初学者接触和使用。经过查阅、讨论、研究后,发现Pixy作为一个集成化程度比较高的视觉模块,非常适合刚接触机器人视觉的创客使用。为了能更好地识别杂草,达到准确喷药的目的,本研究将Arduino控制器和Pixycam視觉模块相结合,使用C语言进行编程。本文着重介绍Pixycam简单视觉系统的原理和使用方法,并结合案例分析来实现对目标位置、大小、颜色的精确识别,从而达到比赛所要求的精准喷药效果。

1    主要硬件介绍

1.1  Arduino  UNO介绍

Arduino UNO板基于ATMEGA328单片机。同时,基于AVR平台,对AVR库进行了二次编译封装,大大降低了软件开发难度。只需根据自身系统要求下载官方Arduino IDE便可以编程。适合初学者编程、学习[1]。

1.2  Pixycam介绍

Pixy是内基梅隆机器人研究所在2014年推出的视觉模块,可以支持连接不同的控制器,支持多种接口选项,如串行外设接口(Serial Peripheral Interface,SPI)、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)串行、USB 、集成电路总线(Inter-Integrated Circuit,I2C)或数字/模拟(Digital-to-Analog,D/A)输出,Pixy的CCC算法(计算来自图像传感器的每个RGB像素的颜色(色调)和饱和度,并将它们用作主要过滤参数)[2]能够记住7种不同的颜色代码,通过PixyMon软件可以轻松捕捉需要识别物体的颜色[3]。

1.2.1  Pixy视觉模块的原理

所谓图形处理就是视觉传感器将图像信号转换为连续电压信号,最后转换成数字信号进行处理的过程。如今的视觉识别系统主要有两种搭建方案:

(1)使用Matlab或OpenCV等软件来进行编码,搭配一般的摄像头来实现图像处理。

(2)使用Pixycam或Openmv等具有图像处理能力的相机,通过官方的用户界面来实现简单的视觉识别。

虽然OpenCV在很多高端领域应用广泛,但它上手比较困难,具有非常复杂的算法。而Pixycam相比较而言更加简单方便,同时也能达到需要的效果。因此,本文选择Pixy作为机器人的识别模块。

1.2.2  Pixy视觉模块使用方法

Pixycam作为一款集成化比较高的视觉传感器,通过官方软件平台PixyMon来实现对目标的选取,以识别杂草为例,打开PixyMon,只要简单的3步:选择Action→选择Set signature 1→在画面中选择目标,就能选中需要识别的目标,如图1所示。

识别完杂草之后,需要在Pixycam和Arduino之间建立起通信。这里采用的是SPI连接方式(Pixy同时支持UART串行、I2C、数字/模拟输出等)。在连接之前需要把Pixycam关于Arduino的库文件安装到Library文件夹下。这样就能够在Arduino IDE上直接调用封装好的程序进行编程。由于使用的是SPI,数据传输速度总体来说比I2C要快,速度可到达1 Mbits/s,能进行数据高速处理。在Arduino IDE中只需要引入#include 库便可以轻松在串口监视器中获得目标物体的位置、大小和颜色,如图2所示。根据这些数据再配合上一些简单的传感器便能实现机器人的喷药功能。

2    硬件电路与程序设计

总体方案设计如图3所示。

根据比赛规则,喷药机器人需要对c区花盆中的杂草进行识别。因此,需要机器人能够自主接近目标并进行喷药。

2.1  硬件电路的组成

硬件电路由Arduino UNO控制板[4]、Pixycam视觉识别模块、超声波模块、降压模块(Arduino板推荐输入电压为7~12 V)、步进电机驱动模块和SX1278无线模块组成。

(1)Arduino UNO作为控制板负责接收和处理Pixycam传输过来的数据,并控制运动系统接近、喷药系统进行喷药。

(2)Pixycam视觉模块和超声波模块协同识别和寻找目标。

(3)步进电机驱动器共阳极连接,脉冲控制车轮运动。

(4)SX1278无线模块通过UART串行连接,把Arduino UNO串口数据传输给PC端,方便对数据进行分析。

2.2  喷药装置构成

喷药装置主要由SG90舵机、小型水泵和扇形喷头组成。舵机可以调整喷头的方向,根据Pixy处理后通过串口传输输出关于目标的x方向和y方向的坐标,调整喷头朝向,最后,在目标范围内进行准确喷药。

2.3  程序设计

如图4所示,启动喷药机器人后,Pixycam开始寻找目标(杂草)并通过超声波模块来确定目标位置。在确定目标位置后,步进电机驱动车轮,使喷药机器人接近目标。通过Pixycam输出的目标坐标x,y值,控制舵机角度从而调整喷头,使其对准杂草并喷药。完成喷药后继续前进寻找下一个目标[5]。

3    结语

根据比赛要求设计的喷药机器人,以Pixycam模块为视觉识别核心,能够完美实现对目标(杂草)的识别。同时,Pixycam由于集成化程度高、使用简单等特点,能够对各种目标进行识别和追踪。在之后的研究中,运用相同的原理可以将Pixycam使用到循迹、避障、识别二维码等项目中,并实现更多较为复杂的功能。希望Pixycam使更多的创客能够认识到Pixycam简单而强大的视觉识别能力。

猜你喜欢

机器视觉
大场景三维激光扫描仪在研究生实践教学培养中的应用