KR20200041384A - 충돌 검출, 추정 및 회피 - Google Patents

충돌 검출, 추정 및 회피 Download PDF

Info

Publication number
KR20200041384A
KR20200041384A KR1020207009829A KR20207009829A KR20200041384A KR 20200041384 A KR20200041384 A KR 20200041384A KR 1020207009829 A KR1020207009829 A KR 1020207009829A KR 20207009829 A KR20207009829 A KR 20207009829A KR 20200041384 A KR20200041384 A KR 20200041384A
Authority
KR
South Korea
Prior art keywords
collision
sensor data
log
computing device
determining whether
Prior art date
Application number
KR1020207009829A
Other languages
English (en)
Other versions
KR102235003B1 (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 KR20200041384A publication Critical patent/KR20200041384A/ko
Application granted granted Critical
Publication of KR102235003B1 publication Critical patent/KR102235003B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39082Collision, real time collision avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Electromagnetism (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

예시적인 방법은 이전의 시간 기간 동안 환경을 나타내는 센서 데이터의 로그를 획득하는 단계(센서 데이터의 로그는 이미지 프레임 시퀀스를 포함) 및 센서 데이터의 로그가 이전 기간 내 특정 시간의 환경 내에서의 물리적 물체 관련 충돌과 관련 있는지 판정하는 단계를 포함한다. 이 방법은 또한 센서 데이터의 로그가 충돌과 관련 있다는 판정에 응답하여, 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성하는 단계를 포함한다. 충돌에 대한 트레이닝 데이터 세트는 특정 시간에 대응하는 이미지 프레임 시퀀스 내 이미지 프레임 보다 이전의 이미지 프레임 시퀀스의 복수의 이미지 프레임을 포함할 수 있다.

Description

충돌 검출, 추정 및 회피
본 출원은 참조로서 통합된 2017년 9월 8일에 출원된 미국 정규 특허 출원번호 제15/699,444호의 우선권을 주장한다.
본 발명은 기계 학습(machine learning)에 관한 것으로, 보다 상세하게는 기계 학습 모델을 트레이닝하기 위한 트레이닝 데이터 세트의 생성 및 기계 학습 모델을 이용한 충돌 추정 수행에 관한 것이다.
로봇 장치를 환경을 통해 내비게이팅할 때, 그 환경 내의 물리적 물체와의 충돌을 회피하는 것이 바람직할 수 있다. 예를 들어, 로봇 장치를 실내 환경을 통해 내비게이팅할 때 사람, 애완 동물 및 기타 움직이는 물체와의 충돌을 회피하는 것이 바람직할 수 있다.
일부 경우에, 로봇 장치는 반응 방식으로 작동함으로써 충돌을 회피하도록 프로그래밍된다. 예를 들어, 로봇 장치는 적외선 근접 센서를 포함할 수 있고, 로봇 장치의 특정 범위 내에서 물체가 검출될 때마다 정지하거나 방향을 변경하도록 프로그래밍될 수 있다. 그러나, 불행히도 어떤 상황에서는 로봇 장치가 너무 느리게 반응하여 로봇 장치가 물체와 충돌할 수 있다. 또한, 환경 내에서 내비게이팅할 때, 반응식으로 동작하는 로봇 장치는 움직이는 물체(또는 잠재적으로 움직일 수 있는 물체)의 궤도를 추정할 수 없고 물체와의 충돌을 회피하기 위해 사전에 조치를 취할 수 없다. 그러므로, 개선이 필요하다.
일례에서, 컴퓨터 구현 방법이 설명된다. 컴퓨터 구현 방법은 컴퓨팅 장치에 의해 이전 시간 기간 동안의 환경을 나타내는 센서 데이터의 로그를 획득하는 단계를 포함하며, 여기서 센서 데이터의 로그는 이미지 프레임 시퀀스를 포함한다. 이 컴퓨터 구현 방법은 컴퓨팅 장치에 의해 센서 데이터의 로그가 이전 시간 기간 내의 특정 시간에 환경 내의 물리적 물체 관련 충돌과 관련 있는지 판정하는 단계를 더 포함한다. 이 컴퓨터 구현 방법은 또한 센서 데이터의 로그가 충돌과 관련 있다는 판정에 응답하여, 컴퓨팅 장치에 의해 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성한다. 충돌에 대한 트레이닝 데이터 세트는 특정 시간에 대응하는 이미지 프레임 시퀀스 내 이미지 보다 이전의 이미지 프레임 시퀀스의 복수의 이미지 프레임을 포함한다.
다른 예에서, 컴퓨팅 장치가 설명된다. 이 컴퓨팅 장치는 적어도 하나의 프로세서, 메모리 및 메모리에 저장되어 적어도 하나의 프로세서에 의해 실행될 때 컴퓨팅 장치가 다양한 기능들을 수행하게 하는 프로그램 명령어를 포함한다. 이 기능은 이전 시간 기간 동안의 환경을 나타내는 센서 데이터의 로그를 획득하는 단계를 포함하며, 여기서 센서 데이터의 로그는 이미지 프레임 시퀀스를 포함한다. 기능은 센서 데이터의 로그가 이전 시간 기간 내의 특정 시간에 환경 내의 물리적 물체 관련 충돌과 관련 있는지 판정하는 단계를 더 포함한다. 기능은 또한 센서 데이터의 로그가 충돌과 관련 있다는 판정에 응답하여, 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성하는 단계를 포함한다. 충돌에 대한 트레이닝 데이터 세트는 특정 시간에 대응하는 이미지 프레임 시퀀스 내 이미지 프레임 보다 이전의 이미지 프레임 시퀀스의 복수의 이미지 프레임을 포함한다.
다른 예에서, 컴퓨팅 장치에 의해 실행될 때 컴퓨팅 장치로 하여금 기능을 수행하게 하는 명령어를 내부에 저장한 비일시적 컴퓨터 판독 가능 매체가 설명된다. 기능은 이미지 프레임 시퀀스를 포함하는 센서 데이터의 로그와 함께, 이전 시간 기간 동안의 환경을 나타내는 센서 데이터의 로그를 획득하는 단계를 포함한다. 기능은 센서 데이터의 로그가 이전 시간 기간 내의 특정 시간에 환경 내 물리적 물체 관련 충돌과 관련 있는지 판정하는 단계를 더 포함한다. 기능은 또한 센서 데이터의 로그가 충돌과 관련 있다는 판정에 응답하여, 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성하는 것을 포함한다. 충돌에 대한 트레이닝 데이터 세트는 특정 시간에 대응하는 이미지 프레임 시퀀스 내 이미지 프레임보다 이전의 이미지 프레임 시퀀스의 복수의 이미지 프레임을 포함한다.
논의된 특징, 기능 및 장점은 다양한 예에서 독립적으로 달성될 수 있거나 또 다른 예에서 이하의 설명 및 도면을 참조하여 알 수 있는 다른 세부사항에서 조합될 수 있다.
예시적인 예의 특징으로 여겨지는 새로운 피처들은 첨부된 청구 범위에 기재되어 있다. 그러나, 예시적인 예뿐만 아니라 바람직한 사용 모드, 그것의 추가적인 목적 및 설명은 첨부 도면과 함께 본 발명의 예시적인 예의 아래의 상세한 설명을 참조함으로써 가장 잘 이해될 것이다.
도 1은 예시적인 실시예에 따른 예시적인 시스템을 도시한다.
도 2는 예시적인 실시예에 따른 예시적인 로봇 장치를 도시한다.
도 3은 예시적인 실시예에 따른 예시적인 컴퓨팅 장치를 도시한다.
도 4는 예시적인 실시예에 따른 예시적인 방법의 흐름도를 도시한다.
도 5는 예시적인 실시예에 따른, 환경 내 물리적 물체 관련 충돌의 개념도이다.
도 6은 예시적인 실시예에 따른, 환경 내 물리적 물체 관련 충돌의 다른 개념도이다.
도 7은 예시적인 실시예에 따른 다른 예시적인 방법의 흐름도를 도시한다.
도 8은 예시적인 실시예에 따른 충돌 추정 및 회피의 개념도이다.
첨부된 도면을 참조하여 개시된 예들을 보다 상세하게 설명할 것이며, 상기 도면에는 개시된 실시예의 전부가 도시된 것은 아니고 일부만 도시되어 있다. 실제로, 몇몇 상이한 예가 제공될 수 있으며 여기에 제시된 예로 본 발명이 제한되는 것으로 해석되어서는 안 된다. 그 보다는, 이러한 예들은 본 개시물이 철저하고 완전하게 제공되며 본 개시물의 범위를 당업자에게 완전히 전달할 것이다.
기계 학습 모델을 트레이닝시키기 위한 트레이닝 데이터 세트를 생성하기 위한 시스템 및 방법이 여기에 설명된다. 예시에서, 로봇 장치는 환경 내 물리적 물체 관련 충돌을 검출하고, 그에 응답하여 충돌에 관한 데이터를 기계 학습 모델을 위한 트레이닝 데이터 세트로서 수집 및 패키징할 수 있다. 이러한 트레이닝 데이터 세트 및 다른 트레이닝 데이터 세트를 사용하여 기계 학습 모델을 트레이닝시킨 후, 이 로봇 장치(또는 다른 로봇 장치)는 모델을 사용하여 향후 충돌이 발생할 시기를 예측하고 물리적 물체와의 충돌을 회피하기 위한 예방 조치를 취할 수 있다.
하나의 예시적인 방법은 컴퓨팅 장치에 의해, 이전 시간 기간 동안의 환경을 나타내는 센서 데이터의 로그를 획득하는 단계를 포함한다. 예를 들어, 환경 내에서 내비게이팅하는 로봇 장치는 이전 시간 기간에 대응하는 이미지 프레임 시퀀스를 포함하는 센서 데이터의 로그를 기록 및 저장하고, 센서 데이터의 로그를 컴퓨팅 장치에 제공할 수 있다. 이 방법은 또한 컴퓨팅 장치에 의해 센서 데이터의 로그가 이전 시간 기간 내의 특정 시간에 환경 내 물리적 물체 관련 충돌과 관련 있는지 판정하는 단계를 포함한다. 예를 들어, 컴퓨팅 장치는 충돌이 물리적 물체와 로봇 장치 간의 물리적 충돌인지 판정할 수 있다. 그리고, 센서 데이터의 로그가 충돌과 관련 있다는 판정에 응답하여, 컴퓨팅 장치는 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성할 수 있다. 트레이닝 데이터 세트는 특정 시간에 대응하는 이미지 프레임 시퀀스 내 이미지 프레임 보다 이전의 이미지 프레임 시퀀스의 복수의 이미지 프레임을 포함할 수 있다.
일부 예에서, 로봇 장치는 RGBD(red, green, blue, distance) 이미지를 캡처하는 RGBD 카메라를 가질 수 있고, 센서 데이터의 로그는 RGBD 이미지 프레임 시퀀스를 포함할 수 있다. 이러한 예에서, 충돌에 대한 트레이닝 데이터 세트는 충돌까지 이어지는 RGBD 이미지 프레임을 포함할 수 있다. 예를 들어, (튀는 공과 같은) 움직이는 물체가 로봇 장치와 충돌하고 트레이닝 데이터 세트의 생성을 트리거하면, 트레이닝 데이터 세트는 물체의 움직임을 묘사하는 RGBD 이미지 프레임을 포함할 수 있다.
컴퓨팅 장치는 센서 데이터의 로그가 충돌과 관련 있는지 다양한 방식으로 판정할 수 있다. 예를 들어, 아래에 더 설명한 바와 같이, 컴퓨팅 장치는 로봇 장치에 의해 기록된 가속도계 데이터가 물리적 물체와 로봇 장치 간 충돌을 나타내는지 판정할 수 있다. 이와 유사하게, 컴퓨팅 장치는 로봇 장치에 의해 기록된 접촉 센서 데이터가 물리적 물체와 로봇 장치 간 충돌을 나타내는지 판정할 수 있다. 충돌을 인식하고 트레이닝 데이터 세트의 생성을 트리거하는 다른 기술 또한 고려되고 본 명세서에 개시된다.
또한, 일부 예에서, 물리적 물체와 증강 현실 캐릭터 형태의 소프트웨어 로봇 간 충돌과 같은, 가상 충돌도 트레이닝 데이터 세트의 생성을 트리거할 수 있다. 예를 들어, 증강 현실 그래픽은 환경 내 특정 위치에 배치될 수 있고, 컴퓨팅 장치가 물리적 물체가 그 특정 위치로 이동한다고 판정하면, 컴퓨팅 장치는 그에 응답하여 충돌에 대한 트레이닝 데이터 세트를 생성할 수 있다.
유리하게도, 본 명세서에 개시된 시스템 및 방법은 인간 라벨러가 센서 데이터의 로그 및 센서 데이터의 라벨 부분을 충돌로 후처리 하거나 충돌이 발생한 때 실시간으로 트레이닝 데이터 세트의 생성을 트리거하는 것을 요구하지 않고도 기계 학습 모델에 대한 트레이닝 데이터 세트를 생성하는 것을 용이하게 할 수 있다.
이하, 이러한 시스템 및 방법의 다양한 다른 특징이 첨부 도면을 참조하여 설명된다.
도 1을 참조하면, 예시적인 시스템(100)이 도시되어 있다. 특히, 도 1은 충돌 검출 및/또는 충돌 추정을 위한 예시적인 시스템(100)을 도시한다. 본 명세서에서 사용되는 바와 같이, 충돌 검출은 환경 내의 적어도 하나의 움직이는 물체 관련 충돌이 발생했는지 판정하는 프로세스를 지칭한다. 충돌 검출은 충돌 관련 데이터를 수집하고 기계 학습 모델을 트레이닝시키기 위한 트레이닝 데이터 세트를 생성하는데 유용하다. 한편, 충돌 추정은 로봇 장치 또는 소프트웨어 로봇과 같은 로봇이 물리적 물체와 충돌할 수 있음을 예측하는 프로세스를 지칭한다. 물리적 물체는 고정되거나 이동 가능할 수 있다. 예를 들어, 물리적 물체는 가구 또는 벽, 바닥, 캐비닛, 계단 등과 같은 환경 내 물리적 구조물일 수 있다. 대안으로서, 물리적 물체는 공, 장난감 또는 의류일 수 있다. 일부 경우에, 충돌 추정은 기계 학습 모델을 사용하여 움직이는 물체 및/또는 로봇의 궤도를 추정하는 것을 포함할 수 있다.
도 1에 도시된 바와 같이, 시스템(100)은 로봇 장치(102a, 102b), 적어도 하나의 서버 장치(104), 호스트 장치(106) 및 통신 네트워크(108)를 포함한다.
로봇 장치(102a, 102b)는 적어도 하나의 센서를 갖고 본 명세서에 기술된 실시예에 따라 센서 데이터를 기록하도록 구성된 임의의 유형의 장치일 수 있다. 일부 경우에, 로봇 장치(102a, 102b)는 또한 환경 내에서의 이동을 용이하게 하는 운동 능력(예를 들어, 구동 시스템)을 포함할 수 있다.
도 1에 도시된 바와 같이, 로봇 장치(102a)는 통신 네트워크(108)를 통해 서버 장치(104) 및/또는 호스트 장치(106)로 데이터(110)를 전송하고 및/또는 그들로부터 데이터(112)를 수신할 수 있다. 예를 들어, 로봇 장치(102a)는 통신 네트워크(108)를 통해 센서 데이터의 로그를 서버 장치(104)에 전송할 수 있다. 부가적으로 또는 대안으로서, 로봇 장치(102a)는 서버 장치(104)로부터 기계 학습 모델 데이터를 수신할 수 있다. 이와 유사하게, 로봇 장치(102a)는 통신 네트워크(108)를 통해 센서 데이터의 로그를 호스트 장치(106)로 전송하고 및/또는 호스트 장치(106)로부터 기계 학습 모델 데이터를 수신할 수 있다. 또한, 일부 경우에, 로봇 장치(102a)는 통신 네트워크(108)를 통하는 것과 달리 직접 호스트 장치(106)로 데이터를 전송하고 및/또는 호스트 장치(106)로부터 데이터를 수신할 수 있다.
서버 장치(104)는 본 명세서에 기술된 컴퓨팅 장치 동작을 수행하도록 구성된 임의의 유형의 컴퓨팅 장치일 수 있다. 예를 들어, 서버 장치(104)는 원격 서버 장치를 포함할 수 있으며, "클라우드 기반" 장치로 지칭될 수 있다. 일부 예에서, 서버 장치(104)는 컴퓨팅 작업이 복수의 서버 장치 간에 분산되는 클라우드 기반 서버 클러스터를 포함할 수 있다. 서버 장치(104)는 통신 네트워크(108)를 통해 로봇 장치(102a)로 데이터(112)를 전송하고 그리고/또는 로봇 장치(102a)로부터 데이터(110)를 수신하도록 구성될 수 있다. 서버 장치(104)는 기계 학습 모델을 트레이닝하도록 구성된 기계 학습 서버 장치를 포함할 수 있다.
서버 장치(104)와 마찬가지로, 호스트 장치(106)는 본 명세서에 기술된 컴퓨팅 장치 동작을 수행하도록 구성된 임의의 유형의 컴퓨팅 장치일 수 있다. 그러나, 서버 장치(104)와 달리, 호스트 장치(106)는 로봇 장치(102a)와 동일한 환경(예를 들어, 동일한 건물 내)에 위치할 수 있다. 일례에서, 로봇 장치(102a)는 재충전, 데이터의 다운로드 및/또는 업로드를 위해 호스트 장치(106)와 도킹할 수 있다.
로봇 장치(102a)는 통신 네트워크(108)를 통해 서버 장치(104)와 통신하고 호스트 장치(106)와 통신할 수 있지만, 일부 예에서, 로봇 장치(102a)는 본 명세서에 설명된 컴퓨팅 장치 동작을 수행할 수 있다. 예를 들어, 로봇 장치(102a)는 본 명세서에 설명된 컴퓨팅 장치 동작을 수행하도록 구성된 내부 컴퓨팅 시스템을 포함할 수 있다.
일부 예에서, 로봇 장치(102a)는 무선 인터페이스를 통해 로봇 장치(102b)와 무선 통신할 수 있다. 예를 들어, 로봇 장치(102a) 및 로봇 장치(102b)는 모두 동일한 환경에서 동작할 수 있고, 때때로 환경에 관한 데이터를 공유할 수 있다.
통신 네트워크(108)는 근거리 통신망(LAN), 광역 네트워크(WAN), 기업 인트라넷, 공중 인터넷, 또는 장치들 간에 통신 경로를 제공하도록 구성된 임의의 다른 유형의 네트워크에 대응할 수 있다. 통신 네트워크(108)는 또한 하나 이상의 LAN, WAN, 회사 인트라넷 및/또는 공중 인터넷의 조합에 대응할 수 있다.
도 2는 예시적인 실시예에 따른 예시적인 로봇 장치(200)를 도시한다. 로봇 장치(200)는 본 명세서의 임의의 도면에 도시된 임의의 로봇 장치를 나타낼 수 있다. 도 2는 본 명세서에 설명된 실시예들에 따라 동작하도록 배열된 로봇 장치에 포함될 수 있는 일부 구성요소들을 도시한다.
도 2에 도시된 바와 같이, 로봇 장치(200)는 센서 시스템(202), 기계 시스템(204) 및 컴퓨팅 장치(206)를 포함한다. 도 2에서, 센서 시스템(202)은 깊이 카메라(208), 관성 측정 유닛(IMU)(210), 하나 이상의 모션 추적 카메라(212), 하나 이상의 레이더(214), 하나 이상의 마이크로폰 어레이(216), 하나 이상의 접촉 센서(218), 하나 이상의 근접 센서(220) 및 적재 화물(payload) 센서(222)와 같은 다수의 센서를 포함하는 것으로 도시되어 있다.
깊이 카메라(208)는 물체의 3 차원(3D) 특성과 같은 환경 내 물체의 깊이 관련 정보를 복원하도록 구성될 수 있다. 예를 들어, 깊이 카메라(208)는 투영된 적외선 패턴의 하나 이상의 이미지를 캡처하고, 그 이미지를 3D 데이터를 삼각 측량 및 추출하고 하나 이상의 RGBD 이미지를 출력하기 위해 다양한 알고리즘을 사용하는 프로세서에 제공하도록 구성된 RGB-적외선(RGB-IR) 카메라일 수 있다. 적외선 패턴은 깊이 카메라(208)와 통합된 프로젝터에 의해 투영될 수 있다. 대안으로서, 적외선 패턴은 깊이 카메라(208)와 분리된 프로젝터(도시되지 않음)에 의해 투영될 수도 있다.
IMU(210)는 로봇 장치의 속도 및/또는 방향을 판정하도록 구성될 수 있다. 일례에서, IMU는 3 축 자이로스코프, 3 축 가속도계, 3 축 나침반 및 모션 정보를 처리하기 위한 하나 이상의 프로세서를 포함할 수 있다.
모션 추적 카메라(212)는 이미지(예를 들어, RGB-IR 이미지)를 캡처하고 처리함으로써 물체의 움직임을 검출하고 추적하도록 구성될 수 있다. 몇몇 경우에, 모션 추적 카메라(212)는 저휘도 조명 조건에서 검출을 가능하게 하는 하나 이상의 IR 발광 다이오드(LED)를 포함할 수 있다. 모션 추적 카메라(212)는 180도 FOV와 같은 넓은 시야(FOV)를 포함할 수 있다. 일 예시적인 구성에서, 로봇 장치(200)는 로봇 장치(200)의 제 1 측면상의 이미지를 캡처하도록 구성된 제 1 모션 추적 카메라 및 로봇 장치(200)의 반대 측면상의 이미지를 캡처하도록 구성된 제 2 모션 추적 카메라를 포함할 수 있다.
레이더(214)는 환경 내 물체의 범위, 각도 또는 속도를 판정하기 위해 전자기파를 사용하는 물체 검출 시스템을 포함할 수 있다. 레이더(214)는 레이저 펄스를 환경으로 발사하고 반사된 펄스를 하나 이상의 센서로 측정함으로써 동작할 수 있다. 일례에서, 레이더(214)는 150도 FOV와 같은 넓은 FOV를 갖는 고체 밀리미터파 레이더를 포함할 수 있다.
마이크로폰 어레이(216)는 오디오 데이터를 기록하는 것과 같은 하나 이상의 기능을 수행하기 위해 함께 작동하는 다수의 마이크로폰을 포함할 수 있다. 일례에서, 마이크로폰 어레이(216)는 음향 소스 로컬라이제이션(localization)을 이용하여 사운드 소스를 위치시키도록 구성될 수 있다.
접촉 센서(218)는 로봇 장치(200)가 물체와 접촉할 때 신호를 제공하도록 구성될 수 있다. 예를 들어, 접촉 센서(218)는 접촉 센서(218)가 물체와 접촉할 때 신호를 제공하는, 로봇 장치(200)의 외부 표면상의 물리적 범프 센서일 수 있다.
근접 센서(220)는 로봇 장치(200)의 일정 범위 내의 물체의 존재를 검출하도록 구성될 수 있다. 예를 들어, 근접 센서(220)는 적외선 근접 센서를 포함할 수 있다. 일례에서, 로봇 장치(200)는 복수의 근접 센서를 포함할 수 있고, 각각의 근접 센서는 로봇 장치(200)의 상이한 측면(예를 들어, 앞, 뒤, 왼쪽, 오른쪽 등) 상의 물체를 검출하도록 배열된다.
적재 화물 센서(222)는 로봇 장치(200)에 의해 운반되는 적재 화물의 무게를 측정하도록 구성될 수 있다. 예를 들어, 적재 화물 센서(222)는 로봇 장치(200)의 플랫폼 또는 다른 표면에 가해지는 힘에 비례하는 전기 신호를 제공하도록 구성된 로드 셀(load cell)을 포함할 수 있다.
도 2에 더 도시된 바와 같이, 기계 시스템(204)은 구동 시스템(224) 및 액세서리 시스템(226)을 포함하는 것으로 도시되어 있다. 구동 시스템(224)은 로봇 장치(200)를 환경을 통해 이동하게(예를 들어, 바닥을 가로 질러 이동하게) 만들기 위해 제어될 수 있는 하나 이상의 모터, 휠 및 다른 구성요소를 포함할 수 있다. 일례에서, 구동 시스템(224)은 로봇 장치(200)를 임의의 방향으로 진행시키기 위해 제어될 수 있는 전방향(omnidirectional) 구동 시스템을 포함할 수 있다.
액세서리 시스템(226)은 액세서리 작업의 수행을 용이하게 하도록 구성된 하나 이상의 기계 구성요소를 포함할 수 있다. 일례로서, 액세서리 시스템(226)은 진공화를 용이하게 하도록 구성된 모터 및 팬을 포함할 수 있다. 예를 들어, 전기 모터는 흡입력을 생성하여 흡입구를 통해 먼지, 티끌 또는 다른 부스러기를 쉽게 모으기 위해 팬을 회전시킬 수 있다. 다른 예로서, 액세서리 시스템은 플랫폼 또는 구조물의 상면에 놓인 임의의 물체가 지면으로부터 들어 올려지도록, 로봇 장치(200)의 플랫폼 또는 다른 구조물을 수직으로 상승시키도록 구성된 하나 이상의 액추에이터를 포함할 수 있다. 일례에서, 리프트 시스템(226)은 약 10 킬로그램의 적재 화물을 들어올리도록 구성될 수 있다. 로봇 장치(200)에 대한 원하는 활동에 따라 다른 예가 또한 가능하다.
컴퓨팅 장치(206)는 센서 시스템(202) 및 기계 시스템(204)을 제어하도록 구성된 다양한 컴퓨팅 구성요소를 포함할 수 있다. 예를 들어, 컴퓨팅 장치(206)는 다양한 구성요소를 통합하는 시스템 온 칩(SOC)을 포함할 수 있다.
예로서, 도 3은 예시적인 컴퓨팅 장치(300)를 도시한다. 컴퓨팅 장치(300)는 본 명세서의 임의의 도면에 도시된 임의의 컴퓨팅 장치, 서버 장치 또는 호스트 장치를 나타낼 수 있다. 도 3은 본 명세서의 실시예에 따라 동작하도록 배열된 컴퓨팅 장치에 포함될 수 있는 기능적 구성요소 중 일부를 도시한다. 이 예에서, 컴퓨팅 장치(300)는 프로세서(302), 데이터 저장 장치(304), 통신 인터페이스(306) 및 입력/출력 기능(308)을 포함하며, 이들 모두는 시스템 버스(310) 또는 유사한 메커니즘에 의해 연결될 수 있다.
프로세서(302)는 하나 이상의 범용 프로세서 및/또는 하나 이상의 전용 프로세서(예를 들어, ASIC(application specific integrated circuit), DSP(digital signal processor), 네트워크 프로세서 등)와 같은 하나 이상의 CPU를 포함할 수 있다. 예를 들어, 프로세서(302)는 기계 학습 모델의 트레이닝 및/또는 추론을 위한 텐서 프로세싱 유닛(TPU: tensor processing unit)을 포함할 수 있다.
데이터 저장 장치(304)는 차례로 휘발성 및/또는 비 휘발성 데이터 저장 장치를 포함할 수 있고 프로세서(302)와 전체적으로 또는 부분적으로 통합될 수 있다. 데이터 저장 장치(304)는 프로세서(302)에 의해 실행 가능한 프로그램 명령어 및 본 명세서에 설명된 다양한 방법, 프로세스 또는 동작을 수행하기 위해 이들 명령어에 의해 조작될 수 있는 데이터를 보유할 수 있다. 대안으로서, 이들 방법, 프로세스 또는 동작은 하드웨어, 펌웨어 및/또는 하드웨어, 펌웨어 및 소프트웨어의 임의의 조합에 의해 형성될 수 있다. 예로서, 데이터 저장 장치(304) 내의 데이터는 본 명세서 또는 첨부 도면에 개시된 방법, 프로세스 또는 동작 중 임의의 것을 수행하기 위해 프로세서(302)에 의해 실행 가능한, 아마도 비일시적 컴퓨터 판독 가능 매체에 저장된, 프로그램 명령어를 포함할 수 있다.
통신 인터페이스(306)는 이더넷 연결과 같은 유선 연결의 형태를 취할 수 있다. 통신 인터페이스(306)는 IEEE 802.11(와이파이), 블루투스(BLUETOOTH®) 또는 광역 무선 연결과 같은 무선 연결의 형태를 취할 수도 있다. 그러나, 다른 형태의 물리 계층 연결 및 다른 유형의 표준 또는 독점 통신 프로토콜이 통신 인터페이스(306)를 통해 사용될 수 있다.
입/출력 기능(308)은 컴퓨팅 장치(300)와의 사용자 상호 작용을 용이하게 할 수 있다. 입/출력 기능(308)은 키보드, 마우스, 터치스크린, 마이크로폰 등과 같은 복수의 유형의 입력 장치를 포함할 수 있다. 이와 유사하게, 입/출력 기능(308)은 스크린, 모니터, 프린터 또는 하나 이상의 LED와 같은 복수의 유형의 출력 장치를 포함할 수 있다. 추가적으로 또는 대안으로서, 컴퓨팅 장치(300)는 통신 인터페이스(306)를 통해 또는 USB(Universal Serial Bus) 또는 HDMI(High-Definition Multimedia Interface) 포트와 같은 다른 인터페이스(미도시)를 통한 다른 장치로부터의 원격 액세스를 지원할 수 있다.
도 4는 충돌 검출을 위한 예시적인 방법(400)의 흐름도를 도시한다. 도 4에 도시된 방법(400)은, 예를 들어, 본 명세서의 임의의 도면에 도시된 임의의 컴퓨팅 장치와 같은 컴퓨팅 장치에 의해 수행될 수 있는 방법의 일 실시예를 제공한다. 본 명세서에 개시된 이러한 프로세스 및 방법과 다른 프로세스 및 방법에 대해, 흐름도는 본 실시예들의 하나의 가능한 구현예의 기능 및 동작을 보여준다는 것을 이해해야 한다. 대안의 구현예가 본 개시물의 예시적인 실시예의 범위 내에 포함되며, 그 기능들은 당업자들이 이해하는 바와 같이, 포함된 기능에 따라, 실질적으로 동시에 또는 역순을 포함하여, 도시되거나 서술된 순서와 다르게 실행될 수 있다.
블록(402)에서, 방법(400)은 이전 시간 기간 동안의 환경을 나타내는 센서 데이터의 로그를 획득하는 단계를 포함하며, 여기서 센서 데이터의 로그는 이미지 프레임 시퀀스를 포함한다. 예를 들어, 환경은 집과 같은 건물의 내부일 수 있고, 이미지 프레임은 RGBD 이미지 프레임일 수 있다.
일부 예에서, 센서 데이터의 로그는 로봇 장치에 의해 캡처된 센서 데이터를 포함할 수 있다. 예를 들어, 센서 데이터의 로그는 로봇 장치의 하나 또는 복수의 카메라에 의해 캡처된 이미지를 포함할 수 있다. 또한, 센서 데이터의 로그는 로봇 장치의 다른 센서, 예를 들어, IMU, 마이크로폰 어레이, 접촉 센서, 적재 화물 센서 또는 근접 센서에 의해 캡처된 센서 데이터를 포함할 수 있다. 몇몇 경우에, 로봇 장치는 센서 데이터를 기록하고 방법(400)의 일부를 수행하는 다른 컴퓨팅 장치에 센서 데이터의 로그를 제공할 수 있다. 다른 예에서, 로봇 장치는 로봇 장치의 센서를 사용하여 센서 데이터의 로그를 획득하고 센서 데이터의 로그를 데이터 버퍼에 저장할 수 있다. 이러한 구성을 통해, 새로운 센서 데이터가 획득된 때, 로봇 장치는 데이터 버퍼 내의 오래된 센서 데이터를 새로운 센서 데이터로 교체할 수 있다. 예를 들어, 데이터 버퍼는 연속적으로 또는 이전 30 초 동안 로봇 장치에 의해 획득된 센서 데이터를 데이터 버퍼가 저장하도록 주기적으로 업데이트될 수 있다.
일부 예에서, 센서 데이터의 로그는 스마트 폰, 태블릿, 웨어러블 컴퓨팅 장치, 핸드헬드 카메라 컴퓨팅 장치 등과 같은 모바일 컴퓨팅 장치에 의해 캡처된 이미지를 포함할 수 있다. 또한, 센서 데이터의 로그는 IMU 또는 마이크로폰 어레이와 같은 모바일 컴퓨팅 장치의 다른 센서로부터 캡처된 센서 데이터를 포함할 수 있다. 몇몇 경우에, 모바일 컴퓨팅 장치는 센서 데이터를 기록하고 센서 데이터의 로그를 방법(400)의 일부를 수행하는 다른 컴퓨팅 장치에 제공할 수 있다. 다른 경우에, 모바일 컴퓨팅 장치는 모바일 장치의 센서를 사용하여 센서 데이터의 로그를 획득하고 방법(400)의 다른 기능을 수행할 수도 있다.
블록(404)에서, 방법(400)은 센서 데이터의 로그를 사용하여 센서 데이터의 로그가 이전 시간 기간 내의 특정 시간에 환경 내 물리적 물체 관련 충돌과 관련 있는지 판정하는 단계를 포함한다. 물리적 물체는 다양한 형태를 취할 수 있다. 예를 들어, 물리적 물체는 공, 애완 동물 또는 사람일 수 있다. 또는, 물리적 물체는 로봇 장치에 의해 운반되는(예를 들어, 옮겨지는) 물품일 수 있다. 다른 예로서, 물리적 물체는 벽, 바닥 또는 가구일 수 있다.
일례에서, 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 것은 충돌이 물리적 물체와 로봇 장치 간의 물리적 충돌인지 판정하는 것을 포함할 수 있다. 이러한 판정은 다양한 방식으로 이루어질 수 있다. 예를 들어, 컴퓨팅 장치는 이전 시간 기간의 적어도 일부 동안 가속도계 데이터를 획득할 수 있고, 컴퓨팅 장치는 가속도계 데이터가 특정 시간에 물리적 물체와 로봇 장치 간의 충돌을 나타내는지 판정할 수 있다. 예를 들어, 임계 값을 초과하는 가속도의 크기는 물리적 충돌로 인한 급격한 속도 변화를 나타낼 수 있으며, 컴퓨팅 장치는 특정 시간에 그러한 크기를 검출하기 위해 가속도계 데이터를 분석할 수 있다. 로봇 장치와 물리적 물체 사이의 물리적 충돌의 한 예는 로봇 장치가 난간 위로 또는 밖으로 떨어짐으로 인한 로봇 장치와 바닥 간의 물리적 충돌이다.
대안으로서, 충돌이 물리적 물체와 로봇 장치 간의 물리적 충돌인지 판정하는 것은 이전 시간 기간의 적어도 일부 동안 접촉 센서 데이터를 획득하고 접촉 센서 데이터가 물리적 물체와 로봇 장치 간의 충돌을 나타내는지 판정하는 것을 포함할 수 있다. 예를 들어, 접촉 센서는 접촉 센서가 다른 물체와 접촉할 때 신호를 출력할 수 있고, 컴퓨팅 장치는 그러한 신호를 인식할 수 있다. 일례에서, 접촉 센서는 로봇 장치가 벽에 부딪칠 때 신호를 출력할 수 있다.
일부 경우에, 충돌이 물리적 물체와 로봇 장치 간의 물리적 충돌인지 판정하는 것은 로봇 장치에 의해 운반 또는 이송되는 물체가 떨어지거나 낙하하였는지 판정하는 것을 포함할 수 있다. 예를 들어, 센서 데이터의 로그는 로봇 장치의 적재 화물(예를 들어, 적재 화물의 무게)를 나타내는 적재 화물 데이터를 포함할 수 있고, 컴퓨팅 장치는 적재 화물의 예상치 못한 감소를 검출할 수 있다. 적재 화물은 로봇 장치가 물리적 물체와 충돌하거나 넘어지면 급격하게 줄어들 수 있다. 따라서, 컴퓨팅 장치는 이러한 감소를 가능한 충돌의 표시로 해석할 수 있다.
다른 예에서, 충돌은 가상 충돌일 수 있다. 예로서, 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 것은 충돌이 물리적 물체와 로봇 장치를 둘러싸는 가상 경계 간의 가상 충돌 또는 물리적 물체를 둘러싸고 있는 가상 경계와 로봇 장치 간의 가상 충돌인지 판정하는 것을 포함할 수 있다. 이러한 판정은 또한 다양한 방식으로 이루어질 수 있다. 예를 들어, 컴퓨팅 장치는 이전 시간 기간의 적어도 일부 동안 근접 센서 데이터를 획득할 수 있고, 컴퓨팅 장치는 근접 센서 데이터가 물리적 물체와 로봇 장치 사이의 거리가 임계 거리 초과에서 임계 거리 미만으로 전환되고 있음을 나타내는지 판정할 수 있다. 임계 거리는 가상 경계의 거리와 동일할 수 있다.
이와 유사하게, 일부 예에서, 충돌은 환경의 뷰 상에서 중첩되는 증강 현실 그래픽 형태의 소프트웨어 로봇과 물리적 물체 간의 가상 충돌일 수 있다. 컴퓨팅 장치는 깊이 이미지로부터의 깊이 정보를 처리함으로써 이러한 충돌을 검출할 수 있다. 예를 들어, 센서 데이터의 로그의 이미지 프레임 시퀀스는 물리적 물체까지의 거리를 나타내는 깊이 정보를 포함할 수 있고, 컴퓨팅 장치는 이러한 깊이 정보에 기초하여 (i) 물리적 물체가 제 1 위치에서 제 2 위치로 이동하고, 그리고 (ii) 제 2 위치가 증강 현실 그래픽의 위치와 중첩하는지 판정할 수 있다. 모바일 컴퓨팅 장치(예를 들어, 스마트 폰 또는 태블릿) 또는 웨어러블 컴퓨팅 장치(예를 들어, 헤드 마운트 디스플레이)와 같은 임의의 컴퓨팅 장치는 증강 현실 그래픽을 생성하고 이러한 충돌을 검출할 수 있다.
이와 마찬가지로, 충돌은 시뮬레이션 동안 렌더링되는 증강 현실 그래픽 형태의 소프트웨어 로봇과 물리적 물체 간의 가상 충돌일 수 있다. 예를 들어, 컴퓨팅 장치는 센서 데이터의 로그를 사용하여 환경을 통해 이동하는 소프트웨어 로봇의 시뮬레이션을 생성할 수 있다. 이 시뮬레이션에서, 소프트웨어 로봇은 센서 데이터의 로그를 캡처했던 로봇 장치에 의해 취해진 경로와 동일한 경로 또는 상이한 경로를 취할 수 있다. 소프트웨어 로봇이 상이한 경로를 취한다면, 이 상이한 경로는 환경에서의 소프트웨어 로봇과 물리적 물체 간의 가상 충돌을 포함할 수 있고, 컴퓨팅 장치는 가상 충돌을 검출할 수 있다.
블록(406)에서, 방법(400)은 센서 데이터의 로그가 충돌과 관련 있다는 판정에 응답하여, 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성하는 단계를 포함한다. 트레이닝 데이터 세트는 특정 시간에 대응하는 이미지 프레임 시퀀스 내 이미지 프레임보다 이전의 이미지 프레임 시퀀스의 복수의 이미지 프레임을 포함할 수 있다. 일례로서, 트레이닝 데이터 세트는 특정 시간에 대응하는 이미지 프레임까지 이어지는 5 개의 가장 최근의 이미지 프레임을 포함할 수 있고, 그로 인해 트레이닝 데이터 세트는 충돌까지 이어지는 물리적 물체의 움직임을 묘사한다. 예를 들어, 복수의 이미지 프레임들은 하나 이상의 픽셀에 대한 깊이 데이터를 포함할 수 있고, 그로 인해 트레이닝 데이터 세트는 충돌 이전의 물리적 물체의 임의의 움직임을 나타내는 깊이 데이터를 포함한다.
일부 경우에, 트레이닝 데이터 세트는 또한 다른 형태의 센서 데이터를 포함할 수 있다. 일반적으로, 센서 데이터의 로그가 복수의 센서로부터의 데이터를 포함하는 경우, 복수의 센서로부터의 임의의 데이터는 트레이닝 데이터 세트에 패키징될 수 있다. 예를 들어, 센서 데이터의 로그가 적재 화물 데이터를 포함하는 경우, 트레이닝 데이터 세트를 생성하는 단계는 적재 화물 데이터를 더 포함하도록 트레이닝 데이터 세트를 생성하는 단계를 포함할 수 있다. 이와 마찬가지로, 센서 데이터의 로그가 로봇 장치에 대한 속도 데이터를 포함하는 경우, 트레이닝 데이터 세트를 생성하는 단계는 속도 데이터를 더 포함하도록 트레이닝 데이터 세트를 생성하는 단계를 포함할 수 있다. 다른 예로서, 센서 데이터의 로그는 방의 유형(예를 들어, 거실, 부엌, 침실 등)을 식별하는 방 정보를 포함할 수 있고, 트레이닝 데이터 세트를 생성하는 단계는 방 정보를 더 포함하도록 트레이닝 데이터 세트를 생성하는 단계를 포함할 수 있다.
유리하게는, 방법(400)을 사용하여 생성된 트레이닝 데이터 세트는 충돌 추정을 위한 기계 학습 모델을 트레이닝하는데 사용될 수 있다. 일부 경우에, 방법(400)을 수행하는 컴퓨팅 장치는 방법(400)을 사용하여 생성되거나 다른 기술을 사용하여 생성된 트레이닝 데이터 세트 및 가능한 다른 트레이닝 데이터 세트를 사용하여 기계 학습 모델을 트레이닝시킬 수 있다. 예를 들어, 로봇 장치의 컴퓨팅 장치는 방법(400)을 여러 번 수행할 수 있고, 그 다음 생성된 트레이닝 데이터 세트를 사용하여 기계 학습 모델을 트레이닝시킬 수 있다. 다른 경우에, 방법(400)을 수행하는 컴퓨팅 장치는 생성된 트레이닝 데이터 세트를 다른 컴퓨팅 장치로 전송할 수 있고, 그 다음 기계 학습 모델을 트레이닝할 수 있다. 예를 들어, 방법(400)을 수행하는 컴퓨팅 장치는 생성된 트레이닝 데이터 세트를 나타내는 적어도 하나의 파일을 기계 학습 서버에 전송할 수 있고, 기계 학습 서버는 트레이닝을 수행할 수 있다.
도 5는 예시적인 실시예에 따른, 환경 내 물리적 물체 관련 충돌의 개념도이다. 도 5에 도시된 바와 같이, 로봇 장치(500)는 거실에서 작동할 수 있다. 예를 들어, 로봇 장치(500)는 거실의 바닥을 가로 질러 진행할 수 있다. 바닥을 가로 질러 진행하는 동안, 로봇 장치(500)는 환경을 나타내는 센서 데이터를 획득할 수 있다. 예를 들어, 로봇 장치(500)는 이미지 프레임 시퀀스를 캡처하고 IMU 데이터를 기록할 수 있다.
도 5에 더 도시된 바와 같이, 로봇 장치(500)는 의도하지 않게 고양이(502)와 부딪칠 수 있다. 로봇 장치(500)의 컴퓨팅 장치는 로봇 장치(500)가 고양이(502)에 부딪쳤음을 검출하고, 그에 응답하여 트레이닝 데이터 세트의 생성을 트리거할 수 있다. 예로서, 컴퓨팅 장치는 고양이(502)와 부딪치기 전에 로봇 장치(500)에 의해 획득된 센서 데이터의 일부를 트레이닝 데이터 세트로서 함께 패키징할 수 있다. 한 경우에, 트레이닝 데이터 세트는 로봇 장치(500)와 충돌하기 전에 고양이(502)의 움직임을 묘사하는 RGBD 이미지 프레임 시퀀스를 포함할 수 있다.
도 6은 예시적인 실시예에 따른, 환경에서 물리적 물체 관련 충돌의 다른 개념도이다. 도 6에 도시된 바와 같이, 컴퓨팅 장치(600)는 거실의 뷰를 캡처하고 디스플레이할 수 있다. 또한, 컴퓨팅 장치(600)는 거실의 뷰 상에 증강 현실 그래픽(602)을 중첩시킬 수 있다. 예를 들어, 증강 현실 그래픽(602)은 거실의 가상 표현 내에서 돌아다니는 애니메이션 캐릭터일 수 있다.
도 6에 더 도시된 바와 같이, 증강 현실 그래픽(602)은 거실의 가상 표현 내의 특정 위치에 위치된다. 컴퓨팅 장치(600)는 거실 내 물체의 움직임을 검출 및 추적할 수 있다. 예를 들어, 컴퓨팅 장치(600)는 물체, 즉, 개(604)가 거실을 가로 질러 움직이는 것을 검출할 수 있다. 또한, 컴퓨팅 장치(600)는 거실의 가상 표현 내에서 개(604)의 3D 위치를 판정할 수 있다. 예를 들어, 컴퓨팅 장치(600)는 깊이 카메라를 사용하여 RGBD 이미지 프레임을 획득하고 RGBD 이미지 프레임을 처리함으로써 개(604)의 3D 위치를 판정할 수 있다.
또한, 컴퓨팅 장치(600)는 개(604)가 증강 현실 그래픽(602)의 위치와 중첩하지 않는 제 1 위치로부터 증강 현실 그래픽(602)의 위치와 중첩하는 제 2 위치로 이동하였는지 판정할 수 있다. 일례에서, 컴퓨팅 장치(600)는 환경의 가상 표현 내에서의 개(604)의 3D 위치를 환경의 가상 표현 내의 증강 현실 그래픽(602)의 3D 위치와 비교함으로써 개(604)의 제 2 위치가 증강 현실 그래픽(602)의 위치와 중첩하는지 판정할 수 있다. 예를 들어, 컴퓨팅 장치(600)는 개(604)의 중심과 증강 현실 그래픽(602)의 중심 사이의 2D 또는 3D 거리를 판정할 수 있고, 판정된 거리가 임계 값보다 작다는 것을 기초로 개(604)의 3D 위치가 증강 현실 그래픽(602)의 3D 위치와 중첩한다고 판정할 수 있다.
증강 현실 그래픽(602)의 위치와 중첩하지 않는 위치로부터 증강 현실 그래픽(602)의 위치와 중첩하는 위치로의 개(604)의 움직임을 검출한 것에 응답하여, 컴퓨팅 장치(600)는 트레이닝 데이터 세트의 생성을 트리거할 수 있다. 예로서, 컴퓨팅 장치(600)는 제 1 위치에서 제 2 위치로의 개(604)의 움직임을 묘사하는 하나 이상의 RGBD 이미지 프레임을 트레이닝 데이터 세트로서 함께 패키징시킬 수 있다.
증강 현실 그래픽(602)과 개(604) 사이의 충돌을 검출하기 위한 다른 기술이 또한 가능하다. 예를 들어, 게임에서 일부 게임 엔진은 장면 내의 기지의 물체에 대한 충돌 검출을 제공하는 콜라이더(collider)를 갖는다. 콜라이더는 장면 내 물체에 대한 바디(예컨대, 경계 구, 메시 또는 캐치올(catch-all) 3D 바디)를 할당한다. 제 1 물체의 바디가 제 2 물체의 바디와 접촉하면, 콜라이더는 충돌 이벤트를 생성한다.
콜라이더(collider)가 증강 현실 장면 내에서 기능하게 하기 위해, 컴퓨팅 장치는 현실 세계 물체의 위치, 크기 및 포즈를 추정할 수 있고, 그로 인해 현실 세계 물체는 증강 현실 그래픽과 함께 환경의 3D 표현 내에 적절한 바디로 표현될 수 있다. 컴퓨팅 장치는 다양한 수준의 세부사항을 사용하여 현실 세계 물체의 위치, 크기 및 자세를 추정할 수 있다. 일례로서, 컴퓨팅 장치는 깊이 카메라를 통해 판정된 물체의 표면상의 포인트들을 사용하여 물체의 바디를 형성할 수 있다. 다른 예로서, 컴퓨팅 장치는 장면 내의 하나 이상의 물체에 대한 경계 박스를 추정할 수 있다. 경계 박스는 2D 또는 3D 일 수 있다. 또 다른 예로서, 컴퓨팅 장치는 물체의 3D 형상을 추정할 수 있다. 예를 들어, 컴퓨팅 장치는 데이터베이스를 질의하여 물체의 3D 모델을 판정하거나 기계 학습을 사용하여 물체의 3D 모델을 추정할 수 있다.
앞서 논의한 바와 같이, 도 4의 방법(400)을 사용하여 생성된 트레이닝 데이터 세트 및/또는 다른 기술을 사용하여 생성된 트레이닝 데이터 세트는 충돌 추정을 위한 기계 학습 모델을 트레이닝시키는데 사용될 수 있다. 물리적 물체의 움직임과 관련된 데이터를 포함하는 트레이닝 데이터 세트에 대한 기계 학습 모델을 트레이닝시키는 것은 입력 센서 데이터를 물체 궤도 또는 속도에 매핑하는 트레이닝 데이터 세트에서 패턴들을 찾는 것을 포함할 수 있다. 기계 학습 모델이 트레이닝된 후, 컴퓨팅 장치는 이 기계 학습 모델을 사용하여 물리적 물체에 대응하는 입력 데이터에 기초하여 물리적 물체가 어떻게 이동할 것인지 예측할 수 있다.
도 7은 충돌 추정을 위한 예시적인 방법(700)의 흐름도를 도시한다. 도 7에 도시된 방법(700)은, 예를 들어, 본 명세서의 임의의 도면에 도시된 임의의 컴퓨팅 장치와 같은 컴퓨팅 장치에 의해 수행될 수 있는 방법의 실시예를 제공한다.
블록(702)에서, 방법(700)은 이전 시간 기간 동안의 환경 내 물리적 물체를 나타내는 센서 데이터를 획득하는 단계를 포함한다. 일례에서, 센서 데이터는 이미지 프레임 시퀀스를 포함할 수 있다. 예를 들어, 센서 데이터는 물리적 물체의 움직임을 묘사하는 RGBD 이미지 프레임 시퀀스를 포함할 수 있다. 센서 데이터는 또한 방 유형 또는 일중 시간과 같은 상황 데이터를 포함할 수 있다.
블록(704)에서, 방법(700)은 기계 학습 모델 및 센서 데이터를 사용하여 후속 시간 기간 동안의 물리적 물체의 추정 궤도를 판정하는 단계를 포함한다. 예를 들어, 컴퓨팅 장치는 센서 데이터를 기계 학습 모델에 대한 입력으로서 제공하고, 물리적 물체의 추정 궤도를 출력으로서 수신할 수 있다. 추정 궤도는 시간에 따른 물리적 물체의 추정된 위치를 포함할 수 있다. 일부 경우에, 컴퓨팅 장치는 물리적 물체에 대응하는 정보를 도출하고, 도출된 정보를 입력으로서 기계 학습 모델에 제공할 수 있다. 예로서, 컴퓨팅 장치는 이동하는 물체의 높이, 깊이 및 속도와 같은 물리적 물체의 치수들을 판정하고 기계 학습 모델에 대한 입력으로서 치수 및 속도를 제공할 수 있다. 일부 경우에, 방의 유형 또는 일중 시간과 같은 상황 데이터가 기계 학습 모델에 대한 입력으로서 제공될 수 있다.
블록(706)에서, 방법(700)은 물리적 물체의 추정 궤도가 잠재적 충돌을 나타내는지 판정하는 단계를 포함한다. 일례에서, 물리적 물체의 추정 궤도가 잠재적 충돌을 나타내는지 판정하는 것은 물리적 물체의 추정 궤도를 로봇 장치 또는 소프트웨어 로봇과 같은 로봇의 추정 궤도와 비교하는 것을 포함할 수 있고, 물리적 물체의 추정 궤도가 로봇의 추정 궤도와 교차하는지 판정하는 것을 포함할 수 있다. 예를 들어, 컴퓨팅 장치는 물리적 물체가 물리적 물체의 추정 궤도를 따라 이동하고 로봇이 로봇의 추정 궤도에 따라 이동하면 물리적 물체와 로봇이 충돌할 수 있다고 판정할 수 있다.
블록(708)에서, 방법(700)은 잠재적 충돌을 회피하기 위한 조치를 수행하는 단계를 포함한다. 예를 들어, 블록(706)에서의 잠재적 충돌은 물리적 물체와 로봇 장치 사이의 잠재적 충돌일 수 있고, 조치를 수행하는 것은 로봇 장치의 구동 시스템에 커맨드를 제공하는 것(예를 들어, 정지, 리버스, 또는 물리적 물체와의 충돌을 회피하기 위한 특정 궤도를 따르도록 하는 커맨드를 제공하는 것)을 포함할 수 있다. 다른 예로서, 블록(706)에서의 잠재적 충돌은 환경의 뷰 상에 렌더링되는 증강 현실 그래픽 형태의 소프트웨어 로봇과 물리적 물체 간의 잠재적 충돌일 수 있고, 조치를 수행하는 것은 증강 현실 그래픽의 위치를 조정하는 것(예를 들어, 증강 현실 그래픽을 새로운 위치로 이동시키는 것 또는 증강 현실 그래픽이 잠깐 경로를 벗어나게 하는 것)을 포함할 수 있다.
유리하게는, 방법(700)을 사용하여, 컴퓨팅 장치는 잠재적 충돌을 검출하고 잠재적 충돌을 회피하기 위한 조치를 취할 수 있다. 예를 들어, 로봇 장치의 컴퓨팅 장치는 로봇 장치에 의해 획득된 센서 데이터를 처리하고 잠재적 충돌을 회피하기 위해 로봇 장치가 조치를 취하게 만들 수 있다.
도 8은 예시적인 실시예에 따른 충돌 추정 및 회피의 개념도이다. 도 8에 도시된 바와 같이, 물리적 물체, 즉, 개(802)는 건물의 방에서 이동하고 있을 수 있다. 로봇 장치(804)가 방을 가로 질러 이동하는 동안, 로봇 장치(804)의 컴퓨팅 장치는 개(802)를 나타내는 센서 데이터를 획득할 수 있다. 예를 들어, 컴퓨팅 장치는 개(802)의 움직임을 묘사하는 하나 이상의 이미지 프레임을 포함하는 센서 데이터를 획득할 수 있다.
그 다음, 컴퓨팅 장치는 기계 학습 모델을 사용하여 개(802)의 추정 궤도를 판정할 수 있다. 도 8에 도시된 바와 같이, 개(802)의 추정 궤도는 1 초의 개(802)의 추정 위치, 2 초의 개(802)의 추정 위치 등을 포함할 수 있다.
또한, 컴퓨팅 장치는 개(802)의 추정 궤도를 로봇 장치(804)의 추정 궤도와 비교할 수 있고 약 2 초 내에 로봇 장치가 개(802)와 충돌할 수 있다고 판정할 수 있다. 이러한 판정에 응답하여, 컴퓨팅 장치는 로봇 장치(804)가 위치(806)에서 정지하게 하여, 로봇 장치(804)가 의도치 않게 개(802)와 충돌하는 것을 회피할 수 있다. 대안으로서, 컴퓨팅 장치는 로봇 장치(804)가 위치(806)에서 정지하게 한 후 방향을 반전시키거나 변경하게 할 수 있다(도시되지 않음).
다른 예에서, 도 4의 방법(400)을 사용하여 생성된 트레이닝 데이터 세트 및/또는 다른 기술을 사용하여 생성된 트레이닝 데이터 세트는 로봇 장치가 넘어질 것인지 예측하기 위해 기계 학습 모델을 트레이닝시키는 데 사용될 수 있다. 예를 들어, 컴퓨팅 장치는 로봇 장치에 대한 궤도를 나타내는 데이터를 수신하고, 넘어지는 로봇 장치 관련 데이터 세트에 대해 트레이닝된 기계 학습 모델에 데이터를 제공할 수 있다. 컴퓨팅 장치는 이러한 기계 학습 모델을 사용하여 로봇 장치의 궤도가 잠재적 충돌(예를 들어, 로봇 장치가 넘어지는 것)을 나타내는지 판정할 수 있다. 그리고 그 판정에 응답하여, 컴퓨팅 장치는 잠재적 충돌을 회피하기 위한 조치를 수행할 수 있다. 예를 들어, 컴퓨팅 장치는 경보를 제공하거나 로봇 장치의 궤도를 변경할 수 있다.
각각의 유리한 방식의 설명은 예시 및 설명의 목적으로 제시되었으며, 빠짐없이 철저히 기재하거나 개시된 형태의 예로 제한되도록 의도된 것은 아니다. 전술한 개시를 검토하고 이해한 후, 많은 수정 및 변형이 당업자에게 명백할 것이다. 또한, 각각의 예들은 다른 예와 비교하여 각각의 장점을 제공할 수 있다. 선택된 예 또는 예들은 원리, 실제 응용을 가장 잘 설명하고 당업자들이 고려된 특정 용도에 적합한 다양한 변형을 갖는 다양한 예에 대하여 개시물을 이해할 수 있도록 선택되고 설명된다.

Claims (20)

  1. 컴퓨터 구현 방법으로서,
    컴퓨팅 장치에 의해, 이전 시간 기간 동안의 환경을 나타내는 센서 데이터의 로그를 획득하는 단계로서, 상기 센서 데이터의 로그는 이미지 프레임 시퀀스를 포함하는 것인, 상기 센서 데이터의 로그를 획득하는 단계;
    상기 컴퓨팅 장치에 의해, 상기 센서 데이터의 로그가 상기 이전 시간 기간 내의 특정 시간에 상기 환경 내 물리적 물체 관련 충돌과 관련 있는지 판정하는 단계; 및
    상기 센서 데이터의 로그가 충돌과 관련 있다는 판정에 응답하여, 상기 컴퓨팅 장치에 의해, 상기 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성하는 단계를 포함하고,
    상기 충돌에 대한 트레이닝 데이터 세트는 상기 특정 시간에 대응하는 상기 이미지 프레임 시퀀스 내 이미지 프레임 보다 이전의 상기 이미지 프레임 시퀀스의 복수의 이미지 프레임을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제 1 항에 있어서, 상기 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 단계는 충돌이 상기 물리적 물체와 로봇 장치 간의 물리적 충돌인지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제 2 항에 있어서, 상기 이전 시간 기간의 적어도 일부 동안의 가속도계 데이터를 획득하는 단계를 더 포함하고,
    상기 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 단계는 상기 가속도계 데이터가 상기 물리적 물체와 상기 로봇 장치 간의 충돌을 나타내는지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제 2 항에 있어서, 상기 이전 시간 기간의 적어도 일부 동안의 접촉 센서 데이터를 획득하는 단계를 더 포함하고, 상기 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 단계는 상기 접촉 센서 데이터가 상기 물리적 물체와 상기 로봇 장치 간의 충돌을 나타내는지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제 2 항에 있어서, 상기 컴퓨팅 장치는 상기 로봇 장치의 컴퓨팅 장치인 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제 2 항에 있어서, 상기 센서 데이터의 로그는 상기 이전 시간 기간 동안의 상기 환경 내에서의 상기 로봇 장치의 움직임을 나타내는 속도 데이터의 로그를 더 포함하고, 상기 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성하는 단계는 상기 속도 데이터의 로그의 적어도 일부를 더 포함하도록 상기 트레이닝 데이터 세트를 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 제 2 항에 있어서, 상기 센서 데이터의 로그는 상기 로봇 장치의 적재 화물을 나타내는 적재 화물 데이터를 더 포함하고, 상기 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 단계는 상기 적재 화물 데이터가 상기 물리적 물체와 상기 로봇 장치 간의 충돌을 나타내는지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 제 1 항에 있어서, 상기 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 단계는 충돌이 상기 물리적 물체와 로봇 장치를 둘러싼 가상 경계 간의 가상 충돌 또는 상기 물리적 물체를 둘러싼 가상 경계와 상기 로봇 장치 간의 가상 충돌인지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제 8 항에 있어서, 상기 이전 시간 기간의 적어도 일부 동안의 근접 센서 데이터를 획득하는 단계를 더 포함하고, 상기 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 단계는 상기 근접 센서 데이터가 상기 물리적 물체와 상기 로봇 장치 간의 거리가 임계 거리 초과에서 상기 임계 거리 미만으로 전환됨을 나타내는지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제 1 항에 있어서, 상기 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 단계는 충돌이 증강 현실 그래픽의 형태인 소프트웨어 로봇과 상기 물리적 물체 간의 가상 충돌인지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제 10 항에 있어서, 상기 이미지 프레임 시퀀스 중 적어도 2 개의 이미지는 상기 물리적 물체까지의 거리를 나타내는 깊이 정보를 포함하고, 상기 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 단계는, 상기 깊이 정보에 기초하여, 상기 물리적 물체가 제 1 위치에서 제 2 위치로 이동하였고 상기 제 2 위치가 상기 증강 현실 그래픽의 위치와 중첩하는지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제 1 항에 있어서, 상기 복수의 이미지 프레임은 하나 이상의 픽셀에 대한 깊이 데이터를 포함하고, 상기 깊이 데이터는 충돌 이전의 상기 물리적 물체의 움직임을 나타내는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 제 1 항에 있어서, 상기 환경은 방을 포함하고, 상기 센서 데이터의 로그는 상기 방의 유형을 나타내는 방 정보를 더 포함하고, 상기 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성하는 단계는 상기 방 정보를 더 포함하도록 상기 트레이닝 데이터 세트를 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 제 1 항에 있어서, 상기 충돌에 대한 트레이닝 데이터 세트를 나타내는 적어도 하나의 파일을 기계 학습 서버 장치에 전송하는 단계를 더 포함하고, 상기 기계 학습 서버 장치는 상기 트레이닝 데이터 세트를 사용하여 기계 학습 모델을 트레이닝하도록 구성된 것을 특징으로 하는 컴퓨터 구현 방법.
  15. 제 1 항에 있어서, 상기 컴퓨팅 장치에 의해, 상기 트레이닝 데이터 세트를 사용하여 기계 학습 모델을 트레이닝하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  16. 제 1 항에 있어서,
    상기 환경을 나타내는 추가 센서 데이터를 수신하는 단계; 및
    기계 학습 모델을 사용하여, 상기 컴퓨팅 장치에 의해, 상기 추가 센서 데이터가 상기 환경 내의 미래의 잠재적 충돌을 나타내는지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  17. 컴퓨팅 장치로서,
    적어도 하나의 프로세서;
    메모리; 및
    상기 적어도 하나의 프로세서에 의해 실행될 때 상기 컴퓨팅 장치로 하여금 동작들을 수행하게 하는, 상기 메모리에 저장된, 프로그램 명령어를 포함하고, 상기 동작은:
    이전 시간 기간 동안의 환경을 나타내는 센서 데이터의 로그를 획득하는 단계로서, 상기 센서 데이터의 로그는 이미지 프레임 시퀀스를 포함하는 것인, 상기 센서 데이터의 로그를 획득하는 단계,
    상기 센서 데이터의 로그가 상기 이전 시간 기간 내의 특정 시간에 상기 환경 내의 물리적 물체 관련 충돌과 관련 있는지 판정하는 단계, 및
    상기 센서 데이터의 로그가 충돌과 관련 있다는 판정에 응답하여, 상기 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성하는 단계를 포함하고, 상기 충돌에 대한 트레이닝 데이터 세트는 상기 특정 시간에 대응하는 상기 이미지 프레임 시퀀스 내 이미지 프레임 보다 이전의 상기 이미지 프레임 시퀀스의 복수의 이미지 프레임을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  18. 제 17 항에 있어서, 상기 센서 데이터의 로그가 충돌과 관련 있는지 판정하는 단계는 충돌이 상기 물리적 물체와 로봇 장치 간의 물리적 충돌인지 판정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 장치.
  19. 제 18 항에 있어서, 상기 컴퓨팅 장치는 상기 로봇 장치의 컴퓨팅 장치인 것을 특징으로 하는 컴퓨터 장치.
  20. 컴퓨팅 장치에 의해 실행될 때 상기 컴퓨팅 장치로 하여금 기능들을 수행하게 하는 명령어를 내부에 저장하고 있는 비일시적 컴퓨터 판독 가능 매체로서,
    상기 기능들은:
    컴퓨팅 장치에 의해, 이전 시간 기간 동안의 환경을 나타내는 센서 데이터의 로그를 획득하는 단계로서, 상기 센서 데이터의 로그는 이미지 프레임 시퀀스를 포함하는 것인, 상기 센서 데이터의 로그를 획득하는 단계,
    상기 센서 데이터의 로그가 상기 이전 시간 기간 내의 특정 시간에 상기 환경 내에서의 물리적 물체 관련 충돌과 관련 있는지 판정하는 단계, 및
    상기 센서 데이터의 로그가 충돌과 관련 있다는 판정에 응답하여, 상기 센서 데이터의 로그로부터 충돌에 대한 트레이닝 데이터 세트를 생성하는 단계를 포함하고, 상기 충돌에 대한 트레이닝 데이터 세트는 상기 특정 시간에 대응하는 상기 이미지 프레임 시퀀스 내 이미지 프레임보다 이전의 상기 이미지 프레임 시퀀스의 복수의 이미지 프레임을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독 가능 매체.
KR1020207009829A 2017-09-08 2018-09-07 충돌 검출, 추정 및 회피 KR102235003B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/699,444 2017-09-08
US15/699,444 US10384346B2 (en) 2017-09-08 2017-09-08 Collision detection, estimation, and avoidance
PCT/IB2018/056851 WO2019049082A1 (en) 2017-09-08 2018-09-07 DETECTION, ESTIMATION AND AVOIDANCE OF COLLISION

Publications (2)

Publication Number Publication Date
KR20200041384A true KR20200041384A (ko) 2020-04-21
KR102235003B1 KR102235003B1 (ko) 2021-04-02

Family

ID=65630431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207009829A KR102235003B1 (ko) 2017-09-08 2018-09-07 충돌 검출, 추정 및 회피

Country Status (8)

Country Link
US (1) US10384346B2 (ko)
EP (1) EP3679442A4 (ko)
JP (1) JP7025532B2 (ko)
KR (1) KR102235003B1 (ko)
CN (1) CN111263921B (ko)
AU (1) AU2018330935B2 (ko)
CA (1) CA3073920C (ko)
WO (1) WO2019049082A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102251308B1 (ko) * 2020-08-05 2021-05-12 플레이스비 주식회사 햅틱 컨트롤러 및 이를 이용한 햅틱 피드백 제공 시스템 및 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201811301D0 (en) * 2018-07-10 2018-08-29 Emotech Ltd Robotic system
US11748903B2 (en) * 2019-01-02 2023-09-05 Zebra Technologies Corporation System and method for robotic object detection using a convolutional neural network
US10937218B2 (en) * 2019-07-01 2021-03-02 Microsoft Technology Licensing, Llc Live cube preview animation
KR20190095188A (ko) * 2019-07-25 2019-08-14 엘지전자 주식회사 로봇 및 그 제어방법
CN110460782B (zh) * 2019-08-28 2021-07-20 北京海益同展信息科技有限公司 信息采集装置、方法、巡检机器人和存储介质
CN111514587B (zh) * 2020-04-27 2021-05-11 网易(杭州)网络有限公司 信息处理方法、装置、设备及存储介质
US20220026879A1 (en) * 2020-07-22 2022-01-27 Micron Technology, Inc. Predictive maintenance of components used in machine automation
FR3138951A1 (fr) * 2022-08-22 2024-02-23 Safran Système et procédé d'aide à la navigation d'un système mobile au moyen d'un modèle de prédiction de traversabilité d'un terrain par le système mobile
CN115229802A (zh) * 2022-09-19 2022-10-25 北京云迹科技股份有限公司 减少机器人倒地的方法及装置
CN116277029B (zh) * 2023-04-26 2024-04-09 北京朴津智能科技有限公司 一种全方位防碰撞装置及移动机器人

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0660300A (ja) * 1992-08-04 1994-03-04 Takata Kk 神経回路網による衝突予防予測システム
KR20140139394A (ko) * 2013-05-27 2014-12-05 경북대학교 산학협력단 교육용 로봇과 상호 작용하는 증강 현실 구현 장치 및 그 방법
JP5844475B1 (ja) * 2014-07-30 2016-01-20 株式会社小松製作所 運搬車両及び運搬車両の制御方法
JP2016120591A (ja) * 2005-09-30 2016-07-07 アイロボット コーポレイション 移動ロボット

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134003A (ja) * 1997-10-31 1999-05-21 Mitsubishi Electric Corp モジュール型学習制御方法
JP2005056185A (ja) 2003-08-05 2005-03-03 Techno Face:Kk 階層型エージェント学習方法およびシステム
JP2005211499A (ja) * 2004-01-30 2005-08-11 Funai Electric Co Ltd 自走式掃除機
US7974738B2 (en) 2006-07-05 2011-07-05 Battelle Energy Alliance, Llc Robotics virtual rail system and method
JP5224535B2 (ja) 2009-04-20 2013-07-03 任天堂株式会社 衝突判定プログラム、衝突判定装置、衝突判定システムおよび衝突判定方法
JP4989697B2 (ja) 2009-08-19 2012-08-01 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム処理方法、ならびに、プログラム
US8467623B2 (en) * 2010-03-26 2013-06-18 Brain Corporation Invariant pulse latency coding systems and methods systems and methods
US9014848B2 (en) 2010-05-20 2015-04-21 Irobot Corporation Mobile robot system
JP5246672B2 (ja) 2011-02-17 2013-07-24 独立行政法人科学技術振興機構 ロボットシステム
CA2883091C (en) 2011-08-25 2020-02-25 Cornell University Retinal encoder for machine vision
US20130215109A1 (en) * 2012-02-22 2013-08-22 Silka Miesnieks Designating Real World Locations for Virtual World Control
EP2685403A3 (en) 2012-07-09 2017-03-01 Technion Research & Development Foundation Limited Natural machine interface system
US9296101B2 (en) * 2013-09-27 2016-03-29 Brain Corporation Robotic control arbitration apparatus and methods
KR102137524B1 (ko) * 2014-02-13 2020-07-24 삼성전자주식회사 로봇청소기
US9630317B2 (en) * 2014-04-03 2017-04-25 Brain Corporation Learning apparatus and methods for control of robotic devices via spoofing
CN103984037B (zh) * 2014-04-30 2017-07-28 深圳市墨克瑞光电子研究院 基于视觉的移动机器人障碍物检测方法和装置
JP6264457B2 (ja) * 2014-06-25 2018-01-24 日産自動車株式会社 車両制御装置
US9283678B2 (en) * 2014-07-16 2016-03-15 Google Inc. Virtual safety cages for robotic devices
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
CN105139072A (zh) 2015-09-09 2015-12-09 东华大学 应用于非循迹智能小车避障系统的强化学习算法
US10474964B2 (en) * 2016-01-26 2019-11-12 Ford Global Technologies, Llc Training algorithm for collision avoidance
US10416682B2 (en) * 2016-07-29 2019-09-17 Faraday & Future Inc. Semi-automated driving using pre-recorded route
KR101979695B1 (ko) * 2016-12-13 2019-05-17 엘지전자 주식회사 차량에 구비된 차량 제어 장치 및 차량의 제어방법
US10522040B2 (en) * 2017-03-03 2019-12-31 Kennesaw State University Research And Service Foundation, Inc. Real-time video analytics for traffic conflict detection and quantification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0660300A (ja) * 1992-08-04 1994-03-04 Takata Kk 神経回路網による衝突予防予測システム
JP2016120591A (ja) * 2005-09-30 2016-07-07 アイロボット コーポレイション 移動ロボット
KR20140139394A (ko) * 2013-05-27 2014-12-05 경북대학교 산학협력단 교육용 로봇과 상호 작용하는 증강 현실 구현 장치 및 그 방법
JP5844475B1 (ja) * 2014-07-30 2016-01-20 株式会社小松製作所 運搬車両及び運搬車両の制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102251308B1 (ko) * 2020-08-05 2021-05-12 플레이스비 주식회사 햅틱 컨트롤러 및 이를 이용한 햅틱 피드백 제공 시스템 및 방법

Also Published As

Publication number Publication date
CA3073920C (en) 2020-12-29
WO2019049082A1 (en) 2019-03-14
US20190077019A1 (en) 2019-03-14
CA3073920A1 (en) 2019-03-14
CN111263921A (zh) 2020-06-09
EP3679442A4 (en) 2021-01-27
KR102235003B1 (ko) 2021-04-02
US10384346B2 (en) 2019-08-20
AU2018330935B2 (en) 2021-09-09
JP7025532B2 (ja) 2022-02-24
JP2020529088A (ja) 2020-10-01
CN111263921B (zh) 2021-10-29
AU2018330935A1 (en) 2020-04-30
EP3679442A1 (en) 2020-07-15

Similar Documents

Publication Publication Date Title
KR102235003B1 (ko) 충돌 검출, 추정 및 회피
US11691273B2 (en) Generating a model for an object encountered by a robot
JP6900575B2 (ja) ゲームプレイを介して環境の詳細データセットを生成する方法およびシステム
CN108156450B (zh) 用于校准摄像机的方法、校准设备、校准系统以及机器可读的存储介质
KR102361261B1 (ko) 이동 바디들 주위의 로봇 행동을 위한 시스템들 및 방법들
CN107004298B (zh) 一种机器人三维模型的建立方法、装置及电子设备
WO2019202878A1 (en) Recording medium, information processing apparatus, and information processing method

Legal Events

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