KR20190109325A - 로봇 및 로봇의 위치를 인식하기 위한 방법 - Google Patents
로봇 및 로봇의 위치를 인식하기 위한 방법 Download PDFInfo
- Publication number
- KR20190109325A KR20190109325A KR1020190096352A KR20190096352A KR20190109325A KR 20190109325 A KR20190109325 A KR 20190109325A KR 1020190096352 A KR1020190096352 A KR 1020190096352A KR 20190096352 A KR20190096352 A KR 20190096352A KR 20190109325 A KR20190109325 A KR 20190109325A
- Authority
- KR
- South Korea
- Prior art keywords
- robot
- profile
- learning
- access points
- recognizing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004891 communication Methods 0.000 claims abstract description 115
- 238000013528 artificial neural network Methods 0.000 claims description 28
- 238000012549 training Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 2
- 238000010801 machine learning Methods 0.000 abstract description 15
- 238000013473 artificial intelligence Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 210000002569 neuron Anatomy 0.000 description 7
- 230000007613 environmental effect Effects 0.000 description 6
- 238000005259 measurement Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 3
- 210000000225 synapse Anatomy 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000002485 combustion reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
- 230000003245 working 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/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/0285—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using signals transmitted via a public communication network, e.g. GSM network
-
- 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
- G01S11/00—Systems for determining distance or velocity not using reflection or reradiation
- G01S11/02—Systems for determining distance or velocity not using reflection or reradiation using radio waves
- G01S11/06—Systems for determining distance or velocity not using reflection or reradiation using radio waves using intensity measurements
-
- 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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- 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/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- 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/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- 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
- B25J9/1692—Calibration of manipulator
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- 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
- G01S1/00—Beacons or beacon systems transmitting signals having a characteristic or characteristics capable of being detected by non-directional receivers and defining directions, positions, or position lines fixed relatively to the beacon transmitters; Receivers co-operating therewith
- G01S1/70—Beacons or beacon systems transmitting signals having a characteristic or characteristics capable of being detected by non-directional receivers and defining directions, positions, or position lines fixed relatively to the beacon transmitters; Receivers co-operating therewith using electromagnetic waves other than radio waves
-
- 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
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0252—Radio frequency fingerprinting
- G01S5/02521—Radio frequency fingerprinting using a radio-map
- G01S5/02522—The radio-map containing measured values of non-radio values
-
- 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
- G01S5/00—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
- G01S5/02—Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
- G01S5/0252—Radio frequency fingerprinting
- G01S5/02521—Radio frequency fingerprinting using a radio-map
- G01S5/02524—Creating or updating the radio-map
- G01S5/02527—Detecting or resolving anomalies in the radio frequency fingerprints of the radio-map
-
- 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
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- 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/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Electromagnetism (AREA)
- Computer Networks & Wireless Communication (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Manipulator (AREA)
- Position Fixing By Use Of Radio Waves (AREA)
Abstract
로봇 및 로봇의 위치를 인식하기 위한 방법이 개시된다. 본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법은 액세스 포인트들의 식별자들 및 상기 액세스 포인트들로부터의 수신 신호 강도들을 포함하는 통신 환경 정보를 획득하는 단계, 획득된 통신 환경 정보에 기초하여, 상기 로봇의 현재 위치에 대한 환경 프로파일을 생성하는 단계, 생성된 환경 프로파일을 복수의 영역과 각각 연관된 복수의 학습 프로파일과 비교하는 단계, 상기 비교에 기초하여, 상기 환경 프로파일에 대응하는 학습 프로파일을 결정하는 단계, 및 결정된 학습 프로파일과 연관된 영역을 상기 로봇의 현재 위치로서 결정하는 단계를 포함할 수 있다. 본 발명의 실시 예들은 사물 인터넷을 위해 연결된 5G 환경에서 인공 지능 알고리즘 및/또는 머신 러닝 알고리즘을 실행하여 구현될 수 있다.
Description
본 발명은 로봇에 관한 것으로, 보다 상세하게는 로봇의 위치 인식(localization)에 관한 것이다.
최근 들어 일상 생활에서 편리하게 사용할 수 있는 다양한 로봇이 개발되고 있다. 이와 같은 로봇은 가정, 학교 및 공공장소 등에서 사람의 일상 생활을 돕는데 사용되고 있다.
안내 로봇, 배송 로봇, 청소 로봇 등과 같은 이동 로봇은 사용자의 조작 없이도 자율적으로 주행하면서 작업을 수행한다. 로봇이 자율 주행을 하기 위해서는 로봇의 위치 인식이 필수적으로 요구된다. 통상적으로, 로봇이 동작하는 환경의 맵 및 다양한 센서 데이터를 이용하여 로봇의 현재 위치가 인식될 수 있다.
하지만, 로봇에 예기치 않은 이동이 발생하는 경우(예를 들어, 사용자가 로봇을 임의의 위치로 이동시키거나, 배터리가 소진된 로봇이 임의의 위치에서 시동하는 경우 등), 로봇이 자신의 현재 위치를 제대로 인지하지 못할 수 있다.
사용자가 이동 로봇을 임의의 위치로 옮긴 경우 이동 로봇이 주변을 스캔하여 획득한 로컬 맵 및 회전하면서 획득한 실 센서 데이터 간의 정합을 수행하여 로컬 맵에 대한 이동 로봇의 상대 위치를 인식하는 방법이 관련 분야에 개시되어 있다.
하지만, 이러한 알고리즘을 사용하기 위해서는 주변 물체와의 거리를 정확히 측정할 수 있는 라이다(LiDAR) 센서 등의 고가의 센서가 필요하다. 또한, 개시된 알고리즘은 넓게 개방된 공간 또는 주변 구조물들의 구별이 어려운 공간 등에서 동작하는 이동 로봇에 적용하기에는 한계가 있다.
고가의 센서를 구비하지 않은 로봇에 예기치 않은 이동이 발생하는 경우 로봇의 위치를 빠르고 효과적으로 인식하는 것에 대한 요구가 있다. 또한, 주변의 구조물들에 의존하지 않고 로봇의 위치를 인식하는 것에 대한 요구가 있다.
본 발명의 실시 예는 로봇에 예기치 않은 이동이 발생하는 경우 로봇의 현재 위치를 빠르고 효과적으로 인식할 수 있는 방법 및 장치를 제공한다.
본 발명의 실시 예는 저비용으로 로봇의 현재 위치를 효과적으로 인식할 수 있는 방법 및 장치를 제공한다.
본 발명의 실시 예는 주변의 구조물들에 의존하지 않고 로봇의 현재 위치를 인식할 수 있는 방법 및 장치를 제공한다.
본 발명의 실시 예는 정상 주행 중인 로봇이 자신의 현재 위치를 효과적으로 보정할 수 있는 방법 및 장치를 제공한다.
본 발명의 실시 예는 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
본 발명의 일 실시 예에 따른 로봇 및 로봇의 위치를 인식하기 위한 방법은 액세스 포인트들의 식별자들 및 액세스 포인트들로부터의 수신 신호 강도들을 포함하는 통신 환경 정보에 기초하여 로봇의 현재 위치를 결정할 수 있다.
본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법은 액세스 포인트들의 식별자들 및 상기 액세스 포인트들로부터의 수신 신호 강도들을 포함하는 통신 환경 정보를 획득하는 단계, 획득된 통신 환경 정보에 기초하여, 상기 로봇의 현재 위치에 대한 환경 프로파일을 생성하는 단계, 생성된 환경 프로파일을 복수의 영역과 각각 연관된 복수의 학습 프로파일과 비교하는 단계, 상기 비교에 기초하여, 상기 환경 프로파일에 대응하는 학습 프로파일을 결정하는 단계 및 결정된 학습 프로파일과 연관된 영역을 상기 로봇의 현재 위치로서 결정하는 단계를 포함할 수 있다.
상기 통신 환경 정보는 비콘 신호 또는 가시광 통신 신호 중 적어도 하나에 관한 정보를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법은 상기 현재 위치에서의 주변 환경 정보를 획득하는 단계를 더 포함할 수 있고, 상기 환경 프로파일을 생성하는 단계는 획득된 주변 환경 정보에 추가로 기초할 수 있다.
상기 복수의 학습 프로파일 각각은 액세스 포인트들 각각에 대한 수신 신호 강도의 확률 맵을 포함할 수 있다.
상기 비교하는 단계는, 각각의 학습 프로파일에 대해: 상기 환경 프로파일 내의 액세스 포인트들이 상기 학습 프로파일 내의 액세스 포인트들과 매칭되는지를 결정하는 단계, 매칭되는 액세스 포인트들의 수신 신호 강도들을 상기 확률 맵에 연관시키는 단계 및 상기 연관에 기초하여 상기 환경 프로파일과 상기 학습 프로파일 간의 유사도를 결정하는 단계를 포함할 수 있다.
상기 환경 프로파일에 대응하는 학습 프로파일을 결정하는 단계는, 가장 높은 유사도를 갖는 학습 프로파일을 상기 환경 프로파일에 대응하는 학습 프로파일로 결정하는 단계를 포함할 수 있다.
상기 결정된 학습 프로파일과 연관된 영역의 중앙 지점이 상기 로봇의 현재 위치로서 결정될 수 있다.
본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법은 인공 신경망에 기반한 학습 모델을 이용하여 상기 획득된 통신 환경 정보 또는 상기 생성된 환경 프로파일을 분석함으로써, 상기 로봇의 현재 위치를 보정하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시 예에 따른 로봇의 위치를 인식하기 위한 방법은 상기 로봇의 현재 위치를 결정하는 단계, 결정된 현재 위치를 복수의 영역의 대응하는 영역에 매핑하는 단계, 액세스 포인트들의 식별자들 및 상기 액세스 포인트들로부터의 수신 신호 강도들을 포함하는 통신 환경 정보를 획득하는 단계, 및 획득된 통신 환경 정보에 기초하여 상기 대응하는 영역에 대한 학습 프로파일을 생성 또는 갱신하는 단계를 포함할 수 있다.
상기 통신 환경 정보는 비콘 신호 또는 가시광 통신 신호 중 적어도 하나에 관한 정보를 더 포함할 수 있다.
상기 학습 프로파일은 액세스 포인트들 각각에 대한 수신 신호 강도의 확률 맵을 포함할 수 있다.
상기 학습 프로파일을 생성 또는 갱신하는 단계는, 상기 확률 맵을 생성 또는 수정하는 단계를 포함할 수 있다.
본 발명의 다른 실시 예에 따른 로봇의 위치를 인식하기 위한 방법은 상기 획득된 통신 환경 정보, 상기 결정된 현재 위치 및 상기 학습 프로파일을 학습 데이터로 사용하여 인공 신경망을 학습시키는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 로봇은, 액세스 포인트들의 식별자들 및 상기 액세스 포인트들로부터의 수신 신호 강도들을 포함하는 통신 환경 정보를 획득하는 통신부, 및 적어도 하나의 프로세서를 포함할 수 있고, 상기 적어도 하나의 프로세서는, 획득된 통신 환경 정보에 기초하여, 상기 로봇의 현재 위치에 대한 환경 프로파일을 생성하고, 생성된 환경 프로파일을 복수의 영역과 각각 연관된 복수의 학습 프로파일과 비교하고, 상기 비교에 기초하여, 상기 환경 프로파일에 대응하는 학습 프로파일을 결정하며, 그리고 결정된 학습 프로파일과 연관된 영역을 상기 로봇의 현재 위치로서 결정할 수 있다.
상기 통신 환경 정보는 비콘 신호 또는 가시광 통신 신호 중 적어도 하나에 관한 정보를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 로봇은 상기 현재 위치에서의 주변 환경 정보를 획득하는 센싱부를 더 포함할 수 있고, 상기 적어도 하나의 프로세서는 획득된 주변 환경 정보에 추가로 기초하여 상기 환경 프로파일을 생성할 수 있다.
상기 복수의 학습 프로파일 각각은 액세스 포인트들 각각에 대한 수신 신호 강도의 확률 맵을 포함할 수 있다.
상기 적어도 하나의 프로세서는, 각각의 학습 프로파일에 대해: 상기 환경 프로파일 내의 액세스 포인트들이 상기 학습 프로파일 내의 액세스 포인트들과 매칭되는지를 결정하고, 매칭되는 액세스 포인트들의 수신 신호 강도들을 상기 확률 맵과 연관시키고, 그리고 상기 연관에 기초하여 상기 환경 프로파일과 상기 학습 프로파일 간의 유사도를 결정할 수 있다.
상기 적어도 하나의 프로세서는 가장 높은 유사도를 갖는 학습 프로파일을 상기 환경 프로파일에 대응하는 학습 프로파일로 결정할 수 있다.
상기 적어도 하나의 프로세서는 상기 결정된 학습 프로파일과 연관된 영역의 중앙 지점을 상기 현재 위치로서 결정할 수 있다.
본 발명의 일 실시 예에 따른 컴퓨터 판독가능한 저장 매체에는 프로그램 코드가 저장될 수 있고, 상기 프로그램 코드는, 실행되는 경우, 적어도 하나의 프로세서로 하여금, 전술한 로봇의 위치를 인식하기 위한 방법을 수행하게 할 수 있다.
본 발명의 실시 예에 따르면, 로봇에 예기치 않은 이동이 발생하는 경우에도 로봇이 자신의 위치를 빠르고 효과적으로 인식할 수 있다.
본 발명의 실시 예에 따르면, 고가의 센서를 구비하지 않은 로봇이 자신의 현재 위치를 효과적으로 인식할 수 있다.
본 발명의 실시 예에 따르면, 로봇이 주변의 구조물들에 의존하지 않고 자신의 현재 위치를 인식할 수 있다.
본 발명의 실시 예에 따르면, 정상 주행 중인 로봇이 자신의 현재 위치를 효과적으로 보정할 수 있다.
본 발명의 실시 예에 따르면, 환경 프로파일 및 학습 프로파일에 요약 데이터만 유지될 수 있어 프로세싱 속도 및 효율이 개선될 수 있다. 그에 따라, 서버의 도움 없이도 로봇이 자신의 현재 위치를 인식할 수 있다.
본 발명의 실시 예에 따르면, 특히 Wi-Fi가 밀집된 지역에서 로봇이 자신의 현재 위치를 효과적으로 인식할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 통상의 기술자에게 명확히 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시 예에 따른 로봇 시스템을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 로봇의 구성을 도시한 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 공간의 일 예를 도시한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 학습 프로파일의 생성 또는 갱신을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 학습 프로파일의 확률 맵을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 환경 프로파일에 기초한 위치 인식을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법의 동작 흐름을 도시한 순서도이다.
도 8은 본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법의 동작 흐름을 도시한 순서도이다.
도 9는 본 발명의 다른 실시 예에 따른 로봇 시스템을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 로봇의 구성을 도시한 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 공간의 일 예를 도시한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 학습 프로파일의 생성 또는 갱신을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 학습 프로파일의 확률 맵을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 환경 프로파일에 기초한 위치 인식을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법의 동작 흐름을 도시한 순서도이다.
도 8은 본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법의 동작 흐름을 도시한 순서도이다.
도 9는 본 발명의 다른 실시 예에 따른 로봇 시스템을 도시한 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
로봇은 스스로 보유한 능력에 의해 주어진 일을 자동으로 처리하거나 작동하는 기계를 의미할 수 있다. 특히, 환경을 인식하고 스스로 판단하여 동작을 수행하는 기능을 갖는 로봇을 지능형 로봇이라 칭할 수 있다.
로봇은 사용 목적이나 분야에 따라 산업용, 의료용, 가정용, 군사용 등으로 분류할 수 있다.
로봇은 액츄에이터 또는 모터를 포함하는 구동부를 구비하여 로봇 관절을 움직이는 등의 다양한 물리적 동작을 수행할 수 있다. 또한, 이동 가능한 로봇은 구동부에 휠, 브레이크, 프로펠러 등이 포함되어, 구동부를 통해 지상에서 주행하거나 공중에서 비행할 수 있다.
자율 주행은 스스로 주행하는 기술을 의미하며, 자율 주행 차량은 사용자의 조작 없이 또는 사용자의 최소한의 조작으로 주행하는 차량(Vehicle)을 의미한다.
예컨대, 자율 주행에는 주행중인 차선을 유지하는 기술, 어댑티브 크루즈 컨트롤과 같이 속도를 자동으로 조절하는 기술, 정해진 경로를 따라 자동으로 주행하는 기술, 목적지가 설정되면 자동으로 경로를 설정하여 주행하는 기술 등이 모두 포함될 수 있다.
차량은 내연 기관만을 구비하는 차량, 내연 기관과 전기 모터를 함께 구비하는 하이브리드 차량, 그리고 전기 모터만을 구비하는 전기 차량을 모두 포괄하며, 자동차뿐만 아니라 기차, 오토바이 등을 포함할 수 있다.
이때, 자율 주행 차량은 자율 주행 기능을 가진 로봇으로 볼 수 있다.
도 1은 본 발명의 일 실시 예에 따른 로봇 시스템을 도시한 도면이다. 도 1을 참조하면, 본 발명의 일 실시 예에 따른 로봇 시스템은 하나 이상의 로봇(110) 및 관제 서버(120)를 포함할 수 있고, 선택적으로 단말기(130)를 더 포함할 수 있다.
하나 이상의 로봇(110), 관제 서버(120) 및 단말기(130)는 네트워크(140)를 통해 서로 연결될 수 있다. 하나 이상의 로봇(110), 관제 서버(120) 및 단말기(130)는 기지국이나 액세스 포인트 등을 통해 서로 통신할 수도 있지만, 기지국 등을 통하지 않고 서로 직접 통신할 수도 있다.
하나 이상의 로봇(110)은 공간에서 작업을 수행하고 해당 작업과 연관된 정보 또는 데이터를 관제 서버(120)에 제공할 수 있다. 로봇의 작업 공간은 실내 또는 실외일 수 있다. 로봇은 벽이나 기둥 등에 의해 미리 정의된 공간에서 동작할 수 있다. 로봇의 작업 공간은 설계 목적, 로봇의 작업 속성, 로봇의 이동성 및 기타 다양한 요인에 따라 다양하게 정의될 수 있다. 로봇은 미리 정의되지 않은 개방된 공간에서 동작할 수도 있다. 로봇은 주변 환경을 센싱하여 스스로 작업 공간을 결정할 수도 있다.
하나 이상의 로봇(110)은 자신의 상태 정보 또는 데이터를 관제 서버(120)에 제공할 수 있다. 예를 들어, 상태 정보는 로봇의 위치에 관한 정보, 로봇의 배터리 레벨, 부품 또는 소모품의 상태 및 교체 주기 등에 관한 정보 등을 포함할 수 있다.
관제 서버(120)는 하나 이상의 로봇(110)으로부터 제공되는 정보 또는 데이터에 기초하여 다양한 분석을 수행할 수 있고, 그러한 분석 결과에 기초하여 로봇 시스템 전반의 동작을 제어할 수 있다. 일 양상에서, 관제 서버(120)는 분석 결과에 기초하여 로봇(110)의 구동을 직접 제어할 수 있다. 다른 양상에서, 관제 서버(120)는 분석 결과로부터 유용한 정보 또는 데이터를 도출하여 출력할 수 있다. 또 다른 양상에서, 관제 서버(120)는 도출된 정보 또는 데이터를 이용하여 로봇 시스템 내 파라미터들을 조정할 수 있다. 관제 서버(120)는 단일 서버로 구현될 수 있지만, 복수의 서버 세트, 클라우드 서버 또는 이들의 조합 등으로 구현될 수도 있다.
단말기(130)는 관제 서버(120)의 역할을 분담할 수 있다. 일 양상에서, 단말기(130)는 하나 이상의 로봇(110)으로부터 정보 또는 데이터를 획득하여 관제 서버(120)에 제공하거나, 관제 서버(120)로부터 정보 또는 데이터를 획득하여 하나 이상의 로봇(110)에 제공할 수 있다. 다른 양상에서, 단말기(130)는 관제 서버(120)에 의해 수행될 분석의 적어도 일부를 담당할 수 있고, 그러한 분석 결과를 관제 서버(120)에 제공할 수도 있다. 또 다른 양상에서, 단말기(130)는 관제 서버(120)로부터 분석 결과, 정보 또는 데이터를 제공받아 이를 단지 출력만 할 수도 있다.
실시 예에서, 단말기(130)가 관제 서버(120)의 역할을 대신할 수 있다. 다른 실시 예에서, 로봇들(110) 중 적어도 하나의 로봇이 관제 서버(120)의 역할을 대신할 수 있다. 이 경우 로봇들(110)은 서로 통신 가능하게 연결될 수 있다.
단말기(130)는 로봇(110) 및 관제 서버(120)와 통신할 수 있는 다양한 전자 디바이스들을 포함할 수 있다. 예를 들어, 단말기(100)는 휴대폰, 스마트폰(smartphone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, 뮤직 플레이어, 비디오 플레이어, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device)(예를 들어, 워치형 단말기(smartwatch), 글래스형 단말기(smart glass), HMD(head mounted display)), 셋톱박스(STB), DMB 수신기, 라디오, TV, 세탁기, 냉장고, 청소기, 공기 조화기, 공기 청정기, 의류 관리기, 미용 관리기, 데스크탑 컴퓨터, 프로젝터, 디지털 사이니지(Digital Signage)와 같은 고정형 디바이스 및 이동 가능한 디바이스 등으로 구현될 수 있다.
네트워크(140)는 클라우드 컴퓨팅 인프라의 일부를 구성하거나 클라우드 컴퓨팅 인프라 안에 존재하는 네트워크를 의미할 수 있다. 이러한 네트워크(140)는 예컨대 LANs(local area networks), WANs(wide area networks), MANs(metropolitan area networks), ISDNs(integrated service digital networks) 등의 유선 네트워크나, 무선 LANs, CDMA, WCDMA, LTE, LTE-A, 5G, 블루투스, 위성 통신 등의 무선 통신 네트워크를 망라할 수 있으나, 이에 한정되는 것은 아니다.
네트워크(140)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(140)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(140)로의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다. 더 나아가 네트워크(140)는 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 각종 사물 지능 통신(IoT(internet of things), IoE(internet of everything), IoST(internet of small things) 등) 및/또는 5G 통신을 지원할 수 있다.
로봇(110)에 예기치 않은 이동이 발생하는 경우(예를 들어, 사용자가 로봇(110)을 임의의 위치로 이동시키거나, 배터리가 소진된 로봇(110)이 임의의 위치에서 시동하는 경우 등), 로봇(110)이 자신의 현재 위치를 제대로 인지하지 못할 수 있다. 로봇(110)은 라이다(LiDAR) 센서 또는 카메라 등을 사용하여 주변 구조물들과의 거리를 도출함으로써 자신의 위치를 인식할 수 있다. 하지만, 주변 구조물들의 구별이 어려운 공간에 적용되기에는 한계가 있다.
따라서, 본 발명의 실시 예들은 로봇(110)이 특정 위치에서 무선 신호들을 스캔하는 동작만으로 자신의 위치를 빠르고 효과적으로 인식할 수 있는 방안들을 제공한다.
도 2는 본 발명의 일 실시 예에 따른 로봇의 구성을 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 로봇(200)은 통신부(210), 입력부(220), 센싱부(230), 구동부(240), 출력부(250), 메모리(280) 및 프로세서(270)를 포함할 수 있다.
통신부(210)는 유무선 통신 기술을 이용하여 관제 서버(120) 또는 단말기(130) 등의 외부 장치들과 정보 또는 데이터를 송수신할 수 있다. 예컨대, 통신부(210)는 외부 장치들과 센서 데이터, 측정 데이터, 입력 데이터, 학습 모델, 제어 신호 등을 송수신할 수 있다. 통신부(210)는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth?), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication), 가시광 통신(Visible Lignt Communication), Li-Fi(Light-Fidelity) 등과 같은 통신 기술을 이용할 수 있다.
통신부(210)는 무선 신호들을 스캔하여 통신 환경 정보를 획득하고, 획득된 통신 환경 정보를 프로세서(270)에 제공할 수 있다. 통신 환경 정보는 특정 위치에서의 통신 환경에 대한 상황(context) 정보를 나타낼 수 있다. 통신 환경 정보는 특정 위치에서 통신부(210)에 의해 획득되는 적어도 하나의 정보, 데이터 또는 측정값에 의해 정의되거나 표현될 수 있다.
실시 예예서, 통신 환경 정보는 액세스 포인트들의 식별자들 및 액세스 포인트들로부터의 수신 신호 강도들을 포함할 수 있다. 액세스 포인트의 식별자는 액세스 포인트의 이름, SSID(Service Set Identifier), MAC(Media Access Control) 어드레스 등 액세스 포인트를 다른 액세스 포인트들과 구별할 수 있는 다양한 식별 정보를 포함할 수 있다. 액세스 포인트로부터의 수신 신호 강도는 RSSI(Received Signal Strength Indicator), SNR(Signal-to-Noise Ratio) 등 액세스 포인트로부터 수신되는 무선 신호의 강도 또는 전력 레벨을 나타낼 수 있는 다양한 측정값을 포함할 수 있다. 수신 신호 강도는 상대적인 레벨로 표현될 수도 있고, dB, dBm 등의 측정 단위로 표현될 수도 있다.
액세스 포인트(AP; access point)는 무선 디바이스들에 네트워크 연결성을 제공하는 네트워크 디바이스이다. 액세스 포인트는 게이트웨이 또는 라우터의 일부일 수 있거나, 독립형 디바이스일 수 있다. 실시 예에서, 액세스 포인트는 IEEE 802.11 표준에 따른 무선 액세스 포인트, Wi-Fi 핫 스팟(hot spot), 유무선 공유기 등을 포함할 수 있다. 다른 실시 예에서, 액세스 포인트는 3G, LTE, LTE-A, 5G 등의 이동 통신 표준에 따른 기지국, eNB, 노드 B, 기본 서비스 세트(BSS; basic service set), 확장 서비스 세트(ESS; extended service set) 등을 포함할 수 있다.
실시 예에서, 통신부(210)는 IEEE 802.11 표준에 따른 무선랜 신호들 또는 Wi-Fi 신호들을 스캔하고, 해당 신호들을 송신한 액세스 포인트들의 SSID들 및 RSSI들을 획득할 수 있다. Wi-Fi 스캔을 통한 통신 환경 정보의 획득은 주기적으로 수행될 수도 있고, 프로세서(270)로부터의 요청에 응답하여 수행될 수도 있다.
실시 예에서, 통신 환경 정보는 비콘(beacon) 신호에 관한 정보를 포함할 수 있다. 상점이나 식당 등에 배치된 비콘 송신기는 해당 상점에 관한 정보 또는 쿠폰 등을 제공하기 위해 주기적으로 비콘 신호를 송신할 수 있다. 비콘 신호는 블루투스, BLE(Bluetooth Low Energy), NFC(Near Field Communication), 아이비콘(iBeacon), 적외선 통신 등의 근거리 무선 통신 기술을 이용하여 주변 영역에 브로드캐스트될 수 있다. 통신부(210)는 주변의 비콘 송신기에 의해 송신된 비콘 신호에 관한 정보를 통신 환경 정보로서 획득할 수 있다.
비콘 신호에 관한 정보는 비콘 신호들의 식별자들, 비콘 신호들의 수신 신호 강도들 및 비콘 상태 정보 등을 포함할 수 있다. 비콘 신호의 식별자는 비콘 규격에 따라 에디스톤-UID(Eddystone Unique Identifier), 에디스톤-URL(Eddystone Uniform Resource Locator), UUID(Universally Unique Identifier), Major 값, Minor 값 등 비콘 신호를 구별하는데 사용되는 다양한 식별 정보를 포함할 수 있다. 비콘 신호의 수신 신호 강도는 RSSI, SNR 등 비콘 신호의 강도 또는 전력 레벨을 나타낼 수 있는 다양한 측정 값을 포함할 수 있다. 비콘 상태 정보는 비콘 송신기의 배터리 전압, 온도, 전송한 패킷들의 수, 가동 시간 등에 대한 정보를 나타내는 에디스톤-TLM(Eddystone Telemetry) 등을 포함할 수 있다.
실시 예에서, 통신 환경 정보는 가시광 통신(VLC; Visible Light Communication) 신호에 관한 정보를 포함할 수 있다. 즉, 통신부(210)는 주변의 LED 조명으로부터 송신된 가시광 통신 신호를 통신 환경 정보로서 획득할 수 있다. 가시광 통신은 발광다이오드(LED; Light Emitting Diode)의 깜박임을 이용하여 데이터를 송수신하는 기술이다. 주변의 LED 조명으로부터의 가시광이 통신부(210)에 수신될 수 있다. 통신부(210)는 수신된 광을 전기 신호로 변환하기 위한 포토다이오드(PD; Photo Diode)를 포함할 수 있다. 가시광 통신 신호에 관한 정보는 VLC 식별자 및 가시광의 깜박임 주파수(flickering frequency) 및 흑백 비율(dimming rate) 등의 정보를 포함할 수 있다.
통신부(210)에 의해 획득된 액세스 포인트들의 식별자들, 액세스 포인트들로부터의 수신 신호 강도들, 비콘 신호에 관한 정보, 가시광 통신 신호에 관한 정보, 또는 이들의 임의의 조합들은 특정 위치에 대한 핑거프린트(fingerprint)로서 사용될 수 있다.
입력부(220)는 다양한 종류의 데이터를 획득할 수 있다. 입력부(220)는 영상 신호를 획득하기 위한 적어도 하나의 카메라, 오디오 신호를 획득하기 위한 마이크로폰 및 사용자로부터 정보를 입력 받기 위한 사용자 인터페이스 등을 포함할 수 있다.
입력부(220)는 학습 모델을 구축하기 위한 학습 데이터, 및 학습 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다. 입력부(220)는 가공되지 않은 입력 데이터를 획득할 수도 있다. 이 경우 프로세서(270) 또는 러닝 프로세서(260)는 입력 데이터에 대한 전처리로서 입력 특징점(input feature)을 추출할 수 있다.
실시 예예서, 입력부(220)는 사용자 인터페이스를 통해 전술한 통신 환경 정보를 입력 받을 수 있다. 다시 말해, 전술한 통신 환졍 정보는 입력부(220)를 통해 사용자로부터 입력될 수도 있다.
센싱부(230)는 다양한 센서들을 이용하여 로봇(200)의 내부 정보, 주변 환경 정보 및 사용자 정보 중 적어도 하나를 획득할 수 있다. 센싱부(230)는 가속도 센서, 자기 센서, 자이로 센서, 관성 센서, 근접 센서, RGB 센서, IR 센서, 조도 센서, 온도 센서, 습도 센서, 지문 인식 센서, 초음파 센서, 광 센서, 마이크로폰, 라이다, 레이더 및 이들의 조합 등을 포함할 수 있다.
실시 예에서, 센싱부(230)는 현재 위치에서의 온도 또는 습도 중 적어도 하나를 포함하는 주변 환경 정보를 획득하고, 획득된 주변 환경 정보를 프로세서(270)에 제공할 수 있다. 측정된 온도 또는 습도는 특정 위치를 나타내는 보조 정보로 사용될 수 있다.
구동부(240)는 로봇(200)을 물리적으로 구동한다. 구동부(240)는 프로세서(270)로부터의 제어 신호에 따라 동작하는 액츄에이터 또는 모터를 포함할 수 있다. 구동부(240)는 액츄에이터 또는 모터에 의해 동작하는 휠, 브레이크, 프로펠러 등을 포함할 수 있다.
출력부(250)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시킬 수 있다. 출력부(250)는 시각 정보를 출력하는 디스플레이부, 청각 정보를 출력하는 스피커 및 촉각 정보를 출력하는 햅틱 모듈 등을 포함할 수 있다.
메모리(280)는 로봇(200)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 메모리(280)는 통신부(210)에 의해 수신된 정보 또는 데이터, 입력부(220)에 의해 획득된 입력 정보, 입력 데이터, 학습 데이터, 학습 모델 및 학습 히스토리 등을 저장할 수 있다.
실시 예에서, 메모리(280)는 통신부(210)에 의해 획득된 통신 환경 정보, 또는 센싱부(230)에 의해 획득된 주변 환경 정보를 저장할 수 있다. 또한, 메모리(280)는 후술할 환경 프로파일 및 학습 프로파일을 저장할 수 있다. 본 개시에서, 통신 환경 정보 및 주변 환경 정보는 환경 정보로 총칭될 수 있다.
프로세서(270)는 데이터 분석 알고리즘 또는 머신 러닝 알고리즘을 사용하여 결정되거나 생성된 정보에 기초하여, 로봇(200)의 적어도 하나의 실행 가능한 동작을 결정할 수 있다. 그리고, 프로세서(270)는 로봇(200)의 구성 요소들을 제어하여 결정된 동작을 수행할 수 있다.
프로세서(270)는 러닝 프로세서(260) 또는 메모리(280)의 정보 또는 데이터를 요청, 검색, 수신 또는 활용할 수 있다. 프로세서(270)는 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 로봇(200)의 구성 요소들을 제어할 수 있다. 프로세서(270)는 결정된 동작을 수행하기 위해 관제 서버(120) 또는 단말기(130) 등의 외부 장치와의 연계가 필요한 경우, 해당 외부 장치를 제어하기 위한 제어 신호를 생성하고, 생성된 제어 신호를 해당 외부 장치에 송신할 수 있다.
프로세서(270)는 메모리(280)에 저장된 응용 프로그램을 구동하기 위해, 로봇(200)의 구성요소들 중 적어도 일부를 제어할 수 있다. 프로세서(270)는 응용 프로그램의 구동을 위해, 로봇(200)의 구성요소들 중 둘 이상을 서로 조합하여 동작시킬 수 있다.
실시 예에서, 프로세서(270)는 통신부(210) 또는 입력부(220)로부터 제공되는 통신 환경 정보, 또는 센싱부(230)로부터 제공되는 주변 환경 정보 중 적어도 하나에 기초하여 로봇(200)의 현재 위치를 결정할 수 있다. 이를 위해서는 환경 정보의 학습이 선행되어야 한다.
본 발명의 실시 예에 따른 로봇(200)의 위치 인식은 환경 정보의 학습 동작 및 로봇(200)의 위치 인식 동작으로 구분될 수 있다. 이하에서는, 도 3 내지 도 5를 참조하여 전자의 동작이 설명되고, 도 6을 참조하여 후자의 동작이 설명될 것이다.
환경 정보의 학습
도 3은 본 발명의 일 실시 예에 따른 공간의 일 예를 도시한 도면이다. 도 4는 본 발명의 일 실시 예에 따른 학습 프로파일의 생성 또는 갱신을 설명하기 위한 도면이다. 도 5는 본 발명의 일 실시 예에 따른 학습 프로파일의 확률 맵을 설명하기 위한 도면이다.
도 3을 참조하면, 로봇(200)이 작업을 수행하는 공간(S)이 정의될 수 있다. 실시 예에서, 공간(S)은 복수의 그리드(grid) 영역(G)으로 구획될 수 있다. 복수의 영역(G) 각각은 동일한 형태 및 동일한 면적을 가질 수 있다. 각 영역(G)의 형태 또는 면적은 공간(S)의 면적 또는 속성, 로봇(200)의 크기 또는 면적, 설계 목적 등에 따라 다양하게 선택될 수 있다. 예로서, 도 3은 81개의 그리드 영역들을 포함하는 공간(S)을 도시한다. 다른 실시 예에서, 복수의 영역(G)은 물리적인 공간 상의 제약 또는 설계 목적 등에 따라 상이한 형태 및/또는 상이한 면적을 갖는 적어도 하나의 영역을 포함할 수도 있다.
공간(S)이 좌표계에 매핑되면, 로봇(200)의 위치 정보가 2차원 좌표(x,y)로서 공간(S)의 대응하는 영역에 매핑될 수 있다. 또한, 2차원 좌표(x,y)와 함께 로봇(200)의 방향성을 나타내는 방위각 정보(θ)가 공간(S)에 추가로 매핑될 수 있다. 도 3에서는 공간(S)을 구성하는 복수의 영역(G)이 2차원 좌표 평면과 연관된다.
환경 정보의 학습은 정상 주행 상태의 로봇(200)에 의해 수행될 수 있다. 정상 주행 상태는 로봇(200)이 통상적인 방법에 의해 자신의 현재 위치를 정상적으로 인식하면서 주행하는 상태를 나타낸다. 이와 대조적으로, 비정상 주행 상태는 로봇(200)이 예기치 않은 이동으로 인해 자신의 현재 위치를 정확히 인식하지 못하거나 또는 통상적인 방법에 의해 자신의 현재 위치를 정확히 인식하지 못하는 상태를 나타낸다.
프로세서(270)는 정상 주행 상태에서 로봇(200)의 현재 위치를 결정하고, 결정된 현재 위치를 복수의 영역(G)의 대응하는 영역에 매핑한다. 예를 들어, 도 4에 도시된 바와 같이, 프로세서(270)는 로봇(200)의 현재 위치의 좌표를 대응하는 영역(410)에 매핑할 수 있다. 일정 시간 이후, 로봇(200)이 이동하였다면 로봇(200)의 현재 위치의 좌표는 대응하는 영역(420)에 매핑될 수 잇다.
프로세서(270)는 통신부(210)로부터 현재 위치에 대한 통신 환경 정보를 수신할 수 있다. 통신 환경 정보는 현재 위치에서 스캔된 액세스 포인트들의 식별자들 및 액세스 포인트들로부터의 수신 신호 강도들을 포함할 수 있다. 다른 실시 예에서, 통신 환경 정보는 현재 위치에서 수신되는 비콘 신호에 관한 정보 또는 가시광 통신 신호에 관한 정보를 더 포함할 수 있다. 또한, 프로세서(270)는 센싱부(230)로부터 현재 위치에서 측정된 온도 또는 습도 등을 포함하는 주변 환경 정보를 추가로 수신할 수 있다.
프로세서(270)는 획득된 통신 환경 정보 및/또는 주변 환경 정보에 기초하여 대응하는 영역에 대한 학습 프로파일을 생성 또는 갱신할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 프로세서(270)는 스캔된 액세스 포인트들의 SSID들 및 RSSI들을 포함하는 통신 환경 정보에 기초하여, 영역(410)에 대한 학습 프로파일(410a)을 생성할 수 있다. 일정 시간 이후, 유사한 방식으로, 프로세서(270)는 영역(420)에 대한 학습 프로파일(420a)을 생성할 수 있다. 대응하는 영역에 대한 학습 프로파일이 메모리(280)에 존재하지 않으면, 학습 프로파일이 새로 생성될 수 있고, 대응하는 영역에 대한 학습 프로파일이 메모리(280)에 존재하면, 학습 프로파일이 갱신될 수 있다. 이와 같은 방식으로 복수의 영역 전체에 걸쳐 학습 프로파일들이 생성될 수 있다. 학습 프로파일은 복수의 영역 중 어느 하나의 영역에 일대일로 대응할 수 있다. 도 4에 도시된 바와 같이, 81개의 영역들을 포함하는 공간(S)에 대해 81개의 학습 프로파일들이 생성될 수 있다.
학습 프로파일은 복수의 영역 각각에 대해 학습된 환경 정보의 요약 데이터를 나타낸다. 환경 정보는 통신부(210)에 의해 획득된 통신 환경 정보 및/또는 센싱부(230)에 의해 획득된 주변 환경 정보를 포함할 수 있다.
실시 예에서, 환경 정보는 각각의 영역에 대해 반복적으로 획득될 수 있다. 환경 정보가 반복적으로 획득되는 경우, 프로세서(270)는 학습 프로파일 각각에 대해 확률 맵을 생성할 수 있다.
실시 예에서, 액세스 포인트들의 식별자들 및 수신 신호 강도들을 포함하는 통신 환경 정보가 반복적으로 획득되는 경우, 프로세서(270)는 액세스 포인트들의 식별자들 각각에 대한 수신 신호 강도의 확률 맵을 생성할 수 있다.
도 5a에 도시된 바와 같이, 액세스 포인트들의 MAC 어드레스들 및 RSSI들을 포함하는 통신 환경 정보가 대응하는 영역(410)에 대해 4회 획득될 수 있다. 이 경우, 도 5b에 도시된 바와 같이, 각각의 액세스 포인트에 대응하는 RSSI의 확률 맵이 생성될 수 있다. '60:a4:4c:a0:5d:bc'의 MAC 어드레스를 갖는 액세스 포인트의 RSSI는 '5'로서 3회 그리고 '4'로서 1회 측정되었다. 따라서, RSSI가 '5'일 확률은 3/4 = 0.75이고, '4'일 확률은 1/4 = 0.25 이다. 이러한 방식으로 프로세서(270)는 각각의 학습 프로파일에 대해 액세스 포인트들의 식별자별로 수신 신호 강도의 확률 맵을 생성할 수 있다.
실시 예에서, 비콘 신호 및 가시광 통신 신호에 대해서도 유사한 방식으로 확률 맵이 생성될 수 있다. 예로서, 비콘 신호의 식별자별로 비콘 신호의 수신 신호 강도의 확률 맵이 생성될 수 있다. 다른 예로서, VLC 식별자별로 깜박임 주파수 또는 흑백 비율의 확률 맵이 생성될 수 있다.
실시 예에서, 주변 환경 정보에 대해서도 유사한 방식으로 확률 맵이 생성될 수 있다. 예를 들어, 날짜 또는 시간대별로 온도 또는 습도의 확률 맵이 생성될 수 있다.
이러한 확률 맵들은 각각의 학습 프로파일에서 적절히 조합될 수 있다. 더 많은 확률 맵들을 포함하는 학습 프로파일은 특정 영역에 대한 보다 세밀한 핑거프린트로서 기능할 수 있다.
환경 정보가 특정 영역에 대해 반복적으로 획득되면, 해당 영역에 대한 학습 프로파일이 반복적으로 갱신될 수 있다. 일 양상에서, 학습 프로파일을 갱신하는 것은 반복적으로 획득된 환경 정보를 기존의 학습 프로파일에 적절히 반영하는 것을 포함할 수 있다. 이 경우, 이전에 획득된 환경 정보에 비해 최근에 획득된 환경 정보에 더 높은 가중치가 부여될 수 있다. 다른 양상에서, 학습 프로파일을 갱신하는 것은 기존의 학습 프로파일을 새로 획득된 환경 정보로 대체하는 것을 포함할 수도 있다.
실시 예에서, 학습 프로파일을 갱신하는 것은 학습 프로파일의 확률 맵을 수정하는 것을 포함할 수 있다. 예를 들어, 도 5에서 '60:a4:4c:a0:5d:bc'의 MAC 어드레스를 갖는 액세스 포인트의 RSSI가 다음 번에 '4'로서 측정된다면, RSSI가 '5'일 확률은 3/5 = 0.6 으로, 그리고 RSSI가 '4'일 확률은 2/5 = 0.4 로 수정될 수 있다.
프로세서(270)는 전술한 방법에 의해 생성 또는 갱신된 복수의 학습 프로파일을 메모리(280)에 저장할 수 있다. 또한, 프로세서(270)는 생성 또는 갱신된 복수의 학습 프로파일을 통신부(210)를 통해 관제 서버(120)나 단말기(130)와 같은 외부 장치에 송신할 수도 있다.
로봇의 위치 인식
도 6은 본 발명의 일 실시 예에 따른 환경 프로파일에 기초한 위치 인식을 설명하기 위한 도면이다.
본 발명의 실시 예에 따른 로봇(200)의 위치 인식은 비정상 주행 상태의 로봇(200)에 의해 수행될 수 있다. 하지만, 본 발명의 실시 예에 따른 로봇(200)의 위치 인식은 자신의 위치를 보정하기 위해 정상 주행 상태의 로봇(200)에 의해서도 수행될 수 있다.
프로세서(270)는 통신부(210)로부터 현재 위치에 대한 통신 환경 정보를 수신한다. 통신 환경 정보는 액세스 포인트들의 식별자들 및 액세스 포인트들로부터의 수신 신호 강도들을 포함할 수 있다. 다른 실시 예에서, 통신 환경 정보는 현재 위치에서 수신되는 비콘 신호에 관한 정보 또는 가시광 통신 신호에 관한 정보를 더 포함할 수 있다. 또한, 프로세서(270)는 센싱부(230)로부터 현재 위치에서 측정된 온도 또는 습도 등을 포함하는 주변 환경 정보를 추가로 수신할 수 있다.
프로세서(270)는 획득된 통신 환경 정보 및/또는 주변 환경 정보에 기초하여 현재 위치에 대한 환경 프로파일을 생성할 수 있다. 실시 예에서, 프로세서(270)는 액세스 포인트들의 SSID들 및 RSSI들을 포함하는 현재 위치에 대한 환경 프로파일을 생성할 수 있다. 환경 프로파일은 현재 위치에서 획득된 환경 정보의 요약 데이터를 나타낸다.
프로세서(270)는 생성된 환경 프로파일을 메모리(280)에 저장된 복수의 학습 프로파일과 순차적으로 비교하여 환경 프로파일에 대응하는 학습 프로파일을 결정할 수 있다. 프로세서(270)는 환경 프로파일을 복수의 학습 프로파일 각각과 비교함으로써 환경 프로파일과 복수의 학습 프로파일 각각 간의 유사도를 결정할 수 있다. 프로세서(270)는 결정된 유사도에 기초하여 환경 프로파일에 대응하는 학습 프로파일을 결정할 수 있다.
실시 예에서, 복수의 학습 프로파일은 메모리(280)에 저장되어 있지 않을 수 있다. 프로세서(270)는 관제 서버(120) 또는 단말기(130)로부터 복수의 학습 프로파일을 수신할 수 있다.
실시 예에서, 환경 프로파일과 학습 프로파일 간의 유사도는 학습 프로파일의 확률 맵을 이용하여 도출될 수 있다. 전술한 바와 같이, 학습 프로파일은 액세스 포인트 각각에 대한 수신 신호 강도의 확률 맵을 포함할 수 있다. 확률 맵은 수신 신호 강도별 확률 값들을 포함할 수 있다.
프로세서(270)는 환경 프로파일 내의 액세스 포인트들의 식별자들 및 수신 신호 강도들을 학습 프로파일의 확률 맵과 비교할 수 있다. 이러한 비교 동작은 액세스 포인트들의 매칭 여부를 판단하는 것 및 매칭되는 액세스 포인트의 수신 신호 강도를 확률 맵의 확률 값과 연관시키는 것을 포함할 수 있다. 예를 들어, 도 6에 도시된 환경 프로파일을 도 5b의 학습 프로파일과 비교하면, 액세스 포인트들의 MAC 어드레스들은 서로 동일하다. 동일한 것으로 또는 매칭되는 것으로 결정된 환경 프로파일 내의 액세스 포인트들의 RSSI들은 도 6에 도시된 바와 같이 도 5b의 확률 맵과 연관될 수 있다. 예로서, '60:a4:4c:a0:5d:bc'의 MAC 어드레스를 갖는 액세스 포인트의 RSSI 레벨 '4'는, 도 5b의 확률 맵의'0.25'와 연관될 수 있다. 또한, '34:97:f6:6c:c3:a0'의 MAC 어드레스를 갖는 액세스 포인트의 RSSI 레벨 '19'는 도 5b의 확률 맵의 '1.0'과 연관될 수 있다. 동일한 방식으로, 나머지 액세스 포인트들에 대해서도 확률 맵과의 비교가 이루어질 수 있고, 연관된 확률 값의 총합이 환경 프로파일과 학습 프로파일 간의 유사도 점수(score)를 나타낼 수 있다.
만약, 환경 프로파일이 학습 프로파일에 존재하지 않는 액세스 포인트를 포함하면, 해당 액세스 포인트에 대한 확률 값은 '0'일 수 있다. 또한, 환경 프로파일의 액세스 포인트가 학습 프로파일에 존재하더라도, 해당 액세스 포인트의 RSSI가 학습 프로파일의 확률 맵에 존재하지 않으면, 해당 액세스 포인트에 대한 확률 값 또한 '0'일 수 있다. 예를 들어, 도 6에서 '00:23:04:88:ef:a7'의 MAC 어드레스를 갖는 액세스 포인트의 RSSI는 '15'로 측정되었으나, 도 5b의 확률 맵은 해당 액세스 포인트에 대해 '15'를 포함하지 않는다. 따라서, 해당 액세스 포인트데 대한 확률 값은 '0'일 수 있다.
이러한 방식으로, 프로세서(270)는 환경 프로파일과 복수의 학습 프로파일 각각 간의 유사도 점수를 결정할 수 있고, 프로세서(270)는 유사도 점수가 가장 높은 학습 프로파일을 환경 프로파일에 대응하는 학습 프로파일로서 결정할 수 있다.
프로세서(270)는 결정된 학습 프로파일과 연관된 영역을 로봇(200)의 현재 위치로 결정할 수 있다. 실시 예에서, 프로세서(270)는 결정된 학습 프로파일과 연관된 영역의 중앙 지점을 로봇(200)의 현재 위치로 결정할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법의 동작을 도시한 흐름도이다. 도 7에 도시된 방법은 도 2의 로봇(200)에 의해 수행될 수 있다. 도 7은 정상 주행 상태의 로봇(200)에 의해 학습 프로파일을 구축하기 위한 동작들을 도시한다.
단계 S710에서, 로봇(200)은 자신의 현재 위치를 결정한다. 이러한 현재 위치의 결정은 통상적인 방법에 의해 수행될 수 있다.
단계 S720에서, 로봇(200)은 결정된 현재 위치를 복수의 영역의 대응하는 영역에 매핑한다.
단계 S730에서, 로봇(200)은 통신부(210)를 통해 현재 위치에 대한 통신 환경 정보를 획득한다. 통신 환경 정보는 현재 위치에서 스캔된 액세스 포인트들의 식별자들 및 수신 신호 강도들을 포함할 수 있다. 다른 실시 예에서, 통신 환경 정보는 현재 위치에서 수신되는 비콘 신호에 관한 정보 또는 가시광 통신 신호에 관한 정보를 더 포함할 수 있다. 한편, 로봇(200)은 센싱부(230)를 통해 현재 위치에서 측정된 온도 또는 습도 등을 포함하는 주변 환경 정보를 추가로 획득할 수도 있다. 단계 S730은 단계 S710 및 단계 S720 보다 먼저 수행될 수도 있고, 단계 S710 또는 단계 S720과 실질적으로 동시에 수행될 수도 있다.
단계 S740에서, 로봇(200)은 메모리(280)를 참조하여 대응하는 영역에 대한 학습 프로파일이 존재하는지 확인할 수 있다.
단계 S750에서, 대응하는 영역에 대한 학습 프로파일이 존재하지 않으면, 로봇(200)은 획득된 통신 환경 정보 및/또는 주변 환경 정보에 기초하여 대응하는 영역에 대한 학습 프로파일을 생성할 수 있다. 실시 예에서, 로봇(200)은 액세스 포인트들의 식별자들 및 수신 신호 강도들을 포함하는 학습 프로파일을 생성할 수 있다. 학습 프로파일은 액세스 포인트들 각각에 대한 수신 신호 강도들의 확률 맵을 포함할 수 있다.
단계 S760에서, 대응하는 영역에 대한 학습 프로파일이 존재하면, 로봇(200)은 획득된 통신 환경 정보 및/또는 주변 환경 정보에 기초하여 대응하는 영역에 대한 학습 프로파일을 갱신할 수 있다. 실시 예에서, 학습 프로파일을 갱신하는 것은 새로 획득된 통신 환경 정보 및/또는 주변 환경 정보에 따라 기존의 학습 프로파일의 확률 맵을 수정하는 것을 포함할 수 있다.
도 8은 본 발명의 일 실시 예에 따른 로봇의 위치를 인식하기 위한 방법의 동작을 도시한 흐름도이다. 도 8에 도시된 방법은 도 2의 로봇(200) 에 의해 수행될 수 있다. 도 8은 비정상 주행 상태의 로봇(200)이 자신의 위치를 인식하는 동작을 도시한다. 하지만, 일부 실시 예들에서, 도 8의 방법은 정상 주행 상태의 로봇(200)이 자신의 위치를 보정하기 위해 사용될 수도 있다.
단계 S810에서, 로봇(200)은 통신부(210)를 통해 현재 위치에 대한 통신 환경 정보를 획득한다. 통신 환경 정보는 현재 위치에서 스캔된 액세스 포인트들의 식별자들 및 수신 신호 강도들을 포함할 수 있다. 다른 실시 예에서, 통신 환경 정보는 현재 위치에서 수신되는 비콘 신호에 관한 정보 또는 가시광 통신 신호에 관한 정보를 더 포함할 수 있다. 한편, 로봇(200)은 센싱부(230)를 통해 현재 위치에서 측정된 온도 또는 습도 등을 포함하는 주변 환경 정보를 추가로 획득할 수도 있다.
단계 S820에서, 로봇(200)은 획득된 통신 환경 정보 및/또는 주변 환경 정보에 기초하여 현재 위치에 대한 환경 프로파일을 생성한다. 실시 예에서, 프로세서(270)는 액세스 포인트들의 식별자들 및 수신 신호 강도들을 포함하는 현재 위치에 대한 환경 프로파일을 생성할 수 있다.
단계 S830에서, 로봇(200)은 생성된 환경 프로파일을 메모리(280)에 저장된 복수의 학습 프로파일과 비교한다. 로봇(200)은 생성된 환경 프로파일을 복수의 학습 프로파일 각각과 순차적으로 비교함으로써 환경 프로파일과 각각의 학습 프로파일 간의 유사도를 결정할 수 있다. 실시 예에서, 로봇(200)은 환경 프로파일 내의 액세스 포인트들의 식별자들 및 수신 신호 강도들을 학습 프로파일의 확률 맵과 비교함으로써 환경 프로파일과 학습 프로파일 간의 유사도 점수를 산출할 수 있다.
단계 S840에서, 로봇(200)은 비교 결과에 기초하여 환경 프로파일에 대응하는 학습 프로파일을 결정한다. 로봇(200)은 결정된 유사도에 기초하여 환경 프로파일에 대응하는 학습 프로파일을 결정할 수 있다. 실시 예에서, 로봇(200)은 유사도 점수가 가장 높은 학습 프로파일을 환경 프로파일에 대응하는 학습 프로파일로 결정할 수 있다
단계 S850에서, 로봇(200)은 결정된 학습 프로파일과 연관된 영역을 자신의 현재 위치로서 결정한다. 실시 예에서, 프로세서(270)는 결정된 학습 프로파일과 연관된 영역의 중앙 지점을 로봇(200)의 현재 위치로 결정할 수 있다.
한편, 도 2를 다시 참조하면, 실시 예에서, 로봇의 위치를 인식하기 위한 로봇(200)은 인공 지능 및/또는 머신 러닝에 관한 동작을 수행하기 위해 러닝 프로세서(260)를 더 포함할 수 있다.
인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 머신 러닝(기계 학습, 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)이라 부르기도 하며, 딥 러닝은 머신 러닝의 일부이다. 이하에서, 머신 러닝은 딥 러닝을 포함하는 의미로 사용된다.
러닝 프로세서(260)는 학습 데이터를 이용하여 인공 신경망으로 구성된 모델을 학습시킬 수 있다. 여기서, 학습된 인공 신경망을 학습 모델이라 칭할 수 있다. 학습 모델은 학습 데이터가 아닌 새로운 입력 데이터에 대하여 결과 값을 추론해 내는데 사용될 수 있고, 추론된 값은 어떠한 동작을 수행하기 위한 판단의 기초로 이용될 수 있다.
러닝 프로세서(260)는 로봇의 현재 위치를 결정하는데 사용되는 다양한 파라미터들 중 하나 이상을 학습 데이터로서 사용하여 인공 신경망을 학습시킬 수 있다.
실시 예에서, 러닝 프로세서(260)는 공간(S)에 관한 정보, 로봇(200)의 현재 위치, 로봇(200)에 의해 획득된 환경 정보, 로봇(200)에 의해 생성되는 학습 프로파일 또는 환경 프로파일을 학습 데이터로 사용하여 인공 신경망을 학습시킬 수 있다.
실시 예예서, 러닝 프로세서(260)는 상기 인공 신경망에 기반한 학습 모델을 이용하여 로봇(200)에 의해 획득되는 통신 환경 정보 또는 주변 환경 정보, 또는 로봇(200)에 의해 생성되는 환경 프로파일 등을 분석함으로써 로봇(200)의 현재 위치를 결정하거나 보정할 수 있다.
러닝 프로세서(260)는 도 9의 AI 서버(920)의 러닝 프로세서(925)와 함께 인공 지능 및/또는 머신 러닝 프로세싱을 수행할 수 있다. 러닝 프로세서(260)는 로봇(200)에 통합되거나 구현된 메모리를 포함할 수 있다. 또는, 러닝 프로세서(260)는 메모리(280), 로봇(200)에 직접 결합된 외부 메모리 또는 외부 장치에서 유지되는 메모리를 사용하여 구현될 수도 있다.
도 9는 본 발명의 다른 실시 예에 따른 로봇 시스템을 도시한 도면이다. 실시 예에서, 로봇 시스템은 인공 지능 및/또는 머신 러닝이 가능한 AI 시스템으로서 구현될 수 있다. 도 9를 참조하면, 본 발명의 다른 실시 예에 따른 로봇 시스템은 AI 장치(910) 및 AI 서버(920)를 포함할 수 있다.
실시 예에서, AI 장치(910) 및 AI 서버(920)는 도 1 또는 도 2의 로봇(110, 200), 관제 서버(120) 및 단말기(130)로부터 도출되는 임의의 조합들로 구현될 수 있다.
AI 서버(920)는 머신 러닝 알고리즘을 이용하여 인공 신경망을 학습시키거나 학습된 인공 신경망을 이용하는 장치를 나타낼 수 있다. AI 서버(920)는 복수의 서버들로 구성되어 분산 처리를 수행할 수 있다. AI 서버(920)는 AI 장치(910)의 일부의 구성으로 포함되어, 인공 지능 및/또는 머신 러닝 프로세싱 중 적어도 일부를 함께 수행할 수도 있다.
AI 서버(920)는 통신부(921), 메모리(922), 러닝 프로세서(925) 및 프로세서(926) 등을 포함할 수 있다.
통신부(921)는 AI 장치(910) 등의 외부 장치와 데이터를 송수신할 수 있다.
메모리(922)는 모델 저장부(923)를 포함할 수 있다. 모델 저장부(923)는 러닝 프로세서(925)를 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 923a)을 저장할 수 있다.
러닝 프로세서(925)는 학습 데이터를 이용하여 인공 신경망(923a)을 학습시킬 수 있다. 학습 모델은 인공 신경망의 AI 서버(920)에 탑재된 상태에서 이용되거나, AI 장치(910) 등의 외부 장치에 탑재되어 이용될 수도 있다.
학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어(instruction)는 메모리(922)에 저장될 수 있다.
프로세서(926)는 학습 모델을 이용하여 새로운 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수 있다.
이상 설명된 본 발명에 따른 실시 예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
110: 로봇
120: 관제 서버
130: 단말기 140: 네트워크
210: 통신부 220: 입력부
230: 센싱부 240: 구동부
250: 출력부 260: 러닝 프로세서
270: 프로세서 280: 메모리
130: 단말기 140: 네트워크
210: 통신부 220: 입력부
230: 센싱부 240: 구동부
250: 출력부 260: 러닝 프로세서
270: 프로세서 280: 메모리
Claims (21)
- 로봇의 위치를 인식하기 위한 방법으로서,
액세스 포인트들의 식별자들 및 상기 액세스 포인트들로부터의 수신 신호 강도들을 포함하는 통신 환경 정보를 획득하는 단계;
획득된 통신 환경 정보에 기초하여, 상기 로봇의 현재 위치에 대한 환경 프로파일을 생성하는 단계;
생성된 환경 프로파일을 복수의 영역과 각각 연관된 복수의 학습 프로파일과 비교하는 단계;
상기 비교에 기초하여, 상기 환경 프로파일에 대응하는 학습 프로파일을 결정하는 단계; 및
결정된 학습 프로파일과 연관된 영역을 상기 로봇의 현재 위치로서 결정하는 단계를 포함하는,
로봇의 위치를 인식하기 위한 방법. - 제1항에 있어서,
상기 통신 환경 정보는 비콘 신호 또는 가시광 통신 신호 중 적어도 하나에 관한 정보를 더 포함하는,
로봇의 위치를 인식하기 위한 방법. - 제1항에 있어서,
상기 현재 위치에서의 주변 환경 정보를 획득하는 단계를 더 포함하고,
상기 환경 프로파일을 생성하는 단계는 획득된 주변 환경 정보에 추가로 기초하는,
로봇의 위치를 인식하기 위한 방법. - 제1항에 있어서,
상기 복수의 학습 프로파일 각각은 액세스 포인트들 각각에 대한 수신 신호 강도의 확률 맵을 포함하는,
로봇의 위치를 인식하기 위한 방법. - 제4항에 있어서,
상기 비교하는 단계는,
각각의 학습 프로파일에 대해:
상기 환경 프로파일 내의 액세스 포인트들이 상기 학습 프로파일 내의 액세스 포인트들과 매칭되는지를 결정하는 단계;
매칭되는 액세스 포인트들의 수신 신호 강도들을 상기 확률 맵과 연관시키는 단계; 및
상기 연관에 기초하여 상기 환경 프로파일과 상기 학습 프로파일 간의 유사도를 결정하는 단계를 포함하는,
로봇의 위치를 인식하기 위한 방법. - 제5항에 있어서,
상기 환경 프로파일에 대응하는 학습 프로파일을 결정하는 단계는,
가장 높은 유사도를 갖는 학습 프로파일을 상기 환경 프로파일에 대응하는 학습 프로파일로 결정하는 단계를 포함하는,
로봇의 위치를 인식하기 위한 방법. - 제1항에 있어서,
상기 결정된 학습 프로파일과 연관된 영역의 중앙 지점이 상기 로봇의 현재 위치로서 결정되는,
로봇의 위치를 인식하기 위한 방법. - 제1항에 있어서,
인공 신경망에 기반한 학습 모델을 이용하여 상기 획득된 통신 환경 정보 또는 상기 생성된 환경 프로파일을 분석함으로써, 상기 로봇의 현재 위치를 보정하는 단계를 더 포함하는,
로봇의 위치를 인식하기 위한 방법. - 로봇의 위치를 인식하기 위한 방법으로서,
상기 로봇의 현재 위치를 결정하는 단계;
결정된 현재 위치를 복수의 영역의 대응하는 영역에 매핑하는 단계;
액세스 포인트들의 식별자들 및 상기 액세스 포인트들로부터의 수신 신호 강도들을 포함하는 통신 환경 정보를 획득하는 단계; 및
획득된 통신 환경 정보에 기초하여 상기 대응하는 영역에 대한 학습 프로파일을 생성 또는 갱신하는 단계를 포함하는,
로봇의 위치를 인식하기 위한 방법. - 제9항에 있어서,
상기 통신 환경 정보는 비콘 신호 또는 가시광 통신 신호 중 적어도 하나에 관한 정보를 더 포함하는,
로봇의 위치를 인식하기 위한 방법. - 제9항에 있어서,
상기 학습 프로파일은 액세스 포인트들 각각에 대한 수신 신호 강도의 확률 맵을 포함하는,
로봇의 위치를 인식하기 위한 방법. - 제11항에 있어서,
상기 학습 프로파일을 생성 또는 갱신하는 단계는,
상기 확률 맵을 생성 또는 수정하는 단계를 포함하는,
로봇의 위치를 인식하기 위한 방법. - 제9항에 있어서,
상기 획득된 통신 환경 정보, 상기 결정된 현재 위치 및 상기 학습 프로파일을 학습 데이터로 사용하여 인공 신경망을 학습시키는 단계를 더 포함하는,
로봇의 위치를 인식하기 위한 방법. - 로봇으로서,
액세스 포인트들의 식별자들 및 상기 액세스 포인트들로부터의 수신 신호 강도들을 포함하는 통신 환경 정보를 획득하는 통신부; 및
적어도 하나의 프로세서를 포함하고,
상기 적어도 하나의 프로세서는,
획득된 통신 환경 정보에 기초하여, 상기 로봇의 현재 위치에 대한 환경 프로파일을 생성하고,
생성된 환경 프로파일을 복수의 영역과 각각 연관된 복수의 학습 프로파일과 비교하고,
상기 비교에 기초하여, 상기 환경 프로파일에 대응하는 학습 프로파일을 결정하며, 그리고
결정된 학습 프로파일과 연관된 영역을 상기 로봇의 현재 위치로서 결정하는,
로봇. - 제14항에 있어서,
상기 통신 환경 정보는 비콘 신호 또는 가시광 통신 신호 중 적어도 하나에 관한 정보를 더 포함하는,
로봇. - 제14항에 있어서,
상기 현재 위치에서의 주변 환경 정보를 획득하는 센싱부를 더 포함하고,
상기 적어도 하나의 프로세서는 획득된 주변 환경 정보에 추가로 기초하여 상기 환경 프로파일을 생성하는,
로봇. - 제14항에 있어서,
상기 복수의 학습 프로파일 각각은 액세스 포인트들 각각에 대한 수신 신호 강도의 확률 맵을 포함하는,
로봇. - 제17항에 있어서,
상기 적어도 하나의 프로세서는, 각각의 학습 프로파일에 대해:
상기 환경 프로파일 내의 액세스 포인트들이 상기 학습 프로파일 내의 액세스 포인트들과 매칭되는지를 결정하고;
매칭되는 액세스 포인트들의 수신 신호 강도들을 상기 확률 맵과 연관시키고; 그리고
상기 연관에 기초하여 상기 환경 프로파일과 상기 학습 프로파일 간의 유사도를 결정하는,
로봇. - 제18항에 있어서,
상기 적어도 하나의 프로세서는 가장 높은 유사도를 갖는 학습 프로파일을 상기 환경 프로파일에 대응하는 학습 프로파일로 결정하는,
로봇. - 제14항에 있어서,
상기 적어도 하나의 프로세서는 상기 결정된 학습 프로파일과 연관된 영역의 중앙 지점을 상기 현재 위치로서 결정하는,
로봇. - 프로그램 코드가 저장된 컴퓨터 판독가능한 저장 매체로서,
상기 프로그램 코드는, 실행되는 경우, 적어도 하나의 프로세서로 하여금, 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행하게 하는,
컴퓨터 판독가능한 저장 매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190096352A KR20190109325A (ko) | 2019-08-07 | 2019-08-07 | 로봇 및 로봇의 위치를 인식하기 위한 방법 |
US16/706,451 US11448741B2 (en) | 2019-08-07 | 2019-12-06 | Robot and method for localizing robot |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190096352A KR20190109325A (ko) | 2019-08-07 | 2019-08-07 | 로봇 및 로봇의 위치를 인식하기 위한 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190109325A true KR20190109325A (ko) | 2019-09-25 |
Family
ID=68068650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190096352A KR20190109325A (ko) | 2019-08-07 | 2019-08-07 | 로봇 및 로봇의 위치를 인식하기 위한 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11448741B2 (ko) |
KR (1) | KR20190109325A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021091053A1 (ko) * | 2019-11-07 | 2021-05-14 | 주식회사 휴머놀러지 | 영상의 유사도 분석을 이용한 위치 측정 시스템 및 그 방법 |
KR102382503B1 (ko) * | 2020-11-23 | 2022-04-04 | 박주영 | Vlc 조명을 이용한 관제 로봇의 제어 시스템 및 방법 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115699795A (zh) * | 2020-06-17 | 2023-02-03 | 三菱电机株式会社 | 设备机器控制系统、用户终端、设备机器控制方法以及程序 |
CN113573232B (zh) * | 2021-07-13 | 2024-04-19 | 深圳优地科技有限公司 | 机器人巷道定位方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170034069A (ko) | 2015-09-18 | 2017-03-28 | 삼성전자주식회사 | 이동 로봇의 위치 인식 장치 및 그 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105466421B (zh) * | 2015-12-16 | 2018-07-17 | 东南大学 | 面向可靠wifi连接的移动机器人自主巡航方法 |
US10664502B2 (en) * | 2017-05-05 | 2020-05-26 | Irobot Corporation | Methods, systems, and devices for mapping wireless communication signals for mobile robot guidance |
-
2019
- 2019-08-07 KR KR1020190096352A patent/KR20190109325A/ko active Search and Examination
- 2019-12-06 US US16/706,451 patent/US11448741B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170034069A (ko) | 2015-09-18 | 2017-03-28 | 삼성전자주식회사 | 이동 로봇의 위치 인식 장치 및 그 방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021091053A1 (ko) * | 2019-11-07 | 2021-05-14 | 주식회사 휴머놀러지 | 영상의 유사도 분석을 이용한 위치 측정 시스템 및 그 방법 |
KR102382503B1 (ko) * | 2020-11-23 | 2022-04-04 | 박주영 | Vlc 조명을 이용한 관제 로봇의 제어 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
US11448741B2 (en) | 2022-09-20 |
US20210041547A1 (en) | 2021-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11448741B2 (en) | Robot and method for localizing robot | |
US11755882B2 (en) | Method, apparatus and system for recommending location of robot charging station | |
US11858149B2 (en) | Localization of robot | |
US11050473B2 (en) | Method and apparatus for controlling antenna for inter-vehicle communication | |
KR20190106864A (ko) | 로봇을 충전하기 위한 방법 및 시스템 | |
US11138844B2 (en) | Artificial intelligence apparatus and method for detecting theft and tracing IoT device using same | |
KR102704815B1 (ko) | 아웃도어 영역에서 이종의 위치정보 획득 메커니즘을 적용하는 방법 및 이를 구현하는 로봇과 클라우드 서버 | |
US20200012293A1 (en) | Robot and method of providing guidance service by the robot | |
KR20190103101A (ko) | 로봇 시스템 및 그 작동방법 | |
US11281225B2 (en) | Driving method of robot | |
US11182922B2 (en) | AI apparatus and method for determining location of user | |
US20200020339A1 (en) | Artificial intelligence electronic device | |
US11800554B2 (en) | Method and apparatus for handling tasks in parallel | |
Parvaresh et al. | A continuous actor–critic deep Q-learning-enabled deployment of UAV base stations: Toward 6G small cells in the skies of smart cities | |
Kerdjidj et al. | Uncovering the potential of indoor localization: Role of deep and transfer learning | |
US11179844B2 (en) | Robot and method for localizing robot | |
US11383384B2 (en) | Robot and method for controlling robot | |
US20210205996A1 (en) | Localization of robot | |
US20210325521A1 (en) | An artificial intelligence apparatus for determining path of user and method for the same | |
US20210405148A1 (en) | An artificial intelligence apparatus for providing service based on path of user and method for the same | |
KR20230029385A (ko) | 배송 시스템 | |
KR20210044463A (ko) | 로봇 및 로봇에 의해 영역을 식별하기 위한 방법 | |
US11478697B2 (en) | Terminal connected to action robot and operating method thereof | |
US11592302B2 (en) | Electronic apparatus, mobile robot, and method for operating the mobile robot | |
KR20230114220A (ko) | 다중 신호 환경 데이터의 센서맵 이미지에 기초하여 구축된 인공지능 신경망 기반 측위 시스템을 이용한, 다중 로봇 통합 관제 서비스 제공 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
G15R | Request for early publication | ||
A201 | Request for examination |