どうも、おばんです。スージーです。
以前の記事で紹介した、オフロードバイク管理アプリ「Dirt Bike Log」。
(現状、Android版のみ)
整備記録、セッティング、レース結果などを一か所にまとめることを目的に開発してきましたが、今回は大きなアップデートを行います。
走行中のGPSデータを記録し、その結果をコース、バイク、セッティング、さらには他のライダーの記録と結び付けられるようになりました!
まだ実機テストや調整が必要な部分もありますが、今回追加する機能と今後の展望をまとめます。
セッション記録機能を追加
バイクの走行を「セッション」として記録します。

セッションを開始すると、GPS地点、経過時間、走行距離、速度、LAP、区間タイム、仮想ゲートの通過などを保存します。画面を消したり、別のアプリを表示したりしても、記録中であることを通知しながら計測を継続します。
この機能はデバッグ版で色々試してましたが、通常のリリース版でも使えるようにしました!
また、記録終了後に、その日使ったセッティングを紐付けられます。
現地で細かい情報を全部入力するのは面倒です。まず走行を記録し、落ち着いてから「このときはリア0.3、サスはこの設定」と関連付ける流れにしています。
周回レースとオンタイムエンデューロに対応
ここがこだわりポイントです。
記録方式は、大きく「周回レース」と「オンタイム」に分けました。

周回レースでは、方向を持ったスタート/フィニッシュ線を通過するとLAPを記録します。コース内に固定区間を設定すれば、LAP全体だけでなく「この登りで何秒かかったか」「後半でどれだけ失速したか」といった確認もできます。
そして力を入れたのが、オンタイムエンデューロへの対応です!
Time Check、Test START、Test FINISH、Service IN、Parc Fermé INなどの仮想ゲートを順番に設定し、通過時刻や区間を記録します。

当日のタイム表も作成でき、手入力だけでなく画像読み取りによる入力補助も用意しています。AIがいい感じに自分のタイム設定を判断して入力してくれるようにする予定。
作成したタイム表はスマートウォッチへ送信できます。スマートウォッチ側では次の目標時刻や残り時間を確認し、設定したタイミングで振動通知を受けられます。これで早着ミスがなくなるね!
スマートウォッチ表示例レース中にスマホを取り出して凝視するのは無理だしルール的にNGなので、時計はかなり相性が良いはず。まずは次戦のイオックスアローザで試します。
コース設定をみんなで共有
毎回コースを一から設定するのは面倒です。
そこでFULL版では、自分が作成したコース設定をサーバーへアップロードし、他のユーザーと共有できるようにしました。

公開コースは周回レース用かオンタイム用かを区別して保存します。
「近くのコース設定を検索」から現在地周辺のコースを探し、内容を確認して端末へダウンロードできます。セッション開始画面から検索した場合は、選択中のレース形式に合うコースだけを表示します。
逆にセッション履歴側から検索した場合は、ダウンロードしたコースが周回かオンタイムかをアプリが判定し、そのコースを選択した状態でセッション開始画面へ進みます。
セッション共有、ニックネーム、ランキング
コースだけでなく、自分のセッション記録も共有できます。

共有時にはニックネームを設定でき、同じコース、コースの版、走行方向、記録方式、ゲート構成などの条件が一致する記録でランキングを作ります。
同じライダーが何度も走った場合は、条件ごとの最良記録をランキングへ掲載する設計です。
同じコースを走る人が増えれば、「自分はどの区間が速いのか」「上位ライダーとの差はどこなのか」を確認できるようになります。
FREE版ではセッションを5件まで保存可能。FULL版ではアプリ上の保存件数を無制限とし、コースやセッションの公開機能を利用できます。
FULL版に課金すると僕がとても喜びます。
AIをライディングトレーナーにする
FULL+AI版では、セッション記録をAIに分析させられます。
分析前に「速くなりたい」「安全に走りたい」「恐怖心を減らしたい」「自分の癖を知りたい」などの目的を選び、それに合わせたアドバイスを出します。
AIへ渡すのは、LAP、固定区間、速度、距離、コース情報、バイクのメーカー・型式・年式、紐付けたセッティングなどです。
さらに、同一コースの上位3名のうち、AI比較を許可している記録と比較し、自分がどんな走り方なのかを分析できる構造にしました。
例えば「全体の最高速は大きく変わらないが、コーナー後の加速で毎回差がついている」「前半は安定しているが、後半に速度低下がある」といった形で、次の練習テーマにつながる回答を目指します。
AIにはOpenAIのモデルを使用し、アプリから直接送信するのではなく、Firebase上のサーバーを経由します。
この機能はまだテストしておらず、次戦のイオックスアローザで初テストです!
将来は車両データも一緒に分析したい
今回のデータ構造は、将来の拡張を見越して設計しています。
今後はエンジン回転数、水温、前後タイヤ空気圧なども紐づけて保存したいと考えています。
Bluetooth機器、ECU、外部センサーなど接続方法はまだ検討中ですが、取得できるようになれば「水温が上がった区間」「回転数を使えていない場所」「空気圧と路面による速度差」など、より具体的な分析ができそう。楽しみ。
特許リスクも考えながら設計
GPS走行、コース照合、他者比較の分野には、海外を含めさまざまな既存特許があります。そのうえで、リスクを下げる考え方をアプリの基本構造へ取り入れました。
コースは走行前にユーザーが選択し、走行後にサーバーがGPS軌跡からコースを自動推定する方式にはしません。(米国特許対策)やりたいけど。
密なGPS座標列の一致率や「ルートの何%が一致したか」をコース認証やランキング認証には使用せず、方向付きスタート/フィニッシュ線と、あらかじめ定義された固定ゲート・固定区間を基本にします。(これも米国特許対策)やりたいけど。
また、他者のGPS軌跡を自動整列したり、複数人の軌跡を合成して空間的な「仮想最速ライン」を生成したりする機能は、現時点では実装していません。(これも米国特許対策)やりたいけど。
機能ごとに国別の許可・不許可を設定できる仕組みも用意しました。特に米国では、公開コース、公開セッション、ランキング、他者とのAI比較などを制限する初期設定としています。米国以外ではそこまで大きな制限を課していません。
ただまあ これは法的な結論ではなく、将来の調査結果に応じて安全側へ制御できるようにするための設計です。たぶんここまでやればイチャモン付けられないと思いますタブン。
今後やりたいこと
今後は、自分の過去走行を使ったゴースト再生、軌跡オーバーレイ、コースアウトやルートミスの表示なども検討しています。
機能はかなり増えましたが、走行前の操作が面倒になっては本末転倒。
「セッション開始」を押して走り、終わったら少し振り返る。それだけでも役立つアプリにしたいと思っています。
自分自身がレースや練習で使いながら、オフロードバイク乗りにとって本当に意味のある機能へ育てていきます!
こんな分析が欲しい、こんなセンサーと連携してほしい、ランキングはこうした方が面白いなど、アイデアがあればぜひ教えてください!
引き続き、Dirt Bike Logの開発を頑張ります!!!!
公開まで
開発者アカウントは個人と組織の2種類あり、僕は個人アカウントです。
そこに罠があって、個人アカウント登録だとアプリ公開者の本名、住所がPlayストアに公開されるというク〇仕様です。
そのため組織アカウント登録のためにいろいろ手続きをしています。(開業届とかレンタルオフィスとか企業番号取得とか・・・)そんなわけで公開には2週間から1か月ぐらいかかりそう。
あ、もし今すぐ使ってみたい!というイケメンor美女がいればAndroidのメールアドレスを教えていただければ、テスターとして登録してダウンロードURL送るので、興味があればよろしくお願いします!泣いて喜びます。
ではまた。ノシ













