KR20160088638A - 모션 플래닝 장치 및 방법 - Google Patents

모션 플래닝 장치 및 방법 Download PDF

Info

Publication number
KR20160088638A
KR20160088638A KR1020150007979A KR20150007979A KR20160088638A KR 20160088638 A KR20160088638 A KR 20160088638A KR 1020150007979 A KR1020150007979 A KR 1020150007979A KR 20150007979 A KR20150007979 A KR 20150007979A KR 20160088638 A KR20160088638 A KR 20160088638A
Authority
KR
South Korea
Prior art keywords
sampling
optimal path
path
obstacle
motion planning
Prior art date
Application number
KR1020150007979A
Other languages
English (en)
Other versions
KR101688302B1 (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 KR1020150007979A priority Critical patent/KR101688302B1/ko
Publication of KR20160088638A publication Critical patent/KR20160088638A/ko
Application granted granted Critical
Publication of KR101688302B1 publication Critical patent/KR101688302B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

모션 플래닝 장치 및 방법이 제공된다. 모션 플래닝 장치는 복수의 샘플링 원을 포함하는 샘플링 영역을 생성하는 샘플링부 및 상기 샘플링 영역 내에서 새로운 최적 경로를 계산하고 상기 새로운 최적 경로에 포함되는 노드 중에서 이전 최적 경로에 포함되지 않는 상기 노드를 마일스톤으로 지정하는 계산부를 포함한다. 상기 샘플링부는 상기 마일스톤을 중심으로 하는 새로운 샘플링 원을 상기 샘플링 영역에 추가하고 상기 계산부는 상기 샘플링 영역에서 상기 새로운 최적 경로를 다시 계산한다.

Description

모션 플래닝 장치 및 방법{MOTION PLANNING APPARATUS AND METHOD}
로봇의 모션 플래닝 분야에 연관되며, 보다 구체적으로는 RRT*(Rapidly-exploring Random Tree)를 기반으로 한 최적 경로 탐색 및 모션 플래닝 분야에 연관된다.
샘플링(Sampling) 기반의 모션 플래닝 알고리즘에서는 기계 학습(machine learning)과 유사하게 전역 탐색(Global Search)와 국소 탐색(Local Search) 사이의 딜레마가 존재한다.
전역 탐색은 전역적으로 샘플링을 시도하여 전체 최적 경로를 찾을 수 있다. 비록 해를 찾는 속도가 느릴지라도 존재하는 모든 경로를 탐색할 수 있어 탐색(Exploration)에 해당한다. 다만 실질적으로 계산 시간에는 제한이 있어 제한 내에 가장 우수한 해를 찾아 문제를 해결하는 것은 어려움이 있다. 국소 탐색은 특정 샘플링 결과에 기반하여 기존의 최적 경로보다 우수한 최적 경로가 검출된 경우에 주변을 샘플링하여 최적 경로를 개선해가는 방식으로 활용(Exploitation)에 해당한다. 이 경우 아직 탐색되지 않은 부분에 대한 샘플링은 줄어들게 되어 결과적으로 전체 대역의 최적 경로와는 점점 멀어지는 방향의 샘플링이 될 수도 있다. 위와 같은 전역 탐색과 국소 탐색의 딜레마를 해소하기 위한 연구가 필요하다.
일측에 따르면, 모션 플래닝 장치가 제공된다. 모션 플래닝 장치는 복수의 샘플링 원을 포함하는 샘플링 영역을 생성하는 샘플링부 및 상기 샘플링 영역 내에서 새로운 최적 경로를 계산하고 상기 새로운 최적 경로에 포함되는 노드 중에서 이전 최적 경로에 포함되지 않는 상기 노드를 마일스톤으로 입력하는 계산부를 포함한다. 여기서 상기 샘플링부는 상기 마일스톤을 중심으로 하는 새로운 샘플링 원을 상기 샘플링 영역에 추가하고, 상기 계산부는 상기 샘플링 영역에서 상기 새로운 최적 경로를 다시 계산한다.
일실시예에 따르면 상기 계산부는 상기 샘플링 영역 내에서 출발점에서 목표점까지 존재하는 경로 중에서 장애물과의 충돌 없이 최단 거리로 주행하는 경로를 상기 새로운 최적 경로로 계산한다. 다른 일실시예에 따르면 상기 계산부는 상기 샘플링 영역 내에서 출발점에서 목표점까지의 임의의 경로 중에서 상기 임의의 경로에 대응하는 코스트 값이 상기 이전 최적 경로에 대응하는 코스트 값보다 작은 경우에 상기 임의의 경로를 상기 새로운 최적 경로로 계산한다. 상기 계산부는 상기 복수의 샘플링 원들이 교차하는 영역 내의 경로를 그 이외의 경로보다 높은 확률로 선택하고 최적 경로를 계산할 수 있다.
일실시예에 따르면 상기 샘플링부는 상기 마일스톤을 포함하는 기존의 샘플링 원들의 반지름을 기초로 하여 상기 새로운 샘플링 원의 반지름을 설정한다.
다른 일측에 따르면, 샘플링 영역 생성기가 제공된다. 샘플링 영역 생성기는 장애물의 위치 정보에 기초하여 GVG(Generalized Voronoi Graph)를 생성하는 생성부 및 상기 GVG 상의 제1 위치를 중심으로 상기 장애물까지 최단 거리를 반지름으로 하는 제1 샘플링 원을 계산하고 샘플링 영역에 추가하는 계산부를 포함한다.
일실시예에 따르면 상기 계산부는 상기 GVG 상의 제2 위치를 중심으로 하고 상기 장애물까지 거리를 반지름으로 하는 복수의 원을 생성하고 상기 복수의 원 중에서 상기 제1 샘플링 원과 교차하고 상기 제1 샘플링 원의 장애물과의 접점을 포함하지 않는 제2 샘플링 원을 계산하고 상기 샘플링 영역에 추가한다. 다른 일실시예에 따르면 상기 계산부는 초기 위치에서 상기 장애물에 포함되는 임의의 점을 향하는 직선을 생성하고 상기 직선이 상기 GVG와 만나는 점을 상기 제1 위치로 계산한다.
다른 일측에 따르면, 복수의 샘플링 원을 포함하는 샘플링 영역 내에서 새로운 최적 경로를 업데이트 하는 단계, 상기 새로운 최적 경로 내에 포함되는 점 중에서 이전 최적 경로에 포함되지 않는 점의 집합을 마일스톤으로 입력하는 단계 및 상기 마일스톤을 중심으로 하는 원을 상기 샘플링 영역에 추가하는 단계를 포함하는 모션 플래닝 방법이 제공된다. 상기 새로운 최적 경로를 업데이트 하는 단계는 상기 샘플링 영역 내의 출발점에서 목표점까지 임의의 경로에 대응하는 코스트 값이 상기 이전 최적 경로에 대응하는 코스트 값보다 작은 경우에 상기 임의의 경로를 상기 새로운 최적 경로로 업데이트한다.
일실시예에 따르면 상기 모션 플래닝 방법은 상기 복수의 샘플링 원 각각에 대응하는 상관 값을 부여하는 단계를 더 포함하고, 상기 새로운 최적 경로를 업데이트 하는 단계는 상기 복수의 샘플링 원 중에서 높은 상기 상관 값을 가지는 샘플링 원에 포함되는 경로를 높은 확률로 선택하고 계산한다. 한편 상기 상관 값을 부여하는 단계는 상기 복수의 샘플링 원 중에서 다른 샘플링 원과 교차하는 영역을 많이 포함하는 상기 샘플링 원에 높은 상기 상관 값이 부여될 수 있다.
다른 일측에 따르면 장애물에 포함되는 점에 기초하여 GVG를 생성하는 단계, 상기 GVG 상의 제1 위치를 중심으로 상기 제1 위치와 상기 장애물까지의 최단 거리를 반지름으로 하는 원을 포함하는 샘플링 영역을 생성하는 단계 및 상기 샘플링 영역 내에서 출발점에서 목표점까지의 최소의 코스트 값을 나타내는 경로를 계산하는 단계를 포함하는 모션 플래닝 방법이 제공된다.
일실시예에 따르면 상기 모션 플래닝 방법은 초기 위치와 상기 장애물에 포함되는 임의의 점까지의 직선을 생성하고 상기 직선과 상기 GVG의 교점을 제1 위치로 생성하는 단계를 더 포함할 수 있다.
다른 일실시예에 따르면 상기 모션 플래닝 방법은 상기 GVG 상의 제2 위치를 중심으로 상기 제2 위치와 상기 장애물까지의 거리를 반지름으로 하는 원 형태의 샘플링 영역 후보를 생성하고, 상기 샘플링 영역 후보 중에서 상기 샘플링 영역과 교차하고 상기 샘플링 영역에 포함되지 않는 상기 장애물과의 접점을 포함하는 상기 샘플링 영역 후보를 샘플링 영역에 추가하는 단계를 더 포함할 수 있다.
다른 일측에 따르면 모션 플래닝 방법을 실행하는 프로그램을 수록한 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 프로그램은 복수의 샘플링 원을 포함하는 샘플링 영역 내에서 새로운 최적 경로를 업데이트 하는 명령어 세트, 상기 새로운 최적의 경로 내에 포함되는 점 중에서 이전 최적 경로에 포함되지 않는 점의 집합을 마일스톤으로 입력하는 명령어 세트 및 상기 마일스톤을 중심으로 하는 원을 상기 샘플링 영역에 추가하는 명령어 세트를 포함하는 컴퓨터 판독 가능한 기록매체가 제공된다.
도 1은 일실시예에 따른 모션 플래닝 장치를 도시한 블록도이다.
도 2a, 도 2b 및 도 2c는 일실시예에 따른 모션 플래닝 장치의 동작 과정을 설명하기 위한 도면이다.
도 3은 일실시예에 따른 샘플링 영역 생성기를 도시한다.
도 4는 일실시예에 따른 샘플링 영역이 생성되는 과정을 설명하는 도면이다.
도 5a 및 5b는 일실시예에 따른 샘플링 영역이 확장되는 과정을 설명하는 도면이다.
도 6은 일실시예에 따른 모션 플래닝 방법을 도시하는 블록도이다.
도 7은 다른 일실시예에 따른 모션 플래닝 방법을 도시하는 블록도이다.
이하에서, 일부 실시예들을, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
도 1은 일실시예에 따른 모션 플래닝 장치를 도시한 블록도이다.
일실시예에 따르면 모션 플래닝 장치(100)는 샘플링 영역을 생성하는 샘플링부(110)와 마일스톤을 입력하는 계산부(120)를 포함한다. 일실시예에 따르면 샘플링 영역은 복수의 샘플링 원을 포함할 수 있다. 일실시예로서 상기 샘플링 영역은 전체 공간 영역에서 최적 경로를 찾기 위해 지정된 영역이다.
샘플링부(110)는 아래 기술할 것처럼 계산부(120)가 입력한 마일스톤을 중심으로 새로운 샘플링 영역을 추가한다. 일실시예로서 샘플링부(110)는 마일스톤을 원의 중심으로 하는 샘플링 원을 새로운 샘플링 영역으로 추가할 수 있다. 샘플링부(110)는 상기 마일스톤을 포함하는 기존의 샘플링 원들의 반지름을 기초로 하여 새로운 샘플링 원의 반지름을 설정할 수 있다. 일실시예로서 샘플링부(110)는 아래 기재된 수학식 1을 기초로 하여 새로운 샘플링 원의 반지름을 설정할 수 있다.
Figure pat00001
Figure pat00002
는 상기 마일스톤을 포함하는 기존의 샘플링 원들의 집합이고, Nc
Figure pat00003
의 원소의 개수를 의미한다. rs는 상기 마일스톤을 포함하는 기존의 샘플링 원의 반지름이고 rn은 새로운 샘플링 원의 반지름이다. k는 0 이상 1이하 범위에서 존재하는 비례상수로서 사용자에 의해 정의되는 값이다. 사용자는 비례상수 k값의 조절을 통하여 새롭게 생성될 샘플링 원의 반지름을 조절할 수 있다.
계산부(120)는 샘플링부(110)가 생성하는 샘플링 영역 내에서 새로운 최적 경로를 계산하고 상기 새로운 최적 경로에 포함되는 노드 중에서 이전 최적 경로에 포함되지 않는 상기 노드를 마일스톤으로 입력한다. 일실시예로서 계산부(120)는 상기 샘플링 영역 내의 출발점에서 목표점까지 존재하는 경로 중에서 장애물과의 충돌 없이 최단 거리로 주행하는 경로를 상기 새로운 최적 경로로 계산할 수 있다.
다른 일실시예로서 계산부(120)는 상기 샘플링 영역 내의 출발점에서 목표점까지의 임의의 경로 중에서 상기 임의의 경로에 대응하는 코스트 값이 상기 이전 최적 경로에 대응하는 코스트 값보다 작은 경우에 상기 임의의 경로를 상기 새로운 최적 경로로 계산한다.
일실시예로서 코스트 값은 경로의 길이가 될 수 있다. 다른 일실시예로서 코스트 값은 도착점까지의 예상 시간이 될 수 있다. 다른 일실시예로서 코스트 값은 경로까지의 비용이 될 수 있다. 코스트 값의 정의에 따라 본 발명은 다양한 최적 경로를 계산하고 출력할 수 있다.
일실시예로서 계산부(120)는 복수의 샘플링 원 각각에 대응하는 상관 값을 계산할 수 있다. 상기 상관 값은 샘플링 영역 내에 존재하는 경로 중에 선택될 확률과 연관된다. 계산부(120)는 위에서 기재한 것처럼 선택된 경로를 기존의 최적 경로와 비교하고 새로운 최적 경로를 결정한다.
일실시예로서 계산부(120)는 마일스톤을 중심으로 새롭게 생성된 원의 상관 값을 아래의 수학식 2와 같이 계산할 수 있다.
Figure pat00004
Figure pat00005
는 상기 마일스톤을 포함하는 기존의 샘플링 원들의 집합이고, Nc
Figure pat00006
의 원소의 개수를 의미한다. rs는 상기 마일스톤을 포함하는 기존의 샘플링 원의 반지름이고 rn은 새로운 샘플링 원의 반지름이고 is는 상기 마일스톤을 포함하는 기존의 샘플링 원에 대응하는 상관 값이다. in은 새로운 샘플링 원에 대응하는 상관 값이다.
상관 값은 샘플링 원의 반지름 크기에 기초하여 결정된다. 반지름이 커서 넓은 샘플링 영역을 갖는 경우에 더 높은 확률로 선택되어 최적 경로 인지 여부를 판단 받는 것을 의미한다.
상관 값은 대응하는 샘플링 영역이 선택될 확률과 연관 있다. 따라서 전체의 상관 값의 합계를 유지하고 각각의 샘플링 원에 대응하는 상관 값을 변경하면 각각의 샘플링 원이 선택될 상대적 확률을 조절할 수 있다. 이러한 이유로 상기 마일스톤을 포함하는 기존의 샘플링 원들에 대응하는 상관 값은 아래의 수학식 3과 같이 조절된다.
Figure pat00007
Nc는 마일스톤을 포함하는 샘플링 원들의 집합 원소의 개수를 의미한다. rs는 상기 마일스톤을 포함하는 기존의 샘플링 원의 반지름이고 rn은 새로운 샘플링 원의 반지름이고 is는 상기 마일스톤을 포함하는 기존의 샘플링 원에 대응하는 상관 값이다.
Figure pat00008
은 상기 마일스톤을 포함하는 기존의 샘플링 원에 대응하는 상관 값의 변화량이다.
수학식 3에서 알 수 있듯이,
Figure pat00009
의 총합은 in과 동일하게 유지된다. 상관 값의 총합은 동일하고 각각의 샘플링 원들이 선택될 상대적 확률만 변화하는 것이다.
도 2a, 도 2b 및 도 2c는 일실시예에 따른 모션 플래닝 장치의 동작 과정을 설명하기 위한 도면이다.
도 2a에서 도시된 것처럼 경로(211)은 기존에 계산된 최적 경로이다. 앞서 기재한 것처럼, 일실시예로서 계산부(120)는 샘플링 영역 내에서 최적 경로를 계산할 수 있다. 다만 상기 최적 경로는 현재의 샘플링 영역 내에서 계산한 경로에 해당 된다. 전체 대역에서 최적 경로를 계산하기 위해서는 많은 시간이 요구되기 때문에 샘플링 영역을 설정하고 그 영역 내에서의 최적 경로를 찾는다.
경로(212)는 새로운 최적 경로이다. 앞서 기재한 것처럼, 경로(212)에 대응하는 코스트 값은 경로(211)에 대응하는 코스트 값보다 작을 것이다.
경로(212)에 포함되는 점 또는 노드 중에서 경로(211)에 포함되지 않는 점들의 집합 또는 노드를 마일스톤으로 입력할 수 있다. 일실시예로서 상기 마일스톤 입력 과정은 계산부(120)에 의해서 수행될 수 있다. 도 2a에서 도시된 것처럼 일실시예의 경우는 마일스톤(221)과 마일스톤(222)가 존재한다.
도 2b는 복수의 샘플링 원(231, 232, 233, 234, 235, 236)을 포함하는 샘플링 영역을 도시한다. 마일스톤(221, 222)을 검출한 이후에 기존에 존재하는 샘플링 원 중에서 마일스톤(221, 222)을 전부 또는 일부 포함하는 샘플링 원을 검출할 수 있다. 도 2a에 도시된 일실시예의 경우에는 샘플링 원(231)이 마일스톤(221)을 포함하고, 샘플링 원(232, 233, 234, 235)은 마일스톤(222)를 포함한다. 반면에 샘플링 원(236)은 어떠한 마일스톤도 포함하지 않는다.
도 2c는 마일스톤(221, 222)를 중심으로 하는 새롭게 생성된 샘플링 원(241, 242)를 도시한다. 일실시예로서 새롭게 생성된 샘플링 원(241, 242)의 반지름의 크기는 수학식 1을 이용하여 결정될 수 있다. 일실시예로서 새롭게 생성된 샘플링 원(241, 242) 및 기존에 존재하는 샘플링 원(231, 232, 233, 234, 235, 236)들의 상관 값이 결정될 수 있다. 상관 값 결정은 위에 기재된 수학식 2, 3에 따라 결정될 수 있다. 상관 값은 샘플링 원이 선택되어 최적 경로 존재 여부가 판단될 확률에 대응된다. 샘플링 원들이 많이 교차하는 영역일수록 높은 선택 확률로 최적 경로 존재 여부가 판단될 것을 알 수 있다.
도 3은 일실시예에 따른 샘플링 영역 생성기를 도시한다.
샘플링 영역 생성기(300)는 생성부(310) 및 계산부(320)를 계산한다. 생성부(310)는 전체 경로 내에 존재하는 장애물의 위치 정보에 기초하여 GVG(Generalized Voronoi Graph)를 생성한다. 특정 장애물을 기준으로 가장 가까운 점들을 모은 집합인 보로노이 다이어그램(Voronoi Diagram)을 획득하고, 상기 보로노이 다이어그램의 경계선을 GVG로 생성한다. GVG는 장애물 각각에서부터 균등하게 멀게 통과할 수 있는 기준 선이 되는 것이다.
계산부(320)는 상기 GVG 상의 제1 위치를 중심으로 하고 상기 장애물까지의 최단 거리를 반지름으로 하는 제1 샘플링 원을 계산하고 샘플링 영역에 추가할 수 있다. 계산부(320)는 저장된 초기 위치를 기초로 상기 제1 위치를 결정할 수 있다. 계산부(320)는 상기 GVG 상의 제2 위치를 중심으로 하고 상기 장애물까지 거리를 반지름으로 하는 복수의 원을 생성하고 상기 복수의 원 중에서 상기 제1 샘플링 원과 교차하고 상기 제1 샘플링 원의 장애물과의 접점을 포함하지 않는 제2 샘플링 원을 계산하고 상기 샘플링 영역에 추가한다.
도 4는 일실시예에 따른 샘플링 영역이 생성되는 과정을 설명하는 도면이다.
일실시예에 따르면 전체 경로에는 복수의 장애물(411, 412, 413, 414)이 존재한다. 생성부(310)는 상기 복수의 장애물(411, 412, 413, 414) 중에 각각의 장애물에 가장 가까운 점들의 집합인 보로노이 다이어그램을 생성한다. 보로노이 다이어그램의 경계선에 해당하는 GVG(421)가 도시된다. 생성부(310)는 보로노이 다이어그램에 기초하여 GVG(421)를 생성한다. GVG(421) 위에 존재하는 점들은 생성될 샘플링 원의 중심이 될 수 있다.
일실시예에 따라 초기 위치(431)가 도시된다. 일실시예로서 초기 위치(431)는 무인 주행 로봇의 초기 위치일 수 있다. 계산부(320)는 초기 위치(431)로부터 장애물(411, 412, 413, 414) 중에 임의의 어느 하나 장애물에 직선을 생성한다. 도 4에서 도시된 것처럼 직선(432)이 생성된다. 직선(432)과 GVG(421)가 만나는 교점(433)은 제1 위치(433)가 된다. 계산부(320) 제1 위치(433)를 중심으로 하고 첫 번째 샘플링 원(441)이 생성한다. 계산부(320)는 상기 첫 번째 샘플링 원(441)을 샘플링 영역에 추가할 것이다. 더하여 제1 위치(433)에서 가장 가까운 장애물(414)까지의 최단 거리(442)는 첫 번째 샘플링 원(441)의 반지름(442)이 된다.
도 5a 및 5b는 일실시예에 따른 샘플링 영역이 확장되는 과정을 설명하는 도면이다.
도 5a에서 도시된 것처럼, 계산부(320)는 첫 번째 샘플링 원에 해당하는 제1 샘플링 원(511)을 생성하고 샘플링 영역 후보인 복수의 샘플링 원(512, 513)을 생성한다. 계산부(320)는 샘플링 영역 후보 중에서 샘플링 영역으로 추가할 샘플링 원을 계산한다.
계산부(320)는 복수의 샘플링 영역 후보 중에서 샘플링 영역과 교차점이 존재하는 지 여부를 계산한다. 계산부(320)는 교차점이 존재하지 않는 샘플링 원(513)을 샘플링 영역 후보에서 제거할 수 있다. 계산부는 교차점 또는 복수의 교차점을 포함하는 교차영역(520)을 포함하는 샘플링 원(512)을 샘플링 영역 후보에 존재하도록 한다.
계산부(320)는 샘플링 영역 후보에 존재하는 샘플링 원(512)과 장애물(540)과의 접점(530)이 기존에 존재하는 샘플링 원(511) 또는 샘플링 영역 내부에 존재하는지 여부를 판단한다. 접점이 기존에 존재하는 샘플링 원(511) 또는 샘플링 영역 내부에 존재하는 샘플링 원은 상기 샘플링 영역 후보에서 제거될 것이다.
도 5a에서 도시된 일실시예에 따르면 샘플링 원(512)은 장애물과의 접점(530)이 기존 샘플링 영역 내부에 존재하지 않고 반면 기존의 샘플링 영역과 교차점 또는 교차영역(520)이 존재한다. 따라서 계산부(320)는 새롭게 샘플링 된 원(512)를 샘플링 영역에 추가한다. 샘플링 영역은 복수의 샘플링 원(511, 512)를 포함하게 될 것이다.
도 5b는 위에서 설명한 샘플링 영역을 확장한 결과를 도시하는 그래프이다. 앞서 추가된 샘플링 원(512)과 같은 과정에 따라 적어도 하나의 샘플링 원이 새롭게 추가될 수 있을 것이다. 일실시예로서 계산부(320)는 더 이상 추가할 샘플링 원이 존재하지 않는 경우에 샘플링 영역 확장을 중지할 수 있다. 도 5에 도시된 것처럼 전체 샘플링 영역(550)이 생성될 수 있다.
도 6은 일실시예에 따른 모션 플래닝 방법을 도시하는 블록도이다.
단계(610)은 복수의 샘플링 원을 포함하는 샘플링 영역 내에서 새로운 최적 경로를 업데이트 하는 단계이다. 일실시예로서 단계(610)은 상기 샘플링 영역 내의 출발점에서 목표점까지 임의의 경로에 대응하는 코스트 값이 상기 이전 최적 경로에 대응하는 코스트 값보다 작은 경우에 상기 임의의 경로를 상기 새로운 최적 경로로 업데이트하는 것일 수 있다. 코스트 함수의 출력 값인 코스트 값은 코스트 함수의 정의에 따라 다양한 값을 나타낼 수 있다. 일실시예로서 코스트 값은 거리, 도달 시간 또는 도달 비용이 될 수 있다.
단계(620)은 새로운 최적 경로 내에 포함되는 점 중에서 이전 최적 경로에 포함되지 않는 점의 집합을 마일스톤으로 입력하는 단계이다. 상기 마일스톤은 새롭게 추가될 샘플링 원들의 중심이 될 수 있다.
단계(630)은 상기 마일스톤을 중심으로 하는 원을 상기 샘플링 영역에 추가하는 단계이다. 새롭게 생성된 샘플링 원들의 반지름은 상기 마일스톤을 포함하는 샘플링 원들의 반지름에 기초하여 계산될 수 있다. 보다 구체적으로 상기 마일스톤을 중심으로 새롭게 생성된 샘플링 원들의 반지름의 크기는 수학식 1을 이용하여 결정될 수 있다.
일실시예로서 본 발명의 모션 플래닝 방법은 복수의 샘플링 원 각각에 대응하는 상관 값을 부여하는 단계를 더 포함할 수 있다. 상관 값을 부여하는 단계는 상기 복수의 샘플링 원 중에서 다른 샘플링 원과 교차하는 영역을 많이 포함하는 상기 샘플링 원에 높은 상관 값을 부여할 수 있다. 이 경우에 단계(610)은 상기 복수의 샘플링 원에 포함되는 임의의 경로 중에서 높은 상기 상관 값을 가지는 샘플링 원에 포함되는 경로를 높은 확률로 선택하고 계산할 수 있다.
본 발명이 제안하는 모션 플래닝 방법은 국소 탐색을 기반으로 전역 탐색의 결과를 획득하기 위한 방법이다. 따라서 샘플링 영역을 추가하는 단계(630)가 수행된 이후에 모션 플래닝 방법은 종료되지 않고 새롭게 추가된 영역이 존재하는지 여부를 확인한다. 새롭게 추가된 샘플링 영역이 존재하는 경우에 아직 전역 탐색에 도달하지 못했다는 것이므로 다시 새로운 최적 경로를 업데이트 하는 단계(610)를 수행한다. 하지만 새롭게 추가된 영역이 없으면, 현재까지 발견한 최적 경로가 전역 탐색의 최적 경로가 되기 때문에 모션 플래닝 방법은 종료된다.
도 7은 다른 일실시예에 따른 모션 플래닝 방법을 도시하는 블록도이다.
단계(710)은 GVG를 생성하는 단계이다. 일실시예로서 GVG는 전체 영역에 존재하는 장애물의 위치 정보에 기초하여 생성될 수 있다. 보로노이 그래프는 각각의 장애물로부터 가장 가까운 점의 집합을 도시한다. 상기 점들의 집합을 분할하고 있는 경계선이 GVG에 해당된다. 예시적으로 GVG는 로봇이 모든 장애물로부터 가장 멀리 떨어져 주행할 수 있는 경로에 해당될 수 있다.
단계(720)은 샘플링 영역을 생성하는 단계이다. 단계(720)은 로봇 또는 오브젝트의 초기 위치에 기초하여 제1 위치를 결정한다. 단계(720)에서 초기 위치와 복수의 장애물 중 어느 하나를 연결하는 직선이 생성된다. 이 경우에, 상기 직선과 상기 GVG의 교점이 제1 위치로 결정된다. 제1 위치는 첫 번째로 생성되는 샘플링 원의 중심이 될 수 있다. 상기 제1 위치로부터 복수의 장애물 중 가장 가까운 장애물까지의 최단 거리는 첫 번째로 생성되는 샘플링 원의 반지름이 될 수 있다.
다른 실시예로서, 단계(720)은 샘플링 영역을 확장할 수 있다. 단계(720)에서 GVG 상의 임의의 점, 제2 위치를 중심으로 복수의 장애물 중 어느 하나 까지의 거리를 반지름으로 하는 복수의 원이 생성된다. 상기 복수의 원은 샘플링 영역으로 추가될 후보로서 샘플링 영역 후보가 될 것이다. 복수의 샘플링 영역 후보 중에서 상기 샘플링 영역과 교차하고 상기 샘플링 영역에 포함되지 않는 상기 장애물과의 접점을 포함하는 원이 샘플링 영역에 추가될 수 있다.
단계(730)은 샘플링 영역 내에서 출밤점에서 목표점까지의 최소의 코스트 값을 나타내는 경로를 계산한다. 단계(720)에 따라 현재까지 확장된 샘플링 영역 내에서의 국소 해답(Local Solution)에 대응하는 최적 경로를 검출하는 단계이다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (16)

  1. 복수의 샘플링 원을 포함하는 샘플링 영역을 생성하는 샘플링부; 및
    상기 샘플링 영역 내에서 새로운 최적 경로를 계산하고 상기 새로운 최적 경로에 포함되는 노드 중에서 이전 최적 경로에 포함되지 않는 상기 노드를 마일스톤으로 지정하는 계산부
    를 포함하고,
    상기 샘플링부는 상기 마일스톤을 중심으로 하는 새로운 샘플링 원을 상기 샘플링 영역에 추가하고 상기 계산부는 상기 샘플링 영역에서 상기 새로운 최적 경로를 다시 계산하는
    모션 플래닝 장치.
  2. 제1항에 있어서,
    상기 계산부는 상기 샘플링 영역 내에 존재하는 경로 중에서 장애물과의 충돌 없이 출발점에서 목표점까지를 최단 거리로 주행하는 경로를 상기 새로운 최적 경로로 계산하는
    모션 플래닝 장치.
  3. 제1항에 있어서,
    상기 샘플링부는 상기 마일스톤을 포함하는 기존의 샘플링 원들의 반지름을 기초로 하여 상기 새로운 샘플링 원의 반지름을 설정하는
    모션 플래닝 장치.
  4. 제1항에 있어서,
    상기 계산부는 상기 샘플링 영역 내의 출발점에서 목표점까지 임의의 경로 중에서 상기 임의의 경로에 대응하는 코스트 값이 상기 이전 최적 경로에 대응하는 코스트 값보다 작은 경우에 상기 임의의 경로를 상기 새로운 최적 경로로 계산하는
    모션 플래닝 장치.
  5. 제1항에 있어서,
    상기 계산부는 상기 복수의 샘플링 원들이 교차하는 영역 내의 경로를 그 이외의 경로보다 높은 확률로 선택하고 최적 경로를 계산하는
    모션 플래닝 장치.
  6. 장애물의 위치 정보에 기초하여 GVG(Generalized Voronoi Graph)를 생성하는 생성부; 및
    상기 GVG 상의 제1 위치를 중심으로 상기 장애물까지 최단 거리를 반지름으로 하는 제1 샘플링 원을 계산하고 샘플링 영역에 추가하는 계산부
    를 포함하는 샘플링 영역 생성기.
  7. 제6항에 있어서,
    상기 계산부는 상기 GVG 상의 제2 위치를 중심으로 상기 장애물까지 거리를 반지름으로 하는 복수의 원을 계산하고 상기 복수의 원 중에서 상기 제1 샘플링 원과 교차하고 상기 제1 샘플링 원의 장애물과의 접점을 포함하지 않는 제2 샘플링 원을 계산하고 샘플링 영역에 추가하는
    샘플링 영역 생성기.
  8. 제6항에 있어서,
    상기 계산부는 초기 위치에서 임의의 장애물 방향으로 직선을 그리고 상기 직선이 상기 GVG와 만나는 점을 상기 제1 위치로 계산하는
    샘플링 영역 생성기.
  9. 복수의 샘플링 원을 포함하는 샘플링 영역 내에서 새로운 최적 경로를 업데이트 하는 단계;
    상기 새로운 최적의 경로 내에 포함되는 점 중에서 이전 최적 경로에 포함되지 않는 점의 집합을 마일스톤으로 지정하는 단계; 및
    상기 마일스톤을 중심으로 하는 원을 상기 샘플링 영역에 추가하는 단계
    를 포함하는 모션 플래닝 방법.
  10. 제9항에 있어서,
    상기 새로운 최적 경로를 업데이트 하는 단계는 상기 샘플링 영역 내의 출발점에서 목표점까지 임의의 경로에 대응하는 코스트 값이 상기 이전 최적 경로에 대응하는 코스트 값보다 작은 경우에 상기 임의의 경로를 상기 새로운 최적 경로로 업데이트하는
    모션 플래닝 방법.
  11. 제9항에 있어서,
    상기 복수의 샘플링 원 각각에 대응하는 상관 값을 부여하는 단계
    를 더 포함하고
    상기 새로운 최적 경로를 업데이트 하는 단계는 상기 복수의 샘플링 원에 포함되는 임의의 경로 중에서 높은 상기 상관 값을 가지는 샘플링 원에 포함되는 경로를 높은 확률로 선택하고 계산하는
    모션 플래닝 방법.
  12. 제11항에 있어서,
    상기 상관 값을 부여하는 단계는 상기 복수의 샘플링 원 중에서 다른 샘플링 원과 교차하는 영역을 많이 포함하는 상기 샘플링 원에 높은 상기 상관 값이 부여되는
    모션 플래닝 방법.
  13. 장애물에 포함되는 점들 사이의 최단 거리 위치에 기초하여 GVG를 생성하는 단계;
    상기 GVG 상의 제1 위치를 중심으로 상기 제1 위치와 상기 장애물까지의 최단 거리를 반지름으로 하는 원을 포함하는 샘플링 영역을 생성하는 단계; 및
    상기 샘플링 영역 내에서 출발점에서 목표점까지의 최소의 코스트 값을 나타내는 경로를 계산하는 단계
    를 포함하는 모션 플래닝 방법.
  14. 제13항에 있어서,
    초기 위치와 상기 장애물에 포함되는 임의의 점까지의 직선을 생성하고 상기 직선과 상기 GVG의 교점을 제1 위치로 생성하는 단계
    를 더 포함하는 모션 플래닝 방법.
  15. 제13항에 있어서,
    상기 GVG 상의 제2 위치를 중심으로 상기 제2 위치와 상기 장애물까지의 거리를 반지름으로 하는 원 형태의 샘플링 영역 후보를 생성하고, 상기 샘플링 영역 후보 중에서 상기 샘플링 영역과 교차하고 상기 샘플링 영역에 포함되지 않는 상기 장애물과의 접점을 포함하는 상기 샘플링 영역 후보를 샘플링 영역에 추가하는 단계
    를 더 포함하는 모션 플래닝 방법.
  16. 모션 플래닝 방법을 실행하는 프로그램을 수록한 컴퓨터 판독 가능한 기록 매체에 있어서, 상기 프로그램은:
    복수의 샘플링 원을 포함하는 샘플링 영역 내에서 새로운 최적 경로를 업데이트 하는 명령어 세트;
    상기 새로운 최적의 경로 내에 포함되는 점 중에서 이전 최적 경로에 포함되지 않는 점의 집합을 마일스톤으로 지정하는 명령어 세트; 및
    상기 마일스톤을 중심으로 하는 원을 상기 샘플링 영역에 추가하는 명령어 세트
    를 포함하는 컴퓨터 판독 가능한 기록매체.
KR1020150007979A 2015-01-16 2015-01-16 모션 플래닝 장치 및 방법 KR101688302B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150007979A KR101688302B1 (ko) 2015-01-16 2015-01-16 모션 플래닝 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150007979A KR101688302B1 (ko) 2015-01-16 2015-01-16 모션 플래닝 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20160088638A true KR20160088638A (ko) 2016-07-26
KR101688302B1 KR101688302B1 (ko) 2016-12-20

Family

ID=56680854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150007979A KR101688302B1 (ko) 2015-01-16 2015-01-16 모션 플래닝 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101688302B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113075921A (zh) * 2019-12-17 2021-07-06 北京京东尚科信息技术有限公司 无人驾驶设备的局部路径规划方法和装置
CN113467456A (zh) * 2021-07-07 2021-10-01 中国科学院合肥物质科学研究院 一种未知环境下用于特定目标搜索的路径规划方法
CN113654556A (zh) * 2021-07-05 2021-11-16 的卢技术有限公司 一种基于改进em算法的局部路径规划方法、介质及设备
CN116424315A (zh) * 2023-03-31 2023-07-14 阿波罗智联(北京)科技有限公司 碰撞检测方法、装置、电子设备、自动驾驶车辆及介质
US11829147B2 (en) 2018-10-10 2023-11-28 Dyson Technology Limited Path planning
WO2024049640A1 (en) * 2022-08-31 2024-03-07 Zooz, Inc. Trajectory optimization in multi-agent environments
CN118329066A (zh) * 2024-06-13 2024-07-12 浙江大学 一种用于结构化路面的无人清洁车行为规划方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
동영상(2013.10.15.) Cloud RRT*: Sampling Cloud based RRT** *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829147B2 (en) 2018-10-10 2023-11-28 Dyson Technology Limited Path planning
CN113075921A (zh) * 2019-12-17 2021-07-06 北京京东尚科信息技术有限公司 无人驾驶设备的局部路径规划方法和装置
CN113075921B (zh) * 2019-12-17 2024-02-09 北京京东尚科信息技术有限公司 无人驾驶设备的局部路径规划方法和装置
CN113654556A (zh) * 2021-07-05 2021-11-16 的卢技术有限公司 一种基于改进em算法的局部路径规划方法、介质及设备
CN113467456A (zh) * 2021-07-07 2021-10-01 中国科学院合肥物质科学研究院 一种未知环境下用于特定目标搜索的路径规划方法
CN113467456B (zh) * 2021-07-07 2023-10-27 中国科学院合肥物质科学研究院 一种未知环境下用于特定目标搜索的路径规划方法
WO2024049640A1 (en) * 2022-08-31 2024-03-07 Zooz, Inc. Trajectory optimization in multi-agent environments
CN116424315A (zh) * 2023-03-31 2023-07-14 阿波罗智联(北京)科技有限公司 碰撞检测方法、装置、电子设备、自动驾驶车辆及介质
CN118329066A (zh) * 2024-06-13 2024-07-12 浙江大学 一种用于结构化路面的无人清洁车行为规划方法

Also Published As

Publication number Publication date
KR101688302B1 (ko) 2016-12-20

Similar Documents

Publication Publication Date Title
KR101688302B1 (ko) 모션 플래닝 장치 및 방법
KR102049962B1 (ko) 샘플링기반의 최적 트리를 이용한 경로 계획 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
KR101203897B1 (ko) 이동체(mobile body)를 위한 셀?기반 경로 계획 장치 및 방법
JP4577248B2 (ja) 移動体の経路探索システム、経路探索方法及び経路探索プログラム
KR102009482B1 (ko) 로봇의 경로계획 장치와 방법 및 상기 방법을 구현하는 프로그램이 기록된 기록 매체
WO2017144350A1 (en) Method for motion planning for autonomous moving objects
US11922574B2 (en) Method and device for determining plurality of layers of bounding boxes, collision detection method and device, and motion control method and device
CN107436148A (zh) 一种基于多地图的机器人导航方法及装置
US9869559B2 (en) Method and system for obtaining trajectory pattern of route
US10288437B2 (en) Routing with data version stitching
JP2019500691A (ja) 急速探索ランダム化フィードバック主体の動作計画
JP2009053849A (ja) 経路探索システム、経路探索方法、及び自律移動体
JP2021076605A (ja) ビジュアルローカリゼーションとオドメトリに基づく経路追跡方法およびシステム
CN109341698B (zh) 一种移动机器人的路径选择方法及装置
JP7160110B2 (ja) 経路計画装置、経路計画方法、及びプログラム
Elbanhawi et al. Autonomous robots path planning: An adaptive roadmap approach
JPWO2020157990A1 (ja) 経路計画装置、経路計画方法、及びプログラム
Lavrenov Smart spline-based robot navigation on several homotopies: Guaranteed avoidance of potential function local minima
CN113885531B (zh) 用于移动机器人的方法、移动机器人、电路、介质和程序
CN110749325A (zh) 航迹规划方法和装置
US20230273621A1 (en) Information processing apparatus, information processing method, and program
Pereira et al. Multi-robot planning for perception of multiple regions of interest
US20230280164A1 (en) Information processing device, information processing method, and program
KR102097505B1 (ko) 무인기의 이동 경로 생성 방법 및 장치, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
CN114115239A (zh) 一种机器人路径规划方法、系统、设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20191126

Year of fee payment: 4