본문 바로가기
Paper Review/Multi-Robot

SIPP: Safe Interval Path Planning for Dynamic Environments [ICRA 2011]

by achrxme 2023. 8. 28.

1. Contribution

기존의 MAPF 알고리즘은 Space-time search를 위해 time interval 개념을 사용함

-> 제안하는 Contiguous safe interval의 수는 기존의 time interval의 수보다 훨씬 적음

-> Safe interval을 사용하여 optimality를 보장함과 동시에 search space가 훨씬 작아져 빠른 계산이 가능


2. Algorithm

연속적인 collision free timestep들을  safe interval으로 묶음

각각의 state : (configuration, safe interval) pair로 표현됨

 

Safe interval : "a contiguous period of time for a configuration, during which there is no collision and it is in collision one timestep prior and one timestep after the priod"

-> Each spatical configuration : has a timeline, altering between safe and collision interval.

 

Dynamic Obstacle Representation

Dynamic obstacle들의 future trajectory들을 예측해주는 외부 시스템이 존재한다고 가정

a trajectory : just a list of points, where each point has state variables. its configuration, time and some measure of the point's uncertainty

 

2.1 Planning with safe intervals

Graph Construction

Planner가 initialize 될 때, Predicted dynamic obstacle trajectory들을 이용해 각각의 spatial configuration에 해당하는 timeline을 만듬

Graph Search

A* 수행

1) Successor s' 추가

-> 현재 state s에서 실행 가능한 motion들에 대해 resultant configuration 및 the time of execution을 계산함

-> New configuration에 있는 각각의 time interval에 대해 충돌하지 않으면서 최대한 빠른 도착 시간을 가지는 successor를 만듬 (successor를 만들 때 wait and move motion을 사용해야 할 수도 있음 <- safe interval이 올 때까지 기다리기 위해)

2) A*를 수행하며 s' 에 도착할 수 있는 더 짧은 경로가 발견 될 경우 cost를 해당하는 더 작은 값으로 update

-> s'가 expand될 때 s'에 도달 가능한 가장 빠른 시간을 찾은 것이 보장됨


3. Example

A, B, C: highlighted configrations, B: robot location, Circle: Dynamic obstacles

B에 있는 로봇은 위(A) 혹은 아래(C)로 움직일 수 있음

-  A로 움직일 경우

$S_{A0}$ : 위로 움직이는 Obstacle이 지나가기 전의 safe interval -> 즉각 움직임

$S_{A1}$ : 위로 움직이는 Obstacle이 지나갈 때까지 기다린 다음의 safe interval 중 하나에 들어가야함 -> 충돌로 인해 invalid

 

- C로 움직일 경우

$S_{C0}$ : 왼쪽으로 움직이는 Obstacle이 지나가기 전의 safe interva -> 즉시 이동
$S_{C1}$ : 왼쪽으로 움직이는 Obstacle이 지나간 후, 위로 움직이는 Obstacle이 지나가기 전 사이의 safe interval -> timestep 2개 기다리고 이동

$S_{C2}$ : 위로 움직이는 Obstacle이 지나갈 때까지 기다린 다음의 safe interval -> 충돌로 인해 Invalid

[0, 5] 등등 : 해당하는 safe interval / cfg : configuration / t : 도착하는 timestep