You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5b87157925 | 3 months ago | |
---|---|---|
.idea | 7 months ago | |
agent | 3 months ago | |
behaviors | 3 months ago | |
bundle | 7 months ago | |
communication | 3 months ago | |
cpp | 3 months ago | |
logs | 3 months ago | |
math_ops | 3 months ago | |
scripts | 3 months ago | |
world | 3 months ago | |
LICENSE | 7 months ago | |
One_vs_One.py | 7 months ago | |
README.md | 7 months ago | |
Run_Full_Team.py | 7 months ago | |
Run_One_vs_One.py | 7 months ago | |
Run_Player.py | 7 months ago | |
Run_Utils.py | 7 months ago | |
T_vs_T.py | 7 months ago | |
config.json | 3 months ago | |
example.py | 7 months ago | |
kill.sh | 7 months ago | |
start.sh | 7 months ago | |
start_debug.sh | 7 months ago | |
start_fat_proxy.sh | 7 months ago | |
start_fat_proxy_debug.sh | 7 months ago | |
start_penalty.sh | 7 months ago | |
start_penalty_debug.sh | 7 months ago |
README.md
FC Portugal Codebase
for RoboCup 3D Soccer Simulation League
About
The FC Portugal Codebase was mainly written in Python, with some C++ modules. It was created to simplify and speed up the development of a team for participating in the RoboCup 3D Soccer Simulation League. We hope this release helps existing teams transition to Python more easily, and provides new teams with a robust and modern foundation upon which they can build new features.
Documentation
The documentation is available here
Features
- The team is ready to play!
- Sample Agent - the active agent attempts to score with a kick, while the others maintain a basic formation
- Launch team with: start.sh
- Sample Agent supports Fat Proxy
- Launch team with: start_fat_proxy.sh
- Sample Agent Penalty - a striker performs a basic kick and a goalkeeper dives to defend
- Launch team with: start_penalty.sh
- Sample Agent - the active agent attempts to score with a kick, while the others maintain a basic formation
- Skills
- Get Ups (latest version)
- Walk (latest version)
- Dribble v1 (version used in RoboCup 2022)
- Step (skill-set-primitive used by Walk and Dribble)
- Basic kick
- Basic goalkeeper dive
- Features
- Accurate localization based on probabilistic 6D pose estimation algorithm and IMU
- Automatic head orientation
- Automatic communication with teammates to share location of all visible players and ball
- Basics: common math ops, server communication, RoboViz drawings (with arrows and preset colors)
- Behavior manager that internally resets skills when necessary
- Bundle script to generate a binary and the corresponding start/kill scripts
- C++ modules are automatically built into shared libraries when changes are detected
- Central arguments specification for all scripts
- Custom A* pathfinding implementation in C++, optimized for the soccer environment
- Easy integration of neural-network-based behaviors
- Integration with Open AI Gym to train models with reinforcement learning
- User interface to train, retrain, test & export trained models
- Common features from Stable Baselines were automated, added evaluation graphs in the terminal
- Interactive FPS control during model testing, along with logging of statistics
- Interactive demonstrations, tests and utilities showcasing key features of the team/agents
- Inverse Kinematics
- Multiple agents can be launched on a single thread, or one agent per thread
- Predictor for rolling ball position and velocity
- Relative/absolute position & orientation of every body part & joint through forward kinematics and vision
- Sample train environments
- User-friendly interface to check active arguments and launch utilities & gyms