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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000012549 training Methods 0.000 title abstract description 11
- 238000013507 mapping Methods 0.000 claims description 126
- 238000012545 processing Methods 0.000 claims description 52
- 238000004891 communication Methods 0.000 claims description 31
- 230000004807 localization Effects 0.000 claims description 30
- 230000009471 action Effects 0.000 claims description 27
- 238000004140 cleaning Methods 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 7
- 238000005094 computer simulation Methods 0.000 claims description 3
- 230000037237 body shape Effects 0.000 description 29
- 238000005259 measurement Methods 0.000 description 21
- 230000033001 locomotion Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 14
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 13
- 238000011156 evaluation Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000000670 limiting effect Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 239000013598 vector Substances 0.000 description 3
- 241000238876 Acari Species 0.000 description 2
- WHXSMMKQMYFTQS-UHFFFAOYSA-N Lithium Chemical compound [Li] WHXSMMKQMYFTQS-UHFFFAOYSA-N 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000001257 hydrogen Substances 0.000 description 2
- 229910052739 hydrogen Inorganic materials 0.000 description 2
- 230000001976 improved effect Effects 0.000 description 2
- 229910052744 lithium Inorganic materials 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- VNWKTOKETHGBQD-UHFFFAOYSA-N methane Chemical compound C VNWKTOKETHGBQD-UHFFFAOYSA-N 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- NDVLTYZPCACLMA-UHFFFAOYSA-N silver oxide Chemical compound [O-2].[Ag+].[Ag+] NDVLTYZPCACLMA-UHFFFAOYSA-N 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 241001061257 Emmelichthyidae Species 0.000 description 1
- 241001061260 Emmelichthys struhsakeri Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 241001417527 Pempheridae Species 0.000 description 1
- 241000256247 Spodoptera exigua Species 0.000 description 1
- HCHKCACWOHOZIP-UHFFFAOYSA-N Zinc Chemical compound [Zn] HCHKCACWOHOZIP-UHFFFAOYSA-N 0.000 description 1
- BPKGOZPBGXJDEP-UHFFFAOYSA-N [C].[Zn] Chemical compound [C].[Zn] BPKGOZPBGXJDEP-UHFFFAOYSA-N 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- OJIJEKBXJYRIBZ-UHFFFAOYSA-N cadmium nickel Chemical compound [Ni].[Cd] OJIJEKBXJYRIBZ-UHFFFAOYSA-N 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013478 data encryption standard Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000002803 fossil fuel Substances 0.000 description 1
- 239000007789 gas Substances 0.000 description 1
- 239000003502 gasoline Substances 0.000 description 1
- 150000002431 hydrogen Chemical class 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910052987 metal hydride Inorganic materials 0.000 description 1
- 230000001483 mobilizing effect Effects 0.000 description 1
- 239000003345 natural gas Substances 0.000 description 1
- -1 nuclear Substances 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000272 proprioceptive effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 229910001923 silver oxide Inorganic materials 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000009941 weaving Methods 0.000 description 1
- 201000009482 yaws Diseases 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L11/00—Machines for cleaning floors, carpets, furniture, walls, or wall coverings
- A47L11/40—Parts 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/4011—Regulation of the cleaning machine by electric means; Control systems and remote control systems therefor
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L11/00—Machines for cleaning floors, carpets, furniture, walls, or wall coverings
- A47L11/40—Parts 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/4061—Steering means; Means for avoiding obstacles; Details related to the place where the driver is accommodated
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L9/00—Details 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/28—Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
- A47L9/2805—Parameters or conditions being sensed
- A47L9/2826—Parameters or conditions being sensed the condition of the floor
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L9/00—Details 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/28—Installation of the electric equipment, e.g. adaptation or attachment to the suction cleaner; Controlling suction cleaners by electric means
- A47L9/2836—Installation 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/2852—Elements for displacement of the vacuum cleaner or the accessories therefor, e.g. wheels, casters or nozzles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/008—Manipulators for service tasks
- B25J11/0085—Cleaning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1692—Calibration of manipulator
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47L—DOMESTIC WASHING OR CLEANING; SUCTION CLEANERS IN GENERAL
- A47L2201/00—Robotic cleaning machines, i.e. with automatic control of the travelling movement or the cleaning operation
- A47L2201/04—Automatic 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
우선권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
예시로서, 일부 구현예에서, 로봇(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
경로(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
도 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
이전에 언급된 바와 같이, 사용자가 경로(116)을 데모함에 따라, 사용자는, 어디서(예를 들어, 어떤 위치에서) 및/또는 어떤 궤적을 따라서 경로(116)을 따라서 청소할지 (그리고, 이어서 언제 로봇(102)가 경로(106)를 자율적으로 청소할지) 로봇(102)을 훈련하기 위하여, 로봇(102)의 청소 시스템을 턴온하고 턴오프하거나, 또는, 다른 행동들을 수행할 수 있다. 로봇은 이러한 행동들을 메모리(302)에 기록하고 이후에 자율적으로 내비게이션할 때 수행할 수 있다. 이러한 행동들은 터닝, 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트를 승하강시키기, 센서를 이동시키기, 센서를 켜거나 끄기 등과 같은, 로봇(102)이 수행할 수 있는 어떠한 행동들을 포함할 수 있다.As previously mentioned, as the user demonstrates
도 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
도 2로 돌아가서, 부분(204)은 로봇(102)에게 내비게이션 경로(116)를 데모하는 것을 포함한다. 도 1b를 이용한 예시로서, 사용자(604)는, 한정됨이 없이, 경로(116)을 따라 로봇(102)을 운전하거나, 원격 조종하거나, 밀거나, 또는 아니면 제어함으로써 로봇(102)에게 데모할 수 있다. 예를 들어, 사용자(604)는 제어 신호를 로봇(102)에게 전송시킬 수 있다. 로봇(102)은 이동을 위한 명령으로서 이러한 제어 신호들을 수신할 수 있다. 복수의 이러한 이동은, 함께, 데모된 경로를 형성할 수 있다. 이런 식으로, 사용자(604)는 원하는 주행 경로를 로봇(102)에게 데모할 수 있다. 로봇 플로어 청소기의 상황에서, 데모된 경로(116)은 플로어를 청소하기 위한 원하는 경로일 수 있다. 이와 같이, 사용자(604)는 플로어를 청소하는 방법을 로봇에게 훈련시킬 수 있다.Returning to Fig. 2, the
도 2로 다시 돌아가서, 부분(206)은 다시 한번 초기화 위치(104)에 로봇(102)을 위치시키는 것을 포함한다. 초기화 위치(104)로의 로봇(102)의 이러한 제2 배치는 실질적으로 부분(204)의 데모 직후와 같은, 부분(204) 후의 후속시점에서, 또는 몇 시간 후, 며칠 후, 몇 주 후, 또는 사용자(604)가 플로어를 청소하기 원할 때마다와 같은, 얼마 후에 발생할 수 있다.Returning to Fig. 2, the
도 2로 다시 돌아가서, 부분(208)은 자율적인 내비게이션을 초기화하는 것을 포함한다. 일부 경우에, 사용자가 자율 내비게이션을 시작한 후에, 로봇(102)은 데모된 경로(116)와 실질적으로 유사할 수 있는 경로(106)(또는 일부의 경우에 경로(126))를 따라서 주행할 수 있다. 일부 구현예에서, 사용자(604)는 도 11a를 참조하여 기재되는 바와 같이 사용자 인터페이스(318) 상에서 데모된 경로를 선택할 수 있다. 도 1a를 이용한 예시로서, 로봇(102)은 그후 초기화 위치로부터 종료 위치(114)로 자율적으로 경로 또는 경로(106)와 실질적으로 비슷한 경로를 내비게이션할 수 있다.Returning to Fig. 2,
도 3은 일부 구현예에서, 예시적인 로봇(102)의 기능 블록도를 예시한다. 도 3에 예시된 바와 같이, 로봇(102)은 제어기(304), 메모리(302), 전력 공급부(306), 및 동작 유닛(308) 을 포함하며, 이들 각각은 서로, 그리고 서로의 구성 요소 및/또는 서브 구성요소에 동작가능하게 및/또는 통신가능하게 커플링될 수 있다. 제어기(304)는 로봇(102)에 의해 수행되는 다양한 동작들을 제어한다. 특정 구현예가 도 3에 예시되지만, 본 개시의 내용을 제공받는 당업자가 용이하게 알 수 있는 바와 같이, 그 아키텍처가 일부 구현예에서 변경될 수 있음을 알 수 있다.FIG. 3 illustrates, in some implementations, a functional block diagram of an
제어기(304)는 하나 이상의 프로세서들(예를 들어, 마이크로프로세서들) 및 다른 주변 장치들을 포함할 수 있다. 본원에서 사용될 때, 프로세서, 마이크로프로세서, 및 디지털 프로세서는 제한 없이, 디지털 신호 프로세서("DSPs"), 축소 명령 세트 컴퓨터("RISC"), 범용("CISC") 프로세서, 마이크로프로세서, 게이트 어레이(예를 들어, 필드 프로그래머블 게이트 어레이("FPGAs"), 프로그래머블 로직 장치("PLDs"), 재구성가능한 컴퓨터 패브릭("RCFs"), 어레이 프로세서, 보안 마이크로프로세서, 및 주문형 집적 회로("ASICs")와 같은 임의 유형의 디지털 프로세싱 장치를 포함할 수 있다. 이러한 디지털 프로세서는 단일 유니터리 집적 회로 다이 상에 포함되거나 또는 다수의 구성요소에 걸쳐서 분산될 수 있다.
제어기(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
동작 유닛(308)은 본 개시에 기재된 다양한 동작들을 수행하기 위하여 제어기(304) 또는 다른 제어기에 결합될 수 있다. 일부 구현예에서, 동작 유닛들(308)에서의 모듈들 중 하나 이상이 포함될 수 있거나, 어느 것도 포함되지 않을 수 있다. 본 개시를 통하여, 다양한 제어기 및/또는 프로세서가 참조된다. 일부 구현예에서, 단일 제어기(예를 들어, 제어기(304))가 기재된 다양한 제어기 및/또는 프로세서로서 기능할 수 있다. 다른 구현예에서, 동작 유닛(308) 중 하나 이상에 특별히 사용되는 제어기 및/또는 프로세서와 같ㅇ느, 상이한 제어기들 및/또는 프로세서들이 사용될 수 있다. 제어기(304)는 동작 유닛(308)에 전력 신호, 제어 신호, 센서 신호, 질의 신호, 상태 신호, 데이터 신호, 전기 신호 및/또는 이산 및 아날로그 신호를 포함한, 어떠한 다른 바람직한 신호와 같은 신호를 전송하거나 및/또는 수신할 수 있다. 제어기(304)는 동작 유닛(308)을 조정하거나 및/또는 관리할 수 있거나, 및/또는 타이밍을 (예를 들어, 동기적으로 또는 비동기적으로) 설정하거나, 켜거나 끄거나, 전력 예산을 제어하거나, 네트워크 명령들을 수신/전송하거나, 및/또는 업데이트하거나, 펌웨어를 업데이트하거나, 질의 신호를 전송하거나, 상태를 수신 및/또는 전송하거나, 및/또는 로봇(102)의 특징(features)을 실행하기 위한 어떠한 동작들을 수행할 수 있다.The
동작 유닛(308)은 로봇(102)를 위한 기능을 수행하는 다양한 유닛을 포함할 수 있다. 예를 들어, 동작 유닛(308)의 유닛들은 매핑 및 로컬라이제이션 유닛(312), 센서 유닛(314), 맵 평가 유닛(324), 액추에이터 유닛(318), 통신 유닛(316), 내비게이션 유닛(326), 및 사용자 인터페이스 유닛(322)을 포함할 수 있다. 동작 유닛(308)은 로봇의 다양한 기능성을 제공하는 다른 유닛을 또한 포함할 수 있다. 일부 경우에, 동작 유닛(308)의 유닛들은 소프트웨어로 또는 하드웨어로 또는 소프트웨어와 하드웨어로 인스턴스화될 수 있다. 예를 들어, 일부 경우에, 동작 유닛(308)의 유닛들은 제어기에 의해 실행되는 컴퓨터 구현 명령들을 포함할 수 있다. 일부 경우에, 동작 유닛(308)의 유닛들은 하드코딩된 로직을 포함할 수 있다. 예를 들어, 일부 경우에, 동작 유닛(308)의 유닛들은 제어기에 의해 실행되는 컴퓨터 실행 명령들, 및 하드코딩된 로직 모두를 포함할 수 있다. 동작 유닛(308)이 소프트웨어로 적어도 부분적으로 구현되는 경우, 동작 유닛(308)은 하나 이상의 기능성을 제공하도록 구성된 코드의 유닛들/모듈들을 포함할 수 있다.The
일부 구현예에서, 센서 유닛(314)은 로봇(102) 내에서 및/또는 그 주위에서 특징을 검출할 수 있는 시스템을 포함할 수 있다. 센서 유닛(314)은 로봇(102)의 내부 또는 외부에 있는 센서를 포함할 수 있거나 및/또는 부분적으로 내부 및/또는 부분으로 외부에 있는 구성요소를 가질 수 있다. 센서 유닛(314)은 소나, 라이다, 레이다, 레이저, 비디오 카메라, 적외선 카메라, 3D 센서, 3D 카메라, 및/또는 본 분야에 알려진 어떠한 다른 센서와 같은 외부 수용성 센서를 구비할 수 있다. 센서 유닛(314)은 가속계, 관성 측정 유닛, 주행거리 측정계, 자이로스코프, 속도계 등과 같은 자기 수용성(proprioceptive) 센서를 또한 포함할 수 있다. 일부 구현예에서, 센서 유닛(314)은 미가공 측정치(예를 들어, 전류, 전압, 저항, 게이트 로직 등) 및/또는 변환된 측정치(예를 들어, 거리, 각도, 장애물에서 검출된 지점 등)을 수집할 수 있다.In some implementations, the
일부 구현예에서, 매핑 및 로컬라이제이션 유닛(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
매핑 및 로컬라이제이션 유닛(312)은 맵(700)에 로봇(102)을 로컬라이징하기 (예를 들어, 위치시키기) 위하여 센서 유닛(314)으로부터 센서 데이터를 또한 수신할 수 있다. 일부 구현예에서, 매핑 및 로컬라이제이션 유닛(312)은 로봇(102)로 하여금 맵(700)의 좌표에서 자신을 로컬라이징하도록 하는 로컬라이제이션 시스템 및 방법을 포함할 수 있다. 센서(314)로부터의 데이터에 적어도 부분적으로 기초하여, 매핑 및 로컬라이제이션 유닛(312)은 환경(100)의 맵(700)의 좌표에서 로봇(102)의 위치를 추론할 수 있다. 맵(700)의 좌표로 로봇(102)을 로컬라이징하는 능력은 로봇(102)로 하여금, 맵(700)을 이용하여 환경을 내비게이션하게 하여 로봇(102)이 매핑된 경로(716) 상에 있는 위치를 근사화가능하게 할 수 있다.The mapping and
일부 구현예에서, 통신 유닛 (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,
본원에서 사용될 때, 네트워크 인터페이스는, 제한 없이, 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
일부 구현예에서, 액추에이터 유닛(318)은 전기 모터, 가스 모터, 구동식 자석 시스템, 솔레노이드/래칫 시스템, 압전 시스템(예를 들어, 인치웜 모터), 자기제한적 요소, 제스티큘레이션, 및/또는 본 분야에 알려진 액추에이터를 구동하는 임의의 방식과 같은, 액추에이터를 포함할 수 있다. 예시로서, 이러한 액추에이터는 로봇(102)이 환경(100) 또는 어떠한 다른 환경을 통하여 내비게이션할 수 있도록 휠 또는 다른 변위 가능한 드라이버(displacement enabling drivers)(예를 들어, 기계적 레그, 제트 엔진, 프로펠러, 유압 장치 등)를 구동할 수 있다. 일부 경우에, 액추에이터 유닛(318)은 행동들 및/또는 플로어 청소를 위한 브러시를 모빌라이징하기, (예를 들어, 위로, 아래로, 좌로, 우로, 전방으로, 후방으로) 스퀴지를 이동시키기, 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트를 승하강시키기, 센서 유닛(314)의 카메라 및/또는 어떠한 센서를 켜기, 및/또는 로봇(102)이 행동을 수행하기를 원하는 어떠한 이동과 같은, 행동 특정의 작업들을 위해 구성된 액추에이터들을 포함할 수 있다.In some embodiments, the
일부 구현예에서, 사용자 인터페이스 유닛(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
일부 구현예에서, 맵 평가 유닛(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
일부 구현예에서, 내비게이션 유닛(326)은 로봇(102)이 내비게이션할 방향 명령을 제공하도록 구성된 구성요소 및/또는 소프트웨어를 포함할 수 있다. 내비게이션 유닛(326)은 매핑 및 로컬라이제이션 유닛(312)에 의해 발생되는 맵 및 로컬라이제이션 정보, 센서 유닛(314) 및/또는 다른 동작 유닛(308)로부터의 센서 데이터를 프로세싱할 수 있다. 예를 들어, 내비게이션 유닛(326)은 매핑 및 로컬라이제이션 유닛(312)으로부터 맵(700)을 수신할 수 있다. 내비게이션 유닛(326)은 경로(716)를 포함하여, 맵(700) 내에서 로봇(102)의 위치를 적어도 부분적으로 나타낼 수 있는 매핑 및 로컬라이제이션 유닛(312)로부터 로컬라이제이션 정보를 또한 수신할 수 있다. 내비게이션 유닛(326)은 로봇(102)의 주위의 물체를 적어도 부분적으로 표시할 수 있는 센서 유닛(314)로부터 센서 데이터를 또한 수신할 수 있다. 맵, 위치, 및 센서 데이터 중의 하나 이상을 이용하여, 내비게이션 유닛(326)은 로봇(102)에게 어디(예를 들어, 전방, 좌측, 우측, 후방 등)로 내비게이션해야 할지를 명령할 수 있다.In some implementations, the
일부 구현예에서, 전력 공급부(306)은, 한정됨이 없이, 리튬, 리튬 이온, 니켈-카드뮴, 니켈-메탈 하이드라이드, 니켈-수소, 탄소-아연, 산화은, 아연-탄소, 아연-공기, 산화수은, 알칼라인, 또는 본 분야에 알려진 어떠한 다른 형태의 배터리를 포함하는 하나 이상의 배터리를 포함할 수 있다. 특정 배터리들은, (예를 들어, 공명 회로 및/EEH는 공명 탱크 회로에 의한) 무선으로 및/또는 외부 전원에 플러깅하는 것과 같이, 충전식일 수 있다. 전력 공급부(306)는 또한 태양, 바람, 물, 핵, 수소, 가솔린, 천연 가스, 화석 연료, 기계적 에너지, 증기, 및/또는 어떠한 전력원을 전기로 변환하는 벽 소켓 및 전자 장치를 포함하는, 어떠한 에너지 공급기일 수 있다.In some embodiments, the
일부 구현예에서, 동작 시스템(310)은 메모리(302), 제어기(304), 전력 공급부(306), 동작 유닛(308)에 있는 모듈들, 및/또는 로봇의 임의의 소프트웨어, 하드웨어 및/또는 피처를 관리하도록 구성될 수 있다. 예를 들어, 그리고 한정됨이 없이, 동작 시스템(310)은 로봇(102)을 위한 하드웨어 자원을 관리하는 장치 드라이버를 포함할 수 있다.In some implementations, the
앞에서 언급한 바와 같이, 로봇(102)의 상술한 구성요소들 중 어느 것은 소프트웨어 및/또는 하드웨어로 인스턴스화될 수 있다. 예를 들어, 유닛/모듈은 하드웨어이거나 및/또는 컴퓨터 상에서의 코드일 수 있다.As noted above, any of the above-described components of the
도 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
일부 구현예에서, 로봇(102)은 도 5a에 예시된 사용자 인터페이스(500)에서 입력(574)으로부터 입력을 수신함으로써 티칭 단계(4214)를 시작할 수 있다. 사용자 인터페이스(500)은 모바일 장치, 특수 장치, 스크린을 가지며 사용자 입력을 수신하도록 구성된 어떠한 다른 장치일 수 있는, 디스플레이(576) 상에 나타날 수 있다. 일부 경우에, 디스플레이(576)는 로봇(102)의 사용자 인터페이스 유닛(322)의 부분일 수 있다. 일부 경우에, 디스플레이(576)은, 한정됨이 없이, 로봇(102)의 통신 유닛(316)을 통하여 통신 가능하게 결합되는 것과 같이, 로봇(102)에 통신 가능하게 결합되는 별도의 디스플레이일 수 있다. 입력(574)은 버튼, 무선 버튼, 풀다운 메뉴, 텍스트 입력, 및/또는 사용자가 본 분야에 알려진 정보 및/또는 명령을 입력할 수 있는 어떠한 방식을 포함할 수 있다. 사용자 인터페이스(500)는 본 개시에서 추후에 기술될, 자율 단계(416)를 개시하기 위하여 사용될 수 있는, 입력(572)를 또한 포함할 수 있다. 입력(572)은 버튼, 무선 버튼, 풀다운 메뉴, 텍스트 입력, 또는 본 분야에서 알려진 정보 및/또는 명령을 사용자가 입력하는 어떠한 방식을 포함할 수 있다.In some implementations, the
도 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
일부 구현예에서, 카메라는 천장에 배치되며, 카메라는 로봇(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
일부의 경우에, 사용자(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
일부 구현예에서, 초기화 위치(104)로부터, 로봇(102)은 초기화 위치(104)에서의 로봇(102)의 존재를 검출할 수 있고/있거나 하나 이상의 주변 물체에 대한 로봇(102)의 상대적 위치 및/또는 방향을 결정할 수 있다. 이러한 구현예에서, 로봇(102)이 초기화 위치(104)에 존재하는 것을 검출하고 그 방향 및/또는 위치를 초기화하기 위해, 로봇(102)은 자신의 센서(센서 유닛(314) 등)를 적어도 부분적으로 사용하여 주위를 센싱할 수 있다. 이러한 센서는 물체(물품, 벽 등), 플로어, 천장, 사람과 사물, 표시, 표면 등과 같은 주위 환경의 특성을 센싱할 수 있다. 그 주변에서의 센싱된 물체의 상대적 위치 및/또는 방향을 통해 로봇은 초기화 위치에 대한 방향을 얻을 수 있다.In some embodiments, from the
예시적인 예로서, 도 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
로봇(102)은 하나 이상의 전방면(502), 우측면(508), 좌측면(506) 및 후방면(504)을 따라 배치된 하나 이상의 센서(314)의 일부이거나/이고 본 개시에서 설명하는 임의의 센서와 실질적으로 유사할 수 있는) 센서(560A - 560D)를 가질 수 있다. 본 개시에서 설명한 센서 유닛(314)의 일부이고/이거나 어느 센서일 수 있음)를 포함할 수 있다. 센서(560A - 560D)는 외부 수용성 센서를 포함할 수 있다. 일부의 경우, 센서(560A - 560D) 각각은 주위 환경(100)의 상이한 특성들을 검출할 수 있는 다수의 센서들을 포함할 수 있다. 또한, 로봇(102)은 외부 수용성 센서를 포함할 수 있는 하나 이상의 센서(568A, 568B)를 가질 수 있다. 상이한 유형의 센서 및/또는 상이한 센서 유효범위(예컨대, 더 좁거나 넓은 범위의 주위 환경(100)을 검출하기 위한 센서 배치)가 요망되는 경우, 센서들을 도 5b 내지 도 5d에 도시된 것보다 더 많이 이용하거나 상이한 위치에 사용될 수 있음을 당업자는 유의해야 할 것이다.The
센서(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
예시적인 소나 센서는, 확산이 로봇(102)으로부터의 원하는 영역 또는 범위를 커버하도록 센서(560A - 560D) 중 하나 이상으로서 배치될 수 있다. 측정(거리 및/또는 각도 측정 등)은 센서(560A - 560D)에 대해 또는 로봇(102)의 질량 중심 또는 기타 지정된 위치 등과 같은 로봇(102) 몸체 상의 기타 위치에 대해 수행될 수 있다. Exemplary sonar sensors may be deployed as one or more of the
도 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
일부 구현예에서, 하나 이상의 센서(560A - 560D)는 물체(512)의 지점(590)에 대한 거리(516)를 측정 또는 근사화할 수 있다. 예를 들어, 센서(560A)는 방출된 음파와 그 음파가 반사되어 센서(560A)로 복귀하는 시간 사이의 시간차를 측정함으로써 거리를 측정할 수 있는 소나 센서일 수 있으며, 방출된 음파와 반사된 음파의 시간차는 음속을 사용하여 거리로 환산될 수 있다.In some implementations, the one or
일부 구현예에서, 하나 이상의 센서(560A-560D)는 추후 설명되는 바와 같이, 맵(700)을 생성할 수 있으며, 맵(700)은 물체(512)뿐만 아니라, 일부 구현예에서, 학습된 경로를 포함한다. 거리(516)는 예를 들어, 맵(700) 상의 상대 단위를 사용하거나 맵(700)의 상대 단위를 절대 거리 측정치로 환산함으로써, 맵(700) 상에서 취한 근사 측정에 적어도 부분적으로 기초하여 근사화될 수 있다. In some implementations, the one or
로봇(102)은 또한 초기화 위치(104)에서 그 방향을 근사시킬 수 있다. 일부 구현예에서, 로봇(102)은 초기화 위치(104), 물체(512), 센서(560A - 560D), 로봇(102)의 질량 중심 또는 다른 소정의 위치에서의 지점에 대한 기준점에 상대 각도(514)를 근사시킬 수 있다. 각도(514)는 도(degree), 라디안 또는 기타 단위로 측정할 수 있다. 일부 구현예에서, 각도(514)는 수평면(예를 들어, 전술한 거리(516)의 직각 좌표계 또는 다른 측정치)과 같은 2D 평면에 대해 측정될 수 있다. 일부 구현예에서, 로봇(102)에 대한 물체(512)의 하나 이상의 롤(roll), 요(yaw), 및 피치와 같은 추가 각도가 측정될 수 있다.The
예시적인 예로서, 로봇(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
일부 구현예에서, 로봇(102)은 물체(512) 및/또는 지점(590)에 대한 자신의 위치 및/또는 방향(예를 들어, 거리(516) 및/또는 각도(514))을 메모리(302) 에 기록하고, 물체(512) 및/또는 지점(590)에 대한 자신의 위치를 초기화 위치(104)에 연관시킨다. 이러한 방식으로, 로봇(102)은 이후에 초기화 위치(104)로 복귀할 때 초기화 위치(104)를 검출하고 물체 (512) 및/또는 지점(590)에 대한 위치를 초기화할 수 있다. 초기화 위치(104)의 검출 및 위치의 초기화는 매핑 및 로컬라이제이션 유닛(312)에 의해 수행될 수 있다.In some implementations, the
도 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
도 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
복수의 물체(512, 546, 548, 550)를 사용하여 초기화 위치(104)를 검출하는 것은 로봇(102)이 초기화 위치(104)를 더욱 정밀하게 위치시킬 수 있도록 한다는 점에서 바람직할 수 있다. 또한, 복수의 물체들(512, 546, 548)을 사용하는 것은 초기화 위치 (104)에 추가적인 고유성을 제공할 수 있는데, 이는 초기화 위치(104)를 검출하는 로봇(102)을 보조할 수 있고 및/또는 로봇(102)이 다른 위치를 초기화 위치(104)로 잘못 결정할 가능성을 감소시킨다. Detecting the
로봇(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
바람직하게는, 센서(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
도 4의 방법(400)으로 돌아가서, 부분(404)에서, 로봇(102)은 사용자의 제어 하에서 경로(116) 및 환경(100)의 맵(700)을 기록하면서 경로(116)(도 1b에 도시됨)를 따라 주행한다. 도 6a는 예시적인 사용자(604)가 예시적인 로봇(102)을 제어하는 예의 측면도를 예시한다. 사용자(604)는 관리인, 관리자 또는 로봇(102)을 사용할 수 있는 임의의 다른 사람일 수 있다. 도시된 바와 같이, 로봇(102)은 상점, 창고, 사무실 빌딩, 주택, 저장 시설 등의 플로어를 청소하도록 구성된 플로어 청소기일 수 있다. 따라서, 로봇(102)의 아래 및/또는 주위의 플로어를 청소하도록 구성된 브러시(608)를 가질 수 있다.Returning to
로봇(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
일부 구현예에서, 자율적으로 내비게이션하는 동안 행동 및/또는 액추에이터 명령이 맵(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
당업자는 로봇(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
또한, 본 개시에서 설명된 바와 같이, 로봇(102)은 플로어 청소기가 아닐 수 있다. 제한없는 추가적인 예시를 위해, 도 6c는 로봇(102)의 몸체 형태의 일부 추가 예들을 예시한다. 예를 들어, 몸체 형태(664)는 로봇(102)이 직립식 진공 청소기인 예를 도시한다. 몸체 형태(666)는 로봇(102)이 인체와 실질적으로 유사한 외관을 갖는 휴머노이드 로봇인 예를 예시한다. 몸체 형태(668)는 로봇(102)이 프로펠러를 갖는 드론인 예를 예시한다. 몸체 형태(670)은 로봇(102)이 휠 및 객실을 갖는 차량 형상을 갖는 예를 예시한다. 몸체 형태(672)는 로봇(102)이 로버(rover)인 예를 예시한다.In addition, as described in this disclosure, the
도 6a를 참조하면, 로봇(102)은 사용자(604)에 의한 제어를 위한 다양한 방식으로 구성될 수 있다. 예시된 바와 같이, 사용자(604)는 스티어링 휠(610)을 사용하여 로봇(102)을 조향하면서 로봇의 뒤에서 걸을 수 있다. 다른 구현예에서, 로봇(102)은 사용자(604)가 시트 또는 스탠딩 플랫폼 상에 타서 로봇(102)을 제어할 수 있는 탑승형 플로어 청소기(도시되지 않음)일 수 있다. 일부 구현예에서, 사용자(604)는 무선 원격 장치, 모바일 장치, 조이스틱 또는 당업계에 공지된 임의의 다른 장치와 같은 원격 제어기로 원격으로 로봇(102)을 제어할 수 있다. 이러한 제어는 좌회전, 우회전, 전진(예를 들어, 가속 페달의 사용 또는 로봇(102)에게 전진하라는 지시), 후진(예를 들어, 후진 페달 또는 로봇(102)에게 후진하라는 지시), 온/오프, 브러시 상승/하강, 물 온/오프 등을 포함한다. 일부 구현예에서, 사용자(604)는 로봇(102)의 이동을 구동하고, 브러시를 상승시키거나 하강시키고, 물을 온/오프하는 액추에이터 유닛(318)을 제어할 수 있다. 다른 구현예에서, 로봇(102)은 플로어 청소기가 아닐 수 있지만, 본 개시에 기재된 여타의 다른 로봇일 수 있다.Referring to FIG. 6A, the
도 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
도 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
일부 구현예에서, 맵(700)의 픽셀은 하나 이상의 상태를 가질 수 있으며, 픽셀 상태는 픽셀에 의해 표현되는 환경(100) 내의 위치/장소의 특성의 적어도 일부를 표시한다. 예를 들어, 맵(700)의 픽셀은 바이너리일 수 있는데, 여기서 제 1 픽셀 상태(예를 들어, 픽셀 값)는 적어도 부분적으로 장애물없는(예를 들어, 내비게이이션 가능) 위치를 표시하고, 제 2 픽셀 상태는 적어도 부분적으로 차단(예: 내비게이션 불가) 위치를 표시한다. 예시로서, 영(0)의 픽셀 값은 장애물없는(clear) 위치를 적어도 부분적으로 표시할 수 있고, 하나(1)의 픽셀 값은 차단 위치를 적어도 부분적으로 표시할 수 있다.In some implementations, a pixel of
일부 구현예에서, 전술한 바이너리 상태를 대신하여 또는 이에 부가하여, 맵(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
맵(700)의 픽셀은 또한 하나 이상의 값 또는 픽셀 상태를 저장할 수 있다. 예를 들어, 맵(700)의 각각의 픽셀은 벡터 또는 매트릭스에 저장된 값과 같은 복수의 값을 저장할 수 있다. 이들 값은 위치가 경로(716)를 따라 지점(예를 들어, 픽셀)에서 측정될 때 로봇(102)의 위치/자세(예를 들어 위치 및/또는 방향 포함)를 적어도 부분적으로 표시하는 값을 포함할 수 있다. 이러한 값들은 로봇(102)이 위치/장소를 청소해야 하는 지의 여부 또는 로봇(102)에 의해 취해지는 다른 행동들을 포함할 수 있다The pixels of the
로봇(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
로봇(102)이 환경(100)을 통해 내비게이션하는 것과 실질적으로 유사한 방식으로 로봇 표시자(702)가 맵(700)을 따라 진행함에 따라, 로봇(102)은 맵(700)에 경로(716)를 기록할 수 있다. 바람직하게는, 일부 구현예에서, 맵(700)과 경로(716)는 함께 같이 생성되며, 로봇(102)은 실질적으로 유사한 시간에 환경(100)을 매핑하고, 경로(716)를 기록한다. 따라서, 일부 구현예에서, 맵(700)과 경로(716)는 함께 쌍으로 형성될 수 있으며, 여기서 각각의 기록된 경로는 특정 맵과만 저장된다.The
경로(116)의 일부인 각각의 위치에서, 로봇(102)은 맵(700) 내의 경로(716) 상의 대응 픽셀의 상태를 픽셀이 내비게이션 경로의 일부임을 나타내는 픽셀 상태로 변경할 수 있다. 동시에, 로봇(102)은 도 5a - 5e와 관련한 센서들(560A-560D)을 참조하여 기술된 것과 실질적으로 유사한 시스템들 및 방법들을 사용하여 하나 이상의 센서들(560A-560D)을 사용하여 물체들에 대한 로봇의 위치 및/또는 방향을 측정할 수 있다. 이러한 방식으로, 로봇(102)은 맵(700)을 채우기 위해 선반 또는 벽과 같은 대상물에 대한 로봇(102)의 위치 및/또는 방향을 검출 및/또는 측정할 수 있으며, 로봇(102)은 이러한 검출 및 측정에 적어도 부분적으로 기초하여 픽셀 상태를 변경할 수 있다.At each location that is part of
로봇(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
로봇(102)은 픽셀 단위로 맵(700)을 채우기 때문에, 맵(700)은 소정의 아티팩트(artifacts)를 가질 수 있다. 예를 들어, 매끄럽게 나타나는 벽은 센서에 수신된 신호에 적어도 부분적으로 기초하여 들쭉날쭉하게 나타날 수 있다. 예를 들어, 센서(560A - 560D)가 소리, 빛 또는 다른 요소들의 표면으로부터의 반사율에 의존하는 소나(sonar), 라이다(lidar) 또는 기타 센서를 포함하는 경우, 표면 내에 가변성이 있을 수 있다. 또한, 모션 아티팩트 그리고 기타 아티팩트 및/또는 왜곡이 있을 수 있다.Because the
일부 경우, 센서(560A - 560D)는 특정 영역들을 센싱하지 못할 수 있다. 예를 들어, 물체는 영역을 센싱하는 로봇(102)의 기능을 방해할 수 있거나, 상기 영역이 사각 지대(예를 들어, 센서의 측정 범위에 의해 커버되지 않는 장소)에 나타날 수 있다. 다른 비한정적인 예로서, 박스(706)는 로봇(102)이 맵(700) 상에서 터닝(708)할 때 로봇(102)에 의해 취해진 측정치를 맵(700) 상에 하이라이트로 표시한다. 로봇(102)이 회전함에 따라, 센서(560A - 560D)는 박스(706)에 의해 백색으로 표시된 영역(예컨대, 내비게이션 위치)을 측정하지만, 어떤 물체는 센서의 범위를 방해하여 박스(706)에 도시된 바와 같은 길고 파쇄된 외관을 생성한다.In some cases,
로봇(102)이 초기화 위치(104)에서 종료 위치(114)까지 경로(116)를 따라 주행함에 따라, 로봇(102)은 로봇(102)의 센서들의 범위 내에서 경로(116) 및 경로(116)의 주위 환경(100)을 포함하는 맵(700)을 생성할 수 있다. 도 7b는 일단 완료된 예시적인 맵(700)을 나타낸다. 바람직하게는, 로봇(102)은 매핑된 경로(716)를 기록하고 맵(700)의 매핑된 경로(716)의 주위 환경을 하나의 데모로 매핑할 수 있다. 따라서, 맵(700)은 로봇(102)이 하나의 데모만큼 자율적으로 경로(116)(또는 경로(116)와 실질적으로 유사한 경로)를 다시 내비게이션할 수 있게 한다.As the
다른 최신 시스템 및 방법에서는 사용자가 맵을 업로드하거나, 맵에 경로를 그리거나, 환경을 매핑하는 다양한 데모를 이용하도록 요구될 수 있다. 이러한 시스템 및 방법은 사용자에게 부담스러울 수 있다. 예를 들어, 이러한 시스템 및 방법은 사용자가 작업할 이들 시스템 및 방법에 대해 만족스러운 방법으로 모든 단계들을 수행할 수 있더라도, 번거롭고 낮은 사용자 경험을 제공할 수 있다. 로봇(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
다시 도 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
로봇(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
예시적인 예로서, 일부 구현예들에서, 로봇(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
다른 예시적인 예로서, 일부 구현예에서, 로봇(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
로봇(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
예시적인 예로서, 로봇(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,
다른 예시적인 구현예에서, 도 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
마스크(870)는 맵(700)을 가로질러 그리고 그 주위를 스위핑하고 마스크(870)의 내용을 맵(700)의 내용과 비교함으로써 맵(700)을 검색할 수 있다. 예를 들어, 마스크(870)는 매트릭스일 수 있고, 매트릭스의 각 셀은 맵(700)의 픽셀 상태(예컨대, 장애물없는 (내비게이션이 가능한) 위치, 차단(예컨대, 내비게이션이 불가능한) 위치, 알려지지 않은 위치, 주행하면 안되는 위치, 내비게이션 경로의 일부, 주행한 위치, 주행하지 않은 위치, 물체, 물 및/또는 본 개시에서 설명된 맵(700)의 임의의 다른 카테고리들)에 적어도 부분적으로 대응하는 값을 갖는다. 매트릭스의 셀(872) 또는 임의의 다른 셀(예를 들어, 우측 상부 코너 셀, 하부 좌측 코너 셀, 하부 우측 코너 셀, 중간 셀 또는 마스크(870)의 임의의 다른 셀)은 맵(700)의 하나 이상의 또는 모든 픽셀과 정렬될 수 있다. 이러한 셀들이 맵(700)의 각각의 픽셀과 정렬됨에 따라, 마스크(870)의 다른 셀 또한 맵(700)의 주변 픽셀과 정렬될 수 있다. 맵(700)으로부터 정렬된 각각의 픽셀은 마스크(870)의 대응하는 픽셀과 비교되어 마스크(870)와 픽셀이 정렬되는 맵(700)의 영역 사이의 유사성을 검출할 수 있다.The
예시된 바와 같이, 마스크(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,
마스크(870)가 맵(700)에서 마스크(870)의 셀 값들과 실질적으로 매칭하는(예를 들어, 70 %, 80 %, 90 % 또는 그 이상의 소정의 매칭 임계치를 갖는) 픽셀들의 그룹을 식별하는 경우, 마스크(870) 구조 내에서, 로봇(102)은 표시(예를 들어, 메시지, 값 또는 명령)를 생성할 수 있으며, 로봇(102)은 마스크(870)와 맵(700) 사이의 매칭을 발견할 수 있으며 및/또는 이러한 매칭의 위치를 발견할 수 있다. 일부 경우, (예를 들어, 발견될 소정 개수의 예상되는 아이템에 기초하여) 너무 적은 매칭이 발견되는 경우, 로봇(102)은 맵(700)의 매핑 오류를 검출할 수 있으며 및/또는 맵(700)이 양호하지 않은 것으로 결정할 수 있다. 일부 경우, (예를 들어, 마스크(870)가 바람직하지 않은 구조를 식별하도록 구성된 경우), 로봇(102)은 맵(700)의 매핑 오류를 검출할 수 있고 및/또는 맵(700)이 양호하지 않은 것으로 결정할 수 있다. 어느 경우이든, 로봇(102)은 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 사용자(604)에게 경로를 다시 데모하도록 프롬프트할 수 있다.The
다른 예로서, 일부 구현예들에서, 로봇(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
매핑 오류를 검출하고 및/또는 맵(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
유사하게, 경로 불연속부(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
일부 경우, 전술한 소정 크기의 임계값 및 소정 수의 임계값을 조합하여 사용되는 하이브리드 임계값이 사용될 수 있다. 예를 들어, 소정 수의 임계값을 초과하면 맵(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
도 9b는 예시적인 매핑된 부분(920)의 예시적인 물체 부분(926A)과 예시적인 물체 부분(926B) 간의 예시적인 물체 불연속부(924)를 예시한다. 매핑된 부분(920)은 맵(700)의 일부일 수 있다. 예시된 바와 같이, 경로 부분(922)은 경로 불연속부를 갖지 않을 수 있다. 그러나, 물체 부분(926A)과 물체 부분(926B) 사이에는, 물체의 일부분이 매핑되지 않은 물체 불연속부(924)가 존재할 수 있다. 물체 불연속부(924)는 매핑되어야 하는 위치에서 맵 부분(924)의 매핑되지 않은 부분일 가능성이 있기 때문에, 물체 불연속부(924)는 오류를 나타낼 수 있다. 일부 경우, 로봇(102)은 경로 부분(922)을 통해 내비게이션할 때 로봇(102)이 그 센서로 물체의 존재를 검출할 수 있기 때문에, 물체 불연속부(924)는 로봇(102)의 내비게이션에 문제가 되지 않을 수 있다. 그러나, 물체 불연속부(924)는 그 자체로 또는 다른 불연속부 및/또는 매핑 오류의 다른 특성과 함께 매핑 오류 및/또는 불량 맵을 나타낼 수 있다.9B illustrates an
도 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
유사하게, 물체 불연속부(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
일부 경우에, 상술한 소정의 크기 임계치와 소정의 수 임계치를 조합하여 사용되는 경우에 하이브리드 임계치들이 사용될 수 있다. 예를 들어, 맵(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
도 9c는 경로 불연속부 및 물체 불연속부 모두를 포함하는 불연속부(934)를 갖는 예시적인 매핑된 부분(920)을 예시한다. 매핑된 부분(920)은 맵(700)의 일부일 수 있다. 불연속부(934)는 경로 부분(930)와 경로 부분(932) 사이의 불연속일 수 있다. 불연속부(934)은 또한 물체(936)의 불연속일 수 있다. 도 9a 내지 도 9c 를 참조하여 설명한 바와 같이, 경로 불연속부 및 물체 불연속부 모두는 매핑 오류 및/또는 불량 맵 품질을 적어도 부분적으로 나타낼 수 있다. 로봇(102)이 맵(700)을 평가할 때, 로봇(102)은 매핑 오류를 검출하고 및/또는 맵(700)의 품질을 결정할 때 경로 불연속부 또는 물체 불연속부 또는 둘 다를 함께 고려할 수 있다.9C illustrates an exemplary mapped
다른 예로서, 일부 구현예에서, 로봇(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
중첩은 또한 적어도 부분적으로는 픽셀 또는 픽셀 영역 내 및/또는 주변에서 검출된 물체(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
오버랩을 인식함으로써 식별 가능한 매핑 오류의 다른 예로서, 로봇(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
다른 예로서, 로봇(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
다른 예로서, 일부 구현예에서, 로봇(102)은 폐루프(예를 들어, 종료 위치가 초기화 위치와 실질적으로 유사함)에서 주행하도록 구성될 수 있다. 로봇(102)은 항상 폐루프 내에서 주행할 수 있는 것은 아니라는 점에 유의해야 한다. 예를 들어, 도 1a는 초기화 위치(104)가 종료 위치(114)와 실질적으로 동일한 위치가 아닌 것으로 예시되었기 때문에 폐루프를 형성하지 않는 경로를 예시한다. 도 11a는 위치(1102)가 초기화 위치 및 종료 위치인 예시적인 폐루프 경로(1104)에서 이동하는 로봇(102)을 도시한다. 이 경우에, 경로(1104)의 맵이 대략적으로 위치(1102)에 초기화 위치 및 종료 위치를 갖지 않으면, 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵의 품질이 좋지 않은 것으로 결정할 수 있다. 어떤 경우에는, 미리 결정된 거리 임계치가 존재할 수 있다(예를 들어, 메모리(302)에 저장됨). 매핑된 초기화 위치 및 종료 위치가 미리 결정된 거리 임계치 내에 있지 않으면(예를 들어, 초기화 위치와 종료 위치 사이의 거리가 미리 결정된 거리 임계치를 초과하지 않는 경우), 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵이 낮은 품질이라고 결정할 수 있다. 이 미리 결정된 거리 임계치는 맵의 크기(예를 들어, 미리 결정된 거리 임계치는 맵 크기의 백분율 일 수 있음), 센서 해상도 및/또는 충실도, 및/또는 다른 인자에 적어도 부분적으로 기초하여 결정될 수 있다.As another example, in some implementations, the
다른 예시적인 구현예로서, 로봇(102)은 메모리(302)에 저장된 환경의 업로드된 맵을 가질 수 있다. 로봇(102)은 맵(700)을 업로드된 맵과 비교할 수 있다. 예시로서, 로봇(102)은 픽셀별로 또는 영역별로 맵(700)과 업로드된 맵을 비교하는 맵 평가 유닛(324)의 하나 이상의 비교기를 이용할 수 있다. 일부 구현예에서, 업로드된 맵 및/또는 맵(700)은 그 비교를 용이하게 하도록 크기가 재조정될 수 있다. 맵(700)이 픽셀별로 또는 영역별로 업로드된 맵과 유사하지 않은 것으로 밝혀지면, 로봇(102)은 매핑 오류가 있었거나 및/또는 이 맵(700)의 품질이 좋지 않다고 결정할 수 있다. 결과적으로, 로봇(102)은 사용자(604)에게 경로를 다시 데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다).As another example implementation, the
일부 구현예에서, 업로드된 맵과 맵(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
일부 구현예에서, 업로드된 맵은 형상들(예를 들어, 물체들 또는 장애물없는 공간의 형상)에 대해 분석될 수 있다. 맵(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
일부 구현예에서, 로봇(102)은 환경(100)의 소정의 예상되는 특성/특징에 대해 맵(700)을 분석할 수 있다. 예를 들어, 식료품점 또는 유사한 환경에서, 로봇(102)은 통로 및/또는 선반을 예상할 수 있다. 로봇(102)이 통로 및/또는 선반을 나타내는 물체를 검출하지 않거나 또는 너무 적거나 너무 많은 것을 검출하는 경우, 로봇(102)은 맵(700)이 품질이 좋지 않을 수 있고 및/또는 매핑 오류를 포함할 수 있다고 결정할 수 있다. 또 다른 예로, 환경의 복잡성에 대해 일정 수준의 예상치가 있을 수 있다. 맵(700)이 너무 많이 회전하거나 너무 적은 회전을 갖는 경우, 로봇(102)은 맵(700)이 품질이 좋지 않을 수 있고 및/또는 매핑 오류를 포함할 수 있다고 결정할 수 있다. 다른 예로서, 환경(100)은 예상된 크기를 가질 수 있다. 맵(700)의 크기가 너무 크거나 작으면, 로봇(102)은 맵(700)이 품질이 좋지 않을 수 있고 및/또는 매핑 오류를 포함할 수 있다고 결정할 수 있다. 맵(700)이 환경(100)의 소정의 예상되는 특성들/특징들을 갖지 않는 전술한 경우들 중 어느 한 경우에서, 로봇(102)은 사용자(예를 들어, 사용자(604) 또는 서버상의 맵에 접근하는 사용자)가 맵(700)을 검증하도록 프롬프트할 수 있다. 따라서 로봇은 맵을 서버로 전송하고 맵의 품질의 검증을 수신할 수 있다.In some implementations, the
일부 구현예에서, 로봇(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.,
일부 상황들에서, 로봇(102)은 또한 품질이 낮은 맵(700)의 오류들을 정정할 수 있다. 예를 들어, 일부의 경우, 로봇(102)이 폐루프(예를 들어, 폐루프 경로(1104))에서 정확하게 주행하지 않는 일부 경우에, 초기화 위치와 종료 위치 사이의 차이가 로봇(102)의 주행거리 측정을 보정하는데 사용될 수 있다. 예를 들어, 로봇(102)은 초기화 위치와 종료 위치 사이의 차이를 획득할 수 있고 그 차이가 주행 거리가 실제와 어느 정도 편차를 나타내는지를 결정할 수 있다. 따라서, 로봇(102)은 결정된 편차를 고려하여 기록된 경로를 조정할 수 있다.In some situations, the
다른 예로서, 어떤 매핑 오류는 로봇(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
로봇(102)은 또한 기계 학습을 사용하여 오류를 이들 오류의 교정과 연관시키도록 학습할 수 있다. 예를 들어, 로봇(102)은 오류를 가진 맵을 메모리(302)에 및/또는 서버 상에 저장할 수 있다. 예시로서, 어떤 경우에, 사용자(604)는 먼저 경로를 데모할 수 있다. 경로 및 주위 환경의 생성된 맵에는 매핑 오류가 있을 수 있다. 매핑 오류와 마주치면, 사용자(604)는 환경 및/또는 경로를 재 매핑할 수 있다. 따라서, 로봇(102)은 (예를 들어, 성공적인 내비게이션을 방해하는 매핑 오류를 갖는) 저품질 맵의 버전 및 (예를 들어, 성공적인 내비게이션을 방지하는 매핑 오류없이) 저품질이 아닌 버전을 가질 수 있다. 그 다음, 로봇(102)은 낮은 품질이 아닌 재매핑된 버전의 대응하는 부분과 낮은 품질 맵의 적어도 일부를 연관시킬 수 있다. 하나 이상의 실질적으로 유사한 연관에 기초하여, 로봇(102)은 발생된 매핑 오류를 식별하고, 일단 매핑 오류를 인식하면 보정된 맵의 적어도 일부를 생성하도록 학습할 수 있다.The
도 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
일부 구현예에서, 로봇(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
부분(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
일부 구현예에서, 로봇(102)은 부분(408)에서 검출된 초기화 위치에 기초하여 기록된 경로를 자동으로 선택할 수 있다. 예를 들어, 초기화 위치(104)는 단지 데모된 경로(116)와 연관될 수 있다(또는 매핑된 경로(716)로 매핑될 수 있다). 유사하게, 로봇(102)은 다른 데모된 경로와 연관된 다른 초기화 위치를 가질 수 있다. 유리하게는, 복수의 초기화 위치를 갖는 것은 사용자로 하여금 데모가능하게 하며 다양한 경로를 통해 로봇(102)으로 하여금 자율적으로 이동가능하게 할 수 있다. 또한, 로봇(102)이 초기화 위치에 기초하여 기록된 경로를 자동으로 선택하게 함으로써, 로봇(102)은 최소한의 추가 사용자 입력으로 자율 주행을 보다 신속하게 시작할 수 있다.In some implementations, the
도 4를 다시 참조하면, 부분(412)에서, 로봇(102)은 부분(410)에서 선택된 기록된 경로를 따라 자율적으로 주행할 수 있다. 예를 들어, 로봇(102)은 맵(700) 및 매핑된 경로(716)를 사용하여 자율적으로 주행할 수 있다.Referring again to FIG. 4, at
후속 경로(716)에서, 로봇(102)은 적어도 맵(700), 경로(716), 및 센서(560A-560D) 및 센서(568A-568B)로부터의 데이터 중 하나 이상을 프로세싱할 수 있는 적어도 내비게이션 유닛(326)에 의존할 수 있다. 센서(560A-560D)는 본원에서 도 6d를 참조하여 그리고 본원의 다른 곳에서 예시 및 설명된 바와 같이, 로봇(102)이 그 주변의 물체를 센싱가능하게 할 수 있다. 이러한 방식으로, 로봇(102)은 맵(700) 및 인근 물체의 검출에 적어도 부분적으로 기초하여 내비게이션할 수 있으며, 로봇(102)은 검출되는 물체를 피할 수 있다. 예를 들어, 이러한 물체는 일시적으로 배치되거나 일시적인 항목 및/또는 환경에 대한 일시적 및/또는 동적 변경일 수 있다. 또한, 인근 물체의 검출은 로봇(102)으로 하여금 맵(700)상에서 검출하는 물체 로봇(102)의 위치의 결정에 적어도 부분적으로 기초하여 맵(700) 상에 자신을 로컬라이제이션가능하게 할 수 있다.In a
또한, 로봇(102)은, 적어도 도 5b 내지 도 5d를 참조하여 기술되는 바와 같이, 원점에 대한 그의 위치/자세(예컨대, 거리 및/또는 방향)를 적어도 부분적으로 결정하기 위해 주행거리 측정용 센서(568A 내지 568B)를 활용할 수 있다. 적어도 하나의 맵(700), 경로(716), 센서(560A-560D) 및 센서(568A-568B) 중 하나 이상을 사용함으로써, 로봇(102)은 도 1에 도시된 바와 같이 경로(106), 도 1c에 예시된 바와 같은 경로(126), 또는 적어도 방법(400)을 이용하여 환경(100) 또는 임의의 다른 환경을 통한 다른 자율적 경로를 통해 자율적으로 주행할 수 있다.In addition, the
또한, 경로(106)를 따라 자율적으로 주행하는 동안, 로봇(102)은 부분(404) 동안 학습되고 및/또는 맵(700)에 기록된 대로 브러시(908) 및/또는 스퀴지(616)와 같은 로봇(102) 상의 다양한 기구를 작동시킬 수 있다. 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트 상승/하강, 카메라 및/또는 센서 유닛(314)의 임의의 센서 회전, 및/또는 로봇(102)이 행동을 수행하기를 원하는 임의의 움직임 등과 같이 스크러버 또는 다른 로봇 형태의 장비의 학습된 행동의 작동이 유사하게 수행될 수 있다.In addition, while autonomously traveling along
도 13은 예시적인 로봇(102)을 동작시키는 예시적인 방법(1300)을 예시한다. 부분(1302)은 초기화 위치에서 로봇의 제1 위치를 검출하는 것을 포함한다. 부분(1304)은 초기화 위치로부터 시작하는 로봇에 대한 내비게이션할 수 있는 경로의 데모 중에 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 것을 포함한다. 부분(1306)은 초기화 위치에서 로봇의 제2 위치를 검출하는 것을 포함한다. 부분(1308)은 로봇이 초기화 위치로부터 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함한다.FIG. 13 illustrates an
본원에서 사용될 때, 컴퓨터 및/또는 컴퓨팅 장치는, 개인용 컴퓨터 ("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.
상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 추가로, 상기 프로세싱 장치로 하여금, 오류들에 대해 생성된 상기 맵을 평가하게 하고, 상기 오류들에 적어도 부분적으로 기초하여, 상기 로봇에게 상기 내비게이션가능한 경로를 다시 데모하도록 사용자에게 요청하게 하는, 비일시성 컴퓨터 판독 가능 저장 매체.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.
상기 오류들은 맵에서의 상기 내비게이션가능한 경로의 불연속성 및 상기 맵에서의 상기 주위 환경에서의 불연속성 중의 적어도 하나를 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.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.
상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 추가로, 상기 프로세싱 장치로 하여금, 상기 내비게이션가능한 경로를 자율적으로 내비게이션하는 동안에 상기 로봇에 일시적으로 놓인 장애물들을 피하는 명령들을 제공하게 하는, 비일시성 컴퓨터 판독 가능 저장 매체.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.
상기 프로세싱 장치로 하여금, 사용자 인터페이스로부터 내비게이션가능한 경로의 선택을 수신하게 하도록 구성된 명령들을 더 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.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.
상기 로봇은 플로어 청소기인, 비일시성 컴퓨터 판독 가능 저장 매체.The method according to claim 1,
Wherein the robot is a floor cleaner.
생성된 상기 맵은 상기 내비게이션가능한 경로 상의 상기 로봇에 의하여 수행되는 행동을 적어도 부분적으로 나타내는 표시를 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.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.
상기 행동은 플로어 청소인, 비일시성 컴퓨터 판독 가능 저장 매체.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.
오류들에 대해 생성된 상기 맵을 평가하는 단계; 및 상기 오류들에 적어도 부분적으로 기초하여, 사용자에게 상기 로봇에게 다시 상기 내비게이션가능한 경로를 데모하도록 요청하는 단계를 더 포함하는, 로봇을 동작시키는 방법.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.
상기 데모는 사용자로부터 제어 신호들을 수신하는 단계를 포함하는, 로봇을 동작시키는 방법.The method of claim 9,
Wherein the demo comprises receiving control signals from a user.
상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성시키는 단계는, 삼차원 센서로 상기 주위 환경을 센싱하는 단계를 더 포함하는 로봇을 동작시키는 방법.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.
상기 로봇으로 하여금 자율적으로 내비게이션하게 하는 단계는 사용자 인터페이스로부터 상기 내비게이션가능한 경로의 선택을 수신하는 단계를 더 포함하는, 로봇을 동작시키는 방법.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.
상기 로봇으로 하여금 자율적으로 내비게이션하게 하는 단계는 상기 내비게이션가능한 경로 및 주위 환경의 상기 맵을 이용하여 내비게이션하는 단계를 포함하는, 로봇을 동작시키는 방법.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.
상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 생성된 상기 맵 상에 매핑하는 단계를 더 포함하는, 로봇을 동작시키는 방법.The method of claim 9,
Further comprising mapping the behavior performed by the robot on the navigable path onto the generated map.
상기 행동은 플로어를 청소하는 것을 포함하는, 로봇을 동작시키는 방법.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.
생성된 상기 맵은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 적어도 부분적으로 나타내는 표시를 더 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.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.
상기 행동은 플로어를 청소하는 것인, 비일시성 컴퓨터 판독 가능 저장 매체.19. The method of claim 18,
The behavior cleaning the floor. ≪ RTI ID = 0.0 >< / RTI >
상기 내비게이션 경로의 상기 데모는 컴퓨터 시뮬레이션인, 비일시성 컴퓨터 판독 가능 저장 매체.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.
상기 내비게이션 유닛은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션시키지 않도록 결정하도록 더 구성된, 로봇.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.
상기 로봇의 센서 범위 내에서 객체들을 적어도 부분적으로 표시하는 센서 데이터를 발생시키도록 구성되는 센서 유닛을 더 포함하고, 상기 내비게이션 유닛은 발생된 상기 센서 데이터에 적어도 부분적으로 기초하여 자율적으로 내비게이션시키도록 더 구성된, 로봇.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.
브러시를 작동시키도록 구성된 제1 액추에이터 유닛을 더 포함하는, 로봇.23. The method of claim 21,
Further comprising a first actuator unit configured to actuate a brush.
상기 맵의 위치를 상기 제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.
서버와 통신하도록 구성된 통신 유닛을 더 포함하고, 상기 로봇은 상기 서버로 상기 맵을 전송하고 상기 맵의 표시된 품질의 검증을 수신하는, 로봇.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.
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)
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)
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)
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)
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 |
-
2016
- 2016-05-11 US US15/152,425 patent/US20170329347A1/en not_active Abandoned
-
2017
- 2017-05-11 EP EP17796888.0A patent/EP3454705A4/en not_active Withdrawn
- 2017-05-11 WO PCT/US2017/032273 patent/WO2017197190A1/en unknown
- 2017-05-11 CA CA3023552A patent/CA3023552A1/en not_active Abandoned
- 2017-05-11 CN CN201780041655.5A patent/CN109414142B/en not_active Expired - Fee Related
- 2017-05-11 KR KR1020187035942A patent/KR102355750B1/en active IP Right Grant
- 2017-05-11 JP JP2019511831A patent/JP6949107B2/en active Active
-
2018
- 2018-10-23 US US16/168,368 patent/US11467602B2/en active Active
-
2022
- 2022-10-07 US US17/961,926 patent/US20230021778A1/en active Pending
Patent Citations (1)
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)
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 |