1. 程式人生 > >2016年中國機器人大賽之第一屆中型組模擬比賽

2016年中國機器人大賽之第一屆中型組模擬比賽

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

說明

該軟體包包括了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. 機器人不得惡意碰撞其他機器人,需要考慮避障;

  1. 單個機器人帶球不能超過3m,需要傳球才可以;
    2. 單個機器人帶球不能從己方半場過中線到對方半場,必須傳球過中線才可以;
  2. 球出界或者射門得分;
  3. 除了守門員以外其他機器人不得進入小禁區,除了守門員以外在大禁區的機器人數量最多1個;
  4. 發球時機器人離球距離的限制,具體如下:
    (1) 如果是THROWIN,GOALKICK,CORNERKICK或者FREEKICK的情況時,對方機器人離球要超過3m,己方機器人除了開球機器人以外其他機器人要離球超過2m;
    (2) 如果是KICKOFF的情況時,除了發球機器人外其餘機器人都必須在自己的半場,且對方機器人離球要超過3m,己方機器人除了開球機器人以外其他機器人要離球超過2m;
    (3) 如果是DROPBALL的情況時,所有機器人離球必須超過1m,但是如果在自己的大禁區則不受此距離限制;
    (4) 如果是比賽過程中的PENALTY情況時,除了守門員外其餘機器人不得在大禁區內且除了準備點球的那個機器人外其餘機器人必須離球超過3m;
  1. 考慮發球等待時延;
  2. 檢測進球無效情況(機器人射門得分前必須有至少一次傳球(傳球不成功也算),否則得分無效);

比賽流程

假設伺服器(即執行Gazebo的由比賽方提供的主機)的IP地址為IpA,主機名(hostname)為hostA; cyan方參賽隊主機的IP地址為IpB,主機名為hostB; magenta方參賽隊主機的IP地址為IpC,主機名為hostC,那麼相應的配置如下:

參賽隊主機的配置(由參賽選手完成)

  1. 確定好用於參賽的指定主機並且將主機名上報賽事負責人,同時配置好自己的IP地址(將由賽事負責人提供固定IP地址)。注意,得到主機名的一個簡單的辦法是開啟終端,會看到比如[email protected]:~$的提示,其中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 ([email protected])
Nubot隊伍(RoboCup team): NuBot ([email protected], )

相關推薦

2016中國機器人大賽第一中型模擬比賽

2016年10月28日至30日為期3天的2016中國機器人大賽在長沙紅星國際會展中心開幕,來自全國28個省、自治區、直轄市的240餘所院校的近1200支參賽隊伍同場競技,將充分展示機器人的創新能力和技術水平。 中型組模擬比賽是對應RoboCup中

2016.8.16中山紀念中學資訊學普及模擬比賽題解

    這次考試考得棒棒噠,第二次第一,主要是因為很多大神走了,所以我就奮起直追,就360啦,目標直奔c組,打好堅實基礎,努力學習,不放棄思考,oh yeah.比賽時一看題目感覺挺水的,一下就carry了第一題和第二題,隨後遊走gank了第四題,最後與第三題糾結,最後還是c

2018中國機器人大賽服務機器人專項賽賽後總結

發展方向 重要 檢測 展現 不用 根據 差異 進入 快捷 服務機器人專項賽可以稱為家庭服務機器人團隊的嘉年華,參賽團隊和競賽項目的主體都是家庭服務,賽項涉及GPSR、WhoIsWho、Shopping等經典賽項,也包括人的辨識、物體辨識、路徑規劃、Follow等子賽項,家

自強隊2018中國機器人大賽服務機器人專項賽賽後總結會簡報

漏洞 shopping 展示 簡報 優化 導致 采購 成績 安排 會議時間:2018年5月18日17:00-19:00會議地點:上海大學(延長校區)電機樓會議室會議主持:陳萬米老師參會人員:陳萬米、黃慎之老師及2018中國機器人大賽服務機器人專項賽參賽學生 會議紀要: 一

2016 中國基準、基本氣象站 站點資訊

這裡是2016年中國基準、基本氣象站 站點資訊。如果觀測場海拔高度大於10000,實際使用時需要減掉10000.省份區站號站名緯度(度.分)經度(度.分)觀測場拔海高度(米)安徽58015碭山34.27

HDU 5935 Car 【模擬】 (2016中國大學生程式設計競賽(杭州))

Car Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 25    Accepted Submissio

電子科技大學第一大象分形比賽個人總結

賽題是基於小資料集的影象分類。資料集還加入了高斯噪聲。 我採用了去燥加分類兩個過程來解決這個問題,所以模型不是end to end的。 去燥模型採用dncnn網路,論文地址如下: Beyond a Gaussian Denoiser: Residual Learning

2016藍橋杯省賽C/C++ A 第八題 四平方和

四平方和定理,又稱為拉格朗日定理: 每個正整數都可以表示為至多4個正整數的平方和。 如果把0包括進去,就正好可以表示為4個數的平方和。 比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 7 = 1^2 + 1^2 + 1^2 + 2^2 (^符號表示乘方的

2016藍橋杯省賽C/C++ A題解(含題目)

1. 網友年齡 某君新認識一網友。 當問及年齡時,他的網友說: “我的年齡是個2位數,我比兒子大27歲, 如果把我的年齡的兩位數字交換位置,剛好就是我兒子的年齡” 請你計算:網友的年齡一共有多少種可能情況? 提示:30歲就是其中一種可能

軟體大賽題目---第一個題目- 賽軟體 * 比賽 = 軟體比拼

題目是別人的,我轉抄過來的,不記得是誰的了。 第一個題目  (程式設計題)下列乘法算式中:每個漢字代表1個數字(1~9)。相同的漢字代表相同的數字,不同的漢字代表不同的數字。       賽軟體 * 比賽  =  軟體比拼   試程式設計確定使得整個算式成立的數字組合,如

中國機器人產業發展規劃(2016-2020

來源:園區大會概要:機器人產業作為中國實現中國製造2025的關鍵,應更注重產業的科技創新,使更多

CTF--2016中國西安西電華山杯網路安全技能大賽crackme6

Crackeme6 write up(help me) 0x01 為了照顧水平技術差異化,本題解答對大神來說,有些繁瑣。(大神可以忽略飄過) 方便一部分逆向新手學習。 0x02 命令列行程式上圖顯示崩潰,剛開始還懷疑程式編寫的有問題。 於是先暫時用IDA載入測試一

0174 一花一世界 (第一微生物培養皿藝術大賽)

ppi wap 技術 blog all select 世界 image log 作品編號: 0174 作品名稱: 一花一世界 作者: 亮麗的女神哦~ 作品描述: 灼灼荷花瑞, 亭亭水中出, 培養皿上荷, 為你而怒放! 作品詳情欣賞請點擊鏈接進入. htt

報告丨2016-2017中國手機地圖市場研究報告

media 好的 地圖 機會 針對 快速 不同 增加 領域 2017年2月24日,iiMedia Research(艾媒咨詢)權威發布《2016-2017年中國手機地圖市場研究報告》。報告顯示,2016年第四季度,手機地圖用戶累計規模已經達到6.64億人,增長率為1.53%

中國科學技術大學第五資訊保安大賽(hackergame2018自我總結)

https://hack2018.lug.ustc.edu.cn 這是我第一次參加ctf(應該也是第一次聽說吧),居然隨緣拿了6個flag(本來7個,還有一個明明對了不算我對的),也算是入門了吧,也讓我對ctf產生了興趣,以後我應該也會接著參加這類比賽吧(雖然這讓我自閉) 1、簽到題 -------

中國科學技術大學第五信息安全大賽(hackergame2018自我總結)

python3 編譯 fill 解碼 問答 與他 methods c 語言 出現 https://hack2018.lug.ustc.edu.cn 這是我第一次參加ctf(應該也是第一次聽說吧),居然隨緣拿了6個flag(本來7個,還有一個明明對了不算我對的),也算是入門

Python選修課第一Turtle繪圖大賽田康林趙冰珂

baidu bsp pen color tps nco left python lan 點擊此處查看視頻 from turtle import* setup(600,600,200,200) #臉 penup() goto(-190,0) seth(-90) pendow

201811月3日java學習第一個程式 HelloWord以及註釋 ,API

1.用記事本寫HelloWord. .java -》javac.exe-》.class-》java.exe-》結果 main 方法是程式的入口 //單行註釋;/* */多行註釋 程式碼例項 class HelloWord { public stat

“幻影青春,綻放未來”第一PPT演講大賽

上週四晚,六安職業技術學院資訊學院校企共建專業的同學們在學校水上報告廳上舉行了第一屆ppt大賽。並邀請了資訊學院副院長李家兵,資訊學院輔導員鄭健老師和吳永林老師也來到了我們的大賽做嘉賓。同時出席本次大賽的老師有資訊學院校企共建專業學術主任陳鵬,學工主任陳晨,招生辦主任張緒,輔導員張文君,餘啟娟,講師

2016第二十二全國青少年資訊學奧林匹克聯賽初賽普及C++詳細答案

題目 題解 一、單選題 1 D Powerpoint(幻燈片)、Excel(電子表格)、Word(電子文件)是微軟公司辦公套件Microsoft Office最重要的三個軟體。 Acorbat Rea