1个不稳定版本
0.0.1 | 2024年7月10日 |
---|
#73 在 #数学
114 每月下载量
在映射套件中使用
110KB
2K SLoC
mapping-rs
Rust的SLAM生态系统
⚠️ 不稳定的API ⚠️
警告:这个crate处于早期开发阶段,预计会有API的破坏性更改。
用法
将此添加到您的Cargo.toml
[dependencies]
mapping-algorithms = { git = "https://github.com/EmilyMatt/mapping-rs.git" }
mapping-suites = { git = "https://github.com/EmilyMatt/mapping-rs.git" }
特性
no_std支持
虽然默认启用了std
特性,但这些crate在设计时考虑了no_std
支持,
只要配置了内存分配器(这些crate 确实 使用了alloc
crate)。
这可以很容易地实现
[dependencies.mapping-algorithms]
default-features = false
[dependencies.mapping-suites]
default-features = false
跟踪
这些crate通过跟踪 crate提供性能分析和仪表化洞察。
要使用它,只需在您的Cargo.toml中启用tracing
特性,并使用您选择的订阅者。请注意,不同的函数有不同的跟踪级别。
由于每个函数都进行了仪表化,请务必记住启用跟踪的开销。
预生成
这些crate严重依赖于泛型,在debug
中会遭受严重的性能损失
(我们努力在release
中非常快)。
为此,存在一个pregenerated
特性,它提供了对大多数用例和类型的公共预生成函数的访问。
这适用于大多数用户,并允许绕过泛型的开销。
用法
在您的Cargo.toml中
# Enables the pregenerated feature (This is enabled by default)
[dependencies.mapping-algorithms]
features = ["pregenerated"]
# Compiles these crates with max optimizations
[profile.dev.package.mapping-algorithms]
opt-level = 3
[profile.dev.package.mapping-suites]
opt-level = 3
代码示例
// Instead of doing this:
let res = icp::icp::<f32, 2 > (...); // Uses generics, uses your project's optimization level
// Do this(Runs much faster):
let res = icp::single_precision::icp_2d(...); // Is a regular function, uses the crate's optimization level
pregenerated
宏默认启用。
贡献
如果您想贡献,我们欢迎您的贡献。请务必查看我们的CONTRIBUTING.md
依赖项
~4.5MB
~87K SLoC