이제 우리는 VA=CAA∣Bτ(VB)와 VB=CAB∣Aτ(VA)를 만족하는 A,B에 대한 permitted velocities 집합인 VA,VB를 결정해야 함
또한, A와 B는 개별 로봇으로, 다른 로봇과의 통신 없이도 permitted velocities 집합을 추론할 수 있어야 함
이를 만족하는 무한한 VA,VB set 중에서 최적 속도 vAopt,vBopt 에 "근접한" permitted velocities 의 크기가 가장 큰 set을 ORCAA∣Bτ 와 ORCAB∣Aτ 라고 부른다.
[ Definition ]
ORCAA∣Bτ 와 ORCAB∣Aτ 는 다음과 같이 정의됨
CAA∣Bτ(ORCAB∣Aτ)=ORCAA∣Bτ 및 CAB∣Aτ(ORCAA∣Bτ)=ORCAB∣Aτ
(A, B가 서로 동일한 속도를 선택)
VA,VB에 대해 VA⊆CAA∣Bτ(VB) 및 VB⊆CAB∣Aτ(VA)
모든 r>0 에 대해 다음을 만족 (즉, ORCAA∣Bτ 와 ORCAB∣Aτ 는 각각 vAopt,vBopt 와 교집합이 가장 많다 (vAopt,vBopt 와 가까운 속도를 다른 모든 reciprocally collision-avoiding 집합보다 더 많이 포함한다))
[ geometrically constuction ]
A, B 가 vAopt,vBopt 를 채택하였고, vAopt−vBopt∈VOA∣Bτ 에 의해 충돌이 일어난다고 가정
u 를 vAopt−vBopt 에서 VO의 경계의 가장 가까운 지점(the closest point on the boundary of the velocity obstacle)까지의 벡터라고 새롭게 정의
다음으로 로봇 A는 permitted vel 영역 내에서 vprefA 에 가장 가까운 vnewA 를 선택
vnewA=argminv∈ORCAA∣Bτ∥v−vApref∥
pAnew=pA+vAnewΔt
[ Choosing the Optimization Velocity ]
로봇들이 서로 통신 없이 half-plane을 결정하려면 vAopt 를 다른 로봇들이 관찰으로 결정할 수 있어야 함
그렇다면 로봇의 최적화 속도 vAopt 를 어떻게 설정해야 하는지? 에 대한 몇 가지 방법론
vAopt=0 (모든 로봇의 최적화 속도 = 0)
충돌 회피는 항상 가능하지만, 동작이 부자연스럽고 전역적 교착 상태 발생 가능
vAopt=vApref (선호 속도로 설정)
낮은 밀도에서는 효과적이지만, 중간 밀도 이상에서는 충돌 위험 증가.
vAopt=vA (현재 속도로 설정)
현실적인 절충안이지만, 밀도가 높을 때 충돌을 완전히 피하는 것은 어려움.
따라서, 현재 속도를 최적화 속도로 설정하는 방법이 가장 현실적인 선택이며, 높은 밀도 환경에서는 추가적인 방법(3차원 선형 계획법)을 적용해야 함.
[ Densely Packed Conditions ]
vAopt 를 현재 속도로 설정한다면 밀도가 매우 높은 상황에서는 선형 프로그램의 모든 제약 조건을 만족하는 단일 속도가 존재하지 않을 수 있다.
대신 ‘safest possible’ velocity ('가장 안전한' 속도) 를 선택
(다른 로봇에 의해 생긴 constraints를 최소한으로 침범하는 속도)
dA∣B(v) : ORCAA∣Bτ 의 half plane 까지 속도 v 의 유클리드 거리(부호가 있는)
만약 v∈ORCAA∣Bτ 를 만족하면 dA∣B(v) 는 음수(-)
이제 우리는 다른 로봇들에 의해 유도된 dA∣B(v) 들 중 어느 하나라도 maxdA∣B(v) 를 최소화하는 속도를 선택
Geometrically, this can be interpreted as moving the edges of the half-planesORCAA∣Bτ perpendicularly outward(수직으로 바깥 방향) with equal speed, until exactly one velocity becomes valid(유효하게 될 때까지).
6. Static Obstlacles / Experiments
[ Static Obstlacles ]
일반적인 다중 로봇 환경에서 장애물(정적)을 피할 때
O : line segments A : rA,pA
일 때 장애물 O에 의해 유도된 VO는 다음과 같다.( Fig 6 (a,b) )
VOA∣Oτ={v∣∃t∈[0,τ]::tv∈O⊕−D(pA,rA)}
vA∈VOA∣Oτ 이면 시간 τ 내 장애물 O 와 로봇 A 는 충돌한다.
vA∈/VOA∣Oτ 이어야 충돌하지 않는데, 이를 위해 로봇 A의 장애물 O에 대한 permitted vel 집합을 [ VOA∣Oτ의 경계면에서 vAopt 와 가장 가까운 점' ] 에서 VOA∣Oτ 의 접선인 half plane ORCAτA∣O 로 정의 ( Fig.6 (c) )
장애물의 경우 모든 로봇 A에 대해 vAopt=0 으로 선택하면 로봇과 장애물이 충돌하지 않는 유효 속도가 항상 존재하게 됨