KR20190029524A - System and method for training a robot to autonomously traverse a path - Google Patents

System and method for training a robot to autonomously traverse a path Download PDF

Info

Publication number
KR20190029524A
KR20190029524A KR1020187035942A KR20187035942A KR20190029524A KR 20190029524 A KR20190029524 A KR 20190029524A KR 1020187035942 A KR1020187035942 A KR 1020187035942A KR 20187035942 A KR20187035942 A KR 20187035942A KR 20190029524 A KR20190029524 A KR 20190029524A
Authority
KR
South Korea
Prior art keywords
robot
map
path
environment
implementations
Prior art date
Application number
KR1020187035942A
Other languages
Korean (ko)
Other versions
KR102355750B1 (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 브레인 코퍼레이션
Publication of KR20190029524A publication Critical patent/KR20190029524A/en
Application granted granted Critical
Publication of KR102355750B1 publication Critical patent/KR102355750B1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4011Regulation of the cleaning machine by electric means; Control systems and remote control systems therefor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L11/00Machines for cleaning floors, carpets, furniture, walls, or wall coverings
    • A47L11/40Parts or details of machines not provided for in groups A47L11/02 - A47L11/38, or not restricted to one of these groups, e.g. handles, arrangements of switches, skirts, buffers, levers
    • A47L11/4061Steering means; Means for avoiding obstacles; Details related to the place where the driver is accommodated
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2805Parameters or conditions being sensed
    • A47L9/2826Parameters or conditions being sensed the condition of the floor
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L9/00Details or accessories of suction cleaners, e.g. mechanical means for controlling the suction or for effecting pulsating action; Storing devices specially adapted to suction cleaners or parts thereof; Carrying-vehicles specially adapted for suction cleaners
    • A47L9/28Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
    • A47L9/2836Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means characterised by the parts which are controlled
    • A47L9/2852Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • B25J11/0085Cleaning
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47LDOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
    • A47L2201/00Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
    • A47L2201/04Automatic control of the travelling movement; Automatic obstacle detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Electromagnetism (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Electric Vacuum Cleaner (AREA)

Abstract

자율적으로 경로를 주행하도록 로봇을 훈련시키는 시스템 및 방법. 일 실시예에서, 로봇은 초기화 위치에서 초기 배치를 검출할 수 있다. 초기화 위치에서 시작하여 로봇은 내비게이션가능한 경로의 사용자 제어 데모 중에 내비게이션가능한 경로 및 주위 환경의 맵을 생성할 수 있다. 데모 후에 로봇은 초기화 위치에서 제 2 위치를 나중에 검출하고 그후 내비게이션가능한 경로를 자율적으로 내비게이션할 수 있다. 그후, 이어서, 로봇은 생성된 맵과 연관된 오류를 검출할 수 있다. 로봇과 연관된 방법 및 시스템이 또한 개시된다.A system and method for training a robot to autonomously traverse a path. In one embodiment, the robot can detect an initial placement at an initialization position. Beginning at the initialization position, the robot can generate a map of the navigable path and the surrounding environment during the user control demo of the navigable path. After the demonstration, the robot may later detect the second position at the initialization position and then autonomously navigate the navigable path. Then, the robot can then detect an error associated with the generated map. Methods and systems associated with robots are also disclosed.

Description

경로를 자율주행하도록 로봇을 훈련시키기 위한 시스템 및 방법System and method for training a robot to autonomously traverse a path

우선권preference

본 출원은 동일한 발명의 명칭으로 2016년 5월 11일에 출원되어 계류중인 미국 특허 출원 제15/152,425호에 대해 우선권을 주장하며, 이는 전체로서 참조로 본원에 포함된다.This application claims priority to U.S. Provisional Patent Application No. 15 / 152,425, filed May 11, 2016, which is assigned to the same assignee, and is incorporated herein by reference in its entirety.

저작권Copyright

본 특허문서의 본 개시의 일부는 저작권 보호를 받는 자료를 포함하고 있다. 저작권 소유자는 미국 특허 상표청의 특허 파일 또는 기록에 나타나 있듯이 모든 특허 문서 또는 특허 공개에 대한 팩스 복제물에 대해 이의를 제기하지 않지만 달리 저작권의 모든 권리를 보유한다.Part of this disclosure of this patent document contains copyrighted material. The copyright owner does not dispute any copy of the patent or any copy of the patent for the patent disclosure, as indicated in the USPTO's patent file or record, but otherwise retains all rights in the copyright.

본 출원은 일반적으로, 특히, 로봇 시스템 및 이를 이용하는 방법에 관한 것이다. 특히, 일 양태에서, 본 개시는 경로를 자율적으로 주행시키기 위해 로봇을 훈련하고 동작시키는 시스템 및 방법에 관한 것이다.[0001] This application is generally concerned, in particular, with a robot system and a method of using the same. In particular, in one aspect, the present disclosure is directed to a system and method for training and operating a robot to autonomously drive a path.

현재, 프로그래밍 로봇은 종종 로봇이 만날 수 있는 모든 상황을 예상하거나 예상하려고 하는 소모적 코딩을 수반할 수 있다. 이러한 접근 방식은 시간, 에너지 및 컴퓨터 자원 관점에서 비용이 많이 드는 것뿐만 아니라 이 접근법은 또한 로봇의 능력을 제한할 수도 있다. 예를 들어, 많은 로봇은 예측 가능한 또는 미리 정의된 조건을 갖춘 제어된 환경에서만 효과적일 수 있다. 이 로봇은 동적으로 변화하는 환경 및/또는 로봇이 특별히 프로그래밍되지 않은 새로운 환경에서는 효과적이지 않을 수 있다. 로봇이 일반 능력으로 프로그래밍된 경우, 로봇은 여러가지 작업에서 유용할 수 있지만, 이러한 작업 중 특정 작업에서는 효과가 없거나 비효율적일 수 있다. 다른 한편으로는, 특정 작업을 효과적이고 효율적으로 수행하도록 프로그래밍된 로봇은 이러한 작업에만 국한되며 다른 작업을 수행할 수 없다. 유사하게, 많은 현재 로봇은 전문 기술자 및 다른 고도로 숙련된 작업자가 이를 프로그래밍하고 조작하도록 요구할 수 있다. 이 요구 사항은 로봇 작동 시간과 비용을 증가시킨다.Currently, programming robots can often involve consuming coding that is trying to anticipate or anticipate all the situations a robot can encounter. Not only is this approach costly in terms of time, energy and computer resources, but this approach may also limit the capabilities of the robot. For example, many robots may only be effective in a controlled environment with predictable or predefined conditions. The robot may not be effective in a dynamically changing environment and / or in a new environment where the robot is not specifically programmed. When a robot is programmed with general capabilities, robots can be useful in a variety of tasks, but these tasks may be ineffective or ineffective in certain tasks. On the other hand, robots that are programmed to perform specific tasks effectively and efficiently are limited to these tasks and can not perform other tasks. Similarly, many current robots can require professional technicians and other highly skilled workers to program and manipulate them. This requirement increases robot operation time and cost.

이러한 과제는 로봇을 경로를 따라 주행하도록 프로그래밍하는데 특히 두드러진다. 예를 들어, 로봇으로 하여금 제1 지점에서 제2 지점으로 자율적으로 주행하도록 프로그래밍하기 위하여, 프로그래머는 맵을 프로그래밍하고, 로봇이 그 지점으로 주행해야 하는 순서 또는 로직을 따라, 로봇이 주행해야 하는 맵 상의 각 지점을 식별해야 한다. 프로그래머는 각 환경에 맞게 로봇을 프로그래밍하고 환경 지도와 함께 원하는 모든 경로를 입력해야 할 수도 있다. 대안으로, 프로그래머가 로봇이 경로를 결정하기 위한 일반적인 규칙과 논리를 프로그램하면, 로봇은 특정 경로를 따라 가면 느리고 비효율적일 수 있다. 어느 경우에나, 그러한 프로그래밍은 시간 소모적일 수 있으며 또한 고도로 숙련된 작업자가 로봇을 조작하도록 요구할 수 있다. 따라서, 경로를 주행하도록 로봇을 프로그래밍하기 위한 개선된 시스템 및 방법이 필요하다.This task is particularly prominent in programming the robot to travel along the path. For example, to program the robot to autonomously travel from a first point to a second point, the programmer may program the map and, depending on the order or logic the robot must travel to that point, Each point on the map should be identified. The programmer may need to program the robot for each environment and enter all the desired paths along with the environment map. Alternatively, if a programmer programs the general rules and logic for a robot to determine a path, then the robot may be slow and inefficient if it follows a particular path. In any case, such programming can be time-consuming and require highly skilled workers to operate the robot. Thus, there is a need for an improved system and method for programming a robot to drive a path.

전술한 필요성은 특히, 훈련된 경로를 주행하기 위한 로봇을 초기화하고 동작시키기 위한 시스템 및 방법을 제공하는 본 개시에 의해 충족된다. 본 명세서에 기술된 예시적인 구현예는 혁신적인 특징을 가지며, 그 특징은 단일로는 그들의 바람직한 속성에 대해 필수 불가결하거나 원인이 되지 않는다. 청구항들의 범위를 제한하지 않고, 유리한 특징들 중 일부를 이하 요약한다.The foregoing need is met particularly with the present disclosure, which provides a system and method for initializing and operating a robot for driving a trained path. The exemplary implementations described herein have innovative features, which are not necessarily indispensable or cause for their desired attributes. Without limiting the scope of the claims, some of the advantageous features are summarized below.

본 개시의 일부 구현예에서, 로봇은 자율적으로 내비게이션하는 동안 데모(demonstration)에 의하여 경로를 학습하고 나중에 데모된(demonstrated) 경로를 반복할 수 있다. In some implementations of the present disclosure, the robot can autonomously learn the path by demonstration while navigating and later repeat the demonstrated path.

제1 양태에서, 로봇이 개시된다. 일 예시 구현예에서, 상기 로봇은 상기 초기화 위치로부터 출발하는 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하도록 구성된 매핑 및 로컬라이제이션 유닛을 포함한다. 상기 로봇은 또한 상기 맵을 이용하여 상기 로봇을 자율적으로 내비게이션하도록 구성된 내비게이션 유닛을 포함한다.In a first aspect, a robot is disclosed. In one illustrative embodiment, the robot includes a mapping and localization unit configured to generate a map of the navigable path and environment while demonstrating a navigable path to the robot starting from the initialization position. The robot also includes a navigation unit configured to autonomously navigate the robot using the map.

일 변형예에서, 상기 내비게이션 유닛은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않게 결정하도록 구성된다.In one variation, the navigation unit is configured to determine not to autonomously navigate at least a portion of the navigable path.

다른 변형예에서, 상기 로봇은 상기 로봇의 센서 범위 내에서 물체들을 적어도 부분적으로 표시하는 센서 데이터를 발생시키도록 구성되는 센서 유닛을 더 포함하고, 상기 내비게이션 유닛은 상기 발생된 센서 데이터에 적어도 부분적으로 기초하여 자율적으로 내비게이션하도록 더 구성된다.In another variation, the robot further comprises a sensor unit configured to generate sensor data that at least partially displays objects within the sensor range of the robot, wherein the navigation unit is operable, at least in part, And is further configured to autonomously navigate on a per-view basis.

다른 변형예에서, 상기 로봇은 브러시를 작동시키도록 구성된 제1 액추에이터 유닛을 더 갖는다. 다른 변형예에서, 상기 로봇은 상기 로봇을 터닝시키도록 구성된 제2 액추에이터를 더 가진다.In another variation, the robot further comprises a first actuator unit configured to actuate the brush. In another variation, the robot further has a second actuator configured to turn the robot.

다른 변형예에서, 상기 로봇은 상기 맵 상의 위치를 상기 제1 액추에이터의 유닛의 작동과 연관시키도록 구성된 프로세서를 더 가진다. 다른 변형예에서, 상기 로봇은 맵 상의 위치를 상기 제2 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 포함한다.In another variation, the robot further comprises a processor configured to associate a location on the map with an operation of the unit of the first actuator. In another variation, the robot includes a processor configured to associate a location on the map with an operation of the second actuator unit.

다른 변형예에서, 상기 로봇은 사용자로부터 생성된 맵의 선택을 수신하도록 구성된 인터페이스 유닛을 포함하고, 상기 로봇은 수신된 선택에 적어도 부분적으로 기초하여 자율적으로 내비게이션한다.In another variation, the robot includes an interface unit configured to receive a selection of a map generated from a user, the robot autonomously navigates based at least in part on the received selection.

다른 변형예에서, 상기 로봇은 상기 맵에서의 오류를 정정하도록 구성된 맵 평가 유닛을 가진다. 다른 변형예에서, 오류의 정정은 맵에서의 오류의 적어도 하나를 정정된 맵의 적어도 일부분과 연관시키는 기계 학습을 포함한다.In another variation, the robot has a map evaluation unit configured to correct errors in the map. In another variation, correction of the error includes machine learning that associates at least one of the errors in the map with at least a portion of the corrected map.

다른 변형예에서, 상기 로봇은 서버와 통신하도록 구성된 통신 유닛을 더 포함하고, 상기 로봇은 상기 맵을 상기 서버로 전송하고 상기 맵의 품질의 검증을 수신한다.In another variation, the robot further comprises a communication unit configured to communicate with a server, which transmits the map to the server and receives a verification of the quality of the map.

제2 양태에서, 로봇을 훈련시키는 방법이 개시된다. 일 예시 구현예에서, 상기 방법은 초기화 위치에서 상기 로봇의 제1 위치를 검출하는 단계; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 단계; 상기 초기화 위치에서 상기 로봇의 제 2 위치를 검출하는 단계; 및 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함한다.In a second aspect, a method of training a robot is disclosed. In one exemplary implementation, the method includes detecting a first position of the robot at an initialization position; Generating a map of the navigable path and the surrounding environment while demonstrating a navigable path to the robot starting from the initialization position; Detecting a second position of the robot at the initialization position; And causing the robot to autonomously navigate at least a portion of the navigable path from the initialization position.

일 변형예에서, 상기 방법은 오류들에 대해 상기 생성된 맵을 평가하는 단계; 및 상기 오류들에 적어도 부분적으로 기초하여, 상기 로봇에 다시 상기 내비게이션가능한 경로를 데모하도록 사용자에게 요청하는 단계를 더 포함한다.In one variation, the method includes evaluating the generated map for errors; And requesting the user to demonstrate the navigable path back to the robot based at least in part on the errors.

다른 변형예에서, 상기 방법은 상기 맵에서의 오류를 정정하는 단계를 더 포함한다. 다른 변형예에서, 상기 방법은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하는 단계를 더 포함한다.In another variation, the method further comprises correcting errors in the map. In another variation, the method further comprises determining not to autonomously navigate at least a portion of the navigable path.

다른 변형예에서, 상기 방법은 내비게이션가능한 경로 및 주위 환경의 맵과 상기 초기 위치를 연관시키는 단계를 더 포함한다.In another variation, the method further comprises associating the initial location with a map of the navigable path and environment.

다른 변형예에서, 상기 방법은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 상기 생성된 맵 상에 매핑하는 단계를 더 포함한다.In another variation, the method further comprises mapping actions performed by the robot on the navigable path onto the generated map.

제3 양태에서, 로봇을 사용하는 방법이 개시된다. 일 예시 구현예에서, 상기 방법은 초기화 위치에서 상기 로봇의 제1 위치를 검출하는 단계; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 단계; 상기 초기화 위치에서 상기 로봇의 제 2 위치를 검출하는 단계; 및 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함한다.In a third aspect, a method of using a robot is disclosed. In one exemplary implementation, the method includes detecting a first position of the robot at an initialization position; Generating a map of the navigable path and the surrounding environment while demonstrating a navigable path to the robot starting from the initialization position; Detecting a second position of the robot at the initialization position; And causing the robot to autonomously navigate at least a portion of the navigable path from the initialization position.

일 변형예에서, 상기 방법은 내비게이션가능한 경로 및 주위 환경의 맵과 상기 초기 위치를 연관시키는 단계를 더 포함한다.In one variation, the method further comprises associating the initial location with a map of the navigable path and environment.

다른 변형예에서, 상기 방법은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 상기 생성된 맵 상에 매핑하는 단계를 더 포함한다.In another variation, the method further comprises mapping actions performed by the robot on the navigable path onto the generated map.

제4 양태에서, 비일시성 컴퓨터 판독 가능 매체가 개시된다. 일 예시 구현예에서, 복수의 명령이 저장되는 비일시성 컴퓨터 판독 가능 저장 매체가 개시된다. 상기 명령들은 로봇을 동작시키도록 프로세싱 장치에 의하여 실행될 수 있으며, 상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금: 초기화 위치에서 상기 로봇의 제1 위치를 검출하고; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하고; 상기 초기화 위치에서 상기 로봇의 제2 위치를 검출하고; 그리고 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하도록 구성된다.In a fourth aspect, a non-transitory computer readable medium is disclosed. In an exemplary implementation, a non-transient computer readable storage medium is disclosed wherein a plurality of instructions are stored. The instructions being executable by the processing device to operate the robot, the instructions further comprising instructions for causing the processing device to: detect a first position of the robot at an initialization position; Generating a map of the navigable path and the surrounding environment while demonstrating a navigable path to the robot starting from the initialization position; Detect a second position of the robot at the initialization position; And to cause the robot to autonomously navigate at least a portion of the navigable path from the initialization position.

일 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 오류들에 대해 상기 생성된 맵을 평가하고, 상기 오류들에 적어도 부분적으로 기초하여 상기 로봇에 상기 내비게이션가능한 경로를 다시 데모하도록 사용자에게 요청하도록 하는 명령들을 더 포함한다.In one variation, the non-transitory computer-readable storage medium includes instructions that, when executed by the processing device, cause the processing device to: evaluate the generated map for errors; and generate, based at least in part on the errors, Further comprising instructing the robot to request the user to demonstrate the navigable path again.

다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 맵에서의 오류들을 정정하도록 하는 명령들을 포함한다.In another variation, the non-temporal computer-readable storage medium includes instructions that, when executed by the processing device, cause the processing device to correct errors in the map.

다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 내비게이션가능한 경로를 자율적으로 내비게이션하는 동안에 로봇이 일시적으로 놓인 장애물을 피하도록 하는 명령들을 로봇에게 제공하게 하는 명령을 포함한다.In another variation, the non-transitory computer-readable storage medium includes instructions that, when executed by the processing device, cause the processing device to execute instructions that, when autonomously navigating the navigable path, cause the robot to avoid an occasionally placed obstacle To the robot.

다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하게 하는 명령들을 더 포함한다.In another variation, the non-transitory computer-readable storage medium further comprises instructions, when executed by the processing device, to cause the processing device to determine not to autonomously navigate at least a portion of the navigable path.

다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 내비게이션가능한 경로 및 주위 환경의 맵과 상기 초기 위치를 연관시키는 명령들을 포함한다.In another variation, the non-temporal computer-readable storage medium includes instructions that, when executed by the processing device, cause the processing device to associate the initial location with a map of a navigable path and environment.

다른 변형예에서, 내비게이션가능한 경로 및 주위 환경의 맵의 생성은 센서로 주위 환경을 센싱하도록 구성된 명령들을 더 포함한다.In another variation, the generation of a map of the navigable path and the environment further comprises instructions configured to sense the environment to the sensor.

다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 실행될 때, 상기 프로세싱 장치로 하여금 서버와 통신하게 하는 명령을 더 포함하며, 상기 로봇은 상기 서버로 상기 맵을 전송하고 상기 맵의 품질의 검증을 수신한다.In another variation, the non-transitory computer-readable storage medium further comprises instructions, when executed, to cause the processing device to communicate with a server, the robot transmitting the map to the server, And receives the verification.

제5 양태에서, 환경과 로봇이 개시된다. 일 예시 구현예에서, 상기 로봇은 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하도록 구성된 매핑 및 로컬라이제이션 유닛을 포함한다. 상기 로봇은 또한 상기 맵을 이용하여 상기 로봇을 자율적으로 내비게이션하도록 구성된 내비게이션 유닛을 포함한다.In a fifth aspect, an environment and a robot are disclosed. In one illustrative embodiment, the robot includes a mapping and localization unit configured to generate a map of the navigable path and environment while demonstrating a navigable path to the robot starting from the initialization position. The robot also includes a navigation unit configured to autonomously navigate the robot using the map.

일 변형예에서, 상기 내비게이션 유닛은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하도록 더 구성된다. 이 결정은 상기 환경의 장애물을 피하는 결정을 포함한다.In one variation, the navigation unit is further configured to determine not to autonomously navigate at least a portion of the navigable path. This determination includes a determination to avoid obstacles in the environment.

다른 변형예에서, 상기 로봇은 상기 로봇의 센서 범위 내에서 물체들을 적어도 부분적으로 표시하는 센서 데이터를 발생시키도록 구성되는 센서 유닛을 더 포함하고, 상기 내비게이션 유닛은 발생된 센서 데이터에 적어도 부분적으로 기초하여 환경을 자율적으로 내비게이션하도록 더 구성된다.In another variation, the robot further comprises a sensor unit configured to generate sensor data that at least partially displays objects within a sensor range of the robot, wherein the navigation unit is configured to generate sensor data based at least in part on the generated sensor data So as to autonomously navigate the environment.

다른 변형예에서, 상기 로봇은 청소용 브러시를 작동시키도록 구성된 제1 액추에이터 유닛을 더 갖는다. 다른 변형예에서, 상기 로봇은 환경에서 로봇을 터닝시키도록 구성된 제2 액추에이터 유닛을 더 포함한다.In another variation, the robot further comprises a first actuator unit configured to actuate a cleaning brush. In another variation, the robot further comprises a second actuator unit configured to turn the robot in an environment.

다른 변형예에서, 상기 로봇은 상기 맵 상의 위치를 상기 제1 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 갖는다. 다른 변형예에서, 상기 로봇은 상기 맵 상의 위치를 상기 제2 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 포함한다.In another variation, the robot further comprises a processor configured to associate a position on the map with an actuation of the first actuator unit. In another variation, the robot further comprises a processor configured to associate a position on the map with an actuation of the second actuator unit.

본 개시에는 추가적인 양태와 구현예들이 기재되어 있다. 예를 들어, 일부 구현예들은 복수의 명령들이 저장된 비일시성 컴퓨터 판독 가능 저장 매체를 포함하며, 상기 명령들은, 상기 로봇을 동작시키도록 프로세싱 장치에 의해 실행 가능하고, 상기 명령들은, 상기 프로세싱 장치에 의해 실행될 때, 상기 프로세싱 장치로 하여금: 초기화 위치에서 상기 로봇의 제1 위치를 검출하고; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하고; 상기 초기화 위치에서 상기 로봇의 제2 위치를 검출하고; 그리고 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하도록 구성된다.Additional aspects and embodiments are disclosed in this disclosure. For example, some implementations include a non-transitory computer-readable storage medium having stored thereon a plurality of instructions, the instructions being executable by a processing device to operate the robot, When executed by the processor, causes the processing device to: detect a first position of the robot at an initialization position; Generating a map of the navigable path and the surrounding environment while demonstrating a navigable path to the robot starting from the initialization position; Detect a second position of the robot at the initialization position; And to cause the robot to autonomously navigate at least a portion of the navigable path from the initialization position.

일부 구현예에서, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 오류들에 대해 상기 생성된 맵을 평가하게 하고, 상기 오류들에 적어도 부분적으로 기초하여 상기 로봇에 상기 내비게이션가능한 경로를 다시 데모하도록 사용자에게 요청하게 하는 명령을 더 포함한다. 일부 구현예에서, 상기 오류들은 맵에서의 상기 내비게이션가능한 경로의 불연속성과 상기 맵에서의 상기 주위 환경에서의 불연속성 중의 적어도 하나를 포함한다. 일부 구현예에서, 상기 오류들은 적어도 중복 물체들을 포함한다. 일부 구현예에서, 상기 오류들은 폐루프를 형성하는데 있어서의 실패를 포함한다. 일부 구현예에서, 상기 오류들은 상기 맵에서의 소정의 오류 패턴들을 포함한다.In some embodiments, when executed by the processing device, the processing device may cause the processing device to evaluate the generated map for errors, and to re-demote the navigable path to the robot based at least in part on the errors To the user. In some implementations, the errors include at least one of a discontinuity of the navigable path in the map and a discontinuity in the environment in the map. In some implementations, the errors include at least duplicate objects. In some implementations, the errors include failures in forming a closed loop. In some implementations, the errors include certain error patterns in the map.

일부 구현예에서, 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 맵에서의 오류를 정정하게 하는 명령을 더 포함한다. 일부 구현예에서, 오류의 정정은 상기 맵에서의 오류들 중의 적어도 하나를 정정된 맵의 적어도 일부와 연관시키는 기계 학습을 포함한다.In some implementations, the non-transitory computer readable storage medium further comprises instructions for causing the processing device to correct errors in the map when executed by the processing device. In some implementations, the correction of errors includes machine learning that associates at least one of the errors in the map with at least a portion of the corrected map.

일부 구현예에서, 비일시성 컴퓨터 판독 가능 저장 매체는 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 로봇이 상기 내비게이션가능한 경로를 자율적으로 내비게이션하는 동안에 일시적으로 놓인 장애물을 피하도록 명령들을 제공하게 하는 명령을 더 포함한다. 일부 구현예에서, 비일시성 컴퓨터 판독 가능 저장 매체는 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하게 하는 명령들을 더 포함한다. 일부 구현예에서, 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않는 결정은 장애물을 피하는 결정을 포함한다.In some embodiments, the non-transitory computer-readable storage medium, when executed by the processing device, causes the processing device to provide instructions to avoid a temporarily placed obstacle while the robot is autonomously navigating the navigable path Command. In some implementations, the non-transitory computer readable storage medium further comprises instructions, when executed by the processing device, to cause the processing device to determine not to autonomously navigate at least a portion of the navigable path. In some implementations, the decision not to autonomously navigate at least a portion of the navigable path includes a determination to avoid an obstacle.

일부 구현예에서, 상기 로봇은 상기 프로세싱 장치로 하여금 사용자 인터페이스로부터 내비게이션가능한 맵의 선택을 수신하게 하도록 구성된 명령을 더 포함한다. 일부 구현예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 내비게이션가능한 경로 및 주위 환경의 맵과 상기 초기 위치를 연관시키게 하는 명령들을 포함한다.In some embodiments, the robot further comprises instructions configured to cause the processing device to receive a selection of a navigable map from a user interface. In some embodiments, the non-temporal computer-readable storage medium includes instructions that, when executed by the processing device, cause the processing device to associate the initial location with a map of a navigable path and environment.

일부 구현예에서, 상기 로봇을 자율적으로 내비게이션하게 하는 것은 상기 프로세싱 장치로 하여금 상기 내비게이션가능한 경로 및 주위 환경의 맵을 상기 초기화 위치와 연관하는 것에 적어도 부분적으로 기초하여 상기 내비게이션가능한 경로를 결정하게 하도록 구성된 명령을 더 포함한다. 일부 구현예에서, 로봇이 자율적으로 내비게이션하도록 하는 것은 상기 프로세싱 장치로 하여금 상기 생성된 맵에 적어도 부분적으로 기초하여 내비게이션하게 하도록 구성된 명령을 더 포함한다. In some embodiments, having the robot autonomously navigate is configured to cause the processing device to determine the navigable path based at least in part on associating the map of the navigable path and the environment with the initialization position Command. In some embodiments, having the robot autonomously navigate further comprises instructions configured to cause the processing device to navigate based at least in part on the generated map.

일부 구현예에서, 상기 로봇은 플로어 청소기다. 일부 구현예에서, 상기 로봇은 플로어 스크러버이다.In some embodiments, the robot is a floor cleaner. In some embodiments, the robot is a floor scrubber.

일부 구현예에서, 상기 생성된 맵은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 적어도 일부분을 나타내는 표시를 포함한다. 일부 구현예에서, 상기 행동은 플로어를 청소하는 것이다. 일부 구현예에서, 상기 행동은 터닝이다.In some implementations, the generated map includes an indication of at least a portion of an action performed by the robot on the navigable path. In some implementations, the action is to clean the floor. In some implementations, the behavior is turning.

일부 구현예에서, 내비게이션가능한 경로 및 주위 환경의 맵의 생성은 센서로 주위 환경을 센싱하도록 구성된 명령을 더 포함한다. 일부 구현예에서, 내비게이션가능한 경로 및 주위 환경의 맵의 생성은 3차원 센서로 주위 환경을 센싱하도록 구성된 명령을 더 포함한다.In some implementations, the generation of the map of the navigable path and the environment further includes instructions configured to sense the environment to the sensor. In some implementations, the generation of the navigable path and the map of the ambient environment further includes instructions configured to sense the ambient environment with the three-dimensional sensor.

일부 구현예에서, 비일시성 컴퓨터 판독 가능 매체는, 실행될 때, 상기 프로세싱 장치로 하여금 서버와 통신하게 하는 명령을 더 포함하고, 상기 로봇은 상기 서버에 맵을 전송하고 상기 맵의 품질의 검증을 수신한다.In some embodiments, the non-transitory computer readable medium further comprises instructions, when executed, to cause the processing device to communicate with a server, the robot transmitting a map to the server and receiving a verification of the quality of the map do.

다른 예로서, 일부 구현예들은, 초기화 위치에서 상기 로봇의 제1 위치를 검출하는 단계; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 단계; 상기 초기화 위치에서 상기 로봇의 제 2 위치를 검출하는 단계; 및 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함하는, 로봇을 동작시키는 방법을 포함한다.As another example, some implementations may include detecting a first position of the robot at an initialization position; Generating a map of the navigable path and the surrounding environment while demonstrating a navigable path to the robot starting from the initialization position; Detecting a second position of the robot at the initialization position; And causing the robot to autonomously navigate at least a portion of the navigable path from the initialization position.

일부 구현예에서, 상기 방법은 상기 오류들에 대해 상기 생성된 맵을 평가하는 단계; 및 상기 오류들에 적어도 부분적으로 기초하여, 상기 로봇에 상기 내비게이션가능한 경로를 다시 데모하도록 사용자에게 요청하는 단계를 더 포함한다. 일부 구현예에서, 오류들에 대해 상기 생성된 맵을 평가하는 단계는 중첩 물체를 식별하는 단계를 포함한다. 일부 구현예에서, 오류들에 대한 생성된 맵을 평가하는 단계는 폐루프를 형성하는 것의 실패를 식별하는 단계를 포함한다. In some implementations, the method includes evaluating the generated map for the errors; And requesting the user to demote the navigable path back to the robot based at least in part on the errors. In some implementations, evaluating the generated map for errors includes identifying overlapping objects. In some implementations, evaluating the generated map for errors includes identifying a failure in forming a closed loop.

일부 구현예에서, 오류들에 대한 생성된 맵을 평가하는 단계는 맵에서 소정의 패턴을 식별하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 서버에 상기 맵을 전송하고 서버로부터 상기 맵의 품질을 적어도 부분적으로 나타내는 신호를 수신하는 단계를 더 포함한다. In some implementations, evaluating the generated map for errors includes identifying a predetermined pattern in the map. In some implementations, the method further comprises transmitting the map to a server and receiving a signal from the server that at least partially indicates the quality of the map.

일부 구현예에서, 상기 방법은 상기 맵에서의 오류를 정정하는 단계를 더 포함한다. 일부 구현예에서, 오류를 정정하는 단계는 상기 맵에서의 오류들 중의 적어도 하나를 정정된 맵의 적어도 일부와 연관시키는 기계 학습을 포함한다. In some implementations, the method further comprises correcting errors in the map. In some implementations, correcting errors includes machine learning associating at least one of the errors in the map with at least a portion of the corrected map.

일부 구현예에서, 상기 방법은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하는 단계를 더 포함한다. 일부 구현예에서, 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하는 단계는 장애물을 피하도록 결정하는 단계를 포함한다.In some implementations, the method further comprises determining to not autonomously navigate at least a portion of the navigable path. In some embodiments, determining not to autonomously navigate at least a portion of the navigable path includes determining to avoid an obstacle.

일부 구현예에서, 상기 데모는 사용자로부터 제어 신호를 수신하는 것을 포함한다. 일부 구현예에서, 내비게이션가능한 경로 및 주위 환경의 맵의 생성은 센서로 주위 환경을 센싱하는 단계를 더 포함한다. 일부 구현예에서, 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 단계는 3차원 센서로 주위 환경을 센싱하는 단계를 더 포함한다.In some implementations, the demo includes receiving a control signal from a user. In some implementations, the generation of a map of the navigable path and the environment further includes sensing the ambient environment with the sensor. In some embodiments, generating the map of the navigable path and the environment further comprises sensing the ambient environment with a three-dimensional sensor.

일부 구현예에서, 상기 로봇으로 하여금 자율적으로 내비게이션하도록 하는 단계는 사용자 인터페이스로부터 내비게이션 경로의 선택을 수신하는 단계를 더 포함한다. 일부 구현예에서, 상기 로봇으로 하여금 자율적으로 내비게이션하게 하는 단계는 상기 내비게이션가능한 경로 및 주위 환경의 맵을 이용하여 내비게이션하는 단계를 포함한다.In some embodiments, the step of autonomously navigating the robot further comprises receiving a selection of a navigation path from the user interface. In some embodiments, the step of allowing the robot to autonomously navigate comprises navigating using a map of the navigable path and the environment.

일부 구현예에서, 상기 방법은 상기 내비게이션가능한 경로 및 주위 환경의 맵을 상기 초기화 위치와 연관시키는 단계를 더 포함한다. In some implementations, the method further comprises associating the map of the navigable path and the environment with the initialization location.

일부 구현예에서, 상기 방법은 상기 내비게이션가능한 경로 및 주위 환경의 맵을 상기 초기화 위치에 연관시키는 것에 적어도 부분적으로 기초하여 상기 내비게이션가능한 경로를 결정하는 단계를 더 포함한다.In some implementations, the method further comprises determining the navigable path based at least in part on associating the map of the navigable path and the environment to the initialization position.

일부 구현예에서, 상기 방법은 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 상기 생성된 맵 상에 매핑하는 단계를 더 포함한다. 일부 구현예에서, 상기 행동은 플로어를 청소하는 것을 포함한다. 일부 구현예에서, 상기 행동은 터닝을 포함한다.In some implementations, the method further comprises mapping actions performed by the robot on a navigable path onto the generated map. In some implementations, the action includes cleaning the floor. In some implementations, the behavior includes turning.

다른 예로서, 일부 구현예는 복수의 명령들이 저장된 비일시성 컴퓨터 판독 가능 저장 매체를 포함하며, 상기 명령들은, 상기 로봇을 동작시키도록 프로세싱 장치에 의해 실행 가능하고, 상기 명령들은, 상기 프로세싱 장치에 의해 실행될 때, 상기 프로세싱 장치로 하여금: 상기 초기화 위치로부터 출발하는 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하게 하도록 구성된다.As another example, some implementations may include a non-transitory computer readable storage medium having stored thereon a plurality of instructions, the instructions being executable by a processing device to operate the robot, , The processing device is configured to: generate a map of the navigable path and the surrounding environment while demonstrating the navigable path to the robot starting from the initialization position.

일부 구현예에서, 상기 생성된 맵은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 적어도 일부분을 나타내는 표시를 더 포함한다. 일부 구현예에서, 상기 행동은 플로어를 청소하는 것이다. 일부 구현예에서, 상기 로봇은 플로어 청소기다. 일부 구현예에서, 상기 내비게이션 경로의 데모는 컴퓨터 시뮬레이션이다. In some implementations, the generated map further includes an indication indicating at least a portion of an action performed by the robot on the navigable path. In some implementations, the action is to clean the floor. In some embodiments, the robot is a floor cleaner. In some implementations, the demo of the navigation path is a computer simulation.

다른 예로서, 일부 구현예는 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하도록 구성된 매핑 및 로컬라이제이션 유닛; 및 상기 맵을 이용하여 상기 로봇을 자율적으로 내비게이션하도록 구성된 내비게이션 유닛을 포함하는 로봇을 포함한다.As another example, some implementations may include a mapping and localization unit configured to generate a map of the navigable path and environment while demonstrating a navigable path to the robot starting from the initialization position; And a robot including a navigation unit configured to autonomously navigate the robot using the map.

일부 구현예에서, 상기 내비게이션 유닛은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하도록 더 구성된다. 일부 구현예에서, 자율적으로 내비게이션하지 않도록 하는 결정은 상기 환경의 장애물을 피하는 결정을 포함한다.In some implementations, the navigation unit is further configured to determine not to autonomously navigate at least a portion of the navigable path. In some implementations, the decision not to autonomously navigate includes a determination to avoid obstacles in the environment.

일부 구현예에서, 상기 로봇은 상기 로봇의 센서 범위 내에서 물체들을 적어도 부분적으로 표시하는 센서 데이터를 발생시키도록 구성되는 센서 유닛을 더 포함하고, 상기 내비게이션 유닛은 발생된 센서 데이터에 적어도 부분적으로 기초하여 자율적으로 내비게이션하도록 더 구성된다. In some embodiments, the robot further comprises a sensor unit configured to generate sensor data that at least partially displays objects within a sensor range of the robot, wherein the navigation unit is configured to generate sensor data based at least in part on the generated sensor data, So as to autonomously navigate.

일부 구현예에서, 상기 로봇은 브러시를 작동시키도록 구성된 제1 액추에이터 유닛을 더 포함한다. 일부 구현예에서, 상기 로봇은 로봇을 터닝시키도록 구성된 제 2 액추에터 유닛을 더 포함한다.In some embodiments, the robot further comprises a first actuator unit configured to actuate the brush. In some embodiments, the robot further includes a second actuator unit configured to turn the robot.

일부 구현예에서, 상기 로봇은 상기 맵 상에서의 위치를 상기 제1 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 포함한다. 일부 구현예에서, 상기 로봇은 상기 맵 상의 위치를 상기 제2 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 포함한다. In some embodiments, the robot further comprises a processor configured to associate a position on the map with an actuation of the first actuator unit. In some embodiments, the robot further comprises a processor configured to associate a location on the map with an operation of the second actuator unit.

일부 구현예에서, 로봇은 사용자로부터, 생성된 맵의 선택을 수신하도록 구성된 사용자 인터페이스를 더 포함하고, 상기 로봇은 수신된 상기 선택에 적어도 부분적으로 기초하여 자율적으로 내비게이션한다.In some implementations, the robot further comprises a user interface configured to receive a selection of the generated map from the user, and the robot autonomously navigates based at least in part on the received selection.

일부 구현예에서, 상기 로봇은 맵에서 오류를 정정하도록 구성된 맵 평가 유닛을 더 포함한다. In some implementations, the robot further includes a map evaluation unit configured to correct errors in the map.

일부 구현예에서, 상기 오류의 정정은 상기 맵에서의 오류들 중의 적어도 하나를 정정된 맵의 적어도 일부와 연관시키는 기계 학습을 포함한다.In some implementations, the correction of the error includes machine learning that associates at least one of the errors in the map with at least a portion of the corrected map.

일부 구현예에서, 상기 오류들은 적어도 중첩 물체를 포함한다. 일부 구현예에서, 상기 오류들은 폐루프를 형성하는데 있어서의 실패를 포함한다. 일부 구현예에서, 상기 오류들은 상기 맵에서의 소정의 패턴들을 포함한다.In some implementations, the errors include at least a superposition object. In some implementations, the errors include failures in forming a closed loop. In some implementations, the errors include certain patterns in the map.

일부 구현예에서, 상기 맵 평가 유닛은 상기 맵에서의 오류를 정정하도록 더 구성된다. 일부 구현예에서, 오류의 정정은 상기 맵에서의 오류들 중의 적어도 하나를 정정된 맵의 적어도 일부와 연관시키는 기계 학습을 포함한다.In some implementations, the map evaluation unit is further configured to correct errors in the map. In some implementations, the correction of errors includes machine learning that associates at least one of the errors in the map with at least a portion of the corrected map.

일부 구현예에서, 상기 프로세서는 내비게이션가능한 경로 및 주위 환경의 맵을 상기 초기화 위치와 연관시키도록 더 구성된다.In some implementations, the processor is further configured to associate a map of the navigable path and the environment with the initialization location.

일부 구현예에서, 상기 프로세서는 상기 내비게이션가능한 경로 및 주위 환경의 맵의 상기 초기화 위치로의 연관에 적어도 부분적으로 기초하여 상기 내비게이션가능한 경로를 결정하도록 더 구성된다. 일부 구현예에서, 로봇을 자율적으로 내비게이션하게 하도록 더 구성된 상기 내비게이션 유닛은 상기 프로세싱 장치로 하여금 상기 생성된 맵에 적어도 부분적으로 기초하여 내비게이션하게 하도록 구성된 명령을 더 포함한다.In some implementations, the processor is further configured to determine the navigable path based at least in part on an association of the navigable path and a map of the environment to the initialization position. In some embodiments, the navigation unit further configured to autonomously navigate the robot further comprises instructions configured to cause the processing device to navigate based at least in part on the generated map.

일부 구현예에서, 상기 로봇은 서버와 통신하도록 구성된 통신 유닛을 더 포함하고, 상기 로봇은 상기 서버로 상기 맵을 전송하고 상기 맵의 표시된 품질의 검증을 수신한다.In some embodiments, the robot further comprises a communication unit configured to communicate with the server, the robot transmitting the map to the server and receiving verification of the displayed quality of the map.

본 개시의 이들 및 다른 목적, 특징 및 특성뿐만 아니라 구조의 관련 요소의 작동 및 기능의 방법 및 제조의 부품과 경제성의 조합은 첨부된 도면을 참조한, 다음의 설명 및 첨부된 청구범위를 고려할 때 더욱 명백해질 것이다. 첨부된 청구 범위를 참조하며, 이들 모두는 본 명세서의 일부를 형성하며, 동일한 도면 부호는 다양한 도면에서 대응하는 부분을 나타낸다. 그러나, 도면은 단지 예시 및 설명의 목적을 위한 것이고, 본 개시의 한계의 정의로서 의도되지 않는다는 것을 명백히 알 수 있을 것이다. 명세서 및 청구의 범위에서 사용된 바와 같이, 단수 형태의 "한(a)", "하나(an)"및 "그(the)"는 문맥 상 명확하게 다르게 지시하지 않는 한, 복수 대상을 포함한다. BRIEF DESCRIPTION OF THE DRAWINGS These and other objects, features and characteristics of the present disclosure, as well as combinations of components and economies of operation and functionality of the operation and function of the related elements of the structure, will become more apparent when taken in conjunction with the following description and the appended claims It will become clear. Reference is made to the appended claims, all of which form a part hereof, wherein like reference numerals designate corresponding parts throughout the several views. It is to be expressly understood, however, that the drawings are for purposes of illustration and description only and are not intended as a definition of the limits of the disclosure. As used in the specification and claims, the singular forms "a", "an" and "the" include plural referents unless the context clearly dictates otherwise .

다음으로, 개시된 양태를 설명을 위해 그러나 제한하지 않도록 제공된 첨부 도면을 참조하여 개시된 양태들을 설명하며, 동일한 명칭은 동일한 요소를 나타낸다.
도 1a는 본 개시의 구현예에 따른, 로봇에 의하여 자율적으로 내비게이션되는 하나의 예시적인 경로의 오버헤드 도면(overhead view)이다.
도 1b는 본 개시의 구현예에 따른, 사용자가 로봇에 경로를 데모하는 것을 예시하는, 도 1a에 도시된 예시적인 경로의 오버헤드 도면이다.
도 1c는 도 1a 및 도1b에 도시된 로봇에 의해 자율적으로 내비게이션되는 대안적인 예시적인 경로의 오버헤드 도면이고, 로봇은 본 개시의 원리에 따라 대상물을 피한다.
도 2는 본 개시의 원리에 따른, 예시적인 경로를 자율적으로 내비게이션하도록 로봇을 훈련하기 위한 예시적인 방법의 프로세스 흐름도이다.
도 3는 본 개시의 일부 구현예에 따른, 예시적인 로봇의 기능 블록도이다.
도 4는 본 개시의 원리에 따른, 예시적인 로봇이 예시적인 경로를 학습한 후 주행하는 예시적인 방법의 프로세스 흐름도이다.
도 5a는 본 개시의 원리에 따른, 예시적인 경로를 티칭하거나 선택하기 위해 사용자로부터 입력을 수신하는 하나의 예시적인 사용자 인터페이스이다.
도 5b 내지 도 5d는 본 개시의 원리에 따른, 초기화 위치를 검출하고 예시적인 방향 및 예시적인 위치를 초기화하는 예시적인 로봇의 오버헤드 도면이다.
도 5e는 본 개시의 원리에 따른, 로봇이 에너지 패턴을 방출하는 예시적인 로봇의 오버헤드 도면이다.
도 6a는 본 개시의 원리에 따른, 사용자가 로봇에게 자율 내비게이션 경로를 데모하면서 로봇을 제어하는 것을 도시한 측면도이다.
도 6b는 본 개시의 원리에 따른, 플로어 스크러버(scrubber)에 대한 예시적인 몸체 형태의 다양한 측면도를 예시한다.
도 6c는 본 개시의 원리에 따른, 로봇의 예시적인 몸체 형태의 다양한 측면도를 예시한다.
도 6d는 본 개시의 원리에 따른, 로봇이 주변을 센싱하는 동안 사용자가 로봇을 제어하는 것의 오버헤드 도면이다.
도 7a 및 도 7b는 본 개시의 원리에 따른, 로봇이 환경에서 주행함에 따라 로봇에 의해 생성되는 다양한 예시적인 맵을 예시한다.
도 8a 및 도 8b는 맵에 나타날 수 있는 다양한 예시적인 매핑된 물체들을 예시하고, 도 8a는 서로 실질적으로 평행한 예시적인 물체들의 한 세트를 도시한 반면, 도 8b는 본 개시의 원리에 따른, 서로 실질적으로 평행하지 않은 예시적인 물체의 또 다른 세트를 나타낸다.
도 8c는 본 개시의 원리에 따른, 실질적으로 평행한 대상물에 대한 맵을 검색하는데 사용되는 마스크의 오버헤드 도면이다.
도 9a는 본 개시의 원리에 따른, 맵의 경로 부분들 사이의 예시적인 경로 불연속부의 오버헤드 도면이다.
도 9b는 본 개시의 원리에 따른, 맵의 물체 부분들 간의 물체 불연속부의 오버헤드 도면이다.
도 9c는 본 개시의 원리에 따른, 경로 불연속부와 물체 불연속부를 모두 포함하는 예시적인 불연속부를 갖는 매핑 부분의 오버헤드 도면이다.
도 10은 본 개시의 원리에 따른, 예시적인 중첩 물체를 갖는 매핑된 부분의 오버헤드 도면이다.
도 11a는 본 개시의 원리에 따른, 예시적인 폐루프 경로에서 주행하는 로봇의 오버헤드 도면이며, 예시적인 초기화 위치는 예시적인 종료 위치와 실질적으로 유사하다.
도 11b는 본 개시의 원리에 따른, 로봇이 정정된 경로와 매핑 에러를 연관시키는 예시적인 매핑 에러이다
도 12는 본 개시의 원리에 따른, 경로 선택을 위해 사용될 수 있는 예시적인 사용자 인터페이스이다.
도 13은 본 개시의 원리에 따른, 로봇을 동작시키는 예시적인 방법의 프로세스 흐름도이다.
본원에 개시된 모든 도면은 ⓒ Copyright 2017 Brain Corporation 판권 소유이다.
BRIEF DESCRIPTION OF THE DRAWINGS In the following, aspects disclosed with reference to the accompanying drawings, provided so as not to limit the disclosed aspects for purposes of explanation, are designated by the same names.
FIG. 1A is an overhead view of one exemplary path that is autonomously navigated by a robot, in accordance with an implementation of the present disclosure. FIG.
1B is an overhead view of the exemplary path shown in FIG. 1A, illustrating a user demonstrating a path to a robot, in accordance with an implementation of the present disclosure.
FIG. 1C is an overhead view of an alternative exemplary path that is autonomously navigated by the robot shown in FIGS. 1A and 1B, and the robot avoids the object in accordance with the principles of the present disclosure.
2 is a process flow diagram of an exemplary method for training a robot to autonomously navigate an exemplary path, in accordance with the principles of the present disclosure;
Figure 3 is a functional block diagram of an exemplary robot, in accordance with some embodiments of the present disclosure.
4 is a process flow diagram of an exemplary method of running after an exemplary robot has learned an exemplary path, in accordance with the principles of the present disclosure;
5A is an exemplary user interface for receiving input from a user to teach or select an exemplary path, in accordance with the principles of the present disclosure.
Figures 5B-D are overhead views of an exemplary robot for detecting an initialization position and initializing an exemplary orientation and exemplary position, in accordance with the principles of the present disclosure;
5E is an overhead view of an exemplary robot in which the robot emits an energy pattern, in accordance with the principles of the present disclosure;
6A is a side view illustrating a user controlling a robot while demonstrating an autonomous navigation path to the robot, in accordance with the principles of the present disclosure;
6B illustrates various side views of an exemplary body shape for a floor scrubber, in accordance with the principles of the present disclosure;
Figure 6C illustrates various side views of an exemplary body shape of a robot, in accordance with the principles of the present disclosure;
6D is an overhead view of a user controlling the robot while sensing the surroundings, in accordance with the principles of the present disclosure;
Figures 7A and 7B illustrate various exemplary maps generated by a robot as the robot travels in an environment, in accordance with the principles of the present disclosure.
Figures 8a and 8b illustrate various exemplary mapped objects that may appear in a map, Figure 8a illustrates one set of exemplary objects substantially parallel to each other, while Figure 8b illustrates a set of exemplary objects, And another set of exemplary objects that are not substantially parallel to one another.
Figure 8C is an overhead view of a mask used to retrieve a map for a substantially parallel object, in accordance with the principles of the present disclosure.
9A is an overhead view of an exemplary path discontinuity between path portions of a map, in accordance with the principles of the present disclosure;
9B is an overhead view of an object discontinuity between object portions of the map, in accordance with the principles of the present disclosure;
9C is an overhead view of a mapping portion having an exemplary discontinuity including both a path discontinuity and an object discontinuity, in accordance with the principles of the present disclosure;
10 is an overhead view of a mapped portion having an exemplary overlapping object, in accordance with the principles of the present disclosure;
11A is an overhead view of a robot running in an exemplary closed-loop path, in accordance with the principles of the present disclosure, wherein the exemplary initialization position is substantially similar to an exemplary ending position.
11B is an exemplary mapping error that relates the mapping error to the corrected path of the robot, in accordance with the principles of the present disclosure
Figure 12 is an exemplary user interface that may be used for path selection, in accordance with the principles of this disclosure.
13 is a process flow diagram of an exemplary method of operating a robot, in accordance with the principles of the present disclosure;
All drawings herein are © Copyright 2017 Brain Corporation All rights reserved.

다음으로, 본원에 개시된 신규한 시스템, 장치, 방법의 다양한 양태를 첨부된 도면을 참조하여 보다 상세히 설명한다. 본 개시는 하지만 많은 다른 형태로 구현될 수 있으며, 본 개시를 통하여 제시되는 임의의 특정 구조 또는 기능에 한정되는 것으로 해석되어서는 안된다. 오히려, 이러한 양태는 본 개시가 충실하고 완전하며 당업자에게 본 개시의 범위를 완전히 전달하기 위해 제공된다. 본원의 교시에 기초하여, 당업자는, 본 개시의 범위가, 본 개시의 임의의 다른 양태와 독립적으로 구현되든 또는 결합하여 구현되든, 본원에 개시된 신규한 시스템, 장치, 및 방법의 임의의 양태를 포괄하도록 의도되는 것으로 이해하여야 한다. 예를 들어, 본원에서 설명된 어떠한 수의 양태를 이용하여 장치가 구현될 수 있으며 방법이 실시될 수 있다. 또한, 본 개시의 범위는 본원에 설명되는 본 개시의 다양한 양태에 부가하여 또는 그 외에, 다른 구조, 기능성, 또는 구조 및 기능성을 이용하여 실시되는 이러한 장치 또는 방법을 포괄하도록 의도된다. 본원에 개시된 임의의 양태는 청구항의 하나 이상의 구성요소에 의해 구현될 수 있는 것으로 이해하여야 한다.Next, various aspects of the novel systems, apparatus, and methods disclosed herein will be described in more detail with reference to the accompanying drawings. This disclosure, however, may be embodied in many different forms and should not be construed as limited to any specific structure or function presented throughout this disclosure. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Based on the teachings herein, those skilled in the art will readily appreciate that any scope of the present disclosure, whether embodied independently or in combination with any other aspects of the disclosure, may be embodied in any of the novel systems, And are intended to be inclusive. For example, an apparatus may be implemented using any number of aspects set forth herein and methods may be practiced. Also, the scope of this disclosure is intended to cover such apparatus or methods that are implemented using other structure, functionality, or structure and functionality in addition to or in addition to the various aspects of the disclosure described herein. It is to be understood that any aspect of the disclosure described herein may be embodied by one or more elements of the claims.

본원에서 특정의 구현예들이 설명되지만, 이 구현예들의 많은 변형들과 치환들은 본 개시의 범위에 해당한다. 이 구현예들의 일부 이점과 장점들이 언급되지만, 본 개시의 범위는 특정의 이점, 용도, 및/또는 목적에 한정되는 것으로 의도되지 않는다. 상세한 설명과 도면들은 한정적이기 보다는 본 개시를 단지 예시하는 것이며, 본 개시의 범위는 첨부된 청구범위와 그 균등물에 의하여 정의된다.While certain implementations have been described herein, many variations and permutations of these implementations fall within the scope of the present disclosure. While certain advantages and advantages of these embodiments are mentioned, the scope of the present disclosure is not intended to be limited to any particular advantage, use, and / or purpose. The description and drawings are merely illustrative of the present disclosure rather than limiting, and the scope of the present disclosure is defined by the appended claims and their equivalents.

본 개시는 자율 내비게이션용의 로봇을 동작시키는 개선된 시스템 및 방법을 제공한다. 본원에서 사용될 때, 로봇은 복잡한 일련의 행동을 자동으로 수행하도록 구성된 기계적 또는 가상적 실체를 포함할 수 있다. 일부 경우에, 로봇은 컴퓨터 프로그램 또는 전자 회로에 의해 안내되는 전자기계적(electro-mechanical) 기계일 수 있다. 일부 경우에, 로봇은 자율 내비게이션용으로 구성된 전자기계적 기계를 포함할 수 있으며, 로봇은 거의 또는 전혀 사용자 제어 없이, 한 위치에서 다른 위치로 이동할 수 있다. 이러한 자율적인 내비게이션 로봇들은 자율 자동차, 플로어 청소기(예를 들어, 플로어 스크러버, 진공청소기 등), 로버, 드론 등을 포함할 수 있다. 일부 구현예에서, 본 개시에 기재된 시스템 및 방법의 일부는 가상 환경으로 구현될 수 있으며, 가상 로봇이 물리적 세계의 특징을 갖는 시뮬레이션된 환경에서 (예를 들어, 컴퓨터 시뮬레이션에서) 데모된 경로를 학습할 수 있다. 이들 경로를 학습한 후, 본 개시에 설명되는 시스템 및 방법을 이용하여 시뮬레이션된 환경에서 및/또는 실제 세계에서 학습된 경로를 자율적으로 내비게이션할 수 있다.The present disclosure provides an improved system and method for operating a robot for autonomous navigation. As used herein, a robot may comprise a mechanical or virtual entity configured to automatically perform a complex series of actions. In some cases, the robot may be an electro-mechanical machine that is guided by a computer program or electronic circuitry. In some cases, the robot may include an electromechanical machine configured for autonomous navigation, and the robot may move from one position to another, with little or no user control. Such autonomous navigation robots may include autonomous vehicles, floor cleaners (e.g., floor scrubbers, vacuum cleaners, etc.), rovers, drones, and the like. In some implementations, some of the systems and methods described in this disclosure may be implemented in a virtual environment, and a virtual robot may learn a demo path in a simulated environment (e.g., in a computer simulation) can do. After learning these paths, the systems and methods described in this disclosure can be used to autonomously navigate the learned paths in a simulated environment and / or in the real world.

다음으로, 본 개시의 시스템 및 방법의 다양한 실시예와 변형예의 상세한 설명을 제공한다. 로봇 플로어 청소기의 상황에서 주로 설명하지만, 본원에 포함된 설명된 시스템과 방법은, 예를 들어, 임의의 자율적으로 내비게이션하는 로봇을 포함하여, 다른 로봇에 사용될 수 있다. 본 개시의 내용을 제공받은 당업자는 본원에 기재된 기술에 대한 수많은 다른 예시적인 구현예 또는 용도를 용이하게 예견할 수 있을 것이다.The following provides a detailed description of various embodiments and variations of the systems and methods of this disclosure. Although primarily described in the context of a robot floor cleaner, the systems and methods described herein can be used with other robots, including, for example, any autonomously navigating robots. Those skilled in the art having the content of this disclosure will readily be able to anticipate numerous other exemplary embodiments or uses of the techniques described herein.

바람직하게, 본 개시의 시스템 및 방법은 적어도: (i) 환경 특정 프로그래밍에 대한 필요성을 감소시키고; (ii) 로봇을 프로그래밍할 고도의 숙련된 기술자에 대한 필요성을 감소시키고; (iii) 일반적으로 프로그래밍된 로봇으로부터 주문형 성능을 제공하고; (iv) 작업 특화 프로그래밍(예들 들어, 청소를 위해 장애물을 얼마나 가깝게 접근하는지 등) 에 대한 필요성을 제거하거나 또는 감소시키고; 그리고 (v) 로봇의 효과적인 자율 내비게이션을 가능하게 한다. 다른 이점은, 본 개시의 내용을 제공받은 당업자가 용이하게 구별할 수 있다.Preferably, the system and method of the present disclosure comprise at least: (i) reducing the need for environment specific programming; (ii) reduce the need for a highly skilled technician to program the robot; (iii) provide custom performance from a generally programmed robot; (iv) eliminate or reduce the need for task-specific programming (e.g., how close to approaching obstacles for cleaning); And (v) enable effective autonomous navigation of the robot. Other advantages are readily apparent to those skilled in the art having the benefit of the present disclosure.

예를 들어, 데모에 의하여 경로를 주행하도록 로봇을 훈련함으로써, 사용자는 미리 모든 경로를 프로그래밍할 필요가 없다. 바람직하게, 이는 사용자로 하여금 사용자가 미리 예상하지 않았던 환경을 내비게이션하도록 로봇을 훈련하는 것을 가능하게 한다. 또한, 사용자는 로봇을 훈련하기 위해 임의의 특정의 전문적 지식을 활용할 필요가 없다. 예를 들어, 사용자는 컴퓨터 과학을 알거나 및/또는 로봇을 프로그래밍하는 방법을 교육받을 필요가 없다. 대신, 사용자는 로봇이 하기를 원하는 작업을 어떻게 수행하는지를 단지 알아도 된다. 예를 들어, 로봇이 플로어 청소기인 경우, 사용자는 어떻게 플로어를 청소하고 무엇을 로봇에게 데모할 수 있는지만 알면 된다.For example, by training a robot to traverse a path by way of a demo, the user does not have to program all the paths in advance. Preferably, this enables the user to train the robot to navigate an environment that the user did not expect in advance. In addition, the user does not need to utilize any specific expertise to train the robot. For example, a user does not need to be trained in knowing computer science and / or programming robots. Instead, you just know how the robot performs the tasks you want to do. For example, if the robot is a floor cleaner, you just need to know how to clean the floor and demonstrate to the robot.

일부 경우, 경로를 주행하도록 로봇을 훈련시키면 로봇이 각 사양에서 식별하고 프로그래밍하지 않고도 특정 작업을 사양에 맞게 수행할 수 있다. 예시로서, 로봇이 플로어 세정(scrubbing) 유닛인 경우, 플로어 세정 유닛이 벽, 선반 등으로부터 일정 거리를 구동하는 것이 바람직할 수 있다. 사용자는 로봇을 훈련할 때 이들 거리를 데모할 수 있으며, 일부 경우에는 로봇은 이들 거리를 반복할 수 있다.In some cases, training the robot to travel along the path allows the robot to perform specific tasks on a specification without identifying and programming in each specification. As an example, if the robot is a floor scrubbing unit, it may be desirable for the floor cleaner unit to drive a distance from a wall, shelf, and the like. Users can demonstrate these distances when training robots, and in some cases robots can repeat these distances.

더욱이, 내비게이션가능한 경로를 학습할 수 있는 로봇을 훈련하는 것은, 로봇을, 특정의 환경을 효율적으로 내비게이션하도록 특별히 프로그래밍시키면서 또한 많은 환경에서 수행하도록 일반적으로 프로그래밍시킬 수 있게 한다. 유리하게는, 이는 이러한 로봇이 특정 애플리케이션에서 최적화되고 동시에 다양한 애플리케이션에서 수행할 수 있는 능력 및 유연성을 갖는 이점을 가질 수 있게 한다.Moreover, training robots that can learn navigable paths allows robots to be programmed generally to perform in a number of environments while specifically programming to efficiently navigate a particular environment. Advantageously, this allows the robot to be optimized for a particular application and at the same time have the advantage of having the ability and flexibility to perform in various applications.

일부 구현예에서, 맵 및 경로는 내비게이션 전에 검증 및/또는 승인될 수 있다. 이 검증(verification) 및/또는 승인(validation)은 맵 및/또는 경로 품질이 좋지 않아 로봇이 벽 및/또는 장애물에 충돌할 수 있는 사고 및/또는 상황을 방지할 수 있다.In some implementations, the maps and paths may be verified and / or approved prior to navigation. This verification and / or validation can prevent accidents and / or situations in which the robot can collide with the walls and / or obstacles due to poor map and / or path quality.

도 1a는 이러한 개시의 구현예를 통하여 로봇(102)에 의하여 자율적으로 내비게이션되는 예시적인 경로(106)의 오버헤드 도면을 예시한다. 로봇(102)은 다양한 물체(108, 110, 112, 118)을 포함할 수 있는 환경(100)을 통하여 자율적으로 내비게이션할 수 있다. 로봇(102)은 초기화 위치(104)에서 출발하여 종료 위치(114)에서 종료할 수 있다.FIG. 1A illustrates an overhead view of an exemplary path 106 autonomously navigated by a robot 102 through an implementation of this disclosure. The robot 102 may autonomously navigate through the environment 100, which may include various objects 108, 110, 112, 118. The robot 102 may start at the initialization position 104 and end at the ending position 114. [

예시로서, 일부 구현예에서, 로봇(102)은 로봇 플로어(floor) 스크러버, 진공 청소기, 스티머(steamer), 몹(mop), 스위퍼(sweeper) 등과 같은 로봇 플로어 청소기일 수 있다. 환경(100)은 청소되기를 원하는 플로어를 갖는 공간일 수 있다. 예를 들어, 환경(100)은 상점, 창고, 사무실 빌딩, 집, 저장 시설 등일 수 있다. 물체(108, 110, 112, 118) 중의 하나 이상은 플로어 위에 있을 수 있거나 또는 환경을 통하여 내비게이션할 수 있는 로봇의 능력을 방해할 수 있는 선반, 디스플레이, 물체, 품목, 사람, 동물 또는 어떤 다른 실체 또는 물건일 수 있다. 경로(106)는 로봇(102)에 의하여 주행되는 청소 경로일 수 있다. 경로(106)은 예시적인 경로(106)에 도시된 바와 같은 물체들(108, 110, 112, 118) 사이를 위브하는(weave) 경로를 따를 수 있다. 예를 들어, 물체들(108, 110, 112, 118)이 상점의 선반들인 경우, 로봇(102)은 상점의 복도를 따라 가면서 복도의 플로어를 청소할 수 있다. 그러나, 한정됨이 없이, 장애물없는 플로어 영역 및/또는 사용자가 플로어를 청소하기 위하여 사용할 수 있는 임의의 청소 경로를 따라서 앞뒤로 위브하는 것과 같은, 다른 경로들을 또한 생각할 수 있다. 따라서, 각각 도 1a, 도 1b, 및 도 1c에 예시된 경로들(106, 116, 126) 중의 하나 이상은 예시된 바와 같이 다르게 나타날 수 있으며 단지 예시적 예로서 의미된다. 예시된 바와 같이, 환경(100)의 한 예시가 도시되어 있으나, 환경(100)은 어떠한 수의 (예를 들어, 방 또는 건물의 어떤 크기, 구성, 및 레이아웃의) 형태들 및 배열들을 취할 수 있으며 본 개시에 의하여 한정되지 않는다.By way of illustration, in some implementations, the robot 102 may be a robot floor cleaner, such as a robot floor scrubber, vacuum cleaner, steamer, mop, sweeper, and the like. The environment 100 may be a space having a floor to be cleaned. For example, the environment 100 may be a store, a warehouse, an office building, a house, a storage facility, and the like. One or more of the objects 108, 110, 112, 118 may be a shelf, display, object, item, person, animal or any other entity that may be on the floor or interfere with the robot's ability to navigate through the environment Or something. The path 106 may be a cleaning path traveled by the robot 102. The path 106 may follow a weave path between the objects 108, 110, 112, 118 as shown in the exemplary path 106. For example, if the objects 108, 110, 112, 118 are shelves of a store, the robot 102 may clean the floor of the hallway along the corridor of the store. However, other routes may also be contemplated, such as unobstructed floor areas and / or weaving back and forth along any cleaning path that a user may use to clean the floor, without limitation. Thus, one or more of the paths 106, 116, 126 illustrated in FIGS. 1A, 1B, and 1C, respectively, may appear differently, as illustrated, and are only meant by way of example. As illustrated, an example of an environment 100 is shown, but an environment 100 can take any number of forms and arrangements (e.g., of any size, configuration, and layout of a room or building) And is not limited by this disclosure.

경로(106)에서, 로봇(102)은 그 출발 지점일 수 있는 초기화 위치(104)에서 시작하여, 청소를 멈출 수 있는 종료 위치(114)에 도달할 때까지 경로(106)를 따라서 청소할 수 있다. 종료 위치(114)는 도 6a를 참조하여 설명되는 바와 같이 사용자(604)에 의하여 지정될 수 있다. 일부 경우에, 종료 위치(114)는 이후에 로봇(102)이 플로어의 원하는 영역을 청소하는 경로(106)에서의 위치일 수 있다. 일부 경우에, 종료 위치(114)는 로봇(102)이 청소의 실질적으로 폐루프를 수행하고 그 출발 지점, 즉, 초기화 위치(104)에서 종료하도록 초기화 위치(104)와 동일하거나 실질적으로 유사할 수 있다. 일부 경우에, 종료 위치(114)는, 임시 주차 장소, 저장실 또는 벽장 등과 같은 로봇(102) 보관을 위한 위치일 수 있다. 일부 경우에, 종료 위치(114)는 사용자(604)가 청소하고 로봇(102)을 훈련하기를 중지하기로 결정한 지점일 수 있다. 로봇(102)은 경로(106)를 따라서 모든 지점에서 청소할 수도, 또는, 하지 않을 수도 있다. 예를 들어, 로봇(102)이 로봇 플로어 스크러버인 경우에, 로봇(102)의 청소 시스템(예를 들어, 물 유동, 청소 브러시 등)이 (예를 들어, 특정 방향으로 또는 경로(106)을 따라서 특정의 순서로 이동하면서) 경로(106)의 일부 부분들에서만 동작하고 있지만, 다른 부분들 및/또는 일부 궤적들에서는 동작하지 않을 수도 있다. 이러한 것은 플로어의 단지 일부 영역들만이 청소하고 다른 영역들은 청소하지 않을 때에 바람직할 수 있다. 이러한 경우에, 로봇(102)은 사용자(604)가 로봇(102)에게 데모한 영역에서 청소 시스템을 턴온할 수 있으며, 그렇지 않으면, 청소 시스템을 턴오프할 수 있다.In path 106, the robot 102 may clean along the path 106, starting at an initialization position 104, which may be its starting point, until it reaches an ending position 114 where cleaning can be stopped . End position 114 may be designated by user 604 as described with reference to Fig. 6A. In some cases, the end position 114 may be a position in the path 106 where the robot 102 then sweeps the desired area of the floor. In some cases, the end position 114 may be the same or substantially similar to the initial position 104 so that the robot 102 performs a substantially closed loop of cleaning and terminates at its starting point, i.e., . In some cases, the end position 114 may be a position for storing the robot 102, such as a temporary parking place, a storage room, or a closet. In some cases, the end position 114 may be the point at which the user 604 decides to clean and stop training the robot 102. The robot 102 may or may not clean at all points along the path 106. For example, when the robot 102 is a robot floor scrubber, the cleaning system (e.g., water flow, cleaning brush, etc.) of the robot 102 may be moved Thus moving in a particular order), but may not operate in other parts and / or in some trajectories. This may be desirable when only some areas of the floor are cleaned and other areas are not cleaned. In this case, the robot 102 may turn on the cleaning system in the area that the user 604 has demonstrated to the robot 102, or else it may turn off the cleaning system.

도 1b는 로봇(102)이 환경(100)에서 자율적으로 경로(106)을 주행하기 전 로봇(102)에 경로(116)를 데모하는 사용자(604)의 오버헤드 도면을 예시한다. 경로(116)을 데모할 때에, 사용자는 초기화 위치(104)에서 로봇(102)을 출발시킬 수 있다. 로봇(102)은 그후 물체들(108, 110, 112, 118) 주위에서 위브할 수 있다. 로봇(102)은 종료 위치(114)에서 최종적으로 종료할 수 있다. 일부 경우에, 자율적으로 내비게이션되는 경로(106)는 데모된 경로(116)과 정확히 동일할 수 있다. 일부 경우에, 경로(106)는 경로(116)과 정확히 동일하지 않을 수 있으나, 실질적으로 유사할 수 있다. 예를 들어, 로봇(102)이 경로(106)을 내비게이션함에 따라, 로봇(102)은 그 주위와 관련이 있는지를 센싱하기 위하여 센서들(예를 들어, 도 5b 내지 도 5e를 참조하여 설명되는 바와 같은 센서들(560A-D) 및/또는 센서들(568A-B))을 이용할 수 있다. 이러한 센싱은 로봇(102)이 데모된 그리고 로봇(102)이 따르도록 훈련된 정확한 경로(102)를 내비게이션하지 않도록 야기하는 일부 경우에 정확하지 않을 수 있다. 일부 경우에, 선반의 이동 및/또는 선반 위의 품목에 있어서의 변화와 같은, 환경(100)에의 작은 변화가, 로봇이 경로(106)를 자율적으로 내비게이션할 때 로봇(102)으로 하여금 경로(116)를 벗어나도록 할 수 있다. 다른 예로서, 도 1c에 예시된 바와 같이, 로봇(102)은 데모된 경로(116)에 적어도 부분적으로 기초하여, 로봇(102)에 의하여 주행되는 다른 경로일 수 있는 경로(126)를 자율적으로 내비게이션할 때 물체들(130, 132)을 우회하여 피할 수 있다. 물체들(130, 132)은 사용자가 경로(116)를 데모했을 때 존재하지 (그리고 회피되지) 않았을 것이다. 예를 들어, 물체(130, 132)는 일시적으로 놓인 및/또는 변하는 물체/품목, 및/또는 환경에 대해 변하는 및/또는 동적인 변화일 수 있다. 다른 예로서, 사용자(604)가 경로(116)를 데모할 때에 잘못했을 수도 있다. 예를 들어, 사용자(604)가 벽, 선반, 물체, 장애물 등에 충돌하거나 추돌했을 수도 있다. 이러한 경우에, 로봇(102)은 메모리(예를 들어, 메모리(302))에 벽, 선반, 물체, 장애물 등에의 충돌 및/또는 추돌과 같이, 로봇이 정정할 수 있는 하나 이상의 행동들을 저장할 수 있다. 그후, 로봇(102)이 데모된 경로(116)을 경로(126)로서 자율적으로 내비게이션하는 동안에, 로봇(102)은 자율적으로 내비게이션할 때 이러한 행동들을 수정하거나 및/또는 그것들을 수행하지 않을 (예를 들어, 벽, 선반, 물체, 장애물 등에 충돌하거나 및/또는 추돌하지 않을) 수 있다. 이와 같이, 로봇(102)는 데모된 경로와 같이, 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정할 수 있다. 일부 구현예에서, 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하는 것은 장애물 및/또는 물체를 언제 피할지를 결정하는 것을 포함한다.1B illustrates an overhead view of a user 604 demonstrating path 116 to robot 102 before robot 102 autonomously traverses path 106 in environment 100. FIG. When demoting the path 116, the user may start the robot 102 at the initialization position 104. The robot 102 may then weave around the objects 108, 110, 112, 118. The robot 102 may ultimately be terminated at the end position 114. In some cases, the autonomously navigated path 106 may be exactly the same as the demoted path 116. In some cases, the path 106 may not be exactly the same as the path 116, but may be substantially similar. For example, as the robot 102 navigates the path 106, the robot 102 may be moved to sensors (e.g., as described with reference to Figures 5B-5E) to sense whether the robot 102 is related to its surroundings Sensors such as sensors 560A-D and / or sensors 568A-B). This sensing may not be accurate in some cases, causing the robot 102 to demonstrate and not to navigate the correct path 102 trained to follow by the robot 102. In some cases, a small change in the environment 100, such as a movement of the shelf and / or a change in items on the shelf, may cause the robot 102 to move along the path (s) when the robot autonomously navigates the path 106 116). As another example, as illustrated in Fig. 1C, the robot 102 may autonomously route a path 126, which may be another path traveled by the robot 102, based at least in part on the demoted path 116 Objects 130 and 132 can be bypassed and avoided during navigation. Objects 130 and 132 would not exist (and not be avoided) when the user demohed path 116. [ For example, objects 130 and 132 may be changes and / or dynamic changes to an object / item that is temporarily placed and / or changed, and / or the environment. As another example, the user 604 may have made a mistake when demoting the path 116. For example, the user 604 may have collided or collided with a wall, shelf, object, obstacle, or the like. In such a case, the robot 102 may store one or more behaviors that the robot can correct, such as collisions and / or collisions with walls, shelves, objects, obstacles, etc., to memory (e.g., memory 302) have. Thereafter, while the robot 102 is autonomously navigating the demoted path 116 as the path 126, the robot 102 may modify these behaviors when autonomously navigating and / or do not perform them (e.g., For example, collide and / or collide with walls, shelves, objects, obstacles, etc.). As such, the robot 102 may determine not to autonomously navigate at least a portion of the navigable path, such as the demo path. In some implementations, deciding not to autonomously navigate at least a portion of the navigable path includes determining when to avoid obstacles and / or objects.

이전에 언급된 바와 같이, 사용자가 경로(116)을 데모함에 따라, 사용자는, 어디서(예를 들어, 어떤 위치에서) 및/또는 어떤 궤적을 따라서 경로(116)을 따라서 청소할지 (그리고, 이어서 언제 로봇(102)가 경로(106)를 자율적으로 청소할지) 로봇(102)을 훈련하기 위하여, 로봇(102)의 청소 시스템을 턴온하고 턴오프하거나, 또는, 다른 행동들을 수행할 수 있다. 로봇은 이러한 행동들을 메모리(302)에 기록하고 이후에 자율적으로 내비게이션할 때 수행할 수 있다. 이러한 행동들은 터닝, 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트를 승하강시키기, 센서를 이동시키기, 센서를 켜거나 끄기 등과 같은, 로봇(102)이 수행할 수 있는 어떠한 행동들을 포함할 수 있다.As previously mentioned, as the user demonstrates path 116, the user can determine where to clean (e.g., at what location) and / or along a path along path 116 (E.g., when the robot 102 autonomously cleans the path 106), the cleaning system of the robot 102 may be turned on and off or other actions may be performed. The robot can perform these actions when writing these actions in the memory 302 and then autonomously navigating. These actions include turning, turning the water on and off, splashing water, turning the vacuum on or off, moving the vacuum hose position, moving the arms, lifting and lowering the lift, moving the sensor, turning the sensor on and off , And any actions that the robot 102 can perform.

도 2는 경로(106)을 자율적으로 내비게이션하도록 로봇(102)을 훈련하는 예시적인 방법(200)의 프로세스 흐름도를 예시한다. 부분(202)은 초기화 위치(104)에 로봇(102)을 위치시키는 것을 포함한다. 초기화 위치(104)로의 로봇(102)의 이러한 제 1 배치는 로봇(102)을 초기화 위치(104)로 이동시키기 위해 운전하거나, 원격 조종하거나, 밀거나, 아니면 제어하는 수위, 관리인, 또는 어떠한 다른 사람일 수 있는 사용자(604)(도 6을 참조하여 후에 기술됨)에 의하여 수행될 수 있다. 예를 들어, 사용자(604)는 제어 신호를 로봇(102)으로 전송할 수 있다. 로봇(102)은 이동을 위한 명령들로서 이러한 제어 신호들을 수신할 수 있다.FIG. 2 illustrates a process flow diagram of an exemplary method 200 for training a robot 102 to autonomously navigate a path 106. The portion 202 includes locating the robot 102 in the initialization position 104. This first arrangement of the robots 102 to the initialization position 104 may be used to control the robot 102 to move to the initialization position 104 or to remotely manipulate, push, or otherwise control the robot 102, May be performed by a user 604 (described later with reference to Fig. 6), which may be a person. For example, the user 604 may send a control signal to the robot 102. The robot 102 may receive these control signals as commands for movement.

도 2로 돌아가서, 부분(204)은 로봇(102)에게 내비게이션 경로(116)를 데모하는 것을 포함한다. 도 1b를 이용한 예시로서, 사용자(604)는, 한정됨이 없이, 경로(116)을 따라 로봇(102)을 운전하거나, 원격 조종하거나, 밀거나, 또는 아니면 제어함으로써 로봇(102)에게 데모할 수 있다. 예를 들어, 사용자(604)는 제어 신호를 로봇(102)에게 전송시킬 수 있다. 로봇(102)은 이동을 위한 명령으로서 이러한 제어 신호들을 수신할 수 있다. 복수의 이러한 이동은, 함께, 데모된 경로를 형성할 수 있다. 이런 식으로, 사용자(604)는 원하는 주행 경로를 로봇(102)에게 데모할 수 있다. 로봇 플로어 청소기의 상황에서, 데모된 경로(116)은 플로어를 청소하기 위한 원하는 경로일 수 있다. 이와 같이, 사용자(604)는 플로어를 청소하는 방법을 로봇에게 훈련시킬 수 있다.Returning to Fig. 2, the portion 204 includes demonstrating the navigation path 116 to the robot 102. 1B, the user 604 may demonstrate to the robot 102, without limitation, by driving, remotely manipulating, pushing, or otherwise controlling the robot 102 along path 116 have. For example, the user 604 may transmit a control signal to the robot 102. [ The robot 102 may receive these control signals as commands for movement. A plurality of such movements together can form a demo path. In this way, the user 604 can demonstrate the desired travel path to the robot 102. [ In the context of a robotic floor cleaner, the demoted path 116 may be a desired path to clean the floor. In this manner, the user 604 can train the robot to learn how to clean the floor.

도 2로 다시 돌아가서, 부분(206)은 다시 한번 초기화 위치(104)에 로봇(102)을 위치시키는 것을 포함한다. 초기화 위치(104)로의 로봇(102)의 이러한 제2 배치는 실질적으로 부분(204)의 데모 직후와 같은, 부분(204) 후의 후속시점에서, 또는 몇 시간 후, 며칠 후, 몇 주 후, 또는 사용자(604)가 플로어를 청소하기 원할 때마다와 같은, 얼마 후에 발생할 수 있다.Returning to Fig. 2, the portion 206 includes placing the robot 102 in the initialization position 104 once again. This second configuration of the robot 102 to the initialization position 104 may be performed at a later point in time after the portion 204, such as immediately after the demonstration of the portion 204, or a few hours, a few days, Such as whenever the user 604 wishes to clean the floor.

도 2로 다시 돌아가서, 부분(208)은 자율적인 내비게이션을 초기화하는 것을 포함한다. 일부 경우에, 사용자가 자율 내비게이션을 시작한 후에, 로봇(102)은 데모된 경로(116)와 실질적으로 유사할 수 있는 경로(106)(또는 일부의 경우에 경로(126))를 따라서 주행할 수 있다. 일부 구현예에서, 사용자(604)는 도 11a를 참조하여 기재되는 바와 같이 사용자 인터페이스(318) 상에서 데모된 경로를 선택할 수 있다. 도 1a를 이용한 예시로서, 로봇(102)은 그후 초기화 위치로부터 종료 위치(114)로 자율적으로 경로 또는 경로(106)와 실질적으로 비슷한 경로를 내비게이션할 수 있다.Returning to Fig. 2, portion 208 includes initiating autonomous navigation. In some cases, after the user initiates autonomous navigation, the robot 102 may travel along a path 106 (or path 126 in some cases) that may be substantially similar to the demoted path 116 have. In some implementations, the user 604 may select a demo path on the user interface 318 as described with reference to FIG. 11A. As an example using FIG. 1A, the robot 102 may then autonomously navigate a path substantially similar to the path or path 106 from the initialization position to the end position 114.

도 3은 일부 구현예에서, 예시적인 로봇(102)의 기능 블록도를 예시한다. 도 3에 예시된 바와 같이, 로봇(102)은 제어기(304), 메모리(302), 전력 공급부(306), 및 동작 유닛(308) 을 포함하며, 이들 각각은 서로, 그리고 서로의 구성 요소 및/또는 서브 구성요소에 동작가능하게 및/또는 통신가능하게 커플링될 수 있다. 제어기(304)는 로봇(102)에 의해 수행되는 다양한 동작들을 제어한다. 특정 구현예가 도 3에 예시되지만, 본 개시의 내용을 제공받는 당업자가 용이하게 알 수 있는 바와 같이, 그 아키텍처가 일부 구현예에서 변경될 수 있음을 알 수 있다.FIG. 3 illustrates, in some implementations, a functional block diagram of an exemplary robot 102. 3, the robot 102 includes a controller 304, a memory 302, a power supply 306, and an operation unit 308, each of which may be coupled to each other, 0.0 > and / or < / RTI > communicatively coupled to the subcomponent. The controller 304 controls various operations performed by the robot 102. Although a particular implementation is illustrated in FIG. 3, it will be appreciated that the architecture may be modified in some implementations, as will be readily apparent to those skilled in the art having the benefit of the present disclosure.

제어기(304)는 하나 이상의 프로세서들(예를 들어, 마이크로프로세서들) 및 다른 주변 장치들을 포함할 수 있다. 본원에서 사용될 때, 프로세서, 마이크로프로세서, 및 디지털 프로세서는 제한 없이, 디지털 신호 프로세서("DSPs"), 축소 명령 세트 컴퓨터("RISC"), 범용("CISC") 프로세서, 마이크로프로세서, 게이트 어레이(예를 들어, 필드 프로그래머블 게이트 어레이("FPGAs"), 프로그래머블 로직 장치("PLDs"), 재구성가능한 컴퓨터 패브릭("RCFs"), 어레이 프로세서, 보안 마이크로프로세서, 및 주문형 집적 회로("ASICs")와 같은 임의 유형의 디지털 프로세싱 장치를 포함할 수 있다. 이러한 디지털 프로세서는 단일 유니터리 집적 회로 다이 상에 포함되거나 또는 다수의 구성요소에 걸쳐서 분산될 수 있다.Controller 304 may include one or more processors (e.g., microprocessors) and other peripheral devices. As used herein, a processor, microprocessor, and digital processor may include, without limitation, a digital signal processor ("DSPs"), a reduced instruction set computer ("RISC"), a general purpose ("CISC" ("FPGAs"), programmable logic devices ("PLDs"), reconfigurable computer fabrics ("RCFs"), array processors, secure microprocessors, and application specific integrated circuits And the like. Such a digital processor may be included on a single unitary integrated circuit die or may be distributed across multiple components.

제어기(304)는 메모리(302)에 동작가능하게 및/또는 통신가능하게 결합될 수 있다. 메모리 (302)는 제한없이, 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 비휘발성 랜덤 액세스 메모리("NVRAM"), 프로그램 가능 판독 전용 메모리("PROM"), 전기적으로 소거 가능한 프로그램 가능 판독 전용 메모리("EEPROM"), DRAM(Dynamic Random-Access Memory), 모바일 DRAM, 동기 DRAM("SDRAM"), 이중 데이터 레이트 SDRAM(DDR/SDRAM), 확장 데이터 출력 RAM("EDO"), 고속 페이지 모드 RAM("FPM"), 레이턴시 감소 DRAM("RLDRAM"), 정적 RAM("SRAM"), "플래시" 메모리 (예를 들어, NAND/NOR), 멤리스터 메모리, 준정적 RAM("PSRAM") 등을 포함할 수 있다. 메모리 (302)는 컨트롤러 (304)에 명령 및 데이터를 제공할 수 있다. 예를 들어, 메모리 (302)는 로봇 (102)을 동작시키기 위해 프로세싱 장치(예를 들어, 제어기 (304))에 의해 실행 가능한 복수의 명령을 저장하는 비일시성 컴퓨터 판독 가능 저장 매체일 수 있다. 일부의 경우에, 명령들은 프로세싱 장치에 의해 실행될 때 프로세싱 장치로 하여금 본 개시에서 설명되는 다양한 방법, 특징 및/또는 기능을 수행하게 하도록 구성될 수 있다. 따라서, 제어기(304)는 메모리(302) 내에 저장된 프로그램 명령에 기초하여 논리적 및 산술적 동작들을 수행할 수 있다.The controller 304 may be operably and / or communicatively coupled to the memory 302. The memory 302 may be, without limitation, a read only memory ("ROM"), a random access memory ("RAM"), a nonvolatile random access memory ("NVRAM"), a programmable read only memory Erasable programmable read only memory ("EEPROM"), dynamic random-access memory (DRAM), mobile DRAM, synchronous DRAM ("SDRAM"), dual data rate SDRAM (DDR / SDRAM) Quot;), fast page mode RAM ("FPM"), latency decreasing DRAM ("RLDRAM"), static RAM ("SRAM"), flash memory (e.g., NAND / NOR) RAM ("PSRAM"), and the like. Memory 302 may provide commands and data to controller 304. For example, memory 302 may be a non-transitory computer readable storage medium that stores a plurality of instructions executable by a processing device (e.g., controller 304) to operate robot 102. In some cases, the instructions may be configured to cause the processing device to perform the various methods, features, and / or functions described in this disclosure when executed by the processing device. Thus, the controller 304 may perform logical and arithmetic operations based on program instructions stored in the memory 302. [

동작 유닛(308)은 본 개시에 기재된 다양한 동작들을 수행하기 위하여 제어기(304) 또는 다른 제어기에 결합될 수 있다. 일부 구현예에서, 동작 유닛들(308)에서의 모듈들 중 하나 이상이 포함될 수 있거나, 어느 것도 포함되지 않을 수 있다. 본 개시를 통하여, 다양한 제어기 및/또는 프로세서가 참조된다. 일부 구현예에서, 단일 제어기(예를 들어, 제어기(304))가 기재된 다양한 제어기 및/또는 프로세서로서 기능할 수 있다. 다른 구현예에서, 동작 유닛(308) 중 하나 이상에 특별히 사용되는 제어기 및/또는 프로세서와 같ㅇ느, 상이한 제어기들 및/또는 프로세서들이 사용될 수 있다. 제어기(304)는 동작 유닛(308)에 전력 신호, 제어 신호, 센서 신호, 질의 신호, 상태 신호, 데이터 신호, 전기 신호 및/또는 이산 및 아날로그 신호를 포함한, 어떠한 다른 바람직한 신호와 같은 신호를 전송하거나 및/또는 수신할 수 있다. 제어기(304)는 동작 유닛(308)을 조정하거나 및/또는 관리할 수 있거나, 및/또는 타이밍을 (예를 들어, 동기적으로 또는 비동기적으로) 설정하거나, 켜거나 끄거나, 전력 예산을 제어하거나, 네트워크 명령들을 수신/전송하거나, 및/또는 업데이트하거나, 펌웨어를 업데이트하거나, 질의 신호를 전송하거나, 상태를 수신 및/또는 전송하거나, 및/또는 로봇(102)의 특징(features)을 실행하기 위한 어떠한 동작들을 수행할 수 있다.The operation unit 308 may be coupled to the controller 304 or other controller to perform the various operations described in this disclosure. In some implementations, one or more of the modules in operational units 308 may be included, or none of them may be included. Throughout this disclosure, various controllers and / or processors are referenced. In some implementations, a single controller (e.g., controller 304) may function as the various controllers and / or processors described. In other implementations, different controllers and / or processors may be used, such as controllers and / or processors specifically used in one or more of the operational units 308. [ The controller 304 sends a signal such as a power signal, a control signal, a sensor signal, a query signal, a status signal, a data signal, an electrical signal, and / or any other desired signal, including discrete and analog signals, ≪ / RTI > Controller 304 may adjust and / or manage operation unit 308 and / or may set timing (e.g., synchronously or asynchronously), turn on or off, Or transmit / receive data to / from the robot 102, and / or receive, transmit, and / or update network parameters, update firmware, update query information, Can perform some operations to execute.

동작 유닛(308)은 로봇(102)를 위한 기능을 수행하는 다양한 유닛을 포함할 수 있다. 예를 들어, 동작 유닛(308)의 유닛들은 매핑 및 로컬라이제이션 유닛(312), 센서 유닛(314), 맵 평가 유닛(324), 액추에이터 유닛(318), 통신 유닛(316), 내비게이션 유닛(326), 및 사용자 인터페이스 유닛(322)을 포함할 수 있다. 동작 유닛(308)은 로봇의 다양한 기능성을 제공하는 다른 유닛을 또한 포함할 수 있다. 일부 경우에, 동작 유닛(308)의 유닛들은 소프트웨어로 또는 하드웨어로 또는 소프트웨어와 하드웨어로 인스턴스화될 수 있다. 예를 들어, 일부 경우에, 동작 유닛(308)의 유닛들은 제어기에 의해 실행되는 컴퓨터 구현 명령들을 포함할 수 있다. 일부 경우에, 동작 유닛(308)의 유닛들은 하드코딩된 로직을 포함할 수 있다. 예를 들어, 일부 경우에, 동작 유닛(308)의 유닛들은 제어기에 의해 실행되는 컴퓨터 실행 명령들, 및 하드코딩된 로직 모두를 포함할 수 있다. 동작 유닛(308)이 소프트웨어로 적어도 부분적으로 구현되는 경우, 동작 유닛(308)은 하나 이상의 기능성을 제공하도록 구성된 코드의 유닛들/모듈들을 포함할 수 있다.The operation unit 308 may include various units that perform functions for the robot 102. For example, the units of operation unit 308 may include a mapping and localization unit 312, a sensor unit 314, a map evaluation unit 324, an actuator unit 318, a communication unit 316, a navigation unit 326, And a user interface unit 322. The operation unit 308 may also include other units that provide various functionalities of the robot. In some cases, the units of operation unit 308 may be instantiated in software or in hardware or in software and hardware. For example, in some cases, units of operation unit 308 may include computer-implemented instructions that are executed by a controller. In some cases, the units of operation unit 308 may include hard-coded logic. For example, in some cases, the units of the operational unit 308 may include both computer-executable instructions executed by the controller, and hard-coded logic. When the operating unit 308 is at least partially implemented in software, the operating unit 308 may include units / modules of code that are configured to provide one or more functionality.

일부 구현예에서, 센서 유닛(314)은 로봇(102) 내에서 및/또는 그 주위에서 특징을 검출할 수 있는 시스템을 포함할 수 있다. 센서 유닛(314)은 로봇(102)의 내부 또는 외부에 있는 센서를 포함할 수 있거나 및/또는 부분적으로 내부 및/또는 부분으로 외부에 있는 구성요소를 가질 수 있다. 센서 유닛(314)은 소나, 라이다, 레이다, 레이저, 비디오 카메라, 적외선 카메라, 3D 센서, 3D 카메라, 및/또는 본 분야에 알려진 어떠한 다른 센서와 같은 외부 수용성 센서를 구비할 수 있다. 센서 유닛(314)은 가속계, 관성 측정 유닛, 주행거리 측정계, 자이로스코프, 속도계 등과 같은 자기 수용성(proprioceptive) 센서를 또한 포함할 수 있다. 일부 구현예에서, 센서 유닛(314)은 미가공 측정치(예를 들어, 전류, 전압, 저항, 게이트 로직 등) 및/또는 변환된 측정치(예를 들어, 거리, 각도, 장애물에서 검출된 지점 등)을 수집할 수 있다.In some implementations, the sensor unit 314 may include a system that is capable of detecting features within and / or around the robot 102. The sensor unit 314 may include sensors that are internal or external to the robot 102 and / or may have components that are partially internal and / or external to the part. The sensor unit 314 may comprise an external water soluble sensor such as a sonar, a radar, a radar, a laser, a video camera, an infrared camera, a 3D sensor, a 3D camera, and / or any other sensor known in the art. The sensor unit 314 may also include a proprioceptive sensor such as an accelerometer, an inertial measurement unit, a mileage meter, a gyroscope, a speedometer, and the like. In some implementations, the sensor unit 314 may be configured to measure raw measurements (e.g., current, voltage, resistance, gate logic, etc.) and / or transformed measurements (e.g., distances, angles, Can be collected.

일부 구현예에서, 매핑 및 로컬라이제이션 유닛(312)은, 로봇(102)이 환경(100)(또는 어떠한 다른 환경)을 내비게이션함에 따라 (도 7a-7b를 참조하여 기술될) 환경의 맵(700)(또는 어떠한 환경의 어떠한 다른 발생된 맵)을 컴퓨터 방식으로 구성하고 업데이트할 수 있는 시스템들과 방법들을 포함할 수 있다. 동시에, 매핑 및 로컬라이제이션 유닛(312)은 맵(700)에서의 데모된 경로(예컨대, 경로(116))를 기록할 수 있다. 매핑 및 로컬라이제이션 유닛(312)은 환경(100)을 매핑하고 맵(700)에서 로봇(102)을 로컬라이징할 (예를 들어, 위치를 찾을) 수 있다. 매핑은 센서 유닛(314)에 의해 적어도 부분적으로 얻어지는 데이터를 적어도 부분적으로, 환경(100)을 적어도 부분적으로 나타내는 이차원(“2D”), 삼차원(“3D”), 및/또는 사차원(“4D”) 맵으로 도입함으로써 수행될 수 있다. 예를 들어, 맵(700)은 로봇(102)에 의하여 검출되는 장애물 및/또는 물체를 적어도 부분적으로 나타내는 묘사를 포함할 수 있다. 맵(700)은 도 7a 및 7b를 참조하여 기술되는 바와 같이 매핑된 경로(716)과 같은, 데모된 경로를 또한 기록할 수 있다. 예를 들어, 매핑된 경로(716)은 초기화 위치(104)와 같은 기준에 대한 (예를 들어, 위치, 변위, 및 방향 중의 하나 이상을 포함하는) 로봇(102)의 상대 위치에 적어도 부분적으로 기초한 좌표(예를 들어, 2D 맵에서 x와 y, 및 3D 맵에서 x, y 및 z)를 포함할 수 있다. 이 좌표는 초기화 위치(104)와 같은, 기준에 대한 임의의 주어진 지점에서의 로봇(102)의 방향(예를 들어, 변위각)을 포함할 수 있다. 본원에서 사용된 바와 같이, 용어 위치는 통상적이고 관습적인 의미를 가진다. 예를 들어, 일부 경우에, 위치는 물체, 로봇(102) 등의 변위, 좌표 등의 견지에서의 위치를 포함할 수 있다. 일부 경우, 위치는 물체, 로봇(102) 등의 방향을 포함할 수 있다. 따라서, 일부의 경우, 위치 및 자세는 위치, 변위, 및 방향을 포함하도록 상호 교환가능하게 사용될 수 있다. 데모 과정을 통하여 생성된 맵(700)은 로봇(102)이 하나 이상의 데모/훈련에서 센싱한 전체 환경을 실질적으로 기록할 수 있다. 이러한 이유로, 일부는 맵(700)을 글로벌 맵이라고 부를 수 있다. 일부 경우에, 데모 후, 맵(700)이 실질적으로 업데이트되지 않는 점에서, 맵(700)은 정적일 수 있다. 일부 구현예에서, 또한 맵(700)과 매핑된 경로(716)는 (예를 들어, 컴퓨터를 이용하는 사용자에 의해) 별도로 발생되어 로봇(102) 상으로 업로드될 수 있다.In some implementations, the mapping and localization unit 312 may map the environment 700 (as will be described with reference to Figures 7a-7b) as the robot 102 navigates the environment 100 (or any other environment) (Or any other generated map of any environment) that can be configured and updated in a computer-readable manner. At the same time, the mapping and localization unit 312 may record the demoted path (e.g., path 116) in the map 700. The mapping and localization unit 312 may map the environment 100 and localize (e.g., locate) the robot 102 in the map 700. ("2D"), three-dimensional ("3D"), and / or four-dimensional ("4D") data representing at least in part the environment 100, at least partially by data obtained at least in part by the sensor unit 314, ) Map. ≪ / RTI > For example, the map 700 may include a description that at least partially represents an obstacle and / or an object detected by the robot 102. The map 700 may also record the demoted path, such as the mapped path 716, as described with reference to Figs. 7A and 7B. For example, the mapped path 716 may be located at least partially in the relative position of the robot 102 (e.g., including one or more of position, displacement, and orientation) relative to the same reference as the initialization position 104 (E.g., x and y in a 2D map and x, y and z in a 3D map). This coordinate may include the direction (e.g., displacement angle) of the robot 102 at any given point relative to the reference, such as the initialization position 104. As used herein, the term position has a conventional and customary meaning. For example, in some cases, the location may include locations in terms of objects, displacements, coordinates, etc. of the robot 102, and the like. In some cases, the location may include the direction of the object, the robot 102, and the like. Thus, in some cases, the position and posture may be used interchangeably to include position, displacement, and orientation. The map 700 generated through the demo process may substantially record the entire environment in which the robot 102 sensed in one or more demos / drills. For this reason, a part of the map 700 may be referred to as a global map. In some cases, after the demo, the map 700 may be static in that the map 700 is not substantially updated. In some implementations, the path 716 mapped to the map 700 may also be separately generated (e.g., by a user using a computer) and uploaded onto the robot 102.

매핑 및 로컬라이제이션 유닛(312)은 맵(700)에 로봇(102)을 로컬라이징하기 (예를 들어, 위치시키기) 위하여 센서 유닛(314)으로부터 센서 데이터를 또한 수신할 수 있다. 일부 구현예에서, 매핑 및 로컬라이제이션 유닛(312)은 로봇(102)로 하여금 맵(700)의 좌표에서 자신을 로컬라이징하도록 하는 로컬라이제이션 시스템 및 방법을 포함할 수 있다. 센서(314)로부터의 데이터에 적어도 부분적으로 기초하여, 매핑 및 로컬라이제이션 유닛(312)은 환경(100)의 맵(700)의 좌표에서 로봇(102)의 위치를 추론할 수 있다. 맵(700)의 좌표로 로봇(102)을 로컬라이징하는 능력은 로봇(102)로 하여금, 맵(700)을 이용하여 환경을 내비게이션하게 하여 로봇(102)이 매핑된 경로(716) 상에 있는 위치를 근사화가능하게 할 수 있다.The mapping and localization unit 312 may also receive sensor data from the sensor unit 314 to localize (e.g., position) the robot 102 to the map 700. In some implementations, the mapping and localization unit 312 may include a localization system and method that allows the robot 102 to localize itself in the coordinates of the map 700. [ Based at least in part on the data from sensor 314, the mapping and localization unit 312 can infer the location of the robot 102 in the coordinates of the map 700 of the environment 100. The ability to localize the robot 102 with the coordinates of the map 700 allows the robot 102 to navigate the environment using the map 700 to determine the location on the path 716 on which the robot 102 is mapped Can be approximated.

일부 구현예에서, 통신 유닛 (316)은 하나 이상의 수신기, 송신기 및/또는 송수신기를 포함할 수 있다. 통신 유닛 (316)은 BLUETOOTH®, ZIGBEE®, Wi-Fi, 유도 무선 데이터 전송, 무선 주파수, 무선 전송, 무선 주파수 식별("RFID"), 근거리 통신("NFC"), GSM(global system for mobile communication), 적외선, 네트워크 인터페이스, 3G(3GPP/3GPP2)와 같은 셀룰러 기술, 고속 다운링크 패킷 접속("HSDPA"), 고속 업링크 패킷 접속("HSUPA"), 시분할 다중 접속("TDMA"), 코드 분할 다중 접속("CDMA")(예를 들어, IS-95A, 광대역 코드 분할 다중 접속("WCDMA") 등), 주파수 도약 확산 스펙트럼("FHSS"), 직접 시퀀스 확산 스펙트럼("DSSS"), GSM(global system for mobile communication), 개인 영역 네트워크("PAN")(예컨대, PAN/802.15), WiMAX(worldwide interoperability for microwave access), 802.20, LTE (Long Term Evolution) (예컨대, LTE/LTE-A), 시분할 LTE(Time Division LTE), GSM(global system for mobile communication), 협대역/주파수 분할 다중 접속 ("FDMA"), 직교 주파수 분할 다중화 ("OFDM"), 아날로그 셀룰러, 셀룰러 디지털 패킷 데이터("CDPD"), 위성 시스템, 밀리미터 파 또는 마이크로 웨이브 시스템, 음향, 적외선(예를 들어, 적외선 데이터 결합 ("IrDA")), 및/또는 무선 데이터 전송의 임의의 다른 형태와 같은 전송 프로토콜을 전송하거나 수신할 수 있도록 구성될 수 있다.In some implementations, communication unit 316 may include one or more receivers, transmitters, and / or transceivers. The communication unit 316 may be any of a variety of communication devices such as BLUETOOTH®, ZIGBEE®, Wi-Fi, inductive wireless data transmission, radio frequency, wireless transmission, RFID (Radio Frequency Identification), NFC (HSDPA), High Speed Uplink Packet Access (HSUPA), Time Division Multiple Access ("TDMA "), ("FSS"), direct sequence spread spectrum ("DSSS"), and code division multiple access ("CDMA" (PAN / 802.15), WiMAX (worldwide interoperability for microwave access), 802.20, Long Term Evolution (LTE) (e.g., LTE / LTE- A), time division LTE (Time Division Multiple Access), global system for mobile communication (GSM), narrow band / frequency division multiple access ("FDMA"), ("IrDA "), and / or the like, and / or any combination thereof, for example, Or any other form of wireless data transmission.

본원에서 사용될 때, 네트워크 인터페이스는, 제한 없이, FireWire (예컨대, FW400, FW800, FWS800T, FWS1600, FWS3200 등), USB (예컨대, USB 1.X, USB 2.0, USB 3.0, USB Type-C 등), 이더넷(예컨대, 10/100, 10/100/1000 (기가비트 이더넷), MoCA (multimedia over coax alliance technology), Coaxsys(예컨대, TVNETTM), 라디오 주파수 튜너(예컨대, 인밴드 또는 00B, 케이블 모뎀 등), Wi-Fi (802.11), WiMAX (예컨대, WiMAX (802.16)), PAN (예컨대, PAN/802.15), 셀룰러 (3G, LTE/LTE-A/TD-LTE/TD-LTE, GSM 등), IrDA 제품군 등의 것들을 포함하여, 구성요소, 네트워크, 또는 프로세서와의 임의의 신호, 데이터, 또는 소프트웨어 인터페이스를 포함할 수 있다. 본 명세서에서 사용된 바와 같이, Wi-Fi는 IEEE-Std. 802.11, IEEE-Std. 802.11, IEEE-Std. 802.11(예: 802.11 a/b/g/n/ac/ad/af/ah/ai/aj/aq/ax/ay) 및/또는 기타 무선 표준 중의 하나 이상을 포함할 수 있다. As used herein, network interfaces include, but are not limited to, FireWire (e.g., FW400, FW800, FWS800, FWS1600, FWS3200, etc.), USB (e.g., USB 1.X, USB 2.0, USB 3.0, USB Type- (E.g., 10/100, 10/100/1000 (gigabit Ethernet), multimedia over coaxial technology (MoCA), Coaxsys (e.g. TVNETTM), radio frequency tuners (e.g., inband or 00B, cable modem, etc.) (E.g., Wi-Fi (802.11), WiMAX (e.g., WiMAX (802.16)), PAN (e.g., PAN / 802.15), cellular (3G, LTE / LTE-A / TD- Data, or software interface with a component, a network, or a processor, including, but not limited to, an IEEE-Std. 802.11, an IEEE- Std. 802.11, IEEE-Std. 802.11 (eg 802.11 a / b / g / n / ac / ad / af / ah / ai / aj / aq / ax / ay) and / can do.

통신 유닛(316)은 또한 신호 라인 및 접지를 갖는 임의의 케이블과 같은 유선 접속을 통해 전송 프로토콜을 전송/수신하도록 구성될 수 있다. 예를 들어, 그러한 케이블은 이더넷 케이블, 동축 케이블, USB(Universal Serial Bus), FireWire 및/또는 당업계에 공지된 임의의 접속을 포함할 수 있다. 그러한 프로토콜은 컴퓨터, 스마트 폰, 태블릿, 데이터 캡쳐 시스템, 이동 통신 네트워크, 클라우드, 서버 등과 같은 외부 시스템과 통신하기 위해 통신 유닛 (316)에 의해 사용될 수 있다. 통신 유닛(316)은 숫자, 문자, 영숫자 및/또는 기호를 포함하는 신호를 전송 및 수신하도록 구성될 수 있다. 일부 경우에, 128 비트 또는 256 비트 키와 같은 알고리즘, 및/또는 AES(Advanced Encryption Standard), RSA, DES(Data Encryption Standard), Triple DES 등과 같은 표준을 준수하는 다른 암호화 알고리즘을 사용하여 신호를 암호화할 수 있다. 통신(316)은 상태, 지령(commands) 및 다른 데이터/정보를 전송 및 수신하도록 구성될 수 있다. 예를 들어, 통신 유닛(316)은 사용자가 로봇 (102)을 제어할 수 있도록 사용자 제어기와 통신할 수 있다. 통신 유닛 (316)은 로봇(102)이 데이터, 상태, 지령 및 다른 통신을 서버에 전송할 수 있도록 서버/네트워크와 통신할 수 있다. 서버는 원격으로 로봇(102)을 모니터링 및/또는 제어하는데 사용될 수 있는 컴퓨터(들) 및/또는 장치(들)에 통신 가능하게 결합될 수 있다. 통신 유닛(316)은 또한 로봇(102) 및/또는 그의 동작 유닛(308)에 대한 서버로부터 업데이트(예를 들어, 펌웨어 또는 데이터 업데이트), 데이터, 상태, 지령 및 다른 통신을 수신할 수 있다.The communication unit 316 may also be configured to transmit / receive a transmission protocol over a wired connection, such as any cable having a signal line and ground. For example, such a cable may include an Ethernet cable, a coaxial cable, a Universal Serial Bus (USB), FireWire and / or any connection known in the art. Such protocols may be used by communication unit 316 to communicate with external systems such as computers, smart phones, tablets, data capture systems, mobile communication networks, clouds, servers, and the like. The communication unit 316 may be configured to transmit and receive signals including numbers, letters, alphanumeric characters and / or symbols. In some cases, encryption is performed using other encryption algorithms that conform to standards such as 128-bit or 256-bit keys, and / or standards such as Advanced Encryption Standard (AES), RSA, Data Encryption Standard can do. Communications 316 may be configured to transmit and receive status, commands and other data / information. For example, the communication unit 316 may communicate with the user controller to allow the user to control the robot 102. [ The communication unit 316 may communicate with the server / network such that the robot 102 may transmit data, status, commands, and other communications to the server. The server may be communicatively coupled to the computer (s) and / or device (s) that may be used to monitor and / or control the robot 102 remotely. The communication unit 316 may also receive updates (e.g., firmware or data updates), data, status, commands and other communications from the server to the robot 102 and / or its operational unit 308.

일부 구현예에서, 액추에이터 유닛(318)은 전기 모터, 가스 모터, 구동식 자석 시스템, 솔레노이드/래칫 시스템, 압전 시스템(예를 들어, 인치웜 모터), 자기제한적 요소, 제스티큘레이션, 및/또는 본 분야에 알려진 액추에이터를 구동하는 임의의 방식과 같은, 액추에이터를 포함할 수 있다. 예시로서, 이러한 액추에이터는 로봇(102)이 환경(100) 또는 어떠한 다른 환경을 통하여 내비게이션할 수 있도록 휠 또는 다른 변위 가능한 드라이버(displacement enabling drivers)(예를 들어, 기계적 레그, 제트 엔진, 프로펠러, 유압 장치 등)를 구동할 수 있다. 일부 경우에, 액추에이터 유닛(318)은 행동들 및/또는 플로어 청소를 위한 브러시를 모빌라이징하기, (예를 들어, 위로, 아래로, 좌로, 우로, 전방으로, 후방으로) 스퀴지를 이동시키기, 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트를 승하강시키기, 센서 유닛(314)의 카메라 및/또는 어떠한 센서를 켜기, 및/또는 로봇(102)이 행동을 수행하기를 원하는 어떠한 이동과 같은, 행동 특정의 작업들을 위해 구성된 액추에이터들을 포함할 수 있다.In some embodiments, the actuator unit 318 may be an electric motor, a gas motor, a driven magnet system, a solenoid / ratchet system, a piezoelectric system (e.g., an inch worm motor), magnetic limiting elements, Or any manner of driving an actuator known in the art. By way of example, and not limitation, such actuators may be wheel or other displaceable enabling drivers (e.g., mechanical legs, jet engines, propellers, hydraulics (not shown), etc.) to enable the robot 102 to navigate through the environment 100, Device, etc.). In some cases, the actuator unit 318 may be used to mobilizing the brush for actions and / or floor cleaning, moving the squeegee (e.g., up, down, left, right, forward, Turning on / off the water, turning the vacuum on / off, moving the vacuum hose position, moving the arms, lifting and lowering the lift, turning on the camera and / or any sensor of the sensor unit 314, and / Or any movement for which the robot 102 wishes to perform an action, such as for movement-specific tasks.

일부 구현예에서, 사용자 인터페이스 유닛(322)은 사용자(예를 들어, 사용자(604) 또는 어떠한 다른 사용자)가 로봇(102)와 상호 작용할 수 있게 구성될 수 있다. 예를 들어, 사용자 인터페이스 유닛(322)은 무선으로 또는 유선으로 (한정됨이 없이, 통신 유닛(316)을 참고하는 바와 같이, 본 개시에 기재된 무선 또는 유선 연결 중 어느 것을 포함하여) 연결되든 간에, 터치패널, 버튼, 키패드/키보드, 포트(예를 들어, USB, DVI, 디스플레이 포트(Display Port), E-Sata, Firewire, PS/2, Serial, VGA, SCSI, 오디오포트, HDMI, PCMCIA 포트, 메모리 카드 포트 (예를 들어, SD 및 miniSD), 및/또는 컴퓨터 판독 가능 매체용 포트), 마우스, 롤러볼, 콘솔, 바이브레이터, 오디오 변환기, 및/또는 사용자가 데이터 및/또는 명령을 입력하거나 및/또는 수신하게 하는 어떠한 인터페이스를 구비할 수 있다. 사용자 인터페이스 유닛(322)는, 한정됨이 없이, LCD, LED 디스플레이, LED LCD 디스플레이, IPS 디스플레이, 음극선 관, 플라즈마 디스플레이, HD 패널, 4K 디스플레이, 망막(retina) 디스플레이, 유기 LED 디스플레이, 터치스크린, 표면, 캔버스, 스크린 잉크 기술 및/또는 어떠한 디스플레이, 텔레비젼, 모니터, 패널, 및/또는 시각적 프리젠테이션의 업계에 공지된 장치와 같은 디스플레이를 포함할 수 있다. 일부 구현예에서, 사용자 인터페이스 유닛(322)은 로봇(102)의 몸체 상에 위치될 수 있다. 일부 구현예에서, 사용자 인터페이스 유닛(322)은 로봇(102)의 몸체로부터 멀리 위치될 수 있으나, 직접 또는 간접으로(예를 들어, 네트워크 또는 클라우드를 통하여) (예를 들어, 통신 유닛(316)을 거쳐) 로봇(102)에 통신가능하게 결합될 수 있다.In some implementations, the user interface unit 322 may be configured such that a user (e.g., user 604 or any other user) may interact with the robot 102. For example, the user interface unit 322 may be connected wirelessly or wired (including, without limitation, any of the wireless or wired connections described in this disclosure, as referenced to the communication unit 316) (For example, USB, DVI, Display Port, E-Sata, Firewire, PS / 2, Serial, VGA, SCSI, Audio Port, HDMI, PCMCIA port, A memory card port (e.g., SD and miniSD), and / or a port for computer readable media), a mouse, a roller ball, a console, a vibrator, an audio converter, and / / RTI > and / or < / RTI > The user interface unit 322 may be, without limitation, an LCD, an LED display, an LED LCD display, an IPS display, a cathode ray tube, a plasma display, an HD panel, a 4K display, a retina display, an organic LED display, , Canvas, screen ink technology, and / or a display such as any display, television, monitor, panel, and / or device known in the art of visual presentation. In some implementations, the user interface unit 322 may be located on the body of the robot 102. In some implementations, user interface unit 322 may be located remotely from the body of robot 102, but may be located directly or indirectly (e.g., via a network or cloud) (e.g., via communication unit 316) To the robot 102. The robot 102,

일부 구현예에서, 맵 평가 유닛(324)는 비교기, 신호 처리기, 이미지 처리기, 및 다른 소프트웨어 또는 하드웨어 구성요소를 포함할 수 있다. 도 7a 및 7b, 도 8a 내지 도 8c, 도 9a 내지 도 9c, 도 10, 도 11을 참조하여 기술되는 바와 같이, 맵 평가 유닛(324)은 매핑 오류들을 검출하고, 맵(700)의 품질(예를 들어, 높음, 좋음, 수용할만 함, 낮음, 및/또는 어떠한 다른 지정) 및/또는 자율적인 내비게이션을 위한 맵(700)의 유용성을 결정하기 위하여, 맵(700)(또는 어떠한 다른 맵)을 분석하고 평가할 수 있다. 일부 경우에, 맵(700) 또는 어떠한 다른 맵을 분석할 때에, 맵 평가 유닛(324)은 매핑 오류가 없었음을 및/또는 맵이 낮은 품질임을 결정할 수 있다. 결과적으로, 로봇(102)은 사용자 인터페이스 유닛(322)을 이용하거나 또는 통신 유닛(316)을 통하여 사용자(예를 들어, 사용자(604))에게 경로(예를 들어, 경로(116))을 다시 데모하거나 아니면 환경(100)을 다시 매핑하도록 프롬프트할 수 있다.In some implementations, the map evaluation unit 324 may include a comparator, a signal processor, an image processor, and other software or hardware components. As described with reference to Figs. 7A and 7B, Figs. 8A to 8C, 9A to 9C, 10 and 11, the map evaluation unit 324 detects mapping errors, In order to determine the usefulness of the map 700 for autonomous navigation and / or autonomous navigation (e.g., high, good, acceptable, low, and / ) Can be analyzed and evaluated. In some cases, upon analyzing the map 700 or any other map, the map evaluation unit 324 may determine that there were no mapping errors and / or that the map is of poor quality. As a result, the robot 102 may again use a user interface unit 322 or a communication unit 316 to send a path (e.g., path 116) back to a user (e.g., user 604) Demonstrate or prompt to remap environment 100.

일부 구현예에서, 내비게이션 유닛(326)은 로봇(102)이 내비게이션할 방향 명령을 제공하도록 구성된 구성요소 및/또는 소프트웨어를 포함할 수 있다. 내비게이션 유닛(326)은 매핑 및 로컬라이제이션 유닛(312)에 의해 발생되는 맵 및 로컬라이제이션 정보, 센서 유닛(314) 및/또는 다른 동작 유닛(308)로부터의 센서 데이터를 프로세싱할 수 있다. 예를 들어, 내비게이션 유닛(326)은 매핑 및 로컬라이제이션 유닛(312)으로부터 맵(700)을 수신할 수 있다. 내비게이션 유닛(326)은 경로(716)를 포함하여, 맵(700) 내에서 로봇(102)의 위치를 적어도 부분적으로 나타낼 수 있는 매핑 및 로컬라이제이션 유닛(312)로부터 로컬라이제이션 정보를 또한 수신할 수 있다. 내비게이션 유닛(326)은 로봇(102)의 주위의 물체를 적어도 부분적으로 표시할 수 있는 센서 유닛(314)로부터 센서 데이터를 또한 수신할 수 있다. 맵, 위치, 및 센서 데이터 중의 하나 이상을 이용하여, 내비게이션 유닛(326)은 로봇(102)에게 어디(예를 들어, 전방, 좌측, 우측, 후방 등)로 내비게이션해야 할지를 명령할 수 있다.In some implementations, the navigation unit 326 may comprise components and / or software configured to provide directional instructions for the robot 102 to navigate. The navigation unit 326 may process map and localization information generated by the mapping and localization unit 312, sensor data from the sensor unit 314 and / or other operational units 308. For example, the navigation unit 326 may receive the map 700 from the mapping and localization unit 312. The navigation unit 326 may also receive localization information from the mapping and localization unit 312 that may at least partially indicate the location of the robot 102 within the map 700, including the path 716. The navigation unit 326 may also receive sensor data from a sensor unit 314 that may at least partially display an object around the robot 102. The navigation unit 326 may instruct the robot 102 to navigate to (e.g., front, left, right, rear, etc.) using one or more of a map, position, and sensor data.

일부 구현예에서, 전력 공급부(306)은, 한정됨이 없이, 리튬, 리튬 이온, 니켈-카드뮴, 니켈-메탈 하이드라이드, 니켈-수소, 탄소-아연, 산화은, 아연-탄소, 아연-공기, 산화수은, 알칼라인, 또는 본 분야에 알려진 어떠한 다른 형태의 배터리를 포함하는 하나 이상의 배터리를 포함할 수 있다. 특정 배터리들은, (예를 들어, 공명 회로 및/EEH는 공명 탱크 회로에 의한) 무선으로 및/또는 외부 전원에 플러깅하는 것과 같이, 충전식일 수 있다. 전력 공급부(306)는 또한 태양, 바람, 물, 핵, 수소, 가솔린, 천연 가스, 화석 연료, 기계적 에너지, 증기, 및/또는 어떠한 전력원을 전기로 변환하는 벽 소켓 및 전자 장치를 포함하는, 어떠한 에너지 공급기일 수 있다.In some embodiments, the power supply 306 may include, but is not limited to, lithium, lithium, nickel-cadmium, nickel-metal hydride, nickel-hydrogen, carbon-zinc, silver oxide, zinc- , Alkaline, or any other type of battery known in the art. Certain batteries may be rechargeable, such as by plugging them wirelessly and / or to an external power source (e.g., by a resonant circuit and / or EEH by a resonant tank circuit). The power supply 306 may also include a wall socket and an electronic device for converting sun, wind, water, nuclear, hydrogen, gasoline, natural gas, fossil fuel, mechanical energy, steam, It can be any energy supply.

일부 구현예에서, 동작 시스템(310)은 메모리(302), 제어기(304), 전력 공급부(306), 동작 유닛(308)에 있는 모듈들, 및/또는 로봇의 임의의 소프트웨어, 하드웨어 및/또는 피처를 관리하도록 구성될 수 있다. 예를 들어, 그리고 한정됨이 없이, 동작 시스템(310)은 로봇(102)을 위한 하드웨어 자원을 관리하는 장치 드라이버를 포함할 수 있다.In some implementations, the operating system 310 may include a memory 302, a controller 304, a power supply 306, modules in the operational unit 308, and / or any software, hardware, and / And may be configured to manage features. For example and without limitation, the operating system 310 may include a device driver that manages hardware resources for the robot 102.

앞에서 언급한 바와 같이, 로봇(102)의 상술한 구성요소들 중 어느 것은 소프트웨어 및/또는 하드웨어로 인스턴스화될 수 있다. 예를 들어, 유닛/모듈은 하드웨어이거나 및/또는 컴퓨터 상에서의 코드일 수 있다.As noted above, any of the above-described components of the robot 102 may be instantiated with software and / or hardware. For example, the unit / module may be hardware and / or code on a computer.

도 4는 로봇(102)이 경로를 학습하고 그 경로를 주행하는 예시적인 방법(400)의 프로세스 흐름도를 예시한다. 예를 들어, 티칭 단계(414)에서의 부분들(402, 404, 406)에서, 로봇(102)은 사용자(604)에 의하여 데모된 경로(116)를 학습할 수 있다. 이어서, 자율 단계(416)에서의 부분들(408, 416, 412)에서, 로봇(102)은 경로(106, 126)를 따라서 자율적으로 내비게이션할 수 있다.4 illustrates a process flow diagram of an exemplary method 400 in which the robot 102 learns and traverses a path. For example, at portions 402, 404, 406 in the teaching step 414, the robot 102 may learn the path 116 demoed by the user 604. Subsequently, at portions 408, 416, 412 in the autonomous step 416, the robot 102 may autonomously navigate along the path 106, 126.

일부 구현예에서, 로봇(102)은 도 5a에 예시된 사용자 인터페이스(500)에서 입력(574)으로부터 입력을 수신함으로써 티칭 단계(4214)를 시작할 수 있다. 사용자 인터페이스(500)은 모바일 장치, 특수 장치, 스크린을 가지며 사용자 입력을 수신하도록 구성된 어떠한 다른 장치일 수 있는, 디스플레이(576) 상에 나타날 수 있다. 일부 경우에, 디스플레이(576)는 로봇(102)의 사용자 인터페이스 유닛(322)의 부분일 수 있다. 일부 경우에, 디스플레이(576)은, 한정됨이 없이, 로봇(102)의 통신 유닛(316)을 통하여 통신 가능하게 결합되는 것과 같이, 로봇(102)에 통신 가능하게 결합되는 별도의 디스플레이일 수 있다. 입력(574)은 버튼, 무선 버튼, 풀다운 메뉴, 텍스트 입력, 및/또는 사용자가 본 분야에 알려진 정보 및/또는 명령을 입력할 수 있는 어떠한 방식을 포함할 수 있다. 사용자 인터페이스(500)는 본 개시에서 추후에 기술될, 자율 단계(416)를 개시하기 위하여 사용될 수 있는, 입력(572)를 또한 포함할 수 있다. 입력(572)은 버튼, 무선 버튼, 풀다운 메뉴, 텍스트 입력, 또는 본 분야에서 알려진 정보 및/또는 명령을 사용자가 입력하는 어떠한 방식을 포함할 수 있다.In some implementations, the robot 102 may begin the teaching step 4214 by receiving input from the input 574 in the user interface 500 illustrated in FIG. 5A. The user interface 500 may appear on the display 576, which may be a mobile device, a special device, any other device that has a screen and is configured to receive user input. In some cases, the display 576 may be part of the user interface unit 322 of the robot 102. In some cases, the display 576 may be a separate display communicatively coupled to the robot 102, such as, but not limited to, communicatively coupled through the communication unit 316 of the robot 102 . Input 574 may include buttons, wireless buttons, pull-down menus, text input, and / or any manner in which a user may enter information and / or commands known in the art. The user interface 500 may also include an input 572 that may be used to initiate an autonomous step 416, which will be described later in this disclosure. Input 572 may include buttons, wireless buttons, pull-down menus, text input, or any manner in which the user enters information and / or commands known in the art.

도 4로 돌아가면, 부분(402)에서, 로봇(102)은 초기화 위치(104)를 검출하고 로봇(102)의 위치 및/또는 방향을 초기화할 수 있다. 일부 구현예에서, 초기화 위치(104)는 플로어 및/또는 플로어 플랜(floor plan)에 대한 위치이다. 예컨대, 로봇(102)이 후속 경로 초기화를 위해 (예컨대, 학습된 경로를 호출할 때) 경로 훈련의 초기화 위치를 사용할 수 있도록, 초기화 위치(104)는 사용자에 의해 그 경계가 표시될 (예컨대, 물리적으로 또는 디지털로 도시 및/또는 표기될) 수 있다. 일부 구현예에서, 사용자가 로봇(102)을 정지시킨 장소에 적어도 부분적으로 기초하여, 로봇(102)은 로봇(102) 자신이 초기화 위치(104)에 있음을 검출할 수 있다. 이와 같이, (부분(404)를 참조하여 설명하는 바와 같이) 사용자가 정지시킨 후 로봇(102)이 초기화 위치(104)에 있음을 훈련하기 시작하는 장소를 추정할 수 있다. 일부 구현예에서, 송신기(예컨대, RFID, NFC, BLUETOOTH®, 무선 송신, 무선 주파수 영역 및/또는 본 개시에 설명된 기타 통신 프로토콜을 사용하여 통신을 송신하는 송신기 등)이 초기화 위치(104)에, 또는 실질적으로 근접하여 위치할 수 있다. 로봇(102)은 자신이 송신기의 상부 또는 실질적으로 근접하게 있다고 검출하는 경우, 로봇(102)은 로봇(102) 자신이 초기화 위치(104)에 있음을 검출할 수 있다. 일부 경우에 있어, 송신기는 로봇(102)이 시작 위치에 있을 때에만 송신기로부터의 통신을 검출할 수 있도록 하는 동작 가능 범위를 가질 수 있다. 예시적인 예로서, NFC의 송신 범위는 10 센티미터 이하일 수 있다. 따라서, 로봇(102)이 NFC를 통한 송신을 수신할 때, 로봇(102)은 자신이 초기화 위치(104)에 위치하고 있음을 검출할 수 있다. 일부 구현예에서, 로봇(102)은 송신기로부터의 송신을 수신하고, 신호 강도의 감쇠에 적어도 부분적으로 기초하여 송신기까지의 거리를 계산할 수 있다. 이러한 방식으로, 로봇(102)은 송신기까지 얼마나 가까운지를 검출할 수 있으며, 따라서, 송신기 및/또는 초기화 위치(104)에 대한 로봇(102)의 위치를 검출할 수 있게 된다. 일부 구현예에서, 로봇(102)은 복수의 송신기의 신호 세기를 삼각 측량함으로써 그 위치를 결정할 수 있다. 일부 구현예에서, 초기화 위치(104)는 플로어 상의 표시(예: 표기, 기호, 선 등)에 의해 구분될 수 있다. 로봇(102)의 하나 이상의 센서(센서 유닛(314) 등)가 플로어 상의 표시를 검출하면, 로봇(102)은 로봇(102) 자신이 초기화 위치(104)에 위치되어 있음을 검출할 수 있다.Returning to Figure 4, at portion 402, the robot 102 may detect the initialization position 104 and initialize the position and / or orientation of the robot 102. In some implementations, the initialization location 104 is a location for a floor and / or floor plan. For example, the initialization position 104 may be used by the user to indicate that the boundary is to be displayed (e. G., When the robot 102 calls for a learned path) Physically or digitally < / RTI > In some implementations, based on, at least in part, where the user has stopped the robot 102, the robot 102 may detect that the robot 102 is in the initialization position 104 itself. In this way, it is possible to estimate where the robot 102 begins to train in the initialization position 104 after the user has stopped (as described with reference to portion 404). In some implementations, a transmitter (e.g., RFID, NFC, BLUETOOTH®, wireless transmission, radio frequency domain, and / or transmitter that transmits communications using other communication protocols described in this disclosure) , Or may be located substantially adjacent thereto. The robot 102 can detect that the robot 102 itself is in the initialization position 104 when the robot 102 detects that it is in the upper or substantially close vicinity of the transmitter. In some cases, the transmitter may have an operable range that allows it to detect communications from the transmitter only when the robot 102 is in the starting position. As an illustrative example, the transmission range of the NFC may be less than 10 centimeters. Therefore, when the robot 102 receives the transmission via the NFC, the robot 102 can detect that it is located at the initialization position 104. [ In some implementations, the robot 102 can receive transmissions from a transmitter and calculate the distance to the transmitter based at least in part on the attenuation of the signal strength. In this way, the robot 102 can detect how close to the transmitter it is and thus can detect the position of the robot 102 relative to the transmitter and / or initialization position 104. In some implementations, the robot 102 may determine its position by triangulating the signal strength of a plurality of transmitters. In some implementations, the initialization location 104 may be distinguished by an indication (e.g., notation, symbol, line, etc.) on the floor. When one or more sensors (such as sensor unit 314) of the robot 102 detect an indication on the floor, the robot 102 can detect that the robot 102 itself is located at the initialization position 104.

일부 구현예에서, 카메라는 천장에 배치되며, 카메라는 로봇(102)에 (예컨대, 통신 유닛(316)을 통해) 통신가능하게 결합될 수 있다. 일부의 경우에, 카메라는 센서 유닛(314)의 일부일 수 있다. 카메라는 이미지 프로세싱 및/또는 기계 학습을 통해 로봇(102)의 위치/자세를 결정할 수 있고, 위치/자세를 로봇(102)에게 전달할 수 있다. 일부의 경우에, 카메라는 이미지 프로세싱 및/또는 기계 학습을 통해 로봇(102)이 언제 초기화 위치(104)에 있는지를 인식하여, 로봇(102)이 초기화 위치(104)에 있음을 로봇(102)에게 전달할 것이다.In some implementations, the camera is placed on the ceiling and the camera can be communicatively coupled to the robot 102 (e.g., via the communication unit 316). In some cases, the camera may be part of the sensor unit 314. The camera can determine the position / posture of the robot 102 through image processing and / or machine learning, and can deliver the position / posture to the robot 102. [ In some cases, the camera recognizes when the robot 102 is in the initialization position 104 through image processing and / or machine learning to determine whether the robot 102 is in the initialization position 104, .

일부의 경우에, 사용자(604)가 플로어 상의 경계표시 위치에 의해 로봇(102)을 위치시키는 반면, 로봇(102)은 주변 물체들에 대한 시작 위치(104)의 관계에 의해 시작 위치(104)를 검출하고 등록할 것이다. 예시적인 예로서, 로봇(102)은 도 5b 내지 도 5d를 참조하여 설명되는 바와 같이, 하나 이상의 센서(560A - 560D)를 이용하여 하나 이상의 주변 물체(512, 546, 548, 550)를 검출함으로써 초기화 위치(104)를 검출할 수 있다. 일부 구현예에서, 보다 구체적으로는, 로봇(102)은 도 5b 내지 도 5d를 참조하여 설명되는 바와 같이, 하나 이상의 센서(560A - 560D)를 이용하여 하나 이상의 주변 물체(512, 546, 548, 550) 상의 하나 이상의 위치(예를 들어, 지점 590, 592, 594, 596, 598 등)를 검출함으로써 초기화 위치를 검출할 수 있다. 초기화 위치(104)에 있는 동안, 로봇(102)은 그 방향 및 위치를 초기화할 수 있다.In some cases, the user 102 may position the robot 102 at the starting position 104 by the relationship of the starting position 104 to the surrounding objects, while the user 604 positions the robot 102 by the boundary display position on the floor. Will be detected and registered. As an illustrative example, the robot 102 may detect one or more surrounding objects 512, 546, 548, 550 using one or more sensors 560A-560D, as described with reference to Figures 5B- The initialization position 104 can be detected. In some embodiments, and more specifically, the robot 102 may include one or more peripheral objects 512, 546, 548, and 548 using one or more sensors 560A-560D, as described with reference to Figures 5B- (E.g., point 590, 592, 594, 596, 598, etc.) While in the initialization position 104, the robot 102 may initialize its orientation and position.

일부 구현예에서, 초기화 위치(104)로부터, 로봇(102)은 초기화 위치(104)에서의 로봇(102)의 존재를 검출할 수 있고/있거나 하나 이상의 주변 물체에 대한 로봇(102)의 상대적 위치 및/또는 방향을 결정할 수 있다. 이러한 구현예에서, 로봇(102)이 초기화 위치(104)에 존재하는 것을 검출하고 그 방향 및/또는 위치를 초기화하기 위해, 로봇(102)은 자신의 센서(센서 유닛(314) 등)를 적어도 부분적으로 사용하여 주위를 센싱할 수 있다. 이러한 센서는 물체(물품, 벽 등), 플로어, 천장, 사람과 사물, 표시, 표면 등과 같은 주위 환경의 특성을 센싱할 수 있다. 그 주변에서의 센싱된 물체의 상대적 위치 및/또는 방향을 통해 로봇은 초기화 위치에 대한 방향을 얻을 수 있다.In some embodiments, from the initialization position 104, the robot 102 may detect the presence of the robot 102 at the initialization position 104 and / or may detect the relative position of the robot 102 to one or more nearby objects And / or direction. In this embodiment, the robot 102 is configured to detect its own sensor (sensor unit 314, etc.) at least to detect that the robot 102 is in the initialization position 104 and to initialize its orientation and / You can use it partially to sense the surroundings. These sensors can sense the characteristics of the surrounding environment such as objects (goods, walls, etc.), floors, ceilings, people and objects, signs, surfaces, Through the relative position and / or orientation of the sensed object in its vicinity, the robot can obtain the orientation relative to the initialization position.

예시적인 예로서, 도 5b 내지 도 5d는 초기화 위치(104)에서의 로봇(102)의 오버헤드 도면을 예시하며, 로봇(102)은 초기화 위치(104)에서 자신의 존재를 검출하고/하거나 그 방향 및/또는 위치를 센싱할 수 있다. 도 5b에 예시된 바와 같이, 로봇(102)은 초기화 위치(104)에 위치할 수 있다. 로봇(102)은 전방면(502), 우측면(508), 좌측면(506) 및 후방면(504)과 같은 복수의 측면들을 갖는 몸체를 포함할 수 있다. 또한, 로봇(102)은 상면(564) 및 바닥면(미도시)을 가질 수 있다. 당업자는 로봇(102)이 형상(예컨대, 직사각형, 피라미드형, 휴머노이드형 또는 기타 설계 형상)에 따라 변할 수 있는 로봇(102)의 표면에 해당하는 다른 측면을 가질 수 있음을 이해할 것이다. 예시로서, 전방면(502)은 로봇(102)의 전방을 향한 면 상에 위치할 수 있으며, 상기 전방을 향한 면은 로봇(102)의 전방 이동 방향으로 진행한다. 후방면(504)은 로봇(102)의 후방을 향한 면 상에 위치할 수 있으며, 상기 후방을 향한 면은 전방을 향한 면에 실질적으로 반대 방향으로 향하는 면이다. 우측면(508)은 전방면(502)에 대해 우측일 수 있고, 좌측면(506)은 전방면(502)에 대해 좌측일 수 있다.5B-D illustrate an overhead view of the robot 102 at an initialization position 104, wherein the robot 102 detects its presence at the initialization position 104 and / Direction and / or position of the object. As illustrated in FIG. 5B, the robot 102 may be located in the initialization position 104. The robot 102 may include a body having a plurality of sides such as a front surface 502, a right side surface 508, a left side surface 506 and a rear surface 504. [ In addition, the robot 102 may have a top surface 564 and a bottom surface (not shown). Those skilled in the art will appreciate that the robot 102 may have other sides corresponding to the surface of the robot 102 that may vary in shape (e.g., rectangular, pyramidal, humanoid or other design geometry). For example, the front face 502 may be positioned on a face facing the front of the robot 102, and the front face may be moved in the forward movement direction of the robot 102. The rear surface 504 may be located on a surface facing the rear of the robot 102, and the rear surface is a surface facing substantially the opposite direction to the front surface. The right side 508 may be the right side with respect to the front side 502 and the left side 506 may be the left side with respect to the front side 502. [

로봇(102)은 하나 이상의 전방면(502), 우측면(508), 좌측면(506) 및 후방면(504)을 따라 배치된 하나 이상의 센서(314)의 일부이거나/이고 본 개시에서 설명하는 임의의 센서와 실질적으로 유사할 수 있는) 센서(560A - 560D)를 가질 수 있다. 본 개시에서 설명한 센서 유닛(314)의 일부이고/이거나 어느 센서일 수 있음)를 포함할 수 있다. 센서(560A - 560D)는 외부 수용성 센서를 포함할 수 있다. 일부의 경우, 센서(560A - 560D) 각각은 주위 환경(100)의 상이한 특성들을 검출할 수 있는 다수의 센서들을 포함할 수 있다. 또한, 로봇(102)은 외부 수용성 센서를 포함할 수 있는 하나 이상의 센서(568A, 568B)를 가질 수 있다. 상이한 유형의 센서 및/또는 상이한 센서 유효범위(예컨대, 더 좁거나 넓은 범위의 주위 환경(100)을 검출하기 위한 센서 배치)가 요망되는 경우, 센서들을 도 5b 내지 도 5d에 도시된 것보다 더 많이 이용하거나 상이한 위치에 사용될 수 있음을 당업자는 유의해야 할 것이다.The robot 102 may be part of one or more sensors 314 disposed along one or more of the front side 502, the right side 508, the left side 506 and the back side 504 and / (Which may be substantially similar to the sensor of sensor 560A-560D). May be part of sensor unit 314 described in this disclosure and / or may be any sensor). The sensors 560A-560D may include external water soluble sensors. In some cases, each of the sensors 560A-560D may comprise a number of sensors capable of detecting different characteristics of the environment 100. In addition, the robot 102 may have one or more sensors 568A, 568B that may include external water-soluble sensors. If different types of sensors and / or different sensor coverage (e.g., sensor arrangements for detecting a narrower or wider range of ambient environment 100) are desired, then the sensors may be used more than those shown in Figures 5B- It will be appreciated by those skilled in the art that they can be used heavily or at different locations.

센서(560A - 560D)는 측면(전방면(502), 우측면(508), 좌측면(506), 후방면(504), 상면(564), 바닥면(미도시), 및/또는 기타 측면)에 대해 직각으로 위치되거나 일정 각도로 배치된다. 상기 각도는 센서(560A - 560D) 각각의 센싱 대상 및 범위, 초점면, 관심 영역 및/또는 기타 특성에 의해 결정될 수 있다. 제한적이지 않은 예로서, 소나 센서는 소나 센서로부터 확산(spread)으로 산개되는 음향 신호(예컨대, 다중 로브 패턴, 팬, 또는 센서의 다른 특징적인 형태)를 방출할 수 있다. 예컨대, 도 5e는 에너지 패턴(580B)을 방출 및/또는 수신하는 로봇(102)의 오버헤드 도면을 예시한다. 에너지 패턴(580B)은 사실상 예시적인 것이며, 신호의 실제 파형 또는 전송을 묘사한 것은 아니다. 다만, 에너지 패턴(580B)은 센서(560B)에 의해 에너지가 전방면(104)으로부터 방출 및/또는 추후 반사되어 수신되어, 에너지 패턴(580B)의 확산에 따른 물체의 검출을 가능하게 하는 에너지를 나타낸다. 에너지 패턴(580B)은 센서(560B)의 유형에 따라 사용되는 특유의 에너지일 수 있다. 예를 들어, 센서(560B)가 라이다(LiDAR)인 경우, 에너지 패턴(580B)은 센서(560B)로부터 방출된(또한, 일부의 경우에는 추후 반사되고 수신되는) 다수의 광파의 패턴을 적어도 부분적으로 나타낼 수 있다. 센서(560B)가 소나 센서인 경우, 에너지 패턴(580B)은 센서(560B)에 의해 방출된(또한, 일부의 경우에는 추후 반사되고 수신되는) 음파의 패턴일 수 있다. 센서(560B)가 카메라인 경우, 센서(560B)의 섬광의 광 또는 주변 광은 물체를 조명할 수 있고, 센서(560B)는 반사 광을 검출할 수 있다. 이와 같이, 일부의 경우에, 에너지 패턴(580B)은 센서(560B)에 의해 어떠한 에너지도 방출되지 않는 경우, 방출된 에너지를 나타내기 보다는, 수신된 에너지를 나타낸다. 센서(560B)가 적외선을 검출하는 적외선 센서 또는 3D 카메라인 경우, 에너지 패턴(580B)은 센서(560B)에 의해 방출된(또한, 추후 반사되고 수신되는) 적외선 광의 패턴일 수 있다. 적외선 센서의 경우, 센서(560B)는 반사된 주변 적외선을 검출하기 위해 필터를 사용할 수도 있다. 다른 예로서, 센서(560B)는 환경을 3차원으로 센싱하기 위해 에너지를 방출하고 수신하도록 구성된 3D 센서일 수 있다. 당업자는 기타 센서가 사용될 수 있고 에너지 패턴(580B)이 센서(560B)에 의해 방출, 반사 및/또는 수신되는 특징적인 에너지를 적어도 부분적으로 나타낼 수 있음을 유의해야 할 것이다.The sensors 560A-560D may be mounted on the side surfaces (front surface 502, right side surface 508, left side surface 506, rear surface 504, top surface 564, bottom surface (not shown), and / Or at an angle. The angle may be determined by the object and the range, focal plane, area of interest and / or other characteristics of each of the sensors 560A-560D. As a non-limiting example, a sonar sensor may emit an acoustic signal (e.g., multiple lobe patterns, a fan, or other characteristic form of a sensor) that spreads from a sonar sensor. For example, FIG. 5E illustrates an overhead view of a robot 102 emitting and / or receiving an energy pattern 580B. The energy pattern 580B is exemplary in nature and does not describe the actual waveform or transmission of the signal. However, the energy pattern 580B is an energy that is emitted by the sensor 560B from the front face 104 and / or reflected from the front face 104, and the energy that enables the detection of the object due to the diffusion of the energy pattern 580B . The energy pattern 580B may be a unique energy used depending on the type of sensor 560B. For example, if the sensor 560B is LiDAR, then the energy pattern 580B may be a pattern of a plurality of light waves emitted from the sensor 560B (and, in some cases, later reflected and received) It can be partially shown. If the sensor 560B is a sonar sensor, the energy pattern 580B may be a pattern of sound waves emitted by the sensor 560B (and, in some cases, later reflected and received). When the sensor 560B is a camera, the flash light or ambient light of the sensor 560B can illuminate the object, and the sensor 560B can detect the reflected light. Thus, in some cases, the energy pattern 580B represents the received energy, rather than the emitted energy, when no energy is emitted by the sensor 560B. If the sensor 560B is an infrared sensor or a 3D camera that detects infrared radiation, the energy pattern 580B may be a pattern of infrared light emitted (and subsequently reflected and received) by the sensor 560B. In the case of an infrared sensor, the sensor 560B may use a filter to detect reflected ambient infrared radiation. As another example, the sensor 560B may be a 3D sensor configured to emit and receive energy to sense the environment in three dimensions. Those skilled in the art will appreciate that other sensors may be used and the energy pattern 580B may at least partially represent the characteristic energy emitted, reflected and / or received by the sensor 560B.

예시적인 소나 센서는, 확산이 로봇(102)으로부터의 원하는 영역 또는 범위를 커버하도록 센서(560A - 560D) 중 하나 이상으로서 배치될 수 있다. 측정(거리 및/또는 각도 측정 등)은 센서(560A - 560D)에 대해 또는 로봇(102)의 질량 중심 또는 기타 지정된 위치 등과 같은 로봇(102) 몸체 상의 기타 위치에 대해 수행될 수 있다. Exemplary sonar sensors may be deployed as one or more of the sensors 560A-560D so that the diffusion covers the desired area or range from the robot 102. [ Measurements (such as distance and / or angle measurements) may be performed on sensors 560A-560D or other locations on the robot 102 body, such as the mass center of the robot 102 or other designated locations.

도 5b로 돌아가면, 로봇(102)은 하나 이상의 센서(560A - 560D)를 사용하여 주위 환경 내의 물체(512)를 검출할 수 있고, 물체(512)에 대한 로봇(102)의 위치 및/또는 방향을 근사화할 수 있다. 예컨대, 물체(512)는 장애물(물품, 벽 등)일 수 있다. 물체(512)로부터, 로봇(102)은 물체(512) 상의 지점(590)까지의 거리(516)를 측정할 수 있으며, 이는 인치, 피트, 미터 또는 기타 측정 단위(미터, 미국 또는 기타 측정 시스템)와 같은 표준 단위를 사용하여 측정한 절대 거리일 수 있다. 일부 구현예에서, 거리(516)는 틱, 픽셀, 센서 범위의 백분율 등과 같은 상대적(또는 비절대적) 단위로 측정될 수 있다. 일부 구현예에서, 거리(516)는 초기화 위치(104), 물체(512), 센서(560A - 560D) 중 어느 하나, 로봇(102)의 질량 중심, 또는 임의의 다른 결정된 위치와 같은 기준점에 대해 x- 및 y- 좌표로 표시될 수 있다. 이 경우, x-좌표는 제1 축에 대한 기준점까지의 거리일 수 있고, y-좌표는 제2 축에 대한 기준점까지의 거리일 수 있으며, 제1 축에 직교하는 상기 제2 축은 직교 좌표계를 형성한다. 일부의 경우에, 거리(516)는 전술한 x- 및 y- 좌표와 z-좌표를 포함하는 3차원으로 측정될 수 있으며, 이때 z-좌표는 제3 축에서 기준점까지의 거리일 수 있다.5b, the robot 102 may use one or more sensors 560A-560D to detect an object 512 in the environment and determine the position of the robot 102 relative to the object 512 and / Direction can be approximated. For example, object 512 may be an obstacle (article, wall, etc.). From the object 512, the robot 102 may measure a distance 516 to a point 590 on the object 512, which may be measured in inches, feet, meters or other units of measurement ). ≪ / RTI > In some implementations, the distance 516 can be measured in relative (or non-absolute) units such as ticks, pixels, percentage of sensor coverage, and the like. In some implementations, the distance 516 may be determined for a reference point such as the initialization position 104, the object 512, the sensor 560A-560D, the mass center of the robot 102, or any other determined position x- and y-coordinates. In this case, the x-coordinate may be the distance to the reference point for the first axis, the y-coordinate may be the distance to the reference point for the second axis, and the second axis, which is orthogonal to the first axis, . In some cases, the distance 516 may be measured in three dimensions including the x- and y-coordinates and the z-coordinates described above, where the z-coordinate may be a distance from the third axis to a reference point.

일부 구현예에서, 하나 이상의 센서(560A - 560D)는 물체(512)의 지점(590)에 대한 거리(516)를 측정 또는 근사화할 수 있다. 예를 들어, 센서(560A)는 방출된 음파와 그 음파가 반사되어 센서(560A)로 복귀하는 시간 사이의 시간차를 측정함으로써 거리를 측정할 수 있는 소나 센서일 수 있으며, 방출된 음파와 반사된 음파의 시간차는 음속을 사용하여 거리로 환산될 수 있다.In some implementations, the one or more sensors 560A-560D may measure or approximate a distance 516 to a point 590 of the object 512. [ For example, the sensor 560A may be a sonar sensor capable of measuring the distance by measuring the time difference between the emitted sound wave and the time the sound wave is reflected back to the sensor 560A, The time difference of the sound wave can be converted into the distance using the sound speed.

일부 구현예에서, 하나 이상의 센서(560A-560D)는 추후 설명되는 바와 같이, 맵(700)을 생성할 수 있으며, 맵(700)은 물체(512)뿐만 아니라, 일부 구현예에서, 학습된 경로를 포함한다. 거리(516)는 예를 들어, 맵(700) 상의 상대 단위를 사용하거나 맵(700)의 상대 단위를 절대 거리 측정치로 환산함으로써, 맵(700) 상에서 취한 근사 측정에 적어도 부분적으로 기초하여 근사화될 수 있다. In some implementations, the one or more sensors 560A-560D may generate a map 700, as will be described later, and the map 700 includes not only the object 512, but, in some implementations, . Distance 516 may be approximated based, for example, at least partially on approximate measurements taken on map 700, by using relative units on map 700 or by converting the relative units of map 700 into absolute distance measurements .

로봇(102)은 또한 초기화 위치(104)에서 그 방향을 근사시킬 수 있다. 일부 구현예에서, 로봇(102)은 초기화 위치(104), 물체(512), 센서(560A - 560D), 로봇(102)의 질량 중심 또는 다른 소정의 위치에서의 지점에 대한 기준점에 상대 각도(514)를 근사시킬 수 있다. 각도(514)는 도(degree), 라디안 또는 기타 단위로 측정할 수 있다. 일부 구현예에서, 각도(514)는 수평면(예를 들어, 전술한 거리(516)의 직각 좌표계 또는 다른 측정치)과 같은 2D 평면에 대해 측정될 수 있다. 일부 구현예에서, 로봇(102)에 대한 물체(512)의 하나 이상의 롤(roll), 요(yaw), 및 피치와 같은 추가 각도가 측정될 수 있다.The robot 102 may also approximate its orientation at the initialization position 104. In some implementations, the robot 102 may be positioned relative to a reference point for an initialization position 104, an object 512, sensors 560A-560D, a mass center of the robot 102, or a point at another predetermined location, 514 can be approximated. The angle 514 can be measured in degrees, radians, or other units. In some implementations, the angle 514 may be measured on a 2D plane, such as a horizontal plane (e.g., a rectangular coordinate system or other measurement of the distance 516 described above). In some implementations, additional angles, such as one or more rolls, yaws, and pitch, of the object 512 relative to the robot 102 may be measured.

예시적인 예로서, 로봇(102)은 물체(512)에 대한 각도(514)를 측정할 수 있다. 물체(512)까지의 거리(516)를 근사화할 수 있는 방법과 유사하게, 하나 이상의 센서(560A - 560D)는 물체(512)에 대한 각도(514)를 근사화할 수 있다. 예를 들어, 센서(560A)는 수신된 반사 에너지의 각도에 기초하여 센서(560A)에 대한 물체(512)의 방위(예를 들어, 각도(514))를 결정할 수 있는 소나 센서일 수 있다. 전술한 바와 같이, 일부 구현예에서, 하나 이상의 센서(560A - 560D)는 물체(512)를 포함할 수 있는 맵(700)을 생성할 수 있다. 각도(514)는 예를 들어, 맵(700) 상의 상대 단위를 사용하거나 측정된 거리에 대한 상대 단위를 스케일링함으로써, 맵(700) 상에서 취한 근사 측정에 적어도 부분적으로 기초하여 근사화할 수 있다.As an illustrative example, the robot 102 may measure an angle 514 with respect to the object 512. One or more sensors 560A-560D can approximate an angle 514 with respect to object 512, similar to the way in which distance 516 to object 512 can be approximated. For example, the sensor 560A may be a sonar sensor capable of determining the orientation (e.g., angle 514) of the object 512 relative to the sensor 560A based on the angle of the received reflected energy. As described above, in some implementations, one or more sensors 560A-560D may generate a map 700 that may include an object 512. [ The angle 514 may be approximated based at least in part on the approximation taken on the map 700, for example, by using a relative unit on the map 700 or by scaling the relative unit to the measured distance.

일부 구현예에서, 로봇(102)은 물체(512) 및/또는 지점(590)에 대한 자신의 위치 및/또는 방향(예를 들어, 거리(516) 및/또는 각도(514))을 메모리(302) 에 기록하고, 물체(512) 및/또는 지점(590)에 대한 자신의 위치를 초기화 위치(104)에 연관시킨다. 이러한 방식으로, 로봇(102)은 이후에 초기화 위치(104)로 복귀할 때 초기화 위치(104)를 검출하고 물체 (512) 및/또는 지점(590)에 대한 위치를 초기화할 수 있다. 초기화 위치(104)의 검출 및 위치의 초기화는 매핑 및 로컬라이제이션 유닛(312)에 의해 수행될 수 있다.In some implementations, the robot 102 may move its position and / or orientation (e.g., distance 516 and / or angle 514) relative to the object 512 and / 302 and associates its position with respect to object 512 and / or point 590 to initialization position 104. [ In this manner, the robot 102 may detect the initialization position 104 and initialize the position for the object 512 and / or the point 590 when returning to the initialization position 104 thereafter. The detection of the initialization position 104 and the initialization of the position may be performed by the mapping and localization unit 312.

도 5c는 초기화 위치(104)에서 소정 각도로 위치된 로봇(102)의 오버헤드 도면을 예시한다. 이때, 로봇(102)의 센서(560A)는 도 5b를 참조하여 기술된 센서(560A)가 거리(516) 및 각도(514)를 측정한 방법과 실질적으로 유사한 시스템 및 방법을 사용하여 물체(512)의 지점(511)에 대한 거리(524) 및 각도(518)를 측정할 수 있다. 또한, 도 5c는 복수의 센서(560A-560D)가 물체(512)에 대한 거리 및 각도를 독립적으로 측정하는 것을 예시한다. 예를 들어, 센서(560B)는 도 5b를 참조하여 기술된 센서(560A)가 거리(516) 및 각도(514)를 측정한 방법과 실질적으로 유사한 시스템 및 방법을 사용하여 물체(512)의 지점(592)에 대한 거리(522) 및 각도(520)를 측정할 수 있다. 이러한 방식으로, 로봇(102)은 초기화 위치(104)를 검출할 수 있고 및/또는 물체(512)에 대한 로봇(102)의 위치 및/또는 방향을 초기화할 수 있다. 일부 구현예에서, 로봇(102)은 물체(512) 및/또는 지점(591, 592)에 대해 로봇(102)의 위치 및/또는 방향(예를 들어, 거리 (516, 522) 및 각도 (514, 520) 중 하나 이상)을 메모리(302)에 기록할 수 있으며, 물체(512) 및/또는 지점(591, 592)에 대한 로봇(102)의 위치 및/또는 방향을 초기화 위치(104)와 연관시킨다. 따라서, 로봇(102)은 나중에 초기화 위치(104)로 복귀할 때, 초기화 위치(104)를 검출하고 물체(512) 및/또는 지점(591, 592)에 대한 로봇(102)의 위치 및/또는 방향을 초기화할 수 있다.FIG. 5C illustrates an overhead view of a robot 102 positioned at a predetermined angle in an initialization position 104. FIG. At this time the sensor 560A of the robot 102 uses the system 512 and method substantially similar to the way in which the sensor 560A described with reference to Figure 5B measured the distance 516 and the angle 514, The distance 524 to the point 511 and the angle 518 of the point 511. [ 5C illustrates that the plurality of sensors 560A-560D independently measure the distance and angle to the object 512. [ For example, the sensor 560B may be positioned at a point of the object 512 using a system and method substantially similar to the way in which the sensor 560A described with reference to Figure 5B measured the distance 516 and the angle 514, The distance 522 and the angle 520 to the first portion 592 can be measured. In this manner, the robot 102 can detect the initialization position 104 and / or initialize the position and / or orientation of the robot 102 with respect to the object 512. [ In some implementations, the robot 102 may determine the position and / or orientation of the robot 102 relative to the object 512 and / or points 591 and 592 (e.g., distances 516 and 522 and angles 514 520) may be written to the memory 302 and the position and / or orientation of the robot 102 relative to the object 512 and / or points 591, 592 may be recorded in the initialization position 104 Associate. Thus, when the robot 102 later returns to the initialization position 104, it may detect the initialization position 104 and / or the position of the robot 102 relative to the object 512 and / or points 591 and 592 and / Direction can be initialized.

도 5d는 초기화 위치(104)를 검출하고 및/또는 로봇(102)의 방향 및/또는 위치를 초기화하는데 다수의 예시적인 물체(512, 546, 548, 550)가 사용되는 예시적인 로봇(102)의 오버헤드 도면을 예시한다. 도 5b를 참조하여 기술된 센서(560A)가 거리(516) 및 각도(514)를 측정한 방법과 실질적으로 유사한 시스템 및 방법을 사용하여, 로봇(102)은 물체(546)의 지점(594)에 대한 거리(558) 및 각도(540), 물체(548)의 지점(596)에 대한 거리(554) 및 각도(542), 및 물체(550)의 지점(598)에 대한 거리(556) 및 각도(544)를 측정할 수 있다. 이러한 방식으로, 로봇(102)은 초기화 위치(104)를 검출할 수 있고, 하나 이상의 물체(512, 546, 548, 550) 및/또는 지점(590, 594, 596, 598)에 대한 로봇(102)의 위치 및/또는 방향을 초기화할 수 있다. 일부 구현예들에서, 로봇(102)은 물체(512, 546, 548, 550)의 하나 이상의 지점(590, 594, 596, 598)에 대한 자신의 위치 및/또는 방향(예를 들어, 거리(516, 558, 554, 556) 및/또는 각도 (514, 540, 542, 544))을 메모리(302)에 기록할 수 있으며, 하나 이상의 물체(512, 546, 548, 550) 및/또는 물체 내의 지점(590, 594, 596, 598)에 대한 로봇(102)의 위치 및/또는 방향을 초기화 위치(104)와 연관시킨다. 따라서, 로봇(102)은 이후 초기화 위치(104)로 복귀할 때 초기화 위치(104)를 검출하고 로봇(102)의 위치 및/또는 방향을 초기화할 수 있다.5D illustrates an exemplary robot 102 in which a number of exemplary objects 512, 546, 548, 550 are used to detect the initialization position 104 and / or initialize the orientation and / or position of the robot 102. [ Lt; RTI ID = 0.0 > of < / RTI > The robot 102 is positioned at a point 594 of the object 546 using a system and method substantially similar to the way in which the sensor 560A described with reference to Figure 5b measured the distance 516 and the angle 514. [ The distance 554 and angle 542 to the point 596 of the object 550 and the distance 558 and angle 540 to the point 598 of the object 550. [ The angle 544 can be measured. In this manner, the robot 102 may detect the initialization position 104 and may determine the position of the robot 102 relative to one or more objects 512, 546, 548, 550 and / or points 590, 594, 596, Can be initialized. In some implementations, the robot 102 may determine its position and / or orientation (e.g., distance (s)) relative to one or more points 590, 594, 596, 598 of objects 512, 546, 548, 516, 558, 554, 556) and / or angles 514, 540, 542, 544) to the memory 302 and may write one or more objects 512, 546, 548, 550 and / Associates the position and / or orientation of the robot 102 with respect to the points 590, 594, 596, 598 with the initialization position 104. Thus, the robot 102 may then detect the initialization position 104 and initialize the position and / or orientation of the robot 102 when returning to the initialization position 104 thereafter.

복수의 물체(512, 546, 548, 550)를 사용하여 초기화 위치(104)를 검출하는 것은 로봇(102)이 초기화 위치(104)를 더욱 정밀하게 위치시킬 수 있도록 한다는 점에서 바람직할 수 있다. 또한, 복수의 물체들(512, 546, 548)을 사용하는 것은 초기화 위치 (104)에 추가적인 고유성을 제공할 수 있는데, 이는 초기화 위치(104)를 검출하는 로봇(102)을 보조할 수 있고 및/또는 로봇(102)이 다른 위치를 초기화 위치(104)로 잘못 결정할 가능성을 감소시킨다. Detecting the initialization position 104 using a plurality of objects 512, 546, 548 and 550 may be advantageous in that the robot 102 can position the initialization position 104 more precisely. In addition, using a plurality of objects 512, 546, 548 may provide additional uniqueness to the initialization position 104, which may assist the robot 102 detecting the initialization position 104 and / / RTI > and / or < RTI ID = 0.0 > robot 102 < / RTI >

로봇(102)이 도 5b 내지 도 5d를 참조하여 기술된 바와 같이 물체에 대한 거리 및 각도를 측정함에 따라, 로봇(102)은 외부 수용 센서(568A - 568B)를 초기화할 수 있다. 센서(568A - 568B)의 초기화는 센서(568A - 568B)들을 제로화하는 단계, 센서(568A - 568B)들을 초기 값으로 설정하는 단계, 또는 메모리(302)에 센서(568A - 568B)의 현재 값을 저장하는 단계를 포함할 수 있다. 일부 구현예들에서, 외부 수용 센서(568A-568B)는 기준점에 대해 초기화될 수 있다. 예시적인 예로서, 로봇(102)은 지점(590)이 원점(예를 들어, 2D 맵에서 (0, 0) 또는 3D 맵에서 (0, 0, 0))이 되도록 지점(590)에 대해 외부 수용 센서(568A-568B)를 초기화할 수 있다. 따라서, 로봇(102)은 지점(590)에 대한 거리(516) 및 각도(514)를 측정할 수 있고, 원점에 대한 로봇(102)의 초기 위치 및/또는 방향을 결정할 수 있다. 이러한 결정은 매핑 및 로컬라이제이션 유닛(312)에 의해 수행될 수 있다. 일부 구현예들에서, 거리(516) 및/또는 각도(514)를 사용하여, 로봇(102)은 벡터(예를 들어, 거리(516) 및 각도(514))에 대한 삼각법을 사용하여 자신의 좌표(예를 들어, 2D맵에서 (x, y) 또는 3D맵에서 (x, y, z))를 결정할 수 있다. 예를 들어, 일부 경우, x 좌표는 각도(514)의 코사인에 거리(516)를 곱한 값일 수 있다. 일부 경우, y- 좌표는 각도(514)의 사인(sine)에 거리(516)를 곱한 값일 수 있다. 비제한적으로, 지점(591, 592, 594, 596, 598) 중 하나와 같은 또 다른 지점이 원점으로서 유사하게 사용될 수 있고, 도 5b 내지 도 5d와 관련하여 도시되고 및/또는 기술된 바와 같이, 대응하는 벡터(예를 들어, 거리(516, 518, 522, 558, 554, 556) 및/또는 각도(514, 518, 520, 540, 542, 544))와 함께 삼각법이 사용될 수 있다. 일부 경우, 복수의 지점(예를 들어, 지점(590, 591, 592, 594, 596, 598) 중 2 개 이상)이 로봇(102)을 초기화할 수 있도록 다수의 원점이 제공될 수 있다. 다수의 원점을 사용하는 것은 다중 맵을 생성하고, 계산상의 단순성을 위해 선택할 다수의 원점을 제공하고, 하나 이상의 센서 판독 값이 잘못되었을 경우 센서의 체크를 제공하고, 기타 이점을 제공하는 것이 바람직할 수 있다.As the robot 102 measures the distance and angle to the object as described with reference to Figs. 5B-5D, the robot 102 can initialize the external acceptance sensors 568A-568B. The initialization of the sensors 568A-568B may be accomplished by zeroing the sensors 568A-568B, setting the sensors 568A-568B to their initial values, or by setting the current values of the sensors 568A- And storing it. In some implementations, external acceptance sensors 568A-568B may be initialized for a reference point. As an illustrative example, the robot 102 may move the point 590 relative to the point 590 such that the point 590 is at the origin (e.g., (0, 0) in the 2D map or (0, 0, 0) The acceptance sensors 568A-568B can be initialized. Thus, the robot 102 can measure the distance 516 and angle 514 to the point 590 and determine the initial position and / or orientation of the robot 102 relative to the origin. This determination may be performed by the mapping and localization unit 312. [ In some implementations, using distance 516 and / or angle 514, robot 102 may use its trigonometry for a vector (e.g., distance 516 and angle 514) (E.g., (x, y) in a 2D map or (x, y, z) in a 3D map). For example, in some cases, the x coordinate may be the cosine of angle 514 multiplied by distance 516. In some cases, the y-coordinate may be the sine of angle 514 multiplied by distance 516. Other points, such as, but not limited to, one of the points 591, 592, 594, 596, 598 may similarly be used as the origin, and as shown and / or described with respect to Figures 5B- Trigonometry may be used with the corresponding vectors (e.g., distances 516, 518, 522, 558, 554, 556 and / or angles 514, 518, 520, 540, 542, 544). In some cases, multiple origin points may be provided so that a plurality of points (e.g., two or more of points 590, 591, 592, 594, 596, 598) may initialize robot 102. Using multiple origin points would be desirable to generate multiple maps, to provide multiple origin points to select for computational simplicity, to provide a check of the sensor when one or more sensor readings are wrong, and to provide other benefits .

바람직하게는, 센서(568A - 568B)는 주행거리 측정계를 사용하여 센서(568A - 568B)의 초기화와 관련하여 로봇(102)의 움직임(예를 들어, 주행 거리 이동 및 회전량)을 추적할 수 있다. 예를 들어, 센서(568A-568B)는 하나 이상의 주행거리 측정계(예: 휠 인코더(예: 회전식 인코더)), 영상 주행기록계, 나침반, GPS(Global Positioning System), 관성 측정 장치(IMU), 라이다(lidar), 및 로봇(102)의 각도 회전을 검출할 수 있는 3D 카메라(예를 들어, 적색, 녹색, 청색, 깊이("RGB-D") 카메라 등)를 포함할 수 있다. IMU는 가속도계, 자력계, 각속도 센서 등을 포함할 수 있다. 예를 들어, 센서(568A)가 라이다를 포함하는 경우, 변위(및 대응하는 위치)는 상이한 시간에서 상이한 이미지의 위치 차이에 기초하여 결정될 수 있다. RGB-D 카메라가 사용되는 경우, 스캔 매칭을 사용하여 위치를 결정할 수 있다. 센서(568A - 568B)는 또한 로봇(102)에 의해 주행된 거리를 측정하기 위해 하나 이상의 주행거리 측정계를 포함할 수 있다.Preferably, the sensors 568A-568B use an odometer to track the movement of the robot 102 (e.g., travel distance and rotation) relative to the initialization of the sensors 568A-568B have. For example, the sensors 568A-568B may include one or more mileage meters (e.g., wheel encoders such as rotary encoders), video odometers, compass, GPS (Global Positioning System) (E.g., a red, green, blue, depth ("RGB-D") camera, etc.) capable of detecting angular rotation of the robot 102. The IMU can include accelerometers, magnetometers, angular velocity sensors, and the like. For example, if the sensor 568A includes ladder, the displacement (and corresponding position) can be determined based on the positional difference of the different images at different times. If an RGB-D camera is used, the location can be determined using scan matching. The sensors 568A-568B may also include one or more mileage meters to measure the distance traveled by the robot 102. [

도 4의 방법(400)으로 돌아가서, 부분(404)에서, 로봇(102)은 사용자의 제어 하에서 경로(116) 및 환경(100)의 맵(700)을 기록하면서 경로(116)(도 1b에 도시됨)를 따라 주행한다. 도 6a는 예시적인 사용자(604)가 예시적인 로봇(102)을 제어하는 예의 측면도를 예시한다. 사용자(604)는 관리인, 관리자 또는 로봇(102)을 사용할 수 있는 임의의 다른 사람일 수 있다. 도시된 바와 같이, 로봇(102)은 상점, 창고, 사무실 빌딩, 주택, 저장 시설 등의 플로어를 청소하도록 구성된 플로어 청소기일 수 있다. 따라서, 로봇(102)의 아래 및/또는 주위의 플로어를 청소하도록 구성된 브러시(608)를 가질 수 있다.Returning to method 400 of FIG. 4, at portion 404, the robot 102 creates a path 116 (see FIG. 1B), recording the path 116 and the map 700 of the environment 100 under the control of the user Shown in Fig. 6A illustrates a side view of an example in which an exemplary user 604 controls an exemplary robot 102. As shown in FIG. The user 604 may be a manager, an administrator, or any other person who can use the robot 102. As shown, the robot 102 may be a floor cleaner configured to clean floors of shops, warehouses, office buildings, homes, storage facilities, and the like. Thus, it may have a brush 608 configured to clean the floor below and / or around the robot 102.

로봇(102)은 행동 및/또는 작동을 맵(700)상의 위치 및/또는 궤적과 연관(예를 들어, 나중에 수행)하도록 훈련될 수 있다. 예를 들어, 브러시(608)는 액추에이터 유닛(318)에 의해 작동될 수 있으며, 브러시(608)는 온/오프 작동이 가능하고, 액추에이터 유닛(318)에 의해 상승 및 하강할 수 있다. 로봇(102)은 경로(716) 및 맵(700)를 기록하면서 사용자가 브러시(608)를 제어함에 따라 브러시(608)의 작동을 학습할 수 있다. 일부 구현예에서, 맵(700)은 맵(700) 및/또는 그 내부의 경로 (716) 상의 하나 이상의 위치 및/또는 궤도에서 브러시(608)의 작동을 위한 액추에이터 명령을 포함할 수 있다. 일부 구현예에서, 로봇(102)은 또한 하나 이상의 스퀴지(616; squeegee)를 가질 수 있다. 스퀴지(616)는 플로어를 청소하거나 긁을 수 있도록 고무-엣지 블레이드와 같은 고무 조각일 수 있다. 엑츄에이터 유닛(318)은 또한 스퀴지(616)를 상승/하강 시키는데 사용될 수 있다. 따라서, 로봇(102)은 사용자가 경로(116) 및 맵(700)을 기록하면서 제어함에 따라 스퀴지(616)의 작동을 학습할 수 있다. 일부 구현예에서, 맵(700)은 하나 이상의 위치 및/또는 궤도에서 스퀴지(616)의 작동을 위한 액추에이터 명령을 포함할 수 있다. 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트를 승하강시키기, 카메라 및/또는 센서 유닛(314)의 임의의 센서를 회전시키기, 및/또는 로봇(102)이 행동을 수행하는데 필요한 임의의 움직임과 같은, 스크러버 또는 다른 로봇 형태의 다른 기구의 작동도 유사하게 학습될 수 있다.The robot 102 may be trained to associate (e.g., perform later) actions and / or actions with position and / or locus on the map 700. For example, brush 608 may be actuated by actuator unit 318, brush 608 may be on / off actuated, and may be raised and lowered by actuator unit 318. The robot 102 may learn the operation of the brush 608 as the user controls the brush 608 while recording the path 716 and the map 700. [ In some implementations, the map 700 may include actuator commands for operation of the brushes 608 in one or more locations and / or trajectories on the map 700 and / or paths 716 therein. In some implementations, the robot 102 may also have one or more squeegees 616 (squeegee). The squeegee 616 may be a piece of rubber, such as a rubber-edge blade, to clean or scratch the floor. Actuator unit 318 may also be used to raise / lower squeegee 616. Thus, the robot 102 can learn the operation of the squeegee 616 by allowing the user to record and control the path 116 and the map 700. In some implementations, the map 700 may include actuator commands for actuation of the squeegee 616 in one or more positions and / or trajectories. Turning the water on and off, splashing water, turning the vacuum on or off, moving the vacuum hose position, moving the arms, lifting and lowering the lift, rotating any sensor of the camera and / or sensor unit 314, And / or any other movement of the scrubber or other robot type, such as any movement required for the robot 102 to perform the action, may similarly be learned.

일부 구현예에서, 자율적으로 내비게이션하는 동안 행동 및/또는 액추에이터 명령이 맵(700) 및/또는 그 내부의 경로(716) 상의 위치와 관련되는 경우, 로봇(102)은 이들 위치를 통과할 때마다 이들 행동 및/또는 액추에이터 명령을 수행할 수 있다. 일부 구현예에서, 자율적으로 내비게이션하는 동안, 행동 및/또는 액추에이터 명령이 맵(700) 상의 위치 및 궤도 및/또는 내부의 경로(716)와 관련되는 경우, 로봇(102)은 경로의 동일한 방향 및/또는 동일한 상대 시간에서의 위치를 지나갈 때 이들 행동 및/또는 액추에이터 명령을 수행할 수 있다. 따라서, 이러한 구현예들에서, 로봇(102)은 위치(예를 들어, 로봇이 순환되어 동일한 물리적 위치를 여러 차례 통과)를 통과할 때마다 행동 및/또는 액추에이터 명령을 수행하지 않고, 로봇이 위치(예를 들어, 장소)를 특정 방향으로 통과하거나 또는 경로의 특정 위치(들)을 지나갈 때만 행동 및/또는 액추에이터 명령을 수행한다.In some implementations, when an action and / or an actuator command is associated with a position on the map 700 and / or a path 716 therein, during autonomous navigation, the robot 102, These actions and / or actuator commands may be performed. In some implementations, when autonomously navigating, when the behavior and / or actuator commands are associated with a position and orbit and / or an internal path 716 on the map 700, the robot 102 may move in the same direction and / / RTI > and / or < / RTI > actuator commands when passing a position at the same relative time. Thus, in these implementations, the robot 102 does not perform an action and / or actuator command each time it passes a location (e.g., the robot is cycled and passes the same physical location multiple times) (E.g., a location) in a particular direction, or only passes a specific location (s) of the path.

당업자는 로봇(102)이 플로어 청소기인 경우에도 다수의 상이한 형태를 가질 수 있다는 것을 알 수 있다. 도 6b는 플로어 청소기용 예시적인 몸체 형태의 측면도를 예시한다. 도면은 비한정적인 예로서, 다양한 형태의 몸체 형태를 추가로 예시하고 있지만, 로봇(102)을 임의의 특정 몸체 형태 또는 플로어 청소기에 제한하지 않는다. 예시적인 몸체 형태(652)는 사용자가 몸체 형태(652)를 뒤에서 밀고 플로어를 청소할 수 있는 작은 프레임을 갖는 직립 형상을 갖는다. 일부 경우, 몸체 형태(652)는 사용자의 청소를 도울 수 있지만 또한 몸체 형태(652)의 자율 이동을 허용할 수 있는 동력 추진을 가질 수 있다. 몸체 형태(654)는 몸체 형태(652)보다 큰 구조적 형상을 갖는다. 몸체 형태(654)는 동력 구동되어 조향을 제외하면 몸체 형태(654) 상에 사용자의 힘이 거의 또는 전혀 없이도 움직일 수 있다. 사용자는 몸체 형태(654)가 움직일 때 그것을 조향할 수 있다. 몸체 형태(656)는 몸체 형태(656)가 청소할 때 사용자가 차량과 같이 몸체 형태(656)를 구동할 수 있도록 좌석, 페달 및 스티어링 휠을 포함할 수 있다. 몸체 형태(658)는 몸체 형태(656)보다 큰 형상을 가질 수 있고, 복수의 브러시를 가질 수 있다. 몸체 형태(660)는 사용자가 몸체 형태(660)를 구동함에 따라 앉는 부분 또는 완전히 둘러싸인 영역을 가질 수 있다. 몸체 형태(662)는 몸체 형태(662)를 운전하는 동안 사용자가 서있을 수 있는 플랫폼을 가질 수 있다.Those skilled in the art will appreciate that even if the robot 102 is a floor cleaner, it can have many different forms. Figure 6b illustrates a side view of an exemplary body shape for a floor cleaner. Although the figures illustrate, in a non-limiting example, various forms of body shapes, but do not limit the robots 102 to any particular body shape or floor cleaner. The exemplary body shape 652 has an upright shape with a small frame that allows the user to push the body shape 652 back and clean the floor. In some cases, the body shape 652 may have power propulsion that can assist the user in cleaning but also allow autonomous movement of the body shape 652. The body shape 654 has a larger structural shape than the body shape 652. The body shape 654 may be powered to move with little or no user force on the body shape 654 except for steering. The user can steer the body shape 654 as it moves. The body shape 656 may include a seat, a pedal, and a steering wheel to allow the user to drive the body shape 656, such as a vehicle, when the body shape 656 is cleaned. The body shape 658 may have a shape larger than the body shape 656 and may have a plurality of brushes. The body shape 660 may have a sitting or fully enclosed area as the user drives the body shape 660. The body shape 662 may have a platform on which the user may stand while driving the body shape 662.

또한, 본 개시에서 설명된 바와 같이, 로봇(102)은 플로어 청소기가 아닐 수 있다. 제한없는 추가적인 예시를 위해, 도 6c는 로봇(102)의 몸체 형태의 일부 추가 예들을 예시한다. 예를 들어, 몸체 형태(664)는 로봇(102)이 직립식 진공 청소기인 예를 도시한다. 몸체 형태(666)는 로봇(102)이 인체와 실질적으로 유사한 외관을 갖는 휴머노이드 로봇인 예를 예시한다. 몸체 형태(668)는 로봇(102)이 프로펠러를 갖는 드론인 예를 예시한다. 몸체 형태(670)은 로봇(102)이 휠 및 객실을 갖는 차량 형상을 갖는 예를 예시한다. 몸체 형태(672)는 로봇(102)이 로버(rover)인 예를 예시한다.In addition, as described in this disclosure, the robot 102 may not be a floor cleaner. For additional, non-limiting illustration, FIG. 6C illustrates some additional examples of the body shape of the robot 102. FIG. For example, the body shape 664 illustrates an example in which the robot 102 is an upright vacuum cleaner. The body shape 666 illustrates an example in which the robot 102 is a humanoid robot having an appearance substantially similar to a human body. The body shape 668 illustrates an example where the robot 102 is a dron with a propeller. The body shape 670 illustrates an example in which the robot 102 has a vehicle shape having wheels and rooms. The body shape 672 illustrates an example in which the robot 102 is a rover.

도 6a를 참조하면, 로봇(102)은 사용자(604)에 의한 제어를 위한 다양한 방식으로 구성될 수 있다. 예시된 바와 같이, 사용자(604)는 스티어링 휠(610)을 사용하여 로봇(102)을 조향하면서 로봇의 뒤에서 걸을 수 있다. 다른 구현예에서, 로봇(102)은 사용자(604)가 시트 또는 스탠딩 플랫폼 상에 타서 로봇(102)을 제어할 수 있는 탑승형 플로어 청소기(도시되지 않음)일 수 있다. 일부 구현예에서, 사용자(604)는 무선 원격 장치, 모바일 장치, 조이스틱 또는 당업계에 공지된 임의의 다른 장치와 같은 원격 제어기로 원격으로 로봇(102)을 제어할 수 있다. 이러한 제어는 좌회전, 우회전, 전진(예를 들어, 가속 페달의 사용 또는 로봇(102)에게 전진하라는 지시), 후진(예를 들어, 후진 페달 또는 로봇(102)에게 후진하라는 지시), 온/오프, 브러시 상승/하강, 물 온/오프 등을 포함한다. 일부 구현예에서, 사용자(604)는 로봇(102)의 이동을 구동하고, 브러시를 상승시키거나 하강시키고, 물을 온/오프하는 액추에이터 유닛(318)을 제어할 수 있다. 다른 구현예에서, 로봇(102)은 플로어 청소기가 아닐 수 있지만, 본 개시에 기재된 여타의 다른 로봇일 수 있다.Referring to FIG. 6A, the robot 102 may be configured in various ways for control by the user 604. FIG. As illustrated, the user 604 can walk behind the robot while steer- ing the robot 102 using the steering wheel 610. [ In another embodiment, the robot 102 may be a floor-standing floor cleaner (not shown) on which the user 604 may ride on a seat or standing platform to control the robot 102. In some implementations, the user 604 may remotely control the robot 102 with a remote controller, such as a wireless remote device, a mobile device, a joystick, or any other device known in the art. This control may be used to turn left, right, forward (e.g., to use an accelerator pedal or to instruct the robot 102 to advance), backward (e.g., to instruct the back pedal or robot 102 to reverse) , Brush up / down, water on / off, and the like. In some embodiments, the user 604 may control the actuator unit 318 to drive movement of the robot 102, raise or lower the brush, and turn on / off the water. In other implementations, the robot 102 may not be a floor cleaner, but may be any other robot described in this disclosure.

도 6d는 사용자(604)가 예시적인 로봇(102)을 제어하고 로봇(102)이 그 주변을 센싱할 때의 상면도를 도시한다. 로봇(102)은 로봇이 경로(116)를 주행함에 따라 하나 이상의 센서(560A-560D) 및 다른 센서를 사용하여 물체를 탐지하고 로봇(102)의 주변을 매핑할 수 있다. 예를 들어, 로봇(102)은 에너지 파(580A, 580C)를 방출할 수 있다. 에너지(580B)는 도 5e를 참조하여 본 명세서의 앞 부분에서 설명되었고, 명세서 전체에 걸쳐 여러 곳에 개시되었다. 에너지 파(580A, 580C)는 에너지 파(580B)와 실질적으로 유사할 수 있는데, 여기서 에너지 파(580A)는 센서(560A)에 대응하고, 에너지 파 (580C)는 센서(560C)에 대응한다.6D shows a top view when the user 604 controls the exemplary robot 102 and the robot 102 senses its surroundings. The robot 102 can detect an object and map the periphery of the robot 102 using one or more sensors 560A-560D and other sensors as the robot travels along the path 116. [ For example, the robot 102 may emit energy waves 580A, 580C. Energy 580B has been described earlier in this specification with reference to Figure 5E and has been disclosed elsewhere throughout the specification. Energy waves 580A and 580C may be substantially similar to energy waves 580B where energy wave 580A corresponds to sensor 560A and energy wave 580C corresponds to sensor 560C.

도 7a는 로봇(102)이 환경(100)에서 주행함에 따라 예시적인 로봇 (102)에 의해 생성된 예시적인 맵(700) 및 경로(716)를 예시한다. 일부 구현예에서, 맵(700)의 생성은 매핑 및 로컬라이제이션 유닛(312)에 의해 수행될 수 있다. 맵(700)은 픽셀을 포함할 수 있으며, 각 픽셀은 환경(100)의 매핑된 영역에 대응한다. 맵(700)의 픽셀 수는 맵(700)의 해상도에 기초하여 결정될 수 있다. 예를 들어, 맵(700)은 다양한 디스플레이 크기(예컨대, 3.5 인치, 10 인치, 20 인치 및/또는 당업계에 공지된 임의의 다른 대각선 스크린 치수) 및 디스플레이 해상도(예를 들어, 800 x 600, 1024 x 768, 1360 x 768, 1680 x 1050, 1920 x 1200, 2560 x 1440, 3840 x 2160 또는 당업계에 공지된 임의의 공지된 디스플레이 해상도)도 볼 수 있다. 맵(700)을 표시하는 화면은 사각형 또는 원형, 삼각형, 육각형 또는 다른 모양을 비사각형 일 수 있다. 이들 스크린은 사용자 인터페이스 유닛(322)의 일부일 수 있다. 맵(700)은 환경(100)과 레이아웃에서 실질적으로 유사할 수 있으며, 맵(700)의 각 픽셀은 환경(100)의 위치를 근사화시킬 수 있다.7A illustrates an exemplary map 700 and path 716 generated by the exemplary robot 102 as the robot 102 travels in environment 100. As shown in FIG. In some implementations, the creation of the map 700 may be performed by the mapping and localization unit 312. The map 700 may include pixels, with each pixel corresponding to a mapped region of the environment 100. The number of pixels in the map 700 may be determined based on the resolution of the map 700. [ For example, the map 700 may be displayed at various display sizes (e.g., 3.5 inches, 10 inches, 20 inches and / or any other diagonal screen dimensions known in the art) and display resolution (e.g., 800 x 600, 1024 x 768, 1360 x 768, 1680 x 1050, 1920 x 1200, 2560 x 1440, 3840 x 2160, or any known display resolution known in the art). The screen displaying the map 700 may be a square, a circle, a triangle, a hexagon, or other shapes and may be non-square. These screens may be part of the user interface unit 322. The map 700 may be substantially similar in layout to the environment 100 and each pixel of the map 700 may approximate the location of the environment 100. [

일부 구현예에서, 맵(700)의 픽셀은 하나 이상의 상태를 가질 수 있으며, 픽셀 상태는 픽셀에 의해 표현되는 환경(100) 내의 위치/장소의 특성의 적어도 일부를 표시한다. 예를 들어, 맵(700)의 픽셀은 바이너리일 수 있는데, 여기서 제 1 픽셀 상태(예를 들어, 픽셀 값)는 적어도 부분적으로 장애물없는(예를 들어, 내비게이이션 가능) 위치를 표시하고, 제 2 픽셀 상태는 적어도 부분적으로 차단(예: 내비게이션 불가) 위치를 표시한다. 예시로서, 영(0)의 픽셀 값은 장애물없는(clear) 위치를 적어도 부분적으로 표시할 수 있고, 하나(1)의 픽셀 값은 차단 위치를 적어도 부분적으로 표시할 수 있다.In some implementations, a pixel of map 700 may have more than one state, and the pixel state represents at least a portion of the characteristics of the location / location in environment 100 represented by the pixel. For example, the pixels of the map 700 may be binary, wherein the first pixel state (e.g., pixel value) represents an at least partially unobstructed (e.g., navigable) The second pixel state at least partially indicates a block (e.g., no navigation) position. By way of example, a pixel value of zero (0) may at least partially indicate a clear position, and a pixel value of one (1) may at least partially indicate a blocking position.

일부 구현예에서, 전술한 바이너리 상태를 대신하여 또는 이에 부가하여, 맵(700)의 픽셀은 다음 중 하나 이상의 다른 픽셀 상태를 가질 수 있다: 미지의 위치(예컨대, 정보가 없는 위치/장소)를 적어도 부분적으로 표시하는 픽셀 상태; 이동되지 않아야 하는 위치/장소를 적어도 부분적으로 표시하는 픽셀 상태; 내비게이션 경로(예를 들어, 경로(716))의 일부를 적어도 부분적으로 나타내는 픽셀 상태; 로봇(102)이 주행한 영역을 적어도 부분적으로 표시하는 픽셀 상태; 로봇(102)이 주행하지 않은 영역을 적어도 부분적으로 표시하는 픽셀 상태; 물체를 적어도 부분적으로 표시하는 픽셀 상태; 정수(standing water)를 적어도 부분적으로 표시하는 픽셀 상태; 및/또는 맵(700) 상에 있는 위치/장소의 임의의 다른 분류를 나타내는 상태를 가질 수 있다.In some implementations, instead of or in addition to the binary states described above, the pixels of the map 700 may have one or more of the following other pixel states: an unknown location (e.g., location / location without information) A pixel state that at least partially displays; A pixel state that at least partially displays a location / location that should not be moved; A pixel state that at least partially represents a portion of a navigation path (e.g., path 716); A pixel state at least partially displaying an area where the robot 102 travels; A pixel state at least partially indicating an area in which the robot 102 has not traveled; A pixel state at least partially displaying an object; A pixel state that at least partially represents a standing water; And / or any other classification of location / location on map 700. [

맵(700)의 픽셀은 또한 하나 이상의 값 또는 픽셀 상태를 저장할 수 있다. 예를 들어, 맵(700)의 각각의 픽셀은 벡터 또는 매트릭스에 저장된 값과 같은 복수의 값을 저장할 수 있다. 이들 값은 위치가 경로(716)를 따라 지점(예를 들어, 픽셀)에서 측정될 때 로봇(102)의 위치/자세(예를 들어 위치 및/또는 방향 포함)를 적어도 부분적으로 표시하는 값을 포함할 수 있다. 이러한 값들은 로봇(102)이 위치/장소를 청소해야 하는 지의 여부 또는 로봇(102)에 의해 취해지는 다른 행동들을 포함할 수 있다The pixels of the map 700 may also store one or more values or pixel states. For example, each pixel of the map 700 may store a plurality of values, such as a vector or a value stored in a matrix. These values include values that at least partially represent the position / orientation (e.g., position and / or orientation) of the robot 102 when the position is measured at a point (e.g., pixel) along path 716 . These values may include whether the robot 102 should clean the location / location or other actions taken by the robot 102

로봇(102)은 경로(716)로서 맵(700)에 반영될 수 있는 경로(116)(도 1b에 도시됨)를 따라 이동할 수 있다. 로봇(102)은 로봇 표시자(702)에 의해 맵(700) 상에 표시될 수 있으며, 맵(700) 내에서 로봇 표시자(702)의 위치는 환경(100) 내의 로봇(102)의 상대적 위치를 적어도 부분적으로 반영할 수 있다. 각각의 위치에서, 로봇(102)은 경로(116)를 따라 주행하고, 로봇(102)은 초기화 위치(104) 또는 다른 기준점(예를 들어, 물체들(512, 546, 548, 550), 지점들(590, 591, 592, 594, 596, 598) 및/또는 초기화 위치(104)에서 초기화되는 동안 로봇(102)이 사용하는 임의의 다른 기준점에 대한 그의 위치 및/또는 방향을 결정할 수 있다. 이러한 매핑 및 로컬라이제이션 기능은 매핑 및 로컬라이제이션 유닛(312)에 의해 수행될 수 있다. 초기화 위치(104)는 매핑 위치(724)로서 맵(700) 상에 나타낼 수 있다. 종단 위치(114)는 매핑 위치(726)로서 맵(700) 상에 나타낼 수 있다. 예를 들어, 로봇(102)은 자기 수용성 센서(568A - 568B)(예를 들어, 휠 인코더(예: 회전 인코더), 영상 주행기록계, IMU(가속도계, 자력계, 각속도 센서 등을 포함))를 사용하는 주행거리 측정계를 이용하여 초기화 위치(104)(또는 다른 참조 지점)으로부터의 거리를 측정하거나 추정하여 초기화 위치(104)에서 로봇의 초기화 이후의 움직임을 추적할 수 있다. 예시적인 예로서, 자기 수용성 센서들(568A - 568B) 중 하나 이상은 로봇(102)의 휠들의 회전에 기초하여 거리를 측정하거나 추정하는 휠 인코더일 수 있다. 또 다른 예시적인 예로서, 영상 주행기록계가 카메라에 의해 촬영된 순차적 이미지를 통해 로봇(102)의 이동된 거리 및/또는 방향을 측정 또는 추정하는데 사용될 수 있다. 영상 주행기록계는 칼만 필터 또는 프로젝션을 사용하여 광학 유동장(예컨대, 루카스-카나 데(Lucas-Kanade) 방법 또는 다른 방법을 사용하여)을 구성하고, 카메라 움직임을 추정할 수 있다. 다른 비한정적인 예로서, IMU는 로봇(102)의 위치 및/또는 방향을 측정 또는 추정하는데 사용될 수 있다.The robot 102 may move along a path 116 (shown in Figure 1B) that may be reflected in the map 700 as a path 716. The robot 102 may be displayed on the map 700 by a robot indicator 702 and the position of the robot indicator 702 within the map 700 may be displayed relative to the robot 102 within the environment 100 The location can be at least partially reflected. At each location, the robot 102 travels along a path 116 and the robot 102 moves from an initialization position 104 or another reference point (e.g., objects 512, 546, 548, 550) Or orientation with respect to any other reference point used by the robot 102 during initialization in the initialization positions 104, 105, 591, 592, 594, 596, 598 and / or initialization position 104. This mapping and localization function may be performed by the mapping and localization unit 312. The initialization position 104 may be represented on the map 700 as a mapping position 724. The termination position 114 may be a mapping position For example, wheel encoders (e.g., rotary encoders), video odometers, IMUs (e. G., Wheel encoders) (Including an accelerometer, a magnetometer, an angular velocity sensor, and the like) 568B) can measure or estimate the distance from the robot (e. G., A reference point) to track movement after initialization of the robot in the initialization position 104. As an illustrative example, one or more of the self- 102 may be a wheel encoder that measures or estimates the distance based on the rotation of the wheels of the robot 102. As another illustrative example, The image odometer may be configured to construct an optical flow field (e.g., using the Lucas-Kanade method or other method) using a Kalman filter or projection, The IMU can be used to measure or estimate the position and / or orientation of the robot 102. [0034]

로봇(102)이 환경(100)을 통해 내비게이션하는 것과 실질적으로 유사한 방식으로 로봇 표시자(702)가 맵(700)을 따라 진행함에 따라, 로봇(102)은 맵(700)에 경로(716)를 기록할 수 있다. 바람직하게는, 일부 구현예에서, 맵(700)과 경로(716)는 함께 같이 생성되며, 로봇(102)은 실질적으로 유사한 시간에 환경(100)을 매핑하고, 경로(716)를 기록한다. 따라서, 일부 구현예에서, 맵(700)과 경로(716)는 함께 쌍으로 형성될 수 있으며, 여기서 각각의 기록된 경로는 특정 맵과만 저장된다.The robot 102 moves the path 716 to the map 700 as the robot indicator 702 proceeds along the map 700 in a manner substantially similar to the robot 102 navigating through the environment 100. [ Can be recorded. Preferably, in some implementations, the map 700 and path 716 are generated together, and the robot 102 maps the environment 100 at substantially similar times and records the path 716. Thus, in some implementations, the map 700 and the path 716 may be formed together in pairs, where each recorded path is stored only with a particular map.

경로(116)의 일부인 각각의 위치에서, 로봇(102)은 맵(700) 내의 경로(716) 상의 대응 픽셀의 상태를 픽셀이 내비게이션 경로의 일부임을 나타내는 픽셀 상태로 변경할 수 있다. 동시에, 로봇(102)은 도 5a - 5e와 관련한 센서들(560A-560D)을 참조하여 기술된 것과 실질적으로 유사한 시스템들 및 방법들을 사용하여 하나 이상의 센서들(560A-560D)을 사용하여 물체들에 대한 로봇의 위치 및/또는 방향을 측정할 수 있다. 이러한 방식으로, 로봇(102)은 맵(700)을 채우기 위해 선반 또는 벽과 같은 대상물에 대한 로봇(102)의 위치 및/또는 방향을 검출 및/또는 측정할 수 있으며, 로봇(102)은 이러한 검출 및 측정에 적어도 부분적으로 기초하여 픽셀 상태를 변경할 수 있다.At each location that is part of path 116, robot 102 may change the state of the corresponding pixel on path 716 in map 700 to a pixel state indicating that the pixel is part of the navigation path. Simultaneously, the robot 102 may use one or more sensors 560A-560D, using systems and methods substantially similar to those described with reference to sensors 560A-560D in conjunction with Figures 5A-5E, The position and / or the direction of the robot relative to the robot can be measured. In this manner, the robot 102 may detect and / or measure the position and / or orientation of the robot 102 relative to an object such as a shelf or wall to fill the map 700, The pixel state can be changed based at least in part on detection and measurement.

로봇(102)이 물체를 검출하는 경우, 로봇(102)은 센서(560A-560D)를 사용하여 로봇(102)에 대한 복수의 방향으로 물체의 위치 및/또는 방향을 검출 및/또는 측정할 수 있다. 동시에, 로봇(102)은 센서(568A - 568B)를 사용하여 로봇(102)의 위치(예를 들어, 주행 거리) 및/또는 방향을 추정할 수 있다. 로봇(102)이 환경 내에서 이동함에 따라, 상이한 물체가 센서의 범위 내에 들어올 수 있다. 예를 들어, 로봇(102)의 전면(502)에 위치될 수 있는 센서(560B)는 범위(704)를 가질 수 있다. 예를 들어, 로봇(102)은 전면(502)에서 범위(704)까지의 물체를 검출할 수 있다. 유사하게, 센서(560A, 560C, 560D)는 각각 범위를 가질 수 있고 이들 범위 내에서 물체를 검출할 수 있다. 로봇(102)이 물체를 검출하고 로봇(102)으로부터의 상대적인 위치 및/또는 방향을 결정함에 따라, 로봇(102)은 검출된 물체에 대응하는 픽셀의 위치를 맵(700) 상에 표시할 수 있다. 이러한 픽셀은 이들 픽셀이 물체(예를 들어, 차단 위치 또는 물체를 나타내는 픽셀 상태)에 대응하는 것을 적어도 부분적으로 표시하는 상태로 바뀔 수 있다.When the robot 102 detects an object, the robot 102 can use sensors 560A-560D to detect and / or measure the position and / or orientation of the object in a plurality of directions relative to the robot 102 have. At the same time, the robot 102 may estimate the position (e.g., travel distance) and / or orientation of the robot 102 using sensors 568A-568B. As the robot 102 moves within the environment, different objects may fall within the range of the sensor. For example, the sensor 560B, which may be located on the front face 502 of the robot 102, may have a range 704. [ For example, the robot 102 may detect an object from the front surface 502 to the range 704. [ Similarly, sensors 560A, 560C, and 560D can each have a range and can detect objects within these ranges. As the robot 102 detects an object and determines a relative position and / or direction from the robot 102, the robot 102 can display the position of the pixel corresponding to the detected object on the map 700 have. Such a pixel may be changed to a state that at least partially indicates that these pixels correspond to an object (e.g., a blocking position or a pixel state representing an object).

로봇(102)은 픽셀 단위로 맵(700)을 채우기 때문에, 맵(700)은 소정의 아티팩트(artifacts)를 가질 수 있다. 예를 들어, 매끄럽게 나타나는 벽은 센서에 수신된 신호에 적어도 부분적으로 기초하여 들쭉날쭉하게 나타날 수 있다. 예를 들어, 센서(560A - 560D)가 소리, 빛 또는 다른 요소들의 표면으로부터의 반사율에 의존하는 소나(sonar), 라이다(lidar) 또는 기타 센서를 포함하는 경우, 표면 내에 가변성이 있을 수 있다. 또한, 모션 아티팩트 그리고 기타 아티팩트 및/또는 왜곡이 있을 수 있다.Because the robot 102 fills the map 700 on a pixel by pixel basis, the map 700 may have certain artifacts. For example, a smoothly appearing wall may appear jagged based at least in part on the signal received at the sensor. For example, if the sensor 560A-560D comprises a sonar, lidar or other sensor that depends on the reflectance from the surface of the sound, light, or other elements, there may be variability within the surface . There may also be motion artifacts and other artifacts and / or distortions.

일부 경우, 센서(560A - 560D)는 특정 영역들을 센싱하지 못할 수 있다. 예를 들어, 물체는 영역을 센싱하는 로봇(102)의 기능을 방해할 수 있거나, 상기 영역이 사각 지대(예를 들어, 센서의 측정 범위에 의해 커버되지 않는 장소)에 나타날 수 있다. 다른 비한정적인 예로서, 박스(706)는 로봇(102)이 맵(700) 상에서 터닝(708)할 때 로봇(102)에 의해 취해진 측정치를 맵(700) 상에 하이라이트로 표시한다. 로봇(102)이 회전함에 따라, 센서(560A - 560D)는 박스(706)에 의해 백색으로 표시된 영역(예컨대, 내비게이션 위치)을 측정하지만, 어떤 물체는 센서의 범위를 방해하여 박스(706)에 도시된 바와 같은 길고 파쇄된 외관을 생성한다.In some cases, sensors 560A-560D may not be able to sense specific areas. For example, the object may interfere with the function of the robot 102 sensing the region, or the region may appear in a blind spot (e.g., a location not covered by the measurement range of the sensor). As another non-limiting example, the box 706 highlights on the map 700 the measurements taken by the robot 102 when the robot 102 turns 708 on the map 700. As the robot 102 rotates, the sensors 560A-560D measure the area indicated by white (e.g., navigation position) by the box 706, but some objects interfere with the sensor's range and enter the box 706 Creating a long, crumbly appearance as shown.

로봇(102)이 초기화 위치(104)에서 종료 위치(114)까지 경로(116)를 따라 주행함에 따라, 로봇(102)은 로봇(102)의 센서들의 범위 내에서 경로(116) 및 경로(116)의 주위 환경(100)을 포함하는 맵(700)을 생성할 수 있다. 도 7b는 일단 완료된 예시적인 맵(700)을 나타낸다. 바람직하게는, 로봇(102)은 매핑된 경로(716)를 기록하고 맵(700)의 매핑된 경로(716)의 주위 환경을 하나의 데모로 매핑할 수 있다. 따라서, 맵(700)은 로봇(102)이 하나의 데모만큼 자율적으로 경로(116)(또는 경로(116)와 실질적으로 유사한 경로)를 다시 내비게이션할 수 있게 한다.As the robot 102 travels along the path 116 from the initialization position 104 to the end position 114 the robot 102 moves along path 116 and path 116 within the range of sensors of the robot 102 And the surrounding environment 100 of the map 100. FIG. 7B shows an exemplary map 700 once completed. Preferably, the robot 102 may record the mapped path 716 and map the environment of the mapped path 716 of the map 700 to one demo. Thus, the map 700 allows the robot 102 to autonomously navigate the path 116 (or a path substantially similar to the path 116) as a demo.

다른 최신 시스템 및 방법에서는 사용자가 맵을 업로드하거나, 맵에 경로를 그리거나, 환경을 매핑하는 다양한 데모를 이용하도록 요구될 수 있다. 이러한 시스템 및 방법은 사용자에게 부담스러울 수 있다. 예를 들어, 이러한 시스템 및 방법은 사용자가 작업할 이들 시스템 및 방법에 대해 만족스러운 방법으로 모든 단계들을 수행할 수 있더라도, 번거롭고 낮은 사용자 경험을 제공할 수 있다. 로봇(102)이 매핑된 경로(716)를 기록하고 맵(700)에서 하나의 데모로 매핑하는 것은 사용자가 최소한의 사용자 상호 작용으로 로봇(102)을 훈련 및/또는 프로그래밍할 수 있게 한다는 점에서 유리할 수 있다. 이러한 능력은 비교적 적은 사용자 데모에 기초하여 많은 환경에 쉽게 적응할 수 있다는 점에서 유리하다. Other modern systems and methods may require a user to use various demos to upload maps, draw paths to maps, or map the environment. Such systems and methods may be burdensome to the user. For example, such systems and methods may provide a cumbersome and low user experience, although they may perform all steps in a satisfactory manner for those systems and methods that the user will be working with. Recording the mapped path 716 of the robot 102 and mapping it to a demo in the map 700 allows the user to train and / or program the robot 102 with minimal user interaction Can be advantageous. This capability is advantageous in that it is easily adaptable to many environments based on relatively few user demos.

다시 도 4를 참조하면, 부분(406)에서, 로봇(102)은 맵(700)에서의 매핑 오류를 결정할 수 있다. 이러한 결정은 맵 평가 유닛(324)에 의해 수행될 수 있다. 바람직하게는, 로봇(102)이 단일 데모로 맵 (700)을 생성한 이후에 경로(106)를 바람직하게 자율 주행하는 경우(예를 들어, 자율 단계(416)), (경로(716)을 포함하는) 맵(700)에 매핑 오류가 있었는지 여부를 결정하는 것은, 로봇(102)로 하여금, 예를 들어, 충돌, 오류 및/또는 부정확하거나 잘못된 매핑의 부정적인 결과를 피할 수 있도록 해준다. 로봇(102)이 맵(700)에서 충분한 매핑 오류가 있고 및/또는 맵(700)의 품질이 좋지 않다는 것을 알게 되면, 로봇(102)은 (예를 들어, 사용자 인터페이스를 통해) 맵의 품질이 좋지 않다는 것을 나타내는 경고, 알람, 프롬프트(prompt) 및/또는 다른 표시를 사용자(예: 사용자(604) 또는 다른 사용자)에게 전송할 수 있다. 일부의 경우에, 로봇(102)은 (예를 들어, 부분들(402, 404)을 다시 수행함으로써) 경로를 다시 데모하도록 경보, 알람, 프롬프트 또는 다른 지시를 사용자에게 전송할 수 있다. 바람직하게는, 자율 내비게이션에 앞서 오류를 결정하거나 및/또는 맵(700)의 품질을 평가함으로써, 로봇(102)이 장애물과 충돌하는 것을 방지하고, 로봇(102)의 매핑으로 인해 멈추는 것을 방지하여 시간을 절약하고 손상을 방지 할 수 있다.Referring again to FIG. 4, at portion 406, the robot 102 may determine a mapping error in the map 700. This determination can be performed by the map evaluation unit 324. [ Preferably, if the robot 102 autonomously travels along the path 106 after generating the single demo map 700 (e.g., autonomous step 416), then (path 716) Determining whether there is a mapping error in the map 700 (e.g., including a map) may allow the robot 102 to avoid negative consequences of, for example, collisions, errors and / or incorrect or incorrect mappings. If the robot 102 finds that there is a sufficient mapping error in the map 700 and / or that the quality of the map 700 is not good, then the robot 102 may determine that the quality of the map (e.g., via the user interface) (E. G., User 604 or other user) a warning, an alarm, a prompt, and / or other indication that it is not good. In some cases, the robot 102 may send an alert, an alarm, a prompt, or other indication to the user to re-demonstrate the path (e.g., by performing portions 402 and 404 again). Preferably, the robots 102 are prevented from colliding with the obstacles by determining errors prior to autonomous navigation and / or by evaluating the quality of the map 700, and are prevented from stopping due to the mapping of the robots 102 Time can be saved and damage can be prevented.

로봇(102)이 매핑 오류를 검출하고 및/또는 맵(700)(경로(716)를 포함)의 품질을 평가할 수 있는 다수의 방법이 있으며, 각각의 방법은 단독으로 또는 조합하여 구현된다. 특히, 모든 매핑 오류 또는 매핑 오류의 존재가 맵(700)이 품질이 좋지 않다는 것을 의미하는 것은 아니며 및/또는 자율 내비게이션에 사용될 수 없다는 것을 의미하는 것은 아니다. 실제로, 맵(700)은 많은 오류를 가질 수 있고 자율 내비게이션에 여전히 적합 할 수 있다. 오히려, 부분(406)은 로봇(102)이 맵(700)에 적어도 부분적으로 기초하여 자율적으로 내비게이션할 수 없거나 자율적으로 내비게이션해서는 안될 정도로 맵(700)이 충분히 취약한지를 결정하는데 사용될 수 있다. 전술한 내용은 로봇(102)이 이러한 평가를 할 수 있는 방법의 몇 가지 예시적인 예를 제공한다. 일부 구현예에서, 매핑 오류를 검출하고 및/또는 맵(700)의 품질을 평가할 때, 로봇(102)은 맵(700)의 오류의 적어도 일부 특성을 고려할 수 있다. 바람직하게는, 일부 경우에 있어서, 로봇(102)은 사용자(604)에 의한 입력 및/또는 노력이 거의 또는 전혀 없이 매핑 오류를 검출하고 및/또는 맵(700)의 품질을 평가할 수 있다. 이는 로봇(102)의 자율성을 더욱 강조하고 강화하는 탄탄한 경험을 사용자(604)에게 부여한다.There are a number of ways in which the robot 102 can detect a mapping error and / or evaluate the quality of the map 700 (including path 716), and each method is implemented singly or in combination. In particular, the presence of all mapping errors or mapping errors does not imply that the map 700 is of poor quality and / or does not mean that it can not be used for autonomous navigation. In fact, the map 700 may have many errors and still be suitable for autonomous navigation. Rather, portion 406 can be used to determine if map 700 is sufficiently vulnerable such that robot 102 can not autonomously navigate or autonomously navigate based at least in part on map 700. The foregoing provides some illustrative examples of how the robot 102 can make such an assessment. In some implementations, when the mapping error is detected and / or the quality of the map 700 is evaluated, the robot 102 may consider at least some characteristics of the error in the map 700. [ Preferably, in some cases, the robot 102 may detect a mapping error and / or assess the quality of the map 700 with little or no input and / or effort by the user 604. [ This gives the user 604 a solid experience of further emphasizing and enhancing the autonomy of the robot 102.

예시적인 예로서, 일부 구현예들에서, 로봇(102)은 맵(700) 및/또는 경로(716)를 검증하기 위해 서버, 제어 센터, 모바일 장치 및/또는 사용자/뷰어를 위한 임의의 인터페이스로 맵(700)을 전송할 수 있다. 뷰어는 스크린, 컴퓨터 모니터, 텔레비전 등과 같은 디스플레이 및/또는 사용자 인터페이스 유닛(322) 내의 임의의 디스플레이 상에서 맵(700)을 볼 수 있다. 뷰어는 또한 로봇(102)에 회신할 수 있으며, 이러한 통신은 맵(700) 및/또는 경로(716)가 자율 내비게이션용으로 적절한지 여부를 적어도 부분적으로 나타낼 수 있다. 일부 경우에, 로봇(102)은, 맵(700)을 전송할 수 있고 맵(700) 및/또는 경로(716)가 자율적인 내비게이션에 사용하기에 적합한 것인가를 적어도 부분적으로 나타내는 통신을 수신할 수 있는 통신 유닛(316)을 사용하여 맵(700)을 송신 할 수 있다. 일부 경우에, 사용자 인터페이스(예컨대, 사용자 인터페이스 유닛(322))는 로봇(102) 상에 있을 수 있으며, 여기서 사용자는 맵(700) 및/또는 경로(716)를 볼 수 있고, 맵(700) 및/또는 경로(716)가 자율 내비게이션에 적합하다는 것을 적어도 부분적으로 나타내는 입력을 제공할 수 있다.As an illustrative example, in some implementations, the robot 102 may be coupled to any interface for a server, control center, mobile device, and / or user / viewer to verify the map 700 and / The map 700 can be transmitted. The viewer may view the map 700 on a display, such as a screen, a computer monitor, a television, etc., and / or on any display in the user interface unit 322. The viewer may also reply to the robot 102 and this communication may at least partially indicate whether the map 700 and / or path 716 is appropriate for autonomous navigation. In some cases, the robot 102 may be able to receive communications that can transmit the map 700 and / or at least partially indicate whether the path 700 and / or route 716 is suitable for autonomous navigation The communication unit 316 can be used to transmit the map 700. [ In some cases, a user interface (e.g., user interface unit 322) may be on the robot 102, where the user can view the map 700 and / or path 716, And / or path 716 are suitable for autonomous navigation.

다른 예시적인 예로서, 일부 구현예에서, 로봇(102)은 경로(716)를 포함하여 맵(700)의 특별하게 미리 결정된 패턴(예를 들어, 소정의 오류 패턴)을 검색할 수 있고, 특별하게 소정 패턴의 존재 또는 부재는 매핑 오류 및/또는 맵(700)의 품질을 적어도 부분적으로 표시할 수 있다. 예시적인 예로서, 로봇(102)이 상점에서 작동하는 플로어 청소기인 경우, 로봇(102)은 상품을 전시하는 선반을 나타낼 수 있는 하나 이상의 일련의 대략 평행한 물체들(108, 110, 112)(도 1a - 1c에 도시됨)을 예상하고 및/또는 찾도록 구성될 수 있다. 맵(700)에 나타낸 바와 같이, 물체(108, 110, 112)는 도 8a에 도시된 바와 같이 매핑된 물체(808, 810, 812)와 평행하게 나타날 수 있다. 따라서, 도 8b에 예시된 바와 같이, 로봇(102)이 대신 매핑된 물체(858, 860, 862)를 매핑하는 경우, 로봇(102)은 맵(700)에 오류가 있음을 알 수 있다.As another illustrative example, in some implementations, the robot 102 may retrieve a specially predetermined pattern (e.g., a predetermined error pattern) of the map 700, including path 716, The presence or absence of a predetermined pattern may at least partially indicate a mapping error and / or the quality of the map 700. [ As an illustrative example, when the robot 102 is a floor cleaner that operates in a shop, the robot 102 may include one or more series of approximately parallel objects 108, 110, 112 (which may represent a shelf for displaying merchandise) (As shown in Figures 1A-1C). As shown in map 700, objects 108, 110, and 112 may appear parallel to mapped objects 808, 810, and 812, as shown in FIG. 8A. Therefore, when the robot 102 maps the mapped objects 858, 860, 862 instead, as illustrated in Fig. 8B, the robot 102 can know that the map 700 is defective.

로봇(102)은 이러한 특정 패턴을 픽셀 단위 또는 영역 단위로 검출할 수 있다. 일부 경우, 로봇(102)은 맵(700)에서 하나 이상의 물체(858, 860, 862)를 식별하기 위해 세그멘테이션, 에지 검출, 형상 인식 및/또는 다른 기술과 같은 이미지 프로세싱을 사용할 수 있다. 물체(858, 860, 862)가 식별되면, 로봇(102)은 물체(858, 860, 862)가 물체(858, 860, 862)의 다른 물체와 대략 평행한지 여부를 결정하기 위해 다양한 방법을 사용할 수 있다. 로봇(102)은 그 후 물체(858, 860, 852) 사이의 거리 및/또는 상대 각도와 같은 물체(858, 860, 862)의 방향 및/또는 위치를 측정할 수 있다. 측정된 방향 및/또는 위치에 적어도 부분적으로 기초하여, 로봇(102)은 물체(858, 860, 862)가 대략 평행한지 여부를 결정할 수 있다.The robot 102 can detect this specific pattern on a pixel-by-pixel or area-by-area basis. In some cases, the robot 102 may use image processing such as segmentation, edge detection, shape recognition, and / or other techniques to identify one or more objects 858, 860, 862 in the map 700. Once objects 858, 860 and 862 are identified, robot 102 may use various methods to determine whether objects 858, 860 and 862 are approximately parallel to other objects of objects 858, 860 and 862 . The robot 102 may then measure the orientation and / or position of objects 858, 860, 862, such as the distance between objects 858, 860, 852 and / or relative angles. Based at least in part on the measured direction and / or position, the robot 102 may determine whether the objects 858, 860, 862 are approximately parallel.

예시적인 예로서, 로봇(102)은 물체(858, 860, 862)를 한정하기 위해(예컨대, 대응 픽셀들을 찾기 위해) 씨딩(seeding) 또는 영역 성장을 사용할 수 있다. 이 픽셀들을 이용하여, 로봇(102)은 물체(858, 860, 862) 내의 다수의 지점들을 식별할 수 있다. 예시적인 예로서, 로봇(102)은 물체(862) 내의 지점들(868, 866, 864) 및 물체(862) 내의 지점들(890, 892, 894)을 식별할 수 있다. 로봇(102)은 물체(862)의 각 지점(864, 866, 868)과 물체(860)의 지점(890,892,894) 사이의 거리를 측정하고 비교하여 물체(860, 862)가 대략 평행한지 여부를 적어도 부분적으로 결정할 수 있다. 예를 들어, 지점(866)과 지점(892), 및 지점(868)과 지점(894) 사이의 거리의 차이가 소정 임계치(예를 들어, 측정에서 또는 대략 평행한 선반의 실제 위치에서 가능한 편차를 나타내는 임계치로서, 제한없이 5 %, 10 %, 15 % 차이)를 상회할 경우, 로봇(102)은 물체(860, 862)가 대략 평행하지 않다는 것을 알 수 있다. 일부 경우, 소정의 임계치는 메모리(302)에 저장될 수 있다. 거리의 차이가 소정 임계치 아래이거나 또는 이와 동일한 경우, 로봇(102)은 이들이 거의 평행하다는 것을 알 수 있다. 당업자는 로봇(102)이 물체(860, 862) 내의 지점들(864, 866, 868, 890, 892, 894) 이외의 지점 및/또는 다른 지점을 사용하여 거리 및 거리의 차이를 유사하게 계산할 수 있다는 것을 알 수 있다. 로봇(102)은 물체(858, 860, 862)들을 유사하게 비교할 수 있으며 및/또는 존재할 수 있는 임의의 다른 물체들을 유사하게 비교할 수 있다. 로봇(102)이 물체(108,110,112,118)와 같은 평행 물체를 예상하는 곳에서 하나 이상의 실질적으로 평행하지 않은 물체를 발견하면, 로봇(102)은 맵(700)에서의 매핑 오류를 검출할 수 있고 및/또는 맵(700)이 양질이 아닌 것을 발견할 수 있다. 일부 경우, 로봇(102)은 사용자(604)에게(예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다.As an illustrative example, robot 102 may use seeding or area growth to define objects 858, 860, 862 (e.g., to find corresponding pixels). Using these pixels, the robot 102 can identify a number of points within the objects 858, 860, 862. As an illustrative example, the robot 102 may identify points 868, 866, 864 in the object 862 and points 890, 892, 894 in the object 862. The robot 102 measures and compares the distances between the points 864, 866 and 868 of the object 862 and the points 890,892 and 894 of the object 860 to determine whether the objects 860 and 862 are approximately parallel Can be determined in part. For example, if the difference in distance between point 866 and point 892 and between point 868 and point 894 is greater than or equal to a predetermined threshold (e.g., a possible deviation from the actual position of the shelf in measurement or approximately parallel , The robot 102 can know that the objects 860 and 862 are not substantially parallel to each other. In some cases, the predetermined threshold value may be stored in the memory 302. If the difference in distance is below a predetermined threshold or the like, then the robot 102 will know that they are almost parallel. Those skilled in the art will appreciate that the robot 102 may similarly calculate differences in distance and distance using points and / or other points other than points 864, 866, 868, 890, 892, 894 in objects 860, 862 . The robot 102 may similarly compare objects 858, 860, 862 and / or may similarly compare any other objects that may be present. If the robot 102 finds one or more substantially non-parallel objects at a location that anticipates parallel objects such as objects 108, 110, 112 and 118, the robot 102 may detect mapping errors in the map 700 and / Or the map 700 is not of good quality. In some cases, the robot 102 may prompt the user 604 to demonstrate the path again (e.g., via the user interface unit 322).

다른 예시적인 구현예에서, 도 8c는 물체(808, 810, 812)와 같은 평행 물체에 대해 맵(700)을 검색하는데 사용될 수 있는 예시적인 마스크(870)를 예시한다. 마스크(870)는 매트릭스로서 시각화될 수 있는 구조 템플릿일 수 있으며, 매트릭스의 각 셀은 픽셀 또는 맵(700)들의 픽셀 그룹, 및 이들의 대응하는 픽셀 상태를 나타낼 수 있다. 당업계의 특정 응용에 사용되는 바와 같이, 마스크(870)는 또한 필터로서 지칭될 수 있다. 마스크(870)는 메모리(302) 및/또는 맵(700)을 프로세싱하도록 구성된 소프트웨어의 일부분에 저장될 수 있다. 일부 구현예에서, 마스크(870)의 크기는 맵(700) 및 물체(808, 810, 812)의 크기에 적어도 부분적으로 기초하여, (예를 들어, x 방향으로 m 픽셀 및 y 방향으로 n 픽셀을 갖는 m × n 매트릭스로서) 결정된다. 예를 들어, 마스크(870)의 크기는 맵(700)의 전체 픽셀 치수(예를 들어, 5 %, 10 %, 15 %, 20 %, 25 % 또는 그 이상)의 백분율에 적어도 부분적으로 기초하여 미리 결정될 수 있거나, 물체(808, 810, 812)의 공지된 근사 측정에 적어도 부분적으로 기초하여 결정될 수 있다. 일부 경우, 마스크(870)는 검색 방법의 반복을 통해 크기가 변할 수 있는데, 마스크(870)는 제 1 크기로서 맵(700)을 검색하기 시작하고, 그 후 맵(700)을 다시 제 2 크기로 검색하고, 이어서 맵(700)을 다시 제 3 크기로 검색하는 등으로 소정 횟수 검색하기 시작한다. 예를 들어, 마스크(870)는 더 큰 마스크로서 시작될 수 있고 연속적인 반복을 통해 작은 마스크가 될 수 있다. 도 8c에 예시된 마스크(870)의 크기는 예시를 위한 것이며, 축척이 맞지 않을 수 있다.8C illustrates an exemplary mask 870 that may be used to search for a map 700 for parallel objects such as objects 808, 810, and 812. In other exemplary implementations, Mask 870 can be a structural template that can be visualized as a matrix, and each cell in the matrix can represent a pixel group of pixels or maps 700, and their corresponding pixel states. As used in certain applications in the art, mask 870 may also be referred to as a filter. The mask 870 may be stored in memory 302 and / or in a portion of the software configured to process the map 700. In some implementations, the size of the mask 870 may be determined based on the size of the map 700 and objects 808, 810, 812 (e.g., m pixels in the x direction and n pixels in the y direction) As an < RTI ID = 0.0 > mxn < / RTI > For example, the size of the mask 870 may be determined based at least in part on the percentage of the overall pixel dimensions (e.g., 5%, 10%, 15%, 20%, 25% May be predetermined or may be determined based at least in part on known approximate measurements of objects 808, 810, 812. In some cases, the mask 870 may vary in magnitude through repetition of the search method, where the mask 870 begins to search the map 700 as the first size, And then searches the map 700 for a predetermined number of times by searching again for the third size. For example, the mask 870 can be started as a larger mask and become a smaller mask through successive iterations. The size of the mask 870 illustrated in FIG. 8C is for illustrative purposes and may be scaled.

마스크(870)는 맵(700)을 가로질러 그리고 그 주위를 스위핑하고 마스크(870)의 내용을 맵(700)의 내용과 비교함으로써 맵(700)을 검색할 수 있다. 예를 들어, 마스크(870)는 매트릭스일 수 있고, 매트릭스의 각 셀은 맵(700)의 픽셀 상태(예컨대, 장애물없는 (내비게이션이 가능한) 위치, 차단(예컨대, 내비게이션이 불가능한) 위치, 알려지지 않은 위치, 주행하면 안되는 위치, 내비게이션 경로의 일부, 주행한 위치, 주행하지 않은 위치, 물체, 물 및/또는 본 개시에서 설명된 맵(700)의 임의의 다른 카테고리들)에 적어도 부분적으로 대응하는 값을 갖는다. 매트릭스의 셀(872) 또는 임의의 다른 셀(예를 들어, 우측 상부 코너 셀, 하부 좌측 코너 셀, 하부 우측 코너 셀, 중간 셀 또는 마스크(870)의 임의의 다른 셀)은 맵(700)의 하나 이상의 또는 모든 픽셀과 정렬될 수 있다. 이러한 셀들이 맵(700)의 각각의 픽셀과 정렬됨에 따라, 마스크(870)의 다른 셀 또한 맵(700)의 주변 픽셀과 정렬될 수 있다. 맵(700)으로부터 정렬된 각각의 픽셀은 마스크(870)의 대응하는 픽셀과 비교되어 마스크(870)와 픽셀이 정렬되는 맵(700)의 영역 사이의 유사성을 검출할 수 있다.The mask 870 may search the map 700 by sweeping around and around the map 700 and comparing the contents of the mask 870 with the contents of the map 700. [ For example, the mask 870 may be a matrix, and each cell of the matrix may be associated with a pixel state (e.g., an unobstructed (navigable) location, a blocked (e.g., non navigable) A value corresponding at least in part to a location, a location that should not be run, a portion of a navigation path, a ridden location, a non-ridden location, an object, water, and / or any other categories of the map 700 described in this disclosure) Respectively. (E.g., the right upper corner cell, the lower left corner cell, the lower right corner cell, the intermediate cell, or any other cell of the mask 870) of the matrix 700, or any other cell May be aligned with one or more or all pixels. As these cells are aligned with each pixel of the map 700, other cells of the mask 870 may also be aligned with the surrounding pixels of the map 700. [ Each pixel aligned from the map 700 may be compared with a corresponding pixel of the mask 870 to detect similarity between the mask 870 and the area of the map 700 where the pixels are aligned.

예시된 바와 같이, 마스크(870)는 평행한 물체(예를 들어, 물체(808, 810, 812) 중 2 개)를 적어도 부분적으로 나타낼 수 있는 구조(876, 878)를 한정한다. 구조(876, 878)의 셀(예를 들어, 셀(876))은 검색된 물체의 특정 특성을 나타내는 값을 가질 수 있다. 예를 들어, 구조(876, 878)의 셀 각각은 맵(700)의 물체를 적어도 부분적으로 표시하는 (예를 들어, 맵(700) 내의 물체에 대한 픽셀 상태를 적어도 부분적으로 나타내는) 값을 가질 수 있다. 구조들(876, 878) 사이에는 픽셀들이 장애물없는 위치를 나타내는 값들을 가질 수 있는 구조(880)가 있을 수 있다. 이러한 방식으로, 일부 구현예에서, 구조(876, 878)는 선반을 나타낼 수 있고 구조(880)는 이들 사이의 통로를 나타낼 수 있다. 따라서, 마스크(870)의 각 셀은 맵(700)의 예상 픽셀을 나타내는 값을 가질 수 있다. 마스크(870) 내의 셀의 지정은 맵(700)이 검색되는 픽셀의 패턴을 반영할 수 있다. 일부 구현예들에서, 반복 검색에서, 마스크(870)는 회전하거나 및/또는 방향을 변경할 수 있다. 바람직하게는, 이는 마스크(870)가 일정 각도로 기울어져 있는 아이템에 대해 맵(700)을 검색하게 하고 및/또는 맵(700) 자체가 일정 각도로 기울어 질 수 있게 한다.As illustrated, mask 870 defines structures 876 and 878 that can at least partially represent parallel objects (e.g., two of objects 808, 810, and 812). A cell (e.g., cell 876) of structures 876 and 878 may have a value that indicates a particular characteristic of the object searched. For example, each of the cells of structures 876 and 878 may have a value that at least partially represents an object of map 700 (e.g., at least partially representing a pixel state for an object in map 700) . Between structures 876 and 878 there may be a structure 880 where the pixels may have values that indicate an obstacle-free location. In this manner, in some implementations, structures 876 and 878 may represent shelves and structure 880 may represent a passage therebetween. Thus, each cell of the mask 870 may have a value that represents the expected pixel of the map 700. The designation of the cells in the mask 870 may reflect the pattern of pixels in which the map 700 is searched. In some implementations, in an iterative search, the mask 870 may rotate and / or change direction. Preferably, this allows the mask 870 to search the map 700 for items that are tilted at an angle and / or allow the map 700 itself to tilt at an angle.

마스크(870)가 맵(700)에서 마스크(870)의 셀 값들과 실질적으로 매칭하는(예를 들어, 70 %, 80 %, 90 % 또는 그 이상의 소정의 매칭 임계치를 갖는) 픽셀들의 그룹을 식별하는 경우, 마스크(870) 구조 내에서, 로봇(102)은 표시(예를 들어, 메시지, 값 또는 명령)를 생성할 수 있으며, 로봇(102)은 마스크(870)와 맵(700) 사이의 매칭을 발견할 수 있으며 및/또는 이러한 매칭의 위치를 발견할 수 있다. 일부 경우, (예를 들어, 발견될 소정 개수의 예상되는 아이템에 기초하여) 너무 적은 매칭이 발견되는 경우, 로봇(102)은 맵(700)의 매핑 오류를 검출할 수 있으며 및/또는 맵(700)이 양호하지 않은 것으로 결정할 수 있다. 일부 경우, (예를 들어, 마스크(870)가 바람직하지 않은 구조를 식별하도록 구성된 경우), 로봇(102)은 맵(700)의 매핑 오류를 검출할 수 있고 및/또는 맵(700)이 양호하지 않은 것으로 결정할 수 있다. 어느 경우이든, 로봇(102)은 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 사용자(604)에게 경로를 다시 데모하도록 프롬프트할 수 있다.The mask 870 identifies a group of pixels (e.g., having a predetermined matching threshold of 70%, 80%, 90%, or more) that substantially matches the cell values of the mask 870 in the map 700 (E.g., a message, a value or an instruction), and the robot 102 may generate a display (e.g., a message, a value or an instruction) A match can be found and / or the location of such a match can be found. In some cases, if too little matching is found (e.g., based on a predetermined number of expected items to be found), the robot 102 may detect a mapping error in the map 700 and / 700) is not good. In some cases, the robot 102 may detect a mapping error in the map 700 and / or the map 700 is in a good state (e.g., when the mask 870 is configured to identify an undesirable structure) It can be decided not to do so. In either case, the robot 102 may prompt the user 604 to re-demonstrate the path (e.g., via the user interface unit 322).

다른 예로서, 일부 구현예들에서, 로봇(102)은 맵(700) 및/또는 경로(716)에서 불연속 지점을 찾을 수 있다. 도 9a는 예시적인 매핑된 부분(900)의 예시적인 경로 부분(902A)과 예시적인 경로 부분(902B) 사이의 예시적인 경로 불연속부(904)를 예시한다. 매핑된 부분(900)은 맵(700)의 일부일 수 있다. 매핑된 부분(900)은 물체들(906A-906B) 및 그 사이에 형성된 장애물없는 공간(908)을 포함할 수 있다. 장애물없는 공간(908) 내에서, 경로는 경로 부분(902A) 및 경로 부분(902B)으로 도시된다. 경로 부분(902A)과 경로 부분(902B) 사이에는 경로 불연속부(904)가 있다. 경로 불연속부(904)는 적어도 부분적으로 오류를 나타낼 수 있는데, 그 이유는 로봇(102)이 그 사이의 어떠한 공간으로 진행함이 없이 경로 부분(902A)으로부터 경로 부분(902B)으로 또는 그 역으로 진행하지 않았기 때문이다. 일부 경우, 로봇(102)이 경로 부분(902A)으로부터 경로 부분(902B)까지의 장애물없는 공간(908)을 문제없이 통과할 수 있기 때문에, 경로 불연속부(904)는 로봇(102)이 매핑된 경로(716)를 탐색하는 데 문제가 되지 않을 수 있다. 그러나, 경로 불연속부(904)는 그 자체로 또는 다른 경로 불연속부 및/또는 오류와 함께 매핑 오류 및/또는 맵(700)의 품질(예를 들어, 맵(700)이 품질이 불량)을 적어도 부분적으로 나타낼 수 있다.As another example, in some implementations, the robot 102 may find discontinuities in the map 700 and / or path 716. FIG. 9A illustrates an exemplary path discontinuity 904 between an exemplary path portion 902A and an exemplary path portion 902B of an exemplary mapped portion 900. The mapped portion 900 may be part of the map 700. The mapped portion 900 may include objects 906A-906B and an unobstructed space 908 formed therebetween. Within the obstacle-free space 908, the path is shown as path portion 902A and path portion 902B. There is a path discontinuity 904 between the path portion 902A and the path portion 902B. The path discontinuity 904 may at least partially indicate an error because the robot 102 can move from the path portion 902A to the path portion 902B or vice versa without going to any space therebetween It is because it did not proceed. In some cases, the path discontinuity 904 may cause the robot 102 to move to a position where the robot 102 is mapped, since the robot 102 can pass through the obstacle-free space 908 from the path portion 902A to the path portion 902B without problems It may not be a problem to search for the path 716. [ However, the path discontinuity 904 may at least provide a mapping error and / or a quality of the map 700 (e.g., the map 700 is poor in quality), along with other path discontinuities and / It can be partially shown.

매핑 오류를 검출하고 및/또는 맵(700)의 품질을 평가할 때, 그리고 맵(700)의 다른 부분에 다른 경로 불연속부가 있는 경우, 로봇(102)은 경로 불연속부(904)의 크기(예를 들어, 경로 불연속부(904)의 픽셀 수, 거리 등)를 고려할 수 있다. 일부 경우, 경로 불연속부(904)가 (예를 들어, 메모리(302)에 저장된) 소정 크기 임계값보다 큰 경우, 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵(700)이 불량한 것으로 결정할 수 있다. 소정 크기 임계값은 인치, 피트, 미터 또는 다른 측정 단위(예 : 미터법, US 또는 기타 측정 시스템의 측정)와 같은 표준 단위를 사용하여 절대 거리 측정으로 측정할 수 있고 또는 틱, 픽셀, 센서의 백분율 범위와 같은 상대적인(또는 절대적이지 않은) 측정 단위로 측정될 수 있다. 이러한 소정 크기 임계값은 다음 중 적어도 하나 이상의 인자에 적어도 부분적으로 기초하여 결정될 수 있다: 로봇(102)의 센서의(예를 들어, 센서 유닛(314)의) 신호 해상도 및/또는 충실도; 환경 (100)의 복잡성; 로봇(102)에 대한 경로 불연속부와 매핑 오류/저급한 맵 품질 간의 경험적인 상관 관계; 경로 불연속부(904)로 내비게이션하기 위한 로봇(102)의 능력; 및/또는 다른 요인들. 예를 들어, 로봇(102)의 센서들의 신호 해상도 및/또는 충실도가 낮으면, 로봇(102)은 매핑에서 경로 불연속부(예를 들어, 경로 불연속부(904))가 있을 것으로 예상할 수 있고, 그러한 경로 불연속부는 크기가 클 수 있다. 이러한 경로 불연속부의 존재는 매핑 오류 및/또는 저급한 맵 품질을 적어도 부분적으로 나타내지 않을 수 있으므로, 사전 결정된 크기 임계값은 상대적으로 높을 수 있다. 대조적으로, 로봇(102)의 센서들의 신호 해상도 및/또는 충실도가 높은 경우, 경로 불연속부(904)는 예상되지 않을 수 있고, 작은 크기의 경로 불연속부도 맵 오류 및/또는 불량 맵을 적어도 부분적으로 나타낼 수 있으며, 따라서 소정의 크기 임계값은 상대적으로 낮을 수 있다. 다른 예로서, 고도로 복잡한 환경(100)은 로봇(102)의 매핑 및 로컬라이제이션 기능(예를 들어, 매핑 및 로컬라이제이션 유닛(312))을 변형시킬 수 있고, 불연속부(904)가 예상될 수 있으므로, 소정 크기 임계치는 비교적 높을 수 있다. 대조적으로, 비교적 단순한 환경(100)은 로봇(102)의 매핑 및 로컬라이제이션 능력을 손상시키지 않을 수 있고, 경로 불연속부(904)는 예상되지 않을 수 있으며, 따라서 소정의 크기 임계값은 상대적으로 낮을 수 있다. 다른 예로서, 환경의 안전이 관심사인 경우, 소정의 크기 임계값은 비교적 낮을 수 있다. 다른 예로서, 로봇(102)은 (예를 들어, 사용자 또는 다른 사람에 의해) 그 맵 품질(및/또는 매핑 오류가 없음)이 독립적으로 평가된 이전 맵(또는 서버 상에 집계된 맵)을 가질 수 있다. 로봇(102)은 불연속부(904) 및/또는 다른 경로 불연속부에 적어도 부분적으로 기초하여 매핑 오류를 검출하거나 및/또는 맵(700)의 품질을 평가하기 위해 소정 크기 임계값을 결정할 때 경로 불연속부의 크기 사이의 상관 관계를 고려할 수 있다. 다른 예로서, 소정의 크기 임계값은 맵(700)을 내비게이션하는 로봇(102)의 능력에 적어도 부분적으로 기초할 수 있다. 경로 불연속부(904)가 소정의 크기 임계치보다 커지면, 로봇(102)은 더 이상 맵(700)을 따라 내비게이션할 수 없으며, 따라서 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵(700)이 불량한 것으로 결정할 수 있다. 검출된 오류 및/또는 불량한 품질의 결정의 경우, 로봇(102)은 사용자(604)에게(예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다.When the robot 102 detects a mapping error and / or evaluates the quality of the map 700 and there are other path discontinuities in other parts of the map 700, the robot 102 may determine the size of the path discontinuity 904 The number of pixels of the path discontinuity 904, the distance, etc.). In some cases, if path discontinuity 904 is greater than a predetermined size threshold (e.g., stored in memory 302), robot 102 may detect a mapping error and / or map 700 It can be determined to be bad. The predetermined size threshold can be measured with an absolute distance measurement using standard units such as inches, feet, meters, or other measurement units (eg, metric, US or other measurement systems), or a percentage of ticks, pixels, (Or non-absolute) measurement unit, such as a range. This predetermined magnitude threshold may be determined based at least in part on at least one of the following factors: signal resolution and / or fidelity (e.g., of sensor unit 314) of the sensor of robot 102; Complexity of the environment 100; An empirical correlation between the path discontinuity for the robot 102 and the mapping error / poor map quality; The ability of the robot 102 to navigate to the path discontinuity 904; And / or other factors. For example, if the signal resolution and / or fidelity of the sensors of the robot 102 is low, then the robot 102 may expect to have a path discontinuity (e. G., Path discontinuity 904) in the mapping , Such path discontinuities can be large in size. The predetermined size threshold may be relatively high since the presence of this path discontinuity may not at least partially indicate a mapping error and / or a poor map quality. In contrast, if the signal resolution and / or fidelity of the sensors of the robot 102 is high, then the path discontinuity 904 may not be predicted, and a small-sized path discontinuity may also cause map errors and / And thus the predetermined magnitude threshold may be relatively low. As another example, a highly complex environment 100 may modify the mapping and localization functions (e.g., mapping and localization unit 312) of the robot 102 and the discontinuity 904 may be expected, The predetermined size threshold may be relatively high. In contrast, the relatively simple environment 100 may not compromise the mapping and localization capabilities of the robot 102, and the path discontinuity 904 may not be expected, and thus the predetermined size threshold may be relatively low have. As another example, if environmental safety is a concern, the predetermined size threshold may be relatively low. As another example, the robot 102 may map a previous map (or a map aggregated on a server) whose map quality (and / or no mapping error) has been independently evaluated (e.g., by a user or another person) Lt; / RTI > The robot 102 may determine a predetermined size threshold to detect a mapping error based at least in part on the discontinuity 904 and / or other path discontinuities and / or to assess the quality of the map 700, The correlation between the sizes of the parts can be considered. As another example, the predetermined magnitude threshold may be based, at least in part, on the ability of the robot 102 to navigate the map 700. When the path discontinuity 904 is greater than a predetermined size threshold, the robot 102 can no longer navigate along the map 700 and thus the robot 102 can detect a mapping error and / 700) may be determined to be poor. In the case of a determination of a detected error and / or poor quality, the robot 102 may prompt the user 604 to re-demote the path (e.g., via the user interface unit 322).

유사하게, 경로 불연속부(904)는 맵(700)의 복수의 경로 불연속부들 중 하나일 수 있다. 로봇(102)은 이러한 다른 경로 불연속부들을 고려할 수 있다. 경로 불연속부의 수가 소정의 임계치(예를 들어, 메모리(302)에 저장됨)를 초과하면, 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵(700)이 불량한 것으로 결정할 수 있다. 예를 들어, 소정 수의 임계값은 로봇(102)의 센서의 (예를 들어, 센서 유닛(314)의) 신호 해상도 및/또는 충실도; 환경(100)의 복잡성; 로봇(102)에 대한 경로 불연속부와 매핑 오류/맵 품질 간의 경험적인 상관 관계; 경로 불연속부(904)로 내비게이션하기 위한 로봇(102)의 능력; 및/또는 다른 요인들에 따라 결정된다. 예를 들어, 로봇(102)의 센서들의 신호 해상도 및/또는 충실도가 낮으면, 로봇(102)은 매핑에서 어떤 경로 불연속부(예를 들어, 경로 불연속부(904))가 있을 것으로 예상할 수 있다. 이러한 경로 불연속부의 존재는 매핑 오류 및/또는 불량 맵 품질을 적어도 부분적으로 나타내지 않을 수 있으므로, 소정 수의 임계값은 상대적으로 높을 수 있다. 대조적으로, 로봇(102)의 센서들의 신호 해상도 및/또는 충실도가 높으면, 불연속부(904)는 예상되지 않을 수 있으며, 경로 불연속부의 존재는 매핑 오류 및/또는 불량 맵 품질을 적어도 부분적으로 나타낼 수 있으므로, 소정 수의 임계값은 비교적 낮을 수 있다. 다른 예로서, 고도로 복잡한 환경(100)은 로봇(102)의 매핑 및 로컬라이제이션 기능(예를 들어, 매핑 및 로컬라이제이션 유닛(312))을 변형시킬 수 있고, 경로 불연속부(904)가 예상될 수 있으므로 소정 수의 임계값은 비교적 높을 수 있다. 대조적으로, 비교적 단순한 환경(100)은 로봇(102)의 매핑 및 로컬라이제이션 능력을 변형시키지 않을 수 있고, 경로 불연속부(904)는 예상될 수 없으며, 따라서, 소정 수의 임계값은 상대적으로 낮을 수 있다. 다른 예로서, 환경의 안전이 관심사인 경우, 소정 수의 임계값은 비교적 낮을 수 있다. 다른 예로서, 로봇(102)은 (예를 들어, 사용자 또는 다른 사람에 의해) 맵 품질(및/또는 매핑 오류 없음)이 독립적으로 평가된 이전 맵(또는 서버 상에 집계된 맵)을 가질 수 있다. 로봇(102)은 불연속부(904) 및/또는 다른 경로 불연속부에 적어도 부분적으로 기초하여 매핑 오류를 검출하거나 및/또는 맵(700)의 품질을 평가하기 위해 소정 크기 임계값을 결정할 때 경로 불연속부의 개수 사이의 상관 관계를 고려할 수 있다. 다른 예로서, 소정 수의 임계값은 맵(700)을 내비게이션하는 로봇(102)의 능력에 적어도 부분적으로 기초할 수 있다. 경로 불연속부(904)와 실질적으로 동일한 경로 불연속부의 소정 수의 임계치를 결정한 이후에, 로봇(102)은 더 이상 맵(700)을 내비게이션할 수 없으므로, 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵(700)이 불량한 것으로 결정할 수 있다. 검출된 오류 및/또는 불량한 품질의 결정의 경우, 로봇(102)은 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 사용자(604)에게 경로를 다시 데모하도록 프롬프트할 수 있다.Similarly, the path discontinuity 904 may be one of a plurality of path discontinuities in the map 700. The robot 102 may consider these other path discontinuities. If the number of path discontinuities exceeds a predetermined threshold (e.g., stored in the memory 302), the robot 102 may detect a mapping error and / or determine that the map 700 is bad. For example, the predetermined number of thresholds may be determined based on signal resolution and / or fidelity (e.g., of sensor unit 314) of the sensor of robot 102; Complexity of the environment 100; An empirical correlation between the path discontinuity for the robot 102 and the mapping error / map quality; The ability of the robot 102 to navigate to the path discontinuity 904; And / or other factors. For example, if the signal resolution and / or fidelity of the sensors of the robot 102 is low, the robot 102 may expect to have some path discontinuities (e.g., path discontinuities 904) in the mapping have. The presence of such path discontinuities may not at least partially indicate a mapping error and / or bad map quality, so that the predetermined number of thresholds may be relatively high. In contrast, if the signal resolution and / or fidelity of the sensors of the robot 102 is high, the discontinuity 904 may not be expected and the presence of path discontinuities may at least partially indicate a mapping error and / Therefore, the predetermined number of threshold values may be relatively low. As another example, a highly complex environment 100 may modify the mapping and localization functions (e.g., mapping and localization unit 312) of the robot 102, and the path discontinuity 904 may be expected The predetermined number of thresholds may be relatively high. In contrast, the relatively simple environment 100 may not modify the mapping and localization capabilities of the robot 102, and the path discontinuity 904 may not be predictable, so that a certain number of thresholds may be relatively low have. As another example, if environmental safety is a concern, the predetermined number of thresholds may be relatively low. As another example, the robot 102 may have a prior map (or a map aggregated on the server) in which the map quality (and / or no mapping errors) is independently evaluated (e.g., by a user or another person) have. The robot 102 may determine a predetermined size threshold to detect a mapping error based at least in part on the discontinuity 904 and / or other path discontinuities and / or to assess the quality of the map 700, The correlation between the number of negatives can be considered. As another example, a predetermined number of thresholds may be based, at least in part, on the ability of the robot 102 to navigate the map 700. After determining the predetermined number of thresholds of the path discontinuity substantially equal to the path discontinuity 904, the robot 102 is no longer able to navigate the map 700, so that the robot 102 can detect a mapping error And / or may determine that the map 700 is bad. In the case of a determination of a detected error and / or poor quality, the robot 102 may prompt the user 604 to re-demonstrate the path (e.g., via user interface unit 322).

일부 경우, 전술한 소정 크기의 임계값 및 소정 수의 임계값을 조합하여 사용되는 하이브리드 임계값이 사용될 수 있다. 예를 들어, 소정 수의 임계값을 초과하면 맵(700)이 매핑 오류를 포함하는 것으로 결정하거나 및/또는 품질이 좋지 않은 것으로 결정하게 되는 소정 수의 임계값은 소정 크기 임계치 이상의 경로 불연속부의 수에 적어도 부분적으로 기초할 수 있다. 매핑 오류가 검출되고 및/또는 맵(700)이 품질이 좋지 않은 것으로 결정되는 경우, 로봇(102)은 사용자(604)에게 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다.In some cases, a hybrid threshold value that is used in combination with a predetermined threshold value and a predetermined number of threshold values described above may be used. For example, if the predetermined number of thresholds is exceeded, then the map 700 may determine that it contains a mapping error and / or a predetermined number of thresholds that are determined to be of poor quality may include the number of path discontinuities At least partially. When the mapping error is detected and / or it is determined that the map 700 is of poor quality, the robot 102 may redirect the path to the user 604 (e.g., via the user interface unit 322) You can be prompted to do so.

도 9b는 예시적인 매핑된 부분(920)의 예시적인 물체 부분(926A)과 예시적인 물체 부분(926B) 간의 예시적인 물체 불연속부(924)를 예시한다. 매핑된 부분(920)은 맵(700)의 일부일 수 있다. 예시된 바와 같이, 경로 부분(922)은 경로 불연속부를 갖지 않을 수 있다. 그러나, 물체 부분(926A)과 물체 부분(926B) 사이에는, 물체의 일부분이 매핑되지 않은 물체 불연속부(924)가 존재할 수 있다. 물체 불연속부(924)는 매핑되어야 하는 위치에서 맵 부분(924)의 매핑되지 않은 부분일 가능성이 있기 때문에, 물체 불연속부(924)는 오류를 나타낼 수 있다. 일부 경우, 로봇(102)은 경로 부분(922)을 통해 내비게이션할 때 로봇(102)이 그 센서로 물체의 존재를 검출할 수 있기 때문에, 물체 불연속부(924)는 로봇(102)의 내비게이션에 문제가 되지 않을 수 있다. 그러나, 물체 불연속부(924)는 그 자체로 또는 다른 불연속부 및/또는 매핑 오류의 다른 특성과 함께 매핑 오류 및/또는 불량 맵을 나타낼 수 있다.9B illustrates an exemplary object discontinuity 924 between an exemplary object portion 926A of an exemplary mapped portion 920 and an exemplary object portion 926B. The mapped portion 920 may be part of the map 700. As illustrated, the path portion 922 may not have a path discontinuity. Between the object portion 926A and the object portion 926B, however, there may be an object discontinuity 924 where a portion of the object is not mapped. The object discontinuity 924 may indicate an error because it is likely that it is an unmapped portion of the map portion 924 at the location where it should be mapped. In some cases, since the robot 102 can detect the presence of an object with the sensor when the robot 102 is navigating through the path portion 922, the object discontinuity 924 can be used to navigate the robot 102 It may not be a problem. However, the object discontinuity 924 may itself exhibit a mapping error and / or a bad map with other discontinuities and / or other characteristics of the mapping error.

도 9a를 참조하여 기술된 매핑 오류의 검출 및/또는 품질의 평가와 유사하게, 맵(700)을 평가하는데 있어서, 로봇(102)은 물체 불연속부(924)(예를 들어, 픽셀의 수, 물체 불연속부(924)의 거리 등)의 사이즈와 또한 맵(700)의 다른 곳에서 다른 물체 불연속이 있는지를 고려할 수 있다. 일부 경우에, 물체 불연속부(924)는 (예를 들어, 메모리(302)에 저장된) 소정의 크기 임계치 위의 크기인 경우, 로봇(102)은 맵이 매핑 오류를 가지는지 및/또는 안좋은 품질인지를 결정할 수 있다. 예를 들어, 이 소정의 크기 임계치는: 로봇(102)의 센서들(예를 들어, 센서 유닛(314))의 신호 해상도 및/또는 충실도; 환경(100)의 복잡성; 로봇(102)과의 물체 불연속성과 매핑 오류/맵 품질간의 경험적인 상관 관계; 물체 불연속부(924)로 내비게이션하기 위한 로봇(102)의 능력; 및/또는 다른 요인들을 포함하는 하나 이상의 요인들로 적어도 부분적으로 결정될 수 있다. 예를 들어, 로봇(102)의 센서들의 신호 해상도 및/또는 충실도가 낮으면, 로봇(102)은 매핑에서의 일부 물체 불연속이 있을 것을 예상할 수 있으며 이러한 물체 불연속들은 더 큰 크기일 수 있다. 이러한 물체 불연속들의 존재는 적어도 부분적으로 매핑 오류 및/또는 낮은 맵 품질을 나타내지 않을 수 있으며, 이 소정의 크기 임계치는 상대적으로 높을 수 있다. 대조적으로, 로봇(102)의 센서들의 신호 해상도 및/또는 충실도가 높은 경우, 물체 불연속부(924)가 예상되지 않으며, 작은 크기의 불연속조차도 매핑 오류 및/또는 낮은 맵 품질을 적어도 부분적으로 나타낼 수 있으므로, 소정의 크기 임계치가 상대적으로 낮을 수 있다. 다른 예로서, 고도로 복잡한 환경(100)은 로봇(102)의 (예를 들어, 매핑 및 로컬라이제이션 유닛(312)의) 매핑 및 로컬라이징 능력을 변화시킬 수 있고, 물체 불연속부(924)가 예상될 수 있으며, 소정의 크기 임계치는 상대적으로 높다. 대조적으로, 상대적으로 단순한 환경(100)은 로봇(102)의 매핑 및 로컬라이징 능력을 변화시키지 않을 수 있고, 물체 불연속부(924)는 예상되지 않을 수 있고, 따라서 소정의 크기 임계치는 상대적으로 낮다. 다른 예로서, 환경의 안전이 관심인 경우, 소정의 크기 임계치는 상대적으로 낮다. 다른 예로서, 로봇(102)은 맵 품질(및/또는 매핑 오류가 없음)이 (예를 들어, 사용자 또는 다른 사람에 의하여) 독립적으로 평가되는 이전의 맵(또는 서버에 모인 맵들)을 가질 수 있다. 로봇(102)은 그후 매핑 오류를 검출하고 물체 불연속부(924)와 기타 물체 불연속부에 적어도 부분적으로 기초하여 맵(700)의 품질을 평가하는데 있어서 소정의 크기 임계치를 결정할 때에 물체 불연속의 크기 사이의 상관 관계를 고려할 수 있다. 다른 예로서, 소정의 크기 임계치는 적어도 부분적으로 맵(700)을 로봇(102)이 내비게이션하는 능력에 기초할 수 있다. 물체 불연속부(924)가 소정의 크기보다 크게 된 후에, 로봇(102)은 맵(700)을 더 이상 내비게이션할 수 없을 수 있으며, 따라서 로봇(102)은 매핑 오류를 검출하고 및/또는 맵(700)이 낮은 품질이라고 결정할 수 있다. 오류가 검출되고 및/또는 낮은 품질의 결정이 있는 어떠한 경우에, 로봇(102)은 그후 사용자가 (예를 들어, 사용자 인터페이스 유닛(322)을 거쳐) 경로를 다시 데모하도록 프롬프트할 수 있다.Similar to evaluating the mapping error and / or evaluation of quality described with reference to FIG. 9A, in evaluating the map 700, the robot 102 may determine the object discontinuity 924 (e.g., number of pixels, The distance of the object discontinuity 924, etc.) and whether there are other object discontinuities elsewhere in the map 700. In some cases, when the object discontinuity 924 is of a size above a predetermined size threshold (e.g., stored in the memory 302), the robot 102 determines whether the map has a mapping error and / Can be determined. For example, the predetermined size threshold may be: signal resolution and / or fidelity of the sensors (e.g., sensor unit 314) of the robot 102; Complexity of the environment 100; Empirical correlation between object discontinuity with the robot 102 and mapping error / map quality; The ability of the robot 102 to navigate to the object discontinuity 924; ≪ / RTI > and / or other factors. For example, if the signal resolution and / or fidelity of the sensors of the robot 102 is low, the robot 102 may expect some object discontinuities in the mapping, and such object discontinuities may be of a larger size. The presence of such object discontinuities may not exhibit, at least in part, mapping errors and / or low map quality, and this predetermined size threshold may be relatively high. In contrast, when the signal resolution and / or fidelity of the sensors of the robot 102 is high, the object discontinuity 924 is unexpected and even small discontinuities can at least partially indicate a mapping error and / Therefore, the predetermined size threshold value may be relatively low. As another example, a highly complex environment 100 may change the mapping and localizing capabilities of the robot 102 (e.g., of the mapping and localization unit 312), and the object discontinuity 924 may be predictable And the predetermined size threshold is relatively high. In contrast, the relatively simple environment 100 may not change the mapping and localizing capabilities of the robot 102, and the object discontinuity 924 may not be expected, and therefore the predetermined size threshold is relatively low. As another example, if environmental safety is of interest, the predetermined size threshold is relatively low. As another example, the robot 102 may have a prior map (or maps gathered on the server) whose map quality (and / or no mapping errors) is independently evaluated (e.g., by the user or others) have. The robot 102 then determines the magnitude of the object discontinuity in determining the predetermined magnitude threshold in detecting the mapping error and evaluating the quality of the map 700 based at least in part on the object discontinuity 924 and other object discontinuities. Can be considered. As another example, the predetermined size threshold may be based, at least in part, on the ability of the robot 102 to navigate the map 700. After the object discontinuity 924 has become larger than a predetermined size, the robot 102 may not be able to navigate the map 700 any further and thus the robot 102 may detect a mapping error and / 700) can be determined to be of low quality. In some instances where an error is detected and / or there is a low quality decision, the robot 102 may then prompt the user to demo the path again (e.g., via the user interface unit 322).

유사하게, 물체 불연속부(924)는 맵(700)의 복수의 물체 불연속부 등 중의 하나일 수 있다. 로봇(102)은 이러한 다른 물체 불연속들을 고려할 수 있다. 물체 불연속부들의 수가 (예를 들어, 메모리(302)에 저장된) 소정의 수 임계치의 위이면, 로봇(102)은 매핑 오류를 검출하고 및/또는 맵(700)이 낮은 품질이라고 결정한다. 예를 들어, 소정의 수 임계치는 로봇(102)의 센서들(예를 들어, 센서 유닛(314))의 신호 해상도 및/또는 충실도; 환경(100)의 복잡성; 로봇(102)과의 물체 불연속성과 매핑 오류/맵 품질간의 경험적인 상관 관계; 물체 불연속부(924)로 내비게이션하기 위한 로봇(102)의 능력; 및/또는 다른 요인들을 포함하는 하나 이상의 요인들에 적어도 부분적으로 기초하여 결정될 수 있다. 예를 들어, 로봇(102)의 센서들의 신호 해상도 및/또는 충실도가 낮으면, 로봇(102)은 매핑(예를 들어, 불연속(904))에서의 일부 물체 불연속이 있을 것을 예상할 수 있다. 이러한 물체 불연속들의 존재는 매핑 오류 및/또는 낮은 맵 품질을 나타내지 않을 수 있으며, 이 소정의 수 임계치는 상대적으로 높을 수 있다. 대조적으로, 로봇(102)의 센서들의 신호 해상도 및/또는 충실도가 높은 경우, 물체 불연속부(924)가 예상되지 않으며, 물체 불연속의 존재는 매핑 오류 및/또는 낮은 맵 품질을 적어도 부분적으로 나타낼 수 있으므로, 소정의 수 임계치가 상대적으로 낮을 수 있다. 다른 예로서, 고도로 복잡한 환경(100)은 로봇(102)의 (예를 들어, 매핑 및 로컬라이제이션 유닛(312)의) 매핑 및 로컬라이징 능력을 변화시킬 수 있고, 물체 불연속부(924)가 예상될 수 있으며, 소정의 수 임계치는 상대적으로 높다. 대조적으로, 상대적으로 단순한 환경(100)은 로봇(102)의 매핑 및 로컬라이징 능력을 변화시키지 않을 수 있고, 물체 불연속부(924)는 예상되지 않을 수 있고, 따라서 소정의 수 임계치는 상대적으로 낮다. 다른 예로서, 환경의 안전이 관심인 경우, 소정의 크기 임계치는 상대적으로 낮다. 다른 예로서, 로봇(102)은 맵 품질(및/또는 매핑 오류가 없음)이 (예를 들어, 사용자 또는 다른 사람에 의하여) 독립적으로 평가되는 이전의 맵(또는 서버에 모인 맵들)을 가질 수 있다. 로봇(102)은 그후 매핑 오류를 검출하고 물체 불연속부(924)와 기타 물체 불연속부에 적어도 부분적으로 기초하여 맵(700)의 품질을 평가하는데 있어서, 소정의 수 임계치를 결정할 때에 물체 불연속의 크기 사이의 상관 관계를 고려할 수 있다. 다른 예로서, 소정의 크기 임계치는 맵(700)을 로봇(102)이 내비게이션하는 능력에 적어도 부분적으로 기초할 수 있다. 물체 불연속부(924)가 소정의 수가 물체 불연속부(924)와 실질적으로 유사해진 후에, 로봇(102)은 맵(700)을 더 이상 내비게이션할 수 없을 수 있으며, 따라서 로봇(102)은 매핑 오류를 검출하고 및/또는 맵(700)이 낮은 품질이라고 결정할 수 있다. 오류의 검출 및/또는 낮은 품질의 결정의 경우, 로봇(102)은 그후 사용자가 (예를 들어, 사용자 인터페이스 유닛(322)을 거쳐) 경로를 다시 데모하도록 프롬프트할 수 있다.Similarly, the object discontinuity 924 may be one of a plurality of object discontinuities or the like of the map 700. The robot 102 may consider these other object discontinuities. If the number of object discontinuities is above a predetermined number threshold (e.g., stored in the memory 302), the robot 102 detects a mapping error and / or determines that the map 700 is of poor quality. For example, the predetermined number threshold may be a signal resolution and / or fidelity of the sensors (e.g., sensor unit 314) of the robot 102; Complexity of the environment 100; Empirical correlation between object discontinuity with the robot 102 and mapping error / map quality; The ability of the robot 102 to navigate to the object discontinuity 924; And / or other factors. ≪ RTI ID = 0.0 > [0031] < / RTI > For example, if the signal resolution and / or fidelity of the sensors of the robot 102 is low, then the robot 102 may expect some object discontinuity in the mapping (e.g., discontinuity 904). The presence of such object discontinuities may not exhibit mapping errors and / or low map quality, and this predetermined number threshold may be relatively high. In contrast, when the signal resolution and / or fidelity of the sensors of the robot 102 is high, the object discontinuity 924 is not expected and the presence of object discontinuity may at least partially indicate a mapping error and / Therefore, the predetermined number threshold value may be relatively low. As another example, a highly complex environment 100 may change the mapping and localizing capabilities of the robot 102 (e.g., of the mapping and localization unit 312), and the object discontinuity 924 may be predictable And the predetermined number threshold value is relatively high. In contrast, a relatively simple environment 100 may not change the mapping and localizing capabilities of the robot 102, and the object discontinuity 924 may not be expected, and therefore the predetermined number threshold is relatively low. As another example, if environmental safety is of interest, the predetermined size threshold is relatively low. As another example, the robot 102 may have a prior map (or maps gathered on the server) whose map quality (and / or no mapping errors) is independently evaluated (e.g., by the user or others) have. The robot 102 then detects the mapping error and evaluates the quality of the map 700 based, at least in part, on the object discontinuity 924 and other object discontinuities, to determine the magnitude of the object discontinuity Can be considered. As another example, the predetermined size threshold may be based, at least in part, on the ability of the robot 102 to navigate the map 700. After the predetermined number of object discontinuities 924 have become substantially similar to the object discontinuities 924, the robot 102 may not be able to navigate the map 700 any further, And / or determine that the map 700 is of poor quality. In the event of detection of an error and / or low quality of determination, the robot 102 may then prompt the user to re-demote the path (e.g., via the user interface unit 322).

일부 경우에, 상술한 소정의 크기 임계치와 소정의 수 임계치를 조합하여 사용되는 경우에 하이브리드 임계치들이 사용될 수 있다. 예를 들어, 맵(700)이 매핑 오류를 가지거나 및/또는 품질이 좋지 않다고 결정된 상기 미리 결정된 수의 임계치는 미리 결정된 크기 임계치를 초과하는 물체 불연속부의 수에 적어도 부분적으로 기초할 수 있다. 매핑 오류가 검출되고 및/또는 맵(700)이 품질이 좋지 않은 것으로 결정된 경우, 로봇(102)은 사용자(704)에게 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다.In some cases, hybrid thresholds may be used when used in combination with a predetermined size threshold and a predetermined number threshold. For example, the predetermined number of thresholds determined that map 700 has a mapping error and / or poor quality may be based, at least in part, on the number of object discontinuities exceeding a predetermined size threshold. If the mapping error is detected and / or the map 700 is determined to be of poor quality, the robot 102 may instruct the user 704 to re-demote the path (e.g., via the user interface unit 322) You can prompt.

도 9c는 경로 불연속부 및 물체 불연속부 모두를 포함하는 불연속부(934)를 갖는 예시적인 매핑된 부분(920)을 예시한다. 매핑된 부분(920)은 맵(700)의 일부일 수 있다. 불연속부(934)는 경로 부분(930)와 경로 부분(932) 사이의 불연속일 수 있다. 불연속부(934)은 또한 물체(936)의 불연속일 수 있다. 도 9a 내지 도 9c 를 참조하여 설명한 바와 같이, 경로 불연속부 및 물체 불연속부 모두는 매핑 오류 및/또는 불량 맵 품질을 적어도 부분적으로 나타낼 수 있다. 로봇(102)이 맵(700)을 평가할 때, 로봇(102)은 매핑 오류를 검출하고 및/또는 맵(700)의 품질을 결정할 때 경로 불연속부 또는 물체 불연속부 또는 둘 다를 함께 고려할 수 있다.9C illustrates an exemplary mapped portion 920 having a discontinuity 934 that includes both a path discontinuity and an object discontinuity. The mapped portion 920 may be part of the map 700. The discontinuity 934 may be discontinuous between the path portion 930 and the path portion 932. The discontinuity 934 may also be discontinuous of the object 936. As described with reference to Figs. 9A to 9C, both the path discontinuity and the object discontinuity can at least partially indicate a mapping error and / or a bad map quality. When the robot 102 evaluates the map 700, the robot 102 may consider both the path discontinuities or the object discontinuities, or both, in detecting the mapping errors and / or determining the quality of the map 700.

다른 예로서, 일부 구현예에서, 로봇(102)은 매핑 오류를 검출하고 및/또는 맵(700)의 품질을 결정할 때 맵(700) 내의 아이템들(예를 들어, 경로, 장애물 또는 다른 물체) 사이의 중첩의 양을 평가할 수 있다. 도 10은 중첩 물체(1002, 1004, 1006)를 갖는 예시적인 매핑된 부분(1000)을 도시한다. 매핑된 부분(1000)은 맵(700)의 일부일 수 있다. 도시된 바와 같이, 물체(1002, 1004, 1006)는 맵(700)를 생성하는 동안 로봇(102)이 검출한 벽, 물체, 선반 등일 수 있다. 로봇(102)의 측정된 위치 및 방향에 적어도 부분적으로 기초하여, 로봇(102)은 물체(1002, 1004, 1006)를 매핑한다. 물체들(1002, 1004, 1006) 각각의 추정된 위치 및/또는 방향이 서로 위에 있기 때문에, 로봇(102)은 매핑에서 오류가 있었음을 결정할 수 있다. 이러한 중첩 영역을 식별함에 있어서, 로봇(102)은 픽셀 별 또는 영역별 맵(700)를 조사할 수 있다. 어떤 경우에, 로봇(102)은 맵(700) 내의 미리 결정된 형상을 발견하기 위해 마스크 및/또는 필터를 사용할 수 있다(예를 들어, 소정 형상을 찾기 위해 변형된 마스크(870)와 실질적으로 유사함). 미리 결정된 형상은 물체 위치 및/또는 센서 오류의 이전에 관측된 변형과 같은, 매핑에서의 로봇(102)의 알려진 오류에 적어도 부분적으로 기초할 수 있다.As another example, in some implementations, the robot 102 may detect items (e.g., paths, obstacles, or other objects) in the map 700 when detecting a mapping error and / Lt; / RTI > can be evaluated. Figure 10 shows an exemplary mapped portion 1000 with overlapping objects 1002, 1004, and 1006. The mapped portion 1000 may be part of the map 700. As shown, objects 1002, 1004, and 1006 may be walls, objects, shelves, etc., detected by robot 102 during creation of map 700. Based at least in part on the measured position and orientation of the robot 102, the robot 102 maps the objects 1002, 1004, and 1006. Since the estimated positions and / or directions of each of the objects 1002, 1004, and 1006 are on top of each other, the robot 102 can determine that there was an error in the mapping. In identifying such overlapping areas, the robot 102 may examine the pixel-by-area or area-by-area map 700. In some cases, the robot 102 may use a mask and / or a filter to find a predetermined shape in the map 700 (e.g., substantially similar to a modified mask 870 to find a given shape) box). The predetermined shape may be based at least in part on the known error of the robot 102 in the mapping, such as previously observed deformations of the object position and / or sensor error.

중첩은 또한 적어도 부분적으로는 픽셀 또는 픽셀 영역 내 및/또는 주변에서 검출된 물체(1002, 1004, 1006)의 과도한 밀도에 의해 식별될 수 있다. 어떤 경우에, 로봇(102)은 맵(700)의 형상, 즉 형상의 불규칙성을 검출할 수 있다. 예를 들어, 로봇(102)은 공간(1008)과 같은 포착된 공간을 검출할 수 있다. 어떤 경우에, 공간(1008)은 깨끗하고, 주행 및/또는 내비게이션할 수 있는 공간일 수 있다. 공간(1008)은 로봇(102)이 매핑된 대로 공간(1008)에 접근하지 않기 때문에 일반적으로 물체(1002, 1004, 1006) 사이에서 발생하지 않는다. 따라서, 로봇(102)은 맵(700)이 공간(1008)을 검출하면 매핑 오류를 갖고 및/또는 품질이 좋지 않은 것으로 결정할 수 있다. 다른 예로서, 로봇(102)은 톱니 모양의(jagged) 오버행(1010, 1012)을 검출할 수 있다. 형상의 불규칙성은 로봇(102)이 물체(1002, 1004, 1008) 중 하나 이상에 오류 매핑이 있었음을 결정할 수 있게 하는데, 그 이유는 그러한 오버행이 환경(100)에서 정상적으로 발생하지 않기 때문이다. 따라서, 오버행(1010, 1012)의 불규칙성에 적어도 부분적으로 기초하여, 로봇(102)은 매핑 오류를 검출할 수 있고/있거나 맵(700)이 불량한 것으로 결정할 수 있다. The overlap may also be identified, at least in part, by the excessive density of the objects 1002, 1004, and 1006 detected within and / or around the pixel or pixel region. In some cases, the robot 102 can detect the shape of the map 700, that is, the irregularity of the shape. For example, the robot 102 may detect a captured space, such as the space 1008. In some cases, the space 1008 may be a clean, running and / or navigable space. The space 1008 does not generally occur between the objects 1002, 1004, and 1006 because the robot 102 does not approach the space 1008 as it is mapped. Accordingly, the robot 102 can determine that the map 700 has a mapping error and / or is of poor quality when it detects the space 1008. [ As another example, the robot 102 may detect jagged overhangs 1010 and 1012. Shape irregularities allow the robot 102 to determine that there was an error mapping in one or more of the objects 1002, 1004, and 1008 because such overhangs do not normally occur in the environment 100. Thus, based at least in part on the irregularities in the overhangs 1010, 1012, the robot 102 may detect a mapping error and / or may determine that the map 700 is bad.

오버랩을 인식함으로써 식별 가능한 매핑 오류의 다른 예로서, 로봇(102)(및/또는 로봇(102)이 주행하는 경로)은 물체를 통과하는 것으로서 맵에 나타낼 수 있다. 로봇(102)이 물체들을 통과하지는 않을 것이므로, 그러한 발생은 매핑 오류를 적어도 부분적으로 나타낼 수 있다.As another example of an identifiable mapping error by recognizing the overlap, the robot 102 (and / or the path traveled by the robot 102) may be represented in the map as passing through the object. Since the robot 102 will not pass through objects, such an occurrence may at least partially indicate a mapping error.

다른 예로서, 로봇(102)은 맵(700)을 로봇(102)의 센서 중 적어도 하나로부터의 데이터와 비교함으로써 매핑 오류 및/또는 맵(700)의 품질을 식별할 수 있다. 예를 들어, 일부 구현예에서, 맵(700)은 적어도 부분적으로 하나 이상의 센서(560A-560D) 및 하나 이상의 센서(568A-568B)를 사용하여 생성된다. 그러나, 맵(700)의 정확성에 대한 체크는 맵(700)을 모든 센서(560A-560D) 및 센서(568A-568B)보다 적게 기록된 데이터와 비교할 수 있다. 하나의 예시적인 예로서, 하나 이상의 센서(568A-B)가 로봇(102)의 주행거리 측정(odometry)을 결정할 수 있다. 주행거리 측정에만 기초한 로봇(102)의 경로의 표현은 주행 프레임 내의 맵으로 간주될 수 있다. 주행 프레임 내의 이 맵은 예를 들어, 비교기, 감산 및/또는 본 개시 물에서 맵을 비교하는 임의의 다른 방법을 사용하여, 맵(700)과 비교될 수 있다. 주행 프레임과 맵(700)에서의 맵 간의 편차가 소정의 임계치(예를 들어, 40 %, 50 %, 60 % 이상 또는 불량 맵 품질에 대한 상관 관계의 경험적 결정에 적어도 부분적으로 기초하여 결정된 임의의 퍼센트)를 초과하면, 로봇(102)은 매핑 오류가 있었음을 결정할 수 있고 및/또는 맵(700)이 낮은 품질이었다는 것을 결정할 수 있다.As another example, the robot 102 may identify the mapping errors and / or the quality of the map 700 by comparing the map 700 with data from at least one of the sensors of the robot 102. For example, in some implementations, the map 700 is generated using, at least in part, one or more sensors 560A-560D and one or more sensors 568A-568B. However, a check on the accuracy of map 700 may compare map 700 with data recorded less than all sensors 560A-560D and sensors 568A-568B. As one illustrative example, one or more sensors 568A-B may determine the odometry of the robot 102. [ The expression of the path of the robot 102 based only on the mileage measurement can be regarded as a map in the running frame. This map in the running frame can be compared to the map 700, for example, using a comparator, subtracting, and / or any other method of comparing the map in this disclosure. The deviation between the running frame and the map in the map 700 may be an arbitrary value determined based at least in part upon a predetermined threshold (e.g., at least partially based on empirical determination of a correlation to 40%, 50%, 60% , The robot 102 may determine that there was a mapping error and / or determine that the map 700 was of poor quality.

다른 예로서, 일부 구현예에서, 로봇(102)은 폐루프(예를 들어, 종료 위치가 초기화 위치와 실질적으로 유사함)에서 주행하도록 구성될 수 있다. 로봇(102)은 항상 폐루프 내에서 주행할 수 있는 것은 아니라는 점에 유의해야 한다. 예를 들어, 도 1a는 초기화 위치(104)가 종료 위치(114)와 실질적으로 동일한 위치가 아닌 것으로 예시되었기 때문에 폐루프를 형성하지 않는 경로를 예시한다. 도 11a는 위치(1102)가 초기화 위치 및 종료 위치인 예시적인 폐루프 경로(1104)에서 이동하는 로봇(102)을 도시한다. 이 경우에, 경로(1104)의 맵이 대략적으로 위치(1102)에 초기화 위치 및 종료 위치를 갖지 않으면, 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵의 품질이 좋지 않은 것으로 결정할 수 있다. 어떤 경우에는, 미리 결정된 거리 임계치가 존재할 수 있다(예를 들어, 메모리(302)에 저장됨). 매핑된 초기화 위치 및 종료 위치가 미리 결정된 거리 임계치 내에 있지 않으면(예를 들어, 초기화 위치와 종료 위치 사이의 거리가 미리 결정된 거리 임계치를 초과하지 않는 경우), 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵이 낮은 품질이라고 결정할 수 있다. 이 미리 결정된 거리 임계치는 맵의 크기(예를 들어, 미리 결정된 거리 임계치는 맵 크기의 백분율 일 수 있음), 센서 해상도 및/또는 충실도, 및/또는 다른 인자에 적어도 부분적으로 기초하여 결정될 수 있다.As another example, in some implementations, the robot 102 may be configured to run in a closed loop (e.g., the end position is substantially similar to the initial position). It should be noted that the robot 102 is not always able to run in the closed loop. For example, FIG. 1A illustrates a path that does not form a closed loop because initialization position 104 is illustrated as being not substantially the same position as ending position 114. FIG. 11A shows a robot 102 moving in an exemplary closed loop path 1104 where position 1102 is an initial position and an end position. In this case, if the map of path 1104 does not have an initial position and an end position at roughly position 1102, robot 102 may detect a mapping error and / or determine that the quality of the map is not good . In some cases, a predetermined distance threshold may be present (e.g., stored in memory 302). If the mapped initialization and ending positions are not within a predetermined distance threshold (e.g., the distance between the initialization position and the ending position does not exceed a predetermined distance threshold), the robot 102 may detect a mapping error And / or determine that the map is of poor quality. This predetermined distance threshold may be determined based at least in part on the size of the map (e.g., the predetermined distance threshold may be a percentage of the map size), sensor resolution and / or fidelity, and / or other factors.

다른 예시적인 구현예로서, 로봇(102)은 메모리(302)에 저장된 환경의 업로드된 맵을 가질 수 있다. 로봇(102)은 맵(700)을 업로드된 맵과 비교할 수 있다. 예시로서, 로봇(102)은 픽셀별로 또는 영역별로 맵(700)과 업로드된 맵을 비교하는 맵 평가 유닛(324)의 하나 이상의 비교기를 이용할 수 있다. 일부 구현예에서, 업로드된 맵 및/또는 맵(700)은 그 비교를 용이하게 하도록 크기가 재조정될 수 있다. 맵(700)이 픽셀별로 또는 영역별로 업로드된 맵과 유사하지 않은 것으로 밝혀지면, 로봇(102)은 매핑 오류가 있었거나 및/또는 이 맵(700)의 품질이 좋지 않다고 결정할 수 있다. 결과적으로, 로봇(102)은 사용자(604)에게 경로를 다시 데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다).As another example implementation, the robot 102 may have an uploaded map of the environment stored in the memory 302. The robot 102 can compare the map 700 with the uploaded map. As an example, the robot 102 may use one or more comparators of the map evaluation unit 324 to compare the uploaded map with the map 700 on a pixel by pixel or area basis. In some implementations, the uploaded map and / or map 700 may be resized to facilitate its comparison. If it is found that the map 700 is not similar to a pixel-by-pixel or area-uploaded map, the robot 102 may determine that there is a mapping error and / or that the quality of the map 700 is not good. As a result, the robot 102 may prompt the user 604 to re-demonstrate the path (e.g., the robot 102 may perform the portion 404 again).

일부 구현예에서, 업로드된 맵과 맵(700)간에 백분율 유사성이 계산될 수 있는데, 백분율 유사성은 업로드된 맵이 매핑하는 것과 얼마나 유사한지를 적어도 부분적으로 반영한다(700). 백분율 유사성이 소정의 임계치(예를 들어, 70 %, 80 %, 90 % 또는 업로드된 맵과 맵(700) 사이의 실질적인 유사성을 적어도 부분적으로 표시하는 임의의 백분율) 아래로 떨어지는 경우, 로봇(102)은 매핑 오류가 있었으며 및/또는 맵(700)이 낮은 품질이라고 결정할 수 있다. 결과적으로, 로봇(102)은 사용자(604)를 통해(예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다).In some implementations, a percentage similarity may be calculated between the uploaded map and the map 700, where the percentage similarity at least partially reflects how similar the uploaded map is to the mapping (700). If the percentage similarity falls below a predetermined threshold (e.g., any percentage that at least partially represents a 70%, 80%, 90%, or substantial similarity between the uploaded map and the map 700), the robot 102 May have a mapping error and / or determine that map 700 is of poor quality. As a result, the robot 102 may prompt to re-demonstrate the path through the user 604 (e.g., via the user interface unit 322) (e.g., ) Can be performed again).

일부 구현예에서, 업로드된 맵은 형상들(예를 들어, 물체들 또는 장애물없는 공간의 형상)에 대해 분석될 수 있다. 맵(700)은 그 동일한 형상이 맵(700)에 존재하는지를 적어도 부분적으로 결정하기 위해 동일한 형상에 대해 분석될 수 있다. 마스크 및/또는 필터는 일부 구현예에서 검색을 위해 사용될 수 있다(예컨대, 형상을 찾기 위해 수정된 마스크(870)와 실질적으로 유사함). 업로드된 맵으로부터의 형상이 맵(700)에서 발견되지 않으면, 로봇(102)은 매핑 오류가 있고 및/또는 맵(700)이 낮은 품질이라고 결정할 수 있다. 결과적으로, 로봇(102)은 사용자(604)를 통해 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다). 유사하게, 맵(700)은 형상들(예를 들어, 물체들 또는 장애물없는 공간의 형상)에 대해 분석될 수 있고, 업로드된 맵이 그 동일한 형상들이 존재하는지를 파악하기 위해 분석될 수 있다. 동일한 방식으로, 로봇(102)이 업로드된 맵에서 맵(700)으로부터 검출된 형상을 찾지 못하면, 로봇(102)은 매핑 오류가 있고 및/또는 맵(700)이 낮은 품질이라고 결정하고 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 사용자(604)가 다시 경로를 데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다).In some implementations, the uploaded map may be analyzed for shapes (e.g., shapes of objects or obstacle-free spaces). The map 700 may be analyzed for the same shape to at least partially determine if the same shape is present in the map 700. [ The mask and / or filter may be used for searching in some implementations (e.g., substantially similar to a modified mask 870 to find a shape). If a shape from the uploaded map is not found in the map 700, the robot 102 may have a mapping error and / or determine that the map 700 is of poor quality. As a result, the robot 102 may prompt to re-demonstrate the path through the user 604 (e.g., via the user interface unit 322) (e.g., ) Can be performed again). Similarly, the map 700 may be analyzed for shapes (e.g., shapes of objects or unobstructed space), and the uploaded map may be analyzed to determine if those same shapes exist. In the same manner, if the robot 102 does not find the detected shape from the map 700 in the uploaded map, the robot 102 determines that there is a mapping error and / or that the map 700 is of low quality (E.g., via the user interface unit 322), the user 604 may prompt to again demote the path (e.g., the robot 102 may perform the portion 404 again).

일부 구현예에서, 로봇(102)은 환경(100)의 소정의 예상되는 특성/특징에 대해 맵(700)을 분석할 수 있다. 예를 들어, 식료품점 또는 유사한 환경에서, 로봇(102)은 통로 및/또는 선반을 예상할 수 있다. 로봇(102)이 통로 및/또는 선반을 나타내는 물체를 검출하지 않거나 또는 너무 적거나 너무 많은 것을 검출하는 경우, 로봇(102)은 맵(700)이 품질이 좋지 않을 수 있고 및/또는 매핑 오류를 포함할 수 있다고 결정할 수 있다. 또 다른 예로, 환경의 복잡성에 대해 일정 수준의 예상치가 있을 수 있다. 맵(700)이 너무 많이 회전하거나 너무 적은 회전을 갖는 경우, 로봇(102)은 맵(700)이 품질이 좋지 않을 수 있고 및/또는 매핑 오류를 포함할 수 있다고 결정할 수 있다. 다른 예로서, 환경(100)은 예상된 크기를 가질 수 있다. 맵(700)의 크기가 너무 크거나 작으면, 로봇(102)은 맵(700)이 품질이 좋지 않을 수 있고 및/또는 매핑 오류를 포함할 수 있다고 결정할 수 있다. 맵(700)이 환경(100)의 소정의 예상되는 특성들/특징들을 갖지 않는 전술한 경우들 중 어느 한 경우에서, 로봇(102)은 사용자(예를 들어, 사용자(604) 또는 서버상의 맵에 접근하는 사용자)가 맵(700)을 검증하도록 프롬프트할 수 있다. 따라서 로봇은 맵을 서버로 전송하고 맵의 품질의 검증을 수신할 수 있다.In some implementations, the robot 102 may analyze the map 700 for certain expected characteristics / characteristics of the environment 100. For example, in a grocery store or similar environment, the robot 102 may expect a passage and / or shelf. If the robot 102 does not detect objects that represent passageways and / or shelves, or if it detects too little or too much, the robot 102 may determine that the map 700 may be of poor quality and / Can be included. As another example, there may be some level of expectation for the complexity of the environment. If the map 700 has too much rotation or too little rotation, the robot 102 may determine that the map 700 may be of poor quality and / or may contain mapping errors. As another example, the environment 100 may have an expected size. If the size of the map 700 is too large or small, the robot 102 may determine that the map 700 may be of poor quality and / or may contain mapping errors. In any of the foregoing cases where the map 700 does not have certain expected characteristics / characteristics of the environment 100, the robot 102 may be configured to map the user (e.g., user 604) May prompt the user to verify map 700. < RTI ID = 0.0 > Therefore, the robot can transmit the map to the server and receive the verification of the quality of the map.

일부 구현예에서, 로봇(102)(예를 들어, 로봇(102)의 제어기(304))이 양호한 맵 및 불량 맵을 식별하도록 학습하는 기계 학습 알고리즘이 사용될 수 있다. 예를 들어, 로봇(102)은 양호한 맵 및 불량 맵으로서 식별된(예를 들어, 손으로 라벨링되거나 기계로 라벨링된) 맵의 라이브러리를 가질 수 있다. 로봇(102)은 당업계에 공지된 감독된 또는 감독되지 않은 알고리즘을 사용하여, 로봇(102)이 양호한 맵 또는 불량 맵을 나타내는 것으로서 그의 라이브러리를 통해 결정되는 특성을 연관시키도록 학습할 수 있다. 따라서, 로봇(102)이 맵을 불량 맵으로 식별하는 경우, 로봇(102)은 매핑 오류가 있으며 및/또는 맵(700)이 낮은 품질이라고 결정할 수 있으며 (예를 들어, 사용자 인터페이스 유닛(322)을 거쳐) 사용자가 경로를 다시데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다).In some implementations, a machine learning algorithm may be used that learns that robot 102 (e.g., controller 304 of robot 102) learns to identify good maps and bad maps. For example, the robot 102 may have a library of maps identified (e.g., manually labeled or mechanically labeled) as good maps and bad maps. The robot 102 may learn to associate characteristics determined through its library with robotic 102 representing a good map or bad map, using supervised or non-supervised algorithms known in the art. Thus, if the robot 102 identifies the map as a bad map, the robot 102 may determine that there is a mapping error and / or that the map 700 is of poor quality (e.g., the user interface unit 322) (E.g., robot 102 can perform portion 404 again). ≪ RTI ID = 0.0 >

일부 상황들에서, 로봇(102)은 또한 품질이 낮은 맵(700)의 오류들을 정정할 수 있다. 예를 들어, 일부의 경우, 로봇(102)이 폐루프(예를 들어, 폐루프 경로(1104))에서 정확하게 주행하지 않는 일부 경우에, 초기화 위치와 종료 위치 사이의 차이가 로봇(102)의 주행거리 측정을 보정하는데 사용될 수 있다. 예를 들어, 로봇(102)은 초기화 위치와 종료 위치 사이의 차이를 획득할 수 있고 그 차이가 주행 거리가 실제와 어느 정도 편차를 나타내는지를 결정할 수 있다. 따라서, 로봇(102)은 결정된 편차를 고려하여 기록된 경로를 조정할 수 있다.In some situations, the robot 102 may also correct errors in the low quality map 700. For example, in some cases, the difference between the initialization position and the ending position may be determined in some cases where the robot 102 does not travel precisely in a closed loop (e.g., the closed loop path 1104) Can be used to correct mileage measurements. For example, the robot 102 may determine the difference between the initial position and the end position, and determine how the difference represents a degree of deviation from the actual distance. Therefore, the robot 102 can adjust the recorded path in consideration of the determined deviation.

다른 예로서, 어떤 매핑 오류는 로봇(102)이 하나 이상의 오류를 정정하는 맵(700)의 버전일 수 있는 정정된 맵의 적어도 일부와 연관시킬 수 있는 패턴을 초래할 수 있다. 도 11b는 예시적인 로봇(102)이 예시적인 매핑 오류를 예시적인 수정된 경로(1108)와 연관시키는 예를 예시한다. 예를 들어, 맵(700)은 매핑된 경로(1106A-1106N)와 같이 실질적으로 유사한 모양의 일련의 표류 경로를 포함할 수 있으며, N은 임의의 수의 매핑된 경로(1106A-1106N)가 매핑될 수 있음을 나타낸다. 로봇(102)은 그러한 표류된 매핑된 경로들(1106A-1106N)이 사용자(604)가 동일한 경로를 계속해서 반복적으로 내비게이션하는 것을 적어도 부분적으로 나타낼 수 있다고 결정할 수 있다. 그 결과, 로봇(102)은 매핑된 경로(1106A-1106N)를 매핑된 경로(1108)로 정정할 수 있으며, 이것은 사용자(604)가 동일한 경로를 반복적으로 내비게이션하는 것을 나타낸다. 맵(700)이 매핑된 경로(1106A, 1106N)를 포함하는 경우, 로봇(102)은 매핑된 경로(1106A-1106N)를 맵(700)의 매핑된 경로(1108)로 정정할 수 있다. 유사하게, 그 신원이 로봇(102)에 프로그래밍되어 로봇(102)이 이들을 자동적으로 보정할 수 있는 다른 오류 패턴(예를 들어, 드리프트 및/또는 다른 오류)이 있을 수 있다. 따라서, 로봇(102)은 맵(700)의 오차를 보정할 수 있다.As another example, some mapping errors may result in a pattern that can be associated with at least a portion of the corrected map, which may be a version of the map 700 in which the robot 102 corrects one or more errors. FIG. 11B illustrates an example in which the exemplary robot 102 associates an exemplary mapping error with an exemplary modified path 1108. FIG. For example, the map 700 may comprise a series of substantially similar shaped drift paths, such as mapped paths 1106A-1106N, where N is an arbitrary number of mapped paths 1106A-1106N, . The robot 102 may determine that such drifted mapped paths 1106A-1106N may at least partially indicate that the user 604 is continually and repeatedly navigating the same path. As a result, the robot 102 can correct the mapped paths 1106A-1106N to the mapped path 1108, which indicates that the user 604 is navigating the same path repeatedly. If the map 700 includes mapped paths 1106A and 1106N, the robot 102 may correct the mapped paths 1106A-1106N to the mapped path 1108 of the map 700. [ Similarly, there may be other error patterns (e.g., drift and / or other errors) whose identities may be programmed into the robot 102 to enable the robot 102 to automatically correct them. Therefore, the robot 102 can correct the error of the map 700. [

로봇(102)은 또한 기계 학습을 사용하여 오류를 이들 오류의 교정과 연관시키도록 학습할 수 있다. 예를 들어, 로봇(102)은 오류를 가진 맵을 메모리(302)에 및/또는 서버 상에 저장할 수 있다. 예시로서, 어떤 경우에, 사용자(604)는 먼저 경로를 데모할 수 있다. 경로 및 주위 환경의 생성된 맵에는 매핑 오류가 있을 수 있다. 매핑 오류와 마주치면, 사용자(604)는 환경 및/또는 경로를 재 매핑할 수 있다. 따라서, 로봇(102)은 (예를 들어, 성공적인 내비게이션을 방해하는 매핑 오류를 갖는) 저품질 맵의 버전 및 (예를 들어, 성공적인 내비게이션을 방지하는 매핑 오류없이) 저품질이 아닌 버전을 가질 수 있다. 그 다음, 로봇(102)은 낮은 품질이 아닌 재매핑된 버전의 대응하는 부분과 낮은 품질 맵의 적어도 일부를 연관시킬 수 있다. 하나 이상의 실질적으로 유사한 연관에 기초하여, 로봇(102)은 발생된 매핑 오류를 식별하고, 일단 매핑 오류를 인식하면 보정된 맵의 적어도 일부를 생성하도록 학습할 수 있다.The robot 102 may also learn to use machine learning to correlate errors with corrections of these errors. For example, the robot 102 may store the faulty map in the memory 302 and / or on the server. By way of illustration, in some cases, the user 604 may first demonstrate the path. There may be a mapping error in the generated map of the path and surrounding environment. If a mapping error is encountered, the user 604 may remap the environment and / or path. Thus, the robot 102 may have a low-quality version (e.g., with a mapping error that prevents successful navigation) and a non-low-quality version (e.g., without mapping errors that prevent successful navigation). The robot 102 may then associate at least some of the low quality maps with the corresponding portions of the remapped versions that are not low quality. Based on one or more substantially similar associations, the robot 102 can learn to identify the mapping errors that have occurred and learn to generate at least a portion of the corrected map once it recognizes the mapping errors.

도 4를 참조하면, 티칭 단계(414)후, 로봇(102)은 자율 단계(416)로 진입할 수 있다. 부분(408)에서, 로봇(102)은 초기화 위치(104)를 검출하고 로봇(102)의 위치 및/또는 방향을 초기화할 수 있다. 일부 구현예에서, 사용자는 로봇(102), 원격 제어 로봇(102), 조향 로봇(102), 푸싱 로봇(102) 및/또는 액추에이터 유닛(318)을 구동시키는 임의의 다른 제어를 구동함으로써 로봇(102)을 초기화 위치(104)로 보낼 수 있다. 일부 구현예에서, 로봇(102)은 초기화 위치(104)로 자율적으로 복귀할 수 있다. 예를 들어, 로봇(102)은 (예를 들어,도 5b 내지 도 5e를 참조하여 앞서 설명된 바와 같이) 초기화 위치(104)의 위치를 메모리(302)에 저장하고 그 위치로 복귀할 수 있다.4, after the teaching step 414, the robot 102 may enter the autonomous step 416. [ At portion 408, the robot 102 may detect the initialization position 104 and initialize the position and / or orientation of the robot 102. [ In some implementations, the user may operate the robot (not shown) by driving the robot 102, the remote control robot 102, the steering robot 102, the pushing robot 102 and / or any other control that drives the actuator unit 318 102 to the initialization location 104. [ In some implementations, the robot 102 may autonomously return to the initialization position 104. For example, the robot 102 may store the location of the initialization location 104 (e.g., as described above with reference to Figures 5B-5E) in memory 302 and return to that location .

일부 구현예에서, 로봇(102)은 도 5b 내지 도 5e를 참조하여 설명된 부분(402)에서 뿐만 아니라 본 개시물의 다른 어딘가에 걸쳐서, 초기화 위치(104)를 검출하는데 사용된 시스템 및 방법과 실질적으로 유사한 방식으로 초기화 위치(104)를 검출할 수 있다. 어떤 경우에, 부분(408)에서 로봇(102)이 초기화 위치(104)로 복귀할 때, 예를 들어 물체(512,546,548,550) 중 하나 이상에 대한 로봇의 위치(102)가 메모리(302)에 저장될 것이다(예를 들어, 부분(402)로부터). 로봇(102)이 물체(512, 546, 548, 550) 중 하나 이상에 대해 동일한 상대적 위치에 있다고 검출하면, 로봇(102)은 로봇(102)이 초기화 위치(104)에 있다고 결정할 수 있다. 일부 구현예에서, 로봇(102)은 사용자가 로봇(102)을 정지시킨 곳에 적어도 부분적으로 기초하여 초기화 위치(104)에 있다고 검출할 수 있다. 이와 같이, 그것은 부분(410)을 참조하여 설명되는 바와 같이 사용자가 정지하고 이어서 경로를 선택한 장소가 초기화 위치(104)라고 추정할 수 있다. 일부 구현예에서, 송신기(예를 들어, RFID, NFC, BLUETOOTH(등록 상표), 무선 송신, 무선 주파수 필드 및/또는 본 개시에 기재된 임의의 다른 통신 프로토콜을 사용하여 통신을 송신하는 송신기)가 초기화 위치(104)에 또는 실질적으로 가깝게 있을 수 있다. 로봇(102)이 송신기의 상부에 있거나 또는 송신기에 실질적으로 근접한 것을 검출할 때, 로봇(102)은 로봇(102)이 초기화 위치(104)에 있다라고 검출할 수 있다. 일부 경우에, 송신기는 로봇(102)이 시작 위치에 있을 때에만 송신기로부터의 통신을 검출할 수 있는 동작 가능 범위를 가질 수 있다. 예시적인 예로서, NFC의 송신 범위는 10 센티미터 또는 그 이하일 수 있다. 따라서, 로봇(102)이 NFC를 통한 전송을 수신할 때, 로봇(102)은 그것이 초기화 위치(104)에 위치된 것을 검출할 수 있다. 일부 구현예에서, 로봇(102)은 송신기로부터의 송신을 수신할 수 있고, 신호 강도의 감쇠에 적어도 부분적으로 기초하여 송신기까지의 거리를 계산할 수 있다. 이러한 방식으로, 로봇(102)은 송신기에 얼마나 가까운지를, 따라서 송신기 및/또는 초기화 위치(104)에 대한 로봇(102)의 위치를 검출할 수 있다. 일부 구현예에서, 로봇(102)은 복수의 송신기의 신호 세기를 삼각 측량함으로써 그 위치를 결정할 수 있다. 일부 구현예에서, 초기화 위치(104)는 플로어 상의 표시(예를 들어, 표시, 기호, 라인 등)에 의해 구분될 수 있다. 로봇(102)의 하나 이상의 센서(예를 들어, 센서 유닛(314))가 플로어상의 사인(sign)을 검출할 때, 로봇(102)은 로봇(102)이 초기화 위치(104)에 위치된 것으로 검출할 수 있다.In some implementations, the robot 102 may be configured to detect the initial position 104 of the system and method used to detect the initialization position 104, as well as in the portion 402 described with reference to Figures 5B-5E, The initialization position 104 can be detected in a similar manner. In some cases, when the robot 102 returns to the initialization position 104 in the portion 408, the position 102 of the robot for, for example, one or more of the objects 512, 546, 548, 550 is stored in the memory 302 (E.g., from portion 402). The robot 102 may determine that the robot 102 is in the initialization position 104 if it detects that the robot 102 is in the same relative position to one or more of the objects 512, 546, 548, In some implementations, the robot 102 may detect that the user is in the initialization position 104 based at least in part on where the robot 102 is stopped. As such, it can be assumed that the user has stopped and subsequently selected the path, as described with reference to portion 410, as the initialization location 104. In some implementations, a transmitter (e.g., a transmitter that transmits communications using RFID, NFC, BLUETOOTH TM, wireless transmission, radio frequency fields, and / or any other communication protocol described in this disclosure) May be at or substantially in proximity to the location 104. The robot 102 may detect that the robot 102 is in the initialization position 104 when it detects that the robot 102 is on top of the transmitter or is substantially in proximity to the transmitter. In some cases, the transmitter may have an operable range that can detect communication from the transmitter only when the robot 102 is in the starting position. As an illustrative example, the transmission range of the NFC may be 10 centimeters or less. Thus, when the robot 102 receives the transmission over the NFC, the robot 102 can detect that it is located at the initialization position 104. [ In some implementations, the robot 102 can receive transmissions from the transmitter and calculate the distance to the transmitter based at least in part on the attenuation of the signal strength. In this manner, the robot 102 can detect how close to the transmitter it is, and thus the position of the robot 102 relative to the transmitter and / or initialization position 104. In some implementations, the robot 102 may determine its position by triangulating the signal strength of a plurality of transmitters. In some implementations, the initialization location 104 may be separated by an indication (e.g., an indication, a symbol, a line, etc.) on the floor. When one or more sensors (e.g., sensor unit 314) of the robot 102 detect a sign on the floor, the robot 102 is positioned such that the robot 102 is positioned at the initialization position 104 Can be detected.

부분(410)에서, 로봇(102)은 자율적으로 내비게이션하기 위해 기록된 경로를 선택할 수 있다. 일부 구현예에서, 로봇(102)에 의한 기록된 경로(예를 들어, 경로(116))의 선택은 사용자 입력에 적어도 부분적으로 기초할 수 있다. 예를 들어, 사용자는 디스플레이(576)상의 사용자 인터페이스(500)(도 5a에 도시됨)상의 입력(572)을 선택할 수 있으며, 여기서 입력(572)은 사용자로 하여금 로봇(102)의 기록된 경로를 선택가능하게 할 수 있다. 입력(572)을 선택한 후에, 도 8에 도시된 인터페이스(1200)가 나타날 수 있다. 도 12는 경로 선택을 위해 사용될 수 있는 예시적인 인터페이스(1200)를 도시한다. 인터페이스(1200)는 선택가능한 입력들(1202A-1202F)로서 디스플레이되는 선택을 위한 복수의 경로들을 제시할 수 있다. 사용자는 터치(예를 들어, 디스플레이(576)가 터치 스크린을 포함하는 경우) 및/또는 사용자 인터페이스 유닛(322)의 임의의 다른 입력 메카니즘을 통해 선택 가능한 입력들(1202A 내지 1202F) 중 하나를 선택할 수 있다. 예를 들어, 일부 구현예에서, 입력(1202F)은 로봇(102)에 의해 학습된 매핑된 경로(716)와 대응할 수 있다. 사용자가 입력(1202F)을 선택할 때, 로봇(102)은 사용자의 선택에 적어도 부분적으로 기초하여 맵(700) 및 매핑된 경로(716)(이는 경로(116)의 사용자 데모에 기초함)를 선택할 수 있다.At portion 410, the robot 102 may select a recorded path to autonomously navigate. In some implementations, the selection of a recorded path (e.g., path 116) by the robot 102 may be based, at least in part, on user input. For example, a user may select an input 572 on the user interface 500 (shown in FIG. 5A) on the display 576, where the input 572 allows the user to select the recorded path of the robot 102 Can be selected. After selecting the input 572, the interface 1200 shown in FIG. 8 may appear. 12 illustrates an exemplary interface 1200 that may be used for path selection. Interface 1200 may present a plurality of paths for selection that are displayed as selectable inputs 1202A-1202F. The user may select one of the selectable inputs 1202A through 1202F via a touch (e.g., if the display 576 includes a touch screen) and / or via any other input mechanism of the user interface unit 322 . For example, in some implementations, the input 1202F may correspond to a mapped path 716 learned by the robot 102. When the user selects input 1202F, the robot 102 selects map 700 and mapped path 716 (which is based on a user demo of path 116) based at least in part on the user's selection .

일부 구현예에서, 로봇(102)은 부분(408)에서 검출된 초기화 위치에 기초하여 기록된 경로를 자동으로 선택할 수 있다. 예를 들어, 초기화 위치(104)는 단지 데모된 경로(116)와 연관될 수 있다(또는 매핑된 경로(716)로 매핑될 수 있다). 유사하게, 로봇(102)은 다른 데모된 경로와 연관된 다른 초기화 위치를 가질 수 있다. 유리하게는, 복수의 초기화 위치를 갖는 것은 사용자로 하여금 데모가능하게 하며 다양한 경로를 통해 로봇(102)으로 하여금 자율적으로 이동가능하게 할 수 있다. 또한, 로봇(102)이 초기화 위치에 기초하여 기록된 경로를 자동으로 선택하게 함으로써, 로봇(102)은 최소한의 추가 사용자 입력으로 자율 주행을 보다 신속하게 시작할 수 있다.In some implementations, the robot 102 may automatically select the recorded path based on the initialization position detected in the portion 408. For example, the initialization location 104 may be associated with only the demoted path 116 (or may be mapped to the mapped path 716). Similarly, the robot 102 may have other initialization locations associated with other demoted paths. Advantageously, having a plurality of initialization positions allows the user to demonstrate and enable the robot 102 to autonomously move through various paths. In addition, by allowing the robot 102 to automatically select the recorded path based on the initialization position, the robot 102 can start autonomous travel more quickly with a minimum of additional user input.

도 4를 다시 참조하면, 부분(412)에서, 로봇(102)은 부분(410)에서 선택된 기록된 경로를 따라 자율적으로 주행할 수 있다. 예를 들어, 로봇(102)은 맵(700) 및 매핑된 경로(716)를 사용하여 자율적으로 주행할 수 있다.Referring again to FIG. 4, at portion 412, the robot 102 may autonomously travel along the recorded path selected in portion 410. For example, the robot 102 may autonomously travel using the map 700 and the mapped path 716.

후속 경로(716)에서, 로봇(102)은 적어도 맵(700), 경로(716), 및 센서(560A-560D) 및 센서(568A-568B)로부터의 데이터 중 하나 이상을 프로세싱할 수 있는 적어도 내비게이션 유닛(326)에 의존할 수 있다. 센서(560A-560D)는 본원에서 도 6d를 참조하여 그리고 본원의 다른 곳에서 예시 및 설명된 바와 같이, 로봇(102)이 그 주변의 물체를 센싱가능하게 할 수 있다. 이러한 방식으로, 로봇(102)은 맵(700) 및 인근 물체의 검출에 적어도 부분적으로 기초하여 내비게이션할 수 있으며, 로봇(102)은 검출되는 물체를 피할 수 있다. 예를 들어, 이러한 물체는 일시적으로 배치되거나 일시적인 항목 및/또는 환경에 대한 일시적 및/또는 동적 변경일 수 있다. 또한, 인근 물체의 검출은 로봇(102)으로 하여금 맵(700)상에서 검출하는 물체 로봇(102)의 위치의 결정에 적어도 부분적으로 기초하여 맵(700) 상에 자신을 로컬라이제이션가능하게 할 수 있다.In a subsequent path 716, the robot 102 is at least capable of processing at least one of the data from the map 700, path 716, and sensors 560A-560D and sensors 568A- Unit 326. < / RTI > The sensors 560A-560D may enable the robot 102 to sense an object therearound, as illustrated and described herein with reference to Figure 6D and elsewhere herein. In this manner, the robot 102 can navigate based at least in part on the detection of the map 700 and nearby objects, and the robot 102 can avoid the object being detected. For example, such an object may be a temporary and / or dynamic change to a temporary item or a temporary item and / or environment. In addition, the detection of a nearby object can enable the robot 102 to localize itself on the map 700 based, at least in part, on the determination of the position of the object robot 102 to detect on the map 700. [

또한, 로봇(102)은, 적어도 도 5b 내지 도 5d를 참조하여 기술되는 바와 같이, 원점에 대한 그의 위치/자세(예컨대, 거리 및/또는 방향)를 적어도 부분적으로 결정하기 위해 주행거리 측정용 센서(568A 내지 568B)를 활용할 수 있다. 적어도 하나의 맵(700), 경로(716), 센서(560A-560D) 및 센서(568A-568B) 중 하나 이상을 사용함으로써, 로봇(102)은 도 1에 도시된 바와 같이 경로(106), 도 1c에 예시된 바와 같은 경로(126), 또는 적어도 방법(400)을 이용하여 환경(100) 또는 임의의 다른 환경을 통한 다른 자율적 경로를 통해 자율적으로 주행할 수 있다.In addition, the robot 102 may be configured to detect at least a portion of a distance-measuring sensor (not shown) to at least partially determine its position / posture (e.g., distance and / or direction) relative to the origin as described at least with reference to Figures 5B- (568A-568B). By using one or more of at least one map 700, a path 716, sensors 560A-560D and sensors 568A-568B, the robot 102 may be moved along path 106, May autonomously travel through path 126 as illustrated in FIG. 1C, or at least via autonomous path through environment 100 or any other environment, using method 400.

또한, 경로(106)를 따라 자율적으로 주행하는 동안, 로봇(102)은 부분(404) 동안 학습되고 및/또는 맵(700)에 기록된 대로 브러시(908) 및/또는 스퀴지(616)와 같은 로봇(102) 상의 다양한 기구를 작동시킬 수 있다. 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트 상승/하강, 카메라 및/또는 센서 유닛(314)의 임의의 센서 회전, 및/또는 로봇(102)이 행동을 수행하기를 원하는 임의의 움직임 등과 같이 스크러버 또는 다른 로봇 형태의 장비의 학습된 행동의 작동이 유사하게 수행될 수 있다.In addition, while autonomously traveling along path 106, the robot 102 may be trained during the portion 404 and / or may be trained, such as the brush 908 and / or squeegee 616, Various mechanisms on the robot 102 can be operated. Moving the vacuum hose position, moving the arms, lifting / lowering the lift, rotating any of the sensors in the camera and / or sensor unit 314, and / or moving the vacuum hose, The actuation of the learned behavior of the scrubber or other robotic device, such as any movement the robot 102 wishes to perform, may similarly be performed.

도 13은 예시적인 로봇(102)을 동작시키는 예시적인 방법(1300)을 예시한다. 부분(1302)은 초기화 위치에서 로봇의 제1 위치를 검출하는 것을 포함한다. 부분(1304)은 초기화 위치로부터 시작하는 로봇에 대한 내비게이션할 수 있는 경로의 데모 중에 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 것을 포함한다. 부분(1306)은 초기화 위치에서 로봇의 제2 위치를 검출하는 것을 포함한다. 부분(1308)은 로봇이 초기화 위치로부터 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함한다.FIG. 13 illustrates an exemplary method 1300 of operating the exemplary robot 102. Portion 1302 includes detecting a first position of the robot at an initialization position. Portion 1304 includes generating a map of the navigable path and environment during the demonstration of the navigable path to the robot starting from the initialization position. Portion 1306 includes detecting a second position of the robot at an initialization position. Portion 1308 includes the robot autonomously navigating at least a portion of the navigable path from the initialization position.

본원에서 사용될 때, 컴퓨터 및/또는 컴퓨팅 장치는, 개인용 컴퓨터 ("PC") 및 마이크로컴퓨터, 데스크탑, 랩톱 또는 아니면, 메인 프레임 컴퓨터, 워크 스테이션, 서버, 개인 휴대정보 단말기("PDA"), 휴대용 컴퓨터, 내장 컴퓨터, 프로그래머블 로직 장치, 개인 휴대 통신기, 태블릿 컴퓨터, 모바일 기기, 휴대형 내비게이션 장치, J2ME 장착 장치, 휴대 전화기, 스마트 폰, 개인 통합 통신 장치 또는 오락 장치, 및/또는 일련의 명령들을 실행하고 유입하는 데이터 신호를 프로세싱하는 임의의 다른 장치를 포함할 수 있지만, 이에 한정되지 않는다.As used herein, a computer and / or computing device may be a personal computer ("PC") and a microcomputer, a desktop, a laptop or a mainframe computer, a workstation, a server, a personal digital assistant A computer, an embedded computer, a programmable logic device, a personal digital assistant, a tablet computer, a mobile device, a portable navigation device, a J2ME mounting device, a mobile phone, a smart phone, a personal unified communications device or entertainment device, But is not limited to, any other device that processes an incoming data signal.

본원에서 사용될 때, 컴퓨터 프로그램 및/또는 소프트웨어는 기능을 수행하는 임의의 시퀀스, 또는 사람 또는 기계 인식가능한 단계를 포함할 수 있다. 이러한 컴퓨터 프로그램 및/또는 소프트웨어는 예를 들어, C/C++, C#, Fortran, COBOL, MATLABTM, PASCAL, Python, 어셈블리 언어, 마크업 언어(예: HTML, SGML, XML, VoXML) 등 뿐만 아니라, CORBA(Common Object Request Broker Architecture), JAVATM(J2ME, Java Beans 등), BREW(Binary Runtime Environment) 등과 같은 객체 지향 환경을 포함하여, 어떠한 프로그래밍 언어 또는 환경으로 렌더링될 수 있다. As used herein, a computer program and / or software may include any sequence that performs a function, or a human or machine recognizable step. Such computer programs and / or software may be implemented in a variety of ways, including, for example, C / C ++, C #, Fortran, COBOL, MATLABTM, PASCAL, Python, assembly language, markup languages (e.g. HTML, SGML, XML, VoXML) Including an object oriented environment such as Common Object Request Broker Architecture (JRE), JAVATM (J2ME, Java Beans, etc.), BREW (Binary Runtime Environment), and the like.

본원에서 사용될 때, 접속, 링크, 전송 채널, 지연 라인 및/또는 무선은 엔티티들 간의 정보 교환을 가능하게 하는 임의의 2 이상의 엔티티(물리적 또는 논리적/가상) 간의 인과적 링크를 포함할 수 있다.As used herein, a connection, a link, a transmission channel, a delay line, and / or a radio may include a causal link between any two or more entities (physical or logical / virtual) that enable the exchange of information between entities.

본 개시의 특정 양태가 방법의 특정 단계의 단계에 의해 설명되지만, 이들 설명은 단지 본원의 광범위한 방법을 예시하고 특정 용도에 의해 요구되는 바에 따라 변경될 수 있음을 알 수 있을 것이다. 특정 단계에서는 특정 상황에서 불필요하거나 선택적으로 표시될 수 있다. 또한, 특정 단계들 또는 기능성이 개시된 구현예들에 추가될 수 있거나, 2 이상의 단계들의 수행 순서가 치환될 수 있다. 이러한 모든 변형은 본원에 개시되고 청구된 개시 내에 포함되는 것으로 간주된다.While particular embodiments of the present disclosure are illustrated by the steps of a particular step of the method, it will be appreciated that these descriptions merely illustrate the broad methodology herein and may be modified as desired by the particular use. At certain stages, it may be unnecessary or selectively displayed under certain circumstances. In addition, certain steps or functionality may be added to the disclosed embodiments, or the order of execution of two or more steps may be substituted. All such modifications are considered to be included within the disclosure disclosed herein and claimed.

상기 상세한 설명은 다양한 구현예에 적용된 본 개시의 신규한 특징을 도시하고, 설명하고, 지적하였지만, 도시된 디바이스 또는 프로세스의 형태 및 세부 사항에서 다양한 생략, 대체 및 변경이 이루어질 수 있다는 것을 이해할 것이다. 전술한 설명은 본 개시를 실시하기 위해 현재 고려되는 최선의 모드에 관한 것이다. 이러한 설명은 결코 제한하려는 것이 아니라 오히려 본 개시의 일반적인 원리를 설명하는 것으로 간주되어야 한다. 본 개시의 범위는 청구 범위를 참조하여 결정되어야 한다.While the above description has shown, described, and pointed out novel features of the present disclosure as applied to various implementations, it will be understood that various omissions, substitutions and changes in the form and details of the devices or processes shown may be made. The foregoing description is directed to the best mode currently contemplated for carrying out this disclosure. These descriptions are not to be construed as limiting in any way, but rather as illustrative of the general principles of the disclosure. The scope of the present disclosure should be determined with reference to the claims.

본 개시가 도면 및 전술한 설명에서 상세히 도시되고 설명되었지만, 그러한 예시 및 설명은 예시 또는 예시적인 것으로 그리고 비제한적인 것으로 간주되어야 한다. 본 개시는 개시된 실시예들에 한정되지 않는다. 개시된 실시예들에 대한 변형은 청구된 개시내용을 실시할 때 당업자에 의해 도면, 개시내용 및 첨부된 청구 범위의 연구로부터 이해되고 영향받을 수 있다.While the present disclosure has been shown and described in detail in the drawings and foregoing description, such illustration and description are to be regarded as illustrative or exemplary and not restrictive. The present disclosure is not limited to the disclosed embodiments. Modifications to the disclosed embodiments can be understood and effected by those skilled in the art upon studying the drawings, the disclosure, and the appended claims when performing the claimed disclosure.

본 개시내용의 특정 특징들 또는 양태들을 기술할 때 특정 용어의 사용은 본 개시내용에서 이 용어들이 연관되는 본 개시내용의 특징들 또는 양태들에 대한 임의의 특정 특성을 포함하게 제한되도록 재정의됨을 의미하는 것으로 이해되어서는 안된다는 점에 유의한다. 본원에서 사용된 용어 및 어구, 및 그 변형예, 특히 첨부된 청구 범위에서, 달리 명시적으로 언급되지 않는 한, 제한과 반대로 개방형으로 해석되어야 한다. 전술한 예로서, "포함하는(including)"이라는 용어는 "제한없이 포함하는", "포함하지만 이에 한정되지는 않는" 등을 의미하는 것으로 해석되어야 한다; 본 명세서에 사용되는 용어 "포함하는(comprising)"은 "포함하다", "함유하다" 또는 "특징으로 한다"와 동의어이며 포괄적이거나 제한이 없으며 인용되지 않은 추가 요소 또는 방법 단계를 배제하지 않는다; "갖는(having)"이라는 용어는 "적어도 갖는"으로 해석되어야 하며, "과 같은(such as)"이라는 용어는 "과 같이, 제한 없이"로 해석되어야 하며, "포함한다(includes)"라는 용어는 "포함하지만 이에 한정되지 않는다"로서 해석되어야 하며; "예"라는 용어는 그 항목의 포괄적인 또는 제한적인 목록이 아닌, 설명중인 항목의 예시적인 예를 제공하기 위해 사용되며, "예로서, 그러나 제한 없이"로서 해석되어야 하며; "알려진(known)", "정상적인(normal)" "표준(standard)" 및 유사한 의미의 용어는 설명된 항목을 주어진 기간에 또는 주어진 시간에 사용가능한 항목에 제한하는 것으로 해석되어서는 안되며, 대신, 현재 또는 언제든지 미래에 알려지거나 알려질 수 있는, 알려진, 정상 또는 표준 기술을 포함하는 것으로 이해하여야 하며; "바람직하게(preferably)", "바람직한(preferred)", "바람직하다(desired)" 또는 "바람직한(desirable)"과 같은 용어의 사용 및 유사한 의미의 용어는 어떤 특징이 본질적으로 중요하거나 필수적이거나 구조 또는 기능에 중요함을 암시하는 것으로 이해되기보다는, 특정 실시예에서 이용될 수도 있거나 이용되지 않을 수도 있는 대안적인 또는 부가적인 특징들을 강조하기 위한 것으로 이해되어야 한다. 마찬가지로 접속사 "및(and)"과 연결된 항목 그룹은 해당 항목의 각각 하나 하나가 그룹에 존재해야 한다는 것을 의미하는 것으로 이해하지 않아야 하며, 달리 명시하지 않는 한 "및/또는(and/or)"으로 이해하여야 한다. 유사하게, 접속사 "또는(or)"과 연결된 항목 그룹은 해당 그룹 간에 상호 배타성을 요구하는 것으로 이해해서는 안되며 달리 명시하지 않는 한, "및/또는"으로 이해하여야 한다. 용어 "약" 또는 "대략"등은 동의어이며 용어에 의해 수정된 값이 그와 연관된 이해 범위를 나타내기 위해 사용되며, 여기서 범위는 ± 20 %, ± 15 %, ± 10 %, ± 5 % 또는 ± 1 % 일 수 있다. "실질적으로"라는 용어는 결과(예 : 측정 값)가 목표 값에 근접함을 나타내기 위해 사용되며, 여기서 닫기(close)는 결과 값의 80 % 이내, 값의 90 % 이내, 값의 95 % 이내 또는 값의 99 % 이내임을 의미한다. 또한, 본원에서 사용될 때, "정의된" 또는 "결정된"은 "미리 정의된" 또는 "미리 결정된" 및/또는 다른 방법으로 결정된 값, 조건, 임계치, 측정 등을 포함할 수 있다. The use of a particular term when describing certain features or aspects of the present disclosure means that the term is redefined to be limited to include any particular characteristic of features or aspects of the present disclosure to which the term relates And should not be understood as doing. As used herein, terms and phrases, and variations thereof, particularly in the appended claims, should be interpreted as open, as opposed to limiting, unless explicitly stated otherwise. As used in the preceding examples, the term "including" should be interpreted to mean "including without limitation", "including but not limited to", and the like; As used herein, the term " comprising "is synonymous with " comprises," " comprising "or" characterized ", and does not exclude additional elements or method steps that are inclusive, The word "having" should be interpreted as having at least, and the term " such as "should be interpreted as" Quot; is to be interpreted as "including but not limited to" The word " exemplary "is used to provide an exemplary illustration of the item being described, rather than a comprehensive or restrictive list of the item, and should be interpreted as" as an example, but without limitation, " The terms " known ", " normal ", "standard ", and similar terms are to be construed as limiting the described item to items available in a given time period or at a given time, Shall be understood to include known, normal or standard techniques, which may be known or known in the future or at any time in the future; The use of terms such as "preferably," "preferred," "desired," or "desirable," and the like, means that certain features are inherently important or essential, Or functionality of the present invention, rather than as being implied to be critical to the functionality or functionality of the device. Likewise, a group of items linked to a conjunction "and" shall not be understood to mean that each and every one of those items must be in the group, and unless otherwise stated, "and / or" I must understand. Similarly, an item group associated with a conjunction "or" should not be understood as requiring mutual exclusivity between the groups, and should be understood as "and / or" unless otherwise specified. The terms "about" or "roughly" and the like are synonyms and values modified by the term are used to denote a range of interest associated therewith, wherein the range is ± 20%, ± 15%, ± 10% ± 1%. The term "substantially" is used to indicate that the result (e.g., measured value) approaches the target value, where close is within 80% of the result, within 90% of the value, Or within 99% of the value. Also, as used herein, "defined" or "determined" may include values, conditions, thresholds, measurements, etc., determined in a "predefined" or "predetermined" and / or other manner.

Claims (26)

복수의 명령들이 저장된 비일시성 컴퓨터 판독 가능 저장 매체로서,
상기 명령들은, 로봇을 동작시키도록 프로세싱 장치에 의해 실행 가능하고,
상기 명령들은, 상기 프로세싱 장치에 의해 실행될 때, 상기 프로세싱 장치로 하여금:
초기화 위치에서 상기 로봇의 제1 배치를 검출하게 하고;
상기 초기화 위치로부터 출발하여 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하게 하고;
상기 초기화 위치에서 상기 로봇의 제2 배치를 검출하게 하고; 그리고
상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하도록 구성되는, 비일시성 컴퓨터 판독 가능 저장 매체.
17. A non-transitory computer readable storage medium having stored thereon a plurality of instructions,
Wherein the instructions are executable by the processing device to operate the robot,
Wherein the instructions, when executed by the processing device, cause the processing device to:
Detect a first arrangement of the robots in an initialization position;
Generate a map of the navigable path and the environment during the demonstration of the navigable path from the initialization location to the robot;
Detect a second configuration of the robot at the initialization position; And
Wherein the robot is configured to autonomously navigate at least a portion of the navigable path from the initialization position.
청구항 1에 있어서,
상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 추가로, 상기 프로세싱 장치로 하여금, 오류들에 대해 생성된 상기 맵을 평가하게 하고, 상기 오류들에 적어도 부분적으로 기초하여, 상기 로봇에게 상기 내비게이션가능한 경로를 다시 데모하도록 사용자에게 요청하게 하는, 비일시성 컴퓨터 판독 가능 저장 매체.
The method according to claim 1,
Wherein the instructions further cause the processing device to: when executed by the processing device, cause the processing device to evaluate the map generated for errors, and to cause the robot to navigate the at least partially- ≪ / RTI > requesting the user to re-demote the path.
청구항 2에 있어서,
상기 오류들은 맵에서의 상기 내비게이션가능한 경로의 불연속성 및 상기 맵에서의 상기 주위 환경에서의 불연속성 중의 적어도 하나를 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.
The method of claim 2,
Wherein the errors comprise at least one of a discontinuity of the navigable path in the map and a discontinuity in the environment in the map.
청구항 1에 있어서,
상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 추가로, 상기 프로세싱 장치로 하여금, 상기 내비게이션가능한 경로를 자율적으로 내비게이션하는 동안에 상기 로봇에 일시적으로 놓인 장애물들을 피하는 명령들을 제공하게 하는, 비일시성 컴퓨터 판독 가능 저장 매체.
The method according to claim 1,
Wherein the instructions further cause, when executed by the processing device, to cause the processing device to provide instructions to avoid obstacles that are temporarily placed on the robot while autonomously navigating the navigable path. Possible storage medium.
청구항 1에 있어서,
상기 프로세싱 장치로 하여금, 사용자 인터페이스로부터 내비게이션가능한 경로의 선택을 수신하게 하도록 구성된 명령들을 더 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.
The method according to claim 1,
Further comprising instructions configured to cause the processing device to receive a selection of a navigable path from a user interface.
청구항 1에 있어서,
상기 로봇은 플로어 청소기인, 비일시성 컴퓨터 판독 가능 저장 매체.
The method according to claim 1,
Wherein the robot is a floor cleaner.
청구항 1에 있어서,
생성된 상기 맵은 상기 내비게이션가능한 경로 상의 상기 로봇에 의하여 수행되는 행동을 적어도 부분적으로 나타내는 표시를 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.
The method according to claim 1,
Wherein the generated map includes an indication at least partially indicative of an action performed by the robot on the navigable path.
청구항 7에 있어서,
상기 행동은 플로어 청소인, 비일시성 컴퓨터 판독 가능 저장 매체.
The method of claim 7,
The action is a floor clean, non-transitory computer readable storage medium.
로봇을 동작시키는 방법에 있어서,
초기화 위치에서 상기 로봇의 초기 배치를 검출하는 단계;
상기 초기화 위치로부터 출발하여 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성시키는 단계;
상기 초기화 위치에서 상기 로봇의 다음 배치를 검출하는 단계; 및
상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함하는, 로봇을 동작시키는 방법.
A method of operating a robot,
Detecting an initial placement of the robot at an initialization position;
Generating a map of the navigable path and the environment during the demonstration of the navigable path from the initialization position to the robot;
Detecting the next placement of the robot at the initialization position; And
And causing the robot to autonomously navigate at least a portion of the navigable path from the initialization position.
청구항 9에 있어서,
오류들에 대해 생성된 상기 맵을 평가하는 단계; 및 상기 오류들에 적어도 부분적으로 기초하여, 사용자에게 상기 로봇에게 다시 상기 내비게이션가능한 경로를 데모하도록 요청하는 단계를 더 포함하는, 로봇을 동작시키는 방법.
The method of claim 9,
Evaluating the map generated for errors; And asking the user to demote the navigable path back to the robot based at least in part on the errors.
청구항 9에 있어서,
상기 데모는 사용자로부터 제어 신호들을 수신하는 단계를 포함하는, 로봇을 동작시키는 방법.
The method of claim 9,
Wherein the demo comprises receiving control signals from a user.
청구항 9에 있어서,
상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성시키는 단계는, 삼차원 센서로 상기 주위 환경을 센싱하는 단계를 더 포함하는 로봇을 동작시키는 방법.
The method of claim 9,
Wherein generating the map of the navigable path and the ambient environment further comprises sensing the ambient environment with a three dimensional sensor.
청구항 9에 있어서,
상기 로봇으로 하여금 자율적으로 내비게이션하게 하는 단계는 사용자 인터페이스로부터 상기 내비게이션가능한 경로의 선택을 수신하는 단계를 더 포함하는, 로봇을 동작시키는 방법.
The method of claim 9,
Wherein the step of autonomously navigating the robot further comprises receiving a selection of the navigable path from a user interface.
청구항 9에 있어서,
상기 로봇으로 하여금 자율적으로 내비게이션하게 하는 단계는 상기 내비게이션가능한 경로 및 주위 환경의 상기 맵을 이용하여 내비게이션하는 단계를 포함하는, 로봇을 동작시키는 방법.
The method of claim 9,
Wherein the step of allowing the robot to autonomously navigate comprises navigating using the map of the navigable path and the environment.
청구항 9에 있어서,
상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 생성된 상기 맵 상에 매핑하는 단계를 더 포함하는, 로봇을 동작시키는 방법.
The method of claim 9,
Further comprising mapping the behavior performed by the robot on the navigable path onto the generated map.
청구항 15에 있어서,
상기 행동은 플로어를 청소하는 것을 포함하는, 로봇을 동작시키는 방법.
16. The method of claim 15,
Wherein the action includes cleaning the floor.
복수의 명령이 저장되는 비일시성 컴퓨터 판독 가능 저장 매체에 있어서,
상기 명령들은 로봇을 동작시키도록 프로세싱 장치에 의하여 실행될 수 있으며,
상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금, 초기화 위치로부터 출발하여 상기 로봇에게 상기 내비게이션가능한 경로를 데모하는 동안에 내비게이션가능한 경로 및 주위 환경의 맵을 생성하게 하도록 구성된, 비일시성 컴퓨터 판독 가능 저장 매체.
A non-transitory computer readable storage medium having stored thereon a plurality of instructions,
The instructions may be executed by a processing device to cause the robot to operate,
Wherein the instructions are configured to cause the processing device to generate a map of a navigable path and environment when starting from an initialization location and demodulating the navigable path to the robot when executed by the processing device, Computer readable storage medium.
청구항 17에 있어서,
생성된 상기 맵은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 적어도 부분적으로 나타내는 표시를 더 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.
18. The method of claim 17,
Wherein the generated map further comprises an indication that at least partially represents an action performed by the robot on the navigable path.
청구항 18에 있어서,
상기 행동은 플로어를 청소하는 것인, 비일시성 컴퓨터 판독 가능 저장 매체.
19. The method of claim 18,
The behavior cleaning the floor. ≪ RTI ID = 0.0 >< / RTI >
청구항 17에 있어서,
상기 내비게이션 경로의 상기 데모는 컴퓨터 시뮬레이션인, 비일시성 컴퓨터 판독 가능 저장 매체.
18. The method of claim 17,
Wherein the demo of the navigation path is a computer simulation.
로봇에 있어서,
초기화 위치로부터 출발하여 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하도록 구성된 매핑 및 로컬라이제이션 유닛; 및
상기 맵을 이용하여 상기 로봇을 자율적으로 내비게이션시키도록 구성된 내비게이션 유닛을 포함하는 로봇.
In the robot,
A mapping and localization unit configured to generate a map of the navigable path and the environment while demodulating the navigable path from the initialization position to the robot; And
And a navigation unit configured to autonomously navigate the robot using the map.
청구항 21에 있어서,
상기 내비게이션 유닛은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션시키지 않도록 결정하도록 더 구성된, 로봇.
23. The method of claim 21,
Wherein the navigation unit is further configured to determine not to autonomously navigate at least a portion of the navigable path.
청구항 21에 있어서,
상기 로봇의 센서 범위 내에서 객체들을 적어도 부분적으로 표시하는 센서 데이터를 발생시키도록 구성되는 센서 유닛을 더 포함하고, 상기 내비게이션 유닛은 발생된 상기 센서 데이터에 적어도 부분적으로 기초하여 자율적으로 내비게이션시키도록 더 구성된, 로봇.
23. The method of claim 21,
Further comprising a sensor unit configured to generate sensor data that at least partially displays objects within a sensor range of the robot, wherein the navigation unit is further adapted to autonomously navigate based at least in part on the sensor data generated Configured, robot.
청구항 21에 있어서,
브러시를 작동시키도록 구성된 제1 액추에이터 유닛을 더 포함하는, 로봇.
23. The method of claim 21,
Further comprising a first actuator unit configured to actuate a brush.
청구항 24에 있어서,
상기 맵의 위치를 상기 제1 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 포함하는 로봇.
27. The method of claim 24,
Further comprising a processor configured to associate a position of the map with an actuation of the first actuator unit.
청구항 21에 있어서,
서버와 통신하도록 구성된 통신 유닛을 더 포함하고, 상기 로봇은 상기 서버로 상기 맵을 전송하고 상기 맵의 표시된 품질의 검증을 수신하는, 로봇.
23. The method of claim 21,
Further comprising a communication unit configured to communicate with a server, wherein the robot transmits the map to the server and receives a verification of the displayed quality of the map.
KR1020187035942A 2016-05-11 2017-05-11 Systems and methods for training a robot to autonomously navigate a path KR102355750B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/152,425 US20170329347A1 (en) 2016-05-11 2016-05-11 Systems and methods for training a robot to autonomously travel a route
US15/152,425 2016-05-11
PCT/US2017/032273 WO2017197190A1 (en) 2016-05-11 2017-05-11 Systems and methods for training a robot to autonomously travel a route

Publications (2)

Publication Number Publication Date
KR20190029524A true KR20190029524A (en) 2019-03-20
KR102355750B1 KR102355750B1 (en) 2022-01-26

Family

ID=60267336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187035942A KR102355750B1 (en) 2016-05-11 2017-05-11 Systems and methods for training a robot to autonomously navigate a path

Country Status (7)

Country Link
US (3) US20170329347A1 (en)
EP (1) EP3454705A4 (en)
JP (1) JP6949107B2 (en)
KR (1) KR102355750B1 (en)
CN (1) CN109414142B (en)
CA (1) CA3023552A1 (en)
WO (1) WO2017197190A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220126588A (en) * 2021-03-09 2022-09-16 동의대학교 산학협력단 Virtual grid-based A-Star route search method and system
WO2024147602A1 (en) * 2023-01-06 2024-07-11 주식회사 케이티 Robot failure analysis method and device

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10809071B2 (en) * 2017-10-17 2020-10-20 AI Incorporated Method for constructing a map while performing work
US11835343B1 (en) * 2004-08-06 2023-12-05 AI Incorporated Method for constructing a map while performing work
US9945677B1 (en) * 2015-07-23 2018-04-17 X Development Llc Automated lane and route network discovery for robotic actors
US10335949B2 (en) * 2016-01-20 2019-07-02 Yujin Robot Co., Ltd. System for operating mobile robot based on complex map information and operating method thereof
US10241514B2 (en) 2016-05-11 2019-03-26 Brain Corporation Systems and methods for initializing a robot to autonomously travel a trained route
US10282849B2 (en) 2016-06-17 2019-05-07 Brain Corporation Systems and methods for predictive/reconstructive visual object tracker
US10055667B2 (en) 2016-08-03 2018-08-21 X Development Llc Generating a model for an object encountered by a robot
WO2018043033A1 (en) * 2016-08-31 2018-03-08 村田機械株式会社 Autonomously traveling floor cleaning machine
US10410320B2 (en) 2016-09-30 2019-09-10 Sony Interactive Entertainment Inc. Course profiling and sharing
US10850838B2 (en) 2016-09-30 2020-12-01 Sony Interactive Entertainment Inc. UAV battery form factor and insertion/ejection methodologies
US10336469B2 (en) 2016-09-30 2019-07-02 Sony Interactive Entertainment Inc. Unmanned aerial vehicle movement via environmental interactions
US10377484B2 (en) * 2016-09-30 2019-08-13 Sony Interactive Entertainment Inc. UAV positional anchors
US10416669B2 (en) 2016-09-30 2019-09-17 Sony Interactive Entertainment Inc. Mechanical effects by way of software or real world engagement
US10679511B2 (en) 2016-09-30 2020-06-09 Sony Interactive Entertainment Inc. Collision detection and avoidance
US10357709B2 (en) 2016-09-30 2019-07-23 Sony Interactive Entertainment Inc. Unmanned aerial vehicle movement via environmental airflow
KR20180039821A (en) * 2016-10-11 2018-04-19 삼성전자주식회사 Method for monitoring system control and electronic device supporting the same
US10274325B2 (en) 2016-11-01 2019-04-30 Brain Corporation Systems and methods for robotic mapping
US10001780B2 (en) * 2016-11-02 2018-06-19 Brain Corporation Systems and methods for dynamic route planning in autonomous navigation
AU2017363489B2 (en) * 2016-11-22 2023-09-14 The Toro Company Autonomous path treatment systems and methods
US10723018B2 (en) 2016-11-28 2020-07-28 Brain Corporation Systems and methods for remote operating and/or monitoring of a robot
US10852730B2 (en) 2017-02-08 2020-12-01 Brain Corporation Systems and methods for robotic mobile platforms
US10293485B2 (en) * 2017-03-30 2019-05-21 Brain Corporation Systems and methods for robotic path planning
US20180299899A1 (en) * 2017-04-13 2018-10-18 Neato Robotics, Inc. Localized collection of ambient data
KR102314539B1 (en) * 2017-06-09 2021-10-18 엘지전자 주식회사 Controlling method for Artificial intelligence Moving robot
CN109388093B (en) * 2017-08-02 2020-09-15 苏州珊口智能科技有限公司 Robot attitude control method and system based on line feature recognition and robot
CN107550399B (en) * 2017-08-17 2021-05-18 北京小米移动软件有限公司 Timing cleaning method and device
JP7124280B2 (en) * 2017-09-13 2022-08-24 富士フイルムビジネスイノベーション株式会社 Information processing device and program
WO2019130352A1 (en) * 2017-12-28 2019-07-04 Weismacher Eco Private Limited Self powered and timer based solar panel cleaning system
US10795367B2 (en) 2018-01-11 2020-10-06 Uatc, Llc Mapped driving paths for autonomous vehicle
FR3077721B1 (en) * 2018-02-15 2020-03-06 Mv Robot METHOD FOR CONTROLLING THE OPERATION OF A SOIL TREATMENT ROBOT, EQUIPMENT AND SYSTEM FOR CARRYING OUT SAID METHOD.
US11340630B2 (en) * 2018-03-30 2022-05-24 Brain Corporation Systems and methods for robust robotic mapping
KR102466940B1 (en) * 2018-04-05 2022-11-14 한국전자통신연구원 Topological map generation apparatus for traveling robot and method thereof
US11126199B2 (en) * 2018-04-16 2021-09-21 Baidu Usa Llc Learning based speed planner for autonomous driving vehicles
EP3817900A4 (en) * 2018-07-05 2022-04-13 Brain Corporation Systems and methods for operating autonomous tug robots
CN110858074B (en) * 2018-08-09 2022-07-12 科沃斯机器人股份有限公司 Abnormity prompting method, system, equipment and storage medium
WO2020033808A1 (en) * 2018-08-10 2020-02-13 Brain Corporation Systems, apparatus and methods for removing false positives form sensor detection
JP2020027574A (en) * 2018-08-17 2020-02-20 株式会社東芝 Autonomous mobile device, method, and three-dimensional modeling system
DE102018120577A1 (en) * 2018-08-23 2020-02-27 Vorwerk & Co. Interholding Gmbh Tillage equipment moving automatically within an environment
US10835096B2 (en) * 2018-08-30 2020-11-17 Irobot Corporation Map based training and interface for mobile robots
US11092458B2 (en) * 2018-10-30 2021-08-17 Telenav, Inc. Navigation system with operation obstacle alert mechanism and method of operation thereof
KR20210087994A (en) * 2018-11-06 2021-07-13 가부시키가이샤 니혼 비즈니스 데이터 프로세싱 센터 self-propelled cleaning robot
CN109464074B (en) * 2018-11-29 2021-05-28 深圳市银星智能科技股份有限公司 Area division method, subarea cleaning method and robot thereof
DE102019101337A1 (en) * 2019-01-18 2020-07-23 Vorwerk & Co. Interholding Gmbh System with a first tillage device and a second tillage device and method for operating such a system
WO2020176838A1 (en) * 2019-02-28 2020-09-03 Brain Corporation Systems, and methods for merging disjointed map and route data with respect to a single origin for autonomous robots
CN110045735A (en) * 2019-04-08 2019-07-23 北京优洁客创新科技有限公司 Method, apparatus, medium and the electronic equipment of floor-cleaning machine autonomous learning walking path
US11565411B2 (en) * 2019-05-29 2023-01-31 Lg Electronics Inc. Intelligent robot cleaner for setting travel route based on video learning and managing method thereof
JP7400217B2 (en) * 2019-05-30 2023-12-19 セイコーエプソン株式会社 Robot system and portable teaching device
CN110568848B (en) * 2019-09-10 2022-09-23 东风商用车有限公司 Teaching automatic driving operation system of sweeper
US11958183B2 (en) 2019-09-19 2024-04-16 The Research Foundation For The State University Of New York Negotiation-based human-robot collaboration via augmented reality
KR20210039232A (en) * 2019-10-01 2021-04-09 엘지전자 주식회사 Robot cleaner and method for determining a cleaning path
KR20210040613A (en) 2019-10-04 2021-04-14 삼성전자주식회사 Electronic apparatus and controlling method thereof
US11189007B2 (en) * 2019-12-03 2021-11-30 Imagry (Israel) Ltd Real-time generation of functional road maps
US11584004B2 (en) * 2019-12-17 2023-02-21 X Development Llc Autonomous object learning by robots triggered by remote operators
CN111158475B (en) * 2019-12-20 2024-01-23 华中科技大学鄂州工业技术研究院 Method and device for generating training path in virtual scene
US20230004155A1 (en) * 2020-02-27 2023-01-05 Panasonic Intellectual Property Management Co., Ltd. Information presentation method, information presentation device, and recording medium
KR102348963B1 (en) * 2020-03-10 2022-01-11 엘지전자 주식회사 Robot cleaner and Controlling method for the same
US11797016B2 (en) * 2020-04-13 2023-10-24 Boston Dynamics, Inc. Online authoring of robot autonomy applications
JP7426508B2 (en) * 2020-05-21 2024-02-01 ハイ ロボティクス カンパニー リミテッド Navigation method, navigation device, storage medium and program
CN111938513B (en) * 2020-06-30 2021-11-09 珠海市一微半导体有限公司 Robot obstacle-crossing edgewise path selection method, chip and robot
EP4348374A1 (en) * 2021-06-02 2024-04-10 The Toro Company System facilitating user arrangement of paths for use by autonomous work vehicle
CN113878577B (en) * 2021-09-28 2023-05-30 深圳市海柔创新科技有限公司 Robot control method, robot, control terminal and control system
CN114794959B (en) * 2022-06-28 2023-03-03 山西嘉世达机器人技术有限公司 Control method and device of cleaning machine, cleaning machine and storage medium
EP4434422A1 (en) * 2023-03-24 2024-09-25 Vorwerk & Co. Interholding GmbH Method for operating a self-propelled cleaning device and self-propelled cleaning device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160062361A1 (en) * 2013-05-01 2016-03-03 Murata Machinery, Ltd. Autonomous moving body

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204814A (en) * 1990-11-13 1993-04-20 Mobot, Inc. Autonomous lawn mower
US6718258B1 (en) * 2000-06-08 2004-04-06 Navigation Technologies Corp Method and system for obtaining user feedback regarding geographic data
DE10149115A1 (en) * 2001-10-05 2003-04-17 Bosch Gmbh Robert Object detection device for motor vehicle driver assistance systems checks data measured by sensor systems for freedom from conflict and outputs fault signal on detecting a conflict
US8843244B2 (en) * 2006-10-06 2014-09-23 Irobot Corporation Autonomous behaviors for a remove vehicle
US7957900B2 (en) * 2008-02-08 2011-06-07 Gaurav Chowdhary Tracking vehicle locations in a parking lot for definitive display on a GUI
US8447463B1 (en) * 2008-02-08 2013-05-21 Gaurav Chowdhary Tracking vehicle locations in a parking lot for definitive display on a GUI
JP5215740B2 (en) * 2008-06-09 2013-06-19 株式会社日立製作所 Mobile robot system
US8774970B2 (en) * 2009-06-11 2014-07-08 S.C. Johnson & Son, Inc. Trainable multi-mode floor cleaning device
CN101620802B (en) * 2009-08-05 2011-06-01 北京四维图新科技股份有限公司 Method and device for checking electronic map
CN102155948A (en) * 2010-02-11 2011-08-17 北京四维图新科技股份有限公司 Method and device for randomly detecting and evaluating navigation electronic map quality
KR101395089B1 (en) * 2010-10-01 2014-05-16 안동대학교 산학협력단 System and method for detecting obstacle applying to vehicle
DE102012109004A1 (en) * 2012-09-24 2014-03-27 RobArt GmbH Robots and methods for autonomous inspection or processing of floor surfaces
US8949016B1 (en) * 2012-09-28 2015-02-03 Google Inc. Systems and methods for determining whether a driving environment has changed
JP6132659B2 (en) * 2013-02-27 2017-05-24 シャープ株式会社 Ambient environment recognition device, autonomous mobile system using the same, and ambient environment recognition method
US9816823B2 (en) * 2013-03-15 2017-11-14 Hewlett Packard Enterprise Development Lp Updating road maps
JP6227948B2 (en) * 2013-09-18 2017-11-08 村田機械株式会社 Autonomous traveling floor washer, cleaning schedule data structure, storage medium, cleaning schedule generation method, and program
JP6200822B2 (en) * 2014-01-30 2017-09-20 シャープ株式会社 Learning remote control device, self-propelled electronic device equipped with the same, and remote control learning method
US9538702B2 (en) * 2014-12-22 2017-01-10 Irobot Corporation Robotic mowing of separated lawn areas
CN105167716A (en) * 2015-08-21 2015-12-23 王震渊 Intelligent sweeping robot
AU2016348568A1 (en) * 2015-11-02 2018-06-14 Starship Technologies Oü Device and method for autonomous localisation
US10545229B2 (en) * 2016-04-22 2020-01-28 Huawei Technologies Co., Ltd. Systems and methods for unified mapping of an environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160062361A1 (en) * 2013-05-01 2016-03-03 Murata Machinery, Ltd. Autonomous moving body

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220126588A (en) * 2021-03-09 2022-09-16 동의대학교 산학협력단 Virtual grid-based A-Star route search method and system
WO2024147602A1 (en) * 2023-01-06 2024-07-11 주식회사 케이티 Robot failure analysis method and device

Also Published As

Publication number Publication date
US11467602B2 (en) 2022-10-11
KR102355750B1 (en) 2022-01-26
CN109414142B (en) 2021-12-28
JP6949107B2 (en) 2021-10-13
WO2017197190A1 (en) 2017-11-16
US20170329347A1 (en) 2017-11-16
US20230021778A1 (en) 2023-01-26
EP3454705A1 (en) 2019-03-20
US20190121365A1 (en) 2019-04-25
EP3454705A4 (en) 2019-12-11
CN109414142A (en) 2019-03-01
CA3023552A1 (en) 2017-11-16
JP2019522301A (en) 2019-08-08

Similar Documents

Publication Publication Date Title
US20230021778A1 (en) Systems and methods for training a robot to autonomously travel a route
US10823576B2 (en) Systems and methods for robotic mapping
US11803185B2 (en) Systems and methods for initializing a robot to autonomously travel a trained route
US11602841B2 (en) Systems and methods for remote operating and/or monitoring of a robot
JP6896077B2 (en) Vehicle automatic parking system and method
US10001780B2 (en) Systems and methods for dynamic route planning in autonomous navigation
KR20210066791A (en) Systems and Methods for Optimizing Path Planning for Tight Turns in Robotic Devices
US10860033B2 (en) Movable object and method for controlling the same
US11340630B2 (en) Systems and methods for robust robotic mapping
TW202102959A (en) Systems, and methods for merging disjointed map and route data with respect to a single origin for autonomous robots
US11886198B2 (en) Systems and methods for detecting blind spots for robots
Nüchter et al. Irma3D—An intelligent robot for mapping applications
US20240168487A1 (en) Systems and methods for detecting and correcting diverged computer readable maps for robotic devices

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right