论文部分内容阅读
随着服务机器人技术研究及应用的不断发展,服务机器人在文体领域的应用需求开始呈现并成为研究热点之一。本文设计的智能乒乓球自动捡球机器人正是顺应这些需求,相信会有广阔的发展应用前景。本文选用Kinect v2、RPLIDAR A1雷达作为本体传感器,采用Kobuki作为机器人底盘,在Linux系统下利用ROS、Open CV、Kinect SDK等软件库以及C++编程语言,设计并实现了一款智能乒乓球自动捡球机器人。本文主要工作内容包括:(1)分析需求并确定机器人要实现的目标功能,并以此设计了总体系统硬件结构和软件模块。(2)针对乒乓球检测问题,利用乒乓球的颜色和形状特征,设计了一种快速稳定的乒乓球检测算法,并采用基于积分图的非局部均值滤波算法(NLM)对低质量图像进行去噪、采用Mc Cann-Frankle Retinex算法对光照不均匀图像进行增强,提高了乒乓球的识别率;为了降低乒乓球的误检率,提出了一种根据距离和乒乓球大小比例关系过滤无效圆的方法;以相机针孔模型为基础设计了乒乓球定位算法,实现了对乒乓球的实时全局定位功能。(3)以蚁群算法为基础,设计了捡球顺序规划模块,并研究了蚁群算法最佳参数的设置;为了提高全局搜索能力,提出了一种基于交叉操作的改进蚁群算法,在迭代过程中引入“干扰”操作,降低了机器人陷入局部最优解的概率;根据差速轮运动模型提出了另一种改进蚁群算法,算法考虑了机器人转向带来的影响,优化了实际运行中的路径选取模式,提高了智能捡球机器人的运行效率。(4)从全局路径规划和局部避障两个方面设计了导航避障模块。针对全局路径规划算法,设计了一种基于JPS+算法的改进A*算法,弥补了A*算法计算效率低的缺点,实现了稳定、实时的路径规划功能;针对局部避障算法,提出了一种基于速度障碍法(VO)改进的动态窗口法(DWA),实现了对于移动障碍物的避障功能,保证了捡球机器人运行的安全性。将各模块整合成一个系统,分别对各模块和整体系统进行实验测试,实验结果表明本文设计的智能乒乓球自动捡球机器人的性能达到了预期设计目标,为乒乓球捡球服务机器人的产品开发提供了参考设计模型。