ApolloとCarSim/TruckSimの共同シミュレーション

ApolloとCarSim/TruckSimの共同シミュレーション

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転載したものです。転載については出典元にお問い合わせください。

1. 背景

シミュレーションは自動運転の研究開発において重要な役割を果たしており、研究開発の効率を大幅に向上させ、アルゴリズムの信頼性を保証することができます。 Baidu Apollo システムは、自動運転を学びたい人に適した優れたオープンソース プラットフォームです。 Carsim/Trucksim は、古典的な車両ダイナミクスシミュレーション ツールです。

本日は、Apollo と Trucksim を組み合わせてローカル リアルタイム シミュレーションを実現する方法についてご紹介したいと思います。このドキュメントは、シミュレーション プラットフォームを構築し、アポロ システムを学習する初心者に適しています。

2. 建築設計

Apollo プロジェクトのコア コードは C++ で実装されています。Trucksim でよく使用されるインターフェイスは、simulink、python、C です。この記事では、まず、Apollo、simulink、Trucksim の共同シミュレーションのアーキテクチャと、このシミュレーションの欠点について説明します。 Apollo と Trucksim の共同シミュレーションについてお話しましょう。

2.1 Apollo、Simulink、Trucksimソリューション

Simulink と Apollo は ROS を介して通信できます。Apollo のメッセージ データ形式は protobuf であり、Simulink の ROS ツールは標準の ROS msg のみをサポートしているため、Apollo に形式変換ノードを追加できます。 Simulink を使用して Trucksim を呼び出す方法についてはオンライン リソースが多数あるため、詳細には触れません。

Simulink ソリューション図

2.2 Apollo、rosbridge、Trucksimソリューション

QT プロジェクトを作成し、Websocket を介して Apollo プロジェクトと通信します。Apollo プロジェクトに rosbridge を追加して (Apollo 5.0 以降のバージョンでは cyber_bridge を使用)、ros メッセージ (または cyber メッセージ) と Websocket 間の変換を実現します。 QT プロジェクトは、Websocket クライアントの役割を果たします。 QT は C++ で実装されており、Trucksim の動的ライブラリを呼び出して、Trucksim をリアルタイムで実行する機能を実現します。

ロズブリッジ解図

3. 機能実装

3.1 Apollo、Simulink、Trucksimソリューション

3.1.1 Simulinkの設定

Simulink ツールキットには ROS サポート パッケージが含まれています。ROS ネットワーク アドレスの構成を図 2 に示します。ホスト名/IP アドレスとポートは、それぞれ ROS_MASTER_URI のアドレスとポート番号であり、上記の通信メカニズムで説明されています。

ROSネットワークアドレスを設定する

ROS サブスクライバーはインターフェースからメッセージを受信するため、トピック、メッセージ タイプ、サンプル時間はインターフェース内のプログラムに対応している必要があります。

ROS サブスクリプションの設定

デバッグと検証を容易にするために、MATLAB 側で ROS が起動されるようになりました。設定プロセスは次のとおりです。

MATLAB セットアップ手順:

 >> setenv('ROS_MASTER_URI','http://192.168.103.122:11311') >> setenv('ROS_IP','192.168.103.198') >> rosinit('192.168.103.122')

3.1.2 トラックシムの設定

設定インターフェース

Trucksim はウィザードベースのプログラミング プログラムです。パラメータ構成インターフェイス: トラックの場合は 5A Tractor (SS_SSS) を選択します。具体的なパラメータについては、図 3 を参照してください。制御インターフェイス: モデルの場合は simulink を選択します。

メインインターフェース

入力パラメータ設定インターフェース

出力パラメータ設定インターフェース

3.2 Apollo、rosbridge、Trucksimソリューション

3.2.1 apollo での rosbridge の設定

rosbridge のインストールに関するオンライン チュートリアルは多数あるため、この記事では詳細には触れません。

使い方は次のとおりです:

ros_pkgs_ws をCDに追加

キャットキンメイク

rosbridgeを開始

ソース /apollo/ros_pkgs_ws/devel/setup.bash

PATH=/usr/local/miniconda2/bin:$PATH

roslaunch rosbridge_server rosbridge_websocket.launch

3.2.1 Qtプロジェクトの設定手順

3.2.1.1 Qt と CMake のバージョン情報

3.2.1.3 アポロ計画とQT計画のインターフェース定義

/アポロ/トラックシム/ポーズ

{"op":"publish", "topic":"/apollo/tucksim/pose", "msg": { "header": {"timestamp_sec":1572253610.76292, "sequence_num":77}, "trucksimpose": {"XCG_TM":30.9964522249, // 单位:m "YCG_TM":0.657853758823, // 单位:m "ZCG_TM":1.00644079555, // 单位:m "YAW":-0.015505948987, // 单位:rad "VX":7.81497285565, // 单位:m/s "STEER_SW":2.84450684087, // 单位:rad "AV_Y":0.133153549217, // 单位:rad/s "GEARSTAT":5.0, // 无单位"XCG_TM2":22.5890979801, // 单位:m "YCG_TM2":-0.471483304991, // 单位:m "ZCG_TM2":2.08466406388, // 单位:m "YAW_2":-0.0253130178796, // 单位:rad "VY":0.326368169782, // 单位:m/s "DISTANCE":31.0034324244, // 单位:m "DELTA_YAW":-0.015505948987, // 单位:rad "DISTANCE_2":22.5940178822, // 单位:m "DELTA_YAW_2":-0.0253130178796 // 单位:rad/s } } }

4. ユーザーエクスペリエンス

  1. TruckSim モデルの離散時間補正は 0.001 秒に設定され、つまりモデル更新頻度は 1000 Hz となり、ステップごとに 2 回の更新を行う積分方法 (AM-2、RK-2 など) が選択されます。

注:
1) 実車は高次の非線形連続システムです。TruckSim は、固定時間ステップ離散化システムを通じて実車をシミュレートします。モデルのステップ サイズが大きい場合 (事前に設定した 0.01 秒など)、モデルの精度は低下します。TruckSim モデルは、サスペンション システム、パワー システム、ステアリング システム、ブレーキ システム、タイヤ モデル、空力などのシステムで構成される複雑なシステムです。これらのシステムの 1 つ以上が大きな時間ステップのために不正確になると、車両の揺れがより顕著になります。

2) モデルの更新頻度は、TruckSim 公式サイトで推奨されている 1000hz に設定されています。この頻度で車両の揺れの問題を解決できることが実証されています。

  1. インターフェイス スレッドの読み込み頻度はタイマーによって制御されます。simfile.sim、ライセンス、および DLL の読み込みと呼び出しの頻度は 1000hz に設定されており、これは Trucksim モデルの離散ステップ長と一致しています。

注:
3 つの積分方法の影響を受け、ステップごとに 2 回の更新を行う積分方法を選択した場合、VS_EXT_EQ_IN と VS_EXT_EQ_OUT の更新頻度は読み込み頻度の 2 倍、つまり 2000hz になります。

オリジナルリンク: https://mp.weixin.qq.com/s/8QNp5iQebE3lPJzEgq_bOA

<<:  未来を受け入れる: 2024 年のホームオートメーションの 5 つのトレンド

>>:  まだ NeRF に取り組んでいますか?リアルタイムレンダリングでリアルな自動運転データを生成!ストリートガウス:すべての SOTA を超えよう!

ブログ    

推薦する

脳をシミュレートする NLP、クヌース賞受賞: 文解析のためのニューロン集団計算

[[402907]]先週、Google Research はディープラーニングにおける概念理解に関す...

Google の最新 AI モデル「Gemini」について知っておくべきことすべて

Google Geminiとは何ですか? Gemini は、テキストだけでなく画像、ビデオ、オーディ...

...

GoogleはColab上のディープフェイクプロジェクトをひそかに禁止した

最近、GoogleがColaboratory(Colab)サービス上のディープフェイクプロジェクトを...

年収100万のAI関連職種4つ

ディープラーニング技術の成熟に伴い、AIは最先端技術から徐々に普及しつつあります。最先端のテクノロジ...

LIama2を運営して8400万元稼ごう!最速のAI推論チップのコスト見積もりが白熱した議論を巻き起こす

史上最速の大規模モデル推論を実現するには、1171万ドル(8410万元)の費用がかかりますか? ? ...

...

インテリジェント製造業が波に乗る中、産業用ロボットはどのようにして主導権を握ることができるのでしょうか?

インテリジェント製造(IM)は、インテリジェントマシンと人間の専門家で構成された人間と機械の統合イン...

...

...

米国商務省が複数の中国企業をブラックリストに載せた後、MITは中国とのAI協力プロジェクトの検討を開始した。

[[278589]]北京時間10月8日、米国商務省はハイクビジョン、メグビーテクノロジー、センスタ...

2019年に人工知能はどこに向かうのでしょうか? 120人の幹部が意見を述べた

私: 「アレクサ、2019年に何が起こるか教えてください。」 Amazon AI: 「『この日の歴史...

...

米国の学区は校内暴力を防ぐためにAIを活用し、脅迫的な言葉を検知して管理者に通知しているが、事前診断率はわずか25%に過ぎない。

アメリカでまた銃撃事件が発生。 5月24日、テキサス州ユバルデのロブ小学校で銃撃事件が発生し、少なく...

機械学習と脳科学が次の10年間の教育発展をリードする

[51CTO.comよりオリジナル記事] 昨今人気の技術として、産業界における人工知能の応用が徐々に...