KR102661849B1 - 자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법 - Google Patents

자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법 Download PDF

Info

Publication number
KR102661849B1
KR102661849B1 KR1020200143401A KR20200143401A KR102661849B1 KR 102661849 B1 KR102661849 B1 KR 102661849B1 KR 1020200143401 A KR1020200143401 A KR 1020200143401A KR 20200143401 A KR20200143401 A KR 20200143401A KR 102661849 B1 KR102661849 B1 KR 102661849B1
Authority
KR
South Korea
Prior art keywords
map
robot
information
cost
cost map
Prior art date
Application number
KR1020200143401A
Other languages
English (en)
Other versions
KR20220058079A (ko
Inventor
박기용
김기현
김현숙
박수호
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020200143401A priority Critical patent/KR102661849B1/ko
Publication of KR20220058079A publication Critical patent/KR20220058079A/ko
Application granted granted Critical
Publication of KR102661849B1 publication Critical patent/KR102661849B1/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
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G05D2201/0217

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Fuzzy Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

로봇이 주행 경로를 생성하는 방법으로서, 주행중인 공간에서 목적지 위치를 수신하면, 공간에 대한 글로벌 맵과 상기 공간에 위치한 객체들의 객체 정보를 표시하는 로컬 맵, 그리고 객체들에 따라 각각 인플레이션 반경이 설정된 계층 코스트 맵을 기초로, 목적지 위치까지의 주행 경로를 생성한다. 여기서 계층 코스트 맵은, 글로벌 맵에 표시된 주행 불가능 영역 상의 객체에 대한 인플레이션 반경이 설정되어 있는 글로벌 코스트 맵, 그리고 글로벌 맵의 주행 가능 영역에서 로봇이 인식한 객체별로 기 설정되어 있는 인플레이션 반경이 설정되어 있는 복수의 객체 코스트 맵이 중첩되어 구성된다.

Description

자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법{Autonomous robot, method for generation of hierarchical costmap and method for generating driving path using the same}
본 발명은 계층 구조를 가지는 코스트 맵을 이용하여 자율주행 안내 로봇이 최적의 경로를 생성하여 주행하는 기술에 관한 것이다.
자율주행 로봇은 목적지까지 경로를 생성하여, 해당 목적지까지 특정 대상을 이동시키는 로봇이다. 자율주행 로봇은 현재 위치한 장소의 맵을 사전에 작성하여 가지고 있으며, 해당 맵을 기초로 자신의 현재 위치를 추정한다.
자율주행 로봇은 추정된 현재 위치에서부터 특정 대상이 이동하고자 하는 장소를 목적지로 하여, 경로를 생성한다. 이 때, 기존 자율주행 로봇들은 목적지까지의 경로를 생성할 때, 최단거리 기반 경로 생성 방법을 사용하여 경로를 생성하였다.
최단거리 기반 경로 생성 방법은 특정 대상을 목적지까지 빠르게 이동시킬 수는 있다. 그러나, 자율주행 로봇이 배치된 실제 사용 환경에서 최단거리 기반의 경로는, 특정 대상이 지나가기 좁은 간격의 통로로 안내하는 등, 이동하기에 부적합한 경로로 안내하는 상황이 발생할 수 있다.
따라서, 본 발명은 계층 구조의 맵을 이용하여 자율주행 로봇이 주행하는 환경에 최적화된 경로를 생성하는 자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 로봇이 주행 경로를 생성하는 방법으로서,
주행중인 공간에서 목적지 위치를 수신하는 단계, 상기 공간에 대한 글로벌 맵과 상기 공간에 위치한 객체들의 객체 정보를 표시하는 로컬 맵, 그리고 상기 객체들에 따라 충돌 가능성을 나타내는 계층 코스트 맵을 기초로, 상기 목적지 위치까지의 주행 경로를 생성하는 단계, 그리고 상기 주행 경로를 토대로 상기 목적지 위치로 주행하는 단계를 포함하고, 상기 계층 코스트 맵은, 상기 글로벌 맵에 표시된 주행 불가능 영역 상의 객체에 대한 인플레이션 반경이 설정되어 있는 글로벌 코스트 맵, 그리고 상기 글로벌 맵의 주행 가능 영역에서 상기 로봇이 인식한 객체별로 기 설정되어 있는 인플레이션 반경이 설정되어 있는 복수의 객체 코스트 맵이 중첩되어 구성된다.
상기 목적지 위치를 수신하는 단계 이전에, 제1 정보 수집 수단을 통해 수집한 정보를 토대로 상기 공간에 대한 상기 글로벌 맵을 작성하는 단계, 상기 주행 불가능 영역 상의 상기 객체의 위치에, 상기 객체가 존재할 확률을 계산하여 코스트로 반영하는 단계, 그리고 상기 객체 위치를 기준으로 상기 객체에 기 설정되어 있는 인플레이션 반경을 설정하여 상기 글로벌 코스트 맵을 생성하는 단계를 포함할 수 있다.
상기 글로벌 코스트 맵을 생성하는 단계 이후에, 제2 정보 수집 수단을 통해 수집한 정보와 미리 저장된 객체 정보를 토대로, 상기 공간에 위치한 객체들을 인식하는 단계, 인식한 객체에 대한 객체 식별 정보와 객체의 위치 정보를 포함하는 객체 인식 정보를 추출하는 단계, 그리고 상기 객체들을 인식한 위치에서 상기 로컬 지도를 생성하는 단계를 포함할 수 있다.
상기 로컬 지도를 생성하는 단계 이후에, 기 저장된 객체 클래스 정보를 기초로, 상기 인식한 객체들 각각의 클래스를 확인하는 단계, 상기 객체 클래스 정보를 기초로 상기 인식한 객체들 각각의 인플레이션 반경을 확인하는 단계, 그리고 상기 로컬 지도 상의 상기 객체들의 각각의 위치에 상기 인플레이션 반경을 설정하여, 상기 객체 코스트 맵을 생성하는 단계를 포함할 수 있다.
상기 객체 클래스 정보는, 각 객체의 식별 정보, 클래스 이름, 객체 이름, 객체 형상 그리고 객체 인플레이션 반경 값을 포함할 수 있다.
상기 객체 코스트 맵은, 객체의 클래스에 따라 동적 객체 코스트 맵과 정적 객체 코스트 맵으로 생성되거나, 상기 객체별로 각각 객체 코스트 맵이 생성될 수 있다.
상기 글로벌 코스트 맵과 객체 코스트 맵은 각각, 상기 공간을 복수의 공간으로 나누는 복수의 그리드들을 포함하고, 상기 객체가 위치한 영역에 대응하는 그리드를 기준으로 상기 인플레이션 반경이 설정된 위치의 그리드까지 객체의 존재 확률을 코스트로 표현할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 로봇과 연동하며 적어도 하나의 프로세서에 의해 동작하는 서버가 상기 로봇에 제공할 계층 코스트 맵을 생성하는 방법으로서,
상기 로봇이 주행중인 공간의 주행 가능 영역과 주행 불가능 영역을 표시하는 글로벌 맵, 상기 주행 가능 영역에 위치한 적어도 하나의 객체를 인식한 객체 인식 정보, 그리고 상기 객체를 인식한 위치의 로컬 맵을 수신하는 단계, 객체별로 인플레이션 반경이 설정되어 있는 객체별 객체 클래스 정보와 상기 주행 불가능 영역 상의 객체 정보를 기초로, 상기 객체에 대한 인플레이션 반경을 상기 글로벌 맵에 설정하여 글로벌 코스트 맵을 생성하는 단계, 상기 주행 가능 영역에 위치한 적어도 하나의 객체의 인플레이션 반경을 상기 로컬 맵에 설정하여, 상기 적어도 하나의 객체에 대한 객체 코스트 맵을 생성하는 단계, 그리고 상기 글로벌 코스트 맵과 상기 객체 코스트 맵을 중첩하여 계층 코스트 맵을 생성하는 단계를 포함한다.
상기 객체 클래스 정보는, 각 객체의 식별 정보, 클래스 이름, 객체 이름, 객체 형상 그리고 상기 인플레이션 반경 값을 포함하는, 특정 위치는, 상기 변을 이등분하는 지점에 해당할 수 있다.
상기 객체 코스트 맵을 생성하는 단계는, 상기 주행 가능 영역에 위치한 적어도 하나의 객체의 객체 카테고리를 상기 객체 클래스 정보를 기초로 분류하는 단계, 객체 클래스가 분류된 상기 적어도 하나의 객체별로 상기 인플레이션 반경 값을 설정하는 단계, 그리고 상기 객체 클래스 정보에 따른 클래스별로 객체 코스트 맵을 생성하는 단계를 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 공간에서 자율주행 중 목적지까지의 주행 경로를 생성하는 로봇으로서,
프로세서, 객체별로 각 객체의 식별 정보, 클래스 이름, 객체 이름, 객체 형상 그리고 객체별 인플레이션 반경 값을 객체 클래스 정보로 저장하는 메모리를 포함하고, 상기 프로세서는 상기 공간의 주행 가능 영역과 주행 불가능 영역이 표시된 글로벌 맵, 상기 공간에 위치한 적어도 하나의 객체를 인식한 객체 정보, 상기 객체를 인식한 위치의 로컬 맵, 그리고 상기 인식한 객체의 상기 인플레이션 반경 값이 반영된 계층 코스트 맵을 기초로, 상기 목적지까지의 주행 경로를 생성한다.
상기 프로세서는, 상기 공간에서 로봇의 주행 가능 영역과 주행 불가능 영역을 나타내는 상기 글로벌 맵을 생성하고, 상기 로봇이 상기 공간을 주행하며 객체들을 인식한 상기 객체 정보, 그리고 상기 객체들을 인식한 위치에서의 로컬 지도를 생성할 수 있다.
상기 프로세서는, 상기 주행 불가능 영역에 위치한 객체의 인플레이션 반경 값을 상기 글로벌 맵에 반영하여 글로벌 코스트 맵을 생성하고, 상기 주행 가능 영역에 위치하여 인식된 적어도 하나의 객체별로 상기 클래스 이름과 객체별 상기 인플레이션 반경 값을 확인하여 클래스별 객체 코스트 맵을 생성하며, 상기 글로벌 코스트 맵과 상기 클래스별 객체 코스트 맵을 중첩하여 상기 계층 코스트 맵으로 생성할 수 있다.
상기 글로벌 맵을 생성하기 위하여 주행중인 상기 공간으로부터 정보를 수집하는 제1 정보 수집 수단, 그리고 상기 공간에 위치한 객체의 객체 위치 정보와 깊이 정보를 수집하는 제2 정보 수집 수단을 더 포함하고, 상기 제1 정보 수집 수단은 LiDAR 센서이고, 상기 제2 정보 수집 수단은 RGB-D 카메라일 수 있다.
본 발명에 따르면, 최단거리를 기반으로 경로를 생성하는 것이 아니라, 로봇의 주행 공간에 위치한 각 객체들의 특성을 고려하는 계층 코스트 맵을 통해 최적 경로를 생성하기 때문에, 환경에 최적화된 최적 경로를 생성하여 자율주행 로봇의 주행 안정성을 최대한으로 보장할 수 있다.
도 1은 일반적으로 자율주행 로봇에서 생성되는 코스트 맵에 대한 예시도이다.
도 2는 일반적인 환경에서 목적지까지의 주행 경로가 표시된 예시도이다.
도 3은 본 발명의 실시예에 따라 자율주행 로봇에 계층 코스트 맵을 제공하기 위한 환경의 예시도이다.
도 4는 본 발명의 실시예에 따라 생성된 객체별 코스트 맵의 예시도이다.
도 5는 본 발명의 실시예에 따라 생성된 계층 코스트 맵의 예시도이다.
도 6은 본 발명의 제1 실시예에 따른 주행 경로 생성 방법에 대한 흐름도이다.
도 7은 본 발명의 제2 실시예에 따른 주행 경로 생성 방법에 대한 흐름도이다.
도 8은 본 발명의 실시예에 따라 로봇이 객체를 검출하여 객체 맵에 반영한 예시도이다.
도 9는 본 발명의 실시예에 따라 계층 코스트 맵을 이용하여 설정된 경로의 예시도이다.
도 10은 본 발명의 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조로 하여 본 발명의 실시예에 따라 계층 코스트 맵을 이용하여, 환경에 최적화된 경로를 생성하는 자율주행 로봇 및 이를 이용한 주행 경로 생성 방법에 대해 상세히 설명한다. 본 발명의 실시예에 대해 설명하기 앞서, 기존의 코스트 맵의 형태와 주행 경로를 생성하는 예에 대해 먼저 도 1 및 도 2를 참조로 설명한다.
도 1은 일반적으로 자율주행 로봇에서 생성되는 코스트 맵에 대한 예시도이다.
코스트 맵(Costmap)은 로봇이 특정 공간을 주행하면서, 지도상에 점유영역(occupied area), 자유영역(free area), 미지영역(unknown area)에 대한 정보를 기반으로 이동할 수 있는 영역과 이동할 수 없는 영역을 확률로 표시한 지도 형태의 데이터이다. 로봇은 센서로 입력된 입력 값을 이용하여, 공간 내 특정 위치에 객체가 있을 확률을 맵 상에 표시하며, 이 때 객체가 존재할 확률을 코스트(cost)라 한다.
도 1에 도시된 바와 같이, 맵의 중심점 즉, 실제 공간에서 객체가 제1 표시 수단인 검은 점으로 표시되어 있는 부분으로 갈수록 코스트는 높아진다. 그리고 검은 점을 기준으로 인플레이션 반경(inflation radius)에 따라, 검은 점의 주위 반경으로도 객체가 존재할 확률이 표시된다. 이때, 검은 점에서 멀어질수록 코스트가 낮아진다.
여기서, 인플레이션 반경은 코스트의 곡선 기울기를 의미한다. 즉, 객체가 있을 것으로 예상되는 공간의 확률 값을 확장한 것으로, 인플레이션 반경이 커질수록 로봇의 중심부에서 물체가 없을 확률인 가장자리까지의 거리가 길어진다.
이 때, 객체가 존재할 확률을 결정하는 값은 인플레이션(inflation) 값을 따른다. 여기서, 센서로 들어온 입력 값으로 객체가 있을 확률을 계산하는 방법은 이미 알려진 것으로, 상세한 설명은 생략한다.
이렇게 생성된 코스트 맵을 기초로, 로봇은 실제 공간의 어느 위치에 객체가 존재하는지 인지할 수 있다.
도 2는 일반적인 환경에서 목적지까지의 주행 경로가 표시된 예시도이다.
로봇은 코스트 맵을 기초로 객체가 없는 공간을 파악하고, 목적지까지의 경로를 설정하여 주행한다. 이때, 기존 코스트 맵은 실제 공간에 위치한 객체의 다양한 특성을 고려하지 않은 채 생성되며, 단순하게 현재 위치에 객체가 있는지 아닌지 만을 판단하여 계산된 코스트가 표시된다.
따라서, 기존 코스트 맵을 기준으로 로봇의 현재 위치에서 목적지까지의 최초 경로를 설정할 경우, 최단거리를 기반으로 한 경로가 생성된다. 하지만, 최단 거리를 기반으로 한 경로가 실제 공간에서 주행하기에 최적의 경로가 아닌 경우가 발생한다.
즉, 동적 객체 또는 로봇으로부터 안내 서비스를 받을 동행자에게 위험을 줄 수 있는 객체가 있는 공간 있다면, 해당 공간이 최단 거리의 경로 상에 있다 하더라도 안전을 위해 피해가는 것이 로봇과 동행자의 주행 안정성을 높이는 것이다.
도 2의 (a)에 도시된 바와 같이, 로봇과 동행자가 현재 위치인 제1 위치(①)에서 목적지인 제2 위치(②)까지 이동한다고 가정한다. 이 경우, 현재 위치와 목적지 사이에는 두 개의 경로(③, ④)가 생성될 수 있다.
로봇이 코스트 맵을 기준으로 생성한 최단 거리는 2번 경로(④)이다. 그러나 2번 경로(④) 상에 위치한 동적 객체(⑤)의 특성에 의해, 1번 경로(③)를 선택하는 것이 안정적인 주행 경로를 선택하는 것이라고 판단할 수도 있다.
하지만, 기존 코스트 맵을 기초로 경로를 생성하면, 도 2의 (b)에 도시된 바와 같이 모든 객체에 대해 동일한 인플레이션 반경(⑥)을 적용하기 때문에, 로봇은 여전히 2번 경로를 선택하고 동적 객체(⑤)가 존재하는 곳으로 동행자를 안내하게 된다. 이 과정에서 동적 객체로 인해 로봇에는 주행 실패 가능성이 발생한다.
따라서, 본 발명의 실시예에서는 자율주행 로봇(이하, 설명의 편의를 위해 '로봇'이라 지칭함)이 경로를 생성할 때, 로봇 주위에 존재하는 객체들을 파악한다. 그리고 로봇은 객체의 클래스마다 코스트 맵에서 객체가 존재할 확률을 결정하는 인플레이션의 가중치를 다르게 두어, 인플레이션 반경이 객체마다 다르게 설정된 계층 코스트 맵을 생성한다.
그리고 로봇은 이를 기초로 주행 경로를 설정하는 것을 제안한다. 본 발명의 실시예에서는 자율주행 로봇에서 글로벌 맵과 로컬 맵을 기초로 코스트 맵도 생성하는 것을 예로 하여 설명하나, 자율주행 로봇에서는 글로벌 맵과 로컬 맵을 생성하고, 자율주행 로봇과 네트워크로 연결되어 있는 서버에서 계층 코스트 맵을 생성하여 자율주행 로봇에 전송할 수도 있다.
도 3은 본 발명의 실시예에 따라 자율주행 로봇에 계층 코스트 맵을 제공하기 위한 환경의 예시도이다.
도 3에 도시된 바와 같이, 자율주행 로봇(100)은 공간을 최초 주행하면서, 해당 공간의 글로벌 맵을 생성한다. 글로벌 맵을 생성한 후 로봇(100)은 해당 공간을 주행하면서 객체를 센싱하고, 객체가 동일한 위치에서 반복적으로 센싱되면 이를 토대로 로컬 맵을 생성한다.
여기서, 글로벌 맵은 초기에 로봇(100)이 해당 공간 전체를 주행하며 생성한 맵이다. 글로벌 맵은 해당 공간 내에서 로봇(100)이 주행 가능한 영역과 주행할 수 없는 영역(예를 들어, 벽면, 기둥 등)을 구분할 수 있는 표시 수단으로 표현된다.
로컬 맵은 로봇(100)의 움직임에 따라 동적으로 변하는 환경에 대한 지도로, 글로벌 맵의 일부분에 해당한다. 로봇(100)이 글로벌 맵을 생성한 후 자율 주행을 통해 공간을 주행하면서 공간 내에 있는 객체들을 센싱하면, 객체가 위치한 환경이 이전 환경과 다르게 변경되었기 때문에 로봇(100)은 로컬 맵을 생성한다.
여기서, 로봇(100)은 해당 공간을 주행하면서 RGB-D 카메라와 같은 정보 수집 수단을 통해 수집한 영상으로부터 객체들을 추출하는데, 객체들을 추출하는 방법은 다양한 방법으로 실행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
그리고 로봇(100)은 로컬 지도와 전역 지도를 생성하고, 객체 정보를 획득하기 위해, 두 개의 정보 수집 수단(110, 120)을 구비한다.
본 발명의 실시예에서는 전역 지도를 생성하기 위하여 제1 정보 수집 수단(110)으로 라이다(LiDAR: Light Detection And Ranging) 센서를 사용하는 것을 예로 하여 설명한다. 또한, 본 발명의 실시예에서는 로봇(100)이 주행하면서 객체를 센싱하여 깊이 데이터와 객체 정보를 획득하기 위하여, 제2 정보 수집 수단(120)으로 RGB-D 카메라를 이용하는 것을 예로 하여 설명한다. 그러나 각각의 정보 수집 수단의 형태가 반드시 이와 같이 한정되는 것은 아니다.
로봇(100)이 생성한 로컬 맵은 객체의 이동 여부에 따라 정적 객체 로컬 맵과 동적 객체 로컬 맵으로 구분할 수 있다. 그리고 로컬 맵을 기초로 로봇(100) 자신의 위치를 파악할 수 있다.
로봇(100)은 화분, 냉장고, 테이블, 의자 등의 가구와 같이 객체가 미리 설정한 횟수 이상으로 동일한 위치에서 탐지될 때 정적 객체 로컬 맵에 객체의 위치와 식별 정보를 반영한다. 그리고 로봇은 주행중인 장소에서 움직이는 사람들이나 동물 등의 객체를 인식하면, 동적 객체 로컬 맵에 객체의 위치와 식별 정보를 반영한다.
이를 위해, 로봇(100)에는 사전에 모든 객체들의 형상과 각 객체들의 클래스 정보, 그리고 객체 이름과 객체별 인플레이션 반경 값을 포함하는 객체 클래스 정보가 저장되어 있다. 그리고 로봇(100)은 객체를 인식하면 객체의 형상을 기 저장되어 있는 객체 클래스 정보와 비교하여, 인식한 객체가 동적 객체인지 정적 객체인지 확인할 수 있다.
여기서, 본 발명의 실시예에서는 객체별 로컬 맵을 정적 객체 로컬 맵과 동적 객체 로컬 맵으로만 구분하여 설명하나, 객체의 클래스(예를 들어, 가구, 가전, 동물, 사람 등)별로 객체 로컬 맵을 생성할 수도 있다.
로봇(100)은 글로벌 맵, 정적 객체 로컬 맵, 그리고 동적 객체 로컬 맵을 생성한 후, 각 맵에 표시된 객체별로 인플레이션 반경을 설정하여 글로벌 코스트 맵, 객체 코스트 맵(예를 들어, 정적 객체 코스트 맵 및 동적 객체 코스트 맵)을 생성한다.
글로벌 코스트 맵과 객체 코스트 맵은 각각 공간을 나눈 복수의 그리드들을 포함한다. 그리고 각 그리드들에 객체가 존재할 확률을 코스트로 표현한다. 객체가 존재하는 객체 위치의 그리드의 코스트는 가장 높은 코스트로 표현되어 있다. 그리고 객체 위치의 그리드를 중심점으로 하여 주변 그리드들에는 상대적으로 낮은 코스트가 표현된다.
이때, 로봇(100)은 객체별로 인플레이션 반경을 설정하여 그리드들에 표현된 코스트들을 수정하여 글로벌 코스트 맵과 객체 코스트 맵으로 생성한다.
예를 들어, 사람에 의해 동적 객체 로컬 맵이 생성되었으며, 사람에 설정되어 있는 인플레이션 반경은 0.6m라 가정한다. 그리고 객체가 있는 위치의 코스트는 9로 표현하고, 객체 위치와의 거리에 따라 주변으로 갈수록 코스트가 1씩 감소하여 표현된다고 가정한다.
그러면, 기존의 객체 코스트 맵은 사람이 위치한 그리드에 코스트 9를 표현하고, 인접한 그리드에는 코스트 8로 표현하며, 일정 거리가 떨어진 그리드에는 코스트 1을 표현한다. 그러나, 로봇(100)은 사람에 대한 움직임을 쉽게 예측하기 어렵기 때문에, 코스트가 1로 설정된 그리드로 이동한다 하더라도 사람이 1로 설정된 그리드로 급하게 이동하는 경우, 로봇(100)과 사람은 충돌하게 된다.
따라서, 본 발명의 실시예에서는 사람이 위치한 위치를 기준으로 코스트가 표현되는 그리드 영역에서 0.6m만큼 추가된 넓은 범위에 코스트를 추가하여, 객체 코스트 맵을 생성한다.
로봇(100)은 생성한 코스트 맵들을 중첩시켜 하나의 계층 코스트 맵으로 생성한다. 이렇게 생성한 계층 코스트 맵은 계층 코스트 맵 관리 서버(200)로 전달되어, 계층 코스트 맵 관리 서버(200)에서 저장, 관리할 수 있다.
만약, 로봇(100)이 글로벌 맵과 로컬 맵만 생성한다고 가정하면, 로봇(100)은 글로벌 맵, 로컬 맵을 계층 코스트 맵 관리 서버(200)로 전달한다. 이와 함께, 로봇(100)이 센싱한 객체들의 객체 정보를 계층 코스트 맵 관리 서버(200)로 전달한다.
계층 코스트 맵 관리 서버(200)는 로봇(100)으로부터 수신한 맵들과 객체 정보를 기초로, 상술한 바와 같이 객체별로 로컬 맵을 생성할 수 있다. 그리고 수신한 객체 정보를 기 저장된 객체 클래스 정보와 비교하여, 글로벌 맵에 대한 글로벌 코스트 맵, 각 객체별 로컬 맵에 대한 객체 코스트 맵을 생성할 수 있다.
또한, 계층 코스트 맵 관리 서버(200)는 생성한 글로벌 코스트 맵과 객체별 객체 코스트 맵을 중첩하여 계층 코스트 맵으로 생성할 수 있다. 계층 코스트 맵 관리 서버(200)는 생성한 객체 코스트 맵을 로봇(100)으로 전송하고, 로봇(100)은 계층 코스트 맵 관리 서버(200)로부터 수신한 계층 코스트 맵과 글로벌 맵, 그리고 객체별 로컬 맵을 기초로 주행 경로를 생성할 수 있다.
여기서, 객체별로 생성되는 객체별 코스트 맵에 대해 도 4를 참조로 설명한다.
도 4는 본 발명의 실시예에 따라 생성된 객체별 코스트 맵의 예시도이다.
도 4의 (a)에는 글로벌 코스트 맵은 로봇(100)이 최초 공간을 주행하면서 인식한 점유영역의 객체들에 인플레이션 반경이 적용된 맵을 도시하였다. 글로벌 코스트 맵을 기반으로 로봇(100)은 해당 공간에서의 주행 가능한 영역과 주행 불가능한 영역을 파악할 수 있다.
도 4의 (b)에 도시된 정적 객체 코스트 맵은 로봇(100)이 자율주행을 수행하며 인식한 정적 객체들에 인플레이션 반경을 적용한 것이다. 또한, 도 4의 (c)에 도시된 바와 같이, 동적 객체 코스트 맵은 로봇(100)이 자율주행을 수행하며 인식한 동적 객체(예를 들어, 사람, 동물 등)들에 인플레이션 반경을 적용하여 생성된 코스트 맵이다.
이와 같이 각 객체별로 코스트 맵이 생성되면, 로봇(100)은 도 4의 (d)에 도시된 바와 같이, 코스트 맵들을 중첩 처리하여 레이어드 된 코스트 맵인 계층 코스트 맵을 생성한다. 계층 코스트 맵에 대해 도 5를 참고로 설명한다.
도 5는 본 발명의 실시예에 따라 생성된 계층 코스트 맵의 예시도이다.
도 5에 도시된 바와 같이, 본 발명의 실시예에 따른 계층 코스트 맵은 글로벌 코스트 맵, 동적 객체 코스트 맵, 그리고 정적 객체 코스트 맵을 포함한다. 본 발명의 실시예에서는 설명의 편의를 위하여 세 개의 코스트 맵이 계층 코스트 맵을 구성하는 것을 예로 하여 설명하나, 객체의 클래스에 따라 더 많은 코스트 맵들이 계층 코스트 맵에 포함될 수 있다.
글로벌 코스트 맵은 로봇(100)이 최초 공간을 주행하면서 생성한 글로벌 맵에서, 글로벌 맵에 설정된 객체들에 인플레이션 반경이 적용된 맵이다. 글로벌 코스트 맵을 기반으로 로봇(100)은 해당 공간에서의 점유영역을 파악할 수 있다.
동적 객체 코스트 맵은 로봇(100)이 자율주행을 수행하며 인식한 동적 객체들에 인플레이션 반경을 적용하여 생성된 코스트 맵이다. 이때, 동적 객체 코스트 맵에는 동적 객체의 위치 정보와 동적 객체에 매핑되어 있는 식별 정보를 추가로 포함할 수 있다.
정적 객체 코스트 맵은 로봇(100)이 해당 공간을 자율주행하면서 인식한 정적 객체들에 인플레이션 반경을 적용하여 생성된 코스트 맵이다. 정적 객체 코스트 맵에도 정적 객체의 위치 정보와 정적 객체에 매핑되어 있는 식별 정보가 추가로 포함될 수 있다. 여기서, 동적 객체 코스트 맵과 정적 객체 코스트 맵은 일반적인 로컬 맵으로 볼 수 있다.
다음은 로봇(100)이 계층 코스트 맵을 생성하고, 생성한 계층 코스트 맵으로 주행 경로를 생성하는 방법에 대해 도 6 및 도 7을 참조로 설명한다.
도 6에서는 로봇(100)이 글로벌 맵, 객체별 로컬 맵, 그리고 계층 코스트 맵을 모두 생성한 후 주행 경로를 생성하는 제1 실시예에 대해 설명한다. 그리고, 도 7에서는 로봇(100)에서 글로벌 맵과 로컬 맵을 생성하고, 로봇(100)이 센싱한 객체 정보를 수신한 계층 코스트 맵 관리 서버(200)가 계층 코스트 맵을 생성하고, 로봇(100)이 계층 코스트 맵을 전달받아 주행 경로를 생성하는 제2 실시예에 대해 설명한다.
도 6은 본 발명의 제1 실시예에 따른 주행 경로 생성 방법에 대한 흐름도이다.
도 6에 도시된 바와 같이, 로봇(100)은 건물 내 공간에서 자율주행을 시작하면, 주행하는 공간에 대한 글로벌 맵 생성, 로컬 맵 생성, 그리고 객체 인식을 실시간으로 진행한다.
즉, 최초 로봇(100)이 자율주행을 시작하면, 라이다 센서에서 송출한 레이더 신호가 객체에 반사되어 획득한 반사파를 이용하여, 로봇(100)은 글로벌 맵을 작성한다(S100).
로봇(100)은 글로벌 맵을 최초 작성한 직후, 글로벌 맵에 표시한 객체와 로봇(100)에 기 저장되어 있는 객체 클래스 정보를 비교하여, 글로벌 코스트 맵을 생성한다(S101). 여기서, 객체 클래스 정보는 다음 표 1과 같이 저장되어 있으며, 이는 하나의 실시예로 반드시 이와 같이 한정되는 것은 아니다.
객체 식별 정보 객체 이름 인플레이션 반경(m) 객체 형상 정보 객체 클래스
1000 Wall 0.1 벽면 형상 정보 정적 객체
1001 Table 0.1 책상 형상 정보 정적 객체
1002 Chair 0.4 의자 형상 정보 정적 객체
1003 Dog 0.6 강아지 형상 정보 동적 객체
1004 Person 0.6 사람 형상 정보 동적 객체
표 1에 나타낸 바와 같이, 각 객체별로 식별 정보와 객체 이름, 그리고 인플레이션 반경과 객체 형상 정보가 매핑되어 객체 클래스 정보로서 로봇(100)에 저장되어 있다. 표 1에서는 설명의 편의를 위하여 객체 형상 정보에 포함된 정보로 '벽면 형상 정보', '책상 형상 정보', '의자 형상 정보' 등으로 표시하였으나, 실제 객체들의 형상 정보가 기재된다.
로봇(100)이 S100 단계에서 작성한 글로벌 맵에 객체는 기둥, 벽면과 같이 로봇(100)이 주행할 수 없는 공간에 형성되어 있는 객체들이고, 각 객체들에 매핑되어 인플레이션 반경은 0.1로 설정되어 있음을 알 수 있다. 따라서, 로봇(100)은 글로벌 맵에 표시된 객체별로 인플레이션 반경을 설정하여 글로벌 코스트 맵을 생성한다(S101).
이와 동시에, 로봇(100)은 공간을 반복적으로 주행하면서, 제2 정보 수집 수단(120)을 통해 수집한 정보를 토대로 장애물이나 물건 등을 포함하는 객체들을 인식한다(S102). 그리고 인식한 객체에 대한 객체 인식 정보를 추출한다(S103).
즉, 제2 정보 수집 수단(120)에서 RGB-D 데이터를 수집하면, 로봇(100)은 RGB 정보와 미리 로봇(100)에 저장되어 있는 객체 정보를 토대로, RGB 정보에 포함된 객체를 인식한다. 이와 동시에 로봇(100)은 객체를 포함하고 있는 바운딩 박스 정보를 수집하고, 객체를 인식한 시간 정보를 획득한다. 여기서, 바운딩 박스 정보는 객체의 위치 정보로 사용된다.
로봇(100)은 추출한 객체의 클래스 정보에 따라 동적 객체 로컬 맵 또는 정적 객체 로컬 맵을 생성한다(S104). 여기서, 로봇(100)이 깊이 데이터를 처리하여 객체를 인식하는 방법, 깊이 데이터를 전처리하는 방법, 로컬 맵을 생성하는 방법 등은 다양하게 수행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
로봇(100)은 객체별로 상기 표 1에 기재된 객체 클래스 정보와 비교하여, 객체별로 인플레이션 반경을 설정한다. 그리고 인플레이션 반경이 설정된 동적 객체 코스트 맵과 정적 객체 코스트 맵을 생성한다(S105).
로봇(100)은 S101 단계에서 생성한 글로벌 코스트 맵과 S105 단계에서 생성한 동적 객체 코스트 맵과 정적 객체 코스트 맵을 중첩하여 계층 코스트 맵으로 생성한다(S106). 로봇(100)이 세 개의 코스트 맵을 중첩하여 하나의 계층 코스트 맵으로 생성하는 방법은 다양한 방법으로 수행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
로봇(100)은 외부로부터 현재 위치와 목적지까지의 위치를 입력으로 받으면, S100 단계에서 생성한 글로벌 맵, S104 단계에서 생성한 객체별 로컬 맵, 그리고 S106 단계에서 생성한 계층 코스트맵을 이용하여 주행 경로를 생성한다(S107).
도 7은 본 발명의 제2 실시예에 따른 주행 경로 생성 방법에 대한 흐름도이다.
도 7에 도시된 바와 같이, 로봇(100)은 건물 내 공간에서 자율주행을 시작하면, 주행하는 공간에 대한 글로벌 맵 생성, 로컬 맵 생성, 그리고 객체 인식을 실시간으로 진행한다.
즉, 최초 로봇(100)이 자율주행을 시작하면, 라이다 센서에서 송출한 레이더 신호가 객체에 반사되어 획득한 반사파를 이용하여, 로봇(100)은 글로벌 맵을 생성한다(S200).
글로벌 맵을 생성한 후 로봇(100)은 해당 공간을 반복적으로 주행하면서, 제2 정보 수집 수단(120)을 통해 수집한 정보를 토대로 장애물이나 물건 등을 포함하는 객체들을 인식하고, 객체 인식에 따른 로컬 맵을 생성한다(S201). 그리고 로봇(100)은 인식한 객체에 대한 객체 인식 정보를 추출한다(S202).
로봇(100)은 생성한 글로벌 맵과 로컬 맵, 그리고 추출한 객체 인식 정보를 계층 코스트 맵 관리 서버(200)로 전달한다(S203). 여기서, 객체 인식 정보는 객체 식별 정보와 객체의 2차원 위치 정보인 바운딩 박스 정보를 포함한다. 로봇(100)이 객체를 인식하여 객체 식별 정보와 바운딩 박스 정보를 추출하여 객체 인식 정보로 생성하는 것은 다양한 방법으로 실행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
계층 코스트 맵 관리 서버(200)는 S203 단계를 통해 로봇(100)으로부터 수신한 글로벌 맵에 표시한 객체와 로봇(100)에 기 저장되어 있는 객체 클래스 정보를 비교하여, 글로벌 코스트 맵을 생성한다(S204). 여기서, 객체 클래스 정보는 상술한 표 1과 같이 저장되어 있으며, 이는 하나의 실시예로 반드시 이와 같이 한정되는 것은 아니다.
그리고 계층 코스트 맵 관리 서버(200)는 로봇(100)이 공간을 반복적으로 주행하면서 인식한 객체들의 객체 클래스에 따라 객체를 동적 객체와 정적 객체로 분류한다(S205). 그리고 계층 코스트 맵 관리 서버(200)는 객체별로 인플레이션 반경을 설정하고, 그리고 인플레이션 반경이 설정된 동적 객체 코스트 맵과 정적 객체 코스트 맵을 생성한다(S206).
계층 코스트 맵 관리 서버(200)는 생성한 글로벌 코스트 맵과 동적 객체 코스트 맵과 정적 객체 코스트 맵을 중첩하여 계층 코스트 맵으로 생성한다(S207). 그리고 계층 코스트 맵 관리 서버(200)는 계층 코스트 맵을 로봇(100)으로 전송한다(S208).
로봇(100)은 계층 코스트 맵 관리 서버(200)로부터 수신한 계층 코스트 맵을 글로벌 맵 및 로컬 맵과 함께 저장한다(S209). 그리고 외부로부터 현재 위치와 목적지까지의 위치를 입력으로 받으면, 글로벌 맵, 로컬 맵, 계층 코스트맵을 이용하여 주행 경로를 생성한다(S210).
이상에서 설명한 절차로 주행 경로를 생성하는 과정에서, 로봇(100)이 객체를 검출하는 예에 대해 도 8을 참조로 설명한다.
도 8은 본 발명의 실시예에 따라 로봇이 객체를 검출하여 객체 맵에 반영한 예시도이다.
도 8의 (a)에 도시된 바와 같이, 로봇(100)은 RGB-D 카메라로 추출한 객체의 객체 클래스별로 분류한다. 그리고 객체의 좌표를 로봇(100)의 SLAM 시스템에서 사용할 수 있도록 좌표계로 변환한다.
로봇(100)은 변환한 객체들의 좌표계를 통해 객체 맵을 생성한다. 객체 맵은 객체의 클래스별로 생성될 수 있으며, 오브젝트 맵은 오브젝트 클래스별로 생성되며, 각 객체들의 위치는 오브젝트 맵에 표시된다.
이때, 도 8의 (b)에 도시된 좌측 맵은 라이다 및 RGB-D 카메라로 객체를 센싱하였을 때, 객체들의 위치를 2차원으로 투영한 결과이다. 그리고 우측 맵은 카메라로 인식한 객체들의 위치를 추가로 추출하여 표시한 객체 맵을 나타낸 것이다.
도 9는 본 발명의 실시예에 따라 계층 코스트 맵을 이용하여 설정된 경로의 예시도이다.
상기 도 2에서 설명한 바와 같이 로봇(100)과 로봇(100)으로부터 안내 서비스를 제공 받을 동행자가 현재 위치인 제1 위치(①)에서 목적지인 제2 위치(②)까지 이동한다고 가정한다. 이 경우, 로봇이 코스트 맵을 기준으로 생성한 최단 거리는 2번 경로(④)이다.
그러나 2번 경로 상에는 동적 객체인 강아지가 있어, 로봇(100)이 안정적으로 주행할 수 없는 경우가 발생할 수 있다. 따라서, 강아지인 동적 객체를 인식한 로봇(100)은 강아지에 대응하는 인플레이션 반경을 적용하여 도 9와 같이 계층 코스트 맵을 생성하면, 로봇(100)은 1번 경로가 아닌 2번 경로로 로봇의 주행 경로를 선택하게 된다.
도 10은 본 발명의 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
계층 코스트 맵을 이용하여 경로를 생성하는 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(300)에서, 본 발명의 동작을 실행하도록 기술된 명령들(instructions)이 포함된 프로그램을 실행한다. 프로그램은 컴퓨터 판독 가능한 저장매체에 저장될 수 있고, 유통될 수 있다. 여기서, 컴퓨팅 장치(300)는 로봇(100)이 될 수도 있고, 계층 코스트 맵 관리 서버(200)가 될 수도 있다.
도 10에 도시된 바와 같이, 컴퓨팅 장치(300)는 버스(320)를 통해 통신하는 프로세서(310), 메모리(330), 제1 정보 수집 수단(340), 제2 정보 수집 수단(350), 인터페이스(360), 저장 장치(370) 그리고 구동 장치(380)를 포함한다.
프로세서(310)는 로봇(100) 또는 계층 코스트 맵 생성 서버(200)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다. 또는 프로세서(310)는 메모리(330) 또는 저장 장치(370)에 저장된 명령을 실행하는 반도체 장치일 수 있다. 프로세서(310)는 상기에서 설명한 로봇(100) 또는 계층 코스트 맵 생성 서버(200)의 기능들 및 방법을 실행하도록 구성될 수 있다.
메모리(330)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(330)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(310)에 의해 처리되도록 해당 프로그램을 로드하며, ROM(read only memory)(331) 및 RAM(random access memory)(332)를 포함할 수 있다.
본 발명의 실시예에서 메모리(330)는 프로세서(310)의 내부 또는 외부에 위치할 수 있고, 메모리(330)는 이미 알려진 다양한 수단을 통해 프로세서(310)와 연결될 수 있다.
제1 정보 수집 수단(340)과 제2 정보 수집 수단(350)은 본 발명의 동작에 따라 주행 중인 로봇(100)이 정보를 수집하는 다양한 장비(예를 들어, 라이다, 깊이 카메라, 관성 측정 장치(IMU: Inertial Measurement Unit) 등)들에 해당한다.
인터페이스(360)는 계층 코스트 맵 생성 서버(200)와 연동하며, 로봇(100)이 생성한 맵을 계층 코스트 맵 생성 서버(200)로 전달한다. 또한 인터페이스(360)는 계층 코스트 맵 생성 서버(200)로부터 전송되는 계층 코스트 맵을 수신하여 프로세서(310)로 전달할 수도 있다.
저장 장치(370)는 로봇(100)이 주행하는 공간의 계층 코스트 맵을 저장한다.
구동 장치(380)는 프로세서(310)의 제어에 따라 로봇(100)이 공간 내부에서 주행되도록 한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (14)

  1. 로봇이 주행 경로를 생성하는 방법으로서,
    주행중인 공간에서 목적지 위치를 수신하는 단계,
    상기 공간에 대한 글로벌 맵과 상기 공간에 위치한 객체들의 객체 정보를 표시하는 로컬 맵, 그리고 상기 객체들에 따라 충돌 가능성을 나타내는 계층 코스트 맵을 기초로, 상기 목적지 위치까지의 주행 경로를 생성하는 단계, 그리고
    상기 주행 경로를 토대로 상기 목적지 위치로 주행하는 단계
    를 포함하고,
    상기 계층 코스트 맵은,
    상기 글로벌 맵에 표시된 주행 불가능 영역 상의 객체에 대한 인플레이션 반경이 설정되어 있는 글로벌 코스트 맵, 그리고 상기 글로벌 맵의 주행 가능 영역에서 상기 로봇이 인식한 객체별로 기 설정되어 있는 인플레이션 반경이 설정되어 있는 복수의 객체 코스트 맵이 중첩되어 구성되며, 상기 인플레이션 반경은 상기 객체별로 상이한 값으로 설정되어 있는, 주행 경로 생성 방법.
  2. 제1항에 있어서,
    상기 목적지 위치를 수신하는 단계 이전에,
    제1 정보 수집 수단을 통해 수집한 정보를 토대로 상기 공간에 대한 상기 글로벌 맵을 작성하는 단계,
    상기 주행 불가능 영역 상의 상기 객체의 위치에, 상기 객체가 존재할 확률을 계산하여 코스트로 반영하는 단계, 그리고
    상기 객체 위치를 기준으로 상기 객체에 기 설정되어 있는 인플레이션 반경을 설정하여 상기 글로벌 코스트 맵을 생성하는 단계
    를 포함하는, 주행 경로 생성 방법.
  3. 제2항에 있어서,
    상기 글로벌 코스트 맵을 생성하는 단계 이후에,
    제2 정보 수집 수단을 통해 수집한 정보와 미리 저장된 객체 정보를 토대로, 상기 공간에 위치한 객체들을 인식하는 단계,
    인식한 객체에 대한 객체 식별 정보와 객체의 위치 정보를 포함하는 객체 인식 정보를 추출하는 단계, 그리고
    상기 객체들을 인식한 위치에서 상기 로컬 맵을 생성하는 단계
    를 포함하는, 주행 경로 생성 방법.
  4. 제3항에 있어서,
    상기 로컬 맵을 생성하는 단계 이후에,
    기 저장된 객체 클래스 정보를 기초로, 상기 인식한 객체들 각각의 클래스를 확인하는 단계,
    상기 객체 클래스 정보를 기초로 상기 인식한 객체들 각각의 인플레이션 반경을 확인하는 단계, 그리고
    상기 로컬 맵 상의 상기 객체들의 각각의 위치에 상기 인플레이션 반경을 설정하여, 상기 객체 코스트 맵을 생성하는 단계
    를 포함하는, 주행 경로 생성 방법.
  5. 제4항에 있어서,
    상기 객체 클래스 정보는, 각 객체의 식별 정보, 클래스 이름, 객체 이름, 객체 형상 그리고 객체 인플레이션 반경 값을 포함하는, 주행 경로 생성 방법.
  6. 제5항에 있어서,
    상기 객체 코스트 맵은,
    객체의 클래스에 따라 동적 객체 코스트 맵과 정적 객체 코스트 맵으로 생성되거나,
    상기 객체별로 각각 객체 코스트 맵이 생성되는, 주행 경로 생성 방법.
  7. 제6항에 있어서,
    상기 글로벌 코스트 맵과 객체 코스트 맵은 각각,
    상기 공간을 복수의 공간으로 나누는 복수의 그리드들을 포함하고,
    상기 객체가 위치한 영역에 대응하는 그리드를 기준으로 상기 인플레이션 반경이 설정된 위치의 그리드까지 객체의 존재 확률을 코스트로 표현하는, 주행 경로 생성 방법.
  8. 로봇과 연동하며 적어도 하나의 프로세서에 의해 동작하는 서버가 상기 로봇에 제공할 계층 코스트 맵을 생성하는 방법으로서,
    상기 로봇이 주행중인 공간의 주행 가능 영역과 주행 불가능 영역을 표시하는 글로벌 맵, 상기 주행 가능 영역에 위치한 적어도 하나의 객체를 인식한 객체 인식 정보, 그리고 상기 객체를 인식한 위치의 로컬 맵을 수신하는 단계,
    객체별로 서로 상이한 인플레이션 반경이 설정되어 있는 객체별 객체 클래스 정보와 상기 주행 불가능 영역 상의 객체 정보를 기초로, 상기 객체에 대한 인플레이션 반경을 상기 글로벌 맵에 설정하여 글로벌 코스트 맵을 생성하는 단계,
    상기 주행 가능 영역에 위치한 적어도 하나의 객체의 인플레이션 반경을 상기 로컬 맵에 설정하여, 상기 적어도 하나의 객체에 대한 객체 코스트 맵을 생성하는 단계, 그리고
    상기 글로벌 코스트 맵과 상기 객체 코스트 맵을 중첩하여 계층 코스트 맵을 생성하는 단계
    를 포함하는, 계층 코스트 맵 생성 방법.
  9. 제8항에 있어서,
    상기 객체 클래스 정보는,
    각 객체의 식별 정보, 클래스 이름, 객체 이름, 객체 형상 그리고 상기 인플레이션 반경 값을 포함하는, 계층 코스트 맵 생성 방법.
  10. 제9항에 있어서,
    상기 객체 코스트 맵을 생성하는 단계는,
    상기 주행 가능 영역에 위치한 적어도 하나의 객체의 객체 카테고리를 상기 객체 클래스 정보를 기초로 분류하는 단계,
    객체 클래스가 분류된 상기 적어도 하나의 객체별로 상기 인플레이션 반경 값을 설정하는 단계, 그리고
    상기 객체 클래스 정보에 따른 클래스별로 객체 코스트 맵을 생성하는 단계
    를 포함하는, 계층 코스트 맵 생성 방법.
  11. 공간에서 자율주행 중 목적지까지의 주행 경로를 생성하는 로봇으로서,
    프로세서,
    객체별로 각 객체의 식별 정보, 클래스 이름, 객체 이름, 객체 형상 그리고 객체별 인플레이션 반경 값을 객체 클래스 정보로 저장하는 메모리
    를 포함하고,
    상기 프로세서는,
    상기 공간의 주행 가능 영역과 주행 불가능 영역이 표시된 글로벌 맵, 상기 공간에 위치한 적어도 하나의 객체를 인식한 객체 정보, 상기 객체를 인식한 위치의 로컬 맵, 그리고 상기 인식한 객체별로 상이한 값으로 설정되어 있는 상기 인플레이션 반경 값이 반영된 계층 코스트 맵을 기초로, 상기 목적지까지의 주행 경로를 생성하는, 로봇.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 공간에서 로봇의 주행 가능 영역과 주행 불가능 영역을 나타내는 상기 글로벌 맵을 생성하고, 상기 로봇이 상기 공간을 주행하며 객체들을 인식한 상기 객체 정보, 그리고 상기 객체들을 인식한 위치에서의 로컬 지도를 생성하는, 로봇.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 주행 불가능 영역에 위치한 객체의 인플레이션 반경 값을 상기 글로벌 맵에 반영하여 글로벌 코스트 맵을 생성하고,
    상기 주행 가능 영역에 위치하여 인식된 적어도 하나의 객체별로 상기 클래스 이름과 객체별 상기 인플레이션 반경 값을 확인하여 클래스별 객체 코스트 맵을 생성하며,
    상기 글로벌 코스트 맵과 상기 클래스별 객체 코스트 맵을 중첩하여 상기 계층 코스트 맵으로 생성하는, 로봇.
  14. 제13항에 있어서,
    상기 글로벌 맵을 생성하기 위하여 주행중인 상기 공간으로부터 정보를 수집하는 제1 정보 수집 수단, 그리고
    상기 공간에 위치한 객체의 객체 위치 정보와 깊이 정보를 수집하는 제2 정보 수집 수단
    을 더 포함하고,
    상기 제1 정보 수집 수단은 LiDAR 센서이고, 상기 제2 정보 수집 수단은 RGB-D 카메라인, 로봇.
KR1020200143401A 2020-10-30 2020-10-30 자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법 KR102661849B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200143401A KR102661849B1 (ko) 2020-10-30 2020-10-30 자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200143401A KR102661849B1 (ko) 2020-10-30 2020-10-30 자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법

Publications (2)

Publication Number Publication Date
KR20220058079A KR20220058079A (ko) 2022-05-09
KR102661849B1 true KR102661849B1 (ko) 2024-04-26

Family

ID=81582345

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200143401A KR102661849B1 (ko) 2020-10-30 2020-10-30 자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법

Country Status (1)

Country Link
KR (1) KR102661849B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023224391A1 (ko) * 2022-05-18 2023-11-23 주식회사 인티그리트 지능형 실내 자율주행 로봇이 취득한 공간데이터를 이용한 가상화된 메타지도 제작 방법 및 시스템
KR102462499B1 (ko) * 2022-05-18 2022-11-04 (주)인티그리트 다중 지능형 자율주행 로봇을 통한 디지털 트윈 맵 제작 시스템 및 방법
KR102497615B1 (ko) * 2022-09-27 2023-02-08 주식회사 트위니 초음파 센서 기반의 코스트맵 생성 방법 및 장치
KR102593795B1 (ko) * 2022-09-30 2023-10-26 주식회사 플럭시티 공간 속성 정보를 3d 정보와 결합하는 방법 및 장치
KR102568651B1 (ko) 2022-10-26 2023-08-22 주식회사 클로봇 다수 무인이동체의 이동경로 생성을 위한 위상지도 형성장치 및 방법
KR102595490B1 (ko) 2022-11-02 2023-10-30 주식회사 클로봇 무인 이동체 및 무인 이동체의 이동 경로 계획을 위한 코스트 결정 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019008431A (ja) * 2017-06-22 2019-01-17 株式会社日立製作所 経路探索装置および経路探索方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200084423A (ko) * 2018-12-24 2020-07-13 삼성전자주식회사 기계 학습 기반의 로컬 모션 생성 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019008431A (ja) * 2017-06-22 2019-01-17 株式会社日立製作所 経路探索装置および経路探索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
David V. Lu 외 2명, Layered costmaps for context-sensitive navigation, 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems*

Also Published As

Publication number Publication date
KR20220058079A (ko) 2022-05-09

Similar Documents

Publication Publication Date Title
KR102661849B1 (ko) 자율주행 로봇, 계층 코스트 맵 생성 방법 및 이를 이용한 주행 경로 생성 방법
US12001210B2 (en) Semantic obstacle recognition for path planning
CN108209741B (zh) 清洁机器人控制方法和清洁机器人
KR102577785B1 (ko) 청소 로봇 및 그의 태스크 수행 방법
EP3672762B1 (en) Self-propelled robot path planning method, self-propelled robot and storage medium
US11554488B2 (en) Robot navigation using 2D and 3D path planning
KR20240063820A (ko) 청소 로봇 및 그의 태스크 수행 방법
CN108062098B (zh) 智能机器人的地图构建方法和系统
JP2020533720A (ja) 自律移動ロボットによる未知の環境の探索
KR20230153471A (ko) 로봇이 미지 영역을 탐색하기 위해 사용되는 맵 탐색 방법, 칩 및 로봇
JP5518579B2 (ja) 移動可能領域抽出装置および移動可能領域抽出方法
CN113741438A (zh) 路径规划方法、装置、存储介质、芯片及机器人
JP2017526083A (ja) 位置特定およびマッピングの装置ならびに方法
US20210348927A1 (en) Information processing apparatus, information processing method, and recording medium
WO2017038012A1 (ja) 地図生成方法、自己位置推定方法、ロボットシステム、およびロボット
KR20220163911A (ko) 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법
Chen et al. Design and Implementation of AMR Robot Based on RGBD, VSLAM and SLAM
KR20230134109A (ko) 청소 로봇 및 그의 태스크 수행 방법
US20220221872A1 (en) Information processing device, information processing method, and program
US20240004388A1 (en) Method and system for navigation of robot from one area to another area
CN112987720A (zh) 一种用于移动机器人的多尺度地图构建方法及构建装置
CN116968018A (zh) 一种基于成本地图的人机共融的自主乘梯方法及系统
Chikhalikar et al. An object-oriented navigation strategy for service robots leveraging semantic information
KR20230092422A (ko) 자율주행 로봇 및 자율주행 로봇의 지역 맵 생성 방법, 그리고 복수의 자율주행 로봇을 이용한 실내 맵 생성 방법
EP4390313A1 (en) Navigation method and self-propelled apparatus

Legal Events

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