86(ZN6)の車載動画に載せるテレメトリを増やしたい その1

yagihash
·

これは何?

現状、86の車載動画にはDigspiceから出力したNMEAを使ったテレメトリのみを載せている。具体的には車速、(位置情報に基づく)Gメーターのみ。自分の運転の振り返りをするにあたってもう少し細かくいろいろ見たい気持ちがあり、CAN BUSから取れる情報をRaceChrono経由で取得して車載動画に載せるまでのメモをここに残す。

用意したもの

  • OBDLink LX

  • RaceChrono

  • 適当なAndroid端末

  • Telemetry Overlay

  • GoPro

  • DigSpice

RaceChronoからGoProのコントロールや、DigSpiceをGPSロガーとして使うこともできるらしいが、ベースの運用をあまり崩さずに追加したいのと、Android端末側のワークロードに応じてリフレッシュレートが変わるようなので、iPhoneからGoProとDigspiceを操作、Android端末からOBDLinkに接続、という構成で使ってみる。

取りたいデータのCAN IDなどを調べる

海外有志がいい感じにまとめてくれているのでそれを使う。欲しいのはこのあたり。

  • Accelerator position (%)

  • Brake position (%)

  • Brake pressure

  • Coolant temperature

  • Engine RPM

  • Engine oil temperature

  • Throttle position

  • Wheel speed RL

  • Wheel speed RR

微妙に被るものもあるが、実際にどっちを使うかは取れた値を見て考えたい。アクセルはペダル位置とスロットル開度は別々で取りたい。ブレーキは最初からペダル位置で取ってもいいが、使う数字は一緒なので液圧だけ取っておいて後で変換する方がよさそう。ひとまず両方取ってみる。車輪速はトルセンでの空転具合を見たいだけなので、後輪だけあればOK。

RaceChronoでデータ取る

設定の仕方は他記事に譲るがOBDLink LXとペアリングしてRaceChronoでポチポチするだけ。CSVでエクスポート。

取ったデータをTelemetry Overlayで使えるようにする

読み取れるかどうかのチェックができればよいので、適当な動画に合成してみる。何も考えずそのままTelemetry Overlayに食わせてみるととりあえず読めるフォーマットではあるらしい。GPSのログが余計なので全部取っ払ってしまいたい。

要らないデータを削る

今回はCAN BUSから取ったデータ以外は不要なので全部削り落とす。一発で済ませる方法は後で考えるとして、とりあえず手で整形しつつ必要な列だけ残すとこんな感じ。

で、この状態で再度Telemetry Overlayに食わせてみると読めないらしい。

Telemetry OverlayのカスタムCSVについての説明を読む。

The first row contains the headers and requires at least utc (ms) (unix time in milliseconds) OR date (date-time text formatted as YYYY-MM-DDTHH:mm:ss.sssZ) OR time (ms) (video time in milliseconds) OR time (s) (video time in seconds).

とのことなのでヘッダ行を書き換えていく。timestamp→utc (ms)へ。中身はJSTだよなーとか思いつつ食わせてみたが全然だめだった。

なんか半端にUNIXエポックから少し進んだところが表示されているが何事…?と思ったが単位がmsだった。逆になんで元々読めてたのよ…。

The first row contains the headers and requires at least utc (ms) (unix time in milliseconds)

というわけで1000倍した列を作ってちゃんと読めるようになった。

他はTelemetry Overlay側で予約されているもの以外は「項目名 (単位)」のフォーマットで良さそうなので、ちょこちょこ読み込ませて確認しつつ編集していく。

見せ方はともかくとして欲しいものは全部読めそうな感じ。ゲージはCustom mini。スロポジだけ後回し。「℃」が表示されないんだけど、まぁそりゃそうか…。車輪速の単位はkm/hに変えたいね。

カスタムゲージ、どれを使うといい感じに表示できるのかがわからない…。このあたりのサクサク感が少ないのは難点かも。とはいえ一度フォーマット決めたらほぼ触らないので問題ないっちゃ問題ないけど。

各行にラップタイムとセクタタイムを入れておくとその周のラップタイムとかも一緒に表示できそうな雰囲気があるのでそのうちやってみたい。ただ現状ベストラップを切り出してYoutubeとかに上げるだけなので自分で使うにしてもそんなにニーズがない気がする。

次やること

  • RaceChronoから出力したCSVをTelemetry Overlayに食わせるフォーマットにノーストレスで変換する方法を用意する

  • 実際の走行動画と合わせてみる

  • DigSpiceから取得したNMEAファイルと結合したCSVを作れないか試してみる

  • ラップタイムとセクタータイムをOCRとかで読み取ってCSVに突っ込んでみる

追記

いい感じのゲージの設定を教えてもらった!!

「℃」が表示されないのも「°C」に変えたら表示されたので、たぶん使ってるフォントセットに「℃」が入ってないっぽい。フォントも好きなもの使えたら最高だな〜。

参考にしたページ

@yagihash
雑念エンタテインメント