Post-Flight Analysis Software "MavLogAnalyzer"
Small civil drones, like our testbeds "MART",generate a lot of data when they are operated. Not only do they write onboard logfiles, but they are usually equipped with radio links sending live telemetry data to a ground station (e.g., QGroundControl). The operator of such a vehicle may be interested in a post-flight analysis of that data, for example, to find causes of malfunction, or to optimize the parametrization of the propulsion. We developed a software called "MavLogAnalyzer", which can merge several different log formats, and then organize, display and store them for later use.
- MavLink Protocol: parse and analyze radio messages in "MavLink" format, which us used by a variety of autopilots (Pixhawk, APM:Copter, ...)
- Onboard logs: parse and analyze dataflash logs of the APM:Copter firmware, as being used on APM2.6 and Pixhawk autopilots, amongst others
All log sources are merged into the same time line and can be overlayed and analyzed together. To construct a correct time reference, we use several markers such as GPS time, message frequencies and relative offsets. This is an important feature, since different data sources (onboard log vs. radio link) are often not the same, and a correct merging can "fill the gaps".
Automatic Flight Book
Based on all raw data, we automatically compute a flight book, which is obligatory to maintain in some countries (e.g., Germany). Amongst others, the following legally required data is computed:
- ID of the MAV
- date of flight
- total time of flight
- number of takeoffs
- first takeoff
- last landing
- first and last location
- free-text, e.g., for noting incidents
- weather conditions (collection of autopilot sensor data)
The requirement of storing and organizing all flight-related data may arise for least two reasons:
- legal obligation to capture all flights (date, time, operator, number of takeoffs, incidents...)
- thorough analysis or comparison of several flights (e.g., compare performance, autopilot configuration, search for specific system states in all flights)
To cover both use cases, we added a database connection (MySQL) to allow storing and retrieving data from there. All flights can be stored and queried in a very detailed way. For example, it is possible to "show all flights where the altitude was greater than 30m GND for at least 5 seconds, and the horizonal speed was at most 5m/s", or "find all flights where the autopilot had parameterX = 5.0".
Export to MATLAB
We integrated an export function to MATLAB, where the synchronized data from MavLogAnalyzer can be analyzed further.
Download Source Code or Contribute
The sources are available at github: https://github.com/mbeckersys/MavLogAnalyzer