Search Data#

This section illustrates how to search ULog data using RoboQL, Roboto’s query language. RoboQL enables filtering ULog files based on metadata, tags, and statistics derived from topic data.

For the examples below, we uploaded about 1000 publicly available PX4 ULog files into an example Roboto account. The data includes logs from various vehicle types such as multirotors, fixed-wing aircraft, and VTOLs.

Query with metadata and tags#

In the previous section, we demonstrated how to automatically tag ULog files with error messages from console logs. During ingestion, metadata such as hardware version (e.g., ver_hw=PX4_FMU_V5) and system name (e.g., sys_name=PX4) is also extracted from ULog files.

Using RoboQL, you can query files based on metadata and tags. To highlight this, we will locate all flights with the hardware type HOLYBRO_KAKUTEH7 that encountered an error in the commander module:

  1. First, we navigate to the Search page in Roboto.

  2. We select Files as the query target from the left side of the search bar, and then select the RoboQL toggle on the right side:

    RoboQL search interface
  3. We can then enter the following query in the search box:

    metadata.ver_hw = "HOLYBRO_KAKUTEH7" AND tags CONTAINS "ERROR_commander"
    
  4. Review the query results:

    Query results

Query with topic data#

In addition to metadata and tags, RoboQL allows you to query ULog files based on statistics derived from topic data. For example, you can search for flights within a specific battery voltage range or at a particular flight altitude.

By default, Roboto calculates the following statistics for each message path in the topic: min, max, mean, and median. For boolean fields within message paths, Roboto also calculates true_count (the number of true values) and false_count (the number of false values).

  1. For example, to search for all flights in 2024 where the remote control (RC) signal was lost and the vehicle flew above 250 meters, we can use the following query:

    topics[0].msgpaths[vehicle_status.rc_signal_lost].true_count > 0 AND
    topics[1].msgpaths[vehicle_air_data.baro_alt_meter].max > 250 AND
    created > "2024-01-01"
    
  2. Review the query results:

    Query results