List of Suggested Projects for GSoC 2020¶
This is a list of projects suggested by ArduPilot developers for GSoC 2020. These are only suggestions, and if you have your own ideas then please discuss them on the ArduPilot Discord Chat 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 2020.
- Non-GPS navigation improvements using Intel RealSense cameras
- Object avoidance improvements for Multicopters and/or Rovers
- Lane following or automatic docking for cars and boats using JeVois camera (or similar)
- Rover Autotune
- Walking robot support
- 3D aerobatic support for fixed wing aircraft
- Improve Morse simulator integration including setup to move camera with vehicles
- Create new vehicle models for the Morse simulator, including boats, planes and copters
- Improve Gazebo simulator integration including json protocol, Gazebo9, and new sensors set
- MathWorks SimuLink interface to ArduPilot SITL
- Build system improvements, specifically fixing dependency handling and speeding up the waf build
- Improvements to the MAVProxy GCS. Better multivehicle support, performance improvement. Requires strong python skills.
- Improve helicopter throttle handling for internal combustion engines for autonomous operations.
- Swift Package for MAVLink communications.
- Unified performance counter on ArduPilot
See lower down on this page for more details for some of the projects listed above
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
Object Avoidance improvements for Multicopters and/or Rovers¶
Lane following or automatic docking for cars and boats¶
This project involves using machine vision to add lane following or automatic docking to to ArduPilot’s Rover firmware
- Either a low-cost JeVois camera or a high powered companion computer could be used
- Recognise the road or docking target using machine vision or learning (for docking an AprilTag could be used)
- Either create a new control mode to control the vehicle or send velocity commands (probably using the SET_GLOBAL_POSITION_INT or SET_POSITION_TARGET_GLOBAL_INT message) to move the vehicle in the correct direction
- If a companion computer is used, add the solution to APSync
- Document the implementation
This project would involve adding an autotune feature for rover and boat like for copter. The autotune should be able to learn and set most of the rover parameters for autonomous behavior. This will need a good understanding of control theory.
Walking robot support¶
This project would involve adding basic support for four legged walking robots and could involve:
- Identifying a reasonably priced four legged robot frame
- Control system improvements to allow the frame to stand and walk
- Documentation of the setup
Expenses for purchasing the frame and autopilot will be covered by ArduPilot.
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
Unified performance counter on ArduPilot¶
This project would involve adding unified support for performance accross our HAL. Currently, Linux board get the most performant performance counter, but we should be able to some on Chibios and SITL to allow better profiling of the code.
Improve helicopter throttle handling for internal combustion engines for autonomous operations¶
The helicopter code manages the throttle for all propulsion types through the rotor speed controller. This controller provides very basic throttle control for internal combustion engines through rotor run-up and shutdown sequence. It ramps the throttle from the idle setting to the bottom of the throttle curve. It does not provide any warm up or cool down period for autonomous operations. The goal of this project would be to incorporate an automated rotor startup sequence after engine start and rotor shutdown, engine cooldown and engine cut to support fully autonomous operations. Similar work has been conducted in this area with an off-shoot of ardupilot but it relies on pilot interaction although it incorporates a torque limited rotor spool up which would be a great to incorporate in arducopter RSC. Details of the rotor speed controller can be found in the traditional helicopter RSC setup wiki. A heli with an internal combustion engine is not necessarily required to complete this project but would be helpful. The RealFlight simulation linked with ardupilot SITL is required to do initial testing and proof of concept. This setup is described in the Using SITL with Realflight wiki.
Projects Completed in past years¶
In 2019, students successfully completed these projects:
- AirSim Simulator Support for Ardupilot SITL
- Development of Autonomous Autorotations for Traditional Helicopters
- Further Development of Rover Sailboat Support
- Integration of ArduPilot and VIO tracking camera for GPS-less localization and navigation
- MAVProxy GUI and module development
In 2018, students successfully completed these projects:
- 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