KR20210141294A - 전자 장치 및 그의 제어 방법 - Google Patents

전자 장치 및 그의 제어 방법 Download PDF

Info

Publication number
KR20210141294A
KR20210141294A KR1020200114134A KR20200114134A KR20210141294A KR 20210141294 A KR20210141294 A KR 20210141294A KR 1020200114134 A KR1020200114134 A KR 1020200114134A KR 20200114134 A KR20200114134 A KR 20200114134A KR 20210141294 A KR20210141294 A KR 20210141294A
Authority
KR
South Korea
Prior art keywords
map
information
robot
drivability
mapped
Prior art date
Application number
KR1020200114134A
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 US17/208,231 priority Critical patent/US11880209B2/en
Priority to PCT/KR2021/004525 priority patent/WO2021230503A1/en
Priority to EP21804421.2A priority patent/EP4070169B1/en
Publication of KR20210141294A publication Critical patent/KR20210141294A/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/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
    • 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
    • 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
    • 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/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D2201/0217

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

본 개시에서는 전자 장치 및 그 제어 방법이 제공된다. 본 개시의 전자 장치는 통신부, 복수의 로봇 각각의 특성 정보가 저장된 메모리 및 적어도 하나의 외부 장치가 주변을 센싱하여 획득한 센싱 데이터를 외부 장치로부터 통신부를 통해 수신하고, 센싱 데이터에 기초하여 외부 장치가 위치하는 공간에 대한 적어도 하나의 맵을 생성하고, 생성된 맵 및 복수의 로봇 중 하나의 로봇의 특성 정보에 기초하여 로봇의 주행을 위한 주행성 맵을 생성하고, 생성된 주행성 맵을 로봇으로 전송하도록 통신부를 제어하는 프로세서를 포함한다.

Description

전자 장치 및 그의 제어 방법 {ELECTRONIC APPARATUS AND CONTROLLING METHOD THEREOF}
본 개시는 전자 장치 및 그의 제어 방법에 관한 것으로, 보다 상세하게는 로봇의 주행성 맵을 제공하는 전자 장치 및 그의 제어 방법에 관한 것이다.
최근 자율 주행(또는 비행, 보행 등, 이하 주행이라 함)이 가능한 로봇의 개발이 활발히 진행되고 있다. 로봇이 도착지까지 주행을 하기 위해서는 주행성 맵(traversability map) 상에서 경로를 계획할 필요가 있다.
주행성 맵은 로봇의 주행에 영향을 주는 다양한 환경 요소(예: 장애물 등)를 반영한 정보를 포함할 수 있다. 주행성 맵을 보다 효율적으로 관리하기 위해 정보의 추가, 삭제, 변경 등의 처리는 특정 영역 별로 수행될 수 있다. 여기서, 환경 요소가 로봇의 주행에 영향을 주는 정도는 로봇의 특성에 따라 달라질 수 있다는 점에서, 로봇 별로 주행성 맵을 최적화하는 문제가 존재하게 된다.
또한, 로봇의 주행에 영향을 주는 환경 요소의 변동이 발생하는 경우, 주행성 맵 또한 이러한 정보가 갱신될 필요가 있다. 이때, 변동된 환경 요소는 그 위치 뿐만 아니라 주변 영역에 대해서까지 로봇의 주행에 영향을 줄 수 있다는 점에서, 주행성 맵에서 업데이트될 영역의 범위를 최적화하는 문제가 존재하게 된다.
본 개시는 상술한 필요성에 의해 안출된 것으로, 본 개시의 목적은 로봇에게 최적화된 주행성 맵을 효율적으로 생성 및 관리하는 전자 장치 및 그의 제어 방법을 제공함에 있다.
본 개시의 일 실시 예에 따른 전자 장치는 통신부, 복수의 로봇 각각의 특성 정보가 저장된 메모리 및 적어도 하나의 외부 장치가 주변을 센싱하여 획득한 센싱 데이터를 외부 장치로부터 통신부를 통해 수신하고, 센싱 데이터에 기초하여 외부 장치가 위치하는 공간에 대한 적어도 하나의 맵을 생성하고, 생성된 맵 및 복수의 로봇 중 하나의 로봇의 특성 정보에 기초하여 로봇의 주행을 위한 주행성 맵을 생성하고, 생성된 주행성 맵을 로봇으로 전송하도록 통신부를 제어하는 프로세서를 포함할 수 있다.
한편, 복수의 로봇 각각의 특성 정보는, 복수의 로봇 각각의 사이즈, 높이 및 주행 타입에 대한 정보를 포함하고, 적어도 하나의 맵은, 오브젝트가 존재하는 확률 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 오브젝트의 높이를 나타내는 높이 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함할 수 있다.
한편, 프로세서는, 복수의 셀 각각에 맵핑된 정보 및 로봇의 특성 정보에 기초하여, 복수의 셀 각각에서 로봇이 주행 가능한지 또는 불가능한지를 판단하고, 로봇의 주행 가능 여부를 나타내는 주행성 정보가 각각 맵핑된 복수의 셀을 포함하는 주행성 맵을 생성할 수 있다.
한편, 프로세서는, 외부 장치로부터 후속 센싱 데이터를 통신부를 통해 수신하고, 후속 센싱 데이터에 기초하여 생성된 맵의 복수의 셀 중 적어도 하나의 셀에 맵핑된 확률 정보 및 높이 정보 중 적어도 하나를 업데이트하여, 생성된 맵을 업데이트할 수 있다.
한편, 프로세서는, 생성된 맵 및 업데이트된 맵에 기초하여, 복수의 타일로 구분되는 주행성 맵에서, 복수의 타일 중 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하고, 로봇이 주행성 맵을 업데이트하도록, 업데이트된 타일에 포함된 주행성 정보를 로봇으로 전송하도록 통신부를 제어할 수 있다.
한편, 프로세서는, 생성된 맵에 맵핑된 정보 및 업데이트된 맵에 맵핑된 정보를 셀 단위로 비교하여, 맵핑된 정보가 변경된 적어도 하나의 셀을 판단하고, 업데이트된 맵의 각 타일 별로, 타일에서 맵핑된 정보가 변경된 적어도 하나의 셀을 포함하는 최소 사이즈의 제1 영역을 판단하고, 로봇의 사이즈에 기초하여 제1 영역을 포함하는 제2 영역 및 제2 영역을 포함하는 제3 영역을 판단하고, 로봇의 사이즈 및 제3 영역의 복수의 셀 각각에 맵핑된 정보에 기초하여, 제2 영역의 복수의 셀 각각의 주행성 정보를 판단하고, 판단된 주행성 정보에 기초하여 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트할 수 있다.
한편, 프로세서는, 타일 및 타일 주변의 적어도 하나의 타일 중에서, 제2 영역의 적어도 하나의 셀을 포함하는 적어도 하나의 타일을 판단하고, 판단된 주행성 정보에 기초하여, 판단된 타일의 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트할 수 있다.
한편, 적어도 하나의 맵은, 구역에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 자기장의 방향 및 세기에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함할 수 있다.
한편, 주행 타입은, 휠 타입, 비행 타입 및 보행 타입 중 적어도 하나일 수 있다.
본 개시의 일 실시 예에 따른 복수의 로봇 각각의 특성 정보를 저장하는 전자 장치의 제어 방법은, 적어도 하나의 외부 장치가 주변을 센싱하여 획득한 센싱 데이터를 외부 장치로부터 수신하는 단계, 센싱 데이터에 기초하여 외부 장치가 위치하는 공간에 대한 적어도 하나의 맵을 생성하는 단계, 생성된 맵 및 복수의 로봇 중 하나의 로봇의 특성 정보에 기초하여 로봇의 주행을 위한 주행성 맵을 생성하는 단계 및 생성된 주행성 맵을 로봇으로 전송하는 단계를 포함할 수 있다.
한편, 복수의 로봇 각각의 특성 정보는, 복수의 로봇 각각의 사이즈, 높이 및 주행 타입에 대한 정보를 포함하고, 적어도 하나의 맵은, 오브젝트가 존재하는 확률 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 오브젝트의 높이를 나타내는 높이 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함할 수 있다.
한편, 주행성 맵을 생성하는 단계는, 복수의 셀 각각에 맵핑된 정보 및 로봇의 특성 정보에 기초하여, 복수의 셀 각각에서 로봇이 주행 가능한지 또는 불가능한지를 판단하는 단계 및 로봇의 주행 가능 여부를 나타내는 주행성 정보가 각각 맵핑된 복수의 셀을 포함하는 주행성 맵을 생성하는 단계를 포함할 수 있다.
한편, 제어 방법은 외부 장치로부터 후속 센싱 데이터를 수신하는 단계 및 후속 센싱 데이터에 기초하여 생성된 맵의 복수의 셀 중 적어도 하나의 셀에 맵핑된 확률 정보 및 높이 정보 중 적어도 하나를 업데이트하여, 생성된 맵을 업데이트하는 단계를 더 포함할 수 있다.
한편, 제어 방법은 생성된 맵 및 업데이트된 맵에 기초하여, 복수의 타일로 구분되는 주행성 맵에서, 복수의 타일 중 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하는 단계 및 로봇이 주행성 맵을 업데이트하도록, 업데이트된 타일에 포함된 주행성 정보를 로봇으로 전송하는 단계를 더 포함할 수 있다.
한편, 주행성 정보를 업데이트하는 단계는, 생성된 맵에 맵핑된 정보 및 업데이트된 맵에 맵핑된 정보를 셀 단위로 비교하여, 맵핑된 정보가 변경된 적어도 하나의 셀을 판단하는 단계, 업데이트된 맵의 각 타일 별로, 타일에서 맵핑된 정보가 변경된 적어도 하나의 셀을 포함하는 최소 사이즈의 제1 영역을 판단하는 단계, 로봇의 사이즈에 기초하여 제1 영역을 포함하는 제2 영역 및 제2 영역을 포함하는 제3 영역을 판단하는 단계, 로봇의 사이즈 및 제3 영역의 복수의 셀 각각에 맵핑된 정보에 기초하여, 제2 영역의 복수의 셀 각각의 주행성 정보를 판단하는 단계 및 판단된 주행성 정보에 기초하여 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하는 단계를 포함할 수 있다.
한편, 주행성 정보를 업데이트하는 단계는, 타일 및 타일 주변의 적어도 하나의 타일 중에서, 제2 영역의 적어도 하나의 셀을 포함하는 적어도 하나의 타일을 판단하고, 판단된 주행성 정보에 기초하여, 판단된 타일의 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트 할 수 있다.
한편, 적어도 하나의 맵은, 구역에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 자기장의 방향 및 세기에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함할 수 있다.
한편, 주행 타입은, 휠 타입, 비행 타입 및 보행 타입 중 적어도 하나일 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 로봇에게 최적화된 주행성 맵을 효율적으로 생성 및 관리하는 전자 장치 및 그의 제어 방법을 제공할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 시스템을 설명하기 위한 도면이다.
도 2a는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 2b는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시 예에 따른 맵에 대응되는 공간을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 스코어 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 6a는 본 개시의 일 실시 예에 따른 스코어 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 6b는 본 개시의 일 실시 예에 따른 스코어 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 주행성 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시 예에 따른 주행성 맵에 대응되는 공간을 설명하기 위한 도면이다.
도 9a는 본 개시의 일 실시 예에 따른 점유 맵 및 높이 맵을 이용하여 로봇의 주행성 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 9b는 본 개시의 일 실시 예에 따른 제1 로봇에 대한 주행성 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 9c는 본 개시의 일 실시 예에 따른 제2 로봇에 대한 주행성 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 10a는 본 개시의 일 실시 예에 따른 제1 로봇에 대한 주행성 맵을 설명하기 위한 도면이다.
도 10b는 본 개시의 일 실시 예에 따른 제2 로봇에 대한 주행성 맵을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시 예에 따른 주행성 맵을 업데이트하는 방법을 설명하기 위한 흐름도이다.
도 12는 본 개시의 일 실시 예에 따른 주행성 맵을 업데이트하는 방법을 설명하기 위한 도면이다.
도 13은 본 개시의 일 실시 예에 따른 주행성 맵을 업데이트한 결과를 설명하기 위한 도면이다.
도 14는 본 개시의 일 실시 예에 따른 전자 장치의 부가적인 구성을 설명하기 위한 블록도이다.
도 15는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. 덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 상기 구성요소들을 한정하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 상기 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 상기 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 시스템을 설명하기 위한 도면이다.
도 1을 참조하여, 본 개시의 일 실시 예에 따른 시스템(1)은 전자 장치(100) 및 로봇(200)을 포함할 수 있다. 여기서, 전자 장치(100) 및 로봇(200)은 네트워크를 통해 서로 연결될 수 있다.
전자 장치(100)는 다양한 로봇(200)의 주행성 맵을 관리(예: 생성, 업데이트, 수정, 삭제 등)할 수 있다. 또한, 전자 장치(100)는 다양한 로봇(200)의 주행성 맵 중에서 특정한 로봇의 주행성 맵을 해당 로봇으로 전송할 수 있다.
이를 위해, 전자 장치(100)는 서버 장치로 구현될 수 있으나 이는 일 실시 예일 뿐이며, 전자 장치(100)는 로봇, 데스크탑 PC(desktop personal computer), 랩탑(laptop) PC, 워크스테이션(workstation), 스마트폰(smartphone), 태블릿(tablet) PC, 이동 전화기(mobile phone), PDA(personal digital assistant), PMP(portable multimedia player), 웨어러블 장치(wearable device), 또는 가전 제품(home appliance) 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 예를 들면, 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다. 가전 제품은, 예를 들면, TV(television), DVD(digital video disk) 플레이어, 오디오, 냉장고, 공기조화장치, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync™, 애플TV™, 또는 구글 TV™), 게임 콘솔(예: Xbox™, PlayStation™), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
주행성 맵(Traversability Map; TM)은 로봇이 목적지까지 주행하기 위해 이용되는 디지털 맵이며, 주행성 맵은 적어도 하나의 셀(cell)을 포함할 수 있다. 셀(cell)은 현실 공간 상의 특정한 위치(또는 영역)을 나타내는 맵의 기본 단위를 의미한다. 예를 들어, 셀은 각각 동일한 크기 및 형태(예: 사각형, 삼각형, 육각형, 다각형, 원형, 타원형 등)를 가지며, 맵에서 격자 형태로 배치될 수 있다. 즉, 맵 상의 각 셀은 현실 공간 상의 각 위치(또는 영역)에 대응될 수 있다.
주행성 맵에 포함된 각각의 셀에는 주행성 정보가 맵핑(mapping)될 수 있다. 주행성 정보는 로봇이 주행 가능한 위치인지 또는 로봇이 주행 불가능한 위치인지를 나타내는 정보이며, 주행성 정보를 통해 로봇이 주행성 정보가 맵핑된 셀에 대응되는 위치를 주행할 수 있는지 여부를 식별하거나 로봇의 주행 경로를 계획할 수 있다.
로봇(200)은 스스로 주행할 수 있는 장치일 수 있다. 예를 들어, 로봇(200)은 바닥의 먼지 등을 제거하는 로봇 청소기(예: 제1 로봇(200-1)), 사용자에게 접근하여 다양한 정보를 제공하는 가이드 로봇(예: 제2 로봇(200-2)) 등으로 구현될 수 있으나, 이는 일 실시 예일 뿐이며 다양한 형태의 장치로 구현될 수 있다.
로봇(200)은 주행성 맵 상에서 주행 경로를 결정(또는 계획)할 수 있다. 그리고, 로봇(200)은 주행 경로에 따라 주행할 수 있다. 즉, 주행 경로는 로봇(200)의 현재 위치를 기점으로 로봇(200)이 목적지까지 순차적으로 통과해야 하는 위치(또는 지점)를 나타낼 수 있다. 이를 위해, 로봇(200)은 예를 들어 통신부, 메모리, 센서, 구동부 등을 포함할 수 있다. 통신부는 전자 장치(100)와 다양한 방식의 통신을 수행하기 위한 회로를 포함할 수 있으며, 전자 장치(100)로부터 주행성 맵을 수신할 수 있다. 메모리는 수신된 주행성 맵을 저장할 수 있다. 센서는 다양한 종류의 센싱 데이터를 획득하기 위한 회로를 포함할 수 있으며, 예를 들어, 센서는 로봇(200)의 위치, 로봇(200)의 주변 환경에 대한 이미지 또는 객체와의 거리 중에서 적어도 하나를 획득할 수 있다. 구동부는 로봇(200)의 주행 타입에 따른 다양한 구동 장치 및 구동 장치로 에너지를 공급하는 전원부를 포함할 수 있다.
구체적으로, 로봇(200)은 전자 장치(100)로부터 수신된 주행성 맵 상에서 출발지에 대응되는 셀 및 목적지(또는 도착지)에 대응되는 셀을 식별할 수 있다. 여기서, 출발지에 대응되는 셀은 주행성 맵에 포함된 셀 중에서 로봇(200)의 위치를 나타내는 셀이며, 목적지에 대응되는 셀은 주행성 맵에 포함된 셀 중에서 목적지의 위치를 나타내는 셀일 수 있다.
여기서, 로봇(200)은 출발지로서 로봇(200)의 위치를 식별하고, 목적지를 식별할 수 있다. 예를 들어, 로봇(200)은 로봇(200)에 구비된 센서(예: GPS(Global Positioning System), 관성 측정 장치(IMU, Inertial Measurement Unit) 둥) 또는 외부 장치(예: 삼변 측량을 위한 통신 장치, 외부에서 로봇(200)이 위치한 공간을 센싱하는 센싱 장치 등)를 통해 로봇(200)의 위치를 식별할 수 있다. 그리고, 로봇(200)은 사용자 입력(예: 터치 입력 등)에 따라 수신되는 위치, 로봇(200)을 호출한 사용자의 주변 위치, 또는 임의의 위치를 목적지로 식별할 수 있다. 이 경우, 로봇(200)은 주행성 맵에 포함된 셀 중에서 로봇(200)의 위치에 대응되는 셀 및 목적지에 대응되는 셀을 식별할 수 있다.
그리고, 로봇(200)은 주행성 맵의 주행성 정보에 기초하여 식별된 로봇(200)이 주행 가능한 셀 중에서, 출발지에 대응되는 셀 및 목적지에 대응되는 셀을 이어주는(연결하는) 셀을 포함하는 영역을 주행 경로로서 결정(또는 계획)할 수 있다. 이때, 최단 거리의 주행 경로를 탐색하는 알고리즘, 주행 방향의 전환을 최소화하는 경로를 탐색하는 알고리즘 등의 다양한 경로 탐색 알고리즘이 이용될 수 있다.
이 경우, 로봇(200)은 주행 경로를 따라 목적지까지 주행할 수 있다. 구체적으로, 로봇(200)은 로봇(200)의 위치 및 로봇(200)의 위치에 대응되는 셀을 주기적으로 판단하면서, 주행 경로에 포함되는 셀 중에서 로봇(200)의 위치에 대응되는 셀의 다음 순서의 셀(즉, 로봇(200)의 위치에 대응되는 셀과 인접한 셀)에 대응되는 위치를 향하도록 로봇(200)의 주행 방향을 조정하면서 주행할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치(100)는 로봇(200)의 다양한 특성 정보에 기초한 주행성 맵을 로봇(200)으로 제공할 수 있다. 로봇(200)의 특성 정보는 로봇(200)의 형태(예: 로봇(200)의 사이즈, 로봇(200)의 높이 등), 로봇(200)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등) 등의 특성을 나타내는 정보이다. 로봇(200)의 사이즈 이하의 사이즈를 갖는 영역(즉, 오브젝트가 존재하지 않는 영역)에 대해서는 로봇(200)의 주행이 불가능한 것과 같이, 로봇(200)의 특성은 로봇(200)의 주행 가능한 영역에 영향을 끼칠 수 있다. 또한, 전자 장치(100)는 주행성 맵에 대응되는 공간의 환경 변화가 감지되면 환경 변화가 감지된 위치를 기초로 주행성 맵의 일부분을 업데이트할 수 있다. 이는 주행성 맵에 포함된 전체 셀 중에서 환경 변화의 영향을 받는 셀을 지정하여 업데이트함으로써 리소스의 효율화를 도모하기 위함이다.
이하에서는 첨부된 도면을 참조하여 본 개시에 대한 구체적인 내용을 설명하도록 한다.
도 2a는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다. 도 2b는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 도면이다.
도 2a 및 도 2b를 참조하여, 본 개시의 일 실시 예에 따른 전자 장치(100)는 통신부(110), 메모리(120), 프로세서(130)를 포함할 수 있다.
통신부(110)는 로봇(200) 또는 외부 장치(300)와 통신을 수행하여, 정보를 전송하거나 정보를 수신할 수 있다. 예를 들어, 통신부(110)는 적어도 하나의 맵(10)을 생성(또는 업데이트)하기 위해 외부 장치(300)로부터 센싱 데이터 또는 관련 데이터를 수신할 수 있다. 또한, 통신부(110)는 로봇(200)으로 주행성 맵(20) 또는 관련 데이터를 전송할 수 있다.
메모리(120)에는 복수의 로봇(200) 각각의 특성 정보가 저장될 수 있다. 여기에서, 복수의 로봇(200) 각각의 특성 정보는 복수의 로봇(200) 각각의 사이즈, 높이 및 주행 타입에 대한 정보를 포함할 수 있다. 즉, 개별적인 로봇(200)의 특성 정보는 해당 로봇(200)의 사이즈, 로봇(200)의 높이 및 로봇(200)의 주행 타입에 대한 정보를 포함할 수 있다. 다만, 이는 일 실시 예일 뿐이며, 로봇(200)의 특성 정보는 로봇(200)의 주행 가능한 영역에 영향을 끼칠 수 있는 다양한 정보를 포함할 수 있다.
프로세서(130)는 적어도 하나의 외부 장치(300)가 주변을 센싱하여 획득한 센싱 데이터를 외부 장치(300)로부터 통신부(110)를 통해 수신하고, 센싱 데이터에 기초하여 외부 장치(300)가 위치하는 공간에 대한 적어도 하나의 맵(10)을 생성하고, 생성된 맵(10) 및 복수의 로봇 중 하나의 로봇(200)의 특성 정보에 기초하여 로봇(200)의 주행을 위한 주행성 맵(20)을 생성하고, 생성된 주행성 맵(20)을 로봇(200)으로 전송하도록 통신부(110)를 제어할 수 있다.
구체적으로, 프로세서(130)는 적어도 하나의 외부 장치(300)가 주변을 센싱하여 획득한 센싱 데이터를 외부 장치(300)로부터 통신부(110)를 통해 수신할 수 있다.
외부 장치(300)는 외부 장치(300)가 위치하는 주변 공간의 환경을 센싱하여 센싱 데이터를 획득할 수 있는 장치이다. 외부 장치(300)는 전자 장치(100)로 통신을 통해 센싱 데이터를 전송할 수 있다. 이를 위해, 외부 장치(300)는 센서 및 통신부를 포함할 수 있다. 센서는 주변 공간의 다양한 환경을 센싱하여 센싱 데이터를 획득하기 위한 것으로, 예를 들어, 센서는 외부 장치(300)의 주변 공간에 존재하는 오브젝트와의 거리를 측정하는 거리 센서(예: 레이더(Radar, Radio Detection And Ranging), 라이다(Lidar, Light Detection and Ranging), 초음파 센서 등), 외부 장치(300)의 주변 공간에 대한 이미지를 획득하는 카메라(예: 모노 카메라, 스테레오 카메라 등), 뎁스 카메라, 지자기 센서 등 중 적어도 하나를 포함할 수 있다. 통신부는 전자 장치(100)와 다양한 통신 방식(예: WiFi, Bluetooth, ZigBee, UWB(Ultra-Wideband) 등)에 따른 통신을 수행하여 전자 장치(100)로 센싱 데이터를 전송할 수 있으며, 이를 위해 통신부는 각 통신 방식에 대응되는 회로를 포함할 수 있다.
한편 도 2b에서는, 외부 장치(300)는 주행성 맵(20)을 제공받기 위한 로봇(200)과는 별개의 로봇인 것으로 도시하였으나 이는 설명의 편의를 위한 것이며, 외부 장치(300)는 주행성 맵(20)을 제공받기 위한 로봇(200)일 수 있다. 즉, 전자 장치(100)는 로봇(200)으로부터 센싱 데이터를 수신하고, 수신된 센싱 데이터에 기초해 적어도 하나의 맵(10)을 생성하고, 적어도 하나의 맵(10) 및 로봇(200)의 특성 정보에 기초해 생성된 로봇(200)의 주행성 맵(20)을 로봇(200)으로 전송할 수 있다. 또한, 외부 장치(300)는 로봇이 아닌 다른 전자 장치(예: TV, 스마트폰, CCTV, 냉장고 등)로 구현되는 것 또한 가능하다.
그리고, 프로세서(130)는 센싱 데이터에 기초하여 외부 장치(300)가 위치하는 공간에 대한 적어도 하나의 맵(10)을 생성(또는 업데이트)할 수 있다. 이때, 하나 이상의 외부 장치(300)에서 획득한 센싱 데이터를 통합하여 맵(10)을 생성(또는 업데이트)할 수 있다. 이는 주행성 맵(20)의 기초가 되는 맵(10)의 정확도를 향상시키기 위한 것이다. 이에 대해서는 도 3 및 도 4를 참조하여 함께 설명하도록 한다.
도 3은 본 개시의 일 실시 예에 따른 맵에 대응되는 공간을 설명하기 위한 도면이다. 도 4는 본 개시의 일 실시 예에 따른 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 3을 참조하여, 예를 들어 외부 장치(300)는 외부 장치(300)가 위치하는 공간(310)에서 주변의 환경(예: 침대 등의 오브젝트(315))을 센싱하여 센싱 데이터를 획득하고, 획득된 센싱 데이터를 전자 장치(100)로 전송할 수 있다. 도 4를 참조하여, 전자 장치(100)는 외부 장치(300)로부터 수신된 센싱 데이터(예: 이미지, 거리 정보 등)에 기초하여 외부 장치(300)가 위치하는 공간(310)에 대한 맵(410)을 생성할 수 있다. 이 경우, 맵(410)은 복수의 셀을 포함할 수 있으며, 각 셀(430-m)은 공간(310)의 고유한 위치(또는 영역)에 대응될 수 있다. 한편, 맵(410)은 복수의 타일로 구분될 수 있다. 각 타일(420-n)은 적어도 하나의 셀을 포함할 수 있다. 즉, 맵(410)은 그 하위 개념으로 타일을 포함하며, 타일은 그 하위 개념으로 셀을 포함할 수 있다. 이는 후술하는 적어도 하나의 맵(10), 주행성 맵(20)에도 타일 및 셀에 대한 설명이 동일하게 적용될 수 있다.
다시 도 2b를 참조하여, 적어도 하나의 맵(10)은, 오브젝트가 존재하는 확률 정보가 각각 맵핑된 복수의 셀을 포함하는 제1 맵(10-1), 오브젝트의 높이(즉, z축 상의 높이)를 나타내는 높이 정보가 각각 맵핑된 복수의 셀을 포함하는 제2 맵(10-2), 구역에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 제3 맵(10-3) 및 자기장의 방향 및 세기에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 제4 맵(10-4) 중에서 적어도 하나를 포함할 수 있다. 각각의 맵(10-1 내지 10-4)은 주행성 맵(20)과 같이 현실 공간 상의 위치에 대응되는 복수의 셀을 포함할 수 있다. 이와 같이, 각각의 맵(10-1 내지 10-4)에 포함된 셀에는 다양한 정보가 맵핑될 수 있으며, 셀에 맵핑되는 정보(예: 확률 정보, 높이 정보, 구역에 대한 정보, 자기장과 관련된 정보 등)에 따라 각기 다른 맵으로 구분될 수 있다.
제1 맵(10-1)은 오브젝트가 존재하는 확률 정보가 각각 맵핑된 복수의 셀을 포함할 수 있다. 이는 점유 맵(occupancy map)(10-1)이라 지칭할 수 있다. 여기서, 오브젝트는 로봇(200)의 주행을 방해하는 벽, 문, 구조물, 테이블, 의자, 카페트, 동물 등의 장애물을 의미할 수 있다. 확률 정보는 각 셀에 대응되는 위치(현실 공간 상의 영역)에 오브젝트가 존재(또는 점유)하고 있을 확률 값(예: 0 내지 1 사이의 값 또는 0 내지 100% 사이의 값 등)을 나타낼 수 있다. 점유 맵(10-1)은 특정한 높이(즉, z축 상의 높이)에 대한 2차원 맵(즉, xy 평면 상의 위치를 나타내는 맵)으로 구성되거나, 3차원 맵(즉, xyz 공간 상의 위치를 나타내는 맵)으로 구성될 수 있다.
확률 정보는 외부 장치(300)에 구비된 적어도 하나의 센서에 의해 획득되는 센싱 데이터에 기초하여 산출될 수 있다. 일 실시 예로서, 센서는 ToF(Time of Flight) 방식과 같이 전파(또는 신호)가 반사되어 되돌아오는 시간을 측정하여 오브젝트와의 거리를 센싱하는 거리 센서(예: 레이더(RADAR, Radio Detection And Ranging), 라이다(LiDAR, Light Imaging Detection and Ranging), 초음파 센서 등)를 포함할 수 있다. 다른 실시 예로서, 센서는 외부 장치(300)의 주변 공간의 빛을 픽셀 단위로 센싱하여 이미지를 획득하는 카메라(예: 모노 카메라, 스테레오 카메라, 뎁스 카메라 등)를 포함할 수 있다.
예를 들어, 거리 센서의 경우 특정한 방향으로 전파(예: 마이크로파, 레이저, 적외선, 광, 초음파 등)를 송출하고, 송출된 전파가 특정한 방향에 존재하는 오브젝트에 의해 반사되어 되돌아오기까지의 시간을 측정함으로써, 전파의 속도 및 시간에 기초해 해당 방향에 존재하는 오브젝트와의 거리를 측정할 수 있다. 즉, 거리 센서가 획득하는 센싱 데이터는 외부 장치(300) 및 오브젝트 간의 방향 및 거리에 대한 정보를 포함할 수 있다.
이 경우, 프로세서(130)는 외부 장치(300)로부터 수신된 센싱 데이터에 기초해, 외부 장치(300)의 위치에서 전파가 송출된 방향에 존재하는 셀 중에서, 측정된 거리 미만인 거리를 갖는 셀에는 제1 기설정된 값(예: 0, 0.3 등)의 확률 값을 맵핑할 수 있다. 이는, 측정된 거리 미만인 거리를 갖는 위치에서는 오브젝트가 존재할 확률이 낮은 것으로 볼 수 있기 때문이다. 또한, 프로세서(130)는 수신된 센싱 데이터에 기초해, 외부 장치(300)의 위치에서 전파가 송출된 방향에 존재하는 셀 중에서, 측정된 거리와 동일한 거리를 갖는 셀에는 제2 기설정된 값(예: 1, 0.7 등)의 확률 값을 맵핑할 수 있다. 이는 측정된 거리를 갖는 셀에 대응되는 위치에서는 오브젝트가 존재할 확률이 높은 것으로 볼 수 있기 때문이다. 또한, 프로세서(130)는 통신부(110)를 통해 외부 장치(300)로부터 주변 공간을 센싱하여 획득된 후속 센싱 데이터를 수신할 수 있다.
그리고, 프로세서(130)는 후속 센싱 데이터에 기초하여, 외부 장치(300)의 위치에서 전파가 송출된 방향에 존재하는 셀 중에서, 측정된 거리 미만인 거리를 갖는 셀에는 이전에 맵핑된 확률 값에서 기설정된 값(예: 0.1, 0.2 등)을 감소시킨 확률 값으로 맵핑할 수 있으며, 측정된 거리와 동일한 거리를 갖는 셀에는 이전에 맵핑된 확률 값에서 기설정된 값(예: 0.1, 0.2 등)을 증가시킨 확률 값으로 맵핑할 수 있다. 이때, 맵핑되는 확률 값은 0 내지 1 사이의 값일 수 있다. 즉, 최소값이 0이며, 최대값은 1일 수 있다. 이와 같은 과정은 센싱 데이터의 오차에 따른 정확도가 저하되는 것을 방지하기 위한 것이다.
한편, 외부 장치(300)로부터 다양한 종류의 센서에 의해 획득된 센싱 데이터가 전자 장치(100)로 수신된 경우에는, 프로세서(130)는 센서의 종류에 따라 센싱 데이터에 대해 가중치를 부여하여 확률 값을 산출할 수 있다. 예를 들어, 적어도 하나의 외부 장치(300)로부터 라이다에 의해 획득된 센싱 데이터 및 초음파 센서에 의해 획득된 센싱 데이터가 수신된 경우를 가정하면, 라이다에 의해 획득된 센싱 데이터에는 기설정된 0.7의 가중치를 곱하고, 초음파 센서에 의해 획득된 센싱 데이터에는 기설정된 0.3의 가중치를 곱하며, 이들을 합산함으로써 확률 값을 산출할 수 있다.
한편, 점유 맵(10-1)은 셀을 점유하는 오브젝트가 이동성이 있는지 여부에 따라, 이동성이 없는 오브젝트(예: 벽, 구조물 등)가 존재할 확률을 나타내는 정적인 점유 맵(static occupancy map) 또는 이동성이 있는 오브젝트(예: 문, 동물 등)가 존재할 확률을 나타내는 동적인 점유 맵(dynamic occupancy map)으로 구분될 수도 있다.
제2 맵(10-2)은 오브젝트의 높이를 나타내는 높이 정보가 각각 맵핑된 복수의 셀을 포함할 수 있다. 이는 높이 맵(10-2)이라 지칭할 수 있다. 여기서, 높이 정보는 해당 셀에 존재하는 오브젝트의 높이를 나타낼 수 있다.
높이 정보는 외부 장치(300)에 구비된 적어도 하나의 센서에 의해 획득되는 센싱 데이터에 기초하여 산출될 수 있다. 여기서, 센서는 ToF(Time of Flight) 방식과 같이 전파(또는 신호)가 반사되어 되돌아오는 시간을 측정하여 오브젝트와의 거리를 센싱하는 거리 센서(예: 레이더(RADAR, Radio Detection And Ranging), 라이다(LiDAR, Light Imaging Detection and Ranging), 초음파 센서 등)를 포함할 수 있다. 다만, 이는 일 실시 예일 뿐이며, 센서는 카메라(모노, 스테레오, 뎁스 카메라 등) 등의 다양한 센서를 포함할 수 있다.
여기서, 프로세서(130)는 외부 장치(300)로부터 수신된 센싱 데이터(예: 거리 정보)를 기초로 외부 장치(300)의 위치에서 전파가 송출된 방향에 존재하는 셀 중에서, 측정된 거리 미만인 거리를 갖는 셀에는 기설정된 값(예: 0)을 셀의 높이로 맵핑할 수 있다. 이는, 측정된 거리 미만인 거리를 갖는 셀은 오브젝트가 점유되지 않는 공간으로 볼 수 있기 때문이다. 또한, 프로세서(130)는 수신된 센싱 데이터에 기초해, 외부 장치(300)의 위치에서 전파가 송출된 방향에 존재하는 셀 중에서, 측정된 거리와 동일한 거리를 갖는 셀에는 측정된 거리 및 전파가 송출된 방향의 각도에 기초한 높이 값을 맵핑할 수 있다. 예를 들어, 측정된 거리 및 전파가 송출된 방향의 각도에 기초한 높이 값은 삼각비 등을 통해 산출될 수 있다.
제3 맵(10-3)은 구역에 대한 정보가 각각 맵핑된 복수의 셀을 포함할 수 있다. 여기서, 제3 맵(10-3)은 시맨틱 맵(10-3)이라 지칭할 수 있다. 이는 오브젝트가 존재하지 않는 셀이라도 해당 셀에 맵핑된 구역의 특성을 고려하여 로봇(200)의 주행 가능 여부를 결정하기 위한 것이다.
구역에 대한 정보는 외부 장치(300)에 구비된 적어도 하나의 센서(예: 카메라 등)에 의해 획득되는 센싱 데이터(예: 이미지 등)에 기초하여 생성될 수 있다. 예를 들어, 프로세서(130)는 외부 장치(300)의 카메라를 통해 획득된 이미지를 인공지능 모델에 입력하여, 이미지에 포함된 구역에 대한 정보를 식별할 수 있다. 이때, 인공지능 모델은 이미지를 입력 데이터로 하고, 이미지에 포함된 구역의 종류 또는 구역의 바닥면에 대한 정보를 출력하도록 학습된 모델일 수 있다. 그리고, 프로세서(130)는 외부 장치(300)의 위치 및 이미지의 촬영 방향에 대응되는 셀에 식별된 구역 정보를 맵핑할 수 있다. 또는, 구역에 대한 정보는 사용자의 조작에 따라 입력되는 것 또한 가능하다.
제4 맵(10-4)은 자기장의 방향 및 세기에 대한 정보가 각각 맵핑된 복수의 셀을 포함할 수 있다. 이는 지자기 맵(10-4)이라 지칭할 수 있다. 여기서, 자기장의 방향 및 세기에 대한 정보는 외부 장치(300)에 구비된 지자기 센서에 의해 획득될 수 있다. 지자기 센서는 지구가 생성하는 자기장을 검출하여 자북을 기준으로 하는 방위(또는 방향) 및 자기장의 세기에 대한 정보를 획득할 수 있다.
그리고, 프로세서(130)는 생성된 맵(10) 및 복수의 로봇 중 하나의 로봇(200)의 특성 정보에 기초하여 로봇(200)의 주행을 위한 주행성 맵(20)을 생성(또는 업데이트)할 수 있다.
구체적으로, 프로세서(130)는 복수의 셀 각각에 맵핑된 정보 및 로봇의 특성 정보에 기초하여, 복수의 셀 각각에서 로봇(200)이 주행 가능한지 또는 불가능한지를 판단할 수 있다.
여기서, 로봇(200)의 특성 정보는 로봇(200)의 사이즈, 로봇(200)의 높이 및 로봇(200)의 주행 타입에 대한 정보를 포함할 수 있다. 또한, 로봇(200)의 특성 정보는 로봇(200)의 하드웨어(예: 로봇(200)에 내장된 센서의 종류 등)에 대한 정보를 더 포함할 수 있다.
일 실시 예로서, 프로세서(130)는 점유 맵(10-1)에 포함된 복수의 셀 각각에 맵핑된 정보 및 로봇(200)의 특성 정보에 기초하여, 복수의 셀 각각에서 로봇(200)이 주행 가능한지 또는 불가능한지를 판단할 수 있다.
여기서, 로봇(200)의 특성 정보는 로봇(200)의 사이즈를 포함할 수 있다. 로봇(200)의 사이즈는 로봇(200)이 회전 주행할 경우에 회전축에서 로봇(200)의 끝단까지의 거리를 나타낼 수 있다.
점유 맵(10-1)에 맵핑된 정보를 이용하여 로봇(200)의 주행 가능 여부를 판단하는 방법에 대한 구체적인 내용은 도 5 내지 도 7을 참조하여 함께 설명하도록 한다.
일 실시 예로서, 프로세서(130)는 높이 맵(10-2)에 포함된 복수의 셀 각각에 맵핑된 정보 및 로봇(200)의 특성 정보에 기초하여, 복수의 셀 각각에서 로봇(200)이 주행 가능한지 또는 불가능한지를 판단할 수 있다.
여기서, 로봇(200)의 특성 정보는 로봇(200)의 높이 또는 로봇(200)의 주행 타입을 포함할 수 있다.
로봇(200)의 높이는 지면과 수직한 방향으로의 로봇(200)의 길이(예: z축 방향의 길이)를 나타낼 수 있다. 로봇(200)의 주행 타입은, 휠 타입, 비행 타입 및 보행 타입 중 적어도 하나일 수 있다.
구체적으로, 휠 타입은 휠(wheel)의 회전을 통해 로봇(200)이 이동하는 방식을 의미한다. 휠 타입의 로봇은 구동 장치, 조향 장치 및 브레이크 장치 등을 포함할 수 있다. 구동 장치는 휠을 회전시키기 위한 동력을 발생시키는 장치이며, 예를 들어 구동 장치는 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등으로 구현될 수 있다. 조향 장치는 로봇(200)의 주행 방향을 조절하는 장치이다. 브레이크 장치는 로봇(200)의 주행 속도를 감속시키거나 로봇(200)을 정지시키도록 제동하는 장치이다. 비행 타입은 로봇(200)이 비행하여 지면 위를 이동하는 방식을 의미한다. 비행 타입의 로봇은 구동 장치를 포함할 수 있다. 구동 장치는 로봇(200)의 비행을 위한 동력을 발생시키는 장치이며, 예를 들어 구동 장치는 프로펠러를 회전시키는 모터, 또는 고압의 공기(또는 연료)를 분사하는 분사 장치 등으로 구현될 수 있다. 보행 타입은 다리의 움직임을 통해 로봇(200)이 이동하는 방식을 의미한다. 보행 타입의 로봇(예: 2족 보행 로봇, 3족 보행 로봇, 4족 보행 로봇 등)은 구동 장치 및 2 이상의 다리를 포함할 수 있다. 2 이상의 다리는 로봇(200)을 지지할 수 있다. 구동 장치는 다리를 들어올리거나 내리도록 하는 동력을 발생시키는 장치이며, 예를 들어 구동 장치는 모터 또는 액츄에이터 등으로 구현될 수 있다.
높이 맵(10-2)에 맵핑된 정보를 이용하여 로봇(200)의 주행 가능 여부를 판단하는 방법에 대한 구체적인 내용은 도 8 내지 도 10b를 참조하여 함께 설명하도록 한다.
일 실시 예로서, 프로세서(130)는 시맨틱 맵(10-3)에 포함된 복수의 셀 각각에 맵핑된 정보 및 로봇(200)의 특성 정보에 기초하여, 복수의 셀 각각에서 로봇(200)이 주행 가능한지 또는 불가능한지를 판단할 수 있다. 여기서, 로봇(200)의 특성 정보는 로봇(200)의 주행 타입에 대한 정보를 포함할 수 있다.
예를 들어, 프로세서(130)는 시맨틱 맵(10-3)에 포함된 복수의 셀 중에서 로봇(200)의 주행이 허용된 구역(예: 통로 등)을 나타내는 정보가 맵핑된 셀이 존재하는 경우, 해당 셀에는 로봇(200)의 주행이 가능한 것을 나타내는 주행성 정보를 맵핑하여 로봇(200)의 주행성 맵(20)을 생성(또는 업데이트)할 수 있다. 이와 달리, 프로세서(130)는 시맨틱 맵(10-3)에 포함된 복수의 셀 중에서 로봇(200)의 주행이 금지된 구역(예: 화장실 등)을 나타내는 정보가 맵핑된 셀이 존재하는 경우, 해당 셀에는 로봇(200)의 주행이 불가능한 것을 나타내는 주행성 정보를 맵핑하여 로봇(200)의 주행성 맵(20)을 생성(또는 업데이트)할 수 있다.
다른 예를 들어, 프로세서(130)는 시맨틱 맵(10-3)에 포함된 복수의 셀 중에서 마찰력이 기설정된 값보다 낮은 바닥면(예: 물기가 있는 바닥면 등)을 나타내는 정보가 맵핑된 셀이 존재하는 경우, 로봇(200)의 주행 타입이 휠 타입 또는 보행 타입인지를 식별하고, 로봇(200)의 주행 타입이 휠 타입 또는 보행 타입인 것으로 식별되면, 해당 셀에는 로봇(200)의 주행이 불가능한 것을 나타내는 주행성 정보를 맵핑하여 로봇(200)의 주행성 맵(20)을 생성(또는 업데이트)할 수 있다.
일 실시 예로서, 프로세서(130)는 지자기 맵(10-4)에 포함된 복수의 셀 각각에 맵핑된 정보 및 로봇(200)의 특성 정보에 기초하여, 복수의 셀 각각에서 로봇(200)이 주행 가능한지 또는 불가능한지를 판단할 수 있다.
여기서, 로봇(200)의 특성 정보는 로봇(200)의 하드웨어에 대한 정보를 포함할 수 있다. 로봇(200)의 하드웨어에 대한 정보는 예를 들어, 로봇(200)에 내장된 센서, 로봇(200)의 모델, 로봇(200)의 식별 정보 등에서 적어도 하나일 수 있다.
예를 들어, 프로세서(130)는 지자기 맵(10-4)에 포함된 복수의 셀 중에서 자기장의 방향 또는 세기가 일정하지 않은 셀(예를 들어, 자기장의 방향 또는 세기의 변화량이 기설정된 값 이상인 셀)이 존재할 경우, 로봇(200)의 하드웨어에 대한 정보에 기초해 복수의 로봇 중에서 지자기 센서를 포함하는 로봇(또는 지자기 센서를 이용하는 로봇)을 식별하고, 해당 셀에는 로봇(200)의 주행이 불가능한 것을 나타내는 주행성 정보를 맵핑하여 식별된 로봇의 주행성 맵(20)을 생성(또는 업데이트)할 수 있다.
그리고, 프로세서(130)는 복수의 셀 각각에서 로봇(200)이 주행 가능한지 여부를 나타내는 주행성 정보를 포함하는 주행성 맵(20)을 생성(또는 업데이트)할 수 있다. 여기서, 맵(10) 및 주행성 맵(20)은 복수의 타일로 구분될 수 있으며, 각 타일에는 하나 이상의 셀이 포함될 수 있다. 즉, 맵(10) 및 주행성 맵(20)은 하위 개념으로 타일을 포함하며, 타일은 하위 개념으로 셀을 포함할 수 있다. 이 경우, 주행성 맵(20)은 타일 단위 또는 셀 단위로 생성되거나 업데이트될 수 있다.
이 경우, 프로세서(130)는 복수의 셀 각각에서 로봇(200)이 주행 가능한지 또는 불가능한지를 판단한 결과를 이용하여, 주행성 맵(20)에 포함되는 복수의 셀 각각에 판단된 결과에 따른 주행성 정보를 맵핑할 수 있다.
적어도 하나의 맵(10)이 복수인 경우, 프로세서(130)는 모든 맵(10)에 따라 특정한 셀에서 로봇(200)이 주행 가능한 것으로 판단되면(AND 조건), 주행성 맵(20)에 포함되는 특정한 셀에 로봇(200)이 주행 가능한 것을 나타내는 주행성 정보가 맵핑될 수 있다. 또한, 프로세서(130)는 어느 하나의 맵(10)에 따라 특정한 셀에서 로봇(200)이 주행 불가능한 것으로 판단되면(OR 조건), 주행성 맵(20)에 포함되는 특정한 셀에 로봇(200)이 주행 불가능한 것을 나타내는 주행성 정보가 맵핑될 수 있다.
예를 들어 적어도 하나의 맵(10)이 점유 맵(10-1) 및 시맨틱 맵(10-3)인 경우, 특정한 셀에 대한 로봇(200)의 주행 가능 여부를 판단한 결과는 4가지 경우가 있을 수 있다. 제1 예로, 점유 맵(10-1)에 따른 판단 결과는 특정한 셀에서 로봇(200)이 주행 가능하고, 시맨틱 맵(10-3)에 따른 판단 결과는 특정한 셀에서 로봇(200)이 주행 가능하다고 판단될 수 있으며, 이 경우 프로세서(130)는 해당 셀에서 로봇(200)이 주행 가능하다고 판단할 수 있다. 제2 예로, 점유 맵(10-1)에 따른 판단 결과는 특정한 셀에서 로봇(200)이 주행 불가능하고, 시맨틱 맵(10-3)에 따른 판단 결과는 특정한 셀에서 로봇(200)이 주행 가능하다고 판단될 수 있으며, 이 경우 프로세서(130)는 해당 셀에서 로봇(200)이 주행 불가능하다고 판단할 수 있다. 제3 예로, 점유 맵(10-1)에 따른 판단 결과는 특정한 셀에서 로봇(200)이 주행 가능하고, 시맨틱 맵(10-3)에 따른 판단 결과는 특정한 셀에서 로봇(200)이 주행 불가능하다고 판단될 수 있으며, 이 경우 프로세서(130)는 해당 셀에서 로봇(200)이 주행 불가능하다고 판단할 수 있다. 제4 예로, 점유 맵(10-1)에 따른 판단 결과는 특정한 셀에서 로봇(200)이 주행 불가능하고, 시맨틱 맵(10-3)에 따른 판단 결과는 특정한 셀에서 로봇(200)이 주행 불가능하다고 판단될 수 있으며, 이 경우 프로세서(130)는 해당 셀에서 로봇(200)이 주행 불가능하다고 판단할 수 있다.
그리고, 프로세서(130)는 생성된(또는 업데이트된) 로봇(200)의 주행성 맵(20)을 해당 로봇(200)으로 전송하도록 통신부(110)를 제어할 수 있다.
예를 들어, 프로세서(130)는 적어도 하나의 맵(10) 및 제1 로봇(200-1)의 특성 정보에 기초하여, 제1 로봇(200-1)의 주행을 위한 제1 주행성 맵(20-1)을 생성(또는 업데이트)하고, 제1 주행성 맵(20-1)을 제1 로봇(200-1)으로 전송하도록 통신부(110)를 제어할 수 있다. 또한, 프로세서(130)는 적어도 하나의 맵(10) 및 제2 로봇(200-2)의 특성 정보에 기초하여, 제2 로봇(200-2)의 주행을 위한 제2 주행성 맵(20-2)을 생성(또는 업데이트)하고, 제2 주행성 맵(20-2)을 제2 로봇(200-2)으로 전송하도록 통신부(110)를 제어할 수 있다.
이상과 같이, 본 개시의 전자 장치(100)는 하나 이상의 외부 장치(300)로부터 수신된 센싱 데이터에 기초해, 센싱 데이터의 종류에 따라 분류되는 하나 이상의 맵(10)을 생성 또는 업데이트하고, 하나 이상의 맵(10)을 기초로 로봇(200)의 특성을 고려하여 로봇(200)의 주행 가능 여부를 나타내는 주행성 맵(20)을 생성 또는 업데이트함으로써, 로봇(200)의 주행성 맵(20)을 보다 효율적으로 관리할 수 있으며, 로봇(200)의 개별적인 특성에 따른 최적화된 주행성 맵(20)을 제공할 수 있다.
한편, 본 개시의 일 실시 예에 따른 프로세서(130)는 점유 맵(10-1)에 포함된 복수의 셀 각각에 맵핑된 정보 및 로봇(200)의 특성 정보에 기초하여, 로봇(200)의 주행성 맵(20)을 생성(또는 업데이트)할 수 있다. 이에 대해서는 도 5 내지 도 7을 참조하여 구체적으로 설명하도록 한다.
도 5 내지 도 6b는 본 개시의 일 실시 예에 따른 스코어 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 5를 참조하여, 본 개시의 일 실시 예에 따른 프로세서(130)는 점유 맵(510)에 포함된 복수의 셀 각각에 맵핑된 확률 정보 및 로봇(200)의 사이즈에 기초하여, 복수의 셀 각각에 대한 스코어를 산출할 수 있다. 그리고, 프로세서(130)는 각각 스코어가 맵핑된 복수의 셀을 포함하는 최종 스코어 맵(530)을 생성할 수 있다.
구체적으로, 프로세서(130)는 외부 장치(300)로부터 수신된 센싱 데이터에 기초해 점유 맵(510)을 생성할 수 있다. 여기서, 점유 맵(510)에 포함되는 복수의 셀 중에서 (11, 3) 셀 및 (12, 4) 셀에는 각각 확률 값 100% 가 맵핑되고, (11, 4) 셀 및 (12, 4) 셀에는 각각 확률 값 80%가 맵핑된 상태를 가정하기로 한다.
그리고, 프로세서(130)는 점유 맵(510)에 포함된 복수의 셀 중에서 기설정된 값(예: 60% 등) 이상인 확률 값이 맵핑된 적어도 하나의 기준 셀(511)을 식별할 수 있다. 예를 들어, 프로세서(130)는 기준 셀(511)에 맵핑된 확률 값 및 로봇(200)의 사이즈에 기반하는 스코어 함수(f(x))(520)를 기초로 하여, 기준 셀(511)과 인접한 셀(535)의 스코어를 산출할 수 있다. 즉, 기준 셀(511)에 맵핑된 확률 값을 스코어 함수(520)에 곱한 값을 인접한 셀(535)의 스코어로 산출할 수 있다. 이때, x는 인접한 셀(535)이 기준 셀(511)로부터 떨어진 셀의 거리를 나타낼 수 있다.
여기서, 스코어 함수(520)는 기준 셀(511) 및 인접한 셀(535)의 거리에 따라 가중치가 설정된 함수 관계를 나타낼 수 있다. 여기서, 로봇(200)의 사이즈에 따라 가중치가 적용되는 인접한 셀(535)의 범위가 달라질 수 있다. 예를 들어, 스코어 함수(520)는 거리가 0부터 s(로봇(200)의 사이즈에 해당하는 셀의 거리)까지의 구간에서는 가중치가 1이 설정될 수 있으며, 거리가 s부터 2s까지의 구간에서는 가중치가 감소하는 것으로 설정될 수 있고, 거리가 2s를 초과하는 구간에서는 가중치가 0으로 설정될 수 있다. 다만, 이는 일 실시 예일 뿐이며 스코어 함수(520)는 거리에 따라 다양한 가중치가 설정되도록 하는 변형된 실시 예가 가능하다.
보다 구체적으로, 도 6a 및 도 6b를 참조하여 함께 설명하도록 한다. 여기서는, 로봇의 사이즈(s)는 2개의 셀에 대응되는 거리인 경우를 가정하도록 한다.
도 6a의 (1)을 참조하여, 프로세서(130)는 (11, 4)의 기준 셀(611)에 맵핑된 확률 값 80% 및 스코어 함수(520)를 기초로 하여 기준 셀(611)과 인접한 셀(612, 613)의 스코어를 산출하여, 산출된 스코어가 맵핑된 복수의 셀을 포함하는 제1 스코어 맵(610)을 생성할 수 있다. 예를 들어, 기준 셀(611)부터 1개 및 2개 떨어진 범위의 셀(612)에 대해서는 기준 셀(611)에 맵핑된 확률 값인 80 %에 스코어 함수(520)의 가중치 1을 곱한 값인 80%이 스코어로 산출될 수 있다. 또한, 기준 셀(611)부터 3개 및 4개 떨어진 범위의 셀(613)에 대해서는 기준 셀(611)에 맵핑된 확률 값인 80%에 스코어 함수(520)의 가중치 0.66 및 0.33을 곱한 값인 53% 및 26%이 스코어로 산출될 수 있다.
도 6a의 (2)의 경우, 전술한 도 6a의 (1)과 동일한 방식으로 프로세서(130)는 (12, 4)의 기준 셀(621)에 맵핑된 확률 값 80% 및 스코어 함수(520)를 기초로 하여 기준 셀(621)과 인접한 셀(622, 623)의 스코어를 산출하여, 산출된 스코어가 맵핑된 복수의 셀을 포함하는 제2 스코어 맵(620)을 생성할 수 있다.
도 6b의 (1)을 참조하여, 프로세서(130)는 (11, 3)의 기준 셀(631)에 맵핑된 확률 값 100% 및 스코어 함수(520)를 기초로 하여 기준 셀(631)과 인접한 셀(632, 633)의 산출하여, 산출된 스코어가 맵핑된 복수의 셀을 포함하는 제3 스코어 맵(630)을 생성할 수 있다. 예를 들어, 기준 셀(631)부터 1개 및 2개 떨어진 범위의 셀(632)에 대해서는 기준 셀(631)에 맵핑된 확률 값인 100%에 스코어 함수(520)의 가중치 1을 곱한 값인 100%이 스코어로 산출될 수 있다. 또한, 기준 셀(631)부터 3개 및 4개 떨어진 범위의 셀(633)에 대해서는 기준 셀(631)에 맵핑된 확률 값인 100%에 스코어 함수(520)의 가중치 0.66 및 0.33을 곱한 값인 66% 및 33%이 스코어로 산출될 수 있다.
도 6b의 (2)의 경우, 전술한 도 6b의 (1)과 같은 방식으로 프로세서(130)는 (12, 3)의 기준 셀(641)에 맵핑된 확률 값 100% 및 스코어 함수(520)를 기초로 하여 기준 셀(641)과 인접한 셀(642, 643)의 스코어를 산출하여, 산출된 스코어가 맵핑된 복수의 셀을 포함하는 제4 스코어 맵(640)을 생성할 수 있다.
그리고, 프로세서(130)는 제1 내지 제4 스코어 맵(610 내지 640)에 포함된 동일한 위치의 셀에 맵핑된 스코어 중에서 가장 큰 스코어를 해당 셀에 맵핑함으로써 도 5의 (2)와 같은 최종 스코어 맵(530)을 생성할 수 있다. 예를 들어, 제1 내지 제4 스코어 맵(610 내지 640)에 포함된 (8, 7) 셀에 맵핑된 스코어는 각각 53%, 26%, 33%, 33%일 수 있다. 최종 스코어 맵(530)에는 이들 스코어 중에서 가장 큰 스코어인 53%이 (8, 7) 셀에 맵핑될 수 있다.
이 경우, 프로세서(130)는 최종 스코어 맵(530)을 이용하여 주행성 맵을 생성할 수 있다. 구체적인 내용은 도 7을 참조하여 함께 설명하도록 한다.
도 7은 본 개시의 일 실시 예에 따른 주행성 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 프로세서(130)는 최종 스코어 맵(710)에 포함된 복수의 셀 중에서, 스코어가 기설정된 값(720)(또는 임계 값, 예: 60 %) 미만인 셀은 로봇(200)의 주행이 가능한 셀(731)로 판단하고, 스코어가 기설정된 값(720) 이상인 셀은 로봇(200)의 주행이 불가능한 셀(735)로 판단할 수 있다.
그리고, 프로세서(130)는 로봇(200)의 주행 가능 여부를 나타내는 주행성 정보가 각각 맵핑된 복수의 셀을 포함하는 주행성 맵을 생성할 수 있다. 예를 들어, 주행성 맵은 셀 단위로 로봇(200)의 주행이 가능하다는 것을 나타내는 정보(예: T 또는 1 등) 또는 로봇(200)의 주행이 불가능하다는 것을 나타내는 정보(예: F 또는 0 등) 중 하나를 포함할 수 있다. 즉, 주행성 맵은 T 또는 F(1 또는 0 등)의 데이터들이 각각의 셀에 맵핑되는 바이너리 맵의 형태를 가질 수 있다. 이에 따라, 로봇(200)이 주행성 맵을 통해 주행하기 위해 처리해야하는 데이터의 양이 감소될 수 있다.
한편, 본 개시의 일 실시 예에 따른 프로세서(130)는 점유 맵(10-1)및 높이 맵(10-2)에 포함된 복수의 셀 각각에 맵핑된 정보 및 로봇(200)의 특성 정보에 기초하여, 로봇(200)의 주행성 맵(20)을 생성(또는 업데이트)할 수 있다. 이에 대해서는 도 8 내지 도 10b를 참조하여 함께 설명하도록 한다.
도 8은 본 개시의 일 실시 예에 따른 주행성 맵에 대응되는 공간을 설명하기 위한 도면이다. 로봇(200)이 주행하기 위한 공간(810)을 xy 평면에 대해 도시하면 도 8과 같이 나타날 수 있다.
도 8을 참조하여, 로봇(200)의 출발지(820) 및 도착지(830) 사이에 테이블과 같은 오브젝트(815A, 815B)가 존재하는 경우를 가정할 수 있다. 이러한 경우에 로봇(200)의 높이와 같은 특성을 고려하여 주행성 맵을 생성하는 방법을 도 9a 내지 도 9c를 참조하여 설명하기로 한다.
도 9a 내지 도 9c는 본 개시의 일 실시 예에 따른 점유 맵 및 높이 맵을 이용하여 로봇의 주행성 맵을 생성하는 방법을 설명하기 위한 도면이다.
도 9a를 참조하면, 본 개시의 일 실시 예에 따른 점유 맵(10-1) 및 높이 맵(10-2)은 도 9a에 도시된 점유 맵(910-1) 및 높이 맵(910-2)인 것으로 가정하도록 한다. 여기서, 점유 맵(910-1) 및 높이 맵(910-2)은 설명의 편의를 위해 임의의 형태로 작성된 것이다.
점유 맵(910-1)은 현실 공간의 위치(또는 영역)에 대응되는 복수의 셀을 포함할 수 있으며, 복수의 셀 각각에는 오브젝트가 존재하는 확률을 나타내는 확률 정보가 맵핑될 수 있다.
높이 맵(910-2)은 현실 공간의 위치(또는 영역)에 대응되는 복수의 셀을 포함할 수 있으며, 복수의 셀 각각에는 해당 셀에 존재하는 오브젝트의 높이를 나타내는 높이 정보가 맵핑될 수 있다.
이 경우, 높이 정보는 오브젝트가 존재(또는 점유)하는 영역의 최소 높이 및 최대 높이를 포함할 수 있다. 이는, 최소 높이 미만인 높이에서는 오브젝트가 존재하지 않는다는 것을 나타낼 수 있다. 또한, 최대 높이를 초과하는 높이에서는 오브젝트가 존재하지 않는다는 것을 나타낼 수 있다. 한편, 높이 맵(910-2)에 포함된 셀에 최소 높이 및 최대 높이가 0의 값이 맵핑된 경우에는 해당 셀에 대응되는 영역의 높이 전체에 대해 오브젝트가 존재하지 않는다는 것(즉, 점유되지 않은 영역)을 나타낼 수 있다.
예를 들어, 도 8과 같이 높이 0.5미터 내지 0.6미터의 오브젝트(815A, 815B)가 특정한 영역에 존재할 경우에, 도 9a와 같이 높이 맵(910-2)에서 해당 영역에 대응되는 셀에는 높이 정보(최소 높이는 0.5미터, 최대 높이는 0.6미터)가 맵핑될 수 있다.
이 경우, 프로세서(130)는 점유 맵(910-1) 및 높이 맵(910-2)을 조합하여 각 셀에서의 로봇(200)의 주행 가능 여부가 판단될 수 있다. 이때, 로봇(200)의 주행 가능 여부는 로봇(200)의 특성 정보 중에서 로봇(200)의 사이즈 및 로봇(200)의 높이에 기초하여 판단될 수 있다.
이하에서는 도 9b 및 도 9c를 참조하여 로봇(200)은 서로 다른 높이를 갖는 제1 로봇(200-1) 및 제2 로봇(200-2)으로 구분하여 설명하도록 한다. 도 9b와 같이 제1 로봇(200-1)의 높이는 0.2미터이고 제1 로봇(200-1)의 사이즈는 0.3미터이며, 도 9c와 같이 제2 로봇(200-2)의 높이는 0.8미터이고 제2 로봇(200-2)의 사이즈는 0.3미터인 것을 가정하도록 한다.
일 실시 예로서 도 9b를 참조하면, 프로세서(130)는 높이 맵(910-2)에 포함된 셀에 맵핑된 높이 정보에 기초하여, 오브젝트의 위치 및 오브젝트의 높이를 식별할 수 있다. 여기서, 셀에 맵핑된 높이 정보는 오브젝트가 점유하는 공간의 높이(예: z축 상의 높이)를 나타내며, 셀의 위치는 오브젝트가 점유하는 공간의 위치(예: xy 평면 상의 위치)를 나타낼 수 있다.
이 경우, 프로세서(130)는 점유 맵(910-2)에 포함된 셀에 맵핑된 오브젝트의 높이 정보(예: 0 ~ 0.3 미터, 0.5 ~ 0.6 미터) 및 제1 로봇(200-1)의 높이 정보(예: 0.2 미터)에 기초하여, 오브젝트 및 제1 로봇(200-1)이 서로 오버랩되는 높이(예: 0 ~ 0.2 미터)를 식별할 수 있다.
프로세서(130)는 복수의 점유 맵(910-1) 중에서 오브젝트 및 제1 로봇(200-1)이 서로 오버랩되는 높이(예: 0 ~ 0.2 미터)에 대응되는 점유 맵 및 제1 로봇(200-1)의 사이즈에 기초하여 제1 최종 스코어 맵(920-1)을 생성할 수 있다. 이때, 제1 최종 스코어 맵(920-1)은 xy 평면 상에 배치된 복수의 셀을 포함할 수 있다.
구체적인 일 실시 예로서, 프로세서(130)는 오브젝트 및 제1 로봇(200-1)이 서로 오버랩되는 높이(예: 0 ~ 0.2 미터)에 대응되는 점유 맵을 하나로 통합할 수 있다. 예를 들어, 프로세서(130)는 높이 별 점유 맵에 포함된 특정한 셀에 맵핑된 복수의 확률 값 중에서 가장 큰 확률 값을 해당 셀의 확률 값으로 결정할 수 있다. 프로세서(130)는 통합된 맵에 포함되는 셀에 맵핑된 확률 값 및 제1 로봇(200-1)의 사이즈에 기초하여 스코어를 산출하고, 스코어가 맵핑되는 복수의 셀을 포함하는 제1 최종 스코어 맵(920-1)을 생성할 수 있다. 여기서, 제1 최종 스코어 맵(920-1)을 생성하는 방법은 도 5 내지 도 6b에서 설명한 내용이 적용될 수 있으며, 전술한 내용과 중복되는 내용은 생략하기로 한다.
그리고, 프로세서(130)는 제1 최종 스코어 맵(920-1)에 맵핑된 스코어 값 중에서 기설정된 값(예: 60%)을 초과하는 셀에는 제1 로봇(200-1)이 주행 불가능한 것을 나타내는 주행성 정보(예: F 등)가 맵핑되며, 제1 최종 스코어 맵(920-1)에 맵핑된 스코어 값 중에서 기설정된 값(예: 60%) 이하인 셀에는 제1 로봇(200-1)이 주행 가능한 것을 나타내는 주행성 정보(예: T 등)가 맵핑되는 제1 주행성 맵(930-1)을 생성(또는 업데이트)할 수 있다.
이 경우, 프로세서(130)는 제1 주행성 맵(930-1)을 제1 로봇(200-1)으로 전송하도록 통신부(110)를 제어할 수 있다.
한편 다른 실시 예로서 도 9c를 참조하면, 프로세서(130)는 높이 맵(910-2)에 포함된 셀에 맵핑된 높이 정보에 기초하여, 오브젝트의 위치 및 오브젝트의 높이를 식별할 수 있다. 여기서, 셀에 맵핑된 높이 정보는 오브젝트가 점유하는 공간의 높이(예: z축 상의 높이)를 나타내며, 셀의 위치는 오브젝트가 점유하는 공간의 위치(예: xy 평면 상의 위치)를 나타낼 수 있다.
이 경우, 프로세서(130)는 점유 맵(910-2)에 포함된 셀에 맵핑된 오브젝트의 높이 정보(예: 0 ~ 0.3 미터, 0.5 ~ 0.6 미터) 및 제2 로봇(200-2)의 높이 정보(예: 0.8 미터)에 기초하여, 오브젝트 및 제2 로봇(200-2)이 서로 오버랩되는 높이(예: 0 ~ 0.3 미터, 0.5 ~ 0.6 미터)를 식별할 수 있다.
프로세서(130)는 복수의 점유 맵(910-1) 중에서 오브젝트 및 제2 로봇(200-2)이 서로 오버랩되는 높이(예: 0 ~ 0.3 미터, 0.5 ~ 0.6 미터)에 대응되는 점유 맵 및 제2 로봇(200-1)의 사이즈에 기초하여 제2 최종 스코어 맵(920-2)을 생성할 수 있다. 이때, 제2 최종 스코어 맵(920-2)은 xy 평면 상에 배치된 복수의 셀을 포함할 수 있다.
구체적인 일 실시 예로서, 프로세서(130)는 오브젝트 및 제2 로봇(200-2)이 서로 오버랩되는 높이에 대응되는 점유 맵을 하나로 통합할 수 있다. 예를 들어, 프로세서(130)는 높이 별 점유 맵에 포함된 특정한 셀에 맵핑된 복수의 확률 값 중에서 가장 큰 확률 값을 해당 셀의 확률 값으로 결정할 수 있다. 프로세서(130)는 통합된 맵에 포함되는 셀에 맵핑된 확률 값 및 제2 로봇(200-2)의 사이즈에 기초하여 스코어를 산출하고, 스코어가 맵핑되는 복수의 셀을 포함하는 제2 최종 스코어 맵(920-2)을 생성할 수 있다.
그리고, 프로세서(130)는 제2 최종 스코어 맵(920-2)에 맵핑된 스코어 값 중에서 기설정된 값(예: 60%)을 초과하는 셀에는 제2 로봇(200-2)이 주행 불가능한 것을 나타내는 주행성 정보(예: F 등)가 맵핑되며, 제2 최종 스코어 맵(920-2)에 맵핑된 스코어 값 중에서 기설정된 값(예: 60%) 이하인 셀에는 제2 로봇(200-2)이 주행 가능한 것을 나타내는 주행성 정보(예: T 등)가 맵핑되는 제2 주행성 맵(930-2)을 생성(또는 업데이트)할 수 있다.
이 경우, 프로세서(130)는 제2 주행성 맵(930-2)을 제2 로봇(200-2)으로 전송하도록 통신부(110)를 제어할 수 있다.
도 10a 및 도 10b는 본 개시의 일 실시 예에 따른 로봇에 대한 주행성 맵을 설명하기 위한 도면이다.
도 10a 및 도 10b에 도시된 제1 및 제2 주행성 맵(1010-1, 1010-2)은 전술한 바와 같이 제1 및 제2 로봇(200-1, 200-2)의 크기 및 높이, 오브젝트의 위치 및 크기를 고려하여 판단된 주행성 정보(1011 내지 1013)가 맵핑된 셀을 포함할 수 있다.
제1 주행성 맵(1010-1)(또는 제2 주행성 맵(1010-2))에서 제1 주행성 정보(1011, 1012)가 맵핑된 셀은 제1 로봇(200-1)(또는 제2 로봇(200-2))이 주행할 수 없는 셀을 나타낼 수 있다. 제1 주행성 정보(1011, 1012)는 오브젝트가 존재하는 셀에 맵핑되는 주행성 정보(1011), 또는 주변에 존재하는 오브젝트와 충돌가능한 셀에 맵핑되는 주행성 정보(1012)로 구분될 수 있다.
제1 주행성 맵(1010-1)(또는 제2 주행성 맵(1010-2))에서 제2 주행성 정보(1013)가 맵핑된 셀은 제1 로봇(200-1)(또는 제2 로봇(200-2))이 주행할 수 있는 셀을 나타낼 수 있다.
도 10a를 참조하면, 예를 들어 제1 로봇(200-1)은 전자 장치(100)로부터 수신된 도 8의 공간(810)을 나타내는 제1 주행성 맵(1010-1)에 포함된 주행성 정보에 기초하여 출발지(S)로부터 목적지(E)까지의 주행 경로를 계획할 수 있다. 이때, 주행 경로는 오브젝트(815A, 815B)의 높이보다 낮은 높이를 갖는 제1 로봇(200-1)이 오브젝트(815A, 815B)의 하부 공간을 통과하도록 하는 경로일 수 있다.
도 10b를 참조하면, 예를 들어 제2 로봇(200-2)은 전자 장치(100)로부터 수신된 도 8의 공간(810)을 나타내는 제2 주행성 맵(1010-2)에 포함된 주행성 정보에 기초하여 출발지(S)로부터 목적지(E)까지의 주행 경로를 계획할 수 있다. 이때, 주행 경로는 오브젝트(815A, 815B)의 높이보다 높은 높이를 갖는 제2 로봇(200-2)이 오브젝트(815A, 815B)의 주변을 우회하도록 하는 경로일 수 있다.
이와 같이 본 개시의 일 실시 예에 따른 전자 장치(100)는 개별적인 로봇(200)의 특성을 고려한 주행성 맵을 해당 로봇(200)으로 제공할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치(100)는 동적인 환경을 고려하여 점유 맵(10-1) 등의 적어도 하나의 맵(10)이 변경(즉, 업데이트)됨에 따라 주행성 맵(20)을 연속적으로 변경(즉, 업데이트)시킬 수 있다.
구체적으로, 프로세서(130)는 후속 센싱 데이터를 통신부(110)를 통해 수신할 수 있다. 후속 센싱 데이터는 전술한 센싱 데이터 이후 또는 직후에 수신된(또는 획득된) 센싱 데이터를 의미한다.
프로세서(130)는 후속 센싱 데이터에 기초하여 기생성된 맵(10)의 복수의 셀 중 적어도 하나의 셀에 맵핑된 정보를 업데이트하여, 기생성된 맵(10)을 업데이트할 수 있다. 기생성된 맵(10)은 점유 맵(10-1), 높이 맵(10-2), 시맨틱 맵(10-3), 지자기 맵(10-4) 등 중 하나일 수 있으며, 업데이트 되는 정보는 점유 맵(10-1)의 경우 확률 정보, 높이 맵(10-2)의 경우 높이 정보, 시맨틱 맵(10-3)의 경우 구역에 대한 정보, 지자기 맵(10-4)의 경우 자기장의 방향 및 세기에 대한 정보일 수 있다.
프로세서(130)는 로봇(200)의 특성 정보, 기생성된 맵(10) 및 업데이트된 맵에 기초하여, 기생성된 로봇(200)의 주행성 맵(20)의 복수의 셀 중에서 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하여, 로봇(200)의 주행성 맵(20)을 업데이트할 수 있다. 여기서, 맵(10) 및 주행성 맵(20)은 복수의 타일로 구분될 수 있으며, 각 타일에는 하나 이상의 셀이 포함될 수 있다. 즉, 맵(10) 및 주행성 맵(20)은 하위 개념으로 타일을 포함하며, 타일은 하위 개념으로 셀을 포함할 수 있다. 이 경우, 주행성 맵(20)은 타일 단위 또는 셀 단위로 생성되거나 업데이트될 수 있다. 이에 대한 구체적인 실시 예는 도 11 내지 도 13을 참조하여 설명하도록 한다.
그리고, 프로세서(130)는 업데이트된 타일에 포함된 주행성 정보를 로봇(200)으로 전송하도록 통신부(110)를 제어할 수 있다. 이 경우, 로봇(200)은 수신된 정보에 기초하여, 주행성 맵을 업데이트할 수 있다.
도 11 및 도 12는 본 개시의 일 실시 예에 따른 주행성 맵을 업데이트하는 방법을 설명하기 위한 도면이다.
도 11 및 도 12를 참조하면, 본 개시의 일 실시 예에 따른 프로세서(130)는 기생성된 맵(10)에 맵핑된 정보 및 업데이트된 맵에 맵핑된 정보를 셀 단위로 비교하여, 셀에 맵핑된 정보가 변경된 적어도 하나의 셀을 판단할 수 있다(S1110).
예를 들어, 도 12를 참조하면, 시간 t의 점유 맵(1220)은 후속 센싱 데이터에 기초하여 시간 t-1의 점유 맵(1210)이 업데이트된 맵이다. 이는 제1 오브젝트가 시간 t-1의 점유 맵(1210)의 제1 셀(1211)에 존재하지 않았으나, 시간 t의 점유 맵(1220)의 제1 셀(1221)에 존재하는 것으로 오브젝트의 점유 상태가 변경되었으며, 제2 오브젝트가 시간 t-1의 점유 맵(1210)의 제2 셀(1212)에 존재하였으나, 시간 t의 점유 맵(1220)의 제2 셀(1222)에 존재하지 않는 것으로 오브젝트의 점유 상태가 변경된 경우를 나타낼 수 있다.
이 경우, 프로세서(130)는 시간 t-1의 점유 맵(1210)에 맵핑된 정보 및 시간 t의 점유 맵(1220)에 맵핑된 정보를 셀 단위로 비교하여, 셀에 맵핑된 정보가 변경된 적어도 하나의 셀을 판단할 수 있다. 예를 들어, 프로세서(130)는 시간 t-1의 점유 맵(1210) 및 시간 t의 점유 맵(1220)의 뺄셈 연산을 수행하고, 연산에 따른 차이 값이 기설정된 값(예: 0.5 등) 이상인 셀을 셀에 맵핑된 정보가 변경된 셀로서 판단할 수 있다.
그리고, 프로세서(130)는 업데이트된 맵의 각 타일 별로, 각 타일 내에서 셀에 맵핑된 정보가 변경된 적어도 하나의 셀을 포함하는 최소 사이즈의 제1 영역을 판단할 수 있다(S1120). 여기서, 제1 영역은 타일 단위로 점유 상태 등이 변동된 최소 사이즈의 영역을 나타낼 수 있다.
예를 들어, 도 12를 참조하면, 프로세서(130)는 업데이트된 맵(1220)의 각 타일(1220-1 내지 1220-4) 별로, 각 타일(1220-1 내지 1220-4) 내에서 맵핑된 정보가 변경된 셀(1221, 1222)을 포함하는 최소 사이즈의 제1 영역(1231)을 판단할 수 있다. 여기서, 제1 영역(1231)은 맵핑된 정보가 변경된 셀을 포함하는 영역이 최소 사이즈를 갖도록 그룹핑된 것을 나타낸다. 이때, 맵핑된 정보가 변경된 셀이 제1 타일(1220-1) 및 제2 타일(1220-2)에 존재할 경우에는 제1 타일(1220-1) 내에서 맵핑된 정보가 변경된 셀끼리 그룹핑하고, 제2 타일(1220-2) 내에서 맵핑된 정보가 변경된 셀끼리 그룹핑하여 제1 영역을 판단할 수 있다.
프로세서(130)는 업데이트된 맵(1220)의 각 타일(1220-1 내지 1220-4) 별로, 각 타일(1220-1 내지 1220-4) 내에서 로봇(200)의 사이즈에 기초하여 제1 영역(1231)을 포함하는 제2 영역(1232) 및 제2 영역(1232)을 포함하는 제3 영역(1233)을 판단할 수 있다(S1130).
즉, 프로세서(130)는 제1 영역(1231) 및 로봇(200)의 사이즈에 기초하여 제2 영역(1232) 및 제3 영역(1233)을 판단할 수 있다. 여기서, 제2 영역(1232)은 주행성 정보를 업데이트하기 위한 영역이며, 관심 영역(1232)이라 명명할 수 있다. 제3 영역(1333)은 제2 영역(1232)에서 로봇(200)이 주행가능한지 여부에 대해 영향을 주는 영역이며, 확인 영역(1333)이라 명명할 수 있다.
예를 들어, 도 12를 참조하면, 로봇(200)의 사이즈는 2개의 셀의 사이즈에 대응되는 것으로 가정하기로 한다. 프로세서(130)는 제1 영역(1231)을 제1 영역(1231)의 중심(xc)에서 로봇(200)의 1배 사이즈로 확장한 영역을 제2 영역(1232)으로 판단할 수 있다. 또한, 프로세서(130)는 제1 영역(1231)을 제1 영역(1231)의 중심(xc)에서 로봇(200)의 2배 사이즈로 확장한 영역을 제3 영역(1233)으로 판단할 수 있다. 여기서, 제2 영역(1232) 및 제3 영역(1233)이 확장되는 사이즈는 일 실시 예일 뿐이며, 다양한 변형 실시 예가 가능할 수 있다.
프로세서(130)는 로봇(200)의 사이즈 및 제3 영역(1243)의 복수의 셀 각각에 맵핑된 정보에 기초하여, 제2 영역(1242)의 복수의 셀 각각의 주행성 정보를 판단할 수 있다(S1140). 제2 영역(1242)의 주행성 정보에는 환경(예: 오브젝트의 점유 상태 등)이 직접 변동된 제1 영역(1241)뿐만 아니라 제3 영역(1243)에 맵핑된 정보가 영향을 줄 수 있기 때문에 이러한 점을 고려한 것이다. 구체적인 동작은 도 5 내지 도 7에서 설명한 내용과 중복된다는 점에서 생략하기로 한다.
프로세서(130)는 제2 영역(1242)의 판단된 주행성 정보에 기초하여, 기생성된 주행성 맵(1250)에서 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트할 수 있다. 즉, 프로세서(130)는 기생성된 주행성 맵(1250)에서 제2 영역(1252)의 적어도 일부를 포함하는 타일 내의 셀의 주행성 정보를 업데이트하여, 기생성된 주행성 맵(1250)을 업데이트할 수 있다(S1150).
구체적으로, 도 12를 참조하여, 프로세서(130)는 기생성된 주행성 맵(1250)의 타일(1250-1) 및 타일(1250-1) 주변의 적어도 하나의 타일(1250-2 내지 1250-4) 중에서, 제2 영역(1252)의 적어도 하나의 셀을 포함하는 적어도 하나의 타일(1250-1 내지 1250-4)을 판단할 수 있다. 예를 들어, 도 12와 같이 제2 영역(1252)의 셀을 일부라도 포함하는 제1 내지 제4 타일(1250-1 내지 1250-4)이 판단될 수 있다.
그리고, 프로세서(130)는 제2 영역(1242)의 판단된 주행성 정보에 기초하여, 기생성된 주행성 맵(1250)의 판단된 타일(1250-1 내지 1250-4)의 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트할 수 있다. 예를 들어, 제2 영역(1242)의 판단된 주행성 정보가 대응되는 셀에 기맵핑된 주행성 정보를 대체하여 재맵핑되어, 기생성된 주행성 맵(1250)이 주행성 맵(1260)과 같이 업데이트될 수 있다.
도 13은 본 개시의 일 실시 예에 따른 주행성 맵을 업데이트한 결과를 설명하기 위한 도면이다.
도 13의 (1)은 종래의 방법으로 전체 영역에 대해 주행성 맵을 생성 및 업데이트하여 경로를 계획한 것을 나타낸 것이고, 도 13의 (2)는 본 개시의 일 실시 예에 따라 타일(또는 셀) 기반으로 주행성 맵을 생성 및 업데이트하여 경로를 계획한 것을 나타낸 것이며, 인텔 i7-7700 CPU를 갖는 워크스테이션 상에서 메모리 사용량 및 경과된 시간을 평가한 것이다.
주행성 맵 생성을 위한 점유 맵은 삼성 메가스토어의 실내 환경에서 라이다 기반 SLAM에 의해 구축되었으며, 구체적으로 셀의 크기는 5센치미터이고, 맵의 크기는 45미터 x 40미터이다. 타일의 크기는 5미터이며, 각 타일은 100 x 100 셀을 포함한다. 또한, 업데이트의 성능을 평가하기 위해, 점유 맵은 주기적으로 변하는 것으로 설정되었다. 또한, 점진적 경로 계획을 위해, D* 라이트 알고리즘을 사용하였으며, 맵 상의 최장 경로를 조사하기 위해 맵의 좌하측 및 우상측에 출발지 및 도착지를 각각 설정하였다.
도 13의 (2)에 도시된 바와 같이, 외부 장치(예: 로봇)에서 센싱한 데이터를 기초로 셀을 갖는 주행성 맵의 타일을 생성하였다. 도 13의 (2)에 요약된 바와 같이, 전체 맵의 26.38%인 19개의 타일만을 이용하였으므로, 종래 방법이 720KB의 데이터 처리량이 요구된 반면 제안된 방법은 190KB의 데이터 처리량이 요구되었다. 또한, 데이터 처리에 0.7224초가 소요되었으며, 이는 종래 방법에 따라 소요된 시간의 26.54%이다. 이는 전체 셀의 주행성 정보를 계산하는 대신, 요청될 셀에 대응되는 타일만에 대한 주행성 정보를 적시에 생성하기 때문이다. 또한, 제안된 방법은 맵을 업데이트하는데 0.0303초의 시간이 소요되었으며, 이는 종래 방법에 따라 소요된 시간의 18.76%이다. 이는 제안된 방법이 점유 상태 등이 변동된 영역에 대응되는 타일만을 업데이트하기 때문이다.
도 14는 본 개시의 일 실시 예에 따른 전자 장치의 부가적인 구성을 설명하기 위한 블록도이다.
도 14를 참조하여, 본 개시의 일 실시 예에 따른 전자 장치(100)는 통신부(110), 메모리(120) 및 프로세서(130) 외에도, 입력 인터페이스(140), 출력 인터페이스(150), 센서(160) 및 구동부(170) 중에서 적어도 하나를 더 포함할 수 있다.
메모리(120)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 다양한 데이터를 저장하기 위한 구성이다.
이를 위해, 메모리(120)는 데이터 또는 정보를 일시적 또는 영구적으로 저장하는 하드웨어로 구성될 수 있다. 예를 들어, 메모리(120)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(Flash Memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD), RAM, ROM 등 중에서 적어도 하나의 하드웨어로 구현될 수 있다.
메모리(120)에는 전자 장치(100) 또는 프로세서(130)의 동작에 필요한 적어도 하나의 인스트럭션(instruction), 프로그램 또는 데이터가 저장될 수 있다. 여기서, 인스트럭션은 전자 장치(100) 또는 프로세서(140)의 동작을 지시하는 부호 단위로서, 컴퓨터가 이해할 수 있는 언어인 기계어로 작성된 것일 수 있다. 프로그램은 작업 단위의 특정 작업을 수행하는 일련의 인스트럭션의 집합체(instruction set)일 수 있다. 데이터는 문자, 수, 영상 등을 나타낼 수 있는 비트 또는 바이트 단위의 상태 정보일 수 있다.
프로세서(130)는 CPU(Central Processing Unit), AP(Application Processor) 등과 같은 범용 프로세서, GPU(Graphic Processing Unit), VPU(Vision Processing Unit) 등과 같은 그래픽 전용 프로세서, NPU(Neural Processing Unit)와 같은 인공지능 전용 프로세서 등으로 구현될 수 있다. 또한, 프로세서(130)는 적어도 하나의 인스트럭션 또는 모듈을 로드하기 위한 휘발성 메모리를 포함할 수 있다.
입력 인터페이스(140)는 다양한 사용자 명령을 수신하여 프로세서(130)로 전달할 수 있다. 즉, 프로세서(130)는 입력 인터페이스(140)를 통해 사용자로부터 입력된 사용자 명령을 인지할 수 있다. 여기서, 사용자 명령은 사용자의 터치 입력(터치 패널), 키(키보드) 또는 버튼(물리 버튼 또는 마우스 등) 입력, 사용자 음성(마이크) 등 다양한 방식으로 구현될 수 있다.
출력 인터페이스(150)는 정보를 출력할 수 있는 구성이며, 예를 들어 디스플레이, 또는 스피커 등으로 구현될 수 있다. 디스플레이는 정보 또는 데이터를 시각적인 형태로 출력하는 장치이다. 디스플레이는 이미지 프레임을 픽셀로 구동될 수 있는 디스플레이의 일 영역 또는 전체 영역에 표시할 수 있다. 디스플레이의 적어도 일부는 플렉서블 디스플레이(flexible display)의 형태로 전자 장치(100)의 전면 영역 및, 측면 영역 및 후면 영역 중 적어도 하나에 결합될 수도 있다. 플렉서블 디스플레이는 종이처럼 얇고 유연한 기판을 통해 손상 없이 휘거나 구부리거나 말 수 있는 것을 특징으로 할 수 있다. 스피커는 오디오 처리부(미도시)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 직접 소리로 출력할 수 있다.
센서(160)는 카메라, 마이크, 근접 센서, 조도 센서, 모션 센서, ToF 센서, GPS 센서, IPS 센서 등 다양한 센서로 구현될 수 있다. 예를 들어, 카메라는 빛을 픽셀 단위로 구분하고, 각 픽셀마다 R(Red), G(Green), B(Blue) 색상에 대한 빛의 세기를 감지하여, 빛의 세기를 전기적 신호로 변환하여 객체의 색상, 형상, 명암 등을 표현하는 데이터를 획득할 수 있다. 이때, 데이터의 타입은 복수의 픽셀 각각에 대해 R, G, B 색상 값을 갖는 이미지일 수 있다. 마이크는 사용자의 음성과 같은 음파를 감지하여, 음파를 전기적 신호로 변환하여 데이터를 획득할 수 있다. 이때, 데이터의 타입은 다양한 포맷의 오디오 신호일 수 있다. 근접 센서(proximity sensor)는 주변 물체의 존재를 감지하여, 주변 물체의 존재 여부 또는 주변 물체의 근접 여부에 대한 데이터를 획득할 수 있다. 조도 센서는 전자 장치(100)의 주변 환경에 대한 광량(또는 밝기)을 감지하여, 조도에 대한 데이터를 획득할 수 있다. 모션 센서는 전자 장치(100)의 이동 거리, 이동 방향, 기울기 등을 감지할 수 있다. 이를 위해, 모션 센서는 가속도 센서, 자이로(gyro) 센서, 지자기 센서 등의 결합으로 구현될 수 있다. TOF(Time Of Flight) 센서는 특정한 속도를 갖는 다양한 전자기파(예: 초음파, 적외선, 레이저 등)를 방출한 후 되돌아오는 비행 시간을 감지하여, 대상과의 거리(또는 위치)에 대한 데이터를 획득할 수 있다. GPS(Global Positioning System) 센서는 복수의 위성으로부터 전파 신호를 수신하고, 수신된 신호의 전달 시간을 이용하여 각 위성과의 거리를 각각 산출하고, 산출된 거리를 삼각측량을 이용하여 전자 장치(100)의 현재 위치에 대한 데이터를 획득할 수 있다. IPS(Indoor Positioning System) 센서는 다양한 종류의 통신 방식(예: WiFi, Bluetooth, ZigBee, UWB(Ultra-Wideband) 등)에 의한 통신을 수행하는 복수의 AP(Access Point)로부터 전파 신호를 수신하고, 수신된 전파 신호의 전달 시간을 이용하여 각 AP로부터의 거리를 각각 산출하고, 각 AP 및 전자 장치(100)의 거리를 삼각측량을 이용하여 전자 장치(100)의 현재 위치에 대한 데이터를 획득할 수 있다. 여기서, 통신부(110)가 IPS 센서를 대체하여 상술한 IPS 센서의 동작을 수행하는 것 또한 가능하다. 한편, 상술한 센서(160)의 구현 예는 일 실시 예일 뿐이며, 이에 제한되지 아니하고 다양한 유형의 센서로 구현되는 것이 가능하다 할 것이다.
구동부(170)는 로봇(200)이 주행할 수 있도록 하는 장치를 나타낸다. 예를 들어, 구동부(170)는 로봇(200)이 주행할 수 있도록 구동력을 발생시키는 구동 장치, 로봇(200)이 주행 방향을 조정할 수 있도록 하는 조향 장치, 에너지를 구동 장치로 공급하는 전원부 등을 포함할 수 있다. 다만, 이는 일 실시 예일 뿐 로봇(200)이 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형되어 실시 되는 것이 가능하다.
도 15는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 15를 참조하여, 본 개시의 일 실시 예에 따른 전자 장치(100)의 제어 방법은, 적어도 하나의 외부 장치(300)가 주변을 센싱하여 획득한 센싱 데이터를 외부 장치(300)로부터 수신하는 단계(S1510), 센싱 데이터에 기초하여 외부 장치(300)가 위치하는 공간에 대한 적어도 하나의 맵을 생성하는 단계(S1520), 생성된 맵 및 복수의 로봇 중 하나의 로봇(200)의 특성 정보에 기초하여 로봇(200)의 주행을 위한 주행성 맵을 생성하는 단계(S1530) 및 생성된 주행성 맵을 로봇(200)으로 전송하는 단계(S1540)를 포함할 수 있다.
구체적으로, 먼저 전자 장치(100)는 적어도 하나의 외부 장치(300)가 주변을 센싱하여 획득한 센싱 데이터를 외부 장치(300)로부터 수신할 수 있다(S1510).
이 경우, 전자 장치(100)는 복수의 로봇 각각의 특성 정보를 기저장하고 있을 수 있다. 여기서, 복수의 로봇 각각의 특성 정보는, 복수의 로봇 각각의 사이즈, 높이 및 주행 타입에 대한 정보를 포함할 수 있다. 주행 타입은, 휠 타입, 비행 타입 및 보행 타입 중 적어도 하나일 수 있다.
이후, 센싱 데이터에 기초하여 외부 장치(300)가 위치하는 공간에 대한 적어도 하나의 맵을 생성할 수 있다(S1520).
여기서, 적어도 하나의 맵은, 오브젝트가 존재하는 확률 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 오브젝트의 높이를 나타내는 높이 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함할 수 있다.
일 실시 예로서, 적어도 하나의 맵은, 구역에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 자기장의 방향 및 세기에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함할 수 있다.
이후, 생성된 맵 및 복수의 로봇 중 하나의 로봇(200)의 특성 정보에 기초하여 로봇(200)의 주행을 위한 주행성 맵을 생성할 수 있다(S1530).
여기에서, 주행성 맵을 생성하는 단계는, 복수의 셀 각각에 맵핑된 정보 및 로봇(200)의 특성 정보에 기초하여, 복수의 셀 각각에서 로봇(200)이 주행 가능한지 또는 불가능한지를 판단할 수 있다. 그리고, 로봇(200)의 주행 가능 여부를 나타내는 주행성 정보가 각각 맵핑된 복수의 셀을 포함하는 주행성 맵을 생성할 수 있다.
이후, 생성된 주행성 맵을 로봇(200)으로 전송할 수 있다(S1540). 이 경우, 로봇(200)의 주행성 맵은, 전자 장치(100)로부터 수신된 정보에 기초하여 타일 단위로 업데이트될 수 있다.
한편, 본 개시의 일 실시 예에 따른 제어 방법은 외부 장치(300)로부터 후속 센싱 데이터를 수신할 수 있다. 여기서, 후속 센싱 데이터는 이전에 수신된(또는 센싱된) 센싱 데이터 이후에 수신되는(또는 센싱되는) 센싱 데이터를 나타낼 수 있다.
이 경우, 후속 센싱 데이터에 기초하여, 이전에 생성된 맵의 복수의 셀 중 적어도 하나의 셀에 맵핑된 확률 정보 및 높이 정보 중 적어도 하나를 업데이트하여, 이전에 생성된 맵을 업데이트할 수 있다. 여기서, 이전에 생성된 맵 및 업데이트된 맵은 시간에 따른 선후 관계를 나타낸다. 예를 들어, 이전에 생성된(또는 업데이트된) 맵은 시간 t-1에 생성(또는 업데이트)된 것이고, 이번에 업데이트된 맵은 시간 t에 업데이트되는 것일 수 있다.
이 경우, 이전에 생성된 맵 및 업데이트된 맵에 기초하여, 복수의 타일로 구분되는 주행성 맵에서, 복수의 타일 중 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트할 수 있다. 즉, 이전에 생성된(또는 업데이트된) 맵이 업데이트 됨으로써, 이전에 생성된(또는 업데이트된) 주행성 맵 또한 업데이트 될 수 있다.
구체적으로, 생성된 맵에 맵핑된 정보 및 업데이트된 맵에 맵핑된 정보를 셀 단위로 비교하여, 맵핑된 정보가 변경된 적어도 하나의 셀을 판단할 수 있다.
그리고, 업데이트된 맵의 각 타일 별로, 타일에서 맵핑된 정보가 변경된 적어도 하나의 셀을 포함하는 최소 사이즈의 제1 영역을 판단하고, 로봇(200)의 사이즈에 기초하여 제1 영역을 포함하는 제2 영역 및 제2 영역을 포함하는 제3 영역을 판단할 수 있다.
그리고, 로봇(200)의 사이즈 및 제3 영역의 복수의 셀 각각에 맵핑된 정보에 기초하여, 제2 영역의 복수의 셀 각각의 주행성 정보를 판단할 수 있다.
그리고, 판단된 주행성 정보에 기초하여 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트할 수 있다.
여기에서, 타일 및 타일 주변의 적어도 하나의 타일 중에서, 제2 영역의 적어도 하나의 셀을 포함하는 적어도 하나의 타일을 판단하고, 판단된 주행성 정보에 기초하여, 판단된 타일의 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트 할 수 있다. 즉, 주행성 맵은 타일 단위로 업데이트 될 수 있다. 이 경우, 주행성 맵에서 제2 영역에 일부라도 속하는 타일이 업데이트될 수 있다. 다만 이는 일 실시 예일 뿐이며, 주행성 맵에서 제2 영역에 속하는 셀이 업데이트 되는 것 또한 가능하다.
이후, 로봇(200)이 주행성 맵을 업데이트하도록, 업데이트된 타일에 포함된 주행성 정보를 로봇(200)으로 전송할 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 상기하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 상기 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 상기 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
100: 전자 장치
200: 로봇
300: 외부 장치

Claims (18)

  1. 전자 장치에 있어서,
    통신부;
    복수의 로봇 각각의 특성 정보가 저장된 메모리; 및
    적어도 하나의 외부 장치가 주변을 센싱하여 획득한 센싱 데이터를 상기 외부 장치로부터 상기 통신부를 통해 수신하고,
    상기 센싱 데이터에 기초하여 상기 외부 장치가 위치하는 공간에 대한 적어도 하나의 맵을 생성하고,
    상기 생성된 맵 및 상기 복수의 로봇 중 하나의 로봇의 특성 정보에 기초하여 상기 로봇의 주행을 위한 주행성 맵을 생성하고,
    상기 생성된 주행성 맵을 상기 로봇으로 전송하도록 상기 통신부를 제어하는 프로세서;를 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 복수의 로봇 각각의 특성 정보는, 상기 복수의 로봇 각각의 사이즈, 높이 및 주행 타입에 대한 정보를 포함하고,
    상기 적어도 하나의 맵은,
    오브젝트가 존재하는 확률 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 오브젝트의 높이를 나타내는 높이 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함하는 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 복수의 셀 각각에 맵핑된 정보 및 상기 로봇의 특성 정보에 기초하여, 상기 복수의 셀 각각에서 상기 로봇이 주행 가능한지 또는 불가능한지를 판단하고,
    상기 로봇의 주행 가능 여부를 나타내는 주행성 정보가 각각 맵핑된 복수의 셀을 포함하는 상기 주행성 맵을 생성하는 전자 장치.
  4. 제2항에 있어서,
    상기 프로세서는,
    상기 외부 장치로부터 후속 센싱 데이터를 상기 통신부를 통해 수신하고,
    상기 후속 센싱 데이터에 기초하여 상기 생성된 맵의 복수의 셀 중 적어도 하나의 셀에 맵핑된 확률 정보 및 높이 정보 중 적어도 하나를 업데이트하여, 상기 생성된 맵을 업데이트하는 전자 장치.
  5. 제4항에 있어서,
    상기 프로세서는,
    상기 생성된 맵 및 상기 업데이트된 맵에 기초하여, 복수의 타일로 구분되는 상기 주행성 맵에서, 상기 복수의 타일 중 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하고,
    상기 로봇이 상기 주행성 맵을 업데이트하도록, 상기 업데이트된 타일에 포함된 주행성 정보를 상기 로봇으로 전송하도록 상기 통신부를 제어하는 전자 장치.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 생성된 맵에 맵핑된 정보 및 상기 업데이트된 맵에 맵핑된 정보를 셀 단위로 비교하여, 맵핑된 정보가 변경된 적어도 하나의 셀을 판단하고,
    상기 업데이트된 맵의 각 타일 별로, 타일에서 상기 맵핑된 정보가 변경된 적어도 하나의 셀을 포함하는 최소 사이즈의 제1 영역을 판단하고,
    상기 로봇의 사이즈에 기초하여 상기 제1 영역을 포함하는 제2 영역 및 상기 제2 영역을 포함하는 제3 영역을 판단하고,
    상기 로봇의 사이즈 및 상기 제3 영역의 복수의 셀 각각에 맵핑된 정보에 기초하여, 상기 제2 영역의 복수의 셀 각각의 주행성 정보를 판단하고,
    상기 판단된 주행성 정보에 기초하여 상기 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하는 전자 장치.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 타일 및 상기 타일 주변의 적어도 하나의 타일 중에서, 상기 제2 영역의 적어도 하나의 셀을 포함하는 적어도 하나의 타일을 판단하고,
    상기 판단된 주행성 정보에 기초하여, 상기 판단된 타일의 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하는 전자 장치.
  8. 제2항에 있어서,
    상기 적어도 하나의 맵은,
    구역에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 자기장의 방향 및 세기에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함하는 전자 장치.
  9. 제2항에 있어서,
    상기 주행 타입은,
    휠 타입, 비행 타입 및 보행 타입 중 적어도 하나인 것을 특징으로 하는, 전자 장치.
  10. 복수의 로봇 각각의 특성 정보를 저장하는 전자 장치의 제어 방법에 있어서,
    적어도 하나의 외부 장치가 주변을 센싱하여 획득한 센싱 데이터를 상기 외부 장치로부터 수신하는 단계;
    상기 센싱 데이터에 기초하여 상기 외부 장치가 위치하는 공간에 대한 적어도 하나의 맵을 생성하는 단계;
    상기 생성된 맵 및 상기 복수의 로봇 중 하나의 로봇의 특성 정보에 기초하여 상기 로봇의 주행을 위한 주행성 맵을 생성하는 단계; 및
    상기 생성된 주행성 맵을 상기 로봇으로 전송하는 단계;를 포함하는 제어 방법.
  11. 제10항에 있어서,
    상기 복수의 로봇 각각의 특성 정보는, 상기 복수의 로봇 각각의 사이즈, 높이 및 주행 타입에 대한 정보를 포함하고,
    상기 적어도 하나의 맵은,
    오브젝트가 존재하는 확률 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 오브젝트의 높이를 나타내는 높이 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함하는, 제어 방법.
  12. 제11항에 있어서,
    상기 주행성 맵을 생성하는 단계는,
    상기 복수의 셀 각각에 맵핑된 정보 및 상기 로봇의 특성 정보에 기초하여, 상기 복수의 셀 각각에서 상기 로봇이 주행 가능한지 또는 불가능한지를 판단하는 단계; 및
    상기 로봇의 주행 가능 여부를 나타내는 주행성 정보가 각각 맵핑된 복수의 셀을 포함하는 상기 주행성 맵을 생성하는, 제어 방법.
  13. 제11항에 있어서,
    상기 외부 장치로부터 후속 센싱 데이터를 수신하는 단계; 및
    상기 후속 센싱 데이터에 기초하여 상기 생성된 맵의 복수의 셀 중 적어도 하나의 셀에 맵핑된 확률 정보 및 높이 정보 중 적어도 하나를 업데이트하여, 상기 생성된 맵을 업데이트하는 단계;를 더 포함하는, 제어 방법.
  14. 제13항에 있어서,
    상기 생성된 맵 및 상기 업데이트된 맵에 기초하여, 복수의 타일로 구분되는 상기 주행성 맵에서, 상기 복수의 타일 중 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하는 단계; 및
    상기 로봇이 상기 주행성 맵을 업데이트하도록, 상기 업데이트된 타일에 포함된 주행성 정보를 상기 로봇으로 전송하는 단계;를 더 포함하는, 제어 방법.
  15. 제14항에 있어서,
    상기 주행성 정보를 업데이트하는 단계는,
    상기 생성된 맵에 맵핑된 정보 및 상기 업데이트된 맵에 맵핑된 정보를 셀 단위로 비교하여, 맵핑된 정보가 변경된 적어도 하나의 셀을 판단하는 단계;
    상기 업데이트된 맵의 각 타일 별로, 타일에서 상기 맵핑된 정보가 변경된 적어도 하나의 셀을 포함하는 최소 사이즈의 제1 영역을 판단하는 단계;
    상기 로봇의 사이즈에 기초하여 상기 제1 영역을 포함하는 제2 영역 및 상기 제2 영역을 포함하는 제3 영역을 판단하는 단계;
    상기 로봇의 사이즈 및 상기 제3 영역의 복수의 셀 각각에 맵핑된 정보에 기초하여, 상기 제2 영역의 복수의 셀 각각의 주행성 정보를 판단하는 단계; 및
    상기 판단된 주행성 정보에 기초하여 상기 적어도 하나의 타일에 포함된 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하는 단계;를 포함하는, 제어 방법.
  16. 제15항에 있어서,
    상기 주행성 정보를 업데이트하는 단계는,
    상기 타일 및 상기 타일 주변의 적어도 하나의 타일 중에서, 상기 제2 영역의 적어도 하나의 셀을 포함하는 적어도 하나의 타일을 판단하고,
    상기 판단된 주행성 정보에 기초하여, 상기 판단된 타일의 적어도 하나의 셀에 맵핑된 주행성 정보를 업데이트하는 것을 특징으로 하는, 제어 방법.
  17. 제11항에 있어서,
    상기 적어도 하나의 맵은,
    구역에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 및 자기장의 방향 및 세기에 대한 정보가 각각 맵핑된 복수의 셀을 포함하는 맵 중 적어도 하나를 포함하는, 제어 방법.
  18. 제11항에 있어서,
    상기 주행 타입은,
    휠 타입, 비행 타입 및 보행 타입 중 적어도 하나인 것을 특징으로 하는, 제어 방법.
KR1020200114134A 2020-05-15 2020-09-07 전자 장치 및 그의 제어 방법 KR20210141294A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/208,231 US11880209B2 (en) 2020-05-15 2021-03-22 Electronic apparatus and controlling method thereof
PCT/KR2021/004525 WO2021230503A1 (en) 2020-05-15 2021-04-09 Electronic apparatus and controlling method thereof
EP21804421.2A EP4070169B1 (en) 2020-05-15 2021-04-09 Electronic apparatus and controlling method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063025375P 2020-05-15 2020-05-15
US63/025,375 2020-05-15

Publications (1)

Publication Number Publication Date
KR20210141294A true KR20210141294A (ko) 2021-11-23

Family

ID=78695285

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200114134A KR20210141294A (ko) 2020-05-15 2020-09-07 전자 장치 및 그의 제어 방법

Country Status (1)

Country Link
KR (1) KR20210141294A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102555708B1 (ko) * 2022-04-19 2023-07-13 호서대학교 산학협력단 타일 격자무늬 추적 자율주행 로봇을 위한 위치 인식 및 주행 제어 방법
WO2024005380A1 (ko) * 2022-06-30 2024-01-04 삼성전자주식회사 공간에 대한 맵을 생성하는 전자 장치 및 이의 제어 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102555708B1 (ko) * 2022-04-19 2023-07-13 호서대학교 산학협력단 타일 격자무늬 추적 자율주행 로봇을 위한 위치 인식 및 주행 제어 방법
WO2024005380A1 (ko) * 2022-06-30 2024-01-04 삼성전자주식회사 공간에 대한 맵을 생성하는 전자 장치 및 이의 제어 방법

Similar Documents

Publication Publication Date Title
US11110343B2 (en) Methods and systems for generating detailed datasets of an environment via gameplay
US10062213B2 (en) Augmented reality spaces with adaptive rules
US11880209B2 (en) Electronic apparatus and controlling method thereof
KR102597216B1 (ko) 공항용 안내 로봇 및 그의 동작 방법
JP7025532B2 (ja) 衝突の検出、推定、および回避
US11433546B1 (en) Non-verbal cuing by autonomous mobile device
US11983006B2 (en) Autonomously motile device with remote control
KR20210141294A (ko) 전자 장치 및 그의 제어 방법
US20230213944A1 (en) Robot and control method therefor
US11422565B1 (en) System for robot movement that is informed by cultural conventions
US11300963B1 (en) Robot movement constraint system
US11274930B1 (en) System for assessing an autonomously determined map
US20240119604A1 (en) Method of controlling electronic device by using spatial information and electronic device using spatial information
US11367306B1 (en) System to determine user engagement with autonomous mobile device
US11233937B1 (en) Autonomously motile device with image capture
US11442463B1 (en) System to determine stationary features by autonomous mobile device
KR20230134109A (ko) 청소 로봇 및 그의 태스크 수행 방법
US11480968B1 (en) System for dynamic positioning of an autonomous mobile device with respect to a user
US11797022B1 (en) System for object detection by an autonomous mobile device
KR102706516B1 (ko) 로봇 주행 모드 결정 방법 및 시스템
US11960288B1 (en) System for path planning in areas outside of sensor field of view by an autonomous mobile device
US11912304B1 (en) System to maintain a dock location of an autonomous mobile device
EP4258077A1 (en) Device and method for simulating mobile robot at work site
US11803188B1 (en) System for docking an autonomous mobile device using inductive sensors
US11409296B1 (en) System for autonomous mobile device navigation in dynamic physical space

Legal Events

Date Code Title Description
A201 Request for examination