KR20210078207A - 로봇 및 로봇 시스템 - Google Patents

로봇 및 로봇 시스템 Download PDF

Info

Publication number
KR20210078207A
KR20210078207A KR1020190170030A KR20190170030A KR20210078207A KR 20210078207 A KR20210078207 A KR 20210078207A KR 1020190170030 A KR1020190170030 A KR 1020190170030A KR 20190170030 A KR20190170030 A KR 20190170030A KR 20210078207 A KR20210078207 A KR 20210078207A
Authority
KR
South Korea
Prior art keywords
robot
landmark
space
processor
landmarks
Prior art date
Application number
KR1020190170030A
Other languages
English (en)
Inventor
정길수
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to KR1020190170030A priority Critical patent/KR20210078207A/ko
Priority to US17/096,735 priority patent/US20210187739A1/en
Publication of KR20210078207A publication Critical patent/KR20210078207A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

복수의 로봇이 연계하여 객체를 추적하는 방법 및 이러한 방법을 이용하여 끊김없는 인터랙션을 제공하는 로봇 및 로봇 시스템이 개시된다. 로봇은 5G 통신 환경에서 다른 전자 기기들 및 서버와 통신할 수 있다.

Description

로봇 및 로봇 시스템{ROBOT AND ROBOT SYSTEM}
본 발명은 랜드마크 정보에 기반하여 객체를 추적하는 로봇 및 로봇 시스템에 관한 것이다.
최근 일상 생활에서 편리하게 사용할 수 있는 로봇이 활발하게 개발되고 있다. 이와 같은 로봇은 가정, 학교 및 공공장소 등에서 사람과의 인터랙션을 통해 사람의 일상 생활을 돕는다. 로봇과 사람의 인터랙션을 위한 인터페이스 방식으로 음성 인식 기술이 널리 활용되고 있다.
한편, 홈 로봇처럼 이동하지 않는 고정형 로봇이거나 또는 이동 반경이 크지 않은 로봇의 경우, 로봇과 인터랙션하는 객체가 로봇의 동작 반경을 벗어나면 인터랙션을 수행하기 어렵다. 이동하는 객체에게 끊김없는 인터랙션을 제공할 수 있는 기술이 필요하다.
본 발명의 일 과제는 이동하는 객체에게 인터랙션을 제공하는 로봇을 제안하는 것이다.
본 발명의 일 과제는 복수의 로봇이 협업하여 객체를 추적하는 로봇 시스템을 제공하는 것이다.
본 발명의 일 과제는 라이다(LIDAR) 및 깊이 카메라를 이용하지 않고도 객체를 추적하는 방법을 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 달성하기 위하여, 일 실시예는 공간에 위치한 일 세트의 랜드마크에 기반하여 비주얼 맵을 생성하고, 비주얼 맵에 기반하여 이동하는 사용자의 위치를 찾는 로봇을 제공한다.
이를 위하여 로봇은, 로봇이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 저장하는 메모리 및 상기 메모리와 연결된 프로세서를 포함할 수 있다.
이를 위하여 로봇의 프로세서는, 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정하고, 객체의 이동에 따라, 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하고, 객체의 최종 위치에 대응하는 제 2 랜드마크를 적어도 하나의 다른 로봇에게 전송하도록 구성될 수 있다.
상기 과제를 달성하기 위하여, 일 실시예는 복수의 로봇이 이동하는 사용자의 위치에 대응하는 랜드마크 정보를 공유하는 로봇 시스템을 제공한다.
이를 위하여 제 1 로봇 및 제 2 로봇을 포함하는 로봇 시스템으로서,
제 1 로봇은 제 1 공간에 위치하고, 제 2 로봇은 제 2 공간에 위치하고, 제 1 로봇은, 제 1 공간에서 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정하고, 제 1 공간에서 객체의 이동에 따라, 제 1 공간에 존재하는 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하고, 제 1 공간에서 객체의 최종 위치에 대응하는 제 2 랜드마크를 제 2 로봇에게 전송하도록 구성되는 로봇 시스템을 제공한다.
상기 과제를 달성하기 위하여, 일 실시예는 객체를 발견할 가능성이 있거나 객체를 발견한 장소 및 사물을 랜드마크로 저장하고 랜드마크에 기초하여 객체를 추적하는 방법을 제공한다.
이를 위하여 로봇의 객체 추적 방법은 로봇이 위치한 공간에 존재하는 일 세트의 랜드마크를 획득하는 단계, 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정하는 단계, 객체의 이동에 따라, 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하는 단계 및 객체의 최종 위치에 대응하는 제 2 랜드마크를 적어도 하나의 다른 로봇에게 전송하는 단계를 포함할 수 있다.
본 발명에서 이루고자 하는 기술적 과제들의 해결 수단은 이상에서 언급한 해결 수단들로 제한되지 않으며, 언급하지 않은 또 다른 해결 수단들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
실시예에 의하면, 로봇과 인터랙션하는 객체는 객체의 위치에 관계없이 여러 대의 로봇을 마치 한 대의 로봇을 이용하듯이 끊김없이(seamless) 사용할 수 있다.
실시예에 의하면, 이동하는 객체를 추적하여 근접한 로봇을 자동으로 활성화하므로 사용자 편의가 제고된다.
실시예에 의하면 라이다 및 깊이 카메라와 같은 장비 없이도 객체의 위치를 효과적으로 추적할 수 있다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 본 발명이 속한 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일 실시예에 따른 로봇의 동작 환경의 예시도이다.
도 2는 일 실시예에 따른 로봇의 블록도이다.
도 3은 일 실시예에 따른 객체 추적 방법의 흐름도이다.
도 4는 일 실시예에 따른 객체 추적 방법을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 객체 추적 과정의 흐름도이다.
도 6은 일 실시예에 따른 로봇의 상태 전이를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 로봇 시스템의 객체 추적 과정의 신호 흐름도이다.
도 8은 일 실시예에 따른 비주얼 맵을 설명하기 위한 표이다.
도 9는 일 실시예에 따른 서버의 블록도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 동일하거나 유사한 구성요소에는 동일유사한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
도 1은 일 실시예에 따른 로봇의 동작 환경의 예시도이다.
로봇 동작 환경은 로봇(100), 단말(200), 서버(300) 및 이들을 연결하는 네트워크(400)를 포함할 수 있다. 도 1에 도시된 기기들 이외에 다양한 전자 기기들이 네트워크(400)를 통해 서로 연결되어 동작할 수 있다.
일 예에서 로봇(100)은 제 1 로봇(101) 및 제 2 로봇(102)을 포함하는 로봇 시스템으로 구성될 수 있다. 제 1 로봇(101) 및 제 2 로봇(102)은 예시적인 것이고 로봇 시스템은 하나 이상의 로봇(100)을 포함할 수 있다.
이하에서 로봇(100)은 제 1 로봇(101) 및 제 2 로봇(102)을 포괄한다. 제 1 로봇(101) 및 제 2 로봇(102)은 각각 로봇(100)과 동등한 구성을 포함하고 동등한 기능을 수행할 수 있다. 제 1 로봇(101) 및 제 2 로봇(102)은 로봇 시스템을 구성하여 협업할 수 있다.
로봇(100)은 객체와 인터랙션할 수 있다. 예를 들어 객체는 사용자를 포함한다. 예를 들어 객체는 다른 로봇(100)을 포함한다. 예를 들어 인터랙션은 사운드 및/또는 비전에 기반한 객체 인식, 시각적 및/또는 청각적 전달 수단에 의한 정보 제공 및 객체를 위한 서비스 제공을 포함한다. 예를 들어 인터랙션은 객체와의 대화, 객체를 위한 뉴스 브리핑 및 객체의 요청에 대한 응답을 포함한다.
객체는 로봇(100)과의 인터랙션이 진행되는 동안에 이동할 수 있다. 예를 들어 객체는 로봇(100)이 위치한 공간 내에서 또는 공간 밖으로 또는 제 1 공간에서 제 2 공간으로 이동할 수 있다.
로봇(100)은 효과적인 인터랙션을 위하여 객체를 추적할 수 있다. 일 예에서 로봇(100)이 머무는 공간에 존재하는 랜드마크에 기반하여 객체를 추적한다.
랜드마크는 공간을 특징짓는 사물 또는 장소를 의미한다. 일 예에서 로봇(100)은 랜드마크를 이용하여 객체의 위치를 특정할 수 있다.
로봇 시스템은 이동하는 객체를 추적하여 객체에게 끊김없는(seamless) 인터랙션을 제공할 수 있다. 예를 들어 제 1 공간에 위치한 제 1 로봇(101) 및 제 2 공간에 위치한 제 2 로봇(102)을 포함하는 로봇 시스템은 제 1 공간에서 제 2 공간으로 이동하는 객체를 위하여 끊김없는 인터랙션을 제공할 수 있다. 예를 들어 객체가 제 1 공간에 머무는 동안에는 제 1 로봇(101)이 인터랙션을 제공하고 객체가 제 1 공간을 떠나 제 2 공간에 진입하여 제 2 공간에 머무는 동안에는 제 2 로봇(102)이 계속해서 인터랙션을 제공할 수 있다.
로봇(100)은 스스로 보유한 능력에 의해 주어진 일을 자동으로 처리하거나 작동하는 기계를 의미할 수 있다. 특히, 환경을 인식하고 스스로 판단하여 동작을 수행하는 기능을 갖는 로봇을 지능형 로봇이라 칭할 수 있다.
로봇(100)은 사용 목적이나 분야에 따라 산업용, 의료용, 가정용, 군사용 등으로 분류할 수 있다.
로봇(100)은 액츄에이터 또는 모터를 포함하는 구동부를 구비하여 로봇 관절을 움직이는 등의 다양한 물리적 동작을 수행할 수 있다. 또한, 이동 가능한 로봇은 구동부에 휠, 브레이크, 프로펠러 등이 포함되어, 구동부를 통해 지상에서 주행하거나 공중에서 비행할 수 있다.
로봇(100)은 AI 기술이 적용되어, 안내 로봇, 운반 로봇, 청소 로봇, 웨어러블 로봇, 엔터테인먼트 로봇, 펫 로봇, 무인 비행 로봇, 홈 로봇 등으로 구현될 수 있다.
로봇(100)은 동작을 제어하기 위한 로봇 제어 모듈을 포함할 수 있고, 로봇 제어 모듈은 소프트웨어 모듈 또는 이를 하드웨어로 구현한 칩을 의미할 수 있다.
로봇(100)은 다양한 종류의 센서들로부터 획득한 센서 정보를 이용하여 로봇(100)의 상태 정보를 획득하거나, 주변 환경 및 객체를 검출(인식)하거나, 맵 데이터를 생성하거나, 이동 경로 및 주행 계획을 결정하거나, 사용자 상호작용에 대한 응답을 결정하거나, 동작을 결정할 수 있다.
여기서, 로봇(100)은 이동 경로 및 주행 계획을 결정하기 위하여, 라이다, 레이더, 카메라 중에서 적어도 하나 이상의 센서에서 획득한 센서 정보를 이용할 수 있다.
로봇(100)은 적어도 하나 이상의 인공 신경망으로 구성된 학습 모델을 이용하여 상기한 동작들을 수행할 수 있다. 예컨대, 로봇(100)은 학습 모델을 이용하여 주변 환경 및 객체를 인식할 수 있고, 인식된 주변 환경 정보 또는 객체 정보를 이용하여 동작을 결정할 수 있다. 여기서, 학습 모델은 로봇(100)에서 직접 학습되거나, 서버(300) 등의 외부 장치에서 학습된 것일 수 있다.
이때, 로봇(100)은 직접 학습 모델을 이용하여 결과를 생성하여 동작을 수행할 수도 있지만, 서버(300) 등의 외부 장치에 센서 정보를 전송하고 그에 따라 생성된 결과를 수신하여 동작을 수행할 수도 있다.
로봇(100)은 맵 데이터, 센서 정보로부터 검출한 객체 정보 또는 외부 장치로부터 획득한 객체 정보 중에서 적어도 하나를 이용하여 이동 경로와 주행 계획을 결정하고, 구동부를 제어하여 결정된 이동 경로와 주행 계획에 따라 로봇(100)을 주행시킬 수 있다.
맵 데이터에는 로봇(100)이 이동하는 공간에 배치된 다양한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 예컨대, 맵 데이터에는 벽, 문 등의 고정 객체들과 화분, 책상 등의 이동 가능한 객체들에 대한 객체 식별 정보가 포함될 수 있다. 그리고, 객체 식별 정보에는 명칭, 종류, 거리, 위치 등이 포함될 수 있다.
또한, 로봇(100)은 사용자의 제어/상호작용에 기초하여 구동부를 제어함으로써, 동작을 수행하거나 주행할 수 있다. 이때, 로봇(100)은 사용자의 동작이나 음성 발화에 따른 상호작용의 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 응답을 결정하여 동작을 수행할 수 있다.
여기서 인공 지능은 인공적인 지능 또는 이를 만들 수 있는 방법론을 연구하는 분야를 의미하며, 머신 러닝(기계 학습, 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)이라 부르기도 하며, 딥 러닝은 머신 러닝의 일부이다. 이하에서, 머신 러닝은 딥 러닝을 포함하는 의미로 사용된다.
단말(200)은 사용자 또는 운영자가 제어하는 전자 기기로서, 사용자는 단말(200)을 이용하여 로봇(100)의 제어를 위한 어플리케이션을 구동하거나 서버(300)를 포함한 외부 장치에 설치된 어플리케이션에 접속할 수 있다.
단말(200)은 네트워크(400)를 통해 로봇(100) 및/또는 서버(300)로부터 로봇(100)의 상태 정보 등을 수신할 수 있다.
단말(200)은 탑재된 어플리케이션을 통해 로봇(100)을 모니터링하는 기능을 사용자에게 제공할 수 있다.
단말(200)은 컴퓨팅 장치(미도시)의 기능을 수행할 수 있는 통신 단말을 포함할 수 있다. 단말(200)은 사용자가 조작하는 데스크 탑 컴퓨터, 스마트폰, 노트북, 태블릿 PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 단말(200)은 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 기기일 수 있다. 단말(200)은 상술한 내용에 제한되지 아니하며, 웹 브라우징이 가능한 단말은 제한 없이 사용될 수 있다.
서버(300)는 랜드마크 정보를 저장 및 제공하는 데이버테이스 서버를 포함할 수 있다. 서버(300)는 로봇(100)으로부터 객체의 최종 위치에 대한 정보를 수신하고, 서버(300)에 저장된 랜드마크 정보에 기반하여 객체의 잠재적 위치를 결정하고 이를 로봇(100)에게 제공하는 애플리케이션 서버를 포함할 수 있다.
서버(300)는 단말(200)에 설치된 애플리케이션 또는 웹 브라우저를 이용하여 로봇(100)을 모니터링할 수 있도록 하는 웹 서버 또는 애플리케이션 서버를 포함할 수 있다. 서버(300)는 각종 인공 지능 알고리즘을 적용하는데 필요한 빅데이터 및 로봇 제어에 관한 데이터를 제공하는 데이터베이스 서버일 수 있다.
네트워크(400)는 로봇(100)과 단말(200)과 서버(300)를 연결하는 역할을 수행할 수 있다. 이러한 네트워크(400)는 예컨대 LANs(local area networks), WANs(wide area networks), MANs(metropolitan area networks), ISDNs(integrated service digital networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 이에 한정되는 것은 아니다. 또한 네트워크(400)는 근거리 통신 및/또는 원거리 통신을 이용하여 정보를 송수신할 수 있다. 여기서 근거리 통신은 블루투스(Bluetooth), RFID(radio frequency identification), 적외선 통신(IrDA, infrared data association), UWB(ultra-wideband), ZigBee, Wi-Fi (wireless fidelity) 기술을 포함할 수 있고, 원거리 통신은 CDMA(code division multiple access), FDMA(frequency division multiple access), TDMA(time division multiple access), OFDMA(orthogonal frequency division multiple access), SC-FDMA(single carrier frequency division multiple access) 기술을 포함할 수 있다.
네트워크(400)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(400)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(400)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다. 더 나아가 네트워크(400)는 사물 등 분산된 구성 요소들 간에 정보를 주고 받아 처리하는 IoT(Internet of Things, 사물인터넷) 망 및/또는 5G 통신을 지원할 수 있다.
도 2는 일 실시예에 따른 로봇의 블록도이다.
로봇(100)은 통신부(110), 입력부(120), 러닝 프로세서(130), 센서(140), 출력부(150), 메모리(160) 및 프로세서(170)를 포함할 수 있다. 로봇(100)은 위에서 열거된 구성요소 보다 많거나, 또는 적은 구성요소를 가질 수 있다.
통신부(110)는 유무선 통신 기술을 이용하여 다른 AI 장치나 서버(300) 등의 외부 장치들과 데이터를 송수신할 수 있다. 예컨대, 통신부(110)는 외부 장치들과 센서 정보, 사용자 입력, 학습 모델, 제어 신호 등을 송수신할 수 있다. 여기서 AI 장치는 TV, 프로젝터, 휴대폰, 스마트폰, 데스크탑 컴퓨터, 노트북, 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 태블릿 PC, 웨어러블 장치, 셋톱박스(STB), DMB 수신기, 라디오, 세탁기, 냉장고, 디지털 사이니지, 로봇, 차량 등과 같은, 고정형 기기 또는 이동 가능한 기기 등으로 구현될 수 있다.
통신부(110)가 이용하는 통신 기술에는 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) 등이 있다. 통신부(110)는 다양한 방식의 통신을 위한 데이터의 송수신 기능을 수행하기 위한 송신기, 수신기, 트랜시버, 모뎀, 포트, 컨트롤러 및 안테나 등을 포함할 수 있다.
로봇(100)은 통신부(110)를 통해 적어도 하나의 다른 로봇(100)과 통신할 수 있다. 통신부(110)는 프로세서(170)의 제어 하에 메모리(160)에 저장된 일 세트의 랜드마크에 대한 정보를 적어도 하나의 다른 로봇(100)에게 전송할 수 있다. 통신부(110)는 프로세서(170)의 제어 하에 적어도 하나의 다른 로봇(100)으로부터 다른 세트의 랜드마크에 대한 정보를 수신할 수 있다.
통신부(110)는 프로세서(170)의 제어 하에 서버(300)와 통신할 수 있다. 예를 들어 로봇(100)은 통신부(110)를 통해 서버(300)로부터 사물 인식 모델을 수신할 수 있다.
통신부(110)는 프로세서(170)의 제어 하에 단말(200)과 통신할 수 있다. 예를 들어 로봇(100)은 통신부(110)를 통해 단말(200)로부터 제어 신호를 수신할 수 있다.
입력부(120)는 다양한 종류의 데이터를 획득할 수 있다.
이때, 입력부(120)는 영상 신호 입력을 위한 카메라(121), 오디오 신호를 수신하기 위한 마이크로폰(122), 사용자로부터 정보를 입력 받기 위한 키보드/키패드(미도시) 등을 포함할 수 있다. 여기서, 카메라(121)나 마이크로폰(122)을 센서로 취급하여, 카메라(121)나 마이크로폰(122)으로부터 획득한 신호를 센싱 데이터 또는 센서 정보라고 할 수도 있다.
로봇(100)은 마이크로폰(122)으로 주변에서 발생하는 사운드를 감지할 수 있다. 로봇(100)은 마이크로폰(122)으로 입력 사운드를 감지할 수 있다. 예를 들어 로봇(100)은 프로세서(170)의 제어 하에 마이크로폰(122)이 감지한 주변 사운드를 노이즈 제거 필터를 통해 전처리하여 입력 사운드를 획득할 수 있다.
로봇(100)은 프로세서(170)의 제어 하에 카메라(121)를 통해 주변 영상을 획득할 수 있다. 로봇(100)은 프로세서(170)의 제어 하에 카메라(121)로 촬영한 영상에 기반하여 랜드마크 정보를 생성할 수 있다. 프로세서(170)는 카메라(121)를 통해 획득한 영상으로부터 입력 특징점을 추출할 수 있다.
로봇(100)은 프로세서(170)의 제어 하에 카메라(121)로 촬영한 영상에 기반하여 사용자를 추적할 수 있다. 이를 위하여 로봇(100)은 메모리(160)에 저장된 랜드마크 정보를 이용할 수 있다.
로봇(100)은 프로세서(170)의 제어 하에 카메라(121)를 통해 공간 내의 특정 영역의 영상을 획득할 수 있다. 예를 들어 로봇(100)은 프로세서(170)의 제어 하에 카메라(121)를 통해 객체의 잠재적 위치의 영상을 획득할 수 있다. 예를 들어 로봇(100)은 프로세서(170)의 제어 하에 카메라(121)를 통해 공간을 스캔하고 스캔 영상을 생성할 수 있다. 예를 들어 로봇(100)은 프로세서(170)의 제어 하에 카메라(121)를 통해 객체의 위치에 대응하는 랜드마크의 영상을 획득할 수 있다.
입력부(120)는 모델 학습을 위한 학습 데이터 및 학습 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다. 입력부(120)는 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 프로세서(170) 또는 러닝 프로세서(130)는 입력 데이터에 대하여 전처리로서 입력 특징점(input feature)을 추출할 수 있다.
러닝 프로세서(130)는 학습 데이터를 이용하여 인공 신경망으로 구성된 모델을 학습시킬 수 있다. 여기서, 학습된 인공 신경망을 학습 모델이라 칭할 수 있다. 학습 모델은 학습 데이터가 아닌 새로운 입력 데이터에 대하여 결과 값을 추론해 내는데 사용될 수 있고, 추론된 값은 어떠한 동작을 수행하기 위한 판단의 기초로 이용될 수 있다. 예를 들어 학습 모델은 서버(200) 또는 로봇(100)에 탑재되어 사물을 인식하는 데에 이용될 수 있다. 예를 들어 학습 모델은 입력 영상으로부터 사물을 인식하는 사물 인식 모델을 포함할 수 있다. 프로세서(170)는 사물 인식 모델을 이용하여 인식한 사물 정보에 기초하여 랜드마크 정보를 생성할 수 있다.
이때, 러닝 프로세서(130)는 서버(300)의 러닝 프로세서(320)와 함께 AI 프로세싱을 수행할 수 있다.
러닝 프로세서(130)는 로봇(100)에 통합되거나 구현된 메모리를 포함할 수 있다. 또는, 러닝 프로세서(130)는 메모리(160), 로봇(100)에 직접 결합된 외부 메모리 또는 외부 장치에서 유지되는 메모리를 사용하여 구현될 수도 있다.
센서(140)는 다양한 센서들을 이용하여 로봇(100) 내부 정보, 로봇(100)의 주변 환경 정보 및 사용자 정보 중 적어도 하나를 획득할 수 있다. 센서(140)는 하나 이상의 센서를 포함할 수 있다.
이때, 센서(140)는 이미지 센서, 근접 센서, 조도 센서, 가속도 센서, 자기 센서, 자이로 센서, 관성 센서, RGB 센서, IR 센서, 지문 인식 센서, 초음파 센서, 광 센서, 마이크로폰, 라이다 및 레이더 등을 포함할 수 있다.
한편, 센서(140)는 모델 학습을 위한 학습 데이터 및 학습 모델을 이용하여 출력을 획득할 때 사용될 입력 데이터 등을 획득할 수 있다. 센서(140)는 가공되지 않은 입력 데이터를 획득할 수도 있으며, 이 경우 프로세서(170) 또는 러닝 프로세서(130)는 입력 데이터에 대하여 전처리로서 입력 특징점(input feature)을 추출할 수 있다.
출력부(150)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시킬 수 있다.
이때, 출력부(150)에는 시각 정보를 출력하는 디스플레이(151), 청각 정보를 출력하는 스피커(152), 촉각 정보를 출력하는 햅틱 모듈(미도시) 등이 포함될 수 있다.
디스플레이(151)는 프로세서(170)의 제어 하에 메시지를 출력할 수 있다. 스피커(152)는 프로세서(170)의 제어 하에 음성 메시지 또는 알림음을 출력할 수 있다.
메모리(160)는 로봇(100)의 다양한 기능을 지원하는 데이터를 저장할 수 있다. 예컨대, 메모리(160)는 입력부(120)에서 획득한 입력 데이터, 센서(140)에서 획득한 센서 정보, 학습 데이터, 학습 모델, 학습 히스토리 등을 저장할 수 있다.
메모리(160)는 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 저장할 수 있다. 일 세트의 랜드마크에 대한 정보는 객체의 위치를 추적하는 데에 이용될 수 있다. 메모리(160)에 저장된 일 세트의 랜드마트에 대한 정보는 프로세서(170)의 제어 하에 생성 및 갱신될 수 있다. 또한, 메모리(160)는 일 세트의 랜드마크에 대한 정보에 기반하여 생성된 비주얼 맵을 저장할 수 있다.
메모리(160)는 사물 인식 모델을 저장할 수 있다. 메모리(160)에 저장된 사물 인식 모델은 프로세서(170)의 제어 하에 영상으로부터 랜드마크를 인식하는 데에 이용될 수 있다. 프로세서(170)는 통신부(110)를 통해 서버(300)로부터 사물 인식 모델을 수신하여 메모리(160)에 저장할 수 있다. 프로세서(170)는 통신부(110)를 통해 서버(300)로부터 사물 인식 모델에 대한 업데이트 정보를 수신하고 수신된 업데이트 정보를 메모리(160)에 저장된 사물 인식 모델에 반영할 수 있다.
그밖에 메모리(160)는 로봇(100)이 위치한 공간의 맵 데이터를 저장할 수 있다.
메모리(160)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 이에 한정되는 것은 아니다. 이러한 메모리(160)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD, CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다.
프로세서(170)는 일종의 중앙처리장치로서 메모리(160)에 탑재된 제어 소프트웨어를 구동하여 로봇(100)의 동작을 제어할 수 있다. 프로세서(170)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 프로세서(170)는 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로서, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 이에 한정되는 것은 아니다. 프로세서(170)는 하나 이상의 프로세서를 포함할 수 있다.
프로세서(170)는 데이터 분석 알고리즘 또는 머신 러닝 알고리즘을 사용하여 결정되거나 생성된 정보에 기초하여, 로봇(100)의 적어도 하나의 실행 가능한 동작을 결정할 수 있다. 그리고, 프로세서(170)는 로봇(100)의 구성 요소들을 제어하여 결정된 동작을 수행할 수 있다.
이를 위해, 프로세서(170)는 러닝 프로세서(130) 또는 메모리(160)의 데이터를 요청, 검색, 수신 또는 활용할 수 있고, 상기 적어도 하나의 실행 가능한 동작 중 예측되는 동작이나, 바람직한 것으로 판단되는 동작을 실행하도록 로봇(100)의 구성 요소들을 제어할 수 있다.
이때, 프로세서(170)는 결정된 동작을 수행하기 위하여 외부 장치의 연계가 필요한 경우, 해당 외부 장치를 제어하기 위한 제어 신호를 생성하고, 생성한 제어 신호를 해당 외부 장치에 전송할 수 있다.
프로세서(170)는 사용자 입력에 대하여 의도 정보를 획득하고, 획득한 의도 정보에 기초하여 사용자의 요구 사항을 결정할 수 있다.
이때, 프로세서(170)는 음성 입력을 문자열로 변환하기 위한 STT(Speech To Text) 엔진 또는 자연어의 의도 정보를 획득하기 위한 자연어 처리(NLP: Natural Language Processing) 엔진 중에서 적어도 하나 이상을 이용하여, 사용자 입력에 상응하는 의도 정보를 획득할 수 있다.
이때, STT 엔진 또는 NLP 엔진 중에서 적어도 하나 이상은 적어도 일부가 머신 러닝 알고리즘에 따라 학습된 인공 신경망으로 구성될 수 있다. 그리고, STT 엔진 또는 NLP 엔진 중에서 적어도 하나 이상은 러닝 프로세서(130)에 의해 학습된 것이나, 서버(300)의 러닝 프로세서(320)에 의해 학습된 것이거나, 또는 이들의 분산 처리에 의해 학습된 것일 수 있다.
프로세서(170)는 로봇(100)의 동작 내용이나 동작에 대한 사용자의 피드백 등을 포함하는 이력 정보를 수집하여 메모리(160) 또는 러닝 프로세서(130)에 저장하거나, 서버(300) 등의 외부 장치에 전송할 수 있다. 수집된 이력 정보는 학습 모델을 갱신하는데 이용될 수 있다.
프로세서(170)는 메모리(160)에 저장된 응용 프로그램을 구동하기 위하여, 로봇(100)의 구성 요소들 중 적어도 일부를 제어할 수 있다. 나아가, 프로세서(170)는 상기 응용 프로그램의 구동을 위하여, 로봇(100)에 포함된 구성 요소들 중 둘 이상을 서로 조합하여 동작시킬 수 있다.
프로세서(170)는 메모리(160)와 연결된다. 여기서 연결되었다는 것은 제어 신호 및 데이터의 송수신이 가능한 물리적/논리적 경로가 존재한다는 것을 의미한다.
프로세서(170)는, 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정하고, 객체의 이동에 따라 메모리(160)에 저장된 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하고, 객체의 최종 위치에 대응하는 제 2 랜드마크를 적어도 하나의 다른 로봇에게 전송하도록 구성될 수 있다. 여기서 프로세서(170)가 어떠한 동작을 수행하도록 구성된다는 것의 의미는, 프로세서(170)가 메모리(160)에 저장된 일련의 명령어들을 실행하여 해당 동작을 수행하도록 설정된다는 것을 의미한다.
프로세서(170)는 객체의 잠재적 위치를 향하여 로봇의 시야를 지향하도록 더 구성될 수 있다.
예를 들어 객체의 잠재적 위치는 적어도 하나의 다른 로봇 중 하나가 위치한 공간에서 객체가 사라진 위치에 대응하는 제 3 랜드마크이고, 프로세서(170)는, 제 3 랜드마크에 기반하여 객체의 최초 위치를 결정하도록 더 구성될 수 있다.
프로세서(170)는 적어도 하나의 다른 로봇 중 하나가 위치한 공간에서 객체가 사라진 위치에 대응하는 제 3 랜드마크가 메모리(160)에 저장된 일 세트의 랜드마크 중 하나에 해당되는 지 여부를 판단하도록 더 구성될 수 있다.
예를 들어 객체의 잠재적 위치는 객체로부터 유발된 입력 사운드에 대한 음원 위치 추정으로 획득한 음원 위치이고, 프로세서(170)는, 이와 같은 음원 위치에 기반하여 객체의 최초 위치를 결정하도록 더 구성될 수 있다.
프로세서(170)는, 객체의 최초 위치에 대응하는 랜드마크에 기반하여 일 세트의 랜드마크에 대한 정보를 갱신하도록 더 구성될 수 있다.
프로세서(170)는, 제 1 랜드마크를 결정하기 위하여, 객체의 이동에 따라 로봇의 시야를 이동하도록 더 구성될 수 있다.
프로세서(170)는, 제 1 랜드마크를 결정하기 위하여, 객체의 이동에 따라 변화하는 객체의 현재 위치에 대응하는 일련의 상기 제 1 랜드마크를 결정하도록 더 구성될 수 있다.
프로세서(170)는, 제 2 랜드마크를 적어도 하나의 다른 로봇(100)에게 전송하기 위하여, 객체가 로봇(100)이 위치한 공간에서 사라지기 직전의 객체의 현재 위치에 대응하는 제 1 랜드마크를 최종 위치에 대응하는 제 2 랜드마크로 결정하도록 더 구성될 수 있다.
프로세서(170)는, 일 세트의 랜드마크에 대한 정보에 기반하여 로봇(100) 및 적어도 하나의 다른 로봇(100) 간의 공간적 연결을 나타내는 비주얼 맵을 생성하도록 더 구성될 수 있다.
프로세서(170)는, 로봇의 위치 변화에 따라 또는 주기적으로 비주얼 맵을 갱신하도록 더 구성될 수 있다.
도 3은 일 실시예에 따른 객체 추적 방법의 흐름도이다.
실시예에 따른 객체 추적 방법은 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크를 획득하는 단계(510), 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정하는 단계(520), 객체의 이동에 따라, 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하는 단계(530) 및 객체의 최종 위치에 대응하는 제 2 랜드마크를 적어도 하나의 다른 로봇(100)에게 전송하는 단계(550)을 포함할 수 있다.
단계(510)에서 프로세서(170)는 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크를 획득할 수 있다.
일 예에서 메모리(160)는 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 저장할 수 있다. 프로세서(170)는 프로세서(170)와 연결된 메모리(160)에 접근하여 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 획득할 수 있다.
일 예에서 서버(300)는 랜드마크에 대한 정보를 저장하고, 로봇(100)의 요청에 대한 응답으로 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 전송할 수 있다. 프로세서(170)는 통신부(110)를 통해 서버(300)로부터 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 획득할 수 있다.
랜드마크는 공간을 특징짓는 사물 또는 장소를 의미한다. 예를 들어 랜드마크는 공간에 위치한 사물(예를 들어 가구, 가전제품, 액자, 카페트, 전등 및 화초 등) 및 공간을 구성하는 구조물(문, 창문, 기둥, 계단 및 벽난로 등)을 포함한다. 일 세트의 랜드마크는 적어도 하나의 랜드마크를 포함할 수 있다.
랜드마크는 객체의 위치에 대응하여 결정될 수 있다. 특정 위치에 대응하는 랜드마크는 특정 위치에 또는 특정 위치에 근접하여 랜드마크가 위치한다는 것을 의미한다.
일 예에서 객체의 현재 위치에 대응하는 랜드마크는 객체가 현재 위치한 곳에 있는 랜드마크를 의미할 수 있다. 예를 들어 사용자가 의자에 앉아있는 경우 사용자의 현재 위치에 대응하는 랜드마크는 의자로 결정될 수 있다. 일 예에서 객체의 현재 위치에 대응하는 랜드마크는 객체가 현재 위치한 곳에 근접하여 위치한 랜드마크를 의미할 수 있다. 예를 들어 사용자가 냉장고 문을 여는 경우 사용자의 현재 위치에 대응하는 랜드마크는 냉장고로 결정될 수 있다. 일 예에서 객체의 현재 위치에 대응하는 랜드마크는 하나 이상의 랜드마크를 포함할 수 있다. 예를 들어 사용자가 벽에 걸린 액자 앞에 서 있고 액자 아래에 화분이 있는 경우, 사용자의 현재 위치에 대응하는 랜드마크는 벽, 액자 및 화분을 포함할 수 있다. 로봇(100)은 객체의 현재 위치에 대응하는 랜드마크에 기반하여 객체를 탐색할 수 있다.
일 예에서 객체의 현재 위치에 대응하는 랜드마크가 복수 개인 경우에, 프로세서(170)는 도 8을 참조하여 랜드마크에서 객체를 발견한 횟수에 기반하여 하나의 랜드마크를 선택할 수 있다. 예를 들어 랜드마크에서 객체를 발견한 횟수는 해당 랜드마크가 과거에 객체의 최초 위치로 결정된 횟수를 누적한 값으로 결정될 수 있다. 일 예에서 프로세서(170)는 복수 개의 랜드마크 중에서 랜드마크에서 객체를 발견한 횟수가 가장 큰 랜드마크를 객체의 현재 위치에 대응하는 랜드마크로 결정할 수 있다.
단계(520)에서 프로세서(170)는 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정할 수 있다.
객체의 잠재적 위치는 객체가 잠재적으로 나타날 가능성이 있는 예상 위치를 의미한다. 객체의 최초 위치는 로봇(100)이 위치한 공간에서 최초로 객체를 발견한 위치를 의미한다.
일 예에서 객체가 다른 로봇(100)이 위치한 제 3 공간에서 로봇(100)이 위치한 공간으로 이동한 경우, 객체의 잠재적 위치는 제 3 공간에서의 객체의 마지막 위치에 기반하여 결정될 수 있다.
프로세서(170)는 통신부(110)를 통해 제 3 공간에 위치한 다른 로봇(100)으로부터 제 3 공간에서 객체가 사라진 위치에 대응하는 제 3 랜드마크에 대한 정보를 수신할 수 있다.
예를 들어, 객체의 잠재적 위치는 적어도 하나의 다른 로봇(100) 중 하나가 위치한 제 3 공간에서 객체가 사라진 위치에 대응하는 제 3 랜드마크이고, 프로세서(170)는 제 3 랜드마크에 기반하여 객체의 최초 위치를 결정하도록 구성될 수 있다.
추가적으로 단계(520)에서 프로세서(170)는 제 3 랜드마크가 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크 중 하나에 해당하는 지 여부를 판단할 수 있다. 다시 말하면, 프로세서(170)는 제 3 랜드마크가 제 3 공간과 로봇(100)이 위치한 공간에 대한 공통 랜드마크에 해당하는 지를 판단할 수 있다.
일 예에서 객체가 다른 로봇(100)이 위치한 제 3 공간에서 로봇(100)이 위치한 공간으로 이동한 경우, 객체의 잠재적 위치는 객체로부터 유발된 입력 사운드에 대한 음원 위치 추정을 이용하여 결정된 음원 위치에 기반하여 결정될 수 있다.
예를 들어, 객체의 잠재적 위치는 객체로부터 유발된 입력 사운드에 대한 음원 위치 추정으로 획득한 음원 위치이고, 프로세서(170)는 이와 같은 음원 위치에 기반하여 객체의 최초 위치를 결정하도록 구성될 수 있다.
단계(520)은 객체의 잠재적 위치를 향하여 로봇의 시야를 지향하는 단계를 포함할 수 있다. 단계(520)에서 프로세서(170)는 객체의 잠재적 위치를 향해 로봇(100)의 시야를 지향할 수 있다. 여기서 특정 위치를 향해 로봇(100)의 시야를 지향한다는 것은, 카메라(121)의 방향을 조정하는 모터를 제어하여 해당 특정 위치를 향해 카메라(121)의 방향을 설정하는 것을 의미한다.
단계(520)에서 프로세서(170)는 객체의 잠재적 위치를 기준으로 로봇(100)의 시야를 이동하면서 객체를 탐색할 수 있다. 예를 들어 프로세서(170)는 구동부를 제어하여 로봇(100)의 몸체를 회전이동하면서 잠재적 위치의 주위를 카메라(121)로 스캐닝할 수 있다. 프로세서(170)는 잠재적 위치의 주위를 스캐닝하여 획득한 영상에 기반하여 객체를 탐색하고, 객체를 발견한 경우 객체가 발견된 위치를 객체의 최초 위치로 결정한다.
단계(520)에서 프로세서(170)는 객체의 최초 위치에 대응하는 랜드마크에 기반하여 단계(510)에서 획득한 일 세트의 랜드마크에 대한 정보를 갱신할 수 있다. 예를 들어 프로세서(170)는 객체의 최초 위치에 대응하는 랜드마크에 대한 정보를 메모리(160)에 저장된 일 세트의 랜드마크에 대한 정보에 추가할 수 있다. 예를 들어 프로세서(170)는 객체의 최초 위치에 대응하는 랜드마크의 랜드마크에서 사용자를 발견한 횟수를 갱신할 수 있다.
단계(530)에서 프로세서(170)는 객체의 이동에 따라, 단계(510)에서 획득한 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정할 수 있다.
단계(530)에서 프로세서(170)는 로봇(100)이 위치한 공간에서 객체의 이동을 추적하고, 단계(510)에서 획득한 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정할 수 있다.
예를 들어 프로세서(170)는 카메라(121)를 통해 이동하는 객체를 촬영한 영상에서 랜드마크를 추출하고, 추출된 랜드마크를 제 1 랜드마크로 결정할 수 있다.
예를 들어 프로세서(170)는 단계(510)에서 획득한 일 세트의 랜드마크의 각 랜드마크와 제 1 랜드마크를 비교하고, 비교의 결과에 따라 제1 랜드마크가 일 세트의 랜드마크에 포함되는 지 여부를 판단하고, 포함되어 있지 않은 경우 제 1 랜드마크를 일 세트의 랜드마크에 추가할 수 있다. 예를 들어 프로세서(170)는 제 1 랜드마크에 대한 정보를 메모리(160)에 추가적으로 저장할 수 있다.
단계(530)은 객체의 이동에 따라 로봇의 시야를 이동하는 단계를 포함할 수 있다. 단계(530)에서 프로세서(170)는 제 1 랜드마크를 결정하기 위하여, 객체의 이동에 따라 로봇(100)의 시야를 이동하도록 구성될 수 있다. 예를 들어 프로세서(170)는 구동부를 제어하여 로봇(100)의 몸체를 회전이동하면서 촬영한 객체의 영상에 기반하여 객체를 추적할 수 있다.
단계(530)에서 프로세서(170)는 제 1 랜드마크를 결정하기 위하여, 객체의 이동에 따라 변화하는 객체의 현재 위치에 대응하는 일련의 제 1 랜드마크를 결정할 수 있다. 이동하는 객체의 현재 위치는 연속적으로 변화하여 객체의 궤적을 형성한다. 일련의 제 1 랜드마크는 객체의 궤적에 대응하는 랜드마크의 리스트이다.
단계(550)에서 프로세서(170)는 객체의 최종 위치에 대응하는 제 2 랜드마크를 적어도 하나의 다른 로봇(100)에게 전송할 수 있다.
단계(550)은 객체가 로봇(100)이 위치한 공간에서 사라지기 직전의 객체의 현재 위치에 대응하는 제 1 랜드마크를 객체의 최종 위치에 대응하는 제 2 랜드마크로 결정하는 단계를 포함할 수 있다. 단계(550)에서 프로세서(170)는 객체가 로봇(100)이 위치한 공간에서 사라지기 직전의 객체의 현재 위치에 대응하는 제 1 랜드마크를 최종 위치에 대응하는 제 2 랜드마크로 결정할 수 있다.
구체적으로 단계(550)에서 프로세서(170)는 로봇(100)이 위치한 공간에서 객체가 사라지기 직전에 단계(530)에서 결정된 로봇(100)의 현재 위치에 대응하는 제 1 랜드마크를 로봇(100)의 최종 위치에 대응하는 제 2 랜드마크로 결정할 수 있다.
단계(550)에서 프로세서(170)는 통신부(110)를 통해 로봇(100)의 최종 위치에 대응하는 제 2 랜드마크를 적어도 하나의 다른 로봇(100)에게 전송할 수 있다. 예를 들어 적어도 하나의 다른 로봇(100)은 로봇(100)과는 다른 제 3 공간에 위치할 수 있다.
일 예에서 프로세서(170)는 사용자가 로봇(100)의 시야에서 사라졌음을 알리는 메시지를 통신부(110)를 통해 적어도 하나의 다른 로봇(100)에게 전송할 수 있다. 이와 같은 메시지를 수신한 적어도 하나의 다른 로봇(100)은 자신이 위치한 제 3 공간에서 객체를 탐색한다. 예를 들어 적어도 하나의 다른 로봇(100)은 제 2 랜드마크를 객체의 잠재적 위치로 하여 자신이 위치한 제 3 공간에서의 객체의 최초 위치를 결정할 수 있다.
일 예에서 단계(510) 내지 단계(550)에서 로봇(100)은 제 1 로봇(101)일 수 있다. 일 예에서 단계(550)에서 적어도 하나의 다른 로봇(100)은 제 2 로봇(102)일 수 있다. 제 2 로봇(102)은 제 1 로봇(101)과 상이한 적어도 하나의 제 2 로봇(102)을 포함할 수 있다.
추가적으로 실시예에 따른 객체 추적 방법은, 프로세서(170)에 의해 단계(510)에서 획득한 일 세트의 랜드마크에 대한 정보에 기반하여 로봇(100) 및 적어도 하나의 다른 로봇(100) 간의 공간적 연결을 나타내는 비주얼 맵을 생성하는 단계를 더 포함할 수 있다.
로봇(100)이 공간에 최초로 설치되면 로봇(100)은 프로세서(170)의 제어 하에 카메라(121)를 이용하여 주변의 랜드마크 정보를 스캔한다. 프로세서(170)는 스캔한 정보를 기반으로 메모리(160)에 저장된 사물 인식 모델을 이용하여 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 추출할 수 있다.
로봇(100)은 인공 신경망에 기반한 사물 인식 모델을 메모리(160)에 저장할 수 있다. 예를 들어 사물 인식 모델은 딥러닝 기반의 객체 검출 기법을 구현한 모델로서 YoLO(You only Look Once), SSD(Single Shot Detector), Tensorflow Object Detection 및 CNN(Convolutional Neural Network) 등을 이용할 수 있다. 로봇(100)은 메모리(160)에 저장된 사물 인식 모델을 이용하여 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 생성할 수 있다.
로봇(100)은 추출한 일 세트의 랜드마크에 대한 정보를 통신가능한 적어도 하나의 다른 로봇(100)에게 전송(예를 들어 브로드캐스팅)하여 공유할 수 있다. 적어도 하나의 다른 로봇(100)은 일 세트의 랜드마크에 대한 정보를 수신하고, 수신된 일 세트의 랜드마크와 자신의 메모리(160)에 저장된 다른 세트의 랜드마크를 비교하여 공통 랜드마크를 결정할 수 있다. 적어도 하나의 다른 로봇(100)은 공통 랜드마크에 대한 정보를 통신가능한 모든 로봇(100)에게 전송할 수 있다.
프로세서(170)는 로봇(100)의 위치 변화에 따라 또는 주기적으로 비주얼 맵을 갱신할 수 있다. 이를 위하여 프로세서(170)는 로봇(100)의 위치 변화에 따라 또는 주기적으로 카메라(121)를 이용하여 주변의 랜드마크 정보를 스캔할 수 있다. 비주얼 맵에 대하여는 도 8을 참조하여 후술한다.
도 4는 일 실시예에 따른 객체 추적 방법을 설명하기 위한 도면이다.
도 4는 여러 대의 로봇(100)을 사용 중인 집을 예시적으로 도시한다. 예시적인 집은 1층에 욕실1(S1), 서재(S2), 침실1(S3), 거실(S4) 및 주방(S5)을 가지고, 2층에 침실2(S6), 욕실2(S7) 및 침실3(S8)을 가진다. 예를 들어 로봇(R1)은 거실(S4)에, 로봇(R2)은 서재(S2)에, 로봇(R3)은 주방(S5)에, 로봇(R4)은 침실2(S6)에, 로봇(R5)은 침실3(S8)에 위치한다고 가정한다.
여기서 로봇(R1), 로봇(R2), 로봇(R3), 로봇(R4) 및 로봇(R5)은 각각 로봇(100)과 동등한 구성을 포함하고, 동등한 동작 및 기능을 수행할 수 있다. 로봇(R1), 로봇(R2), 로봇(R3), 로봇(R4) 및 로봇(R5)은 예시적인 것이며 실시예에 따른 객체 추적 방법은 더 적거나 많은 수의 로봇에 의해 수행될 수 있다.
거실(S4)과 주방(S5)은 공통 랜드마크(예를 들어, TV)가 있고, 서재(S2)와 거실(S4)은 가까워서 서로 소리가 들리는 위치라고 전제한다. 또한, 2층에서는 1층에서 나는 소리가 들리지 않는다고 전제한다.
이하에서 도 4를 참조하여 실시예에 따른 객체 추적 과정을 도 5 에서 예를 들어 살펴본다.
도 5는 일 실시예에 따른 객체 추적 과정의 흐름도이다.
예시적으로 객체는 사용자이고, 단계(610)에서 사용자는 도 4를 참조하여 거실(S4)에서 로봇(R1)과 인터랙션(예를 들어 로봇(R1)에 의한 뉴스 브리핑) 중이라고 가정한다.
단계(620)에서 사용자는 거실(S4)에서 로봇(R1)과 인터랙션하는 동안 움직인다. 로봇(R1)은 도 3을 참조하여 단계(530)에 따른 동작을 수행한다. 다시 말하면, 로봇(R1)은 도 3을 참조하여 전술한대로 단계(530)에서 객체의 이동에 따라, 거실(S4)에 존재하는 일 세트의 랜드마크 중에서 사용자의 현재 위치에 대응하는 제 1 랜드마크를 결정할 수 있다.
로봇(R1)은 거실(S4)에 사용자가 머무는 동안 반복해서 단계(620)을 수행할 수 있다. 사용자가 거실(S4)에서 사라진 경우 로봇(R1)은 단계(630)을 수행한다.
단계(630)에서 사용자는 거실(S4) 밖으로 이동하여 로봇(R1)의 시야에서 사라진다. 로봇(R1)은 도 3을 참조하여 단계(550)에 따른 동작을 수행한다. 즉, 로봇(R1)은 거실(S4)에서 사용자의 최종 위치에 대응하는 제 2 랜드마크(예를 들어, TV)를 다른 로봇들(R2, R3, R4 및 R5)에게 전송할 수 있다.
단계(640)에서 로봇(R1)은 사용자와의 인터랙션을 중지(suspend)할 수 있다. 모든 로봇(R1, R2, R3, R4 및 R5)은 각 로봇이 위치한 공간에서 사용자 탐색을 시작한다.
단계(650)에서 모든 로봇(R1, R2, R3, R4 및 R5)은 사용자 탐색을 수행한다. 예를 들어 모든 로봇(R1, R2, R3, R4 및 R5)은 사전설정된 탐색 시간 동안에 사용자 탐색을 수행할 수 있다. 예를 들어 사전설정된 탐색 시간은 초기값, 최대값, 최소값을 설정하고 사용자가 발견된 시간에 따라 증감할 수 있다.
모든 로봇(R1, R2, R3, R4 및 R5)은 사용자가 발견될 때까지 또는 사전설정된 탐색 시간이 만료되기 전까지 단계(650)을 수행할 수 있다. 단계(650)에서 사용자 탐색에 성공한 경우 단계(660)으로 이동한다. 단계(650) 및 단계(660)은 도 3을 참조하여 단계(520)에 포함될 수 있다.
이를테면, 단계(650) 및 단계(660)에서, 도 3을 참조하여 단계(520)에 따라 모든 로봇(R1, R2, R3, R4 및 R5)은 사용자의 잠재적 위치에 기반하여 각 로봇이 위치한 공간에서 사용자의 최초 위치를 결정할 수 있다.
일 예에서 단계(650)에서 모든 로봇(R1, R2, R3, R4 및 R5)은 중 일부는 로봇(R1)으로부터 수신한 거실(S4)에서 사용자의 최종 위치에 대응하는 제 2 랜드마크를 사용자의 잠재적 위치로 하여 사용자를 탐색할 수 있다.
예를 들어, 주방(S5)에 위치한 로봇(R3)는 단계(630)에서 수신한 제 2 랜드마크(예를 들어, TV)가 로봇(R3)가 위치한 주방(S5)에 존재하는 일 세트의 랜드마크 중 하나에 해당되는 지 여부를 판단한다. 앞서 전제한대로 TV는 거실(S4)과 주방(S5)의 공통 랜드마크이므로 로봇(R3)는 제 2 랜드마크인 TV를 사용자의 잠재적 위치로 간주하고, 주방(S5)에서의 사용자의 최초 위치를 결정하기 위하여 제 2 랜드마크에 기반하여 사용자를 탐색한다.
다른 예에서 단계(650)에서 모든 로봇(R1, R2, R3, R4 및 R5)은 중 다른 일부는 사용자가 유발한 입력 사운드에 대한 음원 위치 추정으로 획득한 음원 위치를 사용자의 잠재적 위치로 하여 사용자를 탐색할 수 있다.
예를 들어, 서재(S2)에 위치한 로봇(R2)은 단계(630)에서 수신한 제 2 랜드마크(예를 들어, TV)가 서재(S2)에 존재하는 일 세트의 랜드마크 중 하나에 해당되는 지 여부를 판단한다. 전제에 따라 거실(S4)과 서재(S2) 간의 공통 랜드마크는 없으므로, 단계(630)에서 수신한 제 2 랜드마크인 TV는 로봇(R2)가 위치한 서재(S2)에 존재하는 일 세트의 랜드마크에 포함되어 있지 않을 것이다.
이 경우, 로봇(R2)은 사용자의 최초 위치를 결정하기 위하여, 마이크로폰(122)을 통해 감지한 입력 사운드를 이용한다. 전제에 따라 거실(S4)과 서재(S2)는 서로 소리가 들리는 위치에 있다. 단계(620)에서 거실(S4)에서 사용자가 움직이는 동안 로봇(R2)는 로봇(R2)의 마이크로폰(122)을 통해 사용자의 음성과 같은 입력 사운드를 감지하고, 감지한 입력사운드에 대한 음원 위치 추정으로 음원 위치, 즉 사용자의 위치를 획득할 수 있다. 로봇(R2)는 음원 위치 추정으로 획득한 음원 위치에 기반하여 사용자를 탐색할 수 있다.
추가적으로 예를 들어 2층 침실3(S8)에 위치한 로봇(R5)은 단계(630)에서 수신한 제 2 랜드마크(예를 들어, TV)가 침실3(S8)에 존재하는 일 세트의 랜드마크 중 하나에 해당되는 지 여부를 판단한다. 전제에 따라 거실(S4)과 침실3(S8) 간의 공통 랜드마크는 없으므로, 단계(630)에서 수신한 제 2 랜드마크인 TV는 로봇(R5)가 위치한 침실3(S8)에 존재하는 일 세트의 랜드마크에 포함되어 있지 않을 것이다.
이 경우, 로봇(R5)은 사용자의 최초 위치를 결정하기 위하여, 마이크로폰(122)을 통해 입력 사운드를 감지한다. 전제에 따라 거실(S4)과 침실3(S5)은 서로 소리가 들리지 않는 위치에 있다. 로봇(R5)은 마이크로폰(122)으로 감지한 입력 사운드에 포함된 2층으로 올라오는 발소리 또는 사용자의 목소리에 대한 음원 위치 추정으로 획득한 음원 위치에 기반하여 사용자를 탐색할 수 있다.
단계(660)에서 사용자를 발견한 로봇(예를 들어 R2, R3, R4 및 R5 중 어느 하나의 로봇)은 사용자를 발견한 위치에 따라 사용자의 최초 위치를 결정할 수 있다.
단계(670)에서 사용자를 발견한 로봇(예를 들어 R2, R3, R4 및 R5 중 어느 하나의 로봇)은 단계(640)에서 중단된 사용자와의 인터랙션을 재개(resume)할 수 있다. 이로써 사용자의 관점에서 끊김없는(seamless) 인터랙션의 제공이 가능하다.
도 6은 일 실시예에 따른 로봇의 상태 전이를 설명하기 위한 도면이다.
로봇(100)의 상태는 대기 상태(READY), 활성화 상태(ACTIVE) 및 아이들 상태(IDLE)를 포함한다.
대기 상태(READY)는 로봇(100)이 위치한 공간에서 객체를 탐색(TRACK)하는 상태를 의미한다. 도 3을 참조하여 단계(520)에 따라 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정하는 과정을 수행하는 동안 로봇(100)은 대기 상태(READY)를 유지한다. 탐색의 결과로 로봇(100)이 위치한 공간에서 객체를 발견(FOUND)한 경우 로봇(100)은 활성화 상태(READY)로 전이한다.
객체 탐색의 결과로 로봇(100)이 위치한 공간에서 객체를 발견하지 못한 경우(NOT FOUND), 로봇(100)은 아이들 상태(IDLE)로 전이한다.
활성화 상태(ACTIVE)는 로봇(100)이 위치한 공간에 객체가 머물면서 로봇(100)과 객체 간에 인터랙션이 진행 중인 상태를 의미한다. 도 3을 참조하여 단계(530)에서 객체의 이동에 따라 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하는 과정을 수행하는 동안 로봇(100)은 활성화 상태(ACTIVE)에 있게 된다. 즉, 로봇(100)은 로봇(100)이 위치한 공간에서 객체를 발견(FOUND)하는 동안 활성화 상태(ACTIVE)를 유지한다.
로봇(100)이 위치한 공간에서 객체가 사라진 경우(LOST), 로봇(100)은 아이들 상태(IDLE)로 전이한다. 예를 들어, 로봇(100)은 도 3을 참조하여 단계(550)에서 로봇(100)이 위치한 공간에서의 로봇(100)의 최종 위치에 대응하는 제 2 랜드마크를 적어도 하나의 다른 로봇(100)에게 전송한 이후에 아이들 상태(IDLE)로 전이한다.
일 예에서 로봇(100)이 위치한 공간에서 객체가 사라진 경우(LOST), 로봇(100)은 대기 상태(READY)로 전이하여 객체 탐색을 수행할 수 있다.
아이들 상태(IDLE)는 로봇(100)이 쉬고 있는 상태를 의미한다. 로봇(100)은 아이들 상태(IDLE)에 진입하여 로봇(100)이 위치한 공간에 객체가 없으면(LOST) 아이들 상태(IDLE)를 계속 유지한다. 로봇(100)은 적어도 하나의 다른 로봇(100)으로부터 대기 (READY) 요청을 수신한 경우, 대기 상태(READY)로 전이한다. 일 예에서 객체 탐색(TRACKING) 요청은 현재 활성화 상태(ACTIVE)인 다른 로봇(100)이 위치한 공간에서 객체가 사라졌음을 알리는 메시지로서 현재 활성화 상태(ACTIVE)인 다른 로봇(100)이 위치한 공간에서의 객체의 최종 위치에 대응하는 랜드마크에 대한 정보를 포함할 수 있다.
도 7은 일 실시예에 따른 로봇 시스템의 객체 추적 과정의 신호 흐름도이다.
로봇 시스템은 제 1 로봇(101) 및 제 2 로봇(102)을 포함할 수 있다. 제 1 로봇(101)은 제 1 공간에 위치하고, 제 2 로봇(102)은 제 2 공간에 위치한다.
제 1 로봇(101) 및 제 2 로봇(102)은 각각 로봇(100)과 동등한 구성을 포함하고, 동등한 동작 및 기능을 수행할 수 있다. 제 2 로봇(102)은 적어도 하나의 제 2 로봇(102)을 포함할 수 있다. 즉, 제 2 로봇(102)은 제 1 로봇(101)과 별개인 적어도 하나의 다른 로봇(100)을 의미한다.
일 예에서 객체는 제 1 공간에서 제 2 공간으로 이동하고, 제 2 로봇(102)은, 제 2 랜드마크에 기반하여 제 2 공간에서 객체의 최초 위치를 결정하도록 구성될 수 있다.
일 예에서 객체는 제 1 공간에서 제 2 공간으로 이동하고, 제 2 로봇(102)은, 제 2 공간에서 객체의 최초 위치를 결정하기 위하여 제 2 로봇(102)의 시야를 이동하면서 객체를 탐색하고, 객체를 탐색하는 동안 대기 상태(READY STATE)를 유지하고, 제 2 공간에서 객체를 발견한 이후에 활성화 상태(ACTIVE STATE)로 전환하도록 구성될 수 있다.
일 예에서 객체가 제 1 공간에서 제 2 공간으로 이동함에 따라, 제 1 로봇(101)은 제 1 로봇(101)과 객체 간의 인터랙션을 중지(suspend)하고, 제 2 로봇(102)은 제 2 로봇(102)과 객체 간의 인터랙션을 재개(resume)하도록 구성될 수 있다.
단계(610) 내지 단계(640)에서 로봇 시스템의 신호 흐름을 살펴본다.
로봇 시스템의 제 1 로봇(101)은, 제 1 공간에서 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정하고, 제 1 공간에서 객체의 이동에 따라, 제 1 공간에 존재하는 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하고, 제 1 공간에서 객체의 최종 위치에 대응하는 제 2 랜드마크를 제 2 로봇(102)에게 전송하도록 구성될 수 있다.
단계(610)에서 인터랙션을 시작하기 전에, 제 1 로봇(101)은 제 1 공간에서 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정한다.
후속하여 도 5를 참조하여 단계(610)에서 제 1 로봇(101)은 제 1 공간에 있는 객체와 인터랙션을 시작한다.
단계(701)에서 제 1 로봇(101)은 제 1 로봇(101)이 활성화 상태(ACTIVE)임을 알리는 메시지(MSG_ROBOT1_ACTIVE)를 제 2 로봇(102)에게 전송한다. 예를 들어 제 1 로봇(101)은 메시지(MSG_ROBOT1_ACTIVE)를 브로드캐스팅할 수 있다.
단계(702)에서 제 1 로봇(101)은 제 1 로봇(101)을 활성화 상태(ACTIVE)로 설정한다. 일 예에서 단계(702)는 단계(701)과 동시에 또는 단계(701)보다 먼저 수행될 수 있다.
단계(703)에서 제 2 로봇(102)은 제 1 로봇(101)으로부터 메시지(MSG_ROBOT1_ACTIVE)를 수신하고, 제 2 로봇(102)의 상태를 아이들 상태(IDLE)로 설정한다.
단계(620)에서 객체는 제 1 공간에서 이동한다. 단계(620)에서 객체가 제 1 공간에서 이동하는 동안 제 1 로봇(101)은 객체를 추적한다.
예를 들어 제 1 로봇(101)은 제 1 공간에서 객체의 이동에 따라, 제 1 공간에 존재하는 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정할 수 있다.
단계(620)을 수행하는 동안 제 1 로봇(101)은 단계(704)에서 객체가 제 1 공간으로부터 이동 중임을 알리는 메시지(MSG_ROBOT1_OBJECT_READY)를 제 2 로봇(102)에게 전송할 수 있다. 메시지(MSG_ROBOT1_OBJECT_READY)는 제 2 로봇(102)이 위치한 공간에 객체가 나타날 가능성이 있으므로 대기 상태로 전이할 것을 요청하는 메시지에 해당한다.
단계(705)에서 메시지(MSG_ROBOT1_OBJECT_READY)를 수신한 제 2 로봇(102)은 제 2 로봇(102)의 상태를 대기 상태(READY)로 설정할 수 있다. 예를 들어 제 2 로봇(102)은 대기 상태(READY)에서 마이크로폰(122)을 통해 입력 사운드를 감지할 수 있다.
단계(630)에서 객체는 제 1 공간에서 사라진다. 예를 들어 단계(630)에서 객체는 제 1 공간에서 제 2 공간으로 이동한다고 가정한다.
단계(630)에서 제 1 공간에서 객체가 사라지면, 단계(706)에서 제 1 로봇(101)은 제 1 공간에서 객체가 사라졌음을 알리는 메시지(MSG_ROBOT1_OBJECT_LOST)를 제 2 로봇(102)에게 전송한다.
일 예에서 제 1 로봇(101)은 제 1 공간에서 객체의 최종 위치에 대응하는 제 2 랜드마크를 제 2 로봇(102)에게 전송할 수 있다. 예를 들어 메시지(MSG_ROBOT1_OBJECT_LOST)는 제 2 랜드마크에 대한 정보를 포함할 수 있다.
단계(707)에서 메시지(MSG_ROBOT1_OBJECT_LOST)를 수신한 제 2 로봇(102)은 객체 탐색(TRACKING)을 수행한다. 일 예에서 제 2 로봇(102)은 객체 탐색을 수행하는 동안 대기 상태(READY)를 유지할 수 있다. 다른 예에서 제 2 로봇(102)은 단계(707)에서 제 2 로봇(102)의 상태를 탐색 상태(TRACKING)로 전이할 수 있다.
일 예에서 단계(630)에서 제 1 공간에서 객체가 사라지면, 단계(707)에서 제 1 로봇(101)은 객체 탐색(TRACKING)을 수행할 수 있다. 이 경우 제 1 로봇(101)의 상태는 대기 상태(READY)로 전이되거나 또는 탐색 상태(TRACKING)로 전이될 수 있다.
단계(640)에서 제 1 로봇(101)은 객체와의 인터랙션을 중지(suspend)할 수 있다.
단계(650)에서 제 2 로봇(102)이 객체 탐색을 수행한다. 일 예에서 제 2 로봇(102)은 제 2 공간에서 객체의 잠재적 위치에 기반하여 객체의 최초 위치를 결정할 수 있다.
예를 들어 제 2 로봇(102)은 단계(706)에서 수신한 메시지(MSG_ROBOT1_OBJECT_LOST)에 포함된 제 2 랜드마크에 대한 정보에 기반하여 객체의 최초 위치를 결정할 수 있다.
예를 들어 제 2 로봇(102)은 객체가 유발한 입력 사운드에 대한 음원 위치 추정을 통해 결정된 음원 위치에 기반하여 객체의 최초 위치를 결정할 수 있다.
단계(660)에서 제 2 로봇(102)에서 객체가 발견되면, 단계(708)에서 제 2 로봇(102)은 객체를 발견했음을 알리는 메시지(MSG_ROBOT2_OBJECT_FOUND)를 제 1 로봇(101) 및 다른 제 2 로봇(102)에게 전송한다.
단계(670)에서 객체를 발견한 제 2 로봇(102)은 객체와의 인터랙션을 재개(resume)할 수 있다.
단계(709)에서 객체를 발견한 제 2 로봇(102)은 자신이 활성화 상태(ACTIVE)임을 알리는 메시지(MSG_ROBOT2_ACTIVE)를 제 1 로봇(101) 및 다른 제 2 로봇(102)에게 전송한다. 예를 들어 제 2 로봇(101)은 메시지(MSG_ROBOT2_ACTIVE)를 브로드캐스팅할 수 있다.
단계(710)에서 객체를 발견한 제 2 로봇(102)은 자신을 활성화 상태(ACTIVE)로 설정한다. 일 예에서 단계(710)는 단계(709)와 동시에 또는 단계(709)보다 먼저 수행될 수 있다.
단계(711)에서 메시지(MSG_ROBOT2_ACTIVE)를 수신한 제 1 로봇(101)은 제 1 로봇(101)의 상태를 아이들 상태(IDLE)로 설정한다.
일 예에서 제 2 로봇(102)은 제 2 공간에서 객체와 인터랙션을 수행하는 동안 제 2 공간에서 객체의 이동에 따라, 제 2 공간에 존재하는 일 세트의 랜드마크 중에서 객체의 현재 위치에 대응하는 랜드마크를 결정할 수 있다.
단계(680)에서 객체와의 인터랙션을 종료하면, 단계(712)에서 제 2 로봇(102)은 제 2 로봇(102)의 상태를 아이들 상태(IDLE)로 설정하고, 단계(713)에서 제 2 로봇(102)이 인터랙션을 종료하고 비활성되었음을 알리는 메시지(MSG_ROBOT2_DEACTIVATED)를 브로드캐스팅할 수 있다.
추가적으로 단계(660)에서 객체를 발견한 제 2 로봇(102)은, 단계(714)에서 객체를 발견한 위치에 대응하는 랜드마크에 대한 정보를 브로드캐스팅할 수 있다. 예를 들어 제 2 로봇(102)은 제 2 공간에서의 객체의 최초 위치에 대응하는 랜드마크에 대한 정보를 브로드캐스팅할 수 있다.
제 1 로봇(101) 및 제 2 로봇(102)은 단계(714)에서 공유한 랜드마크에 대한 정보에 기반하여 각자의 메모리(160)에 저장된 비주얼 맵을 갱신할 수 있다. 예를 들어 제 1 로봇(101) 및 제 2 로봇(102)은 도 8을 참조하여 후술할 랜드마크에 대한 정보 중에 랜드마크를 공유하는 로봇에 대한 정보 및 랜드마크에서 사용자를 발견한 횟수를 갱신할 수 있다.
다른 예에서, 단계(680)에서 인터랙션을 종료하지 않고, 객체가 제 2 로봇(102)과 인터랙션 중에 제 2 공간에서 제 1 공간 또는 제 3 공간으로 이동할 수 있다. 이 경우 제 2 로봇(102)은 단계(630)에 따라 제 2 공간에서 객체가 사라진 위치에 대응하는 제 3 랜드마크를 제 1 로봇(101) 및 다른 제 2 로봇(102)에게 전송할 수 있다. 제 1 로봇(101) 및 다른 제 2 로봇(102)은 단계(650)에서 객체를 탐색하고 후속 단계에 따라 객체와의 인터랙션을 이어갈 수 있다. 이로써 끊김없는 인터랙션이 가능한 로봇 시스템을 제공할 수 있다.
도 8은 일 실시예에 따른 비주얼 맵을 설명하기 위한 표이다.
도 8에 도시된 표(810)는 랜드마크의 자료 구조 및 비주얼 맵의 자료 구조를 예시적으로 보여준다. 표(810)의 자료 구조는 예시적인 것으로서 실시예는 이에 제한되지 않으며, 랜드마크 및 비주얼 맵은 추가적인 필드를 포함하는 다양한 형태의 자료 구조로 구현될 수 있다.
예시적인 랜드마크의 자료 구조는 랜드마크에 대한 정보를 저장한다. 예를 들어 랜드마크에 대한 정보는, 각 랜드마크에 대하여, 랜드마크의 식별자, 랜드마크를 공유하는 로봇에 대한 정보, 랜드마크에서 객체를 발견한 회수 및 랜드마크의 위치 정보를 포함할 수 있다.
예를 들어 랜드마크의 식별자는 랜드마크에 부여된 고유한 번호를 포함한다. 예를 들어 랜드마크를 공유하는 로봇에 대한 정보는 랜드마크를 공통 랜드마크로 저장한 로봇(100)의 리스트를 포함한다. 여기서 로봇(100)의 리스트는 예를 들어 로봇(100) 식별자의 리스트일 수 있다. 예를 들어 랜드마크에서 객체를 발견한 횟수는 랜드마크가 특정 공간에서 객체의 최초 위치로 결정된 횟수일 수 있다. 예를 들어 랜드마크의 위치 정보는 랜드마크의 방향 및 좌표를 포함할 수 있다. 여기서 방향은 로봇(100)의 현재 위치 또는 기준 위치를 중심으로 랜드마크까지의 각도로 표현될 수 있다. 여기서 좌표는 로봇(100)의 현재 위치 또는 기준 위치를 원점으로 하는 공간의 평면 좌표(ex. x 좌표 및 y 좌표) 또는 공간 좌표(ex. x 좌표, y 좌표 및 z좌표)로 표현될 수 있다.
예시적인 비주얼 맵의 자료 구조는 로봇(100)의 식별자 및 랜드마크의 리스트를 포함할 수 있다.
로봇(100)의 식별자는 로봇 시스템을 구성하는 적어도 하나의 로봇(100)에 고유하게 부여된 번호를 포함할 수 있다. 랜드마크의 리스트는 로봇(100)의 식별자에 매핑된 로봇(100)이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 저장한다. 예를 들어 랜드마크의 리스트는 전술한 랜드마크의 자료 구조의 리스트로서 구현될 수 있다.
일 예에서 로봇 시스템을 구성하는 각 로봇(100)은 비주얼 맵을 각각 생성하여 메모리(160)에 저장하고, 각 로봇(100)은 자신의 비주얼 맵을 관리 및 갱신할 수 있다. 예를 들어 로봇(100)마다 생성된 비주얼 맵은 로봇(100)의 식별자에 해당하는 로봇(100)의 메모리(160)에 저장될 수 있다.
일 예에서 서버(300)는 로봇 시스템을 구성하는 각 로봇(100)을 위한 비주얼 맵을 생성하여 비주얼 맵의 리스트로서 도 9를 참조하여 서버(300)의 메모리(330)에 저장할 수 있다.
도 9는 일 실시예에 따른 서버의 블록도이다.
서버(300)는 로봇(100)을 관제하는 관제 서버를 의미할 수 있다. 서버(300)는 복수의 로봇(100)을 모니터링하는 중앙 관제 서버일 수 있다. 서버(300)는 로봇(100)의 상태 정보를 저장 및 관리할 수 있다. 예를 들어 상태 정보는 로봇(100)의 위치 정보, 수행 중인 인터랙션 정보 및 배터리 잔량 정보 등을 포함할 수 있다.
서버(300)는 랜드마크 정보를 저장 및 관리할 수 있다. 서버(300)는 랜드마크 정보를 갱신하고 갱신된 랜드마크 정보를 로봇(100)에게 전송할 수 있다. 예를 들어 서버(300)는 공통 랜드마크 정보를 로봇(100)에게 전송할 수 있다.
한편 서버(300)는 로봇(100)으로부터 객체 추적의 결과를 수신할 수 있다. 예를 들어 서버(300)는 로봇(100)으로부터 이벤트 발생 및 경고 메시지를 수신할 수 있다. 서버(300)는 수신한 이벤트 정보 및 경고 메시지를 단말(200)에게 전송할 수 있다.
서버(300)는 머신 러닝 알고리즘을 이용하여 인공 신경망을 학습시키거나 학습된 인공 신경망을 이용하는 장치를 의미할 수 있다. 여기서, 서버(300)는 복수의 서버들로 구성되어 분산 처리를 수행할 수도 있고, 5G 네트워크로 정의될 수 있다. 이때, 서버(300)는 로봇(100)과 같은 AI 장치의 일부의 구성으로 포함되어, AI 프로세싱 중 적어도 일부를 함께 수행할 수도 있다.
서버(300)는 통신부(310), 메모리(330), 러닝 프로세서(320) 및 프로세서(340) 등을 포함할 수 있다.
통신부(310)는 로봇(100) 등의 외부 장치와 데이터를 송수신할 수 있다.
메모리(330)는 모델 저장부(331)를 포함할 수 있다. 모델 저장부(331)는 러닝 프로세서(320)을 통하여 학습 중인 또는 학습된 모델(또는 인공 신경망, 331a)을 저장할 수 있다. 예를 들어 메모리(330)는 인공 신경망에 기반한 사물 인식 모델을 저장할 수 있다.
러닝 프로세서(320)는 학습 데이터를 이용하여 인공 신경망(331a)을 학습시킬 수 있다. 학습 모델은 인공 신경망의 서버(300)에 탑재된 상태에서 이용되거나, 로봇(100) 등의 외부 장치에 탑재되어 이용될 수도 있다. 예를 들어 학습 모델은 서버(300)에 탑재되거나 로봇(100)에 탑재되어 랜드마크를 인식하는 데에 활용될 수 있다.
학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어(instruction)는 메모리(330)에 저장될 수 있다.
프로세서(340)는 학습 모델을 이용하여 새로운 입력 데이터에 대하여 결과 값을 추론하고, 추론한 결과 값에 기초한 응답이나 제어 명령을 생성할 수 있다.
이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상술한 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명의 명세서(특히 청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 청구의 범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 청구의 범위뿐만 아니라 이 청구의 범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
앞에서, 본 발명의 특정한 실시예가 설명되고 도시되었지만 본 발명은 기재된 실시예에 한정되는 것이 아니고, 이 기술 분야에서 통상의 지식을 가진 자는 본 발명의 사상 및 범위를 벗어나지 않고서 다른 구체적인 실시예로 다양하게 수정 및 변형할 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 범위는 설명된 실시예에 의하여 정하여 질 것이 아니고 청구범위에 기재된 기술적 사상에 의해 정하여져야 할 것이다.
100: 로봇
101: 제 1 로봇
102: 제 2 로봇
200: 단말
300: 서버
400: 네트워크

Claims (20)

  1. 로봇이 위치한 공간에 존재하는 일 세트의 랜드마크에 대한 정보를 저장하는 메모리; 및
    상기 메모리와 연결된 프로세서
    를 포함하고,
    상기 프로세서는,
    객체의 잠재적 위치에 기반하여 상기 객체의 최초 위치를 결정하고,
    상기 객체의 이동에 따라, 상기 일 세트의 랜드마크 중에서 상기 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하고,
    상기 객체의 최종 위치에 대응하는 제 2 랜드마크를 적어도 하나의 다른 로봇에게 전송하도록 구성되는,
    로봇.
  2. 제 1 항에 있어서,
    상기 프로세서는,
    상기 잠재적 위치를 향하여 상기 로봇의 시야를 지향하도록 더 구성되는,
    로봇.
  3. 제 1 항에 있어서,
    상기 잠재적 위치는 상기 적어도 하나의 다른 로봇 중 하나가 위치한 공간에서 상기 객체가 사라진 위치에 대응하는 제 3 랜드마크이고,
    상기 프로세서는,
    상기 제 3 랜드마크에 기반하여 상기 최초 위치를 결정하도록 더 구성되는,
    로봇.
  4. 제 3 항에 있어서,
    상기 프로세서는,
    상기 제 3 랜드마크가 상기 일 세트의 랜드마크 중 하나에 해당되는 지 여부를 판단하도록 더 구성되는,
    로봇.
  5. 제 1 항에 있어서,
    상기 잠재적 위치는 상기 객체로부터 유발된 입력 사운드에 대한 음원 위치 추정으로 획득한 음원 위치이고,
    상기 프로세서는,
    상기 음원 위치에 기반하여 상기 최초 위치를 결정하도록 더 구성되는,
    로봇.
  6. 제 1 항에 있어서,
    상기 프로세서는,
    상기 최초 위치에 대응하는 랜드마크에 기반하여 상기 일 세트의 랜드마크에 대한 정보를 갱신하도록 더 구성되는,
    로봇.
  7. 제 1 항에 있어서,
    상기 프로세서는,
    상기 제 1 랜드마크를 결정하기 위하여,
    상기 객체의 이동에 따라 상기 로봇의 시야를 이동하도록 더 구성되는,
    로봇.
  8. 제 1 항에 있어서,
    상기 프로세서는,
    상기 제 1 랜드마크를 결정하기 위하여,
    상기 객체의 이동에 따라 변화하는 상기 객체의 현재 위치에 대응하는 일련의 상기 제 1 랜드마크를 결정하도록 더 구성되는,
    로봇.
  9. 제 1 항에 있어서,
    상기 프로세서는,
    상기 제 2 랜드마크를 상기 적어도 하나의 다른 로봇에게 전송하기 위하여,
    상기 객체가 상기 공간에서 사라지기 직전의 상기 객체의 현재 위치에 대응하는 상기 제 1 랜드마크를 상기 최종 위치에 대응하는 상기 제 2 랜드마크로 결정하도록 더 구성되는,
    로봇.
  10. 제 1 항에 있어서,
    상기 프로세서는,
    상기 일 세트의 랜드마크에 대한 정보에 기반하여 로봇의 공간적 연결을 나타내는 비주얼 맵을 생성하도록 더 구성되는,
    로봇.
  11. 제 10 항에 있어서,
    상기 프로세서는,
    상기 로봇의 위치 변화에 따라 또는 주기적으로 상기 비주얼 맵을 갱신하도록 더 구성되는,
    로봇.
  12. 제 1 항에 있어서,
    상기 일 세트의 랜드마크에 대한 정보는, 각 랜드마크에 대하여,
    랜드마크의 식별자, 랜드마크를 공유하는 로봇에 대한 정보, 랜드마크에서 객체를 발견한 횟수 및 랜드마크의 위치 정보를 포함하는,
    로봇.
  13. 로봇이 위치한 공간에 존재하는 일 세트의 랜드마크를 획득하는 단계;
    객체의 잠재적 위치에 기반하여 상기 객체의 최초 위치를 결정하는 단계;
    상기 객체의 이동에 따라, 상기 일 세트의 랜드마크 중에서 상기 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하는 단계; 및
    상기 객체의 최종 위치에 대응하는 제 2 랜드마크를 적어도 하나의 다른 로봇에게 전송하는 단계
    를 포함하는,
    로봇의 객체 추적 방법.
  14. 제 13 항에 있어서,
    상기 객체의 최초 위치를 결정하는 단계는,
    상기 잠재적 위치를 향하여 상기 로봇의 시야를 지향하는 단계
    를 포함하는,
    로봇의 객체 추적 방법.
  15. 제 13 항에 있어서,
    상기 제 1 랜드마크를 결정하는 단계는,
    상기 객체의 이동에 따라 상기 로봇의 시야를 이동하는 단계
    를 포함하는,
    로봇의 객체 추적 방법.
  16. 제 13 항에 있어서,
    상기 제 2 랜드마크를 상기 적어도 하나의 다른 로봇에게 전송하는 단계는,
    상기 객체가 상기 공간에서 사라지기 직전의 상기 객체의 현재 위치에 대응하는 상기 제 1 랜드마크를 상기 최종 위치에 대응하는 상기 제 2 랜드마크로 결정하는 단계
    를 포함하는,
    로봇의 객체 추적 방법.
  17. 제 1 로봇 및 제 2 로봇을 포함하는 로봇 시스템으로서,
    상기 제 1 로봇은 제 1 공간에 위치하고, 상기 제 2 로봇은 제 2 공간에 위치하고,
    상기 제 1 로봇은,
    상기 제 1 공간에서, 객체의 잠재적 위치에 기반하여 상기 객체의 최초 위치를 결정하고,
    상기 제 1 공간에서, 상기 객체의 이동에 따라, 상기 제 1 공간에 존재하는 일 세트의 랜드마크 중에서 상기 객체의 현재 위치에 대응하는 제 1 랜드마크를 결정하고,
    상기 제 1 공간에서, 상기 객체의 최종 위치에 대응하는 제 2 랜드마크를 상기 제 2 로봇에게 전송하도록 구성되는,
    로봇 시스템.
  18. 제 17 항에 있어서,
    상기 객체는 상기 제 1 공간에서 상기 제 2 공간으로 이동하고,
    상기 제 2 로봇은,
    상기 제 2 랜드마크에 기반하여 상기 제 2 공간에서 상기 객체의 최초 위치를 결정하도록 구성되는,
    로봇 시스템.
  19. 제 17 항에 있어서,
    상기 객체는 상기 제 1 공간에서 상기 제 2 공간으로 이동하고,
    상기 제 2 로봇은,
    상기 제 2 공간에서 상기 객체의 최초 위치를 결정하기 위하여 상기 제 2 로봇의 시야를 이동하면서 상기 객체를 탐색하고,
    상기 객체를 탐색하는 동안 대기 상태(READY STATE)를 유지하고,
    상기 제 2 공간에서 상기 객체를 발견한 이후에 활성화 상태(ACTIVE STATE)로 전환하도록 더 구성되는,
    로봇 시스템.
  20. 제 17 항에 있어서,
    상기 객체가 상기 제 1 공간에서 상기 제 2 공간으로 이동함에 따라,
    상기 제 1 로봇은 상기 제 1 로봇과 상기 객체 간의 인터랙션을 중지(suspend)하고,
    상기 제 2 로봇은 상기 제 2 로봇과 상기 객체 간의 인터랙션을 재개(resume)하도록 더 구성되는,
    로봇 시스템.
KR1020190170030A 2019-12-18 2019-12-18 로봇 및 로봇 시스템 KR20210078207A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190170030A KR20210078207A (ko) 2019-12-18 2019-12-18 로봇 및 로봇 시스템
US17/096,735 US20210187739A1 (en) 2019-12-18 2020-11-12 Robot and robot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190170030A KR20210078207A (ko) 2019-12-18 2019-12-18 로봇 및 로봇 시스템

Publications (1)

Publication Number Publication Date
KR20210078207A true KR20210078207A (ko) 2021-06-28

Family

ID=76437154

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190170030A KR20210078207A (ko) 2019-12-18 2019-12-18 로봇 및 로봇 시스템

Country Status (2)

Country Link
US (1) US20210187739A1 (ko)
KR (1) KR20210078207A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220134544A1 (en) * 2020-10-30 2022-05-05 Honda Research Institute Europe Gmbh System and method for continuously sharing behavioral states of a creature

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9400503B2 (en) * 2010-05-20 2016-07-26 Irobot Corporation Mobile human interface robot
KR102549978B1 (ko) * 2016-09-13 2023-07-03 엘지전자 주식회사 공항 로봇 및 그를 포함하는 공항 로봇 시스템
KR102391914B1 (ko) * 2017-06-30 2022-04-27 엘지전자 주식회사 이동 로봇의 동작 방법
US11267121B2 (en) * 2018-02-13 2022-03-08 Casio Computer Co., Ltd. Conversation output system, conversation output method, and non-transitory recording medium
US11460849B2 (en) * 2018-08-09 2022-10-04 Cobalt Robotics Inc. Automated route selection by a mobile robot
KR20190104486A (ko) * 2019-08-21 2019-09-10 엘지전자 주식회사 행동 방향성 인식기반 서비스 요구자 식별 방법

Also Published As

Publication number Publication date
US20210187739A1 (en) 2021-06-24

Similar Documents

Publication Publication Date Title
US11663516B2 (en) Artificial intelligence apparatus and method for updating artificial intelligence model
KR102281602B1 (ko) 사용자의 발화 음성을 인식하는 인공 지능 장치 및 그 방법
KR20210010270A (ko) 로봇 및 그의 기동어 인식 방법
US20210097852A1 (en) Moving robot
US20210072759A1 (en) Robot and robot control method
US11568239B2 (en) Artificial intelligence server and method for providing information to user
US11931906B2 (en) Mobile robot device and method for providing service to user
US11170778B2 (en) Conversational control system and method for registering external device
US20210166592A1 (en) Robot
US11210567B2 (en) Artificial intelligence apparatus and method for recognizing object
US20210072750A1 (en) Robot
US20210064019A1 (en) Robot
KR20210004487A (ko) 환기 상황을 자동으로 파악할 수 있는 인공 지능 장치 및 그의 동작 방법
KR102234691B1 (ko) 인공 지능을 이용하여, 물품을 관리하는 냉장고 및 그의 동작 방법
KR102331672B1 (ko) 사용자의 위치를 결정하는 인공 지능 장치 및 그 방법
KR102231922B1 (ko) 인공 지능을 이용하여, 복수의 로봇들을 제어하는 인공 지능 서버
KR20190114925A (ko) 소리 신호 분류를 이용한 인공지능장치 및 그 방법
KR20210056603A (ko) 로봇 및 그의 제어 방법
KR20210078207A (ko) 로봇 및 로봇 시스템
KR20210073001A (ko) 로봇 및 로봇 시스템
KR20210042537A (ko) 대면적의 공간에서 로컬 영역별로 위치를 추정하는 방법 및 이를 구현하는 로봇과 클라우드 서버
US20210325521A1 (en) An artificial intelligence apparatus for determining path of user and method for the same
US11641543B2 (en) Sound source localization for robot
KR20210050201A (ko) 로봇, 로봇의 작동 방법 및 상기 로봇을 포함하는 로봇 시스템
KR20210057598A (ko) 알림을 제공하는 인공 지능 장치 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination