Datasets are valuable for both the development and testing of software and algorithms[1]. We are making a series of datasets available to be used freely. There are 8 simulated land-vehicle datasets and 7 experimental small Unmanned Aerial Vehicle (UAV) datasets.

Simulated Land Vehicle Datasets

Each of the datasets contain the following fields:

  • Reference Position: PosNorth (m), PosEast (m), PosDown (m)
  • Reference Velocity: VelNorth (m/s), VelEast (m/s), VelDown (m/s)
  • Reference Euler Angles: AngleHeading (rad), AnglePitch (rad), AngleRoll (rad)
  • Accelerometer: AccelX (m/s^2), AccelY (m/s^2), AccelZ (m/s^2)
  • Gyroscope: AngleRateX (rad/s), AngleRateY (rad/s), AngleRateZ (rad/s)
  • Magnetometer: MagFieldX (G), MagFieldY (G), MagFieldZ (G)
  • GPS Velocity: GNSSVelNorth (m/s), GNSSVelEast (m/s), GNSSVelDown (m/s)
  • GPS Position: GNSSPosNorth (m), GNSSPosEast (m), GNSSPosDown (m)
  • Magnetic Heading: CompassAngleHeading (rad)

A time index is included. The data is sampled at 10 Hz.

Small UAV Dataset

Each of the small UAV datasets contain the following fields:

  • Reference Position: PosLat (deg), PosLon (deg), PosAlt (m)
  • Reference Euler Angles: AngleHeading (rad), AnglePitch (rad), AngleRoll (rad)
  • Accelerometer: AccelX (m/s^2), AccelY (m/s^2), AccelZ (m/s^2),
  • Gyroscope: AngleRateX (rad/s), AngleRateY (rad/s), AngleRateZ (rad/s),
  • Magnetometer: MagFieldX (G), MagFieldY (G), MagFieldZ (G)
  • GNSS Position: GNSSPosLat (deg), GNSSPosLon (deg), GNSSPosAlt (m),
  • GNSS Velocity: GNSSVelNorth (m/s), GNSSVelEast (m/s), GNSSVelDown (m/s),
  • Pitot Probe: PitotAirSpeed (m/s)
  • Barometric Altimeter: BaroAlt (m)
  • Autopilot Mode: ModeAutopilot (1:human 2:auto),
  • Control Commands: InputThrottle (0-1), InputElevator (0-1), InputRudder (0-1), InputAileronLeft (0-1), InputAileronRight (0-1)

A time index is included. The data is sampled at 50 Hz.

Accessing Datasets

The datasets are accessible through a Python package named onavdata. Instructions for installing onavdata and accessing the datasets are given next.

Installation

Installation is available using the command line pip utility.

~$ pip install --upgrade onavdata

Quick Start

>>> import onavdata
>>> onavdata.print_shortnames()
	 2011 UMN-UAV GPSFASER1
	 SIM-PERFECT-CAR NORTH VARY-SPEED FIXED-HEADING

Further information about each dataset can be obtained using the description keyword. For example:

>>> onavdata.print_shortnames(description=True)
	 2011 UMN-UAV GPSFASER1
2014-09-09 UofMN Conservancy 7 UAV Flights
Testing student controllers using standard roll/pitch doublets.

    SIM-PERFECT-CAR NORTH VARY-SPEED FIXED-HEADING
GNSS Applications & Methods - Chap. 7 - Case Study 2 - TRAJECTORY D 
(no errors added) Automobile traveling north on perfectly level surface.
Flat and non-rotating Earth assumptions are simulated. No measurement
errors are simulated (i.e. sensor measurements are perfect).
Vehicle is traveling with a sinusoidally-varying speed and a fixed heading.

Load Data

By default, the data is returned as a Pandas DataFrame.

>>> import onavdata
>>> df = onavdata.get_data('2012 UMN-UAV GPSFASER1')
>>> df.head()                                                          
	                   AccelX (m/s^2)           ...             InputAileronRight (0-1)
	TimeFromStart (s)                           ...                                    
	0.00                     1.176502           ...                              0.5516
	0.02                     1.078460           ...                              0.5516
	0.04                     1.143822           ...                              0.5516
	0.06                     1.176502           ...                              0.5516
	0.08                     1.209183           ...                              0.5516

Note that if desired, it is easy to access the same data as Numpy array via the Pandas DataFrame.

>>> time_sec_array = df.index.values.copy()
>>> data_array = df.values.copy()
>>> columns_hdr = df.columns.tolist()

Work with Data

At this point the data is readily available for analysis, design, or simply visualization. For example, using the Matplotlib module we can quickly plot the Euler angles from this flight.

>>> from matplotlib import pyplot as plt
>>> df[['AngleHeading (rad)', 'AnglePitch (rad)', 'AngleRoll (rad)']].plot(subplots=True)
>>> plt.show()

https://organicnavigation.comhttps://organicnavigation.com/content/images/2019/01/example_plot-2012-UMN-UAV-GPSFASER1.png

Project Repository

The onavdata project repository is hosted here: https://gitlab.com/onav/onavdata


  1. Read more about the motivation in this article: Reference Data Sets ↩︎