rrt
v0.7.0
Rust의 RRT(Rapidly-Exploring Random Tree) 라이브러리입니다.
듀얼 RRT 연결만 지원됩니다.
충돌 방지 문제를 해결하는 예가 있습니다.
cargo run --release --example collision_avoid
아래는 가장 간단한 예입니다. [-1, -1] - [1, 1] 영역을 피하고 [-1.2, 0.0]부터 [1.2, 0.0]까지의 경로를 검색합니다. start
, goal
, is free function
, random generation function
, unit length of extend
, max repeat num
취하는 dual_rrt_connect
함수는 단 하나뿐입니다.
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
사용자와 개발자를 위한 디스코드 서버는 다음과 같습니다.