KR20190029524A - 경로를 자율주행하도록 로봇을 훈련시키기 위한 시스템 및 방법 - Google Patents

경로를 자율주행하도록 로봇을 훈련시키기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20190029524A
KR20190029524A KR1020187035942A KR20187035942A KR20190029524A KR 20190029524 A KR20190029524 A KR 20190029524A KR 1020187035942 A KR1020187035942 A KR 1020187035942A KR 20187035942 A KR20187035942 A KR 20187035942A KR 20190029524 A KR20190029524 A KR 20190029524A
Authority
KR
South Korea
Prior art keywords
robot
map
path
environment
implementations
Prior art date
Application number
KR1020187035942A
Other languages
English (en)
Other versions
KR102355750B1 (ko
Inventor
장 밥티스트 파소
앤드류 스미스
보톤드 스잣머리
가바르도스 보르하 이바르즈
코디 그리핀
잘덜트 롬바우츠
올레그 신야프스키
유진 이즈히케비치
Original Assignee
브레인 코퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 브레인 코퍼레이션 filed Critical 브레인 코퍼레이션
Publication of KR20190029524A publication Critical patent/KR20190029524A/ko
Application granted granted Critical
Publication of KR102355750B1 publication Critical patent/KR102355750B1/ko

Links

Images

Classifications

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

Abstract

자율적으로 경로를 주행하도록 로봇을 훈련시키는 시스템 및 방법. 일 실시예에서, 로봇은 초기화 위치에서 초기 배치를 검출할 수 있다. 초기화 위치에서 시작하여 로봇은 내비게이션가능한 경로의 사용자 제어 데모 중에 내비게이션가능한 경로 및 주위 환경의 맵을 생성할 수 있다. 데모 후에 로봇은 초기화 위치에서 제 2 위치를 나중에 검출하고 그후 내비게이션가능한 경로를 자율적으로 내비게이션할 수 있다. 그후, 이어서, 로봇은 생성된 맵과 연관된 오류를 검출할 수 있다. 로봇과 연관된 방법 및 시스템이 또한 개시된다.

Description

경로를 자율주행하도록 로봇을 훈련시키기 위한 시스템 및 방법
우선권
본 출원은 동일한 발명의 명칭으로 2016년 5월 11일에 출원되어 계류중인 미국 특허 출원 제15/152,425호에 대해 우선권을 주장하며, 이는 전체로서 참조로 본원에 포함된다.
저작권
본 특허문서의 본 개시의 일부는 저작권 보호를 받는 자료를 포함하고 있다. 저작권 소유자는 미국 특허 상표청의 특허 파일 또는 기록에 나타나 있듯이 모든 특허 문서 또는 특허 공개에 대한 팩스 복제물에 대해 이의를 제기하지 않지만 달리 저작권의 모든 권리를 보유한다.
본 출원은 일반적으로, 특히, 로봇 시스템 및 이를 이용하는 방법에 관한 것이다. 특히, 일 양태에서, 본 개시는 경로를 자율적으로 주행시키기 위해 로봇을 훈련하고 동작시키는 시스템 및 방법에 관한 것이다.
현재, 프로그래밍 로봇은 종종 로봇이 만날 수 있는 모든 상황을 예상하거나 예상하려고 하는 소모적 코딩을 수반할 수 있다. 이러한 접근 방식은 시간, 에너지 및 컴퓨터 자원 관점에서 비용이 많이 드는 것뿐만 아니라 이 접근법은 또한 로봇의 능력을 제한할 수도 있다. 예를 들어, 많은 로봇은 예측 가능한 또는 미리 정의된 조건을 갖춘 제어된 환경에서만 효과적일 수 있다. 이 로봇은 동적으로 변화하는 환경 및/또는 로봇이 특별히 프로그래밍되지 않은 새로운 환경에서는 효과적이지 않을 수 있다. 로봇이 일반 능력으로 프로그래밍된 경우, 로봇은 여러가지 작업에서 유용할 수 있지만, 이러한 작업 중 특정 작업에서는 효과가 없거나 비효율적일 수 있다. 다른 한편으로는, 특정 작업을 효과적이고 효율적으로 수행하도록 프로그래밍된 로봇은 이러한 작업에만 국한되며 다른 작업을 수행할 수 없다. 유사하게, 많은 현재 로봇은 전문 기술자 및 다른 고도로 숙련된 작업자가 이를 프로그래밍하고 조작하도록 요구할 수 있다. 이 요구 사항은 로봇 작동 시간과 비용을 증가시킨다.
이러한 과제는 로봇을 경로를 따라 주행하도록 프로그래밍하는데 특히 두드러진다. 예를 들어, 로봇으로 하여금 제1 지점에서 제2 지점으로 자율적으로 주행하도록 프로그래밍하기 위하여, 프로그래머는 맵을 프로그래밍하고, 로봇이 그 지점으로 주행해야 하는 순서 또는 로직을 따라, 로봇이 주행해야 하는 맵 상의 각 지점을 식별해야 한다. 프로그래머는 각 환경에 맞게 로봇을 프로그래밍하고 환경 지도와 함께 원하는 모든 경로를 입력해야 할 수도 있다. 대안으로, 프로그래머가 로봇이 경로를 결정하기 위한 일반적인 규칙과 논리를 프로그램하면, 로봇은 특정 경로를 따라 가면 느리고 비효율적일 수 있다. 어느 경우에나, 그러한 프로그래밍은 시간 소모적일 수 있으며 또한 고도로 숙련된 작업자가 로봇을 조작하도록 요구할 수 있다. 따라서, 경로를 주행하도록 로봇을 프로그래밍하기 위한 개선된 시스템 및 방법이 필요하다.
전술한 필요성은 특히, 훈련된 경로를 주행하기 위한 로봇을 초기화하고 동작시키기 위한 시스템 및 방법을 제공하는 본 개시에 의해 충족된다. 본 명세서에 기술된 예시적인 구현예는 혁신적인 특징을 가지며, 그 특징은 단일로는 그들의 바람직한 속성에 대해 필수 불가결하거나 원인이 되지 않는다. 청구항들의 범위를 제한하지 않고, 유리한 특징들 중 일부를 이하 요약한다.
본 개시의 일부 구현예에서, 로봇은 자율적으로 내비게이션하는 동안 데모(demonstration)에 의하여 경로를 학습하고 나중에 데모된(demonstrated) 경로를 반복할 수 있다.
제1 양태에서, 로봇이 개시된다. 일 예시 구현예에서, 상기 로봇은 상기 초기화 위치로부터 출발하는 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하도록 구성된 매핑 및 로컬라이제이션 유닛을 포함한다. 상기 로봇은 또한 상기 맵을 이용하여 상기 로봇을 자율적으로 내비게이션하도록 구성된 내비게이션 유닛을 포함한다.
일 변형예에서, 상기 내비게이션 유닛은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않게 결정하도록 구성된다.
다른 변형예에서, 상기 로봇은 상기 로봇의 센서 범위 내에서 물체들을 적어도 부분적으로 표시하는 센서 데이터를 발생시키도록 구성되는 센서 유닛을 더 포함하고, 상기 내비게이션 유닛은 상기 발생된 센서 데이터에 적어도 부분적으로 기초하여 자율적으로 내비게이션하도록 더 구성된다.
다른 변형예에서, 상기 로봇은 브러시를 작동시키도록 구성된 제1 액추에이터 유닛을 더 갖는다. 다른 변형예에서, 상기 로봇은 상기 로봇을 터닝시키도록 구성된 제2 액추에이터를 더 가진다.
다른 변형예에서, 상기 로봇은 상기 맵 상의 위치를 상기 제1 액추에이터의 유닛의 작동과 연관시키도록 구성된 프로세서를 더 가진다. 다른 변형예에서, 상기 로봇은 맵 상의 위치를 상기 제2 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 포함한다.
다른 변형예에서, 상기 로봇은 사용자로부터 생성된 맵의 선택을 수신하도록 구성된 인터페이스 유닛을 포함하고, 상기 로봇은 수신된 선택에 적어도 부분적으로 기초하여 자율적으로 내비게이션한다.
다른 변형예에서, 상기 로봇은 상기 맵에서의 오류를 정정하도록 구성된 맵 평가 유닛을 가진다. 다른 변형예에서, 오류의 정정은 맵에서의 오류의 적어도 하나를 정정된 맵의 적어도 일부분과 연관시키는 기계 학습을 포함한다.
다른 변형예에서, 상기 로봇은 서버와 통신하도록 구성된 통신 유닛을 더 포함하고, 상기 로봇은 상기 맵을 상기 서버로 전송하고 상기 맵의 품질의 검증을 수신한다.
제2 양태에서, 로봇을 훈련시키는 방법이 개시된다. 일 예시 구현예에서, 상기 방법은 초기화 위치에서 상기 로봇의 제1 위치를 검출하는 단계; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 단계; 상기 초기화 위치에서 상기 로봇의 제 2 위치를 검출하는 단계; 및 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함한다.
일 변형예에서, 상기 방법은 오류들에 대해 상기 생성된 맵을 평가하는 단계; 및 상기 오류들에 적어도 부분적으로 기초하여, 상기 로봇에 다시 상기 내비게이션가능한 경로를 데모하도록 사용자에게 요청하는 단계를 더 포함한다.
다른 변형예에서, 상기 방법은 상기 맵에서의 오류를 정정하는 단계를 더 포함한다. 다른 변형예에서, 상기 방법은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하는 단계를 더 포함한다.
다른 변형예에서, 상기 방법은 내비게이션가능한 경로 및 주위 환경의 맵과 상기 초기 위치를 연관시키는 단계를 더 포함한다.
다른 변형예에서, 상기 방법은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 상기 생성된 맵 상에 매핑하는 단계를 더 포함한다.
제3 양태에서, 로봇을 사용하는 방법이 개시된다. 일 예시 구현예에서, 상기 방법은 초기화 위치에서 상기 로봇의 제1 위치를 검출하는 단계; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 단계; 상기 초기화 위치에서 상기 로봇의 제 2 위치를 검출하는 단계; 및 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함한다.
일 변형예에서, 상기 방법은 내비게이션가능한 경로 및 주위 환경의 맵과 상기 초기 위치를 연관시키는 단계를 더 포함한다.
다른 변형예에서, 상기 방법은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 상기 생성된 맵 상에 매핑하는 단계를 더 포함한다.
제4 양태에서, 비일시성 컴퓨터 판독 가능 매체가 개시된다. 일 예시 구현예에서, 복수의 명령이 저장되는 비일시성 컴퓨터 판독 가능 저장 매체가 개시된다. 상기 명령들은 로봇을 동작시키도록 프로세싱 장치에 의하여 실행될 수 있으며, 상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금: 초기화 위치에서 상기 로봇의 제1 위치를 검출하고; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하고; 상기 초기화 위치에서 상기 로봇의 제2 위치를 검출하고; 그리고 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하도록 구성된다.
일 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 오류들에 대해 상기 생성된 맵을 평가하고, 상기 오류들에 적어도 부분적으로 기초하여 상기 로봇에 상기 내비게이션가능한 경로를 다시 데모하도록 사용자에게 요청하도록 하는 명령들을 더 포함한다.
다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 맵에서의 오류들을 정정하도록 하는 명령들을 포함한다.
다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 내비게이션가능한 경로를 자율적으로 내비게이션하는 동안에 로봇이 일시적으로 놓인 장애물을 피하도록 하는 명령들을 로봇에게 제공하게 하는 명령을 포함한다.
다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하게 하는 명령들을 더 포함한다.
다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 내비게이션가능한 경로 및 주위 환경의 맵과 상기 초기 위치를 연관시키는 명령들을 포함한다.
다른 변형예에서, 내비게이션가능한 경로 및 주위 환경의 맵의 생성은 센서로 주위 환경을 센싱하도록 구성된 명령들을 더 포함한다.
다른 변형예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 실행될 때, 상기 프로세싱 장치로 하여금 서버와 통신하게 하는 명령을 더 포함하며, 상기 로봇은 상기 서버로 상기 맵을 전송하고 상기 맵의 품질의 검증을 수신한다.
제5 양태에서, 환경과 로봇이 개시된다. 일 예시 구현예에서, 상기 로봇은 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하도록 구성된 매핑 및 로컬라이제이션 유닛을 포함한다. 상기 로봇은 또한 상기 맵을 이용하여 상기 로봇을 자율적으로 내비게이션하도록 구성된 내비게이션 유닛을 포함한다.
일 변형예에서, 상기 내비게이션 유닛은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하도록 더 구성된다. 이 결정은 상기 환경의 장애물을 피하는 결정을 포함한다.
다른 변형예에서, 상기 로봇은 상기 로봇의 센서 범위 내에서 물체들을 적어도 부분적으로 표시하는 센서 데이터를 발생시키도록 구성되는 센서 유닛을 더 포함하고, 상기 내비게이션 유닛은 발생된 센서 데이터에 적어도 부분적으로 기초하여 환경을 자율적으로 내비게이션하도록 더 구성된다.
다른 변형예에서, 상기 로봇은 청소용 브러시를 작동시키도록 구성된 제1 액추에이터 유닛을 더 갖는다. 다른 변형예에서, 상기 로봇은 환경에서 로봇을 터닝시키도록 구성된 제2 액추에이터 유닛을 더 포함한다.
다른 변형예에서, 상기 로봇은 상기 맵 상의 위치를 상기 제1 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 갖는다. 다른 변형예에서, 상기 로봇은 상기 맵 상의 위치를 상기 제2 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 포함한다.
본 개시에는 추가적인 양태와 구현예들이 기재되어 있다. 예를 들어, 일부 구현예들은 복수의 명령들이 저장된 비일시성 컴퓨터 판독 가능 저장 매체를 포함하며, 상기 명령들은, 상기 로봇을 동작시키도록 프로세싱 장치에 의해 실행 가능하고, 상기 명령들은, 상기 프로세싱 장치에 의해 실행될 때, 상기 프로세싱 장치로 하여금: 초기화 위치에서 상기 로봇의 제1 위치를 검출하고; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하고; 상기 초기화 위치에서 상기 로봇의 제2 위치를 검출하고; 그리고 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하도록 구성된다.
일부 구현예에서, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 오류들에 대해 상기 생성된 맵을 평가하게 하고, 상기 오류들에 적어도 부분적으로 기초하여 상기 로봇에 상기 내비게이션가능한 경로를 다시 데모하도록 사용자에게 요청하게 하는 명령을 더 포함한다. 일부 구현예에서, 상기 오류들은 맵에서의 상기 내비게이션가능한 경로의 불연속성과 상기 맵에서의 상기 주위 환경에서의 불연속성 중의 적어도 하나를 포함한다. 일부 구현예에서, 상기 오류들은 적어도 중복 물체들을 포함한다. 일부 구현예에서, 상기 오류들은 폐루프를 형성하는데 있어서의 실패를 포함한다. 일부 구현예에서, 상기 오류들은 상기 맵에서의 소정의 오류 패턴들을 포함한다.
일부 구현예에서, 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 맵에서의 오류를 정정하게 하는 명령을 더 포함한다. 일부 구현예에서, 오류의 정정은 상기 맵에서의 오류들 중의 적어도 하나를 정정된 맵의 적어도 일부와 연관시키는 기계 학습을 포함한다.
일부 구현예에서, 비일시성 컴퓨터 판독 가능 저장 매체는 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 로봇이 상기 내비게이션가능한 경로를 자율적으로 내비게이션하는 동안에 일시적으로 놓인 장애물을 피하도록 명령들을 제공하게 하는 명령을 더 포함한다. 일부 구현예에서, 비일시성 컴퓨터 판독 가능 저장 매체는 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하게 하는 명령들을 더 포함한다. 일부 구현예에서, 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않는 결정은 장애물을 피하는 결정을 포함한다.
일부 구현예에서, 상기 로봇은 상기 프로세싱 장치로 하여금 사용자 인터페이스로부터 내비게이션가능한 맵의 선택을 수신하게 하도록 구성된 명령을 더 포함한다. 일부 구현예에서, 상기 비일시성 컴퓨터 판독 가능 저장 매체는, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금 내비게이션가능한 경로 및 주위 환경의 맵과 상기 초기 위치를 연관시키게 하는 명령들을 포함한다.
일부 구현예에서, 상기 로봇을 자율적으로 내비게이션하게 하는 것은 상기 프로세싱 장치로 하여금 상기 내비게이션가능한 경로 및 주위 환경의 맵을 상기 초기화 위치와 연관하는 것에 적어도 부분적으로 기초하여 상기 내비게이션가능한 경로를 결정하게 하도록 구성된 명령을 더 포함한다. 일부 구현예에서, 로봇이 자율적으로 내비게이션하도록 하는 것은 상기 프로세싱 장치로 하여금 상기 생성된 맵에 적어도 부분적으로 기초하여 내비게이션하게 하도록 구성된 명령을 더 포함한다.
일부 구현예에서, 상기 로봇은 플로어 청소기다. 일부 구현예에서, 상기 로봇은 플로어 스크러버이다.
일부 구현예에서, 상기 생성된 맵은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 적어도 일부분을 나타내는 표시를 포함한다. 일부 구현예에서, 상기 행동은 플로어를 청소하는 것이다. 일부 구현예에서, 상기 행동은 터닝이다.
일부 구현예에서, 내비게이션가능한 경로 및 주위 환경의 맵의 생성은 센서로 주위 환경을 센싱하도록 구성된 명령을 더 포함한다. 일부 구현예에서, 내비게이션가능한 경로 및 주위 환경의 맵의 생성은 3차원 센서로 주위 환경을 센싱하도록 구성된 명령을 더 포함한다.
일부 구현예에서, 비일시성 컴퓨터 판독 가능 매체는, 실행될 때, 상기 프로세싱 장치로 하여금 서버와 통신하게 하는 명령을 더 포함하고, 상기 로봇은 상기 서버에 맵을 전송하고 상기 맵의 품질의 검증을 수신한다.
다른 예로서, 일부 구현예들은, 초기화 위치에서 상기 로봇의 제1 위치를 검출하는 단계; 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 단계; 상기 초기화 위치에서 상기 로봇의 제 2 위치를 검출하는 단계; 및 상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함하는, 로봇을 동작시키는 방법을 포함한다.
일부 구현예에서, 상기 방법은 상기 오류들에 대해 상기 생성된 맵을 평가하는 단계; 및 상기 오류들에 적어도 부분적으로 기초하여, 상기 로봇에 상기 내비게이션가능한 경로를 다시 데모하도록 사용자에게 요청하는 단계를 더 포함한다. 일부 구현예에서, 오류들에 대해 상기 생성된 맵을 평가하는 단계는 중첩 물체를 식별하는 단계를 포함한다. 일부 구현예에서, 오류들에 대한 생성된 맵을 평가하는 단계는 폐루프를 형성하는 것의 실패를 식별하는 단계를 포함한다.
일부 구현예에서, 오류들에 대한 생성된 맵을 평가하는 단계는 맵에서 소정의 패턴을 식별하는 단계를 포함한다. 일부 구현예에서, 상기 방법은 서버에 상기 맵을 전송하고 서버로부터 상기 맵의 품질을 적어도 부분적으로 나타내는 신호를 수신하는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 상기 맵에서의 오류를 정정하는 단계를 더 포함한다. 일부 구현예에서, 오류를 정정하는 단계는 상기 맵에서의 오류들 중의 적어도 하나를 정정된 맵의 적어도 일부와 연관시키는 기계 학습을 포함한다.
일부 구현예에서, 상기 방법은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하는 단계를 더 포함한다. 일부 구현예에서, 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하는 단계는 장애물을 피하도록 결정하는 단계를 포함한다.
일부 구현예에서, 상기 데모는 사용자로부터 제어 신호를 수신하는 것을 포함한다. 일부 구현예에서, 내비게이션가능한 경로 및 주위 환경의 맵의 생성은 센서로 주위 환경을 센싱하는 단계를 더 포함한다. 일부 구현예에서, 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 단계는 3차원 센서로 주위 환경을 센싱하는 단계를 더 포함한다.
일부 구현예에서, 상기 로봇으로 하여금 자율적으로 내비게이션하도록 하는 단계는 사용자 인터페이스로부터 내비게이션 경로의 선택을 수신하는 단계를 더 포함한다. 일부 구현예에서, 상기 로봇으로 하여금 자율적으로 내비게이션하게 하는 단계는 상기 내비게이션가능한 경로 및 주위 환경의 맵을 이용하여 내비게이션하는 단계를 포함한다.
일부 구현예에서, 상기 방법은 상기 내비게이션가능한 경로 및 주위 환경의 맵을 상기 초기화 위치와 연관시키는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 상기 내비게이션가능한 경로 및 주위 환경의 맵을 상기 초기화 위치에 연관시키는 것에 적어도 부분적으로 기초하여 상기 내비게이션가능한 경로를 결정하는 단계를 더 포함한다.
일부 구현예에서, 상기 방법은 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 상기 생성된 맵 상에 매핑하는 단계를 더 포함한다. 일부 구현예에서, 상기 행동은 플로어를 청소하는 것을 포함한다. 일부 구현예에서, 상기 행동은 터닝을 포함한다.
다른 예로서, 일부 구현예는 복수의 명령들이 저장된 비일시성 컴퓨터 판독 가능 저장 매체를 포함하며, 상기 명령들은, 상기 로봇을 동작시키도록 프로세싱 장치에 의해 실행 가능하고, 상기 명령들은, 상기 프로세싱 장치에 의해 실행될 때, 상기 프로세싱 장치로 하여금: 상기 초기화 위치로부터 출발하는 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하게 하도록 구성된다.
일부 구현예에서, 상기 생성된 맵은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 적어도 일부분을 나타내는 표시를 더 포함한다. 일부 구현예에서, 상기 행동은 플로어를 청소하는 것이다. 일부 구현예에서, 상기 로봇은 플로어 청소기다. 일부 구현예에서, 상기 내비게이션 경로의 데모는 컴퓨터 시뮬레이션이다.
다른 예로서, 일부 구현예는 상기 초기화 위치로부터 출발하는 상기 로봇에 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하도록 구성된 매핑 및 로컬라이제이션 유닛; 및 상기 맵을 이용하여 상기 로봇을 자율적으로 내비게이션하도록 구성된 내비게이션 유닛을 포함하는 로봇을 포함한다.
일부 구현예에서, 상기 내비게이션 유닛은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하도록 더 구성된다. 일부 구현예에서, 자율적으로 내비게이션하지 않도록 하는 결정은 상기 환경의 장애물을 피하는 결정을 포함한다.
일부 구현예에서, 상기 로봇은 상기 로봇의 센서 범위 내에서 물체들을 적어도 부분적으로 표시하는 센서 데이터를 발생시키도록 구성되는 센서 유닛을 더 포함하고, 상기 내비게이션 유닛은 발생된 센서 데이터에 적어도 부분적으로 기초하여 자율적으로 내비게이션하도록 더 구성된다.
일부 구현예에서, 상기 로봇은 브러시를 작동시키도록 구성된 제1 액추에이터 유닛을 더 포함한다. 일부 구현예에서, 상기 로봇은 로봇을 터닝시키도록 구성된 제 2 액추에터 유닛을 더 포함한다.
일부 구현예에서, 상기 로봇은 상기 맵 상에서의 위치를 상기 제1 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 포함한다. 일부 구현예에서, 상기 로봇은 상기 맵 상의 위치를 상기 제2 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 포함한다.
일부 구현예에서, 로봇은 사용자로부터, 생성된 맵의 선택을 수신하도록 구성된 사용자 인터페이스를 더 포함하고, 상기 로봇은 수신된 상기 선택에 적어도 부분적으로 기초하여 자율적으로 내비게이션한다.
일부 구현예에서, 상기 로봇은 맵에서 오류를 정정하도록 구성된 맵 평가 유닛을 더 포함한다.
일부 구현예에서, 상기 오류의 정정은 상기 맵에서의 오류들 중의 적어도 하나를 정정된 맵의 적어도 일부와 연관시키는 기계 학습을 포함한다.
일부 구현예에서, 상기 오류들은 적어도 중첩 물체를 포함한다. 일부 구현예에서, 상기 오류들은 폐루프를 형성하는데 있어서의 실패를 포함한다. 일부 구현예에서, 상기 오류들은 상기 맵에서의 소정의 패턴들을 포함한다.
일부 구현예에서, 상기 맵 평가 유닛은 상기 맵에서의 오류를 정정하도록 더 구성된다. 일부 구현예에서, 오류의 정정은 상기 맵에서의 오류들 중의 적어도 하나를 정정된 맵의 적어도 일부와 연관시키는 기계 학습을 포함한다.
일부 구현예에서, 상기 프로세서는 내비게이션가능한 경로 및 주위 환경의 맵을 상기 초기화 위치와 연관시키도록 더 구성된다.
일부 구현예에서, 상기 프로세서는 상기 내비게이션가능한 경로 및 주위 환경의 맵의 상기 초기화 위치로의 연관에 적어도 부분적으로 기초하여 상기 내비게이션가능한 경로를 결정하도록 더 구성된다. 일부 구현예에서, 로봇을 자율적으로 내비게이션하게 하도록 더 구성된 상기 내비게이션 유닛은 상기 프로세싱 장치로 하여금 상기 생성된 맵에 적어도 부분적으로 기초하여 내비게이션하게 하도록 구성된 명령을 더 포함한다.
일부 구현예에서, 상기 로봇은 서버와 통신하도록 구성된 통신 유닛을 더 포함하고, 상기 로봇은 상기 서버로 상기 맵을 전송하고 상기 맵의 표시된 품질의 검증을 수신한다.
본 개시의 이들 및 다른 목적, 특징 및 특성뿐만 아니라 구조의 관련 요소의 작동 및 기능의 방법 및 제조의 부품과 경제성의 조합은 첨부된 도면을 참조한, 다음의 설명 및 첨부된 청구범위를 고려할 때 더욱 명백해질 것이다. 첨부된 청구 범위를 참조하며, 이들 모두는 본 명세서의 일부를 형성하며, 동일한 도면 부호는 다양한 도면에서 대응하는 부분을 나타낸다. 그러나, 도면은 단지 예시 및 설명의 목적을 위한 것이고, 본 개시의 한계의 정의로서 의도되지 않는다는 것을 명백히 알 수 있을 것이다. 명세서 및 청구의 범위에서 사용된 바와 같이, 단수 형태의 "한(a)", "하나(an)"및 "그(the)"는 문맥 상 명확하게 다르게 지시하지 않는 한, 복수 대상을 포함한다.
다음으로, 개시된 양태를 설명을 위해 그러나 제한하지 않도록 제공된 첨부 도면을 참조하여 개시된 양태들을 설명하며, 동일한 명칭은 동일한 요소를 나타낸다.
도 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 판권 소유이다.
다음으로, 본원에 개시된 신규한 시스템, 장치, 방법의 다양한 양태를 첨부된 도면을 참조하여 보다 상세히 설명한다. 본 개시는 하지만 많은 다른 형태로 구현될 수 있으며, 본 개시를 통하여 제시되는 임의의 특정 구조 또는 기능에 한정되는 것으로 해석되어서는 안된다. 오히려, 이러한 양태는 본 개시가 충실하고 완전하며 당업자에게 본 개시의 범위를 완전히 전달하기 위해 제공된다. 본원의 교시에 기초하여, 당업자는, 본 개시의 범위가, 본 개시의 임의의 다른 양태와 독립적으로 구현되든 또는 결합하여 구현되든, 본원에 개시된 신규한 시스템, 장치, 및 방법의 임의의 양태를 포괄하도록 의도되는 것으로 이해하여야 한다. 예를 들어, 본원에서 설명된 어떠한 수의 양태를 이용하여 장치가 구현될 수 있으며 방법이 실시될 수 있다. 또한, 본 개시의 범위는 본원에 설명되는 본 개시의 다양한 양태에 부가하여 또는 그 외에, 다른 구조, 기능성, 또는 구조 및 기능성을 이용하여 실시되는 이러한 장치 또는 방법을 포괄하도록 의도된다. 본원에 개시된 임의의 양태는 청구항의 하나 이상의 구성요소에 의해 구현될 수 있는 것으로 이해하여야 한다.
본원에서 특정의 구현예들이 설명되지만, 이 구현예들의 많은 변형들과 치환들은 본 개시의 범위에 해당한다. 이 구현예들의 일부 이점과 장점들이 언급되지만, 본 개시의 범위는 특정의 이점, 용도, 및/또는 목적에 한정되는 것으로 의도되지 않는다. 상세한 설명과 도면들은 한정적이기 보다는 본 개시를 단지 예시하는 것이며, 본 개시의 범위는 첨부된 청구범위와 그 균등물에 의하여 정의된다.
본 개시는 자율 내비게이션용의 로봇을 동작시키는 개선된 시스템 및 방법을 제공한다. 본원에서 사용될 때, 로봇은 복잡한 일련의 행동을 자동으로 수행하도록 구성된 기계적 또는 가상적 실체를 포함할 수 있다. 일부 경우에, 로봇은 컴퓨터 프로그램 또는 전자 회로에 의해 안내되는 전자기계적(electro-mechanical) 기계일 수 있다. 일부 경우에, 로봇은 자율 내비게이션용으로 구성된 전자기계적 기계를 포함할 수 있으며, 로봇은 거의 또는 전혀 사용자 제어 없이, 한 위치에서 다른 위치로 이동할 수 있다. 이러한 자율적인 내비게이션 로봇들은 자율 자동차, 플로어 청소기(예를 들어, 플로어 스크러버, 진공청소기 등), 로버, 드론 등을 포함할 수 있다. 일부 구현예에서, 본 개시에 기재된 시스템 및 방법의 일부는 가상 환경으로 구현될 수 있으며, 가상 로봇이 물리적 세계의 특징을 갖는 시뮬레이션된 환경에서 (예를 들어, 컴퓨터 시뮬레이션에서) 데모된 경로를 학습할 수 있다. 이들 경로를 학습한 후, 본 개시에 설명되는 시스템 및 방법을 이용하여 시뮬레이션된 환경에서 및/또는 실제 세계에서 학습된 경로를 자율적으로 내비게이션할 수 있다.
다음으로, 본 개시의 시스템 및 방법의 다양한 실시예와 변형예의 상세한 설명을 제공한다. 로봇 플로어 청소기의 상황에서 주로 설명하지만, 본원에 포함된 설명된 시스템과 방법은, 예를 들어, 임의의 자율적으로 내비게이션하는 로봇을 포함하여, 다른 로봇에 사용될 수 있다. 본 개시의 내용을 제공받은 당업자는 본원에 기재된 기술에 대한 수많은 다른 예시적인 구현예 또는 용도를 용이하게 예견할 수 있을 것이다.
바람직하게, 본 개시의 시스템 및 방법은 적어도: (i) 환경 특정 프로그래밍에 대한 필요성을 감소시키고; (ii) 로봇을 프로그래밍할 고도의 숙련된 기술자에 대한 필요성을 감소시키고; (iii) 일반적으로 프로그래밍된 로봇으로부터 주문형 성능을 제공하고; (iv) 작업 특화 프로그래밍(예들 들어, 청소를 위해 장애물을 얼마나 가깝게 접근하는지 등) 에 대한 필요성을 제거하거나 또는 감소시키고; 그리고 (v) 로봇의 효과적인 자율 내비게이션을 가능하게 한다. 다른 이점은, 본 개시의 내용을 제공받은 당업자가 용이하게 구별할 수 있다.
예를 들어, 데모에 의하여 경로를 주행하도록 로봇을 훈련함으로써, 사용자는 미리 모든 경로를 프로그래밍할 필요가 없다. 바람직하게, 이는 사용자로 하여금 사용자가 미리 예상하지 않았던 환경을 내비게이션하도록 로봇을 훈련하는 것을 가능하게 한다. 또한, 사용자는 로봇을 훈련하기 위해 임의의 특정의 전문적 지식을 활용할 필요가 없다. 예를 들어, 사용자는 컴퓨터 과학을 알거나 및/또는 로봇을 프로그래밍하는 방법을 교육받을 필요가 없다. 대신, 사용자는 로봇이 하기를 원하는 작업을 어떻게 수행하는지를 단지 알아도 된다. 예를 들어, 로봇이 플로어 청소기인 경우, 사용자는 어떻게 플로어를 청소하고 무엇을 로봇에게 데모할 수 있는지만 알면 된다.
일부 경우, 경로를 주행하도록 로봇을 훈련시키면 로봇이 각 사양에서 식별하고 프로그래밍하지 않고도 특정 작업을 사양에 맞게 수행할 수 있다. 예시로서, 로봇이 플로어 세정(scrubbing) 유닛인 경우, 플로어 세정 유닛이 벽, 선반 등으로부터 일정 거리를 구동하는 것이 바람직할 수 있다. 사용자는 로봇을 훈련할 때 이들 거리를 데모할 수 있으며, 일부 경우에는 로봇은 이들 거리를 반복할 수 있다.
더욱이, 내비게이션가능한 경로를 학습할 수 있는 로봇을 훈련하는 것은, 로봇을, 특정의 환경을 효율적으로 내비게이션하도록 특별히 프로그래밍시키면서 또한 많은 환경에서 수행하도록 일반적으로 프로그래밍시킬 수 있게 한다. 유리하게는, 이는 이러한 로봇이 특정 애플리케이션에서 최적화되고 동시에 다양한 애플리케이션에서 수행할 수 있는 능력 및 유연성을 갖는 이점을 가질 수 있게 한다.
일부 구현예에서, 맵 및 경로는 내비게이션 전에 검증 및/또는 승인될 수 있다. 이 검증(verification) 및/또는 승인(validation)은 맵 및/또는 경로 품질이 좋지 않아 로봇이 벽 및/또는 장애물에 충돌할 수 있는 사고 및/또는 상황을 방지할 수 있다.
도 1a는 이러한 개시의 구현예를 통하여 로봇(102)에 의하여 자율적으로 내비게이션되는 예시적인 경로(106)의 오버헤드 도면을 예시한다. 로봇(102)은 다양한 물체(108, 110, 112, 118)을 포함할 수 있는 환경(100)을 통하여 자율적으로 내비게이션할 수 있다. 로봇(102)은 초기화 위치(104)에서 출발하여 종료 위치(114)에서 종료할 수 있다.
예시로서, 일부 구현예에서, 로봇(102)은 로봇 플로어(floor) 스크러버, 진공 청소기, 스티머(steamer), 몹(mop), 스위퍼(sweeper) 등과 같은 로봇 플로어 청소기일 수 있다. 환경(100)은 청소되기를 원하는 플로어를 갖는 공간일 수 있다. 예를 들어, 환경(100)은 상점, 창고, 사무실 빌딩, 집, 저장 시설 등일 수 있다. 물체(108, 110, 112, 118) 중의 하나 이상은 플로어 위에 있을 수 있거나 또는 환경을 통하여 내비게이션할 수 있는 로봇의 능력을 방해할 수 있는 선반, 디스플레이, 물체, 품목, 사람, 동물 또는 어떤 다른 실체 또는 물건일 수 있다. 경로(106)는 로봇(102)에 의하여 주행되는 청소 경로일 수 있다. 경로(106)은 예시적인 경로(106)에 도시된 바와 같은 물체들(108, 110, 112, 118) 사이를 위브하는(weave) 경로를 따를 수 있다. 예를 들어, 물체들(108, 110, 112, 118)이 상점의 선반들인 경우, 로봇(102)은 상점의 복도를 따라 가면서 복도의 플로어를 청소할 수 있다. 그러나, 한정됨이 없이, 장애물없는 플로어 영역 및/또는 사용자가 플로어를 청소하기 위하여 사용할 수 있는 임의의 청소 경로를 따라서 앞뒤로 위브하는 것과 같은, 다른 경로들을 또한 생각할 수 있다. 따라서, 각각 도 1a, 도 1b, 및 도 1c에 예시된 경로들(106, 116, 126) 중의 하나 이상은 예시된 바와 같이 다르게 나타날 수 있으며 단지 예시적 예로서 의미된다. 예시된 바와 같이, 환경(100)의 한 예시가 도시되어 있으나, 환경(100)은 어떠한 수의 (예를 들어, 방 또는 건물의 어떤 크기, 구성, 및 레이아웃의) 형태들 및 배열들을 취할 수 있으며 본 개시에 의하여 한정되지 않는다.
경로(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)에게 데모한 영역에서 청소 시스템을 턴온할 수 있으며, 그렇지 않으면, 청소 시스템을 턴오프할 수 있다.
도 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)는 데모된 경로와 같이, 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정할 수 있다. 일부 구현예에서, 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하지 않도록 결정하는 것은 장애물 및/또는 물체를 언제 피할지를 결정하는 것을 포함한다.
이전에 언급된 바와 같이, 사용자가 경로(116)을 데모함에 따라, 사용자는, 어디서(예를 들어, 어떤 위치에서) 및/또는 어떤 궤적을 따라서 경로(116)을 따라서 청소할지 (그리고, 이어서 언제 로봇(102)가 경로(106)를 자율적으로 청소할지) 로봇(102)을 훈련하기 위하여, 로봇(102)의 청소 시스템을 턴온하고 턴오프하거나, 또는, 다른 행동들을 수행할 수 있다. 로봇은 이러한 행동들을 메모리(302)에 기록하고 이후에 자율적으로 내비게이션할 때 수행할 수 있다. 이러한 행동들은 터닝, 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트를 승하강시키기, 센서를 이동시키기, 센서를 켜거나 끄기 등과 같은, 로봇(102)이 수행할 수 있는 어떠한 행동들을 포함할 수 있다.
도 2는 경로(106)을 자율적으로 내비게이션하도록 로봇(102)을 훈련하는 예시적인 방법(200)의 프로세스 흐름도를 예시한다. 부분(202)은 초기화 위치(104)에 로봇(102)을 위치시키는 것을 포함한다. 초기화 위치(104)로의 로봇(102)의 이러한 제 1 배치는 로봇(102)을 초기화 위치(104)로 이동시키기 위해 운전하거나, 원격 조종하거나, 밀거나, 아니면 제어하는 수위, 관리인, 또는 어떠한 다른 사람일 수 있는 사용자(604)(도 6을 참조하여 후에 기술됨)에 의하여 수행될 수 있다. 예를 들어, 사용자(604)는 제어 신호를 로봇(102)으로 전송할 수 있다. 로봇(102)은 이동을 위한 명령들로서 이러한 제어 신호들을 수신할 수 있다.
도 2로 돌아가서, 부분(204)은 로봇(102)에게 내비게이션 경로(116)를 데모하는 것을 포함한다. 도 1b를 이용한 예시로서, 사용자(604)는, 한정됨이 없이, 경로(116)을 따라 로봇(102)을 운전하거나, 원격 조종하거나, 밀거나, 또는 아니면 제어함으로써 로봇(102)에게 데모할 수 있다. 예를 들어, 사용자(604)는 제어 신호를 로봇(102)에게 전송시킬 수 있다. 로봇(102)은 이동을 위한 명령으로서 이러한 제어 신호들을 수신할 수 있다. 복수의 이러한 이동은, 함께, 데모된 경로를 형성할 수 있다. 이런 식으로, 사용자(604)는 원하는 주행 경로를 로봇(102)에게 데모할 수 있다. 로봇 플로어 청소기의 상황에서, 데모된 경로(116)은 플로어를 청소하기 위한 원하는 경로일 수 있다. 이와 같이, 사용자(604)는 플로어를 청소하는 방법을 로봇에게 훈련시킬 수 있다.
도 2로 다시 돌아가서, 부분(206)은 다시 한번 초기화 위치(104)에 로봇(102)을 위치시키는 것을 포함한다. 초기화 위치(104)로의 로봇(102)의 이러한 제2 배치는 실질적으로 부분(204)의 데모 직후와 같은, 부분(204) 후의 후속시점에서, 또는 몇 시간 후, 며칠 후, 몇 주 후, 또는 사용자(604)가 플로어를 청소하기 원할 때마다와 같은, 얼마 후에 발생할 수 있다.
도 2로 다시 돌아가서, 부분(208)은 자율적인 내비게이션을 초기화하는 것을 포함한다. 일부 경우에, 사용자가 자율 내비게이션을 시작한 후에, 로봇(102)은 데모된 경로(116)와 실질적으로 유사할 수 있는 경로(106)(또는 일부의 경우에 경로(126))를 따라서 주행할 수 있다. 일부 구현예에서, 사용자(604)는 도 11a를 참조하여 기재되는 바와 같이 사용자 인터페이스(318) 상에서 데모된 경로를 선택할 수 있다. 도 1a를 이용한 예시로서, 로봇(102)은 그후 초기화 위치로부터 종료 위치(114)로 자율적으로 경로 또는 경로(106)와 실질적으로 비슷한 경로를 내비게이션할 수 있다.
도 3은 일부 구현예에서, 예시적인 로봇(102)의 기능 블록도를 예시한다. 도 3에 예시된 바와 같이, 로봇(102)은 제어기(304), 메모리(302), 전력 공급부(306), 및 동작 유닛(308) 을 포함하며, 이들 각각은 서로, 그리고 서로의 구성 요소 및/또는 서브 구성요소에 동작가능하게 및/또는 통신가능하게 커플링될 수 있다. 제어기(304)는 로봇(102)에 의해 수행되는 다양한 동작들을 제어한다. 특정 구현예가 도 3에 예시되지만, 본 개시의 내용을 제공받는 당업자가 용이하게 알 수 있는 바와 같이, 그 아키텍처가 일부 구현예에서 변경될 수 있음을 알 수 있다.
제어기(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) 내에 저장된 프로그램 명령에 기초하여 논리적 및 산술적 동작들을 수행할 수 있다.
동작 유닛(308)은 본 개시에 기재된 다양한 동작들을 수행하기 위하여 제어기(304) 또는 다른 제어기에 결합될 수 있다. 일부 구현예에서, 동작 유닛들(308)에서의 모듈들 중 하나 이상이 포함될 수 있거나, 어느 것도 포함되지 않을 수 있다. 본 개시를 통하여, 다양한 제어기 및/또는 프로세서가 참조된다. 일부 구현예에서, 단일 제어기(예를 들어, 제어기(304))가 기재된 다양한 제어기 및/또는 프로세서로서 기능할 수 있다. 다른 구현예에서, 동작 유닛(308) 중 하나 이상에 특별히 사용되는 제어기 및/또는 프로세서와 같ㅇ느, 상이한 제어기들 및/또는 프로세서들이 사용될 수 있다. 제어기(304)는 동작 유닛(308)에 전력 신호, 제어 신호, 센서 신호, 질의 신호, 상태 신호, 데이터 신호, 전기 신호 및/또는 이산 및 아날로그 신호를 포함한, 어떠한 다른 바람직한 신호와 같은 신호를 전송하거나 및/또는 수신할 수 있다. 제어기(304)는 동작 유닛(308)을 조정하거나 및/또는 관리할 수 있거나, 및/또는 타이밍을 (예를 들어, 동기적으로 또는 비동기적으로) 설정하거나, 켜거나 끄거나, 전력 예산을 제어하거나, 네트워크 명령들을 수신/전송하거나, 및/또는 업데이트하거나, 펌웨어를 업데이트하거나, 질의 신호를 전송하거나, 상태를 수신 및/또는 전송하거나, 및/또는 로봇(102)의 특징(features)을 실행하기 위한 어떠한 동작들을 수행할 수 있다.
동작 유닛(308)은 로봇(102)를 위한 기능을 수행하는 다양한 유닛을 포함할 수 있다. 예를 들어, 동작 유닛(308)의 유닛들은 매핑 및 로컬라이제이션 유닛(312), 센서 유닛(314), 맵 평가 유닛(324), 액추에이터 유닛(318), 통신 유닛(316), 내비게이션 유닛(326), 및 사용자 인터페이스 유닛(322)을 포함할 수 있다. 동작 유닛(308)은 로봇의 다양한 기능성을 제공하는 다른 유닛을 또한 포함할 수 있다. 일부 경우에, 동작 유닛(308)의 유닛들은 소프트웨어로 또는 하드웨어로 또는 소프트웨어와 하드웨어로 인스턴스화될 수 있다. 예를 들어, 일부 경우에, 동작 유닛(308)의 유닛들은 제어기에 의해 실행되는 컴퓨터 구현 명령들을 포함할 수 있다. 일부 경우에, 동작 유닛(308)의 유닛들은 하드코딩된 로직을 포함할 수 있다. 예를 들어, 일부 경우에, 동작 유닛(308)의 유닛들은 제어기에 의해 실행되는 컴퓨터 실행 명령들, 및 하드코딩된 로직 모두를 포함할 수 있다. 동작 유닛(308)이 소프트웨어로 적어도 부분적으로 구현되는 경우, 동작 유닛(308)은 하나 이상의 기능성을 제공하도록 구성된 코드의 유닛들/모듈들을 포함할 수 있다.
일부 구현예에서, 센서 유닛(314)은 로봇(102) 내에서 및/또는 그 주위에서 특징을 검출할 수 있는 시스템을 포함할 수 있다. 센서 유닛(314)은 로봇(102)의 내부 또는 외부에 있는 센서를 포함할 수 있거나 및/또는 부분적으로 내부 및/또는 부분으로 외부에 있는 구성요소를 가질 수 있다. 센서 유닛(314)은 소나, 라이다, 레이다, 레이저, 비디오 카메라, 적외선 카메라, 3D 센서, 3D 카메라, 및/또는 본 분야에 알려진 어떠한 다른 센서와 같은 외부 수용성 센서를 구비할 수 있다. 센서 유닛(314)은 가속계, 관성 측정 유닛, 주행거리 측정계, 자이로스코프, 속도계 등과 같은 자기 수용성(proprioceptive) 센서를 또한 포함할 수 있다. 일부 구현예에서, 센서 유닛(314)은 미가공 측정치(예를 들어, 전류, 전압, 저항, 게이트 로직 등) 및/또는 변환된 측정치(예를 들어, 거리, 각도, 장애물에서 검출된 지점 등)을 수집할 수 있다.
일부 구현예에서, 매핑 및 로컬라이제이션 유닛(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) 상으로 업로드될 수 있다.
매핑 및 로컬라이제이션 유닛(312)은 맵(700)에 로봇(102)을 로컬라이징하기 (예를 들어, 위치시키기) 위하여 센서 유닛(314)으로부터 센서 데이터를 또한 수신할 수 있다. 일부 구현예에서, 매핑 및 로컬라이제이션 유닛(312)은 로봇(102)로 하여금 맵(700)의 좌표에서 자신을 로컬라이징하도록 하는 로컬라이제이션 시스템 및 방법을 포함할 수 있다. 센서(314)로부터의 데이터에 적어도 부분적으로 기초하여, 매핑 및 로컬라이제이션 유닛(312)은 환경(100)의 맵(700)의 좌표에서 로봇(102)의 위치를 추론할 수 있다. 맵(700)의 좌표로 로봇(102)을 로컬라이징하는 능력은 로봇(102)로 하여금, 맵(700)을 이용하여 환경을 내비게이션하게 하여 로봇(102)이 매핑된 경로(716) 상에 있는 위치를 근사화가능하게 할 수 있다.
일부 구현예에서, 통신 유닛 (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")), 및/또는 무선 데이터 전송의 임의의 다른 형태와 같은 전송 프로토콜을 전송하거나 수신할 수 있도록 구성될 수 있다.
본원에서 사용될 때, 네트워크 인터페이스는, 제한 없이, 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) 및/또는 기타 무선 표준 중의 하나 이상을 포함할 수 있다.
통신 유닛(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)에 대한 서버로부터 업데이트(예를 들어, 펌웨어 또는 데이터 업데이트), 데이터, 상태, 지령 및 다른 통신을 수신할 수 있다.
일부 구현예에서, 액추에이터 유닛(318)은 전기 모터, 가스 모터, 구동식 자석 시스템, 솔레노이드/래칫 시스템, 압전 시스템(예를 들어, 인치웜 모터), 자기제한적 요소, 제스티큘레이션, 및/또는 본 분야에 알려진 액추에이터를 구동하는 임의의 방식과 같은, 액추에이터를 포함할 수 있다. 예시로서, 이러한 액추에이터는 로봇(102)이 환경(100) 또는 어떠한 다른 환경을 통하여 내비게이션할 수 있도록 휠 또는 다른 변위 가능한 드라이버(displacement enabling drivers)(예를 들어, 기계적 레그, 제트 엔진, 프로펠러, 유압 장치 등)를 구동할 수 있다. 일부 경우에, 액추에이터 유닛(318)은 행동들 및/또는 플로어 청소를 위한 브러시를 모빌라이징하기, (예를 들어, 위로, 아래로, 좌로, 우로, 전방으로, 후방으로) 스퀴지를 이동시키기, 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트를 승하강시키기, 센서 유닛(314)의 카메라 및/또는 어떠한 센서를 켜기, 및/또는 로봇(102)이 행동을 수행하기를 원하는 어떠한 이동과 같은, 행동 특정의 작업들을 위해 구성된 액추에이터들을 포함할 수 있다.
일부 구현예에서, 사용자 인터페이스 유닛(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)에 통신가능하게 결합될 수 있다.
일부 구현예에서, 맵 평가 유닛(324)는 비교기, 신호 처리기, 이미지 처리기, 및 다른 소프트웨어 또는 하드웨어 구성요소를 포함할 수 있다. 도 7a 및 7b, 도 8a 내지 도 8c, 도 9a 내지 도 9c, 도 10, 도 11을 참조하여 기술되는 바와 같이, 맵 평가 유닛(324)은 매핑 오류들을 검출하고, 맵(700)의 품질(예를 들어, 높음, 좋음, 수용할만 함, 낮음, 및/또는 어떠한 다른 지정) 및/또는 자율적인 내비게이션을 위한 맵(700)의 유용성을 결정하기 위하여, 맵(700)(또는 어떠한 다른 맵)을 분석하고 평가할 수 있다. 일부 경우에, 맵(700) 또는 어떠한 다른 맵을 분석할 때에, 맵 평가 유닛(324)은 매핑 오류가 없었음을 및/또는 맵이 낮은 품질임을 결정할 수 있다. 결과적으로, 로봇(102)은 사용자 인터페이스 유닛(322)을 이용하거나 또는 통신 유닛(316)을 통하여 사용자(예를 들어, 사용자(604))에게 경로(예를 들어, 경로(116))을 다시 데모하거나 아니면 환경(100)을 다시 매핑하도록 프롬프트할 수 있다.
일부 구현예에서, 내비게이션 유닛(326)은 로봇(102)이 내비게이션할 방향 명령을 제공하도록 구성된 구성요소 및/또는 소프트웨어를 포함할 수 있다. 내비게이션 유닛(326)은 매핑 및 로컬라이제이션 유닛(312)에 의해 발생되는 맵 및 로컬라이제이션 정보, 센서 유닛(314) 및/또는 다른 동작 유닛(308)로부터의 센서 데이터를 프로세싱할 수 있다. 예를 들어, 내비게이션 유닛(326)은 매핑 및 로컬라이제이션 유닛(312)으로부터 맵(700)을 수신할 수 있다. 내비게이션 유닛(326)은 경로(716)를 포함하여, 맵(700) 내에서 로봇(102)의 위치를 적어도 부분적으로 나타낼 수 있는 매핑 및 로컬라이제이션 유닛(312)로부터 로컬라이제이션 정보를 또한 수신할 수 있다. 내비게이션 유닛(326)은 로봇(102)의 주위의 물체를 적어도 부분적으로 표시할 수 있는 센서 유닛(314)로부터 센서 데이터를 또한 수신할 수 있다. 맵, 위치, 및 센서 데이터 중의 하나 이상을 이용하여, 내비게이션 유닛(326)은 로봇(102)에게 어디(예를 들어, 전방, 좌측, 우측, 후방 등)로 내비게이션해야 할지를 명령할 수 있다.
일부 구현예에서, 전력 공급부(306)은, 한정됨이 없이, 리튬, 리튬 이온, 니켈-카드뮴, 니켈-메탈 하이드라이드, 니켈-수소, 탄소-아연, 산화은, 아연-탄소, 아연-공기, 산화수은, 알칼라인, 또는 본 분야에 알려진 어떠한 다른 형태의 배터리를 포함하는 하나 이상의 배터리를 포함할 수 있다. 특정 배터리들은, (예를 들어, 공명 회로 및/EEH는 공명 탱크 회로에 의한) 무선으로 및/또는 외부 전원에 플러깅하는 것과 같이, 충전식일 수 있다. 전력 공급부(306)는 또한 태양, 바람, 물, 핵, 수소, 가솔린, 천연 가스, 화석 연료, 기계적 에너지, 증기, 및/또는 어떠한 전력원을 전기로 변환하는 벽 소켓 및 전자 장치를 포함하는, 어떠한 에너지 공급기일 수 있다.
일부 구현예에서, 동작 시스템(310)은 메모리(302), 제어기(304), 전력 공급부(306), 동작 유닛(308)에 있는 모듈들, 및/또는 로봇의 임의의 소프트웨어, 하드웨어 및/또는 피처를 관리하도록 구성될 수 있다. 예를 들어, 그리고 한정됨이 없이, 동작 시스템(310)은 로봇(102)을 위한 하드웨어 자원을 관리하는 장치 드라이버를 포함할 수 있다.
앞에서 언급한 바와 같이, 로봇(102)의 상술한 구성요소들 중 어느 것은 소프트웨어 및/또는 하드웨어로 인스턴스화될 수 있다. 예를 들어, 유닛/모듈은 하드웨어이거나 및/또는 컴퓨터 상에서의 코드일 수 있다.
도 4는 로봇(102)이 경로를 학습하고 그 경로를 주행하는 예시적인 방법(400)의 프로세스 흐름도를 예시한다. 예를 들어, 티칭 단계(414)에서의 부분들(402, 404, 406)에서, 로봇(102)은 사용자(604)에 의하여 데모된 경로(116)를 학습할 수 있다. 이어서, 자율 단계(416)에서의 부분들(408, 416, 412)에서, 로봇(102)은 경로(106, 126)를 따라서 자율적으로 내비게이션할 수 있다.
일부 구현예에서, 로봇(102)은 도 5a에 예시된 사용자 인터페이스(500)에서 입력(574)으로부터 입력을 수신함으로써 티칭 단계(4214)를 시작할 수 있다. 사용자 인터페이스(500)은 모바일 장치, 특수 장치, 스크린을 가지며 사용자 입력을 수신하도록 구성된 어떠한 다른 장치일 수 있는, 디스플레이(576) 상에 나타날 수 있다. 일부 경우에, 디스플레이(576)는 로봇(102)의 사용자 인터페이스 유닛(322)의 부분일 수 있다. 일부 경우에, 디스플레이(576)은, 한정됨이 없이, 로봇(102)의 통신 유닛(316)을 통하여 통신 가능하게 결합되는 것과 같이, 로봇(102)에 통신 가능하게 결합되는 별도의 디스플레이일 수 있다. 입력(574)은 버튼, 무선 버튼, 풀다운 메뉴, 텍스트 입력, 및/또는 사용자가 본 분야에 알려진 정보 및/또는 명령을 입력할 수 있는 어떠한 방식을 포함할 수 있다. 사용자 인터페이스(500)는 본 개시에서 추후에 기술될, 자율 단계(416)를 개시하기 위하여 사용될 수 있는, 입력(572)를 또한 포함할 수 있다. 입력(572)은 버튼, 무선 버튼, 풀다운 메뉴, 텍스트 입력, 또는 본 분야에서 알려진 정보 및/또는 명령을 사용자가 입력하는 어떠한 방식을 포함할 수 있다.
도 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)에 위치되어 있음을 검출할 수 있다.
일부 구현예에서, 카메라는 천장에 배치되며, 카메라는 로봇(102)에 (예컨대, 통신 유닛(316)을 통해) 통신가능하게 결합될 수 있다. 일부의 경우에, 카메라는 센서 유닛(314)의 일부일 수 있다. 카메라는 이미지 프로세싱 및/또는 기계 학습을 통해 로봇(102)의 위치/자세를 결정할 수 있고, 위치/자세를 로봇(102)에게 전달할 수 있다. 일부의 경우에, 카메라는 이미지 프로세싱 및/또는 기계 학습을 통해 로봇(102)이 언제 초기화 위치(104)에 있는지를 인식하여, 로봇(102)이 초기화 위치(104)에 있음을 로봇(102)에게 전달할 것이다.
일부의 경우에, 사용자(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)은 그 방향 및 위치를 초기화할 수 있다.
일부 구현예에서, 초기화 위치(104)로부터, 로봇(102)은 초기화 위치(104)에서의 로봇(102)의 존재를 검출할 수 있고/있거나 하나 이상의 주변 물체에 대한 로봇(102)의 상대적 위치 및/또는 방향을 결정할 수 있다. 이러한 구현예에서, 로봇(102)이 초기화 위치(104)에 존재하는 것을 검출하고 그 방향 및/또는 위치를 초기화하기 위해, 로봇(102)은 자신의 센서(센서 유닛(314) 등)를 적어도 부분적으로 사용하여 주위를 센싱할 수 있다. 이러한 센서는 물체(물품, 벽 등), 플로어, 천장, 사람과 사물, 표시, 표면 등과 같은 주위 환경의 특성을 센싱할 수 있다. 그 주변에서의 센싱된 물체의 상대적 위치 및/또는 방향을 통해 로봇은 초기화 위치에 대한 방향을 얻을 수 있다.
예시적인 예로서, 도 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)에 대해 좌측일 수 있다.
로봇(102)은 하나 이상의 전방면(502), 우측면(508), 좌측면(506) 및 후방면(504)을 따라 배치된 하나 이상의 센서(314)의 일부이거나/이고 본 개시에서 설명하는 임의의 센서와 실질적으로 유사할 수 있는) 센서(560A - 560D)를 가질 수 있다. 본 개시에서 설명한 센서 유닛(314)의 일부이고/이거나 어느 센서일 수 있음)를 포함할 수 있다. 센서(560A - 560D)는 외부 수용성 센서를 포함할 수 있다. 일부의 경우, 센서(560A - 560D) 각각은 주위 환경(100)의 상이한 특성들을 검출할 수 있는 다수의 센서들을 포함할 수 있다. 또한, 로봇(102)은 외부 수용성 센서를 포함할 수 있는 하나 이상의 센서(568A, 568B)를 가질 수 있다. 상이한 유형의 센서 및/또는 상이한 센서 유효범위(예컨대, 더 좁거나 넓은 범위의 주위 환경(100)을 검출하기 위한 센서 배치)가 요망되는 경우, 센서들을 도 5b 내지 도 5d에 도시된 것보다 더 많이 이용하거나 상이한 위치에 사용될 수 있음을 당업자는 유의해야 할 것이다.
센서(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)에 의해 방출, 반사 및/또는 수신되는 특징적인 에너지를 적어도 부분적으로 나타낼 수 있음을 유의해야 할 것이다.
예시적인 소나 센서는, 확산이 로봇(102)으로부터의 원하는 영역 또는 범위를 커버하도록 센서(560A - 560D) 중 하나 이상으로서 배치될 수 있다. 측정(거리 및/또는 각도 측정 등)은 센서(560A - 560D)에 대해 또는 로봇(102)의 질량 중심 또는 기타 지정된 위치 등과 같은 로봇(102) 몸체 상의 기타 위치에 대해 수행될 수 있다.
도 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 축에서 기준점까지의 거리일 수 있다.
일부 구현예에서, 하나 이상의 센서(560A - 560D)는 물체(512)의 지점(590)에 대한 거리(516)를 측정 또는 근사화할 수 있다. 예를 들어, 센서(560A)는 방출된 음파와 그 음파가 반사되어 센서(560A)로 복귀하는 시간 사이의 시간차를 측정함으로써 거리를 측정할 수 있는 소나 센서일 수 있으며, 방출된 음파와 반사된 음파의 시간차는 음속을 사용하여 거리로 환산될 수 있다.
일부 구현예에서, 하나 이상의 센서(560A-560D)는 추후 설명되는 바와 같이, 맵(700)을 생성할 수 있으며, 맵(700)은 물체(512)뿐만 아니라, 일부 구현예에서, 학습된 경로를 포함한다. 거리(516)는 예를 들어, 맵(700) 상의 상대 단위를 사용하거나 맵(700)의 상대 단위를 절대 거리 측정치로 환산함으로써, 맵(700) 상에서 취한 근사 측정에 적어도 부분적으로 기초하여 근사화될 수 있다.
로봇(102)은 또한 초기화 위치(104)에서 그 방향을 근사시킬 수 있다. 일부 구현예에서, 로봇(102)은 초기화 위치(104), 물체(512), 센서(560A - 560D), 로봇(102)의 질량 중심 또는 다른 소정의 위치에서의 지점에 대한 기준점에 상대 각도(514)를 근사시킬 수 있다. 각도(514)는 도(degree), 라디안 또는 기타 단위로 측정할 수 있다. 일부 구현예에서, 각도(514)는 수평면(예를 들어, 전술한 거리(516)의 직각 좌표계 또는 다른 측정치)과 같은 2D 평면에 대해 측정될 수 있다. 일부 구현예에서, 로봇(102)에 대한 물체(512)의 하나 이상의 롤(roll), 요(yaw), 및 피치와 같은 추가 각도가 측정될 수 있다.
예시적인 예로서, 로봇(102)은 물체(512)에 대한 각도(514)를 측정할 수 있다. 물체(512)까지의 거리(516)를 근사화할 수 있는 방법과 유사하게, 하나 이상의 센서(560A - 560D)는 물체(512)에 대한 각도(514)를 근사화할 수 있다. 예를 들어, 센서(560A)는 수신된 반사 에너지의 각도에 기초하여 센서(560A)에 대한 물체(512)의 방위(예를 들어, 각도(514))를 결정할 수 있는 소나 센서일 수 있다. 전술한 바와 같이, 일부 구현예에서, 하나 이상의 센서(560A - 560D)는 물체(512)를 포함할 수 있는 맵(700)을 생성할 수 있다. 각도(514)는 예를 들어, 맵(700) 상의 상대 단위를 사용하거나 측정된 거리에 대한 상대 단위를 스케일링함으로써, 맵(700) 상에서 취한 근사 측정에 적어도 부분적으로 기초하여 근사화할 수 있다.
일부 구현예에서, 로봇(102)은 물체(512) 및/또는 지점(590)에 대한 자신의 위치 및/또는 방향(예를 들어, 거리(516) 및/또는 각도(514))을 메모리(302) 에 기록하고, 물체(512) 및/또는 지점(590)에 대한 자신의 위치를 초기화 위치(104)에 연관시킨다. 이러한 방식으로, 로봇(102)은 이후에 초기화 위치(104)로 복귀할 때 초기화 위치(104)를 검출하고 물체 (512) 및/또는 지점(590)에 대한 위치를 초기화할 수 있다. 초기화 위치(104)의 검출 및 위치의 초기화는 매핑 및 로컬라이제이션 유닛(312)에 의해 수행될 수 있다.
도 5c는 초기화 위치(104)에서 소정 각도로 위치된 로봇(102)의 오버헤드 도면을 예시한다. 이때, 로봇(102)의 센서(560A)는 도 5b를 참조하여 기술된 센서(560A)가 거리(516) 및 각도(514)를 측정한 방법과 실질적으로 유사한 시스템 및 방법을 사용하여 물체(512)의 지점(511)에 대한 거리(524) 및 각도(518)를 측정할 수 있다. 또한, 도 5c는 복수의 센서(560A-560D)가 물체(512)에 대한 거리 및 각도를 독립적으로 측정하는 것을 예시한다. 예를 들어, 센서(560B)는 도 5b를 참조하여 기술된 센서(560A)가 거리(516) 및 각도(514)를 측정한 방법과 실질적으로 유사한 시스템 및 방법을 사용하여 물체(512)의 지점(592)에 대한 거리(522) 및 각도(520)를 측정할 수 있다. 이러한 방식으로, 로봇(102)은 초기화 위치(104)를 검출할 수 있고 및/또는 물체(512)에 대한 로봇(102)의 위치 및/또는 방향을 초기화할 수 있다. 일부 구현예에서, 로봇(102)은 물체(512) 및/또는 지점(591, 592)에 대해 로봇(102)의 위치 및/또는 방향(예를 들어, 거리 (516, 522) 및 각도 (514, 520) 중 하나 이상)을 메모리(302)에 기록할 수 있으며, 물체(512) 및/또는 지점(591, 592)에 대한 로봇(102)의 위치 및/또는 방향을 초기화 위치(104)와 연관시킨다. 따라서, 로봇(102)은 나중에 초기화 위치(104)로 복귀할 때, 초기화 위치(104)를 검출하고 물체(512) 및/또는 지점(591, 592)에 대한 로봇(102)의 위치 및/또는 방향을 초기화할 수 있다.
도 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)의 위치 및/또는 방향을 초기화할 수 있다.
복수의 물체(512, 546, 548, 550)를 사용하여 초기화 위치(104)를 검출하는 것은 로봇(102)이 초기화 위치(104)를 더욱 정밀하게 위치시킬 수 있도록 한다는 점에서 바람직할 수 있다. 또한, 복수의 물체들(512, 546, 548)을 사용하는 것은 초기화 위치 (104)에 추가적인 고유성을 제공할 수 있는데, 이는 초기화 위치(104)를 검출하는 로봇(102)을 보조할 수 있고 및/또는 로봇(102)이 다른 위치를 초기화 위치(104)로 잘못 결정할 가능성을 감소시킨다.
로봇(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)을 초기화할 수 있도록 다수의 원점이 제공될 수 있다. 다수의 원점을 사용하는 것은 다중 맵을 생성하고, 계산상의 단순성을 위해 선택할 다수의 원점을 제공하고, 하나 이상의 센서 판독 값이 잘못되었을 경우 센서의 체크를 제공하고, 기타 이점을 제공하는 것이 바람직할 수 있다.
바람직하게는, 센서(568A - 568B)는 주행거리 측정계를 사용하여 센서(568A - 568B)의 초기화와 관련하여 로봇(102)의 움직임(예를 들어, 주행 거리 이동 및 회전량)을 추적할 수 있다. 예를 들어, 센서(568A-568B)는 하나 이상의 주행거리 측정계(예: 휠 인코더(예: 회전식 인코더)), 영상 주행기록계, 나침반, GPS(Global Positioning System), 관성 측정 장치(IMU), 라이다(lidar), 및 로봇(102)의 각도 회전을 검출할 수 있는 3D 카메라(예를 들어, 적색, 녹색, 청색, 깊이("RGB-D") 카메라 등)를 포함할 수 있다. IMU는 가속도계, 자력계, 각속도 센서 등을 포함할 수 있다. 예를 들어, 센서(568A)가 라이다를 포함하는 경우, 변위(및 대응하는 위치)는 상이한 시간에서 상이한 이미지의 위치 차이에 기초하여 결정될 수 있다. RGB-D 카메라가 사용되는 경우, 스캔 매칭을 사용하여 위치를 결정할 수 있다. 센서(568A - 568B)는 또한 로봇(102)에 의해 주행된 거리를 측정하기 위해 하나 이상의 주행거리 측정계를 포함할 수 있다.
도 4의 방법(400)으로 돌아가서, 부분(404)에서, 로봇(102)은 사용자의 제어 하에서 경로(116) 및 환경(100)의 맵(700)을 기록하면서 경로(116)(도 1b에 도시됨)를 따라 주행한다. 도 6a는 예시적인 사용자(604)가 예시적인 로봇(102)을 제어하는 예의 측면도를 예시한다. 사용자(604)는 관리인, 관리자 또는 로봇(102)을 사용할 수 있는 임의의 다른 사람일 수 있다. 도시된 바와 같이, 로봇(102)은 상점, 창고, 사무실 빌딩, 주택, 저장 시설 등의 플로어를 청소하도록 구성된 플로어 청소기일 수 있다. 따라서, 로봇(102)의 아래 및/또는 주위의 플로어를 청소하도록 구성된 브러시(608)를 가질 수 있다.
로봇(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)이 행동을 수행하는데 필요한 임의의 움직임과 같은, 스크러버 또는 다른 로봇 형태의 다른 기구의 작동도 유사하게 학습될 수 있다.
일부 구현예에서, 자율적으로 내비게이션하는 동안 행동 및/또는 액추에이터 명령이 맵(700) 및/또는 그 내부의 경로(716) 상의 위치와 관련되는 경우, 로봇(102)은 이들 위치를 통과할 때마다 이들 행동 및/또는 액추에이터 명령을 수행할 수 있다. 일부 구현예에서, 자율적으로 내비게이션하는 동안, 행동 및/또는 액추에이터 명령이 맵(700) 상의 위치 및 궤도 및/또는 내부의 경로(716)와 관련되는 경우, 로봇(102)은 경로의 동일한 방향 및/또는 동일한 상대 시간에서의 위치를 지나갈 때 이들 행동 및/또는 액추에이터 명령을 수행할 수 있다. 따라서, 이러한 구현예들에서, 로봇(102)은 위치(예를 들어, 로봇이 순환되어 동일한 물리적 위치를 여러 차례 통과)를 통과할 때마다 행동 및/또는 액추에이터 명령을 수행하지 않고, 로봇이 위치(예를 들어, 장소)를 특정 방향으로 통과하거나 또는 경로의 특정 위치(들)을 지나갈 때만 행동 및/또는 액추에이터 명령을 수행한다.
당업자는 로봇(102)이 플로어 청소기인 경우에도 다수의 상이한 형태를 가질 수 있다는 것을 알 수 있다. 도 6b는 플로어 청소기용 예시적인 몸체 형태의 측면도를 예시한다. 도면은 비한정적인 예로서, 다양한 형태의 몸체 형태를 추가로 예시하고 있지만, 로봇(102)을 임의의 특정 몸체 형태 또는 플로어 청소기에 제한하지 않는다. 예시적인 몸체 형태(652)는 사용자가 몸체 형태(652)를 뒤에서 밀고 플로어를 청소할 수 있는 작은 프레임을 갖는 직립 형상을 갖는다. 일부 경우, 몸체 형태(652)는 사용자의 청소를 도울 수 있지만 또한 몸체 형태(652)의 자율 이동을 허용할 수 있는 동력 추진을 가질 수 있다. 몸체 형태(654)는 몸체 형태(652)보다 큰 구조적 형상을 갖는다. 몸체 형태(654)는 동력 구동되어 조향을 제외하면 몸체 형태(654) 상에 사용자의 힘이 거의 또는 전혀 없이도 움직일 수 있다. 사용자는 몸체 형태(654)가 움직일 때 그것을 조향할 수 있다. 몸체 형태(656)는 몸체 형태(656)가 청소할 때 사용자가 차량과 같이 몸체 형태(656)를 구동할 수 있도록 좌석, 페달 및 스티어링 휠을 포함할 수 있다. 몸체 형태(658)는 몸체 형태(656)보다 큰 형상을 가질 수 있고, 복수의 브러시를 가질 수 있다. 몸체 형태(660)는 사용자가 몸체 형태(660)를 구동함에 따라 앉는 부분 또는 완전히 둘러싸인 영역을 가질 수 있다. 몸체 형태(662)는 몸체 형태(662)를 운전하는 동안 사용자가 서있을 수 있는 플랫폼을 가질 수 있다.
또한, 본 개시에서 설명된 바와 같이, 로봇(102)은 플로어 청소기가 아닐 수 있다. 제한없는 추가적인 예시를 위해, 도 6c는 로봇(102)의 몸체 형태의 일부 추가 예들을 예시한다. 예를 들어, 몸체 형태(664)는 로봇(102)이 직립식 진공 청소기인 예를 도시한다. 몸체 형태(666)는 로봇(102)이 인체와 실질적으로 유사한 외관을 갖는 휴머노이드 로봇인 예를 예시한다. 몸체 형태(668)는 로봇(102)이 프로펠러를 갖는 드론인 예를 예시한다. 몸체 형태(670)은 로봇(102)이 휠 및 객실을 갖는 차량 형상을 갖는 예를 예시한다. 몸체 형태(672)는 로봇(102)이 로버(rover)인 예를 예시한다.
도 6a를 참조하면, 로봇(102)은 사용자(604)에 의한 제어를 위한 다양한 방식으로 구성될 수 있다. 예시된 바와 같이, 사용자(604)는 스티어링 휠(610)을 사용하여 로봇(102)을 조향하면서 로봇의 뒤에서 걸을 수 있다. 다른 구현예에서, 로봇(102)은 사용자(604)가 시트 또는 스탠딩 플랫폼 상에 타서 로봇(102)을 제어할 수 있는 탑승형 플로어 청소기(도시되지 않음)일 수 있다. 일부 구현예에서, 사용자(604)는 무선 원격 장치, 모바일 장치, 조이스틱 또는 당업계에 공지된 임의의 다른 장치와 같은 원격 제어기로 원격으로 로봇(102)을 제어할 수 있다. 이러한 제어는 좌회전, 우회전, 전진(예를 들어, 가속 페달의 사용 또는 로봇(102)에게 전진하라는 지시), 후진(예를 들어, 후진 페달 또는 로봇(102)에게 후진하라는 지시), 온/오프, 브러시 상승/하강, 물 온/오프 등을 포함한다. 일부 구현예에서, 사용자(604)는 로봇(102)의 이동을 구동하고, 브러시를 상승시키거나 하강시키고, 물을 온/오프하는 액추에이터 유닛(318)을 제어할 수 있다. 다른 구현예에서, 로봇(102)은 플로어 청소기가 아닐 수 있지만, 본 개시에 기재된 여타의 다른 로봇일 수 있다.
도 6d는 사용자(604)가 예시적인 로봇(102)을 제어하고 로봇(102)이 그 주변을 센싱할 때의 상면도를 도시한다. 로봇(102)은 로봇이 경로(116)를 주행함에 따라 하나 이상의 센서(560A-560D) 및 다른 센서를 사용하여 물체를 탐지하고 로봇(102)의 주변을 매핑할 수 있다. 예를 들어, 로봇(102)은 에너지 파(580A, 580C)를 방출할 수 있다. 에너지(580B)는 도 5e를 참조하여 본 명세서의 앞 부분에서 설명되었고, 명세서 전체에 걸쳐 여러 곳에 개시되었다. 에너지 파(580A, 580C)는 에너지 파(580B)와 실질적으로 유사할 수 있는데, 여기서 에너지 파(580A)는 센서(560A)에 대응하고, 에너지 파 (580C)는 센서(560C)에 대응한다.
도 7a는 로봇(102)이 환경(100)에서 주행함에 따라 예시적인 로봇 (102)에 의해 생성된 예시적인 맵(700) 및 경로(716)를 예시한다. 일부 구현예에서, 맵(700)의 생성은 매핑 및 로컬라이제이션 유닛(312)에 의해 수행될 수 있다. 맵(700)은 픽셀을 포함할 수 있으며, 각 픽셀은 환경(100)의 매핑된 영역에 대응한다. 맵(700)의 픽셀 수는 맵(700)의 해상도에 기초하여 결정될 수 있다. 예를 들어, 맵(700)은 다양한 디스플레이 크기(예컨대, 3.5 인치, 10 인치, 20 인치 및/또는 당업계에 공지된 임의의 다른 대각선 스크린 치수) 및 디스플레이 해상도(예를 들어, 800 x 600, 1024 x 768, 1360 x 768, 1680 x 1050, 1920 x 1200, 2560 x 1440, 3840 x 2160 또는 당업계에 공지된 임의의 공지된 디스플레이 해상도)도 볼 수 있다. 맵(700)을 표시하는 화면은 사각형 또는 원형, 삼각형, 육각형 또는 다른 모양을 비사각형 일 수 있다. 이들 스크린은 사용자 인터페이스 유닛(322)의 일부일 수 있다. 맵(700)은 환경(100)과 레이아웃에서 실질적으로 유사할 수 있으며, 맵(700)의 각 픽셀은 환경(100)의 위치를 근사화시킬 수 있다.
일부 구현예에서, 맵(700)의 픽셀은 하나 이상의 상태를 가질 수 있으며, 픽셀 상태는 픽셀에 의해 표현되는 환경(100) 내의 위치/장소의 특성의 적어도 일부를 표시한다. 예를 들어, 맵(700)의 픽셀은 바이너리일 수 있는데, 여기서 제 1 픽셀 상태(예를 들어, 픽셀 값)는 적어도 부분적으로 장애물없는(예를 들어, 내비게이이션 가능) 위치를 표시하고, 제 2 픽셀 상태는 적어도 부분적으로 차단(예: 내비게이션 불가) 위치를 표시한다. 예시로서, 영(0)의 픽셀 값은 장애물없는(clear) 위치를 적어도 부분적으로 표시할 수 있고, 하나(1)의 픽셀 값은 차단 위치를 적어도 부분적으로 표시할 수 있다.
일부 구현예에서, 전술한 바이너리 상태를 대신하여 또는 이에 부가하여, 맵(700)의 픽셀은 다음 중 하나 이상의 다른 픽셀 상태를 가질 수 있다: 미지의 위치(예컨대, 정보가 없는 위치/장소)를 적어도 부분적으로 표시하는 픽셀 상태; 이동되지 않아야 하는 위치/장소를 적어도 부분적으로 표시하는 픽셀 상태; 내비게이션 경로(예를 들어, 경로(716))의 일부를 적어도 부분적으로 나타내는 픽셀 상태; 로봇(102)이 주행한 영역을 적어도 부분적으로 표시하는 픽셀 상태; 로봇(102)이 주행하지 않은 영역을 적어도 부분적으로 표시하는 픽셀 상태; 물체를 적어도 부분적으로 표시하는 픽셀 상태; 정수(standing water)를 적어도 부분적으로 표시하는 픽셀 상태; 및/또는 맵(700) 상에 있는 위치/장소의 임의의 다른 분류를 나타내는 상태를 가질 수 있다.
맵(700)의 픽셀은 또한 하나 이상의 값 또는 픽셀 상태를 저장할 수 있다. 예를 들어, 맵(700)의 각각의 픽셀은 벡터 또는 매트릭스에 저장된 값과 같은 복수의 값을 저장할 수 있다. 이들 값은 위치가 경로(716)를 따라 지점(예를 들어, 픽셀)에서 측정될 때 로봇(102)의 위치/자세(예를 들어 위치 및/또는 방향 포함)를 적어도 부분적으로 표시하는 값을 포함할 수 있다. 이러한 값들은 로봇(102)이 위치/장소를 청소해야 하는 지의 여부 또는 로봇(102)에 의해 취해지는 다른 행동들을 포함할 수 있다
로봇(102)은 경로(716)로서 맵(700)에 반영될 수 있는 경로(116)(도 1b에 도시됨)를 따라 이동할 수 있다. 로봇(102)은 로봇 표시자(702)에 의해 맵(700) 상에 표시될 수 있으며, 맵(700) 내에서 로봇 표시자(702)의 위치는 환경(100) 내의 로봇(102)의 상대적 위치를 적어도 부분적으로 반영할 수 있다. 각각의 위치에서, 로봇(102)은 경로(116)를 따라 주행하고, 로봇(102)은 초기화 위치(104) 또는 다른 기준점(예를 들어, 물체들(512, 546, 548, 550), 지점들(590, 591, 592, 594, 596, 598) 및/또는 초기화 위치(104)에서 초기화되는 동안 로봇(102)이 사용하는 임의의 다른 기준점에 대한 그의 위치 및/또는 방향을 결정할 수 있다. 이러한 매핑 및 로컬라이제이션 기능은 매핑 및 로컬라이제이션 유닛(312)에 의해 수행될 수 있다. 초기화 위치(104)는 매핑 위치(724)로서 맵(700) 상에 나타낼 수 있다. 종단 위치(114)는 매핑 위치(726)로서 맵(700) 상에 나타낼 수 있다. 예를 들어, 로봇(102)은 자기 수용성 센서(568A - 568B)(예를 들어, 휠 인코더(예: 회전 인코더), 영상 주행기록계, IMU(가속도계, 자력계, 각속도 센서 등을 포함))를 사용하는 주행거리 측정계를 이용하여 초기화 위치(104)(또는 다른 참조 지점)으로부터의 거리를 측정하거나 추정하여 초기화 위치(104)에서 로봇의 초기화 이후의 움직임을 추적할 수 있다. 예시적인 예로서, 자기 수용성 센서들(568A - 568B) 중 하나 이상은 로봇(102)의 휠들의 회전에 기초하여 거리를 측정하거나 추정하는 휠 인코더일 수 있다. 또 다른 예시적인 예로서, 영상 주행기록계가 카메라에 의해 촬영된 순차적 이미지를 통해 로봇(102)의 이동된 거리 및/또는 방향을 측정 또는 추정하는데 사용될 수 있다. 영상 주행기록계는 칼만 필터 또는 프로젝션을 사용하여 광학 유동장(예컨대, 루카스-카나 데(Lucas-Kanade) 방법 또는 다른 방법을 사용하여)을 구성하고, 카메라 움직임을 추정할 수 있다. 다른 비한정적인 예로서, IMU는 로봇(102)의 위치 및/또는 방향을 측정 또는 추정하는데 사용될 수 있다.
로봇(102)이 환경(100)을 통해 내비게이션하는 것과 실질적으로 유사한 방식으로 로봇 표시자(702)가 맵(700)을 따라 진행함에 따라, 로봇(102)은 맵(700)에 경로(716)를 기록할 수 있다. 바람직하게는, 일부 구현예에서, 맵(700)과 경로(716)는 함께 같이 생성되며, 로봇(102)은 실질적으로 유사한 시간에 환경(100)을 매핑하고, 경로(716)를 기록한다. 따라서, 일부 구현예에서, 맵(700)과 경로(716)는 함께 쌍으로 형성될 수 있으며, 여기서 각각의 기록된 경로는 특정 맵과만 저장된다.
경로(116)의 일부인 각각의 위치에서, 로봇(102)은 맵(700) 내의 경로(716) 상의 대응 픽셀의 상태를 픽셀이 내비게이션 경로의 일부임을 나타내는 픽셀 상태로 변경할 수 있다. 동시에, 로봇(102)은 도 5a - 5e와 관련한 센서들(560A-560D)을 참조하여 기술된 것과 실질적으로 유사한 시스템들 및 방법들을 사용하여 하나 이상의 센서들(560A-560D)을 사용하여 물체들에 대한 로봇의 위치 및/또는 방향을 측정할 수 있다. 이러한 방식으로, 로봇(102)은 맵(700)을 채우기 위해 선반 또는 벽과 같은 대상물에 대한 로봇(102)의 위치 및/또는 방향을 검출 및/또는 측정할 수 있으며, 로봇(102)은 이러한 검출 및 측정에 적어도 부분적으로 기초하여 픽셀 상태를 변경할 수 있다.
로봇(102)이 물체를 검출하는 경우, 로봇(102)은 센서(560A-560D)를 사용하여 로봇(102)에 대한 복수의 방향으로 물체의 위치 및/또는 방향을 검출 및/또는 측정할 수 있다. 동시에, 로봇(102)은 센서(568A - 568B)를 사용하여 로봇(102)의 위치(예를 들어, 주행 거리) 및/또는 방향을 추정할 수 있다. 로봇(102)이 환경 내에서 이동함에 따라, 상이한 물체가 센서의 범위 내에 들어올 수 있다. 예를 들어, 로봇(102)의 전면(502)에 위치될 수 있는 센서(560B)는 범위(704)를 가질 수 있다. 예를 들어, 로봇(102)은 전면(502)에서 범위(704)까지의 물체를 검출할 수 있다. 유사하게, 센서(560A, 560C, 560D)는 각각 범위를 가질 수 있고 이들 범위 내에서 물체를 검출할 수 있다. 로봇(102)이 물체를 검출하고 로봇(102)으로부터의 상대적인 위치 및/또는 방향을 결정함에 따라, 로봇(102)은 검출된 물체에 대응하는 픽셀의 위치를 맵(700) 상에 표시할 수 있다. 이러한 픽셀은 이들 픽셀이 물체(예를 들어, 차단 위치 또는 물체를 나타내는 픽셀 상태)에 대응하는 것을 적어도 부분적으로 표시하는 상태로 바뀔 수 있다.
로봇(102)은 픽셀 단위로 맵(700)을 채우기 때문에, 맵(700)은 소정의 아티팩트(artifacts)를 가질 수 있다. 예를 들어, 매끄럽게 나타나는 벽은 센서에 수신된 신호에 적어도 부분적으로 기초하여 들쭉날쭉하게 나타날 수 있다. 예를 들어, 센서(560A - 560D)가 소리, 빛 또는 다른 요소들의 표면으로부터의 반사율에 의존하는 소나(sonar), 라이다(lidar) 또는 기타 센서를 포함하는 경우, 표면 내에 가변성이 있을 수 있다. 또한, 모션 아티팩트 그리고 기타 아티팩트 및/또는 왜곡이 있을 수 있다.
일부 경우, 센서(560A - 560D)는 특정 영역들을 센싱하지 못할 수 있다. 예를 들어, 물체는 영역을 센싱하는 로봇(102)의 기능을 방해할 수 있거나, 상기 영역이 사각 지대(예를 들어, 센서의 측정 범위에 의해 커버되지 않는 장소)에 나타날 수 있다. 다른 비한정적인 예로서, 박스(706)는 로봇(102)이 맵(700) 상에서 터닝(708)할 때 로봇(102)에 의해 취해진 측정치를 맵(700) 상에 하이라이트로 표시한다. 로봇(102)이 회전함에 따라, 센서(560A - 560D)는 박스(706)에 의해 백색으로 표시된 영역(예컨대, 내비게이션 위치)을 측정하지만, 어떤 물체는 센서의 범위를 방해하여 박스(706)에 도시된 바와 같은 길고 파쇄된 외관을 생성한다.
로봇(102)이 초기화 위치(104)에서 종료 위치(114)까지 경로(116)를 따라 주행함에 따라, 로봇(102)은 로봇(102)의 센서들의 범위 내에서 경로(116) 및 경로(116)의 주위 환경(100)을 포함하는 맵(700)을 생성할 수 있다. 도 7b는 일단 완료된 예시적인 맵(700)을 나타낸다. 바람직하게는, 로봇(102)은 매핑된 경로(716)를 기록하고 맵(700)의 매핑된 경로(716)의 주위 환경을 하나의 데모로 매핑할 수 있다. 따라서, 맵(700)은 로봇(102)이 하나의 데모만큼 자율적으로 경로(116)(또는 경로(116)와 실질적으로 유사한 경로)를 다시 내비게이션할 수 있게 한다.
다른 최신 시스템 및 방법에서는 사용자가 맵을 업로드하거나, 맵에 경로를 그리거나, 환경을 매핑하는 다양한 데모를 이용하도록 요구될 수 있다. 이러한 시스템 및 방법은 사용자에게 부담스러울 수 있다. 예를 들어, 이러한 시스템 및 방법은 사용자가 작업할 이들 시스템 및 방법에 대해 만족스러운 방법으로 모든 단계들을 수행할 수 있더라도, 번거롭고 낮은 사용자 경험을 제공할 수 있다. 로봇(102)이 매핑된 경로(716)를 기록하고 맵(700)에서 하나의 데모로 매핑하는 것은 사용자가 최소한의 사용자 상호 작용으로 로봇(102)을 훈련 및/또는 프로그래밍할 수 있게 한다는 점에서 유리할 수 있다. 이러한 능력은 비교적 적은 사용자 데모에 기초하여 많은 환경에 쉽게 적응할 수 있다는 점에서 유리하다.
다시 도 4를 참조하면, 부분(406)에서, 로봇(102)은 맵(700)에서의 매핑 오류를 결정할 수 있다. 이러한 결정은 맵 평가 유닛(324)에 의해 수행될 수 있다. 바람직하게는, 로봇(102)이 단일 데모로 맵 (700)을 생성한 이후에 경로(106)를 바람직하게 자율 주행하는 경우(예를 들어, 자율 단계(416)), (경로(716)을 포함하는) 맵(700)에 매핑 오류가 있었는지 여부를 결정하는 것은, 로봇(102)로 하여금, 예를 들어, 충돌, 오류 및/또는 부정확하거나 잘못된 매핑의 부정적인 결과를 피할 수 있도록 해준다. 로봇(102)이 맵(700)에서 충분한 매핑 오류가 있고 및/또는 맵(700)의 품질이 좋지 않다는 것을 알게 되면, 로봇(102)은 (예를 들어, 사용자 인터페이스를 통해) 맵의 품질이 좋지 않다는 것을 나타내는 경고, 알람, 프롬프트(prompt) 및/또는 다른 표시를 사용자(예: 사용자(604) 또는 다른 사용자)에게 전송할 수 있다. 일부의 경우에, 로봇(102)은 (예를 들어, 부분들(402, 404)을 다시 수행함으로써) 경로를 다시 데모하도록 경보, 알람, 프롬프트 또는 다른 지시를 사용자에게 전송할 수 있다. 바람직하게는, 자율 내비게이션에 앞서 오류를 결정하거나 및/또는 맵(700)의 품질을 평가함으로써, 로봇(102)이 장애물과 충돌하는 것을 방지하고, 로봇(102)의 매핑으로 인해 멈추는 것을 방지하여 시간을 절약하고 손상을 방지 할 수 있다.
로봇(102)이 매핑 오류를 검출하고 및/또는 맵(700)(경로(716)를 포함)의 품질을 평가할 수 있는 다수의 방법이 있으며, 각각의 방법은 단독으로 또는 조합하여 구현된다. 특히, 모든 매핑 오류 또는 매핑 오류의 존재가 맵(700)이 품질이 좋지 않다는 것을 의미하는 것은 아니며 및/또는 자율 내비게이션에 사용될 수 없다는 것을 의미하는 것은 아니다. 실제로, 맵(700)은 많은 오류를 가질 수 있고 자율 내비게이션에 여전히 적합 할 수 있다. 오히려, 부분(406)은 로봇(102)이 맵(700)에 적어도 부분적으로 기초하여 자율적으로 내비게이션할 수 없거나 자율적으로 내비게이션해서는 안될 정도로 맵(700)이 충분히 취약한지를 결정하는데 사용될 수 있다. 전술한 내용은 로봇(102)이 이러한 평가를 할 수 있는 방법의 몇 가지 예시적인 예를 제공한다. 일부 구현예에서, 매핑 오류를 검출하고 및/또는 맵(700)의 품질을 평가할 때, 로봇(102)은 맵(700)의 오류의 적어도 일부 특성을 고려할 수 있다. 바람직하게는, 일부 경우에 있어서, 로봇(102)은 사용자(604)에 의한 입력 및/또는 노력이 거의 또는 전혀 없이 매핑 오류를 검출하고 및/또는 맵(700)의 품질을 평가할 수 있다. 이는 로봇(102)의 자율성을 더욱 강조하고 강화하는 탄탄한 경험을 사용자(604)에게 부여한다.
예시적인 예로서, 일부 구현예들에서, 로봇(102)은 맵(700) 및/또는 경로(716)를 검증하기 위해 서버, 제어 센터, 모바일 장치 및/또는 사용자/뷰어를 위한 임의의 인터페이스로 맵(700)을 전송할 수 있다. 뷰어는 스크린, 컴퓨터 모니터, 텔레비전 등과 같은 디스플레이 및/또는 사용자 인터페이스 유닛(322) 내의 임의의 디스플레이 상에서 맵(700)을 볼 수 있다. 뷰어는 또한 로봇(102)에 회신할 수 있으며, 이러한 통신은 맵(700) 및/또는 경로(716)가 자율 내비게이션용으로 적절한지 여부를 적어도 부분적으로 나타낼 수 있다. 일부 경우에, 로봇(102)은, 맵(700)을 전송할 수 있고 맵(700) 및/또는 경로(716)가 자율적인 내비게이션에 사용하기에 적합한 것인가를 적어도 부분적으로 나타내는 통신을 수신할 수 있는 통신 유닛(316)을 사용하여 맵(700)을 송신 할 수 있다. 일부 경우에, 사용자 인터페이스(예컨대, 사용자 인터페이스 유닛(322))는 로봇(102) 상에 있을 수 있으며, 여기서 사용자는 맵(700) 및/또는 경로(716)를 볼 수 있고, 맵(700) 및/또는 경로(716)가 자율 내비게이션에 적합하다는 것을 적어도 부분적으로 나타내는 입력을 제공할 수 있다.
다른 예시적인 예로서, 일부 구현예에서, 로봇(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)에 오류가 있음을 알 수 있다.
로봇(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)가 대략 평행한지 여부를 결정할 수 있다.
예시적인 예로서, 로봇(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)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다.
다른 예시적인 구현예에서, 도 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)의 크기는 예시를 위한 것이며, 축척이 맞지 않을 수 있다.
마스크(870)는 맵(700)을 가로질러 그리고 그 주위를 스위핑하고 마스크(870)의 내용을 맵(700)의 내용과 비교함으로써 맵(700)을 검색할 수 있다. 예를 들어, 마스크(870)는 매트릭스일 수 있고, 매트릭스의 각 셀은 맵(700)의 픽셀 상태(예컨대, 장애물없는 (내비게이션이 가능한) 위치, 차단(예컨대, 내비게이션이 불가능한) 위치, 알려지지 않은 위치, 주행하면 안되는 위치, 내비게이션 경로의 일부, 주행한 위치, 주행하지 않은 위치, 물체, 물 및/또는 본 개시에서 설명된 맵(700)의 임의의 다른 카테고리들)에 적어도 부분적으로 대응하는 값을 갖는다. 매트릭스의 셀(872) 또는 임의의 다른 셀(예를 들어, 우측 상부 코너 셀, 하부 좌측 코너 셀, 하부 우측 코너 셀, 중간 셀 또는 마스크(870)의 임의의 다른 셀)은 맵(700)의 하나 이상의 또는 모든 픽셀과 정렬될 수 있다. 이러한 셀들이 맵(700)의 각각의 픽셀과 정렬됨에 따라, 마스크(870)의 다른 셀 또한 맵(700)의 주변 픽셀과 정렬될 수 있다. 맵(700)으로부터 정렬된 각각의 픽셀은 마스크(870)의 대응하는 픽셀과 비교되어 마스크(870)와 픽셀이 정렬되는 맵(700)의 영역 사이의 유사성을 검출할 수 있다.
예시된 바와 같이, 마스크(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) 자체가 일정 각도로 기울어 질 수 있게 한다.
마스크(870)가 맵(700)에서 마스크(870)의 셀 값들과 실질적으로 매칭하는(예를 들어, 70 %, 80 %, 90 % 또는 그 이상의 소정의 매칭 임계치를 갖는) 픽셀들의 그룹을 식별하는 경우, 마스크(870) 구조 내에서, 로봇(102)은 표시(예를 들어, 메시지, 값 또는 명령)를 생성할 수 있으며, 로봇(102)은 마스크(870)와 맵(700) 사이의 매칭을 발견할 수 있으며 및/또는 이러한 매칭의 위치를 발견할 수 있다. 일부 경우, (예를 들어, 발견될 소정 개수의 예상되는 아이템에 기초하여) 너무 적은 매칭이 발견되는 경우, 로봇(102)은 맵(700)의 매핑 오류를 검출할 수 있으며 및/또는 맵(700)이 양호하지 않은 것으로 결정할 수 있다. 일부 경우, (예를 들어, 마스크(870)가 바람직하지 않은 구조를 식별하도록 구성된 경우), 로봇(102)은 맵(700)의 매핑 오류를 검출할 수 있고 및/또는 맵(700)이 양호하지 않은 것으로 결정할 수 있다. 어느 경우이든, 로봇(102)은 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 사용자(604)에게 경로를 다시 데모하도록 프롬프트할 수 있다.
다른 예로서, 일부 구현예들에서, 로봇(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)이 품질이 불량)을 적어도 부분적으로 나타낼 수 있다.
매핑 오류를 검출하고 및/또는 맵(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)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다.
유사하게, 경로 불연속부(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)에게 경로를 다시 데모하도록 프롬프트할 수 있다.
일부 경우, 전술한 소정 크기의 임계값 및 소정 수의 임계값을 조합하여 사용되는 하이브리드 임계값이 사용될 수 있다. 예를 들어, 소정 수의 임계값을 초과하면 맵(700)이 매핑 오류를 포함하는 것으로 결정하거나 및/또는 품질이 좋지 않은 것으로 결정하게 되는 소정 수의 임계값은 소정 크기 임계치 이상의 경로 불연속부의 수에 적어도 부분적으로 기초할 수 있다. 매핑 오류가 검출되고 및/또는 맵(700)이 품질이 좋지 않은 것으로 결정되는 경우, 로봇(102)은 사용자(604)에게 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다.
도 9b는 예시적인 매핑된 부분(920)의 예시적인 물체 부분(926A)과 예시적인 물체 부분(926B) 간의 예시적인 물체 불연속부(924)를 예시한다. 매핑된 부분(920)은 맵(700)의 일부일 수 있다. 예시된 바와 같이, 경로 부분(922)은 경로 불연속부를 갖지 않을 수 있다. 그러나, 물체 부분(926A)과 물체 부분(926B) 사이에는, 물체의 일부분이 매핑되지 않은 물체 불연속부(924)가 존재할 수 있다. 물체 불연속부(924)는 매핑되어야 하는 위치에서 맵 부분(924)의 매핑되지 않은 부분일 가능성이 있기 때문에, 물체 불연속부(924)는 오류를 나타낼 수 있다. 일부 경우, 로봇(102)은 경로 부분(922)을 통해 내비게이션할 때 로봇(102)이 그 센서로 물체의 존재를 검출할 수 있기 때문에, 물체 불연속부(924)는 로봇(102)의 내비게이션에 문제가 되지 않을 수 있다. 그러나, 물체 불연속부(924)는 그 자체로 또는 다른 불연속부 및/또는 매핑 오류의 다른 특성과 함께 매핑 오류 및/또는 불량 맵을 나타낼 수 있다.
도 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)을 거쳐) 경로를 다시 데모하도록 프롬프트할 수 있다.
유사하게, 물체 불연속부(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)을 거쳐) 경로를 다시 데모하도록 프롬프트할 수 있다.
일부 경우에, 상술한 소정의 크기 임계치와 소정의 수 임계치를 조합하여 사용되는 경우에 하이브리드 임계치들이 사용될 수 있다. 예를 들어, 맵(700)이 매핑 오류를 가지거나 및/또는 품질이 좋지 않다고 결정된 상기 미리 결정된 수의 임계치는 미리 결정된 크기 임계치를 초과하는 물체 불연속부의 수에 적어도 부분적으로 기초할 수 있다. 매핑 오류가 검출되고 및/또는 맵(700)이 품질이 좋지 않은 것으로 결정된 경우, 로봇(102)은 사용자(704)에게 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다.
도 9c는 경로 불연속부 및 물체 불연속부 모두를 포함하는 불연속부(934)를 갖는 예시적인 매핑된 부분(920)을 예시한다. 매핑된 부분(920)은 맵(700)의 일부일 수 있다. 불연속부(934)는 경로 부분(930)와 경로 부분(932) 사이의 불연속일 수 있다. 불연속부(934)은 또한 물체(936)의 불연속일 수 있다. 도 9a 내지 도 9c 를 참조하여 설명한 바와 같이, 경로 불연속부 및 물체 불연속부 모두는 매핑 오류 및/또는 불량 맵 품질을 적어도 부분적으로 나타낼 수 있다. 로봇(102)이 맵(700)을 평가할 때, 로봇(102)은 매핑 오류를 검출하고 및/또는 맵(700)의 품질을 결정할 때 경로 불연속부 또는 물체 불연속부 또는 둘 다를 함께 고려할 수 있다.
다른 예로서, 일부 구현예에서, 로봇(102)은 매핑 오류를 검출하고 및/또는 맵(700)의 품질을 결정할 때 맵(700) 내의 아이템들(예를 들어, 경로, 장애물 또는 다른 물체) 사이의 중첩의 양을 평가할 수 있다. 도 10은 중첩 물체(1002, 1004, 1006)를 갖는 예시적인 매핑된 부분(1000)을 도시한다. 매핑된 부분(1000)은 맵(700)의 일부일 수 있다. 도시된 바와 같이, 물체(1002, 1004, 1006)는 맵(700)를 생성하는 동안 로봇(102)이 검출한 벽, 물체, 선반 등일 수 있다. 로봇(102)의 측정된 위치 및 방향에 적어도 부분적으로 기초하여, 로봇(102)은 물체(1002, 1004, 1006)를 매핑한다. 물체들(1002, 1004, 1006) 각각의 추정된 위치 및/또는 방향이 서로 위에 있기 때문에, 로봇(102)은 매핑에서 오류가 있었음을 결정할 수 있다. 이러한 중첩 영역을 식별함에 있어서, 로봇(102)은 픽셀 별 또는 영역별 맵(700)를 조사할 수 있다. 어떤 경우에, 로봇(102)은 맵(700) 내의 미리 결정된 형상을 발견하기 위해 마스크 및/또는 필터를 사용할 수 있다(예를 들어, 소정 형상을 찾기 위해 변형된 마스크(870)와 실질적으로 유사함). 미리 결정된 형상은 물체 위치 및/또는 센서 오류의 이전에 관측된 변형과 같은, 매핑에서의 로봇(102)의 알려진 오류에 적어도 부분적으로 기초할 수 있다.
중첩은 또한 적어도 부분적으로는 픽셀 또는 픽셀 영역 내 및/또는 주변에서 검출된 물체(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)이 불량한 것으로 결정할 수 있다.
오버랩을 인식함으로써 식별 가능한 매핑 오류의 다른 예로서, 로봇(102)(및/또는 로봇(102)이 주행하는 경로)은 물체를 통과하는 것으로서 맵에 나타낼 수 있다. 로봇(102)이 물체들을 통과하지는 않을 것이므로, 그러한 발생은 매핑 오류를 적어도 부분적으로 나타낼 수 있다.
다른 예로서, 로봇(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)이 낮은 품질이었다는 것을 결정할 수 있다.
다른 예로서, 일부 구현예에서, 로봇(102)은 폐루프(예를 들어, 종료 위치가 초기화 위치와 실질적으로 유사함)에서 주행하도록 구성될 수 있다. 로봇(102)은 항상 폐루프 내에서 주행할 수 있는 것은 아니라는 점에 유의해야 한다. 예를 들어, 도 1a는 초기화 위치(104)가 종료 위치(114)와 실질적으로 동일한 위치가 아닌 것으로 예시되었기 때문에 폐루프를 형성하지 않는 경로를 예시한다. 도 11a는 위치(1102)가 초기화 위치 및 종료 위치인 예시적인 폐루프 경로(1104)에서 이동하는 로봇(102)을 도시한다. 이 경우에, 경로(1104)의 맵이 대략적으로 위치(1102)에 초기화 위치 및 종료 위치를 갖지 않으면, 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵의 품질이 좋지 않은 것으로 결정할 수 있다. 어떤 경우에는, 미리 결정된 거리 임계치가 존재할 수 있다(예를 들어, 메모리(302)에 저장됨). 매핑된 초기화 위치 및 종료 위치가 미리 결정된 거리 임계치 내에 있지 않으면(예를 들어, 초기화 위치와 종료 위치 사이의 거리가 미리 결정된 거리 임계치를 초과하지 않는 경우), 로봇(102)은 매핑 오류를 검출할 수 있고 및/또는 맵이 낮은 품질이라고 결정할 수 있다. 이 미리 결정된 거리 임계치는 맵의 크기(예를 들어, 미리 결정된 거리 임계치는 맵 크기의 백분율 일 수 있음), 센서 해상도 및/또는 충실도, 및/또는 다른 인자에 적어도 부분적으로 기초하여 결정될 수 있다.
다른 예시적인 구현예로서, 로봇(102)은 메모리(302)에 저장된 환경의 업로드된 맵을 가질 수 있다. 로봇(102)은 맵(700)을 업로드된 맵과 비교할 수 있다. 예시로서, 로봇(102)은 픽셀별로 또는 영역별로 맵(700)과 업로드된 맵을 비교하는 맵 평가 유닛(324)의 하나 이상의 비교기를 이용할 수 있다. 일부 구현예에서, 업로드된 맵 및/또는 맵(700)은 그 비교를 용이하게 하도록 크기가 재조정될 수 있다. 맵(700)이 픽셀별로 또는 영역별로 업로드된 맵과 유사하지 않은 것으로 밝혀지면, 로봇(102)은 매핑 오류가 있었거나 및/또는 이 맵(700)의 품질이 좋지 않다고 결정할 수 있다. 결과적으로, 로봇(102)은 사용자(604)에게 경로를 다시 데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다).
일부 구현예에서, 업로드된 맵과 맵(700)간에 백분율 유사성이 계산될 수 있는데, 백분율 유사성은 업로드된 맵이 매핑하는 것과 얼마나 유사한지를 적어도 부분적으로 반영한다(700). 백분율 유사성이 소정의 임계치(예를 들어, 70 %, 80 %, 90 % 또는 업로드된 맵과 맵(700) 사이의 실질적인 유사성을 적어도 부분적으로 표시하는 임의의 백분율) 아래로 떨어지는 경우, 로봇(102)은 매핑 오류가 있었으며 및/또는 맵(700)이 낮은 품질이라고 결정할 수 있다. 결과적으로, 로봇(102)은 사용자(604)를 통해(예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다).
일부 구현예에서, 업로드된 맵은 형상들(예를 들어, 물체들 또는 장애물없는 공간의 형상)에 대해 분석될 수 있다. 맵(700)은 그 동일한 형상이 맵(700)에 존재하는지를 적어도 부분적으로 결정하기 위해 동일한 형상에 대해 분석될 수 있다. 마스크 및/또는 필터는 일부 구현예에서 검색을 위해 사용될 수 있다(예컨대, 형상을 찾기 위해 수정된 마스크(870)와 실질적으로 유사함). 업로드된 맵으로부터의 형상이 맵(700)에서 발견되지 않으면, 로봇(102)은 매핑 오류가 있고 및/또는 맵(700)이 낮은 품질이라고 결정할 수 있다. 결과적으로, 로봇(102)은 사용자(604)를 통해 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 경로를 다시 데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다). 유사하게, 맵(700)은 형상들(예를 들어, 물체들 또는 장애물없는 공간의 형상)에 대해 분석될 수 있고, 업로드된 맵이 그 동일한 형상들이 존재하는지를 파악하기 위해 분석될 수 있다. 동일한 방식으로, 로봇(102)이 업로드된 맵에서 맵(700)으로부터 검출된 형상을 찾지 못하면, 로봇(102)은 매핑 오류가 있고 및/또는 맵(700)이 낮은 품질이라고 결정하고 (예를 들어, 사용자 인터페이스 유닛(322)을 통해) 사용자(604)가 다시 경로를 데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다).
일부 구현예에서, 로봇(102)은 환경(100)의 소정의 예상되는 특성/특징에 대해 맵(700)을 분석할 수 있다. 예를 들어, 식료품점 또는 유사한 환경에서, 로봇(102)은 통로 및/또는 선반을 예상할 수 있다. 로봇(102)이 통로 및/또는 선반을 나타내는 물체를 검출하지 않거나 또는 너무 적거나 너무 많은 것을 검출하는 경우, 로봇(102)은 맵(700)이 품질이 좋지 않을 수 있고 및/또는 매핑 오류를 포함할 수 있다고 결정할 수 있다. 또 다른 예로, 환경의 복잡성에 대해 일정 수준의 예상치가 있을 수 있다. 맵(700)이 너무 많이 회전하거나 너무 적은 회전을 갖는 경우, 로봇(102)은 맵(700)이 품질이 좋지 않을 수 있고 및/또는 매핑 오류를 포함할 수 있다고 결정할 수 있다. 다른 예로서, 환경(100)은 예상된 크기를 가질 수 있다. 맵(700)의 크기가 너무 크거나 작으면, 로봇(102)은 맵(700)이 품질이 좋지 않을 수 있고 및/또는 매핑 오류를 포함할 수 있다고 결정할 수 있다. 맵(700)이 환경(100)의 소정의 예상되는 특성들/특징들을 갖지 않는 전술한 경우들 중 어느 한 경우에서, 로봇(102)은 사용자(예를 들어, 사용자(604) 또는 서버상의 맵에 접근하는 사용자)가 맵(700)을 검증하도록 프롬프트할 수 있다. 따라서 로봇은 맵을 서버로 전송하고 맵의 품질의 검증을 수신할 수 있다.
일부 구현예에서, 로봇(102)(예를 들어, 로봇(102)의 제어기(304))이 양호한 맵 및 불량 맵을 식별하도록 학습하는 기계 학습 알고리즘이 사용될 수 있다. 예를 들어, 로봇(102)은 양호한 맵 및 불량 맵으로서 식별된(예를 들어, 손으로 라벨링되거나 기계로 라벨링된) 맵의 라이브러리를 가질 수 있다. 로봇(102)은 당업계에 공지된 감독된 또는 감독되지 않은 알고리즘을 사용하여, 로봇(102)이 양호한 맵 또는 불량 맵을 나타내는 것으로서 그의 라이브러리를 통해 결정되는 특성을 연관시키도록 학습할 수 있다. 따라서, 로봇(102)이 맵을 불량 맵으로 식별하는 경우, 로봇(102)은 매핑 오류가 있으며 및/또는 맵(700)이 낮은 품질이라고 결정할 수 있으며 (예를 들어, 사용자 인터페이스 유닛(322)을 거쳐) 사용자가 경로를 다시데모하도록 프롬프트할 수 있다(예를 들어, 로봇(102)은 부분(404)을 다시 수행할 수 있다).
일부 상황들에서, 로봇(102)은 또한 품질이 낮은 맵(700)의 오류들을 정정할 수 있다. 예를 들어, 일부의 경우, 로봇(102)이 폐루프(예를 들어, 폐루프 경로(1104))에서 정확하게 주행하지 않는 일부 경우에, 초기화 위치와 종료 위치 사이의 차이가 로봇(102)의 주행거리 측정을 보정하는데 사용될 수 있다. 예를 들어, 로봇(102)은 초기화 위치와 종료 위치 사이의 차이를 획득할 수 있고 그 차이가 주행 거리가 실제와 어느 정도 편차를 나타내는지를 결정할 수 있다. 따라서, 로봇(102)은 결정된 편차를 고려하여 기록된 경로를 조정할 수 있다.
다른 예로서, 어떤 매핑 오류는 로봇(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)의 오차를 보정할 수 있다.
로봇(102)은 또한 기계 학습을 사용하여 오류를 이들 오류의 교정과 연관시키도록 학습할 수 있다. 예를 들어, 로봇(102)은 오류를 가진 맵을 메모리(302)에 및/또는 서버 상에 저장할 수 있다. 예시로서, 어떤 경우에, 사용자(604)는 먼저 경로를 데모할 수 있다. 경로 및 주위 환경의 생성된 맵에는 매핑 오류가 있을 수 있다. 매핑 오류와 마주치면, 사용자(604)는 환경 및/또는 경로를 재 매핑할 수 있다. 따라서, 로봇(102)은 (예를 들어, 성공적인 내비게이션을 방해하는 매핑 오류를 갖는) 저품질 맵의 버전 및 (예를 들어, 성공적인 내비게이션을 방지하는 매핑 오류없이) 저품질이 아닌 버전을 가질 수 있다. 그 다음, 로봇(102)은 낮은 품질이 아닌 재매핑된 버전의 대응하는 부분과 낮은 품질 맵의 적어도 일부를 연관시킬 수 있다. 하나 이상의 실질적으로 유사한 연관에 기초하여, 로봇(102)은 발생된 매핑 오류를 식별하고, 일단 매핑 오류를 인식하면 보정된 맵의 적어도 일부를 생성하도록 학습할 수 있다.
도 4를 참조하면, 티칭 단계(414)후, 로봇(102)은 자율 단계(416)로 진입할 수 있다. 부분(408)에서, 로봇(102)은 초기화 위치(104)를 검출하고 로봇(102)의 위치 및/또는 방향을 초기화할 수 있다. 일부 구현예에서, 사용자는 로봇(102), 원격 제어 로봇(102), 조향 로봇(102), 푸싱 로봇(102) 및/또는 액추에이터 유닛(318)을 구동시키는 임의의 다른 제어를 구동함으로써 로봇(102)을 초기화 위치(104)로 보낼 수 있다. 일부 구현예에서, 로봇(102)은 초기화 위치(104)로 자율적으로 복귀할 수 있다. 예를 들어, 로봇(102)은 (예를 들어,도 5b 내지 도 5e를 참조하여 앞서 설명된 바와 같이) 초기화 위치(104)의 위치를 메모리(302)에 저장하고 그 위치로 복귀할 수 있다.
일부 구현예에서, 로봇(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)에 위치된 것으로 검출할 수 있다.
부분(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)의 사용자 데모에 기초함)를 선택할 수 있다.
일부 구현예에서, 로봇(102)은 부분(408)에서 검출된 초기화 위치에 기초하여 기록된 경로를 자동으로 선택할 수 있다. 예를 들어, 초기화 위치(104)는 단지 데모된 경로(116)와 연관될 수 있다(또는 매핑된 경로(716)로 매핑될 수 있다). 유사하게, 로봇(102)은 다른 데모된 경로와 연관된 다른 초기화 위치를 가질 수 있다. 유리하게는, 복수의 초기화 위치를 갖는 것은 사용자로 하여금 데모가능하게 하며 다양한 경로를 통해 로봇(102)으로 하여금 자율적으로 이동가능하게 할 수 있다. 또한, 로봇(102)이 초기화 위치에 기초하여 기록된 경로를 자동으로 선택하게 함으로써, 로봇(102)은 최소한의 추가 사용자 입력으로 자율 주행을 보다 신속하게 시작할 수 있다.
도 4를 다시 참조하면, 부분(412)에서, 로봇(102)은 부분(410)에서 선택된 기록된 경로를 따라 자율적으로 주행할 수 있다. 예를 들어, 로봇(102)은 맵(700) 및 매핑된 경로(716)를 사용하여 자율적으로 주행할 수 있다.
후속 경로(716)에서, 로봇(102)은 적어도 맵(700), 경로(716), 및 센서(560A-560D) 및 센서(568A-568B)로부터의 데이터 중 하나 이상을 프로세싱할 수 있는 적어도 내비게이션 유닛(326)에 의존할 수 있다. 센서(560A-560D)는 본원에서 도 6d를 참조하여 그리고 본원의 다른 곳에서 예시 및 설명된 바와 같이, 로봇(102)이 그 주변의 물체를 센싱가능하게 할 수 있다. 이러한 방식으로, 로봇(102)은 맵(700) 및 인근 물체의 검출에 적어도 부분적으로 기초하여 내비게이션할 수 있으며, 로봇(102)은 검출되는 물체를 피할 수 있다. 예를 들어, 이러한 물체는 일시적으로 배치되거나 일시적인 항목 및/또는 환경에 대한 일시적 및/또는 동적 변경일 수 있다. 또한, 인근 물체의 검출은 로봇(102)으로 하여금 맵(700)상에서 검출하는 물체 로봇(102)의 위치의 결정에 적어도 부분적으로 기초하여 맵(700) 상에 자신을 로컬라이제이션가능하게 할 수 있다.
또한, 로봇(102)은, 적어도 도 5b 내지 도 5d를 참조하여 기술되는 바와 같이, 원점에 대한 그의 위치/자세(예컨대, 거리 및/또는 방향)를 적어도 부분적으로 결정하기 위해 주행거리 측정용 센서(568A 내지 568B)를 활용할 수 있다. 적어도 하나의 맵(700), 경로(716), 센서(560A-560D) 및 센서(568A-568B) 중 하나 이상을 사용함으로써, 로봇(102)은 도 1에 도시된 바와 같이 경로(106), 도 1c에 예시된 바와 같은 경로(126), 또는 적어도 방법(400)을 이용하여 환경(100) 또는 임의의 다른 환경을 통한 다른 자율적 경로를 통해 자율적으로 주행할 수 있다.
또한, 경로(106)를 따라 자율적으로 주행하는 동안, 로봇(102)은 부분(404) 동안 학습되고 및/또는 맵(700)에 기록된 대로 브러시(908) 및/또는 스퀴지(616)와 같은 로봇(102) 상의 다양한 기구를 작동시킬 수 있다. 물을 켜거나 끄기, 물 뿌리기, 진공을 켜거나 끄기, 진공 호스 위치를 이동시키기, 팔을 움직이기, 리프트 상승/하강, 카메라 및/또는 센서 유닛(314)의 임의의 센서 회전, 및/또는 로봇(102)이 행동을 수행하기를 원하는 임의의 움직임 등과 같이 스크러버 또는 다른 로봇 형태의 장비의 학습된 행동의 작동이 유사하게 수행될 수 있다.
도 13은 예시적인 로봇(102)을 동작시키는 예시적인 방법(1300)을 예시한다. 부분(1302)은 초기화 위치에서 로봇의 제1 위치를 검출하는 것을 포함한다. 부분(1304)은 초기화 위치로부터 시작하는 로봇에 대한 내비게이션할 수 있는 경로의 데모 중에 내비게이션가능한 경로 및 주위 환경의 맵을 생성하는 것을 포함한다. 부분(1306)은 초기화 위치에서 로봇의 제2 위치를 검출하는 것을 포함한다. 부분(1308)은 로봇이 초기화 위치로부터 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함한다.
본원에서 사용될 때, 컴퓨터 및/또는 컴퓨팅 장치는, 개인용 컴퓨터 ("PC") 및 마이크로컴퓨터, 데스크탑, 랩톱 또는 아니면, 메인 프레임 컴퓨터, 워크 스테이션, 서버, 개인 휴대정보 단말기("PDA"), 휴대용 컴퓨터, 내장 컴퓨터, 프로그래머블 로직 장치, 개인 휴대 통신기, 태블릿 컴퓨터, 모바일 기기, 휴대형 내비게이션 장치, J2ME 장착 장치, 휴대 전화기, 스마트 폰, 개인 통합 통신 장치 또는 오락 장치, 및/또는 일련의 명령들을 실행하고 유입하는 데이터 신호를 프로세싱하는 임의의 다른 장치를 포함할 수 있지만, 이에 한정되지 않는다.
본원에서 사용될 때, 컴퓨터 프로그램 및/또는 소프트웨어는 기능을 수행하는 임의의 시퀀스, 또는 사람 또는 기계 인식가능한 단계를 포함할 수 있다. 이러한 컴퓨터 프로그램 및/또는 소프트웨어는 예를 들어, 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) 등과 같은 객체 지향 환경을 포함하여, 어떠한 프로그래밍 언어 또는 환경으로 렌더링될 수 있다.
본원에서 사용될 때, 접속, 링크, 전송 채널, 지연 라인 및/또는 무선은 엔티티들 간의 정보 교환을 가능하게 하는 임의의 2 이상의 엔티티(물리적 또는 논리적/가상) 간의 인과적 링크를 포함할 수 있다.
본 개시의 특정 양태가 방법의 특정 단계의 단계에 의해 설명되지만, 이들 설명은 단지 본원의 광범위한 방법을 예시하고 특정 용도에 의해 요구되는 바에 따라 변경될 수 있음을 알 수 있을 것이다. 특정 단계에서는 특정 상황에서 불필요하거나 선택적으로 표시될 수 있다. 또한, 특정 단계들 또는 기능성이 개시된 구현예들에 추가될 수 있거나, 2 이상의 단계들의 수행 순서가 치환될 수 있다. 이러한 모든 변형은 본원에 개시되고 청구된 개시 내에 포함되는 것으로 간주된다.
상기 상세한 설명은 다양한 구현예에 적용된 본 개시의 신규한 특징을 도시하고, 설명하고, 지적하였지만, 도시된 디바이스 또는 프로세스의 형태 및 세부 사항에서 다양한 생략, 대체 및 변경이 이루어질 수 있다는 것을 이해할 것이다. 전술한 설명은 본 개시를 실시하기 위해 현재 고려되는 최선의 모드에 관한 것이다. 이러한 설명은 결코 제한하려는 것이 아니라 오히려 본 개시의 일반적인 원리를 설명하는 것으로 간주되어야 한다. 본 개시의 범위는 청구 범위를 참조하여 결정되어야 한다.
본 개시가 도면 및 전술한 설명에서 상세히 도시되고 설명되었지만, 그러한 예시 및 설명은 예시 또는 예시적인 것으로 그리고 비제한적인 것으로 간주되어야 한다. 본 개시는 개시된 실시예들에 한정되지 않는다. 개시된 실시예들에 대한 변형은 청구된 개시내용을 실시할 때 당업자에 의해 도면, 개시내용 및 첨부된 청구 범위의 연구로부터 이해되고 영향받을 수 있다.
본 개시내용의 특정 특징들 또는 양태들을 기술할 때 특정 용어의 사용은 본 개시내용에서 이 용어들이 연관되는 본 개시내용의 특징들 또는 양태들에 대한 임의의 특정 특성을 포함하게 제한되도록 재정의됨을 의미하는 것으로 이해되어서는 안된다는 점에 유의한다. 본원에서 사용된 용어 및 어구, 및 그 변형예, 특히 첨부된 청구 범위에서, 달리 명시적으로 언급되지 않는 한, 제한과 반대로 개방형으로 해석되어야 한다. 전술한 예로서, "포함하는(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 % 이내임을 의미한다. 또한, 본원에서 사용될 때, "정의된" 또는 "결정된"은 "미리 정의된" 또는 "미리 결정된" 및/또는 다른 방법으로 결정된 값, 조건, 임계치, 측정 등을 포함할 수 있다.

Claims (26)

  1. 복수의 명령들이 저장된 비일시성 컴퓨터 판독 가능 저장 매체로서,
    상기 명령들은, 로봇을 동작시키도록 프로세싱 장치에 의해 실행 가능하고,
    상기 명령들은, 상기 프로세싱 장치에 의해 실행될 때, 상기 프로세싱 장치로 하여금:
    초기화 위치에서 상기 로봇의 제1 배치를 검출하게 하고;
    상기 초기화 위치로부터 출발하여 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하게 하고;
    상기 초기화 위치에서 상기 로봇의 제2 배치를 검출하게 하고; 그리고
    상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하도록 구성되는, 비일시성 컴퓨터 판독 가능 저장 매체.
  2. 청구항 1에 있어서,
    상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 추가로, 상기 프로세싱 장치로 하여금, 오류들에 대해 생성된 상기 맵을 평가하게 하고, 상기 오류들에 적어도 부분적으로 기초하여, 상기 로봇에게 상기 내비게이션가능한 경로를 다시 데모하도록 사용자에게 요청하게 하는, 비일시성 컴퓨터 판독 가능 저장 매체.
  3. 청구항 2에 있어서,
    상기 오류들은 맵에서의 상기 내비게이션가능한 경로의 불연속성 및 상기 맵에서의 상기 주위 환경에서의 불연속성 중의 적어도 하나를 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.
  4. 청구항 1에 있어서,
    상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 추가로, 상기 프로세싱 장치로 하여금, 상기 내비게이션가능한 경로를 자율적으로 내비게이션하는 동안에 상기 로봇에 일시적으로 놓인 장애물들을 피하는 명령들을 제공하게 하는, 비일시성 컴퓨터 판독 가능 저장 매체.
  5. 청구항 1에 있어서,
    상기 프로세싱 장치로 하여금, 사용자 인터페이스로부터 내비게이션가능한 경로의 선택을 수신하게 하도록 구성된 명령들을 더 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.
  6. 청구항 1에 있어서,
    상기 로봇은 플로어 청소기인, 비일시성 컴퓨터 판독 가능 저장 매체.
  7. 청구항 1에 있어서,
    생성된 상기 맵은 상기 내비게이션가능한 경로 상의 상기 로봇에 의하여 수행되는 행동을 적어도 부분적으로 나타내는 표시를 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.
  8. 청구항 7에 있어서,
    상기 행동은 플로어 청소인, 비일시성 컴퓨터 판독 가능 저장 매체.
  9. 로봇을 동작시키는 방법에 있어서,
    초기화 위치에서 상기 로봇의 초기 배치를 검출하는 단계;
    상기 초기화 위치로부터 출발하여 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성시키는 단계;
    상기 초기화 위치에서 상기 로봇의 다음 배치를 검출하는 단계; 및
    상기 로봇으로 하여금 상기 초기화 위치로부터 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션하게 하는 단계를 포함하는, 로봇을 동작시키는 방법.
  10. 청구항 9에 있어서,
    오류들에 대해 생성된 상기 맵을 평가하는 단계; 및 상기 오류들에 적어도 부분적으로 기초하여, 사용자에게 상기 로봇에게 다시 상기 내비게이션가능한 경로를 데모하도록 요청하는 단계를 더 포함하는, 로봇을 동작시키는 방법.
  11. 청구항 9에 있어서,
    상기 데모는 사용자로부터 제어 신호들을 수신하는 단계를 포함하는, 로봇을 동작시키는 방법.
  12. 청구항 9에 있어서,
    상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성시키는 단계는, 삼차원 센서로 상기 주위 환경을 센싱하는 단계를 더 포함하는 로봇을 동작시키는 방법.
  13. 청구항 9에 있어서,
    상기 로봇으로 하여금 자율적으로 내비게이션하게 하는 단계는 사용자 인터페이스로부터 상기 내비게이션가능한 경로의 선택을 수신하는 단계를 더 포함하는, 로봇을 동작시키는 방법.
  14. 청구항 9에 있어서,
    상기 로봇으로 하여금 자율적으로 내비게이션하게 하는 단계는 상기 내비게이션가능한 경로 및 주위 환경의 상기 맵을 이용하여 내비게이션하는 단계를 포함하는, 로봇을 동작시키는 방법.
  15. 청구항 9에 있어서,
    상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 생성된 상기 맵 상에 매핑하는 단계를 더 포함하는, 로봇을 동작시키는 방법.
  16. 청구항 15에 있어서,
    상기 행동은 플로어를 청소하는 것을 포함하는, 로봇을 동작시키는 방법.
  17. 복수의 명령이 저장되는 비일시성 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 명령들은 로봇을 동작시키도록 프로세싱 장치에 의하여 실행될 수 있으며,
    상기 명령들은, 상기 프로세싱 장치에 의하여 실행될 때, 상기 프로세싱 장치로 하여금, 초기화 위치로부터 출발하여 상기 로봇에게 상기 내비게이션가능한 경로를 데모하는 동안에 내비게이션가능한 경로 및 주위 환경의 맵을 생성하게 하도록 구성된, 비일시성 컴퓨터 판독 가능 저장 매체.
  18. 청구항 17에 있어서,
    생성된 상기 맵은 상기 내비게이션가능한 경로 상에서 상기 로봇에 의하여 수행되는 행동을 적어도 부분적으로 나타내는 표시를 더 포함하는, 비일시성 컴퓨터 판독 가능 저장 매체.
  19. 청구항 18에 있어서,
    상기 행동은 플로어를 청소하는 것인, 비일시성 컴퓨터 판독 가능 저장 매체.
  20. 청구항 17에 있어서,
    상기 내비게이션 경로의 상기 데모는 컴퓨터 시뮬레이션인, 비일시성 컴퓨터 판독 가능 저장 매체.
  21. 로봇에 있어서,
    초기화 위치로부터 출발하여 상기 로봇에게 내비게이션가능한 경로를 데모하는 동안에, 상기 내비게이션가능한 경로 및 주위 환경의 맵을 생성하도록 구성된 매핑 및 로컬라이제이션 유닛; 및
    상기 맵을 이용하여 상기 로봇을 자율적으로 내비게이션시키도록 구성된 내비게이션 유닛을 포함하는 로봇.
  22. 청구항 21에 있어서,
    상기 내비게이션 유닛은 상기 내비게이션가능한 경로의 적어도 일부를 자율적으로 내비게이션시키지 않도록 결정하도록 더 구성된, 로봇.
  23. 청구항 21에 있어서,
    상기 로봇의 센서 범위 내에서 객체들을 적어도 부분적으로 표시하는 센서 데이터를 발생시키도록 구성되는 센서 유닛을 더 포함하고, 상기 내비게이션 유닛은 발생된 상기 센서 데이터에 적어도 부분적으로 기초하여 자율적으로 내비게이션시키도록 더 구성된, 로봇.
  24. 청구항 21에 있어서,
    브러시를 작동시키도록 구성된 제1 액추에이터 유닛을 더 포함하는, 로봇.
  25. 청구항 24에 있어서,
    상기 맵의 위치를 상기 제1 액추에이터 유닛의 작동과 연관시키도록 구성된 프로세서를 더 포함하는 로봇.
  26. 청구항 21에 있어서,
    서버와 통신하도록 구성된 통신 유닛을 더 포함하고, 상기 로봇은 상기 서버로 상기 맵을 전송하고 상기 맵의 표시된 품질의 검증을 수신하는, 로봇.
KR1020187035942A 2016-05-11 2017-05-11 경로를 자율주행하도록 로봇을 훈련시키기 위한 시스템 및 방법 KR102355750B1 (ko)

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 (ko) 2019-03-20
KR102355750B1 KR102355750B1 (ko) 2022-01-26

Family

ID=60267336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187035942A KR102355750B1 (ko) 2016-05-11 2017-05-11 경로를 자율주행하도록 로봇을 훈련시키기 위한 시스템 및 방법

Country Status (7)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220126588A (ko) * 2021-03-09 2022-09-16 동의대학교 산학협력단 가상 그리드 기반 에이스타 경로 탐색 방법 및 이를 위한 시스템

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11835343B1 (en) * 2004-08-06 2023-12-05 AI Incorporated Method for constructing a map while performing work
US10809071B2 (en) * 2017-10-17 2020-10-20 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
US10980387B2 (en) * 2016-08-31 2021-04-20 Murata Machinery, Ltd. Autonomously traveling floor washer
US10410320B2 (en) 2016-09-30 2019-09-10 Sony Interactive Entertainment Inc. Course profiling and sharing
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
US10357709B2 (en) 2016-09-30 2019-07-23 Sony Interactive Entertainment Inc. Unmanned aerial vehicle movement via environmental airflow
US10336469B2 (en) 2016-09-30 2019-07-02 Sony Interactive Entertainment Inc. Unmanned aerial vehicle movement via environmental interactions
US10850838B2 (en) 2016-09-30 2020-12-01 Sony Interactive Entertainment Inc. UAV battery form factor and insertion/ejection methodologies
US10679511B2 (en) 2016-09-30 2020-06-09 Sony Interactive Entertainment Inc. Collision detection and avoidance
KR20180039821A (ko) * 2016-10-11 2018-04-19 삼성전자주식회사 모니터링 시스템 제어 방법 및 이를 지원하는 전자 장치
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
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 (ko) * 2017-06-09 2021-10-18 엘지전자 주식회사 인공지능 이동 로봇의 제어 방법
CN109388093B (zh) * 2017-08-02 2020-09-15 苏州珊口智能科技有限公司 基于线特征识别的机器人姿态控制方法、系统及机器人
CN107550399B (zh) * 2017-08-17 2021-05-18 北京小米移动软件有限公司 定时清扫方法及装置
JP7124280B2 (ja) * 2017-09-13 2022-08-24 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
EP3732406B1 (en) * 2017-12-28 2023-08-30 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 (fr) * 2018-02-15 2020-03-06 Mv Robot Procede de commande du fonctionnement d’un robot de traitement de sols, equipement et systeme pour la mise en œuvre de ce procede.
US11340630B2 (en) * 2018-03-30 2022-05-24 Brain Corporation Systems and methods for robust robotic mapping
KR102466940B1 (ko) * 2018-04-05 2022-11-14 한국전자통신연구원 로봇 주행용 위상 지도 생성 장치 및 방법
US11126199B2 (en) * 2018-04-16 2021-09-21 Baidu Usa Llc Learning based speed planner for autonomous driving vehicles
WO2020010047A1 (en) * 2018-07-05 2020-01-09 Brain Corporation Systems and methods for operating autonomous tug robots
CN110858074B (zh) * 2018-08-09 2022-07-12 科沃斯机器人股份有限公司 异常提示方法、系统、设备及存储介质
WO2020033808A1 (en) * 2018-08-10 2020-02-13 Brain Corporation Systems, apparatus and methods for removing false positives form sensor detection
JP2020027574A (ja) * 2018-08-17 2020-02-20 株式会社東芝 自律移動装置、方法及び3次元モデリングシステム
DE102018120577A1 (de) * 2018-08-23 2020-02-27 Vorwerk & Co. Interholding Gmbh Sich selbsttätig innerhalb einer Umgebung fortbewegendes Bodenbearbeitungsgerät
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
EP3878336B1 (en) * 2018-11-06 2023-08-02 Nihon Business Data Processing Center Co., Ltd. Self-propelled cleaning robot
CN109464074B (zh) * 2018-11-29 2021-05-28 深圳市银星智能科技股份有限公司 区域划分方法、分区清扫方法及其机器人
DE102019101337A1 (de) * 2019-01-18 2020-07-23 Vorwerk & Co. Interholding Gmbh System mit einem ersten Bodenbearbeitungsgerät und einem zweiten Bodenbearbeitungsgerät sowie Verfahren zum Betrieb eines solchen Systems
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 (zh) * 2019-04-08 2019-07-23 北京优洁客创新科技有限公司 洗地机自主学习行走路径的方法、装置、介质和电子设备
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 (ja) * 2019-05-30 2023-12-19 セイコーエプソン株式会社 ロボットシステムおよび可搬型教示装置
CN110568848B (zh) * 2019-09-10 2022-09-23 东风商用车有限公司 清扫车的示教自动驾驶作业系统
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 (ko) * 2019-10-01 2021-04-09 엘지전자 주식회사 로봇 청소기 및 청소 경로를 결정하기 위한 방법
KR20210040613A (ko) 2019-10-04 2021-04-14 삼성전자주식회사 전자 장치 및 그의 제어 방법
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 (zh) * 2019-12-20 2024-01-23 华中科技大学鄂州工业技术研究院 一种虚拟场景中训练路径的生成方法及装置
US20230004155A1 (en) * 2020-02-27 2023-01-05 Panasonic Intellectual Property Management Co., Ltd. Information presentation method, information presentation device, and recording medium
US11797016B2 (en) * 2020-04-13 2023-10-24 Boston Dynamics, Inc. Online authoring of robot autonomy applications
WO2021233388A1 (zh) 2020-05-21 2021-11-25 深圳市海柔创新科技有限公司 导航方法及导航装置
WO2022256475A1 (en) * 2021-06-02 2022-12-08 The Toro Company System facilitating user arrangement of paths for use by autonomous work vehicle
CN113878577B (zh) * 2021-09-28 2023-05-30 深圳市海柔创新科技有限公司 机器人的控制方法、机器人、控制终端和控制系统
CN114794959B (zh) * 2022-06-28 2023-03-03 山西嘉世达机器人技术有限公司 清洁机的控制方法、装置、清洁机及存储介质

Citations (1)

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

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5204814A (en) * 1990-11-13 1993-04-20 Mobot, Inc. Autonomous lawn mower
US6718258B1 (en) * 2000-06-08 2004-04-06 Navigation Technologies Corp Method and system for obtaining user feedback regarding geographic data
US8843244B2 (en) * 2006-10-06 2014-09-23 Irobot Corporation Autonomous behaviors for a remove vehicle
JP5215740B2 (ja) * 2008-06-09 2013-06-19 株式会社日立製作所 移動ロボットシステム
US8774970B2 (en) * 2009-06-11 2014-07-08 S.C. Johnson & Son, Inc. Trainable multi-mode floor cleaning device
CN101620802B (zh) * 2009-08-05 2011-06-01 北京四维图新科技股份有限公司 电子地图的检查方法和装置
CN102155948A (zh) * 2010-02-11 2011-08-17 北京四维图新科技股份有限公司 导航电子地图质量的随机检测评估方法及装置
DE102012109004A1 (de) * 2012-09-24 2014-03-27 RobArt GmbH Roboter und Verfahren zur autonomen Inspektion oder Bearbeitung von Bodenflächen
JP6132659B2 (ja) * 2013-02-27 2017-05-24 シャープ株式会社 周囲環境認識装置、それを用いた自律移動システムおよび周囲環境認識方法
US9816823B2 (en) * 2013-03-15 2017-11-14 Hewlett Packard Enterprise Development Lp Updating road maps
JP6227948B2 (ja) * 2013-09-18 2017-11-08 村田機械株式会社 自律走行式床洗浄機、清掃スケジュールのデータ構造、記憶媒体、清掃スケジュールの生成方法、及びプログラム
JP6200822B2 (ja) * 2014-01-30 2017-09-20 シャープ株式会社 学習リモコン装置およびこれを備える自走式電子機器ならびにリモコン学習方法
US9538702B2 (en) * 2014-12-22 2017-01-10 Irobot Corporation Robotic mowing of separated lawn areas
CN105167716A (zh) * 2015-08-21 2015-12-23 王震渊 一种智能扫地机器人

Patent Citations (1)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220126588A (ko) * 2021-03-09 2022-09-16 동의대학교 산학협력단 가상 그리드 기반 에이스타 경로 탐색 방법 및 이를 위한 시스템

Also Published As

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

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 (ja) 車両自動パーキングシステム及び方法
US10001780B2 (en) Systems and methods for dynamic route planning in autonomous navigation
US10860033B2 (en) Movable object and method for controlling the same
KR20210066791A (ko) 로봇식 장치의 타이트 턴을 위한 경로 계획을 최적화하는 시스템 및 방법
US11340630B2 (en) Systems and methods for robust robotic mapping
Nüchter et al. Irma3D—An intelligent robot for mapping applications
US11886198B2 (en) Systems and methods for detecting blind spots for robots

Legal Events

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