| Crates.io | uvt-plot |
| lib.rs | uvt-plot |
| version | 0.1.1 |
| created_at | 2025-08-28 23:24:39.973633+00 |
| updated_at | 2025-08-28 23:24:39.973633+00 |
| description | Utilities for plotting and displaying UVT data. |
| homepage | |
| repository | https://github.com/IamPhytan/uvt-rs |
| max_upload_size | |
| id | 1814859 |
| size | 169,281 |

This crate provides utilities for showing the content of an Uncrewed Vehicle Trajectory (UVT) file, by plotting a bird-eye view of the recorded trajectory. The UVT format is an extension of the LTR file format introduced in Kilometer-Scale Autonomous Navigation in Subarctic Forests: Challenges and Lessons Learned.
A UVT file contains:
VTK format.An example UVT file is available on Zenodo.
To use uvt-plot as a CLI tool, you can install this crate with:
cargo install uvt-plot
You can run uvt-plot from the terminal:
$ uvt-plot --help
Utilities for plotting and displaying UVT data.
Usage: uvt-plot [OPTIONS] --input-file <INPUT_FILE>
Options:
-i, --input-file <INPUT_FILE> Input file path
-m, --mode <MODE> File mode [default: uvt] [possible values: uvt, rosbag, mcap]
--map-topic <MAP_TOPIC> Map topic [default: /map]
--traj-topic <TRAJ_TOPIC> Trajectory topic [default: /odom]
-h, --help Print help
-V, --version Print version
uvt-plot can be used with .uvt files and with rosbags, both with ROS (.bag) and with ROS 2 (.mcap):
# With a UVT file
uvt-plot -- --input-file example.uvt
# With a ROS bag file
uvt-plot -- --input-file example.bag --m rosbag --map-topic /my-map-topic --traj-topic /my-traj-topic
# With a ROS MCAP file
uvt-plot -- --input-file example.mcap --m mcap --map-topic /my-map-topic --traj-topic /my-traj-topic
To use uvt-plot as a library, simply add the crate name to your Cargo.toml file:
[dependencies]
uvt-plot = "0.1"
uvt-plot provides a function to plot the trajectory in a UVT file:
use std::io;
use uvt;
use uvt_plot;
fn main() -> Result<(), io::Error> {
// Open a UVT file
let my_uvt = uvt::Uvt::read_file("example.uvt")?;
// Plot trajectory
uvt_plot::plot_trajectory(my_uvt);
Ok(())
}
If you use the code or data in an academic context, please cite the following work:
@article{Baril2022,
title = {Kilometer-Scale Autonomous Navigation in Subarctic Forests: Challenges and Lessons Learned},
volume = {2},
ISSN = {2771-3989},
url = {http://dx.doi.org/10.55417/fr.2022050},
DOI = {10.55417/fr.2022050},
journal = {Field Robotics},
publisher = {Institute of Electrical and Electronics Engineers (IEEE)},
author = {Baril, Dominic and Desch\^enes, Simon-Pierre and Gamache, Olivier and Vaidis, Maxime and LaRocque, Damien and Laconte, Johann and Kubelka, Vladimír and Giguère, Philippe and Pomerleau, Fran\c{c}ois},
year = {2022},
month = jul,
pages = {1628–1660}
}
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.