본문 바로가기
C++ 200제/코딩 IT 정보

삼각 측량법 + 실내 측위로 현재 위치 계산 공식 (소스)

by vicddory 2018. 5. 21.

삼각 측량법 + 실내 측위로 현재 위치 계산 공식 (소스)


삼각 측량법 1. 3개 이상의 고정 노드들의 좌표와 현재 위치에서의 노드 간의 거리를 이용하여 MMSE(Minimum Mean Square Error)란 실내 측위 방법으로 현재 위치를 계산(3차원의 경우 최소한 4개의 고정노드가 필요).


삼각 측량법 2. MMSE(Minimum Mean Square Error) 방식이란 최소평균제곱 오차 추정법으로 미지의 변수에 대해 최적의 추정치를 얻기 위해 사용되는 방법의 하나며 추정오차 최소화를 정량적으로 판단하는 기준으로 수학적으로 취급하기 쉽고 계산이 쉬운 장점이 있음(즉, MMSE추정 방법은 MSE(평균제곱오차)를 최소화시키자는 실내 측위).


삼각 측량법 3. MMSE 방식으로 현재 위치를 추정하는 Matrix 해답은 다음과 같이 구하며,


삼각측량 1[현재 위치 공식]


삼각측량 2[현재 위치 공식]


삼각측량 3[현재 위치 공식]


MMSE방식에 의해 Matrix 식으로 변환된 식은 아래와 같다.


참조 1

AT는 A의 전치행렬을 뜻하며 T는 transpose의 약자이며 행렬 A가 m X n 행렬이고 bji = aij 일 때, bji를 (j, i)성분으로하는 n X m행렬 B = (bji) 를 A의 전치 행렬이라고 한다.


참조 2

A-1로 표시하는 행렬은 A의 역행렬을 뜻하며 A를 n차 정방행렬, E를 같은 차수의 단위행렬이라 할 때 AB = BA = E 가 되는 행렬 B가 존재하면 B를 A의 역행렬이라 한다.


위와 같은 전제 사항을 기반으로 테스트 소스를 작성한다.


삼각 측량법 4. 실제 실내 측위 테스트 소스 적용


4.1

4개의 고정 노드 좌표를 배열로 지정


임의의 고정 AP 4개 좌표[삼각 측량법] 임의의 고정 AP 4개 좌표


4.2

A 행렬 계산


A행렬[삼각 측량법] A 행렬


4.3

각 노드와 현재 위치까지의 거리를 배열에 저장


- 실내 측위로 현재 위치 계산하는 distance 행렬


1
2
3
4
5
6
double [][] distance = {
    {distance1},
    {distance2},
    {distance3},
    {distance4}
};
cs


4.4

b 행렬 계산


B 행렬[삼각 측량법] B 행렬


삼각 측량법 + 실내 측위로 현재 위치 계산 공식 (소스)

댓글