• Stars
    star
    175
  • Rank 218,059 (Top 5 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created almost 11 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Georgia Tech RoboJackets Software for the RoboCup Small Size League

GT RoboJackets RoboCup SSL

NEW DOCUMENTATION: https://rj-rc-software.rtfd.io

Everything below this line is extremely out of date.


16.04 Build Status Coverage Status

Riot Join the chat at https://gitter.im/RoboJackets/robocup-software

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

TODO: fix above^

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.

soccer/

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

common/

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/

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

run/

Compiled programs and some configuration files are stored here.

Setup

OUTDATED (since ROS2 rewrite)

Read the docs in docs/src/getting_started/index.rst instead.

Here's a quick guide to getting this RoboCup project setup on your computer. We recommend and only provide directions for installing on 20.04 Ubuntu Linux due to the limitations of ROS2.

  1. Clone the repository
git clone git://github.com/RoboJackets/robocup-software
  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

TODO(1521): Fix makefile scripts.

mkdir build && cd build
source /opt/ros/foxy/setup.sh
export CMAKE_PREFIX_PATH=/opt/ros/foxy
cmake -GNinja -DCMAKE_INSTALL_PREFIX=../install -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
ninja install

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.

To run simulation:

source /opt/ros/foxy/setup.sh
source install/setup.sh
ros2 launch rj_robocup sim.launch.py

Documentation

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:

http://robojackets.github.io/robocup-software/

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

Testing

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.

License

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

More Repositories

1

rrt

C++ RRT (Rapidly-exploring Random Tree) Implementation
C++
246
star
2

software-training-old

RoboJackets Software Training
C++
152
star
3

igvc-software

The code base for the RoboNav team's IGVC robot.
C++
88
star
4

roboracing-software

ROS packages for the RoboJackets RoboRacing team.
C++
74
star
5

jr

Putting the "train" in training
Python
57
star
6

hungarian

C++ Implementation of the hungarian algorithm
C++
44
star
7

robocup-firmware

Georgia Tech RoboJackets Firmware for the RoboCup Small Size League
C
26
star
8

electrical-training

RoboJackets Electrical Training Program
TeX
25
star
9

robocup-pcb

The EAGLE Design Files for Georgia Tech RoboJackets RoboCup Small Size League's Electrical Systems
TeX
23
star
10

apiary

A web app to support RoboJackets internal operations
PHP
19
star
11

urc-software

The code base for the RoboNav team's URC rover.
C++
17
star
12

ros-training

Training materials for IGVC and RoboRacing
C++
15
star
13

inventory-management

This tool is used by the Robocup Electrical subteam to document part information and location.
PHP
13
star
14

qt-example

Qt Example Project
13
star
15

robowrestling-software

C++
8
star
16

robocup-training

RoboCup Small Size League Software Training
Emacs Lisp
8
star
17

robonav-electrical

The electrical designs for the RoboNav team
C
7
star
18

firmware-training

RoboJackets Firmware Training Program
C++
6
star
19

robocup-common

Georgia Tech RoboJackets common files for the RoboCup Small Size League
C++
6
star
20

urc-drone

The code base for the RoboNav team's URC drone.
C++
5
star
21

stsl

Software for supporting the RoboJackets Software Training program
C++
5
star
22

software-training

RoboJackets software training
Python
4
star
23

urc-firmware

Firmware for the RoboNav team's URC rover.
C++
4
star
24

mtrain-firmware

Georgia Tech RoboJackets mTrain Microcontroller Firmware
C
4
star
25

style-configs

Code format config files for C++ and Python
3
star
26

onken-web

The web frontend for Onken
JavaScript
3
star
27

robocup-fshare

Interface and Shared Files for Connection between RoboCup-Software and RoboCup-Firmware
C++
3
star
28

robowrestling

Autonomous 3kg sumo
C++
3
star
29

reflow-oven

Reflow soldering oven firmware using an Arduino Nano and touchscreen LCD
C++
3
star
30

mtrain-pcb

Georgia Tech RoboJackets mTrain Microcontroller EAGLE Design Files
2
star
31

robocup-analysis

RoboCup Small Size League Analysis Scripts.
2
star
32

robojackets-images

Packer Machinery to build RoboCup Training VBox and VMware Images
Shell
2
star
33

robocup-rustware

Rust
2
star
34

RJNet

Ethernet communication system to be used by RoboRacing and IGVC
C++
2
star
35

mjackets-api

Georgia Tech RoboJackets mJackets STM32 Microcontroller Firmware API
CMake
2
star
36

eagle-libraries

The Collection of RoboJackets' Teams' EAGLE CAD Libraries
2
star
37

battlebots-software

Simuations and embedded software for combat robots
C++
2
star
38

onken

Onken is a tool for managing finances for student organizations.
Python
2
star
39

people-counter

People counter to help comply with COVID-19 related restrictions at the SCC
PHP
2
star
40

roboracing-electrical

RoboJackets RoboRacing Electrical repository
C++
1
star
41

nn-training

Training materials for the CV side of RoboNav
Jupyter Notebook
1
star
42

gatech-slack-account-fixer

Corrects Slack account information, for use with Enterprise Grid migrations
Python
1
star
43

robocup-off-robot-firmware

Georgia Tech RoboJackets Off-Robot Firmware for the RoboCup Small Size League
C++
1
star
44

jedi

Identity event bus
PHP
1
star
45

pcb-contest

GitHub repository for the RoboJackets Winter 2020 PCB Competition
1
star
46

rj-ros-common

Common ROS libraries and utilities
C++
1
star
47

concourse-github-check-resource

Concourse resource for GitHub Checks
Python
1
star
48

igvc-firmware

The firmware for our RoboNav team's Intelligent Ground Vehicle Competition robots.
CMake
1
star
49

archived-robojackets.github.io

🐝 + πŸ€– = :octocat: RoboJackets OSS Landing Page (WIP)
CSS
1
star
50

controls-training

RoboJackets Controls Training Program
Jupyter Notebook
1
star
51

roboracing-firmware

Firmware for RoboJackets RoboRacing Team
Jupyter Notebook
1
star