KR20230108997A - Method for visual localization, control server and buiding using the same - Google Patents

Method for visual localization, control server and buiding using the same Download PDF

Info

Publication number
KR20230108997A
KR20230108997A KR1020220004824A KR20220004824A KR20230108997A KR 20230108997 A KR20230108997 A KR 20230108997A KR 1020220004824 A KR1020220004824 A KR 1020220004824A KR 20220004824 A KR20220004824 A KR 20220004824A KR 20230108997 A KR20230108997 A KR 20230108997A
Authority
KR
South Korea
Prior art keywords
robot
positioning
positioning module
space
control server
Prior art date
Application number
KR1020220004824A
Other languages
Korean (ko)
Other versions
KR102621089B1 (en
Inventor
이태재
김덕화
박순용
이용한
김우영
이동환
Original Assignee
네이버랩스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버랩스 주식회사 filed Critical 네이버랩스 주식회사
Priority to KR1020220004824A priority Critical patent/KR102621089B1/en
Priority to PCT/KR2022/020966 priority patent/WO2023136495A1/en
Publication of KR20230108997A publication Critical patent/KR20230108997A/en
Application granted granted Critical
Publication of KR102621089B1 publication Critical patent/KR102621089B1/en

Links

Images

Classifications

    • 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/04Viewing devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches

Abstract

본 발명은 시각적 측위방법, 이를 이용하는 제어서버 및 건물에 관한 것으로서, 본 발명의 일 실시예에 의한 시각적 측위방법은 로봇으로부터, 상기 로봇이 위치하는 공간에 대한 주변 영상을 입력받는 단계; 상기 공간에 설정된 공간특성에 따라, 측위모듈을 선택하는 단계; 및 상기 선택된 측위모듈을 이용하여 상기 주변 영상으로부터 상기 로봇에 대한 측위정보를 생성하는 단계를 포함할 수 있다.The present invention relates to a visual positioning method, and a control server and a building using the same. The visual positioning method according to an embodiment of the present invention includes the steps of receiving, from a robot, a surrounding image of a space where the robot is located; selecting a positioning module according to spatial characteristics set in the space; and generating positioning information for the robot from the surrounding image using the selected positioning module.

Figure P1020220004824
Figure P1020220004824

Description

시각적 측위방법,이를 이용하는 제어서버 및 건물 {Method for visual localization, control server and buiding using the same}Visual localization method, control server and building using it {Method for visual localization, control server and buiding using the same}

본 발명은 로봇의 주행을 제어하기 위해 로봇의 위치 및 포즈(pose)를 측위하는 시각적 측위방법, 이를 이용하는 제어서버 및 건물에 관한 것이다.The present invention relates to a visual positioning method for locating the position and pose of a robot to control the driving of the robot, a control server and a building using the same.

VL(Visual Localization)은 로봇 등에서 촬영된 이미지에 기반하여 로봇의 전역 위치를 추정할 수 있는 기술로, 로봇은 촬영된 이미지를 VL 서버로 전송하고, VL 서버는 전송된 이미지에 기반하여 로봇의 전역 위치를 추정할 수 있다. 그러나, 이러한 VL은 공간 전체를 스캔하여 공간에 대한 전체 맵을 생성하는 사전 작업을 요구하며, 이때 라이더(Lidar)와 같은 고가의 장비가 요구된다. 뿐만 아니라, VL은 초기 위치가 주어지지 않은 단계에서 VL만을 사용하여 로봇의 위치를 인식하는 경우, 쿼리 이미지를 이용하여 전체 탐색을 수행하기 때문에 긍정 오류(false positive)가 발생할 가능성이 높다. 게다가, 야외와 같이 열린 공간은 규모와 환경의 변화 때문에 기존의 VL을 활용하기 취약하다는 문제점이 있다.VL (Visual Localization) is a technology that can estimate the global position of a robot based on images taken from a robot, etc. location can be estimated. However, such a VL requires a preliminary operation of generating an entire map of the space by scanning the entire space, and expensive equipment such as a lidar is required at this time. In addition, when the position of the robot is recognized using only the VL in a step where the initial position is not given, there is a high possibility of false positives because the entire search is performed using the query image. In addition, there is a problem in that open spaces such as outdoors are vulnerable to utilizing existing VLs due to changes in scale and environment.

다른 예로, 2차원 이미지 마커를 활용하여 로봇의 전역 위치를 추정하는 기술이 존재한다. 예를들어, 한국공개특허 제10-2006-0129960호는 이동 로봇 및 그의 위치 및 자세의 산출방법에 관한 것으로, 맵 데이터 메모리는 이동 영역의 맵 데이터, 이동 영역의 소정의 위치에 있는 마커의 위치 데이터, 마커의 식별 데이터 및 이동 영역의 마커에 인접하는 경계선의 위치 데이터를 저장하고, 마커 검출 유닛이, 마커의 위치 데이터 및 식별 데이터를 기초하여 화상에서 마커를 검출하며, 경계선 검출 유닛이 화상으로부터 마커에 인접하는 경계선을 검출하고, 파라미터 산출 유닛이 화상에서 경계선의 파라미터를 산출하면, 위치 자세 산출 유닛이, 경계선의 파라미터와 경계선의 위치 데이터에 기초하여, 이동 영역 내의 이동 로봇의 위치 및 자세를 산출함을 개시하고 있다.As another example, there is a technology for estimating the global position of a robot using a 2D image marker. For example, Korean Patent Publication No. 10-2006-0129960 relates to a mobile robot and a method for calculating its position and attitude. The data, identification data of the marker and positional data of a boundary line adjacent to the marker in the movement area are stored, the marker detection unit detects the marker in the image based on the positional data and identification data of the marker, and the boundary line detection unit detects the marker from the image. When a boundary line adjacent to the marker is detected, and the parameter calculation unit calculates the parameters of the boundary line in the image, the position and attitude calculation unit calculates the position and posture of the mobile robot in the moving area based on the parameters of the boundary line and the position data of the boundary line. Calculation is starting.

본 발명은 일반적인 시각적 측위 방법 이외에, 각각의 공간들의 공간특성에 따라 특화된 복수의 시각적 측위 방법을 함께 활용하여, 보다 정확한 시각적 측위를 수행할 수 있는 시각적 측위방법, 이를 이용하는 제어서버 및 건물을 제공하고자 한다.The present invention is to provide a visual positioning method that can perform more accurate visual positioning by utilizing a plurality of visual positioning methods specialized according to spatial characteristics of each space together, in addition to a general visual positioning method, and a control server and a building using the same. do.

본 발명은 시각적 측위를 수행하는 복수의 측위 모듈을 통합함으로써, 공간특성에 강인한 특성을 가지는 시각적 측위방법, 이를 이용하는 제어서버 및 건물을 제공하고자 한다.An object of the present invention is to provide a visual positioning method having robust characteristics in spatial characteristics by integrating a plurality of positioning modules that perform visual positioning, and a control server and a building using the same.

본 발명은 건물 내를 주행하며 서비스를 제공하는 로봇들을 포함하는 건물을 제공하고자 한다.An object of the present invention is to provide a building including robots that run in the building and provide services.

본 발명의 일 실시예에 의한 시각적 측위방법은, 로봇에 구비된 카메라로부터 취득한 주변 영상을 기반으로, 대상영역 내 상기 로봇의 위치를 판별하는 제어서버의 시각적 측위(visual localization) 방법에 관한 것으로, 상기 로봇으로부터, 상기 로봇이 위치하는 공간에 대한 주변 영상을 입력받는 단계; 상기 공간에 설정된 공간특성을 기초로, 측위모듈을 적용하는 단계; 및 상기 측위모듈을 이용하여 상기 주변 영상으로부터 상기 로봇에 대한 측위정보를 생성하는 단계를 포함할 수 있다.A visual localization method according to an embodiment of the present invention relates to a visual localization method of a control server for determining the position of a robot in a target area based on a surrounding image obtained from a camera provided in the robot, receiving, from the robot, a surrounding image of a space in which the robot is located; applying a positioning module based on spatial characteristics set in the space; and generating positioning information for the robot from the surrounding images using the positioning module.

본 발명의 일 실시예에 의한 제어서버는, 로봇에 구비된 카메라로부터 취득한 주변 영상을 기반으로, 대상영역 내 상기 로봇의 위치를 판별하는 시각적 측위(visual localization)를 수행하는 것으로, 상기 로봇으로부터, 상기 로봇이 위치하는 공간에 대한 주변 영상을 입력받는 영상수신부; 상기 공간에 설정된 공간특성을 기초로, 측위모듈을 적용하는 측위모듈 결정부; 및 상기 측위모듈을 이용하여 상기 주변 영상으로부터 상기 로봇에 대한 측위정보를 생성하는 측위부를 포함할 수 있다. The control server according to an embodiment of the present invention performs visual localization for determining the position of the robot in a target area based on a surrounding image acquired from a camera provided in the robot, and from the robot, an image receiving unit that receives an input image of the surroundings of the space where the robot is located; a positioning module determiner applying a positioning module based on spatial characteristics set in the space; and a positioning unit generating positioning information for the robot from the surrounding images using the positioning module.

본 발명의 일 실시예에 의한 건물은, 상기 건물 내를 주행하며 서비스를 제공하는 적어도 하나의 로봇이 배치되고, 상기 로봇은 제어서버와의 통신을 통하여 제어되며, 상기 제어서버는 상기 로봇에 구비된 카메라로부터 취득한 주변 영상을 기반으로, 상기 건물 내 상기 로봇의 위치를 판별하는 시각적 측위(visual localization)를 수행하는 것으로, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 로봇으로부터, 상기 로봇이 위치하는 공간에 대한 주변 영상을 입력받고, 상기 공간에 설정된 공간특성을 기초로, 측위모듈을 적용하며, 상기 측위모듈을 이용하여 상기 주변 영상으로부터 상기 로봇에 대한 측위정보를 생성할 수 있다.In a building according to an embodiment of the present invention, at least one robot that travels in the building and provides services is disposed, the robot is controlled through communication with a control server, and the control server is provided in the robot. At least one processor implemented to execute a computer-readable command to perform visual localization for determining the location of the robot in the building based on a surrounding image acquired from a camera, wherein the At least one processor receives an input of a surrounding image of a space in which the robot is located from the robot, applies a positioning module based on a spatial characteristic set in the space, and uses the positioning module to obtain an input of a surrounding image of the space where the robot is located. Positioning information for the robot may be generated.

덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.In addition, the solution to the above problem does not enumerate all the features of the present invention. Various features of the present invention and the advantages and effects thereof will be understood in more detail with reference to specific embodiments below.

본 발명의 일 실시예에 의한 시각적 측위방법, 이를 이용하는 제어서버 및 건물에 의하면, 일반적인 시각적 측위 방법 이외에, 각각의 공간들의 공간특성에 따라 특화된 복수의 시각적 측위 방법을 함께 활용하므로, 보다 정확한 시각적 측위를 수행하는 것이 가능하다.According to the visual positioning method according to an embodiment of the present invention, a control server and a building using the same, in addition to the general visual positioning method, a plurality of visual positioning methods specialized according to the spatial characteristics of each space are used together, so more accurate visual positioning It is possible to do

본 발명의 일 실시예에 의한 시각적 측위방법, 이를 이용하는 제어서버 및 건물은, 공간특성에 따라 특화된 복수의 측위 모듈을 통합하여 로봇에 대한 시각적 측위를 수행할 수 있으므로, 다양한 공간특성에 대해 강인한 시각적 측위를 제공할 수 있다.Since the visual positioning method according to an embodiment of the present invention, a control server and a building using the same, can perform visual positioning for a robot by integrating a plurality of positioning modules specialized according to spatial characteristics, robust visual positioning for various spatial characteristics location can be provided.

다만, 본 발명의 실시예들에 따른 시각적 측위방법, 이를 이용하는 제어서버 및 건물이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the visual positioning method according to the embodiments of the present invention, the effects that can be achieved by the control server and the building using the same are not limited to those mentioned above, and other effects not mentioned are the present invention from the description below. This will be clearly understood by those skilled in the art.

도1은 본 발명의 일 실시예에 의한 로봇의 동작을 제어하는 제어시스템을 나타내는 개략도이다.
도2는 본 발명의 일 실시예에 의한 제어서버를 나타내는 블록도이다.
도3는 본 발명의 일 실시예에 의한 메인 측위모듈을 이용한 시각적 측위를 나타내는 예시도이다.
도4는 본 발명의 일 실시예에 의한 마커 측위모듈을 이용한 시각적 측위를 나타내는 예시도이다.
도5는 본 발명의 일 실시예에 의한 사이니지 측위모듈을 이용한 시각적 측위를 나타내는 예시도이다.
도6은 본 발명의 일 실시예에 의한 엘리베이터 측위모듈을 이용한 시각적 측위를 나타내는 예시도이다.
도7은 본 발명의 일 실시예에 의한 제어서버를 나타내는 개략도이다.
도8은 본 발명의 일 실시예에 의한 시각적 측위를 이용하는 제어시스템이 구축된 건물을 나타내는 개략도이다.
도9는 본 발명의 일 실시예에 의한 시각적 측위방법을 나타내는 순서도이다.
1 is a schematic diagram showing a control system for controlling the operation of a robot according to an embodiment of the present invention.
2 is a block diagram showing a control server according to an embodiment of the present invention.
3 is an exemplary diagram illustrating visual positioning using a main positioning module according to an embodiment of the present invention.
4 is an exemplary diagram illustrating visual positioning using a marker positioning module according to an embodiment of the present invention.
5 is an exemplary diagram illustrating visual positioning using a signage positioning module according to an embodiment of the present invention.
6 is an exemplary diagram illustrating visual positioning using an elevator positioning module according to an embodiment of the present invention.
7 is a schematic diagram showing a control server according to an embodiment of the present invention.
8 is a schematic diagram showing a building in which a control system using visual positioning according to an embodiment of the present invention is built.
9 is a flowchart illustrating a visual positioning method according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.Hereinafter, the embodiments disclosed in this specification will be described in detail with reference to the accompanying drawings, but the same or similar elements are given the same reference numerals regardless of reference numerals, and redundant description thereof will be omitted. The suffixes "module" and "unit" for components used in the following description are given or used together in consideration of ease of writing the specification, and do not have meanings or roles that are distinct from each other by themselves. That is, the term 'unit' used in the present invention means a hardware component such as software, FPGA or ASIC, and 'unit' performs certain roles. However, 'part' is not limited to software or hardware. A 'unit' may be configured to reside in an addressable storage medium and may be configured to reproduce one or more processors. Thus, as an example, 'unit' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functionality provided within the components and 'parts' may be combined into a smaller number of elements and 'parts' or further separated into additional elements and 'parts'.

또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In addition, in describing the embodiments disclosed in this specification, if it is determined that a detailed description of a related known technology may obscure the gist of the embodiment disclosed in this specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are only for easy understanding of the embodiments disclosed in this specification, the technical idea disclosed in this specification is not limited by the accompanying drawings, and all changes included in the spirit and technical scope of the present invention , it should be understood to include equivalents or substitutes.

도1은 본 발명의 일 실시예에 의한 로봇의 동작을 제어하는 제어시스템을 나타내는 개략도이다. 1 is a schematic diagram showing a control system for controlling the operation of a robot according to an embodiment of the present invention.

도1을 참조하면, 본 발명의 일 실시예에 의한 제어시스템은 로봇(1) 및 제어서버(100)를 포함할 수 있다. Referring to FIG. 1 , a control system according to an embodiment of the present invention may include a robot 1 and a control server 100.

이하 도1을 참조하여 본 발명의 일 실시예에 의한 제어시스템을 설명한다.A control system according to an embodiment of the present invention will be described with reference to FIG. 1 below.

로봇(1)은 대상영역(A) 내에서 이동하면서 다양한 서비스 등을 수행할 수 있다. 여기서 대상영역(A)은 건물 등 실내 공간일 수 있으며, 로봇(1)은 자율주행방식으로 대상영역(A) 내에서 이동할 수 있으나, 로봇(1)의 위치에 대한 측위나 이동에 대한 제어 등은 제어서버(100)에 의하여 수행될 수 있다. 즉, 로봇(1)은 제어서버(100)와의 통신을 통하여 이동 등 동작을 수행할 수 있다.The robot 1 can perform various services while moving within the target area A. Here, the target area (A) may be an indoor space such as a building, and the robot 1 may move within the target area (A) in an autonomous driving method, but positioning of the position of the robot 1 or control of movement, etc. may be performed by the control server 100. That is, the robot 1 may perform operations such as movement through communication with the control server 100 .

로봇(1)은 카메라를 포함할 수 있으며, 카메라를 이용하여 로봇(1)의 이동에 대응하는 주변 영상을 촬영할 수 있다. 로봇(1)은 주변 영상을 제어서버(100)에게 전송할 수 있으며, 제어서버(100)는 수신한 주변 영상을 기반으로 로봇(1)에 대한 시각적 측위(visual localization)를 수행할 수 있다.The robot 1 may include a camera, and a surrounding image corresponding to the movement of the robot 1 may be captured using the camera. The robot 1 may transmit a surrounding image to the control server 100, and the control server 100 may perform visual localization for the robot 1 based on the received surrounding image.

실시예에 따라서는 로봇(1)은 카메라 이외에 IMU(Inertial Measurment Unit) 센서, 휠 인코더 센서, 라이다 센서 등 다양한 센서들을 더 포함할 수 있으며, 제어서버(100)는 시각적 측위 이외에 다른 방식으로 로봇(1)에 대한 추가적인 측위(localization)을 수행하는 것도 가능하다.Depending on the embodiment, the robot 1 may further include various sensors such as an Inertial Measurement Unit (IMU) sensor, a wheel encoder sensor, and a LiDAR sensor in addition to a camera, and the control server 100 uses a method other than visual positioning for the robot. It is also possible to perform additional localization for (1).

제어서버(100)는 네트워크(N)를 통하여 대상영역(A) 내 위치하는 로봇(1)들과 통신을 수행할 수 있으며, 로봇(1)의 이동 등을 포함하여 다양한 동작들을 제어할 수 있다. 여기서, 제어서버(100)와 로봇(1) 사이의 통신 방식은 제한되지 않으며, 네트워크(N)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망, 위성망 등)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 등도 포함될 수 있다. 예를 들어, 네트워크(N)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(N)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The control server 100 can communicate with the robots 1 located in the target area A through the network N, and can control various operations including movement of the robot 1. . Here, the communication method between the control server 100 and the robot 1 is not limited, and the communication network (eg, mobile communication network, wired Internet, wireless Internet, broadcasting network, satellite network, etc.) that the network N may include In addition to the communication method used, short-distance wireless communication between devices may be included. For example, the network N may include a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). , one or more arbitrary networks such as the Internet. In addition, the network N may include any one or more of network topologies including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or a hierarchical network, and the like. Not limited.

제어서버(100)는 로봇(1)과 네트워크(N)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 실시예에 따라서는, 제어서버(100)를 클라우드 서버 형태로 구현하는 것도 가능하다.The control server 100 may be implemented as a computer device or a plurality of computer devices that communicate with the robot 1 through a network N to provide commands, codes, files, contents, services, and the like. Depending on the embodiment, it is also possible to implement the control server 100 in the form of a cloud server.

로봇(1)이 대상영역(A) 내를 이동하기 위해서는, 로봇(1)의 현재 위치 및 포즈(pose)를 포함하는 측위정보를 생성하기 위한 측위를 수행할 필요가 있다. 여기서, 대상영역(A)에 대한 구체적인 지도정보 등은 미리 저장되어 있을 수 있으며, 제어서버(100)는 지도정보에 로봇(1)의 현재 위치와 포즈를 정합하여, 로봇(1)의 현재 위치와 포즈를 지도정보 내에 매핑할 수 있다. 실시예에 따라서는, 위치 및 포즈를 각각 3차원 좌표값과 3축 회전값(pitch, roll, yaw)으로 표현할 수 있다.In order for the robot 1 to move within the target area A, it is necessary to perform positioning to generate positioning information including the current position and pose of the robot 1. Here, specific map information for the target area A may be stored in advance, and the control server 100 matches the current position and pose of the robot 1 to the map information to match the current position of the robot 1. and poses can be mapped within map information. Depending on the embodiment, the position and pose may be expressed as 3-dimensional coordinate values and 3-axis rotation values (pitch, roll, yaw), respectively.

제어서버(100)는 로봇(1)으로부터 주변 영상을 수신할 수 있으며, 수신한 주변 영상을 기반으로 로봇(1)에 대한 시각적 측위를 수행할 수 있다. 즉, 제어서버(100)는 로봇(1)에 대한 시각적 측위의 결과로, 로봇(1)의 지도정보 내 정확한 위치와 포즈를 확인할 수 있으며, 이를 바탕으로 로봇(1)의 진행방향, 회전방향, 진행속도 등을 결정하여, 로봇(1)의 이동을 제어할 수 있다. The control server 100 may receive a surrounding image from the robot 1 and perform visual positioning of the robot 1 based on the received surrounding image. That is, the control server 100 can check the exact position and pose of the robot 1 in the map information as a result of the visual positioning of the robot 1, and based on this, the moving direction and rotation direction of the robot 1 , It is possible to control the movement of the robot 1 by determining the moving speed.

구체적으로, 제어서버(100)는 수신한 주변 영상을 쿼리 영상으로 하여, 지도정보 내에서 쿼리 영상에 대응하는 참조 이미지를 검색할 수 있다. 여기서, 참조 이미지에 대응하는 측정장비의 위치와 포즈는 설정되어 있을 수 있으므로, 참조 이미지와 주변 영상을 비교하면 현재 로봇(1)의 위치와 포즈를 구하는 것이 가능하다. 즉, 국소 특징정합을 통하여 쿼리영상에 대응하는 로봇(1)의 위치와 포즈를 구할 수 있다.Specifically, the control server 100 may search for a reference image corresponding to the query image in map information by using the received surrounding image as a query image. Here, since the position and pose of the measurement equipment corresponding to the reference image may be set, it is possible to obtain the position and pose of the current robot 1 by comparing the reference image and surrounding images. That is, the position and pose of the robot 1 corresponding to the query image can be obtained through local feature matching.

다만, 로봇(1)이 주행 중인 공간이 반복적이거나 공간 내 특징이 부족한 경우에는 주변 영상을 이용하는 시각적 측위의 성능이 저하되는 등의 문제가 발생할 수 있다. 한편, 본 발명의 일 실시예에 의한 제어서버(100)는 일반적인 시각적 측위 방법 이외에, 각각의 공간들의 공간특성에 따라 특화된 복수의 시각적 측위 방법을 함께 활용하므로, 보다 정확한 시각적 측위를 수행하는 것이 가능하다. 이하, 본 발명의 일 실시예에 의한 제어서버를 설명한다.However, if the space in which the robot 1 is traveling is repetitive or lacks features in the space, problems such as deterioration in visual positioning performance using surrounding images may occur. On the other hand, since the control server 100 according to an embodiment of the present invention utilizes a plurality of visual positioning methods specialized according to spatial characteristics of each space in addition to the general visual positioning method, it is possible to perform more accurate visual positioning. do. Hereinafter, a control server according to an embodiment of the present invention will be described.

도2는 본 발명의 일 실시예에 의한 제어서버(100)를 나타내는 블록도이다.2 is a block diagram showing a control server 100 according to an embodiment of the present invention.

도2를 참조하면 본 발명의 일 실시예에 의한 제어서버(100)는 영상수신부(110), 측위모듈 결정부(120), 측위부(130) 및 지도데이터베이스(140)를 포함할 수 있다. Referring to FIG. 2 , the control server 100 according to an embodiment of the present invention may include an image receiving unit 110 , a positioning module determining unit 120 , a positioning unit 130 and a map database 140 .

영상수신부(110)는 로봇(1)으로부터, 로봇(1)이 위치하는 공간에 대한 주변 영상을 입력받을 수 있다. 로봇(1)은 자체에 설치된 카메라를 이용하여 이동 중에 주변을 촬영한 주변영상을 생성할 수 있으며, 촬영한 주변 영상을 네트워크를 통해 영상수신부(110)로 전송할 수 있다. 실시예에 따라서는, 로봇(1)에 근접한 사물이나 사람 등에 의하여 주변 영상이 가려지는 것을 최소화하고, 영상 내 스케일(scale) 변화를 줄이기 위하여, 카메라를 연직상방을 향하도록 설치할 수 있다. 즉, 주변 영상은 로봇(1)의 상방을 촬영하여 대상영역(A)의 천장을 촬영한 영상일 수 있다.The image receiving unit 110 may receive an input of a surrounding image of a space where the robot 1 is located, from the robot 1 . The robot 1 may generate an image of the surroundings captured while moving using a camera installed therein, and may transmit the captured image to the image receiving unit 110 through a network. Depending on the embodiment, in order to minimize the obstruction of the surrounding image by objects or people close to the robot 1 and to reduce the scale change in the image, the camera may be installed to face vertically upward. That is, the surrounding image may be an image obtained by photographing the ceiling of the target area A by photographing the upper side of the robot 1 .

측위모듈 결정부(120)는 공간에 설정된 공간특성을 기초로, 측위모듈을 적용할 수 있다. 즉, 제어서버(100) 내에는 복수의 측위모듈들이 포함되어 있을 수 있으며, 측위모듈 결정부(120)는 복수의 측위모듈 중에서 현재 로봇(1)이 위치하는 공간의 공간특성에 가장 적합한 측위모듈을 적용할 수 있다. The positioning module determiner 120 may apply a positioning module based on spatial characteristics set in the space. That is, a plurality of positioning modules may be included in the control server 100, and the positioning module determining unit 120 is the positioning module most suitable for the spatial characteristics of the space where the robot 1 is currently located among the plurality of positioning modules. can be applied.

구체적으로, 대상영역(A)은 복수의 공간들로 구분될 수 있으며, 지도데이터베이스(140) 내에 저장된 대상영역(A)에 대한 지도정보 내에는 각각의 공간별 공간특성들이 설정되어 있을 수 있다. 예를들어, 대상영역(A)이 건물인 경우, 건물 내에는 로봇(1)들에 대한 충전을 지원하기 위한 별도의 충전 스테이션 등의 공간이 마련되어 있을 수 있으며, 충전 스테이션 내에서는 로봇(1)들의 충전을 위한 정확한 위치제어가 필요하므로 이를 보조하기 위한 마커(marker) 등이 포함될 수 있다. 또한, 건물 내 업무공간 등에는 작업자 등이 공간 내 위치를 인식할 수 있도록 표지판 등의 사이니지가 일정한 규칙에 따라 정해진 설정규격으로 설치될 수 있으며, 건물 내 엘리베이터의 경우 엘리베이터 공간 내 특정한 공간상의 특징들이 포함될 수 있다. Specifically, the target area A may be divided into a plurality of spaces, and spatial characteristics for each space may be set in map information about the target area A stored in the map database 140 . For example, when the target area (A) is a building, a space such as a separate charging station to support charging of the robots 1 may be provided in the building, and within the charging station, the robot 1 Since accurate position control for charging of the cells is required, a marker or the like to assist this may be included. In addition, signage, such as signs, can be installed in a work space in a building with a set standard according to a certain rule so that workers can recognize the location in the space. may include

즉, 지도정보 내에는 각각의 공간들에 대한 공간특성들이 설정되어 있으므로, 각각의 공간특성을 기초로 가장 적합한 측위모듈들을 미리 설정할 수 있다. 따라서, 측위모듈 결정부(120)는 각각의 공간에 대하여, 공간특성을 기초로 미리 설정된 각각의 측위모듈들을 적용할 수 있다. 이 경우, 각 공간들의 공간특성에 따라 가장 적절한 측위모듈을 선택될 수 있으므로, 보다 정확하고 빠르게 해당 공간 내에서의 시각적 측위를 수행하는 것이 가능하다.That is, since spatial characteristics for each space are set in the map information, the most suitable positioning modules can be set in advance based on each spatial characteristic. Accordingly, the positioning module determiner 120 may apply each of the positioning modules preset based on the spatial characteristics to each space. In this case, since the most appropriate positioning module can be selected according to the spatial characteristics of each space, it is possible to perform visual positioning within the space more accurately and quickly.

여기서, 측위모듈 결정부(120)는 먼저 각각의 로봇(1)들이 현재 어느 공간에 위치하는 지를 판별할 필요가 있다. 이를 위하여 측위모듈 결정부(120)는 대상영역(A)에 대응하는 지도정보와, 로봇(1)의 직전 측위정보를 활용할 수 있다. 지도정보는 로봇(1)이 대상영역(A) 내를 주행할 수 있도록 미리 정밀하게 생성되어 저장될 수 있으며, 지도정보 내에는 대상영역(A) 내에 포함되는 각각의 공간들과, 공간들에 설정되는 공간특성 등이 미리 저장되어 있을 수 있다. 따라서, 측위모듈 결정부(120)는 로봇(1)의 직전 측위정보를 기반으로 현재 로봇(1)이 위치하는 지도정보 상에 어느 공간인지를 판별할 수 있으며, 해당 공간에 설정된 공간특성을 추출할 수 있다. 실시예에 따라서는, 측위모듈 결정부(120)는 로봇(1)에 포함된 별도의 IMU 센서나 휠 인코더 센서 등을 활용하여 로봇(1)의 오도메트리(odometry)를 구할 수 있으며, 직전 측위정보에 해당 오도메트리를 적용하여, 현재 로봇(1)이 위치하는 공간을 특정하는 것도 가능하다. Here, the positioning module determination unit 120 first needs to determine in which space each robot 1 is currently located. To this end, the positioning module determining unit 120 may utilize map information corresponding to the target area A and positioning information immediately before the robot 1 . The map information may be generated and stored precisely in advance so that the robot 1 can travel within the target area A, and within the map information, each space included in the target area A and the spaces Space characteristics to be set may be stored in advance. Therefore, the positioning module determiner 120 can determine which space is on the map information where the robot 1 is currently located based on the previous positioning information of the robot 1, and extracts the spatial characteristics set in the corresponding space. can do. Depending on the embodiment, the positioning module determiner 120 may obtain the odometry of the robot 1 by utilizing a separate IMU sensor or wheel encoder sensor included in the robot 1, and It is also possible to specify the space where the robot 1 is currently located by applying the corresponding odometry to the positioning information.

추가적으로, 측위모듈 결정부(120)가 주변 영상으로부터 각각의 공간 등을 구별하는 실시예도 가능하다. 예를들어, 주변 영상 내에 마커나 사이니지가 포함되는 경우, 측위모듈 결정부(120)는 각각의 공간특성을 마커 공간, 사이니지 공간 등으로 판별하여 각각 대응하는 측위 모듈을 적용하도록 할 수 있다.Additionally, an embodiment in which the positioning module determiner 120 distinguishes each space from surrounding images is also possible. For example, when a marker or signage is included in a surrounding image, the positioning module determiner 120 determines each spatial characteristic as a marker space, a signage space, etc., and applies a positioning module corresponding to each. .

여기서, 측위모듈은 메인 측위모듈(V1), 마커 측위모듈(V2), 사이니지 측위모듈(V3), 엘리베이터 측위모듈(V4) 등을 포함할 수 있다. 다만, 이에 한정되는 것은 아니며 실시예에 따라서는 다양한 측위모듈 등을 더 포함하는 것도 가능하다.Here, the positioning module may include a main positioning module V1, a marker positioning module V2, a signage positioning module V3, an elevator positioning module V4, and the like. However, it is not limited thereto, and depending on embodiments, it is possible to further include various positioning modules and the like.

메인 측위모듈(V1)은 주변 영상으로부터 특징점을 추출하고, 특징점을 지도정보 내 특징점들과 비교하여, 로봇(1)의 측위정보를 생성할 수 있다. 여기서, 제어서버(100)에 포함된 지도데이터베이스에는 해당 대상영역(A)에 대응하는 특징점 지도가 포함되어 있을 수 있다. 따라서, 메인 측위모듈(V1)은 주변 영상을 쿼리 이미지로 설정한 후, 딥러닝(deep learning) 모델 등을 통하여 쿼리 이미지에서 글로벌한 특징점을 추출할 수 있다. 이후, 도3에 도시한 바와 같이, 추출한 특징점을 이용하여, 쿼리 이미지(i1)에 대응하는 참조 이미지(i2)를 특징점 지도에서 검색할 수 있다. 여기서, 각각의 참조 이미지에는 특징점 지도를 생성할 때 활용한 측정장비의 위치 및 포즈 등에 대한 정보가 태깅되어 있을 수 있다. 따라서, 메인 측위모듈(V1)은 참조이미지와 쿼리 이미지를 비교하여, 현재 로봇(1)의 위치 및 포즈를 특정하여 측위정보를 생성할 수 있다.The main positioning module V1 may generate positioning information of the robot 1 by extracting feature points from surrounding images and comparing the feature points with feature points in map information. Here, the map database included in the control server 100 may include a feature point map corresponding to the corresponding target area (A). Accordingly, the main positioning module V1 may set surrounding images as query images and then extract global feature points from the query images through a deep learning model or the like. Thereafter, as shown in FIG. 3 , a reference image i2 corresponding to the query image i1 may be searched from the feature point map using the extracted feature points. Here, each reference image may be tagged with information about a position and pose of a measuring device used when generating a feature point map. Accordingly, the main positioning module V1 may generate positioning information by comparing the reference image and the query image to specify the current position and pose of the robot 1 .

한편, 메인 측위모듈(V1)은 특징점 지도가 생성된 대상영역(A)의 전체 공간에 적용가능하므로, 측위모듈 결정부(120)는 일반적인 공간에서는 메인 측위모듈(V1)을 적용하여 측위를 수행하고, 이후 특정한 공간에 진입하는 경우에 각각의 공간특성에 대응하는 측위모듈들을 적용할 수 있다. 이때, 측위모듈 결정부(120)는 메인 측위모듈에서 다른 측위모듈로 전환할 수 있으나, 실시예에 따라서는 메인 측위모듈(V1)과 함께 다른 측위모듈들이 동작하도록 하는 것도 가능하다. 즉, 측위모듈 결정부(120)는 하나의 측위모듈만을 선택하는 것이 아니라, 복수의 측위모듈을 선택하여 로봇(1)의 위치에 대한 시각적 측위를 수행하도록 할 수 있다. Meanwhile, since the main positioning module V1 is applicable to the entire space of the target region A where the feature point map is generated, the positioning module determiner 120 performs positioning by applying the main positioning module V1 in a general space. Then, when entering a specific space, positioning modules corresponding to respective spatial characteristics may be applied. At this time, the positioning module determiner 120 may switch from the main positioning module to another positioning module, but depending on the embodiment, it is also possible to operate other positioning modules together with the main positioning module V1. That is, the positioning module determiner 120 may select not only one positioning module, but a plurality of positioning modules to perform visual positioning of the position of the robot 1.

마커 측위모듈(V2)은, 주변 영상으로부터 마커(marker)를 추출하고, 마커로부터 인식한 좌표정보를 기반으로 로봇(1)의 측위정보를 생성할 수 있다.The marker positioning module V2 may extract markers from surrounding images and generate positioning information of the robot 1 based on coordinate information recognized from the markers.

마커는 포스터나 벽지, 스티커 등 공간 상에 부착가능한 인쇄물 형태로 제작될 수 있으며, 실시예에 따라서는 도4(a)에 도시한 바와 같이 에이프릴 태그(April tag) 등의 형태로 마커(M)를 생성할 수 있다. 여기서, 각각의 마커(M)에는 상이한 식별코드가 포함될 수 있으며, 식별코드를 이용하여 각각의 마커(M)를 구별할 수 있다. 마커 측위모듈(V2)은 마커(M)의 식별코드를 이용하여, 도4(b)에 도시한 바와 같이, 각각의 마커(M1, M2)에 미리 설정된 3차원의 좌표 정보 등을 추출할 수 있다. 지도데이터베이스(140) 내에는 대상영역(A) 내 각각의 마커가 부착된 마커 공간에 대한 정보와, 각각의 마커의 식별 태그와 해당 마커가 부착된 3차원 좌표를 매칭하여 저장한 마커 지도 등이 포함되어 있을 수 있다. 따라서, 마커 측위모듈(V2)은 로봇(1)에서 촬영된 주변 영상을 쿼리 이미지로 하여, 쿼리 이미지 내에서 마커(M)를 검출할 수 있으며, 마커(M) 내에 포함된 식별 태그에 매칭된 좌표정보를 기반으로, 쿼리 이미지에 대한 위치 및 포즈를 포함하는 측위정보를 구할 수 있다. 즉, 마커 측위모듈(V2)은 쿼리 이미지 내 포함된 마커(M)의 위치와 각도 등으로부터, 로봇(1)의 위치와 포즈에 대한 측위정보를 생성할 수 있다.The marker may be produced in the form of a printed matter attachable to a space such as a poster, wallpaper, or sticker. Depending on the embodiment, as shown in FIG. can create Here, each marker M may include a different identification code, and each marker M may be distinguished using the identification code. As shown in FIG. 4(b), the marker positioning module V2 can extract three-dimensional coordinate information preset for each marker M1 and M2 using the identification code of the marker M. there is. In the map database 140, information on the marker space to which each marker in the target area A is attached, and a marker map stored by matching the identification tag of each marker with the three-dimensional coordinates to which the corresponding marker is attached are stored. may be included Therefore, the marker positioning module V2 may detect the marker M in the query image by using the surrounding image captured by the robot 1 as a query image, and match the identification tag included in the marker M Based on the coordinate information, positioning information including the position and pose of the query image can be obtained. That is, the marker positioning module V2 may generate positioning information about the position and pose of the robot 1 from the position and angle of the marker M included in the query image.

한편, 마커 측위모듈(V2)은 마커 공간에 한하여 측위를 수행할 수 있으므로, 측위모듈 결정부(120)는 로봇(1)이 위치하는 공간의 공간특성이 마커 공간이면 측위모듈로 마커 측위모듈(V2)을 적용할 수 있다. 즉, 마커 공간은 로봇(1)의 위치에 대한 정밀한 제어가 필요하거나, 기존의 메인 측위모듈(V1)만으로는 정확한 측위가 어려운 공간 등일 수 있으며, 측위모듈 결정부(120)는 지도정보 내에 마커 공간으로 설정된 공간에 해당하면 마커 측위모듈(V2)를 적용할 수 있다. On the other hand, since the marker positioning module V2 can perform positioning only in the marker space, the positioning module determining unit 120 is a marker positioning module as a positioning module if the spatial characteristic of the space where the robot 1 is located is the marker space ( V2) can be applied. That is, the marker space may be a space requiring precise control of the position of the robot 1 or a space in which accurate positioning is difficult only with the existing main positioning module V1, and the positioning module determining unit 120 is a marker space within map information. If it corresponds to the space set to , the marker positioning module (V2) can be applied.

사이니지 측위모듈(V3)은, 주변 영상으로부터 사이니지(signage)를 추출하고, 사이니지의 좌표정보를 구한 후 사이니지의 좌표정보를 기반으로 로봇(1)의 측위정보를 생성할 수 있다.The signage positioning module V3 may extract signage from surrounding images, obtain coordinate information of the signage, and then generate positioning information of the robot 1 based on the coordinate information of the signage.

사이니지는 공간 내 미리 지정된 위치에 설정규격으로 설치되는 것일 수 있으며, 대상영역(A) 내 작업자나 로봇 등이 내부 공간의 위치를 인식할 수 있도록 설치되는 표지판 등일 수 있다. 실시예에 따라서는 도5(a)에 도시한 바와 같이 사이니지(S1, S2)가 공간 내에 부착되어 있을 수 있다. 여기서, 사이니지는 미리 설정된 위치 상에 일정한 설정규격에 따라 설치되므로, 사이니지 측위모듈(V3)은 주변 영상 내에 포함된 사이니지를 추출할 수 있으며, 사이니지의 설정규격으로부터 사이니지의 좌표정보를 구할 수 있다. 실시예에 따라서는, 사이니지 측위모듈(V3)이 사이니지에 대한 OCR(Optical Character Reader) 등을 통하여 문자를 인식한 후, 인식한 문자를 통하여 해당 사이니지를 구별하고 해당 사이니지의 3차원 좌표 정보 등을 추출하는 것도 가능하다. 지도데이터베이스(140) 내에는 대상영역(A) 내 각각의 사이니지가 부착된 사이니지 공간에 대한 정보와, 각각의 사이니지가 부착된 3차원 좌표를 매핑하여 저장한 사이니지 지도 등이 포함되어 있을 수 있다. 따라서, 사이니지 측위모듈(V3)은 로봇(1)에서 촬영된 주변 영상을 쿼리 이미지로 하여, 쿼리 이미지 내에서 사이니지(S)를 검출할 수 있으며, 사이니지(S)로부터 구한 좌표정보를 기반으로, 쿼리 이미지에 대한 위치 및 포즈를 포함하는 측위정보를 구할 수 있다.The signage may be installed at a predetermined location in the space according to a set standard, and may be a sign installed so that a worker or robot in the target area (A) can recognize the location of the internal space. Depending on the embodiment, as shown in Figure 5 (a), the signage (S1, S2) may be attached in the space. Here, since the signage is installed in a preset location according to a certain set standard, the signage positioning module (V3) can extract the signage included in the surrounding image, and the coordinate information of the signage from the set standard of the signage. can be obtained. Depending on the embodiment, after the signage positioning module (V3) recognizes a character through OCR (Optical Character Reader) for the signage, etc., the signage is distinguished through the recognized character, and the 3D It is also possible to extract coordinate information and the like. The map database 140 includes information about the signage space to which each signage is attached in the target area (A), and a signage map in which the three-dimensional coordinates of each signage are mapped and stored. There may be. Therefore, the signage positioning module (V3) can detect the signage (S) in the query image by using the surrounding image captured by the robot (1) as a query image, and the coordinate information obtained from the signage (S) Based on this, positioning information including the position and pose of the query image can be obtained.

한편, 사이니지 측위모듈(V3)은 사이니지 공간에 한하여 측위를 수행할 수 있으므로, 측위모듈 결정부(120)는 로봇(1)이 위치하는 공간의 공간특성이 사이니지 공간이면, 측위모듈로 사이니지 측위모듈(V3)을 적용할 수 있다. On the other hand, since the signage positioning module V3 can perform positioning only in the signage space, the positioning module determination unit 120 determines the positioning module if the space characteristic of the space where the robot 1 is located is the signage space. Signage positioning module (V3) can be applied.

엘리베이터 측위모듈(V4)은 주변 영상으로부터 엘리베이터의 특정특징점을 추출하고, 특정특징점을 기반으로 로봇(1)의 측위정보를 생성할 수 있다. 엘리베이터 내부는 일반적으로 사각형의 천장 형상을 가지고 있으므로, 사각형의 천장 형상을 엘리베이터의 특징으로 추출할 수 있으며, 주변 영상 내에 나타난 엘리베이터의 천장 형상을 기반으로 엘리베이터 내 로봇(1)의 위치 및 포즈에 대한 측위정보를 생성할 수 있다. 실시예에 따라서는, 해당 엘리베이터는 로봇(1)만이 탑승하는 전용 엘리베이터일 수 있다.The elevator positioning module V4 may extract specific feature points of the elevator from surrounding images and generate positioning information of the robot 1 based on the specific feature points. Since the inside of the elevator generally has a rectangular ceiling shape, the rectangular ceiling shape can be extracted as an elevator feature, and based on the ceiling shape of the elevator shown in the surrounding image, the position and pose of the robot 1 in the elevator can be determined. Positioning information can be created. Depending on the embodiment, the corresponding elevator may be a dedicated elevator in which only the robot 1 boards.

구체적으로, 도6(a)에 나타난 바와 같이, 엘리베이터의 천장은 사각형(R)으로 나타날 수 있으며, 도6(b)에 나타난 바와 같이, 주변 영상 내 나타난 사각형의 천장형상으로부터 해당 엘리베이터의 특정특징점(F1, F2, F3)들을 추출할 수 있다. 예를들어, 사각형 형상을 형성하는 각 변들의 기울기(F1, F2), 주변 영상의 중심점이 사각형 형상 내 위치하는 좌표정보(F3) 등을 기반으로, 엘리베이터 내 로봇(1)의 위치 및 포즈에 대한 측위정보를 생성할 수 있다. 또한, 지도데이터베이스(140) 내에는 대상영역(A) 내 엘리베이터가 설치된 엘리베이터 공간에 대한 정보와, 각각의 엘리베이터에서 추출하는 특정특징점의 종류 등을 포함하는 엘리베이터 지도가 포함되어 있을 수 있다. 따라서, 엘리베이터 측위모듈(V4)은 로봇(1)에서 촬영된 주변 영상을 쿼리 이미지로 하여, 쿼리 이미지 내에서 엘리베이터의 특정특징점을 추출할 수 있으며, 특정특징점을 기반으로, 쿼리 이미지에 대한 위치 및 포즈를 포함하는 측위정보를 구할 수 있다.Specifically, as shown in FIG. 6 (a), the ceiling of the elevator may appear as a rectangle (R), and as shown in FIG. (F1, F2, F3) can be extracted. For example, the location and pose of the robot 1 in the elevator are determined based on the slopes (F1, F2) of each side forming the rectangular shape and the coordinate information (F3) where the center point of the surrounding image is located within the rectangular shape. It is possible to generate positioning information for In addition, the map database 140 may include an elevator map including information about the elevator space where the elevator is installed in the target area A and the type of specific feature points extracted from each elevator. Therefore, the elevator positioning module V4 may extract a specific feature point of the elevator from the query image by using the surrounding image captured by the robot 1 as a query image, and based on the specific feature point, the location and location of the query image Positioning information including a pose may be obtained.

한편, 엘리베이터 측위모듈(V4)은 엘리베이터 공간에 한하여 측위를 수행할 수 있으므로, 측위모듈 결정부(120)는 로봇(1)이 위치하는 공간의 공간특성이 엘리베이터 공간이면, 측위모듈로 엘리베이터 측위모듈(V3)을 적용할 수 있다.On the other hand, since the elevator positioning module V4 can perform positioning only in the elevator space, the positioning module determination unit 120 determines that the positioning module is the elevator positioning module if the space characteristic of the space where the robot 1 is located is the elevator space. (V3) can be applied.

추가적으로, 여기서는 측위모듈 결정부(120)가 각각의 공간들의 공간특성을 기반으로 측위모듈을 결정하는 것으로 가정하였으나, 실시예에 따라서는 하나의 측위모듈을 이용한 측위 실패시 다른 측위모듈을 이용하도록 구현하는 것도 가능하다. 예를들어, 측위모듈 결정부(120)는 메인측위모듈(V1)을 기본으로 설정하여 측위를 수행하도록 할 수 있으며, 이후 메인측위모듈(V1)에 의한 측위의 정확도가 떨어지는 등 측위에 실패하면 마커 측위모듈(V2)이나 사이니지 측위모듈(V3)을 적용하도록 측위모듈을 변경할 수 있다. Additionally, here, it is assumed that the positioning module determiner 120 determines the positioning module based on the spatial characteristics of each space, but according to the embodiment, when positioning using one positioning module fails, another positioning module is used. It is also possible to do For example, the positioning module determiner 120 may set the main positioning module V1 as a basis to perform positioning, and then, if the positioning fails, such as low accuracy of positioning by the main positioning module V1. The positioning module can be changed to apply the marker positioning module (V2) or the signage positioning module (V3).

구체적으로, 메인 측위모듈(V1)은 쿼리 이미지에 대응하는 참조 이미지를 매칭시킨 후, RANSAC(Random Sample Consensus) 알고리즘 기반의 PNP(Perspective-N-Point)를 적용할 수 있다. 즉, PNP를 이용하여 쿼리 이미지와 참조 이미지 내에 매칭된 특징점들을 비교함으로써, 로봇(1)의 회전각도 등의 포즈를 구할 수 있다. 다만, 쿼리 이미지와 참조 이미지에서 매칭되는 특징점들 중에서 정상치(inlier)로 분류되는 특징점의 개수가 설정개수 이하인 경우가 발생할 수 있으며, 이 경우 메인 측위모듈(V1)를 이용한 공간 측위는 실패한 것으로 판별할 수 있다. 즉, 쿼리 이미지와 참조 이미지를 비교할 수 있을 정도로 매칭이 충분히 이루어지지 않은 경우에 해당하므로, 메인 측위모듈(V1)에 의한 측위의 부정확하게 나타나게 된다. 따라서, 측위모듈 결정부(120)는 메인 측위모듈(V1)을 대신하여, 마커 측위모듈(V2)이나 사이니지 측위모듈(V3)을 적용할 수 있으며, 실시예에 따라서는, 마커 측위모듈(V2)과 사이니지 측위모듈(V3)을 동시에 적용하도록 할 수 있다.Specifically, the main positioning module V1 may apply Perspective-N-Point (PNP) based on a Random Sample Consensus (RANSAC) algorithm after matching a reference image corresponding to a query image. That is, a pose such as a rotation angle of the robot 1 may be obtained by comparing matched feature points in the query image and the reference image using PNP. However, among the matching feature points in the query image and the reference image, there may be a case where the number of feature points classified as inlier is less than the set number, and in this case, spatial positioning using the main positioning module V1 is determined to have failed. can That is, since it corresponds to a case in which matching is not sufficiently performed to be able to compare the query image and the reference image, positioning by the main positioning module V1 appears inaccurately. Therefore, the positioning module determination unit 120 may apply the marker positioning module V2 or the signage positioning module V3 instead of the main positioning module V1, and depending on the embodiment, the marker positioning module ( V2) and the signage positioning module (V3) can be applied simultaneously.

대상영역(A) 내 포함되는 공간들 중에는 특성상 메인 측위모듈(V1)에 의한 공간 측위가 어려운 공간이 존재할 수 있으며, 이러한 공간 내에는 미리 마커나 사이니지 등을 부착해둘 수 있다. 따라서, 측위모듈 결정부(120)는 메인 측위모듈(V1)에 의한 측위에 실패하는 경우, 메신 측위모듈(V1)을 대신하여 마커 측위모듈(V1)이나 사이니지 측위모듈(V2)을 이용한 측위를 시도하도록 구현할 수 있다.Among the spaces included in the target area A, there may be spaces in which positioning by the main positioning module V1 is difficult due to their characteristics, and markers or signage may be attached in advance to these spaces. Therefore, the positioning module determiner 120 performs positioning using the marker positioning module V1 or the signage positioning module V2 instead of the message positioning module V1 when positioning by the main positioning module V1 fails. can be implemented to try.

측위부(130)는 측위모듈을 이용하여 주변 영상으로부터 로봇에 대한 측위정보를 생성할 수 있다. 즉, 메인 측위모듈(V1), 마커 측위모듈(V2), 사이니지 측위모듈(V3), 엘리베이터 측위모듈(V4) 등에 따라, 각각 측위를 수행하여 측위정보를 생성할 수 있다. 다만, 각각의 측위모듈에서 수행하는 구체적인 측위방법은 앞서 설명하였으므로, 여기서는 구체적인 내용을 생략한다.The positioning unit 130 may generate positioning information for the robot from surrounding images using a positioning module. That is, according to the main positioning module V1, the marker positioning module V2, the signage positioning module V3, and the elevator positioning module V4, positioning information may be generated by performing positioning, respectively. However, since the detailed positioning method performed by each positioning module has been described above, detailed description thereof will be omitted.

한편, 측위모듈 결정부(120)는 복수의 측위모듈을 동시에 적용할 수 있으며, 이 경우 측위부(130)는 복수의 측위모듈을 이용하여 측위를 수행할 수 있다. 구체적으로, 측위부(130)는 각각의 측위모듈에서 측정한 측위정보를 취합하여 최종 측위정보를 생성할 수 있으며, 이때 각각의 측위모듈들에 대한 가중치를 설정하고, 각각의 가중치가 적용된 측위정보들을 결합하여 최종 측위정보를 생성하도록 할 수 있다. 예를들어, 메인 측위모듈(V1)과 마커 측위모듈(V2)이 동시에 선택된 경우, 메인 측위모듈(V1)의 가중치를 1로 두고 마커 측위모듈(V2)의 가중치를 9로 설정하여, 최종 측위정보를 생성하도록 할 수 있다. 이외에도, 센서 퓨전(sensor fusion) 분야에서 널리 사용하는 포즈 그래프 최적화(pose graph optimization)기법이나 칼만 필터(kalman filter) 등을 활용하여, 각각의 측위모듈에서 측정한 측위정보를 결합할 수 있다. 실시예에 따라서는 포즈 그래프 최적화 기법 중에서 Dynamic Covariance Scaling 기법을 활용할 수 있으며, 이를 통하여 일부 부정확한 포즈가 입력되더라도, 최적화 과정에서 covariance를 조절하여 강인하게 포즈 추정을 수행하도록 할 수 있다.Meanwhile, the positioning module determination unit 120 may simultaneously apply a plurality of positioning modules, and in this case, the positioning unit 130 may perform positioning using a plurality of positioning modules. Specifically, the positioning unit 130 may generate final positioning information by collecting positioning information measured by each positioning module, and at this time, set weights for each positioning module, and positioning information to which each weight is applied. By combining them, it is possible to generate final positioning information. For example, when the main positioning module V1 and the marker positioning module V2 are selected at the same time, the weight of the main positioning module V1 is set to 1 and the weight of the marker positioning module V2 is set to 9, and the final positioning is performed. information can be generated. In addition, positioning information measured by each positioning module may be combined using a pose graph optimization technique or a Kalman filter widely used in the field of sensor fusion. Depending on the embodiment, the dynamic covariance scaling technique can be used among pose graph optimization techniques, and through this, even if some inaccurate poses are input, it is possible to perform robust pose estimation by adjusting covariance in the optimization process.

도7은 본 발명의 일 실시예에 의한 제어서버(100)를 나타내는 블록도이다. 7 is a block diagram showing the control server 100 according to an embodiment of the present invention.

도7을 참조하면, 제어서버(100)는 메모리(10), 프로세서(20), 통신 인터페이스(30), 입출력 인터페이스(40) 등을 포함할 수 있다. 메모리(10)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(10)와는 구분되는 별도의 영구 저장 장치로서 제어서버(100)에 포함될 수도 있다. 또한, 메모리(10)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(10)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(10)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(30)를 통해 메모리(10)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(N)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 제어서버(100)의 메모리(10)에 로딩될 수 있다.Referring to FIG. 7 , the control server 100 may include a memory 10, a processor 20, a communication interface 30, an input/output interface 40, and the like. The memory 10 is a computer-readable recording medium and may include a random access memory (RAM), a read only memory (ROM), and a permanent mass storage device such as a disk drive. Here, a non-perishable mass storage device such as a ROM and a disk drive may be included in the control server 100 as a separate permanent storage device distinct from the memory 10. Also, an operating system and at least one program code may be stored in the memory 10 . These software components may be loaded into the memory 10 from a computer-readable recording medium separate from the memory 10 . The separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, and a memory card. In another embodiment, software components may be loaded into the memory 10 through the communication interface 30 rather than a computer-readable recording medium. For example, software components may be loaded into the memory 10 of the control server 100 based on a computer program installed by files received through the network N.

프로세서(20)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(10) 또는 통신 인터페이스(30)에 의해 프로세서(20)로 제공될 수 있다. 예를 들어 프로세서(20)는 메모리(10)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processor 20 may be configured to process commands of a computer program by performing basic arithmetic, logic, and input/output operations. Instructions may be provided to processor 20 by memory 10 or communication interface 30 . For example, processor 20 may be configured to execute received instructions according to program codes stored in a recording device such as memory 10 .

통신 인터페이스(30)은 네트워크(N)를 통해 제어서버(100)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 제어서버(100)의 프로세서(20)가 메모리(10)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(30)의 제어에 따라 네트워크(N)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(N)를 거쳐 제어서버(100)의 통신 인터페이스(30)를 통해 수신될 수 있다. 통신 인터페이스(30)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(20)나 메모리(10)로 전달될 수 있고, 파일 등은 제어서버(100)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The communication interface 30 may provide a function for the control server 100 to communicate with other devices (eg, the storage devices described above) through the network N. For example, the processor 20 of the control server 100 generates a request, command, data, file, etc. according to a program code stored in a recording device such as the memory 10 under the control of the communication interface 30 to the network ( N) can be transmitted to other devices. Conversely, signals, commands, data, files, etc. from other devices may be received through the communication interface 30 of the control server 100 via the network N. Signals, commands, data, etc. received through the communication interface 30 may be transmitted to the processor 20 or memory 10, and files may be stored as storage media that the control server 100 may further include (described above). permanent storage).

입출력 인터페이스(40)는 입출력 장치(50)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(40)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(50)는 제어서버(100)와 하나의 장치로 구성될 수도 있다.The input/output interface 40 may be a means for interface with the input/output device 50 . For example, the input device may include a device such as a microphone, keyboard, or mouse, and the output device may include a device such as a display or speaker. As another example, the input/output interface 40 may be a means for interface with a device in which functions for input and output are integrated into one, such as a touch screen. The input/output device 50 may be configured as one device with the control server 100.

도8은 본 발명의 일 실시예에 의한 시각적 측위를 이용하는 제어시스템이 구축된 건물(B)을 나타내는 개략도이다. 도8에 도시한 바와 같이, 건물(B)을 대상영역으로 설정할 수 있으며, 대상영역 내에서 서비스를 제공하는 복수의 로봇(1)들이 건물(B) 내 포함될 수 있다. 또한, 건물(B)은 로봇이 주행하는 실내 영역을 포함하고, 실내 영역은 공간특성에 따라 복수의 공간으로 구별되는 것일 수 있다. 여기서, 건물(B)은 복수의 공간 중에서 마커가 부착된 마커공간, 사이니지를 포함하는 사이니지 공간, 엘리베이터를 포함하는 엘리베이터 공간 등을 포함할 수 있다. 로봇(1)은 네트워크(N)를 통하여 제어서버(100)와의 통신을 수행할 수 있으며, 제어서버(100)의 제어에 의하여 이동 등의 동작을 수행할 수 있다. 제어서버(100)는 건물(B) 내에 구축되지 않을 수 있으며, 건물(B)과는 별도의 클라우드 서버 등으로 구현될 수 있다. 8 is a schematic diagram showing a building B in which a control system using visual positioning according to an embodiment of the present invention is built. As shown in FIG. 8, a building B can be set as a target area, and a plurality of robots 1 providing services within the target area can be included in the building B. In addition, the building B may include an indoor area in which a robot travels, and the indoor area may be divided into a plurality of spaces according to spatial characteristics. Here, the building B may include a marker space with markers attached thereto, a signage space including signage, and an elevator space including elevators among a plurality of spaces. The robot 1 can communicate with the control server 100 through the network N, and can perform operations such as movement under the control of the control server 100. The control server 100 may not be built in the building (B), and may be implemented as a cloud server separate from the building (B).

제어서버(100)는 로봇(1)에 구비된 카메라로부터 취득한 주변 영상을 기반으로, 건물(B) 내 각각의 로봇(1)의 위치를 판별하는 시각적 측위를 수행할 수 있다. 제어서버(100)의 구체적인 동작에 대하여는 앞서 설명하였으므로, 여기서는 구체적인 설명을 생략한다.The control server 100 may perform visual positioning to determine the position of each robot 1 in the building B based on the surrounding image obtained from the camera provided in the robot 1. Since the specific operation of the control server 100 has been described above, a detailed description thereof will be omitted.

도9는 본 발명의 일 실시예에 의한 시각적 측위방법을 나타내는 순서도이다. 여기서, 도9의 각 단계들은 본 발명의 일 실시예에 의한 제어서버에 의하여 수행될 수 있다. 9 is a flowchart illustrating a visual positioning method according to an embodiment of the present invention. Here, each step of FIG. 9 may be performed by a control server according to an embodiment of the present invention.

제어서버는 로봇으로부터, 로봇이 위치하는 공간에 대한 주변 영상을 입력받을 수 있다(S10). 로봇은 자체에 설치된 카메라를 이용하여 이동 중에 주변을 촬영한 주변영상을 생성할 수 있으며, 촬영한 주변 영상을 네트워크를 통해 제어서버로 전송할 수 있다. 실시예에 따라서는, 로봇에 근접한 사물이나 사람 등에 의하여 주변 영상이 가려지는 것을 최소화하기 위하여, 카메라를 연직상방을 향하도록 설치할 수 있다. 즉, 주변 영상은 로봇의 상방을 촬영하여 대상영역의 천장을 촬영한 영상일 수 있다.The control server may receive an input of a surrounding image of a space where the robot is located from the robot (S10). The robot can create a surrounding image that captures the surroundings while moving using a camera installed in itself, and can transmit the captured surrounding image to the control server through a network. Depending on the embodiment, in order to minimize obstruction of surrounding images by objects or people close to the robot, the camera may be installed to face vertically upward. That is, the surrounding image may be an image obtained by photographing the ceiling of the target area by photographing the upper side of the robot.

제어서버는 공간에 설정된 공간특성에 따라, 측위모듈을 선택할 수 있다(S20). 즉, 제어서버 내에는 복수의 측위모듈들이 포함되어 있을 수 있으며, 제어서버는 복수의 측위모듈 중에서 현재 로봇이 위치하는 공간의 공간특성에 가장 적합한 측위모듈을 선택할 수 있다. The control server may select a positioning module according to the spatial characteristics set in the space (S20). That is, a plurality of positioning modules may be included in the control server, and the control server may select a positioning module most suitable for the spatial characteristics of the space where the robot is currently located from among the plurality of positioning modules.

구체적으로, 대상영역은 복수의 공간들로 구분될 수 있으며, 지도데이터베이스 내에 저장된 지도정보 내에는 대상영역 내 포함된 각각의 공간들에 대한 공간특성이 미리 설정되어 있을 수 있다. 따라서, 제어서버는 로봇이 위치하는 각각의 공간들을 구별한 후, 각 공간들의 공간특성에 따라 가장 적절한 측위모듈을 선택함으로써, 보다 정확하고 빠르게 해당 공간 내에서의 시각적 측위를 수행하도록 할 수 있다.Specifically, the target area may be divided into a plurality of spaces, and spatial characteristics of each space included in the target area may be previously set in map information stored in a map database. Therefore, the control server can perform visual positioning within the space more accurately and quickly by selecting the most appropriate positioning module according to the spatial characteristics of each space after distinguishing each space where the robot is located.

여기서, 제어서버는 먼저 각각의 로봇들이 현재 어느 공간에 위치하는 지를 판별할 필요가 있으며, 이를 위하여 제어서버는 대상영역에 대응하는 지도정보와 로봇의 직전 측위정보를 활용할 수 있다. 즉, 제어서버는 로봇의 직전 측위정보를 기반으로 현재 로봇이 위치하는 지도정보 상에 어느 공간인지를 판별할 수 있으며, 이를 이용하여 해당 공간에 설정된 공간특성을 추출할 수 있다. 또한, 실시예에 따라서는, 로봇에 포함된 별도의 IMU 센서나 휠 인코더 센서 등으로부터 수신한 센서값을 이용하여 로봇의 오도메트리(odometry)를 구할 수 있으므로, 제어서버가 직전 측위정보에 해당 오도메트리를 적용하여, 현재 로봇이 위치하는 공간을 정확하게 특정하는 것도 가능하다.Here, the control server first needs to determine in which space each robot is currently located, and for this, the control server can utilize map information corresponding to the target area and positioning information immediately before the robot. That is, the control server can determine which space is on the map information where the robot is currently located based on the previous positioning information of the robot, and can extract the spatial characteristics set in the corresponding space using this. In addition, depending on the embodiment, since the odometry of the robot can be obtained using sensor values received from a separate IMU sensor or wheel encoder sensor included in the robot, the control server corresponds to the previous positioning information. It is also possible to accurately specify the space where the robot is currently located by applying odometry.

여기서, 측위모듈은 메인 측위모듈, 마커 측위모듈, 사이니지 측위모듈, 엘리베이터 측위모듈 등을 포함할 수 있다. 마커 측위모듈은 주변 영상으로부터 마커를 추출하고, 마커로부터 인식한 좌표정보를 기반으로 로봇의 측위정보를 생성할 수 있다. 사이니지 측위모듈은 주변 영상으로부터 사이니지를 추출하고, 사이니지의 좌표정보를 구한 후, 사이니지의 좌표정보를 기반으로 로봇의 측위정보를 생성할 수 있다. 엘리베이터 측위모듈은 주변 영상으로부터 엘리베이터의 특정특징점을 추출하고, 특정특징점을 기반으로 로봇의 측위정보를 생성할 수 있다. 메인 측위모듈은 주변 영상으로부터 특징점을 추출하고, 특징점을 지도정보 내 특징점들과 비교하여, 로봇의 측위정보를 생성할 수 있다.Here, the positioning module may include a main positioning module, a marker positioning module, a signage positioning module, an elevator positioning module, and the like. The marker positioning module may extract markers from surrounding images and generate robot positioning information based on coordinate information recognized from the markers. The signage positioning module extracts the signage from the surrounding image, obtains the coordinate information of the signage, and then generates the positioning information of the robot based on the coordinate information of the signage. The elevator positioning module may extract specific feature points of the elevator from surrounding images and generate positioning information of the robot based on the specific feature points. The main positioning module may generate positioning information of the robot by extracting feature points from surrounding images and comparing the feature points with feature points in map information.

실시예에 따라서는, 제어서버가 메인 측위모듈을 1차적으로 측위모듈로 선택한 후, 공간특성에 따라 마커 측위모듈, 사이니지 측위모듈, 엘리베이터 측위모듈 등으로 전환하도록 할 수 있다. 즉, 메인 측위모듈은 전체 대상영역에 대한 시각적 측위를 수행할 수 있으므로, 메인 측위모듈을 기본 모듈로 활용하다가 공간특성에 따라 특화된 측위모듈이 존재하는 경우에는 해당 측위모듈로 전환하도록 할 수 있다. 또한, 다른 실시예에서는 메인 측위모듈과 함께, 각각의 공간특성에 따라 추가된 측위모듈을 동시에 동작하도록 하는 것도 가능하다.Depending on the embodiment, after the control server primarily selects the main positioning module as a positioning module, it can be switched to a marker positioning module, a signage positioning module, an elevator positioning module, etc. according to spatial characteristics. That is, since the main positioning module can perform visual positioning for the entire target area, the main positioning module can be used as a basic module and switched to the corresponding positioning module if there is a positioning module specialized according to spatial characteristics. Further, in another embodiment, it is also possible to simultaneously operate the positioning module added according to each spatial characteristic along with the main positioning module.

제어서버는 선택된 측위모듈을 이용하여 주변 영상으로부터 로봇에 대한 측위정보를 생성할 수 있다(S30). 즉, 메인 측위모듈, 마커 측위모듈, 사이니지 측위모듈, 엘리베이터 측위모듈 등에 따라, 각각 측위를 수행하여 측위정보를 생성할 수 있다. 다만, 각각의 측위모듈에서 수행하는 구체적인 측위방법은 앞서 설명하였으므로, 여기서는 구체적인 내용을 생략한다.The control server may generate positioning information for the robot from surrounding images using the selected positioning module (S30). That is, positioning information may be generated by performing positioning according to a main positioning module, a marker positioning module, a signage positioning module, an elevator positioning module, and the like. However, since the detailed positioning method performed by each positioning module has been described above, detailed description thereof will be omitted.

한편, 제어서버는 복수의 측위모듈을 동시에 선택할 수 있으며, 선택된 복수의 측위모듈을 동시에 이용하여 측위를 수행할 수 있다. 구체적으로, 제어서버는 각각의 측위모듈에서 측정한 측위정보를 취합하여 최종 측위정보를 생성할 수 있으며, 이때 각각의 측위모듈들에 대한 가중치를 설정하고, 각각의 가중치가 적용된 측위정보들을 결합하여 최종 측위정보를 생성하도록 할 수 있다. 또한, 실시예에 따라서는, 센서 퓨전(sensor fusion) 분야에서 널리 사용하는 포즈 그래프 최적화(pose graph optimization)기법이나 칼만 필터(kalman filter) 등을 활용하여, 각각의 측위모듈에서 측정한 측위정보를 결합하는 것도 가능하다.Meanwhile, the control server may select a plurality of positioning modules at the same time, and may perform positioning using the selected plurality of positioning modules at the same time. Specifically, the control server may collect positioning information measured by each positioning module to generate final positioning information. It is possible to generate final positioning information. In addition, depending on the embodiment, positioning information measured by each positioning module is utilized by using a pose graph optimization technique or a Kalman filter widely used in the field of sensor fusion. Combining is also possible.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The above-described present invention can be implemented as computer readable code on a medium on which a program is recorded. The computer-readable medium may continuously store programs executable by the computer or temporarily store them for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or combined hardware, but is not limited to a medium directly connected to a certain computer system, and may be distributed on a network. Examples of the medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROM and DVD, magneto-optical media such as floptical disks, and ROM, RAM, flash memory, etc. configured to store program instructions. In addition, examples of other media include recording media or storage media managed by an app store that distributes applications, a site that supplies or distributes various other software, and a server. Accordingly, the above detailed description should not be construed as limiting in all respects and should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.The present invention is not limited by the foregoing embodiments and accompanying drawings. It will be clear to those skilled in the art that the components according to the present invention can be substituted, modified, and changed without departing from the technical spirit of the present invention.

1: 로봇 10: 메모리
20: 프로세서 30: 통신인터페이스
40: 입출력인터페이스 50: 입출력장치
100: 제어서버 110: 영상수신부
120: 측위모듈 결정부 130: 측위부
140: 지도데이터베이스
1: robot 10: memory
20: processor 30: communication interface
40: I/O interface 50: I/O device
100: control server 110: video receiver
120: positioning module determining unit 130: positioning unit
140: map database

Claims (11)

로봇에 구비된 카메라로부터 취득한 주변 영상을 기반으로, 대상영역 내 상기 로봇의 위치를 판별하는 제어서버의 시각적 측위(visual localization) 방법에 있어서,
상기 로봇으로부터, 상기 로봇이 위치하는 공간에 대한 주변 영상을 입력받는 단계;
상기 공간에 설정된 공간특성을 기초로, 측위모듈을 적용하는 단계; 및
상기 측위모듈을 이용하여 상기 주변 영상으로부터 상기 로봇에 대한 측위정보를 생성하는 단계를 포함하는 제어서버의 시각적 측위방법.
In the visual localization method of a control server for determining the position of the robot in a target area based on a surrounding image acquired from a camera provided in the robot,
receiving, from the robot, a surrounding image of a space in which the robot is located;
applying a positioning module based on spatial characteristics set in the space; and
and generating positioning information for the robot from the surrounding image using the positioning module.
제1항에 있어서, 상기 측위모듈을 적용하는 단계는
상기 대상영역에 대응하는 지도정보와, 상기 로봇의 측위정보 또는 상기 로봇의 오도메트리(odometry)를 기반으로 상기 로봇이 위치하는 공간을 구별하고, 상기 공간에 설정된 공간특성을 판별하는 것을 특징으로 하는 제어서버의 시각적 측위방법.
The method of claim 1, wherein the step of applying the positioning module
Distinguishing a space where the robot is located based on map information corresponding to the target area, positioning information of the robot, or odometry of the robot, and determining spatial characteristics set in the space A visual positioning method of a control server that does.
제2항에 있어서, 상기 측위모듈은
상기 주변 영상으로부터 마커(marker)를 추출하고, 상기 마커로부터 인식한 좌표정보를 기반으로 상기 로봇의 측위정보를 생성하는 마커 측위모듈;
상기 주변 영상으로부터 사이니지(signage)를 추출하고, 상기 사이니지의 좌표정보를 구한 후 상기 사이니지의 좌표정보를 기반으로 상기 로봇의 측위정보를 생성하는 사이니지 측위모듈;
상기 주변 영상으로부터 엘리베이터의 특정특징점을 추출하고, 상기 특정특징점을 기반으로 상기 로봇의 측위정보를 생성하는 엘리베이터 측위모듈; 및
상기 주변 영상으로부터 특징점을 추출하고, 상기 특징점을 상기 지도정보 내 특징점들과 비교하여, 상기 로봇의 측위정보를 생성하는 메인 측위모듈 중 적어도 어느 하나를 포함하는 것을 특징으로 하는 제어서버의 시각적 측위방법.
The method of claim 2, wherein the positioning module
a marker positioning module for extracting a marker from the surrounding image and generating positioning information of the robot based on coordinate information recognized from the marker;
a signage positioning module that extracts signage from the surrounding image, obtains coordinate information of the signage, and then generates positioning information of the robot based on the coordinate information of the signage;
an elevator positioning module for extracting specific feature points of the elevator from the surrounding images and generating positioning information of the robot based on the specific feature points; and
A visual positioning method of a control server comprising at least one of main positioning modules that extracts feature points from the surrounding image, compares the feature points with feature points in the map information, and generates positioning information of the robot. .
제3항에 있어서, 상기 측위모듈을 적용하는 단계는
상기 메인 측위모듈을 상기 측위모듈로 적용한 후, 상기 공간특성에 따라 상기 마커 측위모듈, 사이니지 측위모듈 및 엘리베이터 측위모듈 중 어느 하나로 전환하거나, 상기 측위모듈과 동시에 동작하도록 추가 적용하는 것을 특징으로 하는 제어서버의 시각적 측위방법.
The method of claim 3, wherein the step of applying the positioning module
After applying the main positioning module as the positioning module, switching to any one of the marker positioning module, signage positioning module and elevator positioning module according to the spatial characteristics, or additionally applied to operate simultaneously with the positioning module Visual positioning method of control server.
제3항에 있어서, 상기 측위모듈을 적용하는 단계는
상기 공간특성이 내부에 좌표정보를 포함하는 마커가 부착된 마커 공간이면, 상기 마커 측위모듈을 적용하는 것을 특징으로 하는 제어서버의 시각적 측위방법.
The method of claim 3, wherein the step of applying the positioning module
If the spatial characteristic is a marker space to which a marker including coordinate information is attached, the marker positioning module is applied.
제3항에 있어서, 상기 측위모듈을 적용하는 단계는
상기 공간특성이 내부의 미리 지정된 위치에 설정규격으로 설치되는 사이니지를 포함하는 사이니지 공간이면, 상기 사이니지 측위모듈을 적용하는 것을 특징으로 하는 제어서버의 시각적 측위방법.
The method of claim 3, wherein the step of applying the positioning module
The visual positioning method of the control server, characterized in that the application of the signage positioning module if the space characteristic is a signage space including a signage installed to a set standard in a predetermined location inside.
제3항에 있어서, 상기 측위모듈을 적용하는 단계는
상기 공간특성이 엘리베이터 공간이면, 상기 엘리베이터 측위모듈을 적용하는 것을 특징으로 하는 제어서버의 시각적 측위방법.
The method of claim 3, wherein the step of applying the positioning module
If the space characteristic is an elevator space, the visual positioning method of the control server, characterized in that for applying the elevator positioning module.
하드웨어와 결합되어 제1항 내지 제8항 중 어느 한 항의 제어서버의 시각적 측위방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a medium to execute the visual positioning method of the control server according to any one of claims 1 to 8 in combination with hardware.
로봇에 구비된 카메라로부터 취득한 주변 영상을 기반으로, 대상영역 내 상기 로봇의 위치를 판별하는 시각적 측위(visual localization)를 수행하는 제어서버에 있어서,
상기 로봇으로부터, 상기 로봇이 위치하는 공간에 대한 주변 영상을 입력받는 영상수신부;
상기 공간에 설정된 공간특성을 기초로, 측위모듈을 적용하는 측위모듈 결정부; 및
상기 측위모듈을 이용하여 상기 주변 영상으로부터 상기 로봇에 대한 측위정보를 생성하는 측위부를 포함하는 제어서버.
In a control server that performs visual localization for determining the position of the robot in a target area based on a surrounding image obtained from a camera provided in the robot,
an image receiving unit that receives an input of a surrounding image of a space in which the robot is located, from the robot;
a positioning module determiner applying a positioning module based on spatial characteristics set in the space; and
A control server comprising a positioning unit generating positioning information for the robot from the surrounding images using the positioning module.
건물에 있어서,
상기 건물 내를 주행하며 서비스를 제공하는 적어도 하나의 로봇이 배치되고,
상기 로봇은 제어서버와의 통신을 통하여 제어되며,
상기 제어서버는 상기 로봇에 구비된 카메라로부터 취득한 주변 영상을 기반으로, 상기 건물 내 상기 로봇의 위치를 판별하는 시각적 측위(visual localization)를 수행하는 것으로, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고,
상기 적어도 하나의 프로세서는,
상기 로봇으로부터, 상기 로봇이 위치하는 공간에 대한 주변 영상을 입력받고,
상기 공간에 설정된 공간특성을 기초로, 측위모듈을 적용하며,
상기 측위모듈을 이용하여 상기 주변 영상으로부터 상기 로봇에 대한 측위정보를 생성하는, 건물.
in the building,
At least one robot that travels in the building and provides a service is disposed;
The robot is controlled through communication with a control server,
The control server performs visual localization for determining the location of the robot in the building based on a surrounding image acquired from a camera provided in the robot, and is implemented to execute a computer-readable command. contains one processor;
The at least one processor,
From the robot, receive an input of a surrounding image of the space where the robot is located,
Based on the spatial characteristics set in the space, a positioning module is applied,
A building that generates positioning information for the robot from the surrounding image using the positioning module.
제10항에 있어서, 상기 건물은
상기 로봇이 주행하는 실내 영역을 포함하고, 상기 실내 영역을 공간특성에 따라 복수의 공간으로 구별하여, 상기 복수의 공간 중 적어도 어느 하나에 마커 또는 사이니지를 포함하는 것을 특징으로 하는, 건물.
11. The method of claim 10, wherein the building
A building comprising an indoor area in which the robot travels, dividing the indoor area into a plurality of spaces according to spatial characteristics, and including a marker or signage in at least one of the plurality of spaces.
KR1020220004824A 2022-01-12 2022-01-12 Method for visual localization, control server and buiding using the same KR102621089B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220004824A KR102621089B1 (en) 2022-01-12 2022-01-12 Method for visual localization, control server and buiding using the same
PCT/KR2022/020966 WO2023136495A1 (en) 2022-01-12 2022-12-21 Visual positioning method, and control server and building using same method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220004824A KR102621089B1 (en) 2022-01-12 2022-01-12 Method for visual localization, control server and buiding using the same

Publications (2)

Publication Number Publication Date
KR20230108997A true KR20230108997A (en) 2023-07-19
KR102621089B1 KR102621089B1 (en) 2024-01-08

Family

ID=87279364

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220004824A KR102621089B1 (en) 2022-01-12 2022-01-12 Method for visual localization, control server and buiding using the same

Country Status (2)

Country Link
KR (1) KR102621089B1 (en)
WO (1) WO2023136495A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180076815A (en) * 2016-12-28 2018-07-06 한국과학기술원 Method and apparatus for estimating localization of robot in wide range of indoor space using qr marker and laser scanner
KR20210075619A (en) * 2019-12-13 2021-06-23 주식회사 케이티 Autonomous robot, location estimation server of autonomous robot and location estimation or autonomous robot using the same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100493159B1 (en) * 2002-10-01 2005-06-02 삼성전자주식회사 Landmark, apparatus and method for determining position of autonomous vehicles effectively
KR101739996B1 (en) * 2010-11-03 2017-05-25 삼성전자주식회사 Moving robot and simultaneous localization and map-buliding method thereof
KR20210080140A (en) * 2019-12-20 2021-06-30 주식회사 코이노 Indoor navigation method and system thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180076815A (en) * 2016-12-28 2018-07-06 한국과학기술원 Method and apparatus for estimating localization of robot in wide range of indoor space using qr marker and laser scanner
KR20210075619A (en) * 2019-12-13 2021-06-23 주식회사 케이티 Autonomous robot, location estimation server of autonomous robot and location estimation or autonomous robot using the same

Also Published As

Publication number Publication date
WO2023136495A1 (en) 2023-07-20
KR102621089B1 (en) 2024-01-08

Similar Documents

Publication Publication Date Title
US10949712B2 (en) Information processing method and information processing device
US11127203B2 (en) Leveraging crowdsourced data for localization and mapping within an environment
CN109506658B (en) Robot autonomous positioning method and system
JP2020500767A (en) Automatic vehicle parking system and method
KR102092392B1 (en) Method and system for automatically collecting and updating information about point of interest in real space
US10156847B2 (en) Autonomous moving device
US11183056B2 (en) Electronic device for generating map data and operating method therefor
KR101880185B1 (en) Electronic apparatus for estimating pose of moving object and method thereof
KR102096926B1 (en) Method and system for detecting change point of interest
US20220156973A1 (en) Information processing apparatus, information processing method, and program
KR102006291B1 (en) Method for estimating pose of moving object of electronic apparatus
JP2016157197A (en) Self-position estimation device, self-position estimation method, and program
JP7113611B2 (en) LOCATION IDENTIFICATION APPARATUS, LOCATION IDENTIFICATION PROGRAM AND LOCATION IDENTIFICATION METHOD, PHOTOGRAPHED IMAGE REGISTRATION APPARATUS, PHOTOGRAPHED IMAGE REGISTRATION PROGRAM AND PHOTOGRAPHIED IMAGE REGISTRATION METHOD
Zhang et al. Seeing Eye Phone: a smart phone-based indoor localization and guidance system for the visually impaired
Fusco et al. An indoor navigation app using computer vision and sign recognition
Hile et al. Information overlay for camera phones in indoor environments
KR102106029B1 (en) Method and system for improving signage detection performance
KR102383499B1 (en) Method and system for generating visual feature map
KR102189926B1 (en) Method and system for detecting change point of interest
US11402215B2 (en) Indoor positioning method for a moving apparatus using first and second two-dimensional maps of z-axis areas
Tsukiyama Global navigation system with RFID tags
Wei et al. An approach to navigation for the humanoid robot nao in domestic environments
KR102621089B1 (en) Method for visual localization, control server and buiding using the same
Hernández et al. Visual SLAM with oriented landmarks and partial odometry
Tas et al. High-definition map update framework for intelligent autonomous transfer vehicles

Legal Events

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