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.
2.9 KiB
2.9 KiB
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