KR102246236B1 - 퓨전 슬램에서 맵을 업데이트하는 방법 및 이를 구현하는 로봇 - Google Patents
퓨전 슬램에서 맵을 업데이트하는 방법 및 이를 구현하는 로봇 Download PDFInfo
- Publication number
- KR102246236B1 KR102246236B1 KR1020197026554A KR20197026554A KR102246236B1 KR 102246236 B1 KR102246236 B1 KR 102246236B1 KR 1020197026554 A KR1020197026554 A KR 1020197026554A KR 20197026554 A KR20197026554 A KR 20197026554A KR 102246236 B1 KR102246236 B1 KR 102246236B1
- Authority
- KR
- South Korea
- Prior art keywords
- map
- robot
- information
- sensor
- lidar
- Prior art date
Links
- 230000004927 fusion Effects 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 79
- 230000000007 visual effect Effects 0.000 claims description 101
- 230000008569 process Effects 0.000 description 49
- 238000013473 artificial intelligence Methods 0.000 description 36
- 230000006870 function Effects 0.000 description 26
- 238000013528 artificial neural network Methods 0.000 description 23
- 238000005457 optimization Methods 0.000 description 17
- 238000010801 machine learning Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 8
- 230000033001 locomotion Effects 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000004140 cleaning Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000004807 localization Effects 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 210000000225 synapse Anatomy 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000015541 sensory perception of touch Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0238—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
- G05D1/024—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/008—Manipulators for service tasks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/022—Optical sensing devices using lasers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/86—Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
- G05D1/0248—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means in combination with a laser
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0272—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/246—Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/247—Arrangements for determining position or orientation using signals provided by artificial sources external to the vehicle, e.g. navigation beacons
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/60—Intended control result
- G05D1/646—Following a predefined trajectory, e.g. a line marked on the floor or a flight path
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Automation & Control Theory (AREA)
- Geometry (AREA)
- Electromagnetism (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Optics & Photonics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Networks & Wireless Communication (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- Architecture (AREA)
- Human Computer Interaction (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
본 발명은 퓨전 슬램에서 맵을 업데이트하는 방법 및 이를 구현하는 로봇에 관한 것으로, 발명의 일 실시예에 의한 퓨전 슬램에서 맵을 업데이트하는 로봇은 두 종류의 센서를 이용하되 제1센서가 획득한 제1타입의 정보를 제1맵에 업데이트하며, 제2센서가 획득한 제2타입의 정보를 이용하여 로봇의 현재 위치를 추정한다.
Description
본 발명은 퓨전 슬램에서 맵을 업데이트하는 방법 및 이를 구현하는 로봇에 관한 기술이다.
대형 마트, 백화점, 공항, 골프장 등 인적, 물적 교류가 활발하게 발생하는 공간에는 사람들에게 정보를 제공하기 위해, 또는 사람들에게 편의를 제공하기 위해 로봇이 배치될 수 있다.
전술한 로봇의 종류로는 안내로봇, 보안로봇, 청소로봇 등이 있으며, 이들 다양한 로봇들은 공간 내에서 자신의 위치를 확인하며 이동한다.
한편, 로봇들이 자신의 위치를 확인하고 장애물을 회피하며 이동하기 위해서는 공간에 대한 정보와 로봇의 현재 위치 또는 이전에 로봇이 이동한 경로 등에 대한 정보를 로봇이 유지해야 한다.
로봇이 공간을 확인하고 이동하기 위해 로봇은 맵을 보유할 수 있다. 그런데, 맵을 생성하기 위해서 로봇은 다양한 센서들을 이용하여 맵을 작성할 수 있으며, 맵 내의 정보의 다양한 정보들을 일치시켜 저장하는 것이 필요하다.
로봇이 다수의 센서들을 이용할 경우 맵을 업데이트함에 있어서 정확도를 높일 수 있다. 또한, 정확도를 높이기 위해 센서가 센싱한 정보를 검증하거나 정확도를 판단하는 과정이 필요하다.
이에, 본 명세서에서는 멀티 센서를 이용하여 맵을 업데이트하는 방안을 살펴본다.
본 명세서에서는 전술한 문제점을 해결하기 위한 것으로, 로봇이 다양한 종류의 센서들에 기반하여 로봇의 위치를 추정하고 추정한 위치에 따라 각 센서가 획득한 정보를 맵에 업데이트하여 맵의 정확도를 높이고자 한다.
또한, 본 명세서에서는 각각의 센서들이 생성한 정보에 기반하여 로봇의 위치를 산출하고 업데이트 하되 원래의 맵에 저장된 정보들의 유지하여 맵들의 정보 간의 일치를 유지하고자 한다.
또한, 본 명세서에서는 퓨전 슬램 과정에서 로봇의 각각의 센서들이 획득한 정보들 중에서 일부는 위치 추정에 적용하고 다른 일부는 맵을 업데이트하는데 적용하여 위치 추정과 맵의 업데이트를 동시에 진행할 수 있도록 한다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
발명의 일 실시예에 의한 퓨전 슬램에서 맵을 업데이트하는 로봇은 두 종류의 센서를 이용하되 제1센서가 획득한 제1타입의 정보를 제1맵에 업데이트하며, 제2센서가 획득한 제2타입의 정보를 이용하여 로봇의 현재 위치를 추정한다.
발명의 일 실시예에 의한 퓨전 슬램에서 맵을 업데이트하는 로봇은 제1센서가 라이다 센서이고 제2센서는 카메라 센서이며, 맵 저장부는 제2맵인 비주얼 맵을 저장하며, 제어부는 비주얼 맵을 로딩하여 로봇의 위치를 추정하며, 제어부는 추정된 위치를 기준으로 라이다 센서가 센싱한 정보를 제1맵에 추가한다.
발명의 일 실시예에 의한 퓨전 슬램에서 맵을 업데이트하는 로봇은 제1센서가 카메라 센서이고 제2센서는 라이다 센서이며, 맵 저장부는 제2맵인 라이다 맵을 저장하며, 제어부는 라이다 맵을 로딩하여 로봇의 위치를 추정하며, 제어부는 추정된 위치를 기준으로 카메라 센서가 센싱한 정보를 제1맵에 추가한다.
발명의 일 실시예에 의한 퓨전 슬램에서 맵을 업데이트하는 방법은 로봇의 제1센서가 제1타입의 정보를 획득하는 단계, 로봇의 제2센서가 제2타입의 정보를 획득하는 단계, 로봇의 제어부가 맵 저장부에 저장된 제2타입의 제2맵을 이용하여 로봇의 현재 위치를 추정하는 단계; 및 제어부가 추정된 위치를 기준으로 제1타입의 정보를 제1맵에 업데이트하여 맵 저장부에 저장하는 단계를 포함한다.
본 발명의 실시예들을 적용할 경우, 로봇이 다양한 종류의 센서들에 기반하여 로봇의 위치를 추정하고 추정한 위치에 따라 각 센서가 획득한 정보를 맵에 업데이트하여 맵의 정확도를 높일 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 각각의 센서들이 생성한 정보에 기반하여 로봇의 위치를 산출하고 업데이트 하되 원래의 맵에 저장된 정보들의 유지하여 맵들의 정보 간의 일치를 유지할 수 있다.
또한, 본 발명의 실시예들을 적용할 경우, 퓨전 슬램 과정에서 로봇의 각각의 센서들이 획득한 정보들 중에서 일부는 위치 추정에 적용하고 다른 일부는 맵을 업데이트하는데 적용하여 위치 추정과 맵의 업데이트를 동시에 진행할 수 있다.
본 발명의 효과는 전술한 효과에 한정되지 않으며, 본 발명의 당업자들은 본 발명의 구성에서 본 발명의 다양한 효과를 쉽게 도출할 수 있다.
도 1은 본 발명의 일 실시예에 의한 로봇의 외관을 보여준다.
도 2는 본 발명의 일 실시예에 의한 로봇의 제어모듈의 구성 요소를 보여준다.
도 3은 로봇이 공간에서 이동하는 과정을 보여준다.
도 4는 본 발명의 일 실시예에 의한 맵의 다중 구조를 보여준다.
도 5는 본 발명의 일 실시예에 의한 로봇이 맵을 업데이트하는 과정을 보여준다.
도 6은 본 발명의 일 실시예에 의한 제1센서가 라이다 센서이며 제2센서가 카메라 센서인 경우의 업데이트 과정을 보여준다.
도 7은 본 발명의 일 실시예에 의한 제1센서가 카메라 센서이며 제2센서가 라이다 센서인 경우의 업데이트 과정을 보여준다.
도 8은 본 발명의 일 실시예에 의한 최적화 과정을 보여준다.
도 9 및 도 10은 본 발명의 일 실시예에 의한 비주얼 맵을 기반으로 라이다 정보를 맵에 추가하는 실시예를 보여준다.
도 11 및 도 12는 본 발명의 일 실시예에 의한 라이다맵을 기반으로 비주얼 정보를 맵에 추가하는 실시예를 보여준다.
도 13은 본 발명의 일 실시예에 의한 AI 서버의 구성을 보여준다.
도 14는 본 발명의 일 실시예에 의한 로봇이 SLAM 과정에서 인공지능에 기반하여 포즈 그래프를 업데이트하는 과정을 보여준다.
도 2는 본 발명의 일 실시예에 의한 로봇의 제어모듈의 구성 요소를 보여준다.
도 3은 로봇이 공간에서 이동하는 과정을 보여준다.
도 4는 본 발명의 일 실시예에 의한 맵의 다중 구조를 보여준다.
도 5는 본 발명의 일 실시예에 의한 로봇이 맵을 업데이트하는 과정을 보여준다.
도 6은 본 발명의 일 실시예에 의한 제1센서가 라이다 센서이며 제2센서가 카메라 센서인 경우의 업데이트 과정을 보여준다.
도 7은 본 발명의 일 실시예에 의한 제1센서가 카메라 센서이며 제2센서가 라이다 센서인 경우의 업데이트 과정을 보여준다.
도 8은 본 발명의 일 실시예에 의한 최적화 과정을 보여준다.
도 9 및 도 10은 본 발명의 일 실시예에 의한 비주얼 맵을 기반으로 라이다 정보를 맵에 추가하는 실시예를 보여준다.
도 11 및 도 12는 본 발명의 일 실시예에 의한 라이다맵을 기반으로 비주얼 정보를 맵에 추가하는 실시예를 보여준다.
도 13은 본 발명의 일 실시예에 의한 AI 서버의 구성을 보여준다.
도 14는 본 발명의 일 실시예에 의한 로봇이 SLAM 과정에서 인공지능에 기반하여 포즈 그래프를 업데이트하는 과정을 보여준다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
또한, 본 발명을 구현함에 있어서 설명의 편의를 위하여 구성요소를 세분화하여 설명할 수 있으나, 이들 구성요소가 하나의 장치 또는 모듈 내에 구현될 수도 있고, 혹은 하나의 구성요소가 다수의 장치 또는 모듈들에 나뉘어져서 구현될 수도 있다.
이하, 본 명세서에서 로봇은 특정한 목적(청소, 보안, 모니터링, 안내 등)을 가지거나 혹은 로봇이 이동하는 공간의 특성에 따른 기능을 제공하며 이동하는 장치를 포함한다. 따라서, 본 명세서에서의 로봇은 소정의 정보와 센서를 이용하여 이동할 수 있는 이동수단을 보유하며 소정의 기능을 제공하는 장치를 통칭한다.
본 명세서에서 로봇은 맵을 보유하면서 이동할 수 있다. 맵은 공간에서 이동하지 않는 것으로 확인된 고정된 벽, 계단 등 고정 객체에 대한 정보를 의미한다. 또한, 주기적으로 배치되는 이동 장애물, 즉 동적인 객체들에 대한 정보도 맵 상에 저장될 수 있다.
일 실시예로 로봇의 진행 방향을 기준으로 일정한 범위 내에 배치된 장애물들에 대한 정보도 맵 상에 저장될 수 있다. 이 경우, 전술한 고정 객체가 저장되는 맵과 달리 임시적으로 장애물들의 정보가 맵에 등록되고 이후 로봇이 이동한 후 맵에서 제거될 수 있다.
또한, 본 명세서에서 로봇은 다양한 센서들을 이용하여 외부의 동적 객체를 확인할 수 있다. 외부의 동적 객체를 확인하면, 보행자로 붐비는 환경에서 로봇이 목적지까지 주행할 때, 목적지까지 거쳐가야 하는 경유 지점(Waypoint)의 장애물에 의한 점유 상황을 확인할 수 있다.
또한 로봇은 경유 지점의 방향 변경 정도에 따라 유연하게 경유 지점을 도착한 것으로 판단하고 다음 경유 지점으로 넘어 가도록 하여 목적지까지 성공적으로 주행할 수 있다.
도 1은 본 발명의 일 실시예에 의한 로봇의 외관을 보여준다. 도 1은 예시적인 외관에 해당하며, 도 1의 외관 외에도 다양한 외관으로 본 발명의 로봇을 구현할 수 있다. 특히, 각각의 구성요소는 로봇의 형상에 따라 상하좌우 전후 등에서 다른 위치에 배치될 수 있다.
본체(10)는 상하 방향으로 길이가 길게 형성되며, 전체적으로 하부에서 상부 방향으로 올라갈수록 슬림해지는 오뚝이 형상을 가질 수 있다.
본체(10)는 로봇(1)의 외관을 형성하는 케이스(30)를 포함할 수 있다. 케이스(30)는 상측에 배치되는 탑 커버(31), 탑 커버(31)의 하측에 배치되는 제1 미들 커버(32), 제1 미들 커버(32)의 하측에 배치되는 제2 미들 커버(33) 및 제2 미들 커버(33)의 하측에 배치되는 바텀 커버(34)를 포함할 수 있다. 여기서 제1 미들 커버(32)와 제2 미들 커버(33)는 하나의 미들 커버로 이루어질 수 있다.
탑 커버(31)는 로봇(1)의 최상단에 위치되며, 반구 또는 돔 형상을 가질 수 있다. 탑 커버(31)는 사용자로부터 명령을 용이하게 입력 받기 위하여 성인의 키보다 낮은 높이에 위치될 수 있다. 그리고 탑 커버(31)는 소정각도 회전 가능하도록 구성될 수 있다.
한편, 로봇(1)은 그 내부에 제어모듈(150)을 더 포함할 수 있다. 제어모듈(150)은 일종의 컴퓨터 또는 프로세서와 같이 로봇(1)을 제어한다. 따라서 제어모듈(150)은 로봇(1)내에 배치되어 메인 프로세서와 유사한 기능을 수행하며, 사용자와의 인터랙션(interaction)을 담당할 수 있다.
로봇의 이동과 주변의 사물을 감지하여 로봇을 제어하기 위해 제어모듈(150)이 로봇(1) 내부에 탑재된다. 로봇제어모듈(150)은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩 등으로 구현 가능하다.
탑 커버(31)는 전면 일측에 사용자로부터 명령을 입력받거나 정보를 출력하는 디스플레이부(31a)과 카메라(31b), 마이크(31c)를 일 실시예로 하는 센서가 배치될 수 있다.
또한, 탑 커버(31)의 디스플레이부(31a) 외에도 미들 커버(32)의 일측에도 디스플레이부(20)가 배치된다.
로봇의 기능에 따라 두 개의 디스플레이부(31a, 20) 모두 정보를 출력하거나 혹은 어느 한쪽에서만 정보가 출력될 수 있다.
한편, 로봇(1)의 일측면 또는 하단부 전체에는 35a, 35b와 같이 다양한 장애물 센서(도 2의 220)들이 배치된다. 장애물 센서들은 TOF(Time of Flight) 센서, 초음파 센서, 적외선 센서, 뎁스 센서, 레이저 센서, 라이다 센서 등을 일 실시예로 한다. 센서들은 다양한 방식으로 로봇(1) 외부의 장애물을 감지한다.
또한, 도 1의 로봇은 하단부에 로봇을 이동시키는 구성요소인 이동부를 더 포함한다. 이동부는 일종의 바퀴와 같이 로봇을 이동시키는 구성요소이다.
도 1의 로봇의 형상은 예시적이며, 본 발명이 이에 한정되는 것은 아니다. 또한, 로봇의 다양한 카메라들과 센서들 역시 로봇(1)의 다양한 위치에 배치될 수 있다. 도 1의 로봇은 사용자에게 정보를 안내하고 특정 지점까지 이동하여 사용자를 안내하는 안내 로봇을 일 실시예로 한다.
이외에도 청소, 보안 또는 기능을 제공하는 로봇 역시 도 1의 로봇의 범위에 포함된다. 다양한 기능을 제공할 수 있으나, 본 명세서에서는 설명의 편의를 위해 안내 로봇을 중심으로 설명한다.
도 1를 일 실시예로 하는 로봇이 서비스 공간 내에 다수 배치된 상태에서 로봇이 특정한 기능(안내, 청소, 보안 등)을 수행한다. 이 과정에서 로봇(1)은 자신의 위치를 저장하며, 로봇(1)은 전체 공간에서 자신의 현재 위치를 확인하고, 목표 지점으로 이동하는데 필요한 경로를 생성할 수 있다.
도 2는 본 발명의 일 실시예에 의한 로봇의 제어모듈의 구성 요소를 보여준다.
로봇은 맵을 생성하는 기능과 맵을 이용하여 로봇의 위치를 추정하는 기능 둘 다 수행할 수 있다.
또는 로봇은 맵을 생성하는 기능만 제공할 수 있다.
또는 로봇은 맵을 이용하여 로봇의 위치를 추정하는 기능만 제공할 수 있다. 이하, 본 발명의 로봇은 맵을 이용하여 로봇의 위치를 추정하는 기능을 주로 제공한다. 추가적으로 로봇은 맵을 생성하거나 수정하는 기능을 제공할 수 있다.
라이다 센서(LiDAR Sensor)(220)는 2차원 또는 3차원으로 주변의 사물들을 센싱할 수 있다. 2차원 라이다 센서의 경우 로봇을 중심으로 360도 범위의 사물의 위치를 센싱할 수 있다. 특정 위치에서 센싱한 라이다 정보는 하나의 라이다 프레임을 구성할 수 있다. 즉, 라이다 센서(220)는 로봇의 외부에 배치된 사물과 로봇 사이의 거리를 센싱하여 라이다 프레임을 생성한다.
카메라 센서(230)는 일반 카메라를 일 실시예로 한다. 시야각의 제약을 해결하기 위해 둘 이상의 카메라 센서(230)를 사용할 수 있다. 특정 위치에서 촬영한 영상은 비전 정보를 구성한다. 즉, 카메라 센서(230)는 로봇의 외부에 배치된 사물을 촬영하여 비전 정보를 포함하는 비주얼 프레임을 생성한다.
이하 본 발명을 적용하는 로봇(1)은 라이다 센서(220)와 카메라 센서(230)를 이용한 퓨젼-SLAM(Fusion-simultaneous localization and mapping)을 수행한다.
퓨전 SLAM은 라이다 정보와 비전 정보를 결합하여 사용할 수도 있다. 이들 라이다 정보와 비전 정보는 맵으로 구성할 수 있다.
로봇이 퓨전 SLAM을 사용할 경우, 하나의 센서만을 사용하는 방식(LiDAR-only SLAM, visual-only SLAM)와 비교하여 위치 추정의 정확도가 높다. 즉, 라이다 정보와 비전 정보를 결합하여 퓨전 SLAM을 수행하면 맵 품질(map quality) 측면에서 더 좋은 맵을 획득할 수 있다.
여기서, 맵 품질이란 비전 정보들로 구성된 비전 맵(vision map)과 라이다 정보로 구성된 라이다 맵(lidar map) 양쪽에 모두 해당하는 기준이다. 퓨전 SLAM 시 각각의 맵 품질이 좋아지는데 이는 각각의 센서가 획득하지 못하거나 부족한 정보를 센서들이 서로 이용할 수 있기 때문이다.
또한, 하나의 맵에서 라이다 정보 또는 비전 정보만을 추출하여 사용할 수 있다. 예를 들어, 로봇이 보유하는 메모리의 양이나 연산 프로세서의 연산 능력 등에 적합하게 라이다 정보만을 이용하거나, 비전 정보만을 이용하거나 또는 두 정보 모두를 로봇의 위치 추정(localization)에 적용할 수 있다.
인터페이스부(290)는 사용자로부터 정보를 입력받는다. 터치 입력, 음성 입력 등 다양한 정보를 사용자로부터 입력받고, 이에 대한 결과를 출력한다. 또한 인터페이스부(290)는 로봇(1)이 저장하는 맵을 출력하거나, 로봇이 이동하는 과정을 맵과 오버랩 하여 출력할 수 있다.
또한, 인터페이스부(290)는 사용자에게 소정의 정보를 제공할 수 있다.
제어부(250)는 후술할 도 4와 같은 맵을 생성하고 이 맵을 기반으로 로봇이 이동하는 과정에서 로봇의 위치를 추정한다.
통신부(280)는 로봇(1)이 다른 로봇 또는 외부의 서버와 통신하여 정보를 송수신할 수 있도록 한다.
로봇(1)은 각각의 센서들(라이다 센서, 카메라 센서)을 이용하여 각각의 맵을 생성할 수 있다. 또는 로봇(1)은 이들 센서들을 이용하여 하나의 맵을 만든 후 맵에서 다시 이들로부터 특정 센서에 해당하는 내용만을 추출하는 맵을 생성할 수 있다.
또한, 본 발명의 맵은 바퀴의 회전에 기반한 오도메트리(odometry) 정보를 포함할 수 있다. 오도메트리 정보는 로봇의 바퀴 회전 횟수나 양 바퀴의 회전 횟수의 차이 등을 이용하여 로봇이 이동한 거리를 산출한 정보이다. 센서들을 이용한 정보 외에도 오도메트리 정보를 이용하여 로봇이 어디까지 이동했는지 로봇이 계산할 수 있다.
도 2의 제어부(250)는 인공지능 작업 및 처리를 위한 인공지능부(255)를 더 포함할 수 있다.
로봇의 라이다 센서(220) 및 카메라 센서(230)는 외부의 물체를 식별하기 위해 로봇(1)의 외부에 다수 배치할 수 있다.
도 2에 제시된 라이다 센서(220) 및 카메라 센서(230) 외에도 로봇(1)의 외부에는 다양한 종류의 센서들(라이다 센서, 적외선 센서, 초음파 센서, 뎁스 센서, 이미지 센서, 마이크 등)이 배치된다. 제어부(250)는 센서들이 센싱한 정보를 취합 및 처리한다.
인공지능부(255)는 라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 처리한 정보 또는 로봇(1)이 이동 과정에서 누적 저장한 정보 등을 입력하여 제어부(250)가 외부 상황을 판단하거나, 정보를 처리하거나, 이동 경로를 생성하는데 필요한 결과물을 출력할 수 있다.
일 실시예로, 로봇(1)은 로봇이 이동하는 공간에 배치된 다양한 사물들의 위치 정보를 맵으로 저장할 수 있다. 사물들은 벽, 문 등의 고정 사물들과 화분, 책상 등 이동 가능한 사물들을 포함한다. 인공지능부(255)는 맵 정보와 라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 제공하는 정보들을 이용하여 로봇이 이동할 경로, 혹은 로봇이 작업시 커버해야 할 범위 등에 대한 데이터를 출력할 수 있다.
또한 인공지능부(255)는 라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 제공하는 정보들을 이용하여 로봇 주변에 배치된 사물을 인식할 수 있다. 인공지능부(255)는 이미지를 입력받아 이미지에 관한 메타 정보를 출력할 수 있다. 메타 정보란 이미지 내의 사물의 명칭, 사물과 로봇과의 거리, 사물의 종류, 사물이 맵 상에 위치하는지 여부 등을 포함한다.
라이다 센서(220) 및 카메라 센서(230), 그리고 그 외의 센서들이 제공하는 정보는 인공지능부(255)의 딥러닝 네트워크의 입력 노드로 입력된 후, 인공지능부(255)의 딥러닝 네트워크의 히든 레이어의 정보 처리를 통해 인공지능부(255)의 출력 노드에서 결과가 출력된다.
제어부(250)는 인공지능부(255)가 산출한 데이터 또는 다양한 센서들이 처리한 데이터를 이용하여 로봇의 이동 경로를 산출할 수 있다.
도 2의 로봇은 전술한 바와 같이 맵을 생성하는 기능과 맵을 이용하여 주행하며 위치를 추정하는 기능 중 어느 하나 이상을 포함할 수 있다. 도 2의 로봇이 맵을 생성하거나 또는 맵을 이용하여 위치를 추정하는 공간의 예시로 도 3을 살펴볼 수 있다.
도 3은 로봇이 공간에서 이동하는 과정을 보여준다. 공간(40) 내에서 로봇은 41이 지시하는 선을 따라 이동하며 라이다 센서(220)를 이용하여 특정 지점에서 라이다 센서가 센싱한 정보를 맵 저장부(210)에 저장할 수 있다. 공간(40)의 기초 형상은 로컬 맵(local map)으로 저장될 수 있다.
마찬가지로 로봇은 공간(40)을 이동하면서 카메라 센서(230)를 이용하여 특정 지점에서 카메라 센서가 센싱한 정보를 맵 저장부(210)에 저장할 수 있다.
또는, 도 3의 공간에서 로봇은 이동하며, 앞서 맵 저장부(210)에 저장된 정보와 비교하여 로봇의 현재 위치를 확인할 수 있다.
도 4는 본 발명의 일 실시예에 의한 맵의 다중 구조를 보여준다. 도 4는 백본(backbone)을 제1레이어(first layer)로 하며 라이다 브랜치(LiDAR branch) 및 비주얼 브랜치(Visual branch)를 각각 제2레이어(second layer)로 하는 2중층의 구성을 보여준다. 도 4와 같은 구조를 구조적으로 탄력적인 포즈 그래프 기반 슬램(structurally elastic pose graph-based SLAM)이라 명명한다.
백본은 로봇의 궤적(trajectory)을 추적한 정보이다. 또한 백본은 궤적에 대응하는 하나 이상의 프레임 노드들을 포함한다. 그리고 이들 프레임 노드들은 다른 프레임 노드와의 관계에서 제약 정보(constraint)를 더 포함한다. 노드 사이의 에지는 제약 정보를 나타낸다. 에지는 오도메트리 제약 정보(odometry constraint) 또는 루프 제약 정보(loop constraint)를 의미한다.
또한, 제2레이어의 라이다 브랜치는 라이다 프레임(LiDAR Frame)들로 구성된다. 라이드 프레임은 로봇의 이동 과정에서 센싱한 라이다 센싱 값을 포함한다. 이들 라이다 프레임들 중에서 적어도 하나 이상은 라이다 키프레임(LiDAR Keyframe)으로 설정된다.
라이다 키프레임은 백본의 노드와 대응관계를 가진다. 도 4에서 백본의 노드들 v1 내지 v5 중에서 v1, v2, v4, v5가 라이다 키프레임을 지시한다.
마찬가지로, 제2레이어의 비주얼 브랜치는 비주얼 키 프레임(Visual Keyframe)들로 구성된다. 비주얼 키프레임은 로봇의 이동 과정에서 센싱한 카메라 센싱 값(즉, 카메라로 촬영한 영상)인 비주얼 피쳐 노드(visual feature node)들을 하나 이상 지시한다. 로봇에 배치된 카메라 센서의 수에 따라 로봇은 다수의 비주얼 피쳐 노드를 생성할 수 있다.
즉, 도 4의 맵 구조에서는 백본의 프레임 노드에 라이다 키프레임이 연결되거나 또는 비주얼 키프레임이 연결되는 구성이다. 물론 라이다/비주얼 키프레임 모두 하나의 프레임 노드에 연결될 수 있다(v1, v4, v5).
각 프레임 노드와 연결된 라이다 또는 비주얼 키프레임의 로봇의 포즈는 같다. 다만, 라이다 센서 또는 카메라 센서가 로봇에 부착된 위치에 따라 외부 파라미터(extrinsic parameter)가 키프레임 별로 추가될 수 있다. 외부 파라미터란 로봇 중심으로부터의 센서가 부착된 상대적인 위치 정보를 의미한다.
비주얼 키프레임은 백본의 노드와 대응관계를 가진다. 도 4에서 백본의 노드들 v1 내지 v5 중에서 v1, v3, v4, v5가 비주얼 키프레임을 지시한다. 도 2에서 비주얼 피쳐 노드(비주얼 프레임)들은 두 개가 한 쌍으로 구성되는데, 이는 로봇(1)이 두 개의 카메라 센서(230)를 포함하여 영상을 촬영함을 의미한다. 카메라 센서(230)의 증감에 따라 각각의 위치에서 비주얼 피쳐 노드의 수 역시 증감한다.
제1레이어의 백본을 구성하는 노드들(v1~v5) 사이에는 에지(edge)가 표시되어 있다. e12, e23, e34, e45는 인접 노드들 사이의 에지이며, e13, e35, e25는 인접하지 않은 노드들 사이의 에지이다.
오도메트리 제약 정보 또는 줄여서 오도메트리 정보는 e12, e23, e34, e45와 같이 인접한 프레임 노드 사이의 제약 조건을 의미한다. 루프 제약 정보 또는 줄여서 루프 정보는 e13, e25, e35와 같이 인접하지 않은 프레임 사이의 제약 조건을 의미한다.
백본은 다수의 키프레임들로 구성된다. 다수의 키프레임을 백본으로 추가하기 위해 제어부(250)는 초기 매핑 과정(initial mapping process)를 수행할 수 있다. 초기 매핑은 키프레임 기반으로 라이다 키프레임과 비주얼 키프레임을 추가한다.
도 4의 구조를 정리하면 다음과 같다. 라이다 브랜치는 하나 이상의 라이다 프레임을 포함한다. 비주얼 브랜치는 하나 이상의 비주얼 프레임을 포함한다.
그리고 백본은 라이다 프레임 또는 비주얼 프레임 중 어느 하나 이상과 등록된 프레임 노드를 둘 이상 포함한다. 이때, 프레임 노드에 등록되는 라이다 프레임 또는 비주얼 프레임을 키프레임이라 지칭한다. 그리고 포즈 그래프는 이들 라이다 브랜치, 비주얼 브랜치, 백본을 포함한다.
뿐만 아니라, 포즈 그래프는 프레임 노드 사이의 오도메트리 정보 및 루프 정보 등을 포함한다. 오도메트리 정보는 로봇이 프레임 노드 사이를 이동하여 생성한 휠의 회전이나 방향 등을 포함한다. 루프 정보는 라이다 센서(220)의 최대 센싱 거리 내에서 특정한 프레임 노드를 중심으로 비주얼 키프레임 사이에 특정한 제약 조건으로 연결된 프레임 노드 셋에 기반한다.
도 4의 포즈 그래프는 제어부(250)가 생성한다. 제어부(250)는 라이다 브랜치, 비주얼 브랜치, 백본, 프레임 노드 사이의 오도메트리 정보 및 이를 포함하는 포즈 그래프를 맵 저장부(210)에 저장한다.
전술한 바와 같이, 도 4와 같은 포즈 그래프는 맵 생성 기능을 제공하는 로봇에 의해 생성되어 주행 기능을 제공하는 모든 로봇의 맵 저장부(210)에 저장될 수 있다.
특히, 도 4의 포즈 그래프는 카메라 센서(230)와 라이다 센서(220) 중 어느 하나만 작동 가능한 경우에도 로봇(1)이 위치 추정에 이용할 수 있다. 또는 로봇의 센서들 중 어느 하나의 정확도가 낮거나 어느 하나의 센서가 획득한 정보에 대응하는 위치가 다수 검출된 경우에 로봇(1)은 또다른 센서를 이용하여 위치 추정의 정확도를 높일 수 있다.
예를 들어, 하나 이상의 카메라 센서(230)와 하나 이상의 라이다 센서(220)를 모두 포함하는 로봇(1)이 퓨전 SLAM(Fusion-SLAM)으로 멀티 센서가 획득한 정보를 이용하여 위치를 추정할 수 있다. 각각의 센서를 이용하여 추정한 위치 추정 결과 중 하나라도 참인 경우가 존재하면 로봇(1)은 위치 추정이 가능하다.
또는 로봇(1)의 각 센서 중 일부 센서만 동작 가능하거나 어느 하나의 센서만을 포함하는 경우에도 맵 저장부(210)에 저장된 각 센서 별 저장된 정보를 이용하여 위치 추정이 가능하다. 하나의 라이다 센서(220)를 사용할 경우 라이다 센서(220)는 360도를 커버할 수 있다.
로봇(1)은 라이다 센서(220)가 커버할 수 있는 각도에 따라 하나 또는 그 이상의 개수의 라이다 센서(220)를 포함할 수 있다. 또한 로봇(1)은 시야각의 제한을 극복할 수 있도록 하나 또는 그 이상의 개수의 카메라 센서(230)를 포함할 수 있다.
전술한 바와 같이 로봇은 하나 이상의 라이다 센서(220)와 하나 이상의 카메라 센서(230)를 이용하여 맵을 작성하고 위치를 추정할 수 있다.
로봇이 SLAM을 수행할 때, 두 가지 프로세스를 수행할 수 있다. 로봇(1)은 도 4의 포즈 그래프를 일 실시예로 하는 맵을 작성하는 매핑(mapping) 프로세스와, 작성된 맵을 활용한 위치 추정(localization) 프로세스를 수행할 수 있다. 또는 이들 프로세스 중 어느 하나만을 로봇(1)이 수행할 수 있다. 매핑만을 수행하는 로봇과 위치 추정만을 수행하는 로봇으로 구분될 수 있다.
한편, 로봇은 도 4와 같이 로봇이 실제 작성한 맵을 저장할 수 있으며, 이외에도 로봇은 기존에 존재하는 건물 내부에 대한 캐드(CAD)맵을 저장할 수 있다.
이하, 로봇(1)이 위치 추정을 위해 작성한 맵에 추가적인 정보를 업데이트하는 과정에 대해 살펴본다. 로봇(1)의 제어부(250)가 위치 추정을 위해 맵 저장부(210)에 저장한 기작성된 맵에 추가적인 정보를 업데이트할 수 있다.
전술한 캐드맵은 건물 설계와 관련된 맵 정보이므로, 로봇(1)이 주행하는 실제 공간의 정보와 차이가 발생할 수 있다. 따라서, 로봇(1)의 제어부(250)는 실제 공간의 정보를 업데이트하는 것이 필요하다.
특히, 건물의 구조나 간판 등이 변경되었을 경우 이 정보를 맵에 업데이트하는 것이 필요하다. 예를 들어 가벽이 생성되거나 문이 철거되는 등의 구조적인 변화를 로봇(1)의 제어부(250)가 확인하고, 변화된 사항을 라이다 맵에 업데이트할 수 있다. 간판의 추가 또는 변화 등은 시각적인 변화에 해당하므로 시각적 변화를 로봇(1)의 제어부(250)가 확인하고, 변화된 사항을 비주얼 맵에 업데이트할 수 있다.
이때, 제어부(250)는 이전에 저장한 기존의 정보는 그대로 활용할 수 있다. 예를 들어 제어부(250)는 POI(Point of Interest) 정보가 유지될 수 있도록 기존 맵과 업데이트된 내용 사이의 얼라인먼트(alignment)를 유지한다.
즉, 제어부(250)는 추가되는 맵과 기존의 맵의 얼라인먼트를 유지하기 위해, 좌표를 업데이트하는 과정에서 POI의 좌표를 변경하지 않도록 한다. 일 실시예로, 제어부(250)는 (100, 100) 좌표에 있던 약국을 업데이트 시 (120, 120) 좌표로 변경하지 않는다.
도 5는 본 발명의 일 실시예에 의한 로봇이 맵을 업데이트하는 과정을 보여준다. 로봇(1)은 두 종류의 센서를 이용하여 도 4와 같이 맵을 보유한 상태이다. 로봇은 제1센서를 이용하여 제1타입의 정보를 획득하여 슬램을 수행할 수 있다. 마찬가지로 로봇은 제2센서를 이용하여 제2타입의 정보를 획득하여 슬램을 수행할 수 있다.
물론 슬램을 수행하는데 필요한 정보, 즉 로봇이 이동하는 공간의 맵은 맵 저장부(210)에 저장된 상태이며, 로봇은 이를 로딩하여 슬램을 수행한다. 맵 저장부(210)는 라이다 센서(220)가 슬램을 수행할 수 있는 맵으로 라이다 맵을 저장한다. 또한, 맵 저장부(210)는 카메라 센서(230)가 슬램을 수행할 수 있는 맵으로 비주얼 맵을 저장한다.
도 5에서 로봇의 제1센서가 주변의 구조물에 대해 센싱을 수행하여 정보를 획득한다(S41).
예를 들어 제1센서가 라이다 센서(220)인 경우, 제1센서가 획득한 정보는 라이다 센서가 획득한 2차원 또는 3차원의 공간 구조물들의 형태를 반영한 센싱 데이터를 일 실시예로 한다.
예를 들어 제1센서가 카메라 센서(230)인 경우, 제1센서가 획득한 정보는 카메라 센서가 획득한 이미지 정보를 일 실시예로 한다.
로봇(1)의 제어부(250)는 제2센서가 생성했던 정보에 기반하여 작성된 맵을 이용하여 제1센서가 획득한 정보를 업데이트한다(S42). 즉, 로봇은 제2센서를 이용하여 슬램을 수행한다. 로봇의 제어부(250)는 제2타입의 제2맵을 이용하여 로봇의 현재 위치를 추정하고 추정된 위치를 기준으로 제1센서가 획득한 제1타입의 정보를 제1맵에 업데이트하여 맵 저장부(210)에 저장한다.
예를 들어 제2센서가 카메라 센서(230)인 경우, 제2센서가 생성했던 정보에 기반하여 작성된 맵은 비주얼 피쳐 노드, 비주얼 프레임, 비주얼 키프레임 등으로 구성된 포즈 그래프(visual pose-graph)를 일 실시예로 한다.
예를 들어 제1센서가 라이다 센서(220)인 경우, 제1센서가 생성했던 정보에 기반하여 작성된 맵은 라이다 프레임, 라이다 키프레임 등으로 구성된 포즈 그래프를 일 실시예로 한다. 또는 맵은 라이다 기반의 오큐펀시 그리드 맵(occupancy grid map)을 일 실시예로 한다.
도 6은 본 발명의 일 실시예에 의한 제1센서가 라이다 센서이며 제2센서가 카메라 센서인 경우의 업데이트 과정을 보여준다. 도 6과 같은 실시예를 라이다 부분 매핑(Lidar partial mapping)이라 지시한다.
로봇(1)의 제어부(250)는 기존의 카메라 센서(230)를 기반으로 작성된 비주얼 맵(visual pose-graph)를 맵 저장부(210)로부터 로딩한다(S51). 비주얼 맵은 도 4의 실시예에서 비주얼 브랜치와 연결된 비주얼 피처 노드들의 전체 집합을 일 실시예로 한다.
그리고 도 5에서 제2타입의 제2맵으로 설명한 바와 같이, 제어부(250)는 비주얼 맵을 기반으로 하여 비주얼 슬램(Visual SLAM)을 수행하며 로봇의 위치를 추정한다(S52). 이는 로봇이 로딩했던 비주얼 맵을 이용하여 비주얼 피쳐 매칭을 수행하는 것을 의미한다. 이때 3D-2D 알고리즘을 적용할 수 있다.
이때, 추정된 로봇의 위치는 정확한 것으로 가정한다. 로봇(1)의 제어부(250)는 추정된 로봇의 위치를 기준으로, 즉 추정한 로봇의 위치에 대응하여 라이다 센서가 센싱한 정보(LiDAR sensing data)를 기존의 맵(도 5의 설명에서의 제1맵)에 업데이트한다(S53).
기존 맵은 로봇이 이전에 작성하여 맵 저장부(210)에 저장했던 라이다 맵 또는 캐드 정보로 구성된 캐드 맵을 일 실시예로 한다. 이 과정에서 제어부(250)는 로딩했던 비주얼 맵과의 얼라인먼트를 유지하면서 라이다 정보를 업데이트할 수 있다(S54).
예를 들어, 제어부(250)는 비주얼 맵을 통한 비주얼 슬램 결과 확인된 위치가 정확한 것으로 가정하고 라이다 센서(220)와 관련된 정보(라이다 브랜치, 또는 오큐펀시 그리드 맵)을 추가적으로 맵 저장부(210)에 저장한다. 이는 도 4의 포즈 그래프에 추가적으로 라이다 센서(220)가 획득한 정보를 등록하는 것을 일 실시예로 한다. 제어부(250)는 비주얼 맵을 구성하는 정보들은 그대로 유지한다. 그 결과 비주얼 맵과 제1맵(캐드 맵 또는 라이다 맵) 사이의 얼라인먼트가 유지된다.
이후 맵 최적화(map optimization, 또는 graph optimization) 시에 기존의 비주얼 맵을 사용하지 않고 새로 등록된 라이다 정보만 최적화를 수행한다. 이는 기존의 비주얼 맵은 S51~S54 단계에서 변화하지 않았기 때문이며 라이다 정보만 변경되었기 때문이다.
도 7은 본 발명의 일 실시예에 의한 제1센서가 카메라 센서이며 제2센서가 라이다 센서인 경우의 업데이트 과정을 보여준다. 도 7과 같은 실시예를 비주얼 부분 매핑(Visual partial mapping)이라 지시한다.
그리고 도 5에서 제2타입의 제2맵은 라이다 맵에 해당한다. 로봇(1)의 제어부(250)는 기존의 라이다 센서(220)를 기반으로 작성된 라이다 맵(Lidar branch 또는 occupancy grid map)을 맵 저장부(210)로부터 로딩한다(S55). 라이다 맵은 도 4의 실시예에서 라이다 브랜치와 연결된 오큐펀시 그리드 맵, 즉 로컬 맵(local map)의 전체 집합을 일 실시예로 한다.
그리고 제어부(250)는 오큐펀시 그리드 맵을 일 실시예로 하는 라이다 맵을 기반으로 하여 라이다 슬램(LiDAR SLAM)을 수행하며 로봇의 위치를 추정한다(S56). 이 때, 제어부(250)는 라이다 슬램을 이용한 위치 추정 방식으로 ICP(iterative closest point) 방식과 MCL(Monte-Carlo Localization) 방식 모두를 적용할 수 있다.
ICP 방식은 로봇이 기존에 저장되었던 라이다 맵을 이용하여 로봇(1)의 라이다 센서(220)가 생성한 라이다 스캔 데이터와 저장되었던 로컬 맵을 매칭하는 프로세스를 수행한다. 일정 수준 이상으로 매칭율이 높아지면 제어부(250)는 로봇의 현재 위치를 추정할 수 있다.
일 실시예로, 로봇(1)이 위치 추정 과정에서 작성한 라이다 맵이 있을 경우, 제어부(250)는 저장된 맵과 더 유사할 가능성이 높으므로 ICP를 사용하여 위치 추정을 수행한다.
또한 로봇(1)이 캐드 맵을 이용할 경우 저장된 라이다 맵과 차이가 있을 가능성이 있으므로, MCL을 사용하여 위치 추정을 수행한다.
이때, 추정된 로봇의 위치는 정확한 것으로 가정한다. 로봇(1)의 제어부(250)는 추정된 로봇의 위치를 기준으로, 즉 추정한 로봇의 위치에 대응하여 비주얼 센서(230)가 센싱한 정보(visual pose-graph)를 기존의 맵에 업데이트한다(S57). 기존의 맵은 로봇이 이전에 작성하여 저장했던 맵 또는 캐드 맵을 일 실시예로 한다.
이 과정에서 제어부(250)는 로딩했던 라이다 맵과의 얼라인먼트를 는 유지하면서 비주얼 정보를 업데이트할 수 있다(S58).
예를 들어, 제어부(250)는 라이다 맵을 통한 라이다 슬램 결과 확인된 위치가 정확한 것으로 가정하고 카메라 센서(230)와 관려된 정보(비주얼 브랜치 또는 비주얼 피쳐 노드 등)을 추가적으로 비주얼 맵으로 맵 저장부(210)에 저장한다.
이는 도 4의 포즈 그래프에 추가적으로 카메라 센서(230)가 획득한 정보를 등록하는 것을 일 실시예로 한다. 여기서 비주얼 맵은 도 5의 설명에서의 제1맵에 해당한다. 물론 제어부(250)는 캐드 정보로 구성된 캐드 맵을 업데이트할 수 있다.
제어부(250)는 라이다 맵을 구성하는 정보들은 그대로 유지한다. 그 결과 라이다 맵과 제1맵(캐드 맵 또는 비주얼 맵) 사이의 얼라인먼트가 유지된다.
이후 맵 최적화(map optimization, 또는 graph optimization) 시에 기존의 라이다 맵을 사용하지 않고 새로 등록된 비주얼 정보만 최적화를 수행한다. 이는 기존의 라이다 맵은 S55~S58 단계에서 변화하지 않았기 때문이며 비주얼 정보만 변경되었기 때문이다.
도 6 및 도 7의 S54 및 S58에서 얼라인먼트를 유지하기 위해서는 로봇(1)의 제어부(250)는 기준이 되는 맵의 정보를 그대로유지하면서 새로 추가되는 정보를 맵에 업데이트한다.
일 실시예로, 로봇(1)의 제어부(250)는 하나의 센서가 센싱한 정보를 이용하여 맵을 업데이트 하기 위해서는 다른 센서에 기반하여 생성된 맵에 오차가 없는 것으로 판단한다. 예를 들어, 카메라 센서를 이용하여 비주얼 맵을 업데이트 하는 과정에서 로봇(1)의 제어부(250)는 맵 저장부(210)에 저장했던 라이다 맵에는 오차가 없는 것으로 판단한다.
마찬가지로 라이다 센서를 이용하여 라이다 맵을 업데이트 하는 과정에서 로봇(1)의 제어부(250)는 맵 저장부(210)에 저장했던 비주얼 맵에는 오차가 없는 것으로 판단한다.
로봇(1)은 어느 한 센서의 맵은 정확하다고 판단하고 위치 추정을 수행하며 다른 센서가 획득한 센서 정보를 매핑한다.
예를 들어 로봇(1)의 제어부(250)는 라이다 센서(220) 기반의 맵을 오차가 없는 것으로 판단하고 위치 추정을 수행하며 카메라 센서(230)가 센싱한 비주얼 정보만을 비주얼 맵에 반영하여 맵을 업데이트한다. 이 경우, 이전에 저장했던 라이다 맵과 새로 업데이트하는 비주얼 맵 사이의 얼라인먼트가 유지된다.
마찬가지로, 로봇(1)의 제어부(250)는 카메라 센서(230) 기반의 맵을 오차가 없는 것으로 판단하고 위치 추정을 수행하며 라이다 센서(220)가 센싱한 라이다 정보만을 라이다 맵에 반영하여 맵을 업데이트한다. 이 경우, 이전에 저장했던 비주얼 맵과 새로 업데이트하는 라이다 맵 사이의 얼라인먼트가 유지된다.
또한, 도 6 및 도 7에서 업데이트(S54, S58) 이후에 최적화를 수행할 수 있다.
도 8은 본 발명의 일 실시예에 의한 최적화 과정을 보여준다.
제어부(250)는 매핑 이전에 보유했던 맵을 고정(fix)한다(S61). 이는 최적화 과정에서 변동이 발생하지 않도록 설정하는 것을 의미한다. 다음으로 제어부(250)는 추가로 업데이트된 맵은 고정시키지 않는다(S62). 이는 최적화 과정에서 변동이 발생할 수 있도록 설정하는 것을 의미한다.
이후 제어부(250)는 고정되지 않은 부분들에 대해서 최적화를 수행한다(S63). 그 결과 새로 추가되었던 정보들만 최적화가 된다.
예를 들어, 두 종류의 센서가 생성한 맵이 모두 맵 저장부(210)에 저장된 상황에서 부분 매핑(partial mapping)을 수행한 경우를 살펴본다. 일 실시예로 비주얼 맵과 라이다 맵 모두 저장된 상태에서 비주얼 맵만 추가 업데이트 한 경우에 최적화 과정으로 S61 내지 S63을 적용하면 다음과 같다.
도 4와 같이 그래프를 구성한 후 그래프 최적화를 수행하는 경우, 제어부(250)는 원래 저장했던 비주얼 맵(비전 맵)을 고정시킨다. 그리고 추가로 업데이트된 비주얼 맵은 고정시키지 않고 최적화를 수행한다.
예를 들어 v1~v100까지의 비주얼 피쳐 노드가 기존에 저장했던 정보들이며, v101~v150이 추가로 업데이트 된 경우라면, 제어부(250)는 v1~v100 노드는 움직이지 않도록 설정한다. 그리고 제어부(250)는 v101~v150 까지만 움직이도록 설정하여 최적화를 수행한다. 이경우 최적화 과정에서 변화하는 것은 v101~v150 노드들 뿐이다.
그 결과 제어부(250)의 최적화 과정에서도 로봇(1)이 기존에 저장하고 있던 정보에 변화가 발생하지 않으며, 기존에 저장했던 맵과의 얼라인먼트가 유지될 수 있다.
정리하면, 제어부(250)는 제2맵의 정보는 유지하고 제1맵의 추가된 정보들마을 최적화시킨다.
전술한 실시예들을 적용할 경우, 로봇은 하나의 맵을 기준으로 다른 종류의 맵을 업데이트하여 정확도를 높일 수 있다.
도 9 및 도 10은 본 발명의 일 실시예에 의한 비주얼 맵을 기반으로 라이다 정보를 맵에 추가하는 실시예를 보여준다.
70은 맵 저장부에 저장된 맵이다. 70은 비주얼 맵을 구성하는 비주얼 브랜치와 라이다 맵을 구성하는 라이다 브랜치가 제시되어 있다. 라이다 맵은 선택적으로 포함될 수 있다. 또는 라이다 맵 대신 캐드 맵을 맵 저장부(210)가 저장할 수 있다.
따라서, 70v는 비주얼 맵을, 70l은 라이다 맵을 지시한다.
로봇(1)의 제어부(250)는 카메라 센서(230)가 촬영한 이미지 정보(71)를 비주얼 맵(70v)의 이미지들과 비교하는 비주얼 슬램을 수행한다. 그 결과 S72와 같이 동일한 위치로 판단할 수 있는 이미지가 검색되어 로봇의 현재 위치를 프레임 노드의 v5로 판단한다.
이때, 로봇(1)의 제어부(250)는 라이다 센서(220)가 센싱한 정보(73)을 v5 위치에 대응하여 라이다 맵(70l)을 업데이트한다.
만약, 카메라 센서(230)가 촬영한 이미지 정보(71)가 프레임 노드 v3에 등록된 이미지가 동일하여 로봇의 현재 위치를 프레임 노드의 v3로 판단한 경우에, 제어부(250)는 새로운 라이다 프레임을 73의 센싱된 데이터로 추가할 수 있다. 이 경우 도 10의 73a와 같이 새로운 라이다 프레임이 라이다 맵(70l)에 추가된다.
도 11 및 도 12는 본 발명의 일 실시예에 의한 라이다맵을 기반으로 비주얼 정보를 맵에 추가하는 실시예를 보여준다.
70은 맵 저장부에 저장된 맵이다. 70은 비주얼 맵을 구성하는 비주얼 브랜치와 라이다 맵을 구성하는 라이다 브랜치가 제시되어 있다. 비주얼 맵은 선택적으로 포함될 수 있다. 또는 비주얼 맵 대신 캐드 맵을 맵 저장부(210)가 저장할 수 있다.
따라서, 70v는 비주얼 맵을, 70l은 라이다 맵을 지시한다.
로봇(1)의 제어부(250)는 라이다 센서(220)가 촬영한 라이다 센싱 정보(75)를 라이다 맵(70l)의 라이다 프레임들과 비교하는 라이다 슬램을 수행한다. 그 결과 S76와 같이 동일한 위치로 판단할 수 있는 위치가 검색되어 로봇의 현재 위치를 프레임 노드의 v5로 판단한다.
이때, 로봇(1)의 제어부(250)는 카메라 센서(230)가 촬영한 정보(77)을 v5 위치에 대응하여 비주얼 맵(70v)을 업데이트한다.
만약, 라이다 센서(220)가 촬영한 라이다 센싱 정보(75)가 프레임 노드 v2에 등록된 라이다 프레임과 동일하여 로봇의 현재 위치를 프레임 노드의 v2로 판단한 경우에, 제어부(250)는 촬영한 이미지인 77을 v2에 추가할 수 있다. 이 경우 도 12의 77a와 같이 새로운 비?O 프레임이 비주얼 맵(70v)에 추가된다.
전술한 실시예를 적용할 경우, 기존에 작성된 맵에 추가 정보를 업데이트하는 것이 필요할 때, 로봇은 퓨전 슬램을 이용한다. 즉, 어느 하나의 센서가 획득한 정보를 이용하여 위치 추정을 수행하며, 다른 하나의 센서가 획득한 정보를 맵에 업데이트할 수 있다. 이 과정에서 기존에 위치 추정에 이용한 맵의 정보들은 그대로 유지하므로 맵 사이의 얼라인먼트를 유지하면서 새로운 맵만 추가할 수 있다.
한편, 로봇(1)은 SLAM을 수행하는 과정에서 위치 추정의 정확도가 높은 영역 또는 낮은 영역에서 각각의 센서가 정보를 획득하고 이를 저장할 수 있다. 그리고 저장된 정보들을 인공지능 모듈을 이용하여 학습하여 반복적으로 위치 추정의 정확도가 낮은 영역이나 높은 영역의 획득 정보를 포즈 그래프에 반영할 수 있다.
이를 위해, 제어부(250)의 인공지능부(255)는 일종의 러닝 프로세서(learning processor)이며, 로봇(1)이 누적하여 저장된 위치 정보 및 센서가 획득한 정보, 그리고 위치 추정의 정확도에 대한 수치값을 처리하여 포즈 그래프를 업데이트할 수 있다.
인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 머신 러닝(기계 학습, Machine Learning)은 인공 지능 분야에서 다루는 다양한 문제를 정의하고 그것을 해결하는 방법론을 연구하는 분야를 의미한다. 머신 러닝은 어떠한 작업에 대하여 꾸준한 경험을 통해 그 작업에 대한 성능을 높이는 알고리즘으로 정의하기도 한다.
인공 신경망(ANN: Artificial Neural Network)은 머신 러닝에서 사용되는 모델로써, 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)들로 구성되는, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다. 인공 신경망은 다른 레이어의 뉴런들 사이의 연결 패턴, 모델 파라미터를 갱신하는 학습 과정, 출력값을 생성하는 활성화 함수(Activation Function)에 의해 정의될 수 있다.
인공 신경망은 입력층(Input Layer), 출력층(Output Layer), 그리고 선택적으로 하나 이상의 은닉층(Hidden Layer)를 포함할 수 있다. 각 층은 하나 이상의 뉴런을 포함하고, 인공 신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다. 인공 신경망에서 각 뉴런은 시냅스를 통해 입력되는 입력 신호들, 가중치, 편향에 대한 활성 함수의 함숫값을 출력할 수 있다.
모델 파라미터는 학습을 통해 결정되는 파라미터를 의미하며, 시냅스 연결의 가중치와 뉴런의 편향 등이 포함된다. 그리고, 하이퍼파라미터는 머신 러닝 알고리즘에서 학습 전에 설정되어야 하는 파라미터를 의미하며, 학습률(Learning Rate), 반복 횟수, 미니 배치 크기, 초기화 함수 등이 포함된다.
인공 신경망의 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다. 손실 함수는 인공 신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표로 이용될 수 있다.
머신 러닝은 학습 방식에 따라 지도 학습(Supervised Learning), 비지도 학습(Unsupervised Learning), 강화 학습(Reinforcement Learning)으로 분류할 수 있다.
지도 학습은 학습 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시키는 방법을 의미하며, 레이블이란 학습 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해 내야 하는 정답(또는 결과 값)을 의미할 수 있다. 비지도 학습은 학습 데이터에 대한 레이블이 주어지지 않는 상태에서 인공 신경망을 학습시키는 방법을 의미할 수 있다. 강화 학습은 어떤 환경 안에서 정의된 에이전트가 각 상태에서 누적 보상을 최대화하는 행동 혹은 행동 순서를 선택하도록 학습시키는 학습 방법을 의미할 수 있다.
인공 신경망 중에서 복수의 은닉층을 포함하는 심층 신경망(DNN: Deep Neural Network)으로 구현되는 머신 러닝을 딥 러닝(심층 학습, Deep Learning)이라 부르기도 하며, 딥 러닝은 머신 러닝의 일부이다. 이하에서, 머신 러닝은 딥 러닝을 포함하는 의미로 사용된다.
로봇(1)은 도 2에서 살펴보았던 인공지능부(255)가 인공지능 기능을 수행할 수 있다.
이 경우, 로봇(1)의 통신부(280)는 유무선 통신 기술을 이용하여 다른 AI 기능을 제공하는 로봇이나 또는 도 9에서 살펴볼 AI 서버(300) 등의 외부 장치들과 데이터를 송수신할 수 있다. 예컨대, 통신부(280)는 외부 장치들과 센서 정보, 사용자 입력, 학습 모델, 제어 신호 등을 송수신할 수 있다.
이때, 통신부(280)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(BluetoothTM), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있다.
인터페이스부(290)는 다양한 종류의 데이터를 획득할 수 있다.
이때, 인터페이스부(290)는 영상 신호 입력을 위한 카메라, 오디오 신호를 수신하기 위한 마이크로폰, 사용자로부터 정보를 입력 받기 위한 사용자 입력부 등을 포함할 수 있다. 여기서, 라이다 센서(220), 카메라 센서(230) 또는 마이크로폰이 획득한 정보들은 센싱 데이터 또는 센서 정보등 지칭한다.
인터페이스부(290) 및 각종 센서들(220, 230)과 휠 인코더(260) 등은 모델 학습을 위한 학습 데이터 및 학습 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다. 전술한 구성요소들은 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 제어부(250) 또는 인공지능부(255)는 입력 데이터에 대하여 전처리로써 입력 특징점(input feature)을 추출할 수 있다.
인공지능부(255)는 학습 데이터를 이용하여 인공 신경망으로 구성된 모델을 학습시킬 수 있다. 여기서, 학습된 인공 신경망을 학습 모델이라 칭할 수 있다. 학습 모델은 학습 데이터가 아닌 새로운 입력 데이터에 대하여 결과 값을 추론해 내는데 사용될 수 있고, 추론된 값은 로봇(1)이 어떠한 동작을 수행하기 위한 판단의 기초로 이용될 수 있다.
이때, 인공지능부(255)는 AI 서버(300)의 러닝 프로세서(340)과 함께 AI 프로세싱을 수행할 수 있다.
이때, 인공지능부(255)는 로봇(1)에 통합되거나 구현된 메모리를 포함할 수 있다. 또는, 인공지능부(255)는 별도의 메모리 또는 로봇(1)에 결합된 외부 메모리 또는 외부 장치에서 유지되는 메모리를 사용하여 구현될 수도 있다.
로봇(1)은 다양한 센서들을 이용하여 로봇(1)의 내부 정보, 로봇(1)의 주변 환경 정보 및 사용자 정보 중 적어도 하나를 획득할 수 있다.
이때, 로봇(1)에 포함되는 센서에는 근접 센서, 조도 센서, 가속도 센서, 자기 센서, 자이로 센서, 관성 센서, RGB 센서, IR 센서, 지문 인식 센서, 초음파 센서, 광 센서, 마이크로폰, 라이다 센서(220), 카메라 센서(230), 레이더 등이 있다.
또한, 앞서 살펴본 인터페이스부(290)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시킬 수 있다.
이때, 인터페이스부(290)는 시각 정보를 출력하는 디스플레이부, 청각 정보를 출력하는 스피커, 촉각 정보를 출력하는 햅틱 모듈 등이 포함될 수 있다.
로봇(1)에 내장된 메모리는 로봇(1)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 예컨대, 로봇(1)에 내장된 각종 센서들이나 인터페이스부(290) 등이 획득한 입력 데이터, 학습 데이터, 학습 모델, 학습 히스토리 등을 저장할 수 있다.
제어부(250)는 데이터 분석 알고리즘 또는 머신 러닝 알고리즘을 사용하여 결정되거나 생성된 정보에 기초하여, 로봇(1)의 적어도 하나의 실행 가능한 동작을 결정할 수 있다. 그리고, 제어부(250)는 로봇(1)의 구성 요소들을 제어하여 결정된 동작을 수행할 수 있다.
이를 위해, 제어부(250)는 인공지능부(255) 또는 메모리의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 상기 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 로봇(1)의 구성 요소들을 제어할 수 있다.
이때, 제어부(250)는 결정된 동작을 수행하기 위하여 외부 장치의 연계가 필요한 경우, 해당 외부 장치를 제어하기 위한 제어 신호를 생성하고, 생성한 제어 신호를 해당 외부 장치에 전송할 수 있다.
제어부(250)는 사용자 입력에 대하여 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 사용자의 요구 사항을 결정할 수 있다.
이때, 제어부(250)는 음성 입력을 문자열로 변환하기 위한 STT(Speech To Text) 엔진 또는 자연어의 의도 정보를 획득하기 위한 자연어 처리(NLP: Natural Language Processing) 엔진 중에서 적어도 하나 이상을 이용하여, 사용자 입력에 상응하는 의도 정보를 획득할 수 있다.
이때, STT 엔진 또는 NLP 엔진 중에서 적어도 하나 이상은 적어도 일부가 머신 러닝 알고리즘에 따라 학습된 인공 신경망으로 구성될 수 있다. 그리고, STT 엔진 또는 NLP 엔진 중에서 적어도 하나 이상은 인공지능부(255)에 의해 학습된 것이나, AI 서버(300)의 러닝 프로세서(340)에 의해 학습된 것이거나, 또는 이들의 분산 처리에 의해 학습된 것일 수 있다.
제어부(250)는 로봇(1)의 동작 내용이나 동작에 대한 사용자의 피드백 등을 포함하는 이력 정보를 수집하여 메모리 또는 인공지능부(255)에 저장하거나, AI 서버(300) 등의 외부 장치에 전송할 수 있다. 수집된 이력 정보는 학습 모델을 갱신하는데 이용될 수 있다.
제어부(250)는 메모리(170)에 저장된 응용 프로그램을 구동하기 위하여, 로봇(1)의 구성 요소들 중 적어도 일부를 제어할 수 있다. 나아가, 제어부(250)는 는 상기 응용 프로그램의 구동을 위하여, 로봇(1)에 포함된 구성 요소들 중 둘 이상을 서로 조합하여 동작시킬 수 있다.
또는 로봇(1)과 통신하는 별도의 인공지능 서버(AI server)가 배치되고 로봇(1)이 제공하는 정보를 처리할 수 있다.
도 13은 본 발명의 일 실시예에 의한 AI 서버(300)의 구성을 보여준다.
인공 지능 서버, 즉 AI 서버(300)는 머신 러닝 알고리즘을 이용하여 인공 신경망을 학습시키거나 학습된 인공 신경망을 이용하는 장치를 의미할 수 있다. 여기서, AI 서버(300)는 복수의 서버들로 구성되어 분산 처리를 수행할 수도 있고, 5G 네트워크로 정의될 수 있다. 이때, AI 서버(300)는 AI 장치(100)의 일부의 구성으로 포함되어, AI 프로세싱 중 적어도 일부를 함께 수행할 수도 있다.
AI 서버(300)는 통신부(310), 메모리(330), 러닝 프로세서(340) 및 프로세서(360) 등을 포함할 수 있다.
통신부(310)는 로봇(1)등의 외부 장치와 데이터를 송수신할 수 있다.
메모리(330)는 모델 저장부(331)를 포함할 수 있다. 모델 저장부(331)는 러닝 프로세서(340)을 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 231a)을 저장할 수 있다.
러닝 프로세서(340)는 학습 데이터를 이용하여 인공 신경망(331a)을 학습시킬 수 있다. 학습 모델은 인공 신경망의 AI 서버(300)에 탑재된 상태에서 이용되거나, 로봇(1)등의 외부 장치에 탑재되어 이용될 수도 있다.
학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어(instruction)는 메모리(330)에 저장될 수 있다.
프로세서(360)는 학습 모델을 이용하여 새로운 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수 있다.
도 14는 본 발명의 일 실시예에 의한 로봇이 SLAM 과정에서 인공지능에 기반하여 포즈 그래프를 업데이트하는 과정을 보여준다.
로봇은 SLAM을 수행하는 과정에서 위치 추정의 정확도가 높은 영역 또는 낮은 영역에 대한 정보를 획득한다. 즉, 라이다 센서(220) 또는 카메라 센서(230)가 센싱한 정보와, 이 정보를 이용하여 위치 추정을 수행한 경우의 정확도, 그리고 위치 정보를 인공지능부(255) 또는 AI 서버(300)에게 제공한다(S91).
인공지능부(255) 또는 인공지능서버(300)는 제공된 정보를 이용하여 위치 정보에 따라 각 센서가 획득한 정보의 정확도를 비교한다. 인공지능부(255) 또는 인공지능서버(300)는 정확도가 높거나 낮은 영역에서 획득된 센서 정보와 기존의 맵 저장부에 저장된 정보를 비교하여 맵 업데이트 여부를 결정한다(S92).
이후, 제어부(250)는 맵 업데이트 결정에 따라 센싱한 정보를 이용하여 맵을 업데이트한다(S93). 일 실시예로 포즈그래프에 등록된 라이다 프레임/비주얼 프레임을 업데이트할 수 있다.
도 14의 프로세스를 적용할 경우, 로봇(1)은 SLAM을 수행하는 과정에서 위치 추정의 정확도가 높은 영역 또는 낮은 영역에서 각각의 센서가 정보를 획득하고 이를 저장할 수 있다. 그리고 저장된 정보들을 인공지능 모듈을 이용하여 학습하여 반복적으로 위치 추정의 정확도가 낮은 영역이나 높은 영역의 획득 정보를 포즈 그래프에 반영할 수 있다.
로봇(1)은 AI 기술이 적용되어, 안내 로봇, 운반 로봇, 청소 로봇, 웨어러블 로봇, 엔터테인먼트 로봇, 펫 로봇, 무인 비행 로봇 등으로 구현될 수 있다.
로봇(1)은 동작을 제어하기 위한 로봇 제어 모듈을 포함할 수 있고, 로봇 제어 모듈은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩을 의미할 수 있다.
로봇(1)은 다양한 종류의 센서들로부터 획득한 센서 정보를 이용하여 로봇(1)의 상태 정보를 획득하거나, 주변 환경 및 객체를 검출(인식)하거나, 맵 데이터를 생성하거나, 이동 경로 및 주행 계획을 결정하거나, 사용자 상호작용에 대한 응답을 결정하거나, 동작을 결정할 수 있다.
여기서, 로봇(1)은 이동 경로 및 주행 계획을 결정하기 위하여, 라이다, 레이더, 카메라 중에서 적어도 하나 이상의 센서에서 획득한 센서 정보를 이용할 수 있다.
로봇(1)은 적어도 하나 이상의 인공 신경망으로 구성된 학습 모델을 이용하여 상기한 동작들을 수행할 수 있다. 예컨대, 로봇(1)은 학습 모델을 이용하여 주변 환경 및 객체를 인식할 수 있고, 인식된 주변 환경 정보 또는 객체 정보를 이용하여 동작을 결정할 수 있다. 여기서, 학습 모델은 로봇(1)에서 직접 학습되거나, AI 서버(300) 등의 외부 장치에서 학습된 것일 수 있다.
이때, 로봇(1)은 직접 학습 모델을 이용하여 결과를 생성하여 동작을 수행할 수도 있지만, AI 서버(300) 등의 외부 장치에 센서 정보를 전송하고 그에 따라 생성된 결과를 수신하여 동작을 수행할 수도 있다.
로봇(1)은 맵 데이터, 센서 정보로부터 검출한 객체 정보 또는 외부 장치로부터 획득한 객체 정보 중에서 적어도 하나 이상을 이용하여 이동 경로와 주행 계획을 결정하고, 구동부를 제어하여 결정된 이동 경로와 주행 계획에 따라 로봇(1)을 주행시킬 수 있다.
맵 데이터에는 로봇(1)이 이동하는 공간에 배치된 다양한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 예컨대, 맵 데이터에는 벽, 문 등의 고정 객체들과 화분, 책상 등의 이동 가능한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 그리고, 객체 식별 정보에는 명칭, 종류, 거리, 위치 등이 포함될 수 있다.
또한, 로봇(1)은 사용자의 제어/상호작용에 기초하여 구동부를 제어함으로써, 동작을 수행하거나 주행할 수 있다. 이때, 로봇(1)은 사용자의 동작이나 음성 발화에 따른 상호작용의 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 응답을 결정하여 동작을 수행할 수 있다.
본 발명의 실시예에 의한 제어부(250)는 인공지능 모듈을 탑재할 수 있다. 이 경우, 제어부(250)는 맵 저장부(210)에 저장된 라이다 프레임 중에서 현재 위치에서 획득된 정보와 유사한 것을 검색하는데 인공지능 모듈을 탑재할 수 있다. 예를 들어 이미지 검색에 딥러닝 네트워크를 이용할 수 있으며, 딥러닝 네트워크를 포함한 제어부(250)는 이미지 검색 속도를 높일 수 있다.
또한, 이동부의 휠 오도메트리 정보를 이용하여 비주얼 프레임 또는 라이다 프레임을 맵 저장부(210)에서 검색하여 검색 속도를 높일 수도 있다.
본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다.
이상에서는 본 발명의 실시예를 중심으로 설명하였지만, 통상의 기술자의 수준에서 다양한 변경이나 변형을 가할 수 있다. 따라서, 이러한 변경과 변형이 본 발명의 범위를 벗어나지 않는 한 본 발명의 범주 내에 포함되는 것으로 이해할 수 있을 것이다.
Claims (16)
- 로봇을 이동시키는 이동부;
상기 로봇이 이동하는 공간의 맵을 저장하는 맵 저장부;
상기 로봇이 SLAM을 수행하는데 필요한 제1타입의 정보를 획득하는 제1센서;
상기 로봇이 SLAM을 수행하는데 필요한 제2타입의 정보를 획득하는 제2센서;
상기 제2타입의 제2맵을 이용하여 상기 로봇의 현재 위치를 추정하고 상기 추정된 위치를 기준으로 상기 제1타입의 정보를 제1맵에 업데이트하여 상기 맵 저장부에 저장하는 제어부를 포함하는, 퓨전 슬램에서 맵을 업데이트하는 로봇. - 제1항에 있어서,
상기 제1센서가 라이다 센서이고 상기 제2센서는 카메라 센서이며,
상기 맵 저장부는 상기 제2맵인 비주얼 맵을 저장하며,
상기 제어부는 상기 비주얼 맵을 로딩하여 로봇의 위치를 추정하며,
상기 제어부는 상기 추정된 위치를 기준으로 상기 라이다 센서가 센싱한 정보를 상기 제1맵에 추가하는, 퓨전 슬램에서 맵을 업데이트하는 로봇. - 제2항에 있어서,
상기 제1맵은 상기 맵 저장부에 저장된 라이다 맵 또는 캐드 정보로 구성된 캐드 맵 중 어느 하나인, 퓨전 슬램에서 맵을 업데이트하는 로봇. - 제2항에 있어서,
상기 제어부는 상기 비주얼 맵을 구성하는 정보를 유지하여 상기 비주얼 맵과 상기 제1맵 사이의 얼라인먼트를 유지하는, 퓨전 슬램에서 맵을 업데이트하는 로봇. - 제1항에 있어서,
상기 제1센서가 카메라 센서이고 상기 제2센서는 라이다 센서이며,
상기 맵 저장부는 상기 제2맵인 라이다 맵을 저장하며,
상기 제어부는 상기 라이다 맵을 로딩하여 로봇의 위치를 추정하며,
상기 제어부는 상기 추정된 위치를 기준으로 상기 카메라 센서가 센싱한 정보를 상기 제1맵에 추가하는, 퓨전 슬램에서 맵을 업데이트하는 로봇. - 제5항에 있어서,
상기 제1맵은 상기 맵 저장부에 저장된 비주얼 맵 또는 캐드 정보로 구성된 캐드 맵 중 어느 하나인, 퓨전 슬램에서 맵을 업데이트하는 로봇. - 제5항에 있어서,
상기 제어부는 상기 라이다 맵을 구성하는 정보를 유지하여 상기 라이다 맵과 상기 제1맵 사이의 얼라인먼트를 유지하는, 퓨전 슬램에서 맵을 업데이트하는 로봇. - 제1항에 있어서,
상기 제어부는 상기 제2맵을 유지하고 상기 제1맵의 추가된 정보들을 최적화하는, 퓨전 슬램에서 맵을 업데이트하는 로봇. - 로봇의 제1센서가 제1타입의 정보를 획득하는 단계;
상기 로봇의 제2센서가 제2타입의 정보를 획득하는 단계;
상기 로봇의 제어부가 맵 저장부에 저장된 상기 제2타입의 제2맵을 이용하여 상기 로봇의 현재 위치를 추정하는 단계; 및
상기 제어부가 상기 추정된 위치를 기준으로 상기 제1타입의 정보를 제1맵에 업데이트하여 상기 맵 저장부에 저장하는 단계를 포함하는, 퓨전 슬램에서 맵을 업데이트하는 방법. - 제9항에 있어서,
상기 제1센서가 라이다 센서이고 상기 제2센서는 카메라 센서이며,
상기 맵 저장부는 상기 제2맵인 비주얼 맵을 저장하며,
상기 제어부는 상기 비주얼 맵을 로딩하여 로봇의 위치를 추정하는 단계; 및
상기 제어부는 상기 추정된 위치를 기준으로 상기 라이다 센서가 센싱한 정보를 상기 제1맵에 추가하는 단계를 더 포함하는, 퓨전 슬램에서 맵을 업데이트하는 방법. - 제10항에 있어서,
상기 제1맵은 상기 맵 저장부에 저장된 라이다 맵 또는 캐드 정보로 구성된 캐드 맵 중 어느 하나인, 퓨전 슬램에서 맵을 업데이트하는 방법. - 제10항에 있어서,
상기 제어부는 상기 비주얼 맵을 구성하는 정보를 유지하여 상기 비주얼 맵과 상기 제1맵 사이의 얼라인먼트를 유지하는 단계를 더 포함하는, 퓨전 슬램에서 맵을 업데이트하는 방법. - 제9항에 있어서,
상기 제1센서가 카메라 센서이고 상기 제2센서는 라이다 센서이며,
상기 맵 저장부는 상기 제2맵인 라이다 맵을 저장하며,
상기 제어부는 상기 라이다 맵을 로딩하여 로봇의 위치를 추정하는 단계; 및
상기 제어부는 상기 추정된 위치를 기준으로 상기 카메라 센서가 센싱한 정보를 상기 제1맵에 추가하는 단계를 더 포함하는, 퓨전 슬램에서 맵을 업데이트하는 방법. - 제13항에 있어서,
상기 제1맵은 상기 맵 저장부에 저장된 비주얼 맵 또는 캐드 정보로 구성된 캐드 맵 중 어느 하나인, 퓨전 슬램에서 맵을 업데이트하는 방법. - 제13항에 있어서,
상기 제어부는 상기 라이다 맵을 구성하는 정보를 유지하여 상기 라이다 맵과 상기 제1맵 사이의 얼라인먼트를 유지하는 단계를 더 포함하는, 퓨전 슬램에서 맵을 업데이트하는 방법. - 제9항에 있어서,
상기 제어부는 상기 제2맵을 유지하고 상기 제1맵의 추가된 정보들을 최적화하는 단계를 더 포함하는, 퓨전 슬램에서 맵을 업데이트하는 방법.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2019/007227 WO2020251100A1 (ko) | 2019-06-14 | 2019-06-14 | 퓨전 슬램에서 맵을 업데이트하는 방법 및 이를 구현하는 로봇 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200143217A KR20200143217A (ko) | 2020-12-23 |
KR102246236B1 true KR102246236B1 (ko) | 2021-04-28 |
Family
ID=73781050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197026554A KR102246236B1 (ko) | 2019-06-14 | 2019-06-14 | 퓨전 슬램에서 맵을 업데이트하는 방법 및 이를 구현하는 로봇 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12085951B2 (ko) |
KR (1) | KR102246236B1 (ko) |
WO (1) | WO2020251100A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102556355B1 (ko) * | 2020-11-12 | 2023-07-17 | 주식회사 유진로봇 | 동적 환경에 강인한 로봇 위치 추정 장치 및 방법 |
US20230228591A1 (en) * | 2022-01-14 | 2023-07-20 | Faraday&Future Inc. | System and method of collaboratively refining high definition maps for autonomous parking of a vehicle |
KR20240131806A (ko) * | 2023-02-24 | 2024-09-02 | 서울대학교산학협력단 | 사회 친화적 내비게이션 알고리즘을 이용하는 로봇 |
US12106757B1 (en) * | 2023-07-14 | 2024-10-01 | Deepak R. Chandran | System and a method for extending voice commands and determining a user's location |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101439921B1 (ko) | 2012-06-25 | 2014-09-17 | 서울대학교산학협력단 | 비젼 센서 정보와 모션 센서 정보를 융합한 모바일 로봇용 slam 시스템 |
JP6487010B2 (ja) | 2017-10-26 | 2019-03-20 | エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd | ある環境内で無人航空機を制御する方法、ある環境のマップを生成する方法、システム、プログラムおよび通信端末 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7689321B2 (en) * | 2004-02-13 | 2010-03-30 | Evolution Robotics, Inc. | Robust sensor fusion for mapping and localization in a simultaneous localization and mapping (SLAM) system |
US20050234679A1 (en) | 2004-02-13 | 2005-10-20 | Evolution Robotics, Inc. | Sequential selective integration of sensor data |
KR101415297B1 (ko) * | 2008-04-16 | 2014-07-07 | 삼성전자주식회사 | 로봇 지도 생성 방법 및 로봇 지도 이용 방법 및 로봇지도를 가지는 로봇 |
US8818722B2 (en) * | 2011-11-22 | 2014-08-26 | Honeywell International Inc. | Rapid lidar image correlation for ground navigation |
US9037396B2 (en) | 2013-05-23 | 2015-05-19 | Irobot Corporation | Simultaneous localization and mapping for a mobile robot |
US9989969B2 (en) | 2015-01-19 | 2018-06-05 | The Regents Of The University Of Michigan | Visual localization within LIDAR maps |
EP3078935A1 (en) * | 2015-04-10 | 2016-10-12 | The European Atomic Energy Community (EURATOM), represented by the European Commission | Method and device for real-time mapping and localization |
US10989542B2 (en) * | 2016-03-11 | 2021-04-27 | Kaarta, Inc. | Aligning measured signal data with slam localization data and uses thereof |
US10962647B2 (en) | 2016-11-30 | 2021-03-30 | Yujin Robot Co., Ltd. | Lidar apparatus based on time of flight and moving object |
KR102172602B1 (ko) * | 2017-10-23 | 2020-11-02 | 주식회사 유진로봇 | 라이다를 이용한 위치 인식 및 지도 작성에 관한 방법 및 장치 |
DE102017105086A1 (de) * | 2017-03-10 | 2018-09-13 | Valeo Schalter Und Sensoren Gmbh | Aktualisieren einer Landmarkenkarte |
KR102310346B1 (ko) * | 2017-03-28 | 2021-10-07 | 엘지전자 주식회사 | 상황인식적으로 맵을 관리하는 방법, 이를 구현하는 장치 |
KR102350533B1 (ko) * | 2017-06-13 | 2022-01-11 | 엘지전자 주식회사 | 비전 정보에 기반한 위치 설정 방법 및 이를 구현하는 로봇 |
US10437252B1 (en) * | 2017-09-08 | 2019-10-08 | Perceptln Shenzhen Limited | High-precision multi-layer visual and semantic map for autonomous driving |
US10807236B2 (en) * | 2018-04-30 | 2020-10-20 | Beijing Jingdong Shangke Information Technology Co., Ltd. | System and method for multimodal mapping and localization |
JP7133251B2 (ja) * | 2019-03-13 | 2022-09-08 | 学校法人千葉工業大学 | 情報処理装置および移動ロボット |
GB2584272B (en) * | 2019-05-20 | 2023-11-29 | Geoslam Ltd | Sensor synchronization |
-
2019
- 2019-06-14 US US16/964,982 patent/US12085951B2/en active Active
- 2019-06-14 KR KR1020197026554A patent/KR102246236B1/ko active IP Right Grant
- 2019-06-14 WO PCT/KR2019/007227 patent/WO2020251100A1/ko active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101439921B1 (ko) | 2012-06-25 | 2014-09-17 | 서울대학교산학협력단 | 비젼 센서 정보와 모션 센서 정보를 융합한 모바일 로봇용 slam 시스템 |
JP6487010B2 (ja) | 2017-10-26 | 2019-03-20 | エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd | ある環境内で無人航空機を制御する方法、ある環境のマップを生成する方法、システム、プログラムおよび通信端末 |
Also Published As
Publication number | Publication date |
---|---|
US20230161356A1 (en) | 2023-05-25 |
WO2020251100A1 (ko) | 2020-12-17 |
US12085951B2 (en) | 2024-09-10 |
KR20200143217A (ko) | 2020-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102220564B1 (ko) | 멀티 센서를 이용하여 위치를 추정하는 방법 및 이를구현하는 로봇 | |
KR102246236B1 (ko) | 퓨전 슬램에서 맵을 업데이트하는 방법 및 이를 구현하는 로봇 | |
KR20210015211A (ko) | 실시간으로 클라우드 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버 | |
KR102615685B1 (ko) | 멀티 센서를 동기화시켜 위치를 추정하는 방법 및 이를 구현하는 로봇 | |
US11673269B2 (en) | Method of identifying dynamic obstacle and robot implementing same | |
JP7341652B2 (ja) | 情報処理装置、情報処理方法、プログラム、およびシステム | |
US11688081B2 (en) | Method of performing simultaneous localization and mapping with respect to a salient object in an image | |
US9836653B2 (en) | Systems and methods for capturing images and annotating the captured images with information | |
US11565415B2 (en) | Method of tracking user position using crowd robot, tag device, and robot implementing thereof | |
US11097416B2 (en) | Mobile robot system, mobile robot, and method of controlling the mobile robot system | |
KR101121763B1 (ko) | 환경 인식 장치 및 방법 | |
KR102664410B1 (ko) | 다중 센서 및 인공지능에 기반하여 맵을 생성하고 맵을 이용하여 주행하는 로봇 | |
KR20190098734A (ko) | 센서 데이터를 이용하여 청소 동선을 결정하는 인공 지능 로봇 및 그 방법 | |
CN106662646A (zh) | 用于为自主式机器人构建障碍物的不存在和存在中的一种的概率的图的方法 | |
KR20210155833A (ko) | 다중 센서 및 인공지능에 기반하여 맵을 생성하고 노드들의 상관 관계를 설정하며 맵을 이용하여 주행하는 로봇 및 맵을 생성하는 방법 | |
KR102303432B1 (ko) | 장애물의 특성을 고려한 dqn 및 slam 기반의 맵리스 내비게이션 시스템 및 그 처리 방법 | |
US11347226B2 (en) | Method of redefining position of robot using artificial intelligence and robot of implementing thereof | |
KR20200140628A (ko) | 외부 영상에 기반한 로봇의 주행 방법과, 이를 구현하는 로봇 및 서버 | |
US11467598B2 (en) | Method of estimating position in local area of large space and robot and cloud server implementing thereof | |
KR20210033808A (ko) | 아웃도어 영역에서 이종의 위치정보 획득 메커니즘을 적용하는 방법 및 이를 구현하는 로봇과 클라우드 서버 | |
KR20210079610A (ko) | 인공 지능 청소 로봇 및 방법 | |
Wen et al. | Indoor SLAM Using Laser and Camera with Closed‐Loop Controller for NAO Humanoid Robot | |
KR20210026595A (ko) | 로봇이 관리자 모드로 이동하는 방법 및 이를 구현하는 로봇 | |
Parikh et al. | Autonomous mobile robot for inventory management in retail industry | |
JP2020149186A (ja) | 位置姿勢推定装置、学習装置、移動ロボット、位置姿勢推定方法、学習方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |