KR102095135B1 - 실내 측위 방법 및 이를 수행하는 장치들 - Google Patents

실내 측위 방법 및 이를 수행하는 장치들 Download PDF

Info

Publication number
KR102095135B1
KR102095135B1 KR1020180173977A KR20180173977A KR102095135B1 KR 102095135 B1 KR102095135 B1 KR 102095135B1 KR 1020180173977 A KR1020180173977 A KR 1020180173977A KR 20180173977 A KR20180173977 A KR 20180173977A KR 102095135 B1 KR102095135 B1 KR 102095135B1
Authority
KR
South Korea
Prior art keywords
pedestrian
particles
change value
distance
indoor positioning
Prior art date
Application number
KR1020180173977A
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 KR1020180173977A priority Critical patent/KR102095135B1/ko
Application granted granted Critical
Publication of KR102095135B1 publication Critical patent/KR102095135B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management
    • H04W64/006Locating users or terminals or network equipment for network management purposes, e.g. mobility management with additional information processing, e.g. for direction or speed determination
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Navigation (AREA)
  • Traffic Control Systems (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

실내 측위 방법 및 이를 수행하는 장치들이 개시된다. 일 실시예에 따른 실내 측위 방법은 보행자의 자세 변화값, 보행자 주변의 자기장 및 무선 노드로부터 전송된 신호 중에서 적어도 하나에 기초하여 상기 보행자에 대응하는 복수의 파티클들의 가중치를 결정하는 단계와, 상기 가중치에 기초하여 상기 보행자의 자세를 추정하는 단계를 포함한다.

Description

실내 측위 방법 및 이를 수행하는 장치들{METHOD OF POSITIONING INDOOR AND APPARATUSES PERFORMING THE SAME}
아래 실시예들은 실내 측위 방법 및 이를 수행하는 장치들에 관한 것이다.
위성 위치 확인 시스템(Global Positioning System; GPS)은 실외(또는 옥외)에서 비교적 정확한 위치로 실외 측위를 제공할 수 있다.
하지만, 위성 위치 확인 시스템은 위성으로부터 전송된 매우 약한 신호가 실내에서 쉽게 왜곡되어 실내 측의에 대한 높은 정확도를 제공하기 어렵다.
실내에서 GPS와 유사한 측위 서비스를 제공하기 위해, 최근에는 Wi-Fi, Bluetooth 및 Zigbee와 같은 RF 기반의 연구들이 진행되고 있다.
예를 들어, 최근에는 수신 신호 세기(received signal strength indicator; RSSI)에 기반하여 실내 측위 서비스를 제공할 수 있다.
하지만, RSSI 기반 측위 방식은 벽과 사람 등의 장애물로 인해 발생하는 multipath fading과 shadow fading에 취약하다. 이에, RSSI 기반 측위 방식은 순간적인 측정값 만으로 실내 공간에서 움직이는 물체를 1m 미만의 정확도로 찾아내는 것이 어렵다.
실시예들은 보행자의 가속도, 보행자의 각속도, 보행자 주변의 자기장 및 무선 노드로부터 전송된 신호에 기초하여 보행자의 자세를 추정하고, 무선 노드의 위치를 추정하는 기술을 제공할 수 있다.
또한, 실시예들은 보행자의 자세 및 무선 노드의 위치를 매핑하여 보행자의 자세 및 무선 노드의 위치가 매핑된 실내 측위 정보를 제공하는 기술을 제공할 수 있다.
일 실시예에 따른 실내 측위 방법은 보행자의 자세 변화값, 보행자 주변의 자기장 및 무선 노드로부터 전송된 신호 중에서 적어도 하나에 기초하여 상기 보행자에 대응하는 복수의 파티클들의 가중치를 결정하는 단계와, 상기 가중치에 기초하여 상기 보행자의 자세를 추정하는 단계를 포함한다.
상기 자세 변화값은 상기 보행자의 이동에 따른 이동 거리 변화값 및 상기 보행자의 회전에 따른 이동 방향 변화값 중에서 적어도 하나일 수 있다.
상기 보행자의 자세는 상기 보행자의 위치 및 방향일 수 있다.
상기 결정하는 단계는 상기 보행자의 이동에 기반한 상기 이동 거리 변화값 및 상기 이동 방향 변화값에 기초하여 상기 가중치를 결정하는 단계를 포함할 수 있다.
상기 이동 거리 변화값 및 상기 이동 방향 변화값에 기초하여 상기 가중치를 결정하는 단계는 상기 보행자의 가속도에 기반한 상기 이동 거리 변화값에 기초하여 상기 복수의 파티클들의 이동 거리 변화값을 결정하는 단계와, 상기 보행자의 각속도에 기반한 상기 이동 방향 변화값에 기초하여 상기 복수의 파티클들의 이동 방향 변화값을 결정하는 단계와, 상기 복수의 파티클들의 이동 거리 변화값 및 상기 복수의 파티클들의 이동 방향 변화값에 기초하여 상기 복수의 파티클들의 자세를 추정하는 단계와, 추정된 복수의 파티클들의 자세에 기초하여 상기 가중치를 결정하는 단계를 포함할 수 있다.
상기 복수의 파티클들의 이동 거리 변화값을 결정하는 단계는 상기 보행자의 가속도에 응답하여 상기 보행자의 이동을 검출하는 단계와, 상기 보행자의 이동이 검출된 경우, 상기 보행자의 가속도에 기초하여 상기 보행자의 이동 거리 변화값을 추정하는 단계와, 상기 보행자의 이동 거리 변화값에 대한 가우시안 확률 분포를 계산하는 단계와, 상기 가우시안 확률 분포를 샘플링하여 상기 복수의 파티클들의 이동 거리 변화값을 결정하는 단계를 포함할 수 있다.
상기 복수의 파티클들의 이동 방향 변화값을 결정하는 단계는 상기 보행자의 각속도에 응답하여 상기 보행자의 이동 방향 변화값을 추정하는 단계와, 상기 보행자의 이동 방향 변화값의 노이즈에 대한 가우시안 확률 분포를 계산하는 단계와, 상기 가우시안 확률 분포로부터 상기 복수의 파티클들의 이동 방향 변화값을 샘플링하여 상기 복수의 파티클들의 이동 방향 변화값을 결정하는 단계를 포함할 수 있다.
상기 결정하는 단계는 상기 보행자의 이동 및 상기 자기장에 기반한 상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정하는 단계를 포함할 수 있다.
상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정하는 단계는 상기 보행자의 가속도 및 상기 자기장에 응답하여 상기 보행자의 방향을 계산하는 단계와, 상기 보행자의 각속도에 응답하여 상기 이동 방향 변화값에 기반한 상기 복수의 파티클들의 방향을 계산하는 단계와, 상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정하는 단계를 포함할 수 있다.
상기 가중치를 결정하는 단계는 상기 신호에 기반한 상기 보행자 및 상기 복수의 파티클들과 상기 무선 노드간의 거리에 기초하여 상기 가중치를 결정하는 단계를 포함할 수 있다.
상기 보행자 및 상기 복수의 파티클들과 상기 무선 노드간의 거리에 기초하여 상기 가중치를 결정하는 단계는 상기 신호에 응답하여 상기 신호의 신호 세기에 기반한 상기 보행자와 상기 무선 노드간의 거리인 제1 거리를 계산하는 단계와, 상기 복수의 파티클들의 위치 및 상기 무선 노드의 위치에 기초하여 상기 복수의 파티클들과 상기 무선 노드간의 거리인 제2 거리를 계산하는 단계와, 상기 제1 거리 및 상기 제2 거리에 기초하여 상기 가중치를 결정하는 단계를 포함할 수 있다.
상기 추정하는 단계는 상기 가중치에 기초하여 상기 복수의 파티클들을 리샘플링하는 단계와, 리샘플링된 복수의 파티클들을 클러스터링하여 상기 보행자의 위치 및 방향을 추정하는 단계를 포함할 수 있다.
상기 방법은 상기 신호에 기초하여 상기 무선 노드의 위치를 추정하는 단계와, 상기 무선 노드의 위치 및 상기 보행자의 자세를 매핑하여 상기 무선 노드의 위치 및 상기 보행자의 자세가 매핑된 실내 측위 정보를 제공하는 단계를 더 포함할 수 있다.
일 실시예에 따른 실내 측위 장치는 통신 모듈과, 보행자의 자세 변화값, 보행자 주변의 자기장 및 무선 노드로부터 전송된 신호 중에서 적어도 하나에 기초하여 상기 보행자에 대응하는 복수의 파티클들의 가중치를 결정하고, 상기 가중치에 기초하여 상기 보행자의 자세를 추정하는 컨트롤러를 포함할 수 있다.
상기 자세 변화값은 상기 보행자의 이동에 따른 이동 거리 변화값 및 상기 보행자의 회전에 따른 이동 방향 변화값 중에서 적어도 하나일 수 있다.
상기 보행자의 자세는 상기 보행자의 위치 및 방향일 수 있다.
상기 컨트롤러는 상기 보행자의 이동에 기반한 상기 이동 거리 변화값 및 상기 이동 방향 변화값에 기초하여 상기 가중치를 결정할 수 있다.
상기 컨트롤러는 상기 보행자의 가속도에 기반한 상기 이동 거리 변화값에 기초하여 상기 복수의 파티클들의 이동 거리 변화값을 결정하고, 상기 보행자의 각속도에 기반한 상기 이동 방향 변화값에 기초하여 상기 복수의 파티클들의 이동 방향 변화값을 결정하고, 상기 복수의 파티클들의 이동 거리 변화값 및 상기 복수의 파티클들의 이동 방향 변화값에 기초하여 상기 복수의 파티클들의 자세를 추정하고, 추정된 복수의 파티클들의 자세에 기초하여 상기 가중치를 결정할 수 있다.
상기 컨트롤러는 상기 보행자의 가속도에 응답하여 상기 보행자의 이동을 검출하고, 상기 보행자의 이동이 검출된 경우, 상기 보행자의 가속도에 기초하여 상기 보행자의 이동 거리 변화값을 추정하고, 상기 보행자의 이동 거리 변화값에 대한 가우시안 확률 분포를 계산하고, 상기 가우시안 확률 분포를 샘플링하여 상기 복수의 파티클들의 이동 거리 변화값을 결정할 수 있다.
상기 컨트롤러는 상기 보행자의 각속도에 응답하여 상기 보행자의 이동 방향 변화값을 추정하고, 상기 보행자의 이동 방향 변화값의 노이즈에 대한 가우시안 확률 분포를 계산하고, 상기 가우시안 확률 분포를 샘플링하여 상기 복수의 파티클들의 이동 방향 변화값을 결정할 수 있다.
상기 컨트롤러는 상기 보행자의 이동 및 상기 자기장에 기반한 상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정할 수 있다.
상기 컨트롤러는 상기 보행자의 가속도 및 상기 자기장에 응답하여 상기 보행자의 방향을 계산하고, 상기 보행자의 각속도에 응답하여 상기 이동 방향 변화값에 기반한 상기 복수의 파티클들의 방향을 계산하고, 상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정할 수 있다.
상기 컨트롤러는 상기 보행자 및 상기 복수의 파티클들과 상기 무선 노드간의 거리에 기초하여 상기 가중치를 결정할 수 있다.
상기 컨트롤러는 상기 신호에 응답하여 상기 신호의 신호 세기에 기반한 상기 보행자와 상기 무선 노드간의 거리인 제1 거리를 계산하고, 상기 복수의 파티클들의 위치 및 상기 무선 노드의 위치에 기초하여 상기 복수의 파티클들과 상기 무선 노드간의 거리인 제2 거리를 계산하고, 상기 제1 거리 및 상기 제2 거리에 기초하여 상기 가중치를 결정할 수 있다.
상기 컨트롤러는 상기 가중치에 기초하여 상기 복수의 파티클들을 리샘플링하고, 리샘플링된 복수의 파티클들을 클러스터링하여 상기 보행자의 위치 및 방향을 추정할 수 있다.
상기 컨트롤러는 상기 신호에 기초하여 상기 무선 노드의 위치를 추정하고, 상기 무선 노드의 위치 및 상기 보행자의 자세를 매핑하여 상기 무선 노드의 위치 및 상기 보행자의 자세가 매핑된 실내 측위 정보를 제공할 수 있다.
도 1은 일 실시예에 따른 쿼터니언에 기반한 무감각 변환을 설명하기 위한 일 예를 나타낸다.
도 2는 일 실시예에 따른 실내 측위 시스템의 개략적인 블록도를 나타낸다.
도 3은 도 2에 도시된 실내 측위 장치의 개략적인 블록도를 나타낸다.
도 4는 도 2에 도시된 실내 측위 장치의 제1 알고리즘 동작을 설명하기 위한 일 예를 나타낸다.
도 5는 도 2에 도시된 실내 측위 장치의 제2 알고리즘 동작을 설명하기 위한 일 예를 나타낸다.
도 6은 도 2에 도시된 실내 측위 장치의 제3 알고리즘 동작을 설명하기 위한 일 예를 나타낸다.
도 7은 도 2에 도시된 실내 측위 장치의 제4 알고리즘 동작을 설명하기 위한 일 예를 나타낸다.
도 8은 도 2에 도시된 실내 측위 장치의 제4 알고리즘 동작을 설명하기 위한 다른 예를 나타낸다.
도 9는 도 2에 도시된 실내 측위 장치의 제5 알고리즘 동작을 설명하기 위한 일 예를 나타낸다.
도 10은 도 2에 도시된 실내 측위 장치의 제5 알고리즘 동작을 설명하기 위한 다른 예를 나타낸다.
도 11a는 일 실시예에 따른 실내 측위 정보를 설명하기 위한 일 예를 나타낸다.
도 11b는 일 실시예에 따른 실내 측위 정보를 설명하기 위한 다른 예를 나타낸다.
도 11c는 일 실시예에 따른 실내 측위 정보를 설명하기 위한 또 다른 예를 나타낸다.
도 12는 도 2에 도시된 실내 측위 장치의 동작을 설명하기 위한 순서도를 나타낸다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 1은 일 실시예에 따른 쿼터니언에 기반한 무감각 변환을 설명하기 위한 일 예를 나타낸다.
도 1을 참조하면, 쿼터니언(quaternion)은 attitude와 rotation을 모두 표현할 수 있다. 쿼터니언에 기반한 무감각 변환은 보행자의 각속도에 기초하여 보행자의 이동 방향 변화값, 보행자의 이동 방향 변화값의 노이즈(또는 에러), 보행자의 이동 방향 변화값의 노이즈에 대한 예측 평균 및 공분산을 계산하는 알고리즘일 수 있다.
쿼터니언에 기반한 무감각 변환은 gimbal lock 문제를 피할 수 있어 보행자의 자세를 나타내지 위해 사용될 수 있다. 보행자의 이동 방향 변화값은 에러값이 포함된 값일 수 있다.
쿼터니언은 정규화된(normalized) 4차원 벡터로써, 수학식 1로 나타낼 수 있다.
Figure 112018132439421-pat00001
수학식 1의
Figure 112018132439421-pat00002
는 쿼터니언을 나타내고,
Figure 112018132439421-pat00003
,
Figure 112018132439421-pat00004
Figure 112018132439421-pat00005
Figure 112018132439421-pat00006
의 허수부(imaginary part) 나타내고,
Figure 112018132439421-pat00007
Figure 112018132439421-pat00008
의 실수부(real part)를 나타낸다.
Figure 112018132439421-pat00009
Figure 112018132439421-pat00010
의 허수부를 의미하고, 단위 쿼터니언(unit quaternion)은 벡터의 크기가 1인 벡터를 나타낸다.
수학식 2는 회전(rotation)을 쿼터니언의 형태로 나타내는 부분에 해당한다.
Figure 112018132439421-pat00011
수학식 2의
Figure 112018132439421-pat00012
는 유클리안 공간(Euclidean space) 내 회전 축을 의미하고,
Figure 112018132439421-pat00013
은 회전 축 방향으로의 회전 크기를 의미한다.
보행자의 회전(rotation)에 의해 업데이트된 보행자의 방향은 수학식 3으로 나타낼 수 있다.
Figure 112018132439421-pat00014
수학식 3의
Figure 112018132439421-pat00015
는 로테이션 쿼터니언(rotation quaternion)을 나타내고,
Figure 112018132439421-pat00016
는 회전하기전 오리엔테이션 쿼터니언(orientation quaternion)을 나타낸다.
자이로스코프의 측정값인 보행자의 각속도를 통해 보행자의 방향의 신뢰성을 결정하기 위해 자이로스코프의 노이즈(noise)는 추정되야 한다.
스케일 팩터(scale factor) 또는 편향(mosalignment)과 같은 결정적 요류들(deterministic errors)이 보정된다고 가정하는 경우, 3축 연속 시간(three-axis continuous time) 자이로스코프 노이즈 모델은 수학식 4로 나타낼 수 있다.
Figure 112018132439421-pat00017
여기서,
Figure 112018132439421-pat00018
는 시간 t에서 continuous-time measured angular rate(예를 들어, 센서에서 측정된 측정값)를 나타내고,
Figure 112018132439421-pat00019
는 continuous-time angular rate(예를 들어, 참값)를 나타내고,
Figure 112018132439421-pat00020
는 시간 t에서 드리프트 바이어스(drift bias)를 나타낸다.
Figure 112018132439421-pat00021
는 continuous-time model(예를 들어, 괄호 안의 값이 연속된 시간을 나타내는 t)에서의 자이로스코프 측정치(measured angular rate)의 노이즈를 나타낸다. 이때, 노이즈는 제로-평균 가우시안 화이트 노이즈(independent zero-mean Gaussian white-noise)로 모델링될 수 있다. 즉,
Figure 112018132439421-pat00022
는 시간 t에서 독립적인 제로-평균 가우시안 화이트 노이즈(independent zero-mean Gaussian white-noise)를 나타낸다.
센서 모델에서, 바이어스의 값은 시간에 따라 일정하지 않고, 계속해서 변화한다. 바이어스의 변화량에 대한 노이즈 모델은 수학식 5로 나타낼 수 있다.
Figure 112018132439421-pat00023
여기서,
Figure 112018132439421-pat00024
는 continuous-time model(예를 들어, 괄호 안의 값이 연속된 시간을 나타내는 t)에서의 바이어스 변화량의 노이즈를 나타낸다. 이때, 노이즈는 제로-평균 가우시안 화이트 노이즈(independent zero-mean Gaussian white-noise)로 모델링될 수 있다. 즉,
Figure 112018132439421-pat00025
는 시간 t에서 제로-평균 가우시안 화이트 노이즈를 나타낸다.
Figure 112018132439421-pat00026
은 수학식 6과 같은 특성을 가지고,
Figure 112018132439421-pat00027
는 수학시 7과 같은 특성을 가질 수 있다.
Figure 112018132439421-pat00028
Figure 112018132439421-pat00029
수학식 6 및 7의
Figure 112018132439421-pat00030
는 평균(expectation)을 나타내고,
Figure 112018132439421-pat00031
는 시간 축에서의 값을 나타내고,
Figure 112018132439421-pat00032
은 Dirac delta function을 나타내고,
Figure 112018132439421-pat00033
는 continuous-time white Gaussian noise process의 strength를 나타낸다.
Figure 112018132439421-pat00034
는 자이로스코프 측정값이 얼마나 noisy한지 나타내는 파라미터이고,
Figure 112018132439421-pat00035
는 바이어스의 변화량이 어느 정도의 노이즈를 갖는지를 나타내는 파라미터이다.
저비용 MEMS IMU(micro electro mechnical systems inertial measurement unit)를 사용하는 경우, 상술한 자이로스코프 노이즈 모델은 에러 소스들(error sources)의 영향이 포함되도록 잡음 모델 매개 변수를 증가시켜야 한다.
무감각 변환 과정에서 post-update estimate인
Figure 112018132439421-pat00036
가 주어지는 경우, post-update 각속도(angular velocity;
Figure 112018132439421-pat00037
)는 수학식 8으로 나타내고, 전파된 자이로 바이어스(propagated gyro bias;
Figure 112018132439421-pat00038
)는 수학식 9로 나타낼 수 있다. K는 Unscented Transform의 k번째 반복(iteration)을 의미한다.
Figure 112018132439421-pat00039
수학식 8의
Figure 112018132439421-pat00040
는 나타내고,
Figure 112018132439421-pat00041
는 k번째 반복에서의 센서에서 측정된 각속도(measured angular rate)를 나타낸다.
Figure 112018132439421-pat00042
수학식 9의
Figure 112018132439421-pat00043
은 Unscented Transform의 k+1번째 반복(iteration)을 나타낸다.
샘플링 간격(Sampling interval;
Figure 112018132439421-pat00044
) 동안 일정한 각속도인
Figure 112018132439421-pat00045
로 회전하는 경우, 로테이션 벡터(rotation vector)는 수학식 10으로 나타낼 수 있다.
Figure 112018132439421-pat00046
수학식 10의
Figure 112018132439421-pat00047
는 로테이션 벡터(rotation vector)를 나타낸다.
로테이션 벡터(rotation vector)에 대응하는 로테이션 쿼터니언(rotation quaterion)은 수학식 11로 나타낼 수 있다.
Figure 112018132439421-pat00048
수학식 11의
Figure 112018132439421-pat00049
는 로테이션 쿼터니언(rotation quaterion)을 나타낸다.
전파된 쿼터니언(Propagated quaternion)은 수학식 12로 나타낼 수 있다.
Figure 112018132439421-pat00050
수학식 12의
Figure 112018132439421-pat00051
는 회전하기 전 쿼터니언(예를 들어, k번째 iteration의 attitude에 해당하는 쿼터니언)을 나타내고,
Figure 112018132439421-pat00052
는 회전한 후 쿼터니언(예를 들어, k+1번째 iteration에 해당하는 쿼터니언)을 나타낸다.
무감각 변환 알고리즘이 유니티 놈 제약(unity norm constraint)을 준수하지 않기에 단위 쿼터니언(uit quaternion)은 Unscented Transform의 상태 벡터(state vector)로 직접 사용될 수 없다.
따라서, Unscented Transform의 상태 벡터는 로컬 에러 쿼터니언(local error-quaternion)를 사용하여 전파되야 한다.
로컬 에러 쿼터니언은 수학식 13으로 나타낼 수 있다.
Figure 112018132439421-pat00053
수학식 13의
Figure 112018132439421-pat00054
는 로컬 에러 쿼터니언을 나타내고,
Figure 112018132439421-pat00055
는 로컬 에러 쿼터니언의 허수부를 나타내고,
Figure 112018132439421-pat00056
는 로컬 에러 쿼터니언의 실수부를 나타낸다.
보행자의 방향(attitude)의 로컬 에러를 나타내는 비제약 3 컴포넌트 벡터(unconstrained three-component vector)는 수학식 14로 나타낼 수 있다.
Figure 112018132439421-pat00057
수학식 14의
Figure 112018132439421-pat00058
는 비제약 3 컴포넌트 벡터를 나타내고,
Figure 112018132439421-pat00059
는 스케일 팩터(scale factor)를 나타내고,
Figure 112018132439421-pat00060
는 매개 변수를 나타낸다. 이때,
Figure 112018132439421-pat00061
는 0 ~ 1 사이의 값을 가질 수 있다.
작은 에러 값에 대해
Figure 112018132439421-pat00062
Figure 112018132439421-pat00063
와 같도록 설정하기 위해
Figure 112018132439421-pat00064
Figure 112018132439421-pat00065
와 수학식 15의 관계를 가질 수 있다.
Figure 112018132439421-pat00066
Figure 112018132439421-pat00067
에서
Figure 112018132439421-pat00068
로의 역변환은 수학식 16 및 수학식 17로 나타낼 수 있다.
Figure 112018132439421-pat00069
Figure 112018132439421-pat00070
무감각 변환의 상태 벡터는 방향 에러(attitude error) 및 바이어스 벡터들(bias vectors)이 포함될 수 있다.
무감각 변환의 상태 벡터는 수학식 18로 나타낼 수 있다.
Figure 112018132439421-pat00071
수학식 18의
Figure 112018132439421-pat00072
는 Unscented Transform에서 k번째 iteration에서 0번 시그마포인트를 나타내고,
Figure 112018132439421-pat00073
는 Unscented Transform에서 k번째 iteration의 상태 벡터를 나타내고,
Figure 112018132439421-pat00074
는 Unscented Transform에서 k번째 iteration의 상태 벡터 중에서 보행자 방향 로컬 에러를 나타내는 Unscented three-component vector를 나타낸다.
상태 벡터 표현에 제약이 없기에, 전체 공분산 행렬은
Figure 112018132439421-pat00075
이며, 6차원 상태 벡터인
Figure 112018132439421-pat00076
에 대한
Figure 112018132439421-pat00077
공분산 행렬일 수 있다.
상태 벡터
Figure 112018132439421-pat00078
에 대한 시그마 포인트(sigma points)는 수학식 19 및 수학식 20으로 나타낼 수 있다. 상태 벡터에는 attitude를 직접적으로 나타내는 정보는 포함되어 있지 않고, 로컬 에러에 대한 성분만 포함되어 있기 때문에, Unscented Transform 계산 과정 중에 필요한
Figure 112018132439421-pat00079
(attitude에 해당하는 쿼터니언)을 따로 저장하고 있어야 한다.
Figure 112018132439421-pat00080
여기서,
Figure 112018132439421-pat00081
Figure 112018132439421-pat00082
Figure 112018132439421-pat00083
로부터 계산된 +- 두 개의 행렬의 i번째 columns에 해당하는 6차원 벡터이고,
Figure 112018132439421-pat00084
는 시그마 포인트가 평균값으로부터 멀리 형성되는 정도를 결정하는 파라미터이다.
Figure 112018132439421-pat00085
는 Unscented Transform의 k번째 iteration 중 6차원 상태 벡터인
Figure 112018132439421-pat00086
에 대한
Figure 112018132439421-pat00087
공분산 행렬,
Figure 112018132439421-pat00088
는 Unscented Transform의 계산에 용이하게 변형한 discrete process noise covariance를 나타낸다.
Figure 112018132439421-pat00089
여기서,
Figure 112018132439421-pat00090
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트를 나타낸고,
Figure 112018132439421-pat00091
Figure 112018132439421-pat00092
Figure 112018132439421-pat00093
로부터 계산된 +- 두 개의 행렬의 i번째 columns에 해당하는 6차원 벡터를 나타낸다.
콜레스티 분해(cholesky decomposition)을 이용하여 매트릭스 제곱근은 효율적으로 계산될 수 있다.
Figure 112018132439421-pat00094
는 노이즈 공분산(noise covariance)와 관련이 있다.
Figure 112018132439421-pat00095
가 성립하는 경우,
Figure 112018132439421-pat00096
는 수학식 21로 나타낼 수 있다.
Figure 112018132439421-pat00097
Figure 112018132439421-pat00098
는 표현의 편의성을 위해 수학식 22로 나타낼 수 있다.
Figure 112018132439421-pat00099
수학식 22의
Figure 112018132439421-pat00100
Figure 112018132439421-pat00101
의 방향 에러 파트(attitude-error part)를 나타내고,
Figure 112018132439421-pat00102
Figure 112018132439421-pat00103
의 자이로 바이어스 파트(gyro bias part)를 나타낸다.
각 시그마 포인트의 오리엔테이션 쿼터니언은 수학식 23 및 수학식 24로 나타낼 수 있다.
Figure 112018132439421-pat00104
Figure 112018132439421-pat00105
는 Unscented Transform의 k번째 iteration 중 0번 시그마 포인트가 갖는 attitude에 대한 orientation 쿼터니언을 나타낸다. 이 연산을 위해서, Unscented Transform의 상태 벡터 이외에 k번째 iteration의 attitude에 대한 orientation 쿼터니언에 해당하는
Figure 112018132439421-pat00106
를 따로 저장하고 있어야 한다.
Figure 112018132439421-pat00107
여기서,
Figure 112018132439421-pat00108
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트의 방향 로컬 에러를 나타내는 unconstrained three-component vector
Figure 112018132439421-pat00109
로부터 역연산으로 얻어진 i번 시그마포인트 로컬 에러 쿼터니언을 나타내고,
Figure 112018132439421-pat00110
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트의 attitude를 나타내는 orientation 쿼터니언을 나타낸다.
Figure 112018132439421-pat00111
는 수학식 25로 나타낼 수 있다.
Figure 112018132439421-pat00112
수학식 25의
Figure 112018132439421-pat00113
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트의 로컬 에러 쿼터니언의 허수부를 나타내고,
Figure 112018132439421-pat00114
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트의 로컬 에러 쿼터니언의 실수부를 나타낸다.
Figure 112018132439421-pat00115
는 수학식 26으로 나타낼 수 있다.
Figure 112018132439421-pat00116
수학식 26의
Figure 112018132439421-pat00117
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트의 방향 로컬 에러를 나타내는 unconstrained three-component vector를 나타낸다.
Figure 112018132439421-pat00118
는 시그마 포인트의 일부이다.
Figure 112018132439421-pat00119
는 수학식 27로 나타낼 수 있다.
Figure 112018132439421-pat00120
업데이트된 쿼터니언들은 방향의 회전 연산에 따라 수학식 28, 수학식 29, 수학식 30 및 수학식 31으로 나타낼 수 있다.
Figure 112018132439421-pat00121
수학식 28의
Figure 112018132439421-pat00122
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트의 rotation 연산에 사용될 angular rate을 나타내고,
Figure 112018132439421-pat00123
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트의 자이로스코프 바이어스를 나타낸다.
Figure 112018132439421-pat00124
수학식 29의
Figure 112018132439421-pat00125
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트의 로케이션 벡터(rotation vector)를 나타낸다.
Figure 112018132439421-pat00126
Figure 112018132439421-pat00127
Figure 112018132439421-pat00128
에 대응하는 로테이션 쿼터니언을 나타낸다.
Figure 112018132439421-pat00129
여기서,
Figure 112018132439421-pat00130
는 Unscented Transform의 k번째 iteration 중 i번 시그마 포인트의 orientation 쿼터니언
Figure 112018132439421-pat00131
및 로테이션 쿼터니언
Figure 112018132439421-pat00132
의 연산으로 전파되는 orientation 쿼터니언을 나타낸다. k+1번째 iteration 중, 각 시그마 포인트의 orientation 쿼터니언과 통계적으로 같은 성질을 갖지만, 계산상 정확히 같은 값이 아닐 가능성이 있어, 혼동을 방지하기 위해
Figure 112018132439421-pat00133
로 표기한다.
전파된 에러 쿼터니언들(propagated error quaternions)은 수학식 32 및 수학식 33으로 나타낼 수 있다.
Figure 112018132439421-pat00134
수학식 32의
Figure 112018132439421-pat00135
는 전파된 에러 쿼터니언을 나타내고,
Figure 112018132439421-pat00136
Figure 112018132439421-pat00137
의 허수부를 나타내고,
Figure 112018132439421-pat00138
Figure 112018132439421-pat00139
의 실수부를 나타낸다.
Figure 112018132439421-pat00140
전파된 시그마 포인트(sigma points)는 수학식 34, 수학식 35 및 수학식 36으로 나타낼 수 있다.
Figure 112018132439421-pat00141
Figure 112018132439421-pat00142
는 전파된 0번 시그마 포인트의 방향 로컬 에러를 나타내는 unconstrained three-component vector를 나타낸다.
Figure 112018132439421-pat00143
Figure 112018132439421-pat00144
는 전파된 i번 시그마 포인트의 방향 로컬 에러를 나타내는 unconstrained three-component vector를 나타내고,
Figure 112018132439421-pat00145
Figure 112018132439421-pat00146
의 허수부를 나타낸다.
Figure 112018132439421-pat00147
Figure 112018132439421-pat00148
는 전파된 시그마 포인트의 자이로스코프 바이어스를 나타낸다.
무감각 변환을 통해 얻어지는 예측 평균(predicted mean)은 수학식 37로 나타내고, 공분산(covariance)은 수학식 38로 나타낼 수 있다.
Figure 112018132439421-pat00149
Figure 112018132439421-pat00150
는 Unscented Transform의 k+1번째 iteration의 상태 벡터를 나타내고,
Figure 112018132439421-pat00151
는 상태 벡터의 차원 수(예를 들어, 6)를 나타내고,
Figure 112018132439421-pat00152
는 전파된 0번 시그마 포인트를 나타내고,
Figure 112018132439421-pat00153
는 전파된 i번 시그마 포인트를 나타낸다.
Figure 112018132439421-pat00154
Figure 112018132439421-pat00155
는 Unscented Transform의 k+1번째 iteration의 상태 벡터
Figure 112018132439421-pat00156
에 대한 공분산 행렬을 나타낸다.
Unscented Transform의 마지막 연산 과정은
Figure 112018132439421-pat00157
을 만족한다.
Figure 112018132439421-pat00158
은 Unscented Transform의 k+1번째 iteration 중, attitude에 대한 orientation 쿼터니언이다.
마지막으로, k+1번째 iteration의 propagation을 위하여,
Figure 112018132439421-pat00159
Figure 112018132439421-pat00160
부분을 0으로 초기화한다.
도 2는 일 실시예에 따른 실내 측위 시스템의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 실내 측위 시스템(an indoor positioning system; 10)은 무선 노드(a wireless node; 100), 전자 장치(an electronic apparatus; 300) 및 실내 측위 장치(an indoor positioning apparatus; 500)를 포함한다.
무선 노드(100)는 실내에 설치된(또는 배치된) 노드로써, 무선 노드(100) 주변에 무선 신호를 전송하는 무선 전송 노드일 수 있다.
예를 들어, 무선 노드(100)는 비콘으로 구현된 복수의 무선 노드들일 수 있다. 복수의 무선 노드들은 고유한 ID로 식별가능한 저전력 무선 노드들(landmarks)일 수 있다. 복수의 무선 노드들의 무선 노드의 설치 높이(또는 실내 천장의 높이)는 미리 제공될 수 있다.
전자 장치(300)는 실내를 이동하는 보행자가 사용하는 장치일 수 있다. 이때, 보행자는 전자 장치(300)를 소지할 수 있다. 예를 들어, 전자 장치(300)는 웨어러블 장치, PC(personal computer), 데이터 서버 또는 휴대용 전자 장치 등 다양한 장치일 수 있다. 휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 스마트 디바이스(smart device)으로 구현될 수 있다. 이때, 스마트 디바이스는 스마트 워치(smart watch) 또는 스마트 밴드(smart band)로 구현될 수 있다.
전자 장치(300)는 무선 노드(100)로부터 전송된 신호를 수신하여 무선 노드(100)로부터 전송된 신호에 대한 정보를 실내 측위 장치(500)에 전송할 수 있다.
전자 장치(300)는 전자 장치(300)의 센서(310)가 보행자를 센싱하자마자 보행자에 대한 센싱 데이터를 실내 측위 장치(500)에 전송할 수 있다. 이때, 센싱 데이터는 보행자의 가속도, 보행자의 각속도 및 보행자 주변의 자기장 중에서 적어도 하나일 수 있다.
센서(310)는 관성 센서인 IMU(inertial measurement unit)로써, 가속도계(accelerometer; 311), 자이로스코프(gyroscope; 또는 각속도계; 313) 및 자력계(magnetometer; 315)를 포함할 수 있다. 가속도계(311) 및 자력계(315)는 magnetic compass로 구현될 수 있다. 각속도계(313) 및 자력계(315)는 지자기계(digital compass)로 구현될 수 있다.
예를 들어, 가속도계(311)는 보행자를 센싱하여 보행자의 이동에 따른 보행자의 가속도(또는 가속도값)를 감지할 수 있다.
자이로스코프(313)는 보행자를 센싱하여 보행자의 회전에 따른 보행자의 각속도(또는 각속도값)를 감지할 수 있다.
자력계(315)는 보행자 주변을 센싱하여 보행자 주변의 자기장(또는 자기장값, 자기장 강도)을 감지할 수 있다.
즉, 센서(310)는 보행자의 이동에 따라 보행자를 센싱하여 보행자의 가속도 및 보행자의 각속도 중에서 적어도 하나를 감지할 수 있다. 센서(310)는 보행자의 이동에 따라 보행자 주변을 센싱하여 보행자 주변의 자기장을 감지할 수 있다. 이때, 센서(310)는 보행자의 가속도, 보행자의 각속도 및 보행자 주변의 자기장을 동시에 감지하거나 순차적으로 감지할 수 있다.
전자 장치(300)는 실내 측위 장치(500)로부터 전송된 실내 측위 정보(또는 실내 측위 결과)를 시각화할 수 있다.
실내 측위 장치(500)는 보행자의 가속도, 보행자의 각속도, 보행자 주변의 자기장 및 무선 노드(100)로부터 전송된 신호에 기초하여 보행자의 자세를 추정하고, 무선 노드(100)의 위치를 추정할 수 있다.
또한, 실내 측위 장치(500)는 보행자의 자세 및 무선 노드(100)의 위치를 매핑하여 보행자의 자세 및 무선 노드(100)의 위치가 매핑된 실내 측위 정보를 제공할 수 있다.
이에, 실내 측위 장치(500)는 무선 노드(100)의 에너지 및 전자 장치(300)의 에너지가 절약되고, 저전력 센서 네트워크 환경(또는 실내 저전력 무선 신호 환경)에서 실내 측위가 가능하고, 1m 미만의 평균 위치 오차로 실내 측위가 가능할 수 있다.
도 2에 도시된 바와 같이 전자 장치(300)와 실내 측위 장치(500)가 별도로 구현되어 있지만, 이에 한정하는 것은 아니다. 예를 들어, 실내 측위 장치(500)는 전자 장치(300)의 내부에 구현될 수 있다.
도 3은 도 2에 도시된 실내 측위 장치의 개략적인 블록도를 나타낸다.
도 3을 참조하면, 실내 측위 장치(500)는 통신 모듈(a communicating module; 510) 및 컨트롤러(a controller; 530)를 포함한다.
통신 모듈(510)은 전자 장치(300)로부터 전송된 신호를 수신하여 컨트롤러(530)에 전송할 수 있다. 이때, 신호는 센싱 데이터 및 무선 노드로부터 전송된 신호에 대한 정보 중에서 적어도 하나일 수 있다.
통신 모듈(510)는 컨트롤러(530)로부터 전송된 신호를 전자 장치(300)에 전송할 수 있다. 이때, 신호는 보행자에 대한 실내 측위 정보(또는 실내 측위 결과)일 수 있다.
컨트롤러(530)는 실내 측위 장치(500)의 전반적인 동작을 제어할 수 있다. 예를 들어, 컨트롤러(530)는 통신 모듈(510)의 동작을 제어할 수 있다.
컨트롤러(530)는 센싱 데이터에 기반한 보행자의 자세 변화값(또는 모션 변화값), 보행자 주변의 자기장(또는 보행자 주변의 자기장값) 및 무선 노드(100)로부터 전송된 신호(또는 무선 노드(100)로부터 전송된 신호에 대한 신호 세기) 중에서 적어도 하나에 기초하여 보행자에 대응하는 복수의 파티클들의 가중치를 결정할 수 있다.
보행자의 자세 변화값은 보행자의 자세(또는 포즈(pose), 모션(motion))에 대한 변화값으로 과거 보행자의 자세와 현재 보행자의 자세간의 자세 변화값일 수 있다. 보행자의 자세는 보행자의 위치(position) 및 방향(attitude)일 수 있다.
보행자의 자세 변화값은 보행자의 이동에 따른 이동 거리 변화값 및 보행자의 회전에 따른 이동 방향 변화값 중에서 적어도 하나일 수 있다.
보행자의 이동 거리 변화값은 과거 보행자의 위치와 현재 보행자의 위치간의 위치 변화값일 수 있다.
보행자의 이동 방향 변화값은 과거 보행자의 방향에서 현재 보행자의 방향간의 방향 변화값일 수 있다.
보행자의 자세는 수학식 39로 나타낼 수 있다. 이때, 보행자의 자세는 전자 장치(300)의 자세일 수 있다. 전자 장치(300)의 자세는 전자 장치(300)의 위치 및 방향일 수 있다.
Figure 112018132439421-pat00161
Figure 112018132439421-pat00162
는 보행자의 자세를 나타내고,
Figure 112018132439421-pat00163
는 시간 t에서 보행자의 위치를 나타내는 2차원 좌표의 x축 좌표를 나타내고,
Figure 112018132439421-pat00164
는 시간 t에서 보행자의 위치를 나타내는 2차원 좌표의 y축 좌표를 나타내고,
Figure 112018132439421-pat00165
는 시간 t에서 보행자의 방향을 나타낸다.
보행자에 대응하는 복수의 파티클들은 수학식 40으로 나타낼 수 있다.
Figure 112018132439421-pat00166
Figure 112018132439421-pat00167
는 제1 파티클 내지 제M 파티클 중에서 m번째 파티클을 나타내고,
Figure 112018132439421-pat00168
는 m번째 파티클의 자세를 나타내고,
Figure 112018132439421-pat00169
는 m번째 파티클의 가중치를 나타낸다. 이때, 파티클의 자세는 파티클의 위치 및 방향일 수 있다. m은 자연수일 수 있다.
보행자의 자세는 보행자의 모션 모델에 따라 변화될 수 있다. 보행자의 모션 모델은 확률론적 법칙에 따라 정의된 모델일 수 있다.
보행자의 모션 모델은 수학식 41로 나타낼 수 있다.
Figure 112018132439421-pat00170
Figure 112018132439421-pat00171
는 시간 t에서 보행자의 자세를 나타내고,
Figure 112018132439421-pat00172
는 시간 t-1에서 보행자의 자세를 나타내고,
Figure 112018132439421-pat00173
는 시간 t에서 보행자의 모션 입력을 나타낸다. 이때, 보행자의 모션 입력은 보행자의 이동 거리 변화값 및 보행자의 이동 방향 변화값을 나타낸다.
보행자의 모션 입력은 수학식 42로 나타낼 수 있다.
Figure 112018132439421-pat00174
Figure 112018132439421-pat00175
는 보행자의 이동 거리 변화값을 나타내고,
Figure 112018132439421-pat00176
는 보행자의 이동 방향 변화값을 나타낸다.
일 예로, 컨트롤러(530)는 보행자의 이동에 기반한 보행자의 이동 거리 변화값 및 보행자의 이동 방향 변화값에 기초하여 복수의 파티클들의 가중치를 결정(또는 업데이트)할 수 있다.
예를 들어, 컨트롤러(530)는 보행자의 가속도에 기반한 보행자의 이동 거리 변화값에 기초하여 복수의 파티클들의 이동 거리 변화값을 결정할 수 있다.
컨트롤러(530)는 보행자의 각속도에 기반한 보행자의 이동 방향 변화값에 기초하여 복수의 파티클들의 이동 방향 변화값을 결정할 수 있다.
컨트롤러(530)는 복수의 파티클들의 이동 거리 변화값 및 복수의 파티클들의 이동 방향 변화값에 기초하여 복수의 파티클들의 자세를 추정할 수 있다. 이때, 복수의 파티클들의 자세는 복수의 파티클들의 위치 및 방향일 수 있다.
컨트롤러(530)는 복수의 파티클들의 자세에 기초하여 복수의 파티클들의 가중치를 결정할 수 있다.
즉, 컨트롤러(530)는 보행자의 자세 변화값에 기반한 복수의 파티클들의 자세 변화값에 따라 복수의 파티클들의 자세를 추정하여 복수의 파티클들의 가중치를 결정할 수 있다.
복수의 파티클들의 자세 변화값인 복수의 파티클들의 모션 입력은 수학식 43으로 나타낼 수 있다.
Figure 112018132439421-pat00177
Figure 112018132439421-pat00178
은 시간 t에서 m번째 파티클의 모션 입력을 나타내고,
Figure 112018132439421-pat00179
는 시간 t에서 m번째 파티클의 이동 거리 변화값을 나타내고,
Figure 112018132439421-pat00180
는 m번째 파티클의 이동 방향 변화값을 나타낸다.
다른 예로, 컨트롤러(530)는 보행자의 이동 및 보행자 주변의 자기장에 기반한 보행자의 방향 및 복수의 파티클들의 방향에 기초하여 복수의 파티클들의 가중치를 결정할 수 있다.
예를 들어, 컨트롤러(530)는 보행자의 가속도 및 보행자 주변의 자기장에 응답하여 보행자의 방향을 계산할 수 있다.
컨트롤러(530)는 보행자의 각속도에 응답하여 보행자의 이동 방향 변화값에 기반한 복수의 파티클들의 방향을 계산할 수 있다.
컨트롤러(530)는 보행자의 방향 및 복수의 파티클들의 방향에 기초하여 복수의 파티클들의 가중치를 결정할 수 있다.
또 다른 예로, 컨트롤러(530)는 무선 노드(100)로부터 전송된 신호에 기반한 보행자 및 복수의 파티클들과 무선 노드(100)간의 거리에 기초하여 복수의 파티클들의 가중치를 결정(또는 업데이트)할 수 있다. 이때, 무선 노드(100)가 복수의 무선 노드들인 경우, 컨트로러(530)는 복수의 무선 노드들로부터 전송된 신호가 감지된 순서대로 순차적으로 복수의 파티클들의 가중치를 결정할 수 있다.
예를 들어, 컨트롤러(530)는 무선 노드(100)로부터 전송된 신호에 응답하여 무선 노드(100)로부터 전송된 신호의 신호 세기에 기반한 보행자와 무선 노드(100)간이 거리인 제1 거리를 계산할 수 있다.
컨트롤러(530)는 복수의 파티클들의 위치 및 무선 노드(100)의 위치에 기초하여 복수의 파티클들과 무선 노드(100)간의 거리인 제2 거리를 계산할 수 있다.
컨트롤러(530)는 제1 거리 및 제2 거리에 기초하여 복수의 파티클들의 가중치를 결정할 수 있다.
컨트롤러(530)는 복수의 파티클들의 가중치를 표준화(normalize)할 수 있다. 예를 들어, 컨트롤러(530)는 복수의 파티클들의 가중치 합을 1로 표준화할 수 있다.
상술한 바와 같이, 컨트롤러(530)가 보행자의 이동, 보행자의 회전 또는 무선 노드로부터 전송된 신호에 응답하여 복수의 파티클들의 가중치를 개별적으로 결정하지만, 이에 한정하는 것은 아니다.
예를 들어, 컨트롤러(530)는 보행자의 이동, 보행자의 회전 및 무선 노드로부터 전송된 신호에 응답하는 순서대로 복수의 파티클들의 가중치를 결정할 수 있다. 이때, 컨트롤러(530)는 복수의 파티클들의 가중치가 결정될 때마다 복수의 파티클들의 가중치 합을 1로 정규화하여 정규화된 가중치를 지속적으로 반영할 수 있다.
즉, 복수의 파티클들의 가중치는 보행자의 이동 및/또는 보행자의 회전에 따른 보행자의 자세 변화값과 무선 노드로부터 전송된 신호 중에서 적어도 하나에 기반한 가중치일 수 있다.
컨트롤러(530)는 복수의 파티클들의 가중치에 기초하여 보행자의 자세를 추정할 수 있다.
먼저, 컨트롤러(530)는 복수의 파티클들의 가중치에 기초하여 복수의 파티클들을 리샘플링할 수 있다.
예를 들어, 컨트롤러(530)는 복수의 파티클들의 수(M)(또는 기존의 복수의 파티클들의 분포)가 유지되도록 stochastic universal sampling 방식에 기초하여 복수의 파티클들을 1/M의 가중치를 갖는 M개의 파티클로 리샘플링할 수 있다.
구체적으로, 컨트롤러(530)는 복수의 파티클들의 가중치 중에서 가중치가 높은 파티클로부터 많은 파티클을 생성할 수 있다.
컨트롤러(530)는 복수의 파티클들의 가중치 중에서 가중치가 낮은 파티클로부터 적은 파티클을 생성하거나 생성하지 않을 수 있다.
이후에, 컨트롤러(530)는 리샘플링된 복수의 파티클들을 클러스터링하여 보행자의 위치 및 방향을 추정함으로써, 보행자의 자세를 추정할 수 있다.
예를 들어, 컨트롤러(530)는 Expectation-maximization 알고리즘을 통해 리샘플링된 복수의 파티클들을 클러스터링하여 클러스터링된 복수의 파티클들의 가중치에 따라 보행자의 위치를 추정할 수 있다. 이때, 보행자의 위치는 복수의 가우시안 분포의 결합인 Gaussian mixture model에 기반한 위치일 수 있다.
컨트롤러(530)는 무선 노드(100)로부터 전송된 신호에 기초하여 무선 노드(100)의 위치를 추정할 수 있다. 이때, 무선 노드(100)의 위치는 2차원 공간에서 좌표로 추정될 수 있다.
컨트롤러(530)는 무선 모드(100)의 위치 및 보행자의 자세를 매핑하여 무선 노드(100)의 위치 및 보행자의 자세가 매핑된 실내 측위 정보를 전자 장치(300)에 제공할 수 있다.
도 4는 도 2에 도시된 실내 측위 장치의 제1 알고리즘 동작을 설명하기 위한 일 예를 나타낸다.
도 4를 참조하면, 컨트롤러(530)는 보행가의 가속도에 응답하여 제1 알고리즘을 통해 보행자의 이동 거리 변화값에 기반한 복수의 파티클들의 이동 거리 변화값을 결정할 수 있다. 이때, 제1 알고리즘은 보행자의 이동을 검출하여 보행자의 이동 거리 변화값에 기반한 복수의 파티클들의 이동 거리 변화값을 결정하는 알고리즘일 수 있다.
예를 들어, 컨트롤러(500)는 전자 장치(300)로부터 전송된 보행자의 가속도에 응답하여 보행자의 이동을 검출할 수 있다. 이때, 컨트롤러(500)는 보행자의 중력 가속도의 크기 변화에 따라 보행자의 이동(또는 걸음)이 감지되었을 확률이 높은 stepping points(스텝핑 포인트)를 검출할 수 있다.
보행자가 이동하는 경우(또는 보행자가 땅에 걸음을 내딛는 경우), 전자 장치(300)는 가속도계(311)를 통해 보행자의 중력 방향의 가속도(또는 중력 가속도) peak를 감지할 수 있다. 이때, 가속도계(311)는 3축 가속도계(three-axis accelerometer)로써, 보행자의 3축 가속도(
Figure 112018132439421-pat00181
)를 감지할 수 있다. 가속도계(311)는 중력 가속도계일 수 있다.
전자 장치(300)가 안드로이드 스마트 폰인 경우, 전자 장치(300)의 안드로이드 API(application programming interface)는 2차 버터워스 필터(
Figure 112018132439421-pat00182
order butterworth filter)를 이용하여 보행자의 중력 가속도(
Figure 112018132439421-pat00183
)를 실내 측위 장치(500)에 제공(또는 출력)할 수 있다. 이때, 중력 가속도(
Figure 112018132439421-pat00184
)는 3차원 벡터로써, 보행자의 중력 가속도의 크기 및 방향일 수 있다. 중력 가속도(
Figure 112018132439421-pat00185
)는 항체 좌표계(body frame) 기준일 수 있다.
센서(310)의 센서 주기 동안 보행자(또는 전자 장치(300)가 크게 회전하지 않는 경우, 중력을 제외한 보행자의 가속도는 3축 가속도계(또는 3차원 가속도계)의 측정값(또는 감지값;
Figure 112018132439421-pat00186
)에서 보행자의 중력 가속도가 차감된 값일 수 있다.
따라서, 보행자의 중력 가속도 크기(또는 전자 장치(300)의 중력 가속도 크기)는 수학식 44로 나타낼 수 있다.
Figure 112018132439421-pat00187
Figure 112018132439421-pat00188
는 보행자의 중력 가속도 크기일 수 있다.
컨트롤러(530)는 보행자의 중력 가속도에 응답하여 스텝 검출 타이머(
Figure 112018132439421-pat00189
) 및 중력 가속도에 기반한 보행자의 이동을 검출할 수 있다. 이때,
Figure 112018132439421-pat00190
은 보행자의 물리적인 한계로 인해 보행자의 이동에 요구되는 물리적인 시간으로, 보행자의 이동후 다음 이동시 필요한 시간일 수 있다.
Figure 112018132439421-pat00191
은 미리 설정되고, 240 msec일 수 있다.
Figure 112018132439421-pat00192
가 만료되고,
Figure 112018132439421-pat00193
의 최대값(
Figure 112018132439421-pat00194
) 및 최소값(
Figure 112018132439421-pat00195
)의 차(
Figure 112018132439421-pat00196
)가 임계값(threshold) 보다 큰 경우, 컨트롤러(530)는 보행자의 이동을 검출할 수 있다. 이때, 임계값은 보행자의 이동 여부를 판단하기 위해 미리 설정된 기준값으로, 2.9일 수 있다.
보행자의 이동이 검출되는 경우, 컨트롤러(530)는 보행자의 다음 이동을 검출하기 위해
Figure 112018132439421-pat00197
,
Figure 112018132439421-pat00198
Figure 112018132439421-pat00199
을 초기화할 수 있다. 이때,
Figure 112018132439421-pat00200
는 보행자의 과거 이동시점의 중력 가속도 크기와 보행자의 현재 이동시점의 중력 가속도의 크기의 차이(
Figure 112018132439421-pat00201
)일 수 있다.
Figure 112018132439421-pat00202
가 만료되고,
Figure 112018132439421-pat00203
의 최대값(
Figure 112018132439421-pat00204
) 및 최소값(
Figure 112018132439421-pat00205
)의 차(
Figure 112018132439421-pat00206
)가 임계값(threshold) 보다 작은 경우, 컨트롤러(530)는 보행자의 이동을 검출하지 않을 수 있다. 이때,
Figure 112018132439421-pat00207
이 임계값 보다 작은 경우는 보행자(또는 전자 장치(300))의 미세한 떨림이 발생한 경우일 수 있다.
Figure 112018132439421-pat00208
가 만료되기 전에
Figure 112018132439421-pat00209
또는
Figure 112018132439421-pat00210
이 업데이트(또는 감지)되는 경우, 컨트롤러(530)는
Figure 112018132439421-pat00211
또는
Figure 112018132439421-pat00212
을 실내 측위 장치(500)의 데이터 베이스(미도시)에 저장하고,
Figure 112018132439421-pat00213
을 0으로 초기화할 수 있다. 초기화된
Figure 112018132439421-pat00214
가 만료된 후에도 저장된 가속도 보다 크거나 작은 가속도가 감지되지 않는 경우, 저장된 가속도는 보행자의 이동 검출에 사용되는
Figure 112018132439421-pat00215
또는
Figure 112018132439421-pat00216
으로 사용될 수 있다.
Figure 112018132439421-pat00217
가 만료되기 전에
Figure 112018132439421-pat00218
의 최대값이 업데이트(또는 감지)되는 경우, 컨트롤러(530)는
Figure 112018132439421-pat00219
을 실내 측위 장치(500)의 데이터 베이스(미도시)에 저장하고,
Figure 112018132439421-pat00220
을 0으로 초기화할 수 있다.
Figure 112018132439421-pat00221
을 초기화하는 것은 보행자의 한 걸음에 복수개의 step event가 발생하는 것을 방지하기 위한 것일 수 있다.
보행자의 이동이 검출된 경우, 컨트롤러(530)는 보행자의 가속도에 기초하여 보행자의 이동 거리 변화값을 추정할 수 있다.
보행자의 이동 거리 변화값은 수학식 45로 나타낼 수 있다.
Figure 112018132439421-pat00222
Figure 112018132439421-pat00223
은 보행자의 이동 거리 변화값을 나타내고,
Figure 112018132439421-pat00224
는 스케일 팩터(scale factor)를 나타내고,
Figure 112018132439421-pat00225
는 오프셋(offset)을 나타낸다.
컨트롤러(530)는 보행자의 이동 거리 변화값에 대한 가우시안 확률 분포를 계산할 수 있다.
보행자의 이동 거리 변화값에 대한 가우시안 확률 분포는 수학식 46으로 나타낼 수 있다.
Figure 112018132439421-pat00226
Figure 112018132439421-pat00227
은 평균이 m, 표준 편차가
Figure 112018132439421-pat00228
인 정규 분포(normal distribution)를 의미한다. c는 이동 거리 추정 오차를 정규 분포에 반영하기 위한 양의 값을 갖는 상수이다.
컨트롤러(530)는 보행자의 이동 거리 변화값에 대한 가우시안 확률 분포를 샘플링하여 복수의 파티클들의 이동 거리 변화값을 결정할 수 있다.
예를 들어, 컨트롤러(530)는
Figure 112018132439421-pat00229
로부터 각 파티클(
Figure 112018132439421-pat00230
)의 이동 거리 변화값(
Figure 112018132439421-pat00231
)을 샘플링하여, 복수의 파티클들의 이동 거리 변화값(
Figure 112018132439421-pat00232
)을 결정할 수 있다.
도 5는 도 2에 도시된 실내 측위 장치의 제2 알고리즘 동작을 설명하기 위한 일 예를 나타낸다.
도 5를 참조하면, 컨트롤러(530)는 보행자의 각속도에 응답하여 제2 알고리즘을 통해 보행자의 이동 방향 변화값에 기반한 복수의 파티클들의 이동 방향 변화값을 결정할 수 있다. 이때, 제2 알고리즘은 보행자의 회전을 검출하여 보행자의 이동 방향 변화값에 기반한 복수의 파티클들의 이동 방향을 결정하는 알고리즘일 수 있다. 제2 알고리즘은 AHRS(attitude heading reference system) 샘플링 알고리즘일 수 있다.
예를 들어, 컨트롤러(530)는 전자 장치(300)로부터 전송된 보행자의 각속도에 응답하여 쿼터니언(quaternion)에 기반한 무감각 변환을 통해 보행자의 각속도에 기반한 보행자의 이동 방향 변화값을 추정할 수 있다.
보행자의 각속도는 전자 장치(300)의 자이로스코프(313)가 센싱한 센싱 데이터일 수 있다.
보행자의 이동 방향 변화값은 이전 샘플링 시점에서부터 무감각 변환으로부터 추정되는 보행자의 이동 방향의 변화값의 확률적인 추정치일 수 있다.
시간 t에서 보행자의 이동 방향 변화값은 쿼터니언 표현 방식으로
Figure 112018132439421-pat00233
으로 표현될 수 있다.
Figure 112018132439421-pat00234
는 Unscented Transform의
Figure 112018132439421-pat00235
에 해당하고,
Figure 112018132439421-pat00236
는 Unscented Transform의
Figure 112018132439421-pat00237
이다. 이때,
Figure 112018132439421-pat00238
는 Unscented Transform의 상태 벡터인
Figure 112018132439421-pat00239
에 대한 공분산일 수 있다.
컨트롤러(530)는 무감각 변환을 통해 보행자의 이동 방향 변화값의 노이즈에 대한 가우시안 확률 분포를 계산할 수 있다. 이때, 보행자의 이동 방향 변화값의 노이즈에 대한 가우시안 확률 분포는 보행자의 이동 방향 변화값의 노이즈에 대한 예측 평균 및 공분산(또는 공분산 행렬;
Figure 112018132439421-pat00240
)에 기반한 분포일 수 있다.
예를 들어, 컨트롤러(530)는 무감각 변환을 통해 보행자의 이동 방향 변화값에 에러값이 반영된 보행자의 이동 방향 변화값의 노이즈를 계산할 수 있다.
컨트롤러(530)는 보행자의 이동 방향 변화값의 노이즈에 대한 예측 평균 및 공분산(또는 공분산 행렬)을 계산할 수 있다.
컨트롤러(530)는 예측 평균 및 공분산에 대한 가우시안 확률 분포를 계산할 수 있다.
컨트롤러(530)는 예측 평균 및 공분산에 대한 가우시안 확률 분포를 보행자의 이동 방향 변화값의 노이즈에 대한 가우시안 확률 분포로 결정할 수 있다.
컨트롤러(530)는 보행자의 이동 방향 변화값의 노이즈에 대한 가우시안 확률 분포를 샘플링하여 복수의 파티클들의 이동 방향 변화값을 결정할 수 있다.
예를 들어, 컨트롤러(530)는 보행자의 이동 방향 변화값의 노이즈에 대한 가우시안 확률 분포로부터 각 파티클(
Figure 112018132439421-pat00241
)의 이동 방향 변화값(
Figure 112018132439421-pat00242
)을 샘플링하여, 복수의 파티클들의 이동 방향 변화값(
Figure 112018132439421-pat00243
)을 결정할 수 있다.
컨트롤러(530)는 다음 이동 방향 변화값을 결정하기 위해 복수의 파티클들의 이동 방향 변화값을 결정한 후, 파티클 필터의 관점에서
Figure 112018132439421-pat00244
를 identity quaternion으로 초기화하고,
Figure 112018132439421-pat00245
의 노이즈를 표현하기 위한 상태 벡터
Figure 112018132439421-pat00246
에 대한 공분산 행렬인
Figure 112018132439421-pat00247
중에서 방향 로컬 에러와 관련된 값을 0으로 초기화할 수 있다. 즉, 컨트롤러(530)는 Unscented Transform의 관점에서,
Figure 112018132439421-pat00248
를 identity quaternion으로 초기화하고, 상태 벡터
Figure 112018132439421-pat00249
에 대한 공분산 행렬인
Figure 112018132439421-pat00250
중에서 방향 로컬 에러와 관련된 값을 0으로 초기화하는 것이다.
도 6은 도 2에 도시된 실내 측위 장치의 제3 알고리즘 동작을 설명하기 위한 일 예를 나타낸다.
도 6을 참조하면, 컨트롤러(530)는 제3 알고리즘을 통해 보행자의 이동 거리 변화값 및 보행자의 이동 방향 변화값에 기반한 복수의 파티클들의 자세 변화값에 따라 복수의 파티클들의 자세를 추정(또는 업데이트)할 수 있다.
이에, 컨트롤러(530)는 추정된(또는 업데이트된) 복수의 파티클들의 자세에 기초하여 복수의 파티클들의 가중치를 결정할 수 있다.
예를 들어, 컨트롤러(530)는 복수의 파티클들의 이동 방향 변화값에 기초하여 복수의 파티클들의 방향을 결정(또는 업데이트)할 수 있다.
복수의 파티클들의 이동 방향 변화값에 기반한 복수의 파티클들의 방향은 수학식 47로 나타낼 수 있다.
Figure 112018132439421-pat00251
Figure 112018132439421-pat00252
는 업데이트된 m번째 파티클의 방향을 나타내고,
Figure 112018132439421-pat00253
는 업데이트 되기전 m번째 파티클의 방향을 나타낸다.
컨트롤러(530)는 업데이트된 복수의 파티클들의 방향에 기초하여 복수의 파티클들의 오일러 각을 계산할 수 있다.
복수의 파티클들의 오일러 각의 yaw는 수학식 48로 나타낼 수 있다.
Figure 112018132439421-pat00254
Figure 112018132439421-pat00255
는 시간 t에서 m번째 파티클의 yaw를 나타낸다.
컨트롤러(530)는 복수의 파티클들의 이동 거리 변화값 및 복수의 파티클들의 오일러 각에 기초하여 복수의 파티클들의 자세를 추정(또는 업데이트)할 수 있다.
업데이트된 복수의 파티클들의 위치는 수학식 49 및 수학식 50으로 나타낼 수 있다.
Figure 112018132439421-pat00256
Figure 112018132439421-pat00257
는 업데이트된 m번째 파티클의 x축 좌표를 나타내고,
Figure 112018132439421-pat00258
는 업데이트되기전 m번째 파티클의 x축 좌표를 나타낸다.
Figure 112018132439421-pat00259
Figure 112018132439421-pat00260
는 업데이트된 m번째 파티클의 y축 좌표를 나타내고,
Figure 112018132439421-pat00261
는 업데이트되기전 m번째 파티클의 y축 좌표를 나타낸다.
컨트롤러(530)는 복수의 파티클들의 자세에 기초하여 복수의 파티클들의 가중치를 유지하거나 0으로 결정할 수 있다.
업데이트되기 전 복수의 파티클들의 자세와 업데이트된 복수의 파티클들의 자세를 연결하는 선이 벽을 나타내는 선분과 교차하지 않는 경우, 컨트롤러(530)는 복수의 파티클들의 가중치를 유지할 수 있다.
업데이트되기 전 복수의 파티클들의 자세와 업데이트된 복수의 파티클들의 자세를 연결하는 선이 벽을 나타내는 선분과 교차하는 경우, 컨트롤러(530)는 업데이트된 복수의 파티클들의 가중치를 0으로 결정할 수 있다.
보행자의 이동에 기반한 복수의 파티클들의 가중치는 수학식 51로 나타낼 수 있다.
Figure 112018132439421-pat00262
Figure 112018132439421-pat00263
는 업데이트 후 m번째 파티클의 가중치를 나타내고,
Figure 112018132439421-pat00264
는 업데이트 전 m번째 파티클의 가중치를 나타낸다.
컨트롤러(530)는 복수의 파티클들의 가중치에 기초하여 복수의 파티클들을 시각화할 수 있다.
예를 들어, 컨트롤러(530)는 전자 장치(300)를 통해 복수의 파티클들 중에서 가중치가 존재하는 파티클을 시각화할 수 있다. 이때, 가중치가 존재하는 파티클은 전자 장치(300) 시각화 어플의 가상 지도에서 가중치가 존재하는 파티클의 위치에 대응하는 지점에 매칭될 수 있다.
컨트롤러(530)는 제3 알고리즘을 이용하여 복수의 파티클들의 가중치를 결정(또는 업데이트)한 후, 복수의 파티클들의 가중치 합을 1로 정규화할 수 있다.
도 7은 도 2에 도시된 실내 측위 장치의 제4 알고리즘 동작을 설명하기 위한 일 예를 나타낸다.
도 7을 참조하면, 컨트롤러(530)는 보행자의 가속도, 보행자의 각속도 및 보행자 주변의 자기장에 응답하여 제4 알고리즘을 통해 보행자의 방향 및 복수의 파티클들의 방향에 기반한 복수의 파티클들의 가중치를 결정할 수 있다. 이때, 보행자의 방향은 보행자에 대한 오일러 각일 수 있다. 복수의 파티클들의 방향은 복수의 파티클들에 대한 오일러 각일 수 있다.
예를 들어, 컨트롤러(530)는 전자 장치(300)로부터 전송된 보행자의 가속도 및 보행자 주변의 자기장에 응답하여 보행자에 대한 오일러각을 계산할 수 있다. 이때, 보행자의 가속도는 보행자의 중력 가속도일 수 있다. 보행자의 중력 가속도 및 보행자 주변의 자기장은 전자 장치(300)의 마그네틱 컴퍼스(magnetic compass)가 센싱한 센싱 데이터일 수 있다.
먼저, 컨트롤러(530)는 보행자의 중력 가속도에 기초하여 보행자에 대한 오일러 각 중에서 피치 각(pitch angle) 및 롤 각(roll angle)을 계산할 수 있다.
항체 좌표계 기준인 보행자의 중력 가속도(
Figure 112018132439421-pat00265
)는 수학식 52로 나타낼 수 있다.
Figure 112018132439421-pat00266
Figure 112018132439421-pat00267
는 world frame ONED(North, East, Down(NED) coordinates) 기준인 중력 가속도를 나타내고,
Figure 112018132439421-pat00268
는 항체 좌표계 기준인 x축 중력 가속도,
Figure 112018132439421-pat00269
는 항체 좌표계 기준인 y축 중력 가속도,
Figure 112018132439421-pat00270
는 항체 좌표계 기준인 z축 중력 가속도을 나타낸다.
Figure 112018132439421-pat00271
는 NED coordinates에서 항체 좌표계(body frame)으로의 변환 행렬, 예를 들어 중력 가속도에 대한 변환 행렬(transformation matrix)을 나타낸다.
중력 가속도에 대한 변환 행렬은 수학식 53으로 나타낼 수 있다.
Figure 112018132439421-pat00272
보행자에 대한 피치 각은 수학식 54로 나타낼 수 있다.
Figure 112018132439421-pat00273
Figure 112018132439421-pat00274
는 보행자의 피치 각을 나타낸다.
보행자에 대한 롤 각은 수학식 55로 나타낼 수 있다.
Figure 112018132439421-pat00275
Figure 112018132439421-pat00276
는 보행자의 롤 각을 나타낸다.
이후에, 컨트롤러(530)는 보행자 주변의 자기장에 응답하여 보행자에 대한 오일러 각 중에서 요 각(yaw angle)을 계산할 수 있다. 이때, 보행자 주변의 자기장은 보행자 주변의 지구 자기장 강도(geomagnetic field intensity)일 수 있다.
보행자 주변의 자기장은 수학식 56으로 나타낼 수 있다.
Figure 112018132439421-pat00277
Figure 112018132439421-pat00278
는 ONED 프레임 기준인 지구 자기장 강도를 나타내고,
Figure 112018132439421-pat00279
는 ONED 프레임 기준인 x축 지구 자기장 강도를 나타내고,
Figure 112018132439421-pat00280
는 ONED 프레임 기준인 y축 지구 자기장 강도를 나타내고,
Figure 112018132439421-pat00281
는 ONED 프레임 기준인 z축 지구 자기장 강도를 나타낸다.
Figure 112018132439421-pat00282
는 항체 좌표계 기준인 지구 자기장 강도를 나타내고,
Figure 112018132439421-pat00283
는 항체 좌표계 기준인 x축 지구 자기장 강도를 나타내고,
Figure 112018132439421-pat00284
는 항체 좌표계 기준인 y축 지구 자기장 강도를 나타내고,
Figure 112018132439421-pat00285
는 항체 좌표계 기준인 z축 지구 자기장 강도를 나타낸다.
Figure 112018132439421-pat00286
는 항체 좌표계에서 NED coordinates로의 변환 행렬, 예를 들어 자기장에 대한 변환 행렬을 나타낸다.
로컬 자기 편각(local declination angle)을 고려하는 경우, 보행자에 대한 요 각은 수학식 57로 나타낼 수 있다.
Figure 112018132439421-pat00287
Figure 112018132439421-pat00288
는 로컬 자기 편각을 나타낸다.
보행자에 대한 오일러 각은 수학식 58로 나타낼 수 있다.
Figure 112018132439421-pat00289
Figure 112018132439421-pat00290
는 시간 t에서의 보행자에 대한 오일러 각을 나타낸다.
상술한 바와 같이 컨트롤러(530)는 보행자에 대한 오일러 각을 계산하지만, 이에 한정하는 것은 아니다. 예를 들어, 컨트롤러(530)는 전자 장치(300)로부터 보행자의 가속도 및 보행자 주변의 자기장에 기반한 보행자에 대한 오일러 각을 제공받을 수 있다.
컨트롤러(530)가 전자 장치(300)로부터 보행자에 대한 오일러 각을 제공받는 경우, 컨트롤러(530)는 보행자에 대한 오일러 각을 계산하는 과정을 생략할 수 있다.
컨트롤러(530)는 보행자의 가속도(또는 중력 가속도)의 편차, 보행자 주변의 자기장의 편차 및 테일러 시리즈 확장(taylor series expansion)에 기초하여 보행자에 대한 오일러 각의 노이즈에 대한 공분산(또는 공분산 행렬)을 계산할 수 있다. 이때, 보행자에 대한 오일러 각의 노이즈는 보행자의 가속도의 편차와 보행자 주변의 자기장의 편차(deviation)에 의해 획득(또는 계산)될 수 있다.
보행자의 피치 각 및 롤 각의 노이즈는 수학식 59로 나타낼 수 있다.
Figure 112018132439421-pat00291
Figure 112018132439421-pat00292
Figure 112018132439421-pat00293
의 편차를 나타내고,
Figure 112018132439421-pat00294
Figure 112018132439421-pat00295
의 편차를 나타내고,
Figure 112018132439421-pat00296
Figure 112018132439421-pat00297
의 편차를 나타내고,
Figure 112018132439421-pat00298
는 보행자의 피치 각의 노이즈에 대한 통계적인 편차(deviation)를 나타내고,
Figure 112018132439421-pat00299
는 보행자의 롤 각의 노이즈에 대한 통계적인 편차를 나타내고,
Figure 112018132439421-pat00300
는 가속도(예를 들어, 중력 가속도) 센서 편차로부터 [피치, 롤 각]의 편차로의 변환 행렬을 나타낸다.
보행자의 피치 각 및 롤 각의 통계적인 분산(variance)는 수학식 60로 나타낼 수 있다.
Figure 112018132439421-pat00301
Figure 112018132439421-pat00302
는 가속도(예를 들어, 중력 가속도) 센서의 통계적인 공분산 행렬을 의미하고, 센서 데이터(또는 센서 데이터 시트) 또는 실험을 통해 획득할 수 있다.
Figure 112018132439421-pat00303
,
Figure 112018132439421-pat00304
,
Figure 112018132439421-pat00305
는 각각 항체 좌표계 기준 가속도(예를 들어, 중력 가속도) 센서의 x, y, z축의 통계적 분산(variance) 값을 의미한다.
보행자의 피치 각 및 롤 각의 노이즈에 대한 공분산은 수학식 59 및 수학식 60를 통해 수학식 61로 나타낼 수 있다.
Figure 112018132439421-pat00306
수학식 61의
Figure 112018132439421-pat00307
는 보행자의 피치 각 및 롤 각의 노이즈에 대한 공분산을 나타내고,
Figure 112018132439421-pat00308
Figure 112018132439421-pat00309
의 Transpose 행렬을 나타낸다.
보행자의 요 각의 노이즈에 대한 통계적인 편차는 수학식 62로 나타낼 수 있다.
Figure 112018132439421-pat00310
수학식 62의
Figure 112018132439421-pat00311
Figure 112018132439421-pat00312
의 편차를 나타내고,
Figure 112018132439421-pat00313
Figure 112018132439421-pat00314
의 편차를 나타내고,
Figure 112018132439421-pat00315
Figure 112018132439421-pat00316
의 편차를 나타내고,
Figure 112018132439421-pat00317
는 보행자의 요 각의 노이즈에 대한 통계적인 편차를 나타내고,
Figure 112018132439421-pat00318
는 지자계 센서 편차로부터 요각의 편차로의 변환 행렬을 나타낸다.
보행자의 요 각의 통계적인 분산(variance)는 수학식 63로 나타낼 수 있다.
Figure 112018132439421-pat00319
수학식 63의
Figure 112018132439421-pat00320
는 지자계 센서의 통계적인 공분산 행렬을 의미하고, 센서 데이터(또는 센서 데이터 시트) 또는 실험을 통해 획득할 수 있다.
Figure 112018132439421-pat00321
,
Figure 112018132439421-pat00322
,
Figure 112018132439421-pat00323
는 각각 항체 좌표계 기준 지자계 센서의 x, y, z축의 통계적인 분산값을 의미한다.
보행자의 요 각의 노이즈에 대한 분산(또는 공분산)은 수학식 62 및 수학식 63을 통해 수학식 64로 나타낼 수 있다.
Figure 112018132439421-pat00324
수학식 64의
Figure 112018132439421-pat00325
는 보행자의 요 각의 노이즈에 대한 공분산을 나타내고,
Figure 112018132439421-pat00326
Figure 112018132439421-pat00327
행렬의 Transpose 행렬을 나타낸다.
보행자에 대한 오일러 각의 노이즈에 대한 공분산은 수학식 61 및 수학식 64를 통해 수학식 65로 나타낼 수 있다.
Figure 112018132439421-pat00328
수학식 65의
Figure 112018132439421-pat00329
는 보행자에 대한 오일러 각의 노이즈에 대한 공분산을 나타낸다.
컨트롤러(530)는 보행자의 각속도에 응답하여 보행자의 이동 방향 변화값에 기반한 복수의 파티클들에 대한 오일러 각을 계산할 수 있다. 이때, 복수의 파티클들에 대한 오일러 각을 계산하는 과정은 제2 알고리즘 및 제3 알고리즘을 통해 계산될 수 있다.
컨트롤러(530)는 보행자에 대한 오일러 각의 노이즈에 대한 공분산 및 복수의 파티클들의 오일러 각에 기초하여 복수의 파티클들의 가중치를 결정(또는 업데이트)할 수 있다.
예를 들어, 각 가중치를 갖는 파티클은 파티클 자신이 갖고 있는 쿼터니언 상태가 참 값이라고 믿는다. 컨트롤러(530)는 각자 자산의 쿼터니언 상태를 갖는 파티클들을 가중치를 고려하여 모으면 파티클 필터로 추정하는 attitude의 분포를 계산할 수 있다.
즉, 컨트롤러(530)는 보행자에 대한 오일러 각의 가우시안 확률 분포에서 각 파티클들에 대한 오일러 각이 존재할 확률에 기초하여 복수의 파티클들의 가중치를 결정(또는 업데이트)할 수 있다.
보행자의 이동 및 보행자 주변의 자기장에 기반한 복수의 파티클들의 가중치는 수학식 66으로 나타낼 수 있다.
Figure 112018132439421-pat00330
Figure 112018132439421-pat00331
는 m번째 파티클에 대한 오일러 각을 나타내고,
Figure 112018132439421-pat00332
는 보행자에 대한 오일러 각의 가우시안 확률 분포에서 복수의 파티클들에 대한 오일러 각이 존재할 확률을 의미한다.
컨트롤러(530)는 제4 알고리즘을 이용하여 복수의 파티클들의 가중치를 결정(또는 업데이트)한 후, 복수의 파티클들의 가중치 합을 1로 정규화할 수 있다.
도 8은 도 2에 도시된 실내 측위 장치의 제4 알고리즘 동작을 설명하기 위한 다른 예를 나타낸다.
도 8을 참조하면, 실내 환경에서 자력계(magnetometer)에 기반한 보행자의 방향에 대한 추정(또는 heading estimation)은 건물 내부의 자기장 왜곡(magnetic field distortions)으로 인해 정확하지 않을 수 있다.
마그네틱 컴퍼스(magnetic compass)의 출력을 유효성 확인 없이 그대로 사용하는 경우, 보행자의 방향은 에러(error)로 인해 명백한 왜곡이 발생될 수 있다. 이때, 마그네틱 컴퍼스의 출력은 보행자의 가속도(또는 중력 가속도) 및 보행자 주변의 자기장일 수 있다.
이에, 컨트롤러(530)는 제4 알고리즘을 통해 복수의 파티클들의 가중치를 결정하는 과정에서 보행자에 대한 오일러 각 중에서 적어도 하나를 이용할 수 있다.
일 예로, 컨트롤러(530)는 보행자에 대한 오일러 각 중에서 요 각(yaw angle)을 제외하고, 피치 각(pitch angle) 및 롤 각(roll angle)을 이용할 수 있다.
다른 예로, 컨트롤러(530)는 마그네틱 컴퍼스의 출력에 대한 출력 타당성 검증을 진행하여 보행자의 피치 각(pitch angle), 롤 각(roll angle) 및 요 각(yaw angle)을 모두 이용할 수 있다.
예를 들어, 컨트롤러(530)는 마그네틱 컴퍼스(magnetic compass)의 출력과 자이로스코프(gyroscope)의 출력간의 유사도를 이용하여 실내 환경에서의 마그네틱 컴퍼스의 에러 정보를 추정함으로써, 마그네틱 컴퍼스에 대한 출력 타당성 검증을 수행할 수 있다. 이때, 자이로스코프의 출력은 보행자의 각속도일 수 있다.
도 9는 도 2에 도시된 실내 측위 장치의 제5 알고리즘 동작을 설명하기 위한 일 예를 나타내고, 도 10은 도 2에 도시된 실내 측위 장치의 제5 알고리즘 동작을 설명하기 위한 다른 예를 나타낸다.
도 9 및 도 10을 참조하면, 보행자와 무선 노드(100)간의 거리는 로그 거리 경로 손실 모델을 통해 획득될 수 있다. 이때, 로그 거리 경로 손실 모델은 노이즈 팩터(noise factor)가 제로-평균 가우시안 확률 변수(zero-mean Gaussian random variable)로 모델링되는 모델일 수 있다. 노이즈 팩터는 페이딩(fading)으로 인해 발생한 감쇠를 반영할 수 있다.
하지만, 실내 환경에서는 벽 및 사람 등의 장애물로 인해 심한 페이딩이 발생할 수 있다. 또한, 저전력 환경에서 개인 무선 통신망은 페이팅으로 인한 감쇠에 취약하여 예측할 수 없는 장애물로 인해 노이즈 모델(noise model)을 가우시안 분포의 형태로 획득할 수 없다.
실내 환경에서 무선 신호의 수신 세기의 변동에 영향을 주는 주요 요소는 다중 경로 페이딩(multipath fading) 및 쇄도우 페이딩(shadow fading)이기에, 실내 환경에서
Figure 112018132439421-pat00333
는 LOS(line of sight) 환경의 측정치보다 약하게 측정(또는 감지)될 수 있다.
또한, 실내 환경에서 장애물에 의한 감쇠의 크기가 예상될 수 없기에, 페이딩(fading)은 단순히 평균 감쇠 수치와 측정치를 합하여 보상될 수 없다.
따라서, 컨트롤러(530)는 상술한 문제를 고려하여 제5 알고리즘을 통해 복수의 파티클들의 가중치를 결정하고, 무선 노드(100)의 위치를 추정한다.
컨트롤러(530)는 무선 노드(100)로부터 전송된 신호에 응답하여 제5 알고리즘을 통해 보행자 및 복수의 파티클들과 무선 노드(100)간의 거리에 기반한 복수의 파티클들의 가중치를 결정(또는 업데이트)할 수 있다.
예를 들어, 컨트롤러(530)는 복수의 파티클들 각각에 대응하는 무선 노드(100)에 대한 그리드 맵을 생성할 수 있다. 이때, 그리드 맵은 실내 환경에 대응하는 가상 환경에 복수의 그리드들을 형성한 맵일 수 있다. 그리드 맵은 복수의 파티클들 각각의 위치를 기준으로 생성될 수 있다. 복수의 파티클들 각각은 복수의 파티클들 각각에 대응하는 그리드 맵이 형성될 수 있다.
컨트롤러(530)는 무선 노드(100)로부터 전송된 신호의 세기에 기초하여 보행자(또는 전자 장치(100))와 무선 노드(100)간의 거리인 제1 거리를 계산할 수 있다. 제1 거리는 로그 거리 경로 손실 모델(log-distance path loss model)를 이용하여 계산될 수 있다.
로그 거리 경로 손실 모델은 수학식 67로 나타낼 수 있다.
Figure 112018132439421-pat00334
Figure 112018132439421-pat00335
는 송신 신호 강도(transmitted power)를 나타내고,
Figure 112018132439421-pat00336
는 수신 신호 강도(received power)를 나타내고,
Figure 112018132439421-pat00337
는 경로 손실 지수(path loss exponent)를 나타내고,
Figure 112018132439421-pat00338
는 기준 거리(reference distance)를 나타내고,
Figure 112018132439421-pat00339
는 기준 거리 까지의 경로 손실(path loss)를 나타내고,
Figure 112018132439421-pat00340
는 제1 거리를 나타낸다.
Figure 112018132439421-pat00341
는 Fading으로 인해 발생한 감쇠를 반영하는 noise factor이며, zero mean Gaussian random variable로 모델링된다.
제1 거리는 수학식 68로 나타낼 수 있다.
Figure 112018132439421-pat00342
Figure 112018132439421-pat00343
는 송신 및 수신 강도 세기의 측정 오차 범위를 거리 계산에 포함하기 위한 상수를 나타낸다.
컨트롤러(530)는 복수의 파티클들의 위치 및 무선 노드(100)의 위치에 기초하여 복수의 파티클들과 무선 노드(100)간의 거리인 제2 거리를 계산할 수 있다.
무선 노드(100)가 기준 노드인 경우, 컨트롤러(530)는 복수의 파티클들의 좌표 및 기준 노드의 좌표를 이용하여 복수의 파티클들 각각과 기준 노드간의 제2 거리를 계산할 수 있다. 이때, 기준 노드인 무선 노드(100)는 무선 노드(100)에 대한 정보가 실내 측위 장치(500)에 미리 제공될 수 있다. 무선 노드(100)에 대한 정보는 무선 노드(100)의 위치 즉, 무선 노드(100)의 좌표일 수 있다.
기준 노드의 좌표를 이용한 제2 거리는 수학식 69로 나타낼 수 있다.
Figure 112018132439421-pat00344
Figure 112018132439421-pat00345
는 m번째 파티클과 기준 노드간의 제2 거리를 나타내고,
Figure 112018132439421-pat00346
는 m번째 파티클의 x축 좌표를 나타내고,
Figure 112018132439421-pat00347
는 m번째 파티클의 y축 좌표를 나타내고,
Figure 112018132439421-pat00348
는 기준 노드의 x축 좌표를 나타내고,
Figure 112018132439421-pat00349
는 기준 노드의 y축 좌표를 나타낸다.
이에, 컨트롤러(530)는 제1 거리 및 기준 노드에 기반한 제2 거리에 비교하여 복수의 파티클들의 가중치를 유지하거나 매우 낮게 결정(또는 업데이트)할 수 있다.
제1 거리가 제2 거리 이상인 경우, 컨트롤러(530)는 복수의 파티클들의 가중치를 유지할 수 있다.
제1 거리가 제2 거리 미만인 경우, 컨트롤러(530)는 복수의 파티클들의 가중치를 매우 낮게 결정할 수 있다.
무선 노드(100)가 기준 노드인 경우, 업데이트된 복수의 파티클들의 가중치는 수학식 70으로 나타낼 수 있다.
Figure 112018132439421-pat00350
Figure 112018132439421-pat00351
는 제1 거리를 나타낸다.
무선 노드(100)가 기준 노드가 아닌 경우, 컨트롤러(530)는 무선 노드(100)의 관측 여부에 기초하여 복수의 파티클들 각각과 기준 노드가 아닌 무선 노드(100)간의 제2 거리를 계산할 수 있다.
무선 노드(100)가 관측된 기록이 없는 경우, 컨트롤러(530)는 복수의 파티클들의 현재 위치를 기준으로 제1 거리 이내의 그리드에 포함된 셀을 초기화하여 그리드 맵을 업데이트할 수 있다. 이때, 셀은 그리드에 포함된 객체일 수 있다. 셀은 복수의 셀들일 수 있다.
무선 노드(100)가 관측된 기록이 있는 경우, 컨트롤러(530)는 복수의 파티클들의 좌표 및 무선 노드(100)에 대한 그리드 맵에 포함된 셀의 좌표에 기초하여 복수의 파티클들 각각과 기준 노드가 아닌 무선 노드(100)간의 제2 거리를 계산할 수 있다. 이때, 셀이 복수의 셀들인 경우, 셀의 좌표는 복수의 셀들의 중심 좌표일 수 있다.
복수의 셀들의 중심 좌표를 이용한 제2 거리는 수학식 71로 나타낼 수 있다.
Figure 112018132439421-pat00352
Figure 112018132439421-pat00353
는 j번째 무선 노드에 대한 n번째 셀을 나타내고,
Figure 112018132439421-pat00354
는 j번째 무선 노드에 대한 복수의 셀들의 x축 중심 좌표,
Figure 112018132439421-pat00355
는 j번째 무선 노드에 대한 복수의 셀들의 y축 중심 좌표,
Figure 112018132439421-pat00356
는 m번째 파티클과 j번째 기준 노드가 아닌 무선 노드간의 제2 거리를 나타낸다.
컨트롤러(530)는 제1 거리 및 제2 거리를 비교하여 복수의 파티클들 각각에 대응하는 그리드 맵에 포함된 셀을 제거함으로써, 그리드 맵을 업데이트할 수 있다.
예를 들어, 컨트롤러(530)는 그리드 맵에 포함된 셀 중에서 복수의 파티클들의 위치를 기준으로 제1 거리 보다 먼 거리에 위치한 셀을 제거할 수 있다. 이때, 제거되는 셀은 무선 노드(100)의 위치로 추정될 가능성이 낮은 셀일 수 있다.
이에, 컨트롤러(530)는 업데이트된 그리드 맵에 대한 셀 존재 유무에 기초하여 복수의 파티클들의 가중치를 업데이트할 수 있다.
그리드 맵에 셀이 존재하는 경우, 컨트롤러(530)는 복수의 파티클들의 가중치를 유지할 수 있다.
그리드 맵에 셀이 존재하지 않는 경우, 컨트롤러(530)는 복수의 파티클들의 가중치를 매우 낮게 결정할 수 있다.
무선 노드(100)가 기준 노드가 아닌 경우, 업데이트된 복수의 파티클들의 가중치는 수학식 72로 나타낼 수 있다.
Figure 112018132439421-pat00357
컨트롤러(530)는 제5 알고리즘을 이용하여 복수의 파티클들의 가중치를 결정(또는 업데이트)한 후, 복수의 파티클들의 가중치 합을 1로 정규화할 수 있다.
또한, 컨트롤러(530)는 무선 노드(100)로부터 전송된 신호에 응답하여 제1 내지 제5 알고리즘을 통해 무선 노드(100)의 위치를 반복적으로 추정함으로써, 무선 노드(100)의 위치를 결정할 수 있다. 이때, 무선 노드(100)의 추정치가 1차원이고, 무선 노드(100)로부터 전송된 신호가 구의 형태로 전파되기에, 무선 노드(100)의 위치는 단일 추정으로 결정될 수 없다.
예를 들어, 컨트롤러(530)는 제1 내지 제5 알고리즘을 통해 결정된 복수의 파티클들의 가중치와 제5 알고리즘을 통해 업데이트되는 그리드 맵에 기초하여 그리드 맵에 포함된 셀들이 점차 제거되어 최종적으로 수렴되는 셀을 무선 노드(100)의 위치로 결정할 수 있다.
도 10과 같이 보행자의 위치가 추정되는 경우, 컨트롤러(530)는 복수의 파티클들의 위치에 기초하여 제1 거리 및 제2 거리 범위에 있는 셀을 그리드 맵에 추가할 수 있다.
이후에 보행자가 오른쪽으로 이동하다 y축 방향으로 이동하는 경우, 컨트롤러(530)는 제1 내지 제5 알고리즘으로 통해 가중치가 낮아진 파티클들에 대응하는 셀을 제거할 수 있다.
또한, 컨트롤러(530)는 복수의 파티클들의 위치를 기준으로 제1 거리 보다 먼 거리에 위치한 셀을 제거할 수 있다.
상술한 바와 같이 컨트롤러(530)는 제1 내지 제5 알고리즘인 FastSLAM(factored solution to the simultaneous localization and mapping problem)을 통해 보행자의 자세 및 무선 노드(100)의 위치를 추정할 수 있다.
즉, FastSLAM은 보행자의 자세와 무선 노드(100)의 위치에 대한 사후 분포(posterior distribution)를 재귀적으로 추정하는 알고리즘일 수 있다.
도 11a는 일 실시예에 따른 실내 측위 정보를 설명하기 위한 일 예를 나타내고, 도 11b는 일 실시예에 따른 실내 측위 정보를 설명하기 위한 다른 예를 나타내고, 도 11c는 일 실시예에 따른 실내 측위 정보를 설명하기 위한 또 다른 예를 나타낸다.
도 11a 내지 도 11c를 참조하면, 컨트롤러(530)는 보행자의 자세와 6개의 무선 노드(100)의 위치를 매핑한 실내 측위 정보를 전자 장치(100)를 통해 시각화할 수 있다. 이때, 보행자는 보행자의 이동 방향을 변경하지 않고, -y축으로만 이동할 수 있다.
예를 들어, 컨트롤러(530)는 보행자에 대응하는 복수의 파티클들의 중심 위치로 보행자의 자세를 추정하고, 반복적으로 무선 노드(100)의 위치를 추정하여 고정된 위치로 무선 노드(100)의 위치를 추정할 수 있다. 이때, 복수의 파티클들의 가중치는 복수의 파티클들의 중심 위치에 근접할수록 높고 근접하지 않을수록 낮을 수 있다.
컨트롤러(530)는 보행자의 자세 및 무선 노드(100)의 위치가 매핑된 실내 측위 정보를 생성하여 실내 측위 정보를 전자 장치(300)에 제공함으로써, 전자 장치(300)를 통해 실내 측위 정보를 시각화할 수 있다.
도 12는 도 2에 도시된 실내 측위 장치의 동작을 설명하기 위한 순서도를 나타낸다.
도 12를 참조하면, 컨트롤러(530)는 보행자의 가속도에 응답하여 보행자의 이동을 검출할 수 있다(110).
컨트롤러(530)는 보행자의 가속도 및 각속도에 기초하여 보행자의 자세 변화값을 추정할 수 있다(120).
컨트롤러(530)는 보행자의 자세 변화값에 기초하여 보행자에 대응하는 복수의 파티클들의 자세 변화값을 추정할 수 있다(130).
컨트롤러(530)는 복수의 파티클들의 자세 변화값에 기초하여 복수의 파티클들의 자세를 추정(또는 업데이트)하고 복수의 파티클들의 가중치를 업데이트할 수 있다(140).
예를 들어, 컨트롤러(530)는 복수의 파티클들의 자세에 기초하여 복수의 파티클들의 가중치를 업데이트할 수 있다.
컨트롤러(530)는 보행자의 가속도 및 보행자 주변의 자기장에 기반한 보행자의 방향 및 보행자의 각속도에 기반한 복수의 파티클들의 방향에 기초하여 복수의 파티클들의 가중치를 업데이트할 수 있다.
컨트롤러(530)는 보행자 및 복수의 파티클들과 무선 모드(100)간의 거리에 기초하여 복수의 파티클들의 가중치를 업데이트할 수 있다.
컨트롤러(530)는 가중치가 업데이트된 복수의 파티클들을 리샘플링할 수 있다(150).
컨트롤러(530)는 리샘플링된 복수의 파티클들을 클러스터링할 수 있다(160).
컨트롤러(530)는 클러스터링된 복수의 파티클들에 기초하여 보행자의 자세를 추정할 수 있다(170).
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (22)

  1. 보행자의 자세 변화값, 보행자 주변의 자기장 및 무선 노드로부터 전송된 신호 각각에 순차적으로 응답할 때마다 상기 보행자에 대응하는 복수의 파티클들의 가중치를 결정하거, 상기 가중치가 결정될 때마다 상기 가중치를 정규화하는 단계; 및
    정규화된 가중치에 기초하여 상기 보행자의 자세를 추정하는 단계
    를 포함하고,
    상기 자세 변화값은 상기 보행자의 이동에 따른 이동 거리 변화값 및 상기 보행자의 회전에 따른 이동 방향 변화값 중에서 적어도 하나이고,
    상기 보행자의 자세는 상기 보행자의 위치 및 방향인 실내 측위 방법.
  2. 제1항에 있어서,
    상기 정규화하는 단계는,
    상기 보행자의 이동에 기반한 상기 이동 거리 변화값 및 상기 이동 방향 변화값에 기초하여 상기 가중치를 결정하는 단계
    를 포함하는 실내 측위 방법.
  3. 제2항에 있어서,
    상기 이동 거리 변화값 및 상기 이동 방향 변화값에 기초하여 상기 가중치를 결정하는 단계는,
    상기 보행자의 가속도에 기반한 상기 이동 거리 변화값에 기초하여 상기 복수의 파티클들의 이동 거리 변화값을 결정하는 단계;
    상기 보행자의 각속도에 기반한 상기 이동 방향 변화값에 기초하여 상기 복수의 파티클들의 이동 방향 변화값을 결정하는 단계;
    상기 복수의 파티클들의 이동 거리 변화값 및 상기 복수의 파티클들의 이동 방향 변화값에 기초하여 상기 복수의 파티클들의 자세를 추정하는 단계; 및
    추정된 복수의 파티클들의 자세에 기초하여 상기 가중치를 결정하는 단계
    를 포함하는 실내 측위 방법.
  4. 제3항에 있어서,
    상기 복수의 파티클들의 이동 거리 변화값을 결정하는 단계는,
    상기 보행자의 가속도에 응답하여 상기 보행자의 이동을 검출하는 단계;
    상기 보행자의 이동이 검출된 경우, 상기 보행자의 가속도에 기초하여 상기 보행자의 이동 거리 변화값을 추정하는 단계;
    상기 보행자의 이동 거리 변화값에 대한 가우시안 확률 분포를 계산하는 단계; 및
    상기 가우시안 확률 분포를 샘플링하여 상기 복수의 파티클들의 이동 거리 변화값을 결정하는 단계
    를 포함하는 실내 측위 방법.
  5. 제3항에 있어서,
    상기 복수의 파티클들의 이동 방향 변화값을 결정하는 단계는,
    상기 보행자의 각속도에 응답하여 상기 보행자의 이동 방향 변화값을 추정하는 단계;
    상기 보행자의 이동 방향 변화값의 노이즈에 대한 가우시안 확률 분포를 계산하는 단계; 및
    상기 가우시안 확률 분포로부터 상기 복수의 파티클들의 이동 방향 변화값을 샘플링하여 상기 복수의 파티클들의 이동 방향 변화값을 결정하는 단계
    를 포함하는 실내 측위 방법.
  6. 제1항에 있어서,
    상기 정규화하는 단계는,
    상기 보행자의 이동 및 상기 자기장에 기반한 상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정하는 단계
    를 포함하는 실내 측위 방법.
  7. 제6항에 있어서,
    상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정하는 단계는,
    상기 보행자의 가속도 및 상기 자기장에 응답하여 상기 보행자의 방향을 계산하는 단계;
    상기 보행자의 각속도에 응답하여 상기 이동 방향 변화값에 기반한 상기 복수의 파티클들의 방향을 계산하는 단계; 및
    상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정하는 단계
    를 포함하는 실내 측위 방법.
  8. 제1항에 있어서,
    상기 정규화하는 단계는,
    상기 신호에 기반한 상기 보행자 및 상기 복수의 파티클들과 상기 무선 노드간의 거리에 기초하여 상기 가중치를 결정하는 단계
    를 포함하는 실내 측위 방법.
  9. 제8항에 있어서,
    상기 보행자 및 상기 복수의 파티클들과 상기 무선 노드간의 거리에 기초하여 상기 가중치를 결정하는 단계는,
    상기 신호에 응답하여 상기 신호의 신호 세기에 기반한 상기 보행자와 상기 무선 노드간의 거리인 제1 거리를 계산하는 단계;
    상기 복수의 파티클들의 위치 및 상기 무선 노드의 위치에 기초하여 상기 복수의 파티클들과 상기 무선 노드간의 거리인 제2 거리를 계산하는 단계; 및
    상기 제1 거리 및 상기 제2 거리에 기초하여 상기 가중치를 결정하는 단계
    를 포함하는 실내 측위 방법.
  10. 제1항에 있어서,
    상기 추정하는 단계는,
    상기 정규화된 가중치에 기초하여 상기 복수의 파티클들을 리샘플링하는 단계; 및
    리샘플링된 복수의 파티클들을 클러스터링하여 상기 보행자의 위치 및 방향을 추정하는 단계
    를 포함하는 실내 측위 방법.
  11. 제1항에 있어서,
    상기 신호에 기초하여 상기 무선 노드의 위치를 추정하는 단계; 및
    상기 무선 노드의 위치 및 상기 보행자의 자세를 매핑하여 상기 무선 노드의 위치 및 상기 보행자의 자세가 매핑된 실내 측위 정보를 제공하는 단계
    를 더 포함하는 실내 측위 방법.
  12. 통신 모듈; 및
    보행자의 자세 변화값, 보행자 주변의 자기장 및 무선 노드로부터 전송된 신호 각각에 순차적으로 응답할 때마다 상기 보행자에 대응하는 복수의 파티클들의 가중치를 결정하고, 상기 가중치가 결정될 때마다 상기 가중치를 정규화하고, 정규화된 가중치에 기초하여 상기 보행자의 자세를 추정하는 컨트롤러
    를 포함하고,
    상기 자세 변화값은 상기 보행자의 이동에 따른 이동 거리 변화값 및 상기 보행자의 회전에 따른 이동 방향 변화값 중에서 적어도 하나이고,
    상기 보행자의 자세는 상기 보행자의 위치 및 방향인 실내 측위 장치.
  13. 제12항에 있어서,
    상기 컨트롤러는,
    상기 보행자의 이동에 기반한 상기 이동 거리 변화값 및 상기 이동 방향 변화값에 기초하여 상기 가중치를 결정하는 실내 측위 장치.
  14. 제13항에 있어서,
    상기 컨트롤러는,
    상기 보행자의 가속도에 기반한 상기 이동 거리 변화값에 기초하여 상기 복수의 파티클들의 이동 거리 변화값을 결정하고, 상기 보행자의 각속도에 기반한 상기 이동 방향 변화값에 기초하여 상기 복수의 파티클들의 이동 방향 변화값을 결정하고, 상기 복수의 파티클들의 이동 거리 변화값 및 상기 복수의 파티클들의 이동 방향 변화값에 기초하여 상기 복수의 파티클들의 자세를 추정하고, 추정된 복수의 파티클들의 자세에 기초하여 상기 가중치를 결정하는 실내 측위 장치.
  15. 제14항에 있어서,
    상기 컨트롤러는,
    상기 보행자의 가속도에 응답하여 상기 보행자의 이동을 검출하고, 상기 보행자의 이동이 검출된 경우, 상기 보행자의 가속도에 기초하여 상기 보행자의 이동 거리 변화값을 추정하고, 상기 보행자의 이동 거리 변화값에 대한 가우시안 확률 분포를 계산하고, 상기 가우시안 확률 분포를 샘플링하여 상기 복수의 파티클들의 이동 거리 변화값을 결정하는 실내 측위 장치.
  16. 제14항에 있어서,
    상기 컨트롤러는,
    상기 보행자의 각속도에 응답하여 상기 보행자의 이동 방향 변화값을 추정하고, 상기 보행자의 이동 방향 변화값의 노이즈에 대한 가우시안 확률 분포를 계산하고, 상기 가우시안 확률 분포를 샘플링하여 상기 복수의 파티클들의 이동 방향 변화값을 결정하는 실내 측위 장치.
  17. 제12항에 있어서,
    상기 컨트롤러는,
    상기 보행자의 이동 및 상기 자기장에 기반한 상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정하는 실내 측위 장치.
  18. 제17항에 있어서,
    상기 컨트롤러는,
    상기 보행자의 가속도 및 상기 자기장에 응답하여 상기 보행자의 방향을 계산하고, 상기 보행자의 각속도에 응답하여 상기 이동 방향 변화값에 기반한 상기 복수의 파티클들의 방향을 계산하고, 상기 보행자의 방향 및 상기 복수의 파티클들의 방향에 기초하여 상기 가중치를 결정하는 실내 측위 장치.
  19. 제12항에 있어서,
    상기 컨트롤러는,
    상기 보행자 및 상기 복수의 파티클들과 상기 무선 노드간의 거리에 기초하여 상기 가중치를 결정하는 실내 측위 장치.
  20. 제19항에 있어서,
    상기 컨트롤러는,
    상기 신호에 응답하여 상기 신호의 신호 세기에 기반한 상기 보행자와 상기 무선 노드간의 거리인 제1 거리를 계산하고, 상기 복수의 파티클들의 위치 및 상기 무선 노드의 위치에 기초하여 상기 복수의 파티클들과 상기 무선 노드간의 거리인 제2 거리를 계산하고, 상기 제1 거리 및 상기 제2 거리에 기초하여 상기 가중치를 결정하는 실내 측위 장치.
  21. 제12항에 있어서,
    상기 컨트롤러는,
    상기 정규화된 가중치에 기초하여 상기 복수의 파티클들을 리샘플링하고, 리샘플링된 복수의 파티클들을 클러스터링하여 상기 보행자의 위치 및 방향을 추정하는 실내 측위 장치.
  22. 제12항에 있어서,
    상기 컨트롤러는,
    상기 신호에 기초하여 상기 무선 노드의 위치를 추정하고, 상기 무선 노드의 위치 및 상기 보행자의 자세를 매핑하여 상기 무선 노드의 위치 및 상기 보행자의 자세가 매핑된 실내 측위 정보를 제공하는 실내 측위 장치.
KR1020180173977A 2018-12-31 2018-12-31 실내 측위 방법 및 이를 수행하는 장치들 KR102095135B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180173977A KR102095135B1 (ko) 2018-12-31 2018-12-31 실내 측위 방법 및 이를 수행하는 장치들

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180173977A KR102095135B1 (ko) 2018-12-31 2018-12-31 실내 측위 방법 및 이를 수행하는 장치들

Publications (1)

Publication Number Publication Date
KR102095135B1 true KR102095135B1 (ko) 2020-03-30

Family

ID=70003198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180173977A KR102095135B1 (ko) 2018-12-31 2018-12-31 실내 측위 방법 및 이를 수행하는 장치들

Country Status (1)

Country Link
KR (1) KR102095135B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112902828A (zh) * 2021-01-19 2021-06-04 陕西福音假肢有限责任公司 一种角度计算方法
CN113155128A (zh) * 2021-03-31 2021-07-23 西安电子科技大学 基于合作型博弈的uwb和惯性导航的室内行人定位方法
KR102386226B1 (ko) * 2020-11-05 2022-04-14 (주)피플앤드테크놀러지 격자 기반 파티클 필터를 이용한 실내 측위 시스템 및 그 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101161103B1 (ko) * 2010-12-23 2012-06-28 연세대학교 산학협력단 사용자 위치 추적 방법, 이를 이용한 평면도 제작 방법 및 장치
KR101231378B1 (ko) * 2011-08-12 2013-02-15 숭실대학교산학협력단 파티클 필터 기반의 사용자 위치 추적 장치 및 기록매체
KR101264306B1 (ko) * 2012-01-10 2013-05-22 숭실대학교산학협력단 이동 모델 학습을 통한 실내 위치 추적 장치 및 이를 위한 기록매체
KR20160140364A (ko) * 2015-05-27 2016-12-07 삼성전자주식회사 실내 환경에서의 위치 확인 방법 및 전자장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101161103B1 (ko) * 2010-12-23 2012-06-28 연세대학교 산학협력단 사용자 위치 추적 방법, 이를 이용한 평면도 제작 방법 및 장치
KR101231378B1 (ko) * 2011-08-12 2013-02-15 숭실대학교산학협력단 파티클 필터 기반의 사용자 위치 추적 장치 및 기록매체
KR101264306B1 (ko) * 2012-01-10 2013-05-22 숭실대학교산학협력단 이동 모델 학습을 통한 실내 위치 추적 장치 및 이를 위한 기록매체
KR20160140364A (ko) * 2015-05-27 2016-12-07 삼성전자주식회사 실내 환경에서의 위치 확인 방법 및 전자장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102386226B1 (ko) * 2020-11-05 2022-04-14 (주)피플앤드테크놀러지 격자 기반 파티클 필터를 이용한 실내 측위 시스템 및 그 방법
CN112902828A (zh) * 2021-01-19 2021-06-04 陕西福音假肢有限责任公司 一种角度计算方法
CN112902828B (zh) * 2021-01-19 2023-09-08 陕西福音假肢有限责任公司 一种角度计算方法
CN113155128A (zh) * 2021-03-31 2021-07-23 西安电子科技大学 基于合作型博弈的uwb和惯性导航的室内行人定位方法

Similar Documents

Publication Publication Date Title
CN105588566B (zh) 一种基于蓝牙与mems融合的室内定位系统及方法
Pei et al. Optimal heading estimation based multidimensional particle filter for pedestrian indoor positioning
Perttula et al. Distributed indoor positioning system with inertial measurements and map matching
CN110118560B (zh) 一种基于lstm和多传感器融合的室内定位方法
US10677883B2 (en) System and method for automating beacon location map generation using sensor fusion and simultaneous localization and mapping
Ali et al. Tightly coupling fusion of UWB ranging and IMU pedestrian dead reckoning for indoor localization
US20080077326A1 (en) Method and System for Locating and Monitoring First Responders
Seitz et al. A hidden markov model for pedestrian navigation
KR102095135B1 (ko) 실내 측위 방법 및 이를 수행하는 장치들
Ascher et al. Integrity monitoring for UWB/INS tightly coupled pedestrian indoor scenarios
JP7077598B2 (ja) 位置決定及び追跡のための方法、プログラム、及びシステム
CN115112121B (zh) 基于数据与模型结合的多源融合定位方法、系统及终端
CN107289932A (zh) 基于mems传感器和vlc定位融合的单卡尔曼滤波导航装置和方法
Hasan et al. Smart phone based sensor fusion by using Madgwick filter for 3D indoor navigation
Li et al. Research on the UWB/IMU fusion positioning of mobile vehicle based on motion constraints
CN107246872A (zh) 基于mems传感器和vlc定位融合的单粒子滤波导航装置和方法
CN116338570A (zh) 定位方法、装置、计算机设备、存储介质和程序产品
US20180328738A1 (en) Systems and methods for utilizing graph based map information as priors for localization using particle filter
Koroglu et al. Multiple hypothesis testing approach to pedestrian INS with map-matching
CN114185003B (zh) 一种基于多源信号融合的室内定位方法及系统
Pierce Incorporation of a foot-mounted imu for multi-sensor pedestrian navigation
Kessel et al. Automated WLAN calibration with a backtracking particle filter
Alonge et al. Hybrid observer for indoor localization with random time-of-arrival measurments
Wang et al. Testbed development for a novel approach towards high accuracy indoor localization with smartphones
Michel On mobile augmented reality applications based on geolocation

Legal Events

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