FEB를 이용한 이동로봇의 장애물 회피와 국지경로계획 Obstacle Avoidance and Local Path Planning for Mobile Robots using
the Fast Elastic Band
김 일 환*
(Ilhwan Kim
1)
1
Kangwon National University
Abstract: This paper presents a new obstacle-avoidance method for mobile robots. This approach, called the FEB (Fast Elastic Band) method, has been developed and successfully tested on the experimental mobile robot PHOPE-1S. The FEB method eliminates the shortcomings of the elastic band method previously introduced, yet retains all the advantages of its predecessor. The FEB algorithm is computationally efficient, and it allows continuous and fast motion of the mobile robot without stopping for obstacles. The FEB-controlled mobile robot traverses very densely cluttered obstacle courses and is able to pass through narrow openings or narrow corridors without oscillations. The results of the simulation and experiment have verified the validity of the proposed method.
Keywords: local path planning, obstacle avoidance, elastic band, mobile robot
I. 서론
서비스 이동로봇을 목적지까지 자동적으로 움직이게 하는 일은 쉽지 않다. 경로 계획은 로봇이 목적지에 도달하기 위 한 경로를 계산하기 위해서 실제 환경과 로봇의 모델을 이용 한다. 경로 계획에서 가장 일반적인 문제는 경로 계획기가 만드는 많은 과정들로 인한 계산의 부담이 매우 크다는 것이 다. 경로 계획기의 출력은 로봇이 장애물에 충돌하지 않고 목적지에 도달할 수 있는 연속적인 경로이다. 그러나 실제 모델은 불확실성과 움직이는 장애물들로 인하여 완벽하지 않고 부정확하다. 따라서 무조건 계획된 경로를 따라간다면 충돌이 발생할 수 있다. 이러한 이동로봇의 경로계획은 전역 경로계획(GPP: Global Path Planning)과 국지경로계획(LPP: Local Path Planning) 으로 나눌 수 있다. GPP는 환경에 대한 정보가 주어진 경우에 시작점에서 목표지점까지의 최단거리 및 최 단시간으로 이동할 수 있는 경로를 계산한다. LPP는 환경 센 서를 통해 환경을 인식하고 정적 및 동적 장애물을 회피해 목적지로 이동하는 경로를 실시간으로 계획한다. GPP는 미리 정해진 지도를 통하여 경로를 계산하고 LPP는 국지적으로 환경을 인식하여 이를 실시간으로 수정하여 보완하는 일종 의 제어기라 할 수 있다. LPP는 한 경로지점에서 다음 경로 지점으로 이동할 때 최단거리와 최단시간으로 이동할 수 있 는 국지경로를 만들고, 이동시 정적 및 동적 장애물에 대한 충돌 예측과 충돌 회피, 그리고 로봇의 기구학적 및 동력학 적인 모션제어를 포함한다[1,2]. 국지경로를 만드는 방법은 NF1, A*, D* [4,5] 등이 연구되어 왔다. 국지 경로는 최소회전 반경, 이동속도 등을 고려하여 유연한 경로로 만들 필요가 있다. NF1, A* 등으로 만들어진 국지경로는 유연한 경로로 만들어지는 것이 아니기 때문에 Quinlan[3] 등은 이동로봇의
국지경로에 EB (Elastic Band)라는 개념을 도입하여 국지경로 를 유연한 경로로 만드는 방법을 연구하였다. EB는 NF1에서 만든 국지경로를 버블을 이용하여 변형하며, 버블들을 업데 이트 하면서 주행 중 실시간으로 환경변화에 대한 영향을 경 로에 반영해 유연한 충돌 자유 경로를 만들어주는 방법이다.
국지 경로 계획은 환경 변화를 인식하여 실시간으로 동작해 야 하기 때문에 각각의 처리 루틴의 수행시간이 빠르면 빠를 수록 좋다.
따라서 본 연구에서는 유연한 경로를 만들고 유연한 경로 를 만들기 위한 수행시간을 빠르게 하도록 하기 위하여 기존 의 EB를 확장하고 수정한 FEB (Fast Elastic Band)를 제안한다.
서비스 로봇에 적용하여 실험하였으며 결과를 통하여 그 유 효성을 검증하였다.
II. FAST ELASTIC BAND
Quinlan[3] 등이 제안한 버블은 충돌 자유 공간의 국부 부 분집합으로 식 (1)과 같이 나타낸다. 버블간의 내부와 외부 인공력(artificial force)을 이용하여 버블을 실시간으로 업데이 트 할 수 있도록 하여 환경변화에 대한 충돌 자유공간을 유 지할 수 있도록 하였다.
{ },
i i{ , , },
i i i0... 1
B = B B = c r m i = n − (1) 여기서 r
i는 버블의 반지름, c
i= ( , x
c i,y
c i,) 는 버블의 중심,
m
i는 마스킹 거리, n 는 버블의 수이다. 한편, 내부 인공력 은 이웃한 버블 사이에 수축시키는 힘으로서 버블간의 느슨 함을 제거하여 유연한 경로를 생성하는 역할을 하지만, 원하 는 경로가 직선이 아니고 꺾어지는 경우에는 내부 인공력이 영이 될 때까지 버블에 영향을 미치므로 버블의 중심이 원하 는 경로에서 벗어나게 되고 버블의 업데이트가 계속되면 결 국에는 경로가 직선이 된다. 고로, 이러한 문제점을 해결하기 위하여 본 논문에서는 식 (2)와 같이 새로운 버블을 정의한다.
* 책임저자(Corresponding Author)
논문접수: 2010. 4. 16., 수정: 2010. 6. 4., 채택확정: 2010. 6. 10.
김일환: 강원대학교 전자통신공학과([email protected])
※ 본 논문은 2010년도 ICROS 학술대회에서 초안이 발표되었습니다.
Copyright© ICROS 2010
, , , ,
{ , , , , , }, 0... 1
i i i r i l i r i l i
B = c r d d ip ip i = n − (2) 여기서 d 와
r i,d 는 각각 오른쪽과 왼쪽 방향으로 장애물
,li과 가장 가까운 거리, ip
r i,= ( ipx ipy
r i,,
r i,) 와 ip
l i,= ( ipx
l i,,
,
)
ipy
l i는 버블의 교차점이다. 식 (1)에서 EB는 버블의 중심 과 반지름 등으로 정의되나, FEB에서의 버블은 식 (2)에서 보 듯이 좌우 양방향의 장애물과의 거리와 버블의 교차점을 포 함하여 정의한다. 버블의 중심에서 장애물과 가장 가까운 거 리에 있는 장애물의 위치를 오른쪽 방향으로는 P 로, 왼쪽
r i*,방향 으로는 P 로 나타낸다. 버블과 관계된 장애물 중 최대
*,li거리의 장애물과의 거리를 R
max라 하고 버블의 중심과 P
r i*,또는 P 중 가장 가까운 거리를 버블의 반지름으로 하며
*,li식 (3)에 의해 구한다.
,
,
, , max
*, { }
, ,*
, max
*, { }
, ,*
, ,
{ } { : }
{ } arg{ min } { }
{ } { : }
{ } arg{ min } { }
{ } min{ , }
r ij
l ij
r ij r j i j
r i P P i j
r i i r i
l ij lj i j
l i P P i j
l i i l i
i r i l i
p P c P R
P c P
d c P
P P c P R
P c P
d c P
r d d
∈
∈
= − <
= −
= −
= − <
= −
= −
=
(3)
그림 1(a)에서 장애물 중 버블의 중심과 가장 가까운 장애 물을 구하고, 식 (4)로부터 인공력을 계산하고, 식 (6)로 업데 이트하면 그림 1(b)와 같이 새로운 버블이 생기고 양방향으 로 장애물과의 거리가 같아짐을 알 수 있다. 이렇게 양방향 의 거리가 일정해지기 때문에 업데이트의 종료 시점을 정확 히 예측할 수 있다. 즉, 버블의 반지름과 좌우 측 장애물과의 거리가 비슷해지면 그 버블은 더 이상 업데이트를 필요로 하 지 않게 된다. 첫 번째 버블은 버블의 시작점으로 로봇의 현 재 위치가 되고, 마지막 버블은 목적지가 된다. 첫 번째와 마 지막의 버블의 중심은 고정되고, 버블의 반지름은 장애물과 의 유클리디언 거리에 따라 변경된다. 버블의 오른쪽 방향 장애물 중 가장 가까운 장애물의 인공력을 fr 이라 할 때, fr 은 장애물과의 거리가 R
max보다 크면 0이고, R
max보다 작거나 같으면 식 (4)와 같이 계산된다.
, ,
, , , , ,
, , , , ,
( , )
( )cos(arctan 2( , )) ( )sin(arctan 2( , ))
i r i l i
x i r i c i r i c i r i
y i r i c i r i c i r i
Max d d
fr d y py x px
fr d y py x px
γ γ γ
=
= − − −
= − − −
(4)
마찬가지로 왼쪽 방향 장애물 중 가장 가까운 장애물의 인 공력을 fl 이라 할 때, fl 은 식 (5)와 같이 계산된다.
. , , , ,
. , , , ,
( )cos(arctan 2( , )) ( )sin(arctan 2( , ))
x i r i c i l i c i l i
y i r i c i l i c i l i
fl d y py x px
fl d y py x px
γ γ
= − − −
= − − − (5)
식 (6)을 이용하여 장애물에 대한 인공력이 반영된 새로운 버블의 중심이 구해진다
, , 1
i i i
i t i t i