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

로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR20230014031A
KR20230014031A KR1020210120014A KR20210120014A KR20230014031A KR 20230014031 A KR20230014031 A KR 20230014031A KR 1020210120014 A KR1020210120014 A KR 1020210120014A KR 20210120014 A KR20210120014 A KR 20210120014A KR 20230014031 A KR20230014031 A KR 20230014031A
Authority
KR
South Korea
Prior art keywords
information
speed
velocity
obtaining
map
Prior art date
Application number
KR1020210120014A
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 PCT/KR2022/007503 priority Critical patent/WO2023003158A1/ko
Publication of KR20230014031A publication Critical patent/KR20230014031A/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0217Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/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 or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors

Abstract

로봇이 개시된다. 로봇은, 적어도 하나의 센서, 구동부 및 프로세서를 포함하며, 프로세서는, 적어도 하나의 명령어를 실행함으로써, 로봇이 주행하는 동안 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하고, 획득된 오브젝트의 특성 정보에 기초하여 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득하고, 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득하고, 획득된 속도 맵에 기초하여 식별된 이동 경로에 기초하여 구동부를 제어한다.

Description

로봇 및 그 제어 방법 { robot and control method }
본 개시는 로봇 및 그 제어 방법에 관한 것으로, 더욱 상세하게는 로봇 및 그 제어 방법에 관한 것이다.
최근 특정 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 특히, 특정 공간을 이동하는 로봇은 주행 경로 상의 장애물을 회피하여 신속하게 주행하여야 사용자에게 신속한 서비스를 제공할 수 있게 된다.
이에 따라 장애물을 고려하여 로봇이 최대한 신속하게 주행할 수 있는 경로를 플래닝하는 방안이 요구된다.
본 개시는 상술한 필요성에 따른 것으로, 로봇이 주행하는 동안 식별되는 다양한 타입의 장애물을 고려하여 최단 시간 경로를 플래닝하는 로봇 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 로봇은, 적어도 하나의 센서, 구동부, 적어도 하나의 명령을 저장하는 메모리 및, 상기 적어도 하나의 센서, 상기 구동부 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서를 포함하며, 상기 프로세서는, 상기 적어도 하나의 명령어를 실행함으로써, 상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하고, 상기 획득된 오브젝트의 특성 정보에 기초하여 상기 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득하고, 상기 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득하고, 상기 획득된 속도 맵에 기초하여 식별된 이동 경로에 기초하여 상기 구동부를 제어할 수 있다.
또한, 상기 프로세서는, 상기 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하고, 상기 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하며, 상기 제1 속도 프로파일 정보는, 상기 정적 오브젝트로부터 제1 임계 거리 내에서 상기 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고, 상기 제2 속도 프로파일 정보는, 상기 동적 오브젝트로부터 제2 임계 거리 내에서 상기 동적 오브젝트에 근접할수록 상기 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보일 수 있다.
또한, 상기 프로세서는, 상기 오브젝트가 제1 타입의 동적 오브젝트인 경우, 상기 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하고, 상기 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하며, 상기 제3 속도 프로파일 정보는, 상기 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 상기 제2 타입의 동적 오브젝트에 근접할수록 상기 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보일 수 있다.
또한, 상기 프로세서는, 상기 오브젝트가 동적 오브젝트인 경우, 상기 동적 오브젝트의 속도 정보를 획득하고, 상기 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 상기 속도 맵을 획득할 수 있다.
또한, 상기 프로세서는, 일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하고, 상기 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하고, 상기 제4 속도 프로파일 정보 및 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 대응되는 속도 프로파일 정보를 획득할 수 있다.
또한, 상기 프로세서는, 상기 제4 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하고, 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제2 속도 값을 획득하고, 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 상기 각 셀에 대응되는 속도 값을 획득하고, 상기 획득된 상기 각 셀에 대응되는 속도 값에 기초하여 상기 일정 공간에 대응되는 속도 맵을 획득할 수 있다.
또한, 상기 메모리는, 오브젝트까지의 거리 정보를 포함하는 Distance Map 을 더 저장하며, 상기 프로세서는, 상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 오브젝트 정보에 기초하여 상기 저장된 Distance Map을 업데이트하고, 상기 업데이트된 Distance Map 및 상기 획득된 프로파일 정보에 기초하여 상기 영역 별 속도 정보를 포함하는 속도 맵을 획득할 수 있다.
또한, 상기 속도 맵은, 복수의 셀 각각에 대응되는 속도 값을 포함하고, 상기 프로세서는, 상기 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하고, 상기 셀 간 소요 시간에 기초하여 최단 시간 경로를 상기 로봇의 이동 경로로 식별할 수 있다.
또한, 상기 프로세서는, 오브젝트까지의 거리 정보를 포함하는 Distance Map 에서 각 셀에 대응되는 거리 정보를 획득하고, 상기 획득된 거리 정보 및 상기 속도 프로파일 정보에 기초하여 각 셀에 대응되는 속도 정보를 획득하고, 각 셀에 대응되는 속도 정보를 포함하는 상기 속도 맵을 획득할 수 있다.
한편, 본 개시의 일 실시 예에 따른 로봇의 제어 방법은 상기 로봇이 주행하는 동안 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하는 단계, 상기 획득된 오브젝트의 특성 정보에 기초하여 상기 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득하는 단계, 상기 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득하는 단계 및 상기 획득된 속도 맵에 기초하여 식별된 이동 경로에 기초하여 상기 로봇을 구동하는 단계를 포함할 수 있다.
또한, 상기 속도 맵을 획득하는 단계는, 상기 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계 및 상기 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계를 포함하며, 상기 제1 속도 프로파일 정보는, 상기 정적 오브젝트로부터 제1 임계 거리 내에서 상기 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고, 상기 제2 속도 프로파일 정보는, 상기 동적 오브젝트로부터 제2 임계 거리 내에서 상기 동적 오브젝트에 근접할수록 상기 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보일 수 있다.
또한, 상기 속도 맵을 획득하는 단계는, 상기 오브젝트가 제1 타입의 동적 오브젝트인 경우, 상기 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계 및, 상기 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계를 포함하며, 상기 제3 속도 프로파일 정보는, 상기 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 상기 제2 타입의 동적 오브젝트에 근접할수록 상기 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보일 수 있다.
또한, 상기 속도 맵을 획득하는 단계는, 상기 오브젝트가 동적 오브젝트인 경우, 상기 동적 오브젝트의 속도 정보를 획득하고, 상기 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 상기 속도 맵을 획득할 수 있다.
또한, 상기 속도 프로파일 정보를 획득하는 단계는, 일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하는 단계, 상기 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하는 단계 및, 상기 제4 속도 프로파일 정보 및 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 대응되는 속도 프로파일 정보를 획득하는 단계를 포함할 수 있다.
또한, 상기 속도 맵을 획득하는 단계는, 상기 제4 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하는 단계, 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제2 속도 값을 획득하는 단계, 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 상기 각 셀에 대응되는 속도 값을 획득하는 단계 및, 상기 획득된 상기 각 셀에 대응되는 속도 값에 기초하여 상기 일정 공간에 대응되는 속도 맵을 획득하는 단계를 포함할 수 있다.
또한, 상기 속도 맵을 획득하는 단계는, 상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 오브젝트 정보에 기초하여 오브젝트까지의 거리 정보를 포함하는 Distance Map을 업데이트하는 단계 및, 상기 업데이트된 Distance Map 및 상기 획득된 프로파일 정보에 기초하여 상기 영역 별 속도 정보를 포함하는 속도 맵을 획득하는 단계를 포함할 수 있다.
또한, 상기 속도 맵은, 복수의 셀 각각에 대응되는 속도 값을 포함하고, 상기 로봇을 구동하는 단계는, 상기 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하는 단계 및, 상기 셀 간 소요 시간에 기초하여 최단 시간 경로를 상기 로봇의 이동 경로로 식별하는 단계를 포함할 수 있다.
또한, 상기 속도 맵을 획득하는 단계는, 오브젝트까지의 거리 정보를 포함하는 Distance Map에서 각 셀에 대응되는 거리 정보를 획득하는 단계, 상기 획득된 거리 정보 및 상기 속도 프로파일 정보에 기초하여 각 셀에 대응되는 속도 정보를 획득하는 단계 및, 각 셀에 대응되는 속도 정보를 포함하는 상기 속도 맵을 획득하는 단계를 포함할 수 있다.
상술한 다양한 실시 예에 따르면, 로봇이 주행하는 동안 식별되는 다양한 타입의 장애물을 고려하여 최단 시간 경로를 플래닝할 수 있게 된다.
도 1은 이해를 돕기 위한 로봇의 경로 플래닝 방법을 설명하기 위한 도면이다.
도 2는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 3은 일 실시 예에 따른 로봇의 이동 경로 식별 방법을 설명하기 위한 도면이다.
도 4a 내지 도 4c는 일 실시 예에 따른 오브젝트의 타입에 따른 속도 프로파일을 설명하기 위한 도면들이다.
도 5a 및 도 5b는 일 실시 예에 따른 오브젝트의 타입에 따른 속도 프로파일을 설명하기 위한 도면들이다.
도 6a 내지 도 6c는 일 실시 예에 따른 오브젝트의 속도에 따른 속도 프로파일을 설명하기 위한 도면들이다.
도 7a 내지 도 7c는 일 실시 예에 따른 복수의 오브젝트에 따른 속도 프로파일을 설명하기 위한 도면들이다.
도 8a 내지 도 8c는 일 실시 예에 따른 복수의 오브젝트에 따른 속도 맵을 설명하기 위한 도면들이다.
도 9는 일 실시 예에 따른 셀 간 소요 시간 산출 방법을 설명하기 위한 도면이다.
도 10a 내지 도 10c는 일 실시 예에 따른 이동 경로 식별 방법을 설명하기 위한 도면들이다.
도 11은 일 실시 예에 따른 로봇의 세부 구성을 나타내는 블럭도이다.
도 12는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
본 개시에서 '사용자' 는 로봇에게 서비스를 제공받는 사람을 의미할 수 있으나, 이에 한정되는 것은 아니다.
도 1은 이해를 돕기 위한 로봇의 경로 플래닝 방법을 설명하기 위한 도면이다.
도 1에 따르면 로봇(100)은 특정 공간을 주행하며 사용자에게 서비스를 제공할 수 있다. 예를 들어, 로봇(100)은 공간을 청소하는 서비스를 제공할 수 있으나 이에 한정되는 것은 아니다. 로봇(100)은 공간을 주행하기 위해 공간에 대응되는 맵 데이터를 기 저장하고 있을 수 있으며 이에 기초하여 경로 플래닝을 수행하여 공간을 주행할 수 있다. 일 예에 따라, 맵 데이터는 Traversability Map, Distance Map 등과 같이 다양한 타입의 맵 데이터가 될 수 있다.
일 예에 따라 장애물을 safe margin 만큼 확장한 Traversability Map 기반의 경로 플래닝은 코너와 일정 거리를 두는 안전한 경로를 생성할 수 있다. 다만, safe margin이 크면 좁은 통로(예를 들어 경로 ①)에서는 경로를 생성할 수 없다는 문제가 있다.
다른 예에 따라 지도 상 각 셀(cell)(또는 그리드(grid)) 마다 가장 가까운 장애물까지의 거리 정보를 포함하는 Distance Map 기반의 경로 플래닝은 안전한 경로를 생성할 수 있고 좁은 통로를 통과하는 경로도 생성할 수 있다. 다만, 좁은 통로(예를 들어 경로 ①, ②)보다 넓은 통로(예를 들어, 경로 ③)를 통과하는 것을 우선시하기 때문에 좁은 통로를 통과하는 최소 시간 경로를 두고 비효율적인 우회 경로가 생성될 수 있다는 문제가 있다.
이에 따라 이하에서는 실시간 장애물 정보를 반영하여 최소 시간의 경로 플래닝을 수행하는 다양한 실시 예에 대해 설명하도록 한다.
도 2는 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 2에 따르면, 로봇(100)은 적어도 하나의 센서(110), 메모리(120), 구동부(130) 및 프로세서(140)를 포함할 수 있다.
적어도 하나의 센서(110)는 다양한 타입의 복수의 센서를 포함할 수 있다. 센서(110)는 물리량을 계측하거나 로봇(100)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서(110)는 카메라를 포함할 수 있으며, 카메라는 오브젝트에 의해 반사되어 수신되는 가시광 기타 광학 신호를 이미지 센서로 포커싱하는 렌즈 및 가시광 기타 광학 신호를 감지할 수 있는 이미지 센서를 포함할 수 있다. 여기서, 이미지 센서는 복수의 픽셀로 구분되는 2D의 픽셀 어레이를 포함할 수 있으며, 일 예에 따른 카메라는 뎁스 카메라로 구현될 수 있다. 또한, 센서(140)는 라이더(LIDAR, Light Detection And Ranging) 센서 및 TOF(Time of flight) 센서와 같은 거리 센를 포함할 수 있다.
그 밖에 센서(110)는 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수도 있다.
메모리(120)는 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(120)는 데이터 저장 용도에 따라 로봇(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 메모리) 등과 같은 형태로 구현될 수 있다.
일 예에 따라 메모리(120)는 오브젝트까지의 거리 정보를 포함하는 Distance Map, 오브젝트의 특성에 따른 속도 프로파일 정보 등을 저장할 수 있다. 다만, 해당 정보들은 외부 장치로부터 실시간으로 수신되는 것도 가능하다. 여기서, Distance Map은 각 셀에 오브젝트, 즉 장애물까지 거리 및 해당 장애물의 확률 값을 저장하는 형태일 수 있다.
구동부(130)는 로봇(100)을 주행시킬 수 있는 장치이다. 구동부(130)는 프로세서(140)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있으며, 일 예에 따른 구동부(130)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(130)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형 실시될 수 있다.
적어도 하나의 프로세서(140)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(140)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(140)는 메모리(120) 및 구동부(130)와 전기적으로 연결되어 로봇(100)의 전반적인 동작을 제어할 수 있다. 프로세서(140)는 하나 또는 복수의 프로세서로 구성될 수 있다. 예를 들어, 후술하는 다양한 기능(예를 들어, 맵 생성, 경로 플래닝)은 하나의 프로세서에 의해 수행될 수도 있으나, 복수의 프로세서에 의해 각기 다른 기능이 수행될 수도 있다.
프로세서(140)는 메모리(120)에 저장된 적어도 하나의 인스트럭션(instruction)을 실행함으로써, 다양한 실시 예에 따른 로봇(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) 형태로 구현될 수도 있다. 또한, 프로세서(140)는 SRAM 등의 휘발성 메모리를 포함할 수 있다.
일 실시 예에 따르면, 프로세서(140)는 오브젝트의 특성 정보에 기초하여 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득할 수 있다. 여기서, 오브젝트는 로봇(100)의 주행에 방해가 되는 장애물이 될 수 있다. 오브젝트의 특성 정보는, 오브젝트의 타입, 오브젝트의 속도 또는 오브젝트의 크기 중 적어도 하나를 포함할 수 있다. 여기서, 오브젝트의 타입은 움직임이 없는 정적 오브젝트, 움직임이 있는 동적 오브젝트로 구분될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 동적 오브젝트의 경우 사람, 동물 등의 타입으로도 구분되고, 정적 오브젝트의 경우 가구, 가전 등의 타입으로 구분되는 것도 가능하다. 속도 프로파일 정보란 장애물과의 거리에 따른 속도 정보를 나타내는 것으로, 장애물의 특성에 따라 상이할 수 있다.
프로세서(140)는 오브젝트의 특성 정보에 기초하여 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵(speed map)을 획득할 수 있다. 예를 들어, 속도 맵은 각 셀(또는 그리드)에 대응되는 속도 정보를 포함하는 형태일 수 있다. 또한, 속도 맵은 각 셀에 장애물의 확률 값을 더 저장할 수 있다. 여기서 셀(또는 그리드)이란 맵에 포함된 최소 단위의 영역일 수 있다. 또한, 속도 정보는 속도에 대응되는 절대 수치이거나, 기준 수치에 적용되는 가중치 형태일 수 있다. 예를 들어, 속도 맵은 복수의 셀 각각에 맵핑된 속도 값을 포함할 수 있다.
일 예에 따라 프로세서(140)는 각 셀에 대응되는 장애물과의 거리 정보를 포함하는 Distance Map의 각 거리 정보를 속도 정보로 대체하여 속도 맵을 획득할 수 있다.
이어서, 프로세서(140)는 획득된 속도 맵에 기초하여 로봇(100)의 이동 경로를 식별하고, 식별된 이동 경로에 기초하여 구동부(130)를 제어할 수 있다.
일 예에 따라 프로세서(140)는 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다. 여기서, 제1 속도 프로파일 정보는, 정적 오브젝트로부터 제1 임계 거리 내에서 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보일 수 있다. 또한, 제2 속도 프로파일 정보는, 동적 오브젝트로부터 제2 임계 거리 내에서 동적 오브젝트에 근접할수록 제2 기울기로 속도가 감소하는 정보일 수 있다. 여기서, 제2 임계 거리는 제1 임계 거리보다 클 수 있다. 또한, 제2 기울기는 제1 기울기보다 작을 수 있다. 즉, 동적 오브젝트에 대응되는 속도 프로파일은 정적 오브젝트에 대응되는 속도 프로파일과 비교하여 상대적으로 먼 거리에서부터 상대적으로 완만한 기울기로 감소하는 형태일 수 있다.
일 예에 따라 프로세서(140)는 오브젝트가 제1 타입의 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다. 여기서, 제3 속도 프로파일 정보는, 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 제2 타입의 동적 오브젝트에 근접할수록 제3 기울기로 속도가 감소하는 정보일 수 있다. 여기서, 제3 임계 거리는 제2 임계 거리보다 클 수 있다. 또한, 제3 기울기는 제2 기울기보다 작을 수 있다. 여기서, 제2 타입의 동적 오브젝트는 제1 타입의 동적 오브젝트에 비해 상대적으로 로봇(100)의 주행에 주의가 요구되는 타입을 수 있다. 예를 들어, 제1 타입의 동적 오브젝트는 성인, 제2 타입의 동적 오브젝트는 아이, 애완 동물 등이 될 수 있으나, 이에 한정되는 것은 아니다.
일 예에 따라 프로세서(140)는 오브젝트가 동적 오브젝트인 경우, 동적 오브젝트의 속도 정보를 획득하고, 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 속도 맵을 획득할 수 있다.
일 예에 따라 프로세서(140)는 오브젝트가 제3 타입의 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 제4 타입의 정적 오브젝트인 경우, 제4 속도 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다. 여기서, 제4 속도 프로파일 정보는, 제4 타입의 정적 오브젝트로부터 제4 임계 거리 내에서 제4 타입의 정적 오브젝트에 근접할수록 제1 기울기보다 작은 제4 기울기로 속도가 감소하는 정보일 수 있다. 여기서, 제4 임계 거리는 제1 임계 거리보다 클 수 있다. 또한, 제4 기울기는 제1 기울기보다 작을 수 있다. 즉, 제4 타입의 정적 오브젝트에 대응되는 속도 프로파일은 오브젝트가 제3 타입의 정적 오브젝트에 대응되는 속도 프로파일과 비교하여 상대적으로 먼 거리에서부터 상대적으로 완만한 기울기로 감소하는 형태일 수 있다. 여기서, 제3 타입의 정적 오브젝트는 벽 등과 같이 위험성이 전혀 없는 오브젝트이고, 제4 타입의 정적 오브젝트는 화병이 놓인 탁자와 같이 벽과 비교하여 상대적으로 위험성이 있는 오브젝트일 수 있으나, 이에 한정되는 것은 아니다.
일 예에 따르면 프로세서(140)는 일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하고, 해당 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 해당 공간에 대응되는 제5 속도 프로파일 정보를 획득할 수 있다. 이어서, 프로세서(140)는 제4 속도 프로파일 정보 및 제5 속도 프로파일 정보에 기초하여 일정 공간에 대응되는 속도 프로파일 정보를 획득할 수 있다.
이 경우, 프로세서(140)는 제4 속도 프로파일 정보에 기초하여 해당 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하고, 제5 속도 프로파일 정보에 기초하여 일정 공간에 포함된 해당 공간에 포함된 각 셀에 대응되는 제2 속도 값을 획득하고, 해당 공간에 포함된 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 각 셀에 대응되는 속도 값을 획득할 수 있다. 이어서 프로세서(140)는 획득된 각 셀에 대응되는 속도 값에 기초하여 일정 공간에 대응되는 속도 맵을 획득할 수 있다.
일 실시 예에 따르면, 프로세서(140)는 로봇이 주행하는 동안 적어도 하나의 센서(미도시)에 의해 획득된 오브젝트 정보에 기초하여 메모리(120)에 저장된 Distance Map을 업데이트할 수 있다. 이어서, 프로세서(140)는 업데이트된 Distance Map 및 오브젝트의 특성 정보에 기초하여 획득된 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다.
이어서, 프로세서(140)는 기 설정된 이벤트에 따라 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하고, 셀 간 소요 시간에 기초하여 최단 시간 경로를 로봇(100)의 이동 경로로 식별할 수 있다. 여기서, 프로세서(140)가 경로 플래닝(또는 리플래닝)을 수행하기 위한 이벤트는 속도 맵이 업데이트되는 이벤트일 수 있다. 다만, 이에 한정되는 것은 아니며 속도 맵과 관련된 다른 맵이 업데이트되는 이벤트일 수도 있다. 예를 들어, 후술하는 free space map 또는/및 distance map이 업데이트되는 이벤트일 수 있다. 일 예에 따라 상술한 다양한 맵의 획득이 경로 플래닝을 수행하는 프로세서와 상이한(또는 다른 모듈)에 의해 수행되는 경우 해당 프로세서(또는 모듈)의 이벤트 신호가 수신되는 경우 경로 플래닝이 수행될 수도 있다.
도 3은 일 실시 예에 따른 로봇의 이동 경로 식별 방법을 설명하기 위한 도면이다.
도 3에 따르면, 프로세서(140)는 SLAM(Simulaneous Localization And Mapping)(310)에 기초하여 free space map을 획득(320)할 수 있다. 여기서, SLAM이란 맵을 생성함과 동시에 로봇(100)의 위치를 추정하는 것을 의미한다. 예를 들어, 프로세서(140)는 적어도 하나의 센서(미도시)를 통해 획득된 데이터에 기초하여 free space map을 획득할 수 있다. 일 예에 따라 프로세서(140)는 GPS를 이용하여 로봇(100)의 위치를 파악하고, 카메라, 라이더 센서, 적외선 센서, 초음파 센서 등과 같이 로봇(100)에 구비된 다양한 센서를 이용하여 free space map을 획득할 수 있다. 여기서, free space map은 공간을 occupied space, free space 또는 unknown space 중 적어도 하나로 구분한 형태일 수 있다.
이어서, 프로세서(140)는 free-space map에 포함된 free space에 대한 정보 및 로봇(100)이 주행하는 동안 적어도 하나의 센서(미도시), 예를 들어 라이더 센서를 통해 획득된 정보에 기초하여 distance map을 획득(330)할 수 있다. 여기서, Distance Map은 장애물까지 거리 및 장애물의 확률 값을 저장하는 형태일 수 있다.
또한, 프로세서(140)는 주행하는 동안 오브젝트 정보, 특히 동적 오브젝트 정보를 획득(340)하여, 동적 오브젝트의 타입, 속도 등을 식별할 수 있다.
이어서, 프로세서(140)는 distance map에 포함된 거리 정보, 오브젝트 정보 및 속도 프로파일 정보(360)에 기초하여 speed map을 획득할 수 있다(350).
이 후, 프로세서(140)는 speed map에 포함된 셀 별 속도 정보에 기초하여 경로 플래닝(370)을 수행할 수 있다. 예를 들어, 프로세서(140)는 speed map에 포함된 셀 별 속도 정보에 기초하여 로봇(100)의 현재 위치에서 목적지까지의 최소 시간 경로를 식별할 수 있다.
도 4a 내지 도 4c는 일 실시 예에 따른 오브젝트의 타입에 따른 속도 프로파일을 설명하기 위한 도면들이다.
도 4a는 벽과 같이 일 측으로만 공간을 제공하는 정적 오브젝트에 대한 속도 프로파일을, 도 4b는 가구와 같이 적어도 양 측으로 공간을 제공하는 정적 오브젝트에 대한 속도 프로파일을, 도 4c는 상대적으로 접근 위험도가 높은 정적 오브젝트에 대한 속도 프로파일을 나타낼 수 있다.
도 4a에 도시된 바와 같은 속도 프로파일에 따르면, 벽으로부터 임계 거리 내에서 속도가 점차 감소하여 벽으로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다.
도 4b에 도시된 바와 같은 속도 프로파일에 따르면, 가구로부터 복수의 방향으로 임계 거리 내에서 속도가 점차 감소하여 가구로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다.
도 4c에 도시된 바와 같은 속도 프로파일에 따르면, 도 4b에 도시된 가구에 비해 상대적으로 접근 위험도(예를 들어, 충돌시 화병이 떨어질 위험 존재)가 높은 가구의 경우, 도 4b 보다 상대적으로 먼 임계 거리를 기준으로 속도가 상대적으로 완만하게 감소하여 가구로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다.
여기서, 특정 거리는 로봇(100)의 크기에 기초하여 동일한 거리로 결정될 수 있다. 예를 들어, 특정 거리는 오브젝트의 특성과 관계없이 로봇(100)의 크기의 n배(n은 1 이상의 정수)로 결정될 수 있다. 다만, 이에 한정되는 것은 아니며 각 오브젝트의 특성에 따라 특정 거리가 상이할 수도 있다.
도 5a 및 도 5b는 일 실시 예에 따른 오브젝트의 타입에 따른 속도 프로파일을 설명하기 위한 도면들이다.
도 5a는 성인과 같은 접근 위험도가 낮은 동적 오브젝트에 대한 속도 프로파일을, 도 5b는 아이과 같은 접근 위험도가 높은 동적 오브젝트에 대한 속도 프로파일을 나타낼 수 있다.
도 5a에 도시된 바와 같은 속도 프로파일에 따르면, 성인으로부터 복수의 방향으로 임계 거리 내에서 속도가 점차 감소하여 성인으로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다.
도 5b에 도시된 바와 같은 속도 프로파일에 따르면, 아이로부터 복수의 방향으로 임계 거리 내에서 속도가 점차 감소하여 가구로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다.
이 경우, 도 5b에 도시된 속도 프로파일에 따르면, 도 5a 보다 더 먼 임계 거리에서 상대적으로 완만한 기울기로 속도가 감소하여 접근 위험도가 높은 동적 오브젝트에 대한 접근 위험을 감소시킬 수 있게 된다. 여기서, 속도가 0으로 수렴하는 특정 거리는 로봇(100)의 크기에 기초하여 동일한 거리로 결정될 수 있다. 예를 들어, 특정 거리는 오브젝트의 특성과 관계없이 로봇(100)의 크기의 n배(n은 1 이상의 정수)로 결정될 수 있다. 다만, 이에 한정되는 것은 아니며 각 오브젝트의 특성에 따라 특정 거리가 상이할 수도 있다. 예를 들어 접근 위험도가 높은 동적 오브젝트에 대해 특정 거리를 상대적으로 크게 설정할 수 있다.
도 6a 내지 도 6c는 일 실시 예에 따른 오브젝트의 속도에 따른 속도 프로파일을 설명하기 위한 도면들이다.
도 6a는 동적 오브젝트, 예를 들어, 강아지와 같은 애완 동물이 움직임이 없을 경우에 대한 속도 프로파일을, 도 6b 및 도 6c는 애완 동물이 움직임이 없을 경우에 대한 속도 프로파일을 나타낼 수 있다.
도 6a에 도시된 바와 같이 강아지가 누워 있는 경우에는, 도 6b 및 도 6c에 도시된 바와 같이 강아지가 움직이는 경우와 상이한 속도 프로파일이 적용될 수 있다.
일 예로, 도 6b에 따르면, 도 6a 보다 상대적으로 먼 임계 거리를 기준으로 속도가 상대적으로 완만하게 감소하여 가구로부터 특정 거리가 되면 속도는 0으로 감소할 수 있다. 이 경우 속도가 0으로 수렴되는 특정 거리는 도 6a와 동일할 수 있다.
다른 예로, 도 6c에 따르면, 도 6a 보다 상대적으로 먼 임계 거리를 기준으로 속도가 상대적으로 완만하게 감소하면서 상대적으로 먼 거리에서 속도가 0으로 감소할 수도 있다. 즉, 속도가 0으로 수렴되는 특정 거리는 도 6a와 상이할 수 있다.
한편, 도면에는 명확히 도시되지 않았지만, 강아지의 속도에 따라 속도 프로파일의 기울기 및 속도가 0으로 수렴되는 특정 거리가 상이할 수 있음은 물론이다.
도 7a 내지 도 7c는 일 실시 예에 따른 복수의 오브젝트에 따른 속도 프로파일을 설명하기 위한 도면들이다.
일 실시 예에 따르면 프로세서(140)는 일정 공간에 복수의 오브젝트가 존재하는 경우, 제1 오브젝트의 특성 정보에 기초하여 획득된 속도 프로파일 정보 및 제2 오브젝트의 특성 정보에 기초하여 획득된 속도 프로파일 정보에 기초하여 해당 공간에 대응되는 속도 프로파일 정보를 획득할 수 있다.
예를 들어, 프로세서(140)는 제1 오브젝트의 특성 정보에 기초하여 획득된 도 7a에 도시된 바와 같은 속도 프로파일 및 제2 오브젝트의 특성 정보에 기초하여 획득된 도 7b에 도시된 바와 같은 속도 프로파일에 기초하여 도 7c와 같은 최종 속도 프로파일을 획득할 수 있다. 즉, 프로세서(140)는 해당 공간에 속하는 동일한 셀에 대해 도 7a에서 획득된 속도 값 및 도 7b에서 획득된 속도 값 중 작은 값을 식별하여 해당 셀에 대한 최종 속도 값으로 획득하고, 모든 셀에 대한 최종 속도 값을 획득하여 최종 속도 프로파일을 획득할 수 있다.
도 8a 내지 도 8c는 일 실시 예에 따른 복수의 오브젝트에 따른 속도 맵을 설명하기 위한 도면들이다.
도 8a는 특정 공간 상에 위치하는 정적 오브젝트(예를 들어, 벽)에 대응되는 속도 프로파일 정보에 기초하여 획득된 속도 맵의 예시를 나타내며, 도 8b는 동적 오브젝트(예를 들어, 성인)에 대응되는 속도 프로파일 정보에 기초하여 획득된 속도 맵의 예시를 나타낸다. 속도 맵은 각 셀에 대응되는 속도 정보를 포함하는 형태일 수 있다. 또한, 속도 맵은 각 셀에 대응되는 오브젝트 확률 정보를 포함할 수 있다. 이 경우, 각 셀에 오브젝트 확률 값이 그대로 맵핑될 수도 있으나, 오브젝트확률 값이이 임계 값 이상인 셀에만 확률 값이 맵핑되는 것도 가능하다.
이 경우, 특정 공간 상에 동적 오브젝트가 출현하는 경우 도 8a에 따른 속도 프로파일 및 도 8b에 따른 속도 프로파일에 기초하여 도 8c와 같은 속도 맵이 획득될 수 있다. 즉, 프로세서(140)는 해당 공간에 속하는 동일한 셀에 대해 도 8a에서 획득된 속도 값 및 도 8b에서 획득된 속도 값 중 작은 값을 식별하여 해당 셀에 대한 최종 속도 값으로 획득하고, 모든 셀에 대한 최종 속도 값을 획득하여 최종 속도 프로파일을 획득하고, 최종 속도 프로파일에 기초하여 속도 맵을 획득할 수 있다.
도 9는 일 실시 예에 따른 셀 간 소요 시간 산출 방법을 설명하기 위한 도면이다.
일 실시 예에 따르면, 프로세서(140)는 속도 맵에 기초하여 셀 간 소요 시간을 획득하고, 획득된 셀 간 소요 시간에 기초하여 로봇(100)의 이동 경로로 식별할 수 있다.
일 예에 따라 도 9에 도시된 바와 같이 각 셀에 대응되는 속도가 맵핑된 속도 맵에서 각 셀에 맵핑된 속도 및 각 셀의 중심 간 거리에 기초하여 셀 간 소요 시간을 획득할 수 있다. 예를 들어, 제1 셀(911)에 맵핑된 속도가 v11(예를 들어, mm/s, cm/s 와 같은 속도 단위)이고, 제2 셀(912)에 맵핑된 속도가 v21이며, 제1 셀(911) 및 제2 셀(912) 간 거리가 xmm(또는 cm 등 속도와 같은 거리 단위)(실제 거리)인 경우 x/v11을 제1 셀(911) 및 제2 셀(912) 간 소요 시간으로 산출할 수 있다. 다만, 제1 셀(911)에 맵핑된 속도 v11이 아닌, v11 및 v21의 평균 값, v21 등에 기초하여 제1 셀(911) 및 제2 셀(912) 간 소요 시간을 산출하는 것도 가능하다.
이어서, 프로세서(140)는 각 셀 간 소요 시간에 기초하여 최단 시간 경로를 로봇(100)의 이동 경로로 식별할 수 있다. 일 예에 따라 프로세서(140)는 셀 간 소요 시간을 코스트(cost), 예를 들어 edge cost로 이용하여 누적 cost가 가장 작은 경로를 식별할 수 있다.
도 10a 내지 도 10c는 일 실시 예에 따른 이동 경로 식별 방법을 설명하기 위한 도면들이다.
도 10a에 따르면, 이미 식별된 이동 경로 ① 상에 정적 장애물 및 동적 장애물이 출현하는 경우, 해당 이동 경로를 유지하게 되는 경우 이동 경로 ①은 ②와 같은 형태로 업데이트될 수 있다. 이 경우, 이동 경로 ②는 최소 경로가 아닐 수 있게 된다. 이에 따라 프로세서(140)는 상술한 다양한 실시 예에 따른 속도 맵에 기초하여 최단 시간 경로인 ③을 식별하고, 이동 경로 ③에 기초하여 로봇을 주행시킬 수 있다.
도 10b에 따르면, 이미 식별된 이동 경로 ①이 아닌 다른 경로 상에 존재하던 장애물 예를 들어, 정적 장애물이 사라지고 이동 경로 ① 상에 동적 장애물이 출현하는 경우 이동 경로 ①은 ②와 같은 형태로 업데이트될 수 있다. 이동 경로 ②는 최소 경로가 아닐 수 있게 된다. 이에 따라 프로세서(140)는 상술한 다양한 실시 예에 따른 속도 맵에 기초하여 최단 시간 경로인 ③을 식별하고, 이동 경로 ③에 기초하여 로봇을 주행시킬 수 있다.
도 10c에 따르면, 이미 식별된 이동 경로 ①이 아닌 다른 경로 상에 존재하던 장애물 예를 들어, 정적 장애물이 사라지고 이동 경로 ① 상에 동적 장애물이 출현하는 경우 이동 경로 ①은 ②와 같은 형태로 업데이트될 수 있다. 이동 경로 ②는 최소 경로가 아닐 수 있게 된다. 이에 따라 프로세서(140)는 상술한 다양한 실시 예에 따른 속도 맵에 기초하여 최단 시간 경로인 ③을 식별하고, 이동 경로 ③에 기초하여 로봇을 주행시킬 수 있다.
도 11은 일 실시 예에 따른 로봇의 세부 구성을 나타내는 블럭도이다.
도 11에 따르면 로봇(100')은 적어도 하나의 센서(110), 메모리(120), 구동부(130), 프로세서(140), 통신 인터페이스(150), 사용자 인터페이스(160) 및 디스플레이(170)를 포함할 수 있다. 도 11에 도시된 구성 중 도 2에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
통신 인터페이스(150)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(150)는 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 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.
일 예에 따라 맵 정보를 외부 장치(또는 외부 서버)로부터 수신하는 경우, 통신 인터페이스(150)를 통해 맵 정보를 수신할 수 있다.
사용자 인터페이스(160)는 로봇(100')이 사용자와 인터렉션(Interaction)을 수행하기 위한 구성이다. 예를 들어 사용자 인터페이스(160)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
디스플레이(170)는 자발광 소자를 포함하는 디스플레이 또는, 비자발광 소자 및 백라이트를 포함하는 디스플레이로 구현될 수 있다. 예를 들어, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, LED(Light Emitting Diodes), 마이크로 LED(micro LED), Mini LED, PDP(Plasma Display Panel), QD(Quantum dot) 디스플레이, QLED(Quantum dot light-emitting diodes) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(110) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(170)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 롤러블 디스플레이(rollable display), 3차원 디스플레이(3D display), 복수의 디스플레이 모듈이 물리적으로 연결된 디스플레이 등으로 구현될 수 있다. 또한, 디스플레이(170)는 터치 스크린을 내장하고 있어, 손가락 또는 펜(예를 들어, 스타일러스 펜)을 이용하여 프로그램을 실행시킬 수 있도록 구현될 수 있다.
도 12는 일 실시 예에 따른 로봇의 제어 방법을 설명하기 위한 흐름도이다.
도 12에 도시된 로봇의 제어 방법에 따르면, 로봇이 주행하는 동안 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하고, 획득된 오브젝트의 특성 정보에 기초하여 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득한다(S1210).
이어서, 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득한다(S1220).
이어서, 획득된 속도 맵에 기초하여 이동 경로를 식별한다(S1230).
이 후, 식별된 이동 경로에 기초하여 로봇을 구동한다(S1240).
또한, 속도 맵을 획득하는 S1220 단계에서는, 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 속도 맵을 획득할 수 있다. 이 경우, 제1 속도 프로파일 정보는, 정적 오브젝트로부터 제1 임계 거리 내에서 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고, 제2 속도 프로파일 정보는, 동적 오브젝트로부터 제2 임계 거리 내에서 동적 오브젝트에 근접할수록 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보일 수 있다.
또한, 속도 맵을 획득하는 S1220 단계에서는, 오브젝트가 제1 타입의 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 속도 맵을 획득하고, 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득한다. 이 경우, 제3 속도 프로파일 정보는, 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 제2 타입의 동적 오브젝트에 근접할수록 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보일 수 있다.
또한, 속도 맵을 획득하는 S1220 단계에서는, 오브젝트가 동적 오브젝트인 경우, 동적 오브젝트의 속도 정보를 획득하고, 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 속도 맵을 획득할 수 있다.
또한, 속도 맵을 획득하는 S1220 단계에서는, 일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하고 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하고, 제4 속도 프로파일 정보 및 제5 속도 프로파일 정보에 기초하여 일정 공간에 대응되는 속도 프로파일 정보를 획득할 수 있다.
이 경우, 속도 맵을 획득하는 S1220 단계에서는, 제4 속도 프로파일 정보에 기초하여 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하고, 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀에 대응되는 제2 속도 값을 획득하고, 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 각 셀에 대응되는 속도 값을 획득하고, 각 셀에 대응되는 속도 값에 기초하여 일정 공간에 대응되는 속도 맵을 획득할 수 있다.
또한, 속도 맵을 획득하는 S1220 단계에서는, 로봇이 주행하는 동안 센서에 의해 획득된 오브젝트 정보에 기초하여 오브젝트까지의 거리 정보를 포함하는 Distance Map 을 업데이트하고, 업데이트된 Distance Map 및 획득된 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득할 수 있다.
속도 맵은, 복수의 셀 각각에 대응되는 속도 값을 포함할 수 있다. 이 경우, 로봇을 구동하는 S1240 단계에서는, 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하고 셀 간 소요 시간에 기초하여 최단 시간 경로를 로봇의 이동 경로로 식별할 수 있다.
또한, 속도 맵을 획득하는 S1220 단계에서는, 오브젝트까지의 거리 정보를 포함하는 Distance Map 에서 각 셀에 대응되는 거리 정보를 획득고, 획득된 거리 정보 및 속도 프로파일 정보에 기초하여 각 셀에 대응되는 속도 정보를 획득할 수 있다.
상술한 다양한 실시 예에 따르면, 로봇이 주행하는 동안 식별되는 다양한 타입의 장애물을 고려하여 최단 시간 경로를 플래닝할 수 있게 된다.
한편, 상술한 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다. 또는 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 딥 러닝 기반의 인공 신경망(또는 심층 인공 신경망) 즉, 학습 네트워크 모델을 이용하여 수행될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100: 로봇 110: 적어도 하나의 센서
120: 메모리 130: 구동부
140: 프로세서

Claims (18)

  1. 로봇에 있어서,
    적어도 하나의 센서;
    구동부;
    적어도 하나의 명령을 저장하는 메모리; 및
    상기 적어도 하나의 센서, 상기 구동부 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서;를 포함하며,
    상기 프로세서는,
    상기 적어도 하나의 명령어를 실행함으로써,
    상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하고,
    상기 획득된 오브젝트의 특성 정보에 기초하여 상기 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득하고,
    상기 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득하고,
    상기 획득된 속도 맵에 기초하여 식별된 이동 경로에 기초하여 상기 구동부를 제어하는, 로봇.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하고,
    상기 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하며,
    상기 제1 속도 프로파일 정보는, 상기 정적 오브젝트로부터 제1 임계 거리 내에서 상기 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고,
    상기 제2 속도 프로파일 정보는, 상기 동적 오브젝트로부터 제2 임계 거리 내에서 상기 동적 오브젝트에 근접할수록 상기 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보인, 로봇.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 오브젝트가 제1 타입의 동적 오브젝트인 경우, 상기 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하고,
    상기 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하며,
    상기 제3 속도 프로파일 정보는, 상기 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 상기 제2 타입의 동적 오브젝트에 근접할수록 상기 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보인, 로봇.
  4. 제2항에 있어서,
    상기 프로세서는,
    상기 오브젝트가 동적 오브젝트인 경우, 상기 동적 오브젝트의 속도 정보를 획득하고,
    상기 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 상기 속도 맵을 획득하는, 로봇.
  5. 제1항에 있어서,
    상기 프로세서는,
    일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하고,
    상기 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하고,
    상기 제4 속도 프로파일 정보 및 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 대응되는 속도 프로파일 정보를 획득하는, 로봇.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 제4 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하고,
    상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제2 속도 값을 획득하고,
    상기 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 상기 각 셀에 대응되는 속도 값을 획득하고,
    상기 획득된 상기 각 셀에 대응되는 속도 값에 기초하여 상기 일정 공간에 대응되는 속도 맵을 획득하는, 로봇.
  7. 제1항에 있어서,
    상기 메모리는,
    오브젝트까지의 거리 정보를 포함하는 Distance Map을 더 저장하며,
    상기 프로세서는,
    상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 오브젝트 정보에 기초하여 상기 저장된 Distance Map을 업데이트하고,
    상기 업데이트된 Distance Map 및 상기 획득된 프로파일 정보에 기초하여 상기 영역 별 속도 정보를 포함하는 속도 맵을 획득하는, 로봇.
  8. 제1항에 있어서,
    상기 속도 맵은, 복수의 셀 각각에 대응되는 속도 값을 포함하고,
    상기 프로세서는,
    상기 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하고,
    상기 셀 간 소요 시간에 기초하여 최단 시간 경로를 상기 로봇의 이동 경로로 식별하는, 로봇.
  9. 제1항에 있어서,
    상기 프로세서는,
    오브젝트까지의 거리 정보를 포함하는 Distance Map에서 각 셀에 대응되는 거리 정보를 획득하고,
    상기 획득된 거리 정보 및 상기 속도 프로파일 정보에 기초하여 각 셀에 대응되는 속도 정보를 획득하고,
    각 셀에 대응되는 속도 정보를 포함하는 상기 속도 맵을 획득하는, 로봇.
  10. 로봇의 제어 방법에 있어서,
    상기 로봇이 주행하는 동안 적어도 하나의 센서에 의해 획득된 센싱 데이터에 기초하여 오브젝트의 특성 정보를 획득하는 단계;
    상기 획득된 오브젝트의 특성 정보에 기초하여 상기 오브젝트까지의 거리에 따른 속도 프로파일 정보를 획득하는 단계;
    상기 획득된 속도 프로파일 정보에 기초하여 영역 별 속도 정보를 포함하는 속도 맵을 획득하는 단계; 및
    상기 획득된 속도 맵에 기초하여 식별된 이동 경로에 기초하여 상기 로봇을 구동하는 단계;를 포함하는 제어 방법.
  11. 제10항에 있어서,
    상기 속도 맵을 획득하는 단계는,
    상기 오브젝트가 정적 오브젝트인 경우, 제1 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계; 및
    상기 오브젝트가 동적 오브젝트인 경우, 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계;를 포함하며,
    상기 제1 속도 프로파일 정보는, 상기 정적 오브젝트로부터 제1 임계 거리 내에서 상기 정적 오브젝트에 근접할수록 제1 기울기로 속도가 감소하는 정보이고,
    상기 제2 속도 프로파일 정보는, 상기 동적 오브젝트로부터 제2 임계 거리 내에서 상기 동적 오브젝트에 근접할수록 상기 제1 기울기보다 작은 제2 기울기로 속도가 감소하는 정보인, 제어 방법.
  12. 제11항에 있어서,
    상기 속도 맵을 획득하는 단계는,
    상기 오브젝트가 제1 타입의 동적 오브젝트인 경우, 상기 제2 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계; 및
    상기 오브젝트가 제2 타입의 동적 오브젝트인 경우, 제3 속도 프로파일 정보에 기초하여 상기 속도 맵을 획득하는 단계;를 포함하며,
    상기 제3 속도 프로파일 정보는, 상기 제2 타입의 동적 오브젝트로부터 제3 임계 거리 내에서 상기 제2 타입의 동적 오브젝트에 근접할수록 상기 제2 기울기보다 작은 제3 기울기로 속도가 감소하는 정보인, 제어 방법.
  13. 제11항에 있어서,
    상기 속도 맵을 획득하는 단계는,
    상기 오브젝트가 동적 오브젝트인 경우, 상기 동적 오브젝트의 속도 정보를 획득하고,
    상기 동적 오브젝트의 속도 정보에 따라 상이한 속도 프로파일 정보를 적용하여 상기 속도 맵을 획득하는, 제어 방법.
  14. 제10항에 있어서,
    상기 속도 프로파일 정보를 획득하는 단계는,
    일정 공간에 위치하는 제1 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제4 속도 프로파일 정보를 획득하는 단계;
    상기 일정 공간 내에 위치하는 제2 오브젝트의 특성 정보에 기초하여 상기 일정 공간에 대응되는 제5 속도 프로파일 정보를 획득하는 단계; 및
    상기 제4 속도 프로파일 정보 및 상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 대응되는 속도 프로파일 정보를 획득하는 단계;를 포함하는, 제어 방법.
  15. 제14항에 있어서,
    상기 속도 맵을 획득하는 단계는,
    상기 제4 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 각 셀(cell)에 대응되는 제1 속도 값을 획득하는 단계;
    상기 제5 속도 프로파일 정보에 기초하여 상기 일정 공간에 포함된 상기 각 셀에 대응되는 제2 속도 값을 획득하는 단계;
    상기 일정 공간에 포함된 상기 각 셀에 대응되는 제1 속도 값 및 제2 속도 값 중 작은 값에 기초하여 상기 각 셀에 대응되는 속도 값을 획득하는 단계; 및
    상기 획득된 상기 각 셀에 대응되는 속도 값에 기초하여 상기 일정 공간에 대응되는 속도 맵을 획득하는 단계;를 포함하는, 제어 방법.
  16. 제10항에 있어서,
    상기 속도 맵을 획득하는 단계는,
    상기 로봇이 주행하는 동안 상기 적어도 하나의 센서에 의해 획득된 오브젝트 정보에 기초하여 오브젝트까지의 거리 정보를 포함하는 Distance Map을 업데이트하는 단계; 및
    상기 업데이트된 Distance Map 및 상기 획득된 프로파일 정보에 기초하여 상기 영역 별 속도 정보를 포함하는 속도 맵을 획득하는 단계;를 포함하는, 제어 방법.
  17. 제10항에 있어서,
    상기 속도 맵은, 복수의 셀 각각에 대응되는 속도 값을 포함하고,
    상기 로봇을 구동하는 단계는,
    상기 속도 맵에 포함된 셀 간 거리를 셀에 대응되는 속도 값으로 나누어 셀 간 소요 시간을 획득하는 단계; 및
    상기 셀 간 소요 시간에 기초하여 최단 시간 경로를 상기 로봇의 이동 경로로 식별하는 단계;를 포함하는, 제어 방법.
  18. 제10항에 있어서,
    상기 속도 맵을 획득하는 단계는,
    오브젝트까지의 거리 정보를 포함하는 Distance Map에서 각 셀에 대응되는 거리 정보를 획득하는 단계;
    상기 획득된 거리 정보 및 상기 속도 프로파일 정보에 기초하여 각 셀에 대응되는 속도 정보를 획득하는 단계; 및
    각 셀에 대응되는 속도 정보를 포함하는 상기 속도 맵을 획득하는 단계;를 포함하는 제어 방법.



KR1020210120014A 2021-07-20 2021-09-08 로봇 및 그 제어 방법 KR20230014031A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/007503 WO2023003158A1 (ko) 2021-07-20 2022-05-26 로봇 및 그 제어 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210095141 2021-07-20
KR20210095141 2021-07-20

Publications (1)

Publication Number Publication Date
KR20230014031A true KR20230014031A (ko) 2023-01-27

Family

ID=85101808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210120014A KR20230014031A (ko) 2021-07-20 2021-09-08 로봇 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR20230014031A (ko)

Similar Documents

Publication Publication Date Title
US11320836B2 (en) Algorithm and infrastructure for robust and efficient vehicle localization
KR102048646B1 (ko) 자율 주행 차량 이동을 시뮬레이트하기 위한 물리 모델 및 머신 러닝과 결합된 방법
KR101975728B1 (ko) 자율 주행 차량을 위한 사이드슬립 보상 제어 방법
JP6615840B2 (ja) 自律走行車の個人運転好みの認識方法及びシステム
KR102096726B1 (ko) 자율 주행 차량의 운행을 위한 제어 오류 보정 계획 방법
KR102260486B1 (ko) 자율 주행 차량의 완전 정지를 위한 속력 제어
KR102020163B1 (ko) 자율 주행 차량의 조향률의 동적 조정
EP3361278A1 (en) Autonomous vehicle localization based on walsh kernel projection technique
JP6494715B2 (ja) 自律走行車の速度制御率の動的調整方法
JP2020009412A (ja) 自動運転車両のための計画運転感知システム
JP2019182411A (ja) オブジェクトの二次元境界枠を自動運転車両の三次元位置に転換するための方法[method for transforming 2d bounding boxes of objects into 3d positions for autonomous driving vehicles (advs)]
KR20200037736A (ko) 자율 주행 차량의 저속 정경을 위한 보행자 상호 작용 시스템
JP2018108801A (ja) 自律走行車の安定性を向上させるための方法及びシステム
JP2019182415A (ja) 自動運転車両(adv)に用いるピッチ角の補正方法
JP2018077827A (ja) 自律走行車の決定の評価フレームワーク
JP2018083612A (ja) 自律走行車のコマンド遅延を決定するための方法
KR20200037737A (ko) 자율 주행 차량을 위한 보행자 확률 예측 시스템
KR20180051571A (ko) 자율 주행 차량을 위한 차량 위치점 전달 방법
US11119498B2 (en) Systems and methods for simulation utilizing a segmentable monolithic mesh
KR20190098912A (ko) 다수의 스레드를 이용하여 자율 주행 차량을 위한 기준선을 생성하기 위한 방법 및 시스템
US20190325234A1 (en) Lane post-processing in an autonomous driving vehicle
JP2020083310A (ja) 車両挙動予測のための圧縮環境特徴の表示
JP2020083306A (ja) 自動運転車両を動作させるための所定のキャリブレーションテーブルに基づく車両制御システム
KR20200037123A (ko) 에뮬레이션 기반의 자율 주행 차량의 3점 방향 전환 계획
US20220075387A1 (en) Electronic device and control method thereof