RTKとRaceChrono使った高精度なロガーの構築

RTKって知っていますか?
いわゆるGPSと言われているもののうち、スマホなどに搭載されているものより高精度な測量をする技術だそうです。

今回はそれを使ってレースに使用するロガー環境を構築します。

目次

はじめに

自動車レースにおいて現在のラップタイムが運転中に分かるようにしようと思います。
ついでに、位置情報をロギングしてレース終了後にログを振り返るためのデータとして活用したいと考えています。

大まかな構成は市販のRTK評価ボードGPSレシーバーとしてセットアップし、
ロギングやタイム表示は既存のAndroidアプリ「RaceChrono」を使用します。

全てイチから製作するとなると手間もかかりますし、やるには私の知識が圧倒的に不足しています。
既存のものや規格をうまく活用して汎用性のあるものを構築していきます。ぜひ見てください。

RTKのイメージ図

製作の背景

以前まではHKSのサーキットアタックカウンターを使用していました。
この製品はラップ計測のためにマグネットを使用しており、コースによっては動作しないことと、
記録したラップ情報をPCにエクスポートできないことが課題に感じていました。

サーキットアタックカウンターの図

これからの使おうとしているRaceChronoは、アプリ上におおよそのサーキットは収録されており、
自分でセクター分けなどができることが強みで、最近のサーキット走行勢のなかでは流行りのアプリらしいです。
コースに依存せず、車両さえあればスタンドアロンでロギングできることと、csv形式や別の形式でのエクスポートが可能で、課題に対して打ち手になるのでは?と思ったのが今回の工作の発端です。

RaceChronoをAndroidスマホで動かしている図

ただ、普通のスマートフォンにRaceChronoのアプリを入れただけだと、位置情報の精度がスマートフォンのGPS性能に依存し、数mの誤差と1Hzくらいのサンプリングレートになってしまう。

そこで、センチメートル単位での精度が期待できるRTKという測位ができるレシーバーから、Androidスマホに位置情報を送信することでかなり使えるロガーになるのでは?という見込みです。
ちなみにサンプリングレートは14Hzくらいまで上げられるとのことです。(安定稼働は10Hzとか)

使ったもの

Androidスマホ

Androidアプリで動くので必須。
端末の要件については正直あまりよく分かっていないですが、Pixelシリーズなんかがいいんだろうな。

今回はArrows We2という富士通の携帯電話を使いました。
正直あんまりオススメできないですが、安かったので・・・

RaceChronoアプリ

このアプリでタイム表示とロギングを実施します。

無課金でもできることはできますが、機能をフルで吟味したかったので課金しました。

ArduSimple社のsimpleRTK2Bという評価ボード

RTKという測量法を使うために必須。今回の構築の要

Aliexpressなんかでパチもんや廉価製品がたくさんありますが、初めてなので安心できるモノを買いました。

GNSSアンテナ

評価のボートにはGNSSアンテナが付属しておらず、所望のアンテナを用意する必要があります。

ArduSimpleでもアンテナを販売していますが、高いのでアリエクで安いのを買いました。
メーカーはBeitianというところのBT-3G43AJL5というものを買いました。

GNSS Master(Androidアプリ)

無料。

Androidスマホと接続した評価ボードから位置情報を受け取り、エミュレートするためのアプリ
あんまりよく分からないのでこのアプリを使いました。

ハードウェアの実装

まずはハードウェアの実装を行います。
スポーツ走行する車内に設置するので、強い横Gや振動に意識して実装します。

評価ボードの実装

RTK2Bの評価ボードは基板なので、ケースを製作しました。
ロールバーにインシュロックで縛り付けられるように設計。
振動が多少減衰するようにロールバーとケースの間に耐震ジェルを挟んで気休めに。

モニタとなるスマホの固定

メインのモニターとする予定なので、ドライバーが運転時に見やすい箇所に固定します。

スマートフォンはバイク用のスマホホルダーを分解して、ブラケットを3Dプリンタで製作
この辺は検討の余地あり。とりあえずのものを印刷。

配線の固定

配線もコネクタ部に力が掛かり、抜けたりしないように手前で結束。
電源は近くにシガソケを設置し、既製品のUSB PD電源から供給。

ちなみにシガソケはバッ直でエンジンを切っても電源供給されています。
※ピットストップや給油中にいちいち電源落ちると面倒なので

アンテナの実装

GNSSアンテナは車両外部に取り付けました。

ラジオアンテナを取り外している車両なので、その穴を使用し同軸ケーブルを通しました。
ロールバーを這わせて評価ボードまで敷設します。

屋根汚い。

この写真は固定前です。この後適切な位置に固定しました。

ソフトウェアの準備

今回購入したRTK2Bは最終製品ではなく評価ボードなので多少準備が必要。

RTK評価ボードの設定

Androidスマートフォンに内蔵GPSとして位置情報を偽装するので、
スマートフォンが認識してくれる位置情報のフォーマット(NMEA)で投げる必要があります。

そうなるようにu-centerをPCにインストールして評価ボードの出力設定を変更します。

スマートフォンの設定

Androidスマホの位置情報を外部デバイスから入力できるように設定します。

Android OSの隠し機能?でMock Locationの入力アプリを選びます。
今回はGNSSマスターというアプリで位置情報を計算するので、そのアプリをを選択。

この設定をすることで、アプリ上で算出した詳細な位置情報が
Androidスマホの””自身で測位した位置情報””のように振る舞うワケです。

テスト

AndroidアプリのGNSSマスターでRTKがFixしたかどうか見ることができます。
GNSSのステータスがFixになっていれば成功です。

あとはRaceChronoが動くかどうかになりますので、アプリを起動して走ってみましょう。
サーキットに行かなくても、RaceChronoのアプリ上で一般公道をコースとして設定することは可能です。

車速がリニアに動けば成功かと思います。

他商品との比較

正直言うとロガーが欲しければデジスパイスでいいかなと思います。
確かに私もデジスパイス4借りて使いましたが、それでいいやと思えるくらいの完成度でした。
アプリからスマホ画面にタイムなど表示できますし、解析ソフトがとても優秀。

今回私が構築した環境の優位な点はRTKを使ったセンチメートル級の測位ができるという点と、車載動画との連携ができる点です。
(センチメートル級の測位が私レベルのドライバーに恩恵をもたらすことはあるのだろうかと疑問ではある)

まあ正直、好きでもないとこんな工作しなくてもいいかなと思います。
真似してもいいですが、不利益を被っても責任は負いかねます。

RTKとは(私は専門家ではないので思考整理のために書きます)

私が理解した『RTK』というものについて私の理解を説明します。
間違いなどありましたらドンドン指摘ください。

RTKってなんのこと?

RTKは Real-Time Kinematic(リアルタイムキネマティック) の略で、
GNSS(GPS)を使って、数センチレベルの高精度な位置情報を測位する技術です。

スマホなんかに搭載されているGPSと同じ衛星通信を用いていますが、それ以上の精度が期待できる測量技術です。

どういう原理なの?

手元にあるGNSSのデバイスで大まかな位置特定(スマホとかと同じレベル)を行う。
加えて、地上の任意の場所に設置されている基準基地局から補正情報をインターネット経由で受信し、
リアルタイムで詳細な位置情報を算出する、という技術だそうです。

つまり、衛星からの位置情報を受信するためのGNSSアンテナと、
インターネット経由で基準局から補正情報を受信するためのネットワークが必要になります。

Androidスマホはモバイルネットワークが使えるうえに、
位置情報のオーバーライドができるのでRTK測位に最適なわけです。

基準の基地局って?

いまは一般の方や民間企業が善意で設置し公開してくれている基地局を使わせていただいています。

NTTやKDDIのような通信業者が各地に基地局を設置してくれているのですが、利用料が5000円/月ほど掛かり、私のようなホビーユーズには不向きかと。

民間が設置している基地局って何?

不動産屋さんや測量屋さん、一部の無線・通信マニアなどが仕事や趣味のために設置して、
接続先情報を公開してくれています。

感謝して使っています。ありがとう。

自前で基準局を設置することは可能ですが、ただでさえ高価な評価ボードをもう一個揃えないといけないので、僕にはまだ早いです。そのうち基地局を自前で用意して、サーキットで運用したいなと思っています。

RTKについて、私の知っていることは以上です。
こういう便利な技術に触れて、より進んだ趣味を実現できるよう勉強したいと思います。

以上ありがとうございました!

この記事が気に入ったら
フォローしてね!

シェアして頂いても構いませんにょ。
  • URLをコピーしました!
目次