Friday, June 28, 2019

モジュール化:複数モデルで旧バージョンの EB GUIDE では、モデラーはユーザーが望むすべての機能を入れた巨大な HMI モデルを、1 つの大きなプロジェクトに作成していました。

Andreas Betz

最新バージョンの EB GUIDE では、ユーザーの方が車載ヒューマンマシンインタフェース(HMI)に望む機能を、複数の小さなプロジェクトに分割することができる機能があります。小さなプロジェクトでは 1 つの機能に集中でき、メンテナンスや開発、テストが容易になります。車載HMIがシンプルだった時代は、HMIの規模も小さく、機能を容易に把握することができました。今日では、ますます多くの機能が HMI に組み込まれています。これはインフォテインメントに限らず機器クラスタやヘッドアップディスプレイ(HUD)も同様です。基本機能の進化に加えて、IoTの進化や常に最新の状態に更新する必要性から、車両の利用者が簡単・迅速に OTA 更新が可能であることが求められています。このような状況から、近年では巨大な単一の HMI プロジェクトが立ち上がるようになりました。EB GUIDE 開発チームは、モジュール式 HMI 開発アプローチでこのトレンドに対応しようとしています。

過去

旧バージョンの EB GUIDE では、モデラーはユーザーが必要な全ての機能を巨大な HMI モデルに入れて、1 つの大きなプロジェクトで作成していました。このアプローチは小規模なプロジェクトでは成功しますが、フルグラフィカルクラスター計器やヘッドユニットなど、複数の企業やチームに渡って 1 つの HMIで作業をする場合は開発が複雑になり過ぎることがあります。最大の欠点は、全てが連動していることです。少し変更を加えただけで、モデル全体を変更しなければならないのです。モデルのサイズが大きくなるにつれ、「自然エントロピー」も大きくなります。例えば、あるテンプレートがなぜそこにあるのか、あるいはなぜ到達不能な状態が存在するのを、チームメンバーが誰も思いだせないというような状況を経験した方もいるのはないでしょうか。規律を徹底しようとしても、モデル全体のメンテナンス作業は増加しています。そしてもちろん、ある時点で作業している内容とは無関係なものを誤操作してしまう可能性も増加します。

上記の図は、このような巨大な HMI モデルが EB GUIDE GTF で実行される様子を示しています。EB GUIDE GTF コアは HMI モデルを実行して、ステートマシンによって基本動作が定義されます。これらのステートマシンはさまざまなシーンに対応して、例えば警告やメニューを別のコンテントの上に表示するなど、動的ステートマシンとして表示を行ったり複合シーンの一部となったりします。それにも関わらず、この巨大な HMI には EB GUIDEモデル 全体を含む自己完結型のバイナリ記述が採用されています。一部のみを変更、あるいは更新することは容易ではありません。そのため、複数の企業やチームが1つのプロジェクトを手掛ける場合のコラボレーションのが煩雑になり、効率が低下します。

現在

最新バージョンの EB GUIDE では、ユーザーが車載HMIで必要とする機能を、複数の小さなプロジェクトへと分割することができる機能があります。小さなプロジェクトでは 1 つの機能に集中でき、メンテナンスや開発、テストが容易になります。モデラーは、例えばステータスバーのように、システムの他の部分へのインターフェースが定義された小さな専用モデルのみを処理して、他の部分を気にしなくてもよくなります。これらの小さいモデルは EB GUIDE GTF で実行、接続して統合した HMIでコラボレーションします。

EB GUIDE GTF には、これをサポートするためのオプションがいくつかあります。

  • これらのモデルを同じプロセス内で実行
  • 各モデルを、同じデバイスまたは別のデバイスのパーティションや別のプロセス内で実行
  • 上記内容の組合せ

EB GUIDE GTF は、これらのモデルの同期を、データレイヤー上で自動的に実施します。つまり、複数のモデルが関係するデータプールプロパティやイベントの更新は、自動的に共有・同期されます。EB GUIDE GTF インスタンスが IPC で接続されている場合、関係したすべての EB GUIDE GTF インスタンスのデータレイヤーを、当社の IPC サービスが同期します。

これにより、1 つのモデルに対する責任を理解・維持しやすいレベルへと軽減するだけでなく、チーム間プロジェクトでのコラボレーションの人員も縮小することができます。もう 1 つのメリットは、このようなモデルの動的ライフサイクルです。HMI の一部分だけを更新する必要がある場合、そのモデルをシャットダウンして、新らしいモデルを起動するだけで済みます。これら全てをオンザフライで実行できます。

未来

EB GUIDE の今後のリリースでは複数モデルの管理を、特にモデラー向けにさらに簡素化します。EB GUIDE プロジェクトのインターフェースを明示的に定義することにより、モデラーはこの定義をインポート/エクスポートできるようになります。このメカニズムを使用して、モデル間のやり取りを明示的に指定できます。これにより、特にモデラーとチームのコラボレーションが改善され、素晴らしい HMI 体験を作成することができます。