6 releases

new 0.1.6 Mar 10, 2025
0.1.5 Nov 13, 2024
0.1.2 May 28, 2024
0.1.1 Apr 9, 2024

#3 in Simulation

Download history 482/week @ 2024-11-17 329/week @ 2024-11-24 381/week @ 2024-12-01 233/week @ 2024-12-08 566/week @ 2024-12-15 73/week @ 2024-12-22 214/week @ 2024-12-29 597/week @ 2025-01-05 667/week @ 2025-01-12 1055/week @ 2025-01-19 294/week @ 2025-01-26 698/week @ 2025-02-02 1194/week @ 2025-02-09 692/week @ 2025-02-16 1012/week @ 2025-02-23 1292/week @ 2025-03-02

4,231 downloads per month

BSD-3-Clause

205KB
3K SLoC

maliput

github crates.io docs.rs build status

Creates Rustacean API for maliput. It is implemented on top of maliput-sys package.

Note: What is maliput? Refer to https://maliput.readthedocs.org.

Description

maliput provides a Rust API implemented on top of FFI bindings provided by maliput-sys package.

Usage

fn main() {
    use maliput::api::RoadNetwork;
    use std::collections::HashMap;

    // Get location of odr resources
    let package_location = std::env::var("CARGO_MANIFEST_DIR").unwrap();
    let xodr_path = format!("{}/data/xodr/TShapeRoad.xodr", package_location);

    let road_network_properties = HashMap::from([
        ("road_geometry_id", "my_rg_from_rust"),
        ("opendrive_file", xodr_path.as_str()),
    ]);

    let road_network = RoadNetwork::new("maliput_malidrive", &road_network_properties);
    let road_geometry = road_network.road_geometry();

    // Excercise the RoadGeometry API.
    println!("linear_tolerance: {}", road_geometry.linear_tolerance());
    println!("angular_tolerance: {}", road_geometry.angular_tolerance());
    println!("num_junctions: {}", road_geometry.num_junctions());

    let lanes = road_geometry.get_lanes();
    println!("num_lanes: {}", lanes.len());
    println!("lanes: ");
    for lane in lanes {
        println!("\tlane id: {}", lane.id());
    }
}

Examples

  • Load maliput::api::RoadNetwork and perform some basic queries against the Road Geometry.
    cargo run --example road_geometry
    

Benches

  • Evaluate the execution of maliput::api::RoadGeometry::to_road_position method.
    cargo bench to_road_position
    

License

Licensed under BSD 3-Clause.

Dependencies

~0.5–2.1MB
~34K SLoC