ニュース
トヨタ自動車傘下の旧TRI-ADのウーブン・アルファ、GitHubとオープンソース・ソフトウェア開発で提携して開発を加速へ
2021年1月29日 12:22
トヨタ自動車傘下のオープンソース・ソフトウェア開発を行なっているウーブン・アルファは1月29日、オープンソース開発を加速するプラットフォームを提供するGitHubが2020年12月に米国で開催したイベント「GitHub Universe 2020」の見所を紹介するデジタルイベントに登壇し、同社がどのようにしてオープンソースを活用しているのかを説明した。
GitHubの日本法人ギットハブ・ジャパンとウーブン・アルファによれば、自動車のソフトウェア開発は、すでにPCやスマートフォン向けのOSに匹敵するような1億行を超えるソースコード(ソフトウェアの設計図)をプログラマが書く時代に突入しており、例えばOSや地図など誰が作っても同じものにならざるを得ない「非競争領域」では、オープンソースと呼ばれるソースコードを世の中に広く公開して問題を修正してもらうなどすることで、開発を加速する手法が一般的になりつつあるという。
ウーブン・アルファはその開発にGitHubが提供する開発環境を活用して、機能安全の実現やソフトウェア開発の加速を実現していくという。
TRI-ADから別れた2つの会社、トヨタ向けのソフトウェア開発を行なうウーブン・コアと、オープンソース向けのウーブン・アルファ
ウーブン・プラネット・ホールディングスは、以前はトヨタ・リサーチ・インスティテュート・アドバンスト・デベロップメント(TRI-AD)としてトヨタの自動運転技術の開発、それらに向けたOSやソフトウェア開発を行なっている事業会社だったが、現在はトヨタ向けの自動運転技術の開発、実装、市場導入を行なうウーブン・コアと、そうした自動運転技術向けのOSやソフトウェアの基礎的な技術の開発を行なうウーブン・アルファという2つの事業会社を所有する持ち株会社へと変貌を遂げている。
ウーブン・プラネット・ホールディングスの傘下企業のウーブン・アルファは、Arene(アリーン)と呼ばれる自動車向けのオープンプラットフォームの開発、さらにはAutomated Mapping Platform(AMP)と呼ばれる高精度3次元マップの作成や共有を行なうオープンプラットフォームの開発を手掛けており、そうして開発されたソフトウェアのソースコード(ソフトウェアの設計図)はオープンソースとしてトヨタ向けのソフトウェアを開発するウーブン・コアだけでなく、競合となる他の自動車メーカーも含めて広く共有されるものとして開発が行なわれている。
そのウーブン・アルファは、オープンソースのソフトウェア開発環境を提供するGitHub(ギットハブ)と提携しており、同社の開発環境を利用してAreneやAMPの開発を行ない、ISO26262の機能安全の実装などの開発加速に役立てているという。GitHubの日本法人であるギットハブ・ジャパンが昨日開催した、2020年12月にグローバル向けに行なわれたバーチャル・イベント「GitHub Universe 2020」の見所を日本語で紹介するウェビナー「Best of GitHub Universe Live」では、ウーブン・アルファの担当者が登壇し、GitHub Advanced Security、CodeQLなどの同社のサービスをどのように活用しているか説明した。
競争領域と非競争領域に分離したソフトウェア開発、非競争領域はオープンソースへの移行が進む
GitHubの説明によれば、現在自動車用ソフトウェアのソースコード(ソフトウェアの設計図)は、1億行(ソースコードの量は何行のコードで書かれているかで示される)に達しており、PCやスマートフォン用のOSに匹敵するような行数に達しているという。その結果、ソフトウェアにバグ(英語で虫の意味から転じてソフトウェアの問題点のこと)が発生した時には、そのバグを発生させているコードがどこの部分なのか、迅速に発見して対処することがどんどん難しくなっている。このため、そうしたソースコードを効率よく管理して、ソフトウェアで問題が発生したときに、どこの行がそれに該当するのかを見つけていく必要がある。
従来そうしたソフトウェアの開発は、自動車メーカーやティアワンのサプライヤーの内部だけで行なわれ、ソースコードは企業秘密とされ外部に提供されるということは無かった。しかし、すでに述べたとおり1億行というソフトウェアのコードを管理運営していくには、膨大なリソース(具体的に言えば多くのプログラマ)が必要になり、自社でやろうとするとApple、Google、MicrosoftといったIT業界でPCやスマートフォンのOSを開発している企業に匹敵するようなプログラマを抱える必要が出てくる。しかし、現状そうした人材は奪い合いとういうのが現実で、そこまでのリソースを自動車メーカーやティアワンサプライヤーが抱えるのは難しいというのが現状だ。
そこで、現在自動車メーカーやティアワンサプライヤーで利用されているのが、オープンソースの活用だ。オープンソースとは、そのソフトウェアのソースコード(設計図)を、企業が自社だけで作成するのではなく、インターネット上でプログラマ集団にも参加してもらって開発する手法のことだ。そうして作成されたソースコードは他社にも広く公開する必要がある(つまり競合他社や個人などがそのソースコードを利用することができる)が、自社のプログラマだけでなく広く世界中の有志のプログラマに参加してもらうことで開発が促進できる。
企業にとって、従来は企業秘密だったソースコードを公開するなんて、という向きもあるとは思うが、現在オープンソースのソフトウェア開発は一般的に当たり前になりつつある。もっとも有名なオープンソースで開発されたソフトウェアは、Linux(リナックス)で、スマートフォン向けOSとなっているAndroidはLinuxがベースになって開発されていることはよく知られている事実だ。自動車業界でもオープンソースの活用は進んでおり、IVI(In-Vehicle Infotainment、いわゆるカーナビゲーションのこと)向けの開発に利用され、GENIVI AllianceやAutomotive Grade Linux(AGL)などのオープンソースの取り組みがよく知られている。
なぜ自動車でもオープンソースが当たり前になりつつあるのかと言えば、現在自動車のソフトウェア開発は競争領域(他社と競争してよりよいものを提供する領域)と非競争領域(他社と同じで構わない領域)に分離しつつあるからだ。
自動車メーカーにとっての競争領域は、UI(User Interface)ないしはUX(User eXperience)と呼ばれる、ユーザーによりよい体験を提供する分野で、例えば音声認識やパネルのデザインといったメーカーのアイデンティティに関わる部分だ。あるいは自動運転であれば、センサーからの情報を生かしてクルマにどのような動きをさせるかといった乗り心地などに関する部分なども競争領域になる。
それに対して、OS(基本ソフトウェア)や誰が作っても同じになりかねない高精度三次元地図などに関しては非競争領域になりつつあり、できるだけ低コストで問題が起きたときにはすぐに対処できるように、オープンソースのコードを活用する。このように競争領域に関しては引き続き自社で、そうでないものはオープンソースでというのがトレンドになっている。
旧TRD-AIになるウーブン・コアとウーブン・アルファの区分けもそれと同じだ。引き続きトヨタ自動車のために「競争領域」の自動運転のソフトウェアを開発するのがウーブン・コアで、「非競争領域」であるOS(Arene)や地図(AMP)をオープンソースで開発するのがウーブン・アルファとなる。
ウーブン・アルファではGitHubのサービスを活用してオープンソース・ソフトウェア開発を加速
そうしたウーブン・アルファのオープンソース・ソフトウェア開発は、GitHubが提供するオープンソースのソフトウェア開発環境上で行なわれている。
GitHubは元々オープンソースのソフトウェア開発を行なっているプログラマに好まれて発展してきたWeb上のコミニティサイトから発展したサービス。というのも、他のプログラマが書いたソースコードなどがGitHub上に多数公開されており、自分がこれから開発しようというソフトウェアにそれを組み込んだり、それを参考にして開発することなどができるからだ。また、オープンソースではそうして開発したソースコードを、一定の手順に従って公開する必要があるのだが、そうしたことも簡単にできるため、多くのオープンソースでソフトウェアを開発しているプログラマがGitHubのサービスを利用している。
なお、GitHubの管理を行なっているGitHub社は、元々は独立起業だったが、2018年にMicrosoftに買収され、現在はMicrosoft傘下の独立企業として運営されている。
そのGitHubが2020年12月にグローバル向けに行なったイベント「GitHub Universe 2020」に登壇したのが、ウーブン・アルファ シニアエンジニア ダン・へバード氏、ウーブン・アルファ シニア・インフラストラクチャ・エンジニア グエン・レトーナ氏の2人。ウーブン・アルファでオープンソースの開発に携わっている2人は、GitHubを利用して開発を行なうことで、従来よりも効率よくオープンソースの開発が行なえていると説明した。
へバード氏は「重要なことはソフトウェア開発者がいかに快適に開発できるかということにある。GitHubのGitHub Advanced Securityなどを利用することで、ISO 26262の機能安全やISO 21434のサイバーセキュリティの基準を満たすための実装が容易になる。自動車向けのソフトウェア開発ではこの2つを満たすことが重要なことだ」と述べ、自動車メーカーにとってソフトウェア開発で現在重要になっている機能安全の実現とサイバーセキュリティへの対処という2つの課題に対応するのに、GitHubが提供しているGitHub Advanced Securityが大きく役立っているとした。
レトーナ氏はAUTOSAR C++14やSEI CERT C++ 134などの規格向けにコードをチェックするための仕組みとして、GitHubのCodeQLやTektonなどの仕組みを利用した「Code to Car」という取り組みを説明した。自動車のソフトウェア開発では、コードをプログラマが書いて、それを自動車のハードウェア上で実行できる形式に変換(コンパイルと呼ばれる)し、シミュレータや実際のハードウェア上で走らせてテストして動作などを確認していく。その時に、そうしたセキュリティや機能安全などの規格にマッチしているか、あるいは規制当局の規定にマッチしているかなどを厳しくチェックしていく必要がある。その時にGitHubが提供するGitHub Advanced Securityというサービスを利用すると、自動車向け専用のルールを適用してコードをチェックすることが可能になるのだという。それにより、オープンソースでソフトウェアを開発する場合にも、自動車向けの規制に適合したソフトウェアコードをこれまでよりも迅速に作ることができるとトレーナ氏は説明した。
最後にへバード氏が「現在ウーブン・アルファではこうしたオープンソースのソフトウェア開発を続けており、チームは拡大している。興味があるプログラマはぜひ参加してほしい」と述べ、視聴しているプログラマにウーブン・アルファの開発チームへの参加を呼びかけて講演をまとめた。