スキップしてメイン コンテンツに移動

注目

“M”ethodology Service

2024/5/15更新 E系BMWやR系MINIのコンピュータ(DME/ECU)に関する書き換え(チューニング)、とラブルシューティングのDIYサポートをしています。ディーラーさんや、チューニングショップ、整備工場さんでは出来ないことを中心にサポートしています。 対処方法の調査、DMEや走行ログデータの解析/可視化/分析、問題解決に向けた方法論(Methodology)の提案、実際に手を動かす試行錯誤をサポートしています。 リミッター解除などのちょっとしたチューニングや、チェックランプひとつで高額請求されてしまうような問題や車の買い替えを勧められてしまった問題の原因特定や調整を、DIY支援という形によってオーナーさん自身にも一緒に考えてもらったり手を動かしてもらうことで、お手頃価格を実現しています。 サポート範囲は日本全国です。(リモートでオーナーさんのPCや、こちらからお送りするセッティング済みPCの操作によって対応します。出張費をいただければ日本全国出張致します。) ※表示価格は全て消費税込み(10%)の価格です。価格やサービス内容は予告なく変更する場合がありますのでご了承ください。 サービスメニュー トラブルシューティングサービス BMW/MINI DMEチューニング・カスタマイズ支援サービス E46M3 DMEチューニング・カスタマイズ支援サービス R50/R52/R53 MINI DMEチューニング・カスタマイズ支援サービス 盗難防止モジュールリプログラミングサービス 車両データ分析・チューニングアプリケーションの開発サービス 取り外し部品の買取・修理・販売サービス(準備中) カスタマイズパーツの設計・プロトタイプ制作サービス(準備中) オーダー トラブルシューティングサービス プロが解決できないお悩みをご相談ください。(BMWやMINIに限らず、すべての車種を対応しています。) ショ

E46M3 Buildjornal B-spec tuneのパフォーマンス評価を試してみた | 愛車の性能を手軽に見える化6


先日、B-spec tuneの施工代行をご依頼いただきました。オーナーさんがシャシーダイナモ(アクセル全開領域)で効果を測定されるとお伺いしたので、僕たちが開発中の"アクセル中間領域の性能比較"を実験してみませんか?と提案したところ快くご協力いただけました。今回はこの走行データを使って開発を進めた内容を中心に書いています。

実験結果から言うと、"確かに効果があった”とオーナーさんが納得できるアウトプットは出せませんでした。

僕たちは、これまでこの開発で、機械学習(AIの一部)の使い方を研究していました。アプローチは車の走行特性をモデル化し、そのモデルが出力する予測結果(加速性能)を並べて比較したグラフを出力する事です。

課題は無限に存在する"アクセル中間領域"という運転パターンの中で、いかにオーナーさんが納得できる比較条件を設定できるかです。

ずっとここに苦戦しています。

最近まで開発は、開発にかかる見込み時間と短中長期の見込み収益性が見えず、中断していました。

しかし、ここ最近ChatGPTやGeminiなど生成AIの進化を目の当たりにして、一気にブレイクスルーできるか?と期待を膨らませ、最新モデルを使って開発を再開してみました。

やってみた結果、僕のアプローチだとまだ一歩及ばずというところでした。

そこで今回のコンテンツは、現時点で最新のLLM(生成AI)であるGPT4oやGemini Advanceなどが、物理データ分析においてどの程度の威力を発揮するのか、という点についての共有が目的でまとめました。


目次

AIにはコードを生成してもらうのが良い

最終的な開発目標は、車のオーナーさんがドライブ中にスマートフォンのボタンを何回かタップするだけで、車の性能比較ができてしまうユーザーエクスペリエンス(アプリの使い心地)です。

1年前なら、スマートフォンアプリを開発する所ですが、進歩が著しい生成AIの能力ならチャットのようなやり取りで分析ができてしまうのでないかと期待せずにはいられませんでした。

そこで生成AIを使って分析アプリを開発してみました。

結果、機械学習処理は何度やっても中断されてしまう為、まだ目的は達成できそうにありません。

ですが、機械学習用のコードを生成してもらうことはできるので、このアプローチを試してみました。なので以降はこのプロセスについてまとめています。


開発のコアは分析手法を見つけること

この手法を見つけるために様々な角度からデータを観察することが必要です。

その為、比較したい走行データどうしの時間間隔を揃えたり、路面の振動ノイズの影響を小さくしたりする、処理が必要です。

数年前まではSPSSやRなど統計解析ソフトを利用することが一般的だったようですが、近年はPythonによるコーディングに置き換わりつつありました。

前者の場合、統計知識やソフトウェアの操作習得が必要でした。後者の場合、データ処理の柔軟性が得られる代わりに、統計知識はもちろんコーディングのスキルが必要でした。

これまで、このような開発を進めようとすると統計の専門家、Pythonコーディングの専門家が必要でした。開発を進めたいのであれば人を集めるか、自分で時間をかけて学習する必要がありと、お金と時間のコストがかなり高いものでした。

僕はそもそもどちらの専門でもありません。ましてや出資を受けているわけでもありません。なので時間をかけてでも自分で学習して進めるアプローチを選択していました。

開発を始めて3年が経ち、カメのスピードで進んではいたものの、世界中の論文や文献を探してみても僕がイメージしてる分析手法に近い例は見つかりません。

次に試してみたいことのアイデアは浮かぶのに、それをすぐ試せないことに非常にもどかしさを感じていました。


僕に必要だったのは、"世界の知識"と僕のアイデアに対応してくれる"柔軟性"を持つパートナー

この要求に対して生成AIはうってつけでした。僕のアイデアの実現可能性のレビューと実行可能なコードを生成してくれるAIは願ったり叶ったりでした。

まず初めにやってみたのは、走行ログ(CSV)のリンクを渡せば、データ処理から可視化、フィルタリング、グラフの再生成、分析のアイデア出し全部を対応してくれるGPTsの開発でした。

しかし、全部GPTsにアイデアの全ての処理をやってもらうと、何度やっても同じ所で処理が中断されてしまいます。

開発中GPT4→GPT4oというアップデートを反映させましたが、安定感は増すも処理の中断は毎回起きてしまいます。

GPTsに対する指示(プロンプト)を細かく分けても改善しません。

これは、負荷のかかる処理は運営よって制限されているなと思ったので、処理するコードを生成してもらう方向で進めました。


既存ツールとローコード開発の組み合わせで分析結果を素早く評価出来る環境を整えた

今回の開発目標にしたのは効率的な比較分析プロセスです。大きくは以下の二点です。

  • データ全体を俯瞰的に眺めやすくする
  • 必要なデータを集めてきれいにまとめる

まずはデータの観察をしやすくし、チューニング前と後のデータを見比べて、オーナーさんがよく使うスロットル開度の範囲を選べるようにします。

次にスロットル開度の範囲とエンジン回転数範囲の関係をグラフにして加速度のばらつきを見比べます。この時に、ギアポジションでフィルタリングしたり、データを集計するスロットル開度の範囲やエンジン回転数の範囲を変えられるようにします。

以下がデータ可視化ツールであるGoogle Looker studioとローコード(GAS)で開発した比較分析ダッシュボードです。

なるべく同じ比較条件を整えるために、

  • 同じルート
  • 同じように走行する

をオーナーさんにお願いしました。

1セッション(1回のデータ測定)で約30分走ってもらっているので、これ以上は実用的でないと考えています。

ここで性能差がはっきりすればここでプロトタイプの開発は終了!となれば良かったのですが、スロットル開度に対する加速度のばらつきが大きい事と、ばらつきの影響を抑える為のデータ数が足らなくて、このアプローチでは比較評価は難しいという判断です。

やはり機械学習を使ってデータがない部分の予測値を比較する方が良いと考え、ここまでを前処理部分としました。

予測部分の開発は、なるべくシンプルに時間をかけない方法で実験をしたいという考え方で、Google スプレッドシートのSimple ML for スプレッドシートというプラグインを利用してモデルを作成しました。このモデルをColaboratoryで呼び出して比較条件を与えて比較グラフを出力するというコードの生成をChatGPTに手伝ってもらいました。

以降、それぞれの開発プロセスをもう少し詳しくまとめます。


前処理部分の開発

自動車の走行データを分析する上で、問題は大きく二つありました。

  • データ取得インターバル(取得頻度)が一定ではない
  • 振動などのノイズ

この問題に対処しないと、評価したい指標である加速度をグラフ化しても、線が上下に振れすぎて(振動やノイズやデータ取得の時間間隔がバラバラによる加速度の大きさのブレ=ノイズ)データを見てもよくわからないのです。

なのでデータ処理によってこれらの影響を減らす事が一つ目の開発ポイントです。

ノイズを減らす処理をしたいのですが、非プログラマーにとってこの処理を自動で行えるプログラムを作成するのはかなり困難でした。


データインターバルの整形は、インターポレートというデータの間を補完する処理方法が存在します。データを補完する時間間隔がどれくらいが良いかという試行錯誤が必要です。

例えば、TrackAddictなどのデータ取得アプリで取得した走行データの間隔は0.5秒前後で安定しませんが、これを0.5秒間隔に整理したり、0.2秒間隔、0.8秒間隔というように整形します。

ノイズの低減は一般的に、移動平均、ローパスフィルタ、ハイパスフィルタ、カルマンフィルタなどという処理方法が存在します。例えば最も一般的な移動平均処理であれば、何秒前の時間まで平均するかというように時間ウィンドウ(幅)の設定が必要です。

これらの処理をした後、データを可視化(グラフ化)し、グラフの線がなだらかになっているか、元の線と離れすぎていないかなどのチェックを行います。チェックを行う際も、減速している時のマイナス加速度はフィルタリングして取り除いたり、アクセルをきれいに踏み込んでいる時の時間に着目してみたりします。

そうしてなんか変だなと感じたら、インターポレートの間隔や移動平均の時間ウィンドウを変更してまたグラフをチェックして...といいうのをぐるぐる回して落とし所を見つけていきます。

今までは、これを勉強する心理的ハードルも高すぎましたし、だからといってスプレッドシートをこねくり回してデータ操作するというのも面倒すぎてやりたくありませんでした。

そこで、スプレッドシートでデータ処理するGASをChatGPTに作成してもらい、データの可視化はGoogle Looker Studioを使ってノーコードで作成しました。


分析部分の開発

最初は、ChatGPTやGeminiにモデルを作成して比較グラフを出力してくれるようお願いしたのですが、モデルの学習中にいつも中断されてしまいます。これはできるけど、運営によって止められている感じがしました。(僕は有料会員です。)

止められてるならどうにもできないなということで、モデルの作成はGoogle スプレッドシートのアドオンであるSimple ML for スプレッドシートを使うことにしました。

使い方はとても簡単です。予測させたい指標(今回は加速度)を選んで、これと関係性が強いだろうなと想像できる項目(今回は、スロットル開度、エンジン回転数、車速など)を選んでモデルの作成ボタンをクリックするだけです。



学習が終わったモデルは、Googleドライブに保管され、リンクが提供されます。

このリンクをPythonなどで呼び出せば、Colabratoryなどのエディター上でモデルに予測をさせることができます。

予測した結果をグラフにするのもPythonで実行できます。

このPythonコードもChatGPTに作成してもらいました。

肝心の出力の結果ですが、今回の実験ではチューニング前後のそれぞれのモデルに、スロットル開度:20%、速度:40km/h、エンジン回転数:2000rpmを初期値として、エンジンrpmを100rpmずつ上げた時の加速度を予測して、比較グラフを作成しました。


※model1がチューニング前、model2がチューニング後の加速度予測値


僕たちが見込むアウトプットは、エンジン回転数上昇とともになだらかな上昇カーブを描く曲線です。しかし実験結果は加速度がブレてしまいます。

これは初期値を変えたり速度も徐々に上げるインプットを加えても変わりませんでした。なんとなく上昇傾向のカーブは描けているので、学習データの質かモデルにインプットする数字のどちらかに問題があるように考えています。


今回開発したのはここまでです。昔会社のプロジェクトで似たようなツールを開発した時は、半年と数千万円かかってました。今では1日と数百円(月のサブスク料金を日割り)でできてしまいました。しかも一人で自宅の2階の物置の隅っこで、、

実験が圧倒的にやりやすくなりました。数値をじっくり観察することに集中できますしアイデアも浮かびやすくなりました。

このプロジェクトでも昔会社で作ったようなツールを作りたいとチームで話していましたが、やっぱりみんな開発が大変なのは知っているので気乗りせず、ずるずると来てしまっていました。

ChatGPTでここまでできてしまうのはITの世界の人にとっても驚きです。こうなってくるとアイデアが止まりません。試したいことが次々と出てきます。

すぐにうまくはいかないと思うけど、成功は確率だと思うので、試行の回数が増やせるというのは良い意味での脅威です。


次のアプローチは、予測に使うインプットデータもAIに出力してもらう

次のアプローチとしては、モデルにインプットの工夫です。先ほどは、学習データの質を上げるかインプットの質かと書きましたが、30分以上走行データを取るのは実用的ではないと考えています。

なので、走行データ以外の工夫でどこまで予測精度を高められるかが次のテーマになります。

ここはITというよりは物理学とか自動車工学の領域だと思っています。

先ほど出力したグラフは、アクセル開度も速度も一定でエンジン回転数だけ100tpmづつ上げていった時の予測される加速度を比較したものです。

実際の走行中をイメージした時、アクセルを20%で固定したとしても、回転数が上がるたびに速度は上がるし、速度が上がっていったら風や路面や重さの抵抗が増えて加速度は落ちるはずです。機械学習は、こういった目に見えてない関係性を内部で数値化しているはずなので、これらを考慮したインプットを与えないとまともな予測はできないと考えています。 しかも物には慣性があるので、加速を始めた速度やエンジン回転数、路面の勾配などでも加速度は変わると思います。

また、モデルの学習データの種類を増やすアプローチもあります。すでに路面の高低差は学習データに含めています。これに加えて加加速度(ジャーク)や回転数上昇量なども学習データに加えてみるといいかもしれません。

これらを車や物理の専門でない人に説明しても頭痛くなってしまうと思うんです。一般の方にいかにわかりやすく、納得できるアウトプットのデザインも研究していく必要もあります。


知らない知識はAIに教えてもらい、インサイト(洞察)は人間が行う関係がベスト

もちろんAIにもインサイトを求めています。ですがやっぱり回答がロボット的というかいい子ちゃん的で役に立たないというのが僕の感想です。

鋭く尖ったインサイトが必要です。笑

世の中にすでに存在している知識は提供してくれます。先に書いたように加速度のフィルタリング方法などはAIが教えてくれました。

それをどう使うか、データをどう見るか、何に気がつくかはてんでダメです。

いずれクリアしてくる感じもしますが、今はまだひらめきとか考え方とかインサイト(洞察)に関する部分は人間の仕事かなと思います。(覚えさせようとトレーニング中ではあります。笑)

こんなことをぼやいてる間に進化してくるので、ついていくのが大変ですが、うまく使いこなせば強力なパートナーなのは間違いないです。

とはいってもAIの言うことは完全に信用しません。知らないキーワードを生成してもらう程度で、その情報が確実であるかどうかは論文や書籍、政府発行資料などを確認します。


収益化のイメージ

分析手法の発見の次に悩ましいのがビジネスモデルです。

僕が解決したい社会課題は、DIY文化を通じて一人一人のクリエイティビティを高めることです。それによってお金に支配された思考から脱却し、日々幸せを感じれる人を一人でも多く増やしたいというのがこれをやる目的です。

別に車ではなくても良いのですが、僕ができそうなこと、続けられそうなことを考えた時に車がいいかなということで車を選んでます。

アプローチはこれでいいと考えているのでが、収益性の面で課題を感じています。そもそもDIYの動機がいかにお金をかけないで楽しめるかにウェイトがあることです。

お金をもらうこととは真逆の方向性ですもんね。笑


そこで僕が考えてるざっくりイメージは以下です。

  • 短期:僕が気になってるパーツの評価をして、その効果を発信してそのパーツのアフィリエイトや直販で収益 | 想定数ユーザー数:1〜100人/月
  • 中期:アプリの有料化1セッション100円 or 月500円 | 想定ユーザー数:100人〜10,000人/月
  • 長期:パーツ販売・開発メーカーとのパートナーシップ契約料 | ユーザー数:10,000人〜/月

そして会社を売却することを目標にしています。売却益でごみから作ったエネルギーの供給に関する開発事業への投資と小中学生向けの起業塾(サービス開発寄り)への運営資金にしたいと思ってます。


売却を目標にするのは、僕の自己認識として、0→1はできるけど、1→10はめっぽう不得意だと思っているので運営が得意な人に任せた方が続くと思うからです。僕が長く代表をやると絶対破滅する(大きく変えたくなっちゃって、その想いを絶対に曲げないから、周りがついて行きたくなくなる)と思ってます。(もうすでに、性能の次はパーツの信頼性を評価するツールを作りたいと思っていますし。)

かといって、買収された会社の利益を囲い込むやり方をされるのは絶対いやなので、会社としての独立性(オープンプラットフォーム)を尊重してくれる自動車メーカーさんがターゲットです。笑

すでに販売済みの車両にターゲットすることで、今後落ち込むかもしれない新車販売の利益を、既存車のアフターマーケットで補完・拡大するイメージです。(計算はしていません)

入り口のペルソナは、スポーツカーが好きな家族持ちお父さんです。まずは自分の趣味車から始まって、徐々にセカンドカー(ファミリーカー)へ行くと思うんです。で、奥さんに自分の努力を知って欲しくなると思うんですよね。で、節約とかに興味ある奥さんからSNSとかで広げてもらって一般化していくイメージです。

車の趣味ってダサい、汚い、キモいのイメージがまだまだ強いと思うんですけどUX/UIはそれをイメージさせないユニバーサルデザインにしたいと思ってます。スポーツよりはライフツールという感じでフィットネスアプリに似たイメージを想起させるデザインが良いなと思ってます。


問題は、人と実験車と環境が足らないことです。

アイデアはあって自分で手は動かしているけどやりきれていないというのが大きな問題です。

開発を僕の愛車であるE46M3でしか行えていないことにも問題意識はあり、最近悩みに悩んで格安のR53 MINIを増車しました。でも生活費を稼がないといけない手前、他の仕事をやっていて手を伸ばせていません。(育児で思考が中断されるというのが一番大きな進みが遅い理由です。1日に何度もこの切り替えが発生して疲弊して活動時間が短くなってしまいます。)

車も、86とかS13系シルビアとか、ジムニーなど、車種コミュニティーがあって走りに注目されている車種を選びたいのですが、手が回らないというのが現状です。エンジンオーバーホール技術の習得やCAN解析も必要だと考えています。(CANを使わず、スマートフォンのGPSと加速度センサー、ジャイロセンサー、音声認識を使う方法も実験中です。)


分析手法を見つけてしまえば、以降は早いと考えていますが、ここを見つけるために車を自由に弄って走れる環境が欲しいです。(妻が要求する生活費と妻がやりたい育児のサポート)

育児については環境(妻と子どもの成長)が整ってきたので、あとは生活費です。

ある程度まとまったお金を妻に渡せて、少しの設備投資ができれば、心置きなく開発に没頭できるというのが本音です。

投資してくれる方を探してみるも、スタートアップ系の情報やインフルエンサー、投資家の思考などをみていると、初期段階の経営者の生活費は自腹的な空気感が漂っているのがなんだかなぁと思う所です。

銀行系や補助金、企業系は金、金、金、説明、説明、説明、リスク、リスク、リスク、、もううんざりです。

なので生活費の部分でも色々試していて、こちらにも時間が取られています。試しすぎていると多方面から指摘を受けていますが、起業家なんてそんなモノでしょう!笑

僕自身はこのギリギリ感は楽しくて、むしろ追い込みたいと思ってるのですが、妻は別なんですよね。

スタートアップやりたい人はみんな離婚してるという話もよく聞きますが、そんなことしなくてもできる文化でありたいなと思ってます。

ここは変えていくのは難しいと思うので、小学生のうちから心ゆくまで挑戦できる環境を作りたいというのが僕の目標です。(そういう環境にいたかったですし。)

なのでオーダーをいただいたオーナーさんに対するメール遅かったり返信しなかったりで申し訳ありません。でもこれを気にしないでくださる方だけとお付き合いできれば良いと思ってます。


おまけ | Buildjornal B-spec tuneをわざわざ僕に頼む価値

話がずれますが、、わざわざ僕に手間賃を払ってまで頼む価値を書いておきたいと思います。オーダーがたくさん欲しいわけではなく、あくまでオーナーさんの利益の為です。

(時間が一番惜しいので、生活費確保が現時点ではこの副業が頼みの綱であるという本音もあり、日々葛藤してます。今の生活を考えたら値上げもしたい(したほうがいいと多方面で言っていただけるので)けど、オーナーさん目線だと値上げしたくない、という葛藤にも悩まされてます。笑 時間も絶対量が欲しいのではなく、一人連続的に考えられる"流れ"が必要なんです。だから、中断される電話が無理なんです。 子どもに中断されるのが最もエネルギーを使うので、妻含め大人にされると怒りのボルテージがすぐ閾値を超えます。笑 何度妻と話し合ったことか。。)

脱線しました。


マップの反映忘れを検知できる

今まで5件ほどご依頼をいただきましたが、そのうち2件はマップの反映忘れがありました。

この2件ともトルクマネジメント関係のマップが反映されていませんでした。トルクマネジメント関連のマップは効果が大きく体感できるものです。もしかしたらご自身で注文された方で、マップの中身をチェックしていない場合、本来の効果を全部味わえていない可能性があります。

今回も、マップの一つが反映されていなかったので、僕で修正してから車に書き込みしました。そのあとBuildjornalにもデータを送って管理用の最終版として保管しといてくださいメールをしました。


マップの内容を説明できる

今回施工のご依頼を頂いたオーナーさんも、効果に感動されていました。

初動で体感できる効果の要素は大きく2つです。一つはDMEの学習値をリセットしていること。二つ目はスロットルの低回転域のデューティーサイクルを直線的かつ少し高めに調整されているので電動モーターのような感触になっていることです。

あとは全ピストンのノッキング補正閾値が全体的に緩くなっているので、リタード補正が少なくなって全体的なトルク感が上がっているかもしれません。

この他にも色々マップは調整されていますが、何台もマップを見比べているので、足りてるか足りてないかの判断ができるようになりました。

チューニングは見えないし、普通は自分でチェックできないので、これで本当にチューニングが反映されているの?と疑問に思うモヤモヤした気持ちをクリアにできたらいいなと思ってます。


開発目的の話に戻る

それで、僕は「かもしれない」という表現を使っていますが、これを変わったと言い切れるようになりたいのでこの開発を進めています。

ICEヒューズとか、エンジンオイルとか、アルミテープとか色々効果が怪し間れる商品はいっぱいありますよね。こういうモヤモヤを白黒つけて、走りに集中できるようにして気持ちよさを味わってもらうことも開発の目的です。

ほんとこういうよくわからない気持ちのモヤモヤって思考も奪うし時間も奪うし本当に嫌なんです。人を疑う気持ちも出てしまってこれもすっごい嫌なんです。僕はこのモヤモヤが子どもの頃からすっごい嫌なんです。

まずは車に関するモヤモヤをこの世から根絶して、もっと他の意味あることに限りある人生の時間を使えるようにしたいです。(宣伝ばかりで中身のない商品やサービスが生まれないようにするというアプローチでもあります。)


追伸

最近はご家族で白州まで来てくださるオーナーさんが増えてきました。景色とか水の綺麗さとか、そばのおいしさとか、この地域の良さにも感動して頂けています。