GSOC 2015 Ideas List

Martin Luessi edited this page Feb 20, 2015 · 8 revisions

Important: Student Expectations

Prerequisite for all students: Experience flying small unmanned vehicles is not required, but an interest in learning is preferred. Ideally, the student should be familiar with Tau Labs and own a supported flight controller (refer to for a list of supported flight controllers). If the student does not already own a controller, Tau Labs will lend a one to the student.

###Project: Flight log visualization using Javascript###

Brief Explanation: Implement a flight log visualization tool using Javascript that can be used to visualize and analyze flight log files in a web browser. An example of a visualization is overlaying the flight path on a map with numerical displays of various flight parameters (e.g., air speed, altitude, etc.).
Knowledge Required: Javascript, C++ (to extend the UAVObject generator to generate Javascript code).

###Project: Real time telemetry visualization on Google Chrome packaged app### Brief Explanation: Implement an HTML5/Javacript application that visualizes flight parameters in real time - map, attitude, other parameters - by connecting to the telemetry feed which is provided either through a network socket, or through a radio modem (USB device).
Knowledge required: Javascript/HTML5, Chrome USB/Serial APIs, SVG, 3D javascript graphics libraries.

###Project: Ground control station mapping plugin### Brief Explanation: implement a more robust mapping plugin on the Ground Control Station that embeds Google Maps and other sources.
Knowledge required: C++, the QT framework

###Project: Ground Control Station flight planning plugin### Brief explanation: implement a plugin on the Ground Control Station that lets the operator entirely plan a flight, including waypoints and patterns, then follows execution of the flight - either in manual or autonomous mode. Allow placing points of interest along path to control camera pointing.
Knowledge required: C++, the QT Framework, C embedded on STM32 targets

###Project: Ground Control Station Android App### Brief Explanation: Work on improving the android application. Ideas for improvements: implement path planner so that one can draw paths using freehand drawing, add magnetometer calibration, extend configuration features.
Knowledge required: Android java development.

###Project: Follow me usability### Brief Explanation: Work on improving the usability of the follow me feature where UAV follows and points camera at android phone. Ideas for improvements: Allow configuration and enabling both camera tracking and position tracking within android application. Testing and improve filtering of relative position within firmware. Improve zeroing off position error between phone and UAV.
Knowledge required: Android java development. C embedded software development.

###Project: Support for generic payload messages over telemetry, with proof of concept### Brief Explanation: Extend/configure existing flight and ground code to enable channeling data coming from payloads connected to a Tau Labs flight controller through telemetry, and make the data stream available through a network socket on the ground station. Implement the required configuration code/plugin on the Ground Control Station. Deliver a simple proof of concept using hardware lent by Tau Labs.
Knowledge required: Embedded C on STM32 targets, C++, the QT Framework.

###Project: Full MAVLINK support for Tau Labs### Brief Explanation: Implement full support for the MAVLINK protocol ( as an optional module in Tau Labs. This will allow Tau Labs vehicles to be configured and controlled by any ground control software that supports MAVLINK, such as, the Tower Android Application.
Knowledge required: C embedded on STM32 targets, Android java development

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.