基于ROS 的乒乓球智能拾捡机器人★
2022-05-08张诗森李金鹏李宏辉
张诗森,韩 剑,李金鹏,刘 玲,李宏辉
(桂林电子科技大学信息科技学院,广西 桂林 541004)
引言
随着对机器人智能本质的深入理解,机器人技术开始渗透到人类活动的各个领域。服务机器人在国内外的研究中有着广泛的应用,特别是在维护、修理、运输、清洁、结构安全等领域,本文研制的乒乓球拾捡机器人是自主设计的移动式乒乓球服务机器人。
在乒乓球室内,在训练或比赛期间,会有许多乒乓球出界或无效。如果采用人工捡球,工作量大且效率低下。收集乒乓球的机器人可用于乒乓球场,它能迅速找到球的位置并进行拾捡,这样可以摆脱一些繁琐的工作,大大减轻工作强度,提高人们的生活质量。目前,国内大多数乒乓球培训中心仍然是人工捡球的,市场上的一些自动乒乓球拾球机器人由于结构复杂、成本较高,未能被广泛使用。
1 整体方案设计
乒乓球拾捡机器人以树莓派装载Linux 系统,并搭建ROS 机器人操作平台作为机器人的主要控制机构,同时树莓派还搭载有激光雷达、摄像头等传感器以及吸球装置。以STM32 作为机器人的移动控制机构,搭载有陀螺仪等,可以实现PID 动态调节。乒乓球拾捡机器人系统功能设计如图1 所示。
图1 乒乓球拾捡机器人系统功能设计框图
2 实现原理
2.1 乒乓球识别原理
在图像处理方面,采用OpenCV 进行图像处理。OpenCV 的优势在于它拥有400 多个免费的图像处理功能,涵盖了广泛的图像处理应用,从图像处理到模式识别,从静止图像到运动视频,从二维平面到三维摄像机校准和三维重建。
乒乓球识别首先要通过安装在机器人载体身上的摄像头进行乒乓球图像数据采集,利用OpenCV图像处理对采集到的数据进行灰度化、RGB 分离、模糊、锐化和膨胀等预处理,再利用函数进行颜色识别,霍夫圆检测对预处理得到的数据进行二次处理,并且输出结果,同时打印出在二维平面内检测到的乒乓球的质心位置坐标和半径等数据[1-3]。乒乓球识别效果图如图2 所示。
图2 乒乓球识别效果图
2.2 执行控制
系统的执行机构主要分为两个单元:
1)单元一为支撑整个系统的移动机构。移动单元负责整个机器人的移动控制,通过ROS 机器人操作系统对里程计(机器人移动角速度、线速度)数据进行话题发布,STM32 通过UART 订阅ROS 机器人操作系统发布的话题,对订阅到的数据进行解码,最后进行PID 算法调节。
2)单元二为乒乓球拾捡球的执行器件。采用类似吸尘器的吸附装置,吸附装置有两个小功率排气扇。利用SolidWorks 软件设计结构和外壳,通过3D打印机打印实物样品,再组装成一个独立的器件,使之达到一个密闭的效果,以便于吸球[4-5]。
2.3 室内二维建图与导航
2.3.1 二维建图原理
SLAM(simultaneous localization and mapping),也称为CML(Concurrent Mapping and Localization),即时定位与地图构建,或并发建图与定位。占用栅格地图的构建主要采用粒子滤波的方法,粒子滤波是一种应用广泛的滤波器,可以代替高斯滤波器,它是一个非参数滤波器。粒子滤波的步骤分为初始化阶段、传递阶段、校正阶段、重采样阶段、滤波阶段和最终地图生成阶段。SLAM 平面二维地图模型如图3所示。
图3 SLAM 平面二维地图模型
2.3.2 导航基本原理
Navigation 栈是一个2D 导航的集合数据包,可以获取里程信息、传感器数据和目标位置,并向移动平台发送安全的速度命令。定位过程中,机器人必须在导航过程中随时确定其当前位置,Navigation 栈中使用amcl 包来定位。路径导航部分使用move_base包,move_base 可以接收机器人周围的信息(如激光定位器扫描结果)并创建全局和局部同等模型,机器人可以无障碍安全地到达预定位置。move_base 的路径规划主要分为全局规划和局部规划,分别采用的是A*算法和DWA(dynamic windowapproach)算法。
3 结语
随着现代经济和社会的快速发展,对机器人的研究不断完善和成熟,机器人技术的研究已成为现代自动化时代的焦点和热点。本项目中乒乓球检测技术和乒乓球吸球设计可作为未来机器人发展的参考。在这个项目的基础上,开发人员可以开发更多面向服务的自动化机器人,用于协作控制和解决复杂任务。