rrt
v0.7.0
مكتبة RRT (الاستكشاف السريع للشجرة العشوائية) في روست.
يتم دعم Dual 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 ) ;
OpenRR
إليك خادم Discord لمستخدمي ومطوري OpenRR
.