エンジン制御やパワーマネジメント、エアバッグなど自動車のさまざまな機能をコントロールしている車載ECU。自動運転やADAS、コネクティッドカーなどの取り組みが加速する中、ECU開発にも変化が訪れている。そんななかデンソーテンが取り組んだのがECUにおける「モデルベース開発(以下MBD)とAIの融合」だ。
ECU開発にAIを実装、効率化や付加価値創造を目指す
1920年に創立した川西機械製作所を源流に神戸工業、富士通、富士通テンを経て、2017年に現在の社名となったデンソーテン。創立100年を迎える歴史のなかで、無線機や真空管、トヨタの初代「クラウン」用オートラジオ、ナビ内蔵AV一体器などを展開し、自動車業界の発展を支えてきた。現在の事業は「安心・安全」「快適・利便」「環境」という3つの分野で、ドライブレコーダーやエアバッグECU、カーナビゲーション・カーオーディオ、音響システム、ハイブリッド車用ECU、エンジン制御ECUなどの製品を展開する。
そんなデンソーテンが新しい取り組みとして力を入れているのがAIだ。例えば、環境分野で各種ECUを開発しているAE事業本部では、AIを使って制御ECU開発の効率化や新たな付加価値の提供に取り組んでいる。こうしたAIの取り組みで活用しているのがMATLAB/Simulinkだ。同本部先行システム開発部技術開発室の横山夏軌氏は、AIの活用の背景についてこう話す。
「AI活用には大きく3つの方向性があると考えています。1つめは、AIを使って何か新しいことをするというもの。明確な目標はないなかで、AIの可能性を探る取り組みです。2つめはこれまでの取り組みを効率化するもの。開発効率の向上やコスト削減につなげます。3つめは新しい付加価値を創出すること。ECUにAIで新しい機能を追加するなどして市場競争力をつけます。これら3つの取り組みを支える仕組みやツールとして採用したのがMATLAB/Simulinkでした」(横山氏)
AIを使うためにはさまざまな開発言語やツールが提供されている。例えば、Pythonなら無償で使える豊富なAI関連ライブラリが利用可能だ。ただ、ECU開発ではマイコンに対応したコンパイラとしてC言語が基本であり、Pythonライブラリを活用した開発では、マイコン実装に向けて設計者が手動でC言語にコーディングし直すといった作業が発生する。
「AIのECU実装は、ただ既存のAIツールを使えばいいというわけではありません。自動車開発の現場に即して製品化につなげるための開発プロセスの構築が必要でした」(横山氏)
MBDにAIを組み込むうえで課題となった3つのポイント
MATLAB/Simulinkは、自動車業界ではMBDを行うためのデファクトスタンダードなツールだ。Embedded CoderというSimulinkモデルから組み込みプロセッサ向けのC/C++コードを生成するツールもあり、マイコン実装に向けたワークフローが用意されている。 AI設計をPython等のライブラリを利用し構築した場合、C/C++にコーディングし直して、車両制御モデルと結合する必要がある。しかし、単純にPythonからC言語への変換ができても本質的な課題は解決できないと横山氏は話す。
「車載制御開発プロセスの肝は、モデリングとシミュレーションによるMBDにあります。ですから、AI制御開発でも従来と同様のプロセスでMBDができることこそが重要なのです」(横山氏)
MATLAB/Simulinkでは、AI設計のためのDeep Learning Toolboxが提供されている。このToolboxを利用することで、MATLAB/Simulinkが持つGUIベースの高度なシミュレーション機能や強力な可視化機能を使いながら、AI設計から実装までをシームレスにつなげることができる。
例えば、Deep Learning ToolboxではGUIベースでAIのネットワークモデルが設計できるツールとしてディープネットワークデザイナーを提供している。このツールを使うと、ブロックを配置して結線するSimulink感覚でAI設計が可能になる。また、ディープネットワークデザイナーで作成したネットワークモデルで学習を行い、その学習済みモデルからC/C++コードを生成して、ターゲットとなる車載マイコンに実装することができる。
一見すると、これですべての問題が解決できるように思えるが「従来と同様のプロセスでMBDを行う」ためには課題があったと横山氏はいう。
「既存の開発ノウハウを活用するプロセスを構築するためには3つの要件がありました。1つは、低スペックな車載マイコンに搭載可能なコードを生成できること。2つめは、品質・性能保証範囲を切り分けできるように、AI演算部分をライブラリとして切り出せること。3つめは、オフボード検証を実現するために、既存制御モデルにAIをアドオンしてシミュレーションできることです」(横山氏)
特に課題だったのが、3つめの要件であるAIモデルのシミュレーションをどう行うかだった。Deep Learning Toolboxを使うことでネットワークモデルからC/C++コードを生成することはできた。しかし、ネットワークモデルからSimulinkモデルを生成することが標準ではできなかったのだ。
標準提供されない機能をMATLAB & Simulinkの各種 APIを利用し仕組み化
ネットワークモデルからSimulinkモデルへの変換を行うために横山氏が取り組んだのが、APIによるAIモデル変換だ。学習済みモデルのデータ構造は、入力層、畳み込み層、正規化層など、各層ごとにレイヤー情報とパラメータを持つ。これらは、APIからデータの取得・加工が可能だ。そこで、レイヤー情報から「学習値」「ブロック情報」などを抽出し、それらを他のツールと連携できるような仕組みを構築した。
「MATLAB/Simulinkが標準で提供していないツールでも提供されている各種APIを使えば柔軟に拡張することができます。これにより、実装可能なコードを生成するという要件と、AIモデルをシミュレーションするという要件を両立させました。また、AI演算部分をライブラリ化することについても、S-functionの機能を用いてAI専用ライブラリとして埋め込むことで達成しました」(横山氏)
ポイントとしては、ECU実装時に深層学習のさまざまなレイヤーが利用可能かどうかを識別しブロック情報の変換を制限できるようにしたこと、レイヤー単位でC言語ライブラリを開発できるようにし並列開発による効率化を図ったこと、Simulinkモデルからネットワークモデルへの逆変換も可能にしたことなどだという。
「使いやすさはもちろんですが、拡張性がありフレキシブルにカスタマイズできることがMATLAB/Simulinkの魅力です。MBDという10年20年と積み重ねてきたワークフローにAIを組み込む仕組みを構築したことで、AI設計から実装までの一貫性のあるAI開発プロセスを構築することができました。また、これにより将来の製品化を見据えた仕組みづくりにも目途がたちました」(横山氏)
横山氏によると、現在は、自動車の制御ECUのアーキテクチャは大きく変わろうとしている時期だという。
「今まではさまざまなECUが独立して対等な関係で通信していました。今後は、頭脳となる賢いコントローラと手足となる簡素なものに分かれていく傾向が見られます。また、ECUが提供する機能も、プラグ&プレイのようなかたちでいつでも抜き差しして柔軟に構成できるようになっていくと見られています。頭脳や手足でどう付加価値を出していくのか。そこにAIを活用する意味が出てくると思っています」(横山氏)
既存の開発ノウハウを生かしながら、AIによる効率化や付加価値創造のための道筋を作ったデンソーテン。今回構築したMDB+AIの仕組みが同社の新しい取り組みを支えていくことになる。
[PR]提供:MathWorks Japan(マスワークス合同会社)