课程设计报告书
题目:多机器人目标围捕
教
师
评
语
该组选择的“多机器人目标围捕”的课题,有一定的难度。该组解
决了该课题中包括了避障、路径规划、围捕策略设计等问题,成功围捕
到了目标,并且在自己学习了 TeamBots 这个仿真软件后,在因为其系统
比较庞大,学习资源较少,以及内部实现了避障等基本算法的情况下,
该组决定通过自己动手用 JAVA 的 GUI 编程搭建了一个简洁的仿真平
台,通过良好的面向对象编程规范,这个仿真平台变得简单易用,可以
更好的去实现一系列基本的算法,比如避障等算法,这样的做法很值得
表扬。通过程序演示和报告的实现结果可以看出,该组达到了该课题的
设计要求,通过其演示的三种不同的围捕状态,一个是目标机器人被围
在墙的一侧,一个是目标机器人被围在墙的一个角落,最后一个是目标
机器人被围在中间。整个系统的设计过程中也参考了不少的资料,从基
本的仿真平台搭建到避障算法的选择,围捕策略以及路径规划都做到了
思路清晰,一步步地达到了课题设计的最终要求,可见该组也具有良好
的软件开发素养。通过该课程设计,该组学生通过将理论与实践结合起
来,更加深入的了解了机器人这门学科的知识。
成
绩
评
定
备
注
多机器人目标围捕
一、选题背景
随着机器人技术的发展,人们对机器人的要求不再局限于单个机器人。近年来,
随着机器人生产线的出现及柔性制造系统的应用,研究人员对由多个机器人组成的系
统越来越感兴趣,多机器人的研究已经成为机器人学研究的一个重要方面。如果说单
机器人是对人类个体的模仿,那么多机器人系统则是对人类群体乃至人类社会的模仿,
显然多机器人系统具有许多单机器人系统所没有的优点。
多移动机器人协作系统由于具有许多优点成为当前机器人研究领域的热点,而与
此相关的算法则是多机器人协作的核心。选择多机器人的协作系统围捕策略及实现方
法作为研究内容不但很好的学术研究价值,还有很强的实际应用价值。
多机器人目标围捕问题包括了路径规划问题、避障问题和围捕策略设计问题从而
实现多个机器人获得成功围捕机器人的最优解,即在成功围捕的同时保证时间上的最
优。
本系统的设计思想是从现有的路径规划算法,避障算法和围捕策略出发,将现有
算法结合起来实现围捕,然后再进行优化。我们把重点放在了围捕策略的设计上,已
达到每一次都会最优的成功围捕的目的。
二、方案论证(设计理念)
1.仿真软件的选择:TeamBots
[1]
是一个可移植的多代理机器人仿真器,它可以支
持动态环境中多代理控制系统的仿真,并可以提供可视化功能。与 Simbad 之类的其他
仿真器相比,TeamBots 有一点非常独特:它的控制系统具有很好的可移植性。我们可
以开发自己的控制系统,并将其在仿真器上进行验证,然后再在真正的移动机器人上
对控制系统进行测试(使用 Nomadic Technologies Nomad 150 机器人)。
TeamBots API 为控制系统提供了一个抽象层。结果是,控制系统无法知道到底是运行
在合成环境(TBSim)的仿真器内还是运行在真实环境(TBHard)的移动机器人平台内。
TeamBots 仿真环境非常灵活,也很容易用来使用对象和其他机器人构建合成环境。
我们很容易就可以添加墙、任意对象、路以及其他运行相同或不同控制系统的机器人。
通过这种方式,我们可以构建捕食/被捕食仿真(这是是一个例子)。另外,对象不需
要是静态的。我们可以添加在环境中四处移动的对象,或者机器人推动的对象(例如
球)。
我们在 windows 平台上根据官网的资料和其他方面资料的收集成功搭建了
Teambots 的环境和用 Eclipse 进行了源代码分析,学习了大概一个星期左右,发现系
统没有想象中的那么好用,又由于该仿真平台在 2000 年就不在更新了,相应的文档也
比较少,也没有发现相应的社区,这样我们的开发就会有比较大的阻力,再者是因为
其内部已经实现了避障等基本算法(图一),对用来验证基本算法的我们来说不太合适,
因此我们选择了自己搭建动手用 JAVA 的 GUI 编程搭建了一个简洁的仿真平台,通过良
好的面向对象编程规范,使这个仿真平台变得简单易用,可以更好的去实现一系列基
本的算法,比如避障等算法。
图 1、 TeamBots 上机器人直线运动与转弯的函数
2. 避障算法的选择
[2]
:我们考虑了全局路径规划的最短切线法,局部路径规划:
栅格法和人工势场法,以上算法都各有优劣,但是结合我们搭建的场景来说,因为在
动态捕捉目标物的过程中,避开静止障碍物,由于目标物的不确定性,路径规划不事
宜使用一次性规划的算法,但是使用动态规划算法比如沃罗诺伊图法,可视图法等需
计算其最短路径的耗时算法,会有一种规划赶不上变化的想象,因此我们选用了简单
可确保正确规划的 Bug2 算法,这种算法结合我们的围捕策略,会显得简洁高效。
3. 围捕策略的设计
[3]
:整个策略主要分为两个步骤。首先是通过确定使用的围捕
机器人确定围捕点的数量,以及通过“夹角最小”分配原则计算最佳围捕点。第二个
就是分配围捕点,我们通过协商法期望围捕点分配。
4. 围捕成功状态:围捕成功状态可以有两种方法进行检测,一是,在每个周期内
检查一次目标机器人的四周是不是有均匀分布的围捕机器人或者是障碍物,并且与其
距离小于某一界限。另一种方法是,通过仿真环境中将围捕机器人与目标机器人的大
小,形状,和速度大小设置成一致,然后通过检测碰撞,如果目标在任何方向的下一
步都有会产生碰撞,则说明该目标机器人已经被成功围捕。
三、过程论述
1.仿真环境的搭建:通过 Java 的 GUI 编程,用半径为 8px 大小的圆形表示机器人,
用横线表示机器人的方向,机器人的步长设为半径大小,每秒更新 20 次。机器人的自
由度为 360°(图 2 所示)。分别将围捕机器人起名为 Police Robot, 将被围捕机器人
命名为 Thief Robot. 根据课题要求,我们初始化了四个 Police Robot. 一个 Thief
Robot. 障碍物我们用半径为 25px 的灰色圆形表示,初始化三个障碍物,在程序运行
过程中可以动态添加障碍物,会根据鼠标所指的位置添加障碍物。(图 3 所示)