GSoC - Google Summer of Code¶
Each year, ArduPilot participates in the Google Summer of Code program, encouraging students and others to contribute to the ArduPilot codebase.
The development team includes experienced mentors who will help students make great contributions to ArduPilot.
To help you get started:
The suggested projects list and previous year GSoC projects is here. This is a list of our ideas of what would be good to work on, but we are open to other suggestions you make in your application.
The purpose of GSoC is to help people become long-term contributors. We want people to stay in the community after the term.
The #GSOC channel in the ArduPilot Discord server is a good place to ask questions about our GSOC program, submit ideas for projects, etc. Mentors will respond to your posts in this GSoC channel.
The ArduPilot Wiki and, specifically, the ArduPilot Developers Wiki are good sources of information on ArduPilot and how to contribute to its code.
The ArduPilot Discuss Forum GSoC category is for GSoC topics and should be cross-posted to the #GSoC Discord channel.
Check out the Blog.
Past conference talks are on the ArduPilot YouTube channel.
Advice for proposals¶
Please note that there are likely to be more students applying than the number of places Google allocates, so to improve your chances, please include:
Above all, we welcome folks already working with ArduPilot who have not yet submitted open-source contributions.
Information on how you would approach the project, what time you can put into it, and what you think you can achieve over the GSoC period.
Information on the tools you will need to complete the project, including demonstrated ability in the relevant programming language or environment, and details of past open-source projects you have contributed to.
Enthusiasm for your chosen project. The best projects stand on their own, regardless of GSoC.
A feature and development motivation: what is missing today and why it matters to the ArduPilot ecosystem and community.
A short note on what already exists in ArduPilot that can be used as a foundation.
A basic sketch of your proposed solution so we can see your current level of understanding of the codebase.
A working plan with a timeline, end goals, and stretch goals.
A plan for your continued involvement with ArduPilot even if the GSoC project is not selected.
Images, diagrams, or schematics that support your idea.
Your education background, and your near-term career ambitions.
Recent relevant work history, including whether you are working this summer.
Your availability for the term, where you will be located, and any holiday plans during the term.
Previous contributions to ArduPilot, related open-source work, or relevant community activity, with links or other evidence.
Helpful resources:
Learning the codebase: a short start for how the repo is organized.
ArduPilot SITL: our simulation tool; help us improve the SITL documentation.
SITL with Gazebo: extend SITL to physics simulators, including the free and open-source Gazebo simulator.
Methodic Configurator: if you have your own hardware, this is our recommended setup and configuration tool.
Please note that having existing PRs or solving issues is not a requirement for GSoC, and we do not track issue counts. If you are interested, please feel free to work on a few open items for your own learning.
Do not ask to be assigned an issue or ask how or where to contribute. Please follow ArduPilot standards for commit quality, code style, and comments.
If you’d like to discuss your project or ask questions, please create a thread in the #GSOC category on the ArduPilot forum. Please read the pinned message there before posting.