1. 서 론
로봇 관련 기술의 발전에 따라 로봇의 응용 분야는 급속히 확산되고 있으며, 특히 이동성이 좋은 자율이동 로봇이 실생활에 많이 사용되고 있다. 그중에서도 대표적인 로봇으로는 청소로봇과 무인 자동차가 있으며 실생활과 밀접한 관계가 있기 때문에 이와 관련된 연구가 활발히 진행되고 있다[1-2]. 자율 이동로봇 연구에서 가장 핵심적인 기술에는 SLAM(Simultaneous Localization and Mapping), 장애물 회피, 경로 계획 등이 있다. SLAM은 로봇이 주어진 환경 하에서 정확한 주행을 위하여 필요한 위치추정과 지도 생성을 하는 알고리즘이며, 장애물 회피는 로봇이 이동하는 도중, 안전한 주행을 위하여 장애물을 회피하는 알고리즘이다. 또한 경로 계획은 로봇이 정해진 목표지점까지 효율적으로 이동하기 위하여 필요한 알고리즘이다. 자율이동로봇에는 이러한 알고리즘들이 모두 필요하지만 제한된 환경정보를 바탕으로 로봇이 이동하면서 주변 환경에 대한 정보를 획득하고 획득된 정보를 바탕으로 안전하게 목표지점까지 도달하는 경로 계획이 매우 중요하다[3].
경로 계획은 Bug 알고리즘을 이용하는 방식, A* 알고리즘 이용하는 방식, VFH(Vector Field Histogram)과 D* 알고리즘[4-5]을 이용한 방식이 대표적이다. Bug 알고리즘은 벌레가 움직이는 것을 모델링하여 만든 알고리즘으로 시작점에서부터 장애물의 경계면을 따라 움직이면서 목표지점까지 이동하는 방식이며 가장 구현하기 쉽고 단순하다는 장점이 있으나, 장애물의 모양에 따라 시간이 많이 소비되는 단점이 있다. A* 알고리즘은 시작점에서 목표점까지 비용을 계산하여 가장 비용이 적게 드는 경로로 이동하는 방식이며, 이 방식은 모든 지점을 탐색하지 않아도 되는 장점을 가지고 있으나, 열린 목록과 닫힌 목록에 많은 노드들이 들어가게 되면 메모리를 과도하게 이용하는 단점이 있다. VFH[6-7] 알고리즘은 주변의 장애물과 로봇사이에 가상의 반발력을 만들어 장애물이 로봇을 밀어내고, 목적지와 로봇 사이에는 인력이 작용한다는 가정으로 로봇이 장애물에 충돌하지 않고 목적지로 이동하도록 하는 장애물 회피 방법이다. D* 알고리즘은 A*와 반대로 목표점에서부터 시작점까지의 비용을 계산하는 방식인데 기존에 알고 있던 경로에 다른 장애물이 나타났을 때 기존에 계산해 놓은 Back Pointer 정보를 최대한 이용하여 계산 량을 줄이는 방식이다. 그러나 기존의 D* 알고리즘은 시작점에서 목표점까지 이동하는 도중에 장애물로 인해 경로가 막혔을 경우, 막힌 지점으로부터 모든 방향으로 경로 비용을 다시 계산하기 때문에 속도가 느려지는 단점을 가지고 있다.
본 논문에서는 로봇의 경로 상에 장애물이 존재하면, 장애물의 위치를 중심으로 변환된 노드의 8방위만 계산하여 경로를 생성한 Improved D* 알고리즘과 직각 주행과 대각선 주행시 로봇의 경로를 Hermite Spline[8] 알고리즘을 융합하여 생성된 경로를 곡선경로[9-10] 변환하여 주행하여 로봇의 이동 비용을 줄이는 Spline D* 알고리즘을 제안한다. 또한 제안된 방법의 효율성을 검증하기 위하여, 로봇에 장착된 레이저 센서를 사용하여 장애물 판단 유무를 판단하고, 로봇주변의 맵 정보를 획득하며, 이를 바탕으로 한 로봇 주행을 시뮬레이션과 실험을 실시하였다.
2. 제안된 시스템
2.1 전체 구조
본 논문에서는 D*알고리즘을 사용하여 기본적인 경로계획을 설정하며, 레이저 센서는 설정된 알고리즘에 따라 이동 하는 로봇의 다음 경로에 동적 장애물을 판단하고 로봇의 주변의 장애물 정보와 전체적인 환경정보를 취합하여 맵핑을 하는데 사용한다. 생성된 경로를 hermite spline 기법을 적용하여 로봇의 이동경로 궤적을 곡선형태 경로로 재설정하여 실제 로봇이 목적지까지 자연스러운 주행을 할 수 있는 방법을 제안한다.
그림 1전체 시스템 구조 Fig. 1 Overall system architecture
2.2 로봇 시스템
본 논문에서는 차동구동방식(differential-drive)의 바퀴를 가진 자율이동로봇을 대상으로 시뮬레이션 및 실험을 행한다. 대상 로봇은 두 개의 구동 휠(drive-wheel)로 구성되어 있으며, 두 휠의 합성 속도에 의해 로봇의 이동 궤적이 생성된다. 그림 2는 로봇의 기구학(kinematics) 모델을 나타내며 여기서 x, y는 로봇의 위치, θ는 방위각을 각각 나타낸다. 입력 VL, VR은 각 바퀴의 속도이며 이 속도는 500 펄스의 엔코더 데이터를 4체배하여 얻게 된다. 차동 제어 방식 구동 체의 기구학은 식(1)과 같이 표현할 수 있다. 여기서 L은 로봇의 바퀴축간 거리이며 T는 로봇의 제어 입력 주기이다.
그림 2로봇 모델링 Fig. 2 Robot modeling
2.3 Improved D* 알고리즘
본 논문에서는 탐색 알고리즘 중의 하나인 D* 알고리즘을 개선하여 알고 있는 격자 지도에서 시작 지점에서 목적지까지 빠르게 도착하는 알고리즘을 제안한다. D* 알고리즘은 다른 알고리즘에 비해서 많은 데이터 저장 공간을 필요로 하는 단점이 있지만 전역 경로 계획 뿐만 아니라 지역 경로계획도 동시에 가능하다. 따라서 예기치 못한 고정 장애물이나 움직이는 장애물을 회피하여 주어진 목적지까지 빠르게 도달할 수 있는 지역 경로계획을 신속히 알고리즘을 구현할 수 있는 장점을 가지고 있다. 이 경우 현재 지점부터 목표지점까지 전체 경로가 다시 계산되지 않고, 기존 전역 경로 계획은 그림 3(a)과 같이 시작점(START)에서 목표점(GOAL)까지의 경로비용을 최소화하는 알고리즘이므로 D* 알고리즘을 효율적으로 사용하기 위해서 경로비용의 설계가 매우 중요한 역할을 한다.
그림 3(a) D* 알고리즘을 사용한 경로 표시 (b) 이동 중 장애물 발견 (c) Improved D* 알고리즘을 통한 새로운 경로계획 Fig. 3 (a) Path using the D* algorithm (b) Finding obstacle while moving (c) New path by improved spline D* algorithm
식(2)에서 h(X)는 START에서 GOAL까지 소요되는 총 경로비용, Y는 상태 X에 도달하기 바로 이전 상태, 식(3)에서 c(X,Y)는 근접 경로비용으로 A(Y,X)는 상태 X와 상태 Y로 이동하는데 드는 비용, I(X)는 상태의 고유비용으로 인접한 고정 장애물과 이동장애물을 고려한 경로비용 함수를 각각 나타낸다.
D* 알고리즘의 전역경로계획은 지도 정보를 바탕으로 로봇이 출발하기 전에 실행된다. START 셀에서 화살표 방향은 근처 셀 중에서 경로비용이 가장 작은 셀을 아타내기 때문에 화살표는 각각의 셀에서 다음 이동해야 할 위치를 표시한다. 전역 경로계획은 목표점에서 거꾸로 시작점을 찾아가는 Backward 탐색 방법으로 이루어진다.
기존의 D*의 경우에는 로봇이 목표점까지 이동 중에 장애물을 발견했을 경우에 변화노드와 관련 있는 모든 노드들에 대하여 다시 경로 비용을 계산하기 때문에 시간이 많이 걸리는 단점을 가지고 있지만 본 논문에서 제안한 Improved D* 알고리즘의 장점은 로봇이 이동해야 할 위치에 장애물이 생성되는 시점이다. 장애물이 생성되면 기존의 D* 경우 현재의 경로와 생성된 경로 그리고 주변의 환경의 정보를 모두 취합하여 로봇의 다음 경로를 계산하지만 Improved D*는 생성된 장애물 위치에서의 8방위에 대한 정보로 다음 스텝의 위치를 계산하므로 빠른 연산이 가능하다. 그림 3(b)의 (2,2)의 좌표에 생성된 장애물을 기준으로 8 방위에 있는 경로만을 계산하기 때문에 변환된 노드의 기준으로 주변에 대한 모든 경로 비용을 계산할 필요가 없어지며 로봇의 다음 스텝의 위치를 보다 빠르게 결정할 수 있는 장점을 가진다. 그림 (b)는 장애물 생성을 시점으로 새로운 경로 생성은 시작 지점 (1,2)부터 시작되어 다음 스텝인 (2,2) 까지 모든 노드를 다시 계산을 하는 시점이다. 따라서 다음 스텝인 (2,3)을 지나기 위하여 D* 알고리즘은 (1,2)와 (2,2)에 대한 모든 방위를 계산하고 가장 가까운 (2,3)의 스텝으로 계산을 마치지만 그림 (c)는 생성된 장애물 (2,2)을 기준으로 8방위에 대한 정보로 다음 스텝의 위치를 계산하므로 그림 3의 맵에서는 2배 이상의 빠른 속도의 연산이 가능하다. 이러한 방법은 노드 계산의 시간을 줄이고 기존 알고리즘에 비해 속도가 빠르다는 장점을 가지고 있다.
2.4 스플라인을 적용한 경로 생성
주어진 점들을 연결하는 곡선을 생성하는 방법으로 생성된 점들을 통과하여 곡선을 생성하는 보간법과 점들을 중심 중심으로 근사적으로 부드러운 곡선을 생성하는 근사법이 있다. 스플라인 기법은 컴퓨터 그래픽스, 매뉴플레이트의 경로 생성 및 로봇의 움직임에 관련되어 많이 사용되고 있다. 그 중에서도 B-Spline은 제어점(control point)을 통과하지는 않으며 인접한 곡선끼리만 제어 점을 공유하는 단점을 가지고 있다. Bezier Spline은 주어진 제어점 중 처음 점과 마지막 점만 통과하기 때문에 로봇의 곡선 경로계획에 부적합하다. Cardinal Spline은 Hermite와 같은 장점이 있지만 방위각을 고려할 필요가 없으므로 두 점 사이에 접선 벡터만 주어졌을 때 곡선을 생성할 수 있는 Herimite spline을 사용하였다. 2차원 공간에서 곡선은 파라미터 c로 표현할 수 있으며, 식(4)로 나타난다.
파라미터로 표현된 곡선 p(c)는 식(5)와 같이 표현할 수 있다.
여기서 식(5)는 곡선 생성을 위한 긴본 형태로 식(5)의 상수 a1,a2,a3,a4의 값에 따라 곡선의 특징이 나타난다. Hermite 보간법은 그림 4과 같이 시작점 p(0)와 끝점 p(1)에 접선 벡터 p'(0), p'(1)존재하여 이를 이용하여 식(5)를 구할 수 있고, 정리하면 a1,a2,a3,a4를 구할 수 있다.
그림 4Hermite Spline의 기본 개념 Fig. 4 Basic concept of hermite spline
식(6)를 정리하여 p(c)에 대해 행렬로 나타내면 다음과 같다.
Hermite 보간법은 두 점의 위치 p(0), p(1)와 접선 벡터 p'(0), p'(1)이 주어지면 식(7)를 사용하여 곡선을 생성할 수 있다. 단, 시작점과 끝점의 접선 벡터는 주어져야한다. 식(7) 의 α는 곡률을 나타내는 상수이며 식(8)을 이용하여 중간점들의 접선 벡터를 구하여 k지점에서의 끝점에서의 접선벡터 pk'(1)와 k+1지점에서의 시작점에서의 벡터 pk+1'(0)은 동일하게 하여 hermite spline을 적용하여 곡선의 연결을 부드럽게 한다.
본 논문에서는 D* 알고리즘으로 생성한 초기 직선경로에 대해 hermite spline을 이용하여 곡선경로로 변경한다. 초기 직선경로의 그림 5(a)(b) 경유점 좌표 (1,2)에 대해 hermite spline을 적용하기 위해, 시작점 및 목표점을 제외한 나머지 중간 경유점 p1···pN−1에 대해 식(8)을 이용하여 각 경유 점에서의 접선 벡터 p'1···p'N−1을 각 경유 점에서의 접선 벡터를 계산한다. 그리고 시작점 및 끝점의 접선 벡터는 로봇의 방위각 즉 자세를 통해 접선 벡터를 구한다. 시작점에서의 방위각을 θ0, 끝점에서의 방위각을 θN이라 정의하면, 시작점에 및 끝점에서의 접선 벡터 p'0, p'N은 다음과 같다.
그림 5(a) 일반적인 경로 (b) hermite spline을 적용한 경로 Fig. 5 (a) Normao path (b) Path suina hermite spline
여기서 β, 𝛾는 시작점 및 끝점에서의 선의 곡률을 나타낸다. 그림 5(a) 경유점 (1,2)에 대한 접선 벡터를 계산 후 생성되는 곡선의 점k=1···N−1의 구간에 대해 c를 0 < c ≤ 1로 설정하여 구간별 곡선 pk(c)를 계산한다. 최종 곡선경로를 P라 정의 할 때, P는 식(11)과 같이 구간 별 곡선 pk(c)의 집합으로 나타낼 수 있다.
3. 시뮬레이션
본 논문에서는 제안된 알고리즘의 성능 평가를 위해 PC 기반의 알고리즘을 직접 구현하여 시뮬레이션을 수행하였다. 시뮬레이션은 Window 7, 64bit, MFC 기반으로 한 PC에서 알고리즘을 직접 구현하여 비교하였다. 경로비용을 비교하기 위해 A* 알고리즘, D* 알고리즘, Improved D* 알고리즘, Spline D* 알고리즘을 비교하였고 그 결과를 그림 6과 7에 나타내었다. 그림 6과 7의 S 부분은 시작점, G 부분은 도착점, ‘*’ 부분은 동적 장애물의 위치, 검정색 부분은 정적 장애물의 위치, 회색 부분은 이동경로를 나타낸다. 그림 6과 7의 결과를 보면 각각 알고리즘마다 이동하는데 걸리는 경로비용은 그림 6과 그림 7(a)의 경우와 그림 7(b)의 경우는 이동하는 경로비용이 같다. 그림 7(c) 그림은 장애물을 발견시점에서 경로계획이 조금 수정된 것을 확인하였으며 그림 7(d)의 경우는 대각선 주행을 통한 경로비용 단축과 다른 알고리즘에 비해 경로비용이 짧은 것을 확인 할 수 있다. 각각의 알고리즘을 비교했을 때 결과는 표 1과 표 2와 같고 Spline D* 알고리즘의 경로비용이 가장 적은 것을 확인하였다.
그림 6(a) A* 알고리즘 (b) D* 알고리즘 (c) Improved D* 알고리즘 (d) Spline D* 알고리즘 Fig. 6 (a) A* algorithm (b) D* algorithm (c) Improved D* algorithm (d) Spline D* algorithm
그림 7(a) A* 알고리즘 (b) D* 알고리즘 (c) Improved D* 알고리즘 (d) Spline D* 알고리즘 Fig. 7 (a) A* algorithm (b) D* algorithm (c) Improved D* algorithm (d) Spline D* algorithm
표 1시뮬레이션을 통한 경로비용 비교(1) Table 1 Cost comparison by simulation(1)
표 2시뮬레이션을 통한 경로비용 비교(2) Table 2 Cost comparison by simulation(2)
4. 실 험
4.1 실험환경
제안된 시스템의 성능을 실제 로봇을 이용하여 평가하기 위해 그림 8(a)와 같이 10m*8m 크기의 공간에 장애물을 배치한 실험환경을 구축하고, 그림 8(b)와 같이 크기가 0.7m*0.8m, 바퀴 사이의 거리가 32cm, 바퀴의 지름이 15cm인 로봇 시스템에 알고리즘을 적용하여 실험을 진행하였다. 로봇 시스템에는 로봇의 이동거리를 측정하기 위한 엔코더와 장애물을 인지하기 위한 SICK사의 LMS200 레이저 센서가 장착되어 있다. 레이저 센서는 1 도의 분해능을 가지고 있으며 한 번에 180 개의 데이터가 출력되는 성능을 가지고 있어 장애물을 인지하기에 충분한 성능을 가지고 있다. 실험공간에는 그림 8(a)처럼 바닥에 1m*1m의 간격으로 격자 모양을 그려놓고 시뮬레이션 한 지도와 동일한 위치에 장애물을 설치하여 실험을 진행하였다.
그림 8(a) 실험환경, (b) 로봇 시스템 Fig. 8 (a) Experimental environment (b) Robot system
4.2 실험결과
본 논문에서 제안한 Spline D* 알고리즘의 성능평가를 위하여 직접 실험을 한 결과는 그림 9에 나타나있다. 그림 9에서 로봇의 이동경로에 보이는 검은색 점들은 로봇이 이동 하면서 레이저 센서를 통하여 주변 환경정보들을 취합하고, 레이저를 통한 장애물의 정보를 표시하여 작성하였다. 또한 본 실험에서는 그림 6의 시뮬레이션 맵을 기준으로 실험을 하였으며 맵에 표시되는 장애물은 사각형 모양의 박스로 구성하여 실험하였다. 그림 9에서 D* 알고리즘과 Spline D* 알고리즘을 사용하여 실험한 결과, Spline D* 알고리즘이 더 좋은 결과를 나타내고 있으며, 표 2를 통하여 제안한 알고리즘을 사용하여 이동하는 로봇들의 이동 스텝을 확인하면 Spline D* 알고리즘이 더 좋은 결과를 나타내고 있다. 또한 표 1과 표 3를 분석하면 표 1은 시뮬레이션에서 실제로 로봇이 움직이는 경로비용을 표시하였으며 표 3는 로봇이 시작 지점에서 목표 지점까지 도달하는데 사용되는 계산되는 스텝을 표시하였다. 스텝의 비용은 각각의 알고리즘을 프로그램에서 실행하였을 때 알고리즘의 계산이 수행되는 횟수이다. 목표지점까지 이동하는 로봇들의 이동 스텝을 확인하면 Spline D* 알고리즘을 사용하여 경로생성이 가장 빠른 것을 확인하였다.
그림 9D* Algorithm, Improved D* Algorithm과 Spline D* Algorithm에 대한 결과 Fig. 9 Results of Spline D* algorithms, Improved D* algorithms and D* algorithms
표 3실험을 통한 경로비용 비교 Table 3 Cost comparison by experiment
5. 결 론
본 논문에서는 non-holonomic 시스템인 자율이동로봇의 동적 장애물 회피와 부드러운 곡선경로 생성을 위한 경로계획 방법을 제안하였다. 경로계획은 초기 Improved D* 알고리즘을 통한 초기 경로생성 단계와 곡선경로 생성단계로 구성된다. 초기 경로생성 단계에서는 격자 지도에서 이동 거리가 최소인 경로계획을 생성하고 직각 주행 및 대각선 주행에서 hermite spline을 적용하여 곡선경로로 변경하여 로봇의 이동경로를 재설정하였다. 제안된 방법은 실험을 통하여 로봇이 목표지점까지 도달하는데 걸리는 경로비용과 프로그램의 계산 스텝의 개수를 근거로 도착하는데 까지 걸리는 비용이 단축된 것을 시뮬레이션과 실험을 통하여 확인하였다. 현재 실험환경은 격자모양의 지도에 일정한 장애물 간격의 배치가 되어 있기 때문에 알고리즘을 적용하기 쉬운 장점이 있다. 다음 실험에서는 복잡한 장애물 구조와 복잡한 맵에서의 실험을 통하여 알고리즘 검증이 필요하다.
참고문헌
- MH. Shaikh, K. Kosuri, NA. Ansari, and MJ. Khan, "The state-of-the-art intelligent navigational system for monitoring in mobile autonomous robot", Information and Communication Technology (ICoICT), 2013 International Conference of, pp. 405-409, 2013
- S. Kubota, Y. Ando, and M. Mizukawa, "Navigation of the autonomous mobile robot using laser range finder based on the non quantity map", Control, Automation and Systems, 2007. ICCAS '07. International Conference on, pp. 2329-2333, 2007
- R. Pepy and A. Lambert, "Safe Path Planning in an Uncertain-Configuration Space using RRT", Intelligent Robots and Systems, 2006 IEEE/RSJ International Conference on, pp. 5376-5381, 2006
- A. Stentz, "The focussed D* algorithm for real-time replanning", in Proc. International Joint Conference Artificial Intelligence, pp. 1652-1659, 2005
- J. Borenstein, and Y. Koren, "Real-time obstacle avoidance for fast mobile robots", IEEE Trans. Sys. Man, Cyb., vol. 19, no. 5, pp. 1179-1187, 1989 https://doi.org/10.1109/21.44033
- J. Borenstein abd Y. Koren. "The vector field histogram-fast obstacle avoidance for mobile robots", Robotics and Automation, IEEE Transactions on, pp. 278-288, 1991
- I. Ulrich and J. Borenstein, "VFH+: reliable obstacle avoidance for fast mobile robots", Robotics and Automation, 1998. Proceedings. 1998 IEEE International Conference on, vol. 2, pp 1572-1577, May. 1998
- P. Wagner, J. Kotzian, J. Kordas, and V. Michna, "Path planning and tracking for robots based on cubic hermite splines in real-time", Emerging Technologies and Factory Automation (ETFA), 2010 IEEE Conference on, pp. 13-16, 2010
- M. Shimizu, K. Kobayashi, and K. Watanabe, "Clothoidal Curve-based Path Generation for an Autonomous Mobile Robot",SICE-ICASE, 2006. International Joint Conference, pp. 478-481, 2006
- J. Cheng, Y. Zhang and Z. Wang, "Curve path tracking control for tractor-trailer mobile robot", Fuzzy Systems and Knowledge Discovery (FSKD), 2011 Eighth International Conference on, pp. 502-506, 2011