Giter Site home page Giter Site logo

wrighteagle2d / wrighteaglebase Goto Github PK

View Code? Open in Web Editor NEW
89.0 12.0 36.0 4.04 MB

WrightEagle Base Code for RoboCup Soccer Simulation 2D

Home Page: https://wrighteagle2d.github.io/

License: BSD 2-Clause "Simplified" License

Makefile 1.06% Shell 1.06% C++ 97.79% Roff 0.09%
robocup soccer robocup-simulation decision-making markov-decision-processes

wrighteaglebase's Introduction

wrighteaglebase

Build Status

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.

RoboCup 2015 Final Video

Highlights

  • 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: data/results.png

  • WrightEagle/WrightEagleBASE is developed following the MAXQ-OP online planning algorithm for Markov Decision Processes. The MAXQ-OP task structure of the agent:
    data/wrighteagle.png

Binaries

For latest WrightEagle binaries used in RoboCup Soccer Simulation 2D competitions, please refer to: https://wrighteagle2d.github.io/

References

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]

Videos

Install

  • sudo add-apt-repository ppa:gnurubuntu/rubuntu
  • sudo apt update
  • sudo apt install rcssserver rcssmonitor rcsslogplayer
  • git clone https://github.com/wrighteagle2d/wrighteaglebase

Compiling

  • cd wrighteaglebase
  • Run make [debug] for a debug version with debugging information and assertions
  • Run make release for a release version

Usages

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!

Tutorials

Hacks

  • void Player::Run in src/Player.cpp is the main loop consisting of sensing, decision-making and executing
  • ActiveBehavior DecisionTree::Search in src/DecisionTree.cpp is the main decision-making loop
  • void Behavior*::Plan in src/Behavior*.cpp implement planning part of behaviours
  • void Behavior*::Execute in src/Behavior*.cpp implement executing part of behaviours

A good starting point to hack the team is digging into void Behavior*::Plan functions.

Related Project

wrighteaglebase's People

Contributors

aijunbai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wrighteaglebase's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.