Unityと実現する「自動運転の民主化」——ティアフォーがオープンソースシミュレーター「AWSIM」の開発にUnityを導入した理由

自動運転を、誰もが開発できるオープンな環境へ──ビジョンに「自動運転の民主化」を掲げ、自動運転用のオープンソースソフトウェア「Autoware」の開発などを手掛けている株式会社ティアフォー。

同社は、自動運転システムの開発と評価に不可欠な「シミュレーター」を、Unityを活用して自社開発しました。それが、オープンソースの自動運転シミュレーター「AWSIM(オーシム)」です。

本記事では、ティアフォーでシミュレーションチームに所属し、「AWSIM」の開発リードを務める牧野鷹秋氏へインタビュー。Autowareの開発を加速させ、そのエコシステムを拡大する上で中核的な役割を担うAWSIMの開発にUnityが導入された理由や、Unityがもたらしたメリット、そして同社独自のUnity活用術を紹介します。

「自動運転の民主化」の実現には、シミュレーターが不可欠

左:AWSIM 右:Autoware

ティアフォーが「Autoware」を公開したのは、2015年8月のことでした。自動運転OSの開発を進める上で、挙動や正確性を確かめるためのシミュレーションは欠かせません。しかし、実車両や専用のテストコースを用いた実証実験には多大なコストを要するだけでなく、安全性に関するリスクも常につきまといます。

シミュレーターを活用すれば、リスクやコストを低減できるだけでなく、昼夜を問わず継続的にテストを実行できるため、開発を大規模に展開させることにもつながります。しかし、牧野氏は「2020年頃の既存シミュレーターには、Autowareの開発に用いる上で多くの課題があった」と振り返ります。

その理由は、「自動運転OSを前提としたシミュレーション開発がされていなかった」ことにありました。

Autowareは、ロボット業界で広く使われる「ROS2(Robot Operating System 2)」という通信ミドルウェアを使用しています。そのため、開発チームからは「できるだけ実車と同じ通信プロトコルでシミュレーターと通信したい」という要望がありました。これにより、実車とシミュレーター間でデータ変換を行う手間を省き、よりリアルな環境を再現できるからです。しかし、既存のシミュレーターの多くは独自のプロトコルを採用しており、この接続が大きな課題の1つとなっていました。

また、自動運転システムは、LiDAR(※ライダー、Light Detection And Rangingの略称。近赤外レーザーなどを対象物に照射し、その反射光を光センサでとらえることで距離を測定するリモートセンシング技術)を用いて周囲の点群データを取得し、自己位置推定などに利用します。当時の既存シミュレーターは、このLiDARの処理がCPUベースで実装されていて動作が遅かったり、コンフィグが足りずに精度が不足しているといった課題を抱えていました。さらに、一部のシミュレーターのカメラセンサーでは信号認識が行えないといった、自動運転のシミュレーションに必須の機能が不足しているケースがありました。

牧野氏いわく「一部の機能に限定すれば、活用できるシミュレーターも存在した」そうですが、2020年当時、Autowareと接続し、一連の自動運転プロセスのシミュレーションを完結させることができるシミュレーターは存在しなかったのです。

「リファレンス」としてのAWSIM

これらの課題に直面し、ティアフォーは「既存のシミュレーターを組み合わせるよりも、自分たちで開発・実装した方がよい」という結論に至りました。

牧野氏はAWSIM最大の特徴を「オープンソースであること」と、「Autowareと最適に接続されていること」としています。

オープンソースにすることで、他の企業や研究機関などもソースコードを見ながら開発に参加することが可能になり、エコシステム全体を巻き込んでいくという狙いがありました。「Autoware自体もオープンソースであるため、自動運転OSとそのシミュレーター共に見通しの良い、オープンな開発環境を提供したいと思った」と牧野氏は決断の背景を述べます。

また、誰でもAutowareのシミュレーションをAWSIMで行えるように予め最適にインテグされたデモシミュレーションを公開しています。シミュレーターと自動運転OSをインテグする作業は学習コストの高い作業ですが、これらの作業を必要とせず、誰でもAutowareと接続して一連の自動運転プロセスをシミュレーション可能にしています。

さらに、ティアフォーはAWSIMを単なるシミュレーターとしてではなく、一種の「リファレンス」として位置づけています。AWSIMは、Autowareとシミュレーターがどのようなインターフェースで接続されるべきかを示す「リファレンス」としての役割を果たしているのです。

「今後、自動運転に関わる企業や大学などがAutowareとの接続を念頭に置いたシミュレーターを開発する際、AWSIMがリファレンスとして道筋を示し、結果として将来的にさまざまなコラボレーションが生み出されることを期待したい」と牧野氏は言います。

開発ツールにUnityを選定した5つの理由

AWSIMの開発画面

シミュレーターを自社開発するにあたり、ティアフォーはまず最適な開発ツールの選定に入りました。自動運転シミュレーターには、次のような厳しい要件が求められます。

・機能面:車両制御、高精度なセンサーシミュレーション、交通量や走行環境の再現、実車同様の通信プロトコル(ROS2)の模擬。
・性能面:物理エンジンの正確性、レンダリング機能の性能、大量のオブジェクトを安定的に処理する能力、外部ライブラリとの連携性

これらの要件を総合的に高いレベルで満たす必要があったため、 高いパフォーマンスと柔軟性を持つゲームエンジンに注目しました。比較検討の結果、Unityの採用を決定。牧野氏は、具体的な採用理由として以下の5つを挙げています。

1つ目は、「開発スピードの速さ」です。「Unityは物理エンジンやレンダラーが使いやすい形で統合されており、実装にフォーカスできる。シーンやゲームオブジェクトなどベースとなる機能が洗練されています。加えて、メイン言語としてC#を採用し、モダンで高機能な開発環境を提供してくれます。」と牧野氏。素早くプロトタイプを作成できることはR&D用途にも向いています。

2つ目の理由は「バランスのとれたAPI」。基本から応用までバランスのとれた機能が用意されていることです。牧野氏は「洗練された基本機能がベースとしてあるが、必要に応じてDOTSを使用したさらなるパフォーマンス向上やSRPのカスタムレンダリングなどの応用レベルの機能が豊富に用意されている」と言います。

3つ目の理由が「パフォーマンスの高さと柔軟性」。開発を進める上で大きな課題となる可能性があった、グラフィックス処理がSRP(スクリプタブルレンダーパイプライン)によってカスタム可能であり「クオリティを優先するか、パフォーマンスを優先するか」を柔軟に選択できること、さらにDOTS(Data-Oriented Technology Stack)により、交通車両など多数のオブジェクトを効率的に処理できるパフォーマンスの高さも評価されました。

4つ目の理由は「ナレッジと人材の豊富さ」です。「Unityは圧倒的なユーザー数と大きなコミュニティを有しており、サポート体制も充実しているため、開発に必要なナレッジやノウハウが容易に得られる。また、ユーザー数の多さは採用にも有利に働くと思った」と牧野氏。また、ゲーム分野だけでなく、ロボット産業や産業分野での活用事例が多かったことも、AWSIM開発へのUnity導入を後押ししました。

5つ目の理由は「誰でも使用できてマルチプラットフォーム対応」であること。Unityは誰でもすぐに開発を始めることができるゲームエンジンであり、オープンソースプロジェクトとの相性は抜群です。加えて、AutowareとAWSIMの開発環境はLinux(Ubuntu)ですが、UnityはLinuxをサポートしています。「Linuxでゲームエンジンを使用するユーザーは決して多くないと思うが、安定してサポートされていて驚いた」と牧野氏。

オープンソースだからこその制約も。自動運転シミュレーターならではの課題

AWSIMの開発は、リリース前はコアメンバーで進められ、現在(2025年10月時点)も海外メンバー含め少数精鋭チームで開発が続けられています。「産業用途や研究用途において、Unityのようなゲームエンジンを活用して迅速に開発を進めるスタイルは非常に有効である」と牧野氏。

しかし、その開発過程ではいくつかの課題に直面しました。

「オープンソースだからこその制約」がその一つです。プロダクトをオープンソースとして公開するため、利用できるライブラリや外部アセットには制約がありました。この課題に対し、ティアフォーはAutowareを発展させるために設立した業界団体「AWF(The Autoware Foundation)」に加盟するポーランドの企業(Robotec ai)と協働し、ROS2をネイティブに扱える「ros2-for-unity」や、NVIDIA OptiXを用いたレイトレーシングを可能にする「Robotec-GPU-Lidar」といったライブラリを開発・活用することで対応しました。

また、開発環境のOSに起因する課題にも直面。AutowareはUbuntuで動作するので、AWSIMの動作環境も必然的にUbuntuとなりますが、Ubuntuでは外部デバイスのドライバがサポートされていないケースが多くありました。例えば、運転操作のシミュレーションに使用するステアリングホイールコントローラーはWindowsでのみサポートされていたこと。この問題は、UbuntuとUnityの組み合わせで動作する独自のドライバを開発することで解消されました。

基本機能を応用した課題解決術

Unityの出力を実機のカメラセンサーで撮像

そして、「自動運転シミュレーション特有の高負荷」も大きな壁となりました。

たとえば、自動運転車は周囲360度を監視するために多数のカメラを搭載します。そのため、AWSIMではカメラを8台以上同時に扱うケースがあり、通常のゲームでは想定されていないほど高い処理負荷が生じます。「一般的なゲーム開発で用いられるカリングやLODなどは周囲のオブジェクトに変化を与えてしまうため、取得できるセンサーデータに影響を与えてしまうこともあります。そのため、パフォーマンスを出すには様々な工夫が必要だった」と牧野氏。そのため、自動運転シミュレーションに特化した独自のリソース管理が求められました。

牧野氏らAWSIM開発チームは、このような課題をUnityの機能を最大限に活用することで乗り越えていきました。

まずマルチカメラレンダリングの課題に関してはカメラ毎にフレームをずらしてレンダリングさせ、バッチレンダリング時のスパイクを回避させました。さらに負荷のかかるシミュレーションでは自動運転OS含めてシステム全体でタイムスケールを調整可能にし、1フレームにかけられるリソースを増やすことを可能にしました。他にもアセット自体を最適化したり、1つのプロジェクトでレンダリングパイプラインの切り替えを可能にするなどして課題を解決しています。

その他の課題もUnityの機能をフル活用することで乗り越えています。例えば、多数の交通車両や歩行者をリアルタイムに動作させる機能は、JobSystemを利用してパフォーマンスを向上させたり、車両の実装についてはUnityの標準物理エンジンであるPhysXを使用しつつ、WheelColliderはサスペンション部分の計算にのみ活用。一方で、駆動力などの計算は自前で実装することで、Autowareの車両モデルに最適化された加速度ベースの車両ダイナミクスを実現しています。

また、AWSIMを活用したHILS(Hardware In the Loop Simulation)にも取り組んでいます。AWSIMでは通常ROS2の範囲で実行するためセンサー実機や車載ECUといったハードウェアを含むシミュレーションはできない課題があります。そこで社内のComputingチームと協力し、センサーが出力するRaw packetを解析。Unityから実機同様のデータ出力を行うことで、ECUも含めたテストに取り組んでいます。また、マルチモニタに各カメラ映像のレンダリングを出力することで、カメラセンサー実機を使用したシミュレーションにも着手しています。

独自のライブラリを活用した機能開発

前述のNVIDIA OptiXを利用したレイトレーシングLiDARライブラリを作成。このライブラリをネイティブプラグイン化してUnityと連携させ、Autowareが自己位置推定などで使用する点群マップを出力する機能も開発しました。さらに、天候変化の再現にはVFX Graphを活用し、雨や雪によって生じる視界の“ノイズ”をリアルに再現する仕組みを実現しています。

また、共同開発した「ros2-for-unity」ライブラリにより、DDS(Data Distribution Service。ROS2の通信規格)や各種設定がUnityで直接利用可能に。これにより、ROS2を含むシミュレーション全体のタイムスケールを一元管理し、0.5倍速など、進行速度をコントロールする機能も実装。加えて牧野氏は、「『ros2-for-unity』が実現したことのうちで最も重要なのは、実車で使用しているメッセージング形式と通信プロトコルをそのまま高スループット・低遅延で用いられるようになったことで、可能な限り実車に近いシミュレーションを再現していること」だとしました。

AutowareのPRと品質向上に貢献!AWSIMがもたらした成果

Autoware周辺ツールも含めた統合シミュレーション –  左上:AWSIM, 右上:Autoware, 左下 : 運行計画, 右下: 車載アプリ

AWSIMがもたらした最大の成果は、「AWSIMのチュートリアルを見れば、誰でもAutowareとシミュレーターをつなげられる環境を用意できたこと」だと牧野氏は強調します。

AWSIMのローンチ以前、シミュレーションをするには、特定のシミュレーターとAutowareの両方を深く理解する必要があり、学習コストが非常に高い状態でした。AWSIMによってこの障壁は取り除かれ、Autowareの導入を検討している開発者がすぐにシミュレーションを始められるようになったのです。この点については、Autowareコミュニティからもポジティブなフィードバックが寄せられているそうです。この「開発環境の民主化」は、Autoware自体の訴求にも直結しました。

さらに、自動車に関連する研究者、技術者、学生などが所属する学術団体である自動車技術会が主催する「AIチャレンジ」の予選にAWSIMが採用。このイベントには例年数百名もの参加者が集まり、AWSIMはAutowareコミュニティの拡大と開発促進に大きく貢献しています。

ティアフォー社内においても、AWSIMはAutowareのリリース評価前に行うE2Eテスト(実際のユーザーが経験するであろうプロセスを再現し、アプリケーションのUXから自動運転OSのシステム要件などを一貫して総合的に評価する手法)に活用されており、実車を必要とせずに新機能の開発を進められる環境が整っています。たとえば、LiDARを用いないカメラベースの機能開発については、基本的な動作確認やデバッグをAWSIM上で行うことで、実車でのテスト工数を大幅に削減することに成功しています。

「自動運転のLinux」へ。世界を目指すティアフォーとAWSIMのこれから

牧野氏は「私たちは国内の自動運転分野をリードする存在であり、これからもさらなる発展を遂げたい」と決意を語り、そのビジョンを実現するためにも「今後もAutowareの『デジタルツインシミュレーターのリファレンス』として、AWSIMの継続的なメンテナンスと機能向上に努めたい」と述べました。

AWSIM開発チームは当面の目標として、自社が保有する実証実験の拠点をAWSIM内で高精度に再現した環境を活用し、累計数万キロの走行データを取得することを掲げています。これにより、実車を使用したテストに頼らずとも、大規模かつ大量の走行データに基づいた評価を行う体制を整備し、Autowareのさらなる品質向上と信頼性の確保につなげる計画です。

自動運転業界では、いくつかの巨大企業が市場を牽引する一方で、世界的な覇権争いは企業規模の大小を問わずまだ続いています。

「Autowareが目指すのは、自動運転分野におけるLinuxのような存在になること」と牧野氏は語ります。「最新鋭の技術」で優位性を、オープンソースの強みを活かして世界最大のコミュニティを形成し、結果として「最も普及した自動運転OS」となること。AWSIMは、その壮大なビジョンを実現するための重要な基盤であり続けようとしています。