- radio-map을 만들때, 그리고 실시간 위치측정을 할때 모두 동일한 방식으로 rpi를 놓아야 함. 예를 들어, 동일한 방식으로 바닥에 놓거나, 또는 동일한 방식으로 머리 위에 들고 있거나 등등..
- 실시간 위치측정 반응속도를 빠르게 하려면, 2-server-main.py에서 95번 라인에서 myQueue를 생성할 때, 인자를 더 작은 값으로 넘겨주면, 위치측정 반응속도가 빨라짐 (단, 결과의 안정성은 일부 나빠질 수 있음)
- GUI 관련 부분은 구현 안했음
- 가장 가까운 cell-block을 1개만 찾도록 하고 서버 프로그램 2번 구동하면, 어느 셀이 가까운지, 해당 셀의 (y,x) 좌표를 출력해줌!!
- 주의: 클라이언트 1번 프로그램에서는 x y 와 같이 입력을 주지만, 서버 2번 프로그램이 출력할때는 (y,x) 형태로 출력함(x와 y의 자리가 바뀌었다는 점을 주의하기)
- 가장 가까운 cell-block 찾는건 테스트 했는데, 가장 가까운 셀블록을 여러개 찾는건 테스트 못했음
- 클라이언트 ID 입력하는 부분도 없음
- 테스트 환경
- server : desktop pc
- client : RPi v4b
- 공학관 1층 (서측, west)
- map/engr-left 이미지로 테스트 하기 (공학관 1층 서측)
- 지금은 fingerprint 인데, KNN 으로 수정하기 (리나, 현화)
- rpi/3-client-main.py 실행할 때, client id를 입력받도록 수정? (고민 중)
- 먼저할일...
- common.py 파일을 열어서 서버 ip, 서버 port 번호, 폴더 등등을 설정한다
- rpi 폴더에서 measure-1 폴더 내부의 모든 파일을 삭제하고, measure-realtime-1 폴더 내부의 모든 파일을 삭제
- server 폴더에서 measure-1 폴더 내부의 모든 파일을 삭제하고, measure-outcome-1 폴더 내부의 모든 파일을 삭제
- RPi : ./python3 1-client-setup.py x y n 을 각 cell-block에서 실행
- (x,y) cell-block의 인덱스 (물리적인 실제 좌표 아님)
- n = 10으로 하니까 프로그램이 안정적으로 동작하는 것 같음
- 동일한 cell-block에서 몇번 반복해서 측정을 할지 (기본값 = 5)
- measure-1 이라는 폴더가 생성되어 있어야 하고, 폴더안에는 아무런 파일이 없어야 함
- 프로그램 구동 후, measure-1 폴더 내에 많은 파일이 생성되어 있을 것임
- Server : ./python 1-receive-setup.py 실행
- RPi 클라이언트가 보내주는 radio measurement 파일 수신하기
- USE_INTERNET_CONN=True 이면 실제로 클라이언트로 부터 전송 받은 데이터로 radio map 만들고
- False 이면, 서버 로컬에 저장된 데이터를 이용해서 radio map 만든다
- 수신한 파일을 parsing 해서 radio-map 생성하기
- 생성한 radio-map을 파일로 dump 하기
- 서버쪽에는 measure-outcome-1 이라는 폴더가 만들어져 있어야 함. 클라이언트로 부터 받은 measure-1 파일을 이용해서 radio-map이랑 ap-list를 만들고, 그 결과를 measure-outcome-1 폴더에 저장함
- RPi : ./python3 2-upload-setup.py 실행
- 서버쪽 1번 프로그램이 먼저 구동하고 있는 상태에서 구동해야 함
- 클라이언트 2번 파일이, measure-1 폴더 내의 파일을 서버에게 전달 해 주는 코드임
- Server : ./python 2-server-main.py 실행 : 실시간 위치 추적 및 디스플레이
- 실시간 위치 추적 결과를 (y,x) 형태로 출력함. 주의 : y 좌표 면저 출력하고, 다음으로 x 좌표를 출력함
- gui에서 출력하려면 2-server-main-gui.py 실행
- RPi : ./python3 3-client-main.py 실행: 실시간 위치추적
- 서버 2번 코드를 먼저 실행하고, 다음으로 이 코드를 실행해야 함
- 클라이언트 3번 프로그램은, 실시간으로 rss 값을 측정하고, 그 결과를 서버 2번 프로그램으로 보내줌
- AP의 위치를 찾아보자!
- 하나의 AP를 고른 다음에, 모든 cell-block에서 해당 AP의 rss 값을 heatmap으로 그려보면, 해당 AP가 어디에 있는지를 대략적으로 알 수 있다.
- ap-locations 폴더로 ㄱㄱ!