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.
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#
| Platform | Example on these pages | The question it answers | What it records |
|---|---|---|---|
| Jet-powered UAS | Illustrative example | Did 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 drones | Example incident INC-0142 | Did 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 robots | Example incident INC-0143 | Why 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.
| Source | What to send | Need | Why |
|---|---|---|---|
| PX4 flight log | .ulg | Required | The completed ULog from the flight controller's SD card. |
| Companion journal | journalctl -o json --since … --until … | Recommended | The systemd journal export covering the flight, with its boot ID. |
| Ground receive log | .jsonl | Recommended | What range control heard from the vehicle, and when. |
| Collector samples | .jsonl | Optional | Process 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:
| Platform | Speed | Distance covered in 46 ms |
|---|---|---|
| Jet-powered UAS | 170 m/s | 7.8 m |
| Quadcopter | 12 m/s | 0.55 m |
| Ground robot | 4 m/s | 0.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.