Afterflight: A browser-based system for analysis and annotation of video and sensor data from UAVs.

Several months ago I started working on a system called Afterflight to organize and browse my tlogs and dataflash logs, sync them with video, and view them along with a map GPS display. It still has a long way to go, but there is a fair amount of working functionality so I figured I'd get it out there for comment, warts and all. I would love to see it flourish as a collaborative project with lots of committers, see it get merged into another project, or whatever is most useful for the community. If anyone is interested in providing funding for it (or hiring me!) I'd love to hear that, as well, since I am a "starving PhD student". Alternatively there is a donate link if you click "about" in the software.

The source code has been available under the Apache License at http://afterflight.googlecode.com since I first started work on the project. I have an example server running at http://afterflight.volcanocopter.com

If you want a quick demonstration of what it can do, click on the first log entry, which will take you here . Press play on the video and you should see the map, graphs, and timeline animate.

Technology

Here's how it works at the moment:

  • Very slowly. Please be patient, the index page in particular is large and none of the code has been optimized. It may take up to a minute to load. I'm confident I can fix that with a little work. Major code cleanup on the way soon!
  • Python scripts read in your .log or .tlog. PyMavlink is used to parse tlogs. The scripts use the Django object relational mapper to put the data into a Postgresql database. It should work with most other database systems as well (but not MySQL because MySQL can't handle high resolution timestamps.
  • A Django web application serves up the data
  • The web interface uses a bunch of javascript widgets for displaying timelines, zoomable graphs, slippy maps, and video. Everything is zoomable but the controls aren't unified yet -- e.g. you click and drag to zoom on the graphs but you use the scroll wheel to zoom the timeline.
  • I'm just starting to add features that allow the user, through the web interface, to add extra data and re-sync the video with the logs

Improvements I'd like to make in the future:

  • Don't rely on youtube for video display; allow several web services or local video hosting
  • Add automatic detection of events (takeoff, landing, motor failure, collision, wind gust etc) in both logs and in video. I have some ideas on how to detect things like takeoff and landing in the video. This will allow Afterflight, given a bunch of logs and a bunch of videos, the ability to match the right logs with the right videos and sync them in time.
  • Add display of flight analytics calculated from the data. That includes things like top speed, but also derived values such as efficiencies, estimated lift to drag ratio, etc. The database already records different vehicles, batteries, etc., but those models need to be expanded.
  • Allow login (locally created, or Google, Facebook etc.) and have the server designed to handle data uploads from lots of people efficiently. Should be fairly easy with Django-socialauth. Log parsing to the database is fairly slow right now because I haven't optimized the code, so this needs to happen before I allow uploads.
  • Replace all of the javascript widgets with a unified system based on the D3 javascript library.

Similar projects

I'm not the only one who had realized the power of the browser as a component of an Unmanned Aerial System. These are the other browser-based projects I'm aware of:

Droneshare

  • www.droneshare.com
  • Many similar capabilities to Afterflight. Unlike Afterflight, user registration and uploading is already working, and the site is snappy, with no laggy loading. However, it lacks many of the features that Afterflight has, including integrated video and interactive ajax plotting of all log data.
  • Not open source, but creator says that he intends to open source it in the future. EDIT: Now open source (yay!), see https://github.com/geeksville/droneshare
  • Creator has expressed interest in collaborating with Afterflight and possibly merging the two projects.

Mavelous

DroneOS

  • www.droneos.com
  • Appears to be vaporware. I signed up to "beta test" 6 months ago and have not been contacted, nor has there been any change to the website.
  • No indication that it will be open source.

DroneDeploy

 

Hope you find this useful!

Cheers,

Aaron (foobarbecue)

Views: 1125

Comment by Euan Ramsay on May 23, 2013 at 10:28pm
Browser based analysis Strava style would be really cool, including automatic ability to plug APM into USB, and it detects and downloads any unlisted logs (again, Strava/garmin plugins style).

MP log analysis is a bit clunky for me, because a) it's PC only. B) it's only installed on my field net book. C) its not as Intuiative as it could be. Would be good to come home, plug it into the 27" mac and view the stats there in comfort.
Comment by Nikos Gerarchakis on May 24, 2013 at 12:19am

Excellent  Work  Aaron .


Moderator
Comment by Gary Mortimer on May 24, 2013 at 2:11am

Post production is the missing link. Flying UA is really simple these days getting the value out of the data is hard.

Comment by Stefano Santucci on May 24, 2013 at 12:17pm

Excellent, if I can give you some suggestion probably should be useful have some analysis algorithm to provide warning about structural multicopter parameter as "need to increase dumping", "check engine or structural  symmetry"  (es. if cw motors works constantly ad different power o ccw motors), "check pid" for too much delay/difference from stick rc receiver  and attitude) and so on.

Comment by W. Joe Taylor on May 24, 2013 at 3:27pm

Aaron,

Thanks for the great work and links.  Very useful stuff, if ever I can get time to look at it.

Joe

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

Groups

Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service