2016年中国机器人大赛之第一届中型组仿真比赛

原创 2016年11月08日 10:12:30

2016年10月28日至30日为期3天的2016中国机器人大赛在长沙红星国际会展中心开幕,来自全国28个省、自治区、直辖市的240余所院校的近1200支参赛队伍同场竞技,将充分展示机器人的创新能力和技术水平。

中型组仿真比赛是对应RoboCup中型组的仿真比赛,笔者作为技术委员会委员负责仿真软件维护、文档编写、比赛组织、技术支持等等。详细资料请访问simatch

中国机器人大赛中型组仿真比赛

China Robot Competition Middle Size Simulation League (With English User Manual)

simatch

演示视频 Demo Video

Two options:
1. 优酷Youku
2. Youtube

说明

该软件包包括了robot_code模块,gazebo_visual模块,coach4sim模块,common模块以及auto_referee模块,其中,参赛选手主要注重robot_code模块,里面包含的是控制机器人运动的相关程序。各个模块的介绍如下:

  • robot_code: 机器人的感知、规划、运动控制等方面,由NuBot队伍的机器人代码改造而成,其中主要的策略等(在nubot_control软件包中)部分已经删除,选手应自行编写,其余部分可以直接沿用,也可随意改动。
  • gazebo_visual: Gazebo仿真平台,除基本的设置(在sim_config文件中)外,不应做其他改动。最终使用版本以比赛时的版本为准。
  • coach4sim: 用于仿真的coach,发送比赛开始、暂停、站位等指令。
  • common: 包含cmake、手柄驱动等。选手不必做改动。
  • auto_referee: 自动裁判盒,模拟refbox以及裁判的功能,自动进行比赛。

请先学习ROS、C++,作为基本技能和知识,然后对机器人策略等方面有一定了解,再进行robot_code的多机器人协同程序的编写。由于目前仿真中可以直接得到准确的全局信息,所以选手可能会倾向于集中式控制,但是,建议选手用分布式机器人控制。在未来会在仿真中增加更多的现实因素,比如考虑单个机器人所能获取信息的局限性等;

可能增加或改变的规则(最终以比赛时为准)

比赛规则参考2016年RoboCup中型组比赛的规则,但是由于仿真比赛的特殊性,不会完全按照里面的所有规则,比如说:
1. 比赛不分上下半场,一共15分钟左右;
2. 任何利用自动裁判盒(auto_referee)的漏洞获取比赛中的优势将视为作弊行为,比赛成绩无效;
3. 比赛时候可能会对gazebo_visual部分作一定的改动,比如根据真实机器人的一般情况限制机器人的平移速度、旋转速度等,这些改动将通知到每一个队伍。所以请参赛队伍记住自己的代码也要考虑真实世界的情况,不要太理想;
4. 比赛过程中是否对机器人获取的信息加入适当的噪声以及加入多少看比赛情况而定,会及时通知参赛队伍;
5. 比赛前可能会有一次“热身”,主要看看本次比赛参赛队伍的整体水平从而或许对规则作相应的改动,最终目的在于促进机器人技术的发展,鼓励大家积极参与;
6. 机器人不得恶意碰撞其他机器人,需要考虑避障;

目前auto_referee中可以检测的规则

  1. 单个机器人带球不能超过3m,需要传球才可以;
    2. 单个机器人带球不能从己方半场过中线到对方半场,必须传球过中线才可以;
  2. 球出界或者射门得分;
  3. 除了守门员以外其他机器人不得进入小禁区,除了守门员以外在大禁区的机器人数量最多1个;
  4. 发球时机器人离球距离的限制,具体如下:
    (1) 如果是THROWIN,GOALKICK,CORNERKICK或者FREEKICK的情况时,对方机器人离球要超过3m,己方机器人除了开球机器人以外其他机器人要离球超过2m;
    (2) 如果是KICKOFF的情况时,除了发球机器人外其余机器人都必须在自己的半场,且对方机器人离球要超过3m,己方机器人除了开球机器人以外其他机器人要离球超过2m;
    (3) 如果是DROPBALL的情况时,所有机器人离球必须超过1m,但是如果在自己的大禁区则不受此距离限制;
    (4) 如果是比赛过程中的PENALTY情况时,除了守门员外其余机器人不得在大禁区内且除了准备点球的那个机器人外其余机器人必须离球超过3m;

auto_referee即将添加的规则

  1. 考虑发球等待时延;
  2. 检测进球无效情况(机器人射门得分前必须有至少一次传球(传球不成功也算),否则得分无效);

比赛流程

假设服务器(即运行Gazebo的由比赛方提供的主机)的IP地址为IpA,主机名(hostname)为hostA; cyan方参赛队主机的IP地址为IpB,主机名为hostB; magenta方参赛队主机的IP地址为IpC,主机名为hostC,那么相应的配置如下:

参赛队主机的配置(由参赛选手完成)

  1. 确定好用于参赛的指定主机并且将主机名上报赛事负责人,同时配置好自己的IP地址(将由赛事负责人提供固定IP地址)。注意,得到主机名的一个简单的办法是打开终端,会看到比如user@hostname:~$的提示,其中user为用户名,hostname为主机名,请提供hostname给负责人而不是username。
  2. 将服务器的IP地址IpA和主机名hostA加入自己主机的/etc/hosts文件中, 如运行sudo gedit /etc/hosts打开hosts文件后,在该文件末尾处加入一行IpA hostA即可;
  3. 在终端中改变ROS_MASTER_URI指向服务器的IP地址和端口,即$ export ROS_MASTER_URI=http://IpA:11311$ export ROS_MASTER_URI=http://hostA:11311。注意,端口号始终为11311。
  4. 根据自己是cyan还是magenta相应地在该终端处运行自己的机器人代码(需等待服务器的Gazdebo启动完毕后才可以运行代码),如$ rosrun nubot_common cyan_robot.sh 或者 $ rosrun nubot_common magenta_robot.sh。注意,每次打开一个新的终端,为了能够使得机器人代码能够与服务器上的ROS MASTER通信,必须在这个新的终端运行第2步;
    注意:参赛主机只需要运行自己的机器人代码,即robot_code的部分,禁止运行gazebo_visual和auto_referee,可以选择运行coach4sim以查看机器人的状态。比赛过程如非特殊情况(如比赛开始前网络通信出问题等)禁止任何人操作参赛主机,否则视为作弊。

服务器的配置(由辅助裁判完成)

  1. 将所有参赛队伍的IP地址和主机名加入服务器的/etc/hosts文件中;(赛事负责人将提前将每个队伍的参赛主机名以及参赛队伍名称收集好,其中IP地址将固定分配给每个队伍)。
  2. sim_config文件中更改cyan/prefix以及magenta/prefix的值为参赛双方的队伍名字;
  3. 打开Gazebo,即$ roslaunch nubot_gazebo game_ready.launch
  4. 待双方参赛队伍机器人代码运行后,开启自动裁判盒开始比赛,即
    $ rosrun auto_referee auto_referee -1代表cyan发球
    或者$ rosrun auto_referee auto_referee 1代表magenta发球
  5. 到下一组比赛的时候,不需要关闭Gazebo,让所有机器人重新站位即可,即在Gazebo界面按下ctrl-shift-r即可;
  6. sim_config文件中更改cyan/prefix以及magenta/prefix的值为参赛双方的队伍名字,之后运行rosparam load sim_config
  7. 运行裁判盒开始比赛。

共同开发

欢迎大家积极共同完善该仿真平台,我们将感谢每一个人的贡献。
本软件使用git作为版本控制,托管于GitHub网站。如果想共同开发该软件包,请fork一下该软件包(首先你要注册一个GitHub帐号),然后git clone到自己的电脑去,改进完代码后,可以git push上来,然后再在GitHub里面发一个pull request。

需要的基本技能和知识:

  • 软件编程:
    • robot_code: ROS, C++
    • gazebo_visual: ROS, C++, Gazebo插件以及编程实现
    • coach4sim: ROS, C++, Qt
    • 配置文件: Linux bash或其他
  • 其他方面
    • 使用说明: txt,Markdown
    • 软件文档: Doxygen或其他

为了方便大家交流,请大家把遇到的问题发到这里https://github.com/nubot-nudt/simatch/issues,我会抽时间回答,别人能回答的话也帮忙回答。建议所有人都注册一个github帐号,对这个simatch版本库fork一下。fork的目的在于你对它的修改可以提交给我,然后我审批过后就可以融合进来。目前希望大家能够将自己在使用过程终于遇到的问题以及解决办法写到README.md文件,然后提交给我。如果有参考价值,那么我就把它融合进来,这样所有人都能看到,也是对这个软件的一个贡献。

步骤

  1. 按下图中的fork就行了(前提是你已经登陆了github帐号),这样在你的帐号里就有了simatch。

fork
2. 然后点进README.md文件,就可以编辑了。把自己遇到的问题和解决部分写在这里questions & answers如下图:
q&a
3. 最后创建一个pull request如下图所示,这样我就能够审批通过你的编辑了

pull_request

联系

软件维护者(Maitainer): Weijia Yao (abcgarden@126.com)
Nubot队伍(RoboCup team): NuBot (nubot.nudt@outlook.com, )

2016年中国机器人大赛之第一届中型组仿真比赛

2016年10月28日至30日为期3天的2016中国机器人大赛在长沙红星国际会展中心开幕,来自全国28个省、自治区、直辖市的240余所院校的近1200支参赛队伍同场竞技,将充分展示机器人的创新能力和技...
  • wisnton
  • wisnton
  • 2016年11月08日 10:12
  • 1505

波士顿动力的机器人会开门了,中国还要奋力追赶

去年的时候,俄罗斯 Promobot 公司的机器人因为屡次逃跑而成为网红,并受到了现任俄罗斯总统普京的接见。但是,很多人质疑这只是一场炒作,毕竟公司的大门没关,机器人不小心溜出来并不困难。不过,现在有...
  • dQCFKyQDXYm3F8rB0
  • dQCFKyQDXYm3F8rB0
  • 2018年02月13日 21:23
  • 854

滴滴全球Di-Tech算法大赛落幕 中国选手夺得10万美元大奖

7月20日消息,滴滴出行首届全球Di-Tech算法大赛今日正式落幕,经过数轮激烈角逐后,由三名成员组成的中国团队”inferrrr”以绝对优势夺得冠军并收获10万美元奖金,“一剑风吼”和“blitz”...
  • chivalrousli
  • chivalrousli
  • 2016年08月15日 16:36
  • 992

记2014第一届中国机器人旅游大赛总结

记2014第一届中国机器人旅游大赛感想及对以后的建议                                                               郑培柱     2...
  • u012440236
  • u012440236
  • 2014年05月17日 15:03
  • 1570

第二届SDN大赛--必答题1

第二届SDN大赛--必答题1 第1小题:简单网络 一、 实验目的 搭建如图1.1所示的简单网络,通过流表操作来实现两台不同主机间的 ping 通与否。   图1.1:简单网络拓扑     二、 ...
  • Tomstrong_369
  • Tomstrong_369
  • 2015年06月06日 23:07
  • 2405

2016年中国智慧杯——助学金大赛

2016年中国智慧杯开始于2016.11,在2017.2结束。其中有三个比赛方向:交通赛,贷款,助学金。由于是第一次参赛,对Python也是因为这个比赛的示例代码才入门的,交通赛数据量太大搞不了,贷款...
  • u012067933
  • u012067933
  • 2017年04月29日 16:29
  • 169

2016年第七届蓝桥杯C/C++程序设计本科B组省赛

1.煤球数目 2.生日蜡烛 3.凑算式 4.快速排序 5.抽签 6.方格填数 7.剪邮票 8.四平方和 9.交换瓶子 10.最大比例...
  • u014552756
  • u014552756
  • 2016年03月21日 14:41
  • 6298

东南大学第三届Robocup机器人仿真足球赛——第一名!

5月19-20日我参加了东南大学第三届Robocup机器人仿真足球赛,一共5支队伍参赛,分别是——A队(我们自己的队伍),ZealoTry队,Z.R.3队,Roboking队,Forever10队。经...
  • zhulingchen
  • zhulingchen
  • 2007年06月02日 17:33
  • 1989

nao机器人比赛心得与建议

Nao机器人比赛心得与建议在机器人队参加了两次Robocup比赛,下面是两次比赛的心得记录。...
  • kevinzhan0417
  • kevinzhan0417
  • 2015年11月12日 16:14
  • 1801

2016江苏省大学生程序设计大赛 JSCPC 总结

这次我们学校派出去了五只队伍,我们作为去年末刚刚参加EC-Final的铜奖队伍,作为了“一队”出战,然而结果却差强人意,最后在本校的5支队里都仅排了第3,竟然差点打铁,老李带的学霸队和良名的队伍都比我...
  • qdbszsj
  • qdbszsj
  • 2016年05月09日 12:30
  • 4156
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2016年中国机器人大赛之第一届中型组仿真比赛
举报原因:
原因补充:

(最多只允许输入30个字)