Skip to main content
Skip table of contents

Generating a log of the Vision-RTK 2

Introduction

We use our custom data format '.fpl' for our internal recordings, allowing us to encrypt internal information selectively and provide ROS messages directly to the user. Alongside this file format, we provide tools to extract ROS bags and other data from it.

The recording can be performed at the following three locations (targets):

  • Internal disk built into the sensor

  • External disk connected to USB-C port. The minimum write speed must be 100 MB/s. This method is not recommended as it can degrade sensor performance.

  • Download the log file in real-time using standard HTTP over Ethernet. This is the preferred method but needs a stable and reliable Ethernet connection and a client (e.g., web browser, curl).

Recording via ‘Download’ is available since 2.85.3.

Although the external disk method supports USB sticks and HDD, we recommend using an SSD, as the writing speeds advertised in some of these commercial devices differ from the actual speeds, creating gaps in the recorded data stream.

There are four logging profiles ("levels"):

  • Maximal recording: Largest files, records all data. This contains all data, which we can use to fully reprocess the trajectory. The data rate is approx. 4.2 MiB/s.

  • Medium recording: Larger files, but does not record all data (for example, camera image is only recorded at 2 Hz). We can still do most of the reprocessing. The data rate is approx. 0.8 MiB/s.

  • Minimal recording: Smallest files, all important data except for the camera image is recorded. Reprocessing is possible. The data rate is approx. 0.4 MiB/s.

  • Camera calibration: This records the data necessary for camera calibration.

  • Debug logs: System log used to identify issues when a recording is unavailable.

Some differences to the old recording (prior to 2.102.2):

  • The Minimal recording now includes all data except the camera image data.

Some differences to the old recording (prior to 2.85.3):

  • The Minimal recording now includes the raw GNSS data.

  • The Medium recording now includes throttled camera images (~2 Hz).

  • MinimalMedium, and Maximum now include the output messages, such as FP_A-ODOMETRY (all configured/enabled messages).

  • The recording now stops when the disk is full. There is no automatic rollover or rotation of older data.

  • There is now a (Linux command-line) utility for customers to extract a ROS data from the ‘.fpl’ file. See fpltool for more information. For a list of available topics, please refer to the table at the bottom of this page.


Logging interfaces

There are three ways of starting and stopping the recording process:

  1. Using the Web-Interface

  2. Using the respective API commands

  3. Using the record.py to log via Download, see example below. This feature is part of the overall Fixposition SDK.


Log to disk

Recording to internal disk

recording-internal.webp

Log to network (download, command-line)

Network (download) using recording script (see record.py)

recording_script.gif

Network (download) recording CLI.

recording_network_cli.gif

Log to network (download, using browser)

The success of this heavily depends on the browser, the operating system and their configuration.

Network (download) recording using web browser

recording_network_browser.gif

Web interface alerts

There are a couple of alerts that can show:

Recording alerts

image-20240325-122611.png
  1. This is extra debugging information that can be enabled via Advanced Options.

  2. This shows if there are any errors detected during logging.

  3. This goes away once time is synced (compare display in System -> Info -> Time synchronization)

  4. When logging location is network, some profiles may not be available on certain network connections.

  5. This shows when network logging is selected but the user is not connected via Ethernet. While some profiles are allowed over Wi-Fi, it is clearly not recommended to do so.

  6. This only shows when the external disk is selected.

  7. The selected disk is (too) full and active logging automatically stops and no further logging can be started until some disk space has been freed up.


Available topics in the .fpl recording

This list is not limited to just these topics and can be expanded at any point.

ROS topic

Message type

Content

/camera/lowres/image

sensor_msgs/Image

Camera feed from the sensor.

/fusion_optim/keyframes

fusion_optim_msgs/Keyframe

Selected image frames for post-processing (reserved for future use).

/fusion_optim/odometry

nav_msgs/Odometry

Internal odometry from the Fusion engine in the POI frame using ECEF coordinates. It will operate at a different frequency than the selected I/O configuration.

/fusion_optim/ws_factor

fixposition_msgs/WheelSpeedFactors

Estimated wheelspeed scale factor for each configured external sensor.

/gnss[1,2]/raw

fixposition_msgs/RawGnss

Raw GNSS[1,2] measurements.

/gnss[1,2]/status

fixposition_msgs/GnssStatus

Status of the GNSS[1,2] receiver.

/imu/data

sensor_msgs/Imu

Raw IMU measurements.

/imu/temp

sensor_msgs/Temperature

Reported IMU temperature.

/ntrip/info

fixposition_msgs/NtripInfo

Status of the NTRIP client.

/ntrip/latency

fixposition_msgs/GnssLatency

Latency in the connection to the NTRIP client.

/ntrip/raw

fixposition_msgs/RawGnss

Raw RTCM3/SPARTN messages received from the NTRIP client.

/tf

tf2_msgs/TFMessage

Active transformations between relevant reference frames.

/tf_static

tf2_msgs/TFMessage

Static transformations between relevant reference frames.

/user_io/out/enu_odometry

nav_msgs/Odometry

Odometry from the Fusion engine in the POI frame using ENU coordinates. It will operate at the selected I/O frequency.

/user_io/out/poi_geodetic

fixposition_msgs/PoseTwistWithVarStamped

Odometry from the Fusion engine in the POI frame using LLH coordinates. It will operate at the selected I/O frequency.

/user_io/out/poi_odometry

nav_msgs/Odometry

Odometry from the Fusion engine in the POI frame using ECEF coordinates. It will operate at the selected I/O frequency.

/user_io/out/poi_smooth_odometry

nav_msgs/Odometry

Smoothed-out odometry from the Fusion engine in the POI frame using ECEF coordinates. It will operate at the selected I/O frequency.

/user_io/status

fixposition_msgs/UserIoStatus

Status of the sensor’s I/O.

/userio/raw

std_msgs/UInt8MultiArray

Output from the configured I/O messages.

/wheels/data

fixposition_msgs/WheelSpeedArray

Received wheelspeed messages.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.