KR20230036447A - 로봇 및 그 제어 방법 - Google Patents

로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR20230036447A
KR20230036447A KR1020210119323A KR20210119323A KR20230036447A KR 20230036447 A KR20230036447 A KR 20230036447A KR 1020210119323 A KR1020210119323 A KR 1020210119323A KR 20210119323 A KR20210119323 A KR 20210119323A KR 20230036447 A KR20230036447 A KR 20230036447A
Authority
KR
South Korea
Prior art keywords
area
robot
information
driving
type
Prior art date
Application number
KR1020210119323A
Other languages
English (en)
Inventor
김도훈
백아론
윤찬호
장은솔
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020210119323A priority Critical patent/KR20230036447A/ko
Priority to EP22867487.5A priority patent/EP4309856A1/en
Priority to PCT/KR2022/005909 priority patent/WO2023038218A1/ko
Priority to CN202280042432.1A priority patent/CN117480036A/zh
Priority to US17/843,394 priority patent/US20230070341A1/en
Publication of KR20230036447A publication Critical patent/KR20230036447A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1684Tracking a line or surface by means of sensors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/022Optical sensing devices using lasers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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
    • 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/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • 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/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Optics & Photonics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Electromagnetism (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

로봇이 개시된다. 로봇은 구동부, 3D 뎁스(depth) 센서, 적어도 하나의 명령을 저장하는 메모리 및 프로세서를 포함한다. 프로세서는 적어도 하나의 명령어를 실행함으로써 로봇이 공간을 주행하는 동안 3D 뎁스 센서에 의해 촬영된 주행 면의 뎁스 이미지를 획득하고, 획득된 뎁스 이미지에 기초하여 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득하고, 획득된 경계 영역의 위치 정보 및 변경된 경사 정보에 기초하여 경계 영역의 외부 영역에 대응되는 타입 정보를 획득하고, 타입 정보에 기초하여 구동부를 제어할 수 있다.

Description

로봇 및 그 제어 방법{ROBOT AND CONTROLLING METHOD THEREOF}
본 발명은 사용자에게 서비스를 제공하는 로봇 및 그 제어 방법에 관한 것이다.
최근 실내 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 이에 따라 LIDAR 센서를 이용해 실내 공간에 위치한 오브젝트를 식별하고, 식별된 오브젝트에 관한 정보에 기초하여 서비스를 제공하는 로봇이 상용화 되고 있다. 특히, 로봇은 LIDAR 센서를 통해 로봇이 주행하는 바닥 면에 대한 정보를 획득하고, 획득된 정보에 기초하여 주행하며 서비스를 제공할 수 있다.
그러나, 로봇이 주행하는 바닥면이 흡광도가 높은 재질 또는 난반사를 일으키는 재질로 이루어진 경우에는 LIDAR 센서를 통해 획득할 수 있는 정보만으로 바닥면의 특성을 정확히 파악하기 어려운 문제점이 있었다. 이에 따라 로봇이 주행하는 바닥면의 특성을 정확히 파악하고, 그에 따라 최적의 서비스를 제공할 수 있는 방법에 대한 지속적인 요구가 있었다.
본 개시는 상술한 필요성에 따른 것으로, 3D 뎁스 센서에 의해 획득된 뎁스 이미지에 기초하여 획득된 주행 면의 타입 정보에 따라 서비스를 제공하는 로봇 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 로봇은, 구동부, 3D 뎁스(depth) 센서, 적어도 하나의 명령을 저장하는 메모리 및 상기 구동부, 상기 3D 뎁스 센서 및 상기 메모리와 연결되어 상기 로봇을 제어하는 프로세서를 포함하며, 상기 프로세서는, 상기 적어도 하나의 명령어를 실행함으로써, 상기 로봇이 공간을 주행하는 동안, 상기 3D 뎁스 센서에 의해 촬영된 주행 면의 뎁스 이미지를 획득하고, 상기 획득된 뎁스 이미지에 기초하여 상기 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득하고, 상기 획득된 경계 영역의 위치 정보 및 상기 변경된 경사 정보에 기초하여 상기 경계 영역의 외부 영역에 대응되는 타입 정보를 획득하고, 상기 타입 정보에 기초하여 상기 구동부를 제어할 수 있다.
여기서, 상기 프로세서는, 상기 뎁스 이미지에 기초하여 복수의 셀 및 상기 복수의 셀 각각에 대응되는 높이 정보를 포함하는 맵 데이터를 획득하고, 상기 획득된 맵 데이터에 포함된 셀 별 높이 정보에 기초하여 상기 경계 영역의 위치 정보 및 상기 변경된 경사 정보를 획득할 수 있다.
여기서, 상기 프로세서는, 상기 외부 영역에 포함된 셀 각각에 상기 타입 정보를 맵핑하여 상기 맵 데이터를 업데이트하고, 상기 업데이트된 맵 데이터에 기초하여 상기 로봇의 주행 경로를 식별하고, 상기 식별된 주행 경로에 기초하여 상기 구동부를 제어할 수 있다.
또한, 상기 프로세서는, 상기 맵 데이터에 포함된 복수의 셀 각각의 높이 정보에 기초하여 상기 복수의 셀 각각을 적어도 하나의 그룹으로 그룹핑하고, 상기 적어도 하나의 그룹에 속한 셀들의 높이 정보에 기초하여 상기 외부 영역에 대응되는 셀들을 식별하고, 상기 외부 영역으로 식별된 셀들의 높이 정보에 기초하여 상기 외부 영역의 타입을 식별할 수 있다.
또한, 상기 변경된 경사 정보가 제1 임계값 미만이면, 상기 외부 영역을 클리프(cliff) 타입으로 식별하고, 상기 변경된 경사 정보가 상기 제1 임계값을 초과하고 제2 임계값 미만이면, 상기 외부 영역을 슬로프(slope) 타입으로 식별하고, 상기 변경된 경사 정보가 상기 제2 임계값 이상이면, 상기 외부 영역을 월(wall) 타입으로 식별할 수 있다.
여기서, 상기 프로세서는, 상기 뎁스 이미지에 기초하여 상기 외부 영역에 대응되는 뎁스 정보가 획득되지 않는 경우 상기 변경된 경사 정보가 상기 제1 임계값 미만인 것으로 식별할 수 있다.
또한, 상기 프로세서는, 상기 외부 영역이 상기 클리프 타입으로 식별되면, 상기 경계 영역으로부터 임계 거리 내의 영역을 세이프 영역(safe area)으로 설정하여 상기 로봇이 상기 세이프 영역으로 주행하지 않도록 상기 구동부를 제어할 수 있다.
또한, 상기 프로세서는, 상기 외부 영역이 상기 슬로프 타입으로 식별되면, 상기 외부 영역에 대응되는 경사 정보에 기초하여 상기 외부 영역이 상기 로봇이 승월 가능한 영역인지 식별하고, 상기 외부 영역이 승월 가능한 영역으로 식별되면, 상기 경계 영역으로부터 임계 거리에 도달하면 상기 로봇의 속도가 증가되도록 상기 구동부를 제어할 수 있다.
여기서, 상기 프로세서는, 상기 외부 영역이 승월 불가능한 영역으로 식별되면, 상기 외부 영역을 회피하는 경로에 기초하여 상기 로봇이 주행하도록 상기 구동부를 제어할 수 있다.
한편, 본 발명의 일 실시 예에 따른 로봇의 프로세서에 의해 실행되는 경우 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독가능 기록매체에 있어서, 상기 동작은, 상기 로봇이 공간을 주행하는 동안 주행 면의 뎁스 이미지를 획득하는 단계, 상기 획득된 뎁스 이미지에 기초하여 상기 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득하는 단계, 상기 획득된 경계 영역의 위치 정보 및 상기 변경된 경사 정보에 기초하여 상기 경계 영역의 외부 영역에 대응되는 타입 정보를 획득하는 단계 및 상기 타입 정보에 기초하여 상기 로봇을 구동하는 단계를 포함할 수 있다.
한편, 본 발명의 일 실시 예에 따른 로봇의 제어 방법은, 상기 로봇이 공간을 주행하는 동안 주행 면의 뎁스 이미지를 획득하는 단계, 상기 획득된 뎁스 이미지에 기초하여 상기 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득하는 단계, 상기 획득된 경계 영역의 위치 정보 및 상기 변경된 경사 정보에 기초하여 상기 경계 영역의 외부 영역에 대응되는 타입 정보를 획득하는 단계 및 상기 타입 정보에 기초하여 상기 로봇을 구동하는 단계를 포함할 수 있다.
여기서, 상기 경계 영역의 위치 정보를 획득하는 단계는, 상기 뎁스 이미지에 기초하여 복수의 셀 및 상기 복수의 셀 각각에 대응되는 높이 정보를 포함하는 맵 데이터를 획득하는 단계 및 상기 획득된 맵 데이터에 포함된 셀 별 높이 정보에 기초하여 상기 경계 영역의 위치 정보 및 상기 변경된 경사 정보를 획득하는 단계를 포함할 수 있다.
여기서, 상기 로봇을 구동하는 단계는, 상기 외부 영역에 포함된 셀 각각에 상기 타입 정보를 맵핑하여 상기 맵 데이터를 업데이트하는 단계, 상기 업데이트된 맵 데이터에 기초하여 상기 로봇의 주행 경로를 식별하는 단계 및 상기 식별된 주행 경로에 기초하여 상기 로봇을 구동하는 단계를 포함할 수 있다.
또한, 상기 외부 영역에 대응되는 타입 정보를 획득하는 단계는, 상기 맵 데이터에 포함된 복수의 셀 각각의 높이 정보에 기초하여 상기 복수의 셀 각각을 적어도 하나의 그룹으로 그룹핑하는 단계, 상기 적어도 하나의 그룹에 속한 셀들의 높이 정보에 기초하여 상기 외부 영역에 대응되는 셀들을 식별하는 단계 및 상기 외부 영역으로 식별된 셀들의 높이 정보에 기초하여 상기 외부 영역의 타입을 식별하는 단계를 포함할 수 있다.
또한, 상기 외부 영역에 대응되는 타입 정보를 획득하는 단계는, 상기 변경된 경사 정보가 제1 임계값 미만이면, 상기 외부 영역을 클리프(cliff) 타입으로 식별하는 단계, 상기 변경된 경사 정보가 상기 제1 임계값을 초과하고 제2 임계값 미만이면, 상기 외부 영역을 슬로프(slope) 타입으로 식별하는 단계 및 상기 변경된 경사 정보가 상기 제2 임계값 미만이면. 상기 외부 영역을 월(wall) 타입으로 식별하는 단계를 포함할 수 있다.
또한, 상기 외부 영역에 대응되는 타입 정보를 획득하는 단계는, 상기 뎁스 이미지에 기초하여 상기 외부 영역에 대응되는 뎁스 정보가 획득되지 않는 경우 상기 변경된 경사 정보가 상기 제1 임계값 미만인 것으로 식별할 수 있다.
또한, 상기 로봇을 구동하는 단계는, 상기 외부 영역이 상기 클리프 타입으로 식별되면, 상기 경계 영역으로부터 임계 거리 내의 영역을 세이프 영역(safe area)으로 설정하여 상기 로봇이 상기 세이프 영역으로 주행하지 않도록 구동할 수 있다.
또한, 상기 로봇을 구동하는 단계는, 상기 외부 영역이 상기 슬로프 타입으로 식별되면, 상기 외부 영역에 대응되는 경사 정보에 기초하여 상기 외부 영역이 상기 로봇이 승월 가능한 영역인지 식별하는 단계 및 상기 외부 영역이 승월 가능한 영역으로 식별되면, 상기 경계 영역으로부터 임계 거리에 도달하면 상기 로봇의 속도가 증가되도록 구동하는 단계를 포함할 수 있다.
여기서, 상기 로봇을 구동하는 단계는, 상기 외부 영역이 승월 불가능한 영역으로 식별되면, 상기 외부 영역을 회피하는 경로에 기초하여 상기 로봇이 주행하도록 구동할 수 있다.
본 개시의 다양한 실시 예에 따르면, 로봇이 주행 면의 특성을 보다 정확히 식별하고 최적의 주행 경로에 기초하여 서비스를 제공할 수 있으므로, 사용자의 편의가 향상될 수 있다.
도 1은 본 개시의 일 실시 예에 따른 로봇의 기능적 구성을 설명하기 위한 블록도이다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 주행 동작을 설명하기 위한 흐름도이다.
도 3a 내지 도 3c는 본 개시의 일 실시 예에 따른 경계 영역 식별 동작에 관해 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 외부 영역의 그룹핑(Grouping) 방법을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 높이 맵을 업데이트하는 방법을 설명하기 위한 도면이다.
도 6a 및 도 6b는 본 개시의 일 실시 예에 따른 로봇의 승월 가부를 판단하는 방법을 설명하기 위한 도면이다.
도 7a 및 도 7b는 본 개시의 일 실시 예에 따른 주행 경로 식별 방법을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시 예에 따른 로봇의 기능적 구성을 구체적으로 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시 예에 따른 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 개시에서 '사용자'는 로봇에게 서비스를 제공받는 사람을 의미할 수 있으나, 이에 한정되는 것은 아니다.
도 1은 본 개시의 일 실시 예에 따른 로봇의 기능적 구성을 설명하기 위한 블록도이다.
도 1에 따르면, 로봇(100)은 구동부(110), 3D 뎁스 센서(120), 메모리(130) 및 프로세서(140)를 포함할 수 있다.
본 개시의 일 실시 예에 따른 로봇(100)은 특정 공간을 주행하며 사용자에게 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 청소 서비스, 서빙 서비스 및 가이드 서비스 등을 제공할 수 있으나 이에 한정되는 것은 아니다.
구동부(110)는 로봇(100)을 주행시킬 수 있는 장치이다. 구동부(110)는 프로세서(140)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있으며, 일 예에 따른 구동부(110)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(110)는 로봇(100)의 주행 입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형 실시될 수 있다.
3D 뎁스 센서(120)는 뎁스(depth) 데이터를 획득할 수 있다. 구체적으로, 3D 뎁스 센서(120)는 로봇(100)의 위치와 오브젝트의 위치 사이의 뎁스 값을 측정하고, 측정 결과에 기초하여 뎁스 정보를 획득할 수 있다. 일 예에 따른 3D 뎁스 센서(120) 라이다(LIDAR, Light Detection And Ranging), TOF(Time of flight) 센서 또는 복수의 적외선 카메라 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
메모리(130)는 본 개시의 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(130)는 데이터 저장 용도에 따라 로봇(100)에 임베디드된 메모리 형태로 구현되거나, 로봇(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 로봇(100)의 구동을 위한 데이터의 경우 로봇(100)에 임베디드된 메모리에 저장되고, 로봇(100)의 확장 기능을 위한 데이터의 경우 로봇(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 로봇(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. 또한, 로봇(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
프로세서(140)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(140)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(140)는 구동부(110), 3D 뎁스 센서(120) 및 메모리(130)와 연결되어 로봇(100)의 동작을 제어할 수 있다.
일 실시 예에 따라 프로세서(140)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), NPU(Neural Processing Unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)) 등 다양한 이름으로 명명될 수 있으나, 본 명세서에서는 프로세서(140)로 기재한다.
프로세서(140)는 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(130)는 SRAM 등의 휘발성 메모리를 포함할 수 있다.
도 2를 참조하면, 프로세서(140)는 뎁스 이미지 처리 모듈(141), 높이 맵 생성 모듈(142), 경계 영역 식별 모듈(143), 외부 영역 타입 식별 모듈(144) 및 로봇 구동 모듈(150)을 포함할 수 있다. 본 모듈들 각각은 메모리(130)에 저장된 소프트웨어 모듈이거나 로봇(100)상에 회로적으로 구현된 하드웨어 모듈일 수 있다. 또는, 본 모듈들 각각은 소프트웨어 및 하드웨어가 조합된 형태로 구현될 수도 있다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 주행 동작을 설명하기 위한 흐름도이다.
본 개시의 일 실시 예에 따른 프로세서(140)는 로봇(100)이 공간을 주행하는 동안 주행 면의 뎁스 이미지를 획득할 수 있다(S210). 구체적으로, 뎁스 이미지 처리 모듈(141)은 로봇(100)이 공간을 주행하는 동안 3D 뎁스 센서(120)에 의해 촬영된 주행 면에 대한 뎁스 정보에 기초하여 주행 면의 뎁스 이미지를 획득할 수 있다. 여기서, 뎁스 이미지는 3D 뎁스 센서(120)에 의해 획득된 복수의 뎁스 값에 각각 대응되는 복수의 3D point cloud를 포함할 수 있다.
또한, 프로세서(140)는 획득된 뎁스 이미지에 기초하여 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득할 수 있다(S220). 구체적으로, 프로세서(140)는 획득된 뎁스 이미지에 기초하여 로봇(100)이 주행하는 공간에 대응되는 높이 맵(Height Map)을 생성하고, 생성된 높이 맵에 기초하여 주행 면의 경사 정보가 변경되는 적어도 하나의 경계 영역을 식별할 수 있다.
높이 맵 생성 모듈(142)은 획득된 뎁스 이미지에 기초하여 로봇(100)이 주행하는 공간에 포함된 복수의 셀 및 복수의 셀 각각에 대응되는 높이 정보를 포함하는 높이 맵을 생성할 수 있다. 예를 들어, 높이 맵 생성 모듈(142)은 복수의 셀에 포함된 3D point cloud에 대응되는 뎁스 정보, 3D 뎁스 센서(120)의 화각 및 3D 뎁스 센서(120)의 높이 정보에 기초하여 복수의 셀 각각에 대응되는 주행 면의 높이 정보를 포함하는 맵 데이터를 획득할 수 있다.
여기서, 높이 맵 생성 모듈(142)은 뎁스 이미지 처리 모듈(141)이 획득한 뎁스 이미지에 포함된 복수의 3D point cloud에 기초하여 현재 로봇(100)이 주행중인 영역에 대응되는 평면을 식별할 수 있다.
예를 들어, 높이 맵 생성 모듈(142)은 RANSAC(RANdom SAmple Consensus) 알고리즘에 기초하여 로봇(100)이 주행중인 영역에 대응되는 평면을 식별할 수 있다. 구체적으로, 높이 맵 생성 모듈(142)은 복수의 3D point cloud 중 임의로 세 개의 point cloud를 추출하고, 추출된 세 개의 point cloud를 포함하는 평면을 식별하고, 식별된 평면으로부터 임계 거리 내에 위치한 point cloud의 수를 산출하는 동작을 반복하여 임계 거리 내에 가장 많은 point cloud를 포함하는 평면을 로봇(100)이 주행중인 영역에 대응되는 평면인 것으로 식별할 수 있다.
또한, 높이 맵 생성 모듈(142) 로봇(100)이 주행하는 공간에 포함된 복수의 셀들 중 식별된 평면에 대응되는 적어도 하나의 셀이 '0'의 높이를 갖는 것으로 식별하여 높이 맵을 생성할 수 있다.
경계 영역 식별 모듈(143)은 획득된 맵 데이터에 기초하여 주행 면의 경사 정보가 변경되는 영역의 위치 정보를 획득할 수 있다. 여기서, 경사 정보는 주행 면이 이 지평면과 이루는 각도에 관한 정보를 포함할 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 지평면과 평행한 주행 면에 대응되는 경사 정보는 0도, 지평면에 비해 30도의 경사를 갖는 주행 면에 대응되는 경사 정보는 30도에 대응되는 경사 정보를 포함할 수 있다.
일 예에 따른 경계 영역 식별 모듈(143)은 획득된 맵 데이터에 포함된 복수의 셀 별 높이 정보에 기초하여 경계 영역을 식별하고, 식별된 경계 영역이 포함된 적어도 하나의 셀의 위치 정보에 기초하여 경계 영역의 위치 정보를 획득할 수 있다.
또한, 경계 영역 식별 모듈(143)은 높이 맵이 획득되지 않은 경우라도 뎁스 이미지에 기초하여 경계 영역의 위치 정보를 식별할 수 있다. 예를 들어, 경계 영역 식별 모듈(143)은 뎁스 이미지에 포함된 복수의 3D point cloud 각각에 대응되는 뎁스 정보에 기초하여 적어도 하나의 경계 영역을 식별하고, 로봇(100)의 위치 정보 및 3D 뎁스 센서(120)의 화각에 기초하여 식별된 경계 영역에 대응되는 위치 정보를 획득할 수도 있다.
또한, 경계 영역은 로봇(100)이 주행하는 공간에 대응되는 높이 맵에 포함된 복수의 셀 중 적어도 하나의 셀을 포함하는 영역일 수 있다. 구체적으로, 경계 영역 식별 모듈(143)은 주행 면의 경사 정보가 변경되는 지점의 위치 정보를 획득하고, 해당 지점을 포함하는 적어도 하나의 셀이 경계 영역에 포함되는 것으로 식별할 수 있다.
또한, 프로세서(140)는 획득된 경계 영역의 위치 정보 및 변경된 경사 정보에 기초하여 경계 영역의 외부 영역에 대응되는 타입을 식별할 수 있다(S230).
구체적으로, 외부 영역 타입 식별 모듈(144)은 획득된 경계 영역의 위치 정보 및 경계 영역을 기점으로 변경된 경사 정보에 기초하여 경계 영역의 외부 영역에 대응되는 타입 정보를 획득할 수 있다. 여기서, 경계 영역의 외부 영역은 로봇(100)이 주행중인 영역과 경계 영역을 공유하는 적어도 하나의 영역을 의미할 수 있다. 예를 들어 외부 영역은 로봇(100)이 지평면과 평행한 영역을 주행하고 있는 경우 로봇(100)이 위치한 영역과 인접한 경사면을 포함하는 영역일 수 있으나, 이에 한정되는 것은 아니다.
또한, 외부 영역 타입 식별 모듈(144)은 높이 맵 생성 모듈(142)이 생성한 높이 맵에 포함된 복수의 셀 각각의 높이 정보에 기초하여 복수의 셀 각각을 적어도 하나의 그룹으로 그룹핑할 수 있다. 예를 들어, 외부 영역 타입 식별 모듈(144)은 같은 높이 정보를 갖는 복수의 셀, 인접한 셀들 간의 높이 차이가 일정한 복수의 셀 또는 높이 정보가 획득되지 않은 복수의 셀을 각각 별도의 그룹으로 그룹핑할 수 있다.
또한, 외부 영역 타입 식별 모듈(144)은 그룹핑된 적어도 하나의 그룹에 포함된 복수의 셀에 대응되는 높이 정보에 기초하여 식별된 그룹에 대응되는 외부 영역의 타입 정보를 식별할 수 있다. 예를 들어, 외부 영역 타입 식별 모듈(144)은 인접한 셀들 간의 높이 차이가 일정한 복수의 셀이 하나의 그룹에 속한 것으로 식별하고, 해당 그룹에 대응되는 외부 영역의 타입이 슬로프(slope) 타입인 것으로 식별할 수 있다. 또한, 외부 영역 타입 식별 모듈(144)은 높이 정보가 획득되지 않은 복수의 셀이 하나의 그룹에 속한 것으로 식별하고, 해당 그룹에 대응되는 외부 영역의 타입이 클리프(cliff) 타입인 것으로 식별할 수 있다.
일 실시 예에 따른 외부 영역 타입 식별 모듈(144)은 식별된 경계 영역을 기점으로 변경된 주행 면의 경사 정보가 제1 임계값 미만이면 외부 영역을 클리프 타입으로, 경사 정보가 제1 임계값을 초과하고 제2 임계값 미만이면 외부 영역을 슬로프 타입으로, 경사 정보가 제2 임계값 이상이면 외부 영역을 월(wall) 타입으로 각각 식별할 수 있다. 여기서, 제1 임계값은 0도, 제2 임계값은 90도일 수 있으나 이에 한정되는 것은 아니다.
여기서, 외부 영역 타입 식별 모듈(144)은 뎁스 이미지 처리 모듈(141)이 획득한 뎁스 이미지에 기초하여 외부 영역에 대응되는 뎁스 정보가 획득되지 않는 경우 변경된 경사 정보가 제1 임계값 미만인 것으로 식별하고, 뎁스 정보가 획득되지 않은 외부 영역이 클리프 타입인 것으로 식별할 수 있다. 다만, 상술한 외부 영역의 타입 식별 동작은 일 예일 뿐, 외부 영역 타입 식별 모듈(144)이 상술한 것 이외의 다양한 방식에 기초하여 외부 영역의 타입을 식별할 수 있음은 물론이다.
한편, 높이 맵 생성 모듈(142)은 경계 영역 식별 모듈(143)이 획득한 적어도 하나의 경계 영역에 대응되는 위치 정보 및 외부 영역 타입 식별 모듈(144)이 획득한 적어도 하나의 외부 영역에 대응되는 타입 정보에 기초하여 높이 맵을 업데이트할 수 있다. 여기서, 업데이트란 기존의 높이 맵에 포함된 복수의 셀 각각에 경계 영역에 대응되는 위치 정보 및 외부 영역의 타입 정보를 맵핑하여 저장하는 동작을 의미할 수 있으나 이에 한정되는 것은 아니다.
또한, 로봇 구동 모듈(145)은 외부 영역 타입 식별 모듈(144)이 획득한 외부 영역의 타입 정보에 기초하여 구동부(110)를 제어할 수 있다. 구체적으로, 로봇 구동 모듈(145)은 높이 맵 생성 모듈(142)이 업데이트한 높이 맵에 기초하여 로봇(100)의 주행 경로를 식별하고, 식별된 주행 경로에 기초하여 로봇(100)이 주행하도록 구동부(110)를 제어할 수 있다.
일 예에 따른 프로세서(140)는 외부 영역이 클리프 타입이면 세이프 영역을 설정할 수 있다(S240). 구체적으로, 로봇 구동 모듈(145)은 외부 영역이 클리프 타입으로 식별되면 경계 영역으로부터 임계 거리 내의 영역을 세이프 영역(safe area)으로 설정할 수 있다.
또한, 프로세서(140)는 로봇이 세이프 영역을 주행하지 않도록 구동할 수 있다(S250). 구체적으로, 로봇 구동 모듈(145)은 로봇(100)이 세이프 영역으로 주행하지 않도록 로봇(100)의 주행 경로를 식별하고, 식별된 주행 경로에 기초하여 로봇(100)이 주행하도록 구동부(110)를 제어할 수 있다.
또한, 프로세서(140)는 외부 영역이 슬로프 타입이면 로봇(100)의 승월 가부를 식별할 수 있다(S260). 구체적으로, 로봇 구동 모듈(145)은 외부 영역이 슬로프 타입으로 식별되면 외부 영역에 대응되는 경사 정보에 기초하여 외부 영역이 로봇(100)이 승월 가능한 영역인지 식별할 수 있다.
예를 들어 로봇 구동 모듈(145)은 슬로프 타입으로 식별된 외부 영역의 경사가 제3 임계값 미만인 경우 외부 영역이 로봇(100)이 승월 가능한 영역인 것으로 식별할 수 있다. 나아가 로봇 구동 모듈(145)은 로봇(100)의 폼 팩터(form factor) 및 외부 영역의 경사 정보를 고려하여 외부 영역이 로봇(100)이 승월 가능한 영역인지를 식별할 수도 있다.
또한, 프로세서(140)는 외부 영역이 로봇(100)이 승월 가능한 영역인 경우(S270: Y) 로봇(100)이 외부 영역을 승월하도록 구동할 수 있다(S281). 구체적으로, 로봇 구동 모듈(145)은 로봇(100)이 승월 가능한 것으로 식별된 외부 영역과 로봇(100)이 현재 주행 중인 영역의 경계 영역을 식별하고, 로봇(100)이 경계 영역으로부터 임계 거리에 도달하면 로봇(100)의 속도가 증가되도록 구동부(110)를 제어할 수 있다.
반면, 프로세서(140)는 외부 영역이 로봇(100)이 승월 불가능한 영역인 경우(S270: N) 로봇(100)이 외부 영역을 회피하도록 구동할 수 있다(S282). 구체적으로, 로봇 구동 모듈(145)은 로봇(100)이 승월이 불가능한 것으로 식별된 외부 영역을 회피하여 주행하도록 로봇(100)의 주행 경로를 식별하고, 식별된 주행 경로에 기초하여 로봇(100)이 주행하도록 구동부(110)를 제어할 수 있다.
또한, 프로세서(140)는 외부 영역이 월(wall) 타입이면 로봇(100)이 외부 영역을 회피하도록 구동할 수 있다(S290). 예를 들어, 외부 영역 타입 식별 모듈(144)은 로봇(100)이 현재 주행 중인 영역에 대응되는 경사가 0도이고, 경계 영역 식별 모듈(143)이 식별한 경계 영역의 외부 영역에 대응되는 경사가 90도인 경우 외부 영역이 월 타입인 것으로 식별할 수 있다.
또한, 로봇 구동 모듈(145)은 로봇(100)이 월 타입으로 식별된 외부 영역을 회피하도록 구동부(110)를 제어할 수 있다.
상술한 바와 같이, 본원의 다양한 실시 예에 따른 로봇(100)은 현재 주행중인 영역과 다른 경사 정보를 갖는 외부 영역을 식별하고, 외부 영역의 타입에 따라 식별된 최적의 주행 경로에 기초하여 주행할 수 있으므로, 로봇(100)으로부터 서비스를 제공받는 사용자의 편의가 제고될 수 있다.
도 3a 내지 도 3c는 본 개시의 일 실시 예에 따른 경계 영역 식별 동작에 관해 설명하기 위한 도면이다.
도 3a에 따르면, 로봇(100)은 3D 뎁스 센서(110)를 통해 바닥 면(310)의 뎁스 이미지를 획득할 수 있다. 여기서, 바닥 면(310)은 지평면에 평행한 면일 수 있으며, 이는 도 3b 및 도 3c에서 설명할 바닥 면(320, 330)의 경우도 마찬가지이나, 반드시 이에 한정되는 것은 아니다. 또한, 주행 면은 바닥 면(310, 320, 330)과 외부 영역(331, 332, 333)을 포함하는 면일 수 있다.
일 예에 따른 3D 뎁스 센서(120)는 일정한 화각(121)을 가지기 때문에 로봇(100)은 주행 방향에 대응되는 뎁스 이미지 중 특정 지점(312) 너머의 영역(311)에 대한 이미지는 획득하지 못할 수 있다.
이에 따라, 로봇(100)은 주행 방향에 대응되는 뎁스 이미지 중 뎁스 정보가 획득된 마지막 지점(312)을 포함하는 경계 영역을 식별하고, 식별된 경계 영역의 외부 영역(311)에 대응되는 타입 정보를 획득할 수 있다. 로봇(100)은 경계 영역의 외부 영역(311)에 대응되는 뎁스 정보가 획득되지 않음에 기초하여 외부 영역(311)이 클리프(cliff) 타입인 것으로 식별할 수 있다.
도 3b에 따르면, 로봇(100)은 RANSAC 알고리즘에 기초하여 바닥 면(320)과 벽면(321)에 각각 대응되는 평면에 대한 정보 및 경계 영역의 위치 정보를 획득할 수 있다. 예를 들어, 예를 들어, 로봇(100)은 바닥 면(320) 및 벽면(321)에 대응되는 각 평면에 대한 경사 정보를 획득하고, 바닥 면(320)과 벽면(320)에 대응되는 경사 정보가 상이함을 식별함에 기초하여 주행 면의 경사 정보가 변경되는 지점(322)의 위치 정보를 획득할 수 있다.
또한, 로봇(100)은 경사 정보가 변경되는 지점(322)을 포함하는 경계 영역을 식별하고, 경계 영역의 위치 정보 및 외부 영역(321)의 경사 정보에 기초하여 외부 영역(321)에 대응되는 타입 정보를 획득할 수 있다. 일 예에 따른 로봇(100)은 외부 영역(321)의 경사가 90도인 것으로 식별함에 기초하여 외부 영역(321)이 월(wall) 타입인 것으로 식별할 수 있다.
도 3c에 따르면, 로봇(100)은 바닥 면(330)과 경사면(331)에 각각 대응되는 평면에 대한 정보 및 경계 영역의 위치 정보를 획득할 수 있다. 예를 들어, 로봇(100)은 바닥 면(330) 및 경사면(331)에 대응되는 각 평면에 대한 경사 정보를 획득하고, 바닥 면(330)과 경사면(331)에 대응되는 경사 정보가 상이함을 식별함에 기초하여 주행 면의 경사 정보가 변경되는 지점(332)의 위치 정보를 획득할 수 있다.
또한, 로봇(100)은 경사 정보가 변경되는 지점(332)을 포함하는 경계 영역을 식별하고, 경계 영역의 위치 정보 및 외부 영역(331)의 경사 정보에 기초하여 외부 영역(331)에 대응되는 타입 정보를 획득할 수 있다. 일 예에 따른 로봇(100)은 외부 영역(331)의 경사(333)가 0도를 초과하고 90도 미만인 것으로 식별함에 기초하여 외부 영역(331)이 슬로프(slope) 타입인 것으로 식별할 수 있다.
일 예에 따르면, 로봇(100)은 외부 영역(331)의 경사(333)에 기초하여 외부 영역(331)이 승월 가능한 영역인지 식별할 수 있다. 구체적으로, 로봇(100)은 외부 영역(331)의 경사(333), 로봇(100)의 폼 팩터(form factor), 로봇(100)의 현재 속도 및 바닥 면(330) 또는 경사 면(331)의 특성과 같은 복수의 승월 조건의 충족 여부에 기초하여 외부 영역(331)이 로봇(100)이 승월 가능한 영역인지 식별할 수 있다.
만일, 외부 영역(331)이 로봇(100)이 승월 가능한 영역으로 식별되면 프로세서(140)는 로봇(100)이 경계 영역 내에 포함된 지점(332)로부터 임계 거리에 도달하면 가속하도록 구동부(110)를 제어할 수 있다. 반면에, 외부 영역(331)이 로봇(100)이 승월 불가능한 영역으로 식별되면 프로세서(140)는 외부 영역(331)을 회피하는 경로에 기초하여 로봇(100)이 주행하도록 구동부(110)를 제어할 수 있다.
도 4는 본 개시의 일 실시 예에 따른 외부 영역의 그룹핑(Grouping) 방법을 설명하기 위한 도면이다.
도 4는 로봇(100)이 주행하는 공간에 포함된 복수의 셀 및 복수의 셀 각각에 대응되는 높이 정보를 포함하는 맵 데이터(이하, 높이 맵 데이터)에 대한 평면도의 일부를 도시한 것이다.
일 예에 따른 프로세서(140)는 3D 뎁스 센서(120)에 의해 획득된 뎁스 이미지에 기초하여 개별적인 셀에 대응되는 높이 정보를 획득할 수 있다. 예를 들어, 프로세서(140)는 뎁스 이미지에 포함된 개별적인 셀에 대응되는 복수의 point cloud에 기초하여 높이 정보를 획득할 수 있다. 구체적으로, 프로세서(140)는 개별적인 셀에 대응되는 복수의 point cloud 각각의 높이의 평균 값 내지 중앙 값 중 적어도 하나에 기초하여 복수의 셀 각각에 대한 높이 정보를 획득할 수 있으나 이에 한정되는 것은 아니다.
도 4에 따르면, 로봇(100)이 주행하는 공간의 일부는 평면도의 좌측에서 우측 방향으로 높이가 증가하는 지형을 포함할 수 있다. 로봇(100)은 높이가 0인 적어도 하나의 셀을 포함하는 영역 또는 동일한 높이를 갖는 임계 개수 이상의 셀을 포함하는 영역을 바닥 면에 대응되는 영역으로 식별할 수 있다.
또한, 로봇(100)은 복수의 셀에 대응되는 높이 정보에 기초하여 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득할 수 있다. 예를 들어, 프로세서(140)는 0의 높이를 갖는 바닥 면에 대응되는 영역과 인접한 복수의 셀 중 바닥 면과 다른 높이 정보를 갖는 셀들의 집합(400)을 경계 영역으로 식별하고, 식별된 경계 영역의 위치 정보를 획득할 수 있다.
도 4에 따르면, 프로세서(140)는 바닥 면에 대응되는 영역의 우측에 세로 방향으로 배열된 셀들의 집합을 경계 영역(400)으로 식별할 수 있다. 일 예에 따른 프로세서(140)는 경계 영역(400)에 포함된 특정한 셀(401)을 포함하면서 경계 영역(400)과 수직한 방향으로 나열된 복수의 셀들의 집합(411)을 제1 셀 라인(cell line)으로 식별할 수 있다.
또한, 프로세서(140)는 제1 셀 라인(411)에 포함된 복수의 셀에 대응되는 높이 정보에 기초하여 제1 셀 라인(411)의 경사 정보를 획득할 수 있다. 구체적으로, 프로세서(140)는 제1 셀 라인(411)에 포함된 각 셀의 크기 및 각 셀에 대응되는 높이 정보에 기초하여 제1 셀 라인(411)의 경사 정보를 식별할 수 있다. 예를 들어, 프로세서(140)는 제1 셀 라인(411)에 포함된 셀들이 2의 높이 차이를 가지는 점에 기초하여 제1 셀 라인(411)이 30도의 경사를 가지는 것으로 식별할 수 있다.
또한, 프로세서(140)는 경계 영역(400)에 포함된 셀 및 제1 셀 라인(411) 평행한 방향으로 배열된 적어도 하나의 셀을 포함하며, 제1 셀 라인(411)의 경사와 임계 오차 범위 내의 경사를 갖는 제2 셀 라인 ~ 제n 셀 라인을 식별하고, 식별된 복수의 셀 라인의 집합(410)을 독립된 외부 영역으로 식별할 수 있다.
나아가, 프로세서(140)는 식별된 외부 영역(410)에 포함된 복수의 셀 라인이 30도로부터 임계 범위 내의 경사를 가지는 것에 기초하여 외부 영역(410)이 슬로프 타입인 것으로 식별하고, 외부 영역(410)의 경사 정보 및 로봇(100)의 폼 팩터에 기초하여 로봇(100)이 외부 영역(410)을 승월할 수 있는지 판단할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 높이 맵을 업데이트하는 방법을 설명하기 위한 도면이다.
도 5에 따르면, 프로세서(140)는 로봇(100)이 주행하는 공간의 높이 맵의 맵 데이터(500)를 획득할 수 있다. 여기서, 프로세서(140)는 임계 높이를 초과하는 높이를 갖는 것으로 식별된 셀들의 집합(520)에 대한 높이가 기 설정된 높이인 것으로 식별할 수 있다. 예를 들어, 프로세서(140)는 식별된 셀들의 집합(520)에 대응되는 높이가 100인 것으로 식별할 수 있으나 이에 한정되는 것은 아니다.
또한, 프로세서(140)는 획득된 맵 데이터(500)에 기초하여 복수의 외부 영역(510, 520, 530)을 식별하고, 식별된 외부 영역(510, 520, 530)의 경사 정보에 기초하여 각 영역의 타입을 식별할 수 있다.
일 예에 따르면, 프로세서(140)는 영역에 대한 뎁스 정보가 획득되지 않아 그에 기초한 영역의 높이 정보가 획득되지 않은 제1 영역(510)이 클리프(cliff) 타입인 것으로 식별할 수 있다. 또한, 프로세서(140)는 영역의 높이가 기 설정된 높이인 제2 영역(520)이 월(wall) 타입인 것으로, 30도로부터 임계 범위 내의 경사를 가지는 제3 영역(530)이 슬로프(slope) 타입인 것으로 식별할 수 있다.
또한, 프로세서(140)는 각 영역(510, 520, 530)에 포함된 셀들에 대해 획득된 각 타입 정보를 맵핑(mapping)하여 맵 데이터(500)를 업데이트하고, 업데이트된 맵 데이터(500)에 기초하여 식별된 주행 경로로 로봇(100)이 주행하도록 구동부(110)를 제어할 수 있다.
도 6a 및 도 6b는 본 개시의 일 실시 예에 따른 로봇의 승월 가부를 판단하는 방법을 설명하기 위한 도면이다.
도 6a에 따르면, 제1 공간에 대한 높이 맵 데이터(610)는 바닥 면에 대응되는 제1 영역(611) 및 경사 면에 대응되는 제2 영역(612)을 포함할 수 있다. 로봇(100)은 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보 및 제2 영역(612)의 경사 정보를 획득할 수 있다. 여기서, 경계 영역은 제2 영역(612)에 포함된 셀 중 2의 높이를 갖는 복수의 셀의 집합을 포함할 수 있다.
또한, 로봇(100)은 획득된 정보에 기초하여 제2 영역(612)의 타입이 슬로프 타입인 것으로 식별하는 경우 제2 영역(612)의 경사 정보, 로봇(100)의 폼 팩터(form factor), 로봇(100)의 현재 속도 및 바닥 면(611) 또는 경사 면(612)의 특성과 같은 복수의 승월 조건의 충족 여부에 기초하여 로봇(100)이 경사 면(612)을 승월할 수 있는지 판단할 수 있다.
예를 들어, 로봇(100)은 복수의 승월 조건의 충족 여부에 기초하여 로봇(100)이 30도의 경사를 갖는 경사 면(612)을 승월할 수 있는 것으로 판단할 수 있다. 이 경우 프로세서(140)는 로봇(100)이 경계 영역으로부터 임계 거리에 도달하면 가속되도록 구동부(110)를 제어할 수 있다.
도 6b에 따르면, 제2 공간에 대한 높이 맵 데이터(620)는 바닥 면에 대응되는 제1 영역(621) 및 경사면에 대응되는 제2 영역(622)을 포함할 수 있다. 로봇(100)은 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보 및 제2 영역(622)의 경사 정보를 획득할 수 있다. 여기서, 경계 영역은 제2 영역(622)에 포함된 셀 중 4의 높이를 갖는 복수의 셀의 집합을 포함할 수 있다.
또한, 로봇(100)은 획득된 정보에 기초하여 제2 영역(622)의 타입이 슬로프 타입인 것으로 식별하는 경우 제2 영역(622)의 경사 정보, 로봇(100)의 폼 팩터(form factor), 로봇(100)의 현재 속도 및 바닥 면(621) 또는 경사 면(622)의 특성과 같은 복수의 승월 조건의 충족 여부에 기초하여 로봇(100)이 경사 면(622)을 승월할 수 있는지 판단할 수 있다.
예를 들어, 로봇(100)은 복수의 승월 조건의 충족 여부에 기초하여 로봇(100)이 50도의 경사를 갖는 경사 면(622)을 승월할 수 없는 것으로 판단할 수 있다. 이 경우 프로세서(140)는 로봇(100)이 외부 영역(622)을 회피하는 경로에 기초하여 주행하도록 구동부(110)를 제어할 수 있다.
도 7a 및 도 7b는 본 개시의 일 실시 예에 따른 주행 경로 식별 방법을 설명하기 위한 도면이다.
도 7a에 따르면, 로봇(100)은 공간(710)을 주행하며 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 현재 위치에서 목적지(X)까지 주행하며 기 할당된 태스크에 대응되는 서비스를 제공할 수 있다.
또한, 로봇(100)은 목적지까지 주행하기 위한 경로(701)에 대한 정보를 획득할 수 있다. 예를 들어, 프로세서(140)은 로봇(100)의 현재 위치 정보, 목적지의 위치 정보 및 공간(710)에 포함된 오브젝트(711, 713 등)에 대한 정보에 기초하여 주행 경로(701)를 식별할 수 있다.
구체적으로, 공간(710)에는 아래층으로 이동하는 계단(711)이 포함되어 있을 수 있다. 일 예에 따른 로봇(100)은 3D 뎁스 센서(120)를 통해 획득된 뎁스 이미지에 기초하여 계단(711)에 대응되는 영역의 경사 정보 및 경계 영역의 위치 정보를 획득할 수 있다. 예를 들어, 로봇(100)은 계단(711)이 시작되는 지점을 경계 영역으로 식별하고, 계단(711)의 경사 정보가 0도 미만인 것으로 식별하여 계단(711)에 대응되는 영역이 클리프(cliff) 타입인 것으로 식별할 수 있다.
이 경우, 프로세서(140)는 로봇(100)이 주행 과정에서 손상되는 것을 방지하기 위하여 계단(711)으로부터 임계 거리 내의 영역을 세이프 영역(712)으로 설정할 수 있다. 또한, 프로세서(140)는 로봇이 세이프 영역(712)을 주행하지 않도록 구동부(110)를 제어할 수 있다. 또한, 프로세서(140)는 바닥 면 상에 위치하는 장애물(713)에 대응되는 영역을 월(wall) 타입인 것으로 식별하고, 로봇(100)이 장애물(713)을 회피하도록 구동부(110)를 제어할 수 있다.
일 예에 따른 프로세서(140)는 로봇(100)이 세이프 영역(712) 및 장애물(713)을 회피하며 목적지까지 도달할 수 있는 주행 경로(701)를 식별할 수 있으며, 식별된 주행 경로(701)에 기초하여 로봇(100)이 주행하도록 구동부(110)를 제어할 수 있다. 결과적으로, 로봇(100)은 계단(711)과 장애물(713)만을 고려했을 때 목적지까지 도달 가능한 최단 경로가 아닌 세이프 영역(712)까지 고려하여 식별된 경로에 따라 보다 안전하게 주행하게 되므로 로봇(100)의 하드웨어 손상을 방지할 수 있다.
도 7b에 따르면, 로봇(100)은 공간(720)을 주행하며 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 현재 위치에서 목적지(X)까지 주행하며 기 할당된 태스크에 대응되는 서비스를 제공할 수 있다.
또한, 로봇(100)은 목적지까지 주행하기 위한 경로(702)에 대한 정보를 획득할 수 있다. 예를 들어, 로봇(100)은 로봇(100)의 현재 위치 정보, 목적지의 위치 정보 및 공간(720)에 포함된 오브젝트(721, 722 등)에 대한 정보에 기초하여 주행 경로(702)를 식별할 수 있다.
구체적으로, 공간(720)에는 벽면 사이에 위치한 두 개의 경사 면(721, 722)이 포함되어 있을 수 있다. 일 예에 따른 로봇(100)은 3D 뎁스 센서(120)를 통해 획득된 뎁스 이미지에 기초하여 각 경사 면(721, 722)에 대응되는 영역의 경사 정보 및 경계 영역의 위치 정보를 획득할 수 있다. 예를 들어, 로봇(100)은 각 경사 면(721, 722)이 시작되는 지점을 경계 영역으로 식별하고, 제1 경사 면(721)은 40도의 경사를, 제2 경사 면(722)은 20도의 경사를 가지는 슬로프(slope) 타입인 것으로 식별할 수 있다.
이 경우, 프로세서(140)는 로봇(100)이 승월 가능한 경사 면을 식별할 수 있다. 예를 들어, 프로세서(140)는 로봇(100)이 제1 경사 면(721)은 승월할 수 없으나, 제2 경사 면(722)은 승월할 수 있는 것으로 식별하고, 로봇(100)이 제1 경사 면(721)이 아닌 제2 경사 면(722)을 승월하여 목적지까지 도달하는 주행 경로(702)에 관한 정보를 획득할 수 있다.
여기서, 주행 경로(702)에 관한 정보는 로봇(100)이 승월할 경사 면(722)의 경사 정보, 경계 영역의 위치 정보, 승월 시 필요한 로봇(100)의 속도 및 가속 시작 위치(703)에 관한 정보 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
프로세서(140)는 로봇(100)이 가속 시작 위치(703)에 도달하면, 로봇(100)이 경사 면(722)에 대응되는 경계 영역에 도달하기 전에 승월 시 필요한 속도에 도달하도록 구동부(110)를 제어할 수 있다. 결과적으로, 로봇(100)은 현실적으로 로봇(100)이 주행 가능한 경로(702)에 기초하여 주행할 수 있으므로 로봇(100)이 주행할 수 없는 영역(721)로 진입하여 서비스 제공이 지연되는 것을 방지할 수 있다.
도 8은 본 개시의 일 실시 예에 따른 로봇의 기능적 구성을 구체적으로 설명하기 위한 도면이다.
도 8에 따르면 로봇(100)은 구동부(110), 3D 뎁스 센서(120), 메모리(130), 프로세서(140), 디스플레이(150), 사용자 인터페이스(160) 및 통신 인터페이스(170)를 포함할 수 있다. 도 8에 도시된 구성 중 도 1에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
디스플레이(150)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, QLED(Quantum dot light-emitting diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(150) 내에는 TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(150)는 플렉서블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다.
일 예에 따른 디스플레이(150)는 로봇(100)이 제공하는 서비스와 관련된 정보 또는 해당 정보를 포함하는 UI(User Interface)를 표시할 수 있다.
사용자 인터페이스(160)는 로봇(100)이 사용자와 인터렉션(Interaction)을 수행하는 데 관여하는 구성이다. 예를 들어 사용자 인터페이스(160)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
일 예에 따른 사용자 인터페이스(160)는 사용자로부터 서비스 제공에 관한 사용자 명령을 수신할 수 있으며, 프로세서(140)는 사용자 인터페이스(160)를 통해 수신된 사용자 명령에 기초하여 로봇(100)의 서비스 제공에 필요한 태스크 정보를 업데이트할 수 있다.
통신 인터페이스(170)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(170)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.
일 예에 따른 통신 인터페이스(170)는 외부 장치로부터 서비스 제공과 관련된 제어 신호를 수신할 수 있으며, 프로세서(140)는 통신 인터페이스(170)를 통해 수신된 제어 신호에 기초하여 로봇(100)의 서비스 제공에 필요한 태스크 정보를 업데이트할 수 있다.
도 9는 본 개시의 일 실시 예에 따른 제어 방법을 설명하기 위한 흐름도이다.
본 개시의 일 실시 예에 따른 제어 방법은 로봇이 공간을 주행하는 동안 주행 면의 뎁스 이미지를 획득한다(S910).
이어서, 획득된 뎁스 이미지에 기초하여 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득한다(S920).
이어서, 획득된 경계 영역의 위치 정보 및 변경된 경사 정보에 기초하여 경계 영역의 외부 영역에 대응되는 타입 정보를 획득한다(S930).
마지막으로, 외부 영역에 대응되는 타입 정보에 기초하여 로봇을 구동할 수 있다(S940).
여기서, 경계 영역의 위치 정보를 획득하는 단계(S920)는 뎁스 이미지에 기초하여 복수의 셀 및 복수의 셀 각각에 대응되는 높이 정보를 포함하는 맵 데이터를 획득하는 단계 및 획득된 맵 데이터에 포함된 셀 별 높이 정보에 기초하여 경계 영역의 위치 정보 및 변경된 경사 정보를 획득하는 단계를 포함할 수 있다.
여기서, 로봇을 구동하는 단계(S940)는 외부 영역에 포함된 셀 각각에 타입 정보를 맵핑하여 맵 데이터를 업데이트하는 단계, 업데이트된 맵 데이터에 기초하여 로봇의 주행 경로를 식별하는 단계 및 식별된 주행 경로에 기초하여 로봇을 구동하는 단계를 포함할 수 있다.
또한, 타입 정보를 획득하는 단계(S930)는 맵 데이터에 포함된 복수의 셀 각각의 높이 정보에 기초하여 복수의 셀 각각을 적어도 하나의 그룹으로 그룹핑하는 단계, 적어도 하나의 그룹에 속한 셀들의 높이 정보에 기초하여 외부 영역에 대응되는 셀들을 식별하는 단계 및 외부 영역으로 식별된 셀들의 높이 정보에 기초하여 외부 영역의 타입을 식별하는 단계를 포함할 수 있다.
또한, 타입 정보를 획득하는 단계(S930)는 변경된 경사 정보가 제1 임계값 미만이면 외부 영역을 클리프(cliff) 타입으로 식별하는 단계, 변경된 경사 정보가 제1 임계값을 초과하고 제2 임계값 미만이면 외부 영역을 슬로프(slope) 타입으로 식별하는 단계 및 변경된 경사 정보가 제2 임계값 미만이면 외부 영역을 월(wall) 타입으로 식별하는 단계를 포함할 수 있다.
여기서, 타입 정보를 획득하는 단계(S930)에서는 뎁스 이미지에 기초하여 외부 영역에 대응되는 뎁스 정보가 획득되지 않는 경우 변경된 경사 정보가 제1 임계값 미만인 것으로 식별할 수 있다.
또한, 로봇을 구동하는 단계(S940)에서는 외부 영역이 클리프 타입으로 식별되면 경계 영역으로부터 임계 거리 내의 영역을 세이프 영역(safe area)으로 설정하여 로봇이 세이프 영역으로 주행하지 않도록 구동할 수 있다.
또한, 로봇을 구동하는 단계(S940)는 외부 영역이 슬로프 타입으로 식별되면 외부 영역에 대응되는 경사 정보에 기초하여 외부 영역이 로봇이 승월 가능한 영역인지 식별하는 단계 및 외부 영역이 승월 가능한 영역으로 식별되면 경계 영역으로부터 임계 거리에 도달하면 로봇의 속도가 증가되도록 구동하는 단계를 포함할 수 있다.
여기서, 로봇을 구동하는 단계(S940)에서는 외부 영역이 승월 불가능한 영역으로 식별되면 외부 영역을 회피하는 경로에 기초하여 로봇이 주행하도록 구동할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 기존 로봇에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 기존 로봇에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 로봇에 구비된 임베디드 서버 또는 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서(140) 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 로봇(100)의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 로봇(100)에서의 처리 동작을 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해 되어져서는 안될 것이다.
100: 로봇 110: 구동부
120: 3D 뎁스 센서 130: 메모리
140: 프로세서

Claims (19)

  1. 로봇에 있어서,
    구동부;
    3D 뎁스(depth) 센서;
    적어도 하나의 명령을 저장하는 메모리; 및
    상기 구동부, 상기 3D 뎁스 센서 및 상기 메모리와 연결되어 상기 로봇을 제어하는 프로세서;를 포함하며,
    상기 프로세서는,
    상기 적어도 하나의 명령어를 실행함으로써,
    상기 로봇이 공간을 주행하는 동안, 상기 3D 뎁스 센서에 의해 촬영된 주행 면의 뎁스 이미지를 획득하고,
    상기 획득된 뎁스 이미지에 기초하여 상기 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득하고,
    상기 획득된 경계 영역의 위치 정보 및 상기 변경된 경사 정보에 기초하여 상기 경계 영역의 외부 영역에 대응되는 타입 정보를 획득하고,
    상기 타입 정보에 기초하여 상기 구동부를 제어하는, 로봇.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 뎁스 이미지에 기초하여 복수의 셀 및 상기 복수의 셀 각각에 대응되는 높이 정보를 포함하는 맵 데이터를 획득하고,
    상기 획득된 맵 데이터에 포함된 셀 별 높이 정보에 기초하여 상기 경계 영역의 위치 정보 및 상기 변경된 경사 정보를 획득하는, 로봇.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 외부 영역에 포함된 셀 각각에 상기 타입 정보를 맵핑하여 상기 맵 데이터를 업데이트하고,
    상기 업데이트된 맵 데이터에 기초하여 상기 로봇의 주행 경로를 식별하고,
    상기 식별된 주행 경로에 기초하여 상기 구동부를 제어하는, 로봇.
  4. 제2항에 있어서,
    상기 프로세서는,
    상기 맵 데이터에 포함된 복수의 셀 각각의 높이 정보에 기초하여 상기 복수의 셀 각각을 적어도 하나의 그룹으로 그룹핑하고,
    상기 적어도 하나의 그룹에 속한 셀들의 높이 정보에 기초하여 상기 외부 영역에 대응되는 셀들을 식별하고,
    상기 외부 영역으로 식별된 셀들의 높이 정보에 기초하여 상기 외부 영역의 타입을 식별하는, 로봇.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 변경된 경사 정보가 제1 임계값 미만이면, 상기 외부 영역을 클리프(cliff) 타입으로 식별하고,
    상기 변경된 경사 정보가 상기 제1 임계값을 초과하고 제2 임계값 미만이면, 상기 외부 영역을 슬로프(slope) 타입으로 식별하고,
    상기 변경된 경사 정보가 상기 제2 임계값 이상이면, 상기 외부 영역을 월(wall) 타입으로 식별하는, 로봇.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 뎁스 이미지에 기초하여 상기 외부 영역에 대응되는 뎁스 정보가 획득되지 않는 경우 상기 변경된 경사 정보가 상기 제1 임계값 미만인 것으로 식별하는, 로봇.
  7. 제5항에 있어서,
    상기 프로세서는,
    상기 외부 영역이 상기 클리프 타입으로 식별되면, 상기 경계 영역으로부터 임계 거리 내의 영역을 세이프 영역(safe area)으로 설정하여 상기 로봇이 상기 세이프 영역으로 주행하지 않도록 상기 구동부를 제어하는, 로봇.
  8. 제5항에 있어서,
    상기 프로세서는,
    상기 외부 영역이 상기 슬로프 타입으로 식별되면, 상기 외부 영역에 대응되는 경사 정보에 기초하여 상기 외부 영역이 상기 로봇이 승월 가능한 영역인지 식별하고,
    상기 외부 영역이 승월 가능한 영역으로 식별되면, 상기 경계 영역으로부터 임계 거리에 도달하면 상기 로봇의 속도가 증가되도록 상기 구동부를 제어하는, 로봇.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 외부 영역이 승월 불가능한 영역으로 식별되면, 상기 외부 영역을 회피하는 경로에 기초하여 상기 로봇이 주행하도록 상기 구동부를 제어하는, 로봇.
  10. 로봇의 프로세서에 의해 실행되는 경우 상기 로봇이 동작을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독가능 기록매체에 있어서, 상기 동작은,
    상기 로봇이 공간을 주행하는 동안 주행 면의 뎁스 이미지를 획득하는 단계;
    상기 획득된 뎁스 이미지에 기초하여 상기 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득하는 단계;
    상기 획득된 경계 영역의 위치 정보 및 상기 변경된 경사 정보에 기초하여 상기 경계 영역의 외부 영역에 대응되는 타입 정보를 획득하는 단계; 및
    상기 타입 정보에 기초하여 상기 로봇을 구동하는 단계;를 포함하는, 컴퓨터 판독가능 기록매체.
  11. 로봇의 제어 방법에 있어서,
    상기 로봇이 공간을 주행하는 동안 주행 면의 뎁스 이미지를 획득하는 단계;
    상기 획득된 뎁스 이미지에 기초하여 상기 주행 면의 경사 정보가 변경되는 경계 영역의 위치 정보를 획득하는 단계;
    상기 획득된 경계 영역의 위치 정보 및 상기 변경된 경사 정보에 기초하여 상기 경계 영역의 외부 영역에 대응되는 타입 정보를 획득하는 단계; 및
    상기 타입 정보에 기초하여 상기 로봇을 구동하는 단계;를 포함하는, 제어 방법.
  12. 제11항에 있어서,
    상기 경계 영역의 위치 정보를 획득하는 단계는,
    상기 뎁스 이미지에 기초하여 복수의 셀 및 상기 복수의 셀 각각에 대응되는 높이 정보를 포함하는 맵 데이터를 획득하는 단계; 및
    상기 획득된 맵 데이터에 포함된 셀 별 높이 정보에 기초하여 상기 경계 영역의 위치 정보 및 상기 변경된 경사 정보를 획득하는 단계;를 포함하는, 제어 방법.
  13. 제12항에 있어서,
    상기 로봇을 구동하는 단계는,
    상기 외부 영역에 포함된 셀 각각에 상기 타입 정보를 맵핑하여 상기 맵 데이터를 업데이트하는 단계;
    상기 업데이트된 맵 데이터에 기초하여 상기 로봇의 주행 경로를 식별하는 단계; 및
    상기 식별된 주행 경로에 기초하여 상기 로봇을 구동하는 단계;를 포함하는, 제어 방법.
  14. 제12항에 있어서,
    상기 외부 영역에 대응되는 타입 정보를 획득하는 단계는,
    상기 맵 데이터에 포함된 복수의 셀 각각의 높이 정보에 기초하여 상기 복수의 셀 각각을 적어도 하나의 그룹으로 그룹핑하는 단계;
    상기 적어도 하나의 그룹에 속한 셀들의 높이 정보에 기초하여 상기 외부 영역에 대응되는 셀들을 식별하는 단계; 및
    상기 외부 영역으로 식별된 셀들의 높이 정보에 기초하여 상기 외부 영역의 타입을 식별하는 단계;를 포함하는, 제어 방법.
  15. 제11항에 있어서,
    상기 외부 영역에 대응되는 타입 정보를 획득하는 단계는,
    상기 변경된 경사 정보가 제1 임계값 미만이면, 상기 외부 영역을 클리프(cliff) 타입으로 식별하는 단계;
    상기 변경된 경사 정보가 상기 제1 임계값을 초과하고 제2 임계값 미만이면, 상기 외부 영역을 슬로프(slope) 타입으로 식별하는 단계; 및
    상기 변경된 경사 정보가 상기 제2 임계값 미만이면. 상기 외부 영역을 월(wall) 타입으로 식별하는 단계;를 포함하는, 제어 방법.
  16. 제15항에 있어서,
    상기 외부 영역에 대응되는 타입 정보를 획득하는 단계는,
    상기 뎁스 이미지에 기초하여 상기 외부 영역에 대응되는 뎁스 정보가 획득되지 않는 경우 상기 변경된 경사 정보가 상기 제1 임계값 미만인 것으로 식별하는, 제어 방법.
  17. 제15항에 있어서,
    상기 로봇을 구동하는 단계는,
    상기 외부 영역이 상기 클리프 타입으로 식별되면, 상기 경계 영역으로부터 임계 거리 내의 영역을 세이프 영역(safe area)으로 설정하여 상기 로봇이 상기 세이프 영역으로 주행하지 않도록 구동하는, 제어 방법.
  18. 제15항에 있어서,
    상기 로봇을 구동하는 단계는,
    상기 외부 영역이 상기 슬로프 타입으로 식별되면, 상기 외부 영역에 대응되는 경사 정보에 기초하여 상기 외부 영역이 상기 로봇이 승월 가능한 영역인지 식별하는 단계; 및
    상기 외부 영역이 승월 가능한 영역으로 식별되면, 상기 경계 영역으로부터 임계 거리에 도달하면 상기 로봇의 속도가 증가되도록 구동하는 단계;를 포함하는, 제어 방법.
  19. 제18항에 있어서,
    상기 로봇을 구동하는 단계는,
    상기 외부 영역이 승월 불가능한 영역으로 식별되면, 상기 외부 영역을 회피하는 경로에 기초하여 상기 로봇이 주행하도록 구동하는, 제어 방법.
KR1020210119323A 2021-09-07 2021-09-07 로봇 및 그 제어 방법 KR20230036447A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210119323A KR20230036447A (ko) 2021-09-07 2021-09-07 로봇 및 그 제어 방법
EP22867487.5A EP4309856A1 (en) 2021-09-07 2022-04-26 Robot and method for controlling same
PCT/KR2022/005909 WO2023038218A1 (ko) 2021-09-07 2022-04-26 로봇 및 그 제어 방법
CN202280042432.1A CN117480036A (zh) 2021-09-07 2022-04-26 机器人及其控制方法
US17/843,394 US20230070341A1 (en) 2021-09-07 2022-06-17 Robot and controlling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210119323A KR20230036447A (ko) 2021-09-07 2021-09-07 로봇 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20230036447A true KR20230036447A (ko) 2023-03-14

Family

ID=85502991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210119323A KR20230036447A (ko) 2021-09-07 2021-09-07 로봇 및 그 제어 방법

Country Status (2)

Country Link
KR (1) KR20230036447A (ko)
WO (1) WO2023038218A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101371038B1 (ko) * 2011-10-26 2014-03-10 엘지전자 주식회사 이동 로봇 및 이의 목표물 추적 방법
KR101897775B1 (ko) * 2016-03-04 2018-09-12 엘지전자 주식회사 이동 로봇 및 그 제어방법
KR102035018B1 (ko) * 2016-12-06 2019-10-22 주식회사 유진로봇 청소 기능 제어 장치 및 이를 구비하는 청소 로봇
KR20190002152A (ko) * 2017-06-29 2019-01-08 엘지전자 주식회사 진입제한영역을 식별하는 방법 및 이를 구현하는 로봇
EP3776128B1 (en) * 2018-03-26 2024-02-21 Jabil Inc. Apparatus, system, and method of using depth assessment for autonomous robot navigation

Also Published As

Publication number Publication date
WO2023038218A1 (ko) 2023-03-16

Similar Documents

Publication Publication Date Title
US11320836B2 (en) Algorithm and infrastructure for robust and efficient vehicle localization
US10769793B2 (en) Method for pitch angle calibration based on 2D bounding box and its 3D distance for autonomous driving vehicles (ADVs)
EP3361278B1 (en) Autonomous vehicle localization based on walsh kernel projection technique
US11915501B2 (en) Object detection method and apparatus, electronic device, and storage medium
US10936903B2 (en) Technologies for labeling and validating human-machine interface high definition-map data
US11537149B2 (en) Route generation device, moving body, and program
CN109253735B (zh) 路径规划方法、装置及存储介质
EP4309856A1 (en) Robot and method for controlling same
KR102452556B1 (ko) 차량 주차 제어 장치, 그를 포함한 시스템 및 그 방법
US20200233429A1 (en) Comprehensive and efficient method to incorporate map features for object detection with lidar
US20210365038A1 (en) Local sensing based autonomous navigation, and associated systems and methods
US20190325234A1 (en) Lane post-processing in an autonomous driving vehicle
US9971470B2 (en) Navigation application with novel declutter mode
US11055857B2 (en) Compressive environmental feature representation for vehicle behavior prediction
US20220075387A1 (en) Electronic device and control method thereof
JP2021144743A (ja) 3次元データ生成装置、3次元データ生成方法、3次元データ生成プログラム及び3次元データ生成プログラムを記録したコンピュータ読み取り可能な記録媒体
KR20230036447A (ko) 로봇 및 그 제어 방법
KR20130069519A (ko) 내비게이션에서의 안내 상황에 따른 지도 표현 장치 및 방법
EP4371714A1 (en) Robot and control method therefor
US20230266143A1 (en) Electronic apparatus and controlling method thereof
US20220284610A1 (en) Information processing apparatus, information processing method, and information processing program
KR20230014031A (ko) 로봇 및 그 제어 방법
KR20230057062A (ko) 로봇 및 그 제어 방법