Menu
我公司是结合网络技术为废品行业服务最早,回收技术最专业的废品回收公司。公司设立在辽宁沈阳地区,从事20多年回收行业,值得信赖!

当前位置主页 > 智能球 >

呆板人足球1

日期:2019-11-29 11:52 来源: 智能球

  机器人足球 郭锋ftp://rc2008:.17.10 第一节 基础知识 机器人足球背景知识 2D比赛介绍 代码认识 Linux下开发基础 什么是RoboCup RoboCup 联盟(起初称作Robot World Cup Initiative)是一个国 际性研究和教育组织,它通过提供一个标准问题来促进人工智能和智 能机器人的研究。 RoboCup 联盟选择了足球比赛作为一个基本领域,并组织了国际上 级别最高、规模最大、影响最广泛的机器人足球赛事和学术会议—— 机器人足球世界杯及学术会议(The Robot World Cup Soccer Games and Conferences,简称RoboCup)。 为了能让一个机器人球队真正能够进行足球比赛,必须集成各种各样 的技术,包括自治智能体的设计准则、多主体合作、策略获取、实时 推理、机器人学以及感知信息融合等。 对一个由许多快速运动的机器人组成的球队来说,RoboCup 是一项 在动态环境下的任务。 在软件方面,RoboCup还提供了软件平台以便于研究。 RoboCup 联盟组织结构 RoboCup比赛项目 仿线D) 小型机器人组(f-180) 中型机器人组(f-2000) 四腿机器人组(由Sony 赞助,从1999 年开 始) 人形机器人组(从2002 年开始) E-League(从2004 年开始) RoboCup 评论员系统演示 仿真比赛界面 采用RoboCup 提供的标准服务器程 序,在计算机上进行11 对11 的仿 真机器人足球赛 分布式控制,类似于人类足球比赛, 比赛规则采用RoboCup竞赛的仿真 组比赛规则。 小型组比赛界面 比赛场地:290X240cm 机器人最大尺寸:180(直径)X150(高)cm 双方各有5 个机器人上场,比赛用球为标准的桔 黄色高尔夫球 比赛分上下半场,各10 分钟有效比赛时间,中 间休息10 分钟。 小型组属于半自主模式,比赛采用集中全局视 觉系统,无线通讯方式传输比赛场景信息(机 器人和球的位置、方向等),各机器人同时接 收相同的视觉信息,自行决策,独立控制。 中型组比赛界面 比赛场地:8X5m 机器人最大尺寸:50(长)X50(宽)X80(高)cm 1 对1或和2 对2 级别,比赛用红色标准排球 比赛规则采用RoboCup 竞赛的中型组比赛规则 中型组采用全自主模式,机器人自带视觉系统,自动采集场景信息, 自行决策控制。 四腿组比赛 比赛场地:180X300cm 比赛使用sony公司生产的四腿机器狗,全 自主模式。 机器狗自带视觉系统、无线通讯系统,机器 狗之间可以相互通讯。 中期挑战 通用的智能体体系结构 综合反应式方法和建模/规划式方法 实时识别、规划和推理 在动态环境中推理和行动 传感器数据融合 通用的多主体系统 复杂任务中的行为学习 策略获取 通用的认知模型。 长期挑战 合成智能体挑战 物理智能体挑战 基础组织挑战 RoboCup与FIRA FIRA(Federation of International Robot-soccer Association),由韩国 KAIST 的金钟焕等人发起,成立于1997 年,总部设在韩国大田,每年举办一次国际 性比赛。目前有成员国20 多个,我国的东 北大学和哈工大加入了该组织。 FIRA与RoboCup的主要区别 技术标准不同 FIRA 允许采用集中控制方式,因此一个球队中的不同队员是同一个“大 脑”(控制程序)的不同执行器 RoboCup 要求每个队员必须是自主的,因而球队中的每个队员是一个独 立的“主体”,球队是一个“多主体”系统。 研究重点有区别 FIRA 重点研究“灵巧机器人”,特别是动态环境中的运动控制 RoboCup 着重研究动态环境中的多主体合作、实时规划和Agent 体系 结构设计。 也可以认为,FIRA 主要面向机器人学,而RoboCup 主要面向人工智能。 主要参加国不同 FIRA 的主要成员来自东亚和南美等第三世界国家 RoboCup 的主要成员为日美和欧洲各发达国家。 比赛规模不同 相比每年FIRA 世界杯赛的规模要小得多 RoboCup的最终目标是: 世纪中叶, 到21 世纪中叶,一支完全自治的人形机器 人足球队应该能在遵循国际足联正式规则的 比赛中,战胜最近的人类世界杯冠军队。 比赛中,战胜最近的人类世界杯冠军队。 2D比赛平台 机器人足球仿真组比赛是在一个标准的计算机环境 内进行的,由RoboCup 委员会提供标准的机器人 足球仿真软件平台,称作soccer server 该平台支持多个虚拟球员在一个动态、不确定的多 主体环境中实时地进行合作对抗。 由于仿真平台摆脱了控制机器人所要研究的诸如物 体识别、通讯、硬件设计等问题的限制,使得从事 仿真机器人足球的研究者可以更好地把注意力集中 合作、学习等在更高层的技术上。 平台结构特点 机器人足球仿真比赛平台是一套系统能够让由不同语言编写的自主球员程序进 行足球 比赛。 比赛的执行采用的是服务器/客户端(server/client)模式: 服务器端程序Soccer Server提供了一个虚拟场地并且模拟包括球和球员在内的所 有物体移动; 每个客户端程序SoccerClient 相当于一个球员的大脑,控制场上该球员的移动。 服务器端和客户端之间都是通过UDP/IP 协议进行信息交互的,也就是说,开发者 可以使用任何支持UPD/IP 协议的程序设计语言来设计球队程序。通过UDP/IP 协 议,客户端程序可以发送指令去控制相应的场上球员,而服务器端按照规则给每个 客户端发送它所能获得的信息。 每个客户端程序只允许控制一名球员。所以每队必须同时运行与比赛球员数目相等 的客户端程序。 客户端之间的通讯必须通过服务器端根据规则来进行转发,任何不经服务器客户端 直接联系的行为都是违反规则的。 当一场比赛开始时,双方11 个独立的球员程序连接到比赛平台上场比赛。每个队 的目标就是将球踢进对方球门同时阻止球进入自己的球门。 比赛平台结构图 仿真周期 Soccerserver 采用的离散化模式运行,即所有程序运行都是 以仿真周期为单位在每个仿真周期(simulatior_step,缺省 为100 毫秒)结束前,server 收集所有球员程序的行为请求, 直到每个周期末才统一执行并更新场上信息 在每个周期的开始server 根据各个球员的状态(包括可视范围、 获得时间等)发送相应的已更新的场上信息,体现了球员感知 信息和行动的异步性。 如果一个球员在一个周期内发送了多于一条的独立行为请求, server 将随机选择一个执行。因此,球员为了保证执行自己的 真实意图,每周期就只能发送一条独立行为请求 另一方面,如果球员在一个周期内没有发送行为请求,它将失 去该周期的行动机会,对于这样一个实时对抗的环境这无疑是 很不利的。 观看程序 在soccerserver 平台上比赛时,所有仿真比赛场景都可以通过一个 可视化程序Soccer monitor 显示在电脑屏幕上。它通过一个特殊的 端口(缺省为6000)直接和比赛平台连接,获得比一般球员程序更 全面、更准确的信息,使得用户可以生动地看到比赛的整个过程,并 且可以控制比赛的进程。 目前的球场和球场上的对象都是二维的,任何对象都没有高度的概念。 场上每个队员用一个圆圈表示,圆圈分为两半,亮的一面表示球员身 体的朝向,另一半通过颜色的深浅变化表示球员的体力变化,另外从 圆心引出一条线段表示球员脖子的朝向。球用一个实心原点或贴图表 示。 目前官方提供了两种不同的monitor:rcssmonitor 和 rcssmonitor_classic。两个monitor 都可以显示诸如比分、双方队 名、场上所有球员和球的位置。它们也提供了和server 简单的接口, 如当比赛两边队员都上场后,monitor 上的“Kick-Off”按钮就可以 使人为裁判向server 发送命令开始比赛。 录像程序 另外为了方便的重现比赛实况,平台还提供了比赛 录像播放器(Logplayer)。 Logplayer可以被看做是一个录像机,用于重放比 赛。当运行Soccerserver 时,通过在启动配置文 件中设置一些参数可以将比赛的所有数据以一种特 定的格式存储在电脑硬盘中(这就好比按下了录像 机的录制键)。然后,rcsslogplayer 程序捆绑一 个monitor 就可以用来反复多次地播放比赛录像。 这对于分析球队、发现一个球队的优缺点是非常有 用的。类似于一个录像机,logplayer 同样有播放、 停止、快进、回卷等按钮,logplayer 也可以将比 赛录像跳到指定的时间,如进球时。 比赛规则(自动裁判) 中场开球(Kick-Off) 在一个开球前,无论是半场开始前还是进球后,所有的球员都必须在各自的半场。 为了确保这点,在进球后,裁判特别暂停比赛5 秒,球员程序可以通过使用move 指令将自己直接移动到自己一方的某个位置而不用浪费时间和体力跑回来。如果某 个球员在进入开球状态之后仍然在对方半场,裁判将该球员移到所属半场的随机一 个位置。 进球(Goal) 当一队进球得分时,裁判要执行一系列任务。首先,它要通过广播一条消息向所有 球员宣布进球。它还要更新场上比分,移动球到赛场中心,并且将play_mode play_mode (程序中用以标识当前比赛状态)置为kick_off_left 或kick_off_right(左方开 球或者右方开球)。最后,如“开球”部分介绍,它要将比赛暂停5 秒钟等待球员 移回到各自的半场。 守门员发球(Goalie Free Kick) 当守门员扑住球后,即可直接发球。由于比赛场地是二维的,在对方干扰下,守门 员就很难把球踢出到一个安全区域去,因此规则特别允许守门员发球可先使用 move 指令移动到禁区内任意对发球有利的位置(球也会随守门员一起移动),再 迅速将球踢出。为了防止守门员滥用move 指令,规则限制守门员一次发球最多只 允许移动两次(goalie_max_moves),否则move 指令无效。 比赛规则(自动裁判) 出界(Out of Field) 当球滚到了界外,裁判将球根据出的界不同移到一个合适的位置,包括边线、角球 区和球门区,相应的将play_mode 置为kick_in(界外球)、corner_kick(角球) 或goal_kick(球门球)。在发角球时,裁判将球置于场地相应一角的坐标为(1 米,1 米)的位置上。 越位(Offside) 一个球员在满足以下情况时被判越位: 1. 在对方半场, 2. 至少比两个防守球员更靠近对方球门, 3. 比球更靠近对方球门, 4. 距离球小于2.5 米(这个值可以通过修改比赛平台参数 offside_active_area_size 调整)。 ? 回传(Backpasses) 就像在真实足球比赛中一样,守门员不允许扑队友传回来的球。一旦发生,裁判将 判back_pass_l(左方回传)或back_pass_r(右方回传),然后让对方发一个 任意球。当这种球发生在禁区内时,球将在最靠近守门员扑球位置的一个禁区角发。 要注意的是,如果守门员不扑队友传过来的球就不算犯规。 比赛规则(自动裁判) 发球违例(Free Kick Faults) 当发一个任意球、角球、守门员发球或界外球时,发球 者不允许传球给自己。如果发球者在踢出球后紧接着又 踢球,裁判将判free_kick_fault_l(左方发球违例)或 free_kick_fault_r(右方发球违例),并且对手既可获 得一个任意球。 由于球员很多时候为了将球踢到期望的速度都不得不连 续踢很多脚球,所以发球违例只有当满足以下情况才会 判: 1、发球者再次踢到球 2、该球员在两次踢球间移动过(使用过dash 指令) 所以诸如kick-kick-dash 或kick_turn-kick 这样的指 令序列是完全合法的。而指令序列kick-dash-kick 将被 判为发球违例。 比赛规则(自动裁判) 扑球违例(Catch Fault) 当守门员扑球时球的位置在禁区外,裁判将判扑球违例(catch_fault_l 或catch_fault_r)。由对方在扑球位置发间接任意球 (indirect_free_kick_l 或indirect_free_kick_r)。 需注意的是判罚扑球违例是以球的位置为准,由于守门员扑球是沿扑球方 向2 米长、1米宽的矩形区域,所以即使守门员在禁区内扑球,球却有可 能在禁区外,这时仍会被判扑球违例。 球员清除(Player Clearance) 当play_mode 为kick_off,free_kick(任意球)或corner_kick 时, 裁判将移除以球为中心的一个圆内的所有防守球员。这个圆的半径是比赛 平台程序的一个参数,缺省为9.15 米。这些移除的球员被放在这个圆周 上。 当play_mode 为offside(越位)时,所有进攻球员要被移回到非越位 位置。这些进攻球员包括处于越位位置和距离球9.15 米圆内的所有球员。 当play_mode 是goal_kick 时,所有的进攻球员将被移除禁区,并且在 踢球门球时进攻球员不能再进禁区,只有当球出了禁区后,play_mode 才会被改变。 比赛规则(自动裁判) 比赛状态控制(Play-Mode Control) 当play_mode 为kick_off,free_kick,kick_in 或 corner_kick 时,裁判在球被踢动后立即将play_mode 置为play_on(继续比赛)。 半场(Half_Time)和终场(Time_Up) 裁判当第一个或第二个半场结束的时候将暂停比赛。缺 省的半场时间是3000 周期,相当于5 分钟。如果整场 比赛打平就要开始第二个半场,比赛进入加时赛。加时 赛采用“金球制”,或称“突然死亡法”,即加时赛中 第一个进球方将赢得比赛。加时赛也分上下半场各3000 周期,如果加时赛仍没有进球,双方即进入罚球大战 (penalty mode)。 比赛规则(人工干预) 故意包围球 一旦一方将球包围住,由于球员身体阻挡效果,其他人是无法 碰到球的,这将时比赛无法进行下去。 故意用过多的球员堵球门 由于比赛环境是二维的,球门宽度有限,所以一旦有过多球员 堵门,球就很难射进,这对射门和守门的算法研究都是不利的。 在限定周期内没有让球投入比赛 目前这个规则已能由自动裁判处理。如果一个球员没有在 drop_ball_time 周期(缺省为200 周期)内让球投入比赛, 裁判将自动执行drop_ball(即将球直接放到场上相应的一个 位置,比赛正常进行)。如果一个球队总是不能及时让球投入 比赛,人为裁判可以提前执行drop _ball。 比赛规则(人工干预) 故意阻挡其他球员的移动 由于比赛平台对球员的碰撞自动处理,使得所有碰撞物体速度都会减慢, 这样球员就可以通过碰撞阻止其他球员快速移动,这将使比赛无法正常进 行。 守门员滥发catch 指令 比赛平台限制守门员连续发扑球命令(catch_ban_cycle,缺省为5 个 周期),但是一旦守门员扑球成功,这个计数器就重置了。利用这个漏洞, 守门员可以反复踢球、扑球,这样守门员就可以长时间地安全地将球移动 到禁区内的任意位置。妨碍了比赛的进程。 用大量消息堵塞比赛平台的通讯信道。 一个球员程序不允许在每个仿线 条命令给比赛平台。 如果比赛平台被堵塞,或赛后有要求,将会检查是否有这种滥发行为。 不适当的行为 如果观察到某个球员以一种不合适的方式进行比赛妨碍了比赛的正常进行 或违反了公平原则,人为裁判将暂停比赛并且给对方一个任意球。 相关链接 官方主页:相关代码: 代码结构 rccssbase 供其他各种仿真机器人足球程序包使 用的基本代码。 rcssserver 是该仿真源码包的主要部分,执行实 际的仿真工作。客户端程序和server通过UDP/IP 协议发送命令和接收感知信息。 rcsslogplayer 可以重放rcsserver录制的比赛 录像(*.rcg文件)。要注意的是rcsslogplayer只 是用于控制录像的回放,显示还是需要通过 monitor。 rcssmonitor和rcssmonitorclassic 通过连 接rcssserver或rcsslogplayer来显示现场比赛或 比赛录像。 比赛现场 比赛后台 Linux下开发基础 Linux下开发:vi或者vim ./configure 检测安装平台的目标特征。比如它会检测是不是有CC或 GCC,并且是不是需要CC或GCC,它本身是个shell脚 本 make 从Makefile中读取指令,然后编译 make install 用于安装,从Makefile中读取指令,安装到指定的位置 SecureCRT 界面设置 rz sz Linux基本命令 passwd man ls cd cp mv mkdir rmdir pwd tar(tar czvf filename.tar,tar xzvf filename.tar) gzip, gunzip vi和vim 阿姆斯特丹大学代码 trilearn_base_sources-3.4 截止到2008年比赛的代码 安装命令 ./configure make 运行命令 ./start.sh 1 2 3 4 5 59.77.17.10 team1 ./start.sh 1 2 3 4 5 59.77.17.10 team2 Linux服务器 59.77.17.186 用户名rc200801至rc200812 初始密码1234567890 端口规则 200801-8010,8011,8012 ... 200812-8120,8121,8122 修改端口 服务端 rcssserver server::port=8080 server::coach_port=8081 server::olcoach_port=8082 客户端(Monitor) 修改,将其中的server_port改为相应端口 客户端(比赛程序) vi ServerSettings.cpp iPort = 8010; iCoachPort = 8011; iOlCoachPort = 8012; 需要重新make ftp 59.77.17.10 rc2008 rc2008 文件 robocup_server_monitor.rar 服务端与显示程序(Windows下运行) securecrt 4.1.7.rar trilearn_base_sources-3.4 客户端源码(Linux下运行) 分组 5人或5人以下为一个小组 住的越近越好 每个小组同一时间只能有一个连接登录到 Linux服务器 课间休息时决定分组,并分配用户名 作业 熟悉Linux命令 在服务器开启比赛服务,用各自组的端口 在本地开启显示程序 编译trilearn_base_sources-3.4,需要修 改成各自组的端口 运行上述程序并进行比赛

智能球

上一篇:

下一篇: