----------------------------------------------------------------------
　　　　Interface2026年6月号
　　　　特集　GPSデータ・プログラミング
　　　　3部5章　外れ値の影響を抑える！ロバストな位置推定アルゴリズムを試す
　　　　ダウンロード・データ
        IF2606T/3b5s
　　　　Interface編集部
　　　　CQ出版(株)
　　　　公開：2026年4月24日
----------------------------------------------------------------------

====================================
ダウンロード・サービスご利用者各位
====================================
　毎度，小誌ご愛読を賜り，誠にありがとうございます．
　このたびはダウンロード・サービスをご利用いただき，誠にありがとうございます．
　筆者のご厚意により，本記事の関連データをこのアーカイブに収録しました．

================
概要
================
　このアーカイブには，表題の記事の中で作成したプログラム・ファイルやデータ・ファイルが収録されています．詳しくは該当記事を参照してください．
　アーカイブは，ZIP形式によって圧縮されています．

================
動作確認
================
　プログラムは筆者の元で動作を確認済みです．

=================
アーカイブの内容
=================
eagleye_analysis
…Eagleye に関連する以下の機能を提供するツールです。

●機能
- **推定結果の可視化**：Eagleye から出力される `log.csv` を入力とし、
  推定結果（位置・速度・方位角など）を可視化  (補正の有無による挙動の違いを時系列や軌跡として確認できます。)
- **最適化アルゴリズムのシミュレーション**：Eagleye 内部で使用されている最適化アルゴリズムをシミュレーション

●Eagleye の入手方法
Eagleye は以下のリポジトリで取得できます：
[Eagleye](https://github.com/MapIV/eagleye)

```bash
git clone https://github.com/MapIV/eagleye.git -b main-ros2
```

●ディレクトリ構造
eagleye_analysis/
├── data/
│   └── eagleye_log_sample.csv       # サンプルログ
├── plot_out/                        # 出力ディレクトリ
├── src/
│   ├── run_optimizer.py             # 最適化実行スクリプト
│   ├── run_visualizer.py            # 可視化実行スクリプト
│   ├── optimizer/
│   │   ├── estimator.py             # パラメータ推定
│   │   ├── integration.py           # 統合処理
│   │   └── simulator.py             # シミュレーション
│   └── visualizer/
│       ├── coords.py                # 座標変換（ECEF / ENU / LLA）
│       ├── extractors.py            # CSV から各種データを抽出
│       ├── integration.py           # ヨー角積分・デッドレコニング計算
│       ├── math_utils.py            # 数学的ユーティリティ
│       └── plotters.py              # 描画処理
├── README.md
├── pyproject.toml
└── uv.lock
readme.txt

●使い方
### Eagleye推定結果の可視化
```bash
python3 src/run_visualizer.py data/eagleye_log_sample.csv
```
実行すると，デフォルトでは`plot_out/`ディレクトリに以下の図が出力されます．
- 速度の時系列
- ヨー角積分結果
- 方位角の時系列
- デッドレコニング軌跡
- 位置（ENU / LLA）

#### 主なオプション
```bash
python3 src/run_visualizer.py input.csv \
  --outdir results \
  --position both \
  --show
```
| オプション       | 説明                                    |
| -------------- | -------------------------------------- |
| `--outdir`     | 出力ディレクトリ（デフォルト: `plot_out`）  |
| `--position`   | 位置表示形式（`enu`, `lla`, `both`）      |
| `-s`, `--show` | 図を画面に表示 （`plt.show()` を実行）     |


### Eagleyeの最適化アルゴリズムシミュレーション
```bash
python3 src/run_optimizer.py
```

![最適化アルゴリズムのシミュレーション](plot_out/optimize_robust_animation.gif)


●Note
### 入力 CSV について
- 入力するCSVは，Eagleyeから出力されるlogファイルを想定しています．
- Eagleyeの推定パラメータの拡張は`src/visualizer/extractors.py`を参照してください．

### uv について
- 本ツールは Python のパッケージ管理ツール **uv** を用いて構成されています．
- 付録の `uv.lock` は動作確認済みの依存関係を固定するためのものです．
- uv を使用しない場合でも，通常の Python 環境で実行可能です．

============
免責
============
(1)プログラムやデータの使用により，使用者に損失が生じたとしても，著作権者とＣＱ出版(株)は，その責任を負いません．
(2)プログラムやデータにバグや欠陥があったとしても，著作権者とＣＱ出版(株)は，修正や改良の義務を負いません．

===========
著作権
===========
　収録したプログラム，データおよびドキュメントなどの著作権は，各著作権者（すなわち筆者）にあります．
　Copyright (C) 2026　Aoki Takanose