Get started

Quickstart

From an approved account to your first issue.

You need an approved TrialONE account, Python 3.10 or newer, and one recording of a robot. Linux, Windows and macOS all work. On the robot itself that includes NVIDIA Jetson and Raspberry Pi boards, as long as their system has Python 3.10.

1. Request access

TrialONE is available by request, and a founder approves every team by hand. Request access with the email you will sign in with. You can sign in with Google or GitHub before the approval arrives; the app opens as soon as it does.

2. Install the command line tool

Terminal
$ pip install trialone

For a microcontroller on a serial port (Arduino, ESP32), install the serial extra: pip install "trialone[serial]".

3. Sign in on this machine

Terminal
$ trialone login

It shows a one-time code and opens trialone.dev/cli-login when you press Enter. Enter the code there while you are signed in to the app and approve it. On a robot over SSH, open that page on your laptop instead.

The terminal receives its own key, checked before it is saved, and trialone whoami shows which account it is connected to. Each machine gets its own key: revoking one under Settings, CLI keys leaves the others working. Scripts can pass a key from there directly: trialone login <key>.

4. Diagnose a recording

Terminal
$ trialone diagnose ./recording.mcap

The report prints in the terminal and is written to output/. The run is also posted to your account, and the terminal prints its link; --no-push keeps one run local. Exit code 0 means the recording was read, with or without findings. Exit code 2 means it could not be read, so nothing in the output is a statement about the machine.

Two flags change the answer the most:

  • --healthy <recording>: another recording of the same robot that you know ran well. Without one, TrialONE can only compare a recording with itself, and a fault that lasts the whole recording then looks normal.
  • --project <folder>: your robot's source tree. Findings then point to a file and a line instead of a topic name, and the parameter, launch and URDF files are found by their content.
Terminal
$ trialone diagnose ./today.mcap --healthy ./last-good.mcap --project ~/ros2_ws/src

5. Keep it running on the robot

On the robot, the watcher attaches to the running ROS 2 graph and reports what changes. On Linux it installs as a user service that survives a closed terminal and a reboot:

Terminal
$ trialone install-service --install

Next steps

Something missing or wrong here? Tell us.