[go: up one dir, main page]

KR102870997B1 - Computing device for indoor odometry and method of operation thereof - Google Patents

Computing device for indoor odometry and method of operation thereof

Info

Publication number
KR102870997B1
KR102870997B1 KR1020230186773A KR20230186773A KR102870997B1 KR 102870997 B1 KR102870997 B1 KR 102870997B1 KR 1020230186773 A KR1020230186773 A KR 1020230186773A KR 20230186773 A KR20230186773 A KR 20230186773A KR 102870997 B1 KR102870997 B1 KR 102870997B1
Authority
KR
South Korea
Prior art keywords
information
computing device
motion
state information
module
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020230186773A
Other languages
Korean (ko)
Other versions
KR20250095995A (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 KR1020230186773A priority Critical patent/KR102870997B1/en
Priority to PCT/KR2024/013688 priority patent/WO2025135401A1/en
Publication of KR20250095995A publication Critical patent/KR20250095995A/en
Application granted granted Critical
Publication of KR102870997B1 publication Critical patent/KR102870997B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/183Compensation of inertial measurements, e.g. for temperature effects
    • G01C21/188Compensation of inertial measurements, e.g. for temperature effects for accumulated errors, e.g. by coupling inertial systems with absolute positioning systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Evolutionary Computation (AREA)
  • Theoretical Computer Science (AREA)
  • Medical Informatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Navigation (AREA)

Abstract

본 개시는 실내 오도메트리를 위한 컴퓨팅 장치 및 그의 동작 방법에 관한 것으로, 주변 공간 정보와 관성 측정 정보를 이용하여, 이동 수단 탑승에 따른 간접 이동 모션 및 간접 이동 모션에 대응하는 이동 수단에 의한 위치 변화량을 추정하고, 위치 변화량에 따라, 상태 정보를 검출하도록 구성될 수 있다.The present disclosure relates to a computing device for indoor odometry and an operating method thereof, which can be configured to estimate an indirect movement motion due to boarding a vehicle and a position change amount by the vehicle corresponding to the indirect movement motion by using surrounding space information and inertial measurement information, and to detect state information based on the position change amount.

Description

실내 오도메트리를 위한 컴퓨팅 장치 및 그의 동작 방법{COMPUTING DEVICE FOR INDOOR ODOMETRY AND METHOD OF OPERATION THEREOF}Computing device for indoor odometry and method of operation thereof {Computing device for indoor odometry and method of operation therefor}

본 개시는 실내 오도메트리(odometry)를 위한 컴퓨팅 장치 및 그의 동작 방법에 관한 것이다. The present disclosure relates to a computing device for indoor odometry and a method of operating the same.

실내 오도메트리는 디바이스가 실내 환경을 이동하면서 획득한 감지 정보를 이용하여 디바이스의 상태 정보를 추정하는 기술이다. 일반적으로, 디바이스는 카메라 또는 라이다 중 적어도 하나와 관성 센서로부터 감지 정보를 획득하며, 실내 오도메트리 알고리즘은 감지 정보로부터 상태 정보를 추정한다. 예를 들어, 실내 오도메트리 알고리즘에는 카메라 및 관성 센서로부터의 감지 정보를 이용하는 VIO(visual inertial odometry) 알고리즘, 라이다 센서 및 관성 센서로부터의 감지 정보를 이용하는 LIO(lidar inertial odometry) 알고리즘, 카메라, 라이다 센서, 및 관성 센서로부터의 감지 정보를 이용하는 VLIO(visual lidar inertial odometry) 알고리즘 등이 있다. Indoor odometry is a technology that estimates the state information of a device by using the sensing information acquired while the device moves in an indoor environment. Typically, the device acquires sensing information from at least one of a camera or a lidar and an inertial sensor, and an indoor odometry algorithm estimates state information from the sensing information. For example, indoor odometry algorithms include the visual inertial odometry (VIO) algorithm, which uses sensing information from a camera and an inertial sensor, the lidar inertial odometry (LIO) algorithm, which uses sensing information from a lidar sensor and an inertial sensor, and the visual lidar inertial odometry (VLIO) algorithm, which uses sensing information from a camera, a lidar sensor, and an inertial sensor.

그런데, 상기와 같은 실내 오도메트리 알고리즘은 디바이스의 특정 모션에 대해 정확한 상태 정보를 추정하지 못하는 문제가 있다. 보다 상세하게는, 디바이스가 이동 수단, 예컨대, 엘리베이터, 에스컬레이터, 무빙워크 등에 의해 이동하는 모션에 대해, 실내 오도메트리 알고리즘은 카메라 또는 라이다로부터의 감지 정보를 기반으로 디바이스의 정지를 검출한다. 이는 이동 수단에 탑승하고 있는 동안에는 주변의 공간적 특징들이 대체로 변하지 않기 때문이다. 한편, 해당 모션에 대해, 실내 오도메트리 알고리즘은 관성 센서로부터의 감지 정보를 기반으로 디바이스의 이동을 검출한다. 이는 이동 수단에 탑승하고 있는 동안 이동 수단과 함께 등속으로 이동하기 때문이다. 이와 같이, 디바이스의 정지와 이동의 동시 검출은 상태 정보의 추정 실패로 이어진다. However, the above indoor odometry algorithm has a problem in that it cannot accurately estimate state information for a specific motion of the device. More specifically, for a motion in which the device moves by a means of transportation, such as an elevator, escalator, or moving walkway, the indoor odometry algorithm detects the stationary state of the device based on sensing information from a camera or lidar. This is because the surrounding spatial features generally do not change while the device is in the means of transportation. Meanwhile, for the corresponding motion, the indoor odometry algorithm detects the movement of the device based on sensing information from an inertial sensor. This is because the device moves at a constant speed along with the means of transportation while in the means of transportation. Thus, the simultaneous detection of the stationary and moving state of the device leads to a failure in estimating the state information.

본 개시는 모든 모션들에 대해 높은 정확도로 상태 정보를 추정하기 위한 실내 오도메트리를 위한 컴퓨팅 장치 및 그의 동작 방법을 제공한다.The present disclosure provides a computing device and an operating method thereof for indoor odometry for estimating state information with high accuracy for all motions.

본 개시는 직접 이동 모션뿐만 아니라 이동 수단 탑승에 따른 간접 이동 모션에 대해 높은 정확도로 상태 정보를 추정하기 위한 실내 오도메트리를 위한 컴퓨팅 장치 및 그의 동작 방법을 제공한다.The present disclosure provides a computing device and an operating method thereof for indoor odometry for estimating state information with high accuracy for not only direct movement motion but also indirect movement motion due to boarding a vehicle.

본 개시에서, 실내 오도메트리를 위한 컴퓨팅 장치의 동작 방법은, 주변 공간 정보와 관성 측정 정보를 이용하여, 이동 수단 탑승에 따른 간접 이동 모션 및 상기 간접 이동 모션에 대응하는 상기 이동 수단에 의한 위치 변화량을 추정하는 단계, 및 상기 위치 변화량에 따라, 상태 정보를 검출하는 단계를 포함할 수 있다.In the present disclosure, an operating method of a computing device for indoor odometry may include a step of estimating an indirect movement motion according to boarding a vehicle and a position change amount by the vehicle corresponding to the indirect movement motion, using surrounding space information and inertial measurement information, and a step of detecting state information according to the position change amount.

본 개시에서, 실내 오도메트리를 위한 컴퓨팅 장치는, 메모리, 및 상기 메모리와 연결되고, 상기 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함하고, 상기 프로세서는, 주변 공간 정보와 관성 측정 정보를 이용하여, 이동 수단 탑승에 따른 간접 이동 모션 및 상기 간접 이동 모션에 대응하는 상기 이동 수단에 의한 위치 변화량을 추정하고, 상기 위치 변화량에 따라, 상태 정보를 검출하도록 구성될 수 있다. In the present disclosure, a computing device for indoor odometry includes a memory, and a processor connected to the memory and configured to execute at least one command stored in the memory, wherein the processor may be configured to estimate an indirect movement motion according to boarding a vehicle and a position change amount by the vehicle corresponding to the indirect movement motion by using surrounding space information and inertial measurement information, and to detect state information according to the position change amount.

본 개시에 따르면, 컴퓨팅 장치는 주변 공간 정보와 관성 측정 정보를 이용하여 모션 타입을 추정함으로써, 직접 이동 모션과 간접 이동 모션을 구분할 수 있다. 즉, 컴퓨팅 장치는 주변의 공간적 특징들이 변하지 않더라도, 이동 수단에 의한 간접 이동 모션을 식별할 수 있다. 아울러, 컴퓨팅 장치는 간접 이동 모션에 대응하는 이동 수단에 의한 위치 변화량을 추정함으로써, 간접 이동 모션에 대해 상태 정보를 추정할 수 있다. 이로써, 컴퓨팅 장치는 직접 이동 모션뿐만 아니라 간접 이동 모션에 대해 높은 정확도로 상태 정보를 추정할 수 있다. 따라서, 컴퓨팅 장치에 있어서, 실내 오도메트리 성능이 향상될 수 있다. According to the present disclosure, a computing device can distinguish between direct and indirect movement motions by estimating motion types using surrounding spatial information and inertial measurement information. That is, the computing device can identify indirect movement motions by a vehicle even if surrounding spatial features do not change. Furthermore, the computing device can estimate state information for indirect movement motions by estimating the amount of positional change by the vehicle corresponding to the indirect movement motion. As a result, the computing device can estimate state information with high accuracy for both direct and indirect movement motions. Therefore, indoor odometry performance can be improved in the computing device.

도 1은 다양한 실시예들에 따른 실내 오도메트리를 위한 컴퓨팅 장치를 도시하는 블록도이다.
도 2는 도 1의 프로세서를 도시하는 블록도이다.
도 3은 다양한 실시예들에 따른 실내 오도메트리를 위한 컴퓨팅 장치의 동작 방법을 도시하는 순서도이다.
FIG. 1 is a block diagram illustrating a computing device for indoor odometry according to various embodiments.
Figure 2 is a block diagram illustrating the processor of Figure 1.
FIG. 3 is a flowchart illustrating an operation method of a computing device for indoor odometry according to various embodiments.

이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다. Hereinafter, specific details for implementing the present disclosure will be described in detail with reference to the attached drawings. However, in the following description, specific descriptions of widely known functions or configurations will be omitted if they may unnecessarily obscure the gist of the present disclosure.

첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다. In the attached drawings, identical or corresponding components are assigned the same reference numerals. Furthermore, in the description of the embodiments below, duplicate descriptions of identical or corresponding components may be omitted. However, even if a description of a component is omitted, it is not intended that such component is not included in any embodiment.

개시된 실시예들의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다. The advantages and features of the disclosed embodiments, and methods for achieving them, will become clearer with reference to the embodiments described below, along with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below and may be implemented in various different forms. These embodiments are provided solely to ensure the completeness of the disclosure and to fully inform those skilled in the art of the scope of the invention.

본 개시에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예들에 대해 구체적으로 설명하기로 한다. 본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in this disclosure will be briefly described, and the disclosed embodiments will be described in detail. The terms used in this disclosure have been selected from widely used and common terms, taking into account the functions of this disclosure. However, these terms may vary depending on the intentions of engineers working in the relevant field, precedents, the emergence of new technologies, etc. Furthermore, in certain cases, terms may be arbitrarily selected by the applicant, and in such cases, their meanings will be described in detail in the description of the relevant invention. Therefore, the terms used in this disclosure should not be defined simply as names of terms, but rather based on the meanings of the terms and the overall content of this disclosure.

본 개시에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. In this disclosure, singular expressions include plural expressions unless the context clearly dictates otherwise. Furthermore, plural expressions include singular expressions unless the context clearly dictates otherwise. Throughout the specification, when a part is said to include a certain component, this does not exclude other components, but rather implies that other components may be included, unless otherwise specifically stated.

또한, 본 개시에서 사용되는 '모듈' 또는 '부'라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, '모듈' 또는 '부'는 어떤 역할들을 수행한 다. 그렇지만, '모듈' 또는 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '모듈' 또는 '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서, '모듈' 또는 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성 요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 또는 변수들 중 적어도 하나를 포함할 수 있다. 구성요소들과 '모듈' 또는 '부'들은 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '모듈' 또는 '부'들로 결합되거나 추가적인 구성요소들과 '모듈' 또는 '부'들로 더 분리될 수 있다. In addition, the term 'module' or 'part' used in the present disclosure means a software or hardware component, and the 'module' or 'part' performs certain roles. However, the 'module' or 'part' is not limited to software or hardware. The 'module' or 'part' may be configured to be on an addressable storage medium and may be configured to play one or more processors. Thus, as an example, the 'module' or 'part' may include at least one of components such as software components, object-oriented software components, class components, and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, or variables. The components and 'modules' or 'parts' may be combined into a smaller number of components and 'modules' or 'parts', or may be further separated into additional components and 'modules' or 'parts'.

본 개시에 따르면, '모듈' 또는 '부'는 프로세서 및 메 모리로 구현될 수 있다. '프로세서'는 범용 프로세서, 중앙 처리 장치(CPU), 마이 크로프로세서, 디지털 신호 프로세서(DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서, '프로세서'는 주문형 반도 체(ASIC), 프로그램가능 로직 디바이스(PLD), 필드 프로그램가능 게이트 어레이 (FPGA) 등을 지칭할 수도 있다. '프로세서'는, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다. 또한, '메모리'는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. '메모리'는 임의 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비-휘발성 임의 액세스 메모리(NVRAM), 프로그램가능 판독-전용 메모리(PROM), 소거-프로그램가능 판독 전용 메모리(EPROM), 전기적으로 소거가능 PROM(EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.According to the present disclosure, a 'module' or 'unit' may be implemented as a processor and a memory. 'Processor' should be broadly construed to include a general purpose processor, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a controller, a microcontroller, a state machine, and the like. In some circumstances, a 'processor' may also refer to an application-specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), and the like. A 'processor' may also refer to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in conjunction with a DSP core, or any other such combination of configurations. In addition, 'memory' should be broadly construed to include any electronic component capable of storing electronic information. 'Memory' may refer to various types of processor-readable media, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, etc. Memory is said to be in electronic communication with the processor if the processor can read information from, and/or write information to, the memory. Memory integrated in a processor is in electronic communication with the processor.

이하에서, 본 개시는 모든 모션들에 대해 높은 정확도로 상태 정보를 추정하기 위한 실내 오도메트리를 위한 컴퓨팅 장치(100) 및 그의 동작 방법을 제공한다. 컴퓨팅 장치(100)는 사용자에 휴대 또는 착용되어 사용자에 의해 이동 가능한 기기 또는 자율 주행이 가능한 로봇(robot)과 같은 디바이스에 구현되거나, 그러한 디바이스와 통신하는 서버에 구현될 수 있다. 모션 타입들은 디바이스의 직접 이동 모션, 이동 수단 탑승에 따른 간접 이동 모션, 및 정지 모션을 포함할 수 있다. 여기서, 이동 수단에는, 예컨대, 엘리베이터, 에스컬레이터, 무빙워크 등이 있을 수 있다. Hereinafter, the present disclosure provides a computing device (100) for indoor odometry for estimating state information with high accuracy for all motions, and an operating method thereof. The computing device (100) may be implemented in a device such as a device that is carried or worn by a user and can be moved by the user, a robot capable of autonomous driving, or may be implemented in a server that communicates with such a device. The types of motions may include direct movement motion of the device, indirect movement motion due to boarding a means of transportation, and stationary motion. Here, the means of transportation may include, for example, an elevator, an escalator, a moving walkway, etc.

도 1은 다양한 실시예들에 따른 실내 오도메트리를 위한 컴퓨팅 장치(100)를 도시하는 블록도이다. FIG. 1 is a block diagram illustrating a computing device (100) for indoor odometry according to various embodiments.

도 1을 참조하면, 컴퓨팅 장치(100)는 카메라 모듈(110), 센서 모듈(120), 통신 모듈(130), 입력 모듈(140), 출력 모듈(150), 메모리(160), 또는 프로세서(170) 중 적어도 하나를 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 장치(100)의 구성 요소들 중 적어도 어느 하나가 생략될 수 있다. 일부 실시예들에서, 컴퓨터 장치(100)에는 적어도 하나의 다른 구성 요소가 추가될 수 있다. 일부 실시예들에서, 컴퓨팅 장치(100)의 구성 요소들 중 적어도 어느 두 개가 하나의 통합된 회로로 구현될 수 있다. Referring to FIG. 1, the computing device (100) may include at least one of a camera module (110), a sensor module (120), a communication module (130), an input module (140), an output module (150), a memory (160), or a processor (170). In some embodiments, at least one of the components of the computing device (100) may be omitted. In some embodiments, at least one other component may be added to the computing device (100). In some embodiments, at least two of the components of the computing device (100) may be implemented as a single integrated circuit.

카메라 모듈(110)은 컴퓨팅 장치(100)의 주변 환경을 촬영하여, 그에 대한 영상을 획득할 수 있다. 예를 들면, 영상은 동영상 및 정지 이미지를 포함할 수 있다. 일 실시예에 따르면, 카메라 모듈(110)은 적어도 하나의 렌즈, 적어도 하나의 이미지 센서, 이미지 시그널 프로세서, 또는 플래시 중 적어도 하나를 포함할 수 있다. The camera module (110) can capture images of the surrounding environment of the computing device (100). For example, the images can include moving images and still images. According to one embodiment, the camera module (110) can include at least one lens, at least one image sensor, an image signal processor, or a flash.

센서 모듈(120)은 컴퓨팅 장치(100)의 상태를 감지하여, 그에 대한 전기 신호 또는 데이터 값을 생성할 수 있다. 다양한 실시예들에서, 센서 모듈(120)은 관성 측정 유닛(inertial measurement unit; IMU)을 포함하며, 관성 측정 유닛은 관성 측정 정보를 생성할 수 있다. 예를 들어, 관성 측정 유닛은 가속도계, 각속도계, 지자기계, 및 고도계를 포함할 수 있다. 추가적으로, 센서 모듈(120)은 라이다 센서, 레이더(radar) 센서, 적외선(infrared; IR) 센서, 거리 센서, 제스처 센서, 기압 센서, 마그네틱 센서, 그립 센서, 근접 센서, 컬러 센서, 적외선 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서 중 적어도 하나를 더 포함할 수 있다. The sensor module (120) can detect the status of the computing device (100) and generate an electrical signal or data value therefor. In various embodiments, the sensor module (120) includes an inertial measurement unit (IMU), and the inertial measurement unit can generate inertial measurement information. For example, the inertial measurement unit can include an accelerometer, a gyrometer, a magnetometer, and an altimeter. Additionally, the sensor module (120) can further include at least one of a lidar sensor, a radar sensor, an infrared (IR) sensor, a distance sensor, a gesture sensor, a barometric pressure sensor, a magnetic sensor, a grip sensor, a proximity sensor, a color sensor, an infrared sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

통신 모듈(130)은 컴퓨팅 장치(100)에서 외부 장치와 통신을 수행할 수 있다. 예를 들면, 외부 장치는 디바이스, 기지국, 서버, 또는 위성 중 적어도 하나를 포함할 수 있다. 통신 모듈(130)은 유선 통신 모듈 또는 무선 통신 모듈 중 적어도 하나를 포함할 수 있다. 유선 통신 모듈은 연결 단자(도시되지 않음)를 통해 외부 장치와 유선으로 연결되어, 외부 장치와 유선으로 통신할 수 있다. 무선 통신 모듈은 근거리 통신 모듈 또는 원거리 통신 모듈 중 적어도 어느 하나를 포함할 수 있다. 근거리 통신 모듈은 외부 장치와 근거리 통신 방식으로 통신할 수 있다. 예를 들면, 근거리 통신 방식은, 블루투스, 와이파이 다이렉트, 또는 적외선 통신 중 적어도 어느 하나를 포함할 수 있다. 원거리 통신 모듈은 외부 장치와 원거리 통신 방식으로 통신할 수 있다. 여기서, 원거리 통신 모듈은 네트워크를 통해 외부 장치와 통신할 수 있다. 예를 들면, 네트워크는 셀룰러 네트워크, 인터넷, 또는 LAN이나 WAN과 같은 컴퓨터 네트워크 중 적어도 어느 하나를 포함할 수 있다.The communication module (130) can communicate with an external device in the computing device (100). For example, the external device may include at least one of a device, a base station, a server, or a satellite. The communication module (130) may include at least one of a wired communication module and a wireless communication module. The wired communication module may be wired and connected to the external device via a connection terminal (not shown) to communicate with the external device via a wire. The wireless communication module may include at least one of a short-range communication module and a long-range communication module. The short-range communication module may communicate with the external device via a short-range communication method. For example, the short-range communication method may include at least one of Bluetooth, Wi-Fi Direct, or infrared communication. The long-range communication module may communicate with the external device via a long-range communication method. Here, the long-range communication module may communicate with the external device via a network. For example, the network may include at least one of a cellular network, the Internet, or a computer network such as a LAN or WAN.

입력 모듈(140)은 컴퓨팅 장치(100)의 적어도 하나의 구성 요소에 사용될 신호를 입력할 수 있다. 일부 실시예들에서, 입력 모듈(140)은 마이크로폰(microphone), 마우스(mouse), 또는 키보드(keyboard) 중 적어도 어느 하나를 포함할 수 있다. 다른 실시예들에서, 입력 모듈(140)은 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로 중 적어도 어느 하나를 포함할 수 있다. The input module (140) can input a signal to be used in at least one component of the computing device (100). In some embodiments, the input module (140) can include at least one of a microphone, a mouse, or a keyboard. In other embodiments, the input module (140) can include at least one of touch circuitry configured to detect a touch, or a sensor circuitry configured to measure the intensity of a force generated by a touch.

출력 모듈(150)은 컴퓨팅 장치(100)로부터의 정보를 출력할 수 있다. 이 때, 출력 모듈(150)은 정보를 시각적으로 표시하기 위한 표시 모듈, 또는 정보를 청각적으로 재생하기 위한 오디오 모듈 중 적어도 하나를 포함할 수 있다. 예를 들면, 표시 모듈은 디스플레이, 홀로그램 장치, 또는 프로젝터 중 적어도 어느 하나를 포함할 수 있다. 일 예로, 표시 모듈은 입력 모듈(140)의 터치 회로 또는 센서 회로 중 적어도 어느 하나와 조립되어, 터치 스크린으로 구현될 수 있다. 예를 들면, 오디오 모듈은 스피커, 리시버, 이어폰 또는 헤드폰 중 적어도 어느 하나를 포함할 수 있다.The output module (150) can output information from the computing device (100). At this time, the output module (150) can include at least one of a display module for visually displaying information or an audio module for audibly reproducing information. For example, the display module can include at least one of a display, a holographic device, or a projector. As an example, the display module can be implemented as a touch screen by being assembled with at least one of a touch circuit or a sensor circuit of the input module (140). For example, the audio module can include at least one of a speaker, a receiver, an earphone, or a headphone.

메모리(160)는 컴퓨팅 장치(100)의 적어도 하나의 구성 요소에 의해 사용되는 다양한 데이터를 저장할 수 있다. 예를 들면, 메모리(160)는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 어느 하나를 포함할 수 있다. 데이터는 적어도 하나의 프로그램 및 이와 관련된 입력 데이터 또는 출력 데이터를 포함할 수 있다. 프로그램은 메모리(160)에 적어도 하나의 명령을 포함하는 소프트웨어로서 저장될 수 있다.The memory (160) can store various data used by at least one component of the computing device (100). For example, the memory (160) can include at least one of volatile memory and non-volatile memory. The data can include at least one program and input data or output data related thereto. The program can be stored in the memory (160) as software including at least one command.

프로세서(170)는 메모리(160)의 프로그램을 실행하여, 컴퓨팅 장치(100)의 적어도 하나의 구성 요소를 제어할 수 있다. 이를 통해, 프로세서(170)는 데이터 처리 또는 연산을 수행할 수 있다. 여기서, 프로세서(170)는 메모리(160)에 저장된 명령을 실행할 수 있다. 다양한 실시예들에서, 프로세서(170)는 실내 오도메트리를 수행할 수 있다. 일부 실시예들에서, 컴퓨팅 장치(100)가 사용자에 휴대 또는 착용되어 사용자에 의해 이동 가능한 기기 또는 자율 주행이 가능한 로봇과 같은 디바이스에 구현되는 경우, 카메라 모듈(110) 또는 센서 모듈(120) 중 적어도 하나는 컴퓨팅 장치(100)에 배치되어, 프로세서(170)와 연결될 수 있다. 다른 실시예들에서, 컴퓨팅 장치(100)가 서버에 구현되는 경우, 카메라 모듈(110) 또는 센서 모듈(120) 중 적어도 하나는 디바이스에 배치되고, 프로세서(170)는 통신 모듈(130)을 통해 디바이스에 연결될 수 있다. The processor (170) can execute a program in the memory (160) to control at least one component of the computing device (100). Through this, the processor (170) can perform data processing or calculation. Here, the processor (170) can execute a command stored in the memory (160). In various embodiments, the processor (170) can perform indoor odometry. In some embodiments, when the computing device (100) is implemented in a device such as a device that is portable or worn by a user and can be moved by the user or a robot capable of autonomous driving, at least one of the camera module (110) or the sensor module (120) may be disposed in the computing device (100) and connected to the processor (170). In other embodiments, when the computing device (100) is implemented in a server, at least one of the camera module (110) or the sensor module (120) may be disposed in the device, and the processor (170) may be connected to the device via the communication module (130).

도 2는 도 1의 프로세서(170)를 도시하는 블록도이다.FIG. 2 is a block diagram illustrating the processor (170) of FIG. 1.

도 2를 참조하면, 프로세서(170)는 오도메트리 모듈(210), 모션 분류 모듈(220), 및 상태 추정 모듈(230)을 포함할 수 있다. Referring to FIG. 2, the processor (170) may include an odometry module (210), a motion classification module (220), and a state estimation module (230).

오도메트리 모듈(210) 및 모션 분류 모듈(220)의 각각에는 주변 공간 정보 및 관성 측정 정보가 입력될 수 있다. 주변 공간 정보는 주변의 공간적 특징들을 나타내며, 카메라 모듈(110)로부터의 이미지 또는 센서 모듈(120), 특히, 라이다 센서로부터의 라이다 데이터 중 적어도 하나로부터 생성될 수 있다. 관성 측정 정보는 센서 모듈(120), 특히, 관성 측정 유닛으로부터 생성될 수 있다. Each of the odometry module (210) and the motion classification module (220) may receive surrounding spatial information and inertial measurement information. The surrounding spatial information represents surrounding spatial features and may be generated from at least one of an image from the camera module (110) or lidar data from the sensor module (120), particularly, a lidar sensor. The inertial measurement information may be generated from the sensor module (120), particularly, an inertial measurement unit.

오도메트리 모듈(210)은 주변 공간 정보 및 관성 측정 정보를 이용하여, 오도메트리 정보를 측정할 수 있다. 구체적으로, 오도메트리 모듈(210)은 연속적으로 획득되는 주변 공간 정보 및 관성 측정 정보를 누적하고, 누적된 주변 공간 정보 및 관성 측정 정보를 분석하여, 오도메트리 정보를 측정할 수 있다. 일 예로, 오도메트리 모듈(210)은 연속적으로 획득되는 카메라 모듈(110)로부터의 이미지들 및 관성 측정 정보를 이용하는 VIO 모듈(Qin, Tong, Peiliang Li, and Shaojie Shen. "Vins-mono: A robust and versatile monocular visual-inertial state estimator." IEEE Transactions on Robotics 34.4 (2018): 1004-1020 참조)일 수 있다. 이러한 경우, 오도메트리 모듈(210)은 이미지들로부터 생성되는 공간적 특징들과 관성 측정 정보의 조합으로 오도메트리 정보를 측정할 수 있다. 다른 예로, 오도메트리 모듈(210)은 연속적으로 획득되는 라이다 센서로부터의 라이다 데이터 및 관성 측정 정보를 이용하는 LIO 모듈일 수 있다. 이러한 경우, 오도메트리 모듈(210)은 라이다 데이터로부터 생성되는 공간적 특징들과 관성 측정 정보의 조합으로 오도메트리 정보를 측정할 수 있다. 또 다른 예로, 오도메트리 모듈(210)은 연속적으로 획득되는 이미지들, 라이다 센서로부터의 감지 데이터, 및 관성 측정 정보를 이용하는 VLIO 모듈일 수 있다. 이러한 경우, 오도메트리 모듈(210)은 이미지와 라이다 데이터로부터 생성되는 공간적 특징들과 관성 측정 정보의 조합으로 오도메트리 정보를 측정할 수 있다.The odometry module (210) can measure odometry information using surrounding spatial information and inertial measurement information. Specifically, the odometry module (210) can accumulate surrounding spatial information and inertial measurement information that are continuously acquired, and analyze the accumulated surrounding spatial information and inertial measurement information to measure odometry information. For example, the odometry module (210) may be a VIO module (see Qin, Tong, Peiliang Li, and Shaojie Shen. "Vins-mono: A robust and versatile monocular visual-inertial state estimator." IEEE Transactions on Robotics 34.4 (2018): 1004-1020) that uses images and inertial measurement information from a camera module (110) that are continuously acquired. In this case, the odometry module (210) can measure odometry information by combining spatial features generated from images and inertial measurement information. As another example, the odometry module (210) may be a LIO module that uses continuously acquired LIDAR data and inertial measurement information from a LIDAR sensor. In this case, the odometry module (210) may measure odometry information by combining spatial features generated from the LIDAR data and inertial measurement information. As another example, the odometry module (210) may be a VLIO module that uses continuously acquired images, sensing data from a LIDAR sensor, and inertial measurement information. In this case, the odometry module (210) may measure odometry information by combining spatial features generated from images and LIDAR data and inertial measurement information.

모션 분류 모듈(220)은 주변 공간 정보 및 관성 측정 정보를 이용하여, 모션 타입을 분류할 수 있다. 일부 실시예들에서, 모션 분류 모듈(220)은 미리 학습된 뉴럴 네트워크(neural network)로 구현될 수 있다. 모션 타입은 디바이스의 직접 이동 모션, 이동 수단 탑승에 따른 간접 이동 모션, 또는 정지 모션으로 분류될 수 있다. 구체적으로, 모션 분류 모듈(220)은 연속적으로 획득되는 주변 공간 정보를 분석하여, 공간적 특징들의 변화 여부를 판단할 수 있다. 그리고, 모션 분류 모듈(220)은 연속적으로 획득되는 관성 측정 정보를 분석하여, 관성 측정 정보의 변화 여부를 판단할 수 있다. 이 때, 공간적 특징들은 변하지 않고, 관성 측정 정보는 변한 경우, 모션 분류 모듈(220)은 모션 타입으로서 간접 이동 모션을 검출할 수 있다. 한편, 공간적 특징들 및 관성 측정 정보가 모두 변한 경우, 모션 분류 모듈(220)은 모션 타입으로서 직접 이동 모션을 검출할 수 있다. 한편, 공간적 특징들 및 관성 측정 정보가 모두 변하지 않은 경우, 모션 분류 모듈(220)은 모션 타입으로서 정지 모션을 검출할 수 있다. The motion classification module (220) can classify motion types using surrounding spatial information and inertial measurement information. In some embodiments, the motion classification module (220) can be implemented as a pre-trained neural network. The motion types can be classified into direct movement motion of the device, indirect movement motion due to boarding a vehicle, or stationary motion. Specifically, the motion classification module (220) can analyze continuously acquired surrounding spatial information to determine whether spatial features have changed. In addition, the motion classification module (220) can analyze continuously acquired inertial measurement information to determine whether the inertial measurement information has changed. In this case, if the spatial features do not change but the inertial measurement information has changed, the motion classification module (220) can detect indirect movement motion as the motion type. On the other hand, if both the spatial features and the inertial measurement information have changed, the motion classification module (220) can detect direct movement motion as the motion type. Meanwhile, if both spatial features and inertial measurement information remain unchanged, the motion classification module (220) can detect stationary motion as a motion type.

또한, 모션 분류 모듈(220)은 주변 공간 정보 및 관성 측정 정보를 이용하여, 위치 변화량을 추정할 수 있다. 구체적으로, 모션 타입이 간접 이동 모션이면, 모션 분류 모듈(220)은 연속적으로 획득되는 주변 공간 정보로부터 간접 이동 모션의 시간적 구간을 검출할 수 있다. 그리고, 모션 분류 모듈(220)은 연속적으로 획득되는 관성 측정 정보로부터 해당 시간적 구간에 대한 위치 변화량을 추정할 수 있다. 모션 분류 모듈(220)은 해당 시간적 구간의 시작 시점과 종료 시점을 검출하고, 해당 시작 시점과 종료 시점에 각각 대응하는 관성 측정 정보로부터 위치 변화량을 계산할 수 있다. 여기서, 모션 분류 모듈(220)은 관성 측정 정보 중에서 각속도 및 선가속도를 이용하여, 위치 변화량을 추정할 수 있다. In addition, the motion classification module (220) can estimate the amount of position change using surrounding space information and inertial measurement information. Specifically, if the motion type is an indirect movement motion, the motion classification module (220) can detect a temporal section of the indirect movement motion from continuously acquired surrounding space information. In addition, the motion classification module (220) can estimate the amount of position change for the corresponding temporal section from continuously acquired inertial measurement information. The motion classification module (220) can detect the start and end points of the corresponding temporal section, and calculate the amount of position change from inertial measurement information corresponding to the start and end points, respectively. Here, the motion classification module (220) can estimate the amount of position change using angular velocity and linear acceleration among the inertial measurement information.

전술된 바와 같이, 모션 분류 모듈(220)은 미리 학습된 뉴럴 네트워크로 구현될 수 있다. 뉴럴 네트워크는 다음을 기반으로 학습될 수 있다. 뉴럴 네트워크에 대한 입력 값은 간접 이동 모션의 시간적 구간 내에 있는 대표적인 한 시점의 주변 공간 정보, 및 해당 시간적 구간에서의 모든 관성 측정 정보를 포함할 수 있다. 예를 들어, 주변 공간 정보는 대표적인 한 시점에 촬영된 한 장의 이미지 또는 대표적인 한 시점에 검출된 라이다 데이터 중 적어도 하나를 포함할 수 있다. 여기서, 입력 값은 관성 측정 정보 중에서도 각속도 및 선가속도를 포함할 수 있다. 뉴럴 네트워크에 대한 출력 값은 해당 시간적 구간의 시작 시점과 종료 시점 사이의 위치 변화량(dx, dy, dz), 위치 변화량에 대한 불확실성을 구성하는 파라미터들(ux, uy, uz)(여기서, 공분산(covariance)은 과 같이 표현됨), 및 모션 타입을 결정하는 레이블의 확률(probability)(직접 이동 모션일 확률, 이동 수단별 간접 이동 모션일 확률, 정지 모션일 확률)을 포함할 수 있다. 뉴럴 네트워크에 대한 학습 데이터로서, 모션 타입의 레이블에 대한 실제 값은 수작업으로 생성될 수 있으며, 위치 변화량에 대한 실제 값은 SLAM(simultaneous localization and map-building) 결과로부터 획득될 수 있다. 여기서, 모션 타입의 레이블에 대한 실제 값은 이동 수단별로 다르게 생성될 수 있으며, 이로써, 뉴럴 네트워크가 이동 수단별로 간접 이동 모션을 구분할 수 있도록 학습될 수 있다. 뉴럴 네트워크의 학습에 있어서, 모션 타입의 학습을 위한 손실 함수로서 [하기 수학식 1]과 같은 크로스 엔트로피(cross entropy) 손실 함수가 활용되고, 위치 변화량의 학습을 위한 손실 함수로서 [하기 [수학식 2]와 같은 공분산을 고려한 로그 우도(log likelihood) 손실 함수가 활용될 수 있다. As described above, the motion classification module (220) can be implemented as a pre-trained neural network. The neural network can be trained based on the following. The input value to the neural network can include surrounding spatial information of a representative point in time within the temporal section of the indirect movement motion, and all inertial measurement information in the temporal section. For example, the surrounding spatial information can include at least one of an image captured at a representative point in time or lidar data detected at a representative point in time. Here, the input value can include angular velocity and linear acceleration among the inertial measurement information. The output value to the neural network can include the position change amount (dx, dy, dz) between the start and end points of the temporal section, and parameters (ux, uy, uz) constituting the uncertainty about the position change amount (here, covariance is ), and the probability of the label that determines the motion type (probability of direct movement motion, probability of indirect movement motion by means of transportation, probability of stationary motion). As training data for the neural network, the actual value for the label of the motion type can be manually generated, and the actual value for the position change amount can be obtained from the result of simultaneous localization and map-building (SLAM). Here, the actual value for the label of the motion type can be generated differently for each means of transportation, and thereby the neural network can be trained to distinguish indirect movement motion by means of transportation. In training the neural network, a cross entropy loss function such as [Mathematical Formula 1 below] can be utilized as a loss function for training the motion type, and a log likelihood loss function that considers covariance such as [Mathematical Formula 2 below] can be utilized as a loss function for training the position change amount.

상태 추정 모듈(230)은 모션 타입에 따라 상이하게 상태 정보를 검출할 수 있다. 바꿔 말하면, 상태 추정 모듈(230)은 모션 타입에 따라 오도메트리 모듈(210)과 모션 분류 모듈(220)을 상보적으로 사용하여, 상태 정보를 검출할 수 있다. 상태 정보는 회전(rotation)(R), 속력(velocity)(v), 위치(position)(p), 또는 바이어스(bias)(b) 중 적어도 하나를 포함할 수 있다. 여기서, 바이어스는 가속도계의 바이어스(ba) 또는 지자기계의 바이어스(bg) 중 적어도 하나를 포함할 수 있다. 이 때, 상태 추정 모듈(230)은 모션 타입에 따라 스위치 방식으로 모션 분류 모듈(220)로부터의 위치 변화량 또는 오도메트리 모듈(210)로부터의 오도메트리 정보 중 하나를 이용할 수 있다. 일부 실시예들에서, 상태 추정 모듈(230)은 칼만(Kalman) 필터(Liu, Wenxin, et al. "Tlio: Tight learned inertial odometry." IEEE Robotics and Automation Letters 5.4 (2020): 5653-5660 참조)로 구현될 수 있다. The state estimation module (230) can detect state information differently depending on the motion type. In other words, the state estimation module (230) can detect state information by complementarily using the odometry module (210) and the motion classification module (220) depending on the motion type. The state information can include at least one of rotation (R), velocity (v), position (p), or bias (b). Here, the bias can include at least one of the bias (b a ) of an accelerometer or the bias (b g ) of a geomagnetic field. In this case, the state estimation module (230) can use either the position change amount from the motion classification module (220) or the odometry information from the odometry module (210) in a switch manner depending on the motion type. In some embodiments, the state estimation module (230) may be implemented as a Kalman filter (see Liu, Wenxin, et al. "Tlio: Tight learned inertial odometry." IEEE Robotics and Automation Letters 5.4 (2020): 5653-5660).

구체적으로, 상태 추정 모듈(230)은 예측 모듈(231), 스위치 모듈(233), 및 보정 모듈(235)을 포함할 수 있다. 도 2에 도시된 바와 같이, 스위치 모듈(233)이 상태 추정 모듈(230)의 내부 요소로 구성될 수 있으나, 이에 국한되지 않는다. 즉, 도시되지는 않았으나, 스위치 모듈(233)은 상태 추정 모듈(230)의 외부 요소로 구성될 수 있다. Specifically, the state estimation module (230) may include a prediction module (231), a switch module (233), and a correction module (235). As illustrated in FIG. 2, the switch module (233) may be configured as an internal element of the state estimation module (230), but is not limited thereto. That is, although not illustrated, the switch module (233) may be configured as an external element of the state estimation module (230).

예측 모듈(231)은 관성 측정 정보를 이용하여, 임시 상태 정보를 예측할 수 있다. 이 때, 예측 모듈(231)은 모션 타입에 대한 고려 없이, 임시 상태 정보를 추정할 수 있다. 예를 들어, 예측 모듈(231)은 하기 [수학식 3]과 같이 임시 상태 정보를 추정할 수 있다. The prediction module (231) can predict temporary state information using inertial measurement information. At this time, the prediction module (231) can estimate the temporary state information without considering the motion type. For example, the prediction module (231) can estimate the temporary state information as shown in [Mathematical Formula 3] below.

스위치 모듈(233)은 모션 타입에 따라 구동할 수 있다. 구체적으로, 스위치 모듈(233)은 모션 분류 모듈(220)에 연결되어 있으며, 모션 분류 모듈(220)과 보정 모듈(235) 사이의 연결, 및 오도메트리 모듈(210)과 보정 모듈(235) 사이의 연결을 제어할 수 있다. 모션 타입이 간접 이동 모션이면, 스위치 모듈(233)은 모션 분류 모듈(220)과 보정 모듈(235)을 연결하고, 오도메트리 모듈(210)과 보정 모듈(235)을 분리할 수 있다. 이러한 경우, 모션 분류 모듈(220)로부터의 위치 변화량이 보정 모듈(235)에 제공될 수 있다. 한편, 모션 타입이 직접 이동 모션이면, 스위치 모듈(233)은 모션 분류 모듈(220)과 보정 모듈(235)을 분리하고, 오도메트리 모듈(210)과 보정 모듈(235)을 연결할 수 있다. 이러한 경우, 오도메트리 모듈(210)로부터의 오도메트리 정보가 보정 모듈(235)에 제공될 수 있다. 한편, 모션 타입이 정지 모션이면, 스위치 모듈(233)은 모션 분류 모듈(220)과 보정 모듈(235)을 분리하고, 오도메트리 모듈(210)과 보정 모듈(235)을 분리할 수 있다.The switch module (233) can be driven according to the motion type. Specifically, the switch module (233) is connected to the motion classification module (220) and can control the connection between the motion classification module (220) and the correction module (235), and the connection between the odometry module (210) and the correction module (235). If the motion type is an indirect movement motion, the switch module (233) can connect the motion classification module (220) and the correction module (235), and separate the odometry module (210) and the correction module (235). In this case, the position change amount from the motion classification module (220) can be provided to the correction module (235). On the other hand, if the motion type is a direct movement motion, the switch module (233) can separate the motion classification module (220) and the correction module (235), and connect the odometry module (210) and the correction module (235). In this case, odometry information from the odometry module (210) can be provided to the correction module (235). Meanwhile, if the motion type is a stationary motion, the switch module (233) can separate the motion classification module (220) and the correction module (235), and separate the odometry module (210) and the correction module (235).

보정 모듈(235)은 관성 측정 정보를 이용하여 예측되는 임시 상태 정보를 보정하여, 최종 상태 정보를 검출할 수 있다. 바꿔 말하면, 보정 모듈(235)은 예측 모듈(231)로부터 출력되는 임시 상태 정보를 보정할 수 있다. 구체적으로, 스위치 모듈(233)에 의해 모션 분류 모듈(220)과 연결되고 오도메트리 모듈(210)과 분리되면, 보정 모듈(235)은 임시 상태 정보 내의 위치를 모션 분류 모듈(220)로부터의 위치 변화량에 따라 업데이트할 수 있다. 예를 들어, 보정 모듈(235)은 하기 [수학식 4]와 같이 위치 변화량에 따라 변위를 계산하고, 해당 변위를 기반으로 위치를 업데이트할 수 있다. 한편, 스위치 모듈(233)에 의해 모션 분류 모듈(220)과 분리되고 오도메트리 모듈(210)과 연결되면, 보정 모듈(235)은 임시 상태 정보 내의 회전, 속력, 또는 위치 중 적어도 하나를 오도메트리 정보에 따라 업데이트할 수 있다. 예를 들어, 보정 모듈(235)은 하기 [수학식 5]와 같이 속력 및 위치를 업데이트할 수 있다. 한편, 스위치 모듈(233)에 의해 모션 분류 모듈(220) 및 오도메트리 모듈(210)과 분리되면, 보정 모듈(235)은 임시 상태 정보를 유지할 수 있다. 이로써, 보정 모듈(235)은 최종 상태 정보를 출력할 수 있다. The correction module (235) can detect the final state information by correcting the predicted temporary state information using the inertial measurement information. In other words, the correction module (235) can correct the temporary state information output from the prediction module (231). Specifically, when connected to the motion classification module (220) by the switch module (233) and separated from the odometry module (210), the correction module (235) can update the position in the temporary state information according to the position change amount from the motion classification module (220). For example, the correction module (235) can calculate the displacement according to the position change amount as in [Mathematical Formula 4] below and update the position based on the displacement. Meanwhile, when separated from the motion classification module (220) by the switch module (233) and connected to the odometry module (210), the correction module (235) can update at least one of the rotation, the speed, or the position in the temporary state information according to the odometry information. For example, the correction module (235) can update the speed and position as in [Mathematical Formula 5] below. Meanwhile, when separated from the motion classification module (220) and the odometry module (210) by the switch module (233), the correction module (235) can maintain temporary state information. As a result, the correction module (235) can output final state information.

여기서, 는 두 시점들 사이의 변위를 나타낼 수 있다. Here, can represent the displacement between two points in time.

도 3은 다양한 실시예들에 따른 실내 오도메트리를 위한 컴퓨팅 장치(100)의 동작 방법을 도시하는 순서도이다. FIG. 3 is a flowchart illustrating an operation method of a computing device (100) for indoor odometry according to various embodiments.

도 3을 참조하면, 컴퓨팅 장치(100)는 310 단계에서 주변 공간 정보 및 관성 측정 정보를 획득할 수 있다. 구체적으로, 프로세서(170)는 연속적으로 획득되는 주변 공간 정보 및 관성 측정 정보를 획득할 수 있다. 주변 공간 정보 및 관성 측정 정보는 오도메트리 모듈(210) 및 모션 분류 모듈(220)의 각각에 입력되고, 관성 측정 정보는 상태 추정 모듈(230)에도 입력될 수 있다. 주변 공간 정보는 주변의 공간적 특징들을 나타내며, 카메라 모듈(110)로부터의 이미지 또는 센서 모듈(120), 특히, 라이다 센서로부터의 라이다 데이터 중 적어도 하나로부터 생성될 수 있다. 관성 측정 정보는 센서 모듈(120), 특히, 관성 측정 유닛으로부터 생성될 수 있다. Referring to FIG. 3, the computing device (100) can acquire surrounding space information and inertial measurement information in step 310. Specifically, the processor (170) can acquire surrounding space information and inertial measurement information that are continuously acquired. The surrounding space information and inertial measurement information are input to each of the odometry module (210) and the motion classification module (220), and the inertial measurement information can also be input to the state estimation module (230). The surrounding space information represents spatial features of the surroundings and can be generated from at least one of an image from the camera module (110) or lidar data from the sensor module (120), particularly, a lidar sensor. The inertial measurement information can be generated from the sensor module (120), particularly, an inertial measurement unit.

일부 실시예들에서, 컴퓨팅 장치(100)가 사용자에 휴대 또는 착용되어 사용자에 의해 이동 가능한 기기 또는 자율 주행이 가능한 로봇과 같은 디바이스에 구현되는 경우, 카메라 모듈(110) 또는 센서 모듈(120) 중 적어도 하나는 컴퓨팅 장치(100)에 배치되어, 프로세서(170)와 연결될 수 있다. 이로써, 프로세서(170)는 컴퓨팅 장치(100) 내에서 주변 공간 정보 및 관성 측정 정보를 수집할 수 있다. 다른 실시예들에서, 컴퓨팅 장치(100)가 서버에 구현되는 경우, 카메라 모듈(110) 또는 센서 모듈(120) 중 적어도 하나는 디바이스에 배치되고, 프로세서(170)는 통신 모듈(130)을 통해 디바이스에 연결될 수 있다. 이로써, 프로세서(170)는 통신 모듈(130)을 통해 디바이스로부터 주변 공간 정보 및 관성 측정 정보를 수신할 수 있다. In some embodiments, when the computing device (100) is implemented in a device such as a device that is carried or worn by a user and can be moved by the user or a robot capable of autonomous driving, at least one of the camera module (110) or the sensor module (120) may be disposed in the computing device (100) and connected to the processor (170). Thus, the processor (170) may collect surrounding space information and inertial measurement information within the computing device (100). In other embodiments, when the computing device (100) is implemented in a server, at least one of the camera module (110) or the sensor module (120) may be disposed in the device, and the processor (170) may be connected to the device via the communication module (130). Thus, the processor (170) may receive surrounding space information and inertial measurement information from the device via the communication module (130).

다음으로, 컴퓨팅 장치(100)는 320 단계에서 주변 공간 정보 및 관성 측정 정보를 이용하여, 모션 타입 및 위치 변화량을 추정할 수 있다. 일부 실시예들에서, 모션 분류 모듈(220)은 미리 학습된 뉴럴 네트워크로 구현될 수 있다. 모션 타입은 디바이스의 직접 이동 모션, 이동 수단 탑승에 따른 간접 이동 모션, 또는 정지 모션으로 분류될 수 있다. Next, the computing device (100) can estimate the motion type and position change amount using the surrounding spatial information and inertial measurement information in step 320. In some embodiments, the motion classification module (220) can be implemented as a pre-trained neural network. The motion type can be classified into direct movement motion of the device, indirect movement motion due to boarding a transportation vehicle, or stationary motion.

구체적으로, 모션 분류 모듈(220)은 연속적으로 획득되는 주변 공간 정보를 분석하여, 공간적 특징들의 변화 여부를 판단할 수 있다. 그리고, 모션 분류 모듈(220)은 연속적으로 획득되는 관성 측정 정보를 분석하여, 관성 측정 정보의 변화 여부를 판단할 수 있다. 이 때, 공간적 특징들은 변하지 않고, 관성 측정 정보는 변한 경우, 모션 분류 모듈(220)은 모션 타입으로서 간접 이동 모션을 검출할 수 있다. 한편, 공간적 특징들 및 관성 측정 정보가 모두 변한 경우, 모션 분류 모듈(220)은 모션 타입으로서 직접 이동 모션을 검출할 수 있다. 한편, 공간적 특징들 및 관성 측정 정보가 모두 변하지 않은 경우, 모션 분류 모듈(220)은 모션 타입으로서 정지 모션을 검출할 수 있다. Specifically, the motion classification module (220) can analyze continuously acquired surrounding spatial information to determine whether spatial features have changed. In addition, the motion classification module (220) can analyze continuously acquired inertial measurement information to determine whether the inertial measurement information has changed. At this time, if the spatial features do not change but the inertial measurement information has changed, the motion classification module (220) can detect indirect movement motion as a motion type. Meanwhile, if both the spatial features and the inertial measurement information have changed, the motion classification module (220) can detect direct movement motion as a motion type. Meanwhile, if both the spatial features and the inertial measurement information have not changed, the motion classification module (220) can detect stationary motion as a motion type.

아울러, 컴퓨팅 장치(100)는 320 단계에서 주변 공간 정보 및 관성 측정 정보를 이용하여, 위치 변화량을 추정할 수 있다. 구체적으로, 모션 타입이 간접 이동 모션이면, 모션 분류 모듈(220)은 연속적으로 획득되는 주변 공간 정보로부터 간접 이동 모션의 시간적 구간을 검출할 수 있다. 그리고, 모션 분류 모듈(220)은 연속적으로 획득되는 관성 측정 정보로부터 해당 시간적 구간에 대한 위치 변화량을 추정할 수 있다. 모션 분류 모듈(220)은 해당 시간적 구간의 시작 시점과 종료 시점을 검출하고, 해당 시작 시점과 종료 시점에 각각 대응하는 관성 측정 정보로부터 위치 변화량을 계산할 수 있다. 여기서, 모션 분류 모듈(220)은 관성 측정 정보 중에서 각속도 및 선가속도를 이용하여, 위치 변화량을 추정할 수 있다.In addition, the computing device (100) can estimate the position change amount using the surrounding space information and inertial measurement information in step 320. Specifically, if the motion type is an indirect movement motion, the motion classification module (220) can detect the temporal section of the indirect movement motion from the continuously acquired surrounding space information. Then, the motion classification module (220) can estimate the position change amount for the corresponding temporal section from the continuously acquired inertial measurement information. The motion classification module (220) can detect the start and end points of the corresponding temporal section, and calculate the position change amount from the inertial measurement information corresponding to the start and end points, respectively. Here, the motion classification module (220) can estimate the position change amount using the angular velocity and linear acceleration among the inertial measurement information.

다음으로, 컴퓨팅 장치(110)는 330 단계에서 모션 타입이 간접 이동 모션인 지의 여부를 판단할 수 있다. 이 때, 330 단계에서 모션 타입이 간접 이동 모션인 것으로 판단되면, 컴퓨팅 장치(110)는 340 단계에서 위치 변화량에 따라, 상태 정보를 검출할 수 있다. 즉, 상태 추정 모듈(230)은 관성 측정 정보를 이용하여 예측되는 임시 상태 정보를 모션 분류 모듈(220)로부터의 위치 변화량에 따라 보정하여, 최종 상태 정보를 검출할 수 있다. 구체적으로, 예측 모듈(231)은 관성 측정 정보를 이용하여, 임시 상태 정보를 예측할 수 있다. 이 때, 예측 모듈(231)은 모션 타입에 대한 고려 없이, 임시 상태 정보를 추정할 수 있다. 한편, 모션 분류 모듈(220)에서 모션 타입으로서 간접 이동 모션이 검출되면, 스위치 모듈(233)은 모션 분류 모듈(220)과 보정 모듈(235)을 연결하고, 오도메트리 모듈(210)과 보정 모듈(235)을 분리할 수 있다. 이러한 경우, 모션 분류 모듈(220)로부터의 위치 변화량이 보정 모듈(235)에 제공될 수 있다. 보정 모듈(235)은 임시 상태 정보 내의 위치를 모션 분류 모듈(220)로부터의 위치 변화량에 따라 업데이트할 수 있다.Next, the computing device (110) can determine whether the motion type is an indirect movement motion in step 330. If the motion type is determined to be an indirect movement motion in step 330, the computing device (110) can detect state information based on the position change amount in step 340. That is, the state estimation module (230) can detect final state information by correcting the temporary state information predicted using inertial measurement information according to the position change amount from the motion classification module (220). Specifically, the prediction module (231) can predict the temporary state information using inertial measurement information. At this time, the prediction module (231) can estimate the temporary state information without considering the motion type. Meanwhile, if the motion classification module (220) detects an indirect movement motion as the motion type, the switch module (233) can connect the motion classification module (220) and the correction module (235), and separate the odometry module (210) and the correction module (235). In this case, the position change amount from the motion classification module (220) can be provided to the correction module (235). The correction module (235) can update the position in the temporary state information according to the position change amount from the motion classification module (220).

한편, 330 단계에서 모션 타입이 간접 이동 모션이 아닌 것으로 판단되면, 컴퓨팅 장치(100)는 350 단계에서 모션 타입이 직접 이동 모션인 지의 여부를 판단할 수 있다. 이 때, 350 단계에서 모션 타입이 직접 이동 모션인 것으로 판단되면, 컴퓨팅 장치(110)는 360 단계에서 오도메트리 모듈(210)로부터의 오도메트리 정보에 따라, 상태 정보를 검출할 수 있다. 즉, 상태 추정 모듈(230)은 관성 측정 정보를 이용하여 예측되는 임시 상태 정보를 오도메트리 모듈(210)로부터의 오도메트리 정보에 따라 보정하여, 최종 상태 정보를 검출할 수 있다. 구체적으로, 예측 모듈(231)은 관성 측정 정보를 이용하여, 임시 상태 정보를 예측할 수 있다. 이 때, 예측 모듈(231)은 모션 타입에 대한 고려 없이, 임시 상태 정보를 추정할 수 있다. 한편, 모션 타입이 직접 이동 모션이면, 스위치 모듈(233)은 모션 분류 모듈(220)과 보정 모듈(235)을 분리하고, 오도메트리 모듈(210)과 보정 모듈(235)을 연결할 수 있다. 이러한 경우, 오도메트리 모듈(210)로부터의 오도메트리 정보가 보정 모듈(235)에 제공될 수 있다. 보정 모듈(235)은 임시 상태 정보 내의 회전, 속력, 또는 위치 중 적어도 하나를 오도메트리 정보에 따라 업데이트할 수 있다.Meanwhile, if it is determined in step 330 that the motion type is not an indirect movement motion, the computing device (100) can determine in step 350 whether the motion type is a direct movement motion. At this time, if it is determined in step 350 that the motion type is a direct movement motion, the computing device (110) can detect state information according to the odometry information from the odometry module (210) at step 360. That is, the state estimation module (230) can detect final state information by correcting the temporary state information predicted using the inertial measurement information according to the odometry information from the odometry module (210). Specifically, the prediction module (231) can predict the temporary state information using the inertial measurement information. At this time, the prediction module (231) can estimate the temporary state information without considering the motion type. Meanwhile, if the motion type is a direct movement motion, the switch module (233) may separate the motion classification module (220) and the correction module (235), and connect the odometry module (210) and the correction module (235). In this case, odometry information from the odometry module (210) may be provided to the correction module (235). The correction module (235) may update at least one of the rotation, speed, or position in the temporary state information according to the odometry information.

한편, 350 단계에서 모션 타입이 직접 이동 모션이 아닌 것으로 판단되면, 컴퓨팅 장치(100)는 모션 타입이 정지 모션인 것으로 판단할 수 있다. 이러한 경우, 컴퓨팅 장치(100)는 관성 측정 정보를 이용하여, 상태 정보를 검출할 수 있다. 구체적으로, 예측 모듈(231)은 관성 측정 정보를 이용하여, 임시 상태 정보를 예측할 수 있다. 이 때, 예측 모듈(231)은 모션 타입에 대한 고려 없이, 임시 상태 정보를 추정할 수 있다. 한편, 모션 타입이 정지 모션이면, 스위치 모듈(233)은 모션 분류 모듈(220)과 보정 모듈(235)을 분리하고, 오도메트리 모듈(210)과 보정 모듈(235)을 분리할 수 있다. 이로써, 보정 모듈(235)은 임시 상태 정보를 유지하여, 최종 상태 정보를 출력할 수 있다.Meanwhile, if it is determined at step 350 that the motion type is not a direct movement motion, the computing device (100) may determine that the motion type is a stationary motion. In this case, the computing device (100) may detect state information using inertial measurement information. Specifically, the prediction module (231) may predict temporary state information using inertial measurement information. At this time, the prediction module (231) may estimate the temporary state information without considering the motion type. Meanwhile, if the motion type is a stationary motion, the switch module (233) may separate the motion classification module (220) and the correction module (235), and separate the odometry module (210) and the correction module (235). As a result, the correction module (235) may maintain the temporary state information and output the final state information.

본 개시에 따르면, 컴퓨팅 장치(100)는 주변 공간 정보와 관성 측정 정보를 이용하여 모션 타입을 추정함으로써, 직접 이동 모션과 간접 이동 모션을 구분할 수 있다. 즉, 컴퓨팅 장치(100)는 주변의 공간적 특징들이 변하지 않더라도, 이동 수단에 의한 간접 이동 모션을 식별할 수 있다. 아울러, 컴퓨팅 장치(100)는 간접 이동 모션에 대응하는 이동 수단에 의한 위치 변화량을 추정함으로써, 간접 이동 모션에 대해 상태 정보를 추정할 수 있다. 이로써, 컴퓨팅 장치(100)는 직접 이동 모션뿐만 아니라 간접 이동 모션에 대해 높은 정확도로 상태 정보를 추정할 수 있다. 따라서, 컴퓨팅 장치(100)에 있어서, 실내 오도메트리 성능이 향상될 수 있다. According to the present disclosure, a computing device (100) can distinguish between direct and indirect movement motions by estimating motion types using surrounding spatial information and inertial measurement information. That is, the computing device (100) can identify indirect movement motions by a means of transportation even if surrounding spatial features do not change. In addition, the computing device (100) can estimate state information for indirect movement motions by estimating the amount of position change by the means of transportation corresponding to the indirect movement motion. As a result, the computing device (100) can estimate state information with high accuracy for not only direct movement motions but also indirect movement motions. Therefore, the indoor odometry performance of the computing device (100) can be improved.

요컨대, 본 개시는 실내 오도메트리를 위한 컴퓨팅 장치(100) 및 그의 동작 방법을 제공한다. In summary, the present disclosure provides a computing device (100) for indoor odometry and a method of operating the same.

본 개시의 실내 오도메트리를 위한 컴퓨팅 장치(100)의 동작 방법은, 주변 공간 정보와 관성 측정 정보를 이용하여, 이동 수단 탑승에 따른 간접 이동 모션 및 간접 이동 모션에 대응하는 이동 수단에 의한 위치 변화량을 추정하는 단계(320 단계), 및 위치 변화량에 따라, 상태 정보를 검출하는 단계(340 단계)를 포함할 수 있다.The method of operating a computing device (100) for indoor odometry of the present disclosure may include a step (step 320) of estimating an indirect movement motion according to boarding a vehicle and a position change amount by the vehicle corresponding to the indirect movement motion, using surrounding space information and inertial measurement information, and a step (step 340) of detecting state information according to the position change amount.

본 개시에서, 간접 이동 모션 및 위치 변화량을 추정하는 단계(320 단계)는, 주변 공간 정보와 관성 측정 정보를 이용하여, 모션 타입을 분류하는 단계, 및 모션 타입이 간접 이동 모션이면, 관성 측정 정보를 이용하여, 위치 변화량을 추정하는 단계를 포함할 수 있다. In the present disclosure, the step of estimating indirect movement motion and position change amount (step 320) may include a step of classifying a motion type using surrounding space information and inertial measurement information, and a step of estimating a position change amount using inertial measurement information when the motion type is indirect movement motion.

본 개시에서, 위치 변화량에 따라, 상태 정보를 검출하는 단계(340 단계)는, 관성 측정 정보를 이용하여 예측되는 위치를 위치 변화량에 따라 업데이트하여, 상태 정보를 검출하는 단계를 포함할 수 있다.In the present disclosure, the step of detecting state information according to the amount of change in position (step 340) may include a step of detecting state information by updating a predicted position according to the amount of change in position using inertial measurement information.

본 개시에서, 컴퓨팅 장치(100)의 동작 방법은, 모션 타입이 직접 이동 모션이면, 주변 공간 정보와 관성 측정 정보를 이용하여 측정되는 오도메트리 정보에 따라, 상태 정보를 검출하는 단계(360 단계)를 더 포함할 수 있다.In the present disclosure, the operating method of the computing device (100) may further include a step (step 360) of detecting state information based on odometry information measured using surrounding space information and inertial measurement information, if the motion type is direct movement motion.

본 개시에서, 오도메트리 정보에 따라, 상태 정보를 검출하는 단계(360 단계)는, 관성 측정 정보를 이용하여 예측되는 회전, 속력, 또는 위치 중 적어도 하나를 오도메트리 정보에 따라 업데이트하여, 상태 정보를 검출하는 단계를 포함할 수 있다.In the present disclosure, the step of detecting state information according to odometry information (step 360) may include a step of detecting state information by updating at least one of rotation, speed, or position predicted using inertial measurement information according to the odometry information.

본 개시에서, 간접 이동 모션 및 위치 변화량을 추정하는 단계(320 단계)는, 미리 학습된 뉴럴 네트워크를 통해 수행될 수 있다.In the present disclosure, the step of estimating indirect movement motion and position change amount (step 320) can be performed through a pre-learned neural network.

본 개시에서, 위치 변화량에 따라, 상태 정보를 검출하는 단계(340 단계), 및 오도메트리 정보에 따라, 상태 정보를 검출하는 단계(360 단계)는, 칼만 필터를 통해, 수행될 수 있다.In the present disclosure, the step of detecting state information according to the amount of change in position (step 340) and the step of detecting state information according to odometry information (step 360) can be performed through a Kalman filter.

본 개시에서, 주변 공간 정보는 연속적인 이미지들 또는 라이다 데이터로부터 생성되는 공간적 특징들을 포함할 수 있다.In the present disclosure, the surrounding spatial information may include spatial features generated from continuous images or lidar data.

본 개시에서, 간접 이동 모션 및 위치 변화량을 추정하는 단계(320 단계)는, 관성 측정 정보 중에서 각속도 및 선가속도를 이용하여, 위치 변화량을 추정할 수 있다. In the present disclosure, the step of estimating indirect movement motion and position change amount (step 320) can estimate the position change amount using angular velocity and linear acceleration among inertial measurement information.

본 개시의 실내 오도메트리를 위한 컴퓨팅 장치(100)는, 메모리(160), 및 메모리(160)와 연결되고, 메모리(160)에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서(170)를 포함하고, 프로세서(170)는, 주변 공간 정보와 관성 측정 정보를 이용하여, 이동 수단 탑승에 따른 간접 이동 모션 및 간접 이동 모션에 대응하는 이동 수단에 의한 위치 변화량을 추정하고, 위치 변화량에 따라, 상태 정보를 검출하도록 구성될 수 있다.A computing device (100) for indoor odometry of the present disclosure includes a memory (160), and a processor (170) connected to the memory (160) and configured to execute at least one command stored in the memory (160), wherein the processor (170) may be configured to estimate an indirect movement motion according to boarding a vehicle and an amount of position change by the vehicle corresponding to the indirect movement motion, using surrounding space information and inertial measurement information, and to detect state information according to the amount of position change.

본 개시에서, 프로세서(170)는, 주변 공간 정보와 관성 측정 정보를 이용하여, 모션 타입을 분류하고, 모션 타입이 간접 이동 모션이면, 관성 측정 정보를 이용하여, 위치 변화량을 추정하도록 구성되는 모션 분류 모듈(220), 및 모션 타입이 간접 이동 모션이면, 위치 변화량에 따라, 상태 정보를 검출하도록 구성되는 상태 추정 모듈(230)을 포함할 수 있다.In the present disclosure, the processor (170) may include a motion classification module (220) configured to classify a motion type using surrounding space information and inertial measurement information, and to estimate a position change amount using inertial measurement information if the motion type is an indirect movement motion, and a state estimation module (230) configured to detect state information according to a position change amount if the motion type is an indirect movement motion.

본 개시에서, 프로세서(170)는, 주변 공간 정보와 관성 측정 정보를 이용하여 오도메트리 정보를 측정하도록 구성되는 오도메트리 모듈(210)을 더 포함할 수 있다.In the present disclosure, the processor (170) may further include an odometry module (210) configured to measure odometry information using surrounding space information and inertial measurement information.

본 개시에서, 상태 추정 모듈(230)은, 모션 타입이 간접 이동 모션이면, 관성 측정 정보를 이용하여 예측되는 위치를 위치 변화량에 따라 업데이트하여, 상태 정보를 검출하고, 모션 타입이 직접 이동 모션이면, 관성 측정 정보를 이용하여 예측되는 회전, 속력, 또는 위치 중 적어도 하나를 오도메트리 정보에 따라 업데이트하여, 상태 정보를 검출하도록 구성될 수 있다. In the present disclosure, the state estimation module (230) may be configured to detect state information by updating a predicted position using inertial measurement information according to a position change amount when the motion type is an indirect movement motion, and to detect state information by updating at least one of rotation, speed, or position predicted using inertial measurement information according to odometry information when the motion type is a direct movement motion.

본 개시에서, 상태 추정 모듈(230)은, 모션 타입에 따라 스위치 방식으로 모션 분류 모듈(220)로부터의 위치 변화량 또는 오도메트리 모듈(210)로부터의 오도메트리 정보 중 하나를 이용할 수 있다. In the present disclosure, the state estimation module (230) can use either the position change amount from the motion classification module (220) or the odometry information from the odometry module (210) in a switch manner depending on the motion type.

본 개시에서, 모션 분류 모듈(220)은 미리 학습된 뉴럴 네트워크로 구현될 수 있다.In the present disclosure, the motion classification module (220) can be implemented as a pre-trained neural network.

본 개시에서, 상태 추정 모듈(230)은 칼만 필터로 구현될 수 있다.In the present disclosure, the state estimation module (230) can be implemented as a Kalman filter.

본 개시에서, 주변 공간 정보는 연속적인 이미지들 또는 라이다 데이터로부터 생성되는 공간적 특징들을 포함할 수 있다.In the present disclosure, the surrounding spatial information may include spatial features generated from continuous images or lidar data.

본 개시에서, 컴퓨팅 장치(100)는, 이미지들을 촬영하도록 구성되는 카메라 모듈(110) 또는 라이다 데이터를 생성하도록 구성되는 라이다 센서 중 적어도 하나, 및 관성 측정 정보를 생성하도록 구성되는 관성 측정 유닛을 더 포함할 수 있다. In the present disclosure, the computing device (100) may further include at least one of a camera module (110) configured to capture images or a lidar sensor configured to generate lidar data, and an inertial measurement unit configured to generate inertial measurement information.

본 개시에서, 모션 분류 모듈(220)은, 관성 측정 정보 중에서 각속도 및 선가속도를 이용하여, 위치 변화량을 추정하도록 구성될 수 있다. In the present disclosure, the motion classification module (220) can be configured to estimate the position change amount by using angular velocity and linear acceleration among inertial measurement information.

상술한 방법은 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램으로 제공될 수 있다. 매체는 컴퓨터로 실행 가능 한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록 수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. The above-described method may be provided as a computer program stored on a computer-readable recording medium for execution on a computer. The medium may be one that continuously stores a computer-executable program, or one that temporarily stores it for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or multiple hardware combinations, and is not limited to a medium directly connected to a computer system, but may also be distributed over a network. Examples of the medium may include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and those configured to store program instructions, including ROM, RAM, and flash memory. In addition, examples of other media may include recording or storage media managed by app stores that distribute applications, sites that supply or distribute various software, servers, etc.

본 개시의 방법, 동작 또는 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 통상의 기술자들은 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 대체를 명확하게 설명하기 위해, 다양한 예시적인 구성요소들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능적 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는 지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 요구사항들에 따라 달라진다. 통상의 기술자들은 각각의 특정 애플 리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다. The methods, operations, or techniques of the present disclosure may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those skilled in the art will appreciate that the various exemplary logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various exemplary components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software will depend on the particular application and design requirements imposed on the overall system. Those skilled in the art may implement the described functionality in various ways for each particular application, but such implementations should not be construed as causing a departure from the scope of the present disclosure.

하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들(digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들(programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들(field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본 개시에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다. In a hardware implementation, the processing units used to perform the techniques may be implemented within one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, a computer, or a combination thereof.

따라서, 본 개시와 연계하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 구성의 조합으로서 구현될 수도 있다. Accordingly, the various exemplary logical blocks, modules, and circuits described in connection with the present disclosure may be implemented or performed by any combination of a general-purpose processor, a DSP, an ASIC, an FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or those designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read-only memory; ROM), 비휘발성 RAM(non-volatile random access memory; NVRAM), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable PROM), 플래시 메모리, 컴팩트 디스크(compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로서 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본 개시에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다. In a firmware and/or software implementation, the techniques may be implemented as instructions stored on a computer-readable medium, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, a compact disc (CD), a magnetic or optical data storage device, etc. The instructions may be executable by one or more processors and may cause the processor(s) to perform certain aspects of the functionality described herein.

이상 설명된 실시예들이 하나 이상의 독립형 컴퓨터 시스템에서 현재 개시된 주제의 양태들을 활용하는 것으로 기술되었으나, 본 개시는 이에 한정되 지 않고, 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 본 개시에서 주제의 양상들은 복수의 프로세싱 칩들이나 장치들에서 구현될 수도 있고, 스토리지는 복수의 장치들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 장치들은 PC들, 네트워크 서버들, 및 휴대용 장치들을 포함할 수도 있다. While the embodiments described above have been described as utilizing aspects of the presently disclosed subject matter in one or more standalone computer systems, the present disclosure is not limited thereto and may be implemented in conjunction with any computing environment, such as a network or distributed computing environment. Furthermore, aspects of the subject matter in the present disclosure may be implemented in multiple processing chips or devices, and storage may be similarly affected across multiple devices. Such devices may include personal computers, network servers, and portable devices.

본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 개시의 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.While this disclosure has been described with reference to certain embodiments, various modifications and variations can be made without departing from the scope of the present disclosure, which would be apparent to those skilled in the art. Furthermore, such modifications and variations should be considered to fall within the scope of the claims appended hereto.

Claims (20)

디바이스의 실내 오도메트리를 위한 컴퓨팅 장치의 동작 방법에 있어서,
관성 측정 정보를 이용하여 상기 디바이스의 임시 상태 정보를 예측하는 단계;
주변 공간 정보와 상기 관성 측정 정보를 이용하여, 상기 디바이스의 모션 타입을 추정하는 단계;
상기 모션 타입이 상기 디바이스의 이동 수단 탑승에 따른 간접 이동 모션으로 추정됨에 따라, 상기 간접 이동 모션에 대응하는 상기 이동 수단에 의한 위치 변화량을 추정하는 단계; 및
상기 위치 변화량에 기반하여, 상기 임시 상태 정보를 업데이트함으로써 최종 상태 정보로서 상기 디바이스의 상태 정보를 검출하는 단계
를 포함하는,
컴퓨팅 장치의 동작 방법.
In a method of operating a computing device for indoor odometry of a device,
A step of predicting temporary state information of the device using inertial measurement information;
A step of estimating the motion type of the device using the surrounding space information and the inertial measurement information;
A step of estimating the amount of position change by the moving means corresponding to the indirect moving motion, as the above motion type is estimated to be an indirect moving motion according to boarding of the moving means of the device; and
A step of detecting the status information of the device as final status information by updating the temporary status information based on the above location change amount.
including,
How a computing device operates.
삭제delete 제 1 항에 있어서,
상기 상태 정보를 검출하는 단계는,
상기 임시 상태 정보가 포함하는 위치를 상기 위치 변화량에 따라 업데이트하여, 상기 최종 상태 정보로서 상기 상태 정보를 검출하는 단계
를 포함하는,
컴퓨팅 장치의 동작 방법.
In the first paragraph,
The step of detecting the above status information is:
A step of detecting the state information as the final state information by updating the location included in the temporary state information according to the amount of change in the location.
including,
How a computing device operates.
제 1 항에 있어서,
상기 모션 타입이 직접 이동 모션으로 추정됨에 따라, 상기 주변 공간 정보와 상기 관성 측정 정보를 이용하여 오도메트리 정보에 기반하여 상기 임시 상태 정보를 업데이트함으로써 상기 최종 상태 정보로서 상기 디바이스의 직접 이동 모션에서의 상태 정보를 검출하는 단계
를 더 포함하는,
컴퓨팅 장치의 동작 방법.
In the first paragraph,
As the above motion type is estimated to be a direct movement motion, a step of detecting the state information in the direct movement motion of the device as the final state information by updating the temporary state information based on the odometry information using the surrounding space information and the inertial measurement information.
including more,
How a computing device operates.
제 4 항에 있어서,
상기 오도메트리 정보에 기반하여, 상기 디바이스의 상태 정보를 검출하는 단계는,
상기 임시 상태 정보가 포함하는 회전, 속력, 또는 위치 중 적어도 하나를 상기 오도메트리 정보에 따라 업데이트하여, 상기 직접 이동 모션에서의 상태 정보를 검출하는 단계
를 포함하는,
컴퓨팅 장치의 동작 방법.
In paragraph 4,
Based on the above odometry information, the step of detecting the status information of the device is:
A step of detecting state information in the direct movement motion by updating at least one of rotation, speed, or position included in the temporary state information according to the odometry information.
including,
How a computing device operates.
제 1 항에 있어서,
상기 모션 타입의 추정과, 상기 위치 변화량의 추정은 미리 학습된 뉴럴 네트워크를 통해 수행되는,
컴퓨팅 장치의 동작 방법.
In the first paragraph,
The estimation of the above motion type and the estimation of the position change amount are performed through a pre-learned neural network.
How a computing device operates.
제 4 항에 있어서,
상기 위치 변화량에 기반하여 상기 상태 정보를 검출하는 단계, 및 상기 오도메트리 정보에 기반하여 상기 직접 이동 모션에서의 상태 정보를 검출하는 단계는,
칼만(Kalman) 필터를 통해, 수행되는,
컴퓨팅 장치의 동작 방법.
In paragraph 4,
The step of detecting the state information based on the position change amount, and the step of detecting the state information in the direct movement motion based on the odometry information,
It is performed through a Kalman filter,
How a computing device operates.
제 1 항에 있어서,
상기 주변 공간 정보는 연속적인 이미지들 또는 라이다 데이터 중 적어도 하나로부터 생성되는 공간적 특징들을 포함하는,
컴퓨팅 장치의 동작 방법.
In the first paragraph,
The above surrounding spatial information includes spatial features generated from at least one of continuous images or lidar data.
How a computing device operates.
제 1 항에 있어서,
상기 위치 변화량을 추정하는 단계는,
상기 관성 측정 정보 중에서 각속도 및 선가속도를 이용하여, 상기 위치 변화량을 추정하는,
컴퓨팅 장치의 동작 방법.
In the first paragraph,
The step of estimating the above position change amount is:
Estimating the position change amount using the angular velocity and linear acceleration among the above inertial measurement information,
How a computing device operates.
제 1 항 및 제 3 항 내지 제 9 항 중 어느 한 항의 방법을 상기 컴퓨팅 장치에 실행시키기 위해 비-일시적인 컴퓨터 판독 가능한 기록 매체에 저장되는 컴퓨터 프로그램.
A computer program stored in a non-transitory computer-readable recording medium for executing the method of any one of claims 1 and 3 to 9 on the computing device.
디바이스의 실내 오도메트리를 위한 컴퓨팅 장치에 있어서,
메모리; 및
상기 메모리와 연결되고, 상기 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함하고,
상기 프로세서는,
관성 측정 정보를 이용하여 상기 디바이스의 임시 상태 정보를 예측하고,
주변 공간 정보와 상기 관성 측정 정보를 이용하여, 상기 디바이스의 모션 타입을 추정하고, 상기 모션 타입이 상기 디바이스의 이동 수단 탑승에 따른 간접 이동 모션으로 추정됨에 따라, 상기 간접 이동 모션에 대응하는 상기 이동 수단에 의한 위치 변화량을 추정하고,
상기 위치 변화량에 기반하여, 상기 임시 상태 정보를 업데이트함으로써 최종 상태 정보로서 상기 디바이스의 상태 정보를 검출하도록 구성되는,
컴퓨팅 장치.
In a computing device for indoor odometry of a device,
memory; and
A processor connected to the memory and configured to execute at least one instruction stored in the memory,
The above processor,
Predicting the temporary state information of the device using inertial measurement information,
By using the surrounding space information and the inertial measurement information, the motion type of the device is estimated, and as the motion type is estimated to be an indirect movement motion due to the device riding a means of transportation, the amount of position change due to the means of transportation corresponding to the indirect movement motion is estimated,
Based on the above position change amount, the device is configured to detect the status information as final status information by updating the temporary status information.
Computing device.
삭제delete 제 11 항에 있어서,
상기 프로세서는,
상기 주변 공간 정보와 상기 관성 측정 정보를 이용하여 오도메트리 정보를 측정하도록 구성되는 오도메트리 모듈
을 더 포함하는,
컴퓨팅 장치.
In paragraph 11,
The above processor,
An odometry module configured to measure odometry information using the above-mentioned surrounding space information and the above-mentioned inertial measurement information.
including more,
Computing device.
제 13 항에 있어서,
상기 프로세서는,
상기 모션 타입이 상기 간접 이동 모션으로 추정됨에 따라, 상기 임시 상태 정보가 포함하는 위치를 상기 위치 변화량에 따라 업데이트하여, 상기 최종 상태 정보로서 상기 상태 정보를 검출하고,
상기 모션 타입이 직접 이동 모션으로 추정됨에 따라, 상기 임시 상태 정보가 포함하는 회전, 속력, 또는 위치 중 적어도 하나를 상기 오도메트리 정보에 따라 업데이트하여, 상기 최종 상태 정보로서 상기 직접 이동 모션에서의 상태 정보를 검출하도록 구성되는,
컴퓨팅 장치.
In paragraph 13,
The above processor,
As the above motion type is estimated to be the indirect movement motion, the position included in the temporary state information is updated according to the position change amount, and the state information is detected as the final state information.
As the motion type is estimated to be a direct movement motion, at least one of rotation, speed, or position included in the temporary state information is updated according to the odometry information, and the state information in the direct movement motion is configured to be detected as the final state information.
Computing device.
제 13 항에 있어서,
상기 상태 정보를 검출하도록 구성되는 상기 프로세서의 상태 검출 모듈은,
상기 모션 타입에 따라 스위치 방식으로 상기 위치 변화량 또는 상기 오도메트리 정보 중 하나를 이용하도록 구성되는,
컴퓨팅 장치.
In paragraph 13,
The state detection module of the processor configured to detect the above state information,
It is configured to use one of the position change amount or the odometry information in a switch manner according to the above motion type.
Computing device.
제 11 항에 있어서,
상기 모션 타입의 추정과, 상기 위치 변화량의 추정은 미리 학습된 뉴럴 네트워크를 통해 수행되는,
컴퓨팅 장치.
In paragraph 11,
The estimation of the above motion type and the estimation of the position change amount are performed through a pre-learned neural network.
Computing device.
제 14 항에 있어서,
상기 위치 변화량에 기반하여 상기 상태 정보를 검출하는 것 및 상기 직접 이동 모션에서의 상태 정보를 검출하는 것은 칼만 필터를 통해 수행되는,
컴퓨팅 장치.
In paragraph 14,
Detecting the state information based on the position change amount and detecting the state information in the direct movement motion are performed through a Kalman filter.
Computing device.
제 11 항에 있어서,
상기 주변 공간 정보는 연속적인 이미지들 또는 라이다 데이터로부터 생성되는 공간적 특징들을 포함하는,
컴퓨팅 장치.
In paragraph 11,
The above surrounding spatial information includes spatial features generated from continuous images or lidar data.
Computing device.
제 18 항에 있어서,
상기 이미지들을 촬영하도록 구성되는 카메라 모듈, 또는
상기 라이다 데이터를 생성하도록 구성되는 라이다 센서
중 적어도 하나; 및
상기 관성 측정 정보를 생성하도록 구성되는 관성 측정 유닛
을 더 포함하는,
컴퓨팅 장치.
In paragraph 18,
a camera module configured to capture the above images, or
A lidar sensor configured to generate the above lidar data
At least one of; and
An inertial measurement unit configured to generate the above inertial measurement information
including more,
Computing device.
제 11 항에 있어서,
상기 관성 측정 정보 중에서 각속도 및 선가속도를 이용하여, 상기 위치 변화량이 추정되는,
컴퓨팅 장치.
In paragraph 11,
Among the above inertial measurement information, the position change amount is estimated using the angular velocity and linear acceleration.
Computing device.
KR1020230186773A 2023-12-20 2023-12-20 Computing device for indoor odometry and method of operation thereof Active KR102870997B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020230186773A KR102870997B1 (en) 2023-12-20 2023-12-20 Computing device for indoor odometry and method of operation thereof
PCT/KR2024/013688 WO2025135401A1 (en) 2023-12-20 2024-09-10 Computing device for indoor odometry and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230186773A KR102870997B1 (en) 2023-12-20 2023-12-20 Computing device for indoor odometry and method of operation thereof

Publications (2)

Publication Number Publication Date
KR20250095995A KR20250095995A (en) 2025-06-27
KR102870997B1 true KR102870997B1 (en) 2025-10-16

Family

ID=96138384

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230186773A Active KR102870997B1 (en) 2023-12-20 2023-12-20 Computing device for indoor odometry and method of operation thereof

Country Status (2)

Country Link
KR (1) KR102870997B1 (en)
WO (1) WO2025135401A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226767B1 (en) * 2010-10-25 2013-01-28 부산대학교 산학협력단 System and Method for localizationing of Autonomous Vehicle
KR101323750B1 (en) * 2011-03-16 2013-10-31 (주)프라이전트 Indoor tracking device and method for ugv using inertial sensor
KR20130049610A (en) * 2011-11-04 2013-05-14 삼성전자주식회사 Mobile object and walking robot
EP2926218A4 (en) * 2012-12-03 2016-08-03 Navisens Inc SYSTEMS AND METHODS FOR ESTIMATING THE MOVEMENT OF AN OBJECT
WO2022013683A1 (en) * 2020-07-16 2022-01-20 Oriient New Media Ltd. Indoor positioning with plurality of motion estimators

Also Published As

Publication number Publication date
WO2025135401A1 (en) 2025-06-26
KR20250095995A (en) 2025-06-27

Similar Documents

Publication Publication Date Title
US11826897B2 (en) Robot to human feedback
JP6754856B2 (en) Sensor-intensive framework for self-driving vehicles
CN110998614B (en) Electronic devices and methods of operating them
US11508158B2 (en) Electronic device and method for vehicle driving assistance
KR102629036B1 (en) Robot and the controlling method thereof
CN115705714A (en) System and method for analyzing a work area
US11904853B2 (en) Apparatus for preventing vehicle collision and method thereof
WO2018068771A1 (en) Target tracking method and system, electronic device, and computer storage medium
KR20200143242A (en) Detecting adversarial samples by a vision based perception system
JP6908674B2 (en) Vehicle control system based on a given calibration table for operating self-driving vehicles
JP7230113B2 (en) CONTROL DEVICE, MOVING OBJECT, CONTROL METHOD AND PROGRAM
Zhang et al. Oostraj: Out-of-sight trajectory prediction with vision-positioning denoising
CN114740835B (en) Path planning method, path planning device, robot, and storage medium
KR102870997B1 (en) Computing device for indoor odometry and method of operation thereof
US20250354812A1 (en) Systems and methods for training a driving agent based on real-world driving data
KR102478667B1 (en) Building with system for detecting abnormality in sensor of robot using elevator
CN111971149A (en) Recording medium, information processing apparatus, and information processing method
US9965051B2 (en) Input device tracking
JP7775181B2 (en) Information processing device, information processing method, and computer program
CN114518117A (en) Navigation method, navigation device, electronic equipment and medium
US12392759B2 (en) Moving object and control method for the same
KR20210078456A (en) Acquisition system for pedestrian path data using social mapping and the method thereof
US12112632B2 (en) Systems and methods for providing multi-camera vehicle tracking and navigation to a vehicle location
CN109426807A (en) Method and apparatus for estimating the displacement of vehicle
KR20250120586A (en) Computing device for relative pose recognition through point cloud comparison and method of operation thereof

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

PA0302 Request for accelerated examination

St.27 status event code: A-1-2-D10-D17-exm-PA0302

St.27 status event code: A-1-2-D10-D16-exm-PA0302

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

D22 Grant of ip right intended

Free format text: ST27 STATUS EVENT CODE: A-1-2-D10-D22-EXM-PE0701 (AS PROVIDED BY THE NATIONAL OFFICE)

PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-OTH-PR1002 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

Q13 Ip right document published

Free format text: ST27 STATUS EVENT CODE: A-4-4-Q10-Q13-NAP-PG1601 (AS PROVIDED BY THE NATIONAL OFFICE)