Dear Great Hackers

  1. イベント
  1. タイアップ

ソフトウェアエンジニアが「トヨタ」の伝統を革新して、ソフトとハードの融合した「モノづくり」を推進する時代へ

ミッションに「幸せを量産する」を、ビジョンに「可動性を社会の可能性に変える」を掲げるトヨタ自動車。トヨタは「ソフトウェアファースト」の姿勢で、様々な開発にソフトウェア開発の考え方を取り入れようと、積極的に革新の種をまき続けているようです。

2021年2月2日に開かれたオンラインイベント「TOYOTA Developers Night~ソフトウェアエンジニアが革新するクルマ開発の伝統~」には、トヨタ自動車の制御電子プラットフォーム開発部 主査の長尾 洋平氏、制御ネットワーク・アーキ開発室室長の飯山 真一氏が登壇され、そんなトヨタの革新の種を育てようとする、現在のチャレンジの全体像をお話しくださいました。今回はこのイベントの概要をお伝えします。

プロフィール

長尾 洋平 (ながお ようへい)
トヨタ自動車株式会社
制御電子プラットフォーム開発部 主査
Woven CORE, Inc.
Senior Executive Advisor
2017年 トヨタ自動車へ中途入社。前職は電機メーカーにて自動車向け高信頼性ソフトウェアの製品開発に従事。開発したソフトウェアは今、街中を走っている自動車に搭載されている。トヨタに転職した理由は、「ソフトウェア部品ではなくクルマそのものを開発したい」という気持ちを抑えきれなかったため。入社後は自動運転関連システム設計、自動車のシステム設計に従事。

 

飯山 真一(いいやま しんいち)
トヨタ自動車株式会社
制御電子プラットフォーム開発部 制御ネットワーク・アーキ開発室 室長 兼 情報セキュリティ推進室 主査
2005年トヨタ自動車に新卒で入社。車載ネットワーク技術・ソフトウェア部品に関する研究・先行開発・量産開発に従事。

「ソフトウェア技術者」がトヨタ自動車で働く理由とは?

今回の中継場所「トヨタ自動車技術本館」

「TOYOTA Developers Night~ソフトウェアエンジニアが革新するクルマ開発の伝統~」は、登壇者の制御電子プラットフォーム開発部 制御ネットワーク・アーキ開発室 室長 兼 情報セキュリティ推進室 主査の飯山真一氏(以下、飯山氏)と制御電子プラットフォーム開発部 主査 兼 Woven CORE, Inc. Senior Executive Advisor の長尾洋平氏(以下、長尾氏)からの主旨説明と自己紹介から幕を開けました。

はじめに飯山氏は、これまでの「TOYOTA Developers Night」が取り上げてきたテーマを振り返り、今回は、なかなか話されることがないトヨタのクルマ開発について、技術的な側面を中心に話したいと説明されました。飯山氏は、現在、クルマに搭載されたネットワークや情報セキュリティに関する開発と車両への適用を担当しており、2005年の入社から、クルマのネットワークを中心にソフトウェアの研究と先行開発に携わってきたといいます。

長尾氏は、2017年にトヨタ自動車に転職をしたと話します。以前は組み込み向けのコンパイラシステムなどを開発していたそうです。現在は、自動運転などの開発に携わっています。

ここで長尾氏は、今回の中継場所である「トヨタ自動車技術本館」(愛知県豊田市)について説明されました。トヨタ自動車の本社地区にあり、すぐ側にテストコースがある技術本館からの配信は、これまでほとんどなかったといいます。

「Why TOYOTA?」なぜ、トヨタを選んだか?

ここで、ソフトウェア技術者の長尾氏と飯山氏のおふたりが、なぜトヨタ自動車で働いているのか、その動機や理由が紹介されました。長尾氏は、子どもの頃から「ミニ四駆」などに触れるクルマ好きだったから、といいます。そのため、転職前にも自動車に関わるソフトウェア開発の仕事をされていたそうです。しかし、やはりセットメーカーとしてクルマそのものを作りたいという気持ちが強くなり、トヨタへの転職を決意したといいます。トヨタを選んだのは、事業規模の大きさ、そして、ハイブリッド、エンジン、水素に代表される技術の幅広さに惹かれたからだといいます。「talentbook」という、トヨタで働くエンジニアのインタビューが掲載されているWEBサイトでも、その想いを語っているそうです。

「クルマづくりに変革を。ソフトとハードの融合で目指す真のソフトウェアファースト」(talentbook/トヨタ自動車株式会社)
https://www.talent-book.jp/toyota/stories/47415

飯山氏は、学生時代からロボット、電子工作、プログラミングを楽しんでいたといいます。就職にあたっては、次節で紹介する、クルマのもつ「特殊性」に惹かれ、自動車業界を選んだのだそうです。そして、自分の技術を使って、安全技術をより多くのクルマに搭載し、社会全体の交通事故を減らしていきたいという夢を実現するためにトヨタを選んだといいます。トヨタは他社より高いシェアがあるため、夢を実現しやすいのではないかと考えた、と飯山氏は話しました。

クルマという製品開発の面白さと特殊性とは?

飯山氏はここで、ご自身が自動車業界に入った動機のひとつ、クルマの「特殊性」ついて説明されました。まず、クルマは家電と航空機、宇宙機、電車のすべての特徴を兼ね備えている製品だといいます。

結果が人命に関わるという点で、航空機、宇宙機、電車には高い信頼性とリアルタイム性が求められます。これらは訓練された人が操作して、ほぼ決められた経路の中で運用されることが多いのに対し、クルマは、同程度の信頼性やリアルタイム性が求められるにも関わらず、誰もが自由に運転でき、家電のように身近な存在です。

つまり、誰もが使えるという意味では、家電のような存在であるにも関わらず、航空機や宇宙機と同じレベルの信頼性、リアルタイム性を求められるのが、クルマという製品のもつ特殊性であると飯山氏はいいます。

また、3万点を超える部品で作られているクルマには多種多様な技術が凝縮されています。クルマの開発に携わることで幅広い技術を経験するチャンスがあり、ものを動かす楽しさが感じられると飯山氏は語ります。これだけの部品数があると、自動車メーカー1社だけで作ることはできません。多くの関係会社と繋がってひとつのものを作り上げていく、その過程そのものが味わえるのがクルマという製品開発の面白さのひとつだと飯山氏はいいます。

トヨタ車のリアルな中身

先進的な製品開発を支える「電子装備部品」

これまでの「TOYOTA Developers Night」で解説されてきた自動運転、MaaS、UX/UIといった先端技術開発を“縁の下の力持ち”として支えているのが電子装備部品です。

クルマの部品は、クルマそのものを動かすエンジン、トランスミッション、サスペンションといった機械部品(メカ)の部分と、それらを電気的に制御する電子装備部品に大きく分けられると飯山氏は説明されます。自動運転を実現したり、時代に即した安全安心なクルマを実現したりするために、電子装備部品についても、日々研究開発が続けられているそうです。

クルマの中の「自律分散型」コンピュータネットワークの面白さ

クルマの中には電子装備部品で構成されたコンピュータネットワークがあります。図の左側は現在のトヨタ車の中で最も複雑な構成のひとつだと飯山氏はいいます。右は、古いモデルのクルマの中にある電線(ワイヤーハーネス)だけを抜き出した写真だそうです。

左側の図に書かれている黄色い四角は「ECU(Electronic Control Unit)」と呼ばれるコンピュータを示しています。例えばエンジンを制御するコンピュータ、ブレーキを制御するコンピュータ、エアコンを制御するコンピュータなど、それぞれの役割を担っています。この図の車両の場合には、90個以上のECUが「CAN(Controller Area Network)」と呼ばれる通信プロトコルを使って、情報を交換して動作しているのだそうです。

ECUの数は、2000年頃には10個程度だったのが、2017年頃には約190種類まで増えており、取り扱うデータも同じ2017年時点で1万3000種類ほどになり、大規模化・複雑化の一途をたどっていると飯山氏は指摘します。

面白いのは、この車両全体の90個のECUを統合制御するコンピュータは存在せず、各コンピュータが独立して自律的に動いているということです。それでも、実際には、まるで車両全体の応答を制御している『何か』が動いているように感じられる、そうでないとクルマが動かないと飯山氏はいいます。ある意味で、非常に高度な自律分散型の制御を行っているといえるのだそうです。

そして、これらの統合制御は簡単ではないと飯山氏は語ります。なぜなら、各コンピュータに入ったソフトウェアの性質、信頼性、構造が異なるからだといいます。

ECU等の機能統合化へ流れは世界的に進んでいる

しかし、世界的な流れとしては、機能を統合していく動きが進んでいると飯山氏は話します。究極的には、いくつかの高性能コンピュータに、ほとんどの機能が集約され、手足となるセンサー、アクチュエーターの制御をする姿になっていくと考えられているそうです。

そうなることで、これまでクラウド上でしか捌けなかったデータ処理がクルマで処理されるようになり、必要なものだけがクラウドにアップされ、常にクラウドと連携しながら動作することが可能になります。

クルマの中にあるネットワークは先ほど話に出た通信規格CANが主流でしたが、いずれイーサネット(Ethernet)が主流になっていくと飯山氏は予想されました。

ソフトウェア開発のパターンはけっこう複雑

次に、クルマのソフトウェア開発の複雑さを紹介したいと飯山氏は上の図を示されました。これは、クルマのシステムのスペックと、制御するソフトウェアの環境その模式的に表したものだといいます。

クルマを開発するにあたって最上流の仕様書として、図の左上にある「車両仕様」が決められるそうです。ここには車両諸元や部品に対する要求が書かれています。この仕様書に書かれているパラメーター、情報だけではクルマは作れないため、この仕様にさらに情報を加えていくことになります。この取捨選択の際に、図の中央にあるバリエーションポイントが用いられます。これらの値によってクルマのソフトの実際の動作の組み合わせが決まっていきます。

飯山氏は、このバリエーションポイントが1台のクルマについて、だいたい1万個あると推定しているそうです。つまり、1万のパラメーターを設定しないと、クルマのソフトウェアは作れないことになります。エンジニアは、このような膨大な情報を組み合わせてクルマのソフトウェア開発を進めているといいます。

ソフトウェア技術者が活躍するステージの広がり

クルマのライフサイクル

ここで、話者が長尾氏に変わり、クルマのライフサイクル図が示されました。

長尾氏は、クルマに限らず、工業製品には企画から設計、製造、販売、運用、破棄もしくはリサイクルといったライフサイクルが存在するといいます。クルマのように規模が大きいと、ライフサイクルを正しく支えていくことが困難になるのだそうです。正しく支えるためには、クルマというシステムを正しく理解することが大事だといいます。

理解のためには、3つの要素が大切だと長尾氏は指摘されます。ひとつは、図の左下にある「クルマ全体のシステム設計」、次に右下の「システム設計情報のDX(Just in Time化)」、そして、それぞれの情報を正しく伝えるための「開発プラットフォーム(OS、シミュレーション)」です。トヨタ自動車ではこれらの要素におけるソフトウェアの重要性が増していると認識しているといいます。

(1)クルマ全体のシステム設計

これまで、トヨタのクルマ開発は多くのサプライヤーとともに、機械部品開発やメカトロニクス部品開発を中心に専門領域を伸ばしてきたと長尾氏はいいます。このようなトヨタ自動車が育ててきた専門領域は制御設計と呼ばれ、MBD(Model-based design)という手法が主に使われます。しかし、今後、クルマの開発規模が大きくなってくると、機械やメカの延長線上にはない、新しい専門領域としてシステム開発が必要になってきます。

トヨタでは、このシステム開発において、MBSE(Model-Based Systems Engineering)など、システムズエンジニアリングの考え方を取り入れてシステム開発にチャレンジしているといいます。長尾氏はソフトウェアの力を最大限に活用しながら革新していきたいと述べられました。

ここで長尾氏は、ソフトウェアの話と、今、紹介しているクルマ全体のシステム設計の話が繋がらないと感じる人もいるのではないかと話されました。それに対する長尾氏の見解は、ソフトウェア工学の技術はシステム設計にも有効であるということです。例えば、システムズエンジニアリングにおける設計手法のひとつ「オブジェクト指向設計」は、システム設計でも有効だと考えているといいます。

長尾氏は、私見が入っていると補足された上で、ソフトウェアとシステム設計で、他にも同じように使える技術があると示されました。それは、以下のようなものです。

  • アジャイル開発手法のプラクティス(56種類)
  • プロダクトライン開発
  • フィーチャーツリー
  • テスト戦略とテスト手法の選択
  • 品質管理を含むプロセス(ISO26262)

ここで長尾氏は、上記のようなソフトウェアの考え方やプラクティスが、クルマの開発に適用されるイメージ図を示されました。

この図の青いVの部分が、V字開発を表し、上部にはシステムデザイン、中央にサブシステムデザイン、下にソフトウェアの部品やセンサーの開発が記されています。V字の反対側には、テスト設計が並んでいます。

このV字開発にテスト駆動開発というアジャイルのプラクティスと、継続的インテグレーションを組み合わせると次の図のようになります。

左側は先ほどのV字の仕様などを設計するパートで、ここで作った設計に応じて先に右側でテストを作り、テスト駆動開発を実施します。右側の赤い丸はテストの繰り返しを意味しています。

トヨタとして大事なのは、まず、このプラクティスを、いわゆる一番下にある物品から車両のレベルまで、包括的に日々実行して自動化し、品質状態を「見える化」することです。最終的に得られた結果をAIが分析して、各フェーズのフィードバックを戦略的テストに昇華していくことが必要だと長尾氏は話します。このようにソフトウェアのプラクティスをシステム設計に応用していくことがイメージされています。

次に、クルマのシステム設計の具体例として、「Lexus F-SPORT」専用メーターが示されました。この丸い部分がメカ的に動くようになっており、デジタル表示と連動するのだそうです。長尾氏は、造形美とメカとしての動きとデジタルの3要素が融合したメーターだといいます。

メーターは、単にかっこよく表示すればいい部品ではないそうです。法律で表示しなければならない内容や大きさが細かく決められています。国によっても違いがあり、こういった差異を正しく世に出すためにはシステムを正しく理解する必要があるといいます。

そのため、システム開発時には、ソフトウェアの世界で発祥した、UML(Unified Modeling Language:統一モデリング言語)やSysML(Systems Modeling Language)といった、世界の誰が見ても同じ意味にしか取れないように書けるモデリング言語をメーター等のシステム設計にも応用していくことを考えているそうです。これは、工学的な手法をシステム設計でも活用し、システム設計の品質をより確実なものにする狙いがあるといいます。

このように、ソフトウェアに関する知識はハードウェアが関係するシステム設計でも応用できると長尾氏は強調されました。

つづいて、画面には「20」「600」「400」「50」と4つの数字が映されました。長尾氏は、先ほどのメーター設計の規模を表している「生々しい数字」だといいます。

この答えは、上の2つが静的な構造を表すため設計で使っている数字で、下の2つがメーターの動的な動きを表すため設計で使っている数字だそうです。クラスの数、シーケンスの数、動的な設計を表現するアクティビティー率を意味しています。

長尾氏は、この数値に補足をされました。例として、600のクラスに、10のメソッドがあるとして、この10のメソッドが単純にそれぞれ100行ずつとすると、単純な掛け算でこれだけでも60万行のソースコードを作らなければいけないということになるといいます。他にもプラスアルファされる要素もありますが、システム開発の規模の大きさがイメージできる数値として紹介されたとのことでした。

長尾氏は、トヨタがこのようにシステムデザインをしっかり進めることは、チャレンジとして画期的だと話されました。

(2)システム設計情報のDX

ここで話者が飯山氏に変わり、トヨタ内で進めているDX(デジタルトランスフォーメーション)プロジェクトに話題が移りました。これは、クルマのシステムの設計情報を管理して、より品質が良いシステムを早く開発するため、IT基盤を自分たちの力で産み育てようというプロジェクトで、「TITAN(タイタン)」と呼ばれています。巨大なクルマのシステム開発を支えるプロジェクトという意味で、ギリシア神話のティーターン神族の一柱、天空を支えているとされるアトラースという巨人から命名したそうです。

飯山氏は、このプロジェクトで、取りかかっている内容の例として、通信仕様の開発期間を圧倒的に(1/1000)短縮することをあげられました。IT基盤を自分たちで作るということは他の企業にとってはごく当たり前のことでも、現在のトヨタにとっては画期的なことだと飯山氏は話します。

これは、良い製品を素早く作るには、製品を作る道具を自分たちのプロセスに合わせて作り込むことが重要になっているからだといいます。このように、自分たちで道具を用意することで、ここまで紹介されてきたシステム設計情報が複雑に絡み合う問題を素早く、柔軟に解くことが期待されています。

最終的には、クルマのユーザーに対して、品質の良い製品やサービスをより安く、より早く提供できるようになると飯山氏は話されました。

TITANプロジェクトでは、開始当時、クルマのシステム設計情報の見える化を進めたそうです。これにより、システム設計者も知らないようなデータ同士の繋がりがあることが分ったといいます。このように情報を入手して、分析し、ソフトウェアを更新していく手法として、TITANプロジェクトではスクラム手法を採用しているそうです。飯山氏によると、現在はCOVID-19感染症拡大の影響もあり、全員が自宅からほぼフルリモートという状況でスクラムを実践しているといいます。

スクラムの採用によって、プロジェクトは活性化しており、成功事例といえる状況になっていると飯山氏はいいます。ただ、実際の車両開発の多くはこのような状況ではなく、たまたま、本プロジェクトにおいてフルリモートで開発できる条件が揃っていたので実施できているとも付け加えられました。

(3)開発プラットフォーム

ここから、長尾氏が話を引き継ぎました。

2020年、トヨタがスマートシティを作ると発表し、話題になりました。その「Woven City」を創る「Woven Planet」という関連会社と、現在、開発プラットフォーム「Arene」の開発を進めているそうです。「Arene」は、地球上で最もプログラミングしやすい自動車の提供を目指す開発プラットフォームだと長尾氏は語ります。

「みんなプロになろうよ」というメッセージに込められた想い

「プロになろう!」

2019年年頭にトヨタ社長の豊田章男氏が「みんなプロになろうよ」という話を社員に向けて行いました。これは「トヨタイムズ」というウェブサイトでもYouTubeでも公開されているそうです。

INSIDE TOYOTA #1 豊田章男からのメッセージ(YouTube)
https://www.youtube.com/watch?v=vJ8DsIiSb-U

長尾氏は、一芸に秀でたプロという意味に加えて、トヨタでは、まわりにも良い影響を与えられる人物が求められているといいます。

以前は、スペシャリストというよりもジェネラリストになることを「よし」とする風潮があったそうです。しかし、現在はソフトウェアの力を使って、よりよいクルマを作る流れが社内にあるといいます。今のトヨタは、スペシャリストになりたいソフトウェアエンジニアにとって大きなチャンス・やりがいがあると長尾氏は話されました。システム設計から先ほどご紹介しました実装まで幅広く技術を使える選択肢が増えていて、仕事の楽しさが広がっているといいます。

トヨタの経営理念

トヨタの経営理念を表現している円錐形にも、ミッション「幸せを量産する」、ビジョン「可動性を社会の可能性に変える」を実現するためにソフトとハードが対等に記されており、今後、トヨタではソフトウェアエンジニアの活躍の場が広がっていくと長尾氏は話されました。

質疑応答

クルマの設計においてソフトウェアでカバーできていない領域は?
セッション終了後、飯山氏、長尾氏と参加者との質疑応答が行われました。そこから何点かをご紹介します。

はじめの質問は、クルマの設計において、ソフトウェアの領域が広くなった現在、まだソフトウェアでカバーできていない領域にはどのようなものがあるのでしょうか? というものでした。

これに長尾氏は、物理現象をバーチャルにシミュレーションするという行為が大変で、ソフトウェアの領域がまだ技術的には追いついてないと話されました。

トヨタで役に立つプログラミングスキルは?

次に、トヨタで役に立つプログラミングスキルは何か、という質問がありました。これに飯山氏はTITANではPythonを使用していると話され、実際は、言語に関係なくソフトウェアの考え方や取り組み方の方が大事であると説明されました。これは、ひとつのプログラミング言語に習熟していれば、他の言語も比較的簡単にマスターできると考えられていることや、ソフトウェアに対する考え方を重視しているためだといいます。

CANからイーサネットに移行する利点は?

通信プロトコル「CAN」からからイーサネットに移行するメリットは? という質問がありました。これに飯山氏は、イーサネットを利用することで、汎用的なネットワーク機器がクルマに搭載できるようになることと、大量のデータを扱うことができるようになる点を指摘されました。

今、CANの通信速度は、2Mbpsほどのため、それよりも速度が出るイーサネットには利点が多いといいます。ただ、コストなどの問題もあり、急に移行はしていかないとも付け加えられました。

トヨタは「ソフトウェアファースト」の時代へ

最後に、飯山氏、長尾氏から、今後、やっていきたいこと、視聴者に伝えたいことについてメッセージがありました。

飯山氏は、意気込みに近い考えであると前置きされてから、トヨタが「ソフトウェアファースト」というキーワードのもと、ソフトウェア開発に力を入れ、強みであるハードとの融合を目指す会社に変わっていることを理解してもらえたら嬉しいといいます。

TITANプロジェクトでは、採用にあたって「コーディングチャレンジ」を実施しているといいます。実際にコーディングの問題を出して、ソフトウェアスキルを確かめる採用にも取り組んでいるそうです。このような取り組みを通じて、これからトヨタは変わっていこうという気持ちがあるので、ぜひ応援していただけたらと話されました。

長尾氏は、ハードウェアだけでなくソフトウェア側も大事にしていくという会社の方針を受けつつ、やりがいを感じながら、しっかりやっていきたいと最後に語ってくださいました。

編集後記

ハードウェアとソフトウェアの融合。口にしていうのは簡単ですが、それを実現するためには膨大な数のステップを乗りこえなければならないことが分かりました。その壁に怯むことなく、着実に前進を続ける姿勢には私自身、学ぶところが多く、気づきの得られたセッションとなりました。ソフトウェアエンジニアで、トヨタで新たなモノづくりに挑んでみたいと思われた方も多いのではないでしょうか? 

これからトヨタが見せてくれる未来のクルマ、そしてソフトウェアのあり方に期待して注目を続けたいと思えたイベントでした。

文:神田 富士晴


「Qiita×TOYOTA」コラボレーションサイト公開中!

「未来のモビリティ社会を実現」をテーマとしたトヨタ自動車とのコラボレーションサイト公開中!
トヨタ自動車の最新技術情報や取り組み事例などを紹介しています
コラボレーションサイトへ

イベントの最近記事

  1. DX時代に注目される開発者体験(Developer eXperience)の重要性。「Qi…

  2. 変化の激しい時代にあって再注目されるTDDの重要性。「Qiita × Uzabase Te…

  3. 「QiitaAzure記事投稿キャンペーン」月間Contributor発表!

  4. 運用リソースを最小化する、究極のAIセキュリティ人材 Cyber AI Analystとは…

  5. いまさら聞けないSAM(ソフトウェア資産管理)の取り組み方

関連記事

PAGE TOP