シミュレーションにおけるMeituan無人車両エンジンの実践

 

この記事では、最初に無人機エンジンの概念を紹介し、シミュレーション環境が直面する課題に基づいたMeituan無人機エンジンのコア設計を紹介します。

 

01はじめに

過去数年間で、自動運転技術は急速に発展してきました。中国でも多くの自動運転スタートアップが登場しており、これらの企業はBaiduのオープンソースプロジェクトであるApolloから始まり、ほとんどが直接公道試験を実施できます。公道試験も技術進歩を促進するための主要な方法になっています。基本的な問題が解決された後、業界はよりロングテールの問題に直面しています。自動運転能力開発を推進するために道路試験に依存する方法はもはや効率的ではなくなり、オフラインシミュレーションの状況はますます顕著になっています。業界をリードする企業はシミュレーションに多額の投資を行っています。2019年にWaymoが発表したシミュレーションマイレージは100億マイルで、これはロードテストマイレージの1,000倍です。

それに対応して、シミュレーションへのMeituan無人車両チームの投資は徐々に増加しています。シミュレーションプラットフォームの構築において、チームは公道テストとシミュレーションテストが類似しているように見えることを発見しましたが、実際には違いが大きいです。車両環境では、システムの安定した動作を保証するために、通常は特定のリソースがアイドル状態であることを確認するために必要です。シミュレーション環境は異なります。シミュレーション結果がドライブテスト結果と一致していることを確認しながら、リソースを効率的に使用する方法とリソースをスクイーズする方法が重要な目標になっています。これらの課題に対応するにあたり、Meituanは、車両とオフライン環境の違いを分離するための無人車両エンジンの概念を提案しました。機能モジュールは、変更なしで2つのシナリオのニーズを満たすことができます。


02自動運転車のエンジン

概念

無人機エンジンは自動運転のインフラであり、メカニズム、ツール、計算モデルの機能モジュールをサポートし、自動運転が行われる環境を分離し、各機能モジュールがそれぞれの機能に集中できるようにします。

メカニズムレベルでは、各機能モジュールの通信、スケジューリング、データ、構成、および異常監視のサポートを提供します。

アプリケーション層では、エンジンは、各機能モジュールのデバッグ、視覚化、パフォーマンスチューニング、および効果評価のためのツールサポートを提供します。

モジュールレベルでは、エンジンは各機能モジュールに統合されたコンピューティングモデルと動作環境を提供し、車両環境、分散環境、およびデバッグ環境で一貫して動作するようにします。

Meituan無人車両エンジンのアーキテクチャ図は次のとおりです。

図1無人車両のエンジンレイアウト

図1に示すように、エンジンサポートの主要部分として、知覚、ローカリゼーション、計画などは、無人車両システムのコア機能を実装する自動運転システムの重要な機能モジュールです。エンジンは、メカニズムとツールの観点から上下にそれらをサポートします。各機能モジュールは、エンジンのメカニズムレイヤーによって提供される機能を直接または間接的に使用し、ツールのサポートを自然に取得して、エンジンの仕様に従って開発されます。たとえば、汎用モジュールは、エンジンの通信ツールを使用して、データ配置およびパフォーマンスレポートのデバッグ情報の視覚化のサポートを直接取得できます。同時に、これらのドライブテストデータに基づいて、シミュレーション環境で汎用モジュールはシングルステップのデバッグと効果評価を自動的に取得します。その他の機能サポート。

自動運転エンジンが直面する課題

図1にリストされている機能はエンジンの基本コンポーネントであり、エンジンが提供するものはそれだけではありません。複数の環境のサポートが、Meituan無人機チームがエンジンコンセプトを導入した本当の理由です。前述のように、無人機は最初に車載システムで走行しますが、技術や環境の変化に伴い、シミュレーション環境での走行が増えています。この2つはまったく異なります。車両環境では、無人車両システムの動作環境が優れています。さまざまな機能モジュールの正常な動作を保証するために、CPU、GPU、メモリなどのリソースは、ある程度の冗長性を提供する必要があります。

シミュレーション環境の要件は完全に異なります。ユーザーの観点からは、シミュレーションのユーザーはエンジニアであり、シミュレーションタスクが特定の時間内にできるだけ多くのタスクを完了することを期待しています。クラスターの観点からは、シミュレーションを望んでいます。リソース使用率を最大化できます。次のパートでは、これら2種類の環境で無人車両システムが直面する課題と、Meituan無人車両チームがエンジンを使用してこれらの課題に対処する方法を紹介します。

03行動の一貫性への挑戦

当初、Meituanの無人車両チームはROSを利用して無人車両システムを構築していましたが、車両環境ではROSが良好に機能していました。しかし、シミュレーション構築を開始した後、チームは多くの問題に遭遇しましたが、その中で最も顕著なのは「行動の一貫性の問題」でした。この問題は具体的には、無人車両システムの運用中、システムリソースが変更されたときの行動を指します。続く変更されました。たとえば、シミュレーションタスクをマシンで実行すると、システムによって生成される結果はマシンの状態に関連します。このマシンを排他的に使用する場合、または他のタスクと同時に実行する場合、結果は異なります。また、リソース使用率を考慮せず、シミュレーションタスクでマシンリソースを独占させても、同じタスクを2回実行すると、多少の混乱が生じます。

オフライン環境では、より深刻な状況が発生します。この状況は、リソース使用率を最大化しようとします。つまり、コンピューティングリソースが非常にタイトになり、外乱が軽微でなくなり、結果の信頼性が低下し、シミュレーション結果の価値が失われます。

したがって、車内とオフラインの2つのまったく異なる環境で結果の一貫性を確保する方法は、シミュレーションエンジンが解決しなければならない問題です。この問題は、次の2つの理由によって発生します。1つは機能モジュールのタイミングの不一致であり、もう1つは機能モジュールの内部実行の不一致です。

タイミングの一貫性

タイミングの一貫性とは何かを紹介するために、まず無人車両システムにおけるタイミングの概念を紹介する必要があります。

無人車両システムは複数の機能モジュールで構成されており、機能モジュール間にはデータの依存関係があります。たとえば、PerceptionはLidarとCameraのデータに依存し、PredictionはPredictionの出力に依存します。モジュールが異なれば、トリガー条件も異なります。たとえば、計画は時計によってトリガーされ、予測は知覚データによってトリガーされます。データ関係とトリガ条件によって形成される機能モジュールの実行順序は、自動駆動システムの順序です。理想的な状況では、各モジュールはトリガー条件が満たされるとすぐに実行され、予想される時間内にタスクを完了できます。つまり、各モジュールの出力が保持されている限り、オンラインの問題を完全に再現でき、オフラインシミュレーションが表示されるドライブテスト中に問題が必然的に発生します。

図2無人車両システムの理想的なタイミング

ただし、現実はこれよりもはるかに複雑です。たとえば、無人機が混雑した道路を通過する場合、Perceptionはかなり多くのデータを処理する必要があります。また、交通参加者が多すぎるため、計画に時間がかかる可能性があります。タイミングは必ず理想的な状況とは異なります。下の図3に示すように、車両環境でのこの動作は問題ありませんが、シミュレーション環境で深刻な結果を引き起こします。コンピューティング環境をわずかに変更するたびにタイミングが変更され、システムの動作につながる可能性があります。差。

図3無人車両システムの実際のタイミング

これはタイミングの一貫性の問題です。この問題を解決するために、Meituan無人機はスケジューラーを導入し、タイミングの一貫性はスケジューラーによって保証されています。さらに、エンジンは、さまざまなアプリケーションシナリオに従って、スケジューラーのタイプをさらに改良します。最も単純なスケジューラーは「オンラインスケジューラー」であり、機能モジュールが準備完了状態のときに実行するという1つの目標しかありません。このスケジューラーは車両システムで使用され、その動作はROSと似ていますが、彼は使用するスケジューリングシーケンス。さらに、エンジンは、さまざまな使用シナリオに対処するための一連のオフラインスケジューラも提供します。ここでのオンラインとオフラインの違いは、データソースによって判断されます。データがセンサーからのものである場合はオンラインスケジューラであり、データがドライブテストレコードからのものである場合はオフラインスケジューラです。具体的な分類が示されています。下の図4:

図4スケジューラの分類

以下は、Meituan無人車両エンジンによって提供されるディスパッチャーのタイプとその使用シナリオです。

  • オンラインスケジューラ:トリガー条件が満たされるとすぐに汎用モジュールをトリガーします。通常、車両環境で使用されます。

  • 定期的なスケジューラースケジューラーによって保存されたスケジューリング情報に従ってスケジューリングシーケンスを再現し、デバッグまたは定期的なドライブテストシナリオで使用します。

  • 理想的なスケジューラ:通常はシミュレーションで使用される、理想的なタイミングに従ってリソースをスケジュールします。

  • 条件駆動型スケジューラ:条件が満たされたときに実行するように汎用モジュールをスケジュールします。このスケジューリングモードでは、機能モジュールのスケジューリング密度は理想的なスケジューラと定期的なスケジューラの間にあり、その実装は比較的単純であり、最も広く使用されているスケジューラになっています。

彼らの助けを借りて、機能モジュールの実行タイミングを保証できます。スケジューラと入力データが変更されない限り、コンピューティング環境がどのように変化しても、各機能モジュールの実行タイミングは常に一貫しています。

汎用モジュールの計算モデル

タイミング整合性のスケジュール保証に加えて、機能モジュールの内部計算はスケジューラーによってスケジュールされる必要があります。汎用モジュールは、スケジューラが許可した場合にのみ実行を開始でき、スケジューラは終了時に通知を受けることができます。スケジューラーから分離されたコンピューティングスレッドがある場合、システムの整合性は保証されません。このため、エンジンには標準の計算モデルが導入されており、一貫性の保証、シングルステップのデバッグサポート、情報の視覚化などの機能を含むエンジンのサポートを取得するには、すべての機能モジュールがこの計算モデルに準拠する必要があります。

標準の計算モデルは次のとおりです。各機能モジュールには計算プロセスが1つだけあり、単位として反復を取り、各スケジュールは1フレームの計算を完了します。もちろん、エンジンはフレーム計算の内部詳細を制御せず、フレーム計算の内部最適化は機能モジュールの責任です。

図5機能モジュールの標準モデル

標準モデルの定義は、必ずしも各機能モジュールの実際の状況に準拠しているとは限りません。たとえば、ローカリゼーションは、異なる周波数の複数のタイプのセンサーデータをサブスクライブし、それらを異なる周波数で出力します。実際には、エンジンはローカリゼーション機能を再分割することで標準化を実現します。さらに、計算コストが高く、同時にヘテロジニアスコンピューティングを行うPerceptionなどの機能モジュールの場合、マルチスレッド、非同期I / Oメカニズムを導入する必要があります。また、エンジンは、標準モデルへの準拠を保証するための対応するサポートも提供します。

実際には、Meituanの無人車両チームはこれらの変革を完了するためにかなりの時間を費やしました。変換が完了した後、シミュレーション結果の権限が強化されました。さらに重要なことに、システムの動作が外部リソース(GPU、CPU、メモリなど)の影響を受けなくなり、オフラインへの道も開かれます。リソース使用率を改善するための環境。次に、無人車両エンジンが機能モジュールを意識せずにリソース使用率を向上させる方法を紹介します。

04リソース使用率の問題

前述のように、車載システムとシミュレーションシステム環境には大きな違いがあります。システムの円滑な運用を追求するために、車載システムはある程度の豊富な主要リソースを確保します。シミュレーションのために。システム、アイドル状態を維持することはリソースの浪費です。システムの一貫性が保証された後、リソース使用率がエンジンの最適化目標になる可能性があります。リソース使用率の最適化には、データスケジューリングなどの多くの側面が含まれます。スペースの制限により、ここではエンジンに関連する最適化作業のみを紹介します。次の部分は、シミュレーション環境で実行されている無人車両システムの特性に応じて最適化されます。これらは、不均一なリソース需要、機能モジュールの繰り返し計算、および不均衡なGPU / CPU計算です。

不均一なデータ需要

データ入力の規模に関して、機能モジュールは非常に不均衡です。知覚とローカリゼーションはLidarとCameraのデータに依存しており、データ使用量はシステムの85%以上を占めています(データストレージの規模に従って計算され、中間を無視します)データ、特定比率は開いているカメラに関連しており、おおよその数はここに示されています)。リソース消費に関しては、知覚と予測はより多くのGPUコンピューティングリソースを消費します。クラウドコンピューティングリソースの効率を向上させるには、無人車両エンジンが分散展開をサポートする必要があります。つまり、自動運転システムのセットが複数のマシンまたはコンピュータールーム全体のマシンに個別に展開されます。

図6分散展開

分散展開を実現するために、エンジンは計算グラフモデルの概念を参照し、Tensorflowと同様の設計を採用しています。機能モジュールはノードとモジュールの2つの部分に分かれています。その中で、ノードは依存関係の定義を担当し、モジュールは計算の完了を担当します。リモートでデプロイされたモジュールの場合、エンジンはADVContextとノードスタブの概念を提供して、モジュールが計算を完了するのを支援します。モジュールの場合、エンジンはその環境(リモートまたはローカル)について何も知りません。

図7スタブヌード

図7の設計に基づいて、自動運転システムには分散展開の機能があります。自動運転システムは、マシンのグループで実行できます。オフライン効率を改善するための取り組みは、もはや単一のマシンに限定されていません。無人車両システムのオフライン最適化は、より多くの手段とより広いスペースを獲得しています。

繰り返し計算

シミュレーションタスクは複数のタイプに分けられます。つまり、単一のモジュールを実行するためのタスクと、知覚、予測、および計画を同時に実行するためのタスクがあります。複数のモジュールを同時に実行するタスクの場合、クラスターの観点から、多くの計算が繰り返されます。シナリオを想像してみてください。Planningは新しい方法を導入し、エンジニアは最新のPerceptionバージョンで新しい方法の効果評価結果を取得したいと考えています。シミュレーションの場合、これは古典的なシナリオです。一般的に使用される方法は、知覚、予測、計画の3つのモジュールをオフラインで実行し、評価を実行してレポートと評価結果を生成することです。

図8サブモジュールの評価

一般的に、知覚の結果はデー​​タと独自のアルゴリズムの反復の影響を受けます。計画の反復では、知覚の結果は影響を受けず、その出力を再利用できます。ノードとモジュールの概念が分離されているため、Perception Nodeにバインドされたモジュールは、非コンピューティングユニットにすることができますが、データサービスモジュールにすることができます。

Meituan無人車両データプラットフォームと無人車両エンジンの共同作業により、データサービスモジュールを介して、この一般的なシミュレーションタスクのフローは、エンジニアの認識なしに図9に示すようになります。さまざまなバージョンのPerceptionの出力結果が保存されます。予測と計画では、以前の結果のみが使用されるため、Perceptionの計算が繰り返されることはありません。

図9データの多重化

GPUコンピューティングオフロード

無人車両システムは、重いCPUコンピューティングと重いGPUコンピューティングの両方を備えたシステムであり、計算の2つの部分はバランスが取れていません。GPUリソ​​ースの利用効率を向上させるために、エンジンはモデル管理の機能を内部的に統合し、ローカルとリモートの両方の予測メカニズムを提供します。分散展開方式と組み合わせると、システムをCPUクラスターに完全に展開でき、RPC要求を介してモデルサービングでモデル関連の計算を完了できます。エンジンは、GPUおよびCPUコンピューティングを分離することにより、GPUおよびCPUコンピューティングリソースの使用率を向上させるのに役立ちます。

05結論

継続的な実践において、Meituanの無人配送チームは、自動運転エンジンのセットを引き出して、機能モジュールのメカニズムとツールを提供しました。同時に、オンボード(低遅延)とシミュレーション(高スループット)の2セットの適応も提供します。環境の。さらに、Meituanのビッグデータインフラストラクチャとこれに基づいて無人車両専用に構築されたデータプラットフォームと連携して、Meituan無人機は徐々に完全な自動運転インフラストラクチャを確立しました。将来的には、エンジンの助けを借りて、機能モジュール、コンピューティングプラットフォーム、および動作環境を分離し、自動操縦機能の反復と自動操縦着陸アプリケーションを独立して実行できるようにすることが望まれます。美団の無人機のペースを加速させます。

美団無人配達について

Meituan無人車両配送センターは2016年に設立され、Meituanの主任科学者であるXiaHuaxia博士が率いています。Meituanの無人車両流通は、Meituanの持ち帰りとMeituanの用事のコアビジネスを中心としており、既存の複雑な流通プロセスと組み合わせることで、建物、公園、オープンなどのさまざまなシナリオの要件を満たすことができる全体的な無人流通ソリューションが形成されます。持ち帰り用の3kmの即時配達需要により、配達効率とユーザーエクスペリエンスが向上し、最終的に「無人配達を使用して世界の隅々まで到達する」というビジョンが実現します。

求人

Meituan Autonomous Vehicle Distribution Centerは引き続き多数のポジションを募集しており、アルゴリズム/システム/ハードウェア開発のエンジニアと専門家を募集しています。興味のある学生は、履歴書を[email protected]に送信してください(電子メールの件名には、Meituan Autonomous Vehicle Teamを記載する必要があります)

おすすめ

転載: blog.csdn.net/MeituanTech/article/details/110211886