Dubins Path 알고리즘은 로봇이나 차량과 같은 이동체가 제한된 반경 내에서 움직일 때 최적의 경로를 계획하는 알고리즘
이동체의 회전 반경과 가능한 직진 거리의 제약 조건을 고려해 경로를 생성한다
로봇이 갈 수 있는 경로를 미리 계산(offline)
미리 계산된 경로를 이용하여 경로 planning(online)
x' = cosθ
y' = sinθ
θ' = u
(') = d/dX
{LRL, RLR, LSL, LSR, RSL, RSR}
위처럼 6가지 루트가 존재하는데
1. 각 시작 점을 기준으로 원을 그림
2. 벡터에서 왼쪽에 원이 존재하면 L, 오른쪽이면 R
3. 왼쪽, 오른쪽으로 돌고 직진하면 S 오른쪽으로 가거나 왼쪽으로 가면 R, L
4. 이동한 방향에 맞게 LRL, RLR, LSL, LSR, RSL, RSR 중 정함
5. 각 θ값은 초록색처럼 정함
class DubinsPath(object):
def __init__(self, t=0, p=1e10, q=0, type=None):
self.t = t
self.p = p
self.q = q
self.length_ = [t, p, q]
self.type = type
self.controls = None
def length(self):
return self.t + self.p + self.q
정보 감사합니다.