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.
Dribble/README.md

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
  • 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