로봇이 움직여야 할 시간이 촉박 or 급변하는 상황에서는 최적해를 못 구할지라도 "괜찮은 해"라도 빠르게 구해야함.
ex) UAV가 갑자기 장애물을 탐지 , 드록이 배터리 부족으로 착륙해야할떼
장점
1. 빠르게 feasible한 path를 찾는데 특화됨. ( 초기 경로가 suboptimal할지라도 즉시 실행 가능한 경로를 제공함.)
2. initial solution 이후에도 계속해서 새로운 트리를 생성하거나 기존 트리를 개선하면서 cost를 줄여나감.
3. 매 실행마다 경로가 다를수 있으며, 이는 다양한 환경에서 강건하고 일반화한 path를 찾는데 유리함.
응용 환경
1. 실시간 스스템
2, 시간 제한이 존재하는 로봇의 동작
3. 동적인 환경
RRT와의 차이점
1. RRT는 빠르게 경로를 생성하나 경로의 품질이 보장되지 않는 단점을 개선
2. 시간이 많을수록 품질이 좋아지는 경로 생성
구현 방식
1. RRT-Replan 기반 Anytime RRT : 매 반복마다 새로운 RRT를 생성하며, 더 나은 cost를 가진 경로가 나오면 경로를 업데이트. ( 단, 이전 트리 정보를 재사용 하지 않아서 계산 낭비 )
2. Informed RRT*기반 Anytime RRT : RRT*를 개선한 것이며, 현재 최적 경로의 cost를 기준으로 샘플링 영역을 제한한다. ( 트리는 유지하며 rewiring으로 경로를 점진적으로 개선 )
Anytime RRT의 구조
Anytime RRT의 기본 개념은 "점진적으로 좋은 경로를 찾자"이다. 그러기 위해서 아래의 것들을 고려해야한다.
1. path optimality
2. real-time constraint
3. memory Cpu의 제한
4. 환경 변화
아래는 기본적인 anytime rrt의 흐름이다.
Start + Goal 입력
│
▼
최초 RRT 생성 (빠르게 feasible path 탐색)
│
├──→ 최초 경로 저장
│ └── best_cost ← cost(path)
│
▼
루프 시작: 새로운 트리 생성
│
├──→ 목표 도달? ──┬─> cost 비교 → 더 좋으면 best_path 갱신
│ │
└──── 반복 횟수/시간/개선 여부 체크
↓
종료 조건 만족 시 탈출
Anytime RRT의동작 방식
1. 초기 경로 생성
목적 : 바로 이동할 수 있는 경로를 확보
구현 방식 : RRT , RRT-Connect와 같은 빠른 트리 생성 알고리즘을 사용. 첫번째 경로 생성시 즉시 리턴