KR101401311B1 - 복수의 이동체의 경로를 계획하는 장치 및 방법 - Google Patents

복수의 이동체의 경로를 계획하는 장치 및 방법 Download PDF

Info

Publication number
KR101401311B1
KR101401311B1 KR1020120028858A KR20120028858A KR101401311B1 KR 101401311 B1 KR101401311 B1 KR 101401311B1 KR 1020120028858 A KR1020120028858 A KR 1020120028858A KR 20120028858 A KR20120028858 A KR 20120028858A KR 101401311 B1 KR101401311 B1 KR 101401311B1
Authority
KR
South Korea
Prior art keywords
path
moving
moving object
point
collision
Prior art date
Application number
KR1020120028858A
Other languages
English (en)
Other versions
KR20130107062A (ko
Inventor
임종태
오준한
조현욱
박청운
박주호
이정우
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020120028858A priority Critical patent/KR101401311B1/ko
Publication of KR20130107062A publication Critical patent/KR20130107062A/ko
Application granted granted Critical
Publication of KR101401311B1 publication Critical patent/KR101401311B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones

Abstract

본 발명은 복수의 이동체의 경로를 계획하는 장치 및 방법에 관한 것으로, 본 발명의 일 실시예에 따른 복수의 이동체(moving body)의 경로를 계획하는 방법은, 하나의 이동체에 대하여 각각 자신만의 좌표를 고려하여 시작점으로부터 도착점까지의 경로를 산출하고, 산출된 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부를 검사함으로써 이동체들 간의 충돌 발생 가능성을 판단하고, 판단 결과 충돌 발생 가능성이 존재하는 경우 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하며, 검사 결과에 따라 다른 이동체의 시작점 또는 도착점을 임시로 이동시키거나, 이동체 자신의 시작점을 이동시킴으로써 충돌이 발생하지 않는 경로를 재탐색하는 과정 중 어느 하나를 선택적으로 수행함으로써 상기 이동체의 경로를 결정한다.

Description

복수의 이동체의 경로를 계획하는 장치 및 방법{Apparatus and method of path planning for a plurality of moving bodies}
본 발명은 이동체의 경로를 계획하는 기술에 관한 것으로, 특히 로봇(robot)과 같은 이동체가 복수 개 존재하는 상황 하에서 이들 복수의 이동체가 상호 충돌 없이 이동할 수 있는 경로를 계획하는 장치 및 방법을 기록한 기록매체에 관한 것이다.
IT 기술의 진보에 따라 이동 로봇을 이용한 다양한 어플리케이션들이 제안되고 있다. 이러한 로봇들의 가장 기본적인 기능은 특정 출발지에서 목적지로 이동하는 경로 계획 서비스를 제공하는 것이며, 대부분의 로봇은 이동성을 유지하기 위하여 전용의 전원공급이 제공되지 않고, 배터리를 이용하여 주행하게 된다. 따라서, 특정 목적지로 주행하기 위하여 경로를 설정하고 다양한 동작을 제어하기 위해서는 최소의 비용을 기준으로 명령을 내리게 된다. 이러한 비용을 결정하기 위하여 주행시간, 정확도, 오류 확률, 에너지 소모율 등 여러 가지의 고려 요소들이 존재하나, 일반적으로 주어진 이산적인 지도 공간 내에서 최적의 경로를 산출하기 위해서는 다익스트라(Dijkstra) 알고리즘 또는 A* 기반의 최단거리 알고리즘이 널리 활용되고 있다.
한편, 여러 대의 로봇이 서비스를 수행하거나 혹은 작업을 수행하려 할 때, 로봇의 이동 경로 산출은 효율적인 서비스 수행을 위하여 반드시 선행되어야 하는 작업이다. 특히, 다수의 로봇들이 개별적으로 주행하는 환경에서 로봇들 각각은 상호 간의 충돌을 회피해야 하는 동적인 장애물이 될 수 있다. 따라서, 이웃 노드간 충돌을 회피하기 위한 적당한 거리 유지 및 트래픽 병목 현상을 함께 고려해야 할 필요가 있다. 즉, 다수의 로봇이 존재하는 환경에서 로봇의 물리적인 최단경로를 확보함과 동시에 상호 충돌을 방지 또는 해소할 수 있는 경로계획 기술의 개발이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는 다수의 이동체들이 각자의 임무 수행을 위해 이동 경로를 수립하고 이동하는 과정에서 이동체들 간의 상호 충돌로 인해 이동체 자신이 최종적으로 달성하고자 하는 서비스 내지 작업의 효율이 저하되거나, 최악의 경우에는 해당 작업의 수행이 불가능하게 되는 교착 상태에 빠지게 되는 문제점을 해결하고, 이동 경로 상의 충돌이 발생할 경우 이러한 충돌의 해소에 많은 시간이 소모되는 불편함을 해소하며, 완전한 충돌 회피 경로를 제공하지 못하는 한계를 극복하고자 한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 복수의 이동체(moving body)의 경로를 계획하는 방법은, 하나의 이동체에 대하여 각각 자신만의 좌표를 고려하여 시작점으로부터 도착점까지의 경로를 산출하는 단계; 상기 산출된 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부를 검사함으로써 이동체들 간의 충돌 발생 가능성을 판단하는 단계; 상기 판단 결과 충돌 발생 가능성이 존재하는 경우, 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하는 단계; 및 상기 검사 결과에 따라, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키거나, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 이동시킴으로써 충돌이 발생하지 않는 경로를 재탐색하는 과정 중 어느 하나를 선택적으로 수행함으로써 상기 이동체의 경로를 결정하는 단계;를 포함한다.
일 실시예에 따른 복수의 이동체의 경로를 계획하는 방법에서, 상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는 경우, 상기 이동체의 경로를 결정하는 단계는, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키는 단계; 상기 경로를 산출하고자 하는 이동체 자신에 대하여 산출된 경로를 따라 상기 이동체를 이동시키는 단계; 임시로 이동된 상기 다른 이동체의 시작점 또는 도착점의 위치를 원래의 위치로 복귀시키는 단계; 및 상기 다른 이동체 각각에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 상기 이동체들 각각의 경로를 결정하는 단계;를 포함한다.
일 실시예에 따른 복수의 이동체의 경로를 계획하는 방법에서, 상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시키더라도 충돌 발생 가능성이 사라지지 않는 경우, 상기 이동체의 경로를 결정하는 단계는, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 상기 이동체가 충돌 없이 이동 가능한 다른 위치로 이동시키는 단계; 상기 이동체의 시작점 이동에 의해 경로 상에 충돌 발생 가능성이 사라진 다른 이동체를 선택하는 단계; 상기 선택된 다른 이동체 각각에 대하여 산출된 경로를 따라 상기 선택된 다른 이동체를 이동시키는 단계; 및 상기 시작점이 이동된 이동체에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 상기 이동체들 각각의 경로를 결정하는 단계;를 포함한다.
일 실시예에 따른 복수의 이동체의 경로를 계획하는 방법에서, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하는 단계는, 상기 복수의 이동체가 이동 가능한 좌표 공간 내에서 상기 다른 이동체의 시작점 또는 도착점의 위치를 임시로 이동시키고자 하는 후보 좌표를 검색하는 단계; 및 상기 검색된 후보 좌표가 여전히 산출된 경로 상에 존재하는지 여부를 검사함으로써 상기 임시 이동에 의해 충돌 발생 가능성이 사라지는지 여부를 판단하는 단계;를 포함한다.
또한, 이하에서는 상기 기재된 복수의 이동체의 경로를 계획하는 방법들을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 이동체의 경로를 계획하는 장치는, 이동체가 이동 가능한 공간, 이동체 자신 및 다른 이동체의 시작점 및 도착점에 대한 위치 정보를 입력받는 입력부; 상기 입력부를 통해 입력된 이동체 자신만의 좌표를 고려하여 시작점으로부터 도착점까지의 경로를 산출하고, 상기 산출된 경로 상의 이동체들 간의 충돌을 방지하는 위치 변화를 수행함으로써 상기 이동체의 경로를 결정하는 처리부; 및 상기 이동체에 구비되어 상기 결정된 경로에 따라 상기 이동체를 이동시키는 구동부;를 포함한다.
일 실시예에 따른 이동체의 경로를 계획하는 장치에서 상기 처리부는, 상기 산출된 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부를 검사함으로써 이동체들 간의 충돌 발생 가능성을 판단하고, 상기 판단 결과 충돌 발생 가능성이 존재하는 경우, 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하며, 상기 검사 결과에 따라, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키거나, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 이동시킴으로써 충돌이 발생하지 않는 경로를 재탐색하는 과정 중 어느 하나를 선택적으로 수행함으로써 상기 이동체의 경로를 결정한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 복수의 이동체의 경로를 계획하는 장치는, 이동체가 이동 가능한 공간, 상기 복수의 이동체들의 시작점 및 도착점에 대한 위치 정보를 입력받는 입력부; 상기 입력부를 통해 입력된 이동체 자신만의 좌표를 고려하여 이동체들 각각의 시작점으로부터 도착점까지의 경로를 산출하고, 상기 산출된 경로 상의 이동체들 간의 충돌을 방지하는 위치 변화를 수행함으로써 상기 이동체의 경로를 결정하는 처리부; 및 상기 결정된 이동체의 경로를 상기 복수의 이동체 각각에 전달함으로써 경로에 따른 이동을 유도하는 통신부;를 포함한다.
일 실시예에 따른 복수의 이동체의 경로를 계획하는 장치에서 상기 처리부는, 상기 산출된 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부를 검사함으로써 이동체들 간의 충돌 발생 가능성을 판단하고, 상기 판단 결과 충돌 발생 가능성이 존재하는 경우, 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하며, 상기 검사 결과에 따라, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키거나, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 이동시킴으로써 충돌이 발생하지 않는 경로를 재탐색하는 과정 중 어느 하나를 선택적으로 수행함으로써 상기 이동체의 경로를 결정한다.
본 발명의 실시예들은 복수의 이동체들 각각의 이동 경로를 독립적으로 산출한 후 충돌을 예측하여 이동체의 위치를 변화시킴으로써 이동체들 간의 상호 충돌을 해결하고, 이동체의 이동에 따른 충돌을 회피하는 과정에서 임시 위치를 지정하여 이동체를 이동시킴으로써 충돌 방지를 위한 연산량을 감소시킴으로써 교착 상태 내지 병목 현상을 빠르게 해소할 수 있으며, 주어진 공간 내의 완전한 충돌 회피 경로를 제공하는 것이 가능하다.
도 1은 본 발명의 일 실시예에 따라 복수의 이동체의 경로를 계획하는 방법을 도시한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 도 1의 경로 계획에서 각각의 이동체가 획득한 독자적인 이동 경로를 따라 이동할 경우의 충돌에 따른 상호 관계를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 도 1의 경로 계획에서 충돌을 방지하기 위해 다른 이동체의 위치를 변화시키는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 도 1의 경로 계획에서 각각의 이동체가 획득한 독자적인 이동 경로를 따라 이동할 경우, 다른 이동체의 임시적인 위치 이동만으로는 충돌을 해소할 수 없는 상황을 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 도 1의 경로 계획에서 충돌을 방지하기 위해 이동체 자신의 시작점을 이동시키는 방법을 설명하기 위한 도면이다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 도 1의 경로 계획의 전체 알고리즘을 도시한 흐름도와 의사 코드(pseudo-code)이다.
도 8 및 도 9는 복수의 이동체가 존재하는 환경 하에서 이동체의 경로를 계획하는 장치에 관한 실시예를 각각 도시한 블록도이다.
로봇의 이동 경로를 산출하기 위하여 다수의 로봇을 하나로 처리하는 커플(coupled) 방식과 다수의 로봇 각각의 경로를 개별적으로 처리하는 디커플(decoupled) 방식이 존재한다. 커플(coupled) 방식에는 A* 방식이 대표적이며, 이러한 방식은 로봇의 수에 따라 기하급수적으로 증가하는 계산의 복잡성으로 인해 제한된 환경에서만 적용할 수 있다는 점이 단점으로 지적된다. 디커플(decoupled) 방식은 다른 로봇의 존재를 무시하고, 각각의 경로를 계산 후, 산출된 이동경로를 조합하며 충돌을 없애려는 방식으로 속도 튜닝(Velocity Tuning) 방식과 우선순위화(Prioritized) 방식이 대표적이다. 디커플(decoupled) 방식은 충돌 가능성을 줄여 주는 것으로, 완전한 충돌 회피 경로를 찾을 수 없는 경우가 대부분이다.
이하에서 제안되는 본 발명의 다양한 실시예들은 기존의 디커플(decoupled) 방식과 같이 각각의 로봇이 다른 로봇의 존재의 유무와 관계없이 독자적인 이동경로를 획득하는 방식을 일부 채택하면서도, 종래의 디커플(decoupled) 방식의 문제점인 완전한 충돌 회피 경로를 찾을 수 없다는 한계점을 극복하기 위한 기술적 수단을 제공한다. 이를 위해 본 발명의 실시예들은 산출된 경로들의 충돌을 회피하기 위하여 로봇의 임시적인 위치의 변화를 주는 방법을 제안한다. 따라서, 본 발명의 실시예들은 ① 독자적인 경로를 획득하는 과정 및 ② 충돌방지를 위한 위치변화로 구성되는 2개의 과정을 통해 경로계획을 수행한다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예들을 보다 구체적으로 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다. 한편, 이하에서 로봇(robot) 또는 이동체(moving body)는 그 용어를 혼용하여 사용될 것이나, 그 실체는 독립적으로 이동이 가능한 개별 장치를 아우르는 표현으로 이해될 수 있다.
도 1은 본 발명의 일 실시예에 따라 복수의 이동체의 경로를 계획하는 방법을 도시한 흐름도로서, 여기서는 그 개요만을 소개한 후, 이후 도 2 내지 도 5를 참조하여 그 과정을 구체적으로 설명한다.
110 단계에서, 하나의 이동체에 대하여 각각 자신만의 좌표를 고려하여 시작점으로부터 도착점까지의 경로를 산출한다. 이 과정은 하나의 이동체의 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부와 상관없이 상기 복수의 이동체들 각각의 경로를 획득하는 디커플(decoupled) 방식에 따르는 것이 바람직하다. 예를 들어, 이동체 각각은 다익스트라(Dijkstra) 알고리즘과 같은 경로 획득 알고리즘을 활용할 수도 있을 것이다.
120 단계에서, 상기 산출된 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부를 검사함으로써 이동체들 간의 충돌 발생 가능성을 판단한다. 복수의 이동체들이 존재하는 공간에 대한 위치 정보, 각각의 이동체들의 시작점 및 도착점에 대한 위치 정보는 초기에 주어지므로, 120 단계는 이상의 110 단계를 통해 산출된 경로 상에 다른 이동체의 좌표가 존재하는지 여부를 검사함으로써 달성될 수 있다.
130 단계에서, 상기 판단 결과 충돌 발생 가능성이 존재하는 경우, 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사한다. 보다 구체적으로, 상기 복수의 이동체가 이동 가능한 좌표 공간 내에서 상기 다른 이동체의 시작점 또는 도착점의 위치를 임시로 이동시키고자 하는 후보 좌표를 검색하고, 상기 검색된 후보 좌표가 여전히 산출된 경로 상에 존재하는지 여부를 검사함으로써 상기 임시 이동에 의해 충돌 발생 가능성이 사라지는지 여부를 판단하게 된다.
140 단계에서, 상기 검사 결과에 따라, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키거나, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 이동시킴으로써 충돌이 발생하지 않는 경로를 재탐색하는 과정 중 어느 하나를 선택적으로 수행함으로써 상기 이동체의 경로를 결정한다. 이러한 140 과정은 130 과정의 검사 결과에 따라 크게 2가지 경로 결정 과정을 선택적으로 취하게 된다.
첫째, 130 단계를 통한 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는 경우를 살펴보자. 이 경우 상기 이동체의 경로를 결정하기 위해, 우선 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시킨다. 그런 다음, 상기 경로를 산출하고자 하는 이동체 자신에 대하여 산출된 경로를 따라 상기 이동체를 이동시킨다. 이제, 임시로 이동된 상기 다른 이동체의 시작점 또는 도착점의 위치를 원래의 위치로 복귀시킨 후, 상기 다른 이동체 각각에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 상기 이동체들 각각의 경로를 결정하게 된다. 보다 구체적인 연산 과정은 이후 도 3의 예를 참조하여 설명하도록 한다.
둘째, 130 단계를 통한 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시키더라도 충돌 발생 가능성이 사라지지 않는 경우를 살펴보자. 이 경우 상기 이동체의 경로를 결정하기 위해, 우선 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 상기 이동체가 충돌 없이 이동 가능한 다른 위치로 이동시킨다. 그런 다음, 상기 이동체의 시작점 이동에 의해 경로 상에 충돌 발생 가능성이 사라진 다른 이동체를 선택한 후, 상기 선택된 다른 이동체 각각에 대하여 산출된 경로를 따라 상기 선택된 다른 이동체를 이동시킨다. 이제, 상기 시작점이 이동된 이동체에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 상기 이동체들 각각의 경로를 결정하게 된다. 보다 구체적인 연산 과정은 이후 도 5의 예를 참조하여 설명하도록 한다.
이상에서 도 1의 흐름도를 참조하여 복수의 이동체의 경로를 계획하는 방법을 살펴보았다. 도 1을 통해 제안된 일련의 과정은 전자적 형태의 데이터를 정의된 순서와 동작에 따라 연산하는 과정에 해당하므로, 이들 과정은 이동체 내부 또는 외부에 마련된 적어도 하나의 프로세서(processor)에 의해 수행될 수 있다. 또한, 필요에 따라서는 데이터의 연산과 임시 데이터의 저장을 위한 메모리(memory)가 활용될 수도 있을 것이다. 물론, 도 1에 따른 경로 계획 방법이 프로세서와 같은 하드웨어에 의해 구현될 수 있으나, 일련의 연산과 동작을 정의하는 소프트웨어 코드가 부가될 수 있음은 당연하다.
(1) 이동체 각각의 독자적인 이동 경로를 획득
우선, 이하에서 사용될 기호를 소개한다. N은 이동체의 개수를 의미하며, 이동체는 R = {r1, ..., rN}과 같이 표현될 수 있다. 이동체의 시작점과 목표점은 각각 S = [s1, ..., sN] 과 G = [g1, ..., gN]으로 표현된다. 이동체 ri에 부여된 공간 Ci는 해당 이동체 ri의 가능한 모든 좌표 pi의 집합으로 정의되므로, N개의 이동체가 이동할 수 있도록 주어진 전체 공간은 C = C1 × ... × CN과 같이 표현될 수 있다. 이동체 ri에 대해 산출되는 경로는 ωi로 표현된다.
또한, 이하에서 소개되는 실시예들에서 이동체들은 일정한 시간 간격에 따라 이동하며, 순차적으로 이동한다고 가정하자. 따라서, 만약 충돌이 없는 이동 경로가 발견되었다면, 각 이동체는 예를 들어 r1에서부터 rN의 순서대로 이동을 시도하게 된다. 나아가, 이동체 ri는 이동을 시도함에 있어서, 이미 이동을 완료한 이동체
Figure 112012022921193-pat00001
과 이동하지 못한 이동체
Figure 112012022921193-pat00002
에 대한 정보를 알고 있다고 가정한다. 물론, 실제 구현의 관점에서 이러한 정보들은 복수의 이동체들이 구비하는 별도의 입력 수단을 통해 입력되거나, 통신 수단을 통해 해당 정보를 공유하는 것이 가능하다.
도 2는 본 발명의 일 실시예에 따른 도 1의 경로 계획에서 각각의 이동체가 획득한 독자적인 이동 경로를 따라 이동할 경우의 충돌에 따른 상호 관계를 설명하기 위한 도면이다.
앞서 설명한 바와 같이 본 발명의 실시예들은 첫 번째 과정을 통해 각각의 이동체의 독자적인 이동 경로를 획득하게 된다. 이 과정을 통해 이동체 자신은 다른 이동체의 존재 유무에 관계없이 자신의 최초 위치와 이동하고자 하는 위치 사이의 이동 경로를 획득할 수 있다. 물론, 이러한 경로 산출 과정은 다익스트라(Dijkstra) 방식과 같은 이동경로 획득 알고리즘을 활용할 수 있을 것이다.
이제, 충돌이 발생하지 않는 경로를 갖는 이동체는 산출된 이동 경로에 따라 도착점으로 이동하게 된다. 이동체가 순차적으로 이동한다는 가정을 이용하였으므로, 충돌이 일어나지 않는 경로는 이동체의 이동 경로에서 다른 이동체의 시작점 및 도착점이 없을 경우 이동 경로에 충돌이 없다고 판단할 수 있다. 충돌의 발생 여부는 다음과 같은 수학식 1의 경우를 검사함으로써 판단이 가능하다.
Figure 112012022921193-pat00003
수학식 1에서 πi는 다른 이동체의 존재를 무시하고 이동체 i에 대해 산출된 이동 경로를 나타낸다. 이러한 과정은 도 2에 예시되어 있다.
도 2에서 [A]는 최초에 주어진 이동체들의 시작점과 도착점을 표시한 도면이다. 여기서, 영문자 S는 시작점을, 영문자 G는 도착점을 나타내며, 작은 첨자는 이동체의 식별 번호를 나타낸다. 도 2의 [A]를 참조하면, 이동체 1과 이동체 3의 이동 경로 상에 다른 이동체의 시작점 혹은 도착점이 존재하지 않으므로, 이동체 1과 이동체 3은 이동이 가능하다. 반면, 이동체 2의 이동 경로 상에는 이동체 1의 도착점이 포함되어 있으므로 이동체 2(210)는 이동이 불가능하다. 즉, 도 2의 [B]는 각각의 이동체들이 독자적으로 산출한 이동 경로 상에서 다른 이동체가 존재하지 않는 경우의 이동이 완료된 상황을 예시하고 있다. 여기서, 짙은 색상으로 표시된 것은 현재 이동체의 위치를 나타내는 것으로, 도 2의 [A]와 [B]를 비교하면, 이동체 1과 이동체 3이 시작점에서 도착점으로 이동하였음을 알 수 있다.
이제, 본 발명의 실시예들이 채택하고 있는 두 번째 경로 계획 과정인, 이동하지 못한 로봇들을 움직이기 위한 과정을 살펴보자. 자신의 이동 경로 상에 다른 이동체가 위치하고 있어 이동이 불가능한 이동체들을 이동시키기 위해서는, 충돌이 예상되는 이동체를 다른 가까운 지점으로 임시로 옮김으로써 해결이 가능하다. 이 과정은 다시 2개의 부과정으로 나뉠 수가 있는데, 그 하나는 이동하고자 하는 이동체를 제외한 다른 이동체의 위치를 옮기는 과정이고, 다른 하나는 이동하고자 하는 이동체 자신의 위치를 바꾸어 주는 과정이다. 각각을 순차적으로 설명한다.
(2-1) 이동체의 위치 변경: 다른 이동체의 위치를 이동
어떤 이동체의 도착점이나 시작점이 이미 산출된 이동 경로 상에 존재할 경우 충돌이 예상되므로, 이동체의 도착점 또는 시작점을 이동시킴으로써 충돌 없이 이동체를 도착점으로 이동시킬 수 있다. 다른 이동체의 존재를 고려하지 않고 산출된 이동체 i의 경로를 πi라고 하면, 다른 이동체 j의 위치는 임시적으로 다음의 수학식 2와 같이 옮겨질 수 있다.
Figure 112012022921193-pat00004
여기서
Figure 112012022921193-pat00005
는 현재 이동체 j의 시작점이나 도착점의 좌표를 임시로 옮겼을 때 충돌을 피할 수 있게 하는 지점을 나타낸다. 이와 같이 충돌이 발생하는 위치(시작점 또는 도착점)을 임시로 이동시킴으로써 전체 이동체들을 충돌 없이 도착점까지 이동시킬 수 있게 된다. 이러한 과정은 도 3에 예시되어 있다.
도 3은 본 발명의 일 실시예에 따른 도 1의 경로 계획에서 충돌을 방지하기 위해 다른 이동체의 위치를 변화시키는 방법을 설명하기 위한 도면이다. 도 3에서 이동체 2(이동체 i에 해당한다.)의 이동 경로 상에는 이동체 1(이동체 j에 해당한다.)의 도착점이 존재한다. 따라서, 이동체 1의 도착점 (=
Figure 112012022921193-pat00006
)을 도 3과 같이
Figure 112012022921193-pat00007
으로 임시로 이동시킨 후, 이동체 2를 움직인다. 즉,
Figure 112012022921193-pat00008
를 수행한다. 그런 다음, 이동체 2가 움직인 후에는 임시로 옮겨진 이동체 1을 원래의 위치
Figure 112012022921193-pat00009
로 옮겨 이동체의 이동을 진행하게 된다.
(2-2) 이동체의 위치 변경: 이동하고자 하는 이동체 자신의 위치를 이동
이상에서 제안된 (2-1)의 방법(다른 이동체의 임시적인 위치 이동)만을 통해 전체 이동체들을 모두 충돌 없이 옮길 수 없는 경우가 발생할 수 있다. 이러한 경우가 도 4에 예시되어 있다.
도 4는 본 발명의 일 실시예에 따른 도 1의 경로 계획에서 각각의 이동체가 획득한 독자적인 이동 경로를 따라 이동할 경우, 다른 이동체의 임시적인 위치 이동만으로는 충돌을 해소할 수 없는 상황을 예시한 도면이다. 도 4에서 첫 번째 이동체 3이 움직이기 위해서는 이동체 3의 경로 상에서 이동체 1과 이동체 2가 존재하지 않아야만 한다. 그러나, 이동체 3의 경로 상에는 항상 이동체 1 혹은 이동체 2가 위치하게 되어 이들 이동체 1 및 이동체 2의 임시적인 위치 이동만으로는 충돌 없는 이동 경로를 획득할 수 없다. 즉, 도 4의 [B]에 예시된 바와 같이 독자적인 이동을 통해서는 이동체 2 및 이동체 3은 움직일 수 없으며, 그 결과 여전히 시작점(410, 420)에 머물러 있는 형상이 나타나게 된다.
이 때, 이동하고자 하는 이동체 3 자신의 위치를 이동체 3의 이동 경로를 따라 움직임으로써 충돌없는 이동 경로를 얻을 수 있다. 즉, 앞서 제안된 방법(2-1)이 다른 이동체의 위치를 임시로 이동시키는 방법이었다면, 이번 방법(2-2)은 이동체 자신의 시작점의 위치를 이동시키는 방법에 해당한다. 이러한 과정은 아래의 수학식 3과 같이 이루어진다.
Figure 112012022921193-pat00010
수학식 3에서,
Figure 112012022921193-pat00011
는 임시적으로 부여된 이동체 i의 시작점을 나타낸다. 즉, 수학식 3은 다른 이동체의 위치 이동에 의해 충돌을 회피할 수 없는 경우, 이동체 i의 경로 πi에 속하는 임의의 위치
Figure 112012022921193-pat00012
로 이동체 i 자신의 시작점을 변경하는 것을 의미한다. 이러한 과정을 통하여 앞선 도 4의 예제의 이동체들은 도 5에서 예시된 방식에 따라 도착점에 도달할 수 있다.
도 5는 본 발명의 일 실시예에 따른 도 1의 경로 계획에서 충돌을 방지하기 위해 이동체 자신의 시작점을 이동시키는 방법을 설명하기 위한 도면이다. 도 5에서 첫 번째 과정에서는 i=3, j=1,2에 해당하고, 두 번째 과정과 세 번째 과정에서는 i=2, j=1에 해당하며, 마지막 네 번째 과정에서는 위치 이동이 완료된 상태를 도시하고 있다. 이상의 과정을 통해 이동체들을 서로 충돌을 회피하며 각자 목표로 하는 도착점에 도달하게 된다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 도 1의 경로 계획의 전체 알고리즘을 도시한 흐름도와 의사 코드(pseudo-code)이다. 도 6의 알고리즘에서
Figure 112012022921193-pat00013
Figure 112012022921193-pat00014
가 존재하지 않을 때 이동체 i의 시작점을 이동시킬 수 있는 위치를 나타낸다.
610 단계에서, 이동체 i에 대한 경로 πi가 산출된다. 620 단계에서는 다른 모든 이동체의 시작점 Sj와 도착점 Gj가 이동체 i 자신의 경로 πi 상에 존재하는지 여부를 검사한다. 검사 결과에 따라, 충돌의 위험이 존재한다면 630 단계로 진행하고, 충돌의 위험이 없다면 640 단계로 진행하여 이동체 i를 이동시킨다.
630 단계에서는 다른 이동체의 위치(시작점 또는 도착점)를 임시로 이동시켰을 때, 충돌을 회피할 수 있는 지점
Figure 112012022921193-pat00015
가 존재하는지 여부를 검사한다. 그런 다음, 검사 결과에 따라 해당 지점이 존재한다면 640 단계로 진행하여 이동체 i를 이동시키고, 해당 지점이 존재하지 않는다면 650 단계로 진행하여 이동체 i 자신의 시작점을 옮김으로써 충돌을 회피할 수 있는 지점
Figure 112012022921193-pat00016
가 존재하는지 여부를 검사하게 된다.
650 단계의 검사를 통해
Figure 112012022921193-pat00017
가 존재할 경우 620 단계로 진행하여 이동체 i의 경로 상에 충돌이 예상되는지 여부를 재차 검사하게 되며,
Figure 112012022921193-pat00018
가 존재하지 않는 경우에는 주어진 공간 내에서 이동체들을 충돌 없이 이동시킬 수 있는 경로가 존재하지 않는 것을 의미하므로 경로 계획을 종료하게 된다.
도 7은 이상의 도 6을 소프트웨어로서 구현할 수 있는 의사 코드를 예시하였다. 라인 1-7은 모든 이동체에 대해 각각 독립적인 이동 경로를 탐색하는 과정에 해당하고, 라인 8-28은 다른 이동체 또는 이동체 자신을 이동시킴으로써 충돌 없는 경로를 탐색하는 과정에 해당한다.
도 7에서, find_path()는 입력 좌표에 기초하여 시작점으로부터 목표점까지의 경로를 탐색하는 함수로서, 경로 탐색에 관해 알려진 다양한 알고리즘이 활용될 수 있다. collision()은 입력값에 기초하여 해당 이동체의 산출 경로 상에 충돌을 일으킬 수 있는 장애물이 존재하는지 여부를 검사하는 함수이다. 도 7의 알고리즘의 이름은 Path_planning()으로서, 라인 22에서 재귀 호출되어 경로 탐색을 재수행하게 된다.
도 8 및 도 9는 복수의 이동체가 존재하는 환경 하에서 이동체의 경로를 계획하는 장치에 관한 실시예를 각각 도시한 블록도로서, 각각의 구성들은 기본적으로 도 1을 통해 기술된 이동체의 경로를 계획하는 방법의 각 과정에 대응하므로, 여기서는 장치적 특성을 중심으로 그 개요만을 약술하도록 한다.
도 8은 하나의 물리적인 이동체(800)를 기준으로 이동체의 경로를 계획하는 기술적 수단이 구비된 모습을 예시한 도면으로, 이동체(800)는 입력부(10), 처리부(20) 및 구동부(30)를 포함할 수 있다.
입력부(10)는 이동체(800)가 이동 가능한 공간, 이동체 자신 및 다른 이동체의 시작점 및 도착점에 대한 위치 정보를 입력받는다. 이러한 위치 정보는 사용자의 편의에 따라 표현되는 다양한 좌표계에 기초한 값으로 입력될 수 있다.
처리부(20)는 상기 입력부(10)를 통해 입력된 이동체(800) 자신만의 좌표를 고려하여 시작점으로부터 도착점까지의 경로를 산출하고, 상기 산출된 경로 상의 이동체들 간의 충돌을 방지하는 위치 변화를 수행함으로써 상기 이동체(800)의 경로를 결정한다. 이러한 처리부(20)는, 상기 산출된 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부를 검사함으로써 이동체들 간의 충돌 발생 가능성을 판단하고, 상기 판단 결과 충돌 발생 가능성이 존재하는 경우, 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하며, 상기 검사 결과에 따라, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키거나, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 이동시킴으로써 충돌이 발생하지 않는 경로를 재탐색하는 과정 중 어느 하나를 선택적으로 수행함으로써 상기 이동체의 경로를 결정한다.
이 때, 상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는 경우, 상기 처리부(20)는, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키는 명령을 상기 다른 이동체에 전달하고, 상기 다른 이동체가 전달된 명령을 수행한 후, 상기 경로를 산출하고자 하는 이동체 자신에 대하여 산출된 경로를 따라 상기 이동체를 이동시키며, 임시로 이동된 상기 다른 이동체의 시작점 또는 도착점의 위치를 원래의 위치로 복귀시키는 명령을 상기 다른 이동체에 전달한다.
반면, 상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시키더라도 충돌 발생 가능성이 사라지지 않는 경우, 상기 처리부(20)는, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 상기 이동체가 충돌 없이 이동 가능한 다른 위치로 이동시키고, 상기 이동체의 시작점 이동에 의해 경로 상에 충돌 발생 가능성이 사라진 다른 이동체를 선택하여 상기 선택된 다른 이동체 각각에 대하여 산출된 경로를 따라 상기 선택된 다른 이동체를 이동시키는 명령을 전달하며, 상기 다른 이동체가 전달된 명령을 수행한 후, 상기 시작점이 이동된 이동체에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 경로를 결정한다.
이러한 처리부(20)는 이상의 동작을 수행하기 위해 적어도 하나의 프로세서(processor)에 의해 구현될 수 있으며, 필요에 따라서는 데이터의 연산과 임시 데이터의 저장을 위한 메모리(memory)가 활용될 수도 있다. 나아가, 도 6 내지 도 7의 알고리즘을 정의하는 소프트웨어 코드가 부가될 수도 있을 것이다.
구동부(30)는 상기 이동체(800)에 구비되어 상기 처리부(20)를 통해 결정된 경로에 따라 상기 이동체(800)를 이동시킨다.
도 9는 별도의 경로 계획 장치(900)를 통해 다수의 이동체들이 이동 계획을 수립한 후, 이를 각각의 이동체들(70)에 전달하는 구성을 예시하고 있다. 도 9에서 복수의 이동체의 경로를 계획하는 장치(900)는 입력부(10), 처리부(20) 및 통신부(40)를 포함할 수 있다. 입력부(10) 및 처리부(20)는 앞서 도 8을 통해 소개한 구성들과 실질적으로 동일하므로 여기서는 중복되는 설명을 생략한다.
다만, 처리부(20)는 상기 복수의 이동체(70)가 이동 가능한 좌표 공간 내에서 상기 다른 이동체의 시작점 또는 도착점의 위치를 임시로 이동시키고자 하는 후보 좌표를 검색하고, 상기 검색된 후보 좌표가 여전히 산출된 경로 상에 존재하는지 여부를 검사함으로써 상기 임시 이동에 의해 충돌 발생 가능성이 사라지는지 여부를 판단한다.
통신부(40)는 상기 처리부(20)를 통해 결정된 이동체의 경로를 상기 복수의 이동체(70) 각각에 전달함으로써 경로에 따른 이동을 유도한다. 이러한 통신부(40)는 본 실시예에 구현되는 환경을 고려하여 이동체(70)와의 통신에 유리한 다양한 단거리/장거리 통신 수단이 활용될 수 있다.
상기된 본 발명의 실시예들에 따르면, 복수의 이동체들 각각의 이동 경로를 독립적으로 산출한 후 충돌을 예측하여 이동체의 위치를 변화시킴으로써 이동체들 간의 상호 충돌을 해결하고, 이동체의 이동에 따른 충돌을 회피하는 과정에서 임시 위치를 지정하여 이동체를 이동시킴으로써 충돌 방지를 위한 연산량을 감소시킴으로써 교착 상태 내지 병목 현상을 빠르게 해소할 수 있으며, 주어진 공간 내의 완전한 충돌 회피 경로를 제공하는 것이 가능하다.
한편, 본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명에 대하여 그 다양한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10 : 입력부 20 : 처리부
30 : 구동부 40 : 통신부
800, 70 : 이동체
900 : 복수의 이동체의 경로를 계획하는 장치

Claims (14)

  1. 복수의 이동체(moving body)의 경로를 계획하는 방법에 있어서,
    하나의 이동체에 대하여 각각 자신만의 좌표를 고려하여 시작점으로부터 도착점까지의 경로를 산출하는 단계;
    상기 산출된 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부를 검사함으로써 이동체들 간의 충돌 발생 가능성을 판단하는 단계;
    상기 판단 결과 충돌 발생 가능성이 존재하는 경우, 상기 산출된 경로 상에 다른 이동체의 시작점이 존재한다면 상기 다른 이동체가 현재 위치해 있는 시작점을 임시로 이동시키기거나 또는 상기 산출된 경로 상에 다른 이동체의 도착점이 존재한다면 상기 다른 이동체를 상기 도착점으로 이동시킨 후 현재 위치해 있는 상기 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하는 단계; 및
    상기 검사 결과에 따라, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키거나, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 이동시킴으로써 충돌이 발생하지 않는 경로를 재탐색하는 과정 중 어느 하나를 선택적으로 수행함으로써 상기 이동체의 경로를 결정하는 단계;를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는 경우, 상기 이동체의 경로를 결정하는 단계는,
    상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키는 단계;
    상기 경로를 산출하고자 하는 이동체 자신에 대하여 산출된 경로를 따라 상기 이동체를 이동시키는 단계;
    임시로 이동된 상기 다른 이동체의 시작점 또는 도착점의 위치를 원래의 위치로 복귀시키는 단계; 및
    상기 다른 이동체 각각에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 상기 이동체들 각각의 경로를 결정하는 단계;를 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시키더라도 충돌 발생 가능성이 사라지지 않는 경우, 상기 이동체의 경로를 결정하는 단계는,
    상기 경로를 산출하고자 하는 이동체 자신의 시작점을 상기 이동체가 충돌 없이 이동 가능한 다른 위치로 이동시키는 단계;
    상기 이동체의 시작점 이동에 의해 경로 상에 충돌 발생 가능성이 사라진 다른 이동체를 선택하는 단계;
    상기 선택된 다른 이동체 각각에 대하여 산출된 경로를 따라 상기 선택된 다른 이동체를 이동시키는 단계; 및
    상기 시작점이 이동된 이동체에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 상기 이동체들 각각의 경로를 결정하는 단계;를 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하는 단계는,
    상기 복수의 이동체가 이동 가능한 좌표 공간 내에서 상기 다른 이동체의 시작점 또는 도착점의 위치를 임시로 이동시키고자 하는 후보 좌표를 검색하는 단계; 및
    상기 검색된 후보 좌표가 여전히 산출된 경로 상에 존재하는지 여부를 검사함으로써 상기 임시 이동에 의해 충돌 발생 가능성이 사라지는지 여부를 판단하는 단계;를 포함하는 방법.
  5. 제 1 항에 있어서,
    상기 하나의 이동체에 대하여 각각 자신만의 좌표를 고려하여 시작점으로부터 도착점까지의 경로를 산출하는 단계는,
    상기 하나의 이동체의 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부와 상관없이 상기 복수의 이동체들 각각의 경로를 획득하는 디커플(decoupled) 방식에 따르는 것을 특징으로 하는 방법.
  6. 이동체의 경로를 계획하는 장치에 있어서,
    이동체가 이동 가능한 공간, 이동체 자신 및 다른 이동체의 시작점 및 도착점에 대한 위치 정보를 입력받는 입력부;
    상기 입력부를 통해 입력된 이동체 자신만의 좌표를 고려하여 시작점으로부터 도착점까지의 경로를 산출하고, 상기 산출된 경로 상의 이동체들 간의 충돌을 방지하기 위해 상기 이동체 자신의 위치를 이동시키거나 상기 다른 이동체로 하여금 위치를 이동시키도록 유도하는 위치 변화를 수행함으로써 상기 이동체의 경로를 결정하는 처리부; 및
    상기 이동체에 구비되어 상기 결정된 경로에 따라 상기 이동체를 이동시키는 구동부;를 포함하는 장치.
  7. 제 6 항에 있어서,
    상기 처리부는,
    상기 산출된 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부를 검사함으로써 이동체들 간의 충돌 발생 가능성을 판단하고,
    상기 판단 결과 충돌 발생 가능성이 존재하는 경우, 상기 산출된 경로 상에 다른 이동체의 시작점이 존재한다면 상기 다른 이동체가 현재 위치해 있는 시작점을 임시로 이동시키기거나 또는 상기 산출된 경로 상에 다른 이동체의 도착점이 존재한다면 상기 다른 이동체를 상기 도착점으로 이동시킨 후 현재 위치해 있는 상기 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하며,
    상기 검사 결과에 따라, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키거나, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 이동시킴으로써 충돌이 발생하지 않는 경로를 재탐색하는 과정 중 어느 하나를 선택적으로 수행함으로써 상기 이동체의 경로를 결정하는 것을 특징으로 하는 장치.
  8. 제 7 항에 있어서,
    상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는 경우, 상기 처리부는,
    상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키는 명령을 상기 다른 이동체에 전달하고,
    상기 다른 이동체가 전달된 명령을 수행한 후, 상기 경로를 산출하고자 하는 이동체 자신에 대하여 산출된 경로를 따라 상기 이동체를 이동시키며,
    임시로 이동된 상기 다른 이동체의 시작점 또는 도착점의 위치를 원래의 위치로 복귀시키는 명령을 상기 다른 이동체에 전달하는 것을 특징으로 하는 장치.
  9. 제 7 항에 있어서,
    상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시키더라도 충돌 발생 가능성이 사라지지 않는 경우, 상기 처리부는,
    상기 경로를 산출하고자 하는 이동체 자신의 시작점을 상기 이동체가 충돌 없이 이동 가능한 다른 위치로 이동시키고,
    상기 이동체의 시작점 이동에 의해 경로 상에 충돌 발생 가능성이 사라진 다른 이동체를 선택하여 상기 선택된 다른 이동체 각각에 대하여 산출된 경로를 따라 상기 선택된 다른 이동체를 이동시키는 명령을 전달하며,
    상기 다른 이동체가 전달된 명령을 수행한 후, 상기 시작점이 이동된 이동체에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 경로를 결정하는 것을 특징으로 하는 장치.
  10. 복수의 이동체의 경로를 계획하는 장치에 있어서,
    이동체가 이동 가능한 공간, 상기 복수의 이동체들의 시작점 및 도착점에 대한 위치 정보를 입력받는 입력부;
    상기 입력부를 통해 입력된 이동체 자신만의 좌표를 고려하여 이동체들 각각의 시작점으로부터 도착점까지의 경로를 산출하고, 상기 산출된 경로 상의 이동체들 간의 충돌을 방지하기 위해 상기 이동체들 각각으로 하여금 위치를 이동시키도록 유도하는 위치 변화를 수행함으로써 상기 이동체의 경로를 결정하는 처리부; 및
    상기 결정된 이동체의 경로를 상기 복수의 이동체 각각에 전달함으로써 경로에 따른 이동을 유도하는 통신부;를 포함하는 장치.
  11. 제 10 항에 있어서,
    상기 처리부는,
    상기 산출된 경로 상에 다른 이동체의 시작점 또는 도착점이 존재하는지 여부를 검사함으로써 이동체들 간의 충돌 발생 가능성을 판단하고,
    상기 판단 결과 충돌 발생 가능성이 존재하는 경우, 상기 산출된 경로 상에 다른 이동체의 시작점이 존재한다면 상기 다른 이동체가 현재 위치해 있는 시작점을 임시로 이동시키기거나 또는 상기 산출된 경로 상에 다른 이동체의 도착점이 존재한다면 상기 다른 이동체를 상기 도착점으로 이동시킨 후 현재 위치해 있는 상기 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는지 여부를 검사하며,
    상기 검사 결과에 따라, 상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키거나, 상기 경로를 산출하고자 하는 이동체 자신의 시작점을 이동시킴으로써 충돌이 발생하지 않는 경로를 재탐색하는 과정 중 어느 하나를 선택적으로 수행함으로써 상기 이동체의 경로를 결정하는 것을 특징으로 하는 장치.
  12. 제 11 항에 있어서,
    상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시킴으로써 충돌 발생 가능성이 사라지는 경우, 상기 처리부는,
    상기 다른 이동체의 시작점 또는 도착점을 임시로 이동시키고,
    상기 경로를 산출하고자 하는 이동체 자신에 대하여 산출된 경로를 따라 상기 이동체를 이동시키고,
    임시로 이동된 상기 다른 이동체의 시작점 또는 도착점의 위치를 원래의 위치로 복귀시키며,
    상기 다른 이동체 각각에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 상기 이동체들 각각의 경로를 결정하는 것을 특징으로 하는 장치.
  13. 제 11 항에 있어서,
    상기 검사 결과 상기 산출된 경로 상에 존재하는 다른 이동체의 시작점 또는 도착점을 임시로 이동시키더라도 충돌 발생 가능성이 사라지지 않는 경우, 상기 처리부는,
    상기 경로를 산출하고자 하는 이동체 자신의 시작점을 상기 이동체가 충돌 없이 이동 가능한 다른 위치로 이동시키고,
    상기 이동체의 시작점 이동에 의해 경로 상에 충돌 발생 가능성이 사라진 다른 이동체를 선택하고,
    상기 선택된 다른 이동체 각각에 대하여 산출된 경로를 따라 상기 선택된 다른 이동체를 이동시키며,
    상기 시작점이 이동된 이동체에 대하여 이상의 경로 산출 과정을 재차 수행함으로써 상기 이동체들 각각의 경로를 결정하는 것을 특징으로 하는 장치.
  14. 제 11 항에 있어서,
    상기 처리부는,
    상기 복수의 이동체가 이동 가능한 좌표 공간 내에서 상기 다른 이동체의 시작점 또는 도착점의 위치를 임시로 이동시키고자 하는 후보 좌표를 검색하고,
    상기 검색된 후보 좌표가 여전히 산출된 경로 상에 존재하는지 여부를 검사함으로써 상기 임시 이동에 의해 충돌 발생 가능성이 사라지는지 여부를 판단하는 것을 특징으로 하는 장치.
KR1020120028858A 2012-03-21 2012-03-21 복수의 이동체의 경로를 계획하는 장치 및 방법 KR101401311B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120028858A KR101401311B1 (ko) 2012-03-21 2012-03-21 복수의 이동체의 경로를 계획하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120028858A KR101401311B1 (ko) 2012-03-21 2012-03-21 복수의 이동체의 경로를 계획하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130107062A KR20130107062A (ko) 2013-10-01
KR101401311B1 true KR101401311B1 (ko) 2014-05-29

Family

ID=49630587

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120028858A KR101401311B1 (ko) 2012-03-21 2012-03-21 복수의 이동체의 경로를 계획하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101401311B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467592B2 (en) * 2019-03-11 2022-10-11 Honda Motor Co., Ltd. Route determination method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6981270B2 (ja) * 2018-01-18 2021-12-15 トヨタ自動車株式会社 運転支援装置及び方法
CN113671965B (zh) * 2021-08-24 2024-03-12 同济大学 路径规划方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050005123A (ko) * 2003-07-03 2005-01-13 주식회사 우리기술 A 스타 알고리즘을 이용한 이동로봇의 주행 방법
KR20060078162A (ko) * 2004-12-30 2006-07-05 삼성전자주식회사 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및장치
JP2010231698A (ja) 2009-03-30 2010-10-14 Advanced Telecommunication Research Institute International ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050005123A (ko) * 2003-07-03 2005-01-13 주식회사 우리기술 A 스타 알고리즘을 이용한 이동로봇의 주행 방법
KR20060078162A (ko) * 2004-12-30 2006-07-05 삼성전자주식회사 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및장치
JP2010231698A (ja) 2009-03-30 2010-10-14 Advanced Telecommunication Research Institute International ネットワークロボットシステム、ロボット制御装置、ロボット制御方法およびロボット制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467592B2 (en) * 2019-03-11 2022-10-11 Honda Motor Co., Ltd. Route determination method

Also Published As

Publication number Publication date
KR20130107062A (ko) 2013-10-01

Similar Documents

Publication Publication Date Title
US11397442B2 (en) Travel planning system, travel planning method, and non-transitory computer readable medium
CN107074282B (zh) 用于运行车辆的方法和装置
US11860621B2 (en) Travel control device, travel control method, travel control system and computer program
CN108227716A (zh) 移动机器人的路径规划方法及系统
CN113406951A (zh) 行驶控制装置、行驶控制方法以及计算机程序
KR101401311B1 (ko) 복수의 이동체의 경로를 계획하는 장치 및 방법
KR20160004779A (ko) 실내 네비게이션 서비스 제공 방법 및 장치
JP7276185B2 (ja) タスク実行システム、無線接続方法、及びプログラム
CN116700298B (zh) 路径规划方法、系统、设备及存储介质
CN113759894A (zh) 信息处理装置、信息处理方法、信息处理系统以及计算机程序
CN112269377A (zh) 搬运设备的行驶控制方法和装置及电子系统
CN112197763B (zh) 地图构建方法、装置、设备和存储介质
Choi et al. Two tier search scheme using micro UAV swarm
CN110736463A (zh) 物业机器人导航方法、装置、计算机设备和存储介质
US20230273621A1 (en) Information processing apparatus, information processing method, and program
EP4141599A1 (en) Multi-robot route planning
JP6764138B2 (ja) 管理方法、管理装置、プログラム
EP3983913A1 (en) Methods and systems for path planning in a known environment
CN113841068A (zh) 信息处理装置、信息处理方法及信息处理程序
JP6437815B2 (ja) 情報処理システム、及び情報処理方法
CN114924575B (zh) 移动机器人路径规划方法、装置、电子设备及存储介质
US20240004399A1 (en) Method and system for remotely controlling robots, and building having traveling robots flexibly responding to obstacles
WO2023166682A1 (ja) 移動体の運行制御システム及び管理装置及びそれらの制御方法及びプログラム
JP7147406B2 (ja) 位置測定システムおよびプログラム
CN117387622A (zh) 一种机器人导航路径中的到达时间计算方法、装置及设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee