FlightPlot is a user and hacker-friendly tool for analyzing flight logs.
Supported log formats:
- PX4 autopilot log (
.px4loggenerated by sdlog2)
- APM binary logs (
.binfiles stored on SD card) (added in v.0.2.6)
- ULog (
.ulgfiles, supported by new PX4 logger)
- Support for
mavlinklogs coming (already implemented in separate branch, needs some cleanup and testing)
To open a log just drop file to FlightPlot window or use the toolbar button Open Log or menu item File→Open Log…. APM and PX4 log formats are almost compatible, FlightPlot will autodetect format and handle it as needed.
FlightPlot's plot area can contain multiple graphs. To make plotting more flexible, raw data from the log can be processed before plotting. Processors can filter or combine various data, e.g. calculate ground speed as
speed = sqrt(GPS.VelN^2 + GPS.VelE^2). For now, you can choose one of the existing processors. Future versions will add an interface for custom processors.
To add a processor click the Add button in Plot section and select the title and type of processor. (See below for descriptions of currently available processors). Each processor has some parameters, e.g. Fields to select fields to display and Scale to scale output.
A list of available fields can be opened by clicking the Field List button on the toolbar. Processor for selected fields can be added quickly with Add button.
The current set of plots with their parameters can be saved to a preset. To add a preset just write a name for it into the Preset combo box and press Enter. When changing a preset, it's name in the combo box becomes gray. Select the combo box and press Enter again to save your changes.
Presets can be imported and exported using the menu item File→Import Preset…/File→Export Preset…. Preset files contain data in JSON format and can be edited by hand.
Note that presets are independent from source files, i.e. if you open another file, all presets and current set of plots will remain.
Interesting parts of the plot can be zoomed in by dragging a rectangle from top-left to bottom-right using the mouse. Drawing a rectangle in another direction will reset the zoom to fit all data. The mouse wheel can be also used for zooming.
The following processors are currently available:
- Simple - Simply display the data, can accept multiple fields, scale and shift are common for all displayed fields, data can be filtered with LPF (set cut-off frequency in LPF parameter, 0 means no filtering) and delayed on specified interval.
- Abs - Get absolute value of vector with components listed in Fields parameter:
output = sqrt(field1^2 + field2^2 + …)
- ATan2 - Get
atan(y, x), can be used to extract direction from components of vector, e.g. velocity
- Battery - Battery charge estimator
- Derivative - Take derivative for specified data.
- EulerFromQuaternion - Takes Quaternion data (EST0.s0 .. EST0.s3) and returns roll, pitch and yaw.
- Expression - Resolves the arithmetic expression given. eg. output = field1 + sin(field2)^2. Built in functions: http://www.objecthunter.net/exp4j/#Built-in_functions
- GlobalPositionProjection - project latitude/longitude to local frame, reference point can be specified else the first point used as reference
- Integral - Displays the integral of the specified data.
- LandDetector -
- NEDFromBodyProjection - project any vector from body frame to NED or back using attitude estimate
- PosPIDControlSimulator - Simulate single loop PID controller
- PosRatePIDControlSimulator - Simulate 2-loops PID controller, may be used for attitude controller tuning
- PositionEstimator - Complementary position estimator similar to inav_position_estimator in PX4
- PositionEstimatorKF - Experimental position estimator based on Kalman filter
FlightPlot lets you export your flight as tracks in the following formats:
- Google Earth (KML)
Use File → Export Track…
Split track by flight mode
Outcome depends on the export format:
- KML: Splits track by using multiple placemarks with different color for each flight mode: auto: red, stabilized: blue, manual / no mode: yellow
- GPX: Splits track in multiple track segments.
- Specify number of samples per second to export
- Specify the time range to export data from
Latest release binaries:
Arch Linux (directly of master): from java-flightplot-git:
yaourt -Sy java-flightplot-git
Source Code : https://github.com/DrTon/FlightPlot