All Projects → RoboJackets → robocup-firmware

RoboJackets / robocup-firmware

Licence: Apache-2.0 License
Georgia Tech RoboJackets Firmware for the RoboCup Small Size League

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
Verilog
626 projects
python
139335 projects - #7 most used programming language
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to robocup-firmware

Gort
Command Line Interface (CLI) for RobotOps
Stars: ✭ 425 (+1831.82%)
Mutual labels:  robotics, firmware
Tinymovr
Compact brushless motor controller with integrated absolute encoder and CAN Bus.
Stars: ✭ 90 (+309.09%)
Mutual labels:  robotics, firmware
rcssserver
The RoboCup Soccer Simulator Server
Stars: ✭ 100 (+354.55%)
Mutual labels:  soccer, robocup
Robocup Software
Georgia Tech RoboJackets Software for the RoboCup Small Size League
Stars: ✭ 155 (+604.55%)
Mutual labels:  robotics, soccer
ESP32 BLE OTA Arduino
OTA update on ESP32 via BLE
Stars: ✭ 41 (+86.36%)
Mutual labels:  firmware
UDTStudio
UniSwarm Tools for UDT interface and CANOpen in Qt5
Stars: ✭ 13 (-40.91%)
Mutual labels:  robotics
awesome-photogrammetry
😎 Awesome photogrammetry projects
Stars: ✭ 199 (+804.55%)
Mutual labels:  robotics
printrboardmodernmarlin
Printrboard and Modern Marlin
Stars: ✭ 55 (+150%)
Mutual labels:  firmware
README
All Huawei modifications README, compilation instructions, etc
Stars: ✭ 72 (+227.27%)
Mutual labels:  firmware
RustRobotics
Rust implementation of PythonRobotics such as EKF, DWA, Pure Pursuit, LQR.
Stars: ✭ 40 (+81.82%)
Mutual labels:  robotics
kobopatch-patches
Patches for use with kobopatch.
Stars: ✭ 134 (+509.09%)
Mutual labels:  firmware
thinx-device-api
Remote IoT Device Management Platform
Stars: ✭ 19 (-13.64%)
Mutual labels:  firmware
SLAM AND PATH PLANNING ALGORITHMS
This repository contains the solutions to all the exercises for the MOOC about SLAM and PATH-PLANNING algorithms given by professor Claus Brenner at Leibniz University. This repository also contains my personal notes, most of them in PDF format, and many vector graphics created by myself to illustrate the theoretical concepts. Hope you enjoy it! :)
Stars: ✭ 107 (+386.36%)
Mutual labels:  robotics
aruw-vision-platform-2019
ARUW's vision code from the 2019 season. Published here, read-only, for public reference.
Stars: ✭ 37 (+68.18%)
Mutual labels:  robotics
rsoccerlive
Live highlight updates from the https://reddit.com/r/soccer subreddit.
Stars: ✭ 14 (-36.36%)
Mutual labels:  soccer
lucidgloves
Arduino/ESP32 based DIY VR Haptic gloves. Compatible with SteamVR via OpenGloves.
Stars: ✭ 1,149 (+5122.73%)
Mutual labels:  firmware
PnC
Planning and Control Algorithms for Robotics
Stars: ✭ 22 (+0%)
Mutual labels:  robotics
RoboticsAcademy
Learn Robotics with JdeRobot
Stars: ✭ 160 (+627.27%)
Mutual labels:  robotics
AI-Lab
🔬 Absolutely comfort lab for me to work around with my own AIs and to empirically observe how powerful and impactful these technologies are. I do love these technologies!
Stars: ✭ 19 (-13.64%)
Mutual labels:  robotics
neonavigation
A 2-D/3-DOF seamless global/local mobile robot motion planner package for ROS
Stars: ✭ 199 (+804.55%)
Mutual labels:  robotics

GT RoboJackets RoboCup SSL - Firmware

The Georgia Tech RoboJackets team competes in the annual RoboCup Small Size League (SSL) competition. This repository contains all of the firmware that we run on our robots. Also, check out our 2020 qualification video to see our robots in action!

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.

Getting Started

If you are a new member of RoboCup Electrical or Software and are interested in getting involved with firmware it is highly recommend you start with the getting started pages.

Project Layout

For a high level overview of architecture of robocup-firmware see here

/

The top level folder contains the firmware code for the different targets that are compiled for the control board, FPGA, IMU, and radio.

control/

Contains the firmware code for the main program run on the mtrain. This controls the overall function of the robot and the interface with various peripheral devices, such as IMU, FPGA, and the radio

Modules are fully independent sections of code that take a well defined input (if applicable), do some action, then produce a well defined output (if applicable). For example, the kicker module takes kicker commands (input), directly interfaces with the kicker and does the communication and unit translation (action), and produces breakbeam and voltage to the rest of the firmware (output).

Modules are a class following the interface found in generic_module. The module specifies how often an action should run. At that specific frequency, the entry function will be called to do the action part of the module. The inputs and outputs are given through shared structures passed in the constructor.

The drivers themselves are defined in control/include/drivers.

control/build/

Compiled binaries output from the build system for the mtrain connected to the control board get stored here in the bin/ directory as well as other build results.

kicker/

The kicker folder contains the firmware code for the different targets that are compiled for the kicker board. Details on the architecture of the kicker firmware code can be found here

kicker/build/

Compiled binaries output from the build system for the ATMega on the kicker board get stored here in the bin/ directory as well as other build results.

fpga/

Contains the Verilog code to be programmed to the FPGA for motor control. Details on the architecture of the FPGA firmware code can be found here

Setup

Below is a quick guide to getting this RoboCup project setup to build on your computer. If you are a robocup member planning on developing both mtrain and robocup firmware it is highly recommended that you follow the Firmware Getting Started page. This project only provides directions for installing on Ubuntu Linux, Windows Subsystem for Linux (WSL), and macOS.

  1. Clone the repository
git clone git://github.com/RoboJackets/robocup-firmware
  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 and macos-setup for more info. If you are using WSL, see wsl-setup after using ubuntu-setup.

$ cd robocup-firmware
$ ./util/<SYSTEM>-setup
  1. Build the project for the desired target. The control target is the firmware for the mTrain. The kicker target is for the kicker MCU to be uploaded to the MTrain. The clean target deletes the build directories for both robot and kicker firmware.
$ make <TARGET>

Testing

Firmware tests can be written and placed in control/test with the name <TESTNAME>.cpp then compiled with make <TESTNAME>

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 can be found by doing:

$ make docs

Contributing

Please see the contributing page before contributing.

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].