KR102631315B1 - Slam 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템 - Google Patents

Slam 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템 Download PDF

Info

Publication number
KR102631315B1
KR102631315B1 KR1020230073293A KR20230073293A KR102631315B1 KR 102631315 B1 KR102631315 B1 KR 102631315B1 KR 1020230073293 A KR1020230073293 A KR 1020230073293A KR 20230073293 A KR20230073293 A KR 20230073293A KR 102631315 B1 KR102631315 B1 KR 102631315B1
Authority
KR
South Korea
Prior art keywords
location information
module
data
vision
location
Prior art date
Application number
KR1020230073293A
Other languages
English (en)
Inventor
옥지성
Original Assignee
(주)인티그리트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)인티그리트 filed Critical (주)인티그리트
Priority to KR1020230073293A priority Critical patent/KR102631315B1/ko
Application granted granted Critical
Publication of KR102631315B1 publication Critical patent/KR102631315B1/ko

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/86Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • G01S17/8943D imaging with simultaneous measurement of time-of-flight at a 2D array of receiver pixels, e.g. time-of-flight cameras or flash lidar
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • 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
    • 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, 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/0257Control of position or course in two dimensions specially adapted to land vehicles using a radar
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/337Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras

Landscapes

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

Abstract

본 발명은 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템에 관한 것으로, 해결하고자 하는 과제는 시각 정보에 기반한 이미지 및 좌표 정보를 매칭하여 데이터베이스를 구성하고, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 데이터베이스 간의 유사도 검사를 수행하여 시각 정보를 이용해 위치정보를 추정한 후 추정된 정보를 통해 라이다(LiDAR) 및 오도메트리(Odometry)에 의해 추정된 위치를 재조정하는데 있다.
일례로, 센서 모듈 및 비전 모듈을 포함하는 자율주행로봇; 및 DB 모듈, 위치정보 추출 모듈 및 위치정보 재설정 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함하고, 상기 DB 모듈은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하고, 상기 센서 모듈은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하고, 상기 비전 모듈은, 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하고, 상기 위치정보 추출 모듈은, 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하고, 상기 위치정보 재설정 모듈은, 상기 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 위치정보를 재설정하여 보정하는 시스템을 개시한다.

Description

SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템{SYSTEM CAPABLE OF CORRECTING LOCATION ERRORS USING REAL-TIME ANALYSIS AND CONTRAST BETWEEN VISION DATA AND LIDAR DATA FOR THE IMPLEMENTATION OF SIMULTANEOUS LOCALIZATION AND MAP-BUILDING TECHNOLOGY}
본 발명의 실시예는 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템에 관한 것이다.
자율주행이란 로봇이나 사용자의 개입 없이 스스로 판단하여 목적지까지 주행하는 것을 말한다. 이를 위해서는 주행하려는 환경의 2차원 또는 3차원 지도가 필요하다. 2차원 지도는 평면으로 지도를 만들기 때문에 2차원 센서에 인식되지 않은 장애물은 매핑이 되지 않는다.
로봇이 환경정보가 없는 공간에서 자율주행으로 목적지까지 안전하게 도착하기 위해 라이다(LiDAR), 카메라 등의 센서를 이용하여 공간의 지도를 작성하는 동시에 로봇 자신의 위치를 추정하는 기술을 SLAM(Simultaneous Localization and Mapping)이라고 한다.
SLAM 기술 중 Vision-Based SLAM(vSLAM)은 영상센서(카메라)를 사용하여 3차원 지도를 작성할 수 있는 방법으로, 카메라는 시야가 좁기 때문에 카메라만을 이용해 매핑하면 누락되는 데이터가 발생될 수 있다.
이때, 카메라는 크게 'Monocular', 'Stereo', 'RGB-D'의 3가지 종류로 나눌 수 있다. 여기서, 'Monocular Camera'는 카메라 센서를 하나만 사용한다. 따라서 구조가 매우 단순하고, 값이 싸다는 장점이 있으나, 깊이(depth) 또는 거리(distance) 정보를 잃게 되기 때문에, 'Monocular SLAM'에서는 카메라 이동에 따른 연속된 이미지를 통해 'motion', 'distance', 'object'의 'size' 등을 예측할 수 있다.
vSLAM의 프레임 워크는 'Sensor Data Acquisition', 'Visual Odometry(VO)', 'Backend Filtering/Optimization', 'Loop Closing', 'Reconstruction'로 구성될 수 있다.
' Sensor Data Acquisition'은 카메라 이미지를 얻고, 전처리하는 과정으로서, 움직이는 로봇으로부터 'motor encoder'와 'IMU 센서 값'을 얻을 수 있고, 'synchronization' 과정도 수행될 수 있다.
'Visual Odometry(VO)'는 인접한 프레임 간에 카메라가 어떻게 이동했는지를 추정하고, 대략적인 로컬 맵(local map)을 만들 수 있다.
'Backend Filtering/Optimization'은 서로 다른 타임 스탭(time step)에서의 카메라 포즈와 'loop closing' 결과를 받아 최적화 알고리즘을 적용하여 최적화된 궤적(trajectory)과 맵을 만들 수 있다.
'Loop Closing'은 누적된 드리프트(drift)를 줄이기 위해 로봇이 이전 위치로 돌아갔는지를 결정하여 'backend'에서의 'optimization'에 해당 정보(로봇이 이전 위치로 돌아갔는지)를 제공할 수 있다. 여기서, 드리프트(drift) 문제란, 'Visual Odometry'에서 오차가 지속적으로 발생하는데 이것이 쌓여 발생하는 문제를 의미한다.
'Reconstruction'은 추정한 카메라 궤적(trajectory)에 따라 로봇의 임무(task)에 따른 맵(map)을 구성할 수 있다.
상술한 바와 같이, 'Visual Odometry'는 인접 이미지 프레임 사이의 카메라 움직임을 추정하고 이를 타입 스탭(time step)에 따라 연결시키는데, 이때 각 타임 스탭(time step)에서 발생한 오류가 다음 'Visual Odometry'에 적용되기 때문에, 오류가 계속해서 쌓이게 되는데, 이러한 문제를 'accumulated drift problem'이라고 한다.
'Loop Closing'은 'accumulated drift problem'을 해결하기 위한 방법으로, 로봇이 어느 정도 움직인 후 제자리에 돌아왔다고 가정했을 때, 그때의 오류로 인해 추정 결과는 원점으로 되돌아오지 않을 수도 있다. 만약, 로봇이 원점으로 돌아왔다는 것을 알도록 하는 방법이 있다면, 추정된 위치정보를 원점으로 당겨 옴으로써 오류를 제거할 수 있다.
로봇이 원점을 인식하는 방법으로 시작점에 마커(marker)를 두는 방법이 있으며, 로봇이 마커(maker)를 인식할 경우 로봇이 시작점으로 돌아왔음을 알 수 있다.
그러나, 마커(marker)는 환경의 영향을 많이 받기 때문에, 마커(marker)보다는 이미지 자체를 이용하여 'Loop Closing'을 구하는 것이 바람직하다.
공개특허공보 제10-2022-0152451호(공개일자: 2022년11월16일)
본 발명의 실시예는, 시각 정보에 기반한 이미지 및 좌표 정보를 매칭하여 데이터베이스를 구성하고, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 데이터베이스 간의 유사도 검사를 수행하여 시각 정보를 이용해 위치정보를 추정한 후 추정된 정보를 통해 라이다(LiDAR) 및 오도메트리(Odometry)에 의해 추정된 위치를 재조정하는 클라우드 장치와 연동하는 SLAM 위치 오차 보정 시스템을 제공한다.
본 발명의 일 실시예에 따른 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템은, 센서 모듈 및 비전 모듈을 포함하는 자율주행로봇; 및 DB 모듈, 위치정보 추출 모듈 및 위치정보 재설정 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함하고, 상기 DB 모듈은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하고, 상기 센서 모듈은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하고, 상기 비전 모듈은, 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하고, 상기 위치정보 추출 모듈은, 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하고, 상기 위치정보 재설정 모듈은, 상기 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 위치정보를 재설정하여 보정할 수 있다.
또한, 상기 DB 모듈은, 비전데이터로부터 각각 추출된 DB 벡터데이터 및 각각의 비전데이터가 생성된 좌표정보를 나타내는 표준 위치정보를 서로 매칭하여 데이터 세트를 각각 생성하고, 생성된 다수의 데이터 세트를 상기 설정영역에 따라 그룹화하여 다수의 위치그룹을 생성하는 위치그룹 생성부; 및 상기 위치그룹 생성부를 통해 생성된 위치그룹의 데이터 세트를 저장하는 위치그룹 관리부를 포함할 수 있다.
또한, 상기 비전 모듈은, 자율주행로봇에 설치되어 서로 다른 방향 또는 각도에 대하여 촬영하는 적어도 두 개의 카메라를 통해 자율주행로봇의 주행영상을 각각 생성하는 주행영상 생성부; 자율주행로봇의 주행영상에 대한 이미지를 각각 획득하고, 획득된 이미지 별로 이미지 아이디를 각각 부여하는 주행이미지 획득부; 및 상기 주행이미지 획득부를 통해 획득된 각각의 이미지로부터 현재 벡터데이터를 추출하여 비전인식결과로서 제공하는 벡터데이터 추출부를 포함할 수 있다.
또한, 상기 위치정보 추출 모듈은, 상기 비전 모듈로부터 현재 벡터데이터를 입력 받고, 상기 센서 모듈로부터 추정 위치정보 및 특정된 위치그룹 정보를 각각 입력 받는 데이터 입력부; 상기 데이터 입력부를 통해 입력된 위치그룹 정보에 따라 상기 DB 모듈에 저장된 위치그룹을 선정하는 위치그룹 선정부; 상기 위치그룹 선정부를 통해 선정된 위치그룹에 속하는 DB 벡터데이터들과 상기 데이터 입력부를 통해 입력된 현재 벡터데이터 간의 코사인 유사도 점수를 각각 산출하는 유사도 결과 산출부; 및 상기 유사도 결과 산출부를 통해 산출된 유사도 점수 중 가장 높은 유사도 점수가 미리 설정된 기준 점수를 초과하는지 여부를 확인하고, 초과하는 경우 가장 높은 유사도 점수의 DB 벡터데이터와 매칭된 표준 위치정보를 추출하여 제공하는 위치정보 제공부를 포함할 수 있다.
또한, 상기 위치정보 재설정 모듈은, 상기 센서 모듈을 통해 산출된 추정 위치정보 및 상기 위치정보 제공부를 통해 제공된 표준 위치정보 간을 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 자율주행로봇의 주행 상태에 이상이 있는 것으로 판단하여 자율주행로봇이 일시 정지된 상태에서 상기 센서 모듈의 라이다(LiDAR) 및 오도메트리(Odometry)를 재설정한 후, 상기 위치정보 제공부를 통해 제공된 표준 위치정보를 라이다(LiDAR) 및 오도메트리(Odometry)의 초기 위치정보로 설정하여 위치 오차를 보정할 수 있다.
또한, 상기 클라우드 서버는, 가장 높은 유사도 점수가 상기 기준 점수를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가한 후 이전에 후보 DB에 추가된 벡터데이터들과의 유사도 비교를 수행하여 상기 기준 점수를 초과하는 경우 해당 벡터데이터의 이미지 아이디에 대한 업 카운트를 실시하고, 상기 기준 점수를 초과하지 않는 경우 새로운 이미지 아이디를 부여하여 후보 DB에 추가하되, 코사인 유사도 점수 산출 과정 및 기준 점수 비교 과정을 반복 실시하여 해당 이미지 아이디에 대한 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 가장 높은 유사도 점수를 받은 현재 벡터데이터 및 현재 벡터데이터에 해당하는 추정 위치정보들의 평균 값을 상기 DB 모듈에 추가 등록하여 상기 DB 모듈의 데이터 세트를 업데이트하는 DB 업데이트 모듈을 더 포함할 수 있다.
또한, 상기 센서 모듈은, 라이다 및 오도메트리를 통해 산출된 자율주행로봇의 추정 위치정보를 위치그룹 별로 정의된 상기 설정영역과 비교하여 자율주행로봇의 추정 위치정보에 해당하는 위치그룹을 결정할 수 있다.
본 발명의 다른 실시예에 따른 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 DB 모듈; 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하는 센서 모듈; 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하는 비전 모듈; 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하는 위치정보 추출 모듈; 상기 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 추정 위치정보를 보정하는 위치정보 재설정 모듈; 및 상기 DB 모듈에 저장된 데이터에 대한 모니터링을 수행하고 DB 모니터링 데이터를 생성하는 DB 모니터링 모듈을 포함하는 자율주행로봇; 및 상기 DB 모듈과 동기화되어 상기 DB 모듈에 저장된 데이터를 백업하는 DB 백업 모듈; 및 상기 DB 모니터링 모듈로부터 제공되는 DB 모니터링 데이터를 기반으로 상기 DB 모듈에 필요하지 않은 데이터를 판단하여 삭제하는 DB 수정 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함한다.
또한, 상기 DB 모니터링 모듈은, 비전데이터의 최초 생성 일시 정보, 비전데이터 별 가장 높은 유사도 점수에 의해 선택된 최근 일시 정보, 비전데이터 별 가장 높은 유사도 점수에 의해 선택된 횟수 정보, 및 가장 높은 유사도 점수에 의해 선택된 표준 위치정보 및 상기 센서 모듈의 추정 위치정보 간의 거리 및 방향 차이에 대한 비교 정보를 각각 모니터링 할 수 있다.
본 발명의 또 다른 실시예에 따른 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 제1 DB 모듈; 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하는 센서 모듈; 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하는 비전 모듈; 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하는 제1 위치정보 추출 모듈; 및 상기 제1 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 추정 위치정보를 보정하는 위치정보 재설정 모듈을 포함하는 자율주행로봇; 및 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 제2 DB 모듈; 및 상기 제1 위치정보 추출 모듈을 통해 표준 위치정보가 추출되지 않는 경우, 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하여 상기 제1 위치정보 추출 모듈로 제공하는 제2 위치정보 추출 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함한다.
본 발명에 따르면, 시각 정보에 기반한 이미지 및 좌표 정보를 매칭하여 데이터베이스를 구성하고, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 데이터베이스 간의 유사도 검사를 수행하여 시각 정보를 이용해 위치정보를 추정한 후 추정된 정보를 통해 라이다(LiDAR) 및 오도메트리(Odometry)에 의해 추정된 위치를 재조정하는 SLAM 위치 오차 보정 시스템을 제공할 수 있다.
도 1은 본 발명의 제1 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이다.
도 2는 본 발명의 제1 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.
도 3은 본 발명의 제1 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이다.
도 4는 본 발명의 제1 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이다.
도 5는 본 발명의 제1 실시예에 따른 위치그룹을 선택의 예시를 나타낸 그래프이다.
도 6은 본 발명의 제1 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이다.
도 7은 본 발명의 실시예에 따른 위치정보 재설정 모듈의 위치 재조정에 따른 동작 프로세스를 설명하기 위해 나타낸 도면이고,
도 8은 본 발명의 제1 실시예에 따른 DB 업데이트 모듈의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.
도 9는 본 발명의 제2 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이다.
도 10은 본 발명의 제2 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.
도 11은 본 발명의 제2 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이다.
도 12는 본 발명의 제2 실시예에 따른 위치그룹을 선택의 예시를 나타낸 그래프이다.
도 13은 본 발명의 제2 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이다.
도 14는 본 발명의 제2 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이다.
도 15는 본 발명의 제2 실시예에 따른 DB 업데이트 모듈의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.
도 16은 본 발명의 제3 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이다.
도 17은 본 발명의 제3 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.
도 18은 본 발명의 제3 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이다.
도 19는 본 발명의 제3 실시예에 따른 위치그룹을 선택의 예시를 나타낸 그래프이다.
도 20은 본 발명의 제3 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이다.
도 21은 본 발명의 제3 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이다.
도 22는 본 발명의 제3 실시예에 따른 DB 업데이트 모듈의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 제1 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이고, 도 2는 본 발명의 제1 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이고, 도 3은 본 발명의 제1 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이고, 도 4는 본 발명의 제1 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이고, 도 5는 본 발명의 제1 실시예에 따른 위치그룹을 선택의 예시를 나타낸 그래프이고, 도 6은 본 발명의 제1 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이고, 도 7은 본 발명의 실시예에 따른 위치정보 재설정 모듈의 위치 재조정에 따른 동작 프로세스를 설명하기 위해 나타낸 도면이며, 도 8은 본 발명의 제1 실시예에 따른 DB 업데이트 모듈의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.
도 1을 참조하면, 제1 실시예에 따른 SLAM 위치 오차 보정 시스템(100)은 자율주행로봇(110) 및 클라우드 서버(120) 중 적어도 하나를 포함할 수 있다.
상기 자율주행로봇(110)은 센서 모듈(111)과 비전 모듈(112) 중 적어도 하나를 포함하고, 클라우드 서버(120)는 DB 모듈(121), 위치정보 추출 모듈(122), 위치정보 재설정 모듈(123) 및 DB 업데이트 모듈(124) 중 적어도 하나를 포함할 수 있다.
상기 자율주행로봇(110)은 인터넷 통신망을 통해 클라우드 서버(120)와 연결되어 클라우드 서버(120)와 연동하는 방식으로 위치 오차 보정을 위한 동작을 수행할 수 있다.
이하에서는 자율주행로봇(110)에 구성된 센서 모듈(111) 및 비전 모듈(112)과, 클라우드 서버(120)에 구성된 DB 모듈(121), 위치정보 추출 모듈(122), 위치정보 재설정 모듈(123) 및 DB 업데이트 모듈(124) 순서로 각 구성요소에 대하여 상세히 설명한다.
상기 센서 모듈(111)은, 라이다(LiDAR) 및 오도메트리(Odometry) 시스템을 통해 자율주행로봇(110)의 추정 위치정보(로봇 자신의 위치를 추정한 정보)를 산출하고, 산출된 추정 위치정보에 따라 DB 모듈(121)에 정의된 다수의 위치그룹 중 어느 한 위치그룹을 특정할 수 있다.
라이다(LiDAR)는 360도 레이저 펄스를 발사하고, 그 빛이 주위의 벽이나 장애물 등 대상 물체에서 반사되어 돌아오는 시간을 계산하여 주변 환경을 인식하여 대상 객체에 대한 탐지 및 거리를 측정할 수 있다. 오도메트리(Odometry)는 엔코더(encoder)를 통한 회전수와 IMU 센서로 기울기 등을 측정함으로써 움직이고 있는 사물의 위치를 측정함으로써 맵 상에서 자신의 위치 즉, 자율주행로봇(110)의 위치(추정 위치정보)를 찾고 주행할 수 있다.
상기 센서 모듈(111)은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 산출된 자율주행로봇(110)의 추정 위치정보를 위치그룹 별로 정의된 설정영역과 비교하여 자율주행로봇(110)의 추정 위치정보에 해당하는 위치그룹을 결정할 수 있다.
상술한 바와 같이 각 위치그룹에는 위치범위 즉 좌표범위가 정의되어 있으므로, 센서 모듈(111)은 자율주행로봇(110)의 추정 위치정보가 어느 위치그룹에 속하는지 확인하여 추정 위치정보 및 해당 추정 위치정보에 해당하는 위치그룹 아이디 또는 식별정보를 출력할 수 있다.
상기 비전 모듈(112)은, 자율주행로봇(110)의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공할 수 있다.
이를 위해 비전 모듈(112)은 도 3에 도시된 바와 같이, 주행영상 생성부(112a), 주행이미지 획득부(112b) 및 벡터데이터 추출부(122c) 중 적어도 하나를 포함할 수 있다.
상기 주행영상 생성부(112a)는, 자율주행로봇(110)에 설치되어 서로 다른 방향 또는 각도에 대하여 촬영하는 적어도 두 개의 카메라를 통해 자율주행로봇(110)의 주행영상을 각각 생성할 수 있다.
예를 들어, 이미지 유사도 비교에 대한 정확도를 높이기 위해 천장을 향하는 카메라와 정방을 향하는 카메라로 자율주행로봇(110)의 주행영상을 각각 생성할 수 있다.
상기 주행이미지 획득부(112b)는, 일정 주기마다 자율주행로봇(110)의 주행영상에 대한 이미지를 각각 획득하고, 획득된 이미지 별로 이미지 아이디를 각각 부여할 수 있다.
상기 벡터데이터 추출부(122c)는, 주행이미지 획득부(112b)를 통해 획득된 각 주행영상의 이미지로부터 현재 벡터데이터를 추출하여 비전인식결과로서 제공할 수 있다.
이하에서 언급되는 '현재 벡터데이터'와 'DB 벡터데이터'는 모두 점과 점을 연결해 만든 선으로 구성되며, 수학적으로 계산된 함수 관계로 표현될 수 있는 데이터로서 동일한 개념의 용어이나, 발명의 이해를 돕기 위하여 비전 모듈(112)에서 생성되는 벡터데이터를 '현재 벡터데이터'로 정의하고, DB 모듈(121)에 저장된 벡터데이터를 'DB 벡터데이터'로 정의하여 유사 용어를 구분하였다.
또한, 상술한 '추정 위치정보'와 이하에서 언급되는 '표준 위치정보'는 자율주행로봇(110)의 위치를 나타내는 좌표정보를 의미하는 것으로 동일하나, '추정 위치정보'는 센서 모듈(111)을 통해 산출된 좌표정보이며, '표준 위치정보'는 DB 모듈(121)에서 'DB 벡터데이터'와 매칭되어 기 저장된 좌표정보로서 구분될 수 있다.
상기 DB 모듈(121)은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장할 수 있다.
이러한 DB 모듈(121)은 도 4에 도시된 바와 같이, 위치그룹 생성부(121a) 및 위치그룹 관리부(121b) 중 적어도 하나를 포함할 수 있다.
상기 위치그룹 생성부(121a)는, 비전데이터(주행영상의 이미지)로부터 각각 추출된 DB 벡터데이터 및 각각의 비전데이터가 생성된 좌표정보를 나타내는 표준 위치정보를 서로 매칭하여 데이터 세트를 각각 생성하고, 생성된 다수의 데이터 세트를 일정좌표범위를 갖는 설정영역에 따라 그룹화하여 다수의 위치그룹을 생성할 수 있다. 여기서, 설정영역이란 자율주행로봇(10)의 위치에서 유사도 검색을 진행할 위치그룹을 선택하는 범위를 의미하며, 하나의 위치그룹에는 일정간격을 통해 나누어져 고정된 표준 위치정보들이 정의되어 있다.
예를 들어, 도 5에 도시된 바와 같이 일정좌표범위로 이루어진 설정영역 'S1'(하나의 위치그룹과 대응됨)의 경우 자율주행로봇(10)이 표시된 위치가 그룹의 중앙부분이기 때문에 해당 그룹에서만 유사도 비교 검색하면 되고, 'S2'의 경우에는 자율주행로봇(10)이 표시된 위치가 그룹의 경계면에 위치하고 있기 때문에 그 주변의 그룹들까지 검색해야 함을 의미하며, 이에 따라 유사도 비교 검색을 진행할 그룹이 'S2'와 같이 상대적으로 더 넓게 선택될 수 있다.
상술한 바와 같이 하나의 위치그룹에는 다수의 표준 위치정보(location) 즉 표준 좌표데이터들이 일정 거리 간격마다 각각 정의되어 있으며, 각각의 표준 좌표마다 매칭되는 이미지가 벡터데이터로 정의되어 있다.
즉, 일정한 영역 안에서 촬영된 이미지들이 서로 유사(주변환경을 촬영한 이미지들이 서로 유사한 특징이 있음)하기 때문에, 이와 같이 유사한 이미지들을 묶어서 하나의 그룹으로 형성하고, 각각의 그룹 내 구성되어 있는 각 이미지에 대한 벡터데이터와 각 이미지가 촬영된 좌표데이터를 서로 매칭하여 하나의 데이터 세트로 구성할 수 있으며, 하나의 위치그룹 내에는 각각의 이미지들과 대응되는 다수의 데이터 세트(벡터데이터, 표준 위치정보)가 정의 또는 저장되어 있을 수 있다.
상기 위치그룹 관리부(121b)는, 위치그룹 생성부(121a)를 통해 생성된 위치그룹의 데이터 세트를 저장할 수 있으며, DB 업데이트 모듈(124)에 의해 데이터 업데이트 명령과 업데이트 될 데이터가 입력되면, 기 저장된 데이터들을 수정할 수 있다.
상기 위치정보 추출 모듈(122)은, 센서 모듈(111)을 통해 특정된 위치그룹에 속한 비전데이터(DB 벡터데이터)들 중 비전인식결과(현재 벡터데이터)와 가장 유사한 비전데이터(DB 벡터데이터)를 찾고, 해당 비전데이터(DB 벡터데이터)와 매칭되어 있는 표준 위치정보를 추출할 수 있다.
이를 위해 위치정보 추출 모듈(122)는 도 6에 도시된 바와 같이, 데이터 입력부(122a), 위치그룹 선정부(122b), 유사도 결과 산출부(122c) 및 위치정보 제공부(122d) 중 적어도 하나를 포함할 수 있다.
상기 데이터 입력부(122a)는, 비전 모듈(112)로부터 현재 벡터데이터를 입력 받고, 센서 모듈(111)로부터 추정 위치정보 및 특정된 위치그룹 정보(위치그룹 아이디 또는 식별정보)를 각각 입력 받을 수 있다. 이에 따라, 비전 모듈(112)을 통해 현재 촬영되는 이미지에 대한 정보와, 센서 모듈(111)을 통해 인식되는 위치정보, 그리고 해당 위치정보에 해당하는 위치그룹에 대한 정보를 각각 입력 받을 수 있다.
상기 위치그룹 선정부(122b)는, 데이터 입력부(122a)를 통해 입력된 위치그룹 정보(위치그룹 아이디 또는 식별정보)에 따라 DB 모듈(121)에 저장된 위치그룹을 선정할 수 있다. 이와 같이, 비전 모듈(112)을 통해 인식된 이미지와 유사한 이미지를 찾기 위하여 전체 DB 이미지에 대한 비교 과정을 수행하지 않고, 센서 모듈(111)을 통해 인식된 위치에 속하는 그룹을 특정해 줌으로써, 비전 모듈(112)에서 인식된 이미지와 비교할 대상인 후보 이미지들을 특정해 그 비교 대상 수를 줄여줄 수 있다. 이에 따라, 비교 횟수가 줄어들기 때문에 유사도 비교 과정을 위해 소요되는 시간을 줄일 수 있고, 위치 상 다른 곳이지만 이미지가 유사한 경우와 같은 오류를 제거할 수 있어 정확도를 높일 수 있다.
상기 유사도 결과 산출부(122c)는, 위치그룹 선정부(122b)를 통해 선정된 위치그룹에 속하는 'DB 벡터데이터'들과 데이터 입력부(122a)를 통해 입력된 '현재 벡터데이터' 간의 코사인 유사도(Cosine Similarity) 측정을 수행하여 그에 따른 점수(Score)를 각각 산출할 수 있다.
상기 위치정보 제공부(122d)는, 유사도 결과 산출부(122c)를 통해 산출된 유사도 점수 중 가장 높은 유사도 점수가 미리 설정된 기준 점수(Threshold)를 초과하는지 여부를 확인하고, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하는 경우 가장 높은 유사도 점수를 받은 DB 벡터데이터와 매칭되어 있는 표준 위치정보를 추출하여 제공할 수 있다.
예를 들어, '현재 벡터데이터 K'와 '위치그룹 2'에 포함된 DB 벡터데이터 '1~10' 간의 코사인 유사도 비교를 수행하고, 그 중 DB 벡터데이터 '2'에 대한 유사도 점수가 가장 높게 측정된 경우, DB 벡터데이터 '2'의 유사도 점수와 기준 점수(Threshold)를 비교하여 DB 벡터데이터 '2'의 유사도 점수가 기준 점수(Threshold)를 초과하는 것으로 확인되면 DB 벡터데이터 '2'와 매칭되어 있는 표준 위치정보 '2'를 추출할 수 있다.
상기 위치정보 재설정 모듈(123)은, 위치정보 추출 모듈(122)을 통해 추출된 표준 위치정보 및 센서 모듈(111)을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇(10)의 위치정보를 재 설정할 수 있다.
좀 더 구체적으로 위치정보 재설정 모듈(123)은, 센서 모듈(111)을 통해 산출된 추정 위치정보 및 위치정보 제공부(122d)를 통해 제공된 표준 위치정보 간을 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 도 7에 도시된 바와 같이, 자율주행로봇(10)의 주행 상태에 이상이 있는 것으로 판단하여 자율주행로봇(10)이 일시 정지된 상태에서 센서 모듈(111)의 라이다(LiDAR) 및 오도메트리(Odometry)를 재설정한 후, 위치정보 제공부(122s)를 통해 제공된 표준 위치정보를 라이다(LiDAR) 및 오도메트리(Odometry)의 초기 위치정보로 설정하여 위치 오차를 보정할 수 있다.
이러한 위치정보 재설정 모듈(123)은, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 미리 구축한 데이터베이스 간의 유사도 검사를 수행하여, 자율주행로봇(10)의 주행 상태에 이상이 있는 경우 시각 정보를 이용해 추정된 위치정보를 기반으로 라이다(LiDAR) 및 오도메트리(Odometry)에서의 초기 위치정보를 재조정할 수 있다.
여기서, 위치 재조정이란, 도 7을 참조하면 자율주행로봇(10)의 주행 상태가 잘못됐다고 판단했을 때 작동되는 것으로, 자율주행로봇(10)을 일시 정지시킨 후 오도메트리를 리셋하고, 초기 위치정보의 부여를 통해 자율주행로봇(10)의 현재 위치정보를 다시 설정하는 프로세스를 의미한다. 이와 같이, 기존 SLAM 알고리즘에서 초기 위치(initial pose)를 부여할 때 현재 위치정보를 추정하는 알고리즘을 이용하여 자율주행로봇(10)의 주행 상태에 대한 이상 감지 시 시각 정보를 이용해 추정한 위치 정보를 초기 위치정보로 재설정함으로써 현재 위치정보에 대한 오차를 보정할 수 있다.
상기 DB 업데이트 모듈(124)은, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가한 후 이전에 후보 DB에 추가된 벡터데이터들과의 유사도 비교를 수행하여 해당 기준 점수를 초과하는 경우 해당 벡터데이터의 이미지 아이디에 대한 업 카운트를 실시하고, 해당 기준 점수를 초과하지 않는 경우 새로운 이미지 아이디를 부여하여 후보 DB에 추가하되, 코사인 유사도 점수 산출 과정 및 기준 점수 비교 과정을 반복 실시하여 해당 이미지 아이디에 대한 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 가장 높은 유사도 점수를 받은 현재 벡터데이터 및 현재 벡터데이터에 해당하는 추정 위치정보들의 평균 값을 DB 모듈(121)에 추가 등록하여 DB 모듈(121)의 데이터 세트를 업데이트 할 수 있다.
즉, 가장 높은 유사도 점수가 기준 점수를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가하고, 후보 DB에 추가된 벡터데이터는 기존의 후보 DB에 존재하는 벡터데이터들과의 유사도 비교를 통해 유사한 벡터가 있는 경우(즉, 기준 점수를 초과하는 경우) 해당 벡터데이터의 이미지 아이디에 대한 업카운트를 실시 및 추정 위치 정보 추가를 수행하고, 유사한 벡터데이터가 없는 경우 해당 벡터데이터의 이미지에 대한 새로운 아이디를 부여해 후보 DB에 저장할 수 있다.
이러한 과정을 반복 수행하여 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 해당 데이터 및 해당 데이터에 해당하는 추정 위치 정보들의 평균값을 DB 모듈(100)에 추가 등록하여 DB 모듈(100)의 데이터 세트를 업데이트하고 후보 DB에서 해당 데이터는 제거할 수 있다.
이와 같이, DB 모듈(100)과의 유사도 비교를 통해 새로운 데이터로서 판단되는 데이터들을 후보 DB에 추가하는 프로세스와, 벡터데이터가 후보 DB에 추가되었을 때 후보 DB에서의 유사도 비교를 통해 신뢰할만한 새로운 벡터데이터를 찾는 과정(즉, 누적 카운터 횟수를 이용하는 방식)을 수행할 수 있다.
자율주행로봇(110)이 주행하면서 건물 내부를 촬영하는데, 건물 내부 모습은 시간이 흐름에 따라 변할 수 있기 때문에 DB 모듈(121)에 저장된 이미지(즉, 벡터데이터) 또한 그에 맞게 갱신되어야 한다. 이에 따라 DB 업데이트 모듈(124)은 비전 모듈(112)을 통해 제공되는 이미지와 DB 모듈(121)에 저장된 이미지 간을 비교할 때 유사한 이미지를 찾지 못하는 경우(즉, 가장 높은 유사도 점수가 기준 점수를 넘지 못하는 경우) 해당 이미지에 대한 벡터데이터와 좌표정보를 DB 모듈(121)에 추가 등록할 수 있다.
다만, 추가 등록 대상을 한 번의 판단 과정을 통해 결정하는 것은 오히려 DB를 오염시킬 수 있기 때문에, 위의 조건(누적 카운터 횟수가 미리 설정된 기준 횟수 이상)을 N회 이상(ex. 3회 이상) 만족하는 경우 DB 모듈(121)에 해당 벡터데이터(현재 벡터데이터 N개)를 추가할 수 있으며, 이때 위치정보는 비전 모듈(112)에서 현재 벡터데이터가 획득되었을 때 센서 모듈(111)에서 제공된 N개의 추정 위치정보들에 대한 평균 값이 적용될 수 있다.
도 9는 본 발명의 제2 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이고, 도 10은 본 발명의 제2 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이고, 도 11은 본 발명의 제2 실시예에 따른 DB 모듈의 구성을 나타낸 블록도이고, 도 12는 본 발명의 제2 실시예에 따른 위치그룹을 선택의 예시를 나타낸 그래프이고, 도 113은 본 발명의 제2 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이고, 도 14는 본 발명의 제2 실시예에 따른 위치정보 추출 모듈의 구성을 나타낸 블록도이며, 도 15는 본 발명의 제2 실시예에 따른 DB 업데이트 모듈의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.
도 9를 참조하면, 제2 실시예에 따른 SLAM 위치 오차 보정 시스템(200)은 자율주행로봇(210) 및 클라우드 서버(220) 중 적어도 하나를 포함할 수 있다.
상기 자율주행로봇(210)은 DB 모듈(211), 센서 모듈(212), 비전 모듈(213) 위치정보 추출 모듈(214), 위치정보 재설정 모듈(215), DB 업데이트 모듈(216) 및 DB 모니터링 모듈(217) 중 적어도 하나를 포함하고, 클라우드 서버(120)는 DB 백업 모듈(221) 및 DB 수정 모듈(222) 중 적어도 하나를 포함할 수 있다.
상기 자율주행로봇(210)은 인터넷 통신망을 통해 클라우드 서버(220)와 연결되어 클라우드 서버(220)와 연동하는 방식으로 동작할 수 있다.
이하에서는 자율주행로봇(210)에 구성된 DB 모듈(211), 센서 모듈(212), 비전 모듈(213) 위치정보 추출 모듈(214), 위치정보 재설정 모듈(215), DB 업데이트 모듈(216) 및 DB 모니터링 모듈(217)과, 클라우드 서버(220)에 구성된 DB 백업 모듈(221) 및 DB 수정 모듈(222) 순서로 각 구성요소에 대하여 상세히 설명한다.
상기 DB 모듈(211)은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장할 수 있다.
이러한 DB 모듈(211)은 도 11에 도시된 바와 같이, 위치그룹 생성부(211a) 및 위치그룹 관리부(211b) 중 적어도 하나를 포함할 수 있다.
상기 위치그룹 생성부(211a)는, 비전데이터(주행영상의 이미지)로부터 각각 추출된 DB 벡터데이터 및 각각의 비전데이터가 생성된 좌표정보를 나타내는 표준 위치정보를 서로 매칭하여 데이터 세트를 각각 생성하고, 생성된 다수의 데이터 세트를 일정좌표범위를 갖는 설정영역에 따라 그룹화하여 다수의 위치그룹을 생성할 수 있다.
예를 들어, 도 12에 도시된 바와 같이, 일정좌표범위로 이루어진 설정영역 'S1'(또는 'S1'보다 넓은 설정영역 'S2') 별로 각각의 위치그룹이 정의될 수 있다. 하나의 위치그룹에는 다수의 표준 위치정보(location) 즉 표준 좌표데이터들이 일정 거리 간격마다 각각 정의되어 있으며, 각각의 표준 좌표마다 매칭되는 이미지가 벡터데이터로 정의되어 있다.
즉, 일정한 영역 안에서 촬영된 이미지들이 서로 유사(주변환경을 촬영한 이미지들이 서로 유사한 특징이 있음)하기 때문에, 이와 같이 유사한 이미지들을 묶어서 하나의 그룹으로 형성하고, 각각의 그룹 내 구성되어 있는 각 이미지에 대한 벡터데이터와 각 이미지가 촬영된 좌표데이터를 서로 매칭하여 하나의 데이터 세트로 구성할 수 있으며, 하나의 위치그룹 내에는 각각의 이미지들과 대응되는 다수의 데이터 세트(벡터데이터, 표준 위치정보)가 정의 또는 저장되어 있을 수 있다.
상기 위치그룹 관리부(211b)는, 위치그룹 생성부(211a)를 통해 생성된 위치그룹의 데이터 세트를 저장할 수 있으며, DB 업데이트 모듈(216)에 의해 데이터 업데이트 명령과 업데이트 될 데이터가 입력되면, 기 저장된 데이터들을 수정할 수 있다.
상기 센서 모듈(212)은, 라이다(LiDAR) 및 오도메트리(Odometry) 시스템을 통해 자율주행로봇(210)의 추정 위치정보(로봇 자신의 위치를 추정한 정보)를 산출하고, 산출된 추정 위치정보에 따라 DB 모듈(211)에 정의된 다수의 위치그룹 중 어느 한 위치그룹을 특정할 수 있다.
라이다(LiDAR)는 360도 레이저 펄스를 발사하고, 그 빛이 주위의 벽이나 장애물 등 대상 물체에서 반사되어 돌아오는 시간을 계산하여 주변 환경을 인식하여 대상 객체에 대한 탐지 및 거리를 측정할 수 있다. 오도메트리(Odometry)는 엔코더(encoder)를 통한 회전수와 IMU 센서로 기울기 등을 측정함으로써 움직이고 있는 사물의 위치를 측정함으로써 맵 상에서 자신의 위치 즉, 자율주행로봇(210)의 위치(추정 위치정보)를 찾고 주행할 수 있다.
상기 센서 모듈(212)은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 산출된 자율주행로봇(210)의 추정 위치정보를 위치그룹 별로 정의된 설정영역과 비교하여 자율주행로봇(210)의 추정 위치정보에 해당하는 위치그룹을 결정할 수 있다.
상술한 바와 같이 각 위치그룹에는 위치범위 즉 좌표범위가 정의되어 있으므로, 센서 모듈(212)은 자율주행로봇(210)의 추정 위치정보가 어느 위치그룹에 속하는지 확인하여 추정 위치정보 및 해당 추정 위치정보에 해당하는 위치그룹 아이디 또는 식별정보를 출력할 수 있다.
상기 비전 모듈(213)은, 자율주행로봇(210)의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공할 수 있다.
이를 위해 비전 모듈(213)은 도 13에 도시된 바와 같이, 주행영상 생성부(213a), 주행이미지 획득부(213b) 및 벡터데이터 추출부(213c) 중 적어도 하나를 포함할 수 있다.
상기 주행영상 생성부(213a)는, 자율주행로봇(210)에 설치되어 서로 다른 방향 또는 각도에 대하여 촬영하는 적어도 두 개의 카메라를 통해 자율주행로봇(210)의 주행영상을 각각 생성할 수 있다.
예를 들어, 이미지 유사도 비교에 대한 정확도를 높이기 위해 천장을 향하는 카메라와 정방을 향하는 카메라로 자율주행로봇(210)의 주행영상을 각각 생성할 수 있다.
상기 주행이미지 획득부(213b)는, 일정 주기마다 자율주행로봇(210)의 주행영상에 대한 이미지를 각각 획득하고, 획득된 이미지 별로 이미지 아이디를 각각 부여할 수 있다.
상기 벡터데이터 추출부(213c)는, 주행이미지 획득부(213b)를 통해 획득된 각 주행영상의 이미지로부터 현재 벡터데이터를 추출하여 비전인식결과로서 제공할 수 있다.
이하에서 언급되는 '현재 벡터데이터'와 'DB 벡터데이터'는 모두 점과 점을 연결해 만든 선으로 구성되며, 수학적으로 계산된 함수 관계로 표현될 수 있는 데이터로서 동일한 개념의 용어이나, 발명의 이해를 돕기 위하여 비전 모듈(213)에서 생성되는 벡터데이터를 '현재 벡터데이터'로 정의하고, DB 모듈(211)에 저장된 벡터데이터를 'DB 벡터데이터'로 정의하여 유사 용어를 구분하였다.
또한, 상술한 '추정 위치정보'와 이하에서 언급되는 '표준 위치정보'는 자율주행로봇(210)의 위치를 나타내는 좌표정보를 의미하는 것으로 동일하나, '추정 위치정보'는 센서 모듈(212)을 통해 산출된 좌표정보이며, '표준 위치정보'는 DB 모듈(211)에서 'DB 벡터데이터'와 매칭되어 기 저장된 좌표정보로서 구분될 수 있다.
상기 위치정보 추출 모듈(214)은, 센서 모듈(212)을 통해 특정된 위치그룹에 속한 비전데이터(DB 벡터데이터)들 중 비전인식결과(현재 벡터데이터)와 가장 유사한 비전데이터(DB 벡터데이터)를 찾고, 해당 비전데이터(DB 벡터데이터)와 매칭되어 있는 표준 위치정보를 추출할 수 있다.
이를 위해 위치정보 추출 모듈(214)는 도 14에 도시된 바와 같이, 데이터 입력부(214a), 위치그룹 선정부(214b), 유사도 결과 산출부(214c) 및 위치정보 제공부(214d) 중 적어도 하나를 포함할 수 있다.
상기 데이터 입력부(214a)는, 비전 모듈(213)로부터 현재 벡터데이터를 입력 받고, 센서 모듈(212)로부터 추정 위치정보 및 특정된 위치그룹 정보(위치그룹 아이디 또는 식별정보)를 각각 입력 받을 수 있다. 이에 따라, 비전 모듈(213)을 통해 현재 촬영되는 이미지에 대한 정보와, 센서 모듈(212)을 통해 인식되는 위치정보, 그리고 해당 위치정보에 해당하는 위치그룹에 대한 정보를 각각 입력 받을 수 있다.
상기 위치그룹 선정부(214b)는, 데이터 입력부(214a)를 통해 입력된 위치그룹 정보(위치그룹 아이디 또는 식별정보)에 따라 DB 모듈(211)에 저장된 위치그룹을 선정할 수 있다. 이와 같이, 비전 모듈(213)을 통해 인식된 이미지와 유사한 이미지를 찾기 위하여 전체 DB 이미지에 대한 비교 과정을 수행하지 않고, 센서 모듈(212)을 통해 인식된 위치에 속하는 그룹을 특정해 줌으로써, 비전 모듈(213)에서 인식된 이미지와 비교할 대상인 후보 이미지들을 특정해 그 비교 대상 수를 줄여줄 수 있다. 이에 따라, 비교 횟수가 줄어들기 때문에 유사도 비교 과정을 위해 소요되는 시간을 줄일 수 있고, 위치 상 다른 곳이지만 이미지가 유사한 경우와 같은 오류를 제거할 수 있어 정확도를 높일 수 있다.
상기 유사도 결과 산출부(214c)는, 위치그룹 선정부(214b)를 통해 선정된 위치그룹에 속하는 'DB 벡터데이터'들과 데이터 입력부(214a)를 통해 입력된 '현재 벡터데이터' 간의 코사인 유사도(Cosine Similarity) 측정을 수행하여 그에 따른 점수(Score)를 각각 산출할 수 있다.
상기 위치정보 제공부(214d)는, 유사도 결과 산출부(214c)를 통해 산출된 유사도 점수 중 가장 높은 유사도 점수가 미리 설정된 기준 점수(Threshold)를 초과하는지 여부를 확인하고, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하는 경우 가장 높은 유사도 점수를 받은 DB 벡터데이터와 매칭되어 있는 표준 위치정보를 추출하여 제공할 수 있다.
예를 들어, '현재 벡터데이터 K'와 '위치그룹 2'에 포함된 DB 벡터데이터 '1~10' 간의 코사인 유사도 비교를 수행하고, 그 중 DB 벡터데이터 '2'에 대한 유사도 점수가 가장 높게 측정된 경우, DB 벡터데이터 '2'의 유사도 점수와 기준 점수(Threshold)를 비교하여 DB 벡터데이터 '2'의 유사도 점수가 기준 점수(Threshold)를 초과하는 것으로 확인되면 DB 벡터데이터 '2'와 매칭되어 있는 표준 위치정보 '2'를 추출할 수 있다.
상기 위치정보 재설정 모듈(215)은, 위치정보 추출 모듈(214)을 통해 추출된 표준 위치정보 및 센서 모듈(212)을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇(10)의 위치정보를 재 설정할 수 있다.
좀 더 구체적으로 위치정보 재설정 모듈(215)은, 센서 모듈(212)을 통해 산출된 추정 위치정보 및 위치정보 제공부(214d)를 통해 제공된 표준 위치정보 간을 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 도 8에 도시된 바와 같이, 자율주행로봇(210)의 주행 상태에 이상이 있는 것으로 판단하여 자율주행로봇(210)이 일시 정지된 상태에서 센서 모듈(212)의 라이다(LiDAR) 및 오도메트리(Odometry)를 재설정한 후, 위치정보 제공부(214d)를 통해 제공된 표준 위치정보를 라이다(LiDAR) 및 오도메트리(Odometry)의 초기 위치정보로 설정하여 위치 오차를 보정할 수 있다.
이러한 위치정보 재설정 모듈(215)은, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 미리 구축한 데이터베이스 간의 유사도 검사를 수행하여, 자율주행로봇(210)의 주행 상태에 이상이 있는 경우 시각 정보를 이용해 추정된 위치정보를 기반으로 라이다(LiDAR) 및 오도메트리(Odometry)에서의 초기 위치정보를 재조정할 수 있다.
여기서, 위치 재조정이란, 도 8을 참조하면 자율주행로봇의 주행 상태가 잘못됐다고 판단했을 때 작동되는 것으로, 자율주행로봇을 일시 정지시킨 후 오도메트리를 리셋하고, 초기 위치정보의 부여를 통해 자율주행로봇의 현재 위치정보를 다시 설정하는 프로세스를 의미한다. 이와 같이, 기존 SLAM 알고리즘에서 초기 위치(initial pose)를 부여할 때 현재 위치정보를 추정하는 알고리즘을 이용하여 자율주행로봇의 주행 상태에 대한 이상 감지 시 시각 정보를 이용해 추정한 위치 정보를 초기 위치정보로 재설정함으로써 현재 위치정보에 대한 오차를 보정할 수 있다.
상기 DB 업데이트 모듈(216)은, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가한 후 이전에 후보 DB에 추가된 벡터데이터들과의 유사도 비교를 수행하여 해당 기준 점수를 초과하는 경우 해당 벡터데이터의 이미지 아이디에 대한 업 카운트를 실시하고, 해당 기준 점수를 초과하지 않는 경우 새로운 이미지 아이디를 부여하여 후보 DB에 추가하되, 코사인 유사도 점수 산출 과정 및 기준 점수 비교 과정을 반복 실시하여 해당 이미지 아이디에 대한 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 가장 높은 유사도 점수를 받은 현재 벡터데이터 및 현재 벡터데이터에 해당하는 추정 위치정보들의 평균 값을 DB 모듈(211)에 추가 등록하여 DB 모듈(211)의 데이터 세트를 업데이트 할 수 있다.
즉, 가장 높은 유사도 점수가 기준 점수를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가하고, 후보 DB에 추가된 벡터데이터는 기존의 후보 DB에 존재하는 벡터데이터들과의 유사도 비교를 통해 유사한 벡터가 있는 경우(즉, 기준 점수를 초과하는 경우) 해당 벡터데이터의 이미지 아이디에 대한 업카운트를 실시 및 추정 위치 정보 추가를 수행하고, 유사한 벡터데이터가 없는 경우 해당 벡터데이터의 이미지에 대한 새로운 아이디를 부여해 후보 DB에 저장할 수 있다.
이러한 과정을 반복 수행하여 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 해당 데이터 및 해당 데이터에 해당하는 추정 위치 정보들의 평균값을 DB 모듈(211)에 추가 등록하여 DB 모듈(211)의 데이터 세트를 업데이트하고 후보 DB에서 해당 데이터는 제거할 수 있다.
이와 같이, DB 모듈(211)과의 유사도 비교를 통해 새로운 데이터로서 판단되는 데이터들을 후보 DB에 추가하는 프로세스와, 벡터데이터가 후보 DB에 추가되었을 때 후보 DB에서의 유사도 비교를 통해 신뢰할만한 새로운 벡터데이터를 찾는 과정(즉, 누적 카운터 횟수를 이용하는 방식)을 수행할 수 있다.
자율주행로봇(210)이 주행하면서 건물 내부를 촬영하는데, 건물 내부 모습은 시간이 흐름에 따라 변할 수 있기 때문에 DB 모듈(211)에 저장된 이미지(즉, 벡터데이터) 또한 그에 맞게 갱신되어야 한다. 이에 따라 DB 업데이트 모듈(216)은 비전 모듈(213)을 통해 제공되는 이미지와 DB 모듈(211)에 저장된 이미지 간을 비교할 때 유사한 이미지를 찾지 못하는 경우(즉, 가장 높은 유사도 점수가 기준 점수를 넘지 못하는 경우) 해당 이미지에 대한 벡터데이터와 좌표정보를 DB 모듈(211)에 추가 등록할 수 있다.
다만, 추가 등록 대상을 한 번의 판단 과정을 통해 결정하는 것은 오히려 DB를 오염시킬 수 있기 때문에, 위의 조건(누적 카운터 횟수가 미리 설정된 기준 횟수 이상)을 N회 이상(ex. 3회 이상) 만족하는 경우 DB 모듈(211)에 해당 벡터데이터(현재 벡터데이터 N개)를 추가할 수 있으며, 이때 위치정보는 비전 모듈(213)에서 현재 벡터데이터가 획득되었을 때 센서 모듈(212)에서 제공된 N개의 추정 위치정보들에 대한 평균 값이 적용될 수 있다.
상기 DB 모니터링 모듈(217)은, DB 모듈(211)에 저장된 데이터(DB 벡터데이터 및 표준 위치정보를 포함하는 데이터 세트)에 대한 모니터링을 수행하고 DB 모니터링 데이터를 생성할 수 있다.
좀 더 구체적으로 DB 모니터링 모듈(217)은, 비전데이터의 최초 생성 일시 정보, 비전데이터 별 가장 높은 유사도 점수에 의해 선택된 최근 일시 정보, 비전데이터 별 가장 높은 유사도 점수에 의해 선택된 횟수 정보, 및 가장 높은 유사도 점수에 의해 선택된 표준 위치정보 및 센서 모듈(212)의 추정 위치정보 간의 거리 및 방향 차이에 대한 비교 정보를 각각 모니터링 할 수 있다.
상기 DB 백업 모듈(221)은, 자율주행로봇(210)의 DB 모듈(211)과 동기화되어 DB 모듈(211)에 저장된 데이터(DB 벡터데이터 및 표준 위치정보를 포함하는 데이터 세트)를 백업하여 관리하는 역할을 수행할 수 있다.
상기 DB 수정 모듈(222)은, 자율주행로봇(210)의 DB 모니터링 모듈(217)로부터 제공되는 DB 모니터링 데이터를 기반으로 DB 모듈(211)에 필요하지 않은 데이터를 판단하여 해당 데이터를 삭제 관리하는 역할을 수행할 수 있다.
이와 같이, 자율주행로봇(210)에 저장되는 최종 데이터들(DB 벡터데이터 및 표준 위치정보를 포함하는 데이터 세트)는 일정 주기 단위로 클라우드 서버(220)의 DB 백업 모듈(221)에 저장되며, DB 백업 모듈(221)에 저장된 데이터들을 관리자를 통한 수정 작업을 수행한 후 자율주행로봇(210)에 전송함으로써 수정된 데이터를 자율주행로봇(210)에 적용시킬 수 있다.
DB 모듈(211)의 데이터 수정은 로컬 즉 자율주행로봇(210)에서 진행되는 DB 자동 갱신 알고리즘에 더해서 변화되는 주변 환경에 따라 필요가 없어진 데이터와 오류가 있는 데이터를 각각 제거함으로써, DB 모듈(211)에 저장된 데이터에 대한 신뢰도를 높일 수 있다. 이때, 관리자는 제거할 데이터를 선택하거나 알고리즘을 통해 특정 조건을 만족하는 데이터를 제거함으로써 DB 모듈(211)의 데이터를 수정함으로써 자율주행로봇(210)에 적용시킬 수 있다. 도 16은 본 발명의 제3 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체 구성 및 구성 형태를 나타낸 도면이고, 도 17은 본 발명의 제3 실시예에 따른 SLAM 위치 오차 보정 시스템의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이고, 도 18은 본 발명의 제3 실시예에 따른 제1 DB 모듈의 구성을 나타낸 블록도이고, 도 19는 본 발명의 제3 실시예에 따른 위치그룹을 선택의 예시를 나타낸 그래프이고, 도 20은 본 발명의 제3 실시예에 따른 비전 모듈의 구성을 나타낸 블록도이고, 도 21은 본 발명의 제3 실시예에 따른 제1 위치정보 추출 모듈의 구성을 나타낸 블록도이며, 도 22는 본 발명의 제3 실시예에 따른 DB 업데이트 모듈의 전체적인 동작 프로세스를 설명하기 위해 나타낸 도면이다.
도 16을 참조하면, 제3 실시예에 따른 SLAM 위치 오차 보정 시스템(300)은 자율주행로봇(310) 및 클라우드 서버(320) 중 적어도 하나를 포함할 수 있다.
상기 자율주행로봇(310)은 제1 DB 모듈(311), 센서 모듈(312), 비전 모듈(313) 제1 위치정보 추출 모듈(314), 위치정보 재설정 모듈(315) 및 DB 업데이트 모듈(316) 중 적어도 하나를 포함하고, 클라우드 서버(120)는 제2 제1 DB 모듈(321) 및 제2 위치정보 추출 모듈(322) 중 적어도 하나를 포함할 수 있다.
상기 자율주행로봇(310)은 인터넷 통신망을 통해 클라우드 서버(320)와 연결되어 클라우드 서버(320)와 연동하는 방식으로 동작할 수 있다.
이하에서는 자율주행로봇(310)에 구성된 제1 DB 모듈(311), 센서 모듈(312), 비전 모듈(313) 제1 위치정보 추출 모듈(314), 위치정보 재설정 모듈(315) 및 DB 업데이트 모듈(316)과, 클라우드 서버(320)에 구성된 제2 DB 모듈(321) 및 제2 위치정보 추출 모듈(322) 순서로 각 구성요소에 대하여 상세히 설명한다.
상기 제1 DB 모듈(311)은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장할 수 있다.
이러한 제1 DB 모듈(311)은 도 18에 도시된 바와 같이, 위치그룹 생성부(311a) 및 위치그룹 관리부(311b) 중 적어도 하나를 포함할 수 있다.
상기 위치그룹 생성부(311a)는, 비전데이터(주행영상의 이미지)로부터 각각 추출된 DB 벡터데이터 및 각각의 비전데이터가 생성된 좌표정보를 나타내는 표준 위치정보를 서로 매칭하여 데이터 세트를 각각 생성하고, 생성된 다수의 데이터 세트를 일정좌표범위를 갖는 설정영역에 따라 그룹화하여 다수의 위치그룹을 생성할 수 있다. 여기서, 설정영역이란 자율주행로봇(310)의 위치에서 유사도 검색을 진행할 위치그룹을 선택하는 범위를 의미하며, 하나의 위치그룹에는 일정간격을 통해 나누어져 고정된 표준 위치정보들이 정의되어 있다.
예를 들어, 도 19에 도시된 바와 같이, 일정좌표범위로 이루어진 설정영역 'S1'(하나의 위치그룹과 대응됨)의 경우 자율주행로봇(310)이 표시된 위치가 그룹의 중앙부분이기 때문에 해당 그룹에서만 유사도 비교 검색하면 되고, 'S2'의 경우에는 자율주행로봇(310)이 표시된 위치가 그룹의 경계면에 위치하고 있기 때문에 그 주변의 그룹들까지 검색해야 함을 의미하며, 이에 따라 유사도 비교 검색을 진행할 그룹이 'S2'와 같이 상대적으로 더 넓게 선택될 수 있다.
상술한 바와 같이 하나의 위치그룹에는 다수의 표준 위치정보(location) 즉 표준 좌표데이터들이 일정 거리 간격마다 각각 정의되어 있으며, 각각의 표준 좌표마다 매칭되는 이미지가 벡터데이터로 정의되어 있다.
즉, 일정한 영역 안에서 촬영된 이미지들이 서로 유사(주변환경을 촬영한 이미지들이 서로 유사한 특징이 있음)하기 때문에, 이와 같이 유사한 이미지들을 묶어서 하나의 그룹으로 형성하고, 각각의 그룹 내 구성되어 있는 각 이미지에 대한 벡터데이터와 각 이미지가 촬영된 좌표데이터를 서로 매칭하여 하나의 데이터 세트로 구성할 수 있으며, 하나의 위치그룹 내에는 각각의 이미지들과 대응되는 다수의 데이터 세트(벡터데이터, 표준 위치정보)가 정의 또는 저장되어 있을 수 있다.
상기 위치그룹 관리부(311b)는, 위치그룹 생성부(311a)를 통해 생성된 위치그룹의 데이터 세트를 저장할 수 있으며, DB 업데이트 모듈(316)에 의해 데이터 업데이트 명령과 업데이트 될 데이터가 입력되면, 기 저장된 데이터들을 수정할 수 있다.
상기 센서 모듈(312)은, 라이다(LiDAR) 및 오도메트리(Odometry) 시스템을 통해 자율주행로봇(310)의 추정 위치정보(로봇 자신의 위치를 추정한 정보)를 산출하고, 산출된 추정 위치정보에 따라 제1 DB 모듈(311)에 정의된 다수의 위치그룹 중 어느 한 위치그룹을 특정할 수 있다.
라이다(LiDAR)는 360도 레이저 펄스를 발사하고, 그 빛이 주위의 벽이나 장애물 등 대상 물체에서 반사되어 돌아오는 시간을 계산하여 주변 환경을 인식하여 대상 객체에 대한 탐지 및 거리를 측정할 수 있다. 오도메트리(Odometry)는 엔코더(encoder)를 통한 회전수와 IMU 센서로 기울기 등을 측정함으로써 움직이고 있는 사물의 위치를 측정함으로써 맵 상에서 자신의 위치 즉, 자율주행로봇(310)의 위치(추정 위치정보)를 찾고 주행할 수 있다.
상기 센서 모듈(312)은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 산출된 자율주행로봇(310)의 추정 위치정보를 위치그룹 별로 정의된 설정영역과 비교하여 자율주행로봇(310)의 추정 위치정보에 해당하는 위치그룹을 결정할 수 있다.
상술한 바와 같이 각 위치그룹에는 위치범위 즉 좌표범위가 정의되어 있으므로, 센서 모듈(312)은 자율주행로봇(310)의 추정 위치정보가 어느 위치그룹에 속하는지 확인하여 추정 위치정보 및 해당 추정 위치정보에 해당하는 위치그룹 아이디 또는 식별정보를 출력할 수 있다.
상기 비전 모듈(313)은, 자율주행로봇(310)의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공할 수 있다.
이를 위해 비전 모듈(313)은 도 20에 도시된 바와 같이, 주행영상 생성부(313a), 주행이미지 획득부(313b) 및 벡터데이터 추출부(313c) 중 적어도 하나를 포함할 수 있다.
상기 주행영상 생성부(313a)는, 자율주행로봇(310)에 설치되어 서로 다른 방향 또는 각도에 대하여 촬영하는 적어도 두 개의 카메라를 통해 자율주행로봇(310)의 주행영상을 각각 생성할 수 있다.
예를 들어, 이미지 유사도 비교에 대한 정확도를 높이기 위해 천장을 향하는 카메라와 정방을 향하는 카메라로 자율주행로봇(310)의 주행영상을 각각 생성할 수 있다.
상기 주행이미지 획득부(313b)는, 일정 주기마다 자율주행로봇(310)의 주행영상에 대한 이미지를 각각 획득하고, 획득된 이미지 별로 이미지 아이디를 각각 부여할 수 있다.
상기 벡터데이터 추출부(313c)는, 주행이미지 획득부(313b)를 통해 획득된 각 주행영상의 이미지로부터 현재 벡터데이터를 추출하여 비전인식결과로서 제공할 수 있다.
이하에서 언급되는 '현재 벡터데이터'와 'DB 벡터데이터'는 모두 점과 점을 연결해 만든 선으로 구성되며, 수학적으로 계산된 함수 관계로 표현될 수 있는 데이터로서 동일한 개념의 용어이나, 발명의 이해를 돕기 위하여 비전 모듈(313)에서 생성되는 벡터데이터를 '현재 벡터데이터'로 정의하고, 제1 DB 모듈(311)에 저장된 벡터데이터를 'DB 벡터데이터'로 정의하여 유사 용어를 구분하였다.
또한, 상술한 '추정 위치정보'와 이하에서 언급되는 '표준 위치정보'는 자율주행로봇(310)의 위치를 나타내는 좌표정보를 의미하는 것으로 동일하나, '추정 위치정보'는 센서 모듈(312)을 통해 산출된 좌표정보이며, '표준 위치정보'는 제1 DB 모듈(311)에서 'DB 벡터데이터'와 매칭되어 기 저장된 좌표정보로서 구분될 수 있다.
상기 제1 위치정보 추출 모듈(314)은, 센서 모듈(312)을 통해 특정된 위치그룹에 속한 비전데이터(DB 벡터데이터)들 중 비전인식결과(현재 벡터데이터)와 가장 유사한 비전데이터(DB 벡터데이터)를 찾고, 해당 비전데이터(DB 벡터데이터)와 매칭되어 있는 표준 위치정보를 추출할 수 있다.
이를 위해 제1 위치정보 추출 모듈(314)는 도 21에 도시된 바와 같이, 데이터 입력부(314a), 위치그룹 선정부(314b), 유사도 결과 산출부(314c) 및 위치정보 제공부(314d) 중 적어도 하나를 포함할 수 있다.
상기 데이터 입력부(314a)는, 비전 모듈(313)로부터 현재 벡터데이터를 입력 받고, 센서 모듈(312)로부터 추정 위치정보 및 특정된 위치그룹 정보(위치그룹 아이디 또는 식별정보)를 각각 입력 받을 수 있다. 이에 따라, 비전 모듈(313)을 통해 현재 촬영되는 이미지에 대한 정보와, 센서 모듈(312)을 통해 인식되는 위치정보, 그리고 해당 위치정보에 해당하는 위치그룹에 대한 정보를 각각 입력 받을 수 있다.
상기 위치그룹 선정부(314b)는, 데이터 입력부(314a)를 통해 입력된 위치그룹 정보(위치그룹 아이디 또는 식별정보)에 따라 제1 DB 모듈(311)에 저장된 위치그룹을 선정할 수 있다. 이와 같이, 비전 모듈(313)을 통해 인식된 이미지와 유사한 이미지를 찾기 위하여 전체 DB 이미지에 대한 비교 과정을 수행하지 않고, 센서 모듈(312)을 통해 인식된 위치에 속하는 그룹을 특정해 줌으로써, 비전 모듈(313)에서 인식된 이미지와 비교할 대상인 후보 이미지들을 특정해 그 비교 대상 수를 줄여줄 수 있다. 이에 따라, 비교 횟수가 줄어들기 때문에 유사도 비교 과정을 위해 소요되는 시간을 줄일 수 있고, 위치 상 다른 곳이지만 이미지가 유사한 경우와 같은 오류를 제거할 수 있어 정확도를 높일 수 있다.
상기 유사도 결과 산출부(314c)는, 위치그룹 선정부(314b)를 통해 선정된 위치그룹에 속하는 'DB 벡터데이터'들과 데이터 입력부(314a)를 통해 입력된 '현재 벡터데이터' 간의 코사인 유사도(Cosine Similarity) 측정을 수행하여 그에 따른 점수(Score)를 각각 산출할 수 있다.
상기 위치정보 제공부(314d)는, 유사도 결과 산출부(314c)를 통해 산출된 유사도 점수 중 가장 높은 유사도 점수가 미리 설정된 기준 점수(Threshold)를 초과하는지 여부를 확인하고, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하는 경우 가장 높은 유사도 점수를 받은 DB 벡터데이터와 매칭되어 있는 표준 위치정보를 추출하여 제공할 수 있다.
예를 들어, '현재 벡터데이터 K'와 '위치그룹 2'에 포함된 DB 벡터데이터 '1~10' 간의 코사인 유사도 비교를 수행하고, 그 중 DB 벡터데이터 '2'에 대한 유사도 점수가 가장 높게 측정된 경우, DB 벡터데이터 '2'의 유사도 점수와 기준 점수(Threshold)를 비교하여 DB 벡터데이터 '2'의 유사도 점수가 기준 점수(Threshold)를 초과하는 것으로 확인되면 DB 벡터데이터 '2'와 매칭되어 있는 표준 위치정보 '2'를 추출할 수 있다.
상기 위치정보 재설정 모듈(315)은, 제1 위치정보 추출 모듈(314)을 통해 추출된 표준 위치정보 및 센서 모듈(312)을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇(310)의 위치정보를 재 설정할 수 있다.
좀 더 구체적으로 위치정보 재설정 모듈(315)은, 센서 모듈(312)을 통해 산출된 추정 위치정보 및 위치정보 제공부(314d)를 통해 제공된 표준 위치정보 간을 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 도 8에 도시된 바와 같이, 자율주행로봇(310)의 주행 상태에 이상이 있는 것으로 판단하여 자율주행로봇(310)이 일시 정지된 상태에서 센서 모듈(200)의 라이다(LiDAR) 및 오도메트리(Odometry)를 재설정한 후, 위치정보 제공부(314d)를 통해 제공된 표준 위치정보를 라이다(LiDAR) 및 오도메트리(Odometry)의 초기 위치정보로 설정하여 위치 오차를 보정할 수 있다.
이러한 위치정보 재설정 모듈(315)은, 시각적 루프 탐지(visual loop detection)를 통해 실시간으로 획득되는 이미지와 미리 구축한 데이터베이스 간의 유사도 검사를 수행하여, 자율주행로봇(310)의 주행 상태에 이상이 있는 경우 시각 정보를 이용해 추정된 위치정보를 기반으로 라이다(LiDAR) 및 오도메트리(Odometry)에서의 초기 위치정보를 재조정할 수 있다.
여기서, 위치 재조정이란, 도 8을 참조하면 자율주행로봇(310)의 주행 상태가 잘못됐다고 판단했을 때 작동되는 것으로, 자율주행로봇(310)을 일시 정지시킨 후 오도메트리를 리셋하고, 초기 위치정보의 부여를 통해 자율주행로봇(10)의 현재 위치정보를 다시 설정하는 프로세스를 의미한다. 이와 같이, 기존 SLAM 알고리즘에서 초기 위치(initial pose)를 부여할 때 현재 위치정보를 추정하는 알고리즘을 이용하여 자율주행로봇(10)의 주행 상태에 대한 이상 감지 시 시각 정보를 이용해 추정한 위치 정보를 초기 위치정보로 재설정함으로써 현재 위치정보에 대한 오차를 보정할 수 있다.
상기 DB 업데이트 모듈(316)은, 가장 높은 유사도 점수가 기준 점수(Threshold)를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가한 후 이전에 후보 DB에 추가된 벡터데이터들과의 유사도 비교를 수행하여 해당 기준 점수를 초과하는 경우 해당 벡터데이터의 이미지 아이디에 대한 업 카운트를 실시하고, 해당 기준 점수를 초과하지 않는 경우 새로운 이미지 아이디를 부여하여 후보 DB에 추가하되, 코사인 유사도 점수 산출 과정 및 기준 점수 비교 과정을 반복 실시하여 해당 이미지 아이디에 대한 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 가장 높은 유사도 점수를 받은 현재 벡터데이터 및 현재 벡터데이터에 해당하는 추정 위치정보들의 평균 값을 제1 DB 모듈(311)에 추가 등록하여 제1 DB 모듈(311)의 데이터 세트를 업데이트 할 수 있다.
즉, 가장 높은 유사도 점수가 기준 점수를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가하고, 후보 DB에 추가된 벡터데이터는 기존의 후보 DB에 존재하는 벡터데이터들과의 유사도 비교를 통해 유사한 벡터가 있는 경우(즉, 기준 점수를 초과하는 경우) 해당 벡터데이터의 이미지 아이디에 대한 업카운트를 실시 및 추정 위치 정보 추가를 수행하고, 유사한 벡터데이터가 없는 경우 해당 벡터데이터의 이미지에 대한 새로운 아이디를 부여해 후보 DB에 저장할 수 있다.
이러한 과정을 반복 수행하여 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 해당 데이터 및 해당 데이터에 해당하는 추정 위치 정보들의 평균값을 제1 DB 모듈(311)에 추가 등록하여 제1 DB 모듈(311)의 데이터 세트를 업데이트하고 후보 DB에서 해당 데이터는 제거할 수 있다.
이와 같이, 제1 DB 모듈(311)과의 유사도 비교를 통해 새로운 데이터로서 판단되는 데이터들을 후보 DB에 추가하는 프로세스와, 벡터데이터가 후보 DB에 추가되었을 때 후보 DB에서의 유사도 비교를 통해 신뢰할만한 새로운 벡터데이터를 찾는 과정(즉, 누적 카운터 횟수를 이용하는 방식)을 수행할 수 있다.
자율주행로봇(310)이 주행하면서 건물 내부를 촬영하는데, 건물 내부 모습은 시간이 흐름에 따라 변할 수 있기 때문에 제1 DB 모듈(311)에 저장된 이미지(즉, 벡터데이터) 또한 그에 맞게 갱신되어야 한다. 이에 따라 DB 업데이트 모듈(316)은 비전 모듈(313)을 통해 제공되는 이미지와 제1 DB 모듈(311)에 저장된 이미지 간을 비교할 때 유사한 이미지를 찾지 못하는 경우(즉, 가장 높은 유사도 점수가 기준 점수를 넘지 못하는 경우) 해당 이미지에 대한 벡터데이터와 좌표정보를 제1 DB 모듈(311)에 추가 등록할 수 있다.
다만, 추가 등록 대상을 한 번의 판단 과정을 통해 결정하는 것은 오히려 DB를 오염시킬 수 있기 때문에, 위의 조건(누적 카운터 횟수가 미리 설정된 기준 횟수 이상)을 N회 이상(ex. 3회 이상) 만족하는 경우 제1 DB 모듈(311)에 해당 벡터데이터(현재 벡터데이터 N개)를 추가할 수 있으며, 이때 위치정보는 비전 모듈(313)에서 현재 벡터데이터가 획득되었을 때 센서 모듈(312)에서 제공된 N개의 추정 위치정보들에 대한 평균 값이 적용될 수 있다.
상기 제2 DB 모듈(321)은, 미리 생성된 다수의 비전데이터(DB 벡터데이터) 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 구성요소로서, 자율주행로봇(310)에 설치된 제1 DB 모듈(311)보다 더 많은 데이터(DB 벡터데이터, 표준 위치정보를 포함한 데이터 세트)를 보유하고 있어, 자율주행로봇(310)에서 1차 위치 추정이 불가한 경우 클라우드 서버(320)에서 자율주행로봇(310)에 대한 2차 위치 추정을 진행할 수 있도록 한다. 이러한 제2 DB 모듈(321)은 상술한 제1 DB 모듈(321)과 동일한 데이터 구조로 구축되어 있으나, 다만 클라우드의 장점을 활용해 보다 많은 데이터들이 구축되어 있어 위치 추정에 대한 높은 정확도를 제공할 수 있도록 한다.
상기 제2 위치정보 추출 모듈(322)은, 자율주행로봇(310)의 제1 위치정보 추출 모듈(314)을 통해 표준 위치정보가 추출되지 않는 경우(즉, 자율주행로봇(310)에서 위치 추정이 불가한 경우), 자율주행로봇(310)의 센서 모듈(312)을 통해 특정된 위치그룹에 속한 비전데이터들 중 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출 즉, 2차 위치 추정 과정을 수행하고, 그에 따라 추출된 표준 위치정보를 추출하여 자율주행로봇(310)의 제1 위치정보 추출 모듈(314)로 제공할 수 있다. 다만, 클라우드 서버(320)에서도 위치 추정(표준 위치정보 추출)이 불가한 경우에는 DB 자동 갱신 알고리즘을 통해 DB를 갱신할 수 있다
이러한 클라우드 서버(320)는 다수의 자율주행로봇(310)의 주행기록, 판단결과 등에 대한 데이터를 지속적으로 수신 및 축적한 후 복합적인 DB를 형성함으로써, 자율주행로봇(310) 주행 시 가상 주행을 통해 해당 로봇(310)의 주행 상태 판단을 돕고 주행 경로를 추천할 수 있다.
이상에서 설명한 것은 본 발명에 의한 SLAM(Simultaneous Localization And Map-Building) 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
100: SLAM 위치 오차 보정 시스템
110: 자율주행로봇
111: 센서 모듈
112: 비전 모듈
112a: 주행영상 생성부
112b: 주행이미지 획득부
112c: 벡터데이터 추출부
120: 클라우드 서버
121: DB 모듈
121a: 위치그룹 생성부
121b: 위치그룹 관리부
122: 위치정보 추출 모듈
122a: 데이터 입력부
122b: 위치그룹 선정부
122c: 유사도 결과 산출부
122d: 위치정보 제공부
123: 위치정보 재설정 모듈
124: DB 업데이트 모듈
200: SLAM 위치 오차 보정 시스템
210: 자율주행로봇
211: DB 모듈
211a: 위치그룹 생성부
211b: 위치그룹 관리부
212: 센서 모듈
213: 비전 모듈
213a: 주행영상 생성부
213b: 주행이미지 획득부
213c: 벡터데이터 추출부
214: 위치정보 추출 모듈
214a: 데이터 입력부
214b: 위치그룹 선정부
214c: 유사도 결과 산출부
214d: 위치정보 제공부
215: 위치정보 재설정 모듈
216: DB 업데이트 모듈
217: DB 모니터링 모듈
220: 클라우드 서버
221: DB 백업 모듈
222: DB 수정 모듈
300: SLAM 위치 오차 보정 시스템
310: 자율주행로봇
311: 제1 DB 모듈
311a: 위치그룹 생성부
311b: 위치그룹 관리부
312: 센서 모듈
313: 비전 모듈
313a: 주행영상 생성부
313b: 주행이미지 획득부
313c: 벡터데이터 추출부
314: 제1 위치정보 추출 모듈
314a: 데이터 입력부
314b: 위치그룹 선정부
314c: 유사도 결과 산출부
314d: 위치정보 제공부
315: 위치정보 재설정 모듈
316: DB 업데이트 모듈
320: 클라우드 서버
321: 제2 DB 모듈
322: 제2 위치정보 추출 모듈

Claims (10)

  1. 센서 모듈 및 비전 모듈을 포함하는 자율주행로봇; 및
    DB 모듈, 위치정보 추출 모듈 및 위치정보 재설정 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함하고,
    상기 DB 모듈은, 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하고,
    상기 센서 모듈은, 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하고,
    상기 비전 모듈은, 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하고,
    상기 위치정보 추출 모듈은, 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하고,
    상기 위치정보 재설정 모듈은, 상기 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 위치정보를 재설정하여 보정하고,
    상기 센서 모듈은, 라이다 및 오도메트리를 통해 산출된 자율주행로봇의 추정 위치정보를 위치그룹 별로 정의된 상기 설정영역과 비교하여 자율주행로봇의 추정 위치정보에 해당하는 위치그룹을 결정하는 것을 특징으로 하는 SLAM(Simultaneous Localization And Map-Building) 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템.
  2. 제1 항에 있어서,
    상기 DB 모듈은,
    비전데이터로부터 각각 추출된 DB 벡터데이터 및 각각의 비전데이터가 생성된 좌표정보를 나타내는 표준 위치정보를 서로 매칭하여 데이터 세트를 각각 생성하고, 생성된 다수의 데이터 세트를 상기 설정영역에 따라 그룹화하여 다수의 위치그룹을 생성하는 위치그룹 생성부; 및
    상기 위치그룹 생성부를 통해 생성된 위치그룹의 데이터 세트를 저장하는 위치그룹 관리부를 포함하는 것을 특징으로 하는 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템.
  3. 제2 항에 있어서,
    상기 비전 모듈은,
    자율주행로봇에 설치되어 서로 다른 방향 또는 각도에 대하여 촬영하는 적어도 두 개의 카메라를 통해 자율주행로봇의 주행영상을 각각 생성하는 주행영상 생성부;
    자율주행로봇의 주행영상에 대한 이미지를 각각 획득하고, 획득된 이미지 별로 이미지 아이디를 각각 부여하는 주행이미지 획득부; 및
    상기 주행이미지 획득부를 통해 획득된 각각의 이미지로부터 현재 벡터데이터를 추출하여 비전인식결과로서 제공하는 벡터데이터 추출부를 포함하는 것을 특징으로 하는 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템.
  4. 제3 항에 있어서,
    상기 위치정보 추출 모듈은,
    상기 비전 모듈로부터 현재 벡터데이터를 입력 받고, 상기 센서 모듈로부터 추정 위치정보 및 특정된 위치그룹 정보를 각각 입력 받는 데이터 입력부;
    상기 데이터 입력부를 통해 입력된 위치그룹 정보에 따라 상기 DB 모듈에 저장된 위치그룹을 선정하는 위치그룹 선정부;
    상기 위치그룹 선정부를 통해 선정된 위치그룹에 속하는 DB 벡터데이터들과 상기 데이터 입력부를 통해 입력된 현재 벡터데이터 간의 코사인 유사도 점수를 각각 산출하는 유사도 결과 산출부; 및
    상기 유사도 결과 산출부를 통해 산출된 유사도 점수 중 가장 높은 유사도 점수가 미리 설정된 기준 점수를 초과하는지 여부를 확인하고, 초과하는 경우 가장 높은 유사도 점수의 DB 벡터데이터와 매칭된 표준 위치정보를 추출하여 제공하는 위치정보 제공부를 포함하는 것을 특징으로 하는 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템.
  5. 제4 항에 있어서,
    상기 위치정보 재설정 모듈은,
    상기 센서 모듈을 통해 산출된 추정 위치정보 및 상기 위치정보 제공부를 통해 제공된 표준 위치정보 간을 비교하여 일치 여부를 판단하고, 일치하지 않는 경우 자율주행로봇의 주행 상태에 이상이 있는 것으로 판단하여 자율주행로봇이 일시 정지된 상태에서 상기 센서 모듈의 라이다(LiDAR) 및 오도메트리(Odometry)를 재설정한 후, 상기 위치정보 제공부를 통해 제공된 표준 위치정보를 라이다(LiDAR) 및 오도메트리(Odometry)의 초기 위치정보로 설정하여 위치 오차를 보정하는 것을 특징으로 하는 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템.
  6. 제4 항에 있어서,
    상기 클라우드 서버는,
    가장 높은 유사도 점수가 상기 기준 점수를 초과하지 않는 경우, 가장 높은 유사도 점수를 받은 현재 벡터데이터의 이미지를 후보 DB에 추가한 후 이전에 후보 DB에 추가된 벡터데이터들과의 유사도 비교를 수행하여 상기 기준 점수를 초과하는 경우 해당 벡터데이터의 이미지 아이디에 대한 업 카운트를 실시하고, 상기 기준 점수를 초과하지 않는 경우 새로운 이미지 아이디를 부여하여 후보 DB에 추가하되, 코사인 유사도 점수 산출 과정 및 기준 점수 비교 과정을 반복 실시하여 해당 이미지 아이디에 대한 누적 카운터 횟수가 미리 설정된 기준 횟수 이상이 되면 가장 높은 유사도 점수를 받은 현재 벡터데이터 및 현재 벡터데이터에 해당하는 추정 위치정보들의 평균 값을 상기 DB 모듈에 추가 등록하여 상기 DB 모듈의 데이터 세트를 업데이트하는 DB 업데이트 모듈을 더 포함하는 것을 특징으로 하는 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템.
  7. 삭제
  8. 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 DB 모듈; 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하는 센서 모듈; 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하는 비전 모듈; 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하는 위치정보 추출 모듈; 상기 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 위치정보를 재설정하여 보정하는 위치정보 재설정 모듈; 및 상기 DB 모듈에 저장된 데이터에 대한 모니터링을 수행하고 DB 모니터링 데이터를 생성하는 DB 모니터링 모듈을 포함하는 자율주행로봇; 및
    상기 DB 모듈과 동기화되어 상기 DB 모듈에 저장된 데이터를 백업하는 DB 백업 모듈; 및 상기 DB 모니터링 모듈로부터 제공되는 DB 모니터링 데이터를 기반으로 상기 DB 모듈에 필요하지 않은 데이터를 판단하여 삭제하는 DB 수정 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함하고,
    상기 센서 모듈은, 라이다 및 오도메트리를 통해 산출된 자율주행로봇의 추정 위치정보를 위치그룹 별로 정의된 상기 설정영역과 비교하여 자율주행로봇의 추정 위치정보에 해당하는 위치그룹을 결정하는 것을 특징으로 하는 SLAM(Simultaneous Localization And Map-Building) 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템.
  9. 제8 항에 있어서,
    상기 DB 모니터링 모듈은,
    비전데이터의 최초 생성 일시 정보, 비전데이터 별 가장 높은 유사도 점수에 의해 선택된 최근 일시 정보, 비전데이터 별 가장 높은 유사도 점수에 의해 선택된 횟수 정보, 및 가장 높은 유사도 점수에 의해 선택된 표준 위치정보 및 상기 센서 모듈의 추정 위치정보 간의 거리 및 방향 차이에 대한 비교 정보를 각각 모니터링 하는 것을 특징으로 하는 SLAM 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템.
  10. 미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 제1 DB 모듈; 라이다(LiDAR) 및 오도메트리(Odometry)를 통해 자율주행로봇의 추정 위치정보를 산출하고, 산출된 추정 위치정보에 따라 다수의 위치그룹 중 어느 한 위치그룹을 특정하는 센서 모듈; 자율주행로봇의 주행영상에 대한 비전인식 프로세스를 통해 비전인식결과를 제공하는 비전 모듈; 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하는 제1 위치정보 추출 모듈; 및 상기 제1 위치정보 추출 모듈을 통해 추출된 표준 위치정보 및 상기 센서 모듈을 통해 산출된 추정 위치정보 간을 비교하고, 비교결과에 따라 자율주행로봇의 위치정보를 재설정하여 보정하는 위치정보 재설정 모듈을 포함하는 자율주행로봇; 및
    미리 생성된 다수의 비전데이터 및 다수의 표준 위치정보를 서로 매칭시켜 저장하되, 일정좌표범위를 갖는 설정영역에 따라 각각 그룹화 된 다수의 위치그룹으로 저장하는 제2 DB 모듈; 및 상기 제1 위치정보 추출 모듈을 통해 표준 위치정보가 추출되지 않는 경우, 상기 센서 모듈을 통해 특정된 위치그룹에 속한 비전데이터들 중 상기 비전인식결과와 가장 유사한 비전데이터와 매칭되어 있는 표준 위치정보를 추출하여 상기 제1 위치정보 추출 모듈로 제공하는 제2 위치정보 추출 모듈을 포함하고, 상기 자율주행로봇과 인터넷 통신망을 통해 연결된 클라우드 서버를 포함하고,
    상기 센서 모듈은, 라이다 및 오도메트리를 통해 산출된 자율주행로봇의 추정 위치정보를 위치그룹 별로 정의된 상기 설정영역과 비교하여 자율주행로봇의 추정 위치정보에 해당하는 위치그룹을 결정하는 것을 특징으로 하는 SLAM(Simultaneous Localization And Map-Building) 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템.
KR1020230073293A 2023-06-08 2023-06-08 Slam 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템 KR102631315B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230073293A KR102631315B1 (ko) 2023-06-08 2023-06-08 Slam 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230073293A KR102631315B1 (ko) 2023-06-08 2023-06-08 Slam 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템

Publications (1)

Publication Number Publication Date
KR102631315B1 true KR102631315B1 (ko) 2024-02-01

Family

ID=89859185

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230073293A KR102631315B1 (ko) 2023-06-08 2023-06-08 Slam 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템

Country Status (1)

Country Link
KR (1) KR102631315B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140003987A (ko) * 2012-06-25 2014-01-10 서울대학교산학협력단 비젼 센서 정보와 모션 센서 정보를 융합한 모바일 로봇용 slam 시스템
KR20150004568A (ko) * 2013-07-03 2015-01-13 삼성전자주식회사 자율 이동 로봇의 위치 인식 방법
KR101976241B1 (ko) * 2016-01-22 2019-08-28 경희대학교 산학협력단 다중로봇의 자기위치인식에 기반한 지도작성 시스템 및 그 방법
JP6605180B2 (ja) * 2017-06-01 2019-11-13 三菱電機株式会社 地図処理装置、地図処理方法及び地図処理プログラム
KR20220125227A (ko) * 2019-12-09 2022-09-14 쩌지앙 길리 홀딩 그룹 씨오., 엘티디. 자율 주행 제어시스템, 제어방법 및 설비
KR20220152451A (ko) 2021-05-07 2022-11-16 휴림로봇 주식회사 Slam 기반 이동로봇의 자연사물을 이용한 로봇의 위치추종 방법 및 장치, 컴퓨터 판독가능 기록 매체 및 컴퓨터 프로그램

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140003987A (ko) * 2012-06-25 2014-01-10 서울대학교산학협력단 비젼 센서 정보와 모션 센서 정보를 융합한 모바일 로봇용 slam 시스템
KR20150004568A (ko) * 2013-07-03 2015-01-13 삼성전자주식회사 자율 이동 로봇의 위치 인식 방법
KR101976241B1 (ko) * 2016-01-22 2019-08-28 경희대학교 산학협력단 다중로봇의 자기위치인식에 기반한 지도작성 시스템 및 그 방법
JP6605180B2 (ja) * 2017-06-01 2019-11-13 三菱電機株式会社 地図処理装置、地図処理方法及び地図処理プログラム
KR20220125227A (ko) * 2019-12-09 2022-09-14 쩌지앙 길리 홀딩 그룹 씨오., 엘티디. 자율 주행 제어시스템, 제어방법 및 설비
KR20220152451A (ko) 2021-05-07 2022-11-16 휴림로봇 주식회사 Slam 기반 이동로봇의 자연사물을 이용한 로봇의 위치추종 방법 및 장치, 컴퓨터 판독가능 기록 매체 및 컴퓨터 프로그램

Similar Documents

Publication Publication Date Title
US10422648B2 (en) Methods for finding the perimeter of a place using observed coordinates
US10953545B2 (en) System and method for autonomous navigation using visual sparse map
Pire et al. Stereo parallel tracking and mapping for robot localization
JP2019125354A (ja) 情報処理装置、システム、方法、およびプログラム
CN112197770B (zh) 一种机器人的定位方法及其定位装置
KR101003168B1 (ko) 다차원 에비던스 그리드 및 그를 적용한 시스템 및 방법
US8024072B2 (en) Method for self-localization of robot based on object recognition and environment information around recognized object
CN108303096B (zh) 一种视觉辅助激光定位系统及方法
CN108038139B (zh) 地图构建方法、装置和机器人定位方法、装置、计算机设备和存储介质
CN106647738A (zh) 一种无人搬运车的对接路径确定方法及系统及无人搬运车
US20210041886A1 (en) Multi-device visual navigation method and system in variable scene
CN112013858A (zh) 定位方法、装置、自移动设备和存储介质
McGreavy et al. Next best view planning for object recognition in mobile robotics
Kua et al. Automatic loop closure detection using multiple cameras for 3d indoor localization
Wietrzykowski et al. PlaneLoc: Probabilistic global localization in 3-D using local planar features
Altuntaş et al. Comparison of 3-dimensional SLAM systems: RTAB-Map vs. Kintinuous
KR102354229B1 (ko) 무인 비행체의 비행 제어장치 및 그 방법
KR102631315B1 (ko) Slam 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 시스템
KR102631313B1 (ko) Slam 기술 구현을 위한 비전 데이터 및 라이다 데이터 간의 실시간 분석 및 대조를 통해 위치 오차 보정이 가능한 장치
Sizintsev et al. Multi-sensor fusion for motion estimation in visually-degraded environments
WO2022085368A1 (ja) 情報処理装置、情報処理システム、および方法、並びにプログラム
CN113158816B (zh) 面向室外场景物体的视觉里程计二次曲面路标构建方法
US20230185317A1 (en) Information processing device, information processing system, method, and program
Badri et al. Camera-to-camera mapping for hybrid pan-tilt-zoom sensors calibration
Cupec et al. Global localization based on 3d planar surface segments

Legal Events

Date Code Title Description
GRNT Written decision to grant