Coder Social home page Coder Social logo

ssl-autoref's Introduction

CMDragons autoref for RoboCup SSL

This is the RoboCup SSL autoref competition entry from CMDragons.

Description

The autoref is intended to be able to run whole games autonomously, except for the placement of the ball for kicks. It can also run in evaluation mode for the technical challenge. In that mode, it listens to commands from an SSL refbox and changes its own state accordingly, and does not signal for game restarts or the ends of game periods.

When started as a fully autonomous referee, the autoref will transmit the STOP command and wait for robots of both teams to be present and moving, then transmit the command for kickoff and begin the first half. It will transmit the HALT command for halftime, then begin and end the second half similarly. When the game needs to be stopped, the autoref will wait until the ball is stationary near the desired reset location and the robots have stabilized (with a timeout), and then transmit the commands to restart the game.

The autoref communicates according to the published SSL protocols, reading the SSL-Vision double-size field protocol (the old geometry format, on port 10005) and publishing the new protobuf-based referee protocol. It prints information about what is happening to the terminal. When the ball needs to be moved to a particular location for a kick, the coordinates will be printed and highlighted in the terminal.

Compiling and running

Tested with

  • Linux 3.13 (Ubuntu 14.04)
  • CMake 2.8
  • libprotobuf-dev and protobuf-compiler 2.5.0
  • g++ 4.8

Commands:

  • to compile: mkdir build; cd build; cmake ..; make
  • to run as a full autoref: bin/autoref
  • to run in evaluation mode: bin/autoref --eval

Handled rules

  • awarding indirect free kicks after the ball exits, is shot too fast, or is dribbled too far
  • awarding goals and setting up kickoffs
  • halting for halftime and the end of the game
  • force-starting when the ball gets stuck or a team fails to take a kick

Missing rules

  • detecting more infractions (pushing, multiple defenders, etc.)
  • running extra time and penalty shootouts

Other issues/missing features

  • unpolished tracking and ball touching detection
  • no ability to be guided or overridden by a human
  • no ability to handle timeouts
  • extremely minimal user interface

ssl-autoref's People

Watchers

Devin avatar  avatar

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.