RoboCup Software aims to be as friendly to new contributors as possible. This project is daunting, so don't be afraid to open an issue, or get in contact.
If you are brand new to software developments or robotics, you might find our training materials useful. We use these training materials to onboard approximately 20 freshman every year. (contributions are welcome to this repository as well!)
This repo contains most of our slides, starter documentation, and sample issues. If you find anything confusing (or something that can be improved) please open an issue on that repository.
For people who already have their bearings, we have autogenerated documentation sites for most robocup projects.
The first step to contributing is to find an issue. We reccoment searching our issue list for intro or beginner issues first. These links only link to these repos, however, we maintain many different repos that you might want to check out to try to find something to work on:
- RoboJackets/robocup-software
- RoboJackets/robocup-firmware
- RoboJackets/robocup-common
- RoboJackets/rrt
- RoboJackets/robocup-pcb
- RoboJackets/grSim (forked from grSim)
For simplicity, this guide will cover only RoboJackets/robocup-software directly (with links), but the tips found here can help you contribute to any of these projects.
Once you have an issue, and a basic idea of it's solution, its time to get the current version of the software running.
RoboJackets-RoboCup projects run best on Ubuntu, but can run on any linux distribution if you set up the dependencies yourself.
First clone the repo you want to work on. Eg: git clone https://github.com/RoboJackets/robocup-software
.
For Ubuntu, we provide an automated setup script. To install it, you can follow the instructions in this section of our README.
Once the setup is completed, you should be able to run make
to compile our project. For robocup-software, you can then run make run-sim
to run our simulator and soccer, and play around with the running program.
We also provide an alternate setup path, for those who prefer working in a VM. See the robocup-images landing page for more information. Please open an issue on that repository if you find problems or run into issues.
RoboCup projects make extensive use of git submodules. Before making a commit (and before compiling), make sure your submodules are up to date by running:
git submodule update --init --recursive
Our ubuntu-setup script should do this for you as well.
To automate this process, you can add git hooks for this repo to auto-refresh submodules. Instructions can be found here to do this.
This picture should summarize the contribution workflow (after forking the repo to your own GitHub repo, so you can push to it).
If you are not a member of RoboJackets, please do not fix intro issues, as those are intended to be used to give new RoboJackets members practice using Git. Other than that, the contribution workflow should mimic any other repository on GitHub.
Once your Pull Request is submitted, the current maintainer (and other members) will review the contribution for quality and correctness, and once all issues are resolved, your contribution will be merged into the main repository!