commit 979d9521a5e184f8ef57b5becb4e8acc19e28a82 Author: MagDish <2717360869@qq.com> Date: Mon May 6 19:31:36 2024 +0800 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..adc0f2a --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# FC Portugal Codebase
for RoboCup 3D Soccer Simulation League + +![](https://s5.gifyu.com/images/Siov6.gif) + +## 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](https://docs.google.com/document/d/1aJhwK2iJtU-ri_2JOB8iYvxzbPskJ8kbk_4rb3IK3yc/edit) + +## 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](https://github.com/magmaOffenburg/magmaFatProxy) + - 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** +- 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](https://doi.org/10.1007/s10846-021-01385-3) 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