KR101490055B1 - 이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들 - Google Patents

이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들 Download PDF

Info

Publication number
KR101490055B1
KR101490055B1 KR20130130580A KR20130130580A KR101490055B1 KR 101490055 B1 KR101490055 B1 KR 101490055B1 KR 20130130580 A KR20130130580 A KR 20130130580A KR 20130130580 A KR20130130580 A KR 20130130580A KR 101490055 B1 KR101490055 B1 KR 101490055B1
Authority
KR
South Korea
Prior art keywords
node
mobile robot
feature points
constraint
map
Prior art date
Application number
KR20130130580A
Other languages
English (en)
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 KR20130130580A priority Critical patent/KR101490055B1/ko
Application granted granted Critical
Publication of KR101490055B1 publication Critical patent/KR101490055B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/088Controls for manipulators by means of sensing devices, e.g. viewing or touching devices with position, velocity or acceleration sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/04Viewing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • 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/0259Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means
    • G05D1/0263Control of position or course in two dimensions specially adapted to land vehicles using magnetic or electromagnetic means using magnetic strips
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/01Mobile robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Electromagnetism (AREA)
  • Human Computer Interaction (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

이동 로봇의 위치와 지도를 추정하는 방법은 상기 이동 로봇의 모노 카메라로부터 획득된 현재 이미지와 이전 데이터를 이용하여 제1 노드에 연관된 제1 구속조건을 생성하는 단계와, 상기 이동 로봇의 RGB-D 카메라(red-green-blue depth camera)로부터 획득된 RGB-D 데이터와 이전 3D 맵을 매칭하여 제2 노드에 연관된 제2 구속조건을 생성하는 단계와, 상기 이동 로봇의 2D LRF로부터 획득된 2D 거리 데이터와 이전 2D 맵을 매칭하여 제3 노드에 연관된 제3 구속조건을 생성하는 단계와, 상기 각 노드 사이의 주행 거리를 측정하여 제4 구속조건을 생성하는 단계와, 상기 제1 구속조건, 상기 제2 구속조건, 상기 제3 구속조건, 및 상기 제4 구속조건을 이용하여 상기 각 노드에 대한 그래프-구조를 생성하는 단계를 포함할 수 있다.

Description

이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들{METHOD FOR LOCALIZATION OF MOBILE ROBOT AND MAPPING, AND APPARATUSES OPERATING THE SAME}
아래 실시예들은 이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들에 관한 것이다.
로봇은 산업 현장에서 대량 생산을 위한 도구로서 사용되었다. 상기 로봇은 고정된 위치에서 단순하고 반복적인 작업을 수행하였다. 로봇 기술의 발달에 따라, 상기 로봇은 보다 다양한 형태를 가지게 되었고, 보다 높은 지능과 다양한 작성을 할 수 있는 능력을 갖추게 되었다.
최근에, 자율 이동 로봇(autonomous mobile robot)은 효용성과 안정성 때문에 주목을 받고 있다. 상기 자율 이동 로봇은 UGVs(Unmanned Ground Vehicles)를 포함한다. 상기 자율 이동 로봇이 다양한 임무를 자동으로 수행하기 위해서는 상기 자율 이동 로봇 스스로 주행할 수 있는 능력을 갖추어야 한다. 상기 자율 이동 로봇의 자율 주행 능력을 위해서는 상기 자율 이동 로봇의 현재 어디에 위치해 있는지 아는 것이 중요하다. 또한, 자체적으로 상기 자율 이동 로봇을 동작시키기 위해서도 상기 자율 이동 로봇의 현재 어디에 위치해 있는지 아는 것이 중요하다. 즉, 상기 자율 이동 로봇은 자기 위치 인식(localization)을 수행해야 한다.
실시예들은 이동 로봇이 이동하는 각 노드의 관계를 생성하여 그래프-구조를 구성하는 기술을 제공할 수 있다.
또한, 실시예들은 상기 그래프-구조를 최적화하여 상기 이동 로봇의 최종 위치와 상기 이동 로봇이 위치하는 공간의 지도를 생성하는 기술을 제공할 수 있다.
일 실시예에 따른 이동 로봇의 위치와 지도를 추정하는 방법은 상기 이동 로봇의 모노 카메라(mono camera)로부터 획득된 현재 이미지와 이전 데이터를 이용하여 제1 노드에 연관된 제1 구속조건을 생성하는 단계와, 상기 이동 로봇의 RGB-D 카메라(red-green-blue depth camera)로부터 획득된 RGB-D 데이터와 이전 3D 맵(three dimensions map)을 매칭하여 제2 노드에 연관된 제2 구속조건을 생성하는 단계와, 상기 이동 로봇의 2D LRF(two dimensions laser range finder)로부터 획득된 2D 거리 데이터와 이전 2D 맵(two dimensions map)을 매칭하여 제3 노드에 연관된 제3 구속조건을 생성하는 단계와, 상기 각 노드 사이의 주행 거리를 측정하여 제4 구속조건을 생성하는 단계와, 상기 제1 구속조건, 상기 제2 구속조건, 상기 제3 구속조건, 및 상기 제4 구속조건을 이용하여 상기 각 노드에 대한 그래프-구조(graph-structure)를 생성하는 단계를 포함할 수 있다.
상기 방법은 상기 그래프-구조를 최적화하여 상기 이동 로봇의 최종 위치와 상기 이동 로봇이 위치하는 공간의 지도를 추정하는 단계를 더 포함할 수 있다.
상기 제1 구속조건을 생성하는 단계는 상기 현재 이미지의 제1 특징점들을 추출하고, 상기 제1 특징점들과 상기 이전 데이터에 포함된 이전 이미지들의 제2 특징점들을 매칭하는 단계와, 상기 제2 특징점들의 매칭된 특징점들에 대응하는 상기 이전 데이터에 포함된 포인트 클라우드 상의 3D 특징점들을 상기 제1 특징점들의 매칭된 특징점들에 투영하여 상기 제1 구속조건에 포함되는 상기 제1 노드의 위치를 측정하는 단계를 포함할 수 있다.
상기 제1 구속조건을 생성하는 단계는 상기 이전 이미지들의 상기 제2 특징점들을 추출하는 단계와, 상기 포인트 클라우드 상에서 상기 제2 특징점들에 대응하는 모든 3D 특징점들을 추출하는 단계를 더 포함할 수 있다.
상기 제1 노드의 위치를 측정하는 단계는 상기 제1 노드의 후보 위치들을 측정하는 단계와, 상기 후보 위치들을 필터링하여 상기 위치를 측정하는 단계를 포함할 수 있다.
상기 매칭하는 단계는 상기 제1 특징점들과 상기 제2 특징점들을 2D 호모그래피 기반의RANSAC(random sample conseneus)을 통해 매칭하는 단계를 포함할 수 있다.
일 실시예에 따른 모노 카메라(mono camera), RGB-D 카메라(red-green-blue depth camera), 및 2D LRF(two dimensions laser range finder)를 포함하는 이동 로봇의 위치와 지도를 추정하기 위한 위치 추정 시스템은 상기 모노 카메라로부터 출력된 현재 이미지와 이전 데이터에 포함된 이전를 이미지들과 포인트 클라우드를 이용하여 제1 노드에 연관된 제1 구속조건을 생성하는 제1 감지부와, 상기 RGB-D 카메라로부터 출력된 RGB-D 데이터와 이전 3D 맵(three dimensions map)을 매칭하여 제2 노드에 연관된 제2 구속조건을 생성하는 제2 감지부와, 상기 2D LRF로부터 출력된 2D 거리 데이터와 이전 2D 맵(two dimensions map)을 매칭하여 제3 노드에 연관된 제3 구속조건을 생성하는 제3 감지부와, 상기 각 노드 사이의 주행 거리를 측정하여 제4 구속조건을 생성하는 제4 감지부와, 상기 제1 구속조건, 상기 제2 구속조건, 상기 제3 구속조건, 및 상기 제4 구속조건을 이용하여 상기 각 노드에 대한 그래프-구조를 생성하는 위치 추정부를 포함할 수 있다.
상기 위치 추정부는 그래프-최적화(graph-optimization) 기법을 통해 상기 그래프-구조를 최적화하여 상기 이동 로봇의 최종 위치와 상기 이동 로봇이 위치하는 공간의 지도를 추정할 수 있다.
도 1은 일 실시예에 따른 이동 로봇의 위치와 지도를 추정하기 위한 위치 추정 시스템의 개략적인 블록도이다.
도 2는 도 1에 도시된 제1 감지부의 동작을 설명하기 위한 플로우 차트이다.
도 3은 제1 감지부의 추출 동작과 매칭 동작을 설명하기 위한 도면이다.
도 4는 제1 감지부의 투영 동작을 설명하기 위한 도면이다.
도 5는 도 1에 도시된 위치 추정부의 그래프-구조를 생성하는 동작을 설명하기 위한 도면이다.
도 6은 도 1에 도시된 위치 추정부의 그래프 최적화 동작을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 위치 추정 시스템의 동작 방법을 설명하기 위한 플로우 차트이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "사이에"와 "바로~사이에" 또는 "~에 이웃하는"과 "에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른 이동 로봇의 위치를 추정하기 위한 위치 추정 시스템의 개략적인 블록도이다.
도 1을 참조하면, 위치 추정 시스템(10)은 모노 카메라(mono camera; 100), RGB-D 카메라(red-green-blue depth camera; 200), 2D LRF(two dimensions laser range finder; 300), 복수의 감지부들(130, 230, 330, 및 400), 및 위치 추정부(500)를 포함할 수 있다.
위치 추정 시스템(10)은 복수의 감지부들(130, 230, 330, 및 400) 각각의 구속조건을 이용하여 이동 로봇의 최종 위치를 추정할 수 있다.
모노 카메라(100), RGB-D 카메라(200), 및 2D LRF(300) 각각은 이동 로봇에 부착되어, 상기 이동 로봇이 위치하는 공간(예를 들어, 주위 환경)에 대한 데이터를 생성할 수 있다. 예를 들어, 상기 데이터는 이동 로봇이 위치하는 상기 공간의 전방, 후방, 오른쪽, 왼쪽 및/또는 전 방위에 대한 데이터일 수 있다.
모노 카메라(100)는 이동 로봇이 위치하는 공간에 대한 현재 이미지를 생성할 수 있다. 모노 카메라(100)는 상기 현재 이미지를 제1 감지부(130)로 출력할 수 있다. 예를 들어, 상기 현재 이미지는 2D 이미지일 수 있다.
제1 감지부(130)는 모노 카메라(100)로부터 획득된 현재 이미지를 수신할 수 있다. 제1 감지부(130)는 상기 현재 이미지와 이전 데이터를 이용하여 제1 노드에 연관된 제1 구속조건을 생성할 수 있다. 예를 들어, 상기 이전 데이터는 이동 로봇이 위치하는 공간에 대한 이전 이미지들과 포인트 클라우드(point cloud)를 포함할 수 있다. 제1 감지부(130)는 상기 제1 구속조건을 위치 추정부(500)로 출력할 수 있다. 제1 감지부(130)의 동작은 도 2 내지 도 4를 참조하여 상세히 설명될 것이다.
RGB-D 카메라(200)는 이동 로봇이 위치하는 공간에 대한 RGB-D 데이터를 생성할 수 있다. RGB-D 카메라(200)는 상기 RGB-D 데이터를 제2 감지부(230)로 출력할 수 있다. 예를 들어, 상기 RGB-D 데이터는 2D 이미지와 상기 2D 이미지의 깊이 정보(depth information)을 포함할 수 있다.
제2 감지부(230)는 RGB-D 카메라(200)로부터 획득된 RGB-D 데이터를 수신할 수 있다. 제2 감지부(230)는 상기 RGB-D 데이터와 이전 3D 맵(three dimensions map)을 매칭하여 제2 노드에 연관된 제2 구속조건을 생성할 수 있다. 예를 들어, 제2 감지부(230)는 상기 RGB-D 데이터의 2D 이미지로부터 특징점들을 추출하고, 상기 이전 3D 맵으로부터 특징점들을 추출하고, 추출된 특징점들을 SURF(speed-up robust features) 알고리즘 또는 SIFT(scale invariant feature transform) 알고리즘을 통해 매칭하여 상기 제2 구속조건을 생성할 수 있다. 예를 들어, 상기 이전 3D 맵은 이동 로봇이 위치하는 공간에 대한 이전 3D 이미지 맵일 수 있다. 제2 감지부(230)는 상기 제2 구속조건을 위치 추정부(500)로 출력할 수 있다.
제2 감지부(230)는 이전 3D 맵을 저장할 수 있는 메모리 장치(235)를 포함할 수 있다. 도 1에서는 메모리 장치(235)가 제2 감지부(230)의 내부에 구현되어 도시되어 있지만, 실시예에 따라 메모리 장치(235)는 제2 감지부(230)의 외부에 구현될 수 있다. 메모리 장치(235)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.
상기 휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.
상기 불휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
2D LRF(300)는 이동 로봇이 위치하는 공간에 대한 2D 거리 데이터를 생성할 수 있다. 2D LRF(300)는 상기 2D 거리 데이터를 제3 감지부(330)로 출력할 수 있다.
제3 감지부(330)는 2D LRF(300)로부터 획득된 2D 거리 데이터와 이전 2D 맵(two dimensions map)을 매칭하여 제3 노드에 연관된 제3 구속조건을 생성할 수 있다. 예를 들어, 제3 감지부(330)는 상기 2D 거리 데이터와 상기 이전 2D 맵을 ICP(iterative closest point) 알고리즘을 통해 매칭하여 상기 제3 구속조건을 생성할 수 있다. 예를 들어, 상기 이전 2D 맵은 이동 로봇이 위치하는 공간에 대한 이전 2D 이미지 맵일 수 있다. 제3 감지부(330)는 상기 제3 구속조건을 위치 추정부(500)로 출력할 수 있다.
제3 감지부(330)는 이전 2D 맵을 저장할 수 있는 메모리 장치(335)를 포함할 수 있다. 도 1에서는 메모리 장치(335)가 제3 감지부(330)의 내부에 구현되어 도시되어 있지만, 실시예에 따라 메모리 장치(335)는 제3 감지부(330)의 외부에 구현될 수 있다. 메모리 장치(335)는 메모리 장치(235)와 같이 상술한 휘발성 메모리 장치 또는 상술한 휘발성 메모리 장치로 구현될 수 있다.
제4 감지부(330)는 각 노드 사이의 주행 거리를 측정하여 제4 구속조건을 생성할 수 있다. 제4 감지부(330)는 이동 로봇의 바퀴의 회전을 측정하는 인코더(encoder; 미도시)를 포함할 수 있다. 예를 들어, 제4 감지부(330)는 상기 이동 로봇의 바퀴의 회전을 측정하여 상기 각 노드 사이의 주행 거리를 측정할 수 있다. 예를 들어, 상기 각 노드는 제1 노드, 제2 노드, 및 제3 노드를 포함할 수 있다. 상기 각 노드는 상기 제1 노드, 제2 노드, 및 제3 노드와 상이한 노드를 더 포함할 수 있다. 제4 감지부(330)는 상기 제4 구속조건을 위치 추정부(500)로 출력할 수 있다.
위치 추정부(500)는 제2 감지부(230)의 이전 3D 맵을 업데이트할 수 있다. 또한, 위치 추정부(500)는 제3 감지부(330)의 이전 2D 맵을 업데이트할 수 있다. 예를 들어, 제2 감지부(230)는 업데이트된 이전 3D 맵을 이용하고, 제3 감지부(330)는 업데이트된 이전 2D 맵을 이용할 수 있다.
위치 추정부(500)는 제1 구속조건, 제2 구속조건, 제3 구속조건, 및 제4 구속 조건을 이용하여 각 노드에 대한 그래프-구조(graph-structure)를 생성할 수 있다. 위치 추정부(500)는 상기 그래프-구조를 최적화하여 이동 로봇의 최종 위치를 추정할 수 있다. 예를 들어, 상기 각 노드는 제1 노드, 제2 노드, 및 제3 노드를 포함할 수 있다. 상기 각 노드는 상기 제1 노드, 제2 노드, 및 제3 노드와 상이한 노드를 더 포함할 수 있다. 위치 추정부(500)의 동작은 도 5 및 도 6을 참조하여 상세히 설명될 것이다.
위치 추정부(500)는 이동 로봇이 이동하는 각 노드의 관계를 생성하여 그래프-구조를 구성함으로써 상기 이동 로봇의 최종 위치와 상기 이동 로봇이 위치하는 공간의 지도를 생성할 수 있다.
명세서에 표현된 "노드"는 이동 로봇이 위치하는 공간에서의 이동하는 지점을 의미할 수 있다. 일 실시예에 따라, 제1 노드, 제2 노드, 및 제3 노드는 상기 이동 로봇이 위치하는 공간에서 동일한 이동 지점일 수 있다. 다른 실시예에 따라, 상기 제1 노드, 상기 제2 노드, 및 상기 제3 노드는 상기 이동 로봇이 위치하는 공간에서 상이한 이동 지점일 수 있다.
도 2는 도 1에 도시된 제1 감지부의 동작을 설명하기 위한 플로우 차트이고, 도 3은 제1 감지부의 추출 동작과 매칭 동작을 설명하기 위한 도면이고, 도 4는 제1 감지부의 투영 동작을 설명하기 위한 도면이다.
도 1 내지 도 4를 참조하면, 제1 감지부(130)는 이동 로봇이 위치하는 공간에 대한 이전 데이터를 미리 처리할 수 있다. 제1 감지부(130)는 상기 이전 데이터에 포함된 이전 이미지들의 제2 특징점들을 추출할 수 있다(610). 일 실시예에 따라, 제1 감지부(130)는 SURF 알고리즘을 통해 상기 이전 이미지들의 제2 특징점들을 추출할 수 있다. 제1 감지부(130)는 상기 이전 데이터에 포함된 포인트 클라우드(point cloud) 상에서 상기 제2 특징점들의 3D 좌표를 추출(또는 계산)할 수 있다(620). 일 실시예에 따라, 제1 감지부(130)는 레이 트레이싱(ray tracing) 알고리즘을 통해 상기 제2 특징점들의 3D 좌표를 추출할 수 있다. 예를 들어, 제1 감지부(130)는 상기 포인트 클라우드 상에서 상기 제2 특징점들에 대응하는 3D 특징점들을 추출할 수 있다. 예를 들어, 상기 3D 특징점들은 상기 제2 특징점들에 대응하는 모든 3D 특징점들일 수 있다.
제1 감지부(130)는 모노 카메라(100)로부터 획득된 현재 이미지를 수신할 수 있다(630). 제1 감지부(130)는 상기 현재 이미지의 제1 특징점들을 추출할 수 있다(640). 예를 들어, 제1 감지부(130)는 SURF 알고리즘을 통해 상기 현재 이미지의 제1 특징점들을 추출할 수 있다.
제1 감지부(130)는 현재 이미지의 제1 특징점들과 이전 이미지들의 제2 특징점들을 매칭할 수 있다(650). 예를 들어, 제1 감지부(130)는 상기 제1 특징점들과 상기 제2 특징점들을 2D 호로그래피(homography) 기반의 RANSAC(random sample consensus) 알고리즘을 통해 매칭할 수 있다.
제1 감지부(130)의 특징점들을 추출하는 동작과 추출된 특징점들을 매칭하는 동작은 도 3에 도시된 바와 같을 수 있다.
제1 감지부(130)는 이전 이미지들로부터 추출된 제2 특징점들의 매칭된 특징점들에 대응하는 이전 데이터에 포함된 포인트 클라우드 상의 3D 특징점들을 현재 이미지로부터 추출된 제1 특징점들의 매칭된 특징점들에 투영하여 제1 노드에 연관된 제1 구속조건에 포함되는 상기 제1 노드의 위치를 측정할 수 있다. 예를 들어, 제1 감지부(130)는 도 4의 3D 투영(projection) 방법을 통해 상기 제1 노드의 후보 위치들을 측정할 수 있다. 제1 감지부(130)는 상기 후보 위치들을 필터링하여 상기 제1 노드의 위치를 측정할 수 있다. 예를 들어, 상기 필터링은 중앙값(median) 필터 및/또는 평균값(mean) 필터를 이용한 필터링일 수 있다.
도 5는 도 1에 도시된 위치 추정부의 그래프-구조를 생성하는 동작을 설명하기 위한 도면이고, 도 6은 도 1에 도시된 위치 추정부의 그래프 최적화 동작을 설명하기 위한 도면이다.
도 5에서는 설명의 편의를 위해 4개 노드에 대한 그래프-구조를 생성하는 동작을 설명한다.
도 5 및 도 6을 참조하면, 위치 추정부(500)는 각 감지부(130, 230, 330, 및 400)로부터 제1 구속조건, 제2 구속 조건, 제3 구속조건, 및 제4 구속조건을 수신할 수 있다.
도 5에 도시된 바와 같이, 위치 추정부(500)는 상기 제1 구속조건, 상기 제2 구속조건, 상기 제3 구속조건, 및 상기 제4 구속조건을 이용하여 각 노드(ND1, ND2, ND3, 및 ND4)에 대한 그래프-구조(graph-structure)를 생성할 수 있다.
위치 추정부(500)는 상기 그래프-구조를 최적화하여 이동 로봇의 최종 위치를 추정할 수 있다. 예를 들어, 도 6에 도시된 바와 같이, 위치 추정부(500)는 그래프-최적화(graph-optimization) 기법을 통해 상기 그래프-구조를 최적화하여 상기 이동 로봇의 최종 위치를 추정할 수 있다.
도 7은 일 실시예에 따른 위치 추정 시스템의 동작 방법을 설명하기 위한 플로우 차트이다.
도 7을 참조하면, 제1 감지부(130)는 모노 카메라(100)로부터 획득된 현재 이미지와 이전 데이터를 이용하여 제1 노드에 연관된 제1 구속조건을 생성할 수 있다(710).
제2 감지부(230)는 RGB-D 카메라(200)로부터 획득된 RGB-D 데이터와 이전 3D 맵(three dimensions map)을 매칭하여 제2 노드에 연관된 제2 구속조건을 생성할 수 있다(720).
제3 감지부(330)는 2D LRF(300)로부터 획득된 2D 거리 데이터와 이전 2D 맵(two dimensions map)을 매칭하여 제3 노드에 연관된 제3 구속조건을 생성할 수 있다(730).
제4 감지부(330)는 각 노드 사이의 주행 거리를 측정하여 제4 구속조건을 생성할 수 있다(740).
위치 추정부(500)는 제1 구속조건, 제2 구속조건, 제3 구속조건, 및 제4 구속 조건을 이용하여 각 노드에 대한 그래프-구조(graph-structure)를 생성할 수 있다(750).
위치 추정부(500)는 상기 그래프-구조를 최적화하여 이동 로봇의 최종 위치를 추정할 수 있다(760).
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 (8)

  1. 이동 로봇의 위치와 지도를 추정하는 방법에 있어서,
    상기 이동 로봇의 모노 카메라(mono camera)로부터 획득된 현재 이미지와 이전 데이터를 이용하여 제1 노드에 연관된 제1 구속조건을 생성하는 단계;
    상기 이동 로봇의 RGB-D 카메라(red-green-blue depth camera)로부터 획득된 RGB-D 데이터와 이전 3D 맵(three dimensions map)을 매칭하여 제2 노드에 연관된 제2 구속조건을 생성하는 단계;
    상기 이동 로봇의 2D LRF(two dimensions laser range finder)로부터 획득된 2D 거리 데이터와 이전 2D 맵(two dimensions map)을 매칭하여 제3 노드에 연관된 제3 구속조건을 생성하는 단계;
    상기 각 노드 사이의 주행 거리를 측정하여 제4 구속조건을 생성하는 단계; 및
    상기 제1 구속조건, 상기 제2 구속조건, 상기 제3 구속조건, 및 상기 제4 구속조건을 이용하여 상기 각 노드에 대한 그래프-구조(graph-structure)를 생성하는 단계
    를 포함하는 이동 로봇의 위치와 지도를 추정하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1 구속조건을 생성하는 단계는,
    상기 현재 이미지의 제1 특징점들을 추출하고, 상기 제1 특징점들과 상기 이전 데이터에 포함된 이전 이미지들의 제2 특징점들을 매칭하는 단계; 및
    상기 제2 특징점들의 매칭된 특징점들에 대응하는 상기 이전 데이터에 포함된 포인트 클라우드 상의 3D 특징점들을 상기 제1 특징점들의 매칭된 특징점들에 투영하여 상기 제1 구속조건에 포함되는 상기 제1 노드의 위치를 측정하는 단계
    를 포함하는 이동 로봇의 위치와 지도를 추정하는 방법.
  4. 제3항에 있어서,
    상기 제1 구속조건을 생성하는 단계는,
    상기 이전 이미지들의 상기 제2 특징점들을 추출하는 단계; 및
    상기 포인트 클라우드 상에서 상기 제2 특징점들에 대응하는 모든 3D 특징점들을 추출하는 단계
    를 더 포함하는 이동 로봇의 위치와 지도를 추정하는 방법.
  5. 제3항에 있어서,
    상기 제1 노드의 위치를 측정하는 단계는,
    상기 제1 노드의 후보 위치들을 측정하는 단계; 및
    상기 후보 위치들을 필터링하여 상기 위치를 측정하는 단계
    를 포함하는 이동 로봇의 위치와 지도를 추정하는 방법.
  6. 제3항에 있어서,
    상기 매칭하는 단계는,
    상기 제1 특징점들과 상기 제2 특징점들을 2D 호모그래피 기반의RANSAC(random sample conseneus)을 통해 매칭하는 단계
    를 포함하는 이동 로봇의 위치와 지도를 추정하는 방법.
  7. 모노 카메라(mono camera), RGB-D 카메라(red-green-blue depth camera), 및 2D LRF(two dimensions laser range finder)를 포함하는 이동 로봇의 위치와 지도를 추정하기 위한 위치 추정 시스템에 있어서,
    상기 모노 카메라로부터 출력된 현재 이미지와 이전 데이터에 포함된 이전를 이미지들과 포인트 클라우드를 이용하여 제1 노드에 연관된 제1 구속조건을 생성하는 제1 감지부;
    상기 RGB-D 카메라로부터 출력된 RGB-D 데이터와 이전 3D 맵(three dimensions map)을 매칭하여 제2 노드에 연관된 제2 구속조건을 생성하는 제2 감지부;
    상기 2D LRF로부터 출력된 2D 거리 데이터와 이전 2D 맵(two dimensions map)을 매칭하여 제3 노드에 연관된 제3 구속조건을 생성하는 제3 감지부;
    상기 각 노드 사이의 주행 거리를 측정하여 제4 구속조건을 생성하는 제4 감지부; 및
    상기 제1 구속조건, 상기 제2 구속조건, 상기 제3 구속조건, 및 상기 제4 구속조건을 이용하여 상기 각 노드에 대한 그래프-구조를 생성하는 위치 추정부
    를 포함하는 위치 추정 시스템.
  8. 삭제
KR20130130580A 2013-10-30 2013-10-30 이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들 KR101490055B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130130580A KR101490055B1 (ko) 2013-10-30 2013-10-30 이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130130580A KR101490055B1 (ko) 2013-10-30 2013-10-30 이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들

Publications (1)

Publication Number Publication Date
KR101490055B1 true KR101490055B1 (ko) 2015-02-06

Family

ID=52591380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130130580A KR101490055B1 (ko) 2013-10-30 2013-10-30 이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들

Country Status (1)

Country Link
KR (1) KR101490055B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107234619A (zh) * 2017-06-02 2017-10-10 南京金快快无人机有限公司 一种基于主动视觉定位的服务机器人抓取***
CN110238831A (zh) * 2019-07-23 2019-09-17 青岛理工大学 基于rgb-d图像及示教器的机器人示教***及方法
US10591925B2 (en) 2016-10-25 2020-03-17 Lg Electronics Inc. Cleaner and controlling method thereof
CN111814792A (zh) * 2020-09-04 2020-10-23 之江实验室 一种基于rgb-d图像的特征点提取与匹配方法
US10921816B2 (en) 2017-04-21 2021-02-16 Korea Advanced Institute Of Science And Technology Method and apparatus for producing map based on hierarchical structure using 2D laser scanner
KR20220050386A (ko) * 2020-10-16 2022-04-25 네이버랩스 주식회사 맵 생성 방법 및 이를 이용한 이미지 기반 측위 시스템
US11412907B2 (en) 2017-05-29 2022-08-16 Lg Electronics Inc. Cleaner and controlling method thereof
KR20220147304A (ko) * 2021-04-27 2022-11-03 네이버랩스 주식회사 맵 생성 방법 및 이를 이용한 이미지 기반 측위 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110097140A (ko) * 2010-02-24 2011-08-31 삼성전자주식회사 이동 로봇의 위치 추정 장치 및 방법
KR101319526B1 (ko) 2013-03-26 2013-10-21 고려대학교 산학협력단 이동 로봇을 이용하여 목표물의 위치 정보를 제공하기 위한 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110097140A (ko) * 2010-02-24 2011-08-31 삼성전자주식회사 이동 로봇의 위치 추정 장치 및 방법
KR101319526B1 (ko) 2013-03-26 2013-10-21 고려대학교 산학협력단 이동 로봇을 이용하여 목표물의 위치 정보를 제공하기 위한 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문1.2013.5 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10591925B2 (en) 2016-10-25 2020-03-17 Lg Electronics Inc. Cleaner and controlling method thereof
US10921816B2 (en) 2017-04-21 2021-02-16 Korea Advanced Institute Of Science And Technology Method and apparatus for producing map based on hierarchical structure using 2D laser scanner
US11412907B2 (en) 2017-05-29 2022-08-16 Lg Electronics Inc. Cleaner and controlling method thereof
CN107234619A (zh) * 2017-06-02 2017-10-10 南京金快快无人机有限公司 一种基于主动视觉定位的服务机器人抓取***
CN110238831A (zh) * 2019-07-23 2019-09-17 青岛理工大学 基于rgb-d图像及示教器的机器人示教***及方法
CN111814792A (zh) * 2020-09-04 2020-10-23 之江实验室 一种基于rgb-d图像的特征点提取与匹配方法
CN111814792B (zh) * 2020-09-04 2020-12-29 之江实验室 一种基于rgb-d图像的特征点提取与匹配方法
KR20220050386A (ko) * 2020-10-16 2022-04-25 네이버랩스 주식회사 맵 생성 방법 및 이를 이용한 이미지 기반 측위 시스템
KR102516450B1 (ko) * 2020-10-16 2023-04-03 네이버랩스 주식회사 맵 생성 방법 및 이를 이용한 이미지 기반 측위 시스템
KR20220147304A (ko) * 2021-04-27 2022-11-03 네이버랩스 주식회사 맵 생성 방법 및 이를 이용한 이미지 기반 측위 방법
KR102555668B1 (ko) 2021-04-27 2023-07-17 네이버랩스 주식회사 맵 생성 방법 및 이를 이용한 이미지 기반 측위 방법

Similar Documents

Publication Publication Date Title
KR101490055B1 (ko) 이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들
CN109671115B (zh) 使用深度值估计的图像处理方法和装置
US10863166B2 (en) Method and apparatus for generating three-dimensional (3D) road model
Garro et al. Solving the pnp problem with anisotropic orthogonal procrustes analysis
Kolhatkar et al. Review of SLAM algorithms for indoor mobile robot with LIDAR and RGB-D camera technology
US11080878B2 (en) Method and apparatus for detecting 3D object from 2D image
Aguilar et al. RRT* GL based optimal path planning for real-time navigation of UAVs
JP2015148601A (ja) マッピング、位置特定、及び姿勢補正のためのシステム及び方法
US10885666B2 (en) Hybrid metric-topological camera-based localization
US20190122414A1 (en) Method and apparatus for generating virtual object
US20180307232A1 (en) Method and apparatus for producing map based on hierarchical structure using 2d laser scanner
Aliakbarpour et al. Visual servoing of mobile robots using non-central catadioptric cameras
Deng et al. Global optical flow-based estimation of velocity for multicopters using monocular vision in GPS-denied environments
KR101937594B1 (ko) 2차원 레이저 스캐너를 이용한 계층적 구조 기반의 맵 제작 방법 및 장치
Guan et al. Affine correspondences between multi-camera systems for 6DOF relative pose estimation
Gouda et al. Vision based slam for humanoid robots: A survey
Roggeman et al. Embedded vision-based localization and model predictive control for autonomous exploration
Portugal et al. A guide for 3D mapping with low-cost sensors using ROS
CN112859127A (zh) 导航装置及导航装置的操作方法
Karamchandani et al. SLAM using neural network-based depth estimation for auto vehicle parking
KR102321704B1 (ko) 인접 평면 정보를 이용한 3차원 공간 모델 생성 방법 및 장치
Zhu et al. Indoor navigation system using the fetch robot
Lee et al. Confidence analysis of feature points for visual‐inertial odometry of urban vehicles
Temburu et al. Real time System Implementation for Stereo 3D Mapping and Visual Odometry
Wang et al. Research progress on visual slam for dynamic environments

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200106

Year of fee payment: 6