List of Suggested Projects for GSoC 2019

This is a list of projects suggested by ArduPilot developers for GSoC 2019. These are only suggestions, and if you have your own ideas then please discuss them on the ArduPilot GSOC gitter channel or on the discuss server here. We have a lot of talented developers in the ArduPilot dev team who would love to mentor good students for GSoC 2019.

See lower down on this page for more details for some of the projects listed above


The timeline for GSoC 2019 is here

How to improve your chances of being accepted

When making the difficult decision about which students to accept, we look for:

  • Clear and detailed application explaining how you think the project could be done
  • Relevant prior experience
  • Experience contributing to ArduPilot or other open source projects
  • Understanding of Git and/or GitHub

ROS integration with Copter and Rover for non-GPS navigation and object avoidance

ROS can already be used with ArduPilot (see setup instructions here) but there is room for improvement including:

  • Improve non-GPS position estimation when using Google Cartographer especially when the vehicle turns quickly
  • Allow high level position targets received by ArduPilot (from the ground station via MAVLink) to be passed to ROS which should then return low-level movement commands to ArduPilot
  • Improve passing of obstacle distance information (i.e. lidar data) from ROS to ArduPilot for low-level simple object avoidance
  • Improve clock syncronisation between the flight controller and companion computer
  • Improve documentation and prepare an APSync images to ease user setup

Optical flow position hold performance improvements for multicopters

ArduPilot supports Optical flow sensors including the low-cost Cheerson CX-OF sensor but this project aims to improve a multicopter’s ability to hold position using this sensor. This could involve:

  • Creating an easy to use sensor calibration routine so that the sensor’s pixel movements are accurately converted to rotation rates
  • Verify the EKF’s integration of sensor data is correct (i.e. check rotation rate data, sensor’s defined position, sensor’s update rate and lag are all properly used in the final position and velocity estimates)
  • Check the FlowHold mode code for issues especially around altitude estimation

Precision Landing using OpenMV camera (or similar) for multicopters

ArduPilot supports Precision Landing using the IRLock sensor or companion computer. This project involves adding support for a low-cost OpenMV camera to recognise AprilTags and then provide the target to ArduPilot so that it can use existing controls to landing on the target. This project could also involve validating and improving the small EKF used to estimate the landing target’s relative position and velocity.

Lane following or visual follow-me for Copter, Rover or Boat

This project involves using machine vision and/or machine learning to add lane following or visual follow-me to ArduPilot’s Copter or Rover firmware

Expenses for purchasing the companion computer and camera will be covered by ArduPilot

Single Copter and/or Coax Copter flight control improvements

Single Copter and Coax Copters are vehicles with one or two motors on the top, along with 4 servo controlled fins below to direct the air. ArduPilot already supports these vehicles and there have been some successful flights but their attitude controllers need more love and attention to bring them up to the level of performance of our other frame types.

This project would involve first running the vehicles in a simulator (probably RealFlight8) and then testing on a real vehicle.

Developers looking to take on this project should have some understanding of control theory (PID controllers) and be prepared to do detailed analysis of dataflash logs of the simulated and real-flights to ensure our control methods match the physics of these vehicles.

Expenses for purchasing the simulator and vehicle will be covered by ArduPilot.

Helicopter auto-rotation support

When the engine fails on a helicopter a good pilot can land the helicopter safely using auto-rotation. We would like ArduPilot to support doing this automatically. We already have a very nice simulation system for helicopters using the RealFlight FlightAxis backend, which gives the ideal test environment for developing this feature. The project would involve using the rotor RPM and motor RPM sensors in the simulator to produce a reliable auto-rotation from a variety of heights and flight speeds. If simulator testing goes well then it could be tested on a number of real helicopters.

Improve fixed-wing 3D aerobatics support in ArduPilot

With the addition of prop-hang in ArduPilot (see here) we now have the beginnings of a nice 3D aerobatics for fixed wing. This project involves taking that to the next level to add support for “trick” mode. In trick mode the user will have access to a a variety of common 3D maneuvers, including knife-edge, loops, harrier and rolling loops. Implementing this will involve some careful use of quaternion controllers, but a good UI design so the stick inputs to control these tricks are easy to learn. Testing can be done in the FlightAxis simulator (as in the above video), allowing for development without risking real aircraft.

Improve Morse simulator integration including supporting boats / ROVs

Improve ArduPilot’s integration with Morse simulator software including

  • Adding support for boats and ROVs with simulated waves to test ArduPilot controls
  • Default camera view to follow the vehicle

Support for AirSim simulator

Microsoft recently released support for their AirSim drone simulator based on the Unreal 3D gaming engine. It looks like a very nice simulation framework, and we would like to add support for using it for ArduPilot development. The project would involve adding interface code between AirSim and ArduPilot, working with the AirSim developers if needed to enhance their APIs (such as adding lock-step scheduling). Please note that this project will require you to have a fast enough PC to run AirSim (good graphics card and lots of memory).

Projects Completed in past years

In 2018, students successfully completed these projects:

  • BalanceBot
  • RedTail integration with ArduPilot
  • Live video improvements for APSync

In 2017, 3 student successfully completed these projects:

  • Smart Return-To-Launch which involves storing vehicle’s current location and maintaining the shortest possible safe path back home
  • Rework ArduRover architecture to allow more configurations and rover type (see details here)
  • Add “sensor head” operation of ArduPilot, split between two CPUs
You can find their proposals and works on the Google GSoC 2017 archive page