알고리즘

[RRT] LBT-RRT(Local-Best-Tree RRT)

정지홍 2025. 4. 27. 13:27

Approximation Invariant (ε-Approximate Optimality)

  • LBR-RRT가 '근사 최적성'을 보장하는 핵심은 Approximation Invariant 때문이다.
  • 1. 정의

G_lb는 collision-check없이 추가해 나가는 그래프이다.

  • 2. 유지 메커니즘

2번째 edge삽입에는 충돌검사 안함

  • 3. 효과 및 trade-off
    • ε을 작게 설정 -> 경로 품질 향상 , 검사빈도 증가 , 속도가 느려짐
    • ε을 크게 설정 -> 탐색 속도가 향상 , 품질이 내려감

 


Lazy Validation

  • 기존의 RRT*나 RRG에서는 모든 삽입되는 엣지마다 즉시 충돌 검사를 하지만, LBT-RRT는 필요할때만 검사한다.
  • 1. 기본 아이디어
    • G_lb에서는 충돌 검사 없이 모든 잠재적 엣지( u , v )를 추가하여,  오직 T_apx에 엣지를 실제로 사용할때만, 해당  edge에 대해서 collision-free검사를 수행한다.
    • 즉, 이벤트 드리븐( triggered) 방식으로 필요할때에만 검사하여, 불필요한 충돌 검사를 줄이며, 빠른 초기 확장을 가능하게 한다.
  • 그러면 언제 검사하나?
    • invariant 위반 복구시에 한다. 즉, 트리 비용 보장을 위함
    • 경로 추출 직전
방식 장점 단점
eager 매 edge에 대해서 즉시 안전 보장 검사가 많아서 초기 탐색이 느리다.
lazy 검사 횟수가 줄어들수록, 초기 속도는 증가 최종 경로 사용 직전 검사로 약간의 지체 발생

 

 


LBT-RRT(Local-Best-Tree RRT)

  • LBT-RRT는 RRT나 RRT*와 비슷한 맥락에서 출발하지만, 빠르게 경로를 찾되, 최적성( optimality )를 계속 향상시키는 것을 목표로한다.
    • 즉, 빠른 초기 경로를 제공하고, 시간이 지남에 따라서 최적 경로로 점진적으로 개선한다.
  • 핵심 아이디어
    • 1. Approximation Invariant 유지
      • 현재 트리의 경로 비용최적 비용보다 특정 오차 ε 이내에 있도록 유지합니다. (ε-approximate optimality)
    • 2. Lazy Validation
      • 트리 확장 과정에서 연결 가능성 여부( collsion-free )를 즉시 검사하지 않고, 필요할때만 검사를 한다.
    • ===> 위의 두가지 덕분에, 빠르고 가벼운 트리 탐색시간에 따른 최적화를 동시에 달성한다.
알고리즘 초기 탐색 속도 최적성 최적화 속도
RRT 빠름 없다. 없다
RRT* 느림 최적성 보장 느림
LBT-RRT 빠름 ε의 설정에 따라서 다르다. 빠르고 유연

 

  • 장점
    • 빠른 초기 경로 탐색
    • 최적성 보장이 가능하며 실시간 적용이 뛰어남
  • 단점
    • lazy Validation으로 인해 최종 검증 시 시간이 좀 더 걸릴 수 있음
    • 트리의 관리가 복잡
  • 기본 루프 구조
    • 1. random sampling
      • space에서 하나의 점인 q_rand를 샘플링
    • 2. 트리 확장
      • 트리에서 가장 가까운 점인 q_near을 찾고, q_rand방향으로 새로운 노드인 q_new를 생성
    • 3. Near Set 찾기
      • q_new 주변의 노드 집합인 Near( q_new )를 찾음
    • 4. Best Parent 찾기
      • Near( q_new )안에서 가장 좋은 부모 후보를 선택한다. ( 최소 비용 기준으로... )
    • 5. Edge를 추가
      • q_new를 트리에 추가 ( 일단은 간단히 추가한다. 즉, collision-check는 lazy하게 )
    • 6. Approximation Invariant 유지
      • 만약에 path가 너무 비효율적이라면, 주변 노드들과의 rewire을 시도한다.
      • 비용이 나쁜 경우에 추가로 edge를 바꾸어줌
    • 7. collision-check
      • 경로를 사용할 거 같을때만 실제로 충돌 검사를 실시한다.

'알고리즘' 카테고리의 다른 글

Visibility Graph  (0) 2025.05.27
[RRT] RRG(Rapidly-exploring Random Graph)  (0) 2025.04.30
[RRT] RRT*-smart  (0) 2025.04.20
Heuristically Guided RRT  (0) 2025.04.19
Anytime RRT  (0) 2025.04.14