Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020222408 - REAL-TIME WAYPOINT PATH IMPROVEMENT METHOD, RECORDING MEDIUM IN WHICH PROGRAM FOR IMPLEMENTING SAME IS STORED, AND COMPUTER PROGRAM STORED IN MEDIUM IN ORDER TO IMPLEMENT SAME

Document

명세서

발명의 명칭

기술분야

1  

배경기술

2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19  

발명의 상세한 설명

기술적 과제

20   21  

과제 해결 수단

22   23   24   25   26   27   28   29   30  

발명의 효과

31   32   33   34   35   36   37   38   39   40   41   42   43   44  

도면의 간단한 설명

45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67  

발명의 실시를 위한 최선의 형태

68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164   165   166   167   168   169   170   171   172   173   174   175   176   177   178   179   180   181   182   183   184   185   186   187   188   189   190   191   192   193   194   195   196   197   198   199   200   201   202   203   204   205   206   207   208   209   210   211   212   213   214   215   216   217   218   219   220   221   222   223   224   225   226   227   228   229   230   231   232   233   234   235   236   237   238   239   240   241   242   243   244   245   246   247   248   249   250   251   252   253   254   255   256   257   258   259   260   261   262   263   264   265   266   267   268   269   270   271   272   273   274   275   276   277   278   279   280   281   282   283   284   285   286   287   288   289   290   291   292   293   294   295   296   297   298   299   300   301   302   303   304   305   306   307   308   309   310   311   312   313   314   315   316   317   318   319   320   321   322   323   324   325   326   327   328   329   330   331   332   333   334   335   336   337   338   339  

청구범위

1   2   3   4   5   6   7   8   9   10  

도면

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16  

명세서

발명의 명칭 : 실시간 웨이포인트 경로 개선 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램

기술분야

[1]
본 발명은 실시간 웨이포인트 경로 개선 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램에 관한 것으로서, 더욱 상세하게는 로봇의 센서 감지영역 외부의 로봇 진행방향 측 웨이포인트를 목표 웨이포인트로 결정하여, 보다 도전적으로 로봇이 보다 최적화된 경로를 찾아 자율주행이 가능한 실시간 웨이포인트 경로 개선 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램에 관한 것이다.

배경기술

[2]
자율주행 로봇은 스스로 주변을 살피고 장애물을 감지하면서 바퀴나 다리를 이용하여 목적지까지 최적 경로를 찾아가는 로봇을 말한다.
[3]
경로계획 또는 장애물 회피는 이동로봇의 자율주행에 있어서 중요한 요소기술이다. 로봇은 목적지까지 경로를 생성하여 이동하되 주변 장애물과 충돌하지 않고 목적지에 도달해야 한다. 좋은 경로라 함은 목적지까지의 이동 경로를 최소로 하는 최단경로이거나 또는 주변 장애물과의 충돌 가능성을 최소로 하는 안전 경로를 의미한다.
[4]
통상적으로 로봇 응용에 있어서는 안전경로가 보다 중요하지만 가장 이상적인 경로는 안전하면서도 가능한 한 최단인 경로일 것이다.
[5]
통상적으로 안전경로를 확보하는 방법으로는 로봇에 장착된 장애물 감지 센서(레이져, 초음파 등 주변 장애물과 의 거리를 측정할 수 있는 장치 등)를 이용하여 빈 공간이 가장 많은 방향을 찾고 목적지 방향을 같이 고려하여 로봇의 이동 방향을 결정하는 방법이 주로 사용되어 왔다. 빈 공간을 향한 방향과 목적지를 향한 방향과의 가중치는 실험적으로 결정된다. 빈 공간에 가중치를 많이 주면 장애물과의 충돌 가능성을 최소화할 수 있지만 긴 경로를 돌아야 하거나 극단적인 경우에는 목적지에 도착하지 못하는 경우가 발생한다. 반대로 목적지에 대한 가중치를 많이 주면 안전성이 떨어진다.
[6]
자율주행 로봇이 갖추어야 할 기본적인 주행능력은 원하는 목표지점까지 충돌없이 최적의 경로로 이동할 수 있는 지능적 항법 능력이며, 이러한 지능적 항법을 위해서는 경로계획 기술과 위치인식 요소기술이 필요하다.
[7]
여기서, 경로계획 기술은, 전역 경로계획과 지역 경로계획 기술로 나눌 수 있다.
[8]
먼저, 전역 경로계획은, 주어진 환경지도를 이용하여 출발점에서 목표 지점까지의 최적의 경로를 탐색하는 것이고,
[9]
지역 경로계획은, 센서로 인식한 동적 장애물을 회피하도록 실제 이동궤적을 생성하는 것을 의미한다.
[10]
아울러, 위치인식 기술은, 주행시 로봇의 현재 위치를 지도상에서 알아내는 위치결정 기술이다.
[11]
상기한 바와 같은 전역 경로계획 방법에 대한 종래기술의 예로서, 대표적으로, 예를 들면, "A note on two problems in connexion with graphs(E. W. Dijkstra, Numerische Mathematik, Volume 1, Number 1, 269-271, 1959)"에 게시된 바와 같은 "Dijkstra 알고리즘"이 있다.
[12]
더 상세하게는, 상기한 Dijkstra 알고리즘은, 최초의 경로계획으로 제시되어 현재까지 여러 분야에서 많이 사용되고 있으나, 모든 공간을 탐색하므로 많은 연산시간이 요구된다는 단점이 있다.
[13]
또한, 상기한 바와 같은 전역 경로계획 방법에 대한 종래기술의 다른 예로서, 예를 들면, "A Formal Basis for the Heuristic Determination of Minimum Cost Paths in Graphs_A star(PETER E. HART, VOL. ssc-4 ,NO 2, 1968)"에 게시된 바와 같은 A* 알고리즘이 있다.
[14]
더 상세하게는, 상기한 A* 알고리즘은, Dijkstra 알고리즘의 보완 형태로, 적절한 평가함수를 추가함으로써, 깊이 탐색과 넓이 탐색을 기반으로 Dijkstra 알고리즘에 비해 더 빠른 탐색 시간을 달성할 수 있다.
[15]
지역 경로계획은 지역 궤적 계획기가 현재 로봇의 상태와 지역 환경 정보를 기반으로 로봇에게 주어진 전역 경로계획에 의해 생성된 경로를 따라감에 있어서 비환경적 장애물에 의한 충돌이 일어나지 않도록 이동할 수 있게 궤적을 계획하는 기술이다.
[16]
지역 경로계획은 환경 변화가 필연적으로 발생하는 일상 공간에서 장애물과 충돌 없이 이동로봇이 목적지로 이동하기 위한 필수적인 기술이며, 상기 전역 경로 계획과 달리 실시간성이 요구된다.
[17]
상기한 바와 같은 지역 경로계획 방법에 대한 종래기술의 예로서, 로봇이 지나가야 하는 웨이포인트를 부여하여 경로를 계획하는 증분(점진적) 계획 방법이 있다.
[18]
상기 증분(점진적) 계획 방법은 빠른 계산이 가능하지만 웨이포인트 간의 간격이 짧거나 웨이포인트 간의 각도가 작을 경우 로봇이 목표 웨이포인트를 지나간 뒤 다음 목표 웨이포인트를 향해 선회하는 경로가 커지게 되는 오버런 현상이 발생되는 문제가 있다.
[19]
한국등록특허 [10-1079197]에서는 자율주행 장치의 경로추적 방법이 개시되어 있다.

발명의 상세한 설명

기술적 과제

[20]
따라서, 본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 로봇의 센서 감지영역 외부의 로봇 진행방향 측 웨이포인트를 목표 웨이포인트로 결정하여, 오버런 현상이 발생되지 않으면서, 보다 도전적이며 보다 최적화된 경로를 찾아 자율주행이 가능한 실시간 웨이포인트 경로 개선 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램을 제공하는 것이다.
[21]
본 발명의 실시예들의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.

과제 해결 수단

[22]
상기한 바와 같은 목적을 달성하기 위한 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법은, 컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 프로그램 형태로 이루어지는 실시간 웨이포인트 경로 개선 방법에 있어서, 연산처리수단이 웨이포인트와 웨이포인트를 연결한 경로인 웨이포인트패스세그먼트들 중 목표지점까지 최적 경로를 형성하는 웨이포인트패스세그먼트 들의 집합인 웨이포인트패스를 결정하는 웨이포인트패스결정 단계(S10); 연산처리수단이 로봇의 센서로 감지된 로봇의 이동 가능한 영역 중 상기 로봇으로부터 직진으로 이동을 했을 때 장애물과 충돌이 없는 영역의 집합인 로컬비저블포지션스페이스 중에서, 상기 웨이포인트패스결정 단계(S10)에서 결정된 웨이포인트패스 상 마지막 웨이포인트의 다음 웨이포인트 또는 웨이포인트패스세그먼트의 다음 웨이포인트를 목표 웨이포인트인 로컬골로 결정하는 로컬골결정 단계(S20); 연산처리수단이 상기 로봇으로부터 상기 로컬골결정 단계(S20)에서 결정된 로컬골 까지 경로를 계획하는 경로계획 단계(S30); 및 상기 경로계획 단계(S30)에서 계획된 경로에 따라 상기 로봇을 제어하는 명령을 계산하여 상기 로봇의 이동을 제어하는 로봇제어 단계(S40);를 포함하는 것을 특징으로 한다.
[23]
또한, 상기 경로계획 단계(S30)는 이동체의 현재 위치로부터 상기 로컬골과 그 이전 웨이포인트를 연결한 웨이포인트패스세그먼트에서 상기 로컬골로부터 가장 가까운 장애물 까지의 영역인 로컬골엑세서블패스세그먼트로 진입하는 경로를 계획하는 것을 특징으로 한다.
[24]
또, 상기 경로계획 단계(S30)는 상기 로컬골엑세서블패스세그먼트로 진입하는 임시 웨이포인트인 엑세서블웨이포인트를 계획하여 경로를 계획하는 것을 특징으로 한다.
[25]
또한, 상기 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 있는 경우, 로컬골엑세서블패스세그먼트 중 로컬골 까지의 거리가 가장 짧은 지점을 엑세서블웨이포인트로 결정하는 것을 특징으로 한다.
[26]
또, 상기 경로계획 단계(S30)는 로컬골엑세서블패스세그먼트 상에 장애물이 있는 경우, 로컬웨이포인트 간의 경로 상에 장애물과의 충돌이 없도록, 로컬비저블포지션스페이스 상의 장애물이 없는 진행 방향 측으로 임시 웨이포인트인 로컬웨이포인트를 계획하고, 로컬골엑세서블패스세그먼트 상의 장애물을 지난 이후의 지점에 엑세서블웨이포인트를 계획하여, 상기 로컬웨이포인트와 엑세서블웨이포인트를 지나는 경로를 계획하는 것을 특징으로 한다.
[27]
또한, 상기 경로계획 단계(S30)는 로컬골엑세서블패스세그먼트 상에 장애물이 있는 경우, 로컬웨이포인트와 엑세서블웨이포인트의 코스트가 가장 작게 로컬웨이포인트와 엑세서블웨이포인트를 설정하는 것을 특징으로 한다.
[28]
또, 상기 경로계획 단계(S30)는 로컬골엑세서블패스세그먼트 상에 장애물이 있는 경우, 현재 로봇의 진행방향과 이루는 각도가 최소가 되는 로컬웨이포인트를 설정하는 것을 특징으로 한다.
[29]
또한, 본 발명의 일 실시예에 따르면, 상기 실시간 웨이포인트 경로 개선 방법을 구현하기 위한 프로그램이 저장된 컴퓨터 판독 가능한 기록매체가 제공되는 것을 특징으로 한다.
[30]
아울러, 본 발명의 일 실시예에 따르면, 상기 실시간 웨이포인트 경로 개선 방법을 구현하기 위해, 컴퓨터 판독 가능한 기록매체에 저장된 프로그램이 제공되는 것을 특징으로 한다.

발명의 효과

[31]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램에 의하면, 로봇의 센서 감지영역 외부의 로봇 진행방향 측 웨이포인트를 목표 웨이포인트로 결정하여, 보다 도전적으로 로봇이 보다 최적화된 경로를 찾아 자율주행이 가능함으로써, 로봇의 오버런 발생을 최소화시킴과 동시에 연산량이 적어 실시간 경로 연산이 가능한 효과가 있다.
[32]
또, 순방향경로와 역방향경로를 이용한 양방향경로를 계획하여 로봇의 오버런이나 진동이 발생을 최소화시킴과 동시에 실시간 경로 연산이 가능한 효과가 있다.
[33]
또한, 이동에 필요한 비용 함수를 분해하여 연산량을 줄이는 함수분해 기반 비용최소화 알고리즘을 적용함으로써, 경로계산에 필요한 연산량을 더욱 줄일 수 있는 효과가 있다.
[34]
또, 시간배위안전영역 을 근거로 경로계산을 함으로써, 경로계산에 필요한 연산량을 더욱 줄일 수 있는 효과가 있다.
[35]
또한, 웨이포인트설정 단계, 역방향경로계산 단계, 순방향경로계산 단계, 로봇제어명령생성 단계를 수행하되, 역방향경로계산 단계를 순방향경로계산 단계보다 먼저 수행함으로써, 목표 웨이포인트를 보다 부드럽게 지나가도록 경로를 형성할 수 있 효과가 있다.
[36]
또, 순방향경로와 역방향경로를 연결하는 연결경로를 이용함으로써, 순방향경로와 역방향경로를 로봇에 무리를 주지 않도록 연결할 수 있는 효과가 있다.
[37]
또한, 역방향경로계산 단계와 순방향경로계산 단계 사이에 연결경로확인 단계를 수행함으로써, 경로계산에 필요한 연산량을 더욱 줄일 수 있는 효과가 있다.
[38]
또, 연결경로가 존재하면 연결경로 및 역방향경로에 대한 순방향 타임인덱스를 설정하여, 계산 시 고려되지 않았던 연결경로 및 역방향경로의 동적 장애물과의 충돌을 확인함으로써, 보다 빠르고 안정적인 경로생성이 가능한 효과가 있다.
[39]
또한, 로컬골엑세서블패스세그먼트로 진입하는 경로를 계획함으로써, 웨이포인트로 진입하는 경로에 비해 오버런 발생을 줄일 수 있는 효과가 있다.
[40]
또, 로컬골엑세서블패스세그먼트로 진입하는 엑세서블웨이포인트를 계획하여 경로를 계획함으로써, 로컬골로 진입하는 경로에 비해 오버런 발생을 더욱 줄일 수 있는 효과가 있다.
[41]
또한, 장애물이 없는 경우, 엑세서블웨이포인트를 근거로 경로를 계획함으로써, 연산량을 줄임과 동시에 빠르게 로컬골엑세서블패스세그먼트로 진입하는 최적화된 경로를 계획할 수 있는 효과가 있다.
[42]
또, 장애물이 있는 경우, 로컬웨이포인트와 엑세서블웨이포인트를 근거로 경로를 계획함으로써, 장애물이 출현하여도 연산량을 줄임과 동시에 빠르게 로컬골엑세서블패스세그먼트로 진입하는 최적화된 경로를 계획할 수 있는 효과가 있다.
[43]
또한, 장애물이 있는 경우, 로컬웨이포인트와 엑세서블웨이포인트의 코스트가 가장 작게 로컬웨이포인트와 엑세서블웨이포인트를 설정함으로써, 위험 요소를 최소화 시킬 수 있는 효과가 있다.
[44]
또, 장애물이 있는 경우, 현재 로봇의 진행방향과 이루는 각도가 최소가 되는 로컬웨이포인트를 설정함으로써, 오버런을 최소화 시킬 수 있는 효과가 있다.

도면의 간단한 설명

[45]
도 1은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 흐름도.
[46]
도 2는 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬워크스페이스를 설명하기 위한 예시도.
[47]
도 3은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬포지션스페이스를 설명하기 위한 예시도.
[48]
도 4는 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬비저블포지션스페이스를 설명하기 위한 예시도.
[49]
도 5는 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 로컬골결정 단계에서 로컬골이 결정되는 과정을 설명하기 위한 예시도.
[50]
도 6은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬골엑세서블패스세그먼트를 설명하기 위한 예시도.
[51]
도 7은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬웨이포인트와 엑세서블웨이포인트를 설명하기 위한 예시도.
[52]
도 8은 본 발명의 일 실시예에 따른 시간상태 영역에서의 온라인 양방향 경로 계획 방법의 흐름도.
[53]
도 9는 본 발명의 다른 실시예에 따른 시간상태 영역에서의 온라인 양방향 경로 계획 방법의 흐름도.
[54]
도 10은 본 발명의 또 다른 실시예에 따른 시간상태 영역에서의 온라인 양방향 경로 계획 방법의 흐름도.
[55]
도 11은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법이 적용된 로봇의 이동에 따라 실시간으로 경로를 계산하는 예를 보여주는 예시도.
[56]
도 12는 도 11의 경로 계산 결과 로봇이 이동한 경로를 보여주는 예시도.
[57]
도 13은 문이 열리고 닫히는 곳에서의 시뮬레이션 결과를 보여주는 예시도.
[58]
도 14는 센싱데이터의 업데이트 및 경로 계산 주기에 따라 변화되는 시뮬레이션 결과를 보여주는 예시도.
[59]
도 15는 본 발명이 적용되지 않은 일반적인 경로계획에 따른 자율주행 시뮬레이션 결과를 보여주는 예시도.
[60]
도 16은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법이 적용된 경로계획에 따른 자율주행 시뮬레이션 결과를 보여주는 예시도.
[61]
*도면의 주요부호에 대한 상세한 설명*
[62]
S10: 웨이포인트패스결정 단계
[63]
S20: 로컬골결정 단계
[64]
S30: 경로계획 단계
[65]
S32: 웨이포인트설정 단계 S33: 역방향경로계산 단계
[66]
S34: 연결경로확인 단계 S35: 순방향경로계산 단계
[67]
S40: 로봇제어 단계

발명의 실시를 위한 최선의 형태

[68]
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야한다.
[69]
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
[70]
반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
[71]
본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 공정, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 공정, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
[72]
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
[73]
이하, 첨부된 도면을 참조하여 본 발명을 더욱 상세하게 설명한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정하여 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 또한, 사용되는 기술 용어 및 과학 용어에 있어서 다른 정의가 없다면, 이 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 통상적으로 이해하고 있는 의미를 가지며, 하기의 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 설명은 생략한다. 다음에 소개되는 도면들은 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 예로서 제공되는 것이다. 따라서, 본 발명은 이하 제시되는 도면들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 또한, 명세서 전반에 걸쳐서 동일한 참조번호들은 동일한 구성요소들을 나타낸다. 도면들 중 동일한 구성요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의해야 한다.
[74]
도 1은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 흐름도이고, 도 2는 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬워크스페이스를 설명하기 위한 예시도이며, 도 3은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬포지션스페이스를 설명하기 위한 예시도이고, 도 4는 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬비저블포지션스페이스를 설명하기 위한 예시도이며, 도 5는 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 로컬골결정 단계에서 로컬골이 결정되는 과정을 설명하기 위한 예시도이고, 도 6은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬골엑세서블패스세그먼트를 설명하기 위한 예시도이며, 도 7은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법에 적용되는 로컬웨이포인트와 엑세서블웨이포인트를 설명하기 위한 예시도이고, 도 8은 본 발명의 일 실시예에 따른 시간상태 영역에서의 온라인 양방향 경로 계획 방법의 흐름도이며, 도 9는 본 발명의 다른 실시예에 따른 시간상태 영역에서의 온라인 양방향 경로 계획 방법의 흐름도이고, 도 10은 본 발명의 또 다른 실시예에 따른 시간상태 영역에서의 온라인 양방향 경로 계획 방법의 흐름도이며, 도 11은 본 발명의 실시간 웨이포인트 경로 개선 방법이 적용된 로봇의 이동에 따라 실시간으로 경로를 계산하는 예를 보여주는 예시도이고, 도 12는 도 11의 경로 계산 결과 로봇이 이동한 경로를 보여주는 예시도이며, 도 13은 문이 열리고 닫히는 곳에서의 시뮬레이션 결과를 보여주는 예시도이고, 도 14는 센싱데이터의 업데이트 및 경로 계산 주기에 따라 변화되는 시뮬레이션 결과를 보여주는 예시도이며, 도 15는 본 발명이 적용되지 않은 일반적인 경로계획에 따른 자율주행 시뮬레이션 결과를 보여주는 예시도이고, 도 16은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법이 적용된 경로계획에 따른 자율주행 시뮬레이션 결과를 보여주는 예시도이다.
[75]
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법은 컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 프로그램 형태로 이루어지는 실시간 웨이포인트 경로 개선 방법에 있어서, 웨이포인트패스결정 단계(S10), 로컬골결정 단계(S20), 경로계획 단계(S30) 및 로봇제어 단계(S40)를 포함한다.
[76]
설명에 앞서, 본 명세서( 및 특허청구범위)에서 사용되는 용어에 대해 간단히 설명하도록 한다.
[77]
웨이포인트는 로봇이 주행을 위한 목표로 지정할 수 있는 지점을 의미하며 도면에서는 점으로 표시하였다. 목표로 한다는 것은 웨이포인트를 경유하여 지나갈 수도 있으나, 경유하지 않고 근처를 지나갈 수도 있다.
[78]
웨이포인트패스세그먼트는 웨이포인트와 웨이포인트를 연결한 경로를 의미한다. 일반적으로 웨이포인트패스세그먼트는 점(웨이포인트)과 점(웨이포인트)을 연결한 선분이 될 수 있으나, 곡선이 될 수도 있다. 또한, 웨이포인트패스세그먼트는 맵 상의 장애물과는 충돌이 없는 비교적 안전한 경로이다. 다시 말해, 맵 상에 표시된 고정된 장애물과는 충돌이 없는 경로이다.
[79]
웨이포인트패스는 목표지점까지 최적 경로를 형성하는 웨이포인트패스세그먼트들의 집합을 의미한다. 즉, 웨이포인트패스는 목표지점 까지의 웨이포인트패스세그먼트들로 이루어진 경로이며, 선분의 집합이 될 수 있다.
[80]
로컬워크스페이스는 센서데이터 기반 워크스페이스(영역)를 의미한다.(도 2 참조)
[81]
로컬워크스페이스는 로컬프리워크스페이스, 로컬옵스타클워크스페이스 및 로컬언노운워크스페이스를 포함한다.
[82]
로컬프리워크스페이스 는 센서로 감지된 장애물이 없는 워크스페이스를 의미하며, 도 2의 주황색 면으로 표시된 영역에 해당된다.
[83]
로컬옵스타클워크스페이스 는 센서로 감지된 장애물로 제한된 워크스페이스를 의미하며, 도 2의 보라색 선분으로 표시된 영역에 해당된다.
[84]
로컬언노운워크스페이스 는 센서로 감지되지 않는 지역이라 장애물과의 충돌을 예측할 수 없는 워크스페이스를 의미하며, 도 2의 색이 없는 영역에 해당된다.
[85]
로컬포지션스페이스는 로봇의 형상에 따른 충돌을 고려한 센서데이터 기반 워크스페이스(영역)를 의미한다.(도 3 참조)
[86]
로컬포지션스페이스는 로컬옵스타클포지션스페이스, 로컬프리포지션스페이스, 로컬언노운포지션스페이스 및 로컬비저블포지션스페이스를 포함한다.
[87]
로컬옵스타클포지션스페이스 는 센서로 감지된 장애물 영역 과 충돌하는 워크스페이스를 의미하며, 도 3의 주황색 영역에 해당된다.
[88]
로컬프리포지션스페이스 는 센서로 감지된 장애물과 충돌이 없는 워크스페이스를 의미하며, 도 3의 하늘색 영역에 해당된다.
[89]
로컬언노운포지션스페이스 는 센서로 감지되지 않아 충돌을 예측할 수 없는 워크스페이스를 의미하며, 도 3의 색이 없는 영역에 해당된다.
[90]
로컬비저블포지션스페이스 는 현재 로봇의 위치로부터 로봇이 직진으로 이동을 했을 때 장애물과 충돌이 없는 영역(공간)의 집합을 의미하며, 도 4의 붉은색 영역에 해당된다.
[91]
로컬골엑세서블패스세그먼트 는 로컬골과 그 이전 웨이포인트를 연결한 웨이포인트패스세그먼트 중 장애물과 충돌 없이 로컬골로 바로 접근할 수 있는 영역을 의미하며, 도 6의 보라색 선분으로 표시된 영역에 해당된다.
[92]
기본적인 변수 및 용어를 정리하였으나, 설명에 필요한 모든 변수 및 용어를 정리한 것은 아니며, 상기에 정의된 변수 및 용어 이외에 새로이 등장되는 변수 및 용어들은 추후 설명하도록 한다.
[93]
웨이포인트패스결정 단계(S10)는 연산처리수단이 웨이포인트와 웨이포인트를 연결한 경로인 웨이포인트패스세그먼트들 중 목표지점까지 최적 경로를 형성하는 웨이포인트패스세그먼트 들의 집합인 웨이포인트패스를 결정한다.
[94]
웨이포인트패스결정 단계(S10)는 사전에 입력된 맵 정보를 근거로 웨이포인트를 연결한 최적 경로를 결정한다.
[95]
상기 웨이포인트패스는 초기 경로라고 볼 수 있으나, 로봇이 웨이포인트패스를 따라 가는 것은 아님을 유념해야 한다.
[96]
즉, 상기 웨이포인트패스는 최적 경로를 찾아가기 위해 참고하는 정보일 뿐이다.
[97]
로컬골결정 단계(S20)는 연산처리수단이 로봇의 센서로 감지된 로봇의 이동 가능한 영역 중 상기 로봇으로부터 직진으로 이동을 했을 때 (맵 상의 )장애물과 충돌이 없는 영역의 집합인 로컬비저블포지션스페이스 중에서, 상기 웨이포인트패스결정 단계(S10)에서 결정된 웨이포인트패스 상 마지막 웨이포인트의 다음 웨이포인트 또는 웨이포인트패스세그먼트의 다음 웨이포인트를 목표 웨이포인트인 로컬골로 결정한다.
[98]
로컬비저블포지션스페이스는 로컬프리포지션스페이스 보다 영역이 좁다.
[99]
이는, 로봇의 형상에 따른 충돌을 고려하기 때문이다.
[100]
이를 이해하기 쉽도록, 도 4에 로컬비저블포지션스페이스는 붉은색으로, 로컬프리포지션스페이스는 하늘색으로 표시하여 중첩되게 표시하였다.
[101]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법은 보다 도전적으로 로봇이 보다 최적화된 경로를 찾기 위한 것으로,
[102]
로컬옵스타클포지션스페이스는 충돌이 발생될 것이 명확하기 때문에, 로컬언노운포지션스페이스를 고려하여 최적화된 경로를 찾기 위해 고민해 보면,
[103]
로컬언노운포지션스페이스에 포함되어 있으면서, 글로벌패스가 만들어진 웨이포인트패스 상에서는(즉, 로컬언노운포지션스페이스와 웨이포인트패스의 교집합인 부분) 맵 상의 장애물과는 충돌이 없으나, 맵 상에 없었던 장애물(사람 등)과는 충돌이 있을 수 있다.
[104]
따라서, 로컬포지션스페이스 중 위험성이 낮은 순서로는, 로컬비저블포지션스페이스, 로컬프리포지션스페이스, 로컬언노운포지션스페이스, 로컬옵스타클포지션스페이스 순이 된다.
[105]
워크스페이스가 다 주어져 있고, 로봇의 포지션과 웨이포인트들이 지정되어 있다고 가정하면,
[106]
로봇(연산처리수단)은 웨이포인트패스 상에 위치해 있을 경우는 웨이포인트패스를 따라가고, 웨이포인트패스 상에서 떨어진 경우에는 감지된 정보를 기반으로 경로를 계획하여 이동한다.
[107]
다시 말해, 로봇이 장애물을 피하는 등의 이유로 웨이포인트패스 상에서 떨어졌을 때, 로봇은 로봇이 인식한 결과를 바탕으로 어떤 지점에 로컬골을 지정하고, 로컬골을 기반으로 경로를 계획할 수 있다.
[108]
일반적으로, 기본 웨이포인트패스 상에 로컬골을 결정하고 로컬골 쪽으로 가기 위한 경로(패스)를 계획한다.
[109]
이때 중요한 것이 로컬골을 어디에 정할 것인가의 문제이다.
[110]
로컬비저블포지션스페이스는 의미가 있는 것이, 사전에 계획된 경로를 개선하고자(경로를 리파인) 할 때, 로컬비저블포지션스페이스 상에서는 직진으로 이동해도 안전하기 때문에 첫 번째 웨이포인트를 찍기 좋다.
[111]
상기 로컬골결정 단계(S20)는 직진으로 안전하게 갈 수 있는 웨이포인트 중 가장 뒤에 있는 웨이포인트를 로컬골로 결정할 수 있지만, 도전적이지 않아 고려하지 않고, 보이지 않는 영역 즉 로컬언노운포지션스페이스 상에 웨이포인트를 찍기 위해 고민하였으며,
[112]
보다 도전 적으로 경로를 계획하기 위하여, 로컬비저블포지션스페이스 상에서 확인 가능한 마지막 웨이포인트 또는 웨이포인트패스세그먼트의 다음 웨이포인트를 로컬골로 결정한다.
[113]
이때, 로컬골에 장애물이 있으면 로컬언노운포지션스페이스 상의 로컬골엑세서블패스세그먼트 상에서 장애물과 충돌이 없으면서 로컬골과 가장 가까운 지점을 향해 경로를 경로를 계획할 수 있다.
[114]
로컬비저블포지션스페이스 중에서, 상기 웨이포인트패스 상 마지막 웨이포인트의 다음 웨이포인트 또는 웨이포인트패스세그먼트의 다음 웨이포인트를 목표 웨이포인트인 로컬골로 결정한다.
[115]
상기 로컬골결정 단계(S20)가 로컬비저블포지션스페이스와 상기 웨이포인트패스의 교집합에 해당되는 마지막 웨이포인트의 다음 웨이포인트를 로컬골로 결정하는 경우의 예를 들어 설명하면,
[116]
도 5의 좌측과 우측 그림 모두, 로컬비저블포지션스페이스 상의 마지막 웨이포인트가 파란 점으로 표시된 지점이기 때문에 그 다음 웨이포인트인 녹색 점으로 표시된 지점을 로컬골(W M)로 결정할 수 있다.
[117]
즉, 웨이포인트를 기준으로 로컬골을 결정할 경우, 확인 가능한(보이는) 마지막 웨이포인트의 다음 웨이포인트를 로컬골로 결정할 수 있다.
[118]
경로계획 단계(S30)는 연산처리수단이 상기 로봇의 위치로부터 상기 로컬골결정 단계(S20)에서 결정된 로컬골 까지 경로를 계획한다.
[119]
상기 경로계획 단계(S30)의 설명에 앞서, 본 명세서에서 사용되는 용어에 대해 간단히 설명하도록 한다.
[120]
'시간상태 영역'이란 시간에 대해 고려된 상태값의 집합을 말한다.
[121]
'상태값'이란 위치, 방위(헤딩각 등)에 대한 배위값을 포함하고 조향각, 속도(선속도, 각속도), 가속도 중 선택되는 어느 하나 또는 복수의 정보를 포함하는 값을 말한다. 예를 들면, (x 좌표, y좌표, 방위, 속도, 가속도) 등이 될 수 있다.
[122]
'시간배위 영역'이란 시간에 대해 고려된 배위값의 집합을 말한다.
[123]
'배위값'이란 위치, 방위(헤딩각 등)을 포함하는 값을 말한다. 예를 들면, (x 좌표, y좌표, 방위) 등이 될 수 있다.
[124]
설명을 위해 다양한 변수 및 용어를 지정하여 설명하였으며, 그 변수 및 용어들은 아래와 같다.
[125]
로봇의 현재 위치의 상태값은 's k'으로 표기하였고,
[126]
로봇의 현재 위치에서 순방향경로로 f 스텝 계산된 상태값은 's f'으로 표기하였고,
[127]
현재 목표 웨이포인트에 로봇의 도착 시 로봇의 상태값은 'g w'로 표기하였고,
[128]
현재 목표 웨이포인트에서 역방향경로로 b 스텝 계산된 상태값은 's -b'으로 표기하였고,
[129]
몇 스텝에 해당되는 계산인지 표시하는 타임인덱스는 'n'으로 표기하였고,
[130]
한 스텝을 계산하는데 부여된 시간 주기는 'T'로 표기하였고,
[131]
타임인덱스 n에서의 시간은 't'(t = nT)로 표기하였고,
[132]
로봇의 상태값은 's'(소문자 s)로 표기하였고,
[133]
로봇의 상태값의 집합인 상태영역은 'S'(대문자 S)로 표기하였고,
[134]
타임스텝 n 에서의 상태값인 시간상태값을 s n(소문자 s)이라 표기하였고,
[135]
시간상태 영역은 'S n'(s n ∈ S n)으로 표기하였고,
[136]
로봇의 배위값은 'q'(소문자 q)로 표기하였고,
[137]
로봇의 배위값의 집합인 배위영역은 'Q'(대문자 Q)로 표기하였고,
[138]
타임스텝 n 에서의 배위값인 시간배위값을 q n(소문자 q)이라 표기하였고,
[139]
시간배위 영역은 'Q n'(q n ∈ Q n)으로 표기하였고,
[140]
정적 장애물과 충돌하는 배위영역은 ' '로 표기하였고,
[141]
정적 장애물과 충돌하지 않는 여유정적배위영역은 ( = Q - )로 표기하였고,
[142]
타임인덱스 n에서 동적장애물과 충돌하는 배위영역은 으로 표기하였고,
[143]
정적 장애물 및 동적 장애물과 충돌하지 않는 여유동적배위영역은 ' '( = - )으로 표기하였고,
[144]
충돌을 피할 수 없는 상태를 '필연적충돌상태'라 하였다.
[145]
기본적인 변수 및 용어를 정리하였으나, 설명에 필요한 모든 변수 및 용어를 정리한 것은 아니며, 상기에 정의된 변수 및 용어 이외에 새로이 등장되는 변수 및 용어들은 추후 설명하도록 한다.
[146]
이하, 설명에서는 상태값 s k 에 해당되는 현재 상태의 지점에서 상태값 g w 에 해당되는 목표지점(현재 목표 웨이포인트)으로 로봇을 이동시키는 것을 가정하여 설명하도록 한다.
[147]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 순방향경로와 역방향경로를 점진적으로 계획(계산)하는 양방향경로를 계획하며, 순방향경로와 역방향경로를 계획하는데 이용되는 시간상태 영역에서의 상태값 (s n(n은 타임인덱스를 나타내며, 자연수))은 위치, 방위(헤딩각)에 대한 배위값을 포함하고 조향각, 속도(선속도, 각속도), 가속도 중 선택되는 어느 하나 또는 복수의 정보를 포함하는 것을 특징으로 할 수 있다.
[148]
순방향경로 계산은 로봇의 현재 위치 또는 순방향경로의 마지막 계산 지점에서 현재 목표 웨이포인트 또는 역방향경로의 마지막 계산 지점을 향한, 상태값(s)과 시간값을 고려한 시간상태 영역에서의 순방향경로를 계산한다.
[149]
여기서, 상기 시간값은 현재 시간부터 진행되는 앞으로의 시간을 확인할 수 있는 값으로, 타임인덱스(n) 만으로 사용할 수도 있지만, 한 스텝을 계산하는 계산주기에 타임인덱스(n)을 곱하여(계산주기 * 타임인덱스(n)) 사용할 수 있는 등 실제 진행 시간을 확인할 수 있다면 다양한 방법을 사용할 수 있음은 물론이다.
[150]
상기 순방향경로 계산은 최초 로봇의 현재 위치에서 현재 목표 웨이포인트를 향한 시간상태 영역에서의 순방향경로를 계산할 수 있다. 이후 순방향경로와 역방향경로가 계산되었다면 순방향경로의 마지막 계산 지점에서 역방향경로의 마지막 계산 지점을 향한 시간상태 영역에서의 순방향경로를 계산할 수 있다.
[151]
역방향경로 계산은 현재 목표 웨이포인트 또는 역방향경로의 마지막 계산 지점에서 로봇의 현재 위치 또는 순방향경로의 마지막 계산 지점을 향한 시간상태 영역에서의 역방향경로를 계산한다.
[152]
상기 역방향경로 계산은 최초 현재 목표 웨이포인트에서 로봇의 현재 위치를 향한 시간상태 영역에서의 역방향경로를 계산할 수 있다. 이후 순방향경로와 역방향경로가 계산되었다면 역방향경로의 마지막 계산 지점에서 순방향경로의 마지막 계산 지점을 향한 시간상태 영역에서의 순방향경로를 계산한다.
[153]
즉, 상기 순방향경로 계산 및 상기 역방향경로 계산은 반대 측 마지막 계산 지점을 향하도록 계획된다.
[154]
역방향경로를 계획하는 것은, 로봇이 목표 웨이포인트를 지날 때, 보다 부드럽게 지나가도록 하여, 웨이포인트 간의 간격이 짧거나 웨이포인트 간의 각도가 작을 경우 로봇이 목표 웨이포인트를 지나간 뒤 다음 목표 웨이포인트를 향해 선회하는 경로가 커지게 되는 오버런 현상을 줄이기 위함이다.
[155]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)에서의 순방향경로 계산 및 역방향경로 계산은
[156]
이동에 필요한 비용 함수(H)를 분해하고, 분해된 비용 함수(H r)에 우선순위 (r(r은 자연수))를 부여하며,
[157]
미리 정해진 기준에 따라(r* 값을 설정하거나 계산에 의해 정할 수 있음) 상기 분해된 비용 함수(H r)를 합한 값이 최소가 되도록 경로를 계산하는 근사 최적 상태 시간 함수(N)를 적용하여,
[158]
n(n은 자연수) 스텝에서의 주어진 상태값(s n), 목표지점에서의 상태 값(s to) 및 계산하고자 하는 스텝 수(m)를 근거로, 상태값(s n)이 주어진 지점에서 목표지점(s to)을 향해 계산하고자 하는 스텝 수(m) 만큼 진행될 스텝에서의 상태값(s n+m)을 구하는 것을 특징으로 할 수 있다.
[159]
주어진 상태값 s n을 가진 상태값 s n + m을 계획 할 때, 상태값 s n +m에서 목표 상태값 s to에 해당되는 지점으로 이동하기 위한 이동비용을 최소화하려고 노력한다.
[160]
즉, 순방향경로 계산 및 역방향경로 계산은 다음과 같이 정의할 수 있다.
[161]
[162]
(여기서, s n +m은 n+m 시간에서의 상태값, H는 비용 최소화 함수, s는 주어진 상태 값, s to는 목표지점에서의 상태 값, m은 계산하고자 하는 스텝 수)
[163]
비용 최소화 함수 H를 사용하게 되면, 계산에 소요되는 시간이 많아 실시간 경로계산에 적용이 어려운 문제가 있다.
[164]
로봇의 입력값 u n은 다음과 같이 얻을 수 있다.
[165]
[166]
여기서
[167]
은 최소 노력에 대한 입력에 대한 주어진 이동비용 함수로, 어떤 입력 u를 이용하여 로봇의 상태를 s n에서 s n +m으로 천이시킬 때 발생하는 비용 값을 반환하는 비용 함수이다.
[168]
따라서, 을 최소화하는 u n은 최소한의 노력으로 로봇을 목표 상태값으로 변화시킬 수 있는 입력 값이 된다.
[169]
사용 가능한 로봇의 입력영역으로 제한되는 동적안전상태 내부에 s n +m을 계획하므로 사용 가능한 입력이 항상 존재한다.
[170]
이동 비용을 최소화 시키는 이동비용 함수가 너무 복잡하여 실시간으로 경로를 계산할 수 없는 경우, 함수 분해 기반 최적화 방법을 사용할 수 있다.
[171]
함수 분해 기반 최적화 방법은 함수를 단순한 부분으로 분해 한 다음 우선 지배적인 부분을 최소화한다. H가 다음과 같이 R 부분으로 구성된다고 가정한다.
[172]
[173]
여기서 H r은 우세한 순서로 배열된다. 즉, r이 작은 H r이 더 우세하다. H 1에서 H R까지 하나씩 순차적으로 최소화 할 때 사용 가능한 안전 영역은 더 작아지며, 결국 하나의 상태값이 도출될 때 까지 r 값을 증가시키면서 분해된 비용 함수(H r)를 최소화 시킨다.
[174]
H 1에서 H r까지의 r 부분을 최소화하는 시간상태안전영역 을 다음과 같이 정의할 수 있다.
[175]
[176]
분해되지 않은 이동비용함수로 계산되는 시간상태안전영역 은 시간상태안전영역 과 동일하다.
[177]
하나의 상태값이 도출되는 r 값을 이라 하며, 을 찾을 때까지 분해된 이동비용함수를 계속 최소화 시킨다. 여기서 사용 가능한 시간상태안전영역은 다음과 같이 단일 상태로 축소된다.
[178]
[179]
여기서,
[180]
[181]
함수 분해 기반 최소화로부터 얻은 시간상태값이 H를 최소화하지 않을지라도 함수의 지배적 인 부분을 최소화하기 때문에 결과는 최소에 가깝다.
[182]
또한, 실시간으로 실행이 가능하며, 계산이 효율적이다.
[183]
따라서, 근사 최적 상태 시간 함수(N)를 적용하면 다음과 같이
[184]
[185]
(여기서, s n +m은 n+m 스텝에서의 상태값, N은 근사 최적 시간상태값 계산 함수, s n은 n 스텝에서의 주어진 상태 값, s to는 목표지점에서의 상태 값, m은 계산하고자 하는 스텝 수)
[186]
으로 순방향경로 계산 및 역방향경로 계산을 할 수 있다.
[187]
추가설명하면, 근사 최적 상태 시간 함수 (N)을 이용하여, s n이라는 상태값이 현재 상태인 로봇이 s to라는 상태로 천이되기 위해서, n이후 m번째 타임 인덱스에서의 최적의 상태값이 s n+m이라고 계산된다.
[188]
전방향 이동이 가능한 로봇의 예를 들면,
[189]
상기 근사 최적 상태 시간 함수(N)는 다음식
[190]
[191]
(여기서, H 1는 속독 독립적인 이동 비용 함수, H 2는 각도-이동 방향 부분 비용 함수, H 3는 속도 크기 부분 이동 비용 함수)
[192]
을 이용하여 계산할 수 있다.
[193]
로봇이 목표물 쪽으로 빠르게 움직이도록 유도하고 목표 지점을 효과적으로 통과하기 위해, 이동 비용 함수 H(s from, s to)는 세 부분으로 구성될 수 있되며, D는 사전에 정의된 임계 거리이다.
[194]
도달 가능한 영역의 각 위치는 허용 가능한 속도 영역과 1 : 1로 매칭 되기 때문에 각 시간 상태는 속도 독립적인 이동 비용 함수 H 1을 기반으로 결정된다.
[195]
이동 방향 부분 이동 비용 함수 H 2 및 속도 크기 부분 이동 비용 함수 H 3는 현재 목표 웨이포인트의 상태를 설정하는 데 사용된다.
[196]
H 1에 기초하여, 각 시간 설정은 목표에 가장 가까운 것으로 결정된다.
[197]
H 2와 H 3은 현재 목표 웨이포인트의 상태를 설정하기 위해 설계되었다.
[198]
현재 목표 웨이포인트에서의 속도는 로봇의 위치, 목표 웨이포인트의 위치 및 그 다음의 웨이포인트의 위치를 고려하여 결정된다.
[199]
방향은 로봇의 위치, 목표 웨이포인트의 위치까지 그리고 목표 웨이포인트의 위치 및 그 다음의 웨이포인트의 위치까지의 두 벡터의 평균 방향으로 결정된다.
[200]
또한 목표 웨이포인트에서 속도의 크기는 목표 웨이포인트에서 경로의 내각에 따라 결정된다.
[201]
각도가 클수록 속도가 빨라지거나 그 반대로 된다.
[202]
로봇의 위치와 목표 웨이포인트 사이 또는 목표 웨이포인트와 그 다음의 웨이포인트 사이의 유클리드 거리가 D보다 작으면, 현재 목표 웨이포인트의 속도의 크기는 웨이포인트 근처에서 진동하지 않도록 거리에 비례하여 설정된다.
[203]
바퀴로 이동이 가능한 로봇의 예를 들면, 상기 근사 최적 상태 시간 함수(N)는
[204]
다음식
[205]
[206]
(여기서, H 1는 속독 독립적인 이동 비용 함수, H 2는 각도-이동 방향 부분 비용 함수, H 3는 속도 크기 부분 이동 비용 함수)
[207]
을 이용하여 계산할 수 있다.
[208]
전방향 이동이 가능한 로봇의 예에서와 같이, 각 시간 상태는 속도 독립적인 이동 비용 함수 H 1을 기반으로 결정된다.
[209]
목표 위치에 가까운 위치와 목표 위치를 향한 방향을 모두 고려하기 위해 H 1은 미리 정의된 가중치 α를 갖는 두 부분으로 구성된다.
[210]
이동 방향 부분 이동 비용 함수 H 2 및 속도 크기 부분 이동 비용 함수 H 3은 전방향 이동이 가능한 로봇의 예와 유사한 방식으로 현재 목표 웨이포인트의 선형 및 각속도를 설정하는 데 사용된다.
[211]
본 발명의 일 실시예에 따른 시간상태 영역에서의 온라인 양방향 경로 계획 방법의 순방향경로 계산은 정적장애물 및 동적장애물과 충돌하지 않는 배위영역 상의 안전한 영역인 시간배위안전영역 이 존재하면, 타임인덱스(n) 에서 로봇의 배위값( )과 타임인덱스(n) 에서 시간배위안전영역 을 근거로 순방향경로를 계산하는 것을 특징으로 하며,
[212]
상기 역방향경로 계산은 안전영역이 존재하면, 타임인덱스(n)에서 로봇의 배위값( )과 시간배위안전영역 을 근거로 역방향경로를 계산하는 것을 특징으로 할 수 있다.
[213]
벽과 같은 정적 환경 장애물과 충돌하는 배위값들의 집합을 이라 하고 '환경장애물영역'( ⊂ Q)이라 하면, 배위영역 Q에서 환경장애물영역 을 뺀 차집합을 '여유정적배위영역' 이라 할 수 있다.
[214]
로봇은 센서 데이터를 이용한 추적 알고리즘을 기반으로 사람과 다른 로봇과 같은 각각의 동적 장애물의 경로를 예측할 수 있다.
[215]
따라서, 시간 인덱스 n에서 사람과 같은 동적 장애물과 충돌이 예상되는 배위값들의 집합을 이라 하고 '동적장애물영역'( ⊂ Q)이라 하면, 여유정적배위영역 에서 동적장애물영역 을 뺀 차집합을 '여유동적배위영역' 이라 할 수 있다.
[216]
즉, 타임인덱스 n 에서의 여유동적배위영역 은 타임인덱스 n에서 동적장애물 및 정적장애물을 포함하는 장애물과 충돌하지 않는 로봇을 위한 안전한 영역이라 할 수 있다.
[217]
로봇의 입력영역 U에서 타임인덱스 n 에서의 로봇의 입력값 u n(u n ∈ U)를 갖는 로봇 시스템의 운동은 다음과 같이 정의할 수 있다.
[218]
[219]
(여기서, f는 로봇의 운동 모델 함수)
[220]
로봇의 상태영역 S와 로봇의 입력영역 U는 경계가 정해져 있기 때문에 로봇 동작은 구속되어 있으며 이를 동작 구속 이라고 한다.
[221]
환경 검출기(센서)는 비전 센서 또는 레이저 거리 측정기(LRF) 등 같은 센서를 사용하여 센서 시스템을 기반으로 장애물을 탐지하고 추적하며 정적 장애물(환경 장애물) 및 동적 장애물(비환경 장애물)로 분류하여 을 얻을 수 있다.
[222]
웨이포인트를 부여하여 경로를 계획하는 글로벌 경로 플래너는 여유정적배위영역은 내부에 일련의 웨이포인트와 목표를 계획한다.
[223]
매 순간 t = kT, k = 0, 1,.. . 알고리즘은 참조 입력 k를 사용하여 경로를 계획한다.
[224]
이 입력을 통해 로봇은 웨이포인트를 순차적으로 통과하고 을 사용하여 충돌 없이 목표에 도달하는 경로를 계획할 수 있다.
[225]
시간상태값 s n이 주어질 때, 타임인덱스 n + m에서의 도달 가능한 시간상태 영역을 정의할 수 있으며, 이때, 도달 가능한 시간배위 영역 역시 정의할 수 있다.
[226]
실시간 경로 계획을 위해, 도달 할 수 있는 시간상태 영역 또는 시간배위 영역을 근사화 하여 계산량을 줄이는 것이 바람직하다.
[227]
도달 할 수 있는 시간상태 영역 또는 시간배위 영역을 정확하게 계산하여 사용하는 것은 실시간 계산이 어려울 수 있기 때문이다.
[228]
도달 가능한 영역을 단순화하기 위해, m 개의 타임스텝에 대해 로봇의 균일한 입력값으로 로봇을 제어할 수 있다.
[229]
로봇의 균일한 입력값에 의해 접근 가능한 도달 가능한 시간상태 영역은 다음과 같이 정의할 수 있다.
[230]
[231]
(여기서, g는 근사화 시킨 로봇의 운동 모델 함수)
[232]
이때, 로봇의 균일한 입력값에 의해 도달 가능한 시간배위 영역을 근사한 영역은 다음과 같이 정의할 수 있다.
[233]
[234]
은 실제 도달 가능 영역 전체를 커버하지 않지만, 실제 도달 가능 영역 전체를 계산하는 것에 비해 계산 부하가 매우 작기 때문에 실시간 경로 계획에 유용하다.
[235]
상태값 s n이 주어지면, 시간 인덱스 n + m에서 안전한 시간상태안전영역 은 다음과 같이 정의할 수 있다.
[236]
[237]
또한, 상태값 s n이 주어지면, 시간 인덱스 n + m에서 안전한 시간배위안전영역 은 다음과 같이 정의할 수 있다.
[238]
[239]
내에서 계획되지만 은 예상 충돌을 확인하고 사용 가능한 안전 영역이 있는지 확인하는 것으로 충분하다.
[240]
현재 목표 웨이포인트에서 역방향경로의 상기 시간배위안전영역 계산 시, 로 대체된다.
[241]
이는, 에 대한 실제 시간을 알 수 없기 때문에 동적 장애물의 데이터를 확인할 수 없기 때문이다.
[242]
도 8에 도시된 바와 같이, 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 웨이포인트설정 단계(S32), 역방향경로계산 단계(S33) 및 순방향경로계산 단계(S35)를 포함할 수 있다.
[243]
웨이포인트설정 단계(S32)는 현재 목표 웨이포인트에서의 로봇의 상태를 설정한다.
[244]
현재 목표 웨이포인트는 순방향 궤적이 통과하기 위해 향하는 웨이포인트이다.
[245]
상기 웨이포인트설정 단계(S32)는 현재 목표 웨이포인트를 로봇이 지날 때의 로봇의 상태를 설정하는 것으로, 로봇의 위치, 목표 웨이포인트의 위치 및 그 다음의 웨이포인트의 위치를 고려하여 현재 목표 웨이포인트를 로봇이 지날 때의 로봇의 상태를 설정 하는 것이 바람직하다.
[246]
따라서, 상기 웨이포인트설정 단계(S32)는 현재 목표 웨이포인트는 순방향경로가 향하는 웨이포인트로 다음 식과 같이 이동비용을 최소화 시킬 수 있는 현재 목표 웨이포인트의 상태값(g w)이 설정되는 것을 특징으로 할 수 있다.
[247]
[248]
(여기서, 는 현재 목표 웨이포인트의 상태값, 를 세팅하는 동안 다음 목표 웨이포인트의 상태값, G w는 현재 목표 웨이포인트의 상태 범위, G w + 1는 다음 목표 웨이포인트의 상태 범위, H(a, b)는 a에서 b까지 이동에 대한 비용함수, 는 로봇의 현재 위치 는 현재 목표 웨이포인트 는 현재 목표 웨이포인트 다음 웨이포인트를 나타낸다.)
[249]
역방향경로계산 단계(S33)는 역방향경로를 계산한다.
[250]
상기 역방향경로계산 단계(S33)는 현재 목표 웨이포인트에서 로봇의 현재위치를 향해 경로를 계획한다. 이때, 순방향경로가 계산되었다면 순방향경로의 마지막 계산 지점을 향한 역방향경로를 계산할 수 있다.
[251]
도 8의 조건문에 표기된 변수 B는 역방향경로 계획을 위한 타임스텝의 최대값, 변수 b는 역방향경로 계획의 타임스텝(반복 계산 시 1 씩 증가)을 의미하나, 변수와 이에 대한 조건은 임의로 설정하여 다양한 방법으로 사용 가능함은 물론이다.(도 9 내지 도 10의 변수도 에도 동일하게 적용)
[252]
순방향경로계산 단계(S50)는 순방향경로를 계산한다.
[253]
상기 순방향경로계산 단계(S50)는 현재 로봇의 현재위치에서 목표 웨이포인트를 향해 경로를 계획한다. 이때, 역방향경로가 계산되었다면 역방향경로의 마지막 계산 지점을 향한 순방향경로를 계산할 수 있다.
[254]
도 8의 조건문에 표기된 변수 F는 순방향경로 계획을 위한 타임스텝의 최대값, 변수 f는 역방향경로 계획의 타임스텝(반복 계산 시 1 씩 증가), k는 현재 타임스텝을 의미하나, 변수와 이에 대한 조건은 임의로 설정하여 다양한 방법으로 사용 가능함은 물론이다.(도 9 내지 도 10의 변수도 에도 동일하게 적용)
[255]
상기 역방향경로계산 단계(S33)와 순방향경로계산 단계(S35)는 순서를 뒤바꾸어 시행하는 것도 가능하나, 상기 역방향경로계산 단계(S33)를 먼저 수행하는 것이 목표 웨이포인트를 보다 부드럽게 지나가도록 경로를 형성할 수 있어, 상기 역방향경로계산 단계(S33)를 먼저 수행하는 것이 바람직하다.
[256]
상기 역방향경로계산 단계(S33)와 순방향경로계산 단계(S35)는 교번되게 반복 수행할 수도 있으며, 상기 역방향경로계산 단계(S33) 또는 상기 순방향경로계산 단계(S35)를 먼저 일정 회수 반복 수행한 후 상기 순방향경로계산 단계(S35) 또는 상기 역방향경로계산 단계(S33)를 나중에 반복 수행할 수도 있는 등 다양한 방법으로 상기 역방향경로계산 단계(S33)와 순방향경로계산 단계(S35)를 반복 수행할 수 있다.
[257]
결론적으로, 상기 역방향경로계산 단계(S33)와 순방향경로계산 단계(S35)는 역방향경로와 순방향경로가 연결되어야 현재 위치에서 현재 목표 웨이포인트 까지의 양방향경로계획이 완료된다.
[258]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 상기 순방향경로와 상기 역방향경로를 연결하는 연결경로 계산하고, 순방향경로와 역방향경로를 점진적으로 계획하는 양방향경로를 계획하는 것을 특징으로 할 수 있다.
[259]
양방향경로를 지속적으로 계획하면 순방향경로와 역방향경로가 만날 수 있지만 속도가 다를 수 있다.
[260]
따라서, 상기 순방향경로와 역방향경로의 속도 차이를 극복하기 위해 상기 연결경로에 의해 이어지도록 하는 것이 바람직하다.
[261]
즉, 상기 순방향경로 측과 연결되는 연결경로의 일측은 순방향경로의 마지막 계산지점과 속도가 같도록 계산하고, 상기 역방향경로 측과 연결되는 연결경로의 타측은 역방향경로의 마지막 계산지점과 속도가 같도록 연결경로를 계산하는 것이 바람직하다.
[262]
이때, 계산을 간소화시키기 위해, 순방향경로의 마지막 계산된 상태값 s f와 역방향경로의 마지막 계산된 상태값 s -b 사이의 구간인 연결경로 계산은 로봇의 입력값을 동일하게 하여 다음 식과 같이 계산하는 것을 특징으로 할 수 있다.
[263]
[264]
(여기서, f(a, b, c)는 a 상태값에 해당되는 지점에서 c 타임스텝 만큼 b로봇의 입력값으로 이동되는 로봇의 상태값을 계산하는 로봇의 운동 모델 함수이다.)
[265]
연결경로의 계산에 이용되는 최대 시간간격을 C라고 할 때,
[266]
(c 1 + ... + c N) ≤ C 이다.
[267]
도 9 내지 도 10에 도시된 바와 같이, 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 웨이포인트설정 단계(S32), 역방향경로계산 단계(S33), 연결경로확인 단계(S34) 및 순방향경로계산 단계(S35)를 포함할 수 있다.
[268]
웨이포인트설정 단계(S32)는 현재 목표 웨이포인트에서의 로봇의 상태를 설정한다. 현재 목표 웨이포인트는 순방향 궤적이 통과하기 위해 향하는 웨이포인트이다.
[269]
상기 웨이포인트설정 단계(S32)는 현재 목표 웨이포인트를 로봇이 지날 때의 로봇의 상태를 설정하는 것으로, 로봇의 위치, 목표 웨이포인트의 위치 및 그 다음의 웨이포인트의 위치를 고려하여 현재 목표 웨이포인트를 로봇이 지날 때의 로봇의 상태를 설정 하는 것이 바람직하다.
[270]
따라서, 상기 웨이포인트설정 단계(S32)는 현재 목표 웨이포인트는 순방향경로가 향하는 웨이포인트로 다음 식
[271]
[272]
(여기서, 는 현재 목표 웨이포인트의 상태값, 를 세팅하는 동안 다음 목표 웨이포인트의 상태값, G w는 현재 목표 웨이포인트의 상태 범위, G w + 1는 다음 목표 웨이포인트의 상태 범위, H(a, b)는 a에서 b까지 이동에 대한 비용함수, 는 로봇의 현재 위치 는 현재 목표 웨이포인트 는 현재 목표 웨이포인트 다음 웨이포인트를 나타낸다.)
[273]
과 같이 이동비용을 최소화 시킬 수 있는 현재 목표 웨이포인트의 상태값(g w)이 설정되는 것을 특징으로 할 수 있다.
[274]
역방향경로계산 단계(S33)는 역방향경로를 계산한다.
[275]
상기 역방향경로계산 단계(S33)는 현재 목표 웨이포인트에서 로봇의 현재위치를 향해 경로를 계획한다. 이때, 순방향경로가 계산되었다면 순방향경로의 마지막 계산 지점을 향한 역방향경로를 계산할 수 있다.
[276]
상기 역방향경로계산 단계(S33)는 역방향경로를 한 스텝씩 계산할 수도 있고, 정해진 스텝 단위로 계산하는 것도 가능하다.
[277]
연결경로확인 단계(S34)는 로봇의 현재 위치 또는 순방향경로의 마지막 계산 지점과 현재 목표 웨이포인트 또는 역방향경로의 마지막 계산 지점이 연결되는 연결경로가 존재하는지 확인한다.
[278]
상기 연결경로확인 단계(S34)는 역방향경로가 한 스텝 계산될 때 마다 수행할 수도 있고, 역방향경로가 정해진 스텝 수 만큼 계산될 때 마다 수행하는 것도 가능하다.
[279]
이때, 상기 연결경로확인 단계(S34)에서 연결경로가 존재하지 않으면 상기 역방향경로계산 단계(S33)부터 연결경로확인 단계(S34)까지 정해진 회수만큼 반복 수행하고, 상기 연결경로확인 단계(S34)에서 연결경로가 존재하면 상기 웨이포인트설정 단계(S32)로 되돌아가는 것을 특징으로 할 수 있다.
[280]
즉, 역방향경로를 한 스텝 계산할 때마다 연결경로가 존재하는지 확인하고, 연결경로가 존재하지 않는다면 미리 정해진 회수만큼 역방향경로를 먼저 계산한다.
[281]
순방향경로보다 역방향경로를 먼저 계획하는 것은 로봇이 목표 웨이포인트를 지날 때, 보다 부드럽게 지나가도록 하여, 웨이포인트 간의 간격이 짧거나 웨이포인트 간의 각도가 작을 경우 로봇이 목표 웨이포인트를 지나간 뒤 다음 목표 웨이포인트를 향해 선회하는 경로가 커지게 되는 오버런 현상을 줄이기 위함이다.
[282]
또한, 역방향경로를 미리 정해진 회수만큼 먼저 계산하는 것 역시, 로봇이 목표 웨이포인트를 지날 때, 보다 부드럽게 지나가도록 하기 위함이다.
[283]
이때, 상기 역방향경로계산 단계(S33)부터 연결경로확인 단계(S34)까지 정해진 회수만큼 반복 수행되었다면, 연결경로가 존재하지 않더라도 다음 단계로 넘어가는 것을 특징으로 할 수 있다.
[284]
순방향경로계산 단계(S35)는 상기 연결경로확인 단계(S34)에서 연결경로가 존재하지 않으면, 순방향경로를 계산한다.
[285]
상기 순방향경로계산 단계(S35)는 현재 로봇의 현재위치에서 목표 웨이포인트를 향해 경로를 계획한다. 이때, 역방향경로가 계산되었다면 역방향경로의 마지막 계산 지점을 향한 순방향경로를 계산할 수 있다.
[286]
상기 순방향경로계산 단계(S35)는 순방향경로를 한 스텝씩 계산할 수도 있고, 정해진 스텝 단위로 계산하는 것도 가능하다.
[287]
본 발명의 일 실시예에 따른 시간상태 영역에서의 온라인 양방향 경로 계획 방법의 상기 연결경로확인 단계(S34)는 연결경로가 존재하면, 연결경로 및 역방향경로에 대한 순방향 타임인덱스를 설정하고, 연결경로 및 역방향경로에서 필연적충돌상태가 발생하는지 확인한 후, 필연적충돌상태가 발생되지 않으면 순방향경로의 시간 변수, 역방향경로의 시간 변수 및 다음 웨이포인트를 통과하는 순방향경로의 시간 변수를 계산하여 변경하는 것을 특징으로 할 수 있다.
[288]
순방향경로에 적용되는 순방향 타임인덱스는 절대시간(로봇 기준의 시간)을 알 수 있다. 따라서, 동적 장애물의 충돌을 예측할 수 있다.
[289]
하지만, 역방향경로에 적용되는 역방향 타임인덱스와 연결경로에 적용되는 타임인덱스는 절대시간을 알 수 없기 때문에 동적 장애물의 충돌을 예측할 수 없다.
[290]
따라서, 순방향경로와 연결경로 및 역방향경로가 연결된다면, 동적 장애물의 충돌을 확인하기 위해, 연결경로 및 역방향경로에 사용되었던 타임인덱스를 순방향경로에 적용되는 순방향 타임인덱스로 바꾸어 주어야 하며, 이로 인해 연결경로와 역방향경로의 절대시간을 알 수 있고, 역방향경로 및 연결경로에서 예측 된 충돌이 있는지 확인할 수 있다.
[291]
역방향경로 및 연결경로에서 예측 충돌이 없다면 현재 로봇의 위치에서 현재 목표 웨이포인트 까지의 양방향경로는 완성된다.
[292]
로봇제어 단계(S40)는 상기 경로계획 단계(S30)에서 계획된 경로에 따라 상기 로봇을 제어하는 명령을 계산하여 상기 로봇의 이동을 제어한다.
[293]
로봇제어 단계(S40)는 상기 역방향경로계산 단계(S33) 및 상기 순방향경로계산 단계(S35)가 정해진 회수만큼 반복 수행되면, 상기 양방향경로에 따라 로봇을 제어하는 명령을 계산할 수 있다.(도 8 참조)
[294]
또는 상기 순방향경로계산 단계(S35)가 정해진 회수만큼 반복 수행되면, 상기 양방향경로에 따라 로봇을 제어하는 명령을 계산할 수 있다.(도 9 참조)
[295]
대부분의 로봇 제어 명령은 순방향경로에 따라 계산되어 진다.
[296]
대부분의 로봇 제어 명령은 순방향경로에 따라 계산되어 진다.
[297]
이는, 로봇이 한 타임스텝 동안 이동하기 전에 새로운 양방향 경로에 대한 계산이 완료되어야 실시간 양방향경로가 계획되기 때문이다.
[298]
상기 로봇제어 단계(S40)에서 생성되는 로봇의 입력값은 다음과 같이 계산될 수 있다.
[299]
[300]
[301]
[302]
(여기서, 는 k시간에서의 로봇의 입력값, 는 k 번째 스텝에서 1 스텝 진행 가능한 로봇의 입력영역에 포함되는 로봇의 입력값, 는 로봇의 입력값에 대한 최소 비용 함수, 는 k시간에서의 로봇의 상태값, 는 k+1 시간에서의 로봇의 상태값을 나타낸다.)
[303]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 이동체의 현재 위치로부터 상기 로컬골과 그 이전 웨이포인트를 연결한 웨이포인트패스세그먼트에서 상기 로컬골로부터 가장 가까운 장애물 까지의 영역인 로컬골엑세서블패스세그먼트로 진입하는 경로를 계획하는 것을 특징으로 할 수 있다.
[304]
상기 로컬골엑세서블패스세그먼트는 로컬골과 그 이전 웨이포인트를 연결한 웨이포인트패스세그먼트 중 장애물과 충돌 없이 로컬골로 바로 접근할 수 있는 영역을 의미하는 것으로, 도 6의 좌측 그림과 같이 로컬골과 그 이전 웨이포인트를 연결한 웨이포인트패스세그먼트 상에 장애물이 없는 경우는 로컬골과 그 이전 웨이포인트를 연결한 웨이포인트패스세그먼트 전체가 로컬골엑세서블패스세그먼트(화살표가 가리키는 보라색 선분)가 되고,
[305]
도 6의 우측 그림과 같이 로컬골과 그 이전 웨이포인트를 연결한 웨이포인트패스세그먼트 상에 장애물이 있는 경우는 로컬골과 그 이전 웨이포인트를 연결한 웨이포인트패스세그먼트 중 장애물 이후 장애물과 충돌이 없는 지점부터 로컬골 까지의 영역이 로컬골엑세서블패스세그먼트(화살표가 가리키는 보라색 선분)가 된다.
[306]
즉, 로컬언노운포지션스페이스 상에서 가장 안전한 곳은 웨이포인트패스세그먼트 이기 때문에, 웨이포인트패스 상에서 로컬골까지 바로 안전하게 접근할 수 있는 영역을 로컬골엑세서블패스세그먼트로 정한다.
[307]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 로컬골엑세서블패스세그먼트로 진입하는 임시 웨이포인트인 엑세서블웨이포인트를 계획하여 경로를 계획하는 것을 특징으로 할 수 있다.
[308]
다시 말해, 웨이포인트패스와 로컬언노운포지션스페이스의 교집합 상에 로컬골(W M)을 결정하고, 로컬골(W M)로 진입하기 전의 임시 웨이포인트인 엑세서블웨이포인트(W m, m은 자연수)는 로컬골엑세서블패스세그먼트 상에 결정하는 것이 좋다.
[309]
이는 충돌을 회피함과 동시에 최적의 경로를 찾기 위함이다.
[310]
즉, 웨이포인트패스를 따라 로봇이 이동하는 것은 안전성은 보장되지만 경로 손실이 있을 수 있어, 보다 경로를 단축하기 위해, 로컬골엑세서블패스세그먼트 상에 결정된 엑세서블웨이포인트를 향하여 경로를 계획하는 것이다.
[311]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 있는 경우, 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합 내에서 특정 비용함수를 최소화 시키는 지점을 엑세서블웨이포인트로 결정하는 것을 특징으로 할 수 있다.
[312]
상기 특정 비용함수는 시간, 거리, 속도, 가속도, 소모에너지 등을 고려하여 계산되는 비용함수를 말한다.
[313]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 있는 경우, 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합 내에서 로봇으로부터 로컬골까지의 이동 거리가 가장 짧은 지점을 엑세서블웨이포인트로 결정하는 것을 특징으로 할 수 있다.
[314]
도 7에서 살펴보면 좌측 그림에서는 화살표로 표시된 W 1가 엑세서블웨이포인트가 될 수 있다.
[315]
로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와 교집합이 있으면 웨이포인트 하나만 결정하면 안전한 경로를 찾을 수 있다. 따라서, 가능하면 안전하고 짧은 거리가 되도록 엑세서블웨이포인트를 찍기 위해, 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합에 해당되는 영역 중 로컬골 까지의 거리가 가장 짧은 지점을 엑세서블웨이포인트로 결정하는 것이 바람직하다.
[316]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 없는 경우, 로컬웨이포인트 간의 경로 상에 장애물과의 충돌이 없도록, 로컬비저블포지션스페이스 상의 장애물이 없는 진행 방향 측으로 임시 웨이포인트인 로컬웨이포인트를 계획하고, 로컬비저블포지션스페이스 상의 장애물을 지난 이후의 지점에 엑세서블웨이포인트를 계획하여, 상기 로컬웨이포인트와 엑세서블웨이포인트를 지나는 경로를 계획하는 것을 특징으로 할 수 있다.
[317]
도 7에서 살펴보면 우측 그림에서는 화살표로 표시된 W 1가 로컬웨이포인트가 되고, W 2가 엑세서블웨이포인트가 될 수 있다.
[318]
로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와 교집합이 없으면, 로컬비저블포지션스페이스 측으로 가는 방향에 로컬웨이포인트를 하나 결정하고, 로컬골엑세서블패스세그먼트 상에 엑세서블웨이포인트를 하나 결정하여 경로를 계획할 수 있다.
[319]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 없는 경우, 로컬웨이포인트와 엑세서블웨이포인트의 코스트(거리 등)가 가장 작게 로컬웨이포인트와 엑세서블웨이포인트를 설정하는 것을 특징으로 할 수 있다.
[320]
이때, 가장 안전한 영역은 로컬비저블포지션스페이스가 되고, 그 다음으로 안전한 영역은 로컬골엑세서블패스세그먼트가 되며, 그 다음으로 안전한 영역은 로컬언노운포지션스페이스가 된다.
[321]
코스트로 고려할 대상이 거리라고 가정하면, 로컬비저블포지션스페이스 영역 내에서 이동하는 거리와 로컬골엑세서블패스세그먼트 영역 내에서 이동하는 거리가 크게 하면서, 로컬웨이포인트와 엑세서블웨이포인트를 지나는 거리가 최소가 되도록 하는 것이 바람직하다.
[322]
도 11은 로봇의 이동에 따라 실시간으로 경로를 계산하는 예를 보여주는 것으로, 좌측 그림에서 시간이 지날수록 우측과 같이 경로가 변화됨을 보여준다.
[323]
도 11의 노란색 반경은 로봇의 이동에 따른 센싱범위를 보여준다.
[324]
따라서, 센싱데이터의 업데이트 및 경로 계산 주기를 짧게 하면 도 12의 녹색 점선과 같이, 장애물에 근접하며 장애물을 피해 주행하는 것을 확인할 수 있다.
[325]
도 12의 검정색 점선은 웨이포인트패스를 보여준다.
[326]
이때, 보다 도전 적으로 경로를 계획하기 위하여, 로컬비저블포지션스페이스 상에서 확인 가능한 마지막 웨이포인트패스세그먼트의 다음 웨이포인트를 로컬골로 결정하는 경우,
[327]
도 13과 같이 문이 열리고 닫히는 곳에서의 시뮬레이션 결과, 문을 돌아가는 경로를 계획하더라도, 문이 열렸을 때는 문을 통과하여 진행하는 더욱 짧은 경로로 진행할 수 있음을 확인했다.
[328]
돌아가는 경로를 계획하더라도, 센싱데이터의 업데이트 및 경로 계산을 추가로 하지 않으면, 도 14의 상부 좌측 두 개의 그림과 같이 빠른 길이 있어도 돌아감을 확인했으며,
[329]
센싱데이터의 업데이트 및 경로 계산 주기를 15초로 하였을 때는, 도 14의 상부 우측 두 개의 그림과 같이 이전보다 경로가 짧아지는 것을 확인할 수 있었고,
[330]
센싱데이터의 업데이트 및 경로 계산 주기를 7.5초로 하였을 때는, 도 14의 하부 좌측 두 개의 그림과 같이 15초를 주기로 하던 때 보다 경로가 짧아지는 것을 확인할 수 있었으며,
[331]
센싱데이터의 업데이트 및 경로 계산 주기를 0.5초로 하였을 때는, 도 14의 하부 우측 그림과 같이, 계획된 경로가 아니지만 경로를 단축시킬 수 있는 빠른 길로 진행함을 확인했다.
[332]
도 14에 표시된 파란 점 들은 로봇의 이동 경로를 나타낸 것이다.
[333]
도 15는 본 발명이 적용되지 않은 일반적인 경로계획에 따른 자율주행 시뮬레이션 결과를 보여주는 것이고, 도 16은 본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법이 적용된 경로계획에 따른 자율주행 시뮬레이션 결과를 보여주는 것이다.
[334]
본 발명의 일 실시예에 따른 실시간 웨이포인트 경로 개선 방법의 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 없는 경우, 현재 로봇의 진행방향과 이루는 각도가 최소가 되는 로컬웨이포인트를 설정하는 것을 특징으로 할 수 있다.
[335]
이는, 로봇의 방향 전환을 최소로 하기 위함이며, 로봇이 방향전환을 크게 할수록 돌아가는 경로가 될 수 있기 때문이다.
[336]
상기에서, 코스트로 고려될 수 있는 항목으로 거리와 각도를 예로 설명하였으나, 본 발명이 이에 한정된 것은 아니며, 로봇의 속도, 시간 등을 고려하여 코스트가 최소가 되는 경로가 되도록 로컬웨이포인트를 설정하는 것도 가능하고, 이들 중 여러 가지 항목을 고려하여 코스트가 최소가 되는 경로가 되도록 로컬웨이포인트를 설정하는 것도 가능한 등 다양한 실시가 가능함은 물론이다.
[337]
이상에서 본 발명의 일 실시예에 따른 시간상태 영역에서의 온라인 양방향 경로 계획 방법에 대하여 설명하였지만, 시간상태 영역에서의 온라인 양방향 경로 계획 방법을 구현하기 위한 프로그램이 저장된 컴퓨터 판독 가능한 기록매체 및 시간상태 영역에서의 온라인 양방향 경로 계획 방법을 구현하기 위한 컴퓨터 판독 가능한 기록매체에 저장된 프로그램 역시 구현 가능함은 물론이다.
[338]
즉, 상술한 시간상태 영역에서의 온라인 양방향 경로 계획 방법은 이를 구현하기 위한 명령어들의 프로그램이 유형적으로 구현됨으로써, 컴퓨터를 통해 판독될 수 있는 기록매체에 포함되어 제공될 수도 있음을 당업자들이 쉽게 이해할 수 있을 것이다. 다시 말해, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어, 컴퓨터 판독 가능한 기록매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 상기 컴퓨터 판독 가능한 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리, USB 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
[339]
본 발명은 상기한 실시예에 한정되지 아니하며, 적용범위가 다양함은 물론이고, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 다양한 변형 실시가 가능한 것은 물론이다.

청구범위

[청구항 1]
컴퓨터를 포함하는 연산처리수단에 의하여 실행되는 프로그램 형태로 이루어지는 실시간 웨이포인트 경로 개선 방법에 있어서, 연산처리수단이 웨이포인트와 웨이포인트를 연결한 경로인 웨이포인트패스세그먼트들 중 목표지점까지 최적 경로를 형성하는 웨이포인트패스세그먼트 들의 집합인 웨이포인트패스를 결정하는 웨이포인트패스결정 단계(S10); 연산처리수단이 로봇의 센서로 감지된 로봇의 이동 가능한 영역 중 상기 로봇으로부터 직진으로 이동을 했을 때 장애물과 충돌이 없는 영역의 집합인 로컬비저블포지션스페이스 중에서, 상기 웨이포인트패스결정 단계(S10)에서 결정된 웨이포인트패스 상 마지막 웨이포인트의 다음 웨이포인트 또는 웨이포인트패스세그먼트의 다음 웨이포인트를 목표 웨이포인트인 로컬골로 결정하는 로컬골결정 단계(S20); 연산처리수단이 상기 로봇으로부터 상기 로컬골결정 단계(S20)에서 결정된 로컬골 까지 경로를 계획하는 경로계획 단계(S30); 및 상기 경로계획 단계(S30)에서 계획된 경로에 따라 상기 로봇을 제어하는 명령을 계산하여 상기 로봇의 이동을 제어하는 로봇제어 단계(S40); 를 포함하는 실시간 웨이포인트 경로 개선 방법.
[청구항 2]
제1항에 있어서, 상기 경로계획 단계(S30)는 이동체의 현재 위치로부터 상기 로컬골과 그 이전 웨이포인트를 연결한 웨이포인트패스세그먼트에서 상기 로컬골로부터 가장 가까운 장애물 까지의 영역인 로컬골엑세서블패스세그먼트로 진입하는 경로를 계획하는 것을 특징으로 하는 실시간 웨이포인트 경로 개선 방법.
[청구항 3]
제2항에 있어서, 상기 경로계획 단계(S30)는 상기 로컬골엑세서블패스세그먼트로 진입하는 임시 웨이포인트인 엑세서블웨이포인트를 계획하여 경로를 계획하는 것을 특징으로 하는 실시간 웨이포인트 경로 개선 방법.
[청구항 4]
제3항에 있어서, 상기 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 있는 경우, 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합 내에서 특정 비용함수를 최소화 시키는 지점을 엑세서블웨이포인트로 결정하는 것을 특징으로 하는 실시간 웨이포인트 경로 개선 방법.
[청구항 5]
제3항에 있어서, 상기 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 있는 경우, 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합 내에서 로봇으로부터 로컬골까지의 이동 거리가 가장 짧은 지점을 엑세서블웨이포인트로 결정하는 것을 특징으로 하는 실시간 웨이포인트 경로 개선 방법.
[청구항 6]
제3항에 있어서, 상기 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 없는 경우, 로컬웨이포인트 간의 경로 상에 장애물과의 충돌이 없도록, 로컬비저블포지션스페이스 상의 장애물이 없는 진행 방향 측으로 임시 웨이포인트인 로컬웨이포인트를 계획하고, 로컬비저블포지션스페이스 상의 장애물을 지난 이후의 지점에 엑세서블웨이포인트를 계획하여, 상기 로컬웨이포인트와 엑세서블웨이포인트를 지나는 경로를 계획하는 것을 특징으로 하는 실시간 웨이포인트 경로 개선 방법.
[청구항 7]
제6항에 있어서, 상기 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 없는 경우, 로컬웨이포인트와 엑세서블웨이포인트의 코스트가 가장 작게 로컬웨이포인트와 엑세서블웨이포인트를 설정하는 것을 특징으로 하는 실시간 웨이포인트 경로 개선 방법.
[청구항 8]
제6항에 있어서, 상기 경로계획 단계(S30)는 로컬비저블포지션스페이스와 로컬골엑세서블패스세그먼트와의 교집합이 없는 경우, 현재 로봇의 진행방향과 이루는 각도가 최소가 되는 로컬웨이포인트를 설정하는 것을 특징으로 하는 실시간 웨이포인트 경로 개선 방법.
[청구항 9]
제 1항 내지 제 8항 중 선택되는 어느 한 항에 기재된 실시간 웨이포인트 경로 개선 방법을 구현하기 위한 프로그램이 저장된 컴퓨터 판독 가능한 기록매체.
[청구항 10]
제 1항 내지 제 8항 중 선택되는 어느 한 항에 기재된 실시간 웨이포인트 경로 개선 방법을 구현하기 위한 컴퓨터 판독 가능한 기록매체에 저장된 프로그램.

도면

[도1]

[도2]

[도3]

[도4]

[도5]

[도6]

[도7]

[도8]

[도9]

[도10]

[도11]

[도12]

[도13]

[도14]

[도15]

[도16]