LogoLogo
  • Welcome
  • Vehicle Operation
    • Getting started
    • Auterion Suite
      • Dashboard
      • Fleet Management
        • Vehicles
          • Cloud Features
          • Groups
        • Flights
        • Compliance
      • Manufacturer
        • Service Bulletins
      • Administration
      • User Management
      • Simulations
    • Auterion Mission Control
      • Installation
      • First steps
      • UI Breakdown
        • Navigating between the views
        • Fly View
          • Fly View UI Overview
          • Vehicle status indicator
          • Flight mode selector
          • Quick actions sidebar
          • Connection manager
          • Vehicle Dashboard
          • Flight Map
          • Camera View
          • Monitoring the Flight
          • Flying Manually (RC/Joystick)
          • Flying a Mission
        • Plan View
          • Plan UI Overview
          • Plan tools
            • Mission Menu
            • Waypoint Missions
            • Survey Patterns
              • Area Survey
              • Corridor Scan
          • Mission Summary
          • Mission Editor Tab
            • Start Section
            • Mission Section
            • End Section
            • Extras
          • Terrain visualization
          • GeoFence
          • Rally Points
        • Quick Vehicle Menu
          • Pre-Flight Checklist
          • Connectivity
        • Photo Gallery
        • Settings
        • Pilot Login
      • Useful resources
        • Mission Planning
          • Mission Cloud Sync
          • Terrain Following
          • Import Geo-Awareness data or KML overlays
        • Maps and Custom Overlays
          • Using Offline Maps
          • Importing GeoPDF overlays
        • Track GCS as Smart Asset in Suite
        • Live PX4 Log Streaming
        • Monitor Local Flights with ADS-B
        • GPS Denied Workflow
        • Windows Crash Logs Analysis
        • Screen Recordings
    • Remote Controllers
      • Skynav Remote Controller
        • Installing Mission Control
        • Joystick and Button Mapping
        • Using LTE for Online Maps in the Field
        • Advanced Radio Settings
        • Drop Guards and Chest Strap
        • Unit Serial Number
    • Settings & Maintenance
      • Vehicle Setup
      • WiFi Setup
      • Compass Calibration
      • Safety Setup
      • Joystick Setup
      • Vehicle Web UI
      • Software Update
      • Remote ID
        • How Remote ID works
        • Remote ID indicators in AMC
        • Frequently Asked Questions
    • Precise Flight
  • App development
    • Getting Started
      • Development environment Setup
      • Connecting to a device
      • Application Development
    • App Framework
      • Building your First App
      • Apps API
      • Sensor Data
      • Video Streams
      • Photos
      • Hardware Peripherals
      • Persistent Storage
      • MAVLink
      • Native Docker Compose
      • App Parameters
      • Log App Data to Auterion Suite
        • How to log Time Series Data
        • How to log basic Text Output
      • How to store an App's Binary Data on Skynode
      • User Web Interfaces
      • Build Arguments
      • Debugging apps with SSH
      • Debugging Apps with gdb
      • PX4 Messages in ROS 2
      • DDS / ROS2 Configuration
      • Structuring Applications with Multiple Services
    • Auterion SDK
      • Installation
      • Write Your First App
      • SDK API
      • Flight Mode API
        • Flight Mode API
        • Dynamics in Body Frame
        • Dynamics in Local Frame
        • Go-To in Local Frame
      • System State API
      • Peripheral Actuator Control API
      • Camera API
      • Navigation Input API
        • Global Navigation
        • Local Navigation
      • Visual Tracking API
    • Simulation
      • Virtual Skynode
        • Simulation-Gazebo Reference
        • Simulation-AirSim Reference
        • Connecting from other Computers
        • Resetting Virtual Skynode
        • Multiple Virtual Skynodes on single machine
      • Physical Skynode
    • Resources
      • Cross Compilation - Faster Builds
      • Auterion CLI Reference
      • Troubleshooting
      • App Tutorial
      • Skynode Vision Kit S
        • Set up the Vision Kit
        • Install and test a simple vision app
    • Legacy app workflow
      • App Development
      • MAVLink
      • Using the App Template
      • Example Applications
        • Autopilot Telemetry (C++)
        • Autopilot Telemetry (Python)
        • Photo Gallery
  • Hardware Integration
    • Getting started
      • Required Sensors
      • Wiring Skynode to the Vehicle
      • Actuators Setup
      • Sensors Setup
        • Set Orientations
        • Compass Calibration
        • Gyroscope calibration
        • Accelerometer calibration
        • Level horizon calibration
        • Airspeed calibration
      • Bench Test
      • Tuning
      • Creating Airframe Configurations for APX4
    • Skynode
      • Skynode X
      • Skynode ENT/GOV
      • Skynode X Integration and Development Kit
        • Get Skynode ready
        • Power Skynode
        • Register Skynode
        • Connect Skynode to AMC
        • Sensors and Peripherals
        • Next steps
      • Payloads
        • Generic USB Webcams (UVC)
        • Workswell Wiris Pro
        • Trillium HD40-LV
        • NextVision Gimbals (with TRIP2)
        • Sony Alpha a7R IV
        • Phase One iXM-100
        • Gremsy Gimbals
      • Connectivity
        • USB-C Network Connection
        • WiFi
        • LTE Setup
        • SIYI MK15
        • Microhard Data Link
        • Data Link Wiring
        • Silvus Data Link
        • Doodle Labs Data Link
        • Custom Data Link
        • Ethernet Interface Configuration
      • Skynode LED Meanings
      • Troubleshooting
      • Legacy DSM/DSMX Support
      • Peripherals
        • Power Module
        • 12S Power Module
        • Pixhawk Adapter Board
        • Pixhawk Payload Bus
        • Data Link Module
        • PX4 F9P GPS
        • Freefly RTK GPS
        • Airspeed Sensor
        • LIDAR
        • USB camera
        • See3CAM_24CUG
    • Skynode S
      • Datasheet
      • Interfaces
      • Basic Vehicle Integration
      • Add LTE to Skynode S
      • Skynode S LED status indicator
      • Skynode S flight logs
    • AI Node
      • Datasheet
      • Evaluation Kit
        • Power AI Node
        • Wiring AI Node to Skynode
        • Internet sharing with Skynode
        • Activate AI Node on Suite
      • Dimensions and CAD model
      • Interfaces
      • Connectivity
        • USB Network Connection
        • Serial Debug Connection
        • AI Node as Network Bridge
        • Standalone Internet Access
      • Updating AuterionOS
    • Advanced Airframe Integration
      • Custom power setup
      • Wiring without Breakout Boards
      • Gripper Integration
        • Setting up Payload Delivery with Gripper
      • ESC Calibration
      • Camera Calibration
        • Camera Calibration on a Computer
        • Camera Calibration on Skynode
      • Serial Port Configuration
    • Flight controller customization
      • AMC's Advanced Mode
      • Flight Controller Shell
      • Micro XRCE-DDS
    • AuterionOS Customization
      • OEM Tools Installation
      • Adding SSH keys
      • Changing the Root Password
      • Modifying Environment Variables
      • Pre-install Applications
      • Suite Manufacturer Tools
    • AuterionOS System Guide
      • Introduction
      • Flashing PX4 Binary and Vehicle Config
      • Building and Flashing PX4 Firmware
      • SSH Access
      • Filesystem and partitions
      • Environment Variables Reference
      • Types of AuterionOS Images
      • Mavlink Routing and Endpoints
      • Packaging AuterionOS Image
    • Additional Resources
      • Remote ID
        • How Remote ID works
        • Vehicle Serial Number
        • Communication Diagram
        • Remote ID configuration
        • How Auterion tested
      • Auto-Tuning
  • Release Notes
    • APX4
      • APX4 3.2
        • APX4 3.2.1
      • APX4 3.1
        • APX4 3.1.1
        • APX4 3.1.0
      • APX4 3.0
        • APX4 3.0.8
        • APX4 3.0.5
      • APX4 2.7
        • APX4 2.7.37
        • APX4 2.7.25
        • APX4 2.7.20
        • APX4 2.7.12
        • APX4 2.7.7
        • APX4 2.7.6
      • APX4 2.6
        • APX4 2.6.1
      • APX4 2.5
        • APX4 2.5.14
        • APX4 2.5.13
        • APX4 2.5.8
        • APX4 2.5.7
        • APX4 2.5.5
        • APX4 2.5.4
        • APX4 2.5.0
      • APX4 2.4
        • APX4 2.4.2
        • APX4 2.4.1
      • APX4 2.3
        • APX4 2.3.0
      • APX4 2.2
        • APX4 2.2.2
        • APX4 2.2.0
      • APX4 2.1
        • APX4 2.1.1
        • APX4 2.1.0
      • APX4 2.0
        • APX4 2.0.2
        • APX4 2.0.0
    • AuterionOS
      • AOS for AI Node
        • AI Node AOS 1.1.0
        • AI Node AOS 1.0.2
        • AI Node AOS 1.0.0
        • AI Node AOS 0.7.0
        • AI Node AOS 0.6.1
        • AI Node AOS 0.6.0
        • AI Node AOS 0.5.0
        • AI Node AOS 0.4.0
      • AOS for Skynode
        • AOS 3.7
          • AOS 3.7.14
          • AOS 3.7.9
        • AOS 3.6
          • AOS 3.6.14
        • AOS 3.5
          • AOS 3.5.13
        • AOS 3.3
          • AOS 3.3.9
        • AOS 3.2
          • AOS 3.2.9
        • AOS 2.19
          • AOS 2.19.14
        • AOS 2.15
          • AOS 2.15.10
          • AOS 2.15.7
        • AOS 2.12
          • AOS 2.12.8
        • AOS 2.10
          • AOS 2.10.2
        • AOS 2.8
          • AOS 2.8.1
        • AOS 2.7
          • AOS 2.7.15
        • AOS 2.6
          • AOS 2.6.1
        • AOS 2.5
          • AOS 2.5.14
          • AOS 2.5.13
          • AOS 2.5.8
          • AOS 2.5.7
          • AOS 2.5.5
          • AOS 2.5.4
          • AOS 2.5.0
        • AOS 2.4
          • AOS 2.4.1
        • AOS 2.3
          • AOS 2.3.0
        • AOS 2.2
          • AOS 2.2.2
          • AOS 2.2.0
        • AOS 2.1
          • AOS 2.1.1
          • AOS 2.1.0
        • AOS 2.0
          • AOS 2.0.2
          • AOS 2.0.0
    • Auterion Mission Control
      • AMC 1.34
        • AMC 1.34.19
        • AMC 1.34.14
      • AMC 1.33
        • AMC 1.33.13
      • AMC 1.32
        • AMC 1.32.7
      • AMC 1.30
        • AMC 1.30.17
      • AMC 1.29
        • AMC 1.29.7
      • AMC 1.26
        • AMC 1.26.8
      • AMC 1.22
        • AMC 1.22.3
      • AMC 1.19
        • AMC 1.19.5
      • AMC 1.18
        • AMC 1.18.3-1
        • AMC 1.18.3
      • AMC 1.17
        • AMC 1.17.10
        • AMC 1.17.9
      • AMC 1.15
        • AMC 1.15.0
      • AMC 1.14
        • AMC 1.14.6
        • AMC 1.14.0
      • AMC 1.13
      • AMC 1.12
      • AMC 1.11
      • AMC 1.10
        • AMC 1.10.1
        • AMC 1.10.0
      • AMC 1.9
        • AMC 1.9.1
        • AMC 1.9.0
      • AMC 1.8
    • Hardware
      • Skynode Rev 11 (Jan 2022)
Powered by GitBook
On this page
  • Enable logging in the auterion-app.yml file
  • The 'msg-paths' key
  • Selecting the data to log
  • Basic configuration: the 'subscriptions' key
  • Advanced configuration: the 'profiles' key
  • Monitoring and Troubleshooting
  • Key Limitations
  1. App development
  2. App Framework
  3. Log App Data to Auterion Suite

How to log Time Series Data

This guide describes how to configure an AuterionOS app to store time series data in flight logs. It assumes you have the following file structure for your app.

├── auterion-app.yml
├── Dockerfile
├── msgs_ws/
│   └── src/
│       ├── custom_msgs/
│       │   └── msg/
│               └── CustomTopic.msg
│       ├── px4_msgs/
│       │   └── msg/
│               └── VehicleOdometry.msg
│       └── std_msgs/
│           └── msg/
│               └── ColorRGBA.msg
├── README.md
├── ros_ws/
│   └── src/
│       └── fake_visual_odometry/
│           └── src/
│               └── fake_visual_odometry_node.cpp
└── settings.default.env

Enable logging in the auterion-app.yml file

The first step is to add the logging key to the auterion-app.yml file. This should come after the services key.

Three keys can be nested below logging:

  1. msg-paths

  2. subscriptions - used for simple configuration.

  3. profiles - used for advanced configuration.

auterion-api-version: 3
services:
  test-app:
    ...

logging:
  msg-paths:
    ...
  subscriptions:
    ...
  profiles:
    ...

The 'msg-paths' key

The msg-paths key defines one or more file paths to the type definitions of any messages to be logged. This must be specified when using custom message types.

This example app publishes messages over DDS or ROS 2 to log custom app data. It must include paths to the three ROS 2 message packages, as shown below.

logging:
  # Paths to message definitions of logged topics
  msg-paths: [msgs_ws/src/custom_msgs. msgs_ws/src/px4_msgs, msgs_ws/src/std_msgs] 

If a message doesn't contain a timestamp field, the logger will add it.

The message definitions specified in msg-paths can be found under /data/app-config/logging/msgs after the app is installed on AOS.

Selecting the data to log

By default, app data is logged from when the vehicle arms until it disarms. The subscriptions key is used to specify which data is logged.

For apps with more advanced logging requirements, the profiles key gives more flexibility about the conditions in which data is logged.

Basic configuration: the 'subscriptions' key

The subscriptions key specifies a list of messages or topics to be logged. Each subscription entry must contain a key specifying the topic name and either

  • a simple string specifying the message type, or

  • a detailed object with additional properties, such as logging rates.

This example app will have some simple and some detailed subscriptions.

logging:
  subscriptions:
    # Simple subscriptions
    /custom_topic: custom_msgs/CustomTopic
    /fmu/in/vehicle_visual_odometry: px4_msgs/VehicleOdometry
    # Detailed subscription
    /test_color:
      type: std_msgs/ColorRGBA  # the message type
      max_rate_hz: 2            # log this topic at 2Hz or less

Advanced configuration: the 'profiles' key

The profiles key allows for the customisation of which data is logged and under which conditions. Recall that the default behaviour is to log only while armed.

Two profiles can be configured:

  1. default overrides or extends the default logging behaviour, and

  2. verbose allows for logging additional data and/or logging in different conditions.

The available run conditions are: always, never, while-armed and while-disarmed.

When the run conditions are met, each profile generates its own ULog file in a defined directory, with its own logging rate and set of logged messages.

The default profile is streamed to Auterion Suite.

The logging rate of this profile must be kept low, in the order of a few KB/s.

Profile
default
verbose

Default condition

while-armed

never

Log directory

/data/log/flight-stack

/data/log/flight-stack-verbose

Streamed to Suite

Yes

No

Constrained log rate

Yes

No

The logging profiles are customised with a list of different conditions under the when key. Each entry in this list must have two keys:

  1. condition: specifying when that particular configuration applies, and

Profile extensions will be placed in /data/app-config/logging/profiles.

Examples of different logging profiles are given below.

Example 1: Add a verbose log profile

The verbose profile is enabled and set to always log a custom topic at 1Hz.

logging:
  profiles:
    verbose:
      when:
        - condition: 'always'
          subscriptions:
            # Subscriptions specific to the 'always' condition.
            /custom_topic:
              type: custom_msgs/CustomTopic
              max_rate_hz: 1

Example 2: Add a verbose profile with multiple conditions

The verbose profile is enabled and set to always log a custom topic at 1Hz while disarmed and 20Hz while armed. It additionally logs a visual odometry topic, but only while armed.

logging:
  profiles:
    verbose:
      when:
        - condition: 'while-disarmed'
          subscriptions:
            # Subscriptions specific to the 'while-disarmed' condition.
            /custom_topic:
              type: custom_msgs/CustomTopic
              max_rate_hz: 1
        - condition: 'while-armed'
          subscriptions:
            # Subscriptions specific to the 'while-armed' condition.
            /custom_topic:
              type: custom_msgs/CustomTopic
              max_rate_hz: 20
            /fmu/in/vehicle_visual_odometry: px4_msgs/VehicleOdometry

Example 3: Override the default log profile

In the basic configuration example above, the custom and visual odometry topics were logged at full rate while armed.

In this example, that default profile is overridden and set to additionally log the custom and visual odometry messages at 1Hz while disarmed.

logging:
  profiles:
    verbose:
      when:
        # The original default profile
        - condition: 'while-armed'
          subscriptions:
            /custom_topic: custom_msgs/CustomTopic
            /fmu/in/vehicle_visual_odometry: px4_msgs/VehicleOdometry
            /test_color:
              type: std_msgs/ColorRGBA
              max_rate_hz: 2
        # Extend the profile to log while disarmed
        - condition: 'while-disarmed'
          subscriptions:
            /custom_topic:
              type: custom_msgs/CustomTopic
              max_rate_hz: 1
            /fmu/in/vehicle_visual_odometry:
              type: px4_msgs/VehicleOdometry
              max_rate_hz: 1
            /custom_topic:
              type: custom_msgs/CustomTopic
              max_rate_hz: 2

Monitoring and Troubleshooting

To monitor the logging activity and troubleshoot potential issues, use:

journalctl -u data-logger -b -f

If the message is logged successfully, running journalctl -u data-logger -b -f should contain: [dds_source.cpp:111] [dds] Subscriber matched update.

Key Limitations

  • Maximum Topic Size: 65536 bytes. Ensure that messages do not exceed this size to prevent logging failures.

  • No Support for Dynamically-Sized Messages: Static message definitions are required due to current logging limitations.

PreviousLog App Data to Auterion SuiteNextHow to log basic Text Output

Last updated 1 month ago

subscriptions: the list of messages to be logged in that condition. The contents of this key have the same format as described in the above.

basic configuration