Ways in
Recordings and formats
What TrialONE reads, and what it makes of each kind.
Point trialone diagnose at a file or a folder; the format is recognised from the content, not from the file name.
| Kind | Files | Read as |
|---|---|---|
| ROS 2 | rosbag2 folders, .mcap, .db3 | Every numeric field of every topic becomes a channel. Status topics keep their words. |
| ROS 1 | .bag | The same. |
| Tables | .csv, HDF5 | One column per channel. Semicolons and decimal commas are read as written. |
| Robot learning datasets | LeRobot v2 and v3, with pip install "trialone[lerobot]" | The numeric features per episode, with each joint's action paired with its observation. |
| PX4 | .ulg | Topics and messages. |
| ArduPilot | .BIN, MAVLink .tlog | Messages, parameters and decoded device IDs. |
| CAN | candump logs, Vector .asc | Frames per ID, with error frames decoded. |
| Network captures | .pcap, .pcapng | Transport timing, retransmits and connection events. |
| Crash reports | ARM Cortex-M hard faults, ESP32 panics, gdb backtraces, Linux kernel oops, ROS console logs | The failing frame, the fault register bits and the call chain. |
| A folder of runs | several recordings side by side | Each one on its own, unless the files are parts of one rosbag2 recording. |
Tables
A table with a column called time, timestamp, t, time_s or secs needs no flags. Otherwise:
--time-col: the timestamp column.--group-col: the column that groups rows into operations, for example a cycle or run number.--label-colwith--healthy-label: a label column and the value that means normal, which then defines the healthy reference.
A healthy reference
A reference has to be the same kind of recording with the same channels. If it is not, the report says so at the top instead of assuming anything.
$ trialone diagnose ./today.mcap --healthy ./last-good.mcapFor the live watcher, trialone learn reads recordings the robot already made as its earlier behaviour. They count as earlier, not as healthy: a fault inside them becomes part of the reference. No upload and no model call.
$ trialone learn ./logsWhat cannot be read
An encrypted or unknown file ends with a plain stop that names the one thing needed to go on, never with an invented diagnosis.
Something missing or wrong here? Tell us.