This is the code release of WrightEagleBASE, which serves as the basic framework of WrightEagle. A video from RoboCup 2015 final -- HELIOS2015 v.s. WrightEagle2015 -- is as follows.
-
WrightEagle has won 6 world champions and 5 runners-up in annual RoboCup Soccer Simulation 2D competitions since 2005. Detailed historical results from 2005 to 2013 can be found as follows:
-
WrightEagle/WrightEagleBASE is developed following the MAXQ-OP online planning algorithm for Markov Decision Processes. The MAXQ-OP task structure of the agent:
For latest WrightEagle binaries used in RoboCup Soccer Simulation 2D competitions, please refer to: https://wrighteagle2d.github.io/
Researchers are encouraged to cite the following selected publications when using WrightEagleBASE/WrightEagle codes/binaries/tools/materials in research.
- Online planning for large Markov decision processes with hierarchical decomposition, Aijun Bai, Feng Wu, and Xiaoping Chen, ACM Transactions on Intelligent Systems and Technology (ACM TIST),6(4):45:1–45:28, July 2015. [pdf] [appendix] [bib]
- Towards a Principled Solution to Simulated Robot Soccer, Aijun Bai, Feng Wu, and Xiaoping Chen, RoboCup-2012: Robot Soccer World Cup XVI, Lecture Notes in Artificial Intelligence, Vol. 7500, Springer Verlag, Berlin, 2013. [pdf] [bib] [slides]
- Online Planning for Large MDPs with MAXQ Decomposition (Extended Abstract), Aijun Bai, Feng Wu, and Xiaoping Chen, Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems (AAMAS), Valencia, Spain, June 2012. [pdf] [bib] [code]
- WrightEagle and UT Austin Villa: RoboCup 2011 Simulation League Champions, Aijun Bai, Xiaoping Chen, Patrick MacAlpine, Daniel Urieli, Samuel Barrett, and Peter Stone, RoboCup-2011: Robot Soccer World Cup XV, Lecture Notes in Artificial Intelligence, Vol. 7416, Springer Verlag, Berlin, 2012. [pdf] [code]
- Bounded Incremental Real-Time Dynamic Programming, Changjie Fan, and Xiaoping Chen, IEEE Proceedings Frontiers in the Convergence of Bioscience and Information Technologies of 2007 (FBIT), Jeju Island, Korea, 2007. [pdf]
- Solving Large-Scale and Sparse-Reward DEC-POMDPs with Correlation-MDPs, Feng Wu, and Xiaoping Chen, Proceedings of RoboCup Symposium 2007. Atlanta, America, July 2007. [pdf]
- Final of RoboCup 2015 (HELIOS2015_0-vs-WrightEagle_3)
- Final of RoboCup 2014 (WrightEagle_3-vs-Gliders2014_2)
- Final of RoboCup 2013 (WrightEagle_2-vs-HELIOS2013_0)
- Final of RoboCup 2012 (HELIOS2012_4-vs-WrightEagle_1)
- Final of RoboCup 2011 (WrightEagle_3-vs-HELIOS2011_2)
- Final of RoboCup 2010 (HELIOS2010_2-vs-WrightEagle_1)
- Final of RoboCup 2009 (HELIOS2009_1-vs-WrightEagle_2)
- Final of RoboCup 2008 (Brainstormers08_0_4-vs-WE2008_0_3)
- Final of RoboCup 2007 (Brainstormers07_3-vs-WE2007_0)
- Final of RoboCup 2005 (Brainstormers05_3-vs-WE2005_0)
sudo add-apt-repository ppa:gnurubuntu/rubuntu
sudo apt update
sudo apt install rcssserver rcssmonitor rcsslogplayer
git clone https://github.com/wrighteagle2d/wrighteaglebase
cd wrighteaglebase
- Run
make [debug]
for a debug version with debugging information and assertions - Run
make release
for a release version
A RoboCup Soccer 2D Simulator (as well as a monitor and a logplayer) is needed to run WrightEagleBASE. Please refer to https://wavepackage.wordpress.com/2013/06/07/how-to-install-the-robocup-soccer-server-2d/ and https://wavepackage.wordpress.com/2015/07/22/how-to-install-robocup-2d-simulation-server-on-ubuntu-14-04/ for installation instructions.
After installation,
- Run
rcssserver
to start a soccer server which simulates the game - Run
rcssmonitor
to start a soccer monitor which is used to display the game - Run
./start.sh
to start a team on the left side with default teamname WEBase - Run
./start.sh -t [TEAMNAME]
to start a team on the right side with teamname [TEAMNAME]
After both teams are connected, send a KickOff
command to the server by hitting Ctrl+K
in the monitor to start the game!
- Introduction to WrightEagleBASE 4.0, Rongya Chen, USTC, 2014
- Introduction to WrightEagleBASE 3.0, Jiang Miao, USTC, 2012
- Brief Introduction to WrightEagleBASE 2.0 (in Chinese), Aijun Bai, USTC, 2011
- Introduction to WrightEagleBASE 2.0 (in Chinese), Aijun Bai, USTC, 2010
- Introduction to WrightEagleBASE 1.0 (in Chinese), Yuhang Wang, USTC, 2009
void Player::Run
insrc/Player.cpp
is the main loop consisting of sensing, decision-making and executingActiveBehavior DecisionTree::Search
insrc/DecisionTree.cpp
is the main decision-making loopvoid Behavior*::Plan
insrc/Behavior*.cpp
implement planning part of behavioursvoid Behavior*::Execute
insrc/Behavior*.cpp
implement executing part of behaviours
A good starting point to hack the team is digging into void Behavior*::Plan
functions.
- MAXQ-OP on standard Taxi domain: https://github.com/aijunbai/taxi