rrt
v0.7.0
ห้องสมุด RRT (Rapidly-exploring Random Tree) ใน Rust
รองรับการเชื่อมต่อ Dual RRT เท่านั้น
มีตัวอย่างการแก้ปัญหาการชนกันหลีกเลี่ยงปัญหา
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 ) ;
OpenRR
นี่คือเซิร์ฟเวอร์ที่ไม่ลงรอยกันสำหรับผู้ใช้และนักพัฒนา OpenRR