第1章 总体方案设计与论证 经调查研究分析,综合考虑各个网球场环境、网球拾取效率等因素,最终确定滚轮传动作为本产品收球装置的主体,同时结合Pixy视觉识别系统和Arduino单片机控制系统设计出智能网球拾取机器人,该设计使网球拾取的智能性和效率更高、性能更加稳定且成本更低,可完全代替人力进行网球拾取。 整体的设计方案由五个系统组成:视觉系统、驱动系统、收球系统、储球系统、控制系统。在网球识别方面,我们采用Pixy视觉传感器作为机器人的眼睛,它利用颜色来识别物体,并选择性的处理有用信息,快速准确的完成网球目标的识别;在收储装置方面,我们设计长约33cm的滚子进行收球,可实现在行进过程中一次拾取多个网球,大大提高网球拾取的效率,同时将储球仓设置一定角度,也可高效完成卸球工作。 在机器人运动控制方面,我们使用 ARM10作为上位实现机路径优化等功能。Arduino单片机作为下位机处理器,编程实现电机的转速和转向控制。从而改变机器人的行进和拾取状态;在路径优化方面,在Matlab软件上对初步确定的三种算法进行比较后,最终选用基于改进蚁群算法和遗传算法相融合的算法来规划出拾取的最优路径,这种算法既克服了蚁群算法容易陷入局部最优的问题,并且利用遗传算法的交叉和变异操作提高了算法的效率。 系统的设计思路为: (1)视觉传感器智能识别到网球目标后,将网球位置信息传输给上位机; (2)上位机获取位置信息后,会自动判断网球与智能网球拾取机器人之间的距离,找出一条最优路径,并将信息传给下位机,下位机结合算法自动优化路径寻找第一目标; (3)确定目标后,单片机控制电机转速和转向,驱动智能网球拾取机器人对网球进行拾取; (4)为了避免智能网球拾取机器人在行进过程中发生意外,在车四周安装有红外光电传感器,编写相应程序来实现避障功能 第2章 机械系统设计方案 网球在滚轮与底板的挤压力和摩擦力的共同作用下进入储球系统,通过调整滚轮和地面的相对位置以及滚轮与底板之间的距离,用来收取不同种类的球。 2.1 收球系统 在收球装置中,滚轮的材料为双面毛毡,厚度为5mm,双面毛毡弹性强,摩擦系数大。滚轮和底板平行且两者之间的距离略小于网球的直径d(网球直径在65mm至68mm之间,当在球上施加18磅即8.165公斤的压力时,向内发生弹性形变应介于5.59mm和7.37mm之间,压缩后反弹性形变的范围应介于8mm和10.8mm之间)。 滚轮与底板之间的距离固定,略小于网球的直径,网球在挤压力和摩擦力的作用下被顺利传输到储球装置中。为了保证拾取网球的效率,在拾取网球过程中,网球必须做纯滚动,并且保证网球和滚轮不打滑、网球和底板不打滑。 2.2 驱动系统 驱动系统基于单片机的控制,由电机驱动底盘的四个轮子,前进时四个轮子等速正转,后退时反转,左转时左侧两个轮子反转,右侧正转,实现左转,同理可实现右转。 2.3 技术性能指标 收储装置中的技术性能指标如下: 总体尺寸 480×480×300 mm3 驱动方式 电机驱动 驱动电源 DC24 V 行走方向 前进、后退、左转、右转 行走速度 2.7 m/s 转弯半径 35 mm 收球效率 半个网球场收取时间1分10秒左右 储仓尺寸 400×210×230 mm3 收球滚子 直径:60 mm 长度:33 cm 功率:15 W 角速度:2000 r/min 整车质量 20 kg 功率 150 W 有效载荷 25 kg(约等于125个网球) 第3章 电控系统设计方案 该智能网球机器人通过前面的摄像头获取地面环境的信息,在经过主CPU处理后,实现对网球的识别。智能网球拾取机器人通过多传感器数据融合方法,实现避障功能,且检测避障距离可根据实际需要做相应调整。拾球机器人系统的六个部分分别是:图像采集装置、避障装置、动力驱动装置、捡球计数装置和信息处理装置。多个装置的相互协同工作使智能网球拾取机器人系统的捡球效率得到大幅度提高。 3.1控制中心模块 智能网球拾取机器人的控制中心模块,主要包括两个部分。其中第一部分主要有:主 CPU、电源、存储器和 Pixy摄像头。第二部分为第一部分的辅助装置,主要有:CPU、红外传感器、舵机以及直流电机。两部分通过串口进行通信。 3.2视觉识别系统 Pixy传感器搭载摄像头和独立的图像处理器,采用以颜色识别的方法,并能选择性的处理有用信息。智能网球拾取机器人的跟踪目标采集装置选用Pixy视觉传感器,通过识别网球形状和颜色来锁定网球位置,之后将位置坐标反馈给上位机。 3.3控制系统 (1)驱动系统 4个车轮选用maxon品牌的RE25型号,传送带选用maxon品牌的RE24型号,电机驱动控制模块采用L298N芯片,用以控制电机的转向和转速。机器人运动状态通过内外轮之间的速度差来实现,电机有正转、反转和停止三种状态。 (2)避障系统 若有障碍物阻碍了红外光线的收发通路,红外光电传感器会将信号传给单片机,单片机通过控制电机的转向和转速实现机器人前进、后退和转向的功能,从而达到避开障碍物的目的。机器人的避障功能通过红外光电传感器以及相应程序来实现。光电传感器利用物体对红外光束的反射原理,根据接收反射回来光束的强弱判断物体是否存在。机器人在行驶的过程中,采用了4个光电传感器协调配合来识别周围环境和物体,使得对障碍物的判断更加准确,更加有效的进行避障。 第4章 路径规划 智能网球机器人属于自主移动机器人的一种,它和一般移动机器人的不同之处在于:能够利用视觉等传感器来进行多目标搜索。对于智能网球机器人来说,实现其捡取多个球体的任务,最为关键的问题就是能否规划出一条合理的路径来完成捡球任务。蚁群算法拥有其他智能算法没有的并行性和正反馈性,并且在复杂优化问题的求解中有一定的优势,特别适于拾球机器人的多目标路径规划问题。 4.1蚁群算法介绍 蚁群算法是指蚂蚁群体之间通过感知信息素协调其各自的行动方向,在一定的时间内,当其中某条路径上的信息素浓度够高时,蚁群就会表现出群体的一致性,从而找到当前状态下的最优或者接近最优的路径。 4.1.1蚁群算法的实现步骤 在智能网球机器人工作的网球场中,要在最短的时间内从起点运动到终点,且要经过所有网球。即给定的约束条件是:算法通过搜索可以使蚂蚁找到所有食物。那么,蚁群搜索食物源的过程如下: (1)在指定的环境中,有m只蚂蚁,n处食物源,食物源的位置坐标已知。蚂蚁根据各个路径上的信息素浓度和下一目标相对蚂蚁当前位置的距离来选择要走的路径。 (2)在初始时刻,蚁群会随机选择要行走的路径,然后留下信息素。当所有的蚂蚁均走到终点时,更新全局的信息素,并且将蚁群重新置于起点。 (3)在一段时间内,各个路径上的信息素浓度进行积累或着挥发,蚁群根据路径上信息素的浓度选择路径,周而复始,最终蚁群会得到两种结果:找到一条从出发点到终止点,并且经过所有食物源的路径;达到搜索时间或者迭代次数的上限,陷入了局部最优,没有搜索到最优路径。 4.1.2蚁群算法的特点和不足 通过上述对蚁群算法分析,可以总结出蚁群算法的一些特点和不足之处。 蚁群算法的特点: (1)蚁群算法具有自组织能力。 (2)蚁群算法是一种并行搜索算法。 (3)蚁群算法是一种正反馈引导算法。 蚁群算法的不足: 基本蚁群算法在路径规划中的应用,主要是依靠信息素浓度引导和启发式搜索相结合的方式来完成路径搜索的,正是由于这些特点,导致算法计算量较大。如果想运用蚁群算法的优点而又不被其优点所牵绊,就需要对基本的算法进行改进和升级。 4.2遗传算法 遗传算法是一种带有随机性的搜索算法,能够动态地调整搜索的方向,具有良好的并行性和全局搜索能力。主要用于解决最优化的问题,遗传算法的搜索过程具有启发性,这要得益于其进化的属性,使得搜索过程会出现一些可靠的解。但是如果遗传算法设置不恰当,就有可能造成算法陷入局部最优。 4.2.1遗传算法的实现步骤 遗传算法主要的六个组成部分有:算法参数的设置、初始群体产生的方法、编码方式、遗传操作、评价函数、算法终止条件。要想利用遗传算法有效解决现实问题,就需要处理好其中的每一部分。 4.2.2遗传算法的特点和不足 遗传算法是一种解决搜索优化问题的通用算法。在遗传算法中,基于染色体群(在本作品中等价于路径规划过程中搜索到的路径信息)的并行性搜索,带有随机性的路径选择、交叉和变异等遗传操作。这些操作方式正是遗传算法所特有的。 遗传算法的特点 (1) 遗传算法作为一种寻优算法,在搜索运行初期,遗传算法是从随机产生的一定数目的解开始搜索的。正是由于这个特点,使得遗传算法具有全局寻优的优势,而其他大多寻优算法都容易陷入局部最优。 (2) 遗传算法的并行性搜索能力使其能够同时对多个已得到的解进行操作处理,这个特点有进一步降低了其陷入局部最优的概率。 遗传算法同样具有自适应、自组织和学习的能力。在搜索进化的过程中,随机性使其具有全局搜索能力,而交叉和变异操作使其避免陷入局部最优,体现出其适应性。在看似随机的搜索过程中,群体得到的解有了一致性,这就体现出了遗传算法的自组织能力。有效路径的不断积累,和后续接近最优路径的出现正是得益于其自身的学习能力。 遗传算法的不足之处主要有: (1) 现实问题中约束条件在遗传算法中很难全面的表示出来,进而导致搜索时间的增加。 (2) 遗传算法初期基本依靠随机搜索,造成大量的冗余迭代,因此其搜索效率相对于其他算法较低。 (3) 虽然遗传算法具有并行性和自组织能力,但是如果参数设置不恰当,算法搜索很容易过早收敛于某一局部解。 4.3拾球机器人工作环境及建模 拾球机器人工作环境为网球场,通过场内顶部视觉传感器获取环境信息后,直接对信息进行数据处理,全部环境数据学习完成后,采用栅格法对环境进行划分,栅格大小可根据实际需要和处理能力调整。按国际网球联合会的标准规定,标准网球场的尺寸36.57m*18.28m。在本作品中,建模后栅格空间有1520个,单个栅格大小为0.5m*0.5m。在平面空间中以 O 为坐标原点,纵轴为 y,横轴为 x。建立系统直角坐标系。栅格空间在横轴和纵轴方向的最大值分别为 x 和 y 。为了在直观上更容易理解,现在令 x =y =10,每个栅格占一个宽度。为了在程序中便于计算每个栅格的位置坐标,文中的栅格环境的每个栅格拥有自己唯一的序号,并栅格序号可以和栅格所在位置的坐标信息相互转换。 4.4改进蚁群算法的多目标路径规划 蚁群算法中蚂蚁能找到所有目标依靠的是节点转移策略和信息素更新策略。对于多目标路径规划,在算法搜索路径的过程中,可根据不同的运行阶段特征采用不同数值的参数因子,进而提高算法的路径搜索效率和准确性。 4.4.1改进蚁群算法及规则 基本蚁群算法在搜索过程中,依靠随机选择策略来构造路径,这样就使得路径搜索速度缓慢,容易使算法陷入局部最优。为解决这些问题,本作品对其做出了改进和优化,不仅可以加快搜索速度,还能有效避免算法陷入局部最优。 4.4.2改进蚁群算法 通过对蚁群算法进行多目标路径规划过程的深入剖析,发现不同的搜索阶段对算法参数有不同的需求,本文提出一种自适应改变算法参数的改进蚁群算法。在此算法搜索过程中,由数只蚂蚁对多个目标同时进行协同搜索。通过自适应调整信息素启发系数、距离启发系数、信息素挥发系数、信息素量Q以及种群规模m,可加快搜索速度,提高全局搜索能力。 4.5基于改进蚁群算法和遗传算法的融合算法 4.5.1融合算法描述 针对本文路径规划为多目标球体捡取的特点,蚁群算法容易陷入局部最优的问题,文中提出的改进蚁群算法,虽然对蚁群算法缺陷进行了大幅度改善,但是仍然没有完全消除存在的问题。而将改进蚁群算法和遗传算法融合后,可以进一步改善蚁群算法存在的问题。而且,借鉴遗传算法的交叉和变异操作可以增加算法的逃逸能力,提高算法的效率。 4.5.2融合方式 不同的融合方式将决定算法融合后的性能取向,因此,如何选择融合方式是本文的一个关键问题。遗传算法和改进蚁群算法的融合方式按照融合时机,可以分为前后阶段融合和多阶段交叉融合。其中前后阶段融合表面上虽然借鉴了两种算法的优势,在一定程度上缩短了算法的搜索时间,但是除了缩短了少许时间,融合算法相对文中提出的改进蚁群算法并没有太多的优势。而作品提出的多阶段交叉融合方法,除了在初期借鉴了遗传算法快速建立初始路径信息的能力之外,在算法的整个搜索过程中,遗传算法和改进蚁群算法始终相互交融,互相影响。和遗传算法相关的主要操作具体表现如下: (1)在进行局部信息素更新后,对筛选出来的当前有效路径和当前最差路径在遗传算法中做标记提高后期选择路径进行交叉和变异的概率。 (2)同样在进行全局信息素更新后,得到的当前最优或者接近最优的路径进行标记,同时对最差进行标记,作为交叉的备选路径。 (3)根据问题规模指定遗传操作时机,时机成熟之后,开始进行遗传操作。 (4)在经过一段时间且没有达到迭代次数上限时,经过多次对当前全局最优路径记录的对比,如果发现变化极其微小或者没有变化,则判定当前算法已陷入局部最优或者算法搜索停滞,此时,再次运用遗传算法的交叉变异操作,使算法从当前状态逃逸出来,继续搜索路径。 通过这些算法相互配合操作构成的融合算法,可以缩短算法搜索时间,增加解的多样性,提高算法的全局搜索能力。 4.5.3交叉和变异处理 (1)交叉处理 当算法搜索过程中,出现满足交叉条件的情况时,对得到的路径进行交叉操作。每一次要交叉的过程中交叉次数可以自主设定,或者按照默认参数进行交叉。在选取要交叉的路径时,交叉操作是在本次搜索得到的最优路径与随机选择的一条路径或者当前最差路径之间进行的,若两条路径具有相同的网球目标点,则随机地选择一个相同的网球目标点开始交叉处理;若两条路径没有相同的网球目标点,则不进行交叉处理。如果在进行交叉处理之后,产生了比当前最优路径还要短的路径时,说明交叉操作成功,此时对用最短路径替换当前最优路径,并且更新路径的信息素;否则,继续进行搜索或者进行下一次交叉操作。 (2)变异处理 当算法搜索过程满足变异条件时,对得到的路径进行变异处理。在选取要进行变异的路径时,对所要变异的路径没有特殊要求。每次变异的过程中,要变异的路径的数量可以自主设定,或者按照默认参数进行变异。 4.6模式选择 网球拾取机器人在工作工程中可分为以下三个模式: (1)巡航模式 在巡航模式下,运动员在网球运动过程中机器人根据定位系统不会进入场地在场外进行外场球的拾取,不会妨碍场地内的网球运动。 (2)半场模式 半场模式则应用于运动员打球后休息过程中,机器人通过编程先进行一半场地网球拾取,再完成另外半场的捡球过程。 (3)优先模式 而优先模式为将场地中网球设置为高一级优先级先收取场地中网球,为运动员清空运动场地之后,再进行类似巡航模式的外场拾取过程。 第5章 整体功能测试 本作品通过机械结构、控制系统以及整体路径规划设计了智能网球拾取机器人的工作过程,并能够通过程序控制使其能自主的规划路径并能完成自主捡球的过程。接下来对智能网球拾取机器人的工作效率进行系统的测试并对拾球过程中的误差进行分析。 5.1系统测试 在网球场对拾取机器人的整体功能进行测试。测试包括对网球识别过程的准确性、实时性、鲁棒性测试,对网球拾取机构拾取效率的测试,对运动系统稳定性、流畅性、快速性的测试。 智能网球拾取装置整体高度为300 cm,宽度为480 cm,长度为480 cm,上位机使用ARM10完成网球识别功能,下位机使用Arduino单片机控制捡球机构和运动系统。网球拾取过程中,每次拾取最多可以拾取5个网球,拾取效率与带传动的速度、网球的疏密情况有关。传动带的转速为2 m/s,网球分布特别密集的情况,每分钟最多可拾取150个网球,拾球效率高。运动系统速度为2.7 m/s,运动稳定流畅。 综上所述,本产品所涉及的机器人可以实时准确的识别网球,收球系统在运动的过程中可以高效的拾取网球,达到预期功能。 5.2误差分析 目前网球场地都是由好几个网球场地合在一块组成,本智能网球拾取机器人虽然可以通过定位只对本场地内的网球进行收取,但如果有其他场地的同类型同颜色网球误入,机器人会将它视为目标网球,也会对它进行路径规划并进行拾取。在拾取的过程中有误差存在,但对于单个网球场,则无需考虑误差问题。 第6章 总结 针对于网球运动过程中的捡球问题,机器人能智能识别网球目标,自动优化路径并完成网球拾取。设计过程主要包括以下几个方面: (1)设计机器人的机械结构,主要包括收球装置和驱动装置的设计,保证机器人完成收球工作 (2)对于机器人的电控系统进行设计,主要包括视觉识别、控制系统、避障系统和远程监控终端的设计。 (3)将改进的蚁群算法和遗传算法相融合,对于网球拾取的路径进行优化,提高拾球的效率。 对比于目前市面上成型的产品仅有纯机械式的手持网球拾取装置,本设计拥有很大的市场价值优势。能够增加网球爱好者的运动体验感,同时增加网球爱好者的乐趣,减少额外的体力消耗,填补市面上球类拾取装置的空白,具有一定的社会效益优势。