2 个版本

0.1.2 2024年5月28日
0.1.1 2024年4月9日
0.1.0 2024年4月8日

#23 in 模拟

BSD-3-Clause

165KB
2.5K SLoC

maliput

github crates.io docs.rs build status

maliput 创建 Rustacean API。它在 maliput-sys 包提供的 FFI 绑定之上实现。

注意:什么是 maliput?请参阅 https://maliput.readthedocs.org。

描述

maliputmaliput-sys 包提供的 FFI 绑定之上提供了一个 Rust API。

使用方法

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());
    }
}

示例

  • 加载 maliput::api::RoadNetwork 并对道路几何执行一些基本查询。
    cargo run --example road_geometry
    

基准测试

  • 评估 maliput::api::RoadGeometry::to_road_position 方法的执行。
    cargo bench to_road_position
    

许可证

许可协议为 BSD 3-Clause

依赖项

~0.5–2MB
~29K SLoC