【アップデート】ピットでの誤計測を大幅削減!KLAPに「逆走防止機能」を実装しました

スタートライン通過イメージ図

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対応強化
  • 解析機能の拡充

を進めていきます。

サーキットでの実戦テスト結果も随時公開していく予定です。

コメント