###### tags: `AIM`
# シングルアンテナで位置推定できるかチャレンジ
## 前提
- 図のように、180cm × 100cm の範囲において、20cm四方のグリッドにおける各交点をナンバリング
- 各点におけるRSSIおよび位相値を取得し、機械学習を用いて位置推定が可能かどうかを確認したい
- アンテナ角度はとりあえず30度
- 補正処理は一切せず、生データのRSSIと位相値を学習に使用する
- それぞれの位置で1万のサンプルを取得し、8:2の割合で学習とテストデータに分ける。

## 実際どうなの?(6/21更新)
- 01 ~ 10までのデータのみで突っ込んでみたところ、98.5 ~ 98.8%をうろつく精度結果となった。
→ つまり、横方向の区別は割とできてる。
- 08 と 10 が似たり寄ったりなのか、このふたつだけ分類ミスが多くみられた。(この2箇所は再度計測してみる)
→ どこまでを追跡範囲にするかにもよるが、移動方向の識別には十分使えるレベルかも?

- 横軸が推定ラベル、縦軸が正解ラベル

## 実際どうなの??(6/27更新)
- 01 ~ 50(欠番は電波が届かなかった場所)の学習したところ、99.3%前後を推移している。
- 欠番:29,38,47,48

- 詳細を見ると、割と綺麗に分類できているが、8と10のスコアが低い傾向にあるので、ここはデータ取り直して、再度確認する。



## タグの角度を変化させるとどうなるの問題
### 理想環境と実運用するために必要なこと
- いままではタグの角度が0度という理想環境での値だった
- 実際の現場では、タグの角度はさまざまである
→角度を変えた場合に、どれくらい精度が低下するのかを確認したい
### 測定条件
- 今回はグリッド1箇所につき8角度 (0, 45, 90, 135, 180, 225, 270, 315)のデータを取得
- データ取りが大変すぎるので、グリッドNumを1, 2, 13, 14, 25, 26, 37, 38, 49, 50に絞ります。
### で、実際どうだったの
- 角度変えても、ある程度は取れるが、やや精度は落ちる
→95%前後の精度でいける

- 詳しく見てみると、45度および225度の時に著しく精度が低下
→これは、アンテナ角度とタグの角度の相対差が90度に近くなるため、うまく電力が供給できてなかったり、バックスキャッターが取れなかったりすることで、値にばらつきが生じているからだと考えられる。
- タグ角度45のとき

- タグ角度225のとき

- タグ角度90の時

- タグ角度270の時

## 読めない角度があるって現場では致命的でしょ
### 解決手段
- アンテナを2枚使用してみたらいけるのでは? ということで、反対側にアンテナを設置した時のデータも取ってみる。
- 環境としては図の通り。アンテナ1を追加することで、アンテナ2の死角(相対角度45度)をカバーできる(はず)。
- 既にアンテナ2のデータは取得済みなので、今回は追加でアンテナ1のデータのみを取得し、過去のものと合わせることで、学習データを生成することにする。

### 学習データのパターン
#### パターン1
- (RSSI, Phase, Antenna_Port)
- RSSIと位相の値をポートごとに区別するのではなく、アンテナポート番号そのものを特徴量として扱う。
- ファイルの生成とかは楽だけど、普通に精度低いでしょうねぇ、と予想。普通に考えて、特徴量としてアンテナポート番号を使うのって違うよなぁっていうことは承知だけど、どれくらい精度が出るのか試してみたい好奇心。
#### パターン2
- (RSSI_1, RSSI_2, Phase_1, Phase_2)
- RSSIと位相を、取得したアンテナごとに区別し、それぞれを特徴量として扱う。
- 普通に考えて、こっちの方法ベターでしょう。それなりに精度が出てくれると期待してる。期待ですけども。
### 結果
#### パターン1
- 精度は97%前後で、そこまで悪くはないものの、誤分類数は割と多い。
- 予想通り、アンテナポートを特徴量として使った場合、重要度は大きくなく、RSSIと位相に依存するため、精度がそこまで出なかったと考察。




#### パターン2
- 精度は99.8%前後となった。かなりいい精度で、グリッド数が増えても、97%くらいはキープしてくれそうな予感。
- 後分類も極端に少なく、アンテナ2枚であれば、1枚の時の死角もカバーできることがわかった。
- あとは、全箇所で測定した場合にどれくらいの精度になるのかどうかって話を確かめる必要あり。




## 今後やること
~~横方向についてはそこそこの精度で推定可能なことがわかったので、縦方向での推定がどれだけ精度出るのかを確認したい~~
~~- 8, 10のデータ取り直し~~
~~タグの角度が変化した場合どうなるのか確認~~
- 測定の自動化システムをさっさと作る
→サーボモーターを使用してx軸y軸方向の移動、タグの角度変更まで行う(計3つのモーターを利用する)
- 今回の機械学習モデルの汎用性はどうなの問題(どういうデータが必要で、その取得コストは?? 環境変えて測定した場合でも、理想環境データによるモデルが使えるの??)
→夏休み期間に、大講義室等で測定する
- 今回は静止と移動を区別するのはなしの方向。
- 実際に移動する時は時系列データになるので、時系列データを一定範囲で分割したりして平均値にするなどしつつ、学習器に突っ込む必要がありそう。(いつも江原さんが言ってるどれくらいのウィンドウサイズでデータを分割して解析に回すのかっていう話な気がする。)