KR20190077481A - 로봇 맵핑 시스템 및 방법 - Google Patents

로봇 맵핑 시스템 및 방법 Download PDF

Info

Publication number
KR20190077481A
KR20190077481A KR1020197015593A KR20197015593A KR20190077481A KR 20190077481 A KR20190077481 A KR 20190077481A KR 1020197015593 A KR1020197015593 A KR 1020197015593A KR 20197015593 A KR20197015593 A KR 20197015593A KR 20190077481 A KR20190077481 A KR 20190077481A
Authority
KR
South Korea
Prior art keywords
robot
nodes
map
graph
scan
Prior art date
Application number
KR1020197015593A
Other languages
English (en)
Other versions
KR102455845B1 (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 KR20190077481A publication Critical patent/KR20190077481A/ko
Application granted granted Critical
Publication of KR102455845B1 publication Critical patent/KR102455845B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3848Data obtained from both position sensors and additional sensors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3844Data obtained from position sensors only, e.g. from inertial navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • G01C21/32Structuring or formatting of map data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3837Data obtained from a single source
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • 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
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S15/00Systems using the reflection or reradiation of acoustic waves, e.g. sonar systems
    • G01S15/88Sonar systems specially adapted for specific applications
    • G01S15/89Sonar systems specially adapted for specific applications for mapping or imaging

Abstract

로봇 맵핑 시스템 및 방법이 개시된다. 일부 예시적인 구현예에서, 로봇은 소정의 환경 내에서 이동할 수 있다. 상기 환경 내에서의 이동에서부터 시작하여, 로봇은 상기 환경 내의 소정 위치에서 당해 로봇의 센서에 의해 취해진 스캔에 각각 대응하는 복수의 노드들을 포함하는 그래프를 생성할 수 있다. 일부 예시적인 구현예에서, 로봇은 상기 그래프로부터 환경의 지도를 생성할 수 있다. 일부 경우에서, 로봇은 지도 생성을 용이하게 하기 위해 상기 그래프를 실질적으로 유사한 위치에서 시작하고 끝나도록 구속할 수 있다. 로봇은 또한 스캔들 간의 중첩을 식별한 것으로부터 결정된 확장된 스캔 그룹들에 대한 스캔 정합을 수행하여 지도에서 특징물들의 위치를 추가로 결정할 수 있다.

Description

로봇 맵핑 시스템 및 방법
우선권
본 출원은 2016년 11월 1일자로 출원된 공동 소유의 동시 계류 중인 미국 특허 출원 일련 번호 15/340,807호의 우선권의 이익을 주장하며, 그 내용 전체를 본원에 참고로 원용하여 포함한다.
저작권
본 특허 문서의 개시내용의 일부는 저작권 보호를 받는 자료를 포함한다. 저작권 소유자는 누구라도 본 특허 문서 또는 특허 개시내용을 특허 및 상표청의 특허 파일들 또는 기록들에 나타나 있는 대로 팩스 복제하는 것에 대해서는 이의를 제기하지 않지만, 그 이외에는 무엇이든지 간에 모든 저작권 권리를 보유한다.
기술분야
본 출원은 일반적으로 로봇 공학에 관련된 것으로, 보다 구체적으로는 로봇 맵핑 시스템 및 방법에 관련된 것이다.
일부 경우에서, 로봇은 환경을 맵핑한다. 이러한 지도는 로봇에게 자율적으로 탐색할 수 있는 능력을 준다. 로봇은 환경을 맵핑할 때에 (예를 들어, 센서들을 사용하는) 그의 감지에 의존하여 환경의 특징물들을 감지하고 그 특징물들을 나중에 참조하기 위해 기억한다. 그러나 맵핑은, 많은 것들 중에서도 특히 환경 노이즈, 센서 노이즈 및 부정확성, 환경 내의 모호성(예를 들어, 실질적으로 유사한 특징물들), 센서 드리프트, 및 그 밖의 다른 문제들로 인해, 느리고 어려운 프로세스일 수 있다.
맵핑의 부정확성으로 인해 로봇이 네비게이팅하는 중에 길을 잃거나 환경을 전혀 탐색할 수 없게 될 수 있다. 일부 경우에서는, 맵핑상의 문제들로 인해 로봇이 소정 환경 내의 물체 또는 사람과 충돌하게 되거나, 로봇이 완수해야 할 목표를 달성하지 못하게 될 수 있다. 그 결과, 당해 기술분야에서는 맵핑의 부정확성을 교정할 수 있으며 로봇이 이동하는 환경 및/또는 노정(route)을 나타내는 지도를 생성할 수 있는 시스템 및 방법을 개발할 필요가 있다.
또 다른 과제로서, 로봇을 적정 가격으로 가볍고 가능한 한 작게 만드는 것이 대체로 바람직하다. 따라서, 센서 및 프로세서를 포함해서 저가의(예를 들어, 덜 정확할 수도 있는) 하드웨어에서 작동할 수 있으며 컴퓨터 계산처리 측면에서 효율적인 시스템 및 방법이 바람직하다.
전술한 필요성은 특히 자율 네비게이션에서 맵핑하는 장치 및 방법을 제공하는 본 개시내용에 의해 충족된다. 본원에 설명된 예시적인 구현예들은 혁신적인 특징들을 가지며, 그 특징들 중 단일의 특징만이 그들의 바람직한 속성을 위해 필수불가결한 것이 아니거나 단독으로 그 속성들을 위해 역할을 하는 것이 아니다. 청구범위의 범위를 제한하지 않으면서, 유리한 특징들 중 일부가 이제 요약될 것이다.
제1 양태에서, 로봇에 의해 지도를 생성하는 방법이 개시된다. 예시적인 한 구현예에서, 상기 방법은 소정 환경 내에서의 로봇에 의한 이동; 상기 환경 내의 소정 위치에서 로봇의 센서에 의해 취해진 스캔에 각각 대응하는 복수의 노드들을 포함하는 그래프를 생성하는 것; 상기 그래프를 실질적으로 유사한 위치에서 시작하고 끝나도록 구속하는 것; 상기 복수의 노드들의 그룹들로부터 적어도 부분적으로 결정된 확장된 스캔 그룹들에 대한 스캔 정합을 수행하는 것; 상기 스캔 정합에 적어도 부분적으로 기초하여 상기 복수의 노드들 각각에 가능한 위치들의 범위들을 관련시키는 것; 가능한 위치들의 범위 각각과 관련된 신뢰도를 결정하는 것; 상기 신뢰도들에 적어도 부분적으로 기초하여 상기 복수의 노드들의 가능한 위치를 찾기 위해 상기 그래프를 최적화하는 것; 그리고 상기 최적화된 그래프에서 지도를 렌더링하는 것을 포함한다.
한 변형례에서, 상기 지도의 생성에는 센서에 의해 취해진 스캔들에 대한 광선 추적이 포함되고, 상기 스캔들은 복수의 노드들 각각과 관련된다. 또 다른 변형례에서, 상기 그래프 최적화에는, (1) 복수의 노드 각각의 상대 위치 및 (2) 복수의 노드들 각각과 관련된 신뢰도들에 적어도 부분적으로 기초하여 비용 함수를 생성하고, 최소인 비용 함수의 해를 구하는 것이 포함된다.
또 다른 변형례에서, 상기 그래프를 실질적으로 유사한 위치에서 시작하고 끝내도록 구속하는 것에는, 상기 그래프를 홈 로케이터의 관점에서 시작하고 끝내도록 구속하는 것이 추가로 포함된다. 또 다른 변형례에서, 상기 환경 내에서의 이동에는 사용자 제어 하에서의 네비게이팅(navigating)이 포함된다.
또 다른 변형례에서, 상기 관련된 신뢰도들에는, 소정의 노드가 소정의 위치에 있을 확률을 적어도 부분적으로 나타내는 확률 분포를 사용하는 것이 추가로 포함된다.
또 다른 변형례에서, 복수의 노드의 그룹들로부터 적어도 부분적으로 결정된 확장된 스캔 그룹들에는, 루트 노드를 기준 위치로서 선택하는 것, 다른 노드들에서 취해진 스캔들에서 구별되는 특징물들을 측정함에 있어서의 있을 수 있는 중첩을 찾는 것, 그리고 상기 다른 노드들 각각에 있어서의 상기 스캔들의 구별되는 특징물들을 중첩시키는 것에 적어도 부분적으로 기초하여 상기 다른 노드들을 확장된 스캔 그룹들로 그룹화하는 것이 추가로 포함된다.
제2 양태에서, 로봇이 개시된다. 하나의 예시적인 구현예에서, 로봇은 각각이 하나의 위치와 관련된 노드들에서 환경 스캔들을 취하도록 구성된 센서; 및 상기 취해진 스캔들에 적어도 부분적으로 기초하여 상기 노드들의 그래프를 생성하도록 구성되고, 상기 복수의 노드들의 그룹들에 적어도 부분적으로 기초하여 확장된 스캔 그룹들을 결정하도록 구성되며, 그리고 상기 확장된 스캔 그룹들에 대한 스캔 정합을 수행하도록 구성된 맵핑 및 위치 추정 유닛(mapping and localization unit)을 포함한다.
한 변형례에서, 상기 맵핑 및 위치 추정 유닛은, 추가로, 상기 그래프를 실질적으로 유사한 위치에서 시작하고 끝나도록 구속할 수 있게 구성된다. 다른 변형례에서, 상기 맵핑 및 위치 추정 유닛은, 추가로, 각 노드의 위치와 관련된 신뢰도를 결정하도록 구성된다.
또 다른 변형례에서, 상기 맵핑 및 위치 추정 유닛은, 추가로, 각 노드의 신뢰도 및 위치에 적어도 부분적으로 기초하여 비용 함수를 생성하도록 구성되며, 이 경우 상기 맵핑 및 위치 추정 유닛은 그래프에서의 각 노드의 위치를 최소인 비용 함수의 해를 구한 것에 기초하여 결정한다.
또 다른 변형례에서, 프로세서는, 추가로, 스캔들의 광선 추적에 적어도 부분적으로 기초하여 렌더링된 지도를 그래프로부터 렌더링하도록 구성된다.
다른 변형례에서, 로봇은, 위치들 사이에서 당해 로봇을 이동시키도록 구성된 액추에이터를 추가로 포함한다. 또 다른 변형례에서, 로봇은, 사용자가 당해 로봇을 제어하도록 구성된 사용자 인터페이스를 추가로 포함한다.
또 다른 변형례에서, 로봇은, 당해 로봇이 자율적으로 네비게이팅할 수 있도록 구성된 네비게이션 유닛을 추가로 포함한다.
제3 양태에서, 비일시적 컴퓨터 판독가능 저장 장치가 개시된다. 일 실시예에서, 상기 비일시적 컴퓨터 판독가능 저장 장치는 그에 저장된 것으로서, 로봇을 작동시키도록 프로세싱 장치에 의해 실행 가능한, 복수의 명령을 구비한다. 상기 명령들은, 프로세싱 장치에 의해 실행될 때, 센서로 하여금, 각각이 하나의 위치와 관련된 복수의 노드들에서 환경 스캔들을 생성하게 하고; 상기 생성된 스캔들에 기초하여 상기 복수의 노드들의 그래프를 생성하게 하고; 상기 복수의 노드들의 그룹들에 관련된 스캔들에 적어도 부분적으로 기초하여 확장된 스캔 그룹들을 결정하게 하고; 그리고 상기 확장된 스캔 그룹들에 대한 스캔 정합을 수행하게 하도록 구성된다.
한 변형례에서, 상기 명령들은, 추가로, 상기 프로세싱 장치로 하여금 그래프를 실질적으로 유사한 위치에서 시작하고 끝나도록 구속하게 한다.
또 다른 변형례에서, 각각의 확장된 스캔 그룹은 3회 이상의 스캔을 포함한다.
또 다른 변형례에서, 상기 명령들은, 추가로, 프로세싱 장치로 하여금 각 노드의 위치의 신뢰도에 적어도 부분적으로 기초하여 비용 함수를 결정하게 한다.
또 다른 변형례에서, 상기 명령들은, 추가로, 프로세싱 장치로 하여금 상기 비용 함수를 최소화시키는 것에 적어도 부분적으로 기초하여 지도를 생성하게 한다.
본 개시내용의 이들 및 다른 목적들, 특징들 및 특성들과, 이뿐만 아니라, 관련된 구조 요소들 및 부품들의 조합의 작동 방법들 및 기능들과 제조의 경제는, 첨부 도면들을 참조하여 다음의 설명 및 첨부된 청구범위를 고려할 때 더 명백해지게 될 것이며, 그 첨부 도면들 모두는 본 명세서의 일부를 형성하며, 첨부 도면들에 있어서 유사한 참조 번호들은 여러 도면에서 대응하는 부분들을 가리킨다. 그러나, 도면들은 예시 및 설명의 목적만을 위한 것이고, 본 개시내용의 제한들의 정의로서 의도되지 않는다는 것이 명백히 이해될 것이다. 본 명세서 및 청구 범위에서 사용되는 바와 같이, "a", "an" 및 "the"와 같은 단수 형태는 문맥상 명확하게 다르게 지시하지 않는 한 복수 대상들을 포함한다.
개시되는 양태들은, 개시되는 양태들을 제한하는 것이 아니라 개시되는 양태들을 예시하기 위해 제공되는 첨부된 도면들과 관련하여, 이하에서 설명될 것이며, 여기서, 유사한 호칭들은 유사한 구성요소들을 나타낸다.
도 1은 본 개시내용의 원리들에 따른 것으로서, 로봇을 위한 예시적인 바디 형체들의 다양한 측면 입면도들을 예시하는 도면이다.
도 2는 본 개시내용의 일부 구현예에 따른 것으로서, 조작자가 경로를 시연한 때에 로봇의 머리 위에서 도시한 도면이다.
도 3은 일부 구현예에서의 예시적인 로봇의 기능 블록선도를 예시하는 도면이다.
도 4a는 본 개시내용의 일부 구현예에 따른 것으로서, 로봇이 소정 환경에서 이동할 때에 그 로봇에 의해 생성된 지도 및 노정의 평면도이다.
도 4b는 본 개시내용의 일부 구현예에 따른 로봇의 주변 및 이동한 노정을 정확하게 반영하지 못하는 지도이다.
도 5는 본 개시내용의 일부 구현예에 따른 것으로서, 지도를 생성하기 위한 예시적인 방법의 프로세스 흐름도이다.
도 6a는 본 개시내용의 일부 구현예에 따른 것으로서, 그래프 내의 노정에 따른 로봇의 이산화 측정들을 포함하는 선도의 평면도이다.
도 6b는 본 개시내용의 일부 구현예에 따른 것으로서, 도 6a에 도시된 연속 노정을 포함하는 그래프의 선도의 평면도이다.
도 6c는 본 개시내용의 일부 구현예에 따른 것으로서, 도 6b의 그래프가 구속되되 시작 위치와 끝 위치가 동일한 위치 및/또는 실질적으로 동일한 위치에 있게 구속된 것을 예시하는 도면이다.
도 7a는 본 개시내용의 일부 구현예에 따른 것으로서, 확장된 스캔 그룹을 생성하기 위한 예시적인 방법의 프로세스 흐름도이다.
도 7b는 본 개시내용의 일부 구현예에 따른 스캔 정합 변환의 개념도이다.
도 8은 본 개시내용의 일부 구현예에 따른 것으로서, 도 6c에 도시된 그래프 상에 확장된 스캔 그룹을 스캔 정합시킨 예시적인 결과를 예시하는 도면이다.
도 9는 본 개시내용의 일부 구현예에 따른 것으로서, 도 6a에 도시된 그래프에 있어서의 한 노드로의/로부터의 스프링들을 예시하는 도면이다.
도 10은 본 개시내용의 일부 구현예에 따른 것으로서, 스캔들로부터 구축되는 지도의 픽셀들의 선도이다.
도 11은 본 개시내용의 일부 구현예에 따른 것으로서, 지도를 로봇에 의해 생성하기 위한 예시적인 방법의 프로세스 흐름도이다.
도 12는 본 개시내용의 일부 구현예에 따른 것으로서, 예시적인 로봇 작동 방법의 프로세스 흐름도이다.
본원에 개시되는 모든 도면들은 브레인 코포레이션(Brain Corporation)의 2017년 발효 저작권(ⓒ Copyright 2017)이다. 모든 권리 유보됨.
본원에서 개시되는 신규한 시스템들, 장치들 및 방법들의 다양한 양태들이 첨부 도면들을 참조하여 이하에서 더 완전히 설명된다. 그러나, 본 개시내용은 다수의 상이한 형태들로 구현될 수 있고, 본 개시내용 전반에 걸쳐 제시되는 임의의 특정 구조 또는 기능으로 제한되는 것으로 해석되지 않아야 한다. 오히려, 이러한 양태들은 본 개시내용이 철저하고 완전하게 되도록 제공되며, 본 개시내용의 범위를 당해 기술분야에서 통상의 지식을 가진 자(이하, 당업자)에게 충분히 전달할 것이다. 당업자들은, 본원의 교시 내용들에 기초할 때, 본 개시내용의 범위가 본원에 개시되는 신규한 시스템들, 장치들 및 방법들의 임의의 양태를 독립적으로 구현되든지 또는 본 개시내용의 임의의 다른 양태와 조합되든지 간에 포괄하도록 되어 있음을 틀림없이 이해하게 된다. 예를 들어, 본원에서 제시되는 임의의 수의 양태들을 사용하여, 장치가 구현될 수 있거나 또는 방법이 실시될 수 있다. 또한, 본 개시내용의 범위는 본원에서 제시되는 개시내용의 다양한 양태들에 부가하여 또는 그 이외에 다른 구조, 기능성, 또는 구조와 기능성을 사용하여 실시되는 그러한 장치 또는 방법을 포괄하도록 의도되어 있다. 본원에서 개시되는 임의의 양태는 청구항의 하나 이상의 구성요소들에 의해 구현될 수 있다는 것이 이해되어야 한다.
특정 양태들이 본원에서 설명되지만, 이들 양태들의 다수의 변형들 및 변경들은 본 개시내용의 범위 내에 속한다. 바람직한 양태들의 일부 이점들 및 장점들이 언급되지만, 본 개시내용의 범위는 특정 이점들, 용도들 및/또는 목적들로 제한되도록 의도되지 않는다. 상세한 설명 및 도면들은 본 개시내용을 제한하기 보다는 단지 예시하는 것일 뿐이며, 본 개시내용의 범위는 첨부된 청구범위 및 그 등가물들에 의해 정의된다.
본 개시내용은 로봇 맵핑을 위한 개선된 시스템 및 방법을 제공한다. 본원에서 사용되는 바와 같은 로봇에는 복잡한 일련의 동작들을 자동적으로 수행하도록 구성된 기계적 또는 가상적 엔티티(entity)들이 포함될 수 있다. 일부 경우들에서, 로봇은 컴퓨터 프로그램들 또는 전자 회로에 의해 유도되는 기계일 수 있다. 일부 경우들에서, 로봇은 네비게이션을 위해 구성된 전기-기계 컴포넌트들을 포함할 수 있으며, 이 경우 로봇은 한 위치에서 다른 위치로 이동할 수 있다. 이와 같은 네비게이팅 로봇에는 자율 주행 자동차, 바닥 청소기, 탐사차량(rover), 드론, 카트 등이 포함될 수 있다.
본원에서 언급되는 것과 같은 바닥 청소기에는 수동 제어형(예를 들어, 피동 또는 원격 제어) 및/또는 자율형(예를 들어, 사용자 제어가 거의 사용되지 않거나 전혀 사용되지 않는) 바닥 청소기들이 포함될 수 있다. 예를 들어, 바닥 청소기에는 청소원, 관리자 또는 그 밖의 다른 사람이 작동시키는 바닥 스크러버, 및/또는 환경을 자율적으로 네비게이팅하고/하거나 청소하는 로봇형 바닥 스크러버가 포함될 수 있다. 마찬가지로, 바닥 청소기에는 진공 청소기, 스팀 청소기, 버퍼, 걸레, 광택기, 스위퍼, 연마기 등이 포함될 수 있다.
당업자는 본원에서 언급된 것과 같은 로봇은 다수의 상이한 외관/형태를 가질 수 있다는 것을 이해할 것이다. 도 1은 본 개시내용의 원리들에 따른 것으로서, 로봇을 위한 예시적인 바디 형체들의 다양한 측면 입면도들을 예시하고 있다. 이들은, 다양한 바디 형체(body form)를 더 한층 예시하도록 의도된 것이지 본원에 기술된 로봇을 임의의 특정 바디 형체로 제한하려는 것이 아닌, 비한정적인 예이다. 예를 들어, 도면 부호 100으로 나타낸 바디 형체는 직립형 업무용 진공청소기(shop vacuum)를 예시하는 것이다. 도면 부호 102로 나타낸 바디 형체는 로봇이 인체와 실질적으로 유사한 외관을 갖는 휴머노이드 로봇인 예를 예시하는 것이다. 도면 부호 104로 나타낸 바디 형체는 로봇이 프로펠러들을 갖는 드론인 예를 예시하는 것이다. 도면 부호 106으로 나타낸 바디 형체는 로봇이 바퀴와 및 승객 객실을 구비한 차량 형상을 갖춘 예를 예시하는 것이다. 도면 부호 108로 나타낸 바디 형체는 로봇이 탐사차량인 예를 예시하는 것이다.
도면 부호 110으로 나타낸 바디 형체는 로봇이 자동차화 바닥 스크러버인 예를 예시하는 것이다. 도면 부호 112로 나타낸 바디 형체는 좌석, 페달 및 운전대를 갖춘 자동차화 바닥 스크러버일 수 있는데, 이는 당해 바디 형체(112)가 청소할 때 사용자가 그 바디 형체(112)를 차량처럼 구동할 수 있지만 바디 형체(112)가 자율적으로 작동할 수도 있는 것이다. 지게차, 예인선, 보트, 비행기 등과 같이 로봇화할 수 있는 산업용 기계를 포함한 그 밖의 다른 바디 형체들도 추가로 고려된다.
본 개시내용의 시스템 및 방법들의 다양한 구현예들 및 변형례들의 상세한 설명들이 이제 제공된다. 본원에서 논의된 많은 예들은 로봇식 바닥 청소기의 맥락 속에 있지만, 본원에 기술된 시스템들 및 방법들은 다른 로봇에도 사용될 수 있다는 것을 이해할 것이다. 본원에서 설명되는 기술에 있어서의 그 밖의 다른 무수한 예시적인 구현예들 또는 용도들은 본 개시의 내용들이 주어지면 당업자에 의해 쉽게 구상될 수 있을 것이다.
바람직하게는, 본 개시의 시스템들 및 방법들은, 적어도, (i) 로봇에 의한 정확한 노정 및/또는 환경 맵핑을 제공하고; (ii) 네비게이팅하는 로봇에 있어서의 동력, 에너지 및/또는 다른 자원의 소비를 감소시킬 수 있는 컴퓨터 계산처리 효율을 제공하고; (iii) 로봇 제작에 더 저렴한 하드웨어를 사용할 수 있게 한다. 다른 장점들은 본 개시의 내용들이 주어지면 당업자가 쉽게 이해할 수 있다.
예를 들어, 자율적으로 네비게이팅할 수 있는 현재의 많은 로봇들은 목표 장소로 가는 노정(route)들 및/또는 경로(path)들을 네비게이팅하도록 프로그램된다. 이러한 로봇들을 그 노정들 및/또는 경로들을 네비게이팅하기 위해 지도를 만들 수 있는데, 이는 로봇이 한 시점에 그의 센서들을 가지고 직접 관찰할 수 있는 것 이상으로 지도가 환경의 하나 이상의 부분들을 식별한다는 점에서 때로는 글로벌 솔루션이라고 칭해질 수 있다. 이러한 로봇들은, 로봇이 그의 센서들에 감지된 장애물들 및/또는 다른 특징물들을 결정할 수 있는 로봇 주위의 작은 영역(예를 들어, 수 미터 정도)에 국부화된 탐지를 사용하여, 노정들을 따라 지도들 및 환경에 대한 관계를 생성한다. 그러면 로봇은 자율적으로 네비게이팅할 때, 충돌을 피하고 그리고/또는 목표 장소에 도달하기 위해 글로벌 솔루션과 국지화 물체 탐지를 모두 사용할 수 있다.
예시로서, 로봇(예를 들어, 바닥 청소기, 자율 주행 차량 또는 기타 로봇)은 시연에 의해 프로그램될 수 있다. 바닥 청소기의 예에서, 조작자는 로봇을 원하는 환경에서 원하는 노정을 따라 제어할 수 있다. 따라서, 조작자가 로봇을 제어하는 동안에 로봇은 자신의 위치(예를 들어, 글로벌 지도 상의 장소 및/또는 환경의 특징물들에 대한 자세)를 기록하는 지도를 생성할 수 있다. 로봇은 상기 지도를 주행거리계 및 그의 센서들(예를 들어, 라이다(LIDAR: light detecting and ranging) 센서 및/또는 본 개시에 기재된 임의의 다른 센서에 의한 스캔)을 사용하여 생성할 수 있다. 그 후, 로봇은 예를 들어 운전자의 제어가 거의 또는 전혀 없는 상태에서 노정을 자율적으로 네비게이팅할 수 있다.
이 예시에서의 로봇의 과제는 로봇이 시연 후에 노정을 자율적으로 네비게이팅할 수 있도록 사용할 수 있는 정확한 지도를 만드는 것이다. 시연 프로세스에는 물체들의 식별뿐만 아니라 특정 자세들 및/또는 궤도들과 관련된 움직임들 및 동작들(예를 들어, 회전, 정지, 주차, 점멸등 및 기타 신호를 켜기 및 끄기, 브러시를 올리기 및 내리기, 물 흐름을 끄기 및 켜기, 진공 청소를 끄기 및 켜기 등)의 복잡한 집합들이 포함될 수 있다. 시연 중에, 로봇의 맵핑이 완벽하게 정확하지 않을 수도 있어서(예를 들어, 드리프트, 노이즈 및/또는 오류가 발생하기가 쉬움), 로봇은 환경의 실제 상태를 정확하게 반영하기 위해서는 지도가 어떻게 나타나야 하는지를 결정하는 것이 필요할 수 있다.
도 2는 본 개시내용의 일부 구현예에 따른 것으로서, 조작자가 경로를 시연한 때에 로봇(202)의 머리 위에서 도시한 도면이다. 이러한 방식으로, 도 2는 로봇(202)이 맵핑하고 있는 중에 환경(200)에서 실제로 이동하는 경로를 예시할 수 있다. 로봇(202)은 본 개시에 설명된 임의의 로봇일 수 있다. 예시로서, 로봇(202)은 로봇식 바닥 스크러버, 진공 청소기, 스팀 청소기, 버퍼, 걸레, 광택기, 스위퍼, 연마기 등과 같은 로봇식 바닥 청소기일 수 있다. 환경(200)은 로봇(202)이 네비게이팅하는 공간일 수 있다. 로봇식 바닥 청소기의 예에서, 환경(200)은 청소가 요구되는 바닥을 갖는 공간일 수 있다. 예를 들어, 환경(200)은 상점, 창고, 사무 빌딩, 주택, 저장 시설 등일 수 있다. 하나 이상의 물체들(208, 210, 212, 218)은 선반, 진열대, 물체, 물품, 사람, 동물, 또는 바닥에 있을 수 있거나 아니면 로봇(202)이 환경(200)을 관통해 네비게이팅하는 것을 방해하는 임의의 기타 엔티티 또는 물건일 수 있다. 이와 같아서, 노정(206)은 로봇(202)이 이동하는 청소 경로일 수 있다. 노정(206)은 예시적인 노정(206)에 예시된 바와 같이 물체들(208, 210, 212, 218) 사이를 누비듯 빠져나가는 경로를 따를 수 있다. 예를 들어, 물체(208, 210, 212, 218)가 상점의 선반인 경우, 로봇(202)은 상점 통로를 따라 가면서 통로의 바닥을 청소할 수 있다. 그러나 개방된 바닥 영역 및/또는 사용자가 바닥을 청소하기 위해 사용할 수 있는 임의의 청소 경로(예를 들어, 사용자가 바닥 청소기를 수동으로 작동하는 경우)를 따라 앞뒤로 누비듯 빠져나가는 것과 같은 - 이에 제한되지 않음 - 그 밖의 다른 노정도 고려된다. 따라서, 노정(206)은 단지 예시적인 예를 의미하는 것이고, 도시된 바와 같이 다르게 나타날 수 있다. 또한, 예시된 바와 같이, 환경(200)의 일례가 도시되어 있지만, 환경(200)은 임의의 수의 형태 및 배열(예를 들어, 방 및/또는 건물의 임의의 크기, 형태 및/또는 배치)을 띨 수 있고 본 개시내용의 예시적인 예시들에 제한되지 않는다는 것을 이해해야 한다.
노정(206)에서, 로봇(202)은 로봇(202)의 시작점/위치일 수 있는 초기 위치(222)에서 시작할 수 있다. 일부 경우에 있어서, 홈 로케이터(220)가 초기 위치(222) 근처에, 실질적으로 근처에, 그리고/또는 초기 위치에 위치될 수 있다. 예를 들어, 홈 로케이터(220)는 초기 위치(222)에 인접하여 위치될 수 있거나, 또는 로봇(202)의 센서가 당해 홈 로케이터(220)를 초기 위치(222)에서부터 감지할 수 있도록 로봇(202)의 적어도 하나의 센서의 범위 내에 있을 수 있다. 그 다음, 조작자는 로봇(202)이 종료 위치에 이를 때까지 로봇(202)에게 노정(206)을 시연할 수 있고, 종료 위치에서 조작자는 로봇(202) 작동을 정지시킬 수 있다. 종료 위치는 사용자에 의해 지정되거나 그리고/또는 로봇(202)에 의해 결정될 수 있다. 일부 경우에 있어서, 종료 위치는 노정(206) 중에서 로봇(202)이 이미 바닥의 원하는 영역을 청소해 놓은 곳 다음의 위치일 수 있다. 전술한 바와 같이, 노정(206)은 폐쇄 루프 또는 개방 루프일 수 있다. 예시적인 예로서, 종료 위치는 임시 주차 장소, 보관실/헛간 등과 같은 로봇(202) 보관용 위치일 수 있다. 일부 경우에 있어서, 종료 위치는 로봇(202)에 대한 사용자 훈련 및/또는 프로그래밍 작업이 이루어지는 지점일 수 있다. 일부 경우에 있어서, 종료 위치는 초기 위치(222)와 동일 및/또는 실질적으로 유사할 수 있다. 예를 들어, 로봇(202)은 홈 로케이터(220)를 감지함으로써 초기 위치(222)와 동일 및/또는 실질적으로 유사한 위치로의 복귀를 감지해낼 수 있다.
바닥 청소기(바닥 스크러버, 진공 청소기 등)와 관련하여, 로봇(202)은 노정(206)을 따라서 모든 지점을 청소할 수도 있고 청소하지 않을 수도 있다. 예시로서, 로봇(202)이 로봇식 바닥 스크러버인 경우, 로봇(202)의 청소 시스템(예를 들어, 물 흐름, 청소 브러시 등)은 노정(206)의 일부분에서만 작동하고 다른 부분에서는 작동하지 않을 수 있다. 예를 들어, 로봇(202)은 특정 동작(예를 들어, 선회, 물을 틀기/잠그기, 물 뿌리기, 진공 청소 켜기/끄기, 진공 호스 위치 이동, 아암의 제스쳐 기동시키기(gesticulating), 리프트 올리기/내리기, 센서 이동, 센서 켜기/끄기 등)을 시연된 노정을 따라서 (예를 들어, 노정(206)을 따라 특정 방향 또는 특정 순서로 움직이는 동안) 특정 위치 및/또는 궤도와 관련시킬 수 있다. 바닥 청소기와 관련하여, 이러한 관련짓기는 바닥의 일부 영역만 청소하고 다른 영역은 청소하지 않는 경우 및/또는 일부 궤도에서는 바람직할 수 있다. 이러한 경우에, 로봇(202)은 사용자가 로봇(202)에게 청소하도록 시연한 영역에서는 청소 시스템을 켤 수 있고, 그렇지 않은 곳에서는 청소 시스템을 끌 수 있다.
도 3은 일부 구현예에서의 예시적인 로봇(202)의 기능 블록선도를 예시하고 있다. 예시된 바와 같이, 로봇(202)은 제어기(254), 메모리(252), 전원 공급 장치(256) 및 작동 유닛(250)을 포함하며, 이들 각각은 서로 그리고 서로의 컴포넌트들 및/또는 서브컴포넌트들과 작동 가능하게 및/또는 통신 가능하게 결합될 수 있다. 제어기(254)는 로봇(202)에 의해 수행되는 다양한 작동들을 제어한다. 특정의 일 구현예가 도 3에 예시되어 있지만, 그 구성은 본 개시의 내용들이 주어지면 당업자에게 쉽게 명백해지는 바와 같이 어떤 구현예에서는 변경될 수 있다.
제어기(254)는 하나 이상의 프로세서들(예를 들어, 마이크로프로세서들) 및 다른 주변 장치들을 포함할 수 있다. 본원에서 사용되는 프로세서, 마이크로프로세서 및 디지털 프로세서라는 용어들은 이를테면, 비제한적으로, 디지털 신호 프로세서("DSP"), 축소 명령 세트 컴퓨터("RISC"), 범용("CISC") 프로세서, 마이크로프로세서, 게이트 어레이(예를 들어, 필드 프로그래머블 게이트 어레이("FPGA")), 프로그래머블 로직 디바이스("PLD"), 재구성 가능 컴퓨터 패브릭("RCF"), 어레이 프로세서, 보안 마이크로프로세서 및 주문형 반도체("ASIC") 등과 같은 임의의 유형의 디지털 프로세싱 디바이스를 포함할 수 있다. 이러한 디지털 프로세서들은 단일 유니터리 집적 회로 다이 상에 포함될 수 있거나, 또는 다수의 컴포넌트들에 걸쳐 분포될 수 있다.
제어기(254)는 메모리(252)에 작동 가능하게 그리고/또는 통신 가능하게 결합될 수 있다. 메모리(252)는, 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 비휘발성 랜덤 액세스 메모리("NVRAM"), 프로그래머블 판독 전용 메모리("PROM"), 전기적 소거 가능 프로그래머블 판독 전용 메모리("EEPROM"), 동적 랜덤 액세스 메모리("DRAM"), 모바일 DRAM, 동기식 DRAM("SDRAM"), 더블 데이터 레이트 SDRAM("DDR/2 SDRAM"), 확장 데이터 출력("EDO") RAM, 고속 페이지 모드("FPM") RAM, 감소된 레이턴시 DRAM("RLDRAM"), 정적 RAM("SRAM"), 플래시 메모리(예를 들어, NAND/NOR), 멤리스터 메모리, 의사정적 RAM("PSRAM") 등을 비제한적으로 포함하는, 디지털 데이터를 저장하도록 구성된 임의의 유형의 집적 회로 또는 그 밖의 다른 저장 디바이스를 포함할 수 있다. 메모리(252)는 명령들 및 데이터를 제어기(254)에 제공할 수 있다. 예를 들어, 메모리(252)는 복수의 명령들이 저장된 비일시적 컴퓨터 판독가능 저장 매체일 수 있으며, 명령들은 로봇(202)을 작동시키도록 프로세싱 장치(예를 들어, 제어기(254))에 의해 실행가능 하다. 일부 경우들에서, 명령들은, 프로세싱 장치에 의해 실행될 때, 프로세싱 장치로 하여금 본 개시내용에서 설명되는 다양한 방법들, 특징들, 및/또는 기능성을 수행하게 하도록 구성될 수 있다. 따라서, 제어기(254)는 메모리(252) 내에 저장된 프로그램 명령들에 기초하여 논리 및 산술 연산들을 수행할 수 있다.
작동 유닛들(250)은 본 개시내용에서 설명된 다양한 작동들을 수행하기 위해 제어기(254) 또는 임의의 다른 제어기에 결합될 수 있다. 일부 구현예에 작동 유닛들(250) 내의 모듈 중 하나 이상이 포함되거나, 그 어느 것도 포함되지 않을 수 있다. 본 개시내용 전반에 걸쳐, 다양한 제어기들 및/또는 프로세서들이 참조될 수 있다. 일부 구현예들에서, 단일 제어기(예를 들어, 제어기(254))는 설명되는 다양한 제어기들 및/또는 프로세서들로서 역할할 수 있다. 다른 구현예에서, 하나 이상의 작동 유닛(250)을 위해 특별히 그리고/또는 그의 일부로서 사용되는 제어기들 및/또는 프로세서들과 같은, 상이한 제어기들 및/또는 프로세서들이 사용될 수 있다. 제어기(254)는 이산 신호 및 아날로그 신호를 포함한, 예컨대 전력 신호, 제어 신호, 센서 신호, 질문 신호, 상태 신호, 데이터 신호, 전기 신호 및/또는 임의의 다른 바람직한 신호 등과 같은, 신호를 작동 유닛(250)으로 송신 및/또는 그 작동 유닛으로부터 수신할 수 있다. 제어기(254)는 작동 유닛들(250)을 조정 및/또는 관리하고, 그리고/또는 타이밍을 설정하고(예를 들어, 동기식 또는 비동기식으로), 켜고/끄고, 전력 예산을 제어하고, 네트워크 명령들 및/또는 업데이트들을 수신/송신하고, 펌웨어를 업데이트하고, 질의 신호들을 송신하고, 상태를 수신 및/또는 송신하고, 그리고/또는 로봇(202)의 특징들을 실행하기 위한 임의의 작동들을 수행할 수 있다.
작동 유닛들(250)에는 로봇(202)을 위한 기능들을 수행하는 다양한 유닛을 포함할 수 있다. 예를 들어, 작동 유닛들(250)의 유닛들에는 맵핑 및 위치 추정 유닛들(262), 센서 유닛들(264), 액추에이터 유닛들(268), 통신 유닛들(266), 네비게이션 유닛들(276) 및 사용자 인터페이스 유닛들(272)이 포함될 수 있다. 또한, 작동 유닛들(250)에는 로봇(202)의 다양한 기능성을 제공하는 그 밖의 다른 유닛들이 포함될 수 있다. 일부 경우에 있어서, 작동 유닛들(250)의 유닛들은 소프트웨어 또는 하드웨어로 예시될 수 있고 그리고/또는 소프트웨어와 하드웨어 모두로 예시될 수 있다. 예를 들어, 일부 경우에 있어서, 작동 유닛들(250)의 유닛들에는 제어기에 의해 실행되는 컴퓨터 구현 명령들이 포함될 수 있다. 일부 경우에 있어서, 작동 유닛들(250)의 유닛들에는 변경 불가하게 코드화된 논리가 포함될 수 있다. 일부 경우에 있어서, 작동 유닛들(250)의 유닛들에는 제어기에 의해 실행되는 명령들과 변경 불가하게 코드화된 논리가 포함될 수 있다. 작동 유닛들(250)이 적어도 부분적으로 소프트웨어에서 구현되는 경우, 작동 유닛들(250)은 하나 이상의 기능성들을 제공하도록 구성된 코드의 유닛들/모듈들을 포함할 수 있다.
일부 구현예에서, 센서 유닛들(264)은 로봇(202) 내의 및/또는 주변의 특징들을 감지할 수 있는 시스템들을 포함할 수 있다. 센서 유닛들(264)은 로봇(202) 내부 또는 외부에 있는 센서들을 포함할 수 있고, 그리고/또는 부분적으로 내부 및/또는 부분적으로 외부에 있는 컴포넌트들을 가질 수 있다. 센서 유닛(314)은 음파 탐지기, 라이다(LIDAR), 레이더, 레이저, 비디오 카메라, 적외선 카메라, 3D 센서, 3D 카메라 및/또는 당업계에 공지된 임의의 다른 센서 등과 같은 외부 센서를 포함할 수 있다. 센서 유닛(264)은 가속도계, 관성 측정 장치, 주행거리계, 자이로스코프, 속도계 및/또는 이와 유사한 것 등과 같은 고유수용성 센서(proprioceptive sensor)를 포함할 수 있다. 일부 구현예에서, 센서 유닛(264)은 미가공 측정치들(예를 들어, 전류, 전압, 저항 게이트 로직 등) 및/또는 변환된 측정치들(예를 들어, 거리, 각도, 장애물 감지 지점 등)을 수집할 수 있다.
일부 구현예에서, 맵핑 및 위치 추정 유닛(262)은 로봇(202)이 환경을 네비게이팅할 때의 환경 및/또는 노정의 지도(예를 들어, 도 4a 및 도 4b를 참조하여 설명되는 지도(300, 400) 및/또는 로봇(202)이 생성해내는 임의의 다른 지도)를 컴퓨터를 이용해서 구축하고 갱신할 수 있는 시스템들 및 방법들을 포함할 수 있다. 예시적인 예로서, 맵핑 및 위치 추정 유닛(262)은 하나 이상의 시점에서 지도(300)에 환경(200)을 맵핑하고 로봇(202)의 장소를 알아낼 수 있다(예를 들어, 위치 및/또는 자세를 알아낼 수 있다). 그와 동시에, 맵핑 및 위치 추정 유닛(262)은 지도(300)(예를 들어, 맵핑된 노정(306))에 시연된 노정을 기록할 수 있다.
맵핑 및 위치 추정 유닛(262)은 또한 센서 유닛들(264)로부터 센서 데이터를 수신하여 로봇(202)을 지도 내에 위치시킬 수 있다. 일부 구현예에서, 맵핑 및 위치 추정 유닛(262)은 로봇(202)으로 하여금 지도의 좌표에 자신을 위치시킬 수 있게 하는 위치 추정 시스템들 및 방법들을 포함할 수 있다. 본 개시에서 한층 더 설명되는 바와 같이, 맵핑 및 위치 추정 유닛(262)은 또한 그래프 및/또는 지도를 생성하는 등의 것에 의해 로봇(202)에 의해서 취해진 측정치들을 처리할 수도 있다.
일부 구현예에서, 통신 유닛(266)에는 하나 이상의 수신기, 송신기 및/또는 송수신기가 포함될 수 있다. 통신 유닛(266)은, 예컨대 블루투스(BLUETOOTH®), 지그비(ZIGBEE®), 와이파이(Wi-Fi), 유도 무선 데이터 전송, 무선 주파수, 무선 전송, 무선 주파수 식별("RFID"), 근거리 통신("NFC"), 적외선, 네트워크 인터페이스, 3G(3GPP/3GPP2)와 같은 셀룰러 기술, 고속 다운링크 패킷 액세스("HSDPA"), 고속 업링크 패킷 액세스("HSUPA"), 시분할 다중 액세스("TDMA"), 코드 분할 다중 액세스("CDMA")(예를 들어, IS-95A, 광대역 코드 분할 다중 접속("WCDMA") 등), 주파수 호핑 확산 스펙트럼("FHSS"), 직접 시퀀스 확산 스펙트럼("DSSS"), 글로벌 이동 통신 시스템("GSM"), 개인 영역 네트워크("PAN")(예를 들어, PAN/802.15), 마이크로웨이브 액세스를 위한 전세계 상호 운용성("WiMAX"), 802.20, 롱텀 에볼류션("LTE")(예를 들어, LTE/LTE-A), 시분할 LTE("TD-LTE"), 글로벌 이동 통신 시스템("GSM"), 협대역/주파수 분할 다중 액세스("FDMA"), 직교 주파수 분할 다중화("OFDM"), 아날로그 셀룰러, 셀룰러 디지털 패킷 데이터("CDPD"), 위성 시스템, 밀리미터파 또는 마이크로웨이브 시스템, 음향, 적외선(예를 들어, 적외선 데이터 통신("IrDA")), 및/또는 임의의 다른 형태의 무선 데이터 전송과 같은, 전송 프로토콜을 송신/수신하도록 구성될 수 있다.
본원에 사용된 네트워크 인터페이스는, 파이어와이어(FireWire)(예를 들어, FW400, FW800, FWS800T, FWS 1600, FWS3200 등), 범용 직렬 버스(USB)(예를 들어, USB 1.X, USB 2.0, USB 3.0, USB 타입-C 등), 이더넷(예를 들어, 10/100, 10/100/1000 (기가비트 이더넷), 10-Gig-E 등), 케이블 기반 멀티미디어 연합("MoCA") 기술, Coaxsys(예를 들어, TVNET™), 무선 주파수 튜너(예를 들어, 인-밴드 또는 OOB, 케이블 모뎀 등), 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 표준 802.11, IEEE 표준 802.11의 변형, IEEE 표준 802.11과 관련된 표준(예를 들어, 802.11 a/b/g/n/ac/ad/af/ah/ai/aj/aq/ax/ay) 및/또는 기타 무선 표준 중 하나 이상을 포함할 수 있다.
통신 유닛(266)은 또한 신호선 및 접지를 갖는 임의의 케이블과 같은 유선 접속을 통해 전송 프로토콜을 송신/수신하도록 구성될 수 있다. 예를 들어, 위와 같은 케이블에는 이더넷 케이블, 동축 케이블, USB, 파이어와이어(FireWire) 및/또는 당업계에 공지된 임의의 접속 수단이 포함될 수 있다. 이러한 프로토콜은 통신 유닛(266)에 의해 사용되어서 컴퓨터, 스마트폰, 태블릿, 데이터 갈무리 시스템, 이동 통신 네트워크, 클라우드, 서버 등과 같은 외부 시스템과 통신할 수 있도록 한다. 통신 유닛(266)은 숫자, 문자, 영숫자 문자 및/또는 기호를 포함하는 신호를 송신 및 수신하도록 구성될 수 있다. 일부 경우에서, 신호는 128 비트 또는 256 비트 키 및/또는 고급 암호화 표준(AES: Advanced Encryption Standard), RSA, 데이터 암호화 표준(DES: Data Encryption Standard), 트리플 DES 등과 같은 표준을 준수하는 그 밖의 다른 암호화 알고리즘과 같은, 알고리즘을 사용하여 암호화될 수 있다. 통신 유닛(266)은 상태, 명령, 및 그 밖의 다른 데이터/정보를 송신 및 수신하도록 구성될 수 있다. 예를 들어, 통신 유닛(266)은 사용자가 로봇(202)을 제어할 수 있게 하기 위해 사용자 제어기와 통신할 수 있다. 통신 유닛(266)은 로봇(202)이 데이터, 상태, 명령 및 그 밖의 다른 통신 정보들을 서버에 송신할 수 있게 하기 위해 서버/네트워크와 통신할 수 있다. 상기 서버는 또한 로봇(202)을 원격으로 모니터링 및/또는 제어하는 데 사용될 수 있는 컴퓨터(들) 및/또는 장치(들)에 통신 가능하게 결합될 수도 있다. 통신 유닛(266)은 또한 로봇(202) 및/또는 그의 작동 유닛(250)을 위해 서버로부터 업데이트(예를 들어, 펌웨어 또는 데이터 업데이트), 데이터, 상태, 명령 및 그 밖의 다른 통신 정보도 수신할 수 있다.
일부 구현예에서, 작동 유닛들(250) 중 하나 이상은 로봇(202)으로부터 떨어져 있게 한 방식으로 예시될 수 있다. 예를 들어, 맵핑 및 위치 추정 유닛들(262)이 클라우드 내에 위치될 수 있고/있거나 통신 유닛(266)을 통해 로봇(202)에 접속될 수 있다. 접속은 직접 및/또는 서버 및/또는 네트워크를 통해 이루어질 수 있다. 따라서, 본 개시내용의 기능성을 구현한 예들은 또한 통신 유닛(266)을 사용하여 데이터가 전송될 수 있는 원격 상호 작용을 포함하는 것으로 이해되어야 하고, 프로세스들의 하나 이상의 부분은 원격으로 이행될 수 있다.
일부 구현예에서, 액추에이터 유닛(268)은, 예컨대 전기 모터, 가스 모터, 피동 자석 시스템, 솔레노이드/래칫 시스템, 압전 시스템(예를 들어, 인치웜 모터), 자기 변형 소자, 제스쳐 기동(gesticulation) 및/또는 당업계에 공지된 액추에이터를 구동하는 임의의 방식과 같은, 액추에이터들을 포함할 수 있다. 예시로서, 이러한 액추에이터는 바퀴 또는 그 밖의 다른 변위 가능한 구동기(예를 들어, 기계식 다리, 제트 엔진, 프로펠러, 유압 장치 등)를 작동시킬 수 있다. 예를 들어, 액추에이터 유닛(268)은 로봇(202)으로 하여금 환경(200) 및/또는 임의의 다른 환경을 관통해 이동 및/또는 네비게이팅할 수 있게 한다. 일부 경우에서, 액추에이터 유닛(268)에는, 예컨대 바닥 청소용 브러시를 가동시키기, 스퀴지들을 이동시키기(예를 들어, 위로, 아래로, 왼쪽으로, 오른쪽으로, 앞으로, 뒤로 이동시키기), 물을 틀기/잠그기, 물 뿌리기, 진공 청소를 켜기/끄기, 진공 호스 위치를 이동시키기, 아암의 몸짓을 일으키기, 리프트를 올리기/내리기, 카메라 및/또는 센서 유닛들(264)의 임의의 센서를 선회시키기, 및/또는 로봇(202)이 동작을 수행하는 데 필요한 임의의 움직임과 같은, 동작들 및/또는 동작 특정 작업들을 위해 구성된 액추에이터들이 포함될 수 있다.
일부 구현예에서, 사용자 인터페이스 유닛(272)은 사용자(예를 들어, 사용자(604) 또는 임의의 다른 사용자)가 로봇(202)과 상호 작용할 수 있게 구성될 수 있다. 예를 들어, 사용자 인터페이스 유닛(272)은 터치 패널, 버튼, 키패드/키보드, 포트(예를 들어, USB, 디지털 비주얼 인터페이스(DVI), 디스플레이 포트, E-Sata, Firewire, PS/2, 시리얼, 비디오 그래픽 어레이(VGA), 소형 컴퓨터 시스템 인터페이스(SCSI: Small Computer System Interface), 오디오 포트, 고화질 멀티미디어 인터페이스("HDMI"), 개인용 컴퓨터 메모리 카드 국제 협회( "PCMCIA") 포트, 메모리 카드 포트(예를 들어, SD 및 miniSD) 및/또는 컴퓨터 판독가능 매체용 포트), 마우스, 롤러볼, 콘솔, 바이브레이터, 오디오 변환기, 및/또는 사용자가 데이터 및/또는 명령을 입력 및/또는 수신할 수 있도록 한 것으로서 무선 연결 또는 유선 연결을 막론한(예컨대 통신 유닛(266)과 관련하여 본 개시에서 설명된 임의의 무선 또는 유선 접속을 비제한적으로 포함하는) 임의의 인터페이스를 포함할 수 있다. 사용자 인터페이스 유닛(272)에는, 예컨대 비제한적으로 액정 디스플레이("LCD"), 발광 다이오드("LED") 디스플레이, LED LCD 디스플레이, 인-플레인 스위칭("IPS"), 음극선관, 플라즈마 디스플레이, 고화질("HD") 패널, 4K 디스플레이, 망막 디스플레이, 유기 LED 디스플레이, 터치스크린, 표면, 캔버스, 및/또는 임의의 디스플레이, 텔레비전, 모니터, 패널, 스크린, 및/또는 당업계에 공지된 시각적 표현을 위한 장치 등과 같은, 디스플레이들이 포함될 수 있다. 일부 구현예에서, 사용자 인터페이스 유닛(272)은 로봇(202)의 몸체 상에 위치될 수 있다. 일부 구현예에서, 사용자 인터페이스 유닛(272)은 로봇(202)의 몸체로부터 멀리 떨어져 위치될 수 있지만, 로봇(202)에 (예를 들어, 통신 유닛(266)을 거쳐서) 직접적으로 또는 간접적으로(예를 들어, 네트워크 또는 클라우드를 통해) 통신 가능하게 연결될 수 있다.
일부 구현예에서, 네비게이션 유닛(276)은 로봇(202)을 네비게이팅하게 하기 위한 방향성 명령을 제공하도록 구성된 컴포넌트 및/또는 소프트웨어를 포함할 수 있다. 네비게이션 유닛(276)은 맵핑 및 위치 추정 유닛(262)에 의해 생성된 지도 및 위치 추정 정보와, 센서 유닛들(264) 및/또는 그 밖의 다른 작동 유닛들(250)로부터 나온 센서 데이터를 처리할 수 있다. 예를 들어, 네비게이션 유닛(276)은 맵핑 및 위치 추정 유닛들(262)로부터 지도(300)를 수신할 수 있다. 네비게이션 유닛(276)은 또한 노정(306)을 포함해서 지도(300) 내의 로봇(202)의 위치의 적어도 일부를 나타낼 수 있는 위치 추정 정보를 맵핑 및 위치 추정 유닛들(262)로부터 수신할 수 있다. 네비게이션 유닛(276)은 또한 로봇(202) 주위의 물체들의 적어도 일부를 나타낼 수 있는 센서 데이터를 센서 유닛들(264)로부터 수신할 수 있다. 네비게이션 유닛(276)은 지도, 위치 및 센서 데이터 중 하나 이상을 사용하여 로봇(202)에게 어디로 네비게이팅해야 하는지를(예를 들어, 앞으로, 왼쪽으로, 오른쪽으로, 뒤로 및/또는 임의의 다른 방향으로 진행하라고) 명령할 수 있다.
네비게이션 유닛(276)은 또한, 예컨대 바닥 청소용 브러시를 가동시키기, 스퀴지들을 이동시키기(예를 들어, 위로, 아래로, 왼쪽, 오른쪽, 앞으로, 뒤로 이동시키기), 물을 틀기/잠그기, 물 뿌리기, 진공 청소를 켜기/끄기, 진공 호스 위치를 이동시키기, 아암의 제스쳐 기동시키기, 리프트를 올리기/내리기, 카메라 및/또는 센서 유닛들(264)의 임의의 센서를 선회시키기, 및/또는 로봇(202)이 취하는 임의의 동작과 같은, 동작들 및/또는 동작 특정 작업들도 수행할 수 있다. 일부 경우에서, 이와 같은 동작들 및/또는 동작 특정 작업들은 지도에 표시될 수 있으며, 액추에이터 유닛들(268)에 의해 실행될 수 있다.
일부 구현예에서, 전원 공급 장치(256)는, 리튬, 리튬 이온, 니켈-카드뮴, 니켈 금속 수소화물, 니켈-수소, 탄소-아연, 은 산화물, 아연-탄소, 아연-공기, 수은 산화물, 알칼리 또는 당업계에 공지된 임의의 다른 유형의 배터리를 비제한적으로 포함하는 배터리를 포함할 수 있다. 특정 배터리는 예컨대 무선으로(예를 들어, 공진 회로 및/또는 공진 탱크 회로에 의해) 그리고/또는 외부 전원에 연결하여 충전할 수 있다. 전원 공급 장치(256)는 또한, 태양열, 바람, 물, 원자력, 수소, 가솔린, 천연 가스, 화석 연료, 기계 에너지, 증기 및/또는 임의의 동력원을 전기로 변환하는 전자 장치 및 벽 소켓을 포함한 임의의 에너지 공급 장치일 수 있다.
일부 구현예에서, 운영 시스템(270)은 메모리(252), 제어기(254), 전원 공급 장치(256), 작동 유닛들(250) 내의 모듈들 및/또는 로봇(202)의 임의의 소프트웨어, 하드웨어 및/또는 특징을 관리하도록 구성될 수 있다. 비제한적 예로서, 운영 시스템(270)은 로봇(202)을 위한 하드웨어 자원을 관리하기 위해 장치 드라이버들을 포함할 수 있다.
앞에서 언급한 바와 같이, 로봇(202)의 전술한 컴포넌트들 중 임의의 것은 소프트웨어 및/또는 하드웨어로 예시될 수 있다. 예를 들어, 하나의 유닛/모듈은 컴퓨터에서 실행되는 하드웨어의 일부 및/또는 코드의 일부일 수 있다.
도 4a는 본 개시내용의 일부 구현예에 따른 것으로서, 로봇(202)이 환경(200)에서 이동할 때에 그 로봇에 의해 생성된 지도(300) 및 노정(306)의 평면도이다. 일부 구현예에서, 지도(300) 생성은 맵핑 및 위치 추정 유닛(262)에 의해 수행될 수 있다. 지도(300)는 환경(200)의 맵핑된 영역에 각각 대응하는 픽셀들을 포함할 수 있다. 지도(300) 내의 픽셀의 수는 지도(300)의 해상도에 기초하여 결정될 수 있다. 지도(300)는 배치에 있어서 환경(200)과 거의 유사할 수 있는데, 지도(300) 내의 각 픽셀은 환경(200) 내의 한 위치에 가까울 수 있다. 로봇(202)은 지도(300) 상에 로봇 표시자(302)로서 나타날 수 있다. 각 픽셀은 균일하거나 불균일할 수 있는 영역을 나타낼 수 있다. 예를 들어, 하나의 픽셀은 하나의 영역 단위, 즉 n x m 또는 n x n 영역 단위, 또는 불균일한 영역 단위를 나타낼 수 있다.
맵핑은 환경(200)의 적어도 일부를 나타내는 2차원 ("2D"), 3차원("3D") 및/또는 4차원("4D") 지도에 센서 유닛들(264)에 의해서 적어도 부분적으로 얻어진 데이터를 부과함으로써 수행될 수 있다. 예를 들어, 지도(300)는 로봇(202)에 의해 감지된 장애물 및/또는 물체의 적어도 일부를 나타내는 표현들을 포함할 수 있다. 지도(300)는 또한 사용자가 제어하는 동안 로봇(202)이 학습한 노정과 같은 시연된 노정도 기록할 수 있다. 예를 들어, 맵핑된 노정(322)은 초기화 위치(222)와 같은 기준에 대한 로봇(202)의 상대 위치, 방향 및/또는 자세(위치, 변위 및 방향 중 하나 이상을 포함)에 적어도 부분적으로 기초한 좌표들(예를 들어, 2D 지도에서 x 및 y, 3D 지도에서 x, y, 및 z)을 포함할 수 있다. 예를 들어, 자세는 (x, y, 세타) 좌표를 가질 수 있다. 본원에서 사용된 위치라는 용어는 통상적이고 관례적인 의미를 갖는다. 예를 들어, 일부 경우에서, 위치는 물체, 로봇(202) 등의 변위, 좌표 등의 관점에서의 위치를 포함할 수 있다. 일부 경우에서, 위치는 또한 물체, 로봇(202) 등의 방향도 포함할 수 있다. 따라서, 일부 경우에서, 위치 및 자세라는 용어는 위치, 변위 및 방향 중 하나 이상을 포함하도록 상호 교환적으로 사용될 수 있다. 시연 프로세스를 통해 생성된 지도(300)는 일회 이상의 시연/훈련에서 로봇(202)이 감지한 환경의 일부 및/또는 실질적으로 전체를 기록할 수 있다. 이러한 이유로, 일부에서는 지도(300)를 글로벌 지도라고 부를 수 있다. 일부 경우에서, 지도(300)는 시연/훈련 후에 지도(300)가 실질적으로 갱신되지 않을 수도 있다는 점에서 고정적일 수 있다. 일부 구현예에서, 지도(300) 및 맵핑된 노정(306)은 또한 (예를 들어, 컴퓨터를 사용하는 사용자에 의해) 개별적으로 생성되어 로봇(202)에 업로드될 수 있다.
일부 구현예에서, 지도(300)의 픽셀(및/또는 3D에서는 복셀)은 그 픽셀에 의해 표현되는 환경(200) 내의 위치/장소의 특성을 적어도 부분적으로 나타내는 하나 이상의 픽셀 상태를 가질 수 있다. 예를 들어, 지도(300)의 픽셀은 2진수일 수 있는데, 여기서 제1 픽셀 상태(예를 들어, 픽셀 값)는 빈(예를 들어, 네비게이팅 가능한) 위치를 적어도 부분적으로 나타내며, 제2 픽셀 상태는 차단된(예를 들어, 네비게이팅 불가능한) 위치를 적어도 부분적으로 나타낸다. 예시로서, 영(0)인 픽셀 값은 빈 위치를 적어도 부분적으로 나타낼 수 있고, 일(1)인 픽셀 값은 차단된 위치를 적어도 부분적으로 나타낼 수 있다.
일부 구현예에서, 전술한 2진 상태 대신에 또는 그에 부가하여, 지도(300)의 픽셀들은, 예컨대 알려지지 않은 위치(예컨대, 정보가 없는 위치/장소)를 적어도 부분적으로 나타내는 픽셀 상태; 가지 않아야 하는 위치/장소를 적어도 부분적으로 나타내는 픽셀 상태; 네비게이팅 가능한 노정의 일부를 적어도 부분적으로 나타내는 픽셀 상태; 로봇(202)이 갔던 영역을 적어도 부분적으로 나타내는 픽셀 상태; 로봇(202)이 가지 않았던 영역을 적어도 부분적으로 나타내는 픽셀 상태; 물체를 적어도 부분적으로 나타내는 픽셀 상태; 괴어 있는 물을 적어도 부분적으로 나타내는 픽셀 상태; 및/또는 지도(300) 상의 위치/장소의 임의의 다른 범주 중 하나 이상과 같은, 그 밖의 다른 픽셀 상태를 포함할 수 있다. 일부 구현예에서, 픽셀 상태 및/또는 픽셀과 관련된 데이터는, 예컨대 바닥 청소용 브러시를 가동시키기, 스퀴지들을 이동시키기(예를 들어, 위로, 아래로, 왼쪽, 오른쪽, 앞으로, 뒤로 이동시키기), 물을 틀기/잠그기, 물 뿌리기, 진공 청소를 켜기/끄기, 진공 호스 위치를 이동시키기, 아암의 제스쳐 기동시키기, 리프트를 올리기/내리기, 카메라 및/또는 센서 유닛들(264)의 임의의 센서를 선회시키기, 및/또는 로봇(202)이 취하는 임의의 동작과 같은, 동작들 및/또는 동작 특정 작업들을 적어도 부분적으로 나타낼 수 있다.
지도(300)의 픽셀들은 또한 단일의 값 또는 픽셀 상태 이상의 것들도 저장할 수 있다. 예를 들어, 지도(300)의 각 픽셀은 벡터 및/또는 행렬에 저장된 값들과 같은 복수의 값을 저장할 수 있다. 이들 값들에는, 노정(306)을 따라 한 지점(예를 들어, 픽셀)에서 위치가 측정될 때 로봇(202)의 위치/자세(예를 들어, 위치 및/또는 방향 포함)를 적어도 부분적으로 나타내는 값들이 포함될 수 있다. 또한, 이들 값들에는, 로봇(202)이 소정 위치/장소를 청소해야 하는지 혹은 청소하지 않아야 하는지와, 그리고/또는 로봇(202)이 취해야 할 그 밖의 다른 동작/동작 특정 작업도 포함될 수 있다.
로봇(202)은 지도(300)에 노정(306)으로서 반영될 수 있는 노정(예를 들어, 도 2에 도시된 도면 부호 206)을 따라 이동할 수 있다. 각각의 위치에서 로봇(202)은 노정을 따라 이동하고, 그리고 로봇(202)은 그의 위치 및/또는 방향을, 일부 경우에서는, 초기화 위치(예를 들어, 초기화 위치(222)), 홈 로케이터(예를 들어, 홈 로케이터(220)) 및/또는 또 다른 기준 지점에 대한 그의 위치 및/또는 방향을, 결정할 수 있다. 이러한 맵핑 및 위치 추정 기능들은 맵핑 및 위치 추정 유닛들(262)에 의해 수행될 수 있다. 초기화 위치는 지도(300) 상에 맵핑된 위치(322)로서 나타낼 수 있다. 일부 경우에서, 맵핑된 위치(322)는 홈 로케이터(일부 구현예에서는 지도(300) 상의 작은 표적(pinpoint)일 수 있고/있거나 달리 표현될 수도 있음)에 대해서 결정될 수 있다.
예를 들어, 로봇(202)은 초기화 위치(204)(또는 다른 기준점)로부터의 그의 거리를 주행거리계를 사용하여 측정하거나 근사치화 할 수 있는데, 여기서 로봇은 센서 유닛들(264)의 고유수용성 센서들(예를 들어, 바퀴 엔코더(예, 회전식 엔코더), 시각적 주행거리계, 관성 측정 장치(IMU)(가속도계, 자력계, 각속도 센서 포함) 등)을 사용하여 초기화 위치(202)에서 출발한 이후의 당해 로봇(202)의 이동을 추적한다. 예시적인 예로서, 고유수용성 센서들 중 하나 이상은 로봇(202)의 바퀴의 회전수에 기초하여 거리를 측정 및/또는 추정하는 휠 인코더일 수 있다. 또 다른 예시적인 예로서, 카메라에 의해 취해진 순차적 이미지들을 통해 로봇(202)의 이동 거리 및/또는 방향을 측정하거나 추정하는 데 시각적 주행거리계가 사용될 수 있다. 상기 시각적 주행거리계는 (예를 들어, 루카스-카나데(Lucas-Kanade) 방법 또는 그 밖의 다른 방법을 사용하여) 광학 유동장을 구성하고 그리고/또는 예컨대 칼만 필터 또는 투영법을 사용하여 카메라의 동작을 추정할 수 있다. 또 다른 비제한적 예로서, 로봇(202)의 위치 및/또는 방향을 측정 및/또는 추정하는 데 IMU들이 사용될 수 있다.
로봇(202)이 환경(200)을 관통해 네비게이팅하는 것과 실질적으로 유사한 방식으로 로봇 표시자(302)(예를 들어, 도 6a 및 다른 곳에서 볼 수 있는 바와 같은 것)가 지도(300)를 따라서 진행함에 따라, 로봇(202)은 지도(300)에 노정(306)을 기록할 수 있다. 유리하게도, 일부 구현예에서, 지도(300)와 노정(306)은 함께 생성될 수 있으며, 이 경우 로봇(202)은 실질적으로 유사한 시점들에서 환경(200)을 맵핑하고 노정(306)을 기록한다. 따라서, 일부 구현예에서, 지도(300)와 노정(306)은 함께 쌍을 이룰 수 있고, 여기서 각각의 기록된 노정은 특정 지도에만 저장된다.
노정(206)의 일부인 각각의 위치는 지도(300)의 노정(306) 상의 픽셀에 대응할 수 있고, 여기서 노정(306)의 픽셀 상태는 픽셀이 네비게이팅 가능한 노정의 일부라는 것을 나타낸다. 로봇(202)이 이동함에 따라, 로봇(202)은 또한 하나 이상의 센서 유닛(264)을 사용하여 물체들에 대한 당해 로봇(202)의 위치 및/또는 방향도 측정할 수 있다. 이러한 측정은 노드로 표시된 이산 시간 및/또는 위치에서 취해질 수 있다. 로봇(202)은 또한 하나 이상의 센서 유닛(264)을 사용한 스캔들을 하여서 환경을 감지할 수 있다. 이러한 방식으로, 로봇(202)은 선반 또는 벽과 같은 물체에 대한 당해 로봇(202)의 위치 및/또는 방향을 감지 및/또는 측정할 수 있다.
로봇(202)이 물체를 감지하는 경우, 로봇(202)은 센서 유닛들(264)을 사용하여 당해 로봇(202)에 대한 복수의 방향에서의 물체의 위치 및/또는 방향을 감지 및/또는 측정할 수 있다. 이와 동시에, 로봇(202)은 센서 유닛들(264)을 사용하여 당해 로봇(202)의 위치 및/또는 방향을 추정할 수 있다. 로봇(202)이 환경에서 이동함에 따라, 상이한 물체들이 센서 유닛들(264)의 센서들의 범위 내로 들어올 수 있다. 예를 들어, 상기 센서들은 로봇(202)의 전방 측에 위치될 수 있고 미리 결정된 범위를 가질 수 있다. 예를 들어, 로봇(202)은 전방 측에서 상기 미리 결정된 범위까지 물체를 감지할 수 있다. 이와 유사하게, 다른 센서들은 그 각각의 범위를 가질 수 있고, 그 범위 내에서 물체들을 감지할 수 있다. 이 센서들은 전방, 후방, 좌측, 우측, 바닥, 상부, 및/또는 이들의 임의의 조합에 위치될 수 있다.
일부 경우에서, 센서 유닛들(264)은 특정 영역을 감지하지 못할 수 있다. 예를 들어, 어떤 물체가 소정 영역을 감지하기 위한 로봇(202)의 유용성을 방해할 수 있거나, 상기 영역이 사각 지대(예를 들어, 센서들의 측정 범위에 의해 커버되지 않는 장소)에 나타날 수 있다.
지도(300)에 맵핑된 환경은 도 2에 환경(200)으로 예시된 것보다 더 큰 세트이다. 노정(306)은 통로들 사이의 경로들을 관통한 수평으로 도시된 횡단들을 포함해서 통로들의 횡단 및 그 밖의 다른 이동을 포함한다. 지도(300)에 예시된 바와 같이, 로봇(202)은 각 통로를 여러 번 주행하면서 통로들을 횡단하는 동안에 바닥을 청소할 수 있다.
일부 경우에서, 도 4a는 본 개시내용의 일부 구현예에 따른 완성된 지도(300)의 평면도일 수 있다. 로봇(202)은 맵핑된 위치(322)에서 시작해서 끝낼 수 있다. 도 4a의 완성된 지도(300)는 완성된 정확한 지도를 예시하고 있다. 그러나 센서 유닛들(264)에 의해 수집된 데이터를 지도 상에 단순히 기입하는 것으로는 지면(ground)의 실상과 실질적으로 유사한 지도를 생성하는 것은 간단하지 않다. 센서 유닛들(264)의 센서들은 노이즈, 측정 드리프트 등을 갖는다. 그 결과, 센서 유닛들(264)의 센서들은 환경 내의 특징물들을 항상 모호하지 않게 식별할 수 있는 것이 아니다. 센서 유닛들(264)의 센서들은 또한 로봇(202)의 위치 및/또는 자세를 항상 모호하지 않게 식별할 수 있는 것도 아니다.
센서 유닛들(264)에 의한 식별이 모호하지 않을 수 없기 때문에, 로봇(202)은 그의 위치 및/또는 환경(200)의 특징물들의 위치를 확률적으로 결정할 수 있다. 로봇(202)은 맵핑하면서 환경(200)을 관통해 이동할 때 센서 유닛들(264)로부터 나온 센서 데이터뿐만 아니라 내부 로봇 명령(예를 들어, 앞으로, 왼쪽으로, 오른쪽으로, 뒤로 이동하라는 명령, 회전하라는 명령 등)을 기록한다. 상기 센서 유닛들(264)로부터 나온 센서 데이터는 또한, 예컨대 상대 위치를 결정하기 위해 스캔 정합을 하는 것을 통해, 자체 또는 다른 데이터와 비교될 수도 있다. 그 결과, 로봇(202)은 적어도 센서 데이터, 스캔 정합 및 내부 로봇 명령이 주어진 지도의 사후 확률 분포 함수를 (예를 들어, 맵핑 및 위치 추정 유닛들(262)을 사용하여) 구축할 수 있다. 다른 요인들도 고려될 수 있다.
측정에 있어서의 모호성 때문에, 로봇(202)은 보정되지 않으면 그의 주변 및 이동한 노정을 반영하지 못하게 되는 지도를 생성할 수 있다. 도 4b는 본 개시내용의 일부 구현예에 따른 로봇(202)의 주변 및 이동한 노정을 정확하게 반영하지 못하는 지도(400)이다. 지도(400)는 노이즈, 센서 드리프트 및 기타 요인으로 인해 왜곡된 채로 보인다. 그 결과, 노정(406)이 모든 곳으로 이동하는 것으로 보인다. 노정(406) 주위의 맵핑된 환경은 펼쳐져서, 지면의 실상을 반영하지 못하는 특징물들이 그 자체 위에 겹쳐지는 것으로 보인다. 비교해 보면, 도면 부호 400인 지도는 도면 부호 300인 지도로 수정될 수 있는데, 여기서 도면 부호 400인 지도는 실제로는 환경 및 노정이 도면 부호 300인 지도와 동일한 지도이지만, 도면 부호 400인 지도는 왜곡되어 있고 도면 부호 300인 지도는 사실을 더 정확하게 반영하고 있다. 환경은 관찰할 수 있는 바와 같이 실제로는 일련의 통로(예를 들어, 컬럼으로 나타나 있음)를 포함한다.
도 5는 본 개시내용의 일부 구현예에 따른 것으로서, 지도를 생성하기 위한 예시적인 방법(550)의 프로세스 흐름도이다. 예를 들어, 블록 552는 노드들을 포함하는 그래프를 생성하기를 포함한다. 블록 554는 그래프를 실질적으로 동일한 위치에서 시작하고 종료하도록 구속하기를 포함한다. 블록 556은 노드들에서 스캔들로부터 결정된 확장된 스캔 그룹들에 대한 스캔 정합을 수행하기를 포함한다. 블록 558은 각 노드의 위치에서의 신뢰도를 결정하기를 포함한다. 블록 560은 각 노드의 위치를 결정하기 위해 비용 함수를 생성하고 해를 구하기를 포함한다. 블록 562는 위치된 노드들로부터 취한 스캔들로부터 지도를 렌더링하기를 포함한다. 이 프로세스 흐름도는 예시의 목적으로만 제공되어 있다. 일부 경우에서는 상기 프로세스에서 하나 이상의 블록을 생략할 수 있다. 또한, 본 개시에서 설명된 바와 같이, 다양한 그 밖의 다른 블록들이 대안으로 추가 및/또는 사용될 수 있다.
도 5의 블록 522에서의 노드들을 포함하는 그래프 생성은, 일부 경우에서는, 로봇(202)이 환경 내에서 이동할 때에 맵핑 및 위치 추정 유닛(262) 및/또는 컨트롤러(254)에 의해 수행될 수 있다. 추가적인 예시로서, 도 6a는 본 개시내용의 일부 구현예에 따른 것으로서, 그래프(600) 내의 노정(622)에 따른 로봇(202)(도 2에 도시됨)의 이산화 측정들을 포함하는 선도의 평면도이다. 노정(622)은 예시의 목적으로 사용된다. 일부 경우에서, 노정(622)은 그래프(600)의 그래프 공간에 로봇 표시자(302)로 예시된 로봇(202)에 의해서 이산 노드들(602A 내지 602D)로부터 결정된 노드들을 연결하는 노정 및/또는 궤도를 나타낼 수 있다. 따라서, 본원의 도면들에 예시된 바와 같이, 노정들은 참조를 용이하게 하기 위해 도시되어 있지만, 본원에 기술된 시스템들 및 방법들은 노정이 결정되기 전에 및/또는 후에 적용될 수 있다.
로봇(202)은 그래프(600)에 예시된 노정(622)으로 표시된 노정을 따라 네비게이팅할 때에 예컨대 센서 유닛들(264)을 사용하여 노드(602A 내지 602D)(그래프(600)의 지도 공간에 또 다시 도시됨)에서 측정을 할 수 있다. 당업자는 다수의 노드가 존재할 수 있음을 이해할 것이며, 그 수는 센서 유닛들(264)의 센서들의 분해능, 로봇(202)(예를 들어, 로봇 표시자(302)로 표시됨)의 속도, 센서 유닛들(264)의 센서들의 노이즈 및/또는 에러, 미리 결정된 로봇(202) 튜닝(예를 들어, 노드들을 확립하는 사이의 노드 거리 또는 시간 설정) 등에 적어도 부분적으로 기초하여 결정될 수 있음을 이해할 것이다. 도 6a는 예시적인 노정(622)의 한 가지 예시적인 구성만을 예시하고 있다. 예를 들어, 노드들 간의 거리는 사전에 정의된 표준 단위(예를 들어, 밀리미터, 센티미터, 미터, 인치, 피트 등) 또는 상대 단위(클릭, 픽셀, 길이 등)의 파라미터로서 설정될 수 있다. 상기 거리는 원하는 정확도, 기억 장치 크기, 노이즈 등의 고려 사항에 의존할 수 있는 원하는 해상도에 기초하여 결정될 수 있다. 예를 들어, 더 적은 수의 노드는 저장 공간을 덜 차지할 수 있지만 그보다 많은 노드에 비해 정보를 적게 제공한다. 노드(602A 내지 602D)로부터의 정보 수집과, 맵핑을 위해 사용되는 하나 이상의 시스템들 및 방법들은, 맵핑 및 위치 추정 유닛(262) 및/또는 제어기(254)에 의해 수행될 수 있다.
노드들(602A 내지 602D) 각각은 로봇(202)에 의한 측정(예를 들어, 스캔)의 위치를 나타낼 수 있다. 노드들(602A 내지 602D) 각각은 자세(예를 들어, 로봇(202)의 (x, y, θ)와 같은 측정을 포함함)와 관련될 수 있다. 로봇(202)의 자세는 위치 및/또는 방향(예를 들어, 초기화 위치(222) 및/또는 홈 로케이터(220)) 및/또는 환경(200)의 특징물들에 대해 상대적인 것일 수 있다. 상기 자세는 레이저 스캔, 라이다(LIDAR), 주행거리계 및/또는 센서 유닛들(264)의 임의의 다른 센서에 의해 획득된 데이터로부터 결정될 수 있다. 또한, 일부 경우에서, 노드들은 예를 들어 로봇(202)이 동일한 위치를 여러 번 통과하는 때와 같은 때에는 실질적으로 유사한 지점들에 위치될 수 있다.
노드들(602A 내지 602D) 간의 가장자리들 각각은, 노드들(602A 내지 602D) 각각에 대해 범위(604A 내지 604D)로 각각 예시된, 관련된 확률 함수 및/또는 확률 분포를 가질 수 있다. 일부 경우에서, 상기 범위(604A 내지 604D)는 사후 확률 분포를 사용하여 컴퓨터로 계산될 수 있다. 일부 경우에서, 상기 범위(604A 내지 604D)는 평균 계산 위치 + 공분산에서 도출될 수 있다. 일부 경우에서, 상기 확률 분포는 베이지안 프레임워크(Bayesian framework)를 사용하여 컴퓨터로 계산할 수 있는데, 여기서 노드들의 불확실성은 행렬(예를 들어, 공분산 행렬)과 같은 하나 이상의 데이터 구조에 저장될 수 있다. 당업자라면 이해할 수 있는 바와 같이, 범위(604A 내지 604D)는 또한 그 밖의 다른 통계적 방법을 사용하여서, 예컨대 교차-분산, 분산, 카이-제곱 분포, 및/또는 예를 들어 동시 위치 추정 및 맵핑("SLAM": Simultaneous Localization and Mapping) 및/또는 당업계에 공지된 자세를 결정하기 위한 그 밖의 다른 기법에서 사용되는 임의의 다른 통계적 방법을 사용하여서, 컴퓨터로 계산될 수도 있다. 일부 경우에서, 범위(604A 내지 604D)는 각 노드(602A 내지 602D) 주위의 영역을 적어도 부분적으로 나타낼 수 있고, 여기서 그래프(600)에 대한 로봇(202)의 실제 위치(예를 들어, 로봇 표시자(302)로 예시됨)는 상기 영역 내에 있을 수 있다. 예를 들어, 노드(602B)가 예시된 바와 같이 위치하는 대신에, 노드(602B)는 실제로 범위(604B) 내의 어떤 곳에도 위치 및/또는 방향을 포함한 상이한 자세를 범위(604B) 내에서 취하면서 위치될 수 있다. 일부 경우에서, 범위들(604A 내지 604D) 중 임의의 한 범위 내의 각각의 위치는 관련된 확률을 가질 수 있고, 여기서 일부 위치들은 다른 위치들보다 더 가능성이 있다. 일부 경우에서, 노이즈, 센서 드리프트 및 기타 요인들의 합성으로 인해, 범위들(604A 내지 604D) 중 후속하는 범위들은 예시된 것과 같은 로봇 표시자(302)의 위치에서부터 볼 때 더 커질 수 있고, 이는 노드들(602A 내지 602D)의 위치 결정의 더 많은 불확실성을 나타낸다. 그러나 구별되는 특징물들의 식별, 스캔 정합, 교정, 외부 식별 등과 같은 몇몇 요인들은 하나 이상의 범위(604A 내지 604D)의 크기를 범위들(604A 내지 604D) 중 이전의 범위들에 비하여 실제로 감소시킬 수 있다.
도 6b는 본 개시내용의 일부 구현예에 따른 것으로서, 도 6a에 도시된 연속 노정(622)을 포함하는 그래프(650)의 선도의 평면도이다. 예시된 바와 같이, 로봇(202)은 그래프(650) 상에 나타낸 바와 같이 노드(602A)에서 시작할 수 있다. 노드(602A)는 표시자(620)에 대해서 위치될 수 있고, 이는 홈 로케이터의 맵핑된/그래프화된 위치가 될 수 있다. 도 6을 참조하여 설명된 바와 같이, 로봇(202)은 노드들(602A 내지 602D)을 맵핑할 수 있다. 그러나 발생할 수 있는 한 가지 과제는 로봇이 계속해서 노정(622) 상에 있게 되면 오류가 누적될 수 있다는 것이다. 예를 들어, 범위들은 노드(622A)(이것의 위치는 표시자(620)와 같은 홈 로케이터에 대해 결정될 수 있음)의 위치에서 보았을 때에 전체에 걸쳐 계속해서 확장될 수 있다. 예시로서, 범위(628)는 범위(604D)보다 클 수 있고, 노드(622B)와 관련된 범위(624)는 더욱더 클 수 있다. 따라서, 범위가 커질수록 그 노드들의 위치의 모호성이 더 커질 수 있다. 그 결과, 종래의 SLAM 및/또는 임의의 다른 알고리즘을 사용하여 그래프(650)를 최적화하는 것은 컴퓨터 계산처리 측면에서 고가이고/이거나 부정확할 수 있다. 최적화를 찾는 데 있어서는 컴퓨터 계산처리, 시간 및 처리 비용이 높아질 수 있다.
일부 구현예에서, 도 5의 블록 554에 있어서의 실질적으로 동일한 위치에서 시작하고 끝나도록 그래프를 구속하는 것은 맵핑 및 위치 추정 유닛(262) 및/또는 제어기(254)에 의해 수행될 수 있다. 도 6c는 본 개시내용의 일부 구현예에 따른 것으로서, 도 6b의 그래프(690)가 구속되되 시작 위치와 끝 위치가 동일한 위치 및/또는 실질적으로 동일한 위치에 있게 구속된 것을 예시하고 있다. 그래프(690)는 그래프(650)로부터의 노드들을 예시하는데, 여기서 노드들(622A 및 622B)은 이제 실질적으로 동일한 위치에 있도록 구속된다. 일부 구현예에서, 노드들(622A 및 6228B)은, 그래프(690)를, 그리고 그 내부의 노드들을, 동일 및/또는 실질적으로 유사한 위치에서 시작하고 끝나는 그래프들에 구속하기 위해, 동일 및/또는 실질적으로 유사한 위치에 있을 수 있다. 일부 경우에서, 동일 및/또는 실질적으로 동일하게 끝나는 그래프들은 표시자(620)로 예시된 홈 로케이터를 감지함으로써 결정될 수 있다. 이러한 경우들에서, 로봇(202)이 노정(622)의 시작 및/또는 끝에서 동일한 홈 로케이터(예를 들어, 그래프(690) 상에 표시자(620)로 표시된 것)를 감지한 경우, 그러한 감지는 노드들(622A 및 622B)이 동일 및/또는 실질적으로 동일한 위치에 있다는 것을 적어도 부분적으로 나타낸다.
일부 구현예에서, 실질적으로 유사함은, 예컨대 x-거리, y-거리, z-거리, 각도 등과 관련된 하나 이상의 임계치에 기초하여, 미리 결정될 수 있다. 예를 들어, 표준 단위(예를 들어, 인치, 미터, 각도 및/또는 기타 표준 단위) 또는 상대 단위(예를 들어, 클릭 수, 픽셀 수, 길이 등)에 기초한 것들과 같은 거리 및/또는 각도 임계치가 있을 수 있다. 임계치는 센서 유닛들(264)의 센서들의 분해능, 센서 유닛들(264)의 센서들로부터의 노이즈, 센서 유닛들(264)의 센서들로부터의 센서 드리프트, 그래프 작성/맵핑에서의 허용 가능한 오차, 성능의 경험적 증거, 기준 특징물(예를 들어, 홈 로케이터 및/또는 그 밖의 다른 물체들)의 보여짐 및/또는 다른 요인들에 적어도 부분적으로 기초하여 결정된다.
유리하게도, 이러한 구속은 모호성을 줄일 수 있다. 각각이 시작 위치 및 종료 위치인 노드들(622A 및 622B)의 알려진(그리고/또는 추정된) 위치들에서부터 작동하게 되면, 오류의 전파를 양쪽 방향에서 잡을 수 있다. 따라서, 예시로서, 범위(626)가 도 6b의 유사한 노드로부터 현저하게 감소되고, 최대의 범위는 다른 곳, 예컨대 범위(628)이다. 주목할 만하게도, 노드 위치 모호성의 이러한 감소는 그래프(690)를 최적함에 있어서의 컴퓨터 계산처리, 시간 및 처리 비용을 그래프(650)에 비해서 더 감소시킬 수 있다. 범위들(804A, 804B, 804C)에 대해서는 도 8을 참조하여 더 상세하게 논의될 것이다.
일부 경우에서, 위치 신뢰도는 스캔 정합과 같은 그 밖의 다른 방법을 통해 결정될 수 있다. 예시로서, 로봇(202)은 노드들의 집합들로부터 복수의 스캔(예를 들어, 레이저 스캔)을 정합시켜서 그들의 상대 위치를 결정하는 것을 포함할 수 있는 스캔 정합을 사용할 수 있다. 일부 경우에서, 스캔 정합은 스캔과 그래프/지도, 스캔과 스캔, 및/또는 그래프/지도와 그래프/지도를 가장 잘 정렬시키는 강체 변환을 (예를 들어, 병진 및/또는 회전을 이용하여) 결정하는 데 사용될 수 있다.
예시로서, 두 노드 x0 및 x1로부터 환경을 감지하는 로봇은 라이다(LIDAR) 스캔 z0 및 z1을 얻을 수 있다. 상기 라이다 스캔은 환경 스캔을 갈무리할 수 있다. 예를 들어, 환경의 일부가 x0 및 x1에서 모두 볼 수 있는 경우라면, 지점들 z1을 투영하여 이들이 z0과 정렬되도록 하는 강체 변환을 찾는 데 스캔 정합이 사용될 수 있다. 스캔 정합은 일부 형식에서는 SLAM 및 기타 등등의 맵핑 알고리즘에 사용되어 왔다.
일부 경우에서, 블록 556에 있어서의 노드들에서의 스캔들로부터 결정된 확장된 스캔 그룹들에 대한 스캔 정합 수행은 맵핑 및 위치 추정 유닛(262) 및/또는 제어기(254)에 의해 수행될 수 있다. 도 7a는 본 개시내용의 일부 구현예에 따른 것으로서, 확장된 스캔 그룹을 생성하기 위한 예시적인 방법(700)의 프로세스 흐름도이다. 블록 720은 루트 노드를 선택하기를 포함한다. 루트 노드는 다른 노드들이 보이게 하는(예를 들어, 루트 노드에 대한 위치, 거리, 자세, 각도 등 및/또는 확실성이 보이게 하는) 노드를 포함할 수 있다. 블록 722는 노드들로부터 취한 측정들에 있어서의 있을 수 있는 중첩을 찾아내기를 포함한다. 노드들로부터 취한 측정들의 중첩에는 스캔들이 공통적인 특징들을 갖고/갖거나 근접해 있는 중첩이 포함될 수 있다. 예를 들어, 중첩에는 동일한 특징물이 갈무리되어 있는 노드들로부터 취한 스캔들이 포함될 수 있다. 예시로서, 로봇(202)은 네비게이팅할 때에 그의 환경 내에서 측정을 수행하기 위해 센서 유닛들(264)을 사용할 수 있다. 일부 경우에서, 이러한 측정은 스캔 라이다를 사용하여 수행될 수 있다. 따라서, 스캔 라이다는 로봇(202)이 네비게이팅함에 따라 그의 범위 내에 있게 되는 물체들을 측정할 수 있다. 로봇(202)이 스캔들을 수행하는 노드들의 근접성에 기초하여, 개별 스캔들이 상이한 시점 및/또는 공간에 있는 동일한 물체를 갈무리할 수 있다(예를 들어, 제1 스캔은 로봇(202)이 다가가는 물체를 포함할 수 있고, 제2 스캔은 로봇(202) 근처에 있는 물체를 포함할 수 있고, 제3 스캔은 로봇(202)이 지나치는 물체를 포함할 수 있고, 제4 스캔은 로봇(202)으로부터 더 멀리 멀어져가는 물체를 포함할 수 있는 등등). 이러한 방식으로, 이러한 중첩되는 측정은 한 환경 내의 하나의 동일한 특징물의 상이한 양태들을 갈무리할 수 있다. 더욱이, 이러한 측정들은 또한 시간 및/또는 공간적으로 실질적으로 근접할 수 있다. 예를 들어, 근접에는 순차적으로 서로 인접해 있거나 혹은 사전 결정된 수의 노드들 내에 있는 노드들이 포함될 수 있다. 근접에는 또한, 센서 분해능, 갈무리 시간, 로봇(202)의 속도 등에 적어도 부분적으로 기초하여 결정된 임계 시간과 같은 미리 결정된 임계 시간 내에 있는 시간이 포함될 수 있다.
블록 724는 확장된 스캔 그룹들을 형성하기 위해 중첩에 적어도 부분적으로 기초하여 노드들의 그룹들을 생성하기를 포함한다. 각각의 확장된 스캔 그룹은 2, 3, 4, 5 또는 그 이상의 노드와 같은 미리 결정된 수의 노드를 포함할 수 있다. 노드의 수는 스캔 정합의 원하는 정확도, 각 스캔의 데이터 크기, 컴퓨터 계산처리 자원 등에 적어도 부분적으로 기초하여 선택될 수 있다. 많은 경우에서, 더 많은 스캔을 함으로써 제공되는 정보의 양과 스캔 정합 수행의 복잡성을 균형에 맞도록 조정하는 데 세 개의 노드가 사용할 수 있다.
일부 경우에서, 모든 노드가 하나의 그룹에 속하는 것이 아닐 수 있다. 그룹 찾기에는, 구별되는 특징물들을 포함하고/하거나 그에 근접한 노드들을 그룹화하기만이 추가로 포함될 수 있다. 구별되는 특징물들에는 구별될 수 있고/있거나 식별가능한 특징물들이 포함될 수 있다. 예를 들어, 전체적으로 벽이 거의 동일한 복도는 구별되는 특징물들을 포함하지 않을 수 있다. 예시로서, 구별되는 특징물들에는 물체, 장애물, 고정물 및/또는 적어도 일부 다른 위치들로부터 구별될 수 있는 위치를 만들 수 있는 임의의 양태가 포함될 수 있다. 유리하기로는, 구별되는 특징물들이 있는 그룹만 사용되는 경우, 로봇(202)은 유용하고/하거나 덜 모호한 정보를 제공할 스캔 정합에 초점을 맞춤으로써 시스템 자원의 소비를 한층 더 줄일 수 있다. 유리하게도, 구별되는 특징물들에 의존하는 것은 오탐(false positive)을 줄일 수 있다.
일부 경우에서, 동일한 노드들이 다수의 확장된 스캔 그룹에 사용될 수 있다. 일부 경우에서, 상이한 확장된 스캔 그룹들에 동일한 노드들이 포함될 수 있다. 그러나 일부 경우에서는 각각의 노드가 하나의 확장된 스캔 그룹에만 있도록 제한될 수 있다. 따라서, 한 노드가 특정 그룹에 속하는지 여부를 결정함에 있어서는 다양한 구현예에 포함되는 하나 이상의 요인들에 의존하게 된다. 구현된 이들 요인들 각각의 상대적인 가중치는 환경, 구별되는 특징물들(및/또는 그의 존부), 경험적 성능 측정 등에 적어도 부분적으로 기초하여 구현예들 사이에서 조정될 수 있다. 첫 번째 요인에는 한 노드로부터 취해진 스캔에서 갈무리된 구별되는 특징물의 양이 포함될 수 있다. 예를 들어, 구별되는 특징물에 대한 많은 측정들이 한 노드로부터 취해진 스캔에서 갈무리된 경우, 그 노드로부터 취해진 그 스캔은, 구별되는 특징물에 대한 측정이 보다 더 적은 다른 노드들로부터 취해진 다른 스캔들보다는, 구별되는 특징물에 대한 측정이 마찬가지로 많은 확장된 스캔 그룹에 포함될 가능성이 더 많아진다. 두 번째 요인에는 다른 노드들에 대한 근접이 포함될 수 있다. 서로 근접한 노드들은 확장된 스캔 그룹에 함께 포함될 가능성이 많다. 근접은, 센서 해상도, 노드들의 밀도(예를 들어, 한 공간에 얼마나 많은 노드들이 있는지의 정도로서, 여기서 근접은, 소정의 공간에 더 적은 수의 노드들이 있을 때와 비교해서 소정의 공간에 더 많은 노드들이 있는 상황에 더 가까운 것으로 정의됨), 경험적 결과 등에 적어도 부분적으로 기초하여 결정되는, 거리 임계치 및/또는 각도 임계치에 적어도 부분적으로 기초한다. 세 번째 요인에는 스캔 내에 있는 그 밖의 다른 구별되는 특징물들의 존재가 포함될 수 있다. 예를 들어, 한 노드에서의 스캔에는 복수의 구별되는 특징물들에 대한 측정들이 있을 수 있다. 정합을 최적화하기 위해서는 더 많은 확장된 스캔 그룹들을 갖는 것이 바람직할 수 있다. 따라서, 확장된 스캔 그룹들을 완비하기 위해 더 많은 스캔들이 필요한 경우, 달리 조치를 취하지 않고서는 확장된 스캔 그룹을 생성하기에는 너무 적었을 스캔들의 집합들에, 다수의 구별되는 특징물들을 갖는 스캔들을 할당하는 것이 바람직할 수 있다. 이러한 상황에서, 로봇(202)이 교정될 수 있으므로, 더 많은 확장된 스캔 그룹들이 생성될 가능성이 더 커진다. 한편, 다른 경우에서, 더 큰 확장된 스캔 그룹들을 갖는 것은 컴퓨터 계산처리 속도에 유리할 수 있다. 네 번째 요인에는 확장된 스캔 그룹들의 크기가 포함될 수 있다. 전술한 바와 같이, 각각의 확장된 스캔 그룹은 미리 결정된 크기일 수 있다. 따라서, 한 노드로부터 취해진 특정 스캔이 노드들로부터 취해진 다른 스캔들에 속하는지 여부를 결정함에 있어서는 확장된 스캔 그룹들의 크기에 의존하게 된다.
일부 경우에서, 스캔들을 확장된 스캔 그룹에 정합시키는 데 순환적 및/또는 반복적 그룹화 알고리즘이 사용될 수 있다. 일부 경우에서, 확장된 스캔 그룹들의 집합 각각을 하나 이상의 성능 기준에 기초하여 평가할 수 있다. 상기 성능 기준은 상기 요인들 중 하나 이상에 기초할 수 있다. 일부 경우에서, 한 그래프의 노드들 및 이와 관련된 스캔들을 확장된 스캔 그룹들로 나누기 위해 최소 절단, 그래프 이론 및/또는 기타 그룹화 알고리즘과 같은 알고리즘이 구현될 수 있다.
일단 그룹들이 식별되면, 스캔 정합기(scan matcher)(예를 들어, 맵핑 및 위치 추정 유닛(262)의 일부)를 사용해서 스캔의 위치 및/또는 방향을 결정할 수 있다. 도 7b는 본 개시내용의 일부 구현예에 따른 스캔 정합 변환의 개념도이다. 일부 경우에서, 확장된 스캔 그룹을 형성하는 복수의 노드들이 스캔 정합기에 사용될 수 있다. 상기 확장된 스캔 그룹을 다른 확장된 스캔 그룹들과 비교하여 상대 병진(및 그 결과의 위치) 및/또는 회전을 결정할 수 있다. 유리하게도, 상기 확장된 스캔 그룹들은 더 많은 내용(예를 들어, 정보, 데이터, 등)을 제공할 수 있고/있거나 그래프/지도 최적화 속도, 지면의 실상에 대한 그래프/지도의 정확도, 및 컴퓨터 계산처리 및 기타 자원의 최적화 비용 중 하나 이상을 향상시킬 수 있다. 한 위치에 더 큰 스캔 그룹이 정합되면, 로봇(202)은 스캔 정합에 관련된 노드들의 위치에 있어서의 비교적 높은 신뢰도를 가질 수 있다. 일부 경우에서, 예컨대 확장된 스캔 그룹을 이전의 스캔들에 정합시키는 경우, 상기 신뢰도는 이전 스캔의 신뢰도와 적어도 대등할 수 있다. 일부 경우에서, 확장된 스캔 그룹들과 이전의 스캔들이 실질적으로 유사한 위치들 및/또는 방향들을 갖는 것으로 로봇(202)에 의해 기록되었다면 신뢰도는 더 높을 수 있다. 또한, 일부 경우에서는, 알려진 정보가 포함될 수 있고, 이 경우 한 그래프 내의 특징물들의 위치는 선험적으로 알려진다. 따라서, 그러한 정보는 신뢰도를 더욱더 높일 수 있다.
스캔 정합은 한 확장된 스캔 그룹과 다른 확장된 스캔 그룹의 중첩에 적어도 부분적으로 기초하여 위치들을 식별할 수 있다. 중첩은, 예컨대 상관 관계, 반복 비교, 교차 면적, 연관성(예를 들어, 지점 대 지점의 연관성, 지점 대 특징물의 연관성, 특징물 대 특징물의 연관성 등), 회귀 알고리즘, 최근접 지점 알고리즘(예를 들어, 반복적 최근접 지점("ICP": Iterative Closest Point) 알고리즘), 최인접 이웃 검색 알고리즘 및 기타 등등과 같은, 당업계에 공지된 알고리즘에 의해 결정될 수 있다.
예시로서, 도면 부호 702A로 나타낸 프레임은 노드들(708A, 710A, 712A)뿐만 아니라 노드들(708A, 710A, 712A)에서의 스캔에 기초하여 감지된 특징물들(704A, 706A)을 예시하고 있다. 변환 함수(714)는 프레임(702A)의 스캔 정합을 수행할 수 있는 강체 변환을 예시하고 있다. 변환 함수(714)는 프레임(702A) 내의 스캔들/노드들의 병진 및/또는 회전 이동을 수행할 수 있다. 그 결과, 도면 부호 702B로 나타낸 프레임은 노드(708A, 710A, 712A)의 병진 및 회전된 버전을 노드(708B, 710B, 712)로서 예시하고 있을 뿐만 아니라, 감지된 특징물(704A, 706A)의 병진 및 회전된 버전을 감지된 특징물(704B, 706B)로 예시하고 있다. 일부 구현예에서, 변환 함수(714)는 노드들(708A, 710A, 712A) 및/또는 감지된 특징물들(704A, 704B) 중 하나 이상의 상대 위치를 서로에 대해 변화시킬 수 있는 강체 변환이 아닐 수 있다.
일부 구현예에서, 도 5의 블록 558에 있어서의 각 노드의 위치 신뢰도 결정은 맵핑 및 위치 추정 유닛(262) 및/또는 제어기(254)에 의해 수행될 수 있다. 도 8은 본 개시내용의 일부 구현예에 따른 것으로서, 도 6c에 도시된 그래프 상에 확장된 스캔 그룹을 스캔 정합시킨 예시적인 결과를 예시하는 도면이다. 확장된 스캔 그룹(800)에는 노드들(802A, 802B, 802C)이 포함된다. 스캔 정합기가 노드들(802A, 802B, 802C)의 위치를 식별했기 때문에, 그 노드들의 위치는 증가된 신뢰도로 결정된다. 그 결과, 범위들(804A, 804B, 804C)은 더 높아진 신뢰도를 반영하여 좁아질 수 있다. 따라서, 로봇(202)은 신뢰도를 스캔 정합, 오류의 전파(예를 들어, 로봇(202)에 의해 계산된 범위들(602A, 602B, 602C, 602D, 626, 및/또는 628) 및/또는 다른 범위들에 의해 반영되는 바와 같은 오류의 전파), 및/또는 그 밖의 다른 요인들에 적어도 부분적으로 기초하여 결정할 수 있다.
신뢰도가 결정된 상태에서, 도 5의 블록 560에 있어서의 각 노드의 위치를 결정하기 위해 비용 함수를 생성하고 그의 해를 찾기가 맵핑 및 위치 추정 유닛(262) 및/또는 제어기(254)에 의해 수행될 수 있다. 일부 경우에서, 한 그래프의 하나 이상의 노드들은, 노드들 간의 공간적 관계를 특징짓고 그리고 그 관계에 있어서의 신뢰도(예를 들어, 공분산 및/또는 그 밖의 다른 통계적 범주화)를 특징짓는 개념적 스프링들(예를 들어, 연결)을 가질 수 있다. 신뢰도는 도 6a 내지 도 6c 및 도 8에 예시된 범위들에 적어도 부분적으로 기초할 수 있다.
도 9는 본 개시내용의 일부 구현예에 따른 것으로서, 도 6a의 그래프(600)에 있어서의 노드(602A)로의/로부터의 스프링들을 예시하고 있다. 예시된 노드(602A)는 노드들(602B, 602C, 602D)을 포함하는 복수의 노드들에 스프링들(650AB, 650AC, 650AD)에 의해 연결된다. 노드(602A)는 또한 각각의 그래프(600) 내의 그 밖의 다른 노드들 중 임의의 및/또는 모든 노드에도 연결될 수 있다. 그러나 일부 경우에서는 한 지도의 노드들 모두가 연결되는 것이 아닐 수도 있다. 선택적으로, 비현실적인 지도의 생성을 방지 및/또는 경감하기 위해 일부 노드들이 분리될 수 있다. 예를 들어, 일부 구현예에서, 노드들은 미리 결정된 임계 불확실도를 초과하는 오류, 미리 결정된 임계 불확실도를 밑도는 오류, 및/또는 임의의 다른 미리 결정된 구속 및/또는 제한에 적어도 부분적으로 기초하여 선택적으로 분리될 될 수 있다.
각각의 스프링(950AB, 950AC, 950AD)은 (1) 노드(602A)와 타단의 대응하는 노드(예를 들어, 스프링(950AD)에 있어서의 노드(602D), 스프링(950AC)에 있어서의 노드(602C), 스프링(950AB)에 있어서의 노드(602B)) 간의 상대 위치 및/또는 (2) 상대 위치 결정의 신뢰도 중 하나 이상을 포함할 수 있다.
예시로서, 상기 상대 위치는 복수의 상대적 설명들을 포함할 수 있다. 2차원(예를 들어, 2D 스캔에 의해 취해진 것)에서, 상대 위치는, 예컨대 Δx, Δy 및 Δθ 중 하나 이상의 형태로 있는 것과 같은, 수평 방향, 수직 방향, 및/또는 각도를 포함할 수 있다. 상대 위치를 나타내는 그 밖의 다른 방법들, 예컨대 상이한 좌표계 및/또는 차원을 갖는 방법들도 고려된다. 예를 들어, 3차원에서, 상대 위치는 Δx, Δy, Δz, Δθ, Δr, Δθ, Δφ 등 중에서 하나 이상으로 묘사될 수 있다. 당업자는 2, 3, 4 및/또는 임의의 차원에서 상대적인 위치 및/또는 방향을 묘사하는 방법들이 많이 있음을 이해할 것이다. 신뢰도는 공분산 행렬로 나타낼 수 있다. 예시로서, 공분산 행렬은 노드들의 위치 요소들 사이(예를 들어, 스프링(650AD)에 있어서의 노드(602A)와 노드(602D) 사이, 스프링(650AC)에 있어서의 노드(602A)와 노드(602C) 사이, 스프링(650AB)에 있어서의 노드(602A)와 노드(602B) 사이)의 공분산을 포함할 수 있다. 일부 구현예에서, 신뢰도는 또한, 예컨대 분산, 표본 분산, 상관 관계 등과 같은, 당업계에 공지된 그 밖의 다른 통계 표시로도 나타낼 수 있다. 신뢰도는, 예컨대 도 6a 내지 도 6c 및 도 8과 관련하여 계산된 범위들과 같은, 범위들에 부분적으로 의존할 수 있다.
일부 경우에서, 상기 스프링들은 비용 함수를 정의할 수 있으며, 이 경우 그래프 최적화에는 스프링에 의해 정의된 시스템의 잠재적 에너지를 최소화하는 것이 포함된다. 이러한 방식에서, 최적의 지도 찾기는 또한 비용 함수 최소화하기로, 그리고/또는 각 노드의 최대 가능성의 위치를 (예를 들어, 확률 분포에 기초하여) 실질적으로 찾기로 설명될 수도 있다. 비용 함수의 해를 구하기에는 최소 제곱 회귀법, 비선형 최소 제곱 최적화, 섭동 이론, 가중 최소 제곱법, 칼만 필터, 및/또는 당업계에 공지된 비용 함수의 해를 구하기 위한 임의의 다른 방법을 이용할 수 있다. 물리적 스프링과 실질적으로 유사하게, 평형 구성은 각 노드 상의 순 힘이 실질적으로 0 및/또는 국부 최소값과 동일하게 되는 것이다. 스프링들은 가중치 및/또는 방향으로 나타낼 수 있다.
일단 노드들이 그래프(예를 들어, 그래프(600, 650 및/또는 690), 및/또는 로봇(202)이 생성해내는 임의의 그래프) 내에 위치되면, 로봇(202)은, 예컨대 맵핑 및 위치 추정 유닛(262)으로 그래프를 처리함으로써, 지도(예를 들어, 지도(300, 500A, 및/또는 500B), 및/또는 로봇(202)이 생성해내는 임의의 지도)를 구축할 수 있다.
도 5의 블록 562에 있어서의 위치된 노드들로부터 취해진 스캔들로부터의 지도 렌더링은 맵핑 및 위치 추정 유닛(262) 및/또는 제어기(254)에 의해 수행될 수 있다. 예를 들어, 도 10은 본 개시내용의 일부 구현예에 따른 것으로서, 스캔들로부터 구축되는 지도의 픽셀들의 선도이다. 예시로서, 행렬(1000)은 지도 상의 위치들에 대응하는 셀들을 포함한다. 일부 경우에서, 각 셀은 하나의 픽셀에 해당할 수 있다. 행렬(1000) 내의 셀 내의 노드들(1004A 및 1004B)은 노드들(1004A 및 1004B)의 상대 위치를 적어도 부분적으로 나타낸다. 위치들은 기준점 및/또는 좌표계로부터의 표준 단위(예를 들어, 센티미터, 미터 및/또는 임의의 기타 표준 측정) 및/또는 상대 단위(예를 들어, 픽셀 수, 클릭 수 및/또는 임의의 기타 상대 측정)에 기초할 할 수 있다. 노드들(1004A 및 10048)은 예시를 위해 제공되어 있다. 노드들의 위치 결정, 개수 및/또는 간격 유지는 로봇(202)이 환경을 가로지르면서 취한 스캔에 의존할 수 있다.
각각의 스캔은 노드들에서의 로봇(202) 주위의 물체들의 상대적 위치를 적어도 부분적으로 나타내는 정보를 제공할 수 있다. 일부 경우에서, 스캔(예를 들어, 스캔 라이다로부터 취해진 스캔)은 물체들에 측정치들을 제공할 수 있다. 예를 들어, 일부 경우에서, 광선 추적이 사용될 수 있는데, 이 경우 로봇(202)으로부터 공간을 가로질러 연장되는 광선을 따르는 물체들의 위치는 물체들의 위치 및/또는 방향을 식별하는 데 사용될 수 있다. 행렬(1000)에서, 도면 부호 1006으로 나타낸 선과 같은 점선들은 적어도 부분적으로는 광선을 나타낸다. 물체가 광선을 따라 감지될 될 때, 셀(1002)과 같은 셀에 표시를 할 수 있다. 시각적인 예시를 위해, 표시(1008)는 셀(1002)에 대응하는 위치에서 물체가 감지되었다는 것을 적어도 부분적으로 나타내는 "X"이다.
대조적으로, 광선이 물체가 없는 위치를 통과한 경우, 그에 해당하는 셀에는 표시(1010)로 예시한 바와 같이 "O"가 표시될 수 있다. 광선이 통과하지 않은 위치에 해당하는 셀에는 표시가 없을 수 있다. 그 밖의 다른 지시들도 고려된다. 당업자는 셀에 임의의 원하는 방식으로 표시할 수 있음을 이해할 것이다. 또한, 예컨대 각 셀을 다른 데이터 구조에 관련시키고/시키거나 더 많은 차원의 데이터 구조를 사용함으로써, 더 많은 정보를 각 셀에 관련시킬 수 있다. 예를 들어, 로봇(202)에 의한 노정의 위치, 동작 및/또는 동작 특정 작업의 실행, 환경의 특성(예를 들어, 물, 카펫, 반사 및/또는 임의의 기타 설명), 금지된 영역, 및/또는 그 밖의 다른 것들과 같은 추가적인 정보도 하나 이상의 셀과 관련될 수 있다. 이러한 부가적인 정보는 스캔(예를 들어, 센서 유닛들(264)의 센서들로부터 취해진 스캔)으로부터 도출될 수 있고/있거나 별도로 도출되어 지도에 삽입될 수 있다. 이러한 추가 정보는 지도 구축 후에 이 단계에서 그리고/또는 나중에 추가될 수 있다.
따라서, 스캔들로부터 관찰될 수 있는 복수의 광선 추적을 통해, 여러 노드들에서 로봇(202)이 본 물체들의 위치가 맵핑될 수 있다. 그와 함께, 노드들로부터 취해지는 스캔들을 축적하면 지도를 만들 수 있다. 일부 경우에서는 노드들에서의 스캔들 간에 중첩이 있을 수 있다. 일부 경우에서, 그와 같은 스캔 중첩은 물체들의 위치 결정에 부합할 수 있다. 그러나 일부 경우에서는 스캔 중첩이 적합하지 않아서 상반된 정보를 제공할 수 있다. 일부 경우에서, 이러한 것은 측정에 있어서의 오류 및/또는 이동하는 물체에 기인한 것일 수 있다. 따라서, 식별된 셀에 확률이 할당될 수 있다. 일부 경우에서, 상기 확률은 물체를 감지한 스캔(또는 일부 경우에서는 물체를 감지하지 못한 스캔)의 횟수를 총 스캔 횟수로 나누어서 계산할 수 있다. 이런 식으로, 가중 평균, 통계 테스트, 분산, 및/또는 상반되는 정보의 불확실성을 반영하는 임의의 기타 통계적 방법과 같은 그 밖의 다른 통계도 사용할 수 있다. 일부 경우에, 물체의 존재 및/또는 부재가 미리 결정된 소정의 통계적 임계치에 기초하여 지도 내에서 결정될 수 있다. 예를 들어, 미리 결정된 통계적 임계치가 충족되면(임계치가 설정된 방법에 따라 달라지는 것으로서, 초과된 경우이거나, 아니면 초과되지 않은 경우), 물체의 위치가 생성된 지도(예를 들어, 지도(300, 500A 또는 500B) 및/또는 로봇(202)에 의해 생성된 임의의 다른 지도)에 채워 넣어진다. 예시로서, 미리 결정된 통계적 임계치가 백분율인 경우, 소정 위치 내의 물체를 식별한 스캔들의 백분율이 미리 결정된 백분율(예를 들어, 60, 70, 80, 90 및/또는 요구되는 확실성에 의거한 임의의 다른 백분율)을 초과하면, 그 위치는 지도에서 물체에 해당하는 것으로 식별된다. 또 다른 예시로서, 물체의 부재를 식별하는 경우, 소정 위치에서 물체를 식별하지 못한 스캔들의 백분율이 미리 결정된 백분율(예를 들어, 60, 70, 80, 90 및/또는 임의의 다른 백분율)을 초과하게 되면, 그 위치는 지도에서 물체에 해당하는 않는 것(예를 들어, 빈 공간)으로 식별된다. 이와 유사한 통계 분석이 본 개시내용에서 설명된 임의의 다른/추가 정보를 식별하는 데 사용될 수 있다. 당업자는 상기 미리 결정된 통계적 임계치가 여러 가지 방식으로, 즉 양의 방식(예를 들어, 물체 및/또는 특성의 존재) 및/또는 음의 방식(예를 들어, 물체 및/또는 특성의 부재)으로 규정될 수 있다는 것을 이해할 것이다. 유리하기로는, 통계적 접근법을 취함으로써 움직이는 물체를 걸러 낼 수 있는데, 이는 일부 스캔에서만 나타날 수 있으나 다른 스캔에서는 나타나지 않을 수 있다.
일부 구현예에서, 추가 프로세스가 지도 및/또는 그래프 상에서 수행될 수 있다. 예를 들어, 일부 경우에서, 픽셀 상태는 로봇(202)이 소정 영역을 관통해 네비게이팅할 수 있는지 여부를 적어도 부분적으로 나타낼 수 있다. 일부 경우에서, 시연하는 동안에 특정 위치가 적절하게 관찰되지 않았을 수 있고, 환경 내의 물체가 움직였을 수 있고, 그리고/또는 측정의 불확실성이 있을 수 있다. 사용자는 추가 정보를 추가하기 위해 사용자 인터페이스 유닛들(272)을 사용하여 지도 및/또는 그래프를 편집할 수 있다. 예를 들어, 사용자는 로봇(202)이 횡단할 수 있는 영역 및/또는 로봇(202)이 횡단할 수 없는 영역을 식별할 수 있도록 지도를 편집할 수 있다.
로봇(202)은 사용자 입력으로부터 학습할 수 있다. 예를 들어, 로봇(202)은 (i) 원래의 지도 및/또는 그래프, (ii) 사용자 입력이 있는 지도 및/또는 그래프, (iii) 그 밖의 다른 지도 및/또는 그래프 중 하나 이상을 포함하는 라이브러리를 메모리(252)에 저장할 수 있다. 일부 경우에서, 상기 라이브러리는 대략 1, 5, 10, 100, 1000, 10,000, 100,000, 1,000,000, 10,000,000 또는 임의의 개수의 지도 및/또는 그래프를 포함할 수 있다. 일부 구현예에서, 상기 라이브러리는 네트워크(예를 들어, 클라우드, 서버 등)에 저장될 수 있고, 메모리(252) 내에는 저장되지 않을 수 있다. 상기 라이브러리는 로봇(202)이 원래 지도/그래프와 사용자 입력이 있는 지도/그래프 사이의 하나 이상의 관련성을 결정하도록 (예를 들어, 기계 학습 알고리즘에 기초하여) 훈련시키는 데 사용될 수 있다. 이러한 방식으로, 로봇(202)은 사용자 입력으로 인해 라이브러리에 어떠한 변경이 있었는지를 학습하여서, 실질적으로 유사한 시나리오를 겪을 때 실질적으로 유사한 변경을 할 수 있다.
일부 구현예에서, 로봇(202)은 또한 소정 환경에서 후속하여 네비게이팅하는 동안에 기존의 그래프 및/또는 지도에 변경을 가할 수도 있다. 예를 들어, 로봇(202)은 새로운 그래프 및/또는 지도에서 추가 데이터 및/또는 스캔들을 수집하여, 그 추가 데이터 및/또는 스캔들을 기존의 그래프 및/또는 지도를 보충하는 데 사용할 수 있다.
예시로서, 로봇(202)은 제1 홈 로케이터에서 시작하여 제1 노정을 따라 이동하는 제1 그래프 및/또는 지도를 제1 시기에 생성할 수 있다. 이후의 제2 시기에서, 로봇(202)은, 제1 시기에 수집되지 않은 데이터(예를 들어, 스캔)를 수집하는 것을 제외하고는, 제1 홈 로케이터에서 시작하여서 제2 그래프 및/또는 지도를 생성하는 제1 노정과 실질적으로 유사한 경로를 따라 이동할 수 있다. 유리하기로는, 로봇(202)이 제1 시기 및 제2 시기에 제1 홈 로케이터에서 시작한 경우, 로봇(202)은 그의 위치 추정을 사용하여서 제1 그래프 및/또는 지도와 제2 그래프 및/또는 지도로부터 함께 취한 스캔들을 결합할 수 있다. 이러한 방식으로, 로봇(202)은 제2 그래프 및/또는 지도에서 측정된 제1 그래프 및/또는 지도에, 그리고/또는 이와 반대로 한 것에, 추가 적용 범위를 추가할 수 있다.
일부 구현예에서, 상이한 홈 로케이터들이 제1 그래프 및/또는 지도와 제2 그래프 및/또는 지도를 위한 시작점으로 사용되는 경우, 로봇(202)은 그들 각각에서 취한 스캔들을 더 쉽게 결합할 수 있도록 하기 위해 그들을 공통 좌표계로 변환할 수 있다.
도 11은 본 개시내용의 일부 구현예에 따른 것으로서, 지도를 로봇에 의해 생성하기 위한 예시적인 방법(1100)의 프로세스 흐름도이다. 블록 1102는 환경에서의 로봇에 의한 이동을 포함한다. 블록 1104는 상기 환경 내의 소정 위치에서 로봇의 센서에 의해 취해진 스캔에 각각 대응하는 복수의 노드들을 포함하는 그래프를 생성하기를 포함한다. 블록 1106은 그래프를 실질적으로 유사한 위치에서 시작하고 끝나도록 구속하기를 포함한다. 블록 1108은 복수의 노드들의 그룹들로부터 적어도 부분적으로 결정된 확장된 스캔 그룹들에 대한 스캔 정합을 수행하기를 포함한다. 블록 1110은 스캔 정합에 적어도 부분적으로 기초하여 복수의 노드들 각각에 가능한 위치들의 범위를 관련시키기를 포함한다. 블록 1112는 가능한 위치들의 각 범위와 관련된 신뢰도를 결정하기를 포함한다. 블록 1114는 상기 신뢰도에 적어도 부분적으로 기초하여 복수의 노드들의 가능한 위치를 찾기 위해 그래프를 최적화하기를 포함한다. 블록 1116은 상기 최적화된 그래프로부터 지도를 생성하기를 포함한다.
도 12는 본 개시내용의 일부 구현예에 따른 것으로서, 예시적인 로봇 작동 방법(1200)의 프로세스 흐름도이다. 블록 1202는 센서로 하여금 소정 위치와 각각 관련된 복수의 노드들에서 환경 스캔들을 생성하게 하기를 포함한다. 블록 1204는 상기 생성된 스캔들에 기초하여 복수의 노드들의 그래프를 생성하기를 포함한다. 블록 1206은 복수의 노드들의 그룹들과 관련된 스캔들로부터 적어도 부분적으로 기초하여 확장된 스캔 그룹들을 결정하기를 포함한다. 블록 1208은 상기 확장된 스캔 그룹들에 대한 스캔 정합을 수행하기를 포함한다.
본원에서 사용되는, 컴퓨터 및/또는 컴퓨팅 디바이스는, 데스크톱, 랩톱 또는 다른 방식의 개인용 컴퓨터("PC") 및 미니컴퓨터, 메인 프레임 컴퓨터, 워크스테이션, 서버, PDA(Personal Digital Assistant), 핸드헬드 컴퓨터, 내장형 컴퓨터, 프로그래머블 로직 디바이스, 개인 통신기, 태블릿 컴퓨터, 모바일 디바이스, 휴대형 네비게이션 보조 장치, J2ME 장비 디바이스, 셀룰러 폰, 스마트 폰, 개인 통합 통신 또는 엔터테인먼트 디바이스, 및/또는 명령들의 세트를 실행하고 인입 데이터 신호를 프로세싱할 수 있는 임의의 다른 디바이스를 포함할 수 있고, 그렇지만 이들에 제한되지는 않는다.
본원에서 사용되는, 컴퓨터 프로그램 및/또는 소프트웨어는 임의의 시퀀스, 또는 기능을 수행하는 인간 또는 머신 인식 가능 단계들을 포함할 수 있다. 이러한 컴퓨터 프로그램 및/또는 소프트웨어는, 예를 들어, C/C++, C#, Fortran, COBOL, MATLAB™, PASCAL, Python, 어셈블리 언어, 마크업 언어들(예를 들어, HTML, SGML, XML, VoXML) 등을 포함하는 임의의 프로그래밍 언어 또는 환경에서뿐만 아니라, 예컨대 CORBA(Common Object Request Broker Architecture), JAVA™(J2ME, 자바 빈스 등을 포함함), 바이너리 런타임 환경(예를 들어, BREW) 등과 같은 객체-지향 환경에서도, 렌더링될 수 있다.
본원에서 사용되는, 연결, 링크, 송신 채널, 지연 라인 및/또는 무선은 엔티티들 사이의 정보 교환을 가능하게 하는, 임의의 2개 이상의 엔티티들(물리적 엔티티이든지 혹은 논리적/가상 엔티티이든지 무관) 사이의 인과 관계를 포함할 수 있다.
본 개시내용의 특정 양태들이 방법의 단계들의 특정 시퀀스에 관하여 설명되지만, 이들 설명들은 본 개시내용의 더 광범위한 방법들의 예시일 뿐이고, 특정 애플리케이션에 의해 요구되는 대로 수정될 수 있다는 것이 인식될 것이다. 특정 단계들은 특정 상황들 하에서 불필요하게 또는 선택적으로 렌더링될 수 있다. 부가적으로, 특정 단계들 또는 기능성이 개시된 구현예들에 부가될 수 있거나, 또는 2 개 이상의 단계들의 수행 순서가 치환될 수 있다. 이러한 모든 변형들은 본원에서 개시되고 청구되는 본 개시내용 내에 포함되는 것으로 간주된다.
위의 상세한 설명이 다양한 구현예들에 적용된 본 개시내용의 신규한 특징들을 나타내고, 설명하고, 지적하였지만, 예시된 디바이스 또는 프로세스의 형태 및 세부사항들의 다양한 생략들, 치환들 및 변경들이 본 개시내용으로부터 벗어나지 않으면서 당업자에 의해 이루어질 수 있다는 것이 이해될 것이다. 전술된 설명은 본 개시내용을 수행하기 위해 현재 고려되는 최상의 모드이다. 이러한 설명은 결코 제한하는 것으로 의도되는 것이 아니라, 본 개시내용의 일반적인 원리들을 예시하는 것으로 간주되어야 한다. 본 개시내용의 범위는 청구범위를 참조하여 결정되어야 한다.
본 개시내용이 도면들 및 전술된 설명에서 상세히 예시 및 설명되었지만, 그러한 예시 및 설명은 예시 또는 본보기로 고려되어야 하며 제한적인 것이 아니다. 본 개시내용은 개시된 실시예들로 제한되지 않는다. 개시된 실시예들에 대한 변형들은, 도면들, 본 개시내용 및 첨부된 청구범위의 연구로부터, 청구된 개시내용을 실시할 시, 당업자에 의해 이해 및 실시될 수 있다.
본 개시내용의 특정 특징들 또는 양태들을 기술할 때의 특정 용어의 사용은, 그 용어와 관련된 본 개시내용의 특징들 또는 양태들의 임의의 특정 특성들을 포함하도록 제한되게 하기 위해 그 용어가 본원에서 재정의되고 있다고 암시하는 것으로 받아들여져서는 안 된다는 것을 주지해야 한다. 본 출원에서 사용되는 용어들 및 어구들과 이들의 변형들은, 특히 첨부된 청구범위에 있어서는, 명시적으로 달리 언급되지 않는 한, 제한과 반대로 개방형으로서 해석되어야 한다. 전술된 바의 예들로서, "구비하는"이라는 용어는 "제한되지 않게 구비하는", "구비하지만 이에 제한되지 않는" 등을 의미하는 것으로 해석되어야 하고; 본원에서 사용되는 바와 같은 "포함하는"이라는 용어는 "구비하는", "함유하는", 또는 "특징으로 하는"과 동의어이고, 포괄적이거나 또는 개방형이고, 부가적인 기재되지 않은 구성요소들 또는 방법 단계들을 배제하지 않고; "갖는"이라는 용어는 "적어도 갖는"으로서 해석되어야 하고; "그와 같은"이라는 용어는 "제한되지 않게 그와 같은"으로서 해석되어야 하고; "구비한다"라는 용어는 "구비하지만 이에 제한되지 않음"으로서 해석되어야 하고; "예"라는 용어는 논의 중인 항목의 예시적인 예들을 제공하기 위해 사용되고, 그의 포괄적이거나 또는 제한적인 목록이 아니고, "예이지만 제한되지 않음"으로서 해석되어야 하고; 형용사들, 이를테면 "알려진", "일반적인", "표준" 및 유사한 의미의 용어들은 설명되는 항목을 주어진 시간 기간으로, 또는 주어진 시간으로부터 이용 가능한 항목으로 제한하는 것으로 해석되는 것이 아니라, 대신, 현재 또는 향후의 임의의 시간에 이용 가능할 수 있거나 알려질 수 있는 알려진, 일반적인, 또는 표준 기술들을 포함하는 것으로 해석되어야 하고; 그리고 "바람직하게", "바람직한", "원하는", 또는 "원함직한"과 같은 용어들 및 유사한 의미의 단어들의 사용은 특정 특징들이 본 개시내용의 구조 또는 기능에 결정적이거나, 필수적이거나, 또는 심지어 중요하다는 것을 암시하는 것이 아니고, 대신, 특정 실시예에서 활용될 수 있거나 활용되지 않을 수 있는 대안적인 또는 부가적인 특징들을 단지 강조하도록 의도된 것으로 이해되어야 한다. 마찬가지로, 접속사 "및"으로 연결된 항목들의 그룹은 이들 항목들 각각 및 모두가 그룹에 존재할 것을 요구하는 것으로 해석되어서는 안 되고, 명시적으로 다르게 언급되지 않는 한, "및/또는"으로 해석되어야 한다. 유사하게, 접속사 "또는"으로 연결된 항목들의 그룹은 그 그룹 중에서 상호 배타성을 요구하는 것으로 해석되어서는 안 되고, 명시적으로 다르게 언급되지 않는 한, "및/또는"으로 해석되어야 한다. "약" 또는 "대략" 등이라는 용어들은 동의어이며, 그 용어에 의해 수정된 값이 그와 연관된 이해 범위를 갖는 것을 나타내기 위해 사용되며, 여기서, 범위는 ±20%, ±15%, ±10%, ±5% 또는 ±1%일 수 있다. "실질적으로"라는 용어는 결과(예를 들어, 측정 값)가 목표 값에 근접한 것을 나타내기 위해 사용되며, 여기서, 근접은, 예를 들어, 결과가 목표 값의 80% 내, 목표 값의 90% 내, 목표 값의 95% 내, 또는 목표 값의 99% 내에 있는 것을 의미할 수 있다. 또한, 본원에서 사용되는, "정의된" 또는 "결정된"은 "미리 정의된" 또는 "미리 결정된" 및/또는 다른 방식으로 결정된 값들, 조건들, 임계치들, 측정치들 등을 포함할 수 있다.

Claims (20)

  1. 로봇으로서,
    소정 위치와 각각 관련된 복수의 노드들에서 환경 스캔들을 취하도록 구성된 센서; 및
    취해진 상기 스캔들에 적어도 부분적으로 기초하여 상기 노드들의 그래프를 생성하도록 구성되고,
    상기 복수의 노드들의 그룹들에 적어도 부분적으로 기초하여 확장된 스캔 그룹들을 결정하도록 구성되며, 그리고
    상기 확장된 스캔 그룹들에 대한 스캔 정합을 수행하도록 구성된 맵핑 및 위치 추정 유닛을 포함하는, 로봇.
  2. 제1항에 있어서, 상기 맵핑 및 위치 추정 유닛이, 추가로, 상기 그래프를 실질적으로 유사한 위치에서 시작하고 끝나도록 구속할 수 있게 구성된, 로봇.
  3. 제1항에 있어서, 상기 맵핑 및 위치 추정 유닛이, 추가로, 각 노드의 위치와 관련된 신뢰도를 결정하도록 구성된, 로봇.
  4. 제3항에 있어서, 상기 맵핑 및 위치 추정 유닛이, 추가로, 각 노드의 신뢰도 및 위치에 적어도 부분적으로 기초하여 비용 함수를 생성하도록 구성되고, 상기 맵핑 및 위치 추정 유닛은 상기 그래프에서의 각 노드의 위치를 최소인 비용 함수의 해를 구한 것에 기초하여 결정하는, 로봇.
  5. 제1항에 있어서, 스캔들의 광선 추적에 적어도 부분적으로 기초하여 렌더링된 지도를 상기 그래프로부터 렌더링하도록 추가로 구성된 프로세서를 추가로 포함하는 로봇.
  6. 제1항에 있어서, 당해 로봇을 위치들 사이에서 이동시키도록 구성된 액추에이터를 추가로 포함하는 로봇.
  7. 제1항에 있어서, 사용자가 당해 로봇을 제어하도록 구성된 사용자 인터페이스를 추가로 포함하는 로봇.
  8. 제1항에 있어서, 당해 로봇이 자율적으로 네비게이팅할 수 있도록 구성된 네비게이션 유닛을 추가로 포함하는 로봇.
  9. 로봇을 작동시키도록 프로세싱 장치에 의해 실행 가능한 복수의 명령들을 안에 저장하고 있는 비일시적 컴퓨터 판독가능 저장 장치로서,
    상기 명령들은, 상기 프로세싱 장치에 의해 실행될 때, 상기 프로세싱 장치로 하여금,
    센서에게 소정 위치와 각각 관련된 복수의 노드들에서 환경 스캔들을 생성하게 하고,
    생성된 상기 스캔들에 기초하여 복수의 노드들의 그래프를 생성하게 하고,
    상기 복수의 노드들의 그룹들과 관련된 스캔들로부터 적어도 부분적으로 기초하여 확장된 스캔 그룹들을 결정하게 하고, 그리고
    상기 확장된 스캔 그룹들에 대한 스캔 정합을 수행하게 하도록 구성된, 비일시적 컴퓨터 판독가능 저장 장치.
  10. 제9항에 있어서, 상기 프로세싱 장치에 의해 실행될 때 추가로 상기 프로세싱 장치로 하여금 상기 그래프를 실질적으로 유사한 위치에서 시작하고 끝나도록 구속하게 하는 하나 이상의 명령을 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 장치.
  11. 제9항에 있어서, 각각의 확장된 스캔 그룹은 3회 이상의 스캔을 포함하는, 비일시적 컴퓨터 판독가능 저장 장치.
  12. 제9항에 있어서, 상기 프로세싱 장치에 의해 실행될 때 추가로 상기 프로세싱 장치로 하여금 각 노드의 위치와 관련된 신뢰도에 적어도 부분적으로 기초하여 비용 함수를 결정하게 하는 하나 이상의 명령을 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 장치.
  13. 제12항에 있어서, 상기 프로세싱 장치에 의해 실행될 때 추가로 상기 프로세싱 장치로 하여금 상기 비용 함수를 최소화한 것에 적어도 부분적으로 기초하여 지도를 생성하게 하는 하나 이상의 명령을 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 장치.
  14. 로봇에 의해 지도를 생성하는 방법으로서,
    환경 내에서의 로봇에 의한 이동;
    상기 환경 내의 소정 위치에서 상기 로봇의 센서에 의해 취해진 스캔에 각각 대응하는 복수의 노드들을 포함하는 그래프를 생성하는 것;
    상기 그래프를 실질적으로 유사한 위치에서 시작하고 끝나도록 구속하는 것;
    상기 복수의 노드들의 그룹들로부터 적어도 부분적으로 결정된 확장된 스캔 그룹들에 대한 스캔 정합을 수행하는 것;
    상기 스캔 정합에 적어도 부분적으로 기초하여 상기 복수의 노드들 각각에 가능한 위치들의 범위를 관련시키는 것;
    가능한 위치들의 각 범위와 관련된 신뢰도를 결정하는 것; 상기 관련된 신뢰도들에 적어도 부분적으로 기초하여 상기 복수의 노드들의 가능한 위치를 찾기 위해 상기 그래프를 최적화하는 것; 및
    최적화된 상기 그래프로부터 지도를 생성하는 것을 포함하는, 로봇에 의해 지도를 생성하는 방법.
  15. 제14항에 있어서, 상기 지도의 생성에는 센서에 의해 취해진 스캔들에 대한 광선 추적이 포함되고, 상기 스캔들은 복수의 노드들 각각과 관련되는, 로봇에 의해 지도를 생성하는 방법.
  16. 제14항에 있어서, 상기 그래프 최적화에는,
    (1) 복수의 노드들 각각의 상대 위치 및 (2) 복수의 노드들 각각과 관련된 신뢰도들에 적어도 부분적으로 기초하여 비용 함수를 생성하는 것, 및
    최소인 비용 함수의 해를 구하는 것이 포함되는, 로봇에 의해 지도를 생성하는 방법.
  17. 제14항에 있어서, 상기 그래프를 실질적으로 유사한 위치에서 시작하고 끝내도록 구속하는 것에는, 상기 그래프를 홈 로케이터(home locator)의 관점에서 시작하고 끝내도록 구속하는 것이 추가로 포함되는, 로봇에 의해 지도를 생성하는 방법.
  18. 제14항에 있어서, 상기 환경 내에서의 로봇에 의한 이동에는, 사용자 제어 하에서의 네비게이팅이 추가로 포함되는, 로봇에 의해 지도를 생성하는 방법.
  19. 제14항에 있어서, 상기 관련된 신뢰도들에는, 소정의 노드가 소정의 위치에 있을 확률을 적어도 부분적으로 나타내는 확률 분포를 사용하는 것이 추가로 포함되는, 로봇에 의해 지도를 생성하는 방법.
  20. 제14항에 있어서, 복수의 노드들의 그룹들로부터 적어도 부분적으로 결정된 확장된 스캔 그룹들에는,
    루트 노드를 기준 위치로 선택하는 것;
    다른 노드들에서 취해진 스캔들 내의 구별되는 특징물들의 측정들에 있을 수 있는 중첩을 찾는 것; 및
    상기 다른 노드들 각각에서의 스캔들의 구별되는 특징물들을 중첩시키는 것에 적어도 부분적으로 기초하여 상기 다른 노드들을 확장된 스캔 그룹들로 그룹화하는 것이 추가로 포함되는, 로봇에 의해 지도를 생성하는 방법.
KR1020197015593A 2016-11-01 2017-10-31 로봇 맵핑 시스템 및 방법 KR102455845B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/340,807 US10274325B2 (en) 2016-11-01 2016-11-01 Systems and methods for robotic mapping
US15/340,807 2016-11-01
PCT/US2017/059376 WO2018085291A1 (en) 2016-11-01 2017-10-31 Systems and methods for robotic mapping

Publications (2)

Publication Number Publication Date
KR20190077481A true KR20190077481A (ko) 2019-07-03
KR102455845B1 KR102455845B1 (ko) 2022-10-18

Family

ID=62022198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197015593A KR102455845B1 (ko) 2016-11-01 2017-10-31 로봇 맵핑 시스템 및 방법

Country Status (7)

Country Link
US (2) US10274325B2 (ko)
EP (1) EP3535632A4 (ko)
JP (1) JP7106076B2 (ko)
KR (1) KR102455845B1 (ko)
CN (1) CN110023867B (ko)
CA (1) CA3042531A1 (ko)
WO (1) WO2018085291A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021251541A1 (ko) * 2020-06-11 2021-12-16 엘지전자 주식회사 무선랜 시스템에서 wifi 센싱을 수행하는 방법 및 장치
KR102517351B1 (ko) * 2022-08-19 2023-04-03 주식회사 트위니 동적 장애물의 제거가 가능한 운송 로봇 및 동적 장애물 제거 방법

Families Citing this family (40)

* 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
KR101697857B1 (ko) * 2015-04-08 2017-01-18 엘지전자 주식회사 이동 로봇 및 그의 위치인식방법
US9594377B1 (en) * 2015-05-12 2017-03-14 Google Inc. Auto-height swing adjustment
CN105760576A (zh) * 2016-01-27 2016-07-13 首都师范大学 一种基于共形几何代数的机械臂运动规划的形式化分析方法及系统
US10353395B2 (en) * 2016-09-26 2019-07-16 X Development Llc Identification information for warehouse navigation
US20180143634A1 (en) * 2016-11-22 2018-05-24 Left Hand Robotics, Inc. Autonomous path treatment systems and methods
US9939814B1 (en) * 2017-05-01 2018-04-10 Savioke, Inc. Computer system and method for automated mapping by robots
CN107728616B (zh) * 2017-09-27 2019-07-02 广东宝乐机器人股份有限公司 移动机器人的地图创建方法及移动机器人
WO2019068214A1 (en) * 2017-10-03 2019-04-11 Intel Corporation NETWORK OCCUPANCY MAPPING USING ERROR RANGE DISTRIBUTION
US10788831B2 (en) * 2017-10-06 2020-09-29 Wipro Limited Method and device for identifying center of a path for navigation of autonomous vehicles
CL2017003463A1 (es) * 2017-12-28 2019-10-11 Univ Pontificia Catolica Chile Sistema robótico autónomo para el monitoreo automático del estado de estanterías en tiendas
WO2019140126A1 (en) * 2018-01-10 2019-07-18 Simbe Robotics, Inc Method for detecting and responding to spills and hazards
WO2019136719A1 (zh) * 2018-01-12 2019-07-18 浙江国自机器人技术有限公司 一种智能洗地机器人
US10754343B2 (en) * 2018-02-15 2020-08-25 X Development Llc Semantic mapping of environments for autonomous devices
CN108436943A (zh) * 2018-05-14 2018-08-24 深圳博通机器人有限公司 一种设备巡检机器人
US20190373413A1 (en) * 2018-06-01 2019-12-05 Apple Inc. Feature-based slam with z-axis location
CN110631581B (zh) * 2018-06-22 2023-08-04 华为技术有限公司 建立室内3d地图的方法和无人机
WO2020026246A1 (en) * 2018-08-02 2020-02-06 Resight Ltd. A system and method for generating a collection of approximately coordinated region maps
WO2020037188A1 (en) 2018-08-17 2020-02-20 Brain Corporation Systems, apparatuses, and methods for bias determination and value calculation of parameters of a robot
KR102147211B1 (ko) * 2018-10-22 2020-08-24 엘지전자 주식회사 인공지능 이동 로봇의 제어 방법
CN111113405B (zh) * 2018-11-01 2023-03-31 阿里巴巴集团控股有限公司 一种机器人获得位置服务的方法及机器人
ES2951735T3 (es) * 2018-11-06 2023-10-24 Nihon Business Data Proc Center Co Ltd Robot de limpieza autopropulsado
CN109813319B (zh) * 2019-03-07 2021-09-28 山东大学 一种基于slam建图的开环优化方法及系统
WO2020181418A1 (en) 2019-03-08 2020-09-17 SZ DJI Technology Co., Ltd. Techniques for collaborative map construction between unmanned aerial vehicle and ground vehicle
WO2020241924A1 (ko) * 2019-05-29 2020-12-03 엘지전자 주식회사 영상 학습을 바탕으로 주행경로를 설정하는 지능형 로봇 청소기 및 이의 운용방법
CN110320520B (zh) * 2019-06-26 2022-08-02 哈尔滨工程大学 一种测深信息同步定位与建图的鲁棒后端图优化方法
CN110456343B (zh) * 2019-07-22 2021-05-28 深圳普捷利科技有限公司 一种基于fmcw毫米波雷达的即时定位方法及系统
CN112154351A (zh) * 2019-11-05 2020-12-29 深圳市大疆创新科技有限公司 地形检测方法、可移动平台、控制设备、系统及存储介质
CN111105480B (zh) * 2019-12-20 2023-09-08 上海有个机器人有限公司 一种楼宇语义地图建立方法、介质、终端和装置
CN111275763B (zh) * 2020-01-20 2023-10-13 深圳市普渡科技有限公司 闭环检测系统、多传感器融合slam系统及机器人
US11839446B2 (en) * 2020-06-02 2023-12-12 GE Precision Healthcare LLC Wireless patient monitoring system and method
CN111966109B (zh) * 2020-09-07 2021-08-17 中国南方电网有限责任公司超高压输电公司天生桥局 基于柔性直流换流站阀厅的巡检机器人定位方法及装置
CN112235759B (zh) * 2020-09-15 2022-05-17 武汉工程大学 一种多机器人路由优化方法及装置
CN112325770B (zh) * 2020-10-26 2022-08-02 武汉中海庭数据技术有限公司 一种车端单目视觉测量相对精度置信度评估方法及系统
CN114683270A (zh) * 2020-12-30 2022-07-01 深圳乐动机器人有限公司 一种基于机器人的构图信息采集方法及机器人系统
CN113640802A (zh) * 2021-07-30 2021-11-12 国网上海市电力公司 一种基于多融合传感器的机器人空间定位方法和系统
US20230095410A1 (en) * 2021-09-24 2023-03-30 Zoox, Inc. System for detecting objects in an environment
CN114485683B (zh) * 2021-12-31 2023-04-21 武汉中海庭数据技术有限公司 一种基于蒙特卡洛优化的局部碎片地图匹配方法及装置
KR20230173939A (ko) * 2022-06-20 2023-12-27 네이버랩스 주식회사 로봇 친화형 건물, 로봇 운용을 위한 맵 생성 방법 및 시스템
CN116660478B (zh) * 2023-07-26 2023-09-22 成都市特种设备检验检测研究院(成都市特种设备应急处置中心) 一种换热管自动化检测机器人

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332065A1 (en) * 2012-06-12 2013-12-12 Trx Systems, Inc. Fusion Of Sensor And Map Data Using A Contraint Based Optimization
US20150205299A1 (en) * 2012-11-02 2015-07-23 Irobot Corporation Simultaneous Localization And Mapping For A Mobile Robot
US20150261223A1 (en) * 2011-09-30 2015-09-17 Irobot Corporation Adaptive mapping with spatial summaries of sensor data

Family Cites Families (212)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280179A (en) 1979-04-30 1994-01-18 Sensor Adaptive Machines Incorporated Method and apparatus utilizing an orientation code for automatically guiding a robot
US4638445A (en) 1984-06-08 1987-01-20 Mattaboni Paul J Autonomous mobile robot
US5121497A (en) 1986-03-10 1992-06-09 International Business Machines Corporation Automatic generation of executable computer code which commands another program to perform a task and operator modification of the generated executable computer code
US4763276A (en) 1986-03-21 1988-08-09 Actel Partnership Methods for refining original robot command signals
US4852018A (en) 1987-01-07 1989-07-25 Trustees Of Boston University Massively parellel real-time network architectures for robots capable of self-calibrating their operating parameters through associative learning
US5155684A (en) 1988-10-25 1992-10-13 Tennant Company Guiding an unmanned vehicle by reference to overhead features
FR2648071B1 (fr) 1989-06-07 1995-05-19 Onet Procede et appareil autonomes de nettoyage automatique de sol par execution de missions programmees
WO1991006050A1 (en) 1989-10-17 1991-05-02 Applied Biosystems, Inc. Robotic interface
US5640323A (en) 1990-02-05 1997-06-17 Caterpillar Inc. System and method for operating an autonomous navigation system
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US5673367A (en) 1992-10-01 1997-09-30 Buckley; Theresa M. Method for neural network control of motion using real-time environmental feedback
CA2081519C (en) 1992-10-27 2000-09-05 The University Of Toronto Parametric control device
KR0161031B1 (ko) 1993-09-09 1998-12-15 김광호 로보트의 위치오차보정장치
US5602761A (en) 1993-12-30 1997-02-11 Caterpillar Inc. Machine performance monitoring and fault classification using an exponentially weighted moving average scheme
JPH08171417A (ja) * 1994-12-19 1996-07-02 Omron Corp 搬送車とその制御方法および搬送車制御装置並びに取引処理装置
KR100439466B1 (ko) 1995-09-11 2004-09-18 가부시키가이샤 야스가와덴끼 로봇제어장치
AU3477397A (en) 1996-06-04 1998-01-05 Paul J. Werbos 3-brain architecture for an intelligent decision and control system
US6366293B1 (en) 1998-09-29 2002-04-02 Rockwell Software Inc. Method and apparatus for manipulating and displaying graphical objects in a computer display device
US6243622B1 (en) 1998-10-16 2001-06-05 Xerox Corporation Touchable user interface using self movable robotic modules
EP1037134A2 (en) 1999-03-16 2000-09-20 Matsushita Electric Industrial Co., Ltd. Virtual space control data receiving apparatus and method
US6124694A (en) 1999-03-18 2000-09-26 Bancroft; Allen J. Wide area navigation for a robot scrubber
KR20010053322A (ko) 1999-04-30 2001-06-25 이데이 노부유끼 전자 페트 시스템, 네트워크 시스템, 로봇, 및 기억 매체
JP3537362B2 (ja) 1999-10-12 2004-06-14 ファナック株式会社 ロボットシステム用グラフィック表示装置
EP1297691A2 (en) 2000-03-07 2003-04-02 Sarnoff Corporation Camera pose estimation
KR20020008848A (ko) 2000-03-31 2002-01-31 이데이 노부유끼 로봇 장치, 로봇 장치의 행동 제어 방법, 외력 검출 장치및 외력 검출 방법
US8543519B2 (en) 2000-08-07 2013-09-24 Health Discovery Corporation System and method for remote melanoma screening
JP4765155B2 (ja) 2000-09-28 2011-09-07 ソニー株式会社 オーサリング・システム及びオーサリング方法、並びに記憶媒体
US6678413B1 (en) 2000-11-24 2004-01-13 Yiqing Liang System and method for object identification and behavior characterization using video analysis
JP2002197437A (ja) 2000-12-27 2002-07-12 Sony Corp 歩行検出システム、歩行検出装置、デバイス、歩行検出方法
US6442451B1 (en) 2000-12-28 2002-08-27 Robotic Workspace Technologies, Inc. Versatile robot control system
JP2002239960A (ja) 2001-02-21 2002-08-28 Sony Corp ロボット装置の動作制御方法、プログラム、記録媒体及びロボット装置
US20020175894A1 (en) 2001-03-06 2002-11-28 Vince Grillo Hand-supported mouse for computer input
US6917925B2 (en) 2001-03-30 2005-07-12 Intelligent Inference Systems Corporation Convergent actor critic-based fuzzy reinforcement learning apparatus and method
JP2002301674A (ja) 2001-04-03 2002-10-15 Sony Corp 脚式移動ロボット及びその運動教示方法、並びに記憶媒体
DE60118317T2 (de) 2001-04-30 2006-12-14 Sony France S.A. Autonom Roboter
US6584375B2 (en) 2001-05-04 2003-06-24 Intellibot, Llc System for a retail environment
US6636781B1 (en) 2001-05-22 2003-10-21 University Of Southern California Distributed control and coordination of autonomous agents in a dynamic, reconfigurable system
JP3760186B2 (ja) 2001-06-07 2006-03-29 独立行政法人科学技術振興機構 二脚歩行式移動装置及びその歩行制御装置並びに歩行制御方法
JP4188607B2 (ja) 2001-06-27 2008-11-26 本田技研工業株式会社 二足歩行移動体の床反力推定方法及び二足歩行移動体の関節モーメント推定方法
WO2003007129A2 (en) 2001-07-13 2003-01-23 Broks Automation, Inc. Trajectory planning and motion control strategies for a planar three-degree-of-freedom robotic arm
US6710346B2 (en) 2001-08-02 2004-03-23 International Business Machines Corporation Active infrared presence sensor
AU2002331786A1 (en) 2001-08-31 2003-03-18 The Board Of Regents Of The University And Community College System, On Behalf Of The University Of Coordinated joint motion control system
US6812846B2 (en) 2001-09-28 2004-11-02 Koninklijke Philips Electronics N.V. Spill detector based on machine-imaging
US7243334B1 (en) 2002-01-16 2007-07-10 Prelude Systems, Inc. System and method for generating user interface code
JP3790816B2 (ja) 2002-02-12 2006-06-28 国立大学法人 東京大学 人型リンク系の運動生成方法
US8010180B2 (en) 2002-03-06 2011-08-30 Mako Surgical Corp. Haptic guidance system and method
US20040030450A1 (en) 2002-04-22 2004-02-12 Neal Solomon System, methods and apparatus for implementing mobile robotic communication interface
US7505604B2 (en) 2002-05-20 2009-03-17 Simmonds Precision Prodcuts, Inc. Method for detection and recognition of fog presence within an aircraft compartment using video images
US7834754B2 (en) 2002-07-19 2010-11-16 Ut-Battelle, Llc Method and system for monitoring environmental conditions
WO2004018158A2 (en) 2002-08-21 2004-03-04 Neal Solomon Organizing groups of self-configurable mobile robotic agents
AU2003900861A0 (en) 2003-02-26 2003-03-13 Silverbrook Research Pty Ltd Methods,systems and apparatus (NPS042)
JP3950805B2 (ja) 2003-02-27 2007-08-01 ファナック株式会社 教示位置修正装置
US7313279B2 (en) 2003-07-08 2007-12-25 Computer Associates Think, Inc. Hierarchical determination of feature relevancy
SE0301531L (sv) 2003-05-22 2004-11-23 Abb Ab A Control method for a robot
US7212651B2 (en) 2003-06-17 2007-05-01 Mitsubishi Electric Research Laboratories, Inc. Detecting pedestrians using patterns of motion and appearance in videos
US7769487B2 (en) 2003-07-24 2010-08-03 Northeastern University Process and architecture of robotic system to mimic animal behavior in the natural environment
WO2005028166A1 (ja) 2003-09-22 2005-03-31 Matsushita Electric Industrial Co., Ltd. 弾性体アクチュエータの制御装置及び制御方法
US7342589B2 (en) 2003-09-25 2008-03-11 Rockwell Automation Technologies, Inc. System and method for managing graphical data
JP4592276B2 (ja) 2003-10-24 2010-12-01 ソニー株式会社 ロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラム
JP4742329B2 (ja) 2004-02-25 2011-08-10 学校法人立命館 浮遊移動体の制御システム
JP4661074B2 (ja) 2004-04-07 2011-03-30 ソニー株式会社 情報処理システム、情報処理方法、並びにロボット装置
EP1622072B1 (en) 2004-07-27 2010-07-07 Sony France S.A. An automated action-selection system and method and application thereof for training prediction machines and for driving the development of self-developing devices
SE0402672D0 (sv) 2004-11-02 2004-11-02 Viktor Kaznov Ball robot
US9250081B2 (en) * 2005-03-25 2016-02-02 Irobot Corporation Management of resources for SLAM in large environments
US7211979B2 (en) 2005-04-13 2007-05-01 The Broad Of Trustees Of The Leland Stanford Junior University Torque-position transformer for task control of position controlled robots
US7765029B2 (en) 2005-09-13 2010-07-27 Neurosciences Research Foundation, Inc. Hybrid control device
JP4876511B2 (ja) 2005-09-29 2012-02-15 株式会社日立製作所 ロジック抽出支援装置
EP2050544B1 (en) 2005-09-30 2011-08-31 iRobot Corporation Robot system with wireless communication by TCP/IP transmissions
US7668605B2 (en) 2005-10-26 2010-02-23 Rockwell Automation Technologies, Inc. Wireless industrial control user interface
ES2378138T3 (es) 2005-12-02 2012-04-09 Irobot Corporation Movilidad de robot de cubrimiento
US7741802B2 (en) 2005-12-20 2010-06-22 Intuitive Surgical Operations, Inc. Medical robotic system with programmably controlled constraints on error dynamics
US8239083B2 (en) 2006-01-18 2012-08-07 I-Guide Robotics, Inc. Robotic vehicle controller
US8224018B2 (en) 2006-01-23 2012-07-17 Digimarc Corporation Sensing data from physical objects
US7576639B2 (en) 2006-03-14 2009-08-18 Mobileye Technologies, Ltd. Systems and methods for detecting pedestrians in the vicinity of a powered industrial vehicle
US8924021B2 (en) 2006-04-27 2014-12-30 Honda Motor Co., Ltd. Control of robots from human motion descriptors
JP4320363B2 (ja) 2006-05-25 2009-08-26 豪洋 石崎 作業ロボット
KR100791382B1 (ko) 2006-06-01 2008-01-07 삼성전자주식회사 로봇의 이동 경로에 따라 소정 영역의 특성에 관한 정보를수집하고 분류하는 방법 및 상기 영역 특성에 따라제어되는 로봇, 상기 영역 특성을 이용한 ui 구성 방법및 장치
WO2008070205A2 (en) 2006-06-09 2008-06-12 Carnegie Mellon University Obstacle detection arrangements in and for autonomous vehicles
US8843244B2 (en) 2006-10-06 2014-09-23 Irobot Corporation Autonomous behaviors for a remove vehicle
JP4699426B2 (ja) 2006-08-08 2011-06-08 パナソニック株式会社 障害物回避方法と障害物回避移動装置
US8174568B2 (en) 2006-12-01 2012-05-08 Sri International Unified framework for precise vision-aided navigation
JP4267027B2 (ja) 2006-12-07 2009-05-27 ファナック株式会社 ロボット制御装置
EP2140316B1 (en) 2007-03-29 2011-12-28 iRobot Corporation Robot operator control unit configuration system and method
US20080274683A1 (en) 2007-05-04 2008-11-06 Current Energy Controls, Lp Autonomous Ventilation System
US8255092B2 (en) 2007-05-14 2012-08-28 Irobot Corporation Autonomous behaviors for a remote vehicle
JP5213023B2 (ja) 2008-01-15 2013-06-19 本田技研工業株式会社 ロボット
CN101952087B (zh) 2008-02-06 2013-01-16 松下电器产业株式会社 机器人、机器人的控制装置及控制方法
JP5181704B2 (ja) 2008-02-07 2013-04-10 日本電気株式会社 データ処理装置、姿勢推定システム、姿勢推定方法およびプログラム
US8175992B2 (en) 2008-03-17 2012-05-08 Intelliscience Corporation Methods and systems for compound feature creation, processing, and identification in conjunction with a data analysis and feature recognition system wherein hit weights are summed
WO2009123650A1 (en) 2008-04-02 2009-10-08 Irobot Corporation Robotics systems
JP4715863B2 (ja) 2008-05-01 2011-07-06 ソニー株式会社 アクチュエータ制御装置及びアクチュエータ制御方法、アクチュエータ、ロボット装置、並びにコンピュータ・プログラム
US8060271B2 (en) * 2008-06-06 2011-11-15 Toyota Motor Engineering & Manufacturing North America, Inc. Detecting principal directions of unknown environments
JP5215740B2 (ja) 2008-06-09 2013-06-19 株式会社日立製作所 移動ロボットシステム
CN102202613A (zh) 2008-09-04 2011-09-28 Iwalk股份有限公司 混合型地形自适应下肢系统
CA2775675C (en) 2008-10-29 2019-04-16 The Regents Of The University Of Colorado Long term active learning from large continually changing data sets
US20100114372A1 (en) 2008-10-30 2010-05-06 Intellibot Robotics Llc Method of cleaning a surface using an automatic cleaning device
JP5242342B2 (ja) 2008-10-31 2013-07-24 株式会社東芝 ロボット制御装置
US8428781B2 (en) 2008-11-17 2013-04-23 Energid Technologies, Inc. Systems and methods of coordination control for robot manipulation
EP2209018A1 (en) 2009-01-15 2010-07-21 Nederlandse Organisatie voor toegepast-natuurwetenschappelijk Onderzoek TNO A method for estimating an object motion characteristic from a radar signal, a computer system and a computer program product
US8423182B2 (en) 2009-03-09 2013-04-16 Intuitive Surgical Operations, Inc. Adaptable integrated energy control system for electrosurgical tools in robotic surgical systems
US8120301B2 (en) 2009-03-09 2012-02-21 Intuitive Surgical Operations, Inc. Ergonomic surgeon control console in robotic surgical systems
US8364314B2 (en) 2009-04-30 2013-01-29 GM Global Technology Operations LLC Method and apparatus for automatic control of a humanoid robot
US8694449B2 (en) 2009-05-29 2014-04-08 Board Of Trustees Of Michigan State University Neuromorphic spatiotemporal where-what machines
JP4676544B2 (ja) 2009-05-29 2011-04-27 ファナック株式会社 工作機械に対してワークの供給及び取り出しを行うロボットを制御するロボット制御装置
US8774970B2 (en) 2009-06-11 2014-07-08 S.C. Johnson & Son, Inc. Trainable multi-mode floor cleaning device
US8706297B2 (en) 2009-06-18 2014-04-22 Michael Todd Letsky Method for establishing a desired area of confinement for an autonomous robot and autonomous robot implementing a control system for executing the same
CN102448683B (zh) 2009-07-02 2014-08-27 松下电器产业株式会社 机器人、机器人手臂的控制装置及机器人手臂的控制程序
CN102483333B (zh) * 2009-07-09 2016-03-09 通腾科技股份有限公司 使用具有路线搜索加速数据的地图数据的导航装置
EP2284769B1 (en) 2009-07-16 2013-01-02 European Space Agency Method and apparatus for analyzing time series data
US20110026770A1 (en) 2009-07-31 2011-02-03 Jonathan David Brookshire Person Following Using Histograms of Oriented Gradients
JP2013503404A (ja) * 2009-08-31 2013-01-31 ニート ロボティックス,インコーポレイティド 移動ロボット環境の同時局在化およびマッピング方法および装置
US8250901B2 (en) 2009-09-22 2012-08-28 GM Global Technology Operations LLC System and method for calibrating a rotary absolute position sensor
TW201113815A (en) 2009-10-09 2011-04-16 Primax Electronics Ltd QR code processing method and apparatus thereof
US8873832B2 (en) * 2009-10-30 2014-10-28 Yujin Robot Co., Ltd. Slip detection apparatus and method for a mobile robot
US8423225B2 (en) 2009-11-11 2013-04-16 Intellibot Robotics Llc Methods and systems for movement of robotic device using video signal
US8679260B2 (en) 2009-11-11 2014-03-25 Intellibot Robotics Llc Methods and systems for movement of an automatic cleaning device using video signal
US8521328B2 (en) 2009-12-10 2013-08-27 The Boeing Company Control system for robotic vehicles
TW201123031A (en) 2009-12-24 2011-07-01 Univ Nat Taiwan Science Tech Robot and method for recognizing human faces and gestures thereof
JP5429986B2 (ja) * 2009-12-25 2014-02-26 株式会社Ihiエアロスペース 移動ロボットの遠方環境認識装置及び方法
JP5506617B2 (ja) 2009-12-28 2014-05-28 本田技研工業株式会社 ロボットの制御装置
JP5506618B2 (ja) 2009-12-28 2014-05-28 本田技研工業株式会社 ロボットの制御装置
US8668638B2 (en) 2010-02-11 2014-03-11 Intuitive Surgical Operations, Inc. Method and system for automatically maintaining an operator selected roll orientation at a distal tip of a robotic endoscope
KR101169674B1 (ko) 2010-03-11 2012-08-06 한국과학기술연구원 원격현전 로봇, 이를 포함하는 원격현전 시스템 및 이의 제어 방법
US8660355B2 (en) 2010-03-19 2014-02-25 Digimarc Corporation Methods and systems for determining image processing operations relevant to particular imagery
US9311593B2 (en) 2010-03-26 2016-04-12 Brain Corporation Apparatus and methods for polychronous encoding and multiplexing in neuronal prosthetic devices
US9405975B2 (en) 2010-03-26 2016-08-02 Brain Corporation Apparatus and methods for pulse-code invariant object recognition
US9122994B2 (en) 2010-03-26 2015-09-01 Brain Corporation Apparatus and methods for temporally proximate object recognition
US8336420B2 (en) 2010-06-02 2012-12-25 Disney Enterprises, Inc. Three-axis robotic joint using four-bar linkages to drive differential side gears
FR2963132A1 (fr) 2010-07-23 2012-01-27 Aldebaran Robotics Robot humanoide dote d'une interface de dialogue naturel, methode d'utilisation et de programmation de ladite interface
US20120045068A1 (en) 2010-08-20 2012-02-23 Korea Institute Of Science And Technology Self-fault detection system and method for microphone array and audio-based device
JP2012064131A (ja) * 2010-09-17 2012-03-29 Tokyo Institute Of Technology 地図生成装置、地図生成方法、移動体の移動方法、及びロボット装置
US8594971B2 (en) 2010-09-22 2013-11-26 Invensense, Inc. Deduced reckoning navigation without a constraint relationship between orientation of a sensor platform and a direction of travel of an object
US9204823B2 (en) 2010-09-23 2015-12-08 Stryker Corporation Video monitoring system
WO2012040644A1 (en) * 2010-09-24 2012-03-29 Evolution Robotics, Inc. Systems and methods for vslam optimization
KR20120035519A (ko) 2010-10-05 2012-04-16 삼성전자주식회사 먼지 유입 감지 유닛 및 이를 구비하는 로봇 청소기
US20120143495A1 (en) 2010-10-14 2012-06-07 The University Of North Texas Methods and systems for indoor navigation
US9015093B1 (en) 2010-10-26 2015-04-21 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US8726095B2 (en) 2010-12-02 2014-05-13 Dell Products L.P. System and method for proactive management of an information handling system with in-situ measurement of end user actions
JP5185358B2 (ja) 2010-12-13 2013-04-17 株式会社東芝 行動履歴検索装置
CN103038030B (zh) 2010-12-17 2015-06-03 松下电器产业株式会社 弹性体致动器驱动机构的控制装置及控制方法
US8639644B1 (en) 2011-05-06 2014-01-28 Google Inc. Shared robot knowledge base for use with cloud computing system
US8380652B1 (en) 2011-05-06 2013-02-19 Google Inc. Methods and systems for autonomous robotic decision making
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US10027952B2 (en) * 2011-08-04 2018-07-17 Trx Systems, Inc. Mapping and tracking system with features in three-dimensional space
US9189891B2 (en) 2011-08-16 2015-11-17 Google Inc. Systems and methods for navigating a camera
US9015092B2 (en) 2012-06-04 2015-04-21 Brain Corporation Dynamically reconfigurable stochastic learning apparatus and methods
US20130096719A1 (en) 2011-10-13 2013-04-18 The U.S.A. As Represented By The Administrator Of The National Aeronautics And Space Administration Method for dynamic optimization of a robot control interface
JP6305673B2 (ja) 2011-11-07 2018-04-04 セイコーエプソン株式会社 ロボット制御システム、ロボットシステム及びロボット
JP5399593B2 (ja) 2011-11-10 2014-01-29 パナソニック株式会社 ロボット、ロボットの制御装置、制御方法、及び制御プログラム
JP5802279B2 (ja) * 2011-11-22 2015-10-28 株式会社日立製作所 自律移動システム
KR101305819B1 (ko) 2012-01-04 2013-09-06 현대자동차주식회사 착용식 로봇의 사용자 조작 의도 토크 추출방법
US8958911B2 (en) 2012-02-29 2015-02-17 Irobot Corporation Mobile robot
JP5895628B2 (ja) 2012-03-15 2016-03-30 株式会社ジェイテクト ロボットの制御方法及びロボット制御装置、並びにロボット制御システム
US9221177B2 (en) 2012-04-18 2015-12-29 Massachusetts Institute Of Technology Neuromuscular model-based sensing and control paradigm for a robotic leg
US9031779B2 (en) 2012-05-30 2015-05-12 Toyota Motor Engineering & Manufacturing North America, Inc. System and method for hazard detection and sharing
US9208432B2 (en) 2012-06-01 2015-12-08 Brain Corporation Neural network learning and collaboration apparatus and methods
US8965580B2 (en) 2012-06-21 2015-02-24 Rethink Robotics, Inc. Training and operating industrial robots
US20130346347A1 (en) 2012-06-22 2013-12-26 Google Inc. Method to Predict a Communicative Action that is Most Likely to be Executed Given a Context
JP5645885B2 (ja) 2012-06-29 2014-12-24 京セラドキュメントソリューションズ株式会社 画像形成装置
AU2012384518B2 (en) 2012-07-04 2019-01-24 Indra Sistemas, S.A. Infrared image based early detection of oil spills in water
US8977582B2 (en) 2012-07-12 2015-03-10 Brain Corporation Spiking neuron network sensory processing apparatus and methods
US9367798B2 (en) 2012-09-20 2016-06-14 Brain Corporation Spiking neuron network adaptive control apparatus and methods
US8793205B1 (en) 2012-09-20 2014-07-29 Brain Corporation Robotic learning and evolution apparatus
DE102012109004A1 (de) 2012-09-24 2014-03-27 RobArt GmbH Roboter und Verfahren zur autonomen Inspektion oder Bearbeitung von Bodenflächen
EP2903787B1 (en) * 2012-10-05 2019-05-15 iRobot Corporation Robot management systems for determining docking station pose including mobile robots and methods using same
US8972061B2 (en) 2012-11-02 2015-03-03 Irobot Corporation Autonomous coverage robot
US20140187519A1 (en) 2012-12-27 2014-07-03 The Board Of Trustees Of The Leland Stanford Junior University Biomarkers for predicting major adverse events
EP2752726B1 (de) 2013-01-08 2015-05-27 Cleanfix Reinigungssysteme AG Bodenbehandlungsmaschine und Verfahren zum Behandeln von Bodenflächen
US8972057B1 (en) * 2013-01-09 2015-03-03 The Boeing Company Systems and methods for generating a robotic path plan in a confined configuration space
CN104769962B (zh) 2013-01-18 2019-03-12 艾罗伯特公司 包括移动机器人的环境管理系统以及其使用方法
JP6132659B2 (ja) 2013-02-27 2017-05-24 シャープ株式会社 周囲環境認識装置、それを用いた自律移動システムおよび周囲環境認識方法
US8958937B2 (en) 2013-03-12 2015-02-17 Intellibot Robotics Llc Cleaning machine with collision prevention
CN105050775B (zh) 2013-03-15 2017-08-25 直观外科手术操作公司 软件可配置的操纵器自由度
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US9008840B1 (en) 2013-04-19 2015-04-14 Brain Corporation Apparatus and methods for reinforcement-guided supervised learning
US9377310B2 (en) * 2013-05-02 2016-06-28 The Johns Hopkins University Mapping and positioning system
CN103278170B (zh) * 2013-05-16 2016-01-06 东南大学 基于显著场景点检测的移动机器人级联地图创建方法
US9292015B2 (en) 2013-05-23 2016-03-22 Fluor Technologies Corporation Universal construction robotics interface
US20140358828A1 (en) 2013-05-29 2014-12-04 Purepredictive, Inc. Machine learning generated action plan
US9242372B2 (en) 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
TWI585561B (zh) 2013-06-03 2017-06-01 新智控私人有限公司 機器人裝置的離機式導航方法與裝置
US9384443B2 (en) 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US20150032258A1 (en) 2013-07-29 2015-01-29 Brain Corporation Apparatus and methods for controlling of robotic devices
JP6227948B2 (ja) 2013-09-18 2017-11-08 村田機械株式会社 自律走行式床洗浄機、清掃スケジュールのデータ構造、記憶媒体、清掃スケジュールの生成方法、及びプログラム
SG2013071808A (en) 2013-09-24 2015-04-29 Ctrlworks Pte Ltd Offboard navigation apparatus capable of being coupled to a movable platform
US9296101B2 (en) 2013-09-27 2016-03-29 Brain Corporation Robotic control arbitration apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9315192B1 (en) 2013-09-30 2016-04-19 Google Inc. Methods and systems for pedestrian avoidance using LIDAR
US9144907B2 (en) 2013-10-24 2015-09-29 Harris Corporation Control synchronization for high-latency teleoperation
WO2015126499A2 (en) * 2013-12-02 2015-08-27 Andrew Irish Systems and methods for gnss snr probabilistic localization and 3-d mapping
US10612939B2 (en) 2014-01-02 2020-04-07 Microsoft Technology Licensing, Llc Ground truth estimation for autonomous navigation
US10078712B2 (en) 2014-01-14 2018-09-18 Energid Technologies Corporation Digital proxy simulation of robotic hardware
US9567077B2 (en) 2014-02-14 2017-02-14 Accenture Global Services Limited Unmanned vehicle (UV) control system
US20150283703A1 (en) 2014-04-03 2015-10-08 Brain Corporation Apparatus and methods for remotely controlling robotic devices
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US10255319B2 (en) 2014-05-02 2019-04-09 Google Llc Searchable index
US20150339589A1 (en) 2014-05-21 2015-11-26 Brain Corporation Apparatus and methods for training robots utilizing gaze-based saliency maps
GB2528953A (en) 2014-08-07 2016-02-10 Nokia Technologies Oy An apparatus, method, computer program and user device for enabling control of a vehicle
US9475195B2 (en) 2014-09-12 2016-10-25 Toyota Jidosha Kabushiki Kaisha Anticipatory robot navigation
US20160121487A1 (en) 2014-11-03 2016-05-05 Qualcomm Incorporated Communicating Configurable Instruction Sets to Robots for Controlling Robot Behavior
CN104503449A (zh) * 2014-11-24 2015-04-08 杭州申昊科技股份有限公司 一种基于环境直线特征的定位方法
US9628477B2 (en) 2014-12-23 2017-04-18 Intel Corporation User profile selection using contextual authentication
US9630319B2 (en) * 2015-03-18 2017-04-25 Irobot Corporation Localization and mapping using physical features
CN106573372B (zh) * 2015-03-31 2018-12-21 广州艾若博机器人科技有限公司 充电器、基于地图构建寻找充电器的方法、装置及系统
WO2016168944A1 (en) 2015-04-24 2016-10-27 Avidbots Corp. Apparatus and methods for semi-autonomous cleaning of surfaces
KR102431996B1 (ko) * 2015-10-12 2022-08-16 삼성전자주식회사 로봇 청소기 및 그 제어 방법
JP6649743B2 (ja) * 2015-10-28 2020-02-19 シャープ株式会社 一致性評価装置および一致性評価方法
US20170139551A1 (en) 2015-11-16 2017-05-18 Bank Of America Corporation System for determining user interfaces to display based on user location
US10241514B2 (en) 2016-05-11 2019-03-26 Brain Corporation Systems and methods for initializing a robot to autonomously travel a trained route
US20170329347A1 (en) 2016-05-11 2017-11-16 Brain Corporation Systems and methods for training a robot to autonomously travel a route
CN105806344B (zh) * 2016-05-17 2019-03-19 杭州申昊科技股份有限公司 一种基于局部地图拼接的栅格地图创建方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150261223A1 (en) * 2011-09-30 2015-09-17 Irobot Corporation Adaptive mapping with spatial summaries of sensor data
US20130332065A1 (en) * 2012-06-12 2013-12-12 Trx Systems, Inc. Fusion Of Sensor And Map Data Using A Contraint Based Optimization
US20150205299A1 (en) * 2012-11-02 2015-07-23 Irobot Corporation Simultaneous Localization And Mapping For A Mobile Robot

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021251541A1 (ko) * 2020-06-11 2021-12-16 엘지전자 주식회사 무선랜 시스템에서 wifi 센싱을 수행하는 방법 및 장치
KR102517351B1 (ko) * 2022-08-19 2023-04-03 주식회사 트위니 동적 장애물의 제거가 가능한 운송 로봇 및 동적 장애물 제거 방법
WO2024038971A1 (ko) * 2022-08-19 2024-02-22 주식회사 트위니 동적 장애물의 제거가 가능한 운송 로봇 및 동적 장애물 제거 방법

Also Published As

Publication number Publication date
CA3042531A1 (en) 2018-05-11
EP3535632A4 (en) 2020-08-26
WO2018085291A1 (en) 2018-05-11
US10823576B2 (en) 2020-11-03
CN110023867A (zh) 2019-07-16
JP7106076B2 (ja) 2022-07-26
CN110023867B (zh) 2023-04-28
US20180120116A1 (en) 2018-05-03
US20190249998A1 (en) 2019-08-15
EP3535632A1 (en) 2019-09-11
KR102455845B1 (ko) 2022-10-18
US10274325B2 (en) 2019-04-30
JP2020502627A (ja) 2020-01-23

Similar Documents

Publication Publication Date Title
KR102455845B1 (ko) 로봇 맵핑 시스템 및 방법
US20230021778A1 (en) Systems and methods for training a robot to autonomously travel a route
EP3336648B1 (en) Movable object and control method thereof
US10860033B2 (en) Movable object and method for controlling the same
KR20190077050A (ko) 자율 네비게이션에서 동적 노정을 계획하기 위한 시스템 및 방법
Correll et al. Multirobot inspection of industrial machinery
US11097414B1 (en) Monitoring of surface touch points for precision cleaning
US11587302B2 (en) Shared dense network with robot task-specific heads
WO2018228254A1 (zh) 一种移动电子设备以及该移动电子设备中的方法
Hardouin et al. Surface-driven Next-Best-View planning for exploration of large-scale 3D environments
CN116352722A (zh) 多传感器融合的矿山巡检救援机器人及其控制方法
Suppa Autonomous robot work cell exploration using multisensory eye-in-hand systems
Zhu et al. Indoor localization method of mobile educational robot based on visual sensor
Khan et al. Simultaneous localization and mapping (SLAM) with an autonomous robot
Francis Cooperative Path Planning for Autonomous Ground Vehicles using 3D Sensor in Cluttered Environment
Hutsebaut-Buysse et al. Directed Real-World Learned Exploration
Dutta et al. Designing vision based autonomous docile-x mobile robot for real-time application to soccer behaviors
Klasing Aspects of 3D perception, abstraction, and interpretation in autonomous mobile robotics
Sridharan et al. Literature Survey
Bueno UNIVERSIDAD CARLOS III DE MADRID

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant