この計画では、全体作業を P1 / P2 / P3 に分け、実験と実装を並行しながら進められるようにします。
進捗管理の単位はマイルストーンではなく、各プロジェクトごとの Issue です。
| プロジェクト |
名称 |
目的 |
完了条件 |
| P1 |
PC でのデータ読み取りと位置確認 |
PC で Drogger の位置情報を取得し、正しい位置か検証する |
生データを保存でき、座標系をそろえた既知地点で 3 回測定して誤差傾向を説明できる |
| P2 |
地図表示プロトタイプ |
受信した位置を地図上に表示する |
無料で使える地図ソース上で現在地が更新され、接続状態とログを確認できる |
| P3 |
Android タブレット対応 |
Android タブレットで使える形にする |
タブレット上で主要機能を 30 分以上連続利用でき、現地手順が整理されている |
対象範囲:
- 機材と PC の接続方法を確認する
- 位置データがどの形式で届くか確認する
- 受信データを確認する簡易ツールや手順を作る
- 生データを保存する方針を決める
- 取得位置と実際の位置を同じ座標系で比較する
作業項目:
- 接続方法と OS 上での認識状態を確認する
- 生データを採取する
- 保存するログ形式と保存場所を決める
- 位置に関係する項目と座標系を特定する
- 確認用の最小ツールを作る
- 既知地点で 3 回以上テストする
- 結果と未解決事項を記録する
成果物:
完了条件:
- DG-PR01RWS / VRSC から生データを再現可能な手順で取得できる
- 生データを後で再解析できる形で保存できる
- 比較対象の座標系を明記したうえで、既知地点で 3 回の測定結果を残している
- 誤差の傾向と、次段階に進める判断理由を記録している
リスク:
- 接続方式やプロトコルの詳細が不明
- 接続が不安定な可能性がある
- 位置データに補正や変換が必要な可能性がある
- 測位機材と比較対象で座標系が異なり、見かけ上のずれが出る可能性がある
- 生データの保存形式を早期に決めないと、後工程で再検証できず手戻りになる可能性がある
対象範囲:
- 確認済みの位置データを地図表示に変換する
- 現在位置を簡単な画面に表示する
- 更新頻度や見やすさを確認する
- オフライン利用の要否を確認する
- 有料ソフトに依存しない地図ソースを前提にする
作業項目:
- もっとも簡単に始められる地図対応アプリ構成を選ぶ
- 解析済みの位置データをアプリへ渡す
- 採用する地図ソースと利用条件を決める
- 地図上にマーカーを表示する
- 新しいデータ受信時に表示を更新する
- 状態表示やエラー表示を最低限追加する
- 必要ならオフライン時の挙動やキャッシュ方針を決める
成果物:
完了条件:
- 無料で継続利用できる地図ソース上で現在地を表示できる
- 新しい位置データを受け取ったときに画面上の表示が更新される
- 接続状態またはエラー状態を画面かログで確認できる
- オフライン利用が必要かどうかを判断し、必要なら対応方針を、不要なら不要とした理由を記録している
リスク:
- 地図ライブラリの選定が後の Android 対応に影響する
- リアルタイム更新で解析やタイミングの問題が見つかる可能性がある
- 地図サービスの利用条件や料金体系が目的に合わない可能性がある
- 現地が圏外の場合、オンライン前提の実装では使えない可能性がある
実績と計画からの変更:
- 一般地図だけでは圃場を判読しにくかったため、国土地理院の航空写真と農林水産省の筆ポリゴンoverlayを追加した
- 「オフライン利用の要否を判断する」予定から、山間部・圏外での利用に必要と判断し、対象地点周辺のオフライン地図・航空写真まで実装した
- 入力は解析済みデータの受け渡しだけでなく、保存済みNMEAログ再生とDG-PRO1RWS実機のライブTCP受信の両方へ対応した
- 状態表示は接続・エラーだけでなく、切断、再接続、stale、EOF、無効Fix、checksum不整合を確認できる形に拡張した
- MapLibre GL JS関連ライブラリをローカルに同梱し、地図データを含めてインターネット接続なしで起動できる構成を追加した
- 対象地域を四万十町口神ノ川周辺に具体化し、筆ポリゴンとオフラインデータはブラウザへ都道府県全体を読み込ませず、対象地点周辺だけを抽出する方針とした
- 詳細な判断理由、完了条件との対応、残る制約はdocs/decisions/p2-map-prototype.mdに記録する
¶ P3. Android タブレット対応
対象範囲:
- 試作を Android でも動かせる形にする
- 現地で使いやすい構成に近づける
- 現地で必要な運用手順を整理する
作業項目:
- 既存試作を流用するか、Android 向けに作り直すか判断する
- タブレットでのデータ受信方法を確認する
- タブレット対応の試作を作る
- 実環境に近い接続・連続利用条件で技術実証する。屋外視認性・操作性は本番画面の設計・実装後に製品受入試験として確認する
- 接続、再接続、終了手順を整理する
- 普段使い兼用の標準版(standard)を実装する。トラクター専用端末版(dedicated)の配布・起動方式は、専用端末の調達・運用計画が具体化してから別途実装する
成果物:
- Android 対応試作
- 設定手順
- タブレットでの確認結果
- 現地向けの操作手順
- 標準版(standard)のAPK
完了条件:
- Android タブレット上で現在地表示、更新、再接続の主要機能が動く
- 実機で数時間規模を含む連続利用をして重大な停止や操作不能がない
- 屋外視認性・操作性の確認項目と、本番画面実装後に再開する条件を残している
- 現地で使うための接続手順、起動手順、復旧手順を整理している
リスク:
- Android 側の接続制約
- PC とタブレットで挙動が異なる可能性
- 屋外利用向けに UI 調整が必要になる可能性
- AndroidのバックグラウンドActivity起動制限により、通常アプリの
BOOT_COMPLETEDだけでは画面を前面表示できない
実績と計画からの変更:
- 標準版(standard)/専用端末版(dedicated)のProduct Flavor方針はP3 Android配布・運用モードの方針で決定したが、対象実機に個人アカウントが登録済みでDevice Owner化には全アカウント削除またはfactory resetが必要と判明したため、専用端末化(dedicated Flavor・Device Owner・カスタムHome・Lock Task)は保留した。詳細はP3 Device Owner・カスタムHome最小検証 保留判断を参照。P3の完了条件は standard運用のみで満たすものとし、専用端末化は再開条件が満たされた時点で改めて別trackとして着手する
- 現段階は移動経路・作業状態等を含む本番画面実装前の技術実証である。仮UIの屋外確認を行っても本番画面実装後に再試験が必要で、PC/USB切断により診断ログも失うため、屋外視認性・操作性は本番画面実装後の製品受入試験へ延期した。P3ではチェックリストと再開条件を成果物とする
追いやすくするため、各プロジェクトでは次の形で管理します。
- 専用の Issue を 1 件持つ
- 現在の状況を短くまとめる
- 実験内容を記録する
- 次に試すことを明確にする
推奨する状態の流れ:
- 予定
- 調査中
- 試作中
- 確認済み
- 改善中または拡張中
まずは P1 を小さく始めます。
- 機材を PC に接続する
- 生データを受信する
- 位置が正しそうか確認する