跳转到内容

嵌入式控制系统设计/RoboCup/附录

来自维基教科书,开放世界中的开放书籍

高级设计

[编辑 | 编辑源代码]
图 1:不同子系统及其协作的图形概述。

RoboCup 团队 Wiki 决定将设计过程划分为以下子系统

  • 定位系统:定位机器人自身的位置、球的位置、团队机器人的位置、对手机器人的位置、足球场的边界、队友球门和对手球门。
  • 足球技巧系统:移动(“奔跑”)、拦截、带球、射门、传球。
  • 电池续航系统:为足球机器人提供在整场比赛中具有竞争力的能量。
  • 通信系统:互相交流以完成助攻、传球等。
  • 策略系统:“当其他人进攻时,我留守防守”……

每个子系统都成为一群人(主要是专家)的责任。例如,“策略系统”被授予“策略团队”,这是一群软件工程师。可以看出,一些子系统会重叠不同的团队:良好的传球需要良好的技巧,但也需要良好的沟通和定位……很明显,不同团队之间良好的合作是必须的。图 1 给出了不同子系统及其协作的图形概述。

可能会出现以下情况:“足球机器人 Wiki 1” 拥有球权,并且位于队友球门附近。该机器人的策略系统认为,考虑到机器人的位置以及到对手球门的距离很远,最好将球传给另一台团队足球机器人。该机器人的定位系统搜索可以传球的队友,但注意到所有队友都位于本方半场比较靠后的位置。因此,“足球机器人 Wiki 1” 的策略系统命令通信系统向离对手球门最近的团队机器人发送一条消息,告诉它应该深入进攻。从这一刻起,“足球机器人 Wiki 1” 会等待答复。“足球机器人 Wiki 2” 通过其通信系统接收这条消息,并将消息传达给它的策略系统。策略系统命令足球技巧系统深入进攻。在离球门足够近可以得分,并且也能被“足球机器人 Wiki 1” 触及的位置(定位系统和策略系统协作的结果), “足球机器人 Wiki 2” 向 “足球机器人 Wiki 1” 发送一条消息,表示它已准备好接收传球。 “足球机器人 Wiki 1” 的通信系统接收这条消息,并将消息传递给它的策略系统,策略系统命令足球技巧系统传球。与此同时,“足球机器人 Wiki 2” 必须向所有其他团队机器人(除了“足球机器人 Wiki 1”)发送一条消息,表明它正在接球。这样做是为了防止所有机器人争抢球权,导致队友球门无人防守。电池续航系统是一个重叠系统,确保所有其他系统在整场比赛中都有足够的能量正常工作。请记住,这只是一个带有传球输出的非常复杂的循环……有关这种决策背后的策略的更多信息,请参阅下一章。

图 2:RoboCup 团队 Wiki 不同团队的概述,以及相应的成员数量 (#)。

为了保证上述不同团队之间的合作,指定了一名集成经理。集成经理是一个通才,具有广泛的技术知识,能够“看到全局”并从不同的组件中构建一个统一的系统。每个团队也需要一名公关经理来推广团队,并为参加不同的比赛进行必要的安排。图 2 给出了 RoboCup 团队 Wiki 不同团队的概述,以及相应的成员数量 (#)。

尽管 RoboCup 团队 Wiki 已经得出了一个相当完整的需求列表,如前一章所示,但仍然有一些设计标准 需要考虑。RoboCup 团队 Wiki 的不同团队制定了以下设计标准

  • 专注的功能:RoboCup 团队 Wiki 项目针对自主踢足球进行了优化。
  • 能耗:足球机器人使用电池供电,需要整场比赛的电池续航时间,因此低能耗非常重要。
  • 冲击和振动:足球机器人必须能够承受动态载荷(被另一个足球机器人或球撞击)。
  • EMC:每个团队都拥有一个无线通信网络,将一个特定团队的所有足球机器人连接起来。每个团队都使用相同的以太网进行无线通信,这会导致 EMC 问题。
  • 空间限制:足球机器人的尺寸受比赛规则的限制。
  • 安全性:足球机器人在发生故障后应该是可预测的,而不是不可控的(有观众!),方法是实现一定程度的冗余和/或故障模式。
  • 通信:RoboCup 团队 Wiki 必须互相通信才能作为一个团队运作(而不是 6 个独立的个体)。
  • 冗余的可靠性:如前所述,迫切需要冗余(硬件和软件)。
  • 鲁棒性:每个足球机器人都会暴露在冲击和振动中。
  • 规则:RoboCup 团队 Wiki 受规则的限制。
  • 用户界面:RoboCup 团队 Wiki 使用一个在团队计算机上实现的系统来记录和保存足球机器人的通信和后续操作(有关此类系统的更多信息,请参阅第 6 章“比赛”:CoPS Stuttgart 团队的 MDP2Logger 系统)。最好是该系统具有良好清晰的用户界面。
  • 维护:足球机器人应该以一种在比赛期间可以进行维护(维修)的方式构建。
  • 成本:由于团队成员是义务劳动,所以存在很多隐性成本。足球机器人的组件、差旅费用、宣传材料等并不免费,并且不应该超过预算。
  • 可生产性:为了允许在比赛期间进行突然的更改和维修,最好是易于生产。
  • 使用寿命:为了控制成本,足球机器人(及其组件)的使用寿命很重要。最好在每个新的设计年份重复使用尽可能多的组件,以防止每年都从头开始,降低成本。随后,组件必须能够生存足够长的时间,因此使用寿命也是需要牢记的设计标准。
  • 智能:足球机器人应该具备自主行动所需的形式智能。
RoboCup 机器人团队 人员搬运车 自动售货机
安全性 非常高
维护 非常低 非常高
设计中的灵活性/可调节性
自主功能/智能

最后提到的四个设计标准对 RoboCup 团队 Wiki 来说相对不太重要,但对于人员搬运车公司来说,它们非常重要。为了说明设计约束的明显差异,表 1 展示了设计标准以及不同嵌入式控制系统(或系统群)相应的重视程度。

在这个阶段,制造人员搬运车的公司试图将他们的设计标准转化为可以添加到产品需求中的需求。像使用寿命、能耗、成本等模糊的需求将以数字形式表达。此步骤不适用于 RoboCup 团队 Wiki,因为像性能这样的标准是根据规则“在给定的时间内尽可能地提高足球机器人团队的性能”来设计。

详细设计

[编辑 | 编辑源代码]

在设计过程的这个阶段之前,足球机器人可以看作是一个“黑盒子”。到目前为止,唯一重要的是“足球机器人应该能够做什么”。设计师已经指定了足球机器人应该如何响应某些输入。例如,足球机器人应该在接收到来自其可视化系统的信号(输入)后执行足球技巧(输出)。但是,这些输入是如何变成提到的输出的,一直没有答案……直到现在。

RoboCup 团队 Wiki 的每个机器人都是硬件组件和软件程序的结合。硬件和软件之间的界限通常非常模糊,因此设计师需要决定哪些功能将由软件实现,哪些功能将由硬件实现。例如,控制器既可以由软件实现,也可以由硬件组件实现。通常,底层功能由硬件实现,而高层功能则由软件实现。RoboCup 团队 Wiki 做了如下分类:

底层功能:硬件 (HW)

  • 足球技能:移动、踢球、传球、控球和处理球
  • 定位:传感器
  • 电池续航

高层功能:软件 (SW)

  • 定位:处理
  • 策略
  • 通信

定位系统

[编辑 | 编辑源代码]

如前所述,每个足球机器人应该能够(基于颜色区分)识别以下位置:

  • 自身
  • 队友足球机器人
  • 对手足球机器人
  • 球场边界
  • 队友球门
  • 对手球门
  • 足球

定位系统,如前所述,是硬件和软件的结合。硬件组件是传感器,用于实际“观察”(类似于人类眼睛)。为了处理这些传感器的信号,需要 CPU 处理能力(类似于人类大脑)。

硬件

用于定位系统的传感器可以是不同类型的:

始终需要一个能够区分颜色的视觉系统:一个全向视觉摄像头。大多数团队使用一个相当简单的单视角视觉摄像头,并为其配备了一个全向镜,该镜子也能生成环境的 3D(彩色)图像。该图像作为图像处理软件的输入(见下一章)。

视觉系统可以由上述系统中的一个(或多个)辅助。例如,一个只配备了里程计系统的机器人无法确定其起始位置,这是必需的,因为里程计系统是相对工作的。当起始位置由另一个系统获取时,里程计系统将能够在任何时候确定机器人的位置、队友球门、对手球门和球场边界。然而,该系统无法识别(足球或其他球员的)位置。该系统可以作为备用系统或辅助视觉摄像头(传感器融合)发挥作用。可以添加电子罗盘来确定球场的方位。激光能够识别其他物体并估计到该物体的距离。可以构建一个小型的 GPS 网络,让足球机器人利用它来定位自己,雷达或声纳可以用来定位其他物体。为了估计到物体的距离,可以使用红外距离测量系统。

RoboCup 团队 Wiki 决定为其足球机器人配备一个全向视觉系统,该系统由一个摄像头和一个全向镜、一个电子罗盘和一个里程计系统组成。

软件

上述每个硬件组件都需要软件来处理其数据。RoboCup 团队 Wiki 使用图像处理软件来辅助全向视觉系统。图像处理软件应该持续计算机器人的位置、速度和方向。它还应该确定队友球门、球场边界、对手球门以及其他足球机器人和足球的位置、速度和方向。为了找到这些物体并追踪它们以获取它们的速度和方向,机器人应该能够区分和识别这些物体各自的颜色。为了确保足球机器人识别所需的物体,还可以添加形状识别功能。

RoboCup 团队 Wiki 选择使用颜色识别和形状识别来找到上述物体。球场边界通过“白线检测”获取,如图 ... 所示。为了定位自身位置,使用了基于到球场边线距离的蒙特卡罗定位方法。还集成了自动颜色校准算法。

由于各种原因,足球机器人可能会突然丢失某个物体的 位置。例如,当足球移动速度过快时,或者当一个识别的足球机器人消失在另一个足球机器人身后时。使用位置预测算法来预测丢失物体的 位置,该算法基于最后记录的位置的信息。视觉系统还负责确定机器人应该采取哪条路径到达想要的位置。这条路径通常不是机器人当前位置和目标位置之间的直线,因为其他机器人可能会阻挡路径。计算到达目标位置的最佳路径的软件嵌入在“策略系统”中,如本文后面所述。

足球技能系统

[编辑 | 编辑源代码]

足球技能系统可以细分为以下不同的系统:

  • 平台
  • 运动装置
  • 踢球/传球装置
  • 控球装置

平台

首先,需要一个平台来构建最后提到的三个装置。机器人的平台(也称为框架或底盘)必须坚固,但也要轻便。毕竟,更轻的机器人速度更快,更灵活。RoboCup 团队 Wiki 使用 CAD 软件程序来开发平台。付出了很多努力来确保平台的设计能够方便快捷地安装所有其他组件。最好将多个模块放置在机器人相对较低的位置,这将降低重心。较低的重心可以防止足球机器人轻易翻倒。

运动装置

上述平台将配备多个轮子以产生运动。团队使用三个或四个全向轮,由相同数量的直流电机(和伺服放大器)驱动。可以在每个轮子上安装减震器,以确保机器人能够平稳移动。可以达到 2 m/s 的最高速度(MSL 的 TKU 团队)。

运动控制系统

策略系统计算机器人必须遵循的路径,以到达目的地而不会撞到其他物体。这个开环控制系统不可靠,因为轮子的摩擦力(不同)、打滑……在移动过程中。由于所有这些原因,有必要使用带反馈的控制器,为不同的直流电机提供正确的控制信号,以便沿着所需的路径正确移动。

踢球装置

每个足球机器人必须配备一个踢球装置才能执行以下操作:

  • 直线平射(射门)
  • 地面传球
  • 吊球传球/射门

特别是最后两个动作应该在踢球力度上可调节,从而调节球的力量/速度。例如,地面传球或吊球传球的踢球力度取决于到其他机器人的距离。可调节射门的另一个优点是根据机器人到球门的距离改变射门力量。

有多种可能的踢球装置配置:

  • 机电式电磁阀:通过流过线圈的电流产生的磁场移动金属柱塞(铁芯)。柱塞连接到一个“金属腿”上,用于传球/踢球。电磁阀由电容器(350 V,4.7 mF - TechUnited)供电,该电容器使用主电池充电。电容器对线圈放电的时间可以调节,这使得调节电磁阀的最终速度和随后球的射出速度成为可能。为了能够执行地面传球/射门以及吊球传球/射门,团队创造了巧妙的结构。例如,金属腿可以由内腿和外腿组成。内腿产生直线平传球/射门。同时启动内腿和外腿(具有弯曲的脚状形状)会产生吊球传球/射门。执行不同传球/射门的另一种可能性是使用不同的活塞。这种配置能够通过规划哪个活塞何时启动来执行几种类型的射门。甚至可以使用这种装置执行对角线地面传球,方法是启动一个侧活塞和中央活塞。通过同时启动两个侧活塞可以执行直线传球/射门。为了执行吊球传球/射门,仍然需要像第一个系统中所示的那样进行调整。

机电式电磁阀踢球装置的优点是响应速度快、易于控制以及踢球力度可调节(不同的电流产生不同的射门力度)。电流过大、重量过大是主要缺点。

  • 气动踢球装置:压缩空气存储在储气罐中,可以通过电磁阀控制。
  • 流体肌肉踢球装置。
  • 弹簧踢球装置:弹簧被压缩,随后被锁定,并在需要时释放。

控球装置

控球装置应执行以下任务:

  • 防止球在盘球、转身和减速过程中掉落。
  • 使球相对于机器人的位置可调(特殊踢球)。
  • 使机器人在拥有球的情况下能够倒退行驶。

在所有移动过程中,球应该保持滚动。

为了完成上述任务,可以(并且已经)发明出不同的结构。例如,TechUnited 设计的机制由两个杠杆组成,每个杠杆末端都连接着一个轮子。直流电机用于驱动这些轮子,而转速计用于测量这些轮子的速度。杠杆可以在机器人的固定点周围旋转,同时两个电位计测量杠杆的角度。通过将杠杆末端的轮子向内旋转,球被拉入机器人的杠杆中。当足球机器人四处移动时,轮子的旋转会使球继续滚动。还可以预先定义从球到机器人前部的首选距离,这对应于两个杠杆的某些首选角度。如果杠杆向前或向后弯曲,则会引入位置误差。这些位置误差通过调整轮子的速度来控制为零,从而保证球相对于机器人的首选位置。

电池续航系统

[编辑 | 编辑源代码]

每个机器人配备一个电池(组),为机载所有模块提供足够的电力。例如,TechUnited 团队使用两块 Makita 24V,3.3Ah 电池。TKU 团队用于 MSL 的电源由 1.3V 的可充电电池提供,在串并联连接后产生 12V。随着机器人越来越快、越来越强大,对高能效电池的需求也越来越大。出于显而易见的原因,电池越轻越小越好。

通信系统

[编辑 | 编辑源代码]

为了使足球机器人能够作为一个团队协同工作,需要一个可靠、快速的通信网络来共享信息。在分布式多代理系统中,通信是系统最重要的组成部分之一。通信网络的可能设计方案很多。

  • 服务器 - 客户端:每个客户端(足球机器人)将所有收集的数据(机器人自身的位置、球的位置、球门的位置、队友的位置、对手的位置……)传输到中央服务器。服务器(使用策略系统实现)将这些数据结合起来,并将相应的命令发送回不同的客户端。请注意,单个足球机器人没有配备完整的策略系统(它们只有路径优化功能),只需要遵循命令。
  • 客户端 - 客户端(P2P):每个客户端将所有收集的数据传输到其他所有机器人(例如通过无线局域网)。随后,在每个客户端上实现的策略系统为每个客户端计算出相应的动作。可以使用简单的先进先出原则,每个机器人按接收顺序处理从其他团队机器人接收到的消息。为了提高通信网络的速度和可靠性,可以使用基于事件的通信架构。这样,接收方可以在收集到消息时立即获得消息,而不会有任何延迟(实时能力)。

足球机器人不同模块之间的通信可以通过以太网、USB 和 FireWire (IEEE1394) 完成。

策略系统

[编辑 | 编辑源代码]

机器人世界杯团队的策略系统主要基于角色模式(进攻者、防守者、运球机器人、传球机器人……)。一开始所有机器人都是平等的,在比赛过程中,机器人根据规定的条件独立选择自己的角色。这个选择由策略系统控制。例如,拥有球权并且靠近对方球门是成为“进攻者”的条件。检查所有角色模式的条件,并选择在给定情况下最适合的角色。角色的改变始终以不会出现突然变化的方式进行(角色永远不会从进攻者变为防守者)。通常情况下,进攻者是支配者,决定哪个机器人必须协作以及如何协作。随后,进攻者/支配者指挥所有其他机器人为队友的球门防守。

策略系统还负责确定到达目的地的最佳路径(避开障碍物)。例如,机器人世界杯 MSL 的 TKU 团队使用模糊控制器来分析最佳的避障方式。

嵌入式控制系统设计

华夏公益教科书