8个版本 (破坏性)
0.7.0 | 2023年2月3日 |
---|---|
0.6.0 | 2022年1月19日 |
0.5.0 | 2021年3月3日 |
0.4.0 | 2018年5月23日 |
0.1.1 | 2017年7月25日 |
#1292 in 算法
474次每月下载
用于9个crate(2个直接使用)
24KB
264 行
rrt
RRT (快速扩展随机树) 库,用Rust编写。
仅支持双RRT Connect。
示例
有一个示例用于解决碰撞避免问题。
cargo run --release --example collision_avoid
下面是最简单的示例。它从[-1.2, 0.0]搜索到[1.2, 0.0],避开[-1, -1] - [1, 1]区域。只有一个函数dual_rrt_connect
,它接受start
,goal
,is free function
,random generation function
,unit length of extend
,max repeat num
。
use rand::distributions::{Distribution, Uniform};
let result = rrt::dual_rrt_connect(
&[-1.2, 0.0],
&[1.2, 0.0],
|p: &[f64]| !(p[0].abs() < 1.0 && p[1].abs() < 1.0),
|| {
let between = Uniform::new(-2.0, 2.0);
let mut rng = rand::thread_rng();
vec![between.sample(&mut rng), between.sample(&mut rng)]
},
0.2,
1000,
)
.unwrap();
println!("{result:?}");
assert!(result.len() >= 4);
依赖关系
~1–1.6MB
~31K SLoC