Georgia Tech RoboJackets software for the RoboCup Small Size League (SSL)
Switch branches/tags
TannerBugFix TannerJones adaptive_defense albert/DebugCommunication albert/FilterRewrite albert/VelcocityPID albert/VelocityPID2 albert/ballRefactor albert/c++17 albert/encoder albert/fixLineKickReal albert/latency albert/nanopb albert/partialReplan albert/perf albert/pivotSlow albert/revertBoostWarnings ashaw596-patch-1 ashaw596-patch-2 bezier-velocity-profile capture-delay chachmu/FixGoalie chachmu/GoalieSelect chachmu/fixZoning clindbeck-Benchmarks coach collin/capture_rewrite collin/captureCurve collin/captureNew collin/captureTuning collin/dribbler_disable collin/earlyDribbler collin/has_ball_test collin/passKickFix2 collin/test_capture_movement comp2018 dan defense-jiggle defense evan/DecawaveTest fix-is_moving_towards_goal fix_basic122 fixKicker gh-pages goal-area-to-rect goalie-clear jay/clamp_dribble jay/clang-format jay/fixes-7-28 jay/grSim jay/half-court jay/konbb jay/predict-time-stacktrace jay/soccer-logger jed/uifix jeremy/debug_control jeremy/encoder_delta_pos jeremy/good-report-enc jeremy/new_debug_radio jeremy/odometry-pos-control jeremy/refactor_fw jeremy/report-enc jeremy/send-world-vel jeremy/torque-control jon/cli-tests jon/console-iostream jon/decawave jon/gamecontroller jon/io-inputs jon/io-interrupt josh/game-state justin/cleaner-threading justin/io-expander-interrupts justin/logfile-demo justin/radio-protocol-brainstorm-2 justin/refactor-firmware-cmake justin/rrt-draw-dynamic-obstacles justin/434-fix-global-obstacles leo/kickTest lqr-control master motionBenchmark myBranch path_planner_sticking refactor-fieldview removeBuffer revert-1092-more-soccer-tests rj/collin/passKickFix2 ryan/read-ssl-logs sim2015 soccer-tests stopRestartDuringPass style team2play test training-2018 tuning-jan17 vel_vision_bug velocity-dips vision_rewrite will/fix-lineups-def-area-col windowed_direct_kicks
Nothing to show
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Add doc generation step to cc2 Mar 4, 2018
cmake Implement k-d tree as backing data structure for rrt Apr 30, 2017
common remove extra files Nov 11, 2018
doc Fixed grammer Aug 3, 2018
external Remove buffer in rtp.hpp Jun 6, 2018
logging Refactor to use rc-fshare Apr 8, 2018
modeling removed old modeling files Jul 26, 2015
old checkstyle patch Feb 29, 2016
run Switch to canda config Jun 17, 2018
soccer Merge pull request #1217 from Galaxspheria/master Nov 14, 2018
util resolve merge conflicts Nov 11, 2018
.clang-format using external "style-configs" repo for formatting configs. closes #429 Sep 2, 2015
.dockerignore Refine setup scripts and add circle yml Aug 2, 2015
.editorconfig Fix touchpass requested angle not being honored May 20, 2016
.gitignore Set timezone noninteractively Mar 2, 2018
.gitmodules jeremy -> robojackets ownership Apr 8, 2018
.mailmap merge Jun 4, 2016
.pylintrc Cleanup misc python code Jul 1, 2017
.style.yapf using external "style-configs" repo for formatting configs. closes #429 Sep 2, 2015
.stylize.yml update stylize config Jan 8, 2018
.travis.yml adding firmware targets to travis-ci Mar 1, 2016
CMakeLists.txt Refactor to use rc-fshare Apr 8, 2018 Random contributors shouldn't fix intro issues Sep 30, 2017
Dockerfile Add fixes for downgraded git version in dockerhub Oct 10, 2018
Dockerfile.16 Add fixes for downgraded git version in dockerhub Oct 10, 2018
LICENSE Fix formatting on apache license Sep 14, 2016 Use smaller python images for python tests Mar 4, 2018 use `make apidocs` in ci docs update script Sep 23, 2015
config.docif Fix issues with GOPATH not sticking Jan 30, 2018
makefile resolve merge conflicts Nov 11, 2018
mypy.ini Add support for mypy checking to CI May 8, 2017
robocup.sublime-project renamed /third_party -> /external Sep 2, 2015 Make it easier to run from commits in case of emergency Jun 23, 2018

GT RoboJackets RoboCup SSL

16.04 Build Status Coverage Status

Riot Join the chat at

The Georgia Tech RoboJackets team competes in the annual RoboCup Small Size League (SSL) competition. This repository contains all of the software that we run on the main field laptop and on our robots. More information on how our software works can be found on our documentation page, our wiki or on our website. Also, check out our 2014 qualification video to see our robots in action!

Here is a screenshot of our 'soccer' program: Screenshot of the 'soccer' program

The Competition

The soccer game is played between two teams of six robots each on a field with overhead cameras. The field vision computer processes images from the cameras and sends out (x,y) coordinates of the ball and the robots. Each team has a laptop that accepts the data from the vision computer and uses it to strategize, then send commands to robots on the field.

The official RoboCup site has more information on the competition.

Project Layout

robocup-software is split into 3 parts, software, firmware, and a common part, used by both software and firmware. This repository contains the software portion of our codebase, the part that runs on our laptops, running high level plays.


The soccer folder contains the code to build the 'soccer' program, which is the main program in control when running our robots.


Code that's shared between the software and firmware sections of our codebase is stored here, as a git submodule. See RoboJackets/robocup-common.


External dependencies that our code relys on, stored as git submodules. To initialize these, please run git submodule update --init --recursive.


Compiled programs and some configuration files are stored here.


Here's a quick guide to getting this RoboCup project setup on your computer. We recommend and only provide directions for installing on Ubuntu Linux and Arch Linux, although it shouldn't be too difficult to port to other operating systems.

  1. Clone the repository
git clone git://
  1. Install the necessary software

There are a few setup scripts in the util directory for installing required packages, setting up udev rules, etc. See ubuntu-setup, arch-setup, and osx-setup for more info.

$ cd robocup-software
$ util/<SYSTEM>-setup
  1. Build the project
$ make

We use CMake as our build system and have a simple makefile setup that invokes CMake.

After running make, several programs will be placed in the run folder. See the soccer docs for instructions on running the soccer program.


We use Doxygen for documentation. This allows us to convert specially-formatted comments within code files into a nifty website that lets us easily see how things are laid out. Our compiled doxygen documentation for software can be found here:

Note: The doxygen documentation site above is updated automacally using circle-ci. See our file for more info.


We use gtest for unit-testing our software, which can be run by running make tests. To add a test to be run with the rest of the bunch, add a new file in soccer/tests.

The soccer tests can be run using make test-soccer or firmware tests with make test-firmware. The TESTS name filter to run only certain tests. For example make test-soccer TESTS=Point* runs only the tests for the Point class.


This project is licensed under the Apache License v2.0. See the LICENSE file for more information.