KR102537364B1 - 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법 - Google Patents

자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법 Download PDF

Info

Publication number
KR102537364B1
KR102537364B1 KR1020220159642A KR20220159642A KR102537364B1 KR 102537364 B1 KR102537364 B1 KR 102537364B1 KR 1020220159642 A KR1020220159642 A KR 1020220159642A KR 20220159642 A KR20220159642 A KR 20220159642A KR 102537364 B1 KR102537364 B1 KR 102537364B1
Authority
KR
South Korea
Prior art keywords
robot
information
space
spatial
map
Prior art date
Application number
KR1020220159642A
Other languages
English (en)
Other versions
KR20220163911A (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 KR1020220159642A priority Critical patent/KR102537364B1/ko
Publication of KR20220163911A publication Critical patent/KR20220163911A/ko
Application granted granted Critical
Publication of KR102537364B1 publication Critical patent/KR102537364B1/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
    • 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/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

자율주행 로봇과 연동하며 적어도 하나의 프로세서에 의해 동작하는 서버가 상기 로봇에 제공할 의미적 공간 지능을 생성하는 방법으로서, 로봇이 공간을 주행하며 생성한 로컬 지도를 기초로, 전역 지도로부터 적어도 하나의 군집화 된 객체들이 포함되도록 분할 공간을 생성하고, 복수의 공간들과 각 공간에 복수의 객체들이 매핑되어 정의된 공간 목록을 기초로, 분할 공간을 복수의 공간들 중 어느 하나의 공간으로 라벨링한다. 라벨링된 공간 정보를 의미적 공간 지능에 저장하여, 로봇이 주행하는 분할 공간을 추정하도록 제공한다.

Description

자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법{Autonomous robot, location estimation server of autonomous robot and location estimation or autonomous robot using the same}
본 발명은 로봇의 자율 주행을 위한 SLAM(Simultaneous Localization and Mapping, 위치 측정 및 동시 지도화)과 사물을 인식하여 자율주행 로봇이 객체를 인식할 수 있도록 하는 자율주행 로봇, 공간 정보 제공 서버 및 이를 이용한 자율주행 로봇의 객체 인식 방법에 관한 것이다.
로봇과 네트워크 기술이 발전함에 따라, 로봇을 이용하여 자율주행 서비스를 제공하는 서비스 영역이 확장되고 있다. 로봇이 자율주행을 수행하기 위해, 로봇은 지나간 장소에 대한 지도를 작성한다. 그리고 로봇은 지나가면서 확인한 객체의 위치와 모양을 지도에 저장하여, 자율주행 시 지도를 참조한다.
로봇이 자율주행 지도를 작성하는 과정, 그리고 실시간으로 영상을 처리하여 현재 로봇 자신의 위치를 인식하기 위해 그래픽 연산이 필요하다. 이러한 지도 작성 과정과 그래픽 연산은 로봇의 하드웨어 비용을 증가시키는 원인이 된다. 더불어 로봇이 자율주행 지도를 작성하고 그래픽 연산을 할 때, 극심한 배터리 소모가 발생된다.
또한, 로봇이 주행하면서 작성한 지도는, 단순히 로봇의 주행 가능한 영역과 불가능한 영역을 나누는 수준으로만 작성된다. 따라서 자율주행 로봇을 이용한 수준 높은 서비스를 사용자에게 제공하기 어렵고, 다양한 분야로의 확장이 힘들다는 단점이 있다.
따라서, 본 발명은 공간 정보 제공 서버가 의미적 공간 지능을 형성하고 자율주행 로봇이 의미적 공간 지능을 토대로 객체를 인식할 수 있는 자율주행 로봇, 공간 정보 제공 서버 및 이를 이용한 자율주행 로봇의 객체 인식 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 자율주행 로봇과 연동하며 적어도 하나의 프로세서에 의해 동작하는 서버가 상기 로봇에 제공할 의미적 공간 지능을 생성하는 방법으로서,
상기 로봇이 공간을 주행하며 생성한 로컬 지도를 기초로, 전역 지도로부터 적어도 하나의 군집화 된 객체들이 포함되도록 분할 공간을 생성하는 단계, 복수의 공간들과 각 공간에 복수의 객체들이 매핑되어 정의된 공간 목록을 기초로, 상기 분할 공간을 상기 복수의 공간들 중 어느 하나의 공간으로 라벨링하는 단계, 그리고 라벨링된 공간 정보를 상기 의미적 공간 지능에 저장하여, 상기 로봇이 주행하는 상기 분할 공간을 추정하도록 제공하는 단계를 포함한다.
상기 의미적 공간 지능은, 상기 전역 지도와 로컬 지도가 저장되는 제1 계층, 상기 로봇이 인식한 객체 정보를 저장하는 제2 계층, 그리고 상기 분할 공간에 라벨링된 정보가 저장되는 제3 계층으로 구성될 수 있다.
상기 분할 공간을 생성하는 단계는, 미리 설정한 기준 객체의 좌표를 기준으로, 상기 전역 지도가 작성된 공간을 복수의 영역으로 분할하여 분할 공간들을 생성하는 단계를 포함할 수 있다.
공간의 주행 가능 영역과 주행 불가능 영역을 표시하는 상기 전역 지도를 상기 로봇에 전송하는 단계, 상기 주행 가능 영역에 위치한 적어도 하나의 객체를 인식한 객체 인식 정보와, 상기 객체를 인식한 위치의 상기 로컬 지도를 상기 로봇으로부터 수신하는 단계, 그리고 상기 객체 인식 정보를 상기 제2 계층에 저장하는 단계를 포함할 수 있다.
상기 객체 인식 정보는, 상기 적어도 하나의 객체의 객체 식별 정보와 상기 객체의 2차원 위치 정보인 바운딩 박스 정보를 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 자율주행 로봇과 연동하여 상기 자율주행 로봇이 객체를 인식하도록 의미적공간 지능을 생성하는 공간 정보 제공 서버로서,
프로세서, 그리고 의미적 공간 지능을 생성하는 프로그램이 저장된 메모리를 포함하고, 상기 프로세서는, 상기 로봇이 공간을 주행하며 생성한 로컬 지도를 기초로, 상기 공간에 대한 전역 지도로부터 적어도 하나의 군집화 된 객체들이 포함되도록 주행 가능한 분할 공간을 생성하고, 복수의 공간들과 각 공간에 복수의 객체들이 매핑되어 정의된 공간 목록을 기초로 상기 분할 공간을 상기 복수의 공간들 중 어느 하나의 공간으로 라벨링하여 상기 의미적 공간 지능을 생성한다.
상기 프로세서는, 상기 로봇의 주행을 토대로 생성된 로컬 지도, 그리고 상기 주행 가능 영역에서 인식한 객체들의 객체 인식 정보를 상기 공간에서 상기 로봇의 주행 가능 영역과 주행 불가능 영역을 표시하는 상기 전역 지도에 투영하여 상기 의미적 공간 지능으로 생성할 수 있다.
상기 프로세서는, 상기 객체의 위치 정보인 바운딩 박스 정보와 상기 로봇이 수집한 객체 인식 정보를 토대로 생성된 3차원 포인트 클라우드를 기초로 상기 로봇에서 상기 객체까지의 거리를 계산하고, 계산한 거리와 상기 로봇의 위치 정보를 결합하여, 상기 로컬 지도에 상기 객체의 위치 정보를 매핑한 후 전역 지도의 좌표로 변환할 수 있다.
상기 의미적 공간 지능은, 상기 전역 지도와 로컬 지도가 저장되는 제1 계층, 상기 객체 인식 정보를 저장하는 제2 계층, 그리고 상기 분할 공간에 라벨링된 정보가 저장되는 제3 계층으로 구성될 수 있다.
본 발명에 따르면, 전역지도에 RGB(Red, Green, Blue) 데이터로 사물을 식별한 결과와, 깊이 데이터로 작성한 로컬 지도를 투영하여 의미적 공간 지능으로 구성한다. 이를 통해, 자율주행 로봇이 공간 내에서 자율주행을 할 수 있을 뿐만 아니라, 객체 위치 인식 및 공간과 객체 간 연관관계를 추론할 수 있게 한다.
또한, 사용자의 질의에 대한 위치 인식을 통해 공간을 자동 분할하여, 수작업으로 수행하던 공간 분할과 공간에 대한 라벨링의 편의를 제공할 수 있다.
도 1은 본 발명의 실시예에 따라 자율주행 로봇에 의미적 공간 지능을 제공하기 위한 환경의 예시도이다.
도 2는 본 발명의 실시예에 따른 의미적 공간 지능의 계층에 대한 예시도이다.
도 3은 본 발명의 실시예에 따른 의미적 공간 지능 생성 방법을 나타낸 흐름도이다.
도 4는 본 발명의 실시예에 따른 전역 지도와 로컬 지도의 예시도이다.
도 5는 본 발명의 실시예에 따른 로봇 주행 계층의 예시도이다.
도 6은 본 발명의 실시예에 따른 객체 각도 추정 방법에 대한 예시도이다.
도 7은 본 발명의 실시예에 따른 각도와 객체 정보를 융합한 예시도이다.
도 8은 본 발명의 실시예에 따른 기준 객체의 위치와 각도로 공간이 구분되어 생성된 지도의 예시도이다.
도 9는 본 발명의 실시예에 따른 공간 분할 클러스터링의 예시도이다.
도 10은 본 발명의 실시예에 따른 사물 목록과 공간 종류에 대한 예시도이다.
도 11은 본 발명의 실시예에 따른 공간 분할의 예시도이다.
도 12는 본 발명의 실시예에 따른 의미적 공간 지능을 구성하는 정보 구조의 예시도이다.
도 13은 본 발명의 실시예에 따른 수집 데이터와 벽면 데이터의 예시도이다.
도 14는 본 발명의 실시예에 따른 각 영역의 객체 정보 및 영역 인식 결과를 나타낸 예시도이다.
도 15는 본 발명의 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조로 하여 본 발명의 실시예에 따른 자율주행 로봇, 객체 인식 서버 및 이를 이용한 자율주행 로봇의 객체 인식 방법에 대해 상세히 설명한다.
도 1은 본 발명의 실시예에 따라 자율주행 로봇에 의미적 공간 지능을 제공하기 위한 환경의 예시도이다.
도 1에 도시된 바와 같이, 자율주행 로봇(이하, 설명의 편의를 위하여 ‘로봇’이라 지칭함)(100)은 최초 주행하면서, 건물 내에 로봇(100)이 위치한 층의 전역 지도를 생성한다. 그리고 로봇(100)은 전역 지도를 생성한 후에 해당 층을 주행하면서 객체를 센싱하고, 객체가 동일한 위치에서 반복적으로 센싱되면 이를 토대로 로컬 지도를 생성한다.
여기서, 전역 지도는 초기에 로봇(100)이, 해당 층 전체를 주행하며 수집한 지도이다. 전역 지도는 층 내에서 로봇(100)이 주행 가능한 영역과 주행이 불가능한 영역(예를 들어, 벽면, 기둥 등)으로 구분되어 표시된다. 전역 지도는 로봇(100)과 연동한 서버에서 저장, 관리된다.
로컬 지도는 로봇(100)의 움직임에 따라 동적으로 변화는 환경에 따라 생성한 지도로, 전역 지도의 일부분에 해당한다. 로봇(100)은 로컬 지도를 기초로 자기의 현재 위치를 인식한다. 즉, 로봇(100)이 전역 지도를 생성한 후, 자율 주행을 통해 객체들을 센싱하면, 객체가 위치한 환경이 이전 환경과 다르게 변경되었기 때문에 로봇(100)은 로컬 지도를 생성한다.
이때, 임의의 객체(예를 들어, 화분, 냉장고, 침대 등)가 미리 설정한 횟수 이상으로 동일한 위치에서 탐지되면, 로봇(100)은 로컬 지도를 객체의 위치를 기준으로 로컬 지도를 갱신한다. 로봇(100)은 갱신한 로컬 지도, 생성한 로컬 지도를 공간 정보 제공 서버(200)로 전달한다. 그리고 로봇(100)은 주행하면서 획득한 사물 즉, 객체의 정보를 공간 정보 제공 서버(200)로 전송한다.
공간 정보 제공 서버(200)는 로봇(100)으로부터 전역 지도, 객체 인식 정보, 그리고 로컬 지도를 수신하면, 객체 인식 정보와 로컬 지도를 전역 지도에 투영한다. 그리고 공간 정보 제공 서버(200)는 로봇(100)으로부터 수신한 로컬 지도를 기초로 기 저장된 전역 지도를 갱신한 후, 갱신한 전역 지도를 로봇(100)으로 다시 제공한다.
로봇(100)은 로컬 지도와 전역 지도를 생성하고, 객체 정보를 획득하기 위해, 두 개의 정보 수집 수단(110, 120)을 구비한다.
본 발명의 실시예에서는 전역 지도를 생성하기 위하여 제1 정보 수집 수단(110)으로 라이다(LiDAR: Light Detection And Ranging) 센서를 사용하는 것을 예로 하여 설명한다. 또한, 본 발명의 실시예에서는 로봇(100)이 주행하면서 객체를 센싱하여 깊이 데이터와 객체 정보를 획득하기 위하여, 제2 정보 수집 수단(120)으로 RGB-D 카메라를 이용하는 것을 예로 하여 설명한다. 그러나, 각각의 정보 수집 수단의 형태가 반드시 이와 같이 한정되는 것은 아니다.
공간 정보 제공 서버(200)는 로봇(100)으로부터 초기 작성된 전역 지도와 객체 정보, 그리고 로컬 지도들을 수신하면, 전역 지도에 객체 정보와 로컬 지도를 투영한다. 본 발명의 실시예에서는 전역 지도에 객체 정보와 로컬 지도를 투영하여 생성한 결과를 ‘의미적 공간 지능’이라 지칭한다. 공간 정보 제공 서버(200)는 생성한 의미적 공간 지능을 로봇(100)으로 제공한다.
이러한 의미적 공간 지능은, 기존 SLAM(Simulation Language for Alternative Modeling) 계층에 본 발명의 실시예에 따른 2개의 계층을 추가한 것이다. 의미적 공간 지능을 기초로 로봇(100)은 자율 주행을 수행하며, 주행 중에 로컬 지도를 갱신하고 로봇 자신의 위치를 인식한다. 여기서, 의미적 공간 지능의 계층에 대해 도 2를 참조로 설명한다.
도 2는 본 발명의 실시예에 따른 의미적 공간 지능의 계층에 대한 예시도이다.
도 2에 도시된 바와 같이, 본 발명의 실시예에 따른 의미적 공간 지능의 계층은 전역 지도와 로컬 지도가 저장되는 로봇 주행 계층(또는, ‘제1 계층’이라 지칭함), 로봇(100)이 인식한 객체 정보를 저장하는 객체 정보 계층(또는, ‘제2 계층’이라 지칭함), 그리고 공간의 의미 정보를 추론하고 공간에 라벨링된 정보가 저장되는 의미 추론 계층(또는, ‘제3 계층’이라 지칭함)을 포함한다.
제1 계층은 일반적인 SLAM과 유사하다. 본 발명의 실시예에서는 로봇(100)의 제1 정보 수집 수단(110)이 수집한 전역 지도와, 로봇(100)이 주행하면서 제2 정보 수집 수단(120)이 수집한 깊이 정보를 토대로 구성한 로컬 지도를 공간 정보 제공 서버(200)가 제1 계층으로 구성하는 것을 예로 하여 설명한다.
전역 지도와 로컬 지도가 작성된 제1 계층을 기반으로 로봇(100)은 자율주행을 수행한다. 로봇(100)은 자율주행 하면서 획득한 정보를 로컬 지도에 업데이트하고, 로봇(100) 자신의 위치를 인식한다.
제2 계층은 로봇(100)이 자율주행을 수행하며 인식한 객체의 객체 정보를 저장한다. 객체 정보는 객체가 놓인 위치 정보와 객체에 대한 식별 정보를 포함한다. 이때, 로봇(100)이 인식한 객체 정보는 이후 설명할 객체가 위치한 공간에 라벨링된 공간 라벨링 정보와 함께 저장된다. 예를 들어, 사용자의 스마트폰이 거실에 있다고 가정하면, 제2 계층에 저장된 객체 정보는 "거실에 있는 스마트폰"와 같은 형태로 저장된다.
로봇(100)은 제2 정보 수집 수단(120)을 통해 수집한 RGB 데이터를 토대로 객체의 식별 정보와 객체의 바운딩 박스(Bounding box) 정보를 획득한다. 바운딩 박스 정보는 RGB 데이터 내에서 인식된 객체를 포함하도록 설정된 최소한의 사각형 영역으로, 로봇(100)의 제2 정보 수집 수단(120)의 시야(view) 방향에서 획득한 2D 좌표를 포함하고 있다. 따라서, 바운딩 박스 정보가 객체의 2D 좌표인 위치 정보로 활용될 수 있다.
로봇(100)은 객체의 위치 정보(2D)인 바운딩 박스 정보와 어떤 객체인지에 대한 객체 식별 정보, 그리고 객체를 인식한 시간 정보를 공간 정보 제공 서버(200)로 전달한다. 이를 위해, 로봇(100)에는 미리 객체에 대한 형태와 해당 객체를 지칭하는 식별 정보가 저장되어 있으며, 이에 대해서는 이후 상세히 설명한다. 공간 정보 제공 서버(200)는 수신한 정보를 제2 계층에 저장한다.
로봇(100)이 자율주행하면서 획득한 객체 인식 정보를 지속적으로 공간 정보 제공 서버(200)로 전달하면, 공간 정보 제공 서버(200)는 수신한 객체 인식 정보를 토대로 로컬 지도를 갱신한다. 그리고 공간 정보 제공 서버(200)는 미리 설정된 기준에 따라, 전역 지도를 다수의 독립된 공간으로 분할한다. 그리고 분할한 공간 내 포함된 객체들을 토대로, 분할한 공간을 라벨링하여 의미 추론 계층인 제3 계층에 작성한다.
여기서, 로봇(100)이 수집한 정보들을 토대로 공간 정보 제공 서버(200)가 의미적 공간 지능을 생성하고, 로봇(100)이 의미적 공간 지능을 이용하여 자율주행 서비스를 제공하는 방법에 대해 도 3을 참조로 설명한다.
도 3은 본 발명의 실시예에 따른 의미적 공간 지능 생성 방법을 나타낸 흐름도이다.
도 3에 도시된 바와 같이, 로봇(100)은 건물 내 공간에서 자율주행을 시작하면, 주행하는 공간에 대한 전역 지도 생성, 로컬 지도 생성, 그리고 객체 인식을 실시간으로 진행한다. 즉, 최초 로봇(100)이 자율주행을 시작하면, 제1 정보 수집 수단(110)에서 송출한 레이더 신호가 객체에 반사되어 획득한 반사파를 이용하여, 로봇(100)은 전역 지도를 작성한다(S100). 로봇(100)은 전역 지도를 최초 작성한 후, 공간 정보 제공 서버(200)로 전달하고(S101), 공간 정보 제공 서버(200)는 수신한 전역 지도를 저장한다(S102).
이와 동시에, 로봇(100)은 공간을 반복적으로 주행하면서, 제2 정보 수집 수단(120)을 통해 수집한 정보를 토대로 장애물이나 물건 등을 포함하는 객체들을 인식한다(S103). 그리고 인식한 객체에 대한 객체 인식 정보를 추출한다(S104).
즉, 제2 정보 수집 수단(120)에서 RGB-D 데이터를 수집하면, 로봇(100)은 RGB 정보와 미리 로봇(100)에 저장되어 있는 객체 정보를 토대로, RGB 정보에 포함된 객체를 인식한다. 이와 동시에 로봇(100)은 객체를 포함하고 있는 바운딩 박스 정보를 수집하고, 객체를 인식한 시간 정보를 획득한다. 여기서, 바운딩 박스 정보는 객체의 위치 정보로 사용된다.
로봇(100)은 전역 지도를 생성한 뒤에 새로운 객체들을 인식하면, 로컬 지도를 생성한다(S105). 여기서, 로봇(100)이 전역 지도를 작성하는 방법, 깊이 데이터를 처리하여 객체를 인식하는 방법, 깊이 데이터를 전처리하는 방법, 로컬 지도를 생성하는 방법 등은 다양하게 수행될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
그리고, 로봇(100)은 객체 인식 정보와 로컬 지도를 로봇(100) 내 객체 정보 데이터베이스(도면 미도시)에 저장한다. 객체 식별 정보와 객체 위치 정보를 저장하는 것은, 로봇(100)이 같은 객체가 놓여있는 공간을 반복적으로 주행하게 되면 여러 번 객체를 센싱하게 되고, 이로 인해 공간 정보 제공 서버(200)에 좌표 연산도 불필요하게 반복적으로 수행될 수 있기 때문이다.
이를 방지하기 위하여, 본 발명의 실시예에서 로봇(100)은 인식한 객체의 식별 정보와 객체의 위치 정보를 저장하여, 인식한 객체가 이전의 인식된 적이 있는지 비교한다. 비교한 결과에 따라 로봇(100)은 객체의 위치를 업데이트하기 위해 공간 정보 제공 서버(200)에 전송할 지 여부를 결정한다.
그리고 로봇(100)은 공간 정보 제공 서버(200)와 무선 통신을 하여, 공간 정보 제공 서버(200)로 객체 인식 결과, 생성한 로컬 지도를 전송한다(S106). 본 발명의 실시예에서는 S106 단계에서 객체 인식 정보와 로컬 지도를 전송하는 것으로 나타내었으나, 객체 인식 정보만을 전송할 수도 있다.
공간 정보 제공 서버(200)는 S106 단계에서 로봇(100)으로부터 수신한 객체 인식 정보와 로컬 지도, 그리고 S102 단계에서 저장한 전역 지도를 이용하여, 공간 의미 정보를 생성하는 절차를 수행한다.
이에 대해 상세히 설명하면, 공간 정보 제공 서버(200)는 로봇(100)으로부터 수신한 객체 인식 정보를 토대로 객체를 로컬 지도에 매핑하기 위하여, 3D 포인트 클라우드를 추출한다(S107). 포인트 클라우드는 LiDAR 센서, RGB-D 센서 등으로 수집되는 데이터를 의미하며, 3차원 공간상에 퍼져있는 여러 포인트의 집합을 의미한다.
그리고, 객체 인식 정보에 포함된 바운딩 박스 정보를 S107 단계에서 추출한3D 포인트 클라우드에 투영한다(S108). 이때, 공간 정보 제공 서버(200)는 바운딩 박스 내의 포인트 클라우드에서, 제2 정보 수집 수단(120)과 객체 간 거리를 계산한다(S109). 바운딩 박스로 제2 정보 수집 수단(120)과 객체 간 거리 값을 추정하기 위하여, 공간 정보 제공 서버(200)는 바운딩 박스 내의 포인트 클라우드를 추출하고, 중위 값을 대표 거리 값으로 선정한다.
보통 바운딩 박스로 객체가 정확히 구분되지 않기 때문에, 공간 정보 제공 서버(200)에서 객체 인식 결과를 로컬 지도에 투영할 때 포인트 클라우드에 대한 데이터와 노이즈가 함께 로컬 지도로 입력되는 현상이 발생한다. 노이즈와 함께 입력된 객체 외부의 데이터 평균값을 통해 거리를 추출하면, 거리 데이터의 왜곡이 심해진다.
즉, 제1 정보 수집 수단(110)에서 발사된 레이저 펄스가 객체에 부딪혀 반사될 때, 객체의 모양에 따라 반사되어 돌아온 거리 값이 정확하지 않을 수 있다. 이 경우, 객체의 이미지가 명확하게 나타나지 않고 노이즈가 섞여서 객체의 모양이 울퉁불퉁하게 표현된다.
이는 이미지가 3차원 복셀(voxel)로 구성된 3D 포인트 클라우드에도 해당된다. 복셀의 거리는 객체 모양에 따라 달라지고, 객체 주변에 배경도 포인트 클라우드에 노이즈처럼 포함된다.
따라서, 객체가 놓인 배경의 데이터에 대한 영향을 최소화하기 위하여, 공간 정보 제공 서버(200)는 울퉁불퉁하게 표현된 부분의 중간에 위치하는 직선까지의 거리를 제2 정보 수집 수단(120)과 객체간의 거리를 의미하는 대표 거리 값으로 선정한다. 본 발명의 실시예에서는 객체의 바운딩 박스의 정 중앙을 나타내는 지점의 값을 객체의 위치로 정의하였으며, 로봇(100)과 객체 간의 각도를 바운딩 박스의 x 좌표로 추정한다.
이와 같이 정의하거나 추정한 결과를 바탕으로, 공간 정보 제공 서버(200)는 포인트 클라우드에서 추출한 거리 값과 융합하여 로컬 지도에 객체 위치 정보를 매핑한다(S110). 그리고, 공간 정보 제공 서버(200)는 로컬 지도에서 확인한 객체의 위치를 전역 지도의 좌표로 변환한다(S111).
즉, 로봇(100)에서 인식한 객체를 통해 획득한 좌표는 2차원 좌표(x, y)이고 이를 공간의 3차원 좌표로 생성하기 위해선 z 값이 필요하다. 이때, z 값은 포인트 클라우드에서 획득한 대표 거리 값을 이용하기 때문에, 공간 제공 서버(200)는 객체 검출에서 획득한 2차원 좌표에 대표 거리 값 z를 융합하여, 전역 공간에서의 좌표 (x, y, z)를 구성한다.
이상의 절차를 통해 객체의 전역 지도에서의 좌표와 로컬 지도에서의 위치를 확인한 후, 공간 정보 제공 서버(200)는 전역 지도의 공간 내 객체들 중 기준 객체의 좌표를 기준으로 공간을 복수의 영역으로 분할한다(S112).
기존의 SLAM은 서버에서 작성된 지도를 로봇에 응용하기 위해 공간 분할과 라벨링에 직접 사람의 수작업으로 진행하였다. 그러나, 본 발명의 실시예에서는 공간 정보 제공 서버(200)에서 추가로 공간 추정 과정을 수행함으로써 공간 분할과 라벨링을 자동으로 수행한다.
즉, 공간 정보 제공 서버(200)에서 작성된 전역 지도는 공간 내에 객체 좌표들을 가지고 있는데, 이 때 공간 내에서 기 설정된 기준 객체들의 좌표도 가지고 있다. 따라서, 공간 정보 제공 서버(200)는 기준 객체들의 좌표를 기준으로 공간을 자동으로 분할한다.
분할한 공간 내에서 적어도 하나의 객체가 군집화될 수 있으므로, 공간 정보 제공 서버(200)는 군집화된 객체들과 미리 저장된 객체 정보들을 토대로 공간을 추정하고, 공간에 대한 라벨링을 수행한다(S113). 이에 대해서는 이후 자세히 설명한다.
이와 같이 로컬 지도와 객체 식별 결과를 전역 지도에 투영하여 의미적 공간 지능을 생성하면, 공간 정보 제공 서버(200)는 로봇(100)으로 의미적 공간 지능을 전송한다(S114). 로봇(100)은 수신한 의미적 공간 지능을 이용하여, 사용자에게 자율주행 서비스를 제공한다(S115).
이와 같은 절차로 로봇(100)과 공간 정보 제공 서버(200)가 객체를 인식하고 의미적 공간 지능을 생성하여 자율 주행 서비스를 제공하는 과정에서, 상기 S100 단계에서 전역 지도와 로컬 지도를 획득한 예에 대해 도 4를 참조로 설명한다.
도 4는 본 발명의 실시예에 따른 전역 지도와 로컬 지도의 예시도이다.
도 4에 도시된 바와 같이, 로봇(100)은 제1 정보 수집 수단(110)이 센싱한 정보를 이용하여 2차원 그리드 지도(2D Grid Map)를 생성한다. 이때, 로봇(100)이 센싱한 정보를 2차원 그리드 지도로 생성하기 위해 Gmapping 기술을 활용하며, Gmapping 기술은 이미 알려진 기술이므로 본 발명의 실시예에서는 상세한 설명을 생략한다.
제1 정보 수집 수단(110)이 센싱한 정보를 통해 획득한 2차원 그리드 지도는, 도 4의 (a)에 도시된 바와 같이 로봇(100)의 주행 가능 영역과 주행 불가능 영역을 단순히 분리한 형태이다. 이때의 2차원 그리드 지도가 전역 지도에 해당한다.
또한, 로봇(100)은 자율 주행하면서 2차원 그리드 지도를 분할하여 하위 지도(Sub Map)들로 생성할 수 있다. 하위 지도들은 도 4의 (b)와 같은 형태의 지도로서, 전역 지도를 분할하여 생성된 하위 지도들이 로컬 지도에 해당할 수 있다. 여기서, 로봇(100)이 2차원 그리드 지도를 분할하는 방법은 다양하게 수행될 수 있으며, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지는 않는다.
이상에서 설명한 전역 지도와 로컬 지도가 저장되는 로봇 주행 계층인 제1 계층에 대해 도 5를 참조로 설명한다.
도 5는 본 발명의 실시예에 따른 로봇 주행 계층의 예시도이다.
사용자가 처음 로봇(100)을 구동하고 로봇(100)에 공간 인식을 요청하면, 로봇(100)은 자율 주행하면서 도 5에 도시된 바와 같은 제1 계층에 지도를 작성한다. 이때 로봇(100)에서는 제1 계층에 지도를 작성하기 위한 지도 작성 어플리케이션과 객체 인식 어플리케이션이 실시간으로 동작한다.
지도 작성 어플리케이션과 객체 인식 어플리케이션은 로봇(100)의 프로세서에서 구동되는 어플리케이션이다. 하나의 프로세서에서 두 개의 어플리케이션을 동작할 수도 있고, 각각의 어플리케이션을 동작하기 위한 복수의 프로세서가 로봇(100)에 포함될 수도 있다.
지도 작성 어플리케이션의 동작에 따라 도 5와 같은 형태로 제1 계층에 지도가 작성하면, 객체 인식 어플리케이션은 바운딩 박스에서 x, y 좌표를 획득하고, 미리 로봇(100)에 저장된 객체 정보를 토대로 로봇(100)이 탐지한 객체의 객체 식별 정보를 획득한다.
로봇(100)이 공간을 자율주행 하면서 공간 곳곳에 위치한 객체들의 객체 정보를 획득할 때, 획득한 객체 정보에는 기 설정된 기준 객체에 대한 정보도 포함한다. 본 발명의 실시예에서는 인식한 기준 객체의 위치를 기준으로 공간의 경계 영역을 구분하는 것을 예로 하여 설명한다.
공간의 경계 영역을 구분할 때, 바운딩 박스에서의 객체의 각도 정보가 중요하다. 이에, 바운딩 박스에서 객체의 각도를 추정하는 예에 대해 도 6을 참조로 설명한다.
도 6은 본 발명의 실시에에 따른 객체 각도 추정 방법에 대한 예시도이다.
도 6에 도시된 바와 같이, 객체 인식 어플리케이션은 기준 객체가 존재한다고 추정되는 이미지 상에 바운딩 박스를 출력한다. 그리고 바운딩 박스의 픽셀 좌표로 기준 객체와 로봇(100)의 각도를 추정한다. 본 발명의 실시예에서는 기준 객체가 '문'인 것을 예로 하여 설명한다.
이미지는 고정 FOV(Field Of View) 각도를 가지며, 이미지의 너비 픽셀(width pixel)은 전체 FOV와 매칭된다. 객체 인식 어플리케이션은 이미지 상의 x좌표의 위치에 따라, 제2 정보 수집 수단(120)의 상대 각도를 계산한다. 이때 제2 정보 수집 수단(120)의 중심은 로봇(100)의 x좌표와 일치하며, 본 발명의 실시예에 따른 제2 정보 수집 수단(120)은 로봇(100)의 프레임에 고정되어 움직이지 않는 것을 예로 하여 설명한다.
객체 인식 어플리케이션은 바운딩 박스의 각 모서리인 복수의 포인트들 각각의 각도 θ를 다음 수학식 1로 계산한다.
[수학식 1]
여기서, W는 이미지 너비이고, p는 바운딩 박스의 포인트를 의미한다. comfov는 제2 정보 수집 수단(120)의 화각을 의미한다.
수학식 1을 통해, 로봇(100)은 기준 객체가 이미지 상에서 존재하는 각도 값을 구할 수 있다. 그러나, 제2 정보 수집 수단(120)에서 기준 객체까지의 거리 값(d)을 추정할 수 없기 때문에, 기준 객체의 정확한 위치를 추정할 수 없다.
이를 해결하기 위해, 본 발명의 실시예에서는 로봇(100)에 장착된 제1 정보 수집 수단(110)이 수집한 정보를 수학식 1에서 구한 각도와 융합을 하여 기준 객체의 정확한 위치를 추정한다.
다시 말하면, 제1 정보 수집 수단(110)이 수집한 데이터는 제1 정보 수집 수단(110)과 기준 객체 사이의 각도와 거리 값으로 출력된다. 그러므로, 로봇(100)과 기준 객체가 이루는 각도를 측정할 수 있다면, 객체 인식 어플리케이션은 기준 객체가 있는 점까지의 거리를 추정할 수 있다.
이를 토대로 로봇(100)은 기준 객체와 로봇(100) 사이의 상대 위치를 구할 수 있다. 이렇게 구한 기준 객체의 위치와 각도는 로봇(100)이 공간을 구분하는 기준 값으로 사용한다.
본 발명의 실시예에서는 기준 객체를 문 하나로 예를 들어 설명하나, 거실을 예로 하면 TV나 소파가 될 수 있다. 또한, 부엌의 경우에는 식탁, 의자, 냉장고가 될 수 있고, 침실의 경우에는 침대, 서재의 경우에는 테이블, 모니터, 노트북 등으로 사전에 설정할 수 있다. 기준 객체는 사용자에 의해 설정되며, 기준 객체를 설정하는 기준을 어느 하나로 한정하지 않는다.
여기서, 로봇(100)이 각도와 객체 정보를 융합하는 예에 대해 도 7을 참조로 설명한다.
도 7은 본 발명의 실시예에 따른 각도와 객체 정보를 융합한 예시도이다.
도 7의 (a)는 제2 정보 수집 수단(120)이 수집한 영상에서 특징점을 추출한 예시도이고, 도 7의 (b)는 특징점 추출 과정을 통해 인식한 객체에 RGB 데이터를 삽입한 예시도이다. 그리고 도 7의 (c)는 포인트 클라우드에 객체 검출 결과로 획득한 바운딩 박스를 투영시켜 각도와 객체 정보를 융합한 예시도이다.
로봇(100)은 도 7의 (a)에 도시한 바와 같은 특징점들을 미리 저장된 객체 특징점들과 비교한다. 여기서, 로봇(100)이 비교하는 특징점들은 미리 객체들의 특징점이 학습되어 저장된 특징점들이다.
예를 들어, 미리 학습되어 로봇(100)에 저장된 이미지 특징점에 의자 특징점이 있다고 가정한다. 이때, 의자의 형태가 매우 다양하므로, 로봇(100)은 여러 가지 형태의 의자들에서 특징점을 각각 추출하여 데이터베이스에 저장한다.
로봇(100)은 이렇게 확보된 데이터베이스 내 특징점들과 실시간으로 수집한 의자 영상에서 추출한 특징점과 비교함으로써, 촬영한 객체에 의자 객체가 있음을 인식할 수 있다. 도 7의 (a)에서는 공간 내 천장, 의자, 바닥, 사람, 모니터를 객체로 인식한 것을 나타낸 것이다.
도 7의 (b)는 로봇(100)이 도 7의 (a)에서 인식한 객체에 색깔을 넣어, 객체들을 분할하는 객체 분할(segmentation) 결과를 나타낸 예시도이다. 객체 분할을 통해 하나의 이미지 내 각 픽셀들이 그룹화된다. 객체에 색깔을 넣어 객체들을 분할하는 방법은 다양한 방법으로 수행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
도 7의 (b)와 같이 분할된 객체들을 공간 지도를 통해 확인하면, 3차원 포인트 클라우드를 확인할 수 있다. 공간 지도를 통해 3차원 포인트 클라우드를 확인하는 방법은 다양하므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다. 그러므로, 로봇(100)은 획득한 포인트 클라우드에 객체 검출 결과로 획득한 바운딩 박스를 투영하여, 도 7의 (c)에 나타낸 바와 같이 바운딩 박스의 위치를 포인트 클라우드에 겹치는 융합된 결과물을 얻을 수 있다.
이러한 과정을 통해 구한 기준 객체의 위치와 각도를 기준으로 영역을 구분하는 기준이 된다. 기준 객체의 위치와 각도로 공간이 구분되어 생성된 지도에 대해 도 8을 참조로 설명한다.
도 8은 본 발명의 실시예에 따른 기준 객체의 위치와 각도로 공간이 구분되어 생성된 지도의 예시도이다.
도 8에 도시된 바와 같이, 지도에 기준 객체의 위치와 각도로 공간을 구분하여 생성된 지도의 공간을 분리하면, 공간 라벨링을 위한 사전 작업(예를 들어, 기준 객체를 기준으로 공간을 분할하는 작업, 또는 객체를 인식하는 과정)을 모두 로봇(100)이 수행한다. 도 8에서는 기준 객체로 FRONT DOOR가 설정된 것을 예로 하여 설명한다.
로봇(100)은 매핑과 공간 분할을 동시에 수행하면서 기준 객체 이외의 다른 객체들도 인식한다. 이때 로봇(100)이 인식한 객체들에 대한 정보는 로봇(100) 내 데이터베이스(도면 미도시)에 저장하고, 인지하지 못한 객체들은 별도의 이미지 데이터베이스(도면 미도시)에 저장한다.
여기서, 기준 객체 이외의 다른 객체들은 제1 정보 수집 수단(110)의 높이에 존재할 수 있고, 다른 높이에 존재할 수 있다. 따라서 제1 정보 수집 수단(110)을 사용하여 객체까지의 거리를 추출하는데 어려움이 있다. 본 발명의 실시예에서는 로봇(100)과 객체까지의 거리를 추출하기 위하여, 제2 정보 수집 수단(120)에서 수집한 깊이 정보를 토대로, 객체까지의 거리 추출에 활용한다.
본 발명의 실시예에 따라 사용되는 RGB-D 카메라는, RGB 카메라와 Depth 카메라가 같은 보드에 고정이 되어 제2 정보 수집 수단(120)으로 사용된다. 따라서 RGB 이미지 카메라와 Depth 카메라의 상대적인 위치는 고정된 값으로 얻을 수 있다.
이를 토대로, 로봇(100)은 제2 정보 수집 수단(120)이 획득한 RGB 이미지에서 객체가 인식된 바운딩 박스의 위치를 검출하면, 공간 정보 제공 서버(200)에서 RGB 카메라와 Depth 카메라 간의 상대 위치로 보정한다. 이는, 제2 정보 수집 수단(120)은 정보 수집 수단인 한 대의 카메라에 RGB를 추출하기 위한 카메라와 깊이를 확인하기 위한 카메라가 동시에 배치되어 있기 때문에, 각각의 카메라에서 수집한 이미지는 카메라의 위치를 기준으로 물리적 거리가 상이하여 보정이 필요하다.
객체의 바운딩 박스는 RGB 영상에서만 검출하기 때문에, 공간 정보 제공 서버(200)는 RGB-D로 구성된 포인트 클라우드에 투영하면서 카메라 물리적 거리 보정을 수행한다. 그리고, 보정된 위치를 깊이 포인트 클라우드(depth point cloud)에 매칭한다. 로봇(100)은 객체가 인식된 바운딩 박스의 위치로 SLAM의 포인트 클라우드를 기반으로 객체까지의 거리인 대표 거리 값을 구할 수 있다.
로봇(100)이 객체의 대표 거리 값을 구할 때, 객체가 정확히 배경과 분리되어 있지 않지 않다. 이는, 로봇(100)이 객체에 대한 정보를 수집할 때, 배경에 대한 포인트 클라우드와 노이즈를 함께 수집하기 때문이다. 이에 따라, 공간 정보 제공 서버(200)가 노이즈와 함께 입력된 객체 외부의 데이터 평균값을 통해 거리를 추출하면, 거리 데이터의 왜곡이 발생한다.
그러므로, 본 발명의 실시예에서는 배경의 데이터에 대한 영향을 최소화하기 위하여, 로봇(100)은 포인트 클라우드의 중위 값을 해당 객체의 대표 거리 값으로 설정하는 것을 예로 하여 설명한다. 이를 통해 바운딩 박스의 x좌표와 포인트 클라우드에서 추출한 거리 값을 융합하여, 객체의 전역 공간에서의 좌표를 추정한다.
이와 같은 방법으로 전역 지도가 작성되고 공간이 분할된 객체 인식 결과를 로봇(100)으로부터 수집하면, 공간 정보 제공 서버(200)는 제1 계층의 전역 좌표계에서의 위치로 객체 정보를 그래프 형태로 저장한다. 즉, 본 발명의 실시예에서는 로봇(100) 및 공간 정보 제공 서버(200)는 데이터의 삽입, 삭제가 용이하여 빈번하게 변경되는 좌표 데이터를 용이하게 관리하기 위하여, 좌표를 저장하는 데이터 구조로 그래프를 사용한다. 여기서 그래프는 이미 공지된 다양한 데이터 구조들 중 하나의 형태로, 본 발명의 실시예에서는 어느 하나의 데이터 구조에 한정하지 않는다.
제1 계층에 저장된 객체의 위치는 로봇(100)이 주행 완료할 때까지 여러 번 센싱될 수 있으며, 이는 같은 객체가 중복 저장될 수 있다는 것을 의미한다. 이를 방지하기 위하여, 본 발명의 실시예에서는 로봇(100)에 의해 인식된 객체의 객체 식별 정보와 위치 정보를 그래프에 저장하며, 새로운 객체가 인식되었을 경우 이전에 저장된 객체의 정보와 비교하여 객체의 위치를 업데이트하는 방식을 사용한다.
여기서, 공간 정보 제공 서버(200)가 그래프를 작성하기 위하여, 우선 저장된 객체의 위치에 대한 정보 매트릭스(μ)를 생성한다. 그리고, 생성한 정보 매트릭스를 기반으로 새로운 객체가 추가될 때마다 새로운 객체의 위치를 기반으로 정보 매트릭스를 다음 수학식 2를 이용하여 갱신하거나 최적화한다.
[수학식 2]
ε=Ω·X
여기서, ε는 새로운 사물이 추가되었을 때 업데이트 된 정보 벡터, Ω는 정보 매트릭스(information matrix)이며, X는 각 노드 및 랜드마크의 위치를 저장하고 있는 위치 벡터(Position vector)이다. 본 발명의 실시예에서는 인식되는 객체의 위치는 정보 매트릭스로 관리하며, 수학식 2에 따라 새로운 객체 정보(X)를 인지하면 정보 매트릭스를 갱신하여 ε가 생성됨을 알 수 있다.
공간 정보 제공 서버(200)는 생성한 그래프로 객체의 위치를 저장하면서, 같은 객체를 중복으로 저장하는 것을 방지할 수 있다.
이상에서 설명한 바와 같이 로봇(100)이 자율 주행하면서 지도를 작성하고 기준 객체를 인식하고 나면, 영역 분할을 수행한다. 상기 도 3의 S200 단계에서 공간을 분할하기 위한 클러스터링 알고리즘과 분할된 공간의 예에 대해 도 9 내지 도 11을 참조로 설명한다.
도 9는 본 발명의 실시예에 따른 공간 분할 클러스터링의 예시도이다.
도 9에 도시된 바와 같이, 로봇(100)은 특정 영역을 흰색 영역과 기준 객체인 문을 기준으로 분리한다. 문은 점유 그리드(occupied grid)로 지정하여 폐쇄 공간이 되도록 설정한다.
로봇(100)은 전역 지도를 검색하면서 자유 공간(free space)이 나타나면, 해당 자유 공간을 확장하여 연결된 자유 공간이 더 이상 존재하지 않을 때까지 확장한다. 즉, 그리드 지도의 처음 위치부터 검색을 시작하여 자유 공간이 나타나면, 해당 자유 공간의 그리드를 중심으로 4개의 방향으로 또 다른 자유 공간이 있는지 확인한다.
이때 자유 공간은 객체가 검출될 수 있는 영역이 될 수 있다. 로봇(100)은 더 이상 확장할 자유 공간이 존재하지 않으면, 로봇(100)은 확장한 자유 공간을 독립된 공간으로 저장하고, 다시 공간을 검색하여 전체 공간에서 각각의 독립 공간을 분리한다.
주위에 다른 자유 공간이 존재하면, 다른 자유 공간에 해당하는 그리드를 확인 그리드(checked grid)로 갱신한 후 새로 확인된 영역으로 포인트(도 9에서 화살표의 출발점 사각형)를 이동시킨다. 이동한 그리드에서 서칭을 수행하여, 더 이상 서칭할 공간이 존재하지 않으면 나머지 영역을 서칭하고, 이러한 절차를 반복하여 전체 그리드 맵 즉, 전역 지도의 공간을 분리한다.
자유 공간의 영역에 상기 도 7에 나타낸 바와 같이 객체가 검출되면, 해당 정보를 데이터베이스에 저장한다. 이때, 객체의 크기에 따라 도 7의 (c)에 나타낸 사람 객체와 같이 2칸 이상의 공간을 차지할 수 있고, 1칸의 공간에 다수의 객체들이 저장될 수 있다.
로봇(100)은 분할한 그리드 영역이 어떤 공간인지 추론하기 위해, 사전에 사물과 공간 목록을 정의해 두고 있으며, 공간 추론을 위한 사물과 공간 목록은 다음 표 1과 같다.
객체 공간
소파, TV, 모니터, 벽시계 거실
싱크대, 냉장고, 식탁, 의자 주방
침대 침실
테이블, 의자, 화분, 책꽂이, 노트북 서재
본 발명의 실시예에서는 일반 가정에 적용된 예를 설명하기 위하여 상기 표 1과 같이 정의하나, 반드시 이와 같이 한정되는 것은 아니다. 이러한 표 1에 따라 로봇(100)이 객체를 인식하면서 공간의 의미를 추론하는 예에 대해 설명한다. 여기서, 공간 추론을 위해 로봇(100)이 댁내에서 주행할 때 인식하는 사물의 목록과 공간 종류에 대해 도 10을 참조로 설명한다.
도 10은 본 발명의 실시예에 따른 사물 목록과 공간 종류에 대한 예시도이다.
도 10에서는 로봇(100)이 댁내에서 주행할 때 인식하는 객체 목록과 공간 종류를 나타낸 것이다. 각 객체들은 공간을 정의할 수 있는 기준 객체로 선정되었기 때문에, 확인한 객체들의 조합을 통하여 로봇(100)은 자신이 위치한 공간의 의미를 추론할 수 있다.
도 10에 도시된 바와 같이, 실내 공간은 주방/침실/거실/서재로 의미를 구분하였다. 예를 들어 로봇(100)이 공간 내에서 냉장고/식탁/의자 등의 객체를 센싱하였다면, 로봇(100)은 자신의 위치를 주방으로 추정할 수 있다.
객체의 조합을 이용하여 의미를 추론하기 위해서, 상기 표 1과 같이 우선 공간 별로 위치할 수 있는 객체들을 구분하였다. 그리고 복수의 공간에 동시에 존재할 수 있는 벽시계, 의자 등과 같은 객체들은 가중치를 낮춰서 의미를 추론한다. 이외에도 공간을 추론할 수 있는 객체들은 사용자의 정의에 따라 다양하게 변경될 수 있다.
도 11은 본 발명의 실시예에 따른 공간 분할의 예시도이다.
도 11에 도시된 바와 같이, 로봇(100)이 집안을 돌아다니면서 작성한 전역 지도는, 객체 인식 결과로 획득한 기준 객체를 기준으로 3개의 영역으로 분할될 수 있다. 본 발명의 실시예에서는 기준 객체를 "문"을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
각각의 영역 내에는 로봇(100)이 인식한 적어도 하나 이상의 객체들이 위치하며, 이들 정보는 상기 도 2의 제2 계층에 저장되어 있다.
영역 1에서 로봇(100)이 인식한 객체 리스트는 냉장고, 오븐, 전자레인지, 식탁에 해당한다고 가정한다. 그러면, 공간 정보 제공 서버(200)는 영역 1을 구성하는 객체들의 공간 내 위치를 인식한 후, 공간을 부엌이라고 추정한 후 라벨링을 수행한다.
이와 마찬가지로, 영역 2에서 로봇(100)은 침대, 거울, 옷장을 객체로 인식하였다고 가정한다. 그러면, 공간 정보 제공 서버(200)는 영역 2를 침실로 추정하여 라벨링을 수행한다.
또한, 영역 3에서 로봇(100)은 소파, 탁자, TV를 인식하였다고 가정한다. 그러면, 공간 정보 제공 서버(200)는 영역 3을 거실로 추정하여 라벨링한다.
이를 통해, 로봇(100)은 사용자에게 향상된 자율주행 서비스를 제공할 수 있으며, 객체 중심으로 이동하거나 사용자가 요청한 객체를 수집할 수 있다. 예를 들어 댁내에 사용자가 공간에 대한 사전 설정이 없이 “거실로 가”라는 명령을 로봇(100)에 입력하였을 때, 로봇(100)은 공간 내에 객체 인식 결과를 통해 거실 공간을 추정하여 이동할 수 있다. 이는 호텔 서비스 로봇에도 적용할 수 있는데, 호텔 로비나 식당, 비품실, 엘리베이터 탑승 공간, 비상구 등 공간에 대한 수동적인 좌표 인식 없이, 로봇(100)이 지도를 작성하여 객체들의 특성을 통해 공간을 라벨링할 수 있다.
다음은 공간 정보 제공 서버(200)에서 생성한 의미적 공간 지능을 구성하는 정보 구조에 대해 도 12를 참조로 설명한다.
도 12는 본 발명의 실시예에 따른 의미적 공간 지능을 구성하는 정보 구조의 예시도이다.
본 발명의 실시예에 따른 공간 정보는 라벨링된 공간(Labeled space), 전역 위치(Global pose), 기준 객체 위치(Door pose), 그리고 객체(Object)로 구성된다. 도 12의 (a)에 도시된 바와 같이, 기준 객체 위치를 기준으로 공간 정보 제공 서버(200)는 전역 지도를 복수의 공간으로 분할하고, 각각의 공간에 라벨링을 한다.
본 발명의 실시예에 따라 문을 기준으로 예를 들어 설명하면, 도면 12의 (b)와 같이 트리 형태로 로봇(100)이 데이터를 수집한다. 그리고 객체에 대한 정보들의 변경 사항이 있을 때, 공간 정보 제공 서버(200)로 변경된 정보를 전송한다.
로봇(100)이 전역 지도를 작성하면서 객체를 인식하고 객체의 위치 정보인 좌표를 저장하기 위해서는, 로봇(100)에 이를 제어하기 위한 모듈이 필요하다. 의미적 공간 지능을 위해, 본 발명의 실시예에 따른 공간 정보 제공 서버(200)와 로봇(100) 내에는 로봇 컨트롤러와 객체 인식 어플리케이션이 소프트웨어 모듈로 설치된다.
로봇 컨트롤러 및 객체 인식 어플리케이션은 로봇(100)의 운영체제에 설치되어 구동되며, 객체 인식 범위에 따라 로봇(100) 내에 포함된 데이터베이스는 공간 정보 제공 서버(200)와 연결될 수 있다.
로봇 컨트롤러에서는 로봇(100)의 센싱 및 제어를 수행하며, 로봇(100)이 충전 스테이션(도면, 미도시)에서 벗어나면 객체 인식 어플리케이션을 실행한다. 객체 인식 어플리케이션에 의해 객체가 검출되면, 로봇 컨트롤러는 객체의 식별 정보와 바운딩 박스 정보, 시간 정보를 획득한다.
로봇 컨트롤러가 객체 인식 어플리케이션에서 정보를 획득하면, 획득한 정보를 공간 정보 제공 서버(200)로 전송한다. 공간 정보 제공 서버(200)는 실시간으로 로봇(100)으로부터 전송되는 지도 갱신 및 로봇(100)의 위치 정보를 수집한다. 그리고 로봇 컨트롤러에서 객체 인식 결과를 획득하면, 타임 스탬프(timestamp) 정보를 통해 객체를 인식한 시간의 로봇 위치 정보를 가져온다.
여기서, 타임 스탬프 정보는 로봇 컨트롤러가 객체 인식 결과 메시지를 만들 때 헤더에 포함한다. 헤더 정보에 타임 스탬프 정보를 삽입하는 것은 이미 알려진 기술로, 객체를 인식할 때 시간 정보를 메시지 헤더에 기록하는 것과 같다. 이와 마찬가지로 로봇(100)은 자신의 위치 정보도 시간과 같이 기록하여, 로봇이 어떤 장소에서 어떤 객체를 인식하였는지 시간과 메시지 내용으로 알 수 있게 된다. 이를 타임 스탬프 정보라 한다.
공간 정보 제공 서버(200)는 로봇 위치 정보에서 수집한 3D 포인트 클라우드에 객체 인식 결과의 바운딩 박스를 투영시켜, 제2 정보 수집 수단(120)과 객체간 거리를 추정한다.
제2 정보 수집 수단(120)과 객체 사이의 거리 데이터를 획득하면, 공간 정보 제공 서버(200)는 공간상에서 객체 좌표를 추정할 수 있다. 획득한 객체 좌표가 어느 공간의 좌표인지 식별된 라벨링된 공간 정보를 추가하여, 로봇 컨트롤러로 전송한다.
로봇 컨트롤러는 해당 객체 좌표 정보를 통해 중복된 객체인지 판단하고, 새로운 정보를 획득하면 공간 정보 제공 서버(200)에 전송하여 새롭게 공간 정보를 업데이트 한다. 로봇 컨트롤러는 SLAM을 제어하기 위해 ROS(Robot Operating System)와 같은 미들웨어와 연동될 수 있으며, 로봇(100)의 상태정보에 따라 객체 인식의 실행 및 종료를 관리할 수도 있다.
이와 같이 로봇(100)이 전체 지도를 작성하고, 기준 객체인 문의 위치에 따라 영역을 분할한 후, 임의의 영역에서 객체가 인식되면 해당 영역을 반복적으로 주행하면서, 로봇(100)의 위치를 재인식하는 상황이 발생할 수 있다. 그리고 로봇(100)은 주행 중 예상치 못한 상황에 의하여 현재 위치를 추정할 수 없거나 다시 처음부터 주행을 해야 하는 경우가 발생하기도 한다.
이 때 로봇(100)의 위치를 추정하기 위하여 주행을 했던 지도를 바탕으로 위치를 재인식해야 한다. 일반적으로 사용되는 기존의 파티클 필터(particle filter) 기반의 위치 재인식의 경우 이전의 그리드 지도 전체를 가지고 있어야 한다. 또한, 로봇(100)이 현재 위치를 추정할 수 있을 정도의 현재 위치 확률이 보장될 때까지 주행해야만 현재의 위치를 추정할 수 있어서 한계가 있다.
이 외에도 그래프 기반 SLAM의 위치 재인식 기술이 있다. 이는 전체 서브 지도 중 현재 위치와 가장 유사한 서브 지도를 찾아 서브 지도들을 매칭하여 현재 위치를 추정하기 때문에, 로봇(100)은 모든 서브 지도들을 저장하고 있어야 하고 모든 서브 지도들을 하나씩 서칭해야 하는 불필요한 프로세싱을 수행하게 된다.
본 발명의 실시예에서는 이러한 한계를 극복하기 위하여 시맨틱 요소를 기반으로 한 위치 재인식 알고리즘을 제안한다. 시맨틱 요소를 로봇(100)이 알고 있으면, 그 공간에 존재하는 객체들을 기반으로 현재의 공간을 추정할 수 있다.
만약 같은 물체가 여러 공간에 위치를 하고 있다면, 우선 동일한 사물이 있는 복수의 공간들을 후보로 지정한다. 그리고 후보 공간들 중 제1 정보 수집 수단(110)에서 수집한 정보와, 시맨틱 정보의 벽면 데이터(wall data)를 비교하여 가장 유사한 형태를 가지는 공간을 현재 위치로 추정한다. 로봇(100)이 층간 주행을 하는 경우 유사한 형태를 가지는 공간이 많기 때문에, 현재 층부터 식별 후 해당 층의 다수의 공간을 후보로 지정한 후 현재 위치를 추정하는 절차를 수행한다.
본 발명의 실시예에서는 현재 제1 정보 수집 수단(110)의 정보와 벽면 데이터의 유사성을 검토하기 위하여, ICP(Iterative Closest Point) 알고리즘을 사용하였다. ICP 알고리즘은 데이터와 데이터 간의 유사도 및 데이터 간의 위치 차이를 추정할 수 있는 알고리즘으로, 시맨틱 요소에서의 공간 데이터와 제1 정보 수집 수단(110)이 수집한 데이터의 위치 차이를 추정할 수 있다. 최종적으로 선택된 공간에서의 로봇(100)의 위치도 정확하게 추정할 수 있다.
여기서, 제1 정보 수집 수단(110)이 수집한 데이터와 벽면 정보에 대해 도 13을 참조로 설명한다.
도 13은 본 발명의 실시예에 따른 수집 데이터와 벽면 데이터의 예시도이다.
도 13의 (a)는 제1 정보 수집 수단(110)이 수집한 데이터에 따른 공간 정보이고, 도 13의 (b)는 기 작성된 벽면 정보를 나타낸 예시도이다.
로봇(100)이 임의의 공간을 주행하면서 공간 정보를 수집하다가 위치 재인식이 필요한 경우, 도 13의 (b)와 같이 기존에 로봇(100)에 저장된 벽면 데이터와 비교한다. 이때 시맨틱 정보인 객체 인식 정보가 있으면, 도 13의 (b)와 같이 비교할 벽면 데이터를 불러오기 전에, 비교할 대상 서브 지도를 간소화할 수 있다. 이는 로봇(100)이 서브 지도 정보와 객체 정보를 동시에 지니고 있기 때문이다.
다음은 로봇(100)이 자율 주행으로 인식한 각 영역의 객체 정보와 영역 인식결과에 대해 도 14를 참조로 설명한다.
도 14는 본 발명의 실시예에 따른 각 영역의 객체 정보 및 영역 인식 결과를 나타낸 예시도이다.
도 14에 도시된 바와 같이, 로봇(100)은 하위 지도(Sub map)에 포함된 객체들의 정보 및 그 정보를 기반으로 영역을 인식한다. 그리고 인식한 영역의 의미를 추론한다.
영역과 객체에 대한 정보를 기반으로 특정 객체나 공간을 라벨링하여, 로봇(100)의 주행을 위한 목적지로 활용할 수 있다. 이를 토대로, 사람과 같이 로봇(100)이 거실로 이동하거나, 손님과 같이 객실로 이동하거나, 특정 목적지로 이동하는 등 특정 공간의 의미로 로봇 네비게이션을 지능화 할 수 있다.
도 15는 본 발명의 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
도 15를 참고하면, 의미적 공간 지능을 통해 서비스를 제공하는 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(300)에서, 본 발명의 동작을 실행하도록 기술된 명령들(instructions)이 포함된 프로그램을 실행한다. 프로그램은 컴퓨터 판독 가능한 저장매체에 저장될 수 있고, 유통될 수 있다. 여기서, 컴퓨팅 장치(300)는 로봇(100)이 될 수도 있고, 공간 정보 제공 서버(200)가 될 수도 있다.
컴퓨팅 장치(300)의 하드웨어는 적어도 하나의 프로세서(310), 메모리(320), 스토리지(330), 통신 인터페이스(340)를 포함할 수 있고, 버스를 통해 연결될 수 있다. 이외에도 입력 장치 및 출력 장치 등의 하드웨어가 포함될 수 있다. 컴퓨팅 장치(300)는 프로그램을 구동할 수 있는 운영 체제를 비롯한 각종 소프트웨어가 탑재될 수 있다.
프로세서(310)는 컴퓨팅 장치(300)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다.
메모리(320)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(310)에 의해 처리되도록 해당 프로그램을 로드한다. 메모리(330)는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다. 스토리지(330)는 본 발명의 동작을 실행하는데 요구되는 각종 데이터, 프로그램 등을 저장한다. 통신 인터페이스(340)는 유/무선 통신 모듈일 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (9)

  1. 자율주행 로봇과 연동하며 적어도 하나의 프로세서에 의해 동작하는 서버가 상기 로봇에 제공할 의미적 공간 지능을 생성하는 방법으로서,
    상기 로봇이 공간을 주행하며 생성한 로컬 지도를 기초로, 전역 지도로부터 적어도 하나의 군집화 된 객체들이 포함되도록 분할 공간을 생성하는 단계,
    복수의 공간들과 각 공간에 복수의 객체들이 매핑되어 정의된 공간 목록을 기초로, 상기 분할 공간을 상기 복수의 공간들 중 어느 하나의 공간으로 라벨링하는 단계, 그리고
    라벨링된 공간 정보를 상기 의미적 공간 지능에 저장하여, 상기 로봇이 주행하는 상기 분할 공간을 추정하도록 제공하는 단계
    를 포함하는, 의미적 공간 지능 생성 방법.
  2. 제1항에 있어서,
    상기 의미적 공간 지능은,
    상기 전역 지도와 로컬 지도가 저장되는 제1 계층, 상기 로봇이 인식한 객체 정보를 저장하는 제2 계층, 그리고 상기 분할 공간에 라벨링된 정보가 저장되는 제3 계층으로 구성되는, 의미적 공간 지능 생성 방법.
  3. 제1항에 있어서,
    상기 분할 공간을 생성하는 단계는,
    미리 설정한 기준 객체의 좌표를 기준으로, 상기 전역 지도가 작성된 공간을 복수의 영역으로 분할하여 분할 공간들을 생성하는 단계
    를 포함하는, 의미적 공간 지능 생성 방법.
  4. 제2항에 있어서,
    공간의 주행 가능 영역과 주행 불가능 영역을 표시하는 상기 전역 지도를 상기 로봇에 전송하는 단계,
    상기 주행 가능 영역에 위치한 적어도 하나의 객체를 인식한 객체 인식 정보와, 상기 객체를 인식한 위치의 상기 로컬 지도를 상기 로봇으로부터 수신하는 단계, 그리고
    상기 객체 인식 정보를 상기 제2 계층에 저장하는 단계
    를 포함하는, 의미적 공간 지능 생성 방법.
  5. 제4항에 있어서,
    상기 객체 인식 정보는, 상기 적어도 하나의 객체의 객체 식별 정보와 상기 객체의 2차원 위치 정보인 바운딩 박스 정보를 포함하는, 의미적 공간 지능 생성 방법.
  6. 자율주행 로봇과 연동하여 상기 자율주행 로봇이 객체를 인식하도록 의미적공간 지능을 생성하는 공간 정보 제공 서버로서,
    프로세서, 그리고
    의미적 공간 지능을 생성하는 프로그램이 저장된 메모리
    를 포함하고,
    상기 프로세서는,
    상기 로봇이 공간을 주행하며 생성한 로컬 지도를 기초로, 상기 공간에 대한 전역 지도로부터 적어도 하나의 군집화 된 객체들이 포함되도록 주행 가능한 분할 공간을 생성하고, 복수의 공간들과 각 공간에 복수의 객체들이 매핑되어 정의된 공간 목록을 기초로 상기 분할 공간을 상기 복수의 공간들 중 어느 하나의 공간으로 라벨링하여 상기 의미적 공간 지능을 생성하는, 공간 정보 제공 서버.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 로봇의 주행을 토대로 생성된 로컬 지도, 그리고 상기 주행 가능 영역에서 인식한 객체들의 객체 인식 정보를 상기 공간에서 상기 로봇의 주행 가능 영역과 주행 불가능 영역을 표시하는 상기 전역 지도에 투영하여 상기 의미적 공간 지능으로 생성하는, 공간 정보 제공 서버.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 객체의 위치 정보인 바운딩 박스 정보와 상기 로봇이 수집한 객체 인식 정보를 토대로 생성된 3차원 포인트 클라우드를 기초로 상기 로봇에서 상기 객체까지의 거리를 계산하고,
    계산한 거리와 상기 로봇의 위치 정보를 결합하여, 상기 로컬 지도에 상기 객체의 위치 정보를 매핑한 후 전역 지도의 좌표로 변환하는, 공간 정보 제공 서버.
  9. 제8항에 있어서,
    상기 의미적 공간 지능은,
    상기 전역 지도와 로컬 지도가 저장되는 제1 계층, 상기 객체 인식 정보를 저장하는 제2 계층, 그리고 상기 분할 공간에 라벨링된 정보가 저장되는 제3 계층으로 구성되는, 공간 정보 제공 서버.
KR1020220159642A 2020-02-20 2022-11-24 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법 KR102537364B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220159642A KR102537364B1 (ko) 2020-02-20 2022-11-24 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200020964A KR102472176B1 (ko) 2020-02-20 2020-02-20 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법
KR1020220159642A KR102537364B1 (ko) 2020-02-20 2022-11-24 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200020964A Division KR102472176B1 (ko) 2020-02-20 2020-02-20 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법

Publications (2)

Publication Number Publication Date
KR20220163911A KR20220163911A (ko) 2022-12-12
KR102537364B1 true KR102537364B1 (ko) 2023-05-30

Family

ID=77502125

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200020964A KR102472176B1 (ko) 2020-02-20 2020-02-20 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법
KR1020220159642A KR102537364B1 (ko) 2020-02-20 2022-11-24 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200020964A KR102472176B1 (ko) 2020-02-20 2020-02-20 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법

Country Status (1)

Country Link
KR (2) KR102472176B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7274782B1 (ja) * 2021-12-10 2023-05-17 株式会社 Sai 建屋内構造物認識システム及び建屋内構造物認識方法
JP2024071949A (ja) * 2022-11-15 2024-05-27 キヤノン株式会社 地図データ生成装置、移動体管理装置、地図データ生成プログラム、移動体管理プログラム、地図データ生成方法及び移動体管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016081327A (ja) 2014-10-17 2016-05-16 村田機械株式会社 移動量推定装置、自律移動体、及び移動量の推定方法
JP2019121365A (ja) 2018-01-05 2019-07-22 アイロボット・コーポレーション モバイル清掃ロボットの協同および永続マッピング

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100917377B1 (ko) * 2007-03-30 2009-09-16 성균관대학교산학협력단 인식/추론 수준에 따른 계층적 구조의 실내 정보를 가지는서비스 로봇의 중앙 정보처리 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016081327A (ja) 2014-10-17 2016-05-16 村田機械株式会社 移動量推定装置、自律移動体、及び移動量の推定方法
JP2019121365A (ja) 2018-01-05 2019-07-22 アイロボット・コーポレーション モバイル清掃ロボットの協同および永続マッピング

Also Published As

Publication number Publication date
KR20220163911A (ko) 2022-12-12
KR102472176B1 (ko) 2022-11-28
KR20210106162A (ko) 2021-08-30

Similar Documents

Publication Publication Date Title
KR102537364B1 (ko) 자율주행 로봇, 자율주행 로봇의 위치 추정 서버 및 이를 이용한 자율주행 로봇의 위치 추정 방법
US11816907B2 (en) Systems and methods for extracting information about objects from scene information
US20240142240A1 (en) Methods for finding the perimeter of a place using observed coordinates
Borrmann et al. A mobile robot based system for fully automated thermal 3D mapping
Adán et al. An autonomous robotic platform for automatic extraction of detailed semantic models of buildings
CN108801268B (zh) 目标对象的定位方法、装置及机器人
JP5380789B2 (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN115393386B (zh) 三维场景图的生成方法、装置、设备及可读存储介质
KR20210029586A (ko) 이미지 내의 특징적 객체에 기반하여 슬램을 수행하는 방법 및 이를 구현하는 로봇과 클라우드 서버
Kwon et al. Building 3D visual maps of interior space with a new hierarchical sensor fusion architecture
CN112015187A (zh) 一种用于智能移动机器人的语义地图构建方法及系统
Díaz Vilariño et al. Scan planning and route optimization for control of execution of as-designed BIM
Tsuru et al. Online object searching by a humanoid robot in an unknown environment
WO2022128896A1 (en) Method and apparatus for multiple robotic devices in an environment
KR102400512B1 (ko) 의미 지도 제작 시스템 및 방법
Langer et al. On-the-fly detection of novel objects in indoor environments
US20240004388A1 (en) Method and system for navigation of robot from one area to another area
An et al. Ceiling vision-based active SLAM framework for dynamic and wide-open environments
KR20240013706A (ko) 자기 위치 측정이 가능한 로봇 및 위치 측정 방법
KR102292733B1 (ko) 복수의 이동 로봇의 자율 주행을 위한 비동기 분산 방식의 인공지능 모델 할당 시스템 및 그 방법
Manfredi et al. Autonomous apartment exploration, modelling and segmentation for service robotics
Hughes Hydra: A Spatial Perception Engine for Constructing and Optimizing 3D Scene Graphs in Real-time
Marginean et al. A Distributed Processing Architecture for Vision Based Domestic Robot Navigation
CN117804420A (zh) 一种基于多层地图的机器人导航方法及系统
CN117308974A (zh) 一种地图生成方法、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
GRNT Written decision to grant