自動運転の開発にはシミュレーションが欠かせない。実車テストだけではコストも時間もかかりすぎる。しかし、シミュレーション環境の導入にはいくつかの壁がある。そこで今回は、評価設計から運用体制まで、実務で進める手順を整理する。
なぜ自動運転にシミュレーションが必要なのか
自動運転は安全性の検証が命だ。しかし、現実世界ですべてのケースをテストするのは不可能だ。たとえば、大雨の中で歩行者が飛び出すシーンを再現するのは危険だ。さらに、レアケースほど重要なのに実車では再現が難しい。つまり、シミュレーションなしでは十分な検証ができない。
また、開発のイテレーション速度も上がる。アルゴリズムを変更したらすぐにシミュレーションで検証できる。実車テストでは1回のテストに数時間かかる。しかし、シミュレーションなら数分で結果が出る。そのため、開発サイクルが劇的に短縮される。さらに、複数のシナリオを並列で実行できるのも大きなメリットだ。
主要なシミュレータの選択肢
代表的なのはCARLAだ。オープンソースの自動運転シミュレータで、LiDARやカメラ、深度センサーなどが再現できる。OpenSCENARIOにも対応している。つまり、標準化されたシナリオ定義でテストを記述できる。
また、LGSVLはLGが開発したUnityベースのシミュレータだ。Autowareとの連携が得意で、日本の開発者にも馴染みがある。しかし、2023年にメンテナンスが停止した点には注意が必要だ。さらに、Unityベースのシミュレータは他にもある。具体的には、AWSが提供するAWS RoboMakerやNVIDIAのDRIVE Simなどだ。
なお、商用シミュレータはライセンスコストが高い。そのため、まずはCARLAで小規模に始めるのが現実的だ。
評価設計の進め方
シミュレータを選んだら次は評価設計だ。まず、テストシナリオを定義する。具体的には、「直進中に右から歩行者が出現」「高速道路での車線変更」「交差点での左折」といった場面を列挙する。さらに、天候や時間帯の条件も加える。雨、霧、夜間など、実車では再現しにくい条件こそシミュレーションの出番だ。
次に、評価指標を決める。たとえば、衝突回避率、停止距離の精度、レーン逸脱率などだ。また、判定基準の閾値も事前に決めておく。そうしないと、テスト結果をどう解釈すればいいかわからなくなる。したがって、評価設計はシミュレーション導入の最重要ステップだ。
加えて、エッジケースの網羅も意識する。通常の走行シーンだけでなく、極端な状況もテストに含める。たとえば、逆走車両との遭遇や信号無視の車両への対応だ。しかし、すべてのケースを列挙するのは不可能だ。だからこそ、ランダム生成を組み合わせてカバレッジを広げるのが有効だ。
運用体制を整える方法
シミュレーション環境は構築して終わりではない。継続的に運用する体制が必要だ。まず、CI/CDパイプラインにシミュレーションを組み込む。コードの変更があるたびに自動でテストが走る仕組みだ。そのため、デグレーションを早期に発見できる。
また、シナリオの追加も定期的に行う。新しい走行データが得られたら、そこから新しいテストケースを作成する。さらに、事故やヒヤリハットの報告をシナリオに変換する仕組みも有効だ。実際、実世界のインシデントを再現テストに使うことで検証の精度が上がる。
なお、シミュレーションの結果と実車テストの結果を定期的に比較することも重要だ。シミュレーションの精度が現実と乖離していたら意味がない。とはいえ、100%の一致は現実的ではない。要は、重要な判断指標において十分な相関があればいい。
このように、自動運転シミュレーションの導入は技術選定だけでは終わらない。評価設計と運用体制を含めた全体設計が成功の鍵だ。まずは小さなシナリオから始めて、徐々に規模を拡大していくのがおすすめだ。