Skip to content

テストユーティリティ#

背景#

Autowareのいくつかのコンポーネント・モジュールに既に単体テストが導入されており、単体テストの記述プロセスを容易にする共通ライブラリが必要です。

目的#

test_utilsの目的は、Autowareコンポーネント用の単体テストライブラリの開発です。このライブラリには以下が含まれます。

  • 一般的に使用される関数
  • 入力/モックデータパーサー
  • テスト用のマップ
  • 一般的な経路およびテスト用モックデータ

利用可能なマップ#

次のマップはこちらで利用できます。

Common#

共通マップには、肩レーン、交差点、いくつかの規制要素など、使用可能なさまざまなタイプの入力が含まれています。共通マップはフォルダー内でlanelet2_map.osmという名前です。

common

2 km Straight#

2 km直線レーンレットマップは、同じ方向に走る2つの車線で構成されています。マップは2km_test.osmという名前です。

two_km

以下にマップの設計を示します。

straight_diagram

road_shoulders#

road_shouldersレーンレットマップは、次のようなroad_shoulderタグが付いたさまざまなピックアップ/ドロップオフサイトマップで構成されています。

  • 側道車線の横にあるピックアップ/ドロップオフサイト
  • 曲線車線の横にあるピックアップ/ドロップオフサイト
  • 私有区域内のピックアップ/ドロップオフサイト

road_shoulder_test

planning_simulatorを次のように簡単に起動できます。

ros2 launch autoware_test_utils psim_road_shoulder.launch.xml vehicle_model:=<> sensor_model:=<> use_sim_time:=true

交差点#

交差点のレーンレットマップには、以下を含むさまざまな交差点があります。

  • 交通信号機付き4車線交差点
  • 交通信号機のない4車線交差点
  • 交通信号機のないT字路交差点
  • ループのある交差点
  • 複雑な交差点

intersection_test

次のようにして簡単にplanning_simulatorを起動できます

ros2 launch autoware_test_utils psim_intersection.launch.xml vehicle_model:=<> sensor_model:=<> use_sim_time:=true

使用例#

Autoware Planning Test Manager#

Autoware Planning Test Managerの目標は、Planningモジュールノードをテストすることです。 PlanningInterfaceTestManagerクラス(ソースコード)は、test_utils関数をベースにラッパー関数を生成します。

単体テスト用のテストデータ生成#

PR説明で提示されているように、ユーザーはテストマップ上でPlanning Simulationを実行中にシーンのスナップショットをyamlファイルに保存することができます。

ros2 launch autoware_test_utils psim_road_shoulder.launch.xml vehicle_model:=<vehicle-model> sensor_model:=<sensor-model>
ros2 launch autoware_test_utils psim_intersection.launch.xml vehicle_model:=<vehicle-model> sensor_model:=<sensor-model>
ros2 service call /autoware_test_utils/topic_snapshot_saver std_srvs/srv/Empty \{\}

トピックを保存するトピックのリストとフィールド名は、config/sample_topic_snapshot.yaml で指定されています。

# setting
fields:
  - name: self_odometry # this is the field name for this topic
    type: Odometry # the abbreviated type name of this topic
    topic: /localization/kinematic_state # the name of this topic

# output
self_odometry:
  - header: ...
    ...

各フィールドは、autoware_test_utils/mock_data_parser.hpp で定義された関数を使用して ROS メッセージタイプに解析できます。