Skip to content
Docs
foxborne.comRequest a pilot

Platforms

Foxborne rebuilds incidents on jet-powered UAS, multirotor drones and tracked or wheeled ground robots from the logs each part already writes. The sources differ by platform, and so does what limits the order of events.

ExplanationMarkdown
On this page7

A vehicle leaves evidence in more than one place: an onboard log, a computer beside it and the ground station that listened to it. Foxborne reads those logs where they already land, puts them on one axis and states how far each timestamp can be trusted. What changes from one platform to the next is which logs exist and what limits the order of events.

Three platform families#

PlatformExample on these pagesThe question it answersWhat it records
Jet-powered UASIllustrative exampleDid the aircraft decide, or did the ground lose it first?The onboard IRIG 106 Chapter 10 recording; the ground telemetry recorder and receiver; radar TSPI and the flight termination system (FTS) console log
Multirotor dronesExample incident INC-0142Did the radio fail, or did the companion computer stop talking?The PX4 ULog from the flight controller; the systemd journal from the companion computer; range control receive records
Ground robotsExample incident INC-0143Why did the robot stop, and why 11.9 s after the last heartbeat?The PX4 ULog with vehicle_imu_status; kernel and service events from the journal; range control receive records

The drone and ground robot examples are incidents in the console's example dataset, and every value quoted from them is an example. The jet example is illustrative: it is worked from published standards, it is not a real event and it is not in the example dataset.

Jet-powered UAS#

Illustrative example Lost link in a 5 g reversal, 110 km from the ground site.

On a test range, the aircraft writes its buses and telemetry to an IRIG 106 Chapter 10 recorder. The range records the flight from the ground. Foxborne reads the recording with its own TMATS setup record, next to radar TSPI, the telemetry receiver log and the FTS console log.

In the illustrative example, the recorder, the ground station and the range all run on IRIG-B, so their clocks agree to microseconds. What limits the order of events is sampling: 1 ms PCM frames, a 20 ms bus schedule and 50 ms radar samples.

Multirotor drones#

INC-0142 Telemetry stopped within a second of the kernel killing a service.

The example dataset's Q4 recon quad pairs a PX4 flight controller with a Linux companion computer and a mesh radio that keeps no log. Four sources cover it: the flight log, the companion journal, the collector's process samples and the ground receive log.

Here the clocks are the limit. The flight log carries ±40 ms and the journal ±6 ms, so two events 39 ms apart on those clocks have no order.

Ground robots#

INC-0143 A radio fell off the USB bus in the obstacle belt, and PX4 held.

Foxborne covers tracked and wheeled ground robots. The example dataset's ground robots are T4 tracked UGVs, skid-steer vehicles running PX4's differential rover.

The flight log adds vehicle_imu_status, which carries the vibration metric, and the journal records the kernel dropping a USB device. The receive log shows when range control stopped hearing the vehicle.

What we need from your vehicle#

A flight log alone is enough to start. Each source you add pins more events to UTC and closes more of the gaps between them.

SourceWhat to sendNeedWhy
PX4 flight log.ulgRequiredThe completed ULog from the flight controller's SD card.
Companion journaljournalctl -o json --since … --until …RecommendedThe systemd journal export covering the flight, with its boot ID.
Ground receive log.jsonlRecommendedWhat range control heard from the vehicle, and when.
Collector samples.jsonlOptionalProcess memory, CPU and restarts, if the collector was installed.

This list is for PX4 vehicles. The illustrative jet example reads a different set, the onboard recording and the range's own records, listed under Sources read. Supported file formats covers every format Foxborne reads.

A clock bound is a distance#

A clock bound says how far an event's time can be off. Multiply it by the vehicle's speed, and it says how far along the track the event can sit.

INC-0142 carries a combined bound of 46 ms: the flight log's ±40 ms plus the journal's ±6 ms. At three speeds, that bound covers:

PlatformSpeedDistance covered in 46 ms
Jet-powered UAS170 m/s7.8 m
Quadcopter12 m/s0.55 m
Ground robot4 m/s0.18 m

On a ground robot, 46 ms is 18 cm of track. At jet speed it is 7.8 m, enough to carry an event across a range boundary or the edge of a terrain shadow.

The evidence inspector does this arithmetic for each event. Its Position block shows From the time bound in meters along the track. That is the vehicle's speed at that moment times the event's bound, with link latency added for a ground receipt.

Next#