Skip to content

Autoware 用の車両モデルの作成#

導入#

このページでは、以下の車両モデル向けのパッケージを紹介します:

  1. <YOUR-VEHICLE-NAME>_vehicle_description
  2. <YOUR-VEHICLE-NAME>_vehicle_launch

以前は、 Autoware リポジトリの作成 ページのステップで車両モデルをフォークしました たとえば、 上記のステップの実装例として、tutorial_vehicle_launchを 作成しました。 以下のディレクトリ構造に従って、_vehicle_launchリポジトリが Autoware に 含まれていることを確認してください。:

<YOUR-OWN-AUTOWARE-DIR>/
  └─ src/
       └─ vehicle/
            └─ <YOUR-VEHICLE-NAME>_vehicle_launch/
                 ├─ <YOUR-VEHICLE-NAME>_vehicle_description/
                 └─ <YOUR-VEHICLE-NAME>_vehicle_launch/

フォークされた Autoware メタ リポジトリに上記のような <YOUR-VEHICLE-NAME>_vehicle_launchの正しいフォルダー構造が含まれていない場合は、 フォークされた<YOUR-VEHICLE-NAME>_vehicle_launchリポジトリをautoware.repos ファイルに追加し、 ターミナルでvcs import src < autoware.reposコマンドを実行して 新しく組み込まれたメタ リポジトリをautoware.repos ファイルのリポジトリにインポートしてください。

これで、次の車両モデル パッケージを車両用に変更する準備が整いました。 まず、説明の名前を変更してパッケージを起動する必要があります:

<YOUR-VEHICLE-NAME>_vehicle_launch/
- ├─ sample_vehicle_description/
+ ├─ <YOUR-VEHICLE-NAME>_vehicle_description/
- └─ sample_vehicle_launch/
+ └─ <YOUR-VEHICLE-NAME>_vehicle_launch/

その後、 sample_vehicle_description パッケージと Sample_vehicle_launch パッケージの package.xml ファイルと CMakeLists.txt ファイルのパッケージ名を変更します。 そのため、 任意のテキスト エディターまたは IDE で package.xml ファイルと CMakeLists.txt ファイルを開き、 次の変更を実行します:

package.xmlファイルの<name>属性を変更します:

<package format="3">
- <name>sample_vehicle_description</name>
+ <name><YOUR-VEHICLE-NAME>_vehicle_description</name>
  <version>0.1.0</version>
  <description>The vehicle_description package</description>
  ...
  ...

CmakeList.txtファイルのproject()メソッドを変更します。

  cmake_minimum_required(VERSION 3.5)
- project(sample_vehicle_description)
+ project(<YOUR-VEHICLE-NAME>_vehicle_description)

  find_package(ament_cmake_auto REQUIRED)
...
...

名前の変更とプロジェクト メソッドを、 <YOUR-VEHICLE-NAME>_vehicle_description<YOUR-VEHICLE-NAME>_vehicle_launch ROS 2パッケージの両方にに忘れずに適用してください。 完了したら、上記のパッケージのビルドに進むことができます:

colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-up-to <YOUR-VEHICLE-NAME>_vehicle_description <YOUR-VEHICLE-NAME>_vehicle_launch

車両の説明#

このパッケージの主な目的は、車両の寸法、 車両の 3D モデル、車両のミラー寸法、シミュレータ モデル パラメータ、 および車両の URDF を記述することです。

vehicle_description パッケージのフォルダー構造は次のとおりです:

<YOUR-VEHICLE-NAME>_vehicle_description/
   ├─ config/
   │     ├─ mirror.param.yaml
   │     ├─ simulator_model.param.yaml
   │     └─ vehicle_info.param.yaml
   ├─ mesh/
   │     ├─ <YOUR-VEHICLE-MESH-FILE>.dae (or .fbx)
   │     ├─ ...
   └─ urdf/
         └─ vehicle.xacro

次に、車両の設計に従ってこれらのファイルを変更します。

mirror.param.yaml#

このファイルはPointCloudPreprocessorCropBox filterの車両ミラーの寸法を記述します 。 これは、lidarの点群からミラーをトリミングする場合に重要です。

mirror.param.yamlは次のパラメータで構成されます:

/**:
  ros__parameters:
    min_longitudinal_offset: 0.0
    max_longitudinal_offset: 0.0
    min_lateral_offset: 0.0
    max_lateral_offset: 0.0
    min_height_offset: 0.0
    max_height_offset: 0.0

ミラーパラメータファイルにはこの寸法情報を記入する必要がありますが、 min_lateral_offsetパラメータには注意してください。 下のミラー寸法図のように負の値になる可能性があります。

mirror_dimensions

mirror.param.yamlのディメンションのデモ

警告

tutorial_vehicle にはミラーがないため、すべての値は 0.0 に設定されます。 車両にミラーがない場合は、これらの値を 0.0 に設定することもできます。

simulator_model.param.yaml#

このファイルはシミュレータ環境用の設定ファイルです。 車両の仕様に応じてこれらのパラメータを更新してください。 変数の詳細については、 simple_planning_simulatorパッケージを確認してください。 ファイルは次のパラメータで構成されます:

/**:
  ros__parameters:
    simulated_frame_id: "base_link" # center of the rear axle.
    origin_frame_id: "map"
    vehicle_model_type: "DELAY_STEER_ACC_GEARED" # options: IDEAL_STEER_VEL / IDEAL_STEER_ACC / IDEAL_STEER_ACC_GEARED / DELAY_STEER_ACC / DELAY_STEER_ACC_GEARED
    initialize_source: "INITIAL_POSE_TOPIC" #  options: ORIGIN / INITIAL_POSE_TOPIC
    timer_sampling_time_ms: 25
    add_measurement_noise: False # the Gaussian noise is added to the simulated results
    vel_lim: 50.0 # limit of velocity
    vel_rate_lim: 7.0 # limit of acceleration
    steer_lim: 1.0 # limit of steering angle
    steer_rate_lim: 5.0 # limit of steering angle change rate
    acc_time_delay: 0.1 # dead time for the acceleration input
    acc_time_constant: 0.1 # time constant of the 1st-order acceleration dynamics
    steer_time_delay: 0.24 # dead time for the steering input
    steer_time_constant: 0.27 # time constant of the 1st-order steering dynamics
    x_stddev: 0.0001 # x standard deviation for dummy covariance in map coordinate
    y_stddev: 0.0001 # y standard deviation for dummy covariance in map coordinate

vehicle_info.param.yaml#

このファイルには、Autoware モジュールの車両の寸法が保存されます。 車両情報を更新してください。 詳細な寸法のデモンストレーションについては、車両の寸法ページを参照してください。 これはsample_vehiclevehicle_info.param.yamlです:

/**:
  ros__parameters:
    wheel_radius: 0.383 # The radius of the wheel, primarily used for dead reckoning.
    wheel_width: 0.235 # The lateral width of a wheel tire, primarily used for dead reckoning.
    wheel_base: 2.79 # between front wheel center and rear wheel center
    wheel_tread: 1.64 # between left wheel center and right wheel center
    front_overhang: 1.0 # between front wheel center and vehicle front
    rear_overhang: 1.1 # between rear wheel center and vehicle rear
    left_overhang: 0.128 # between left wheel center and vehicle left
    right_overhang: 0.128 # between right wheel center and vehicle right
    vehicle_height: 2.5
    max_steer_angle: 0.70 # [rad]

vehicle_info.param.yamlの車両情報を更新してください。

車両の3Dモデル#

autoware では、.fbx または .dae 形式を 3D モデルとして使用できます。 tutorial_vehicle の場合、 tutorial_vehicle の場合、3D モデルを .fbx ファイルとしてtutorial_vehicle_launch リポジトリにエクスポートしました。 vehicle.xacroファイルに .fbx ファイルのパスを設定します。

vehicle.xacro#

この.xacroファイルは、車両のbase_link を 3D メッシュにリンクします。したがって、このファイルにいくつかの変更を加える必要があります。

<?xml version="1.0"?>
<robot xmlns:xacro="http://ros.org/wiki/xacro">
  <!-- load parameter -->
- <xacro:property name="vehicle_info" value="${xacro.load_yaml('$(find sample_vehicle_description)/config/vehicle_info.param.yaml')}"/>
+ <xacro:property name="vehicle_info" value="${xacro.load_yaml('$(find <YOUR-VEHICLE-NAME>_vehicle_description)/config/vehicle_info.param.yaml')}"/>

  <!-- vehicle body -->
  <link name="base_link">
    <visual>
      <origin xyz="${vehicle_info['/**']['ros__parameters']['wheel_base']/2.0} 0 0" rpy="${pi/2.0} 0 ${pi}"/>
      <geometry>
-       <mesh filename="package://sample_vehicle_description/mesh/lexus.dae" scale="1 1 1"/>
+       <mesh filename="package://<YOUR-VEHICLE-NAME>_vehicle_description/mesh/<YOUR-3D-MESH-FILE>" scale="1 1 1"/>
      </geometry>
    </visual>
  </link>
</robot>

車両の正しい位置と方向を得るために、ロール、ピッチ、ヨー、x、 y、z およびスケールの値を変更することもできます。

_vehicle_descriptionパッケージが完成したら、 vehicle_description パッケージをビルドしてください。

cd <YOUR-AUTOWARE-DIR>
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-up-to <YOUR-VEHICLE-NAME>_vehicle_description <YOUR-VEHICLE-NAME>_vehicle_launch

車両インターフェースの起動#

車両インターフェースの準備ができている場合は、 vehicle_interface 起動ファイルをvehicle_interface.launch.xmlに追加できます。 詳細については、車両インターフェースの作成ページをご確認ください。

自分の車両で計画シミュレーターを起動#

sensor_model, individual_parameters および車両モデルを完了すると 、 自分の車両でプランニング シミュレーターを起動する準備が整います。 Autoware プロジェクト フォルダー内のすべてのカスタム パッケージがビルドされているかどうかわからない場合は、 すべてのパッケージをビルドしてください:

cd <YOUR-AUTOWARE-DIR>
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release

計画シミュレーターを起動するには、 Autoware プロジェクト フォルダー内の install/setup.bash ファイルを実行し、 ターミナルで次のコマンドを実行します:

ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/Files/autoware_map/sample-map-planning/ vehicle_model:=<YOUR-VEHICLE-MODEL> sensor_model:=<YOUR-SENSOR-KIT> vehicle_id:=<YOUR-VEHICLE-ID>

たとえば、tutorial_vehicle を使用して計画シミュレータを試してみると、次のようになります:

ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/Files/autoware_map/sample-map-planning/ vehicle_model:=tutorial_vehicle sensor_model:=tutorial_vehicle_sensor_kit vehicle_id:=tutorial_vehicle

プランニング シミュレータが開き、 2D Pose Estimateボタンを使用するかPキーを押して、車両に初期ポーズを与えることができます。 車両の初期化のためにどこでもクリックできます。

tutorial_vehicle

TF データを使用した rviz 上のtutorial_vehicle