APP下载

移动机器人视觉跟踪系统的开发

2023-11-21邓文斌韩耀强

嘉兴学院学报 2023年6期
关键词:树莓移动机器人摄像头

邓文斌,韩耀强

(嘉兴学院 信息科学与工程学院,浙江嘉兴 314001)

在科学技术快速发展的当下,机器人被广泛应用于各个领域,其中大部分机器人都有对目标进行跟踪和跟随的需要.基于移动机器人目标跟踪应用的重要性,人们开发了许多使用各种传感器的方法对目标进行跟踪,[1-3]其中,视觉传感器因为可以提供丰富环境信息而在机器人跟踪领域得到广泛的应用,[4-6]如基于视觉传感器的水面作业[7]、高空巡检[8]等.

图1 移动机器人系统总体架构

随着工业智能化建设的需要,一个新工科专业——机器人工程专业应运而生.机器人工程专业是一个多学科交叉融合的新兴专业,对学生的动手能力要求很高.在现阶段高校机器人专业实验中,只有少数实验设计取得了不错的效果,[9-11]而大部分实验只有演示性作用,缺乏拓展性和开放性功能.虽然人才培养方案提出了对学生进行实验任务和创新实践扩展能力培养的要求,[12-14]但由于缺乏开放性的实验平台,学生在自己动手的过程中并不能充分理解和运用理论知识,导致在实践中对学生的创新能力培养效果不佳.本文设计的基于视觉的移动机器人目标跟踪系统,不仅可以增强学生对机器视觉、移动机器人跟踪运动的思路和方法的理解,也可以让学生完成开发、验证自己的想法,从而提升学生学习的兴趣,培养其创新实践能力.

图2 开发环境总流程图

1 机器人硬件总体架构及开发环境搭建

硬件总体架构主要包括两个子模块:视觉处理模块和跟踪运动控制模块,如图1所示.视觉处理模块由树莓派和摄像头组成,树莓派连接摄像头采集图像信息,同时使用串口通信协议将信息发送到机器人的Arduino Mega2560主控板.跟踪运动控制模块由驱动板、舵机和Arduino Mega2560主控板组成,Arduino接收经过树莓派处理的视觉信息后,转换成运动信息控制驱动板对舵机进行控制,实现对视觉引导的机器人进行运动控制.

在树莓派预装的Debian或Ubuntu操作系统上搭建好OpenCv、TensorFlow等人工智能平台,利用平台的常用图像处理函数库、人工智能算法及提供的Python、C、C++等接口完成算法设计,树莓派可以基于PC的Windows主机远程连接,在Windows主机上使用Nomachine软件远程访问树莓派,此时可以在Windows主机上把算法直接写到树莓派里,流程如图2所示.

2 目标跟踪系统软件架构

图3 目标跟踪系统软件架构总体框图

图4 目标检测模块3个子模块

该目标跟踪系统软件架构总体框图如图3所示,软件总体架构可分为3个模块,即图像实时采集模块、目标检测模块和跟踪运动模块.本系统的核心是目标检测模块和跟踪运动模块,这两个模块都是可扩展的,以满足用户二次开发的实践教学需求.

2.1 图像实时采集模块

树莓派是通过摄像头来获取环境信息的.而摄像头获取的是彩色图像信息,无论是在图像处理还是跟踪运动时,首先必须通过摄像头实时采集图像,调用OpenCv中提供的imshow()函数,实时采集的图像以一个窗口的形式显示在屏幕上.

2.2 目标检测模块

目标检测模块是本系统的核心模块之一,该模块又可以分为3个子模块,如图4所示,每个子模块已经完成了一些目标跟踪所需要的功能.用户可在每个小模块里选择一些功能尝试去检测其他的物体.该模块里的功能都具有可扩展性,用户可以二次开发进一步完善此模块中的功能,从而更好地学习和掌握图像处理技术.

2.2.1 图像预处理

颜色空间转换是进行图像处理的第一步,当前最主要、最常用的有3种颜色空间:灰度、RGB、HSV.树莓派摄像头采集的图像就是RGB的,通常转化成HSV,是为了颜色识别,而转化成灰度对中间处理特别有效,可以让数据处理简单许多.调用OpenCv中提供的cvtColor()函数,能够方便地对图像进行颜色空间转换.

通俗一点来说,“边缘”就是图像中明暗交替较为明显的区域.图像的边缘部分集中了图像的大部分信息,图像边缘的提取对图像的识别具有重要的作用.边缘处理一定是在灰度图像上进行提取,边缘处理常用的方法是Canny算法.调用OpenCv中提供的Canny()函数就可以完成边缘检测.

在图像处理中,并不是整个图像都要关注的,包含需要检测目标的那部分才是比较重要的.在颜色识别中,通常用阈值处理来找到感兴趣的区域,调用OpenCv中提供的inRange()函数,可以过滤掉其他颜色,只保留想要的颜色.也可以通过感兴趣区域提取来获得目标图像区域,为此,该模块定义了一个封装了OpenCv的部分函数的region-of-interest()函数,将感兴趣的区域输入,就可以得到截取后的图像.

2.2.2 目标定位

找到包含检测目标的那部分区域后,再找到待检测目标的轮廓就基本上完成了目标检测,调用OpenCv中提供的findContours()函数就可以找到轮廓.找到轮廓之后,需要对轮廓边界进行处理,让边界变得平滑,这时就需要用图像形态学处理,主要包括膨胀和腐蚀等方式,效果如图5所示.调用OpenCv中提供的dilate()函数和erode()函数,可以分别实现膨胀和腐蚀.

图5 图像形态学处理对比

2.2.3 可视化

找到目标轮廓并进行边界处理后,就可以进行可视化处理,调用OpenCv中提供的circle()函数画圆来实现可视化,采取霍夫变换检测来识别直线和圆,与原始图像合并,并将识别效果绘制在图像上.可视化的方法还有许多,用户可以通过学习之后,将方法添加到本模块中.

2.3 跟踪运动模块

图6 建立的移动机器人坐标系

要进行目标跟踪运动,首先应知道目标图像位置,在对目标检测模块的目标定位小模块处理后,再经过简单的处理就可以得到目标在图像中的坐标.本模块比较重要的是无标定视觉伺服[15]和跟踪控制器,本模块同样具有扩展性,可以开发标定视觉伺服等.

2.3.1 运动学模型

在进行目标跟踪运动前,有必要知道该机器人的运动学模型.移动机器人主体由三个全向轮组成,两两夹角120度.此结构使得移动机器人可以在平面内向任意方向平移.首先,建立世界坐标系X′O′Y′;然后,再建立机器人自身的坐标系XOY.设中心到轮子的距离为常数L,移动机器人在自身坐标系下的角速度为W,设顺时针为角速度正方向,各个轮子的速度分别为va、vb、vc.移动机器人在自身坐标系下的分速度为vx、vy.夹角θ1=π/3 ,θ2=π/6.α是两个坐标系的夹角,如图6所示.

经过一系列变换后,可得到机器人运动学模型公式如下:

(1)

2.3.2 无标定视觉伺服和跟踪控制器

在摄像头获取的图像里,当目标远离摄像头时,目标会变小,而当目标靠近摄像头时,则会变大.在跟踪目标时,只需要知道目标的坐标,对机器人的姿态是没有要求的.也就是说,只要目标图像的坐标在期望的图像坐标位置即可,如此,跟踪运动可以用基于图像的无标定视觉伺服实现.

3 目标跟踪系统测试

为了测试该目标跟踪系统,在此目标跟踪系统上进行了车道线跟踪运动实验和蓝色杯盖跟踪运动实验,图7为车道线检测结果,图8为蓝色杯盖检测结果,图9为车道线跟踪运动结果,图10为蓝色杯盖跟踪运动结果.从这些实验结果可以看出,机器人的车道线跟踪运动实验和蓝色杯盖跟踪运动实验都取得较好的跟踪效果,证明了该算法的有效性及视觉平台搭建的合理性.

图7 车道线检测结果图8 蓝色杯盖检测结果图9 车道线跟踪运动结果图10 蓝色杯盖跟踪运动结果

4 与其他视觉教学平台对比

文献[4-5]设计了基于视觉的移动机器人教学平台,但主要以简单的巡线跟踪任务开展视觉伺服方面的教学,难以实现二次开发的视觉实验任务.本文以树莓派搭建的视觉平台可以实现多种视觉任务的开发和实践教学.文献[6]提出的移动机器人视觉实训平台以图形化编程的LabVIEW软件作为编程语言,虽然开发简单,但在实际的移动机器人视觉开发中并不常用,更多的还是以本文提出的OpenCv方式作为视觉开发语言,这样有利于学生更快地适应工作岗位,也便于学生求职.文献[9]中使用的移动机器人平台功能强,可完成的实验课程也多,但该平台价格高、功能复杂,对学生能力提出了更高的要求,在普通应用型本科院校推广较难.文献[14]针对跨学科创新人才培养需求而提出了基于华为ModelArts教学实践平台的机器视觉教学项目,主要专门针对机器学习、深度学习的计算机类课程的教学,与本文结合机器视觉和机器人运动控制的实践教学平台的侧重点有着明显的差别,且本文搭建的视觉平台,也集成了目前主流的TensorFlow深度学习开发环境,可以部署训练完成后的深度学习模型用于机器人视觉检测、识别等任务.

总之,本文搭建的机器人视觉平台的硬件成本低、使用简单,能满足跨学科跨专业的人才培养实践教学需求,既考虑了传统视觉项目的实践开发,也集成了人工智能项目的实训需求,而以移动机器人为载体,结合机器视觉,实现机器视觉和机器人运动控制的实验实训需求,有利于提高学生学习的兴趣.

猜你喜欢

树莓移动机器人摄像头
浙江首试公路非现场执法新型摄像头
移动机器人自主动态避障方法
摄像头连接器可提供360°视角图像
基于树莓派的骑行智能头盔设计
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
基于树莓派的远程家居控制系统的设计
基于Twincat的移动机器人制孔系统
响应面法优化红树莓酒发酵工艺
极坐标系下移动机器人的点镇定
基于引导角的非完整移动机器人轨迹跟踪控制