uvt-viz3d 0.1.1

Utilities for visualizing UVT data in 3D
Documentation

uvt-viz3d

On crates.io On docs.rs

This crate provides utilities to visualize the content of an Uncrewed Vehicle Trajectory (UVT) file in 3D, with rerun. 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:

  • a LiDAR map of the environment, stored in the VTK format.
  • A trajectory recorded by an uncrewed vehicle.

An example UVT file is available on Zenodo.

Usage

Since uvt-viz3d relies on rerun, you might need to install Rerun Viewer. Installations infos are available here

CLI tool

To use uvt-viz3d as a CLI tool, you can install this crate with:

cargo install uvt-viz3d

You can run uvt-viz3d from the terminal:

$ uvt-viz3d --help
Utilities for visualizing UVT data in 3D

Usage: uvt-viz3d [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-viz3d can be used with .uvt files and with rosbags, both with ROS (.bag) and with ROS 2 (.mcap):

# With a UVT file
uvt-viz3d -- --input-file example.uvt

# With a ROS bag file
uvt-viz3d -- --input-file example.bag --m rosbag --map-topic /my-map-topic --traj-topic /my-traj-topic

# With a ROS MCAP file
uvt-viz3d -- --input-file example.mcap --m mcap --map-topic /my-map-topic --traj-topic /my-traj-topic

Library

To use uvt-viz3d as a library, simply add the crate name to your Cargo.toml file:

[dependencies]
uvt-viz3d = "0.1"

uvt-viz3d provides a function to visualize the content of a UVT file:

use std::io;
use uvt;
use uvt_viz3d;

fn main() -> Result<(), io::Error> {
    // Open a UVT file
    let my_uvt = uvt::Uvt::read_file("example.uvt")?;

    // Visualize uvt with rerun
    uvt_viz3d::show_uvt(my_uvt);

    Ok(())
}

Citation

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}
}

License

Licensed under either of

at your option.

Contribution

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.