GPSラップタイマーの悩みだった「誤計測」
GPSラップタイマーは、スタートラインを通過した瞬間を検出してラップタイムを計測します。
しかし実際のサーキットでは、
- ピットロードへの出入り
- コースイン直後の移動
- 転倒後の引き返し
- 車両回収時の逆走
など、本来ラップとして計測したくない動きが発生します。
従来のKLAPでは、これらの誤作動を防ぐために「クールダウン時間」を利用していました。
スタートライン通過後、一定時間は再判定を行わない仕組みです。
多くのコースでは十分機能していましたが、コースレイアウトによっては完全に防ぎきれないケースもありました。
そこで今回、新たに**「逆走防止機能」**を実装しました。
新機能「逆走判定ロジック」とは?
今回のアップデートでは、単純な位置判定だけではなく、
「どちらの方向からラインを通過したか」
まで判定するようになりました。
これにより、
- 順走方向のみラップ計測
- 逆方向は無視
- ピットへの出入りを誤検出しにくい
という大幅な精度向上を実現しています。
判定の仕組み
KLAPではスタートラインを設定する際、
- P1
- P2
の2点を指定します。
この2点を結んだ線を「スタートライン」として使用しています。
実はプログラム内部では、
P1 → P2
を一本のベクトル(矢印)として扱っています。
さらにGPSから取得した
前回位置 → 現在位置
もベクトルとして扱います。
そしてこの2本のベクトルの関係を利用して、「どちら向きにラインを通過したのか」を判定しています。
初回通過で進行方向を学習
計測開始後、最初にスタートラインを通過した瞬間、システムはその方向を自動的に記録します。
例えば、
- 時計回り
- 反時計回り
どちらで走行していても問題ありません。
最初に通過した向きを「正しい進行方向」として学習します。
2周目以降は方向チェック
以降はラインを通過するたびに、現在の進行方向と最初に学習した方向を比較します。
向きが一致していればラップを計測。
向きが反対であれば、
- 逆走
- ピット移動
- 車両回収
などと判断し、ラップとしてカウントしません。
これにより従来よりも大幅に誤計測を減らせるようになりました。
技術解説:外積(Cross Product)を利用
この判定には「外積(Cross Product)」という数学的手法を使用しています。
難しく聞こえますが、「2本の矢印がどちら向きに交差しているか」を調べる計算です。
KLAPでは
- スタートラインの向き
- 車両の移動方向
の2つを比較しています。
プラスになるかマイナスになるかを見るだけで、ラインをどちら向きに横切ったのかを瞬時に判断できます。
2次元外積の計算式
ラインベクトル
(Lx , Ly)
移動ベクトル
(Vx , Vy)
とした場合、
Cross=(L_xV_y)-(L_yV_x)
という計算を行います。
計算結果の符号(プラス・マイナス)だけを利用するため、処理負荷は非常に小さく、スマートフォンでもリアルタイム判定が可能です。
実際のメリット
今回のアップデートにより、
- ピットロード付近での誤ラップ低減
- コースイン直後の誤検出防止
- 逆走時の誤カウント防止
- クールダウン時間への依存低減
が実現しました。
特にスタートライン付近にコースが接近しているミニサーキットでは効果が大きく、より安心してGPS計測を行えるようになります。
今後について
KLAPは「できるだけ安価に、できるだけ高精度なラップ計測を実現する」をコンセプトに開発を続けています。
今回の逆走判定ロジックは、単なる機能追加ではなく、GPSラップタイマーとしての信頼性を大きく向上させるアップデートとなりました。
今後も実走テストを重ねながら、
- GPS判定アルゴリズムの改善
- 10Hz GPS対応強化
- 解析機能の拡充
を進めていきます。
サーキットでの実戦テスト結果も随時公開していく予定です。

コメント
コメントを投稿