KR102333612B1 - 객체 정보에 기초하여 맵을 생성하는 서버 및 방법 그리고 맵에 따라 주행하는 이동 로봇 - Google Patents

객체 정보에 기초하여 맵을 생성하는 서버 및 방법 그리고 맵에 따라 주행하는 이동 로봇 Download PDF

Info

Publication number
KR102333612B1
KR102333612B1 KR1020200034539A KR20200034539A KR102333612B1 KR 102333612 B1 KR102333612 B1 KR 102333612B1 KR 1020200034539 A KR1020200034539 A KR 1020200034539A KR 20200034539 A KR20200034539 A KR 20200034539A KR 102333612 B1 KR102333612 B1 KR 102333612B1
Authority
KR
South Korea
Prior art keywords
map
basic
pose graph
generating
mobile robot
Prior art date
Application number
KR1020200034539A
Other languages
English (en)
Other versions
KR20210117797A (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 KR1020200034539A priority Critical patent/KR102333612B1/ko
Publication of KR20210117797A publication Critical patent/KR20210117797A/ko
Application granted granted Critical
Publication of KR102333612B1 publication Critical patent/KR102333612B1/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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • 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/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

Landscapes

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

Abstract

객체 정보에 기초하여 맵을 생성하는 서버는, 특정 장소를 주행하는 이동 로봇으로부터 상기 특정 장소 내의 특정 위치에서의 포즈(pose) 정보를 수집하는 포즈 정보 수집부, 상기 수집된 이동 로봇의 포즈 정보에 기초하여 상기 특정 장소 내에 위치하는 복수의 기본 노드 및 상기 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)를 생성하는 기본 포즈 그래프 생성부, 상기 이동 로봇으로부터 카메라를 통해 촬영된 영상을 수신하는 영상 수신부, 상기 수신한 영상 및 상기 기본 포즈 그래프에 기초하여 상기 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프를 생성하는 레이어드 포즈 그래프 생성부 및 상기 기본 포즈 그래프 및 상기 적어도 하나의 레이어드 포즈 그래프에 기초하여 상기 특정 장소에 대한 맵을 생성하는 맵 생성부를 포함한다.

Description

객체 정보에 기초하여 맵을 생성하는 서버 및 방법 그리고 맵에 따라 주행하는 이동 로봇{SERVER AND METHOD FOR GENERATING MAP BASED ON OBJECT DATA AND ROBOT MOVING BASED ON OBJECT MAP}
본 발명은 객체 정보에 기초하여 맵을 생성하는 서버 및 방법 그리고 맵에 따라 주행하는 이동 로봇에 관한 것이다.
SLAM(Simulation Language for Alternative Modeling)이란 사건 중심 또는 프로세스 중심 방식의 시뮬레이션 언어로, 노드(node)들의 표준 기호들과 가지(branch)들을 사용하여 시스템을 상호 연결된 네트워크 구조로 표현하는 언어이다. SLAM의 모델은 사건이나 프로세스를 이용한 이산형 모델, 미분 방정식을 포함하는 연속형 모델, 모든 요소들을 이용한 혼합형 모델을 포함한다.
최근의 SLAM 기술은 이동 로봇에 적용되어 이동 로봇이 미지의 환경을 돌아다니면서 이동 로봇에 부착된 센서만으로 외부의 도움 없이 환경에 대한 정확한 지도를 작성할 수 있도록 함으로써, 자율 주행을 위한 핵심 기술로 이용되고 있다.
이러한 SLAM 기술과 관련하여, 선행기술인 한국등록특허 제 10-1739996호는 이동 로봇 및 이동 로봇의 위치 인식 및 지도 작성 방법을 개시하고 있다.
종래의 SLAM 기술은 '주행'에만 초점이 맞춰져 있어, '의미'와는 무관한 주행이 수행되었다. 의미 기반의 주행 기술이란, 주변 환경의 유사성 계산 및 장애물 감지를 수행하는 것이 아닌, 주변 환경에 존재하는 물체가 무엇인지를 계산하고, 무엇에 대한 행위를 수행하도록 하는 주행 기술을 의미한다.
그러나 의미 기반의 주행 기술의 경우, 이동 로봇이 주행할 경로 이외의 주변 환경 변화를 감지하고, 감지된 환경 변화에 따라 대응하기 어렵다는 단점을 가지고 있었다. 또한, 맵이 생성된 이후에 이동 로봇의 주행과 무관한 객체가 생성 및 소멸된 경우, 이동 로봇이 이에 대해 대응하기 어렵다는 단점을 가지고 있었다.
특정 장소를 주행하는 이동 로봇으로부터 특정 장소 내의 특정 위치에서의 포즈 정보를 수집하고, 수집한 이동 로봇의 포즈 정보에 기초하여 특정 장소 내에 위치하는 복수의 기본 노드 및 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프를 생성하는 서버, 방법 및 이동 로봇을 제공하고자 한다.
이동 로봇으로부터 카메라를 통해 촬영된 영상을 수신하고, 수신한 영상 및 기본 포즈 그래프에 기초하여 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프를 생성하는 서버, 방법 및 이동 로봇을 제공하고자 한다.
기본 포즈 그래프 및 적어도 하나의 레이어드 포즈 그래프에 기초하여 특정 장소에 대한 맵을 생성하는 서버, 방법 및 이동 로봇을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 수단으로서, 본 발명의 일 실시예는, 특정 장소를 주행하는 이동 로봇으로부터 상기 특정 장소 내의 특정 위치에서의 포즈(pose) 정보를 수집하는 포즈 정보 수집부, 상기 수집된 이동 로봇의 포즈 정보에 기초하여 상기 특정 장소 내에 위치하는 복수의 기본 노드 및 상기 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)를 생성하는 기본 포즈 그래프 생성부, 상기 이동 로봇으로부터 카메라를 통해 촬영된 영상을 수신하는 영상 수신부, 상기 수신한 영상 및 상기 기본 포즈 그래프에 기초하여 상기 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프를 생성하는 레이어드 포즈 그래프 생성부 및 상기 기본 포즈 그래프 및 상기 적어도 하나의 레이어드 포즈 그래프에 기초하여 상기 특정 장소에 대한 맵을 생성하는 맵 생성부를 포함하는 맵 생성 서버를 제공할 수 있다.
본 발명의 다른 실시예는, 특정 장소를 주행하는 이동 로봇에 대해 특정 위치에서의 포즈 정보를 측정하는 측정부, 카메라를 이용하여 상기 특정 위치에 대한 영상을 촬영하는 촬영부, 상기 측정된 특정 위치에서의 포즈 정보 및 상기 촬영된 영상을 맵 생성 서버로 전송하는 전송부, 상기 맵 생성 서버로부터 상기 특정 위치에서의 포즈 정보 및 상기 촬영된 영상에 포함된 객체 정보에 기초하여 생성된 상기 특정 장소에 대한 맵을 수신하는 수신부 및 상기 수신한 맵에 기초하여 상기 특정 장소를 주행하도록 제어하는 제어부를 포함하고, 상기 이동 로봇의 포즈 정보에 기초하여 특정 장소 내에 위치하는 복수의 기본 노드 및 상기 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)가 생성되고, 상기 영상 및 상기 기본 포즈 그래프에 기초하여 상기 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프가 생성되고, 상기 기본 포즈 그래프 및 상기 적어도 하나의 레이어드 포즈 그래프에 기초하여 상기 특정 장소에 대한 맵이 생성되는 것인 이동 로봇을 제공할 수 있다.
본 발명의 또 다른 실시예는, 특정 장소를 주행하는 이동 로봇으로부터 상기 특정 장소 내의 특정 위치에서의 포즈(pose) 정보를 수집하는 단계, 상기 수집된 이동 로봇의 포즈 정보에 기초하여 상기 특정 장소 내에 위치하는 복수의 기본 노드 및 상기 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)를 생성하는 단계, 상기 이동 로봇으로부터 카메라를 통해 촬영된 영상을 수신하는 단계, 상기 수신한 영상 및 상기 기본 포즈 그래프에 기초하여 상기 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프를 생성하는 단계 및 상기 기본 포즈 그래프 및 상기 적어도 하나의 레이어드 포즈 그래프에 기초하여 상기 특정 장소에 대한 맵을 생성하는 단계를 포함하는 것인, 맵 생성 방법.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 이동 로봇이 특정 장소 내에서 기본 포즈 그래프 및 레이어드 포즈 그래프에 기초하여 생성된 맵을 통해 주행하도록 하는 서버, 방법 및 이동 로봇을 제공할 수 있다.
기본 포즈 그래프에 기초하여 객체별 또는 객체의 색상별로 적어도 하나의 레이어드 포즈 그래프를 생성하고, 레이어드 포즈 그래프에 기초하여 주행하도록 하는 제어 정보를 제공하는 서버, 방법 및 이동 로봇을 제공할 수 있다.
사용자로부터 특정 객체에 대한 제어 명령을 입력받은 경우, 특정 객체에 대한 제어 명령에 기초하여 특정 객체로 도달하도록 하기 위한 제어 정보를 이동 로봇으로 제공하는 서버, 방법 및 이동 로봇을 제공할 수 있다.
의미 기반의 주행 기술을 이용하여 이동 로봇을 공간 지능 분야에 활용할 뿐만 아니라, 서버 기반의 공간 지능 적용을 통해 다수의 이동 로봇에게 의미 기반의 공간 지능을 적용하도록 하는 서버, 방법 및 이동 로봇을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 맵 생성 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 맵 생성 서버의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 기본 포즈 그래프를 도시한 예시적인 도면이다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 객체별 레이어드 포즈 그래프를 생성하는 과정을 설명하기 위한 예시적인 도면이다.
도 5는 본 발명의 일 실시예에 따른 레이어드 포즈 그래프를 업데이트하는 과정을 설명하기 위한 예시적인 도면이다.
도 6은 본 발명의 일 실시예에 따른 이동 로봇이 주행할 경로와 관련된 제어 정보를 도출하는 과정을 설명하기 위한 예시적인 도면이다.
도 7은 본 발명의 일 실시예에 따른 맵 생성 서버에서 객체 정보에 기초하여 맵을 생성하는 방법의 순서도이다.
도 8은 본 발명의 일 실시예에 따른 이동 로봇의 구성도이다.
도 9는 본 발명의 일 실시예에 따른 이동 로봇에서 객체 정보에 기초하여 생성된 맵에 따라 주행하는 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 맵 생성 시스템의 구성도이다. 도 1을 참조하면, 맵 생성 시스템(1)은 맵 생성 서버(110) 및 이동 로봇(120)을 포함할 수 있다. 맵 생성 서버(110) 및 이동 로봇(120)은 맵 생성 시스템(1)에 의하여 제어될 수 있는 구성요소들을 예시적으로 도시한 것이다.
도 1의 맵 생성 시스템(1)의 각 구성요소들은 일반적으로 네트워크(network)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 맵 생성 서버(110)는 이동 로봇(120)과 동시에 또는 시간 간격을 두고 연결될 수 있다.
네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.
맵 생성 서버(110)는 특정 장소(130)를 주행하는 이동 로봇(120)으로부터 특정 장소 내의 특정 위치에서의 포즈(pose) 정보를 수집할 수 있다.
맵 생성 서버(110)는 수집된 이동 로봇(120)의 포즈 정보에 기초하여 특정 장소 내에 위치하는 복수의 기본 노드 및 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)를 생성할 수 있다.
맵 생성 서버(110)는 이동 로봇(120)으로부터 카메라를 통해 촬영된 영상을 수신할 수 있다.
맵 생성 서버(110)는 수신한 영상으로부터 특정 장소 내에 위치한 객체를 기정의된 객체 사전을 이용하여 인식하고, 인식된 객체와 관련된 색상 정보를 추출할 수 있다.
맵 생성 서버(110)는 수신한 영상 및 기본 포즈 그래프에 기초하여 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프를 생성할 수 있다. 예를 들어, 맵 생성 서버(110)는 추출된 객체와 관련된 색상 정보를 반영하여 추출된 객체에 대응하는 레이어를 생성할 수 있다. 구체적으로, 맵 생성 서버(110)는 추출된 객체의 클래스(Class)에 할당된 색상 정보를 이용하여 추출된 객체에 대응하는 레이어를 생성할 수 있다. 여기서, 레이어드 포즈 그래프는 복수의 기본 노드 및 적어도 하나의 기본 엣지에 기초하여 복수의 서브 노드 및 복수의 서브 노드 간을 연결하는 적어도 하나의 서브 엣지를 포함할 수 있다.
맵 생성 서버(110)는 영상에 포함된 적어도 둘 이상의 프레임에서 객체의 클래스와 동일한 클래스가 존재하는지 여부에 기초하여 레이어 상에 적어도 하나의 레이어드 포즈 그래프를 생성할 수 있다.
예를 들어, 맵 생성 서버(110)는 객체의 클래스와 동일한 클래스의 객체가 존재하는 경우, 기본 포즈 그래프에 기초하여 레이어 상에 객체의 존재 여부가 반영된 제 1 서브 노드 및 제 1 서브 노드 간을 연결하는 제 1 서브 엣지를 생성할 수 있다.
다른 예를 들어, 맵 생성 서버(110)는 객체의 클래스와 다른 클래스의 다른 객체가 존재하는 경우, 다른 객체와 관련된 색상 정보를 반영하여 다른 객체에 대응하는 신규 레이어를 생성할 수 있다. 예를 들어, 맵 생성 서버(110)는 다른 객체의 클래스(Class)에 할당된 색상 정보를 이용하여 다른 객체에 대응하는 레이어를 생성할 수 있다. 이후, 맵 생성 서버(110)는 기본 포즈 그래프에 기초하여 생성된 신규 레이어 상에 다른 객체의 존재 여부가 반영된 제 2 서브 노드 및 제 2 서브 노드 간을 연결하는 제 2 서브 엣지를 생성할 수 있다.
맵 생성 서버(110)는 기본 포즈 그래프 및 적어도 하나의 레이어드 포즈 그래프에 기초하여 특정 장소에 대한 맵을 생성할 수 있다. 이 때, 맵 생성 서버(110)는 생성된 적어도 하나의 레이어드 포즈 그래프에 대해 불필요한 적어도 하나의 서브 노드 및 서브 엣지가 제거되도록 최적화를 수행할 수 있다.
맵 생성 서버(110)는 생성된 특정 장소에 대한 맵에 기초하여 이동 로봇(120)이 주행할 경로와 관련된 제어 정보를 이동 로봇(120)으로 제공할 수 있다.
맵 생성 서버(110)는 이동 로봇(120)으로부터 입력된 제어 명령을 수신한 경우, 수신한 제어 명령으로부터 특정 객체 및 특정 객체와 관련된 색상 정보를 도출하고, 도출된 특정 객체와 관련된 색상 정보에 대응하는 레이어를 도출할 수 있다. 예를 들어, 맵 생성 서버(110)는 추출된 특정 객체의 클래스(Class)에 할당된 색상 정보에 대응하는 레이어를 도출할 수 있다. 이후, 맵 생성 서버(110)는 특정 객체와 관련된 색상 정보에 대응하는 레이어에 포함된 특정 서브 노드 및 특정 서브 노드 간을 연결하는 특정 서브 엣지에 대한 리스트를 도출할 수 있다.
맵 생성 서버(110)는 도출된 리스트에 기초하여 특정 객체로 도달하기 위한 경로에 대응하는 제어 정보를 생성하고, 생성된 제어 정보를 이동 로봇(120)으로 제공할 수 있다.
이동 로봇(120)은 특정 장소를 주행하는 이동 로봇(120)에 대해 특정 위치에서의 포즈 정보를 측정할 수 있다. 예를 들어, 이동 로봇(120)은 이동 로봇(120)에 내장된 라이다 센서(LiDAR sensor)를 이용하여 특정 장소(130) 내의 공간을 스캔하고, 스캔된 공간에 대해 이동 로봇(120)이 위치한 특정 위치에서의 2차원 좌표 및 각도를 포함하는 포즈 정보를 측정할 수 있다. 라이다 센서는 레이저를 목표물에 비춰 사물과의 거리 및 다양한 물성을 감지할 수 있도록 하는 센서로, 주변 사물, 지형 등을 감지하여 이를 3D 영상으로 모델링할 수 있다. 이러한 라이다 센서는 이동 로봇(120)의 자율주행을 위해 이용되고 있다.
이동 로봇(120)은 카메라를 이용하여 특정 위치에 대한 영상을 촬영할 수 있다.
이동 로봇(120)은 측정된 특정 위치에서의 포즈 정보 및 촬영된 영상을 맵 생성 서버(110)로 전송할 수 있다.
이동 로봇(120)은 맵 생성 서버(110)로부터 특정 위치에서의 포즈 정보 및 영상에 포함된 객체 정보에 기초하여 생성된 특정 장소에 대한 맵을 수신할 수 있다.
이동 로봇(120)은 맵 생성 서버(110)로부터 생성된 특정 장소에 대한 맵에 기초하여 이동 로봇(120)이 주행할 경로와 관련된 제어 정보를 수신할 수 있다.
이동 로봇(120)은 사용자로부터 특정 객체에 대한 제어 명령을 입력받을 수 있다.
이동 로봇(120)은 입력된 제어 명령을 맵 생성 서버(110)로 전송할 수 있다. 이 때, 이동 로봇(120)은 맵 생성 서버(110)로부터 제어 명령에 기초하여 특정 객체와 관련된 제어 정보를 수신할 수 있다.
이동 로봇(120)은 수신한 맵에 기초하여 특정 장소를 주행하도록 제어할 수 있다. 예를 들어, 이동 로봇(120)은 특정 장소(130) 내에서 특정 객체로 주행하도록 제어할 수 있다.
이러한 이동 로봇(120)은 라이다 센서, 초음파 센서, 뎁스 카메라(depth camera), IMU, 5G 모뎀, 휠 인코더(wheel encoder), 모터 등을 포함하도록 구성될 수 있다.
도 2는 본 발명의 일 실시예에 따른 맵 생성 서버의 구성도이다. 도 2를 참조하면, 맵 생성 서버(110)는 포즈 정보 수집부(210), 기본 포즈 그래프 생성부(220), 영상 수신부(230), 객체 추출부(240), 레이어드 포즈 그래프 생성부(250), 맵 생성부(260), 제어 정보 제공부(270), 제어 명령 수신부(280) 및 도출부(290)를 포함할 수 있다.
포즈 정보 수집부(210)는 특정 장소(130)를 주행하는 이동 로봇(120)으로부터 특정 장소(130) 내의 특정 위치에서의 포즈(pose) 정보를 수집할 수 있다. 여기서, 포즈 정보는 특정 위치에서의 이동 로봇(120)의 좌표 정보 및 방향 정보 등을 포함할 수 있다. 포즈 정보(Pose=(x, h))는 예를 들어, x가 3차원 실수 공간의 점을 나타내고, h는가 해밀턴(Hamilton) 4원수를 나타내어 3차원 상의 방향이 나타내어지도록 할 수 있다.
기본 포즈 그래프 생성부(220)는 수집된 이동 로봇(120)의 포즈 정보에 기초하여 특정 장소(130) 내에 위치하는 복수의 기본 노드 및 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)를 생성할 수 있다. 기본 포즈 그래프를 생성하는 과정에 대해서는 도 3을 통해 상세히 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 기본 포즈 그래프를 도시한 예시적인 도면이다. 도 3을 참조하면, 기본 포즈 그래프 생성부(220)는 포즈 정보에 기초하여 특정 장소(130) 내에 위치하는 복수의 기본 노드 및 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(300)를 생성할 수 있다.
예를 들어, 기본 포즈 그래프 생성부(220)는 이동 로봇(120)이 특정 장소(130)를 이동하면서 수집한 포즈 정보에 기초하여 특정 장소(130) 내의 특정 위치에 대응하는 제 1 기본 노드(301) 및 제 2 기본 노드(302)를 생성하고, 제 1 기본 노드(301) 및 제 2 기본 노드(302) 간을 연결하는 제 1 기본 엣지(310)를 생성할 수 있다. 이러한 과정을 수행함으로써, 기본 포즈 그래프 생성부(220)는 특정 장소(130) 내에서 이동 로봇(120)이 주행 가능한 영역을 표시하는 지리적 그래프(geographical graph)로서 기본 포즈 그래프(300)를 생성할 수 있다.
기본 포즈 그래프(300)의 포즈는 각 위치 및 방향에서의 주변 환경의 검출을 위한 이동 경로를 나타낼 수 있다. 또한, 기본 포즈 그래프(300)는 기본 엣지를 따라 동일 장소로 인식되는가가 나타내어 지게 됨에 따라, 순간적으로 불변하는 특징을 가지고 있다.
다시 도 2로 돌아와서, 영상 수신부(230)는 이동 로봇(120)으로부터 카메라를 통해 촬영된 영상을 수신할 수 있다.
객체 추출부(240)는 수신한 영상으로부터 특정 장소 내에 위치한 객체를 기정의된 객체 사전을 이용하여 인식하고, 인식된 객체와 관련된 색상 정보를 추출할 수 있다. 예를 들어, 객체 추출부(240)는 인식된 객체의 클래스(Class)에 할당된 색상 정보를 추출할 수 있다.
레이어드 포즈 그래프 생성부(250)는 수신한 영상 및 기본 포즈 그래프에 기초하여 특정 장소(130) 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프를 생성할 수 있다. 여기서, 레이어드 포즈 그래프는 복수의 기본 노드 및 적어도 하나의 기본 엣지에 기초하여 복수의 서브 노드 및 복수의 서브 노드 간을 연결하는 적어도 하나의 서브 엣지를 포함할 수 있다.
레이어드 포즈 그래프 생성부(250)는 영상에 포함된 적어도 둘 이상의 프레임에서 객체의 클래스와 동일한 클래스가 존재하는지 여부에 기초하여 레이어 상에 적어도 하나의 레이어드 포즈 그래프를 생성할 수 있다. 여기서, 하나의 서브 엣지는 적어도 둘 이상의 키 프레임(예를 들어, 특정 객체가 영상 내에 존재하다가 사라지는 특정 시점의 프레임)을 통해 특정 장소(130)의 동일한 위치로 인식됨에 따라, 이동 로봇(120)이 물리적 특성에 의해 서브 엣지를 따라 가면서 본 객체가 연속적으로 관찰될 수 있다는 특징을 갖는다. 또한, 이동 로봇(120)의 주행 시, 각 레이어를 수직 이동함에 따라, 의미 기반의 맵 정보가 순차적(sequential)으로 쌓이게 됨으로써, 이동 로봇(120)이 객체 기반의 맵에 대한 의미의 흐름을 이해할 수 있게 된다.
만약, 영상에 포함된 적어도 둘 이상의 프레임에서 각각 다른 객체의 클래스가 7개 검출된 경우, 레이어드 포즈 그래프 생성부(250)는 기본 포즈 그래프에 해당해는 최하위 레이어 상에 7개의 레이어를 추가 생성하여 각 레이어별로 레이어드 포즈 그래프를 생성할 수 있다. 이 때, 맵은 기본 포즈 그래프 및 7개의 레이어드 포즈 그래프를 포함하여 총 8개의 레이어로 구성될 수 있다.
즉, 레이어드 포즈 그래프 생성부(250)는 클래스의 수에 기초하여 클래스별로 레이어를 생성한 후, 레이어드 포즈 그래프를 생성할 수 있다. 여기서, 클래스는 최대 N개로 설정될 수 있으므로, 기본 노드에 해당하는 각 레이어의 점들 또한 최대 N개가 될 수 있다. 예를 들어, A 기본 노드에 해당하는 위치에서 2개의 클래스가 인식된 경우, A 기본 노드에 해당하는 위치에 각 레이어별로 2개의 노드가 생성될 수 있다.
레이어드 포즈 그래프 생성부(250)는 객체의 클래스와 동일한 클래스의 객체가 존재하는 경우, 기본 포즈 그래프에 기초하여 레이어 상에 객체의 존재 여부가 반영된 제 1 서브 노드 및 제 1 서브 노드 간을 연결하는 제 1 서브 엣지를 생성할 수 있다.
레이어드 포즈 그래프 생성부(250)는 이동 로봇(120)이 주행하면서, 특정 클래스에 해당하는 객체(예를 들어, 연필)가 존재하는 경우, 해당 클래스에 해당하는 레이어 상에 제 1 서브 노드를 생성할 수 있다. 이후, 이동 로봇(120)이 주행함에 따라, 이전에는 연필이 인식되었으나, 이후에 연필이 존재하지 않는 것과 같이 객체가 사라지는 키 프레임이 존재하는 경우, 레이어드 포즈 그래프 생성부(250)는 해당 레이어 상에 더 이상의 제 1 서브 노드를 생성하지 않을 수 있다.
레이어드 포즈 그래프 생성부(250)는 2개의 제 1 서브 노드에서 동일한 클래스에 해당하는 객체가 인식된 경우, 해당 2개의 제 1 서브 노드를 제 1 서브 엣지로 연결시킬 수 있다.
만약, 특정 장소(130) 내에서 공가시성(co-visibility)이 존재하지 않더라도, 2개의 제 1 서브 노드를 이용하여 클래스를 찾을 수 있다면, 레이어드 포즈 그래프 생성부(250)는 제 1 서브 엣지로 연결시킴으로써, 기본 포즈 그래프와는 다른 형태의 의미 그래프를 생성할 수 있다. 여기서, 의미 그래프는 기본 포즈 그래프와는 달리 1회성으로 생성되지 않으며, 초기 맵의 생성시 초기 생성될 수 있다.
레이어드 포즈 그래프 생성부(250)는 객체의 클래스와 다른 클래스의 다른 객체가 존재하는 경우, 다른 객체와 관련된 색상 정보를 반영하여 다른 객체에 대응하는 신규 레이어를 생성할 수 있다. 예를 들어, 레이어드 포즈 그래프 생성부(250)는 다른 객체의 클래스(Class)에 할당된 색상 정보를 이용하여 다른 객체에 대응하는 신규 레이어를 생성할 수 있다.
레이어드 포즈 그래프 생성부(250)는 기본 포즈 그래프에 기초하여 생성된 신규 레이어 상에 다른 객체의 존재 여부가 반영된 제 2 서브 노드 및 제 2 서브 노드 간을 연결하는 제 2 서브 엣지를 생성할 수 있다.
객체별로 레이어드 포즈 그래프를 생성하는 과정에 대해서는 도 4a 및 도 4b를 통해 상세히 설명하도록 한다.
도 4a 및 도 4b는 본 발명의 일 실시예에 따른 객체별로 레이어드 포즈 그래프를 생성하는 과정을 설명하기 위한 예시적인 도면이다.
도 4a를 참조하면, 기본 포즈 그래프 생성부(220)는 특정 장소(130) 내에 위치하는 복수의 기본 노드 및 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(400)를 생성할 수 있다. 이 때, 기본 포즈 그래프 생성부(220)는 기본 포즈 그래프(400)의 각 기본 노드 및 각 기본 엣지를 '검정색'으로 나타낼 수 있다.
객체 추출부(240)는 영상으로부터 특정 장소 내에 위치한 제 1 객체를 볼펜으로 인식하고, 레이어드 포즈 그래프 생성부(250)는 추출된 제 1 객체와 관련된 색상 정보를 반영하여 추출된 제 1 객체에 대응하는 레이어를 생성할 수 있다. 예를 들어, 볼펜의 클래스(Class)에 할당된 색상 정보가 '녹색'인 경우, 서브 노드 및 서브 엣지에 '녹색'이 반영되도록 '볼펜'에 대한 제 1 레이어를 생성할 수 있다.
레이어드 포즈 그래프 생성부(250)는 '볼펜'에 해당하는 제 1 객체의 클래스와 동일한 클래스의 객체가 존재하는 경우, 기본 포즈 그래프(400)에 기초하여 레이어 상에 제 1 객체의 존재 여부가 반영된 제 1 서브 노드 및 제 1 서브 노드 간을 연결하는 제 1 서브 엣지를 생성할 수 있다. 예를 들어, 레이어드 포즈 그래프 생성부(250)는 제 1 객체인 '볼펜'과 동일한 클래스의 객체가 존재하는지 여부에 따라, 기본 포즈 그래프에 기초하여 제 1 레이어(410) 상에 제 1 객체의 존재 여부가 반영된 제 1 서브 노드 및 제 1 서브 노드 간을 연결하는 제 1 서브 엣지를 생성할 수 있다.
레이어드 포즈 그래프 생성부(250)는 '볼펜'에 해당하는 제 1 객체의 클래스와 다른 클래스에 해당하는 제 2 객체가 존재하는 경우, 제 2 객체와 관련된 색상 정보를 반영하여 제 2 객체에 대응하는 신규 레이어인 제 2 레이어(420)를 생성할 수 있다. 예를 들어, 객체 추출부(240)는 영상으로부터 특정 장소(130) 내에 위치한 제 2 객체를 '노트'로 인식하고, 레이어드 포즈 그래프 생성부(250)는 추출된 제 2 객체와 관련된 색상 정보를 반영하여 추출된 제 1 객체에 대응하는 레이어를 생성할 수 있다. 예를 들어, 노트의 클래스(Class)에 할당된 색상 정보가 '빨간색'인 경우, 서브 노드 및 서브 엣지에 '빨간색'이 반영되도록 '노트'에 대한 제 2 레이어(420)를 생성할 수 있다.
레이어드 포즈 그래프 생성부(250)는 기본 포즈 그래프(400)에 기초하여 생성된 제2 레이어(420) 상에 제 2 객체의 존재 여부가 반영된 제 2 서브 노드 및 제 2 서브 노드 간을 연결하는 제 2 서브 엣지를 생성할 수 있다.
이러한 과정을 통해, 레이어드 포즈 그래프 생성부(250)는 최하위에 기본 포즈 그래프를 제 0 레이어로 위치시키고, 제 0 레이어 상에 '녹색' 색상이 반영된 제 1 레이어(410)를 위치시키고, 제 1 레이어(410) 상에 '빨간색' 색상이 반영된 제 2 레이어(420)를 위치시킬 수 있다.
도 4b를 참조하면, 기본 포즈 그래프에 해당하는 제 0 레이어에서 기본 엣지는 적어도 둘 이상의 프레임을 통해 공가시성(co-visibility)의 성질을 갖는다. 이러한 성질에 의해 각 객체의 클래스에 따라 해당 객체의 양쪽 노드에서는 해당 객체가 모두 보이게 되어, 동일한 객체의 색상이 양쪽 노드에 표현될 수 있다. 예를 들어, 볼펜에 해당하는 제 1 객체가 제 1 레이어(410)에서 F3에 위치한 경우, F3의 양쪽 노드인 F2 및 F4에서 제 1 객체가 모두 보이게 됨에 따라 제 1 객체의 색상이 양쪽 노드에 표현될 수 있다. 다른 예를 들어, 노트에 해당하는 제 2 객체가 제 2 레이어(420)에서 F2에 위치한 경우, F2의 양쪽 노드인 F1 및 F3에서 제 2 객체가 모두 보이게 됨에 따라 제 2 객체의 색상이 양쪽 노드에 표현될 수 있다. 여기서, 특정 기본 노드로부터 각 레이어를 통해 연결된 컴포넌트는 다수 존재할 수 있다.
그러나 이동 로봇(120)의 주행에 따라 키 프레임이 변하게 되면, 객체는 영상에서 사라지게 되므로, 각 레이어는 제 0 레이어로부터 미연결된 부분 그래프의 형태로 각 레이어별 색상이 표현될 수 있다. 여기서, 생성된 부분 그래프를 최상위 레이어에서 투영하는 경우, 기본 노드가 보여질 수 있다.
다시 도 2로 돌아와서, 맵 생성부(260)는 기본 포즈 그래프 및 적어도 하나의 레이어드 포즈 그래프에 기초하여 특정 장소(130)에 대한 맵을 생성할 수 있다. 맵 생성부(260)는 다음의 수학식 1을 이용하여 이동 로봇(120)의 포즈 정보 및 색상 정보를 추정하여 맵을 생성할 수 있다.
Figure 112020029731154-pat00001
수학식 1을 참조하면, 맵 생성부(260)는 기존의 벡터 공간에서 차원을 하나 추가시켜 독립된 공간의 색상 정보를 다루게 되므로, 기존의 칼만 필터와 함께 추가적인 1차원 칼만 필터를 적용하여 이동 로봇(120)의 포즈 정보 및 색상 정보를 추정하여 맵을 생성할 수 있다.
맵 생성부(260)는 이동 로봇(120)이 주행하면서 촬영한 영상으로부터 주변 환경의 변화를 검출하여 서브 노드 및 서브 엣지를 업데이트할 수 있다.
도 5는 본 발명의 일 실시예에 따른 레이어드 포즈 그래프를 업데이트하는 과정을 설명하기 위한 예시적인 도면이다.
도 5를 참조하면, 레이어드 포즈 그래프 생성부(250)는 '연필'에 대한 초기 레이어드 포즈 그래프(500)를 생성할 수 있다.
이후, 레이어드 포즈 그래프 생성부(250)는 A 서브 노드(510)에 해당하는 위치에서 '연필'이 신규 인식된 경우, A 서브 노드(510) 및 이웃 노드 간의 서브 엣지를 추가 연결하여 맵을 업데이트할 수 있다.
맵 생성부(260)는 기본 포즈 그래프 및 업데이트된 레이어드 포즈 그래프에 기초하여 맵을 업데이트할 수 있다.
이후, 레이어드 포즈 그래프 생성부(250)는 B 서브 노드(520)에 해당하는 위치에서 '연필'의 사라짐을 인식한 경우, B 서브 노드(520) 및 이웃 서브 노드 간의 서브 엣지를 삭제하여 맵을 업데이트할 수 있다.
맵 생성부(260)는 기본 포즈 그래프 및 추가 업데이트된 레이어드 포즈 그래프에 기초하여 맵을 추가 업데이트할 수 있다.
종래의 맵 생성 기술은 맵이 생성된 이후, 이동 로봇(120)의 주행에 문제가 없는 경우, 맵의 재생성 또는 업데이트를 수행하지 않았다.
그러나 본 발명은 이동 로봇(120)이 주행하여 상위 레이어를 스캔하고, 해당 상위 레이어의 서브 노드가 최하위의 레이어에 해당하는 기본 포즈 그래프의 기본 노드가 일치하므로, 상위 레이어의 업데이트가 언제든 가능하다는 장점을 가지고 있다.
이러한 과정을 통해, 맵 생성부(260)는 이동 로봇(120)의 주행에 따라 연결된 요소(connected component)를 따라 레이어를 수평 또는 수직으로 이동하면서, 의미 기반의 맵의 상태를 점검하고, 이를 업데이트할 수 있다. 여기서, 각 레이어의 상태는 메모리 및 기록 가능한 HDD에 저장되고, 이동 로봇(120)이 이동함에 따라 해당 노드에서의 변화가 인지될 수 있다.
맵 생성부(260)는 생성된 적어도 하나의 레이어드 포즈 그래프에 대해 불필요한 적어도 하나의 서브 노드 및 서브 엣지가 제거되도록 최적화를 수행할 수 있다. 예를 들어, 맵 생성부(260)는 루프 결합(Loop Closure)에 의한 오류 보정 및 불필요한 서브 노드 및 서브 엣지의 삭제를 위해 최적화를 수행할 수 있다. 이 때, 동일 장소의 판단 오류에 따른 그래프 오류는 시맨틱 분할(Semantic Segmentation)의 레이어의 재검토를 통해 성능이 향상될 수 있다.
잠시 도 4b를 참조하면, 맵 생성부(260)는 제 1 레이어(410)에 해당하는 레이어드 포즈 그래프 및 제 2 레이어(420)에 해당하는 레이어드 포즈 그래프를 이용하여 객체 비교에 따른 동일 지점을 확인할 수 있다.
이 때, 제 1 레이어(410) 및 제 2 레이어(420)의 그래프는 순차적으로 확인될 수 있으며, 초록색이 반영된 제 1 레이어(410)의 가장 좌측 프레임은 보이지 않으나, 반대로 붉은색이 반영된 제 2 레이어(420)의 가장 우측 노드가 보이지 않는 않을 수 있다.
이러한 과정을 통해, 오류 보정을 위해 각 레이어에 대한 재검토를 수행할 수도 있다.
제어 정보 제공부(270)는 생성된 특정 장소에 대한 맵에 기초하여 이동 로봇(120)이 주행할 경로와 관련된 제어 정보를 이동 로봇(120)으로 제공할 수 있다. 예를 들어, 제어 정보 제공부(270)는 기본 포즈 그래프에 기초하여 이동 로봇(120)이 주행할 경로와 관련된 제어 정보를 이동 로봇(120)으로 제공할 수 있다. 다른 예를 들어, 제어 정보 제공부(270)는 레이어드 포즈 그래프에 기초하여 이동 로봇(120)이 특정 객체로 도달하기 위해 주행할 경로와 관련된 제어 정보를 이동 로봇(120)으로 제공할 수 있다. 제어 정보를 제공하는 과정에 대해서는 도 6을 통해 상세히 설명하도록 한다.
도 6은 본 발명의 일 실시예에 따른 이동 로봇이 주행할 경로와 관련된 제어 정보를 도출하는 과정을 설명하기 위한 예시적인 도면이다.
제어 명령 수신부(280)는 이동 로봇(120)으로부터 입력된 제어 명령을 수신할 수 있다. 예를 들어, 제어 명령 수신부(280)는 이동 로봇(120)으로부터 "로봇, 볼펜 찾아와"라는 제어 명령을 수신할 수 있다.
도출부(290)는 수신한 제어 명령으로부터 특정 객체 및 특정 객체의 클래스(Class)에 해당하는 색상 정보를 도출하고, 도출된 특정 객체와 관련된 색상 정보에 대응하는 레이어를 도출할 수 있다. 예를 들어, 도출부(290)는 제어 명령에 포함된 객체를 '볼펜'으로 도출하고, '볼펜'의 클래스(Class)에 해당하는 색상을 '빨간색'으로 도출하여, '빨간색'의 색상이 반영된 레이어를 도출할 수 있다.
도출부(290)는 특정 객체와 관련된 색상 정보에 대응하는 레이어에 포함된 특정 서브 노드 및 특정 서브 노드 간을 연결하는 특정 서브 엣지에 대한 리스트를 도출할 수 있다. 예를 들어, 도출부(290)는 '빨간색' 레이어에 해당하는 특정 서브 노드 및 특정 서브 노드 간을 연결하는 특정 서브 엣지에 대한 리스트를 도출하고, 도출된 리스트로부터 '볼펜'까지의 최단거리 노드를 도출할 수 있다.
도6을 참조하면, 도출부(290)는 이동 로봇(120)이 인식한 볼펜의 실제 위치에 기초하여 이동 로봇(120)이 볼펜으로 도달하기 위한 이동 경로를 도출할 수 있다. 예를 들어, 현재의 이동 로봇(120)의 위치(600)로부터 구면 좌표계를 이용하여 pose(x0, y0, z0, q)에 대해 q를 이용하여 α및 β를 도출할 수 있다. 이 때, 볼펜의 포즈(610)는 (x, y, z, q)가 될 수 있다.
이러한 과정을 통해, 제어 정보 제공부(270)는 도출된 리스트에 기초하여 특정 객체로 도달하기 위한 경로(620)에 대응하는 제어 정보를 생성하고, 생성된 제어 정보를 이동 로봇(120)으로 제공할 수 있다. 예를 들어, 제어 정보 제공부(270)는 도출된 '볼펜'까지의 최단거리 노드의 경로(620)에 해당하는 제어 정보를 생성하고, 생성된 제어 정보를 이동 로봇(120)으로 제공할 수 있다.
도 7은 본 발명의 일 실시예에 따른 맵 생성 서버에서 객체 정보에 기초하여 맵을 생성하는 방법의 순서도이다. 도 7에 도시된 맵 생성 서버(110)에서 객체 정보에 기초하여 맵을 생성하는 방법은 도 1 내지 도 6에 도시된 실시예에 따른 맵 생성 시스템(1)에 의해 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 1 내지 도 6에 도시된 실시예에 따른 맵 생성 서버(110)에서 객체 정보에 기초하여 맵을 생성하는 방법에도 적용된다.
단계 S710에서 맵 생성 서버(110)는 특정 장소를 주행하는 이동 로봇(120)으로부터 특정 장소 내의 특정 위치에서의 포즈(pose) 정보를 수집할 수 있다.
단계 S720에서 맵 생성 서버(110)는 수집된 이동 로봇의 포즈 정보에 기초하여 특정 장소 내에 위치하는 복수의 기본 노드 및 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)를 생성할 수 있다.
단계 S730에서 맵 생성 서버(110)는 이동 로봇(120)으로부터 카메라를 통해 촬영된 영상을 수신할 수 있다.
단계 S740에서 맵 생성 서버(110)는 수신한 영상 및 기본 포즈 그래프에 기초하여 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프를 생성할 수 있다.
단계 S750에서 맵 생성 서버(110)는 기본 포즈 그래프 및 적어도 하나의 레이어드 포즈 그래프에 기초하여 특정 장소에 대한 맵을 생성할 수 있다.
상술한 설명에서, 단계 S710 내지 S750은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
도 8은 본 발명의 일 실시예에 따른 이동 로봇의 구성도이다. 도 7을 참조하면, 이동 로봇(120)은 측정부(810), 촬영부(820), 전송부(830), 수신부(840), 제어부(850) 및 입력부(860)를 포함할 수 있다.
측정부(810)는 특정 장소를 주행하는 이동 로봇(120)에 대해 특정 위치에서의 포즈 정보를 측정할 수 있다. 예를 들어, 측정부(810)는 이동 로봇(120)에 구비된 라이다 센서를 이용하여 특정 장소(130) 내의 공간을 스캔하고, 스캔된 공간에 대한 2차원 상의 좌표 및 각도를 포함하는 포즈 정보를 측정할 수 있다.
촬영부(820)는 카메라를 이용하여 특정 위치에 대한 영상을 촬영할 수 있다.
전송부(830)는 측정된 특정 위치에서의 포즈 정보 및 촬영된 영상을 맵 생성 서버(110)로 전송할 수 있다.
수신부(840)는 맵 생성 서버(110)로부터 특정 위치에서의 포즈 정보 및 영상에 포함된 객체 정보에 기초하여 생성된 특정 장소에 대한 맵을 수신할 수 있다. 여기서, 특정 장소(130)에 대한 맵은 이동 로봇(120)의 포즈 정보에 기초하여 특정 장소(130) 내에 위치하는 복수의 기본 노드 및 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프 및 특정 장소(130) 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프에 기초하여 생성된 것일 수 있다.
제어부(850)는 수신한 맵에 기초하여 특정 장소를 주행하도록 제어할 수 있다. 예를 들어, 제어부(850)는 제 1 노드 및 제 2 노드 간에 연결된 기본 엣지에 기초하여 제 1 노드 및 제 2 노드를 일방 또는 쌍방으로 주행하도록 이동 로봇(120)을 제어할 수 있다. 다른 예를 들어, 제어부(850)는 제 1 서브 노드 및 제 2 서브 노드 간에 연결된 서브 엣지에 기초하여 제 1 서브 노드 및 제 2 서브 노드를 일방 또는 쌍방으로 주행하도록 이동 로봇(120)을 제어할 수 있다.
입력부(860)는 사용자로부터 특정 객체에 대한 제어 명령을 입력받을 수 있다. 예를 들어, 입력부(860)는 사용자로부터 "볼펜 찾아와"와 같은 제어 명령을 입력받을 수 있다.
전송부(830)는 입력된 제어 명령을 맵 생성 서버(110)로 전송할 수 있다.
수신부(840)는 맵 생성 서버(110)로부터 생성된 특정 장소에 대한 맵에 기초하여 이동 로봇(120)이 주행할 경로와 관련된 제어 정보를 수신할 수 있다.
제어부(850)는 수신한 제어 정보에 기초하여 이동 로봇(120)이 특정 장소를 주행하도록 제어할 수 있다. 예를 들어, 입력부(860)에서 "볼펜 찾아와"와 같은 제어 명령을 입력받은 경우, 수신부(840)는 맵 생성 서버(110)로부터 '볼펜'과 관련된 레이어로부터 도출된 주행 경로를 포함하는 제어 정보를 수신하고, 제어부(850)는 제어 정보에 기초하여 이동 로봇(120)이 '볼펜'을 향해 주행하도록 제어할 수 있다.
도 9는 본 발명의 일 실시예에 따른 이동 로봇에서 객체 정보에 기초하여 생성된 맵에 따라 주행하는 방법의 순서도이다. 도 9에 도시된 이동 로봇(120)에서 객체 정보에 기초하여 생성된 맵에 따라 주행하는 방법은 도 1 내지 도 8에 도시된 실시예에 따른 맵 생성 시스템(1)에 의해 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 1 내지 도 8에 도시된 실시예에 따른 이동 로봇(120)에서 객체 정보에 기초하여 생성된 맵에 따라 주행하는 방법에도 적용된다.
단계 S910에서 이동 로봇(120)은 특정 장소를 주행하는 이동 로봇(120)에 대해 특정 위치에서의 포즈 정보를 측정할 수 있다.
단계 S920에서 이동 로봇(120)은 카메라를 이용하여 특정 위치에 대한 영상을 촬영할 수 있다.
단계 S930에서 이동 로봇(120)은 측정된 특정 위치에서의 포즈 정보 및 촬영된 영상을 맵 생성 서버(110)로 전송할 수 있다.
단계 S940에서 이동 로봇(120)은 맵 생성 서버(110)로부터 특정 위치에서의 포즈 정보 및 영상에 포함된 객체 정보에 기초하여 생성된 특정 장소에 대한 맵을 수신할 수 있다.
단계 S950에서 이동 로봇(120)은 수신한 맵에 기초하여 특정 장소를 주행하도록 제어할 수 있다.
상술한 설명에서, 단계 S910 내지 S950은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 전환될 수도 있다.
도 1 내지 도 9를 통해 설명된 맵 생성 서버에서 객체 정보에 기초하여 맵을 생성하는 방법 및 이동 로봇에서 객체 정보에 기초하여 생성된 맵에 따라 주행하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 또한, 도 1 내지 도 9를 통해 설명된 맵 생성 서버에서 객체 정보에 기초하여 맵을 생성하는 방법 및 이동 로봇에서 객체 정보에 기초하여 생성된 맵에 따라 주행하는 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램의 형태로도 구현될 수 있다.
컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 맵 생성 서버
120: 이동 로봇
210: 포즈 정보 수집부
220: 기본 포즈 그래프 생성부
230: 영상 수신부
240: 객체 추출부
250: 레이어드 포즈 그래프 생성부
260: 맵 생성부
270: 제어 정보 제공부
280: 제어 명령 수신부
290: 도출부
810: 측정부
820: 촬영부
830: 전송부
840: 수신부
850: 제어부
860: 입력부

Claims (20)

  1. 객체 정보에 기초하여 맵을 생성하는 서버에 있어서,
    특정 장소를 주행하는 이동 로봇으로부터 상기 특정 장소 내의 특정 위치에서의 포즈(pose) 정보를 수집하는 포즈 정보 수집부;
    상기 수집된 이동 로봇의 포즈 정보에 기초하여 상기 특정 장소 내에 위치하는 복수의 기본 노드 및 상기 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)를 생성하는 기본 포즈 그래프 생성부;
    상기 이동 로봇으로부터 카메라를 통해 촬영된 영상을 수신하는 영상 수신부;
    상기 수신한 영상 및 상기 기본 포즈 그래프에 기초하여 상기 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프를 생성하는 레이어드 포즈 그래프 생성부; 및
    상기 기본 포즈 그래프 및 상기 적어도 하나의 레이어드 포즈 그래프에 기초하여 상기 특정 장소에 대한 맵을 생성하는 맵 생성부
    를 포함하는 것인, 맵 생성 서버.
  2. 제 1 항에 있어서,
    상기 레이어드 포즈 그래프 생성부는 상기 복수의 기본 노드 및 상기 적어도 하나의 기본 엣지에 기초하여 복수의 서브 노드 및 상기 복수의 서브 노드 간을 연결하는 적어도 하나의 서브 엣지를 포함하는 레이어드 포즈 그래프를 생성하는 것인, 맵 생성 서버.
  3. 제 2 항에 있어서,
    상기 수신한 영상으로부터 상기 특정 장소 내에 위치한 객체를 기정의된 객체 사전을 이용하여 인식하고, 상기 인식된 객체와 관련된 색상 정보를 추출하는 객체 추출부를 더 포함하고,
    상기 레이어드 포즈 그래프 생성부는 상기 추출된 객체와 관련된 색상 정보를 반영하여 상기 추출된 객체에 대응하는 레이어를 생성하는 것인, 맵 생성 서버.
  4. 제 3 항에 있어서,
    상기 레이어드 포즈 그래프 생성부는 상기 영상에 포함된 적어도 둘 이상의 프레임에서 상기 객체의 클래스와 동일한 클래스의 객체가 존재하는지 여부에 기초하여 상기 레이어 상에 상기 적어도 하나의 레이어드 포즈 그래프를 생성하는 것인, 맵 생성 서버.
  5. 제 4 항에 있어서,
    상기 레이어드 포즈 그래프 생성부는 상기 객체의 클래스와 동일한 클래스의 객체가 존재하는 경우, 상기 기본 포즈 그래프에 기초하여 상기 레이어 상에 상기 객체의 존재 여부가 반영된 제 1 서브 노드 및 상기 제 1 서브 노드 간을 연결하는 제 1 서브 엣지를 생성하는 것인, 맵 생성 서버.
  6. 제 5 항에 있어서,
    상기 레이어드 포즈 그래프 생성부는 상기 객체의 클래스와 다른 클래스의 다른 객체가 존재하는 경우, 상기 다른 객체와 관련된 색상 정보를 반영하여 상기 다른 객체에 대응하는 신규 레이어를 생성하고, 상기 기본 포즈 그래프에 기초하여 상기 생성된 신규 레이어 상에 상기 다른 객체의 존재 여부가 반영된 제 2 서브 노드 및 상기 제 2 서브 노드 간을 연결하는 제 2 서브 엣지를 생성하는 것인, 맵 생성 서버.
  7. 제 1 항에 있어서,
    상기 생성된 특정 장소에 대한 맵에 기초하여 상기 이동 로봇이 주행할 경로와 관련된 제어 정보를 상기 이동 로봇으로 제공하는 제어 정보 제공부를 더 포함하는 것인, 맵 생성 서버.
  8. 제 7 항에 있어서,
    이동 로봇으로부터 제어 명령을 수신하는 제어 명령 수신부; 및
    상기 수신한 제어 명령으로부터 특정 객체 및 상기 특정 객체와 관련된 색상 정보를 도출하고, 상기 도출된 특정 객체와 관련된 색상 정보에 대응하는 레이어를 도출하는 도출부를 더 포함하는, 맵 생성 서버.
  9. 제 8 항에 있어서,
    상기 도출부는 상기 특정 객체와 관련된 색상 정보에 대응하는 레이어에 포함된 특정 서브 노드 및 상기 특정 서브 노드 간을 연결하는 특정 서브 엣지에 대한 리스트를 도출하고,
    상기 제어 정보 제공부는 상기 도출된 리스트에 기초하여 상기 특정 객체로 도달하기 위한 경로에 대응하는 제어 정보를 생성하고, 상기 생성된 제어 정보를 상기 이동 로봇으로 제공하는 것인, 맵 생성 서버.
  10. 제 2 항에 있어서,
    상기 맵 생성부는 상기 생성된 적어도 하나의 레이어드 포즈 그래프에 대해 불필요한 적어도 하나의 서브 노드 및 서브 엣지를 제거되도록 최적화를 수행하는 것인, 맵 생성 서버.
  11. 객체 정보에 기초하여 생성된 맵을 따라 주행하는 이동 로봇에 있어서,
    특정 장소를 주행하는 이동 로봇에 대해 특정 위치에서의 포즈 정보를 측정하는 측정부;
    카메라를 이용하여 상기 특정 위치에 대한 영상을 촬영하는 촬영부;
    상기 측정된 특정 위치에서의 포즈 정보 및 상기 촬영된 영상을 맵 생성 서버로 전송하는 전송부;
    상기 맵 생성 서버로부터 상기 특정 위치에서의 포즈 정보 및 상기 영상에 포함된 객체 정보에 기초하여 생성된 상기 특정 장소에 대한 맵을 수신하는 수신부; 및
    상기 수신한 맵에 기초하여 상기 특정 장소를 주행하도록 제어하는 제어부를 포함하고,
    상기 이동 로봇의 포즈 정보에 기초하여 특정 장소 내에 위치하는 복수의 기본 노드 및 상기 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)가 생성되고,
    상기 영상 및 상기 기본 포즈 그래프에 기초하여 상기 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프가 생성되고,
    상기 기본 포즈 그래프 및 상기 적어도 하나의 레이어드 포즈 그래프에 기초하여 상기 특정 장소에 대한 맵이 생성되는 것인, 이동 로봇.
  12. 제 11 항에 있어서,
    특정 객체에 대한 제어 명령을 입력받는 입력부를 더 포함하고,
    상기 전송부는 상기 입력된 제어 명령을 상기 맵 생성 서버로 전송하는 것인, 이동 로봇.
  13. 제 12 항에 있어서,
    상기 수신부는 상기 맵 생성 서버로부터 상기 생성된 특정 장소에 대한 맵에 기초하여 상기 이동 로봇이 주행할 경로와 관련된 제어 정보를 수신하는 것인, 이동 로봇.
  14. 맵 생성 서버에서 객체 정보에 기초하여 맵을 생성하는 방법에 있어서,
    특정 장소를 주행하는 이동 로봇으로부터 상기 특정 장소 내의 특정 위치에서의 포즈(pose) 정보를 수집하는 단계;
    상기 수집된 이동 로봇의 포즈 정보에 기초하여 상기 특정 장소 내에 위치하는 복수의 기본 노드 및 상기 복수의 기본 노드 간을 연결하는 적어도 하나의 기본 엣지를 포함하는 기본 포즈 그래프(pose graph)를 생성하는 단계;
    상기 이동 로봇으로부터 카메라를 통해 촬영된 영상을 수신하는 단계;
    상기 수신한 영상 및 상기 기본 포즈 그래프에 기초하여 상기 특정 장소 내에 위치한 객체에 대한 적어도 하나의 레이어드 포즈 그래프를 생성하는 단계; 및
    상기 기본 포즈 그래프 및 상기 적어도 하나의 레이어드 포즈 그래프에 기초하여 상기 특정 장소에 대한 맵을 생성하는 단계
    를 포함하는 것인, 맵 생성 방법.
  15. 제 14 항에 있어서,
    상기 레이어드 포즈 그래프를 생성하는 단계는,
    상기 복수의 기본 노드 및 상기 적어도 하나의 기본 엣지에 기초하여 복수의 서브 노드 및 상기 복수의 서브 노드 간을 연결하는 적어도 하나의 서브 엣지를 포함하는 레이어드 포즈 그래프를 생성하는 단계를 포함하는 것인, 맵 생성 방법.
  16. 제 14 항에 있어서,
    상기 수신한 영상으로부터 상기 특정 장소 내에 위치한 객체를 기정의된 객체 사전을 이용하여 인식하고, 상기 인식된 객체와 관련된 색상 정보를 추출하는 단계; 및
    상기 추출된 객체와 관련된 색상 정보를 반영하여 상기 추출된 객체에 대응하는 레이어를 생성하는 단계를 더 포함하는 것인, 맵 생성 방법.
  17. 제 13 항에 있어서,
    상기 레이어드 포즈 그래프를 생성하는 단계는,
    상기 영상에 포함된 적어도 둘 이상의 프레임에서 상기 객체의 클래스와 동일한 클래스의 객체가 존재하는지 여부에 기초하여 상기 레이어 상에 상기 적어도 하나의 레이어드 포즈 그래프를 생성하는 단계를 포함하는 것인, 맵 생성 방법.
  18. 제 17 항에 있어서,
    상기 레이어드 포즈 그래프를 생성하는 단계는,
    상기 객체의 클래스와 동일한 클래스의 객체가 존재하는 경우, 상기 기본 포즈 그래프에 기초하여 상기 레이어 상에 상기 객체의 존재 여부가 반영된 제 1 서브 노드 및 상기 제 1 서브 노드 간을 연결하는 제 1 서브 엣지를 생성하는 단계를 포함하는 것인, 맵 생성 방법.
  19. 제 17 항에 있어서,
    상기 레이어드 포즈 그래프를 생성하는 단계는,
    상기 객체의 클래스와 다른 클래스의 다른 객체가 존재하는 경우, 상기 다른 객체와 관련된 색상 정보를 반영하여 상기 다른 객체에 대응하는 신규 레이어를 생성하는 단계; 및
    상기 기본 포즈 그래프에 기초하여 상기 생성된 신규 레이어 상에 상기 다른 객체의 존재 여부가 반영된 제 2 서브 노드 및 상기 제 2 서브 노드 간을 연결하는 제 2 서브 엣지를 생성하는 단계를 포함하는 것인, 맵 생성 방법.
  20. 제 14 항에 있어서,
    상기 생성된 특정 장소에 대한 맵에 기초하여 상기 이동 로봇이 주행할 경로와 관련된 제어 정보를 상기 이동 로봇으로 제공하는 단계를 더 포함하는 것인, 맵 생성 방법.
KR1020200034539A 2020-03-20 2020-03-20 객체 정보에 기초하여 맵을 생성하는 서버 및 방법 그리고 맵에 따라 주행하는 이동 로봇 KR102333612B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200034539A KR102333612B1 (ko) 2020-03-20 2020-03-20 객체 정보에 기초하여 맵을 생성하는 서버 및 방법 그리고 맵에 따라 주행하는 이동 로봇

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200034539A KR102333612B1 (ko) 2020-03-20 2020-03-20 객체 정보에 기초하여 맵을 생성하는 서버 및 방법 그리고 맵에 따라 주행하는 이동 로봇

Publications (2)

Publication Number Publication Date
KR20210117797A KR20210117797A (ko) 2021-09-29
KR102333612B1 true KR102333612B1 (ko) 2021-12-01

Family

ID=77924869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200034539A KR102333612B1 (ko) 2020-03-20 2020-03-20 객체 정보에 기초하여 맵을 생성하는 서버 및 방법 그리고 맵에 따라 주행하는 이동 로봇

Country Status (1)

Country Link
KR (1) KR102333612B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101708659B1 (ko) 2014-06-17 2017-02-22 주식회사 유진로봇 이동 로봇의 맵을 업데이트하기 위한 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101708659B1 (ko) 2014-06-17 2017-02-22 주식회사 유진로봇 이동 로봇의 맵을 업데이트하기 위한 장치 및 그 방법

Also Published As

Publication number Publication date
KR20210117797A (ko) 2021-09-29

Similar Documents

Publication Publication Date Title
CN107160395B (zh) 地图构建方法及机器人控制系统
JP6288221B2 (ja) 深層畳み込みニューラルネットワークによるレイヤベースの物体検出の強化
KR101725060B1 (ko) 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
CN113284240B (zh) 地图构建方法及装置、电子设备和存储介质
JP4672175B2 (ja) 位置検出装置、位置検出方法、及び位置検出プログラム
KR101776621B1 (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
KR102135560B1 (ko) 카메라와 라이다를 이용한 융합 센서 및 이동체
JP6144826B2 (ja) データベース作成のための対話型および自動的3dオブジェクト走査方法
CN112525202A (zh) 一种基于多传感器融合的slam定位导航方法及系统
JP5148669B2 (ja) 位置検出装置、位置検出方法、及び位置検出プログラム
KR102092392B1 (ko) 실 공간에서 관심지점 관련 정보를 자동으로 수집 및 업데이트하는 방법 및 시스템
CN110298914B (zh) 一种建立果园中果树冠层特征地图的方法
US11841434B2 (en) Annotation cross-labeling for autonomous control systems
JP2019211900A (ja) 物体識別装置、移動体用システム、物体識別方法、物体識別モデルの学習方法及び物体識別モデルの学習装置
KR102096926B1 (ko) 관심 영역 변화를 검출하는 방법 및 시스템
Ye et al. 6-DOF pose estimation of a robotic navigation aid by tracking visual and geometric features
EP4068206A1 (en) Object tracking in local and global maps systems and methods
KR101207535B1 (ko) 이동 로봇의 이미지 기반 동시적 위치 인식 및 지도 작성 방법
JP2020042447A (ja) 不動物体情報から端末位置を推定する装置、プログラム及び方法
KR102404867B1 (ko) 3차원 거리정보를 이용한 랩어라운드뷰 영상제공장치 및 방법
Ferguson et al. A 2d-3d object detection system for updating building information models with mobile robots
JP2021177144A (ja) 情報処理装置、情報処理方法及びープログラム
KR102106029B1 (ko) 간판 검출 성능 향상을 위한 방법 및 시스템
WO2022128896A1 (en) Method and apparatus for multiple robotic devices in an environment
CN114399515A (zh) 基于语言描述的类级别目标物6d位姿获取方法及存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right