diff --git a/README.md b/README.md index 87ac18a59a9a..a77c2e5d53c9 100644 --- a/README.md +++ b/README.md @@ -27,20 +27,20 @@ Autoware Universeコンポーネントの詳細を探りたい場合は、MKDocs バッジをクリックしてcodecovのウェブサイトに移動すると、詳細を確認できます。 -| コンポーネント | 対応範囲 | -| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Common | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Common%20Packages&query=$.[0].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Common%20Packages) | -| Control | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Control%20Packages&query=$.[1].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Control%20Packages) | -| Evaluator | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Evaluator%20Packages&query=$.[2].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Evaluator%20Packages) | -| Launch | TBD | -| Localization | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Localization%20Packages&query=$.[4].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Localization%20Packages) | -| Map | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Map%20Packages&query=$.[5].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Map%20Packages) | -| Perception | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Perception%20Packages&query=$.[6].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Perception%20Packages) | -| Planning | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Planning%20Packages&query=$.[7].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Planning%20Packages) | -| Sensing | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Sensing%20Packages&query=$.[8].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Sensing%20Packages) | -| Simulator | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Simulator%20Packages&query=$.[9].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Simulator%20Packages) | -| System | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=System%20Packages&query=$.[10].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=System%20Packages) | -| Vehicle | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Vehicle%20Packages&query=$.[11].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Vehicle%20Packages) | +| コンポーネント | 対応範囲 | +| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Common | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Common%20Packages&query=$.[0].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Common%20Packages) | +| Control | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Control%20Packages&query=$.[1].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Control%20Packages) | +| Evaluator | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Evaluator%20Packages&query=$.[2].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Evaluator%20Packages) | +| Launch | TBD | +| Localization | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Localization%20Packages&query=$.[4].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Localization%20Packages) | +| Map | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Map%20Packages&query=$.[5].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Map%20Packages) | +| Perception | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Perception%20Packages&query=$.[6].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Perception%20Packages) | +| Planning | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Planning%20Packages&query=$.[7].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Planning%20Packages) | +| Sensing | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Sensing%20Packages&query=$.[8].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Sensing%20Packages) | +| Simulator | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Simulator%20Packages&query=$.[9].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Simulator%20Packages) | +| System | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=System%20Packages&query=$.[10].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=System%20Packages) | +| Vehicle | [![codecov](https://img.shields.io/badge/dynamic/json?url=https://codecov.io/api/v2/github/autowarefoundation/repos/autoware.universe/components&label=Vehicle%20Packages&query=$.[11].coverage)](https://app.codecov.io/gh/autowarefoundation/autoware.universe?components%5B0%5D=Vehicle%20Packages) | **自動運転ソフトウェアに関するドキュメント** @@ -50,96 +50,95 @@ Autoware Universeコンポーネントの詳細を探りたい場合は、MKDocs #### ユースケースと要件 -* 自車位置と目的地の認識 -* 安全かつ効率的な経路の作成 -* 障害物回避と衝突予測 -* 高速道路と市街地でのナビゲーション対応 +- 自車位置と目的地の認識 +- 安全かつ効率的な経路の作成 +- 障害物回避と衝突予測 +- 高速道路と市街地でのナビゲーション対応 #### 実装の詳細 -* 動的パスプランニングアルゴリズム(例:A*、D*ライト)を使用したリアルタイム経路生成 -* 車載センサー(LiDAR、カメラ、レーダー)からのデータ統合 -* 障害物検出と逸脱量リスク評価のための物体検出アルゴリズム -* 高精度地図データの活用 +- 動的パスプランニングアルゴリズム(例:A*、D*ライト)を使用したリアルタイム経路生成 +- 車載センサー(LiDAR、カメラ、レーダー)からのデータ統合 +- 障害物検出と逸脱量リスク評価のための物体検出アルゴリズム +- 高精度地図データの活用 #### パフォーマンスの測定基準 -* 目的地への到着時間 -* 走行距離と燃料消費量 -* 障害物との衝突回避率 -* 加速度逸脱量、速度逸脱量 +- 目的地への到着時間 +- 走行距離と燃料消費量 +- 障害物との衝突回避率 +- 加速度逸脱量、速度逸脱量 ### Perceptionモジュール #### ユースケースと要件 -* 車両周囲の環境認識 -* 動的および静的障害物の検出と追跡 -* 物体の形状、サイズ、速度の推定 -* 交通状況のモニタリングと予測 +- 車両周囲の環境認識 +- 動的および静的障害物の検出と追跡 +- 物体の形状、サイズ、速度の推定 +- 交通状況のモニタリングと予測 #### 実装の詳細 -* LiDARとカメラからのデータを融合した物体検出と追跡アルゴリズム -* 領域ベースの物体検出器(例:YOLO、Faster R-CNN) -* ニューラルネットワークを使用した特徴抽出と分類 -* 地図データの活用とセンシングデータへの投影 +- LiDARとカメラからのデータを融合した物体検出と追跡アルゴリズム +- 領域ベースの物体検出器(例:YOLO、Faster R-CNN) +- ニューラルネットワークを使用した特徴抽出と分類 +- 地図データの活用とセンシングデータへの投影 #### パフォーマンスの測定基準 -* 物体検出の精度(mAP) -* 物体追跡の精度(IDF1) -* 処理スループット(FPS) -* エラー検出率(例:偽検出率、偽陰性率) +- 物体検出の精度(mAP) +- 物体追跡の精度(IDF1) +- 処理スループット(FPS) +- エラー検出率(例:偽検出率、偽陰性率) ### Controlモジュール #### ユースケースと要件 -* アクセル、ブレーキ、ステアリングの制御 -* 経路計画からの命令の追従 -* 障害物回避のための緊急回避動作 -* 車両の安定性とハンドリングの維持 +- アクセル、ブレーキ、ステアリングの制御 +- 経路計画からの命令の追従 +- 障害物回避のための緊急回避動作 +- 車両の安定性とハンドリングの維持 #### 実装の詳細 -* PID制御器を使用したフィードバック制御 -* モデル予測制御(MPC)を使用した最適制御 -* 先行車両追従のための適応制御アルゴリズム -* 緊急回避のための最適化されたパスクレプランニング +- PID制御器を使用したフィードバック制御 +- モデル予測制御(MPC)を使用した最適制御 +- 先行車両追従のための適応制御アルゴリズム +- 緊急回避のための最適化されたパスクレプランニング #### パフォーマンスの測定基準 -* 経路からの逸脱量 -* アクセル、ブレーキ、ステアリング操作の応答性 -* エネルギー効率(例:燃料消費量) +- 経路からの逸脱量 +- アクセル、ブレーキ、ステアリング操作の応答性 +- エネルギー効率(例:燃料消費量) ### Sensingモジュール #### ユースケースと要件 -* 車両周囲の環境データの収集 -* LiDAR、カメラ、レーダーなど、複数のセンサーのデータ統合 -* データの収集と'post resampling'のリアルタイム処理 -* センサーキャリブレーションとエラー補正 +- 車両周囲の環境データの収集 +- LiDAR、カメラ、レーダーなど、複数のセンサーのデータ統合 +- データの収集と'post resampling'のリアルタイム処理 +- センサーキャリブレーションとエラー補正 #### 実装の詳細 -* ROS(Robot Operating System)ベースのセンサーデータ統合システム -* センサーデータの同期と'post resampling'のリアルタイム処理 -* レーザー、RGB、深度データの融合技術 -* 固有のセンサーデバイスドライバの開発 +- ROS(Robot Operating System)ベースのセンサーデータ統合システム +- センサーデータの同期と'post resampling'のリアルタイム処理 +- レーザー、RGB、深度データの融合技術 +- 固有のセンサーデバイスドライバの開発 #### パフォーマンスの測定基準 -* データの収集範囲と精度 -* データの'post resampling'と同期化の精度 -* センサーキャリブレーションの品質 -* 処理スループット(FPS) +- データの収集範囲と精度 +- データの'post resampling'と同期化の精度 +- センサーキャリブレーションの品質 +- 処理スループット(FPS) ### Autowareとの統合 -* ROSベースのアーキテクチャによるAutowareへのシームレスな統合 -* モジュールの再利用性と拡張性 -* オープンソースコミュニティによる継続的な開発とサポート - +- ROSベースのアーキテクチャによるAutowareへのシームレスな統合 +- モジュールの再利用性と拡張性 +- オープンソースコミュニティによる継続的な開発とサポート diff --git a/common/README.md b/common/README.md index 3127d9bf459b..6d79c7f504f0 100644 --- a/common/README.md +++ b/common/README.md @@ -14,4 +14,3 @@ Autoware.Universe Commonフォルダは他のAutowareコンポーネントで使 1. `autoware_universe_utils` 2. `autoware_motion_utils` - diff --git a/common/autoware_ad_api_specs/README.md b/common/autoware_ad_api_specs/README.md index c415ee8f7776..f096969b769b 100644 --- a/common/autoware_ad_api_specs/README.md +++ b/common/autoware_ad_api_specs/README.md @@ -1,4 +1,3 @@ # autoware_adapi_specs このパッケージは、Autoware AD APIの仕様です。 - diff --git a/common/autoware_component_interface_tools/README.md b/common/autoware_component_interface_tools/README.md index d9c32b2e0295..3fdba57f0fbb 100644 --- a/common/autoware_component_interface_tools/README.md +++ b/common/autoware_component_interface_tools/README.md @@ -5,4 +5,3 @@ ## service_log_checker `component_interface_utils`のサービスログを監視し、レスポンスステータスがエラーかどうかを表示します。 - diff --git a/common/autoware_geography_utils/README.md b/common/autoware_geography_utils/README.md index 13a19553c3f7..506e05b538dd 100644 --- a/common/autoware_geography_utils/README.md +++ b/common/autoware_geography_utils/README.md @@ -3,4 +3,3 @@ ## 目的 このパッケージには、その他の package で使用される地理関連関数があります。必要に応じて参照してください。 - diff --git a/common/autoware_grid_map_utils/README.md b/common/autoware_grid_map_utils/README.md index 86d47a444af9..5a496effe12f 100644 --- a/common/autoware_grid_map_utils/README.md +++ b/common/autoware_grid_map_utils/README.md @@ -46,4 +46,3 @@ - - - diff --git a/common/autoware_interpolation/README.md b/common/autoware_interpolation/README.md index a17d9d6945b1..9c5ebf02e9ca 100644 --- a/common/autoware_interpolation/README.md +++ b/common/autoware_interpolation/README.md @@ -20,11 +20,11 @@ 100点に対するスプライン補間の計算コストを評価し、3対角行列アルゴリズムという最良のものを採用しました。 3対角行列アルゴリズム以外の方法は`spline_interpolation`パッケージに存在しますが、Autowareからは削除されています。 -| 手法 | 計算時間 | -| --------------------------------- | ---------------- | -| 三対角行列アルゴリズム | 0.007 [ms] | -| 前処理共役勾配法 | 0.024 [ms] | -| 逐次過剰緩和法 | 0.074 [ms] | +| 手法 | 計算時間 | +| ---------------------- | ---------- | +| 三対角行列アルゴリズム | 0.007 [ms] | +| 前処理共役勾配法 | 0.024 [ms] | +| 逐次過剰緩和法 | 0.074 [ms] | ### スプライン補間アルゴリズム @@ -105,4 +105,3 @@ x = \end{pmatrix} \end{align} $$ - diff --git a/common/autoware_kalman_filter/README.md b/common/autoware_kalman_filter/README.md index 921f5dd08695..b44312db2568 100644 --- a/common/autoware_kalman_filter/README.md +++ b/common/autoware_kalman_filter/README.md @@ -7,4 +7,3 @@ ## 想定 / 既知の制限 TBD. - diff --git a/common/autoware_motion_utils/README.md b/common/autoware_motion_utils/README.md index 8a7c744edd44..b8924d66bdf6 100644 --- a/common/autoware_motion_utils/README.md +++ b/common/autoware_motion_utils/README.md @@ -20,7 +20,6 @@ Autowareにおける`セグメント`は、次のような2つの連続したポ 最初の関数は、距離とヨーのしきい値を使用して最近接インデックスを見つけるものです。 - ```cpp template size_t findFirstNearestIndexWithSoftConstraints( @@ -45,7 +44,6 @@ size_t findFirstNearestIndexWithSoftConstraints( 2 番目の関数は、`lane_id`であるレーンの最も近いインデックスを見付けます。 - ```cpp size_t findNearestIndexFromLaneId( const tier4_planning_msgs::msg::PathWithLaneId & path, @@ -67,7 +65,6 @@ size_t findNearestIndexFromLaneId( したがって、実装は以下のようになります。 - ```cpp const size_t ego_nearest_idx = findFirstNearestIndexWithSoftConstraints(points, ego_pose, ego_nearest_dist_threshold, ego_nearest_yaw_threshold); const size_t ego_nearest_seg_idx = findFirstNearestIndexWithSoftConstraints(points, ego_pose, ego_nearest_dist_threshold, ego_nearest_yaw_threshold); @@ -81,7 +78,6 @@ const size_t ego_nearest_seg_idx = findFirstNearestIndexWithSoftConstraints(poin したがって、動的オブジェクトではヨー閾値は考慮されるべきではありません。 実装は次のようになります。 - ```cpp const size_t dynamic_obj_nearest_idx = findFirstNearestIndexWithSoftConstraints(points, dynamic_obj_pose, dynamic_obj_nearest_dist_threshold); const size_t dynamic_obj_nearest_seg_idx = findFirstNearestIndexWithSoftConstraints(points, dynamic_obj_pose, dynamic_obj_nearest_dist_threshold); @@ -94,7 +90,6 @@ Laneletマップでは、交通対象は特定のレーンに属しています 実装方法は次のとおりです。 - ```cpp // first extract `lane_id` which the traffic object belong to. const size_t traffic_obj_nearest_idx = findNearestIndexFromLaneId(path_with_lane_id, traffic_obj_pos, lane_id); @@ -106,4 +101,3 @@ const size_t traffic_obj_nearest_seg_idx = findNearestSegmentIndexFromLaneId(pat `trajectory.hpp` の一部テンプレート関数は、主に特定の型 (`autoware_planning_msgs::msg::PathPoint`, `autoware_planning_msgs::msg::PathPoint`, `autoware_planning_msgs::msg::TrajectoryPoint`) で使用されるため、コンパイル時間を短縮するために `extern template` 関数としてエクスポートされています。 `autoware_motion_utils.hpp` ヘッダーファイルは、このファイルを直接/間接的に含むソースファイルがプリプロセスに時間がかかったため削除されました。 - diff --git a/common/autoware_object_recognition_utils/README.md b/common/autoware_object_recognition_utils/README.md index b3d12dc62e9c..a6779dfe39f5 100644 --- a/common/autoware_object_recognition_utils/README.md +++ b/common/autoware_object_recognition_utils/README.md @@ -5,4 +5,3 @@ このパッケージには、オブジェクト認識モジュール全体に有用な共通関数のライブラリが含まれています。 このパッケージには、さまざまなデータ型、メッセージ型間の相互変換や、それらに対する一般的な操作の実行を行う関数が含まれる場合があります。 - diff --git a/common/autoware_overlay_rviz_plugin/autoware_mission_details_overlay_rviz_plugin/README.md b/common/autoware_overlay_rviz_plugin/autoware_mission_details_overlay_rviz_plugin/README.md index 6ec60efb8729..7cac808dd5c5 100644 --- a/common/autoware_overlay_rviz_plugin/autoware_mission_details_overlay_rviz_plugin/README.md +++ b/common/autoware_overlay_rviz_plugin/autoware_mission_details_overlay_rviz_plugin/README.md @@ -6,18 +6,18 @@ ### 入力 -| 名称 | 種類 | 説明 | -| ------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------ | -| `/planning/mission_remaining_distance_time` | `autoware_planning_msgs::msg::MissionRemainingDistanceTime` | ミッションの残り距離と時間を表すトピック | +| 名称 | 種類 | 説明 | +| ------------------------------------------- | ----------------------------------------------------------- | ---------------------------------------- | +| `/planning/mission_remaining_distance_time` | `autoware_planning_msgs::msg::MissionRemainingDistanceTime` | ミッションの残り距離と時間を表すトピック | ## オーバーレイパラメータ -| 名前 | タイプ | デフォルト値 | 説明 | -| -------- | ---- | ------------- | --------------------------------- | -| `Width` | int | 170 | オーバーレイの幅 [`px`] | -| `Height` | int | 100 | オーバーレイの高さ [`px`] | -| `Right` | int | 10 | 右端からの余白 [`px`] | -| `Top` | int | 10 | 上端からの余白 [`px`] | +| 名前 | タイプ | デフォルト値 | 説明 | +| -------- | ------ | ------------ | ------------------------- | +| `Width` | int | 170 | オーバーレイの幅 [`px`] | +| `Height` | int | 100 | オーバーレイの高さ [`px`] | +| `Right` | int | 10 | 右端からの余白 [`px`] | +| `Top` | int | 10 | 上端からの余白 [`px`] | ミッションの詳細表示は、画面の右上に配置されています。 @@ -33,4 +33,3 @@ - - - diff --git a/common/autoware_overlay_rviz_plugin/autoware_overlay_rviz_plugin/README.md b/common/autoware_overlay_rviz_plugin/autoware_overlay_rviz_plugin/README.md index 6f3313ddfa8b..3fa6ad7fd3a2 100644 --- a/common/autoware_overlay_rviz_plugin/autoware_overlay_rviz_plugin/README.md +++ b/common/autoware_overlay_rviz_plugin/autoware_overlay_rviz_plugin/README.md @@ -13,15 +13,15 @@ RViz2の3Dシーン上に2Dオーバーレイを表示するためのプラグ ### 入力 -| 名前 | 種類 | 説明 | -| -------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------- | -| `/vehicle/status/velocity_status` | `autoware_vehicle_msgs::msg::VelocityReport` | 車両速度のトピック | -| `/vehicle/status/turn_indicators_status` | `autoware_vehicle_msgs::msg::TurnIndicatorsReport` | ウインカーの状態のトピック | -| `/vehicle/status/hazard_status` | `autoware_vehicle_msgs::msg::HazardReport` | ハザードランプの状態のトピック | -| `/vehicle/status/steering_status` | `autoware_vehicle_msgs::msg::SteeringReport` | ステアリングの状態のトピック | -| `/vehicle/status/gear_status` | `autoware_vehicle_msgs::msg::GearReport` | ギアのステータスに関するトピック | -| `/planning/scenario_planning/current_max_velocity` | `tier4_planning_msgs::msg::VelocityLimit` | 速度制限に関するトピック | -| `/perception/traffic_light_recognition/traffic_signals` | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 信号機のステータスに関するトピック | +| 名前 | 種類 | 説明 | +| ------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------- | +| `/vehicle/status/velocity_status` | `autoware_vehicle_msgs::msg::VelocityReport` | 車両速度のトピック | +| `/vehicle/status/turn_indicators_status` | `autoware_vehicle_msgs::msg::TurnIndicatorsReport` | ウインカーの状態のトピック | +| `/vehicle/status/hazard_status` | `autoware_vehicle_msgs::msg::HazardReport` | ハザードランプの状態のトピック | +| `/vehicle/status/steering_status` | `autoware_vehicle_msgs::msg::SteeringReport` | ステアリングの状態のトピック | +| `/vehicle/status/gear_status` | `autoware_vehicle_msgs::msg::GearReport` | ギアのステータスに関するトピック | +| `/planning/scenario_planning/current_max_velocity` | `tier4_planning_msgs::msg::VelocityLimit` | 速度制限に関するトピック | +| `/perception/traffic_light_recognition/traffic_signals` | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 信号機のステータスに関するトピック | ## パラメータ @@ -29,13 +29,13 @@ RViz2の3Dシーン上に2Dオーバーレイを表示するためのプラグ #### SignalDisplay -| 名称 | タイプ | デフォルト値 | 説明 | -| ------------------------ | ------ | -------------------- | --------------------------------- | -| `property_width_` | int | 128 | プロッターウィンドウの幅 [px] | +| 名称 | タイプ | デフォルト値 | 説明 | +| ------------------------ | ------ | -------------------- | ------------------------------- | +| `property_width_` | int | 128 | プロッターウィンドウの幅 [px] | | `property_height_` | int | 128 | プロッターウィンドウの高さ [px] | | `property_left_` | int | 128 | プロッターウィンドウの左 [px] | -| `property_top_` | int | 128 | プロッターウィンドウの上 [px] | -| `property_signal_color_` | QColor | QColor(25, 255, 240) | ターンシグナルの色 | +| `property_top_` | int | 128 | プロッターウィンドウの上 [px] | +| `property_signal_color_` | QColor | QColor(25, 255, 240) | ターンシグナルの色 | ## 前提条件 / 制約 @@ -52,4 +52,3 @@ TBD. 3. 必要に応じて、トピックの名前を入力します。 ![select_topic_name](./assets/images/select_topic_name.png) - diff --git a/common/autoware_perception_rviz_plugin/README.md b/common/autoware_perception_rviz_plugin/README.md index 318dd9534e39..1f7ac11a3de5 100644 --- a/common/autoware_perception_rviz_plugin/README.md +++ b/common/autoware_perception_rviz_plugin/README.md @@ -18,52 +18,64 @@ ### 検出された物体 #### 入力タイプ + - `AutowareAuto::DetectedObject` #### Visualized Result + - `rviz::MarkerArray` ### LandMarks #### Input Types + - `AutowareAuto::LandMark` #### Visualized Result + - `rviz::MarkerArray` ### PointClouds #### Input Types + - `AutowareAuto::PointCloud` - `AutowareAuto::LidarPointCloud` - `AutowareAuto::CameraPointCloud` - `AutowareAuto::PointCloud2` #### Visualized Result + - `sensor_msgs::PointCloud2` ### TrackingObjects #### Input Types + - `AutowareAuto::TrackedObject` #### Visualized Result + - `rviz::MarkerArray` ### TrafficLights #### Input Types + - `AutowareAuto::TrafficLight` #### Visualized Result + - `rviz::MarkerArray` ### Planning (optional) #### Input Types + - `AutowareAuto::Trajectory` #### Visualized Result + - `rviz::MarkerArray` ## Configuration @@ -202,8 +214,8 @@ rviz roslaunch autoware_perception_rviz_plugin autoware_perception_rviz_plugin.launch ``` -| 名称 | タイプ | 説明 | -| ---------- | ------------------------------------------------ | ---------------------- | +| 名称 | タイプ | 説明 | +| ---- | ------------------------------------------------ | ------------ | | | `autoware_perception_msgs::msg::DetectedObjects` | 検出結果配列 | #### 可視化結果 @@ -214,9 +226,9 @@ roslaunch autoware_perception_rviz_plugin autoware_perception_rviz_plugin.launch #### 入力タイプ -| 名称 | タイプ | 説明 | -|---|---|---| -| | `autoware_perception_msgs::msg::TrackedObjects` | 追跡結果の配列 | +| 名称 | タイプ | 説明 | +| ---- | ----------------------------------------------- | -------------- | +| | `autoware_perception_msgs::msg::TrackedObjects` | 追跡結果の配列 | #### 可視化結果 @@ -228,9 +240,9 @@ roslaunch autoware_perception_rviz_plugin autoware_perception_rviz_plugin.launch #### 入力タイプ -| 名前 | 種別 | 説明 | -| ---- | ------------------------------------------------- | ------------------------- | -| | `autoware_perception_msgs::msg::PredictedObjects` | prediction結果配列 | +| 名前 | 種別 | 説明 | +| ---- | ------------------------------------------------- | ------------------ | +| | `autoware_perception_msgs::msg::PredictedObjects` | prediction結果配列 | #### 可視化結果 @@ -243,4 +255,3 @@ roslaunch autoware_perception_rviz_plugin autoware_perception_rviz_plugin.launch [1] ## 今後の拡張/未実装部分 - diff --git a/common/autoware_point_types/README.md b/common/autoware_point_types/README.md index e6a9baa18431..cbdf84764997 100644 --- a/common/autoware_point_types/README.md +++ b/common/autoware_point_types/README.md @@ -120,4 +120,3 @@ - `max_lateral_acceleration`: 最大横加速度 (m/s²) - `max_steer_acceleration`: 最大操舵角加速度 (m/s²) - `max_steer_angle_rate`: 最大操舵角速度 (rad/s) - diff --git a/common/autoware_signal_processing/README.md b/common/autoware_signal_processing/README.md index e8b1281ef865..61331144ee74 100644 --- a/common/autoware_signal_processing/README.md +++ b/common/autoware_signal_processing/README.md @@ -10,4 +10,3 @@ ## 想定 / 既知の制限 未定です。 - diff --git a/common/autoware_test_utils/README.md b/common/autoware_test_utils/README.md index a7edb06217cd..d4169de39a14 100644 --- a/common/autoware_test_utils/README.md +++ b/common/autoware_test_utils/README.md @@ -45,7 +45,6 @@ road_shouldersレーンレットマップは、次のようなroad_shoulderタ planning_simulatorを次のように簡単に起動できます。 - ```bash ros2 launch autoware_test_utils psim_road_shoulder.launch.xml vehicle_model:=<> sensor_model:=<> use_sim_time:=true ``` @@ -64,7 +63,6 @@ ros2 launch autoware_test_utils psim_road_shoulder.launch.xml vehicle_model:=<> 次のようにして簡単にplanning_simulatorを起動できます - ```bash ros2 launch autoware_test_utils psim_intersection.launch.xml vehicle_model:=<> sensor_model:=<> use_sim_time:=true ``` @@ -79,20 +77,17 @@ ros2 launch autoware_test_utils psim_intersection.launch.xml vehicle_model:=<> s [PR説明](https://github.com/autowarefoundation/autoware.universe/pull/9207)で提示されているように、ユーザーはテストマップ上でPlanning Simulationを実行中にシーンのスナップショットをyamlファイルに保存することができます。 - ```bash ros2 launch autoware_test_utils psim_road_shoulder.launch.xml vehicle_model:= sensor_model:= ros2 launch autoware_test_utils psim_intersection.launch.xml vehicle_model:= sensor_model:= ``` - ```bash ros2 service call /autoware_test_utils/topic_snapshot_saver std_srvs/srv/Empty \{\} ``` トピックを保存するトピックのリストとフィールド名は、`config/sample_topic_snapshot.yaml` で指定されています。 - ```yaml # setting fields: @@ -107,4 +102,3 @@ self_odometry: ``` 各フィールドは、`autoware_test_utils/mock_data_parser.hpp` で定義された関数を使用して ROS メッセージタイプに解析できます。 - diff --git a/common/autoware_universe_utils/README.md b/common/autoware_universe_utils/README.md index f539ab5c48fa..480ebbefe390 100644 --- a/common/autoware_universe_utils/README.md +++ b/common/autoware_universe_utils/README.md @@ -16,7 +16,6 @@ ##### コンストラクタ - ```cpp template explicit TimeKeeper(Reporters... reporters); @@ -59,7 +58,6 @@ explicit TimeKeeper(Reporters... reporters); - 以下に示すように、`start_track`と`end_track`を使用して時間測定を開始および終了できます。 - ```cpp time_keeper.start_track("example_function"); // Your function code here @@ -70,7 +68,6 @@ explicit TimeKeeper(Reporters... reporters); ##### 例 - ```cpp #include @@ -143,7 +140,6 @@ int main(int argc, char ** argv) - 出力(コンソール) - ```text ========================== func_a (6.243ms) : This is a comment for func_a @@ -153,7 +149,6 @@ int main(int argc, char ** argv) - 出力 (`ros2 topic echo /processing_time`) - ```text --- nodes: @@ -182,7 +177,6 @@ int main(int argc, char ** argv) ##### コンストラクタ - ```cpp ScopedTimeTrack(const std::string & func_name, TimeKeeper & time_keeper); ``` @@ -192,10 +186,8 @@ ScopedTimeTrack(const std::string & func_name, TimeKeeper & time_keeper); ##### デストラクター - ```cpp ~ScopedTimeTrack(); ``` - `ScopedTimeTrack`オブジェクトを破壊し、関数の追跡を終了します。 - diff --git a/common/bag_time_manager_rviz_plugin/README.md b/common/bag_time_manager_rviz_plugin/README.md index 7c8ce5bf8566..717300efb3ae 100644 --- a/common/bag_time_manager_rviz_plugin/README.md +++ b/common/bag_time_manager_rviz_plugin/README.md @@ -24,4 +24,3 @@ TBD - Pause/Resume: クロックを一時停止/再開します。 - ApplyRate: クロックのレートを適用します。 - diff --git a/common/glog_component/README.md b/common/glog_component/README.md index fcb0d7e7d935..483ea0c493d1 100644 --- a/common/glog_component/README.md +++ b/common/glog_component/README.md @@ -8,7 +8,6 @@ コンテナで `glog_component` を読み込む場合、起動ファイルは以下のようになります。 - ```py glog_component = ComposableNode( package="glog_component", @@ -28,4 +27,3 @@ container = ComposableNodeContainer( ], ) ``` - diff --git a/common/tier4_adapi_rviz_plugin/README.md b/common/tier4_adapi_rviz_plugin/README.md index 9aba8a004d03..aca903d0ed0d 100644 --- a/common/tier4_adapi_rviz_plugin/README.md +++ b/common/tier4_adapi_rviz_plugin/README.md @@ -27,4 +27,3 @@ Material Design アイコンは Apache License, Version 2.0 のもとでライ ### 謝辞 これらのアイコンをコミュニティに提供し、開発者とデザイナーがプロジェクトの視覚的魅力とユーザーエクスペリエンスを強化するのに役立てている Google に感謝の意を表します。 - diff --git a/common/tier4_api_utils/README.md b/common/tier4_api_utils/README.md index bb39f8331bb1..44d8457620ed 100644 --- a/common/tier4_api_utils/README.md +++ b/common/tier4_api_utils/README.md @@ -2,4 +2,3 @@ これはサービスを呼び出したときにログを記録するクラスの古い実装です。 代わりに[component_interface_utils](../component_interface_utils/README.md)を使用してください。 - diff --git a/common/tier4_camera_view_rviz_plugin/README.md b/common/tier4_camera_view_rviz_plugin/README.md index b074b28ef8c4..e35f5f5cb345 100644 --- a/common/tier4_camera_view_rviz_plugin/README.md +++ b/common/tier4_camera_view_rviz_plugin/README.md @@ -25,4 +25,3 @@ RVizに`tier4_camera_view_rviz_plugin/BirdEyeViewTool`ツールを追加しま ### 謝辞 これらのアイコンをコミュニティに提供し、開発者やデザイナーがプロジェクトのビジュアルアピールとユーザーエクスペリエンスを向上させることができるよう支援するGoogleに感謝の意を表します。 - diff --git a/common/tier4_datetime_rviz_plugin/README.md b/common/tier4_datetime_rviz_plugin/README.md index 7705dc1e5b92..480d9cede83a 100644 --- a/common/tier4_datetime_rviz_plugin/README.md +++ b/common/tier4_datetime_rviz_plugin/README.md @@ -14,4 +14,3 @@ TBD。 ![select_panel](./images/select_panels.png) 2. tier4_datetime_rviz_plugin/AutowareDateTimePanelを選択して、OKを押します。 ![select_datetime_plugin](./images/select_datetime_plugin.png) - diff --git a/common/tier4_localization_rviz_plugin/README.md b/common/tier4_localization_rviz_plugin/README.md index 2a6fbeb81671..4b41a82c626d 100644 --- a/common/tier4_localization_rviz_plugin/README.md +++ b/common/tier4_localization_rviz_plugin/README.md @@ -10,14 +10,14 @@ ### Pose履歴 -| 名称 | タイプ | 説明 | -| ---- | ----- | ------------------------------------------------------------------------------------------------- | +| 名称 | タイプ | 説明 | +| ------------ | --------------------------------- | --------------------------------------------------------------------------------------------------- | | `input/pose` | `geometry_msgs::msg::PoseStamped` | `input/pose` には、ekf_localizer、ndt_scan_matching、または GNSS で計算された局所化の結果を入れます | ### 共分散を持つ自車位置履歴 -| 名称 | 型 | 説明 | -| ---------------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| 名称 | 型 | 説明 | +| ---------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | | `input/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | `input/pose_with_covariance` には、ekf_localizer、ndt_scan_matching、GNSS によって計算された、ローカリゼーションの結果を配置します。 | ## パラメータ @@ -26,33 +26,33 @@ ### 自車位置履歴 -| 名称 | タイプ | デフォルト値 | 説明 | -| ----------------------- | ------ | ------------- | ------------------------- | -| `property_buffer_size_` | int | 100 | トピックのバッファサイズ | -| `property_line_view_` | bool | true | Lineプロパティを使用 | -| `property_line_width_` | float | 0.1 | Lineプロパティの幅 [m] | -| `property_line_alpha_` | float | 1.0 | Lineプロパティのアルファ | -| `property_line_color_` | QColor | Qt::white | Lineプロパティの色 | +| 名称 | タイプ | デフォルト値 | 説明 | +| ----------------------- | ------ | ------------ | ------------------------ | +| `property_buffer_size_` | int | 100 | トピックのバッファサイズ | +| `property_line_view_` | bool | true | Lineプロパティを使用 | +| `property_line_width_` | float | 0.1 | Lineプロパティの幅 [m] | +| `property_line_alpha_` | float | 1.0 | Lineプロパティのアルファ | +| `property_line_color_` | QColor | Qt::white | Lineプロパティの色 | ### 自車位置の共分散履歴 -| 名称 | タイプ | デフォルト値 | 説明 | -| ----------------------------- | ------ | ------------ | --------------------------------------- | -| `property_buffer_size_` | int | 100 | トピックのバッファサイズ | -| `property_path_view_` | bool | true | パスプロパティを使用するか否か | -| `property_shape_type_` | string | Line | LineまたはArrow | -| `property_line_width_` | float | 0.1 | Lineプロパティの幅 [m] | -| `property_line_alpha_` | float | 1.0 | Lineプロパティのアルファ | -| `property_line_color_` | QColor | Qt::white | Lineプロパティの色 | -| `property_arrow_shaft_length` | float | 0.3 | Arrowプロパティのシャフトの長さ | -| `property_arrow_shaft_diameter` | float | 0.15 | Arrowプロパティのシャフトの直径 | -| `property_arrow_head_length` | float | 0.2 | Arrowプロパティのヘッドの長さ | -| `property_arrow_head_diameter` | float | 0.3 | Arrowプロパティのヘッドの直径 | -| `property_arrow_alpha_` | float | 1.0 | Arrowプロパティのアルファ | -| `property_arrow_color_` | QColor | Qt::white | Arrowプロパティの色 | -| `property_sphere_scale_` | float | 1.0 | Sphereプロパティのスケール | -| `property_sphere_alpha_` | float | 0.5 | Sphereプロパティのアルファ | -| `property_sphere_color_` | QColor | (204, 51, 204) | Sphereプロパティの色 | +| 名称 | タイプ | デフォルト値 | 説明 | +| ------------------------------- | ------ | -------------- | ------------------------------- | +| `property_buffer_size_` | int | 100 | トピックのバッファサイズ | +| `property_path_view_` | bool | true | パスプロパティを使用するか否か | +| `property_shape_type_` | string | Line | LineまたはArrow | +| `property_line_width_` | float | 0.1 | Lineプロパティの幅 [m] | +| `property_line_alpha_` | float | 1.0 | Lineプロパティのアルファ | +| `property_line_color_` | QColor | Qt::white | Lineプロパティの色 | +| `property_arrow_shaft_length` | float | 0.3 | Arrowプロパティのシャフトの長さ | +| `property_arrow_shaft_diameter` | float | 0.15 | Arrowプロパティのシャフトの直径 | +| `property_arrow_head_length` | float | 0.2 | Arrowプロパティのヘッドの長さ | +| `property_arrow_head_diameter` | float | 0.3 | Arrowプロパティのヘッドの直径 | +| `property_arrow_alpha_` | float | 1.0 | Arrowプロパティのアルファ | +| `property_arrow_color_` | QColor | Qt::white | Arrowプロパティの色 | +| `property_sphere_scale_` | float | 1.0 | Sphereプロパティのスケール | +| `property_sphere_alpha_` | float | 0.5 | Sphereプロパティのアルファ | +| `property_sphere_color_` | QColor | (204, 51, 204) | Sphereプロパティの色 | ## 想定/既知の制限 @@ -68,4 +68,3 @@ TBD. ![select_topic_name](./images/select_topic_name.png) 4. 軌道と共分散を表示できます。 ![ex_pose_with_covariance_history](./images/ex_pose_with_covariance_history.png) - diff --git a/common/tier4_planning_rviz_plugin/README.md b/common/tier4_planning_rviz_plugin/README.md index 402222d8578a..7cd3f11e9340 100644 --- a/common/tier4_planning_rviz_plugin/README.md +++ b/common/tier4_planning_rviz_plugin/README.md @@ -10,17 +10,19 @@ jsk_overlay_utils.cppとjsk_overlay_utils.hppはBSDライセンスです。 ## 入出力 ### 入力 + - current pose - velocity profile - planned trajectory -- v\_max +- v_max ### Output + - No outputs ## Usage -```roslaunch tier4_planning_rviz_plugin tier4_planning_rviz_plugin.launch [args...]``` +`roslaunch tier4_planning_rviz_plugin tier4_planning_rviz_plugin.launch [args...]` ## Arguments @@ -34,11 +36,11 @@ jsk_overlay_utils.cppとjsk_overlay_utils.hppはBSDライセンスです。 --max_longitudinal_jerk 1.0 ``` -| 名前 | タイプ | 説明 | -| --------------------------------------------- | ----------------------------------------- | ------------------------------------------- | -| `/input/path` | `autoware_planning_msgs::msg::Path` | パスをサブスクライブするトピック | -| `/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | トラジェクトリをサブスクライブするトピック | -| `/planning/scenario_planning/current_max_velocity` | `tier4_planning_msgs/msg/VelocityLimit` | 最大速度をパブリッシュするトピック | +| 名前 | タイプ | 説明 | +| -------------------------------------------------- | ----------------------------------------- | ------------------------------------------ | +| `/input/path` | `autoware_planning_msgs::msg::Path` | パスをサブスクライブするトピック | +| `/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | トラジェクトリをサブスクライブするトピック | +| `/planning/scenario_planning/current_max_velocity` | `tier4_planning_msgs/msg/VelocityLimit` | 最大速度をパブリッシュするトピック | ### 出力 @@ -50,35 +52,35 @@ jsk_overlay_utils.cppとjsk_overlay_utils.hppはBSDライセンスです。 #### 入力 -* 自車位置(`current pose`) -* 目的地 -* 障害物マップ -* 走行制限マップ +- 自車位置(`current pose`) +- 目的地 +- 障害物マップ +- 走行制限マップ #### 出力 -* 経路(`post resampling`) -* 速度プロファイル -* 加速度逸脱量 -* 速度逸脱量 +- 経路(`post resampling`) +- 速度プロファイル +- 加速度逸脱量 +- 速度逸脱量 #### アルゴリズム 経路計画モジュールは、以下を含む複数のサブコンポーネントを使用します。 -* **経路探索:** A*アルゴリズムを使用して、障害物を回避する最適な経路を探索します。 -* **経路平滑化:** 経路の急カーブや急激な速度変化を滑らかにします。 -* **速度計画:** 速度制限や加速制限を考慮して、安全な速度プロファイルを作成します。 +- **経路探索:** A\*アルゴリズムを使用して、障害物を回避する最適な経路を探索します。 +- **経路平滑化:** 経路の急カーブや急激な速度変化を滑らかにします。 +- **速度計画:** 速度制限や加速制限を考慮して、安全な速度プロファイルを作成します。 #### 注意事項 -* 経路計画モジュールは、障害物マップと走行制限マップの正確性に依存します。 -* モジュールは動的環境では動作しません。 -* 経路は**推奨経路**であることに注意してください。実際の経路は、センサーデータや他の制御システムによって修正される可能性があります。 +- 経路計画モジュールは、障害物マップと走行制限マップの正確性に依存します。 +- モジュールは動的環境では動作しません。 +- 経路は**推奨経路**であることに注意してください。実際の経路は、センサーデータや他の制御システムによって修正される可能性があります。 -| 名称 | 種別 | 説明 | -| --------------------------------------- | ------------------------------ | ----------------------------------------- | -| `/planning/mission_planning/checkpoint` | `geometry_msgs/msg/PoseStamped` | チェックポイントを公開するトピック | +| 名称 | 種別 | 説明 | +| --------------------------------------- | ------------------------------- | ---------------------------------- | +| `/planning/mission_planning/checkpoint` | `geometry_msgs/msg/PoseStamped` | チェックポイントを公開するトピック | ## パラメーター @@ -86,13 +88,13 @@ jsk_overlay_utils.cppとjsk_overlay_utils.hppはBSDライセンスです。 #### MissionCheckpoint -| 名前 | 型 | 初期値 | 説明 | -|---|---|---|---| -| `pose_topic_property_` | 文字列 | `mission_checkpoint` | チェックポイントを発行するトピック | -| `std_dev_x_` | 浮動小数 | 0.5 | チェックポイント姿勢の X 標準偏差 [m] | -| `std_dev_y_` | 浮動小数 | 0.5 | チェックポイント姿勢の Y 標準偏差 [m] | -| `std_dev_theta_` | 浮動小数 | M_PI / 12.0 | チェックポイント姿勢の Theta 標準偏差 [rad] | -| `position_z_` | 浮動小数 | 0.0 | チェックポイント姿勢の Z 位置 [m] | +| 名前 | 型 | 初期値 | 説明 | +| ---------------------- | -------- | -------------------- | ------------------------------------------- | +| `pose_topic_property_` | 文字列 | `mission_checkpoint` | チェックポイントを発行するトピック | +| `std_dev_x_` | 浮動小数 | 0.5 | チェックポイント姿勢の X 標準偏差 [m] | +| `std_dev_y_` | 浮動小数 | 0.5 | チェックポイント姿勢の Y 標準偏差 [m] | +| `std_dev_theta_` | 浮動小数 | M_PI / 12.0 | チェックポイント姿勢の Theta 標準偏差 [rad] | +| `position_z_` | 浮動小数 | 0.0 | チェックポイント姿勢の Z 位置 [m] | #### Path @@ -100,32 +102,32 @@ jsk_overlay_utils.cppとjsk_overlay_utils.hppはBSDライセンスです。 各セグメントには、以下のパラメータが含まれています。 -* 開始と終了の経路ポイント -* 最大速度と加速度 -* スプライン補完(オプション) +- 開始と終了の経路ポイント +- 最大速度と加速度 +- スプライン補完(オプション) **Planning** コンポーネントは、以下を考慮して経路を最適化します。 -* 交通規制(速度制限、停止線など) -* 交通状況(他の車両、歩行者など) -* 車両の動力学(加速度、減速度、曲がる能力) +- 交通規制(速度制限、停止線など) +- 交通状況(他の車両、歩行者など) +- 車両の動力学(加速度、減速度、曲がる能力) 最適化された経路が計算されたら、**Planning** コンポーネントはこれを実行される一連のコマンド(コントロールコマンド)に変換します。コントロールコマンドには、車両の速度、加速度、ステアリングの目標値が含まれます。 -| 名称 | 型 | デフォルト値 | 説明 | -| ------------------------------------ | ------ | ------------- | ---------------------------------------------------- | -| `property_path_view_` | bool | true | パスプロパティを使用するかどうか | -| `property_path_width_view_` | bool | false | 一定の幅を使用するかどうか | -| `property_path_width_` | float | 2.0 | パスプロパティの幅 [m] | -| `property_path_alpha_` | float | 1.0 | パスプロパティのアルファ | -| `property_path_color_view_` | bool | false | 一定の色を使用するかどうか | -| `property_path_color_` | QColor | Qt::black | パスプロパティの色 | -| `property_velocity_view_` | bool | true | 速度プロパティを使用するかどうか | -| `property_velocity_alpha_` | float | 1.0 | 速度プロパティのアルファ | -| `property_velocity_scale_` | float | 0.3 | 速度プロパティのスケール | -| `property_velocity_color_view_` | bool | false | 一定の色を使用するかどうか | -| `property_velocity_color_` | QColor | Qt::black | 速度プロパティの色 | -| `property_vel_max_` | float | 3.0 | 最大速度 [m/s] | +| 名称 | 型 | デフォルト値 | 説明 | +| ------------------------------- | ------ | ------------ | -------------------------------- | +| `property_path_view_` | bool | true | パスプロパティを使用するかどうか | +| `property_path_width_view_` | bool | false | 一定の幅を使用するかどうか | +| `property_path_width_` | float | 2.0 | パスプロパティの幅 [m] | +| `property_path_alpha_` | float | 1.0 | パスプロパティのアルファ | +| `property_path_color_view_` | bool | false | 一定の色を使用するかどうか | +| `property_path_color_` | QColor | Qt::black | パスプロパティの色 | +| `property_velocity_view_` | bool | true | 速度プロパティを使用するかどうか | +| `property_velocity_alpha_` | float | 1.0 | 速度プロパティのアルファ | +| `property_velocity_scale_` | float | 0.3 | 速度プロパティのスケール | +| `property_velocity_color_view_` | bool | false | 一定の色を使用するかどうか | +| `property_velocity_color_` | QColor | Qt::black | 速度プロパティの色 | +| `property_vel_max_` | float | 3.0 | 最大速度 [m/s] | #### 走行可能領域 @@ -135,14 +137,16 @@ jsk_overlay_utils.cppとjsk_overlay_utils.hppはBSDライセンスです。 DrivableAreaモジュールは、現在の周りの走行可能なエリアを検出し、それをトラジェクトリプランニングとローカルプランニングに提供します。 **入力** -* 自車位置と姿勢 -* センサーデータ(点群、画像など) -* Map data (lane information, drivable area information) -* タスクマニュアル(実行するタスク) + +- 自車位置と姿勢 +- センサーデータ(点群、画像など) +- Map data (lane information, drivable area information) +- タスクマニュアル(実行するタスク) **出力** -* 走行可能領域の点群 -* 走行可能領域のポリゴン + +- 走行可能領域の点群 +- 走行可能領域のポリゴン **アルゴリズム** DrivableAreaモジュールは、以下のステップで走行可能領域を検出します。 @@ -155,39 +159,39 @@ DrivableAreaモジュールは、以下のステップで走行可能領域を **パラメータ** DrivableAreaモジュールの動作は、次のパラメータで構成できます。 -* センサーパラメータ(スキャン範囲、解像度など) -* フィルターパラメータ(地面検出しきい値、障害物検出しきい値など) -* 抽出パラメータ(走行可能エリアの最小サイズ、最大傾斜角度など) -* `post resampling`パラメータ(カーネルサイズ、シグマ値など) +- センサーパラメータ(スキャン範囲、解像度など) +- フィルターパラメータ(地面検出しきい値、障害物検出しきい値など) +- 抽出パラメータ(走行可能エリアの最小サイズ、最大傾斜角度など) +- `post resampling`パラメータ(カーネルサイズ、シグマ値など) **評価指標** DrivableAreaモジュールの性能は、以下の指標によって評価できます。 -* 正答率 -* 再現率 -* F1スコア -* 処理時間 +- 正答率 +- 再現率 +- F1スコア +- 処理時間 **依存関係** DrivableAreaモジュールは、以下のコンポーネントに依存しています。 -* ロケーション(自車位置と姿勢の提供) -* センサー(点群と画像データの提供) -* マップ(レーン情報と走行可能エリア情報の提供) -* タスクマネージャー(実行するタスクの提供) +- ロケーション(自車位置と姿勢の提供) +- センサー(点群と画像データの提供) +- マップ(レーン情報と走行可能エリア情報の提供) +- タスクマネージャー(実行するタスクの提供) **制限事項** DrivableAreaモジュールには、次の制限事項があります。 -* センサーの死角の影響を受けます。 -* 動的障害物(歩行者、車両など)を検出できません。 -* 急激な勾配や複雑な環境では、走行可能領域を正確に検出できない場合があります。 +- センサーの死角の影響を受けます。 +- 動的障害物(歩行者、車両など)を検出できません。 +- 急激な勾配や複雑な環境では、走行可能領域を正確に検出できない場合があります。 | 名前 | タイプ | 初期値 | 説明 | -| ------------------------ | ----- | ------- | --------------------------------------- | -| `color_scheme_property_` | 整数 | 0 | 走行可能エリアプロパティのカラーテーマ | -| `alpha_property_` | float | 0.2 | 走行可能エリアプロパティのアルファ値 | -| `draw_under_property_` | bool | false | 背景として描画するか否か | +| ------------------------ | ------ | ------ | -------------------------------------- | +| `color_scheme_property_` | 整数 | 0 | 走行可能エリアプロパティのカラーテーマ | +| `alpha_property_` | float | 0.2 | 走行可能エリアプロパティのアルファ値 | +| `draw_under_property_` | bool | false | 背景として描画するか否か | #### PathFootprint @@ -204,21 +208,22 @@ PathFootprintは、次の機能を提供します。 - PathFootprintは、最も高い評価を得たトラジェクトリを返します。 - これにより、Autoware.Planningコンポーネントは、自車位置と目標値に基づいて、最適なトラジェクトリを選択できます。 -| Name | Type | Default Value | Description | -| -------------------------------- | ------ | ------------- | ---------------------------------------------- | +| Name | Type | Default Value | Description | +| -------------------------------- | ------ | ------------- | ---------------------------------------------------- | | `property_path_footprint_view_` | bool | true | パスフットプリントプロパティを使用するかどうかの設定 | -| `property_path_footprint_alpha_` | float | 1.0 | パスフットプリントプロパティのアルファ値 | -| `property_path_footprint_color_` | QColor | Qt::black | パスフットプリントプロパティの色 | -| `property_vehicle_length_` | float | 4.77 | 車両の長さ [m] | -| `property_vehicle_width_` | float | 1.83 | 車両の幅 [m] | -| `property_rear_overhang_` | float | 1.03 | リアオーバーハング [m] | +| `property_path_footprint_alpha_` | float | 1.0 | パスフットプリントプロパティのアルファ値 | +| `property_path_footprint_color_` | QColor | Qt::black | パスフットプリントプロパティの色 | +| `property_vehicle_length_` | float | 4.77 | 車両の長さ [m] | +| `property_vehicle_width_` | float | 1.83 | 車両の幅 [m] | +| `property_rear_overhang_` | float | 1.03 | リアオーバーハング [m] | #### Trajectory AutowareのTrajectoryコンポーネントは、次のことを行う責任があります。 -* センサー情報から障害物と車線の認識(perception)。 -* 動的経路計画(Dynamic Path Planning)による、自車位置と障害物に関する知識に基づく経路の生成。 -* エラストキネティックモデル(Elastokinetic Model)による、経路に対する速度、加速度制御。 + +- センサー情報から障害物と車線の認識(perception)。 +- 動的経路計画(Dynamic Path Planning)による、自車位置と障害物に関する知識に基づく経路の生成。 +- エラストキネティックモデル(Elastokinetic Model)による、経路に対する速度、加速度制御。 経路の生成プロセスは、2つの主要なサブプロセスに分かれています。 @@ -226,32 +231,34 @@ AutowareのTrajectoryコンポーネントは、次のことを行う責任が 2. **ローカルパスプランニング**:障害物と自車位置に基づいて現実的な経路を計算します。 ローカルパスプランニングでは、以下を考慮して経路を計算します。 -* 障害物逸脱量 -* 加速度逸脱量 -* 速度逸脱量 + +- 障害物逸脱量 +- 加速度逸脱量 +- 速度逸脱量 また、経路の生成時には以下の制約が考慮されます。 -* 最小曲率半径 -* 最大速度 -* 最大加速度 + +- 最小曲率半径 +- 最大速度 +- 最大加速度 経路が生成されると、'post resampling`が適用され、Planningコンポーネントに渡される前に、経路が滑らかで連続的になります。 -| 名称 | 型 | 初期値 | 説明 | -| --------------------------------------- | -------- | ----------- | ----------------------------------------------------- | -| `property_path_view_` | 論理値 | true | パスプロパティを使用するかどうか | -| `property_path_width_` | 浮動小数 | 2.0 | パスプロパティの幅 [m] | -| `property_path_alpha_` | 浮動小数 | 1.0 | パスプロパティのアルファ | -| `property_path_color_view_` | 論理値 | false | 定数値を使用するかどうか | -| `property_path_color_` | QColor | Qt::black | パスプロパティの色 | -| `property_velocity_view_` | 論理値 | true | Velocityプロパティを使用するかどうか | -| `property_velocity_alpha_` | 浮動小数 | 1.0 | Velocityプロパティのアルファ | -| `property_velocity_scale_` | 浮動小数 | 0.3 | Velocityプロパティのスケール | -| `property_velocity_color_view_` | 論理値 | false | 定数値を使用するかどうか | -| `property_velocity_color_` | QColor | Qt::black | Velocityプロパティの色 | -| `property_velocity_text_view_` | 論理値 | false | Velocityをテキストで表示する | -| `property_velocity_text_scale_` | 浮動小数 | 0.3 | Velocityプロパティのスケール | -| `property_vel_max_` | 浮動小数 | 3.0 | 最大速度 [m/s] | +| 名称 | 型 | 初期値 | 説明 | +| ------------------------------- | -------- | --------- | ------------------------------------ | +| `property_path_view_` | 論理値 | true | パスプロパティを使用するかどうか | +| `property_path_width_` | 浮動小数 | 2.0 | パスプロパティの幅 [m] | +| `property_path_alpha_` | 浮動小数 | 1.0 | パスプロパティのアルファ | +| `property_path_color_view_` | 論理値 | false | 定数値を使用するかどうか | +| `property_path_color_` | QColor | Qt::black | パスプロパティの色 | +| `property_velocity_view_` | 論理値 | true | Velocityプロパティを使用するかどうか | +| `property_velocity_alpha_` | 浮動小数 | 1.0 | Velocityプロパティのアルファ | +| `property_velocity_scale_` | 浮動小数 | 0.3 | Velocityプロパティのスケール | +| `property_velocity_color_view_` | 論理値 | false | 定数値を使用するかどうか | +| `property_velocity_color_` | QColor | Qt::black | Velocityプロパティの色 | +| `property_velocity_text_view_` | 論理値 | false | Velocityをテキストで表示する | +| `property_velocity_text_scale_` | 浮動小数 | 0.3 | Velocityプロパティのスケール | +| `property_vel_max_` | 浮動小数 | 3.0 | 最大速度 [m/s] | #### TrajectoryFootprint @@ -259,39 +266,39 @@ AutowareのTrajectoryコンポーネントは、次のことを行う責任が このコンポーネントは次の入力を取ります。 -* `CurrentPose`:自車位置 -* `LaneCenterline`:車線の中心線 -* `Trajectory`:プランニングコンポーネントから提供された経路 +- `CurrentPose`:自車位置 +- `LaneCenterline`:車線の中心線 +- `Trajectory`:プランニングコンポーネントから提供された経路 そして次の出力を生成します: -* `TrajectoryFootprint`:経路幅と経路半径が追加された経路 - -| 名前 | タイプ | デフォルト値 | 説明 | -| -------------------------------------- | ------ | -------------------------- | ----------------------------------------- | -| `property_trajectory_footprint_view_` | bool | true | Trajectory Footprint プロパティを使用するかどうか | -| `property_trajectory_footprint_alpha_` | float | 1.0 | Trajectory Footprint プロパティのアルファ値 | -| `property_trajectory_footprint_color_` | QColor | QColor(230, 230, 50) | Trajectory Footprint プロパティのカラー値 | -| `property_vehicle_length_` | float | 4.77 | 車両の長さ [m] | -| `property_vehicle_width_` | float | 1.83 | 車両の幅 [m] | -| `property_rear_overhang_` | float | 1.03 | リアオーバーハング [m] | -| `property_trajectory_point_view_` | bool | false | Trajectory Point プロパティを使用するかどうか | -| `property_trajectory_point_alpha_` | float | 1.0 | Trajectory Point プロパティのアルファ値 | -| `property_trajectory_point_color_` | QColor | QColor(0, 60, 255) | Trajectory Point プロパティのカラー値 | -| `property_trajectory_point_radius_` | float | 0.1 | Trajectory Point プロパティの半径値 | +- `TrajectoryFootprint`:経路幅と経路半径が追加された経路 + +| 名前 | タイプ | デフォルト値 | 説明 | +| -------------------------------------- | ------ | -------------------- | ------------------------------------------------- | +| `property_trajectory_footprint_view_` | bool | true | Trajectory Footprint プロパティを使用するかどうか | +| `property_trajectory_footprint_alpha_` | float | 1.0 | Trajectory Footprint プロパティのアルファ値 | +| `property_trajectory_footprint_color_` | QColor | QColor(230, 230, 50) | Trajectory Footprint プロパティのカラー値 | +| `property_vehicle_length_` | float | 4.77 | 車両の長さ [m] | +| `property_vehicle_width_` | float | 1.83 | 車両の幅 [m] | +| `property_rear_overhang_` | float | 1.03 | リアオーバーハング [m] | +| `property_trajectory_point_view_` | bool | false | Trajectory Point プロパティを使用するかどうか | +| `property_trajectory_point_alpha_` | float | 1.0 | Trajectory Point プロパティのアルファ値 | +| `property_trajectory_point_color_` | QColor | QColor(0, 60, 255) | Trajectory Point プロパティのカラー値 | +| `property_trajectory_point_radius_` | float | 0.1 | Trajectory Point プロパティの半径値 | #### MaxVelocity Planningモジュールによって計算された最も速く走行可能な速度。この速度は、周囲環境や自車位置に基づいてシステムが決定します。 -| 名前 | タイプ | デフォルト値 | 説明 | -| ----------------------- | ------ | -------------------------------------------------- | ------------------------------------------------ | -| `property_topic_name_` | 文字列 | `/planning/scenario_planning/current_max_velocity` | 最大速度を購読するためのトピック | -| `property_text_color_` | QColor | QColor(255, 255, 255) | テキストの色 | -| `property_left_` | 整数 | 128 | プロッタウィンドウの左側 [px] | -| `property_top_` | 整数 | 128 | プロッタウィンドウの上 [px] | -| `property_length_` | 整数 | 96 | プロッタウィンドウの長さ [px] | -| `property_value_scale_` | 浮動小数 | 1.0 / 4.0 | 値のスケール | +| 名前 | タイプ | デフォルト値 | 説明 | +| ----------------------- | -------- | -------------------------------------------------- | -------------------------------- | +| `property_topic_name_` | 文字列 | `/planning/scenario_planning/current_max_velocity` | 最大速度を購読するためのトピック | +| `property_text_color_` | QColor | QColor(255, 255, 255) | テキストの色 | +| `property_left_` | 整数 | 128 | プロッタウィンドウの左側 [px] | +| `property_top_` | 整数 | 128 | プロッタウィンドウの上 [px] | +| `property_length_` | 整数 | 96 | プロッタウィンドウの長さ [px] | +| `property_value_scale_` | 浮動小数 | 1.0 / 4.0 | 値のスケール | ## 使用方法 @@ -319,4 +326,3 @@ Material Designアイコンは、Apache Licenseバージョン2.0のライセン ### 確認 Googleがこれらのアイコンをコミュニティに公開し、開発者やデザイナーがプロジェクトの視覚的魅力とユーザーエクスペリエンスを向上させることができることに対し、謝意を表したいと思います。 - diff --git a/common/tier4_state_rviz_plugin/README.md b/common/tier4_state_rviz_plugin/README.md index 55c690d69ba8..edd17786658d 100644 --- a/common/tier4_state_rviz_plugin/README.md +++ b/common/tier4_state_rviz_plugin/README.md @@ -9,14 +9,14 @@ ### 入力 -| 名前 | タイプ | 説明 | -| -------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------- | -| `/api/operation_mode/state` | `autoware_adapi_v1_msgs::msg::OperationModeState` | オペレーションモードの状態を表します | -| `/api/routing/state` | `autoware_adapi_v1_msgs::msg::RouteState` | ルートの状態を表します | +| 名前 | タイプ | 説明 | +| ---------------------------------------- | -------------------------------------------------------------- | ---------------------------------------- | +| `/api/operation_mode/state` | `autoware_adapi_v1_msgs::msg::OperationModeState` | オペレーションモードの状態を表します | +| `/api/routing/state` | `autoware_adapi_v1_msgs::msg::RouteState` | ルートの状態を表します | | `/api/localization/initialization_state` | `autoware_adapi_v1_msgs::msg::LocalizationInitializationState` | ローカリゼーション初期化の状態を表します | -| `/api/motion/state` | `autoware_adapi_v1_msgs::msg::MotionState` | モーションの状態を表します | -| `/api/autoware/get/emergency` | `tier4_external_api_msgs::msg::Emergency` | 外部緊急事態の状態を表します | -| `/vehicle/status/gear_status` | `autoware_vehicle_msgs::msg::GearReport` | ギアの状態を表します | +| `/api/motion/state` | `autoware_adapi_v1_msgs::msg::MotionState` | モーションの状態を表します | +| `/api/autoware/get/emergency` | `tier4_external_api_msgs::msg::Emergency` | 外部緊急事態の状態を表します | +| `/vehicle/status/gear_status` | `autoware_vehicle_msgs::msg::GearReport` | ギアの状態を表します | ### 出力 @@ -46,16 +46,16 @@ Control層は、計画された経路に基づいて車両を制御する。こ Autowareは、次のような主要モジュールで構成されている。 -* **Perception:** - * LIDAR Point Cloud Filter - * Object Detection - * Object Tracking -* **Planning:** - * Path Planning - * Trajectory Generation -* **Control:** - * Motion Planner - * Vehicle Control +- **Perception:** + - LIDAR Point Cloud Filter + - Object Detection + - Object Tracking +- **Planning:** + - Path Planning + - Trajectory Generation +- **Control:** + - Motion Planner + - Vehicle Control **実装** @@ -67,21 +67,21 @@ Autowareは、自動運転車両の開発に使用できる。研究目的でも **追加資料** -* [Autoware GitHubリポジトリ](https://github.com/autowarefoundation/autoware.auto) -* [Autowareドキュメント](https://www.autoware.org/documentation/) - -| 名前 | タイプ | 説明 | -| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | -| `/api/operation_mode/change_to_autonomous` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | 自動運転モードに変更するサービス | -| `/api/operation_mode/change_to_stop` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | 停止モードに変更するサービス | -| `/api/operation_mode/change_to_local` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | ローカルモードに変更するサービス | -| `/api/operation_mode/change_to_remote` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | リモートモードに変更するサービス | -| `/api/operation_mode/enable_autoware_control` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | Autowareによる車両制御を有効にするサービス | -| `/api/operation_mode/disable_autoware_control` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | Autowareによる車両制御を無効にするサービス | -| `/api/routing/clear_route` | `autoware_adapi_v1_msgs::srv::ClearRoute` | ルート状態をクリアするサービス | -| `/api/motion/accept_start` | `autoware_adapi_v1_msgs::srv::AcceptStart` | 車両の始動を受け入れるサービス | -| `/api/autoware/set/emergency` | `tier4_external_api_msgs::srv::SetEmergency` | 外部緊急状態を設定するサービス | -| `/planning/scenario_planning/max_velocity_default` | `tier4_planning_msgs::msg::VelocityLimit` | 車両の最大速度を設定するトピック | +- [Autoware GitHubリポジトリ](https://github.com/autowarefoundation/autoware.auto) +- [Autowareドキュメント](https://www.autoware.org/documentation/) + +| 名前 | タイプ | 説明 | +| -------------------------------------------------- | -------------------------------------------------- | ------------------------------------------ | +| `/api/operation_mode/change_to_autonomous` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | 自動運転モードに変更するサービス | +| `/api/operation_mode/change_to_stop` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | 停止モードに変更するサービス | +| `/api/operation_mode/change_to_local` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | ローカルモードに変更するサービス | +| `/api/operation_mode/change_to_remote` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | リモートモードに変更するサービス | +| `/api/operation_mode/enable_autoware_control` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | Autowareによる車両制御を有効にするサービス | +| `/api/operation_mode/disable_autoware_control` | `autoware_adapi_v1_msgs::srv::ChangeOperationMode` | Autowareによる車両制御を無効にするサービス | +| `/api/routing/clear_route` | `autoware_adapi_v1_msgs::srv::ClearRoute` | ルート状態をクリアするサービス | +| `/api/motion/accept_start` | `autoware_adapi_v1_msgs::srv::AcceptStart` | 車両の始動を受け入れるサービス | +| `/api/autoware/set/emergency` | `tier4_external_api_msgs::srv::SetEmergency` | 外部緊急状態を設定するサービス | +| `/planning/scenario_planning/max_velocity_default` | `tier4_planning_msgs::msg::VelocityLimit` | 車両の最大速度を設定するトピック | ## 使用方法 @@ -96,4 +96,3 @@ Autowareは、自動運転車両の開発に使用できる。研究目的でも 3. 自動ボタンがアクティブ化されていれば、クリックでエンゲージできます。 ![select_auto](./images/select_auto_ja.png) - diff --git a/common/tier4_system_rviz_plugin/README.md b/common/tier4_system_rviz_plugin/README.md index 9c657087c9a9..20d60b9034f9 100644 --- a/common/tier4_system_rviz_plugin/README.md +++ b/common/tier4_system_rviz_plugin/README.md @@ -6,7 +6,6 @@ ## 入力 -| 名前 | タイプ | 説明 | -| --------------------------------- | ------------------------------------------------ | ------------------------------------------------------------ | +| 名前 | タイプ | 説明 | +| --------------------------------- | ------------------------------------------------ | ------------------------------------------------ | | `/system/emergency/hazard_status` | `autoware_system_msgs::msg::HazardStatusStamped` | このトピックは Autoware からの緊急情報を表します | - diff --git a/common/tier4_traffic_light_rviz_plugin/README.md b/common/tier4_traffic_light_rviz_plugin/README.md index 62f23680fbf0..222978c159d0 100644 --- a/common/tier4_traffic_light_rviz_plugin/README.md +++ b/common/tier4_traffic_light_rviz_plugin/README.md @@ -8,8 +8,8 @@ ### 出力 -| 名称 | 型 | 説明 | -| ------------------------------------------------------ | ------------------------------------------------------ | ----------------------------- | +| 名称 | 型 | 説明 | +| ------------------------------------------------------- | ------------------------------------------------------- | -------------- | | `/perception/traffic_light_recognition/traffic_signals` | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 交通信号の公開 | ## 操作方法 @@ -32,4 +32,3 @@
- diff --git a/common/tier4_vehicle_rviz_plugin/README.md b/common/tier4_vehicle_rviz_plugin/README.md index 44e67e3157ca..1096cbb9497d 100644 --- a/common/tier4_vehicle_rviz_plugin/README.md +++ b/common/tier4_vehicle_rviz_plugin/README.md @@ -11,12 +11,12 @@ jsk_overlay_utils.cpp および jsk_overlay_utils.hpp は BSD ライセンスで ### 入力 -| 名前 | タイプ | 説明 | -| ------------------------------------ | ---------------------------------------------------------- | -------------------------------------- | -| `/vehicle/status/velocity_status` | `autoware_vehicle_msgs::msg::VelocityReport` | 車両の捻じれ | -| `/control/turn_signal_cmd` | `autoware_vehicle_msgs::msg::TurnIndicatorsReport` | ターンシグナルのステータス | -| `/vehicle/status/steering_status` | `autoware_vehicle_msgs::msg::SteeringReport` | ステアリングのステータス | -| `/localization/acceleration` | `geometry_msgs::msg::AccelWithCovarianceStamped` | 加速度 | +| 名前 | タイプ | 説明 | +| --------------------------------- | -------------------------------------------------- | -------------------------- | +| `/vehicle/status/velocity_status` | `autoware_vehicle_msgs::msg::VelocityReport` | 車両の捻じれ | +| `/control/turn_signal_cmd` | `autoware_vehicle_msgs::msg::TurnIndicatorsReport` | ターンシグナルのステータス | +| `/vehicle/status/steering_status` | `autoware_vehicle_msgs::msg::SteeringReport` | ステアリングのステータス | +| `/localization/acceleration` | `geometry_msgs::msg::AccelWithCovarianceStamped` | 加速度 | ## パラメータ @@ -24,64 +24,62 @@ jsk_overlay_utils.cpp および jsk_overlay_utils.hpp は BSD ライセンスで #### ConsoleMeter -| 名 | 型 | デフォルト値 | 説明 | -| --------------------------------- | ------ | ---------------------------- | ----------------------------------------- | -| `property_text_color_` | QColor | QColor(25, 255, 240) | テキストの色 | -| `property_left_` | int | 128 | プロッタウィンドウの左 [px] | -| `property_top_` | int | 128 | プロッタウィンドウの上 [px] | -| `property_length_` | int | 256 | プロッタウィンドウの高さ [px] | -| `property_value_height_offset_` | int | 0 | プロッタウィンドウの高さオフセット [px] | -| `property_value_scale_` | float | 1.0 / 6.667 | 値のスケール | +| 名 | 型 | デフォルト値 | 説明 | +| ------------------------------- | ------ | -------------------- | --------------------------------------- | +| `property_text_color_` | QColor | QColor(25, 255, 240) | テキストの色 | +| `property_left_` | int | 128 | プロッタウィンドウの左 [px] | +| `property_top_` | int | 128 | プロッタウィンドウの上 [px] | +| `property_length_` | int | 256 | プロッタウィンドウの高さ [px] | +| `property_value_height_offset_` | int | 0 | プロッタウィンドウの高さオフセット [px] | +| `property_value_scale_` | float | 1.0 / 6.667 | 値のスケール | #### SteeringAngle -| Name | Type | Default Value | Description | -| ------------------------------- | ------ | -------------------- | ---------------------------------------- | -| `property_text_color_` | QColor | QColor(25, 255, 240) | テキストの色 | -| `property_left_` | int | 128 | プロッタウィンドウの左辺 [px] | +| Name | Type | Default Value | Description | +| ------------------------------- | ------ | -------------------- | --------------------------------------- | +| `property_text_color_` | QColor | QColor(25, 255, 240) | テキストの色 | +| `property_left_` | int | 128 | プロッタウィンドウの左辺 [px] | | `property_top_` | int | 128 | プロッタウィンドウの上辺 [px] | | `property_length_` | int | 256 | プロッタウィンドウの高さ [px] | | `property_value_height_offset_` | int | 0 | プロッタウィンドウの高さオフセット [px] | | `property_value_scale_` | float | 1.0 / 6.667 | 値のスケール | -| `property_handle_angle_scale_` | float | 3.0 | ハンドル角に対する操舵角のスケール | +| `property_handle_angle_scale_` | float | 3.0 | ハンドル角に対する操舵角のスケール | #### TurnSignal Planningモジュールは、 поворотный сигнал からの情報を消費します。 -| 名称 | タイプ | 初期値 | 説明 | -| ------------------ | ---- | ------ | ---------------------------------------- | -| `property_left_` | int | 128 | プロッタウィンドウの左端 [px] | -| `property_top_` | int | 128 | プロッタウィンドウの上端 [px] | -| `property_width_` | int | 256 | プロッタウィンドウの左幅 [px] | -| `property_height_` | int | 256 | プロッタウィンドウの高さ [px] | +| 名称 | タイプ | 初期値 | 説明 | +| ------------------ | ------ | ------ | ----------------------------- | +| `property_left_` | int | 128 | プロッタウィンドウの左端 [px] | +| `property_top_` | int | 128 | プロッタウィンドウの上端 [px] | +| `property_width_` | int | 256 | プロッタウィンドウの左幅 [px] | +| `property_height_` | int | 256 | プロッタウィンドウの高さ [px] | #### 速度履歴 - -| Name | Type | Default Value | 説明 | +| Name | Type | Default Value | 説明 | | ------------------------------- | ------ | ------------- | -------------------------- | -| `property_velocity_timeout_` | float | 10.0 | 速度タイムアウト [秒] | -| `property_velocity_alpha_` | float | 1.0 | 速度のアルファ | -| `property_velocity_scale_` | float | 0.3 | 速度のスケール | -| `property_velocity_color_view_` | bool | false | 定色を使用 | -| `property_velocity_color_` | QColor | Qt::black | 速度履歴の色 | +| `property_velocity_timeout_` | float | 10.0 | 速度タイムアウト [秒] | +| `property_velocity_alpha_` | float | 1.0 | 速度のアルファ | +| `property_velocity_scale_` | float | 0.3 | 速度のスケール | +| `property_velocity_color_view_` | bool | false | 定色を使用 | +| `property_velocity_color_` | QColor | Qt::black | 速度履歴の色 | | `property_vel_max_` | float | 3.0 | 色の境界速度の最大値 [m/s] | #### 加速度計 - -| 名前 | タイプ | デフォルト値 | 説明 | -| ----------------------------------- | ------ | -------------------- | --------------------------------------------------- | -| `property_normal_text_color_` | QColor | QColor(25, 255, 240) | 通常のテキストの色 | -| `property_emergency_text_color_` | QColor | QColor(255, 80, 80) | 緊急時の加速度の色 | -| `property_left_` | int | 896 | プロッターウィンドウの左端 [px] | -| `property_top_` | int | 128 | プロッターウィンドウの上端 [px] | -| `property_length_` | int | 256 | プロッターウィンドウの高さ [px] | -| `property_value_height_offset_` | int | 0 | プロッターウィンドウの高さオフセット [px] | -| `property_value_scale_` | float | 1 / 6.667 | 値テキストのスケール | -| `property_emergency_threshold_max_` | float | 1.0 | 緊急時の最大加速度のしきい値 [m/s^2] | -| `property_emergency_threshold_min_` | float | -2.5 | 緊急時の最小加速度のしきい値 [m/s^2] | +| 名前 | タイプ | デフォルト値 | 説明 | +| ----------------------------------- | ------ | -------------------- | ----------------------------------------- | +| `property_normal_text_color_` | QColor | QColor(25, 255, 240) | 通常のテキストの色 | +| `property_emergency_text_color_` | QColor | QColor(255, 80, 80) | 緊急時の加速度の色 | +| `property_left_` | int | 896 | プロッターウィンドウの左端 [px] | +| `property_top_` | int | 128 | プロッターウィンドウの上端 [px] | +| `property_length_` | int | 256 | プロッターウィンドウの高さ [px] | +| `property_value_height_offset_` | int | 0 | プロッターウィンドウの高さオフセット [px] | +| `property_value_scale_` | float | 1 / 6.667 | 値テキストのスケール | +| `property_emergency_threshold_max_` | float | 1.0 | 緊急時の最大加速度のしきい値 [m/s^2] | +| `property_emergency_threshold_min_` | float | -2.5 | 緊急時の最小加速度のしきい値 [m/s^2] | ## 既定値 / 既知の制約 @@ -95,4 +93,3 @@ Planningモジュールは、 поворотный сигнал からの情報 ![select_vehicle_plugin](./images/select_vehicle_plugin.png) 3. ステータスを表示するトピックの名前を入力します。 ![select_topic_name](./images/select_topic_name.png) - diff --git a/common/traffic_light_utils/README.md b/common/traffic_light_utils/README.md index 32acb085a19a..6b7e2451b4d5 100644 --- a/common/traffic_light_utils/README.md +++ b/common/traffic_light_utils/README.md @@ -4,4 +4,3 @@ このパッケージには、トラフィックライト認識モジュール全体で有用な共通関数のライブラリが含まれています。 このパッケージには、ROIタイプの処理、さまざまなデータ型とメッセージ型間の変換、およびそれらに関連する共通関数の関数が含まれる場合があります。 - diff --git a/common/tvm_utility/README.md b/common/tvm_utility/README.md index f7c17d040ba3..e7ad111f97aa 100644 --- a/common/tvm_utility/README.md +++ b/common/tvm_utility/README.md @@ -16,7 +16,6 @@ TVMベースの機械学習推論パイプラインを構築するために役 パイプラインの各ステージには、入力データをパラメータとして取得し、出力データを返す`schedule`関数があります。パイプラインオブジェクトが作成されると、`pipeline.schedule`が呼び出されてパイプラインが実行されます。 - ```{cpp} int main() { create_subscription("points_raw", @@ -49,7 +48,6 @@ int main() { 関数を活用するパッケージのソースディレクトリの構造は次のとおりです。 - ```{text} . ├── data @@ -68,7 +66,6 @@ int main() { 他のモデルファイルはパッケージフォルダの下の autoware_data フォルダ内に、次の構造を使用して格納する必要があります。 - ```{text} $HOME/autoware_data @@ -124,4 +121,4 @@ $HOME/autoware_data ## 関連する問題 - +``` diff --git a/common/tvm_utility/artifacts/README.md b/common/tvm_utility/artifacts/README.md index 7fb482bef715..04ed025b6927 100644 --- a/common/tvm_utility/artifacts/README.md +++ b/common/tvm_utility/artifacts/README.md @@ -4,4 +4,3 @@ 例: ./artifacts/yolo_v2_tiny - diff --git a/control/autoware_autonomous_emergency_braking/README.md b/control/autoware_autonomous_emergency_braking/README.md index 2fea30db0cc0..62e95f0b13a6 100644 --- a/control/autoware_autonomous_emergency_braking/README.md +++ b/control/autoware_autonomous_emergency_braking/README.md @@ -194,36 +194,36 @@ AEB モジュールは、自動運転車両が後退している場合にも衝 ## パラメータ -| Name | 単位 | タイプ | 説明 | デフォルト値 | -| :--------------------------------- | :----- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| publish_debug_markers | [なし] | ブール | デバッグマーカーを発行するフラグ | true | -| publish_debug_pointcloud | [なし] | ブール | デバッグに使用されるポイントクラウドを発行するフラグ | false | -| use_predicted_trajectory | [なし] | ブール | コントロールモジュールからの予測パスの使用フラグ | true | -| use_imu_path | [なし] | ブール | センサーデータによって生成された予測パスの使用フラグ | true | -| use_object_velocity_calculation | [なし] | ブール | オブジェクト速度計算の使用フラグ。 `false` に設定すると、オブジェクト速度は 0 [m/s] に設定されます。 | true | -| check_autoware_state | [なし] | ブール | Autoware ステートチェックの有効/無効フラグ。 `false` に設定すると、エゴ車が AUTONOMOUS ステートにない場合でも AEB モジュールは動作します。 | true | -| detection_range_min_height | [m] | 倍精度 | 誤検出によるゴーストブレーキを回避するために使用される検出範囲の最小高さ | 0.0 | -| detection_range_max_height_margin | [m] | 倍精度 | 誤検出によるゴーストブレーキを回避するために使用される検出範囲の最大高さのマージン。 `detection_range_max_height = vehicle_height + detection_range_max_height_margin` | 0.0 | -| voxel_grid_x | [m] | 倍精度 | ボクセルグリッドフィルタの X 軸ダウンサンプリングパラメータ | 0.05 | -| voxel_grid_y | [m] | 倍精度 | ボクセルグリッドフィルタの Y 軸ダウンサンプリングパラメータ | 0.05 | -| voxel_grid_z | [m] | 倍精度 | ボクセルグリッドフィルタの Z 軸ダウンサンプリングパラメータ | 減速 | -| cluster tolerance | [m] | 倍精度 | 2 つの点の間に許容可能な最大距離。それ以下の距離では、同じクラスタの一部とみなされます。 | 0.15 | -| cluster_minimum_height | [m] | 倍精度 | クラスタ内の少なくとも 1 つの点が衝突対象の可能性のあるクラスタに含まれるために、この値よりも高くする必要があります。 | 0.1 | -| minimum_cluster_size | [なし] | 整数 | 対象の障害物として考慮されるためには、クラスタに必要最低限のポイント数 | 10 | -| maximum_cluster_size | [なし] | 整数 | 対象の障害物として考慮されるためには、クラスタに含まれる最大ポイント数 | 10000 | -| min_generated_imu_path_length | [m] | 倍精度 | センサーによって生成された予測パスの最小距離 | 0.5 | -| max_generated_imu_path_length | [m] | 倍精度 | センサーによって生成された予測パスの最大距離 | 10.0 | -| expand_width | [m] | 倍精度 | 衝突チェック時のエゴ車両の拡張幅 | 0.1 | -| longitudinal_offset | [m] | 倍精度 | 衝突チェック時の縦方向オフセット距離 | 2.0 | -| t_response | [s] | 倍精度 | エゴ車が前方の車両を検知してから減速を開始するまでの反応時間 | 1.0 | -| a_ego_min | [m/ss] | 倍精度 | エゴ車両の最大減速度 | -3.0 | -| a_obj_min | [m/ss] | 倍精度 | オブジェクトの最大減速度 | -3.0 | -| imu_prediction_time_horizon | [s] | 倍精度 | センサーによって生成された予測パスの時間範囲 | 1.5 | -| imu_prediction_time_interval | [s] | 倍精度 | センサーによって生成された予測パスの時間間隔 | Planning | -| mpc_prediction_time_horizon | [s] | 倍精度 | mpc によって生成された予測パスの時間範囲 | 1.5 | -| mpc_prediction_time_interval | [s] | 倍精度 | mpc によって生成された予測パスの時間間隔 | 0.1 | -| aeb_hz | [なし] | 倍精度 | AEBが1秒間に動作する頻度 | 10 | -| speed_calculation_expansion_margin | [m] | 倍精度 | 開始速度計算時のエゴ車両の拡張幅 | 0.1 | +| Name | 単位 | タイプ | 説明 | デフォルト値 | +| :--------------------------------- | :----- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| publish_debug_markers | [なし] | ブール | デバッグマーカーを発行するフラグ | true | +| publish_debug_pointcloud | [なし] | ブール | デバッグに使用されるポイントクラウドを発行するフラグ | false | +| use_predicted_trajectory | [なし] | ブール | コントロールモジュールからの予測パスの使用フラグ | true | +| use_imu_path | [なし] | ブール | センサーデータによって生成された予測パスの使用フラグ | true | +| use_object_velocity_calculation | [なし] | ブール | オブジェクト速度計算の使用フラグ。 `false` に設定すると、オブジェクト速度は 0 [m/s] に設定されます。 | true | +| check_autoware_state | [なし] | ブール | Autoware ステートチェックの有効/無効フラグ。 `false` に設定すると、エゴ車が AUTONOMOUS ステートにない場合でも AEB モジュールは動作します。 | true | +| detection_range_min_height | [m] | 倍精度 | 誤検出によるゴーストブレーキを回避するために使用される検出範囲の最小高さ | 0.0 | +| detection_range_max_height_margin | [m] | 倍精度 | 誤検出によるゴーストブレーキを回避するために使用される検出範囲の最大高さのマージン。 `detection_range_max_height = vehicle_height + detection_range_max_height_margin` | 0.0 | +| voxel_grid_x | [m] | 倍精度 | ボクセルグリッドフィルタの X 軸ダウンサンプリングパラメータ | 0.05 | +| voxel_grid_y | [m] | 倍精度 | ボクセルグリッドフィルタの Y 軸ダウンサンプリングパラメータ | 0.05 | +| voxel_grid_z | [m] | 倍精度 | ボクセルグリッドフィルタの Z 軸ダウンサンプリングパラメータ | 減速 | +| cluster tolerance | [m] | 倍精度 | 2 つの点の間に許容可能な最大距離。それ以下の距離では、同じクラスタの一部とみなされます。 | 0.15 | +| cluster_minimum_height | [m] | 倍精度 | クラスタ内の少なくとも 1 つの点が衝突対象の可能性のあるクラスタに含まれるために、この値よりも高くする必要があります。 | 0.1 | +| minimum_cluster_size | [なし] | 整数 | 対象の障害物として考慮されるためには、クラスタに必要最低限のポイント数 | 10 | +| maximum_cluster_size | [なし] | 整数 | 対象の障害物として考慮されるためには、クラスタに含まれる最大ポイント数 | 10000 | +| min_generated_imu_path_length | [m] | 倍精度 | センサーによって生成された予測パスの最小距離 | 0.5 | +| max_generated_imu_path_length | [m] | 倍精度 | センサーによって生成された予測パスの最大距離 | 10.0 | +| expand_width | [m] | 倍精度 | 衝突チェック時のエゴ車両の拡張幅 | 0.1 | +| longitudinal_offset | [m] | 倍精度 | 衝突チェック時の縦方向オフセット距離 | 2.0 | +| t_response | [s] | 倍精度 | エゴ車が前方の車両を検知してから減速を開始するまでの反応時間 | 1.0 | +| a_ego_min | [m/ss] | 倍精度 | エゴ車両の最大減速度 | -3.0 | +| a_obj_min | [m/ss] | 倍精度 | オブジェクトの最大減速度 | -3.0 | +| imu_prediction_time_horizon | [s] | 倍精度 | センサーによって生成された予測パスの時間範囲 | 1.5 | +| imu_prediction_time_interval | [s] | 倍精度 | センサーによって生成された予測パスの時間間隔 | Planning | +| mpc_prediction_time_horizon | [s] | 倍精度 | mpc によって生成された予測パスの時間範囲 | 1.5 | +| mpc_prediction_time_interval | [s] | 倍精度 | mpc によって生成された予測パスの時間間隔 | 0.1 | +| aeb_hz | [なし] | 倍精度 | AEBが1秒間に動作する頻度 | 10 | +| speed_calculation_expansion_margin | [m] | 倍精度 | 開始速度計算時のエゴ車両の拡張幅 | 0.1 | ## 制約事項 @@ -236,4 +236,3 @@ AEB モジュールは、自動運転車両が後退している場合にも衝 - センサーデータから作成された予測経路の精度は、自車に搭載されたセンサーの精度に依存します。 ![aeb_range](./image/range.drawio.svg) - diff --git a/control/autoware_control_validator/README.md b/control/autoware_control_validator/README.md index 9a3b89a86302..9d025e7ffc84 100644 --- a/control/autoware_control_validator/README.md +++ b/control/autoware_control_validator/README.md @@ -9,10 +9,10 @@ 検証に対して、次の機能がサポートされており、しきい値をパラメータによって設定できます。 以下にリストされている機能は常に最新のインプリメンテーションに対応しているわけではありません。 -| 説明 | 引数 | 診断式 | -| ---------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | :--------------------------------------------------: | -| 逆速度: 計測速度が目標速度と符号が異なる。 | 計測速度 $v$、目標速度 $\hat{v}$、および速度パラメータ $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ | -| 過速度: 計測速度が目標速度を著しく上回る。 | 計測速度 $v$、目標速度 $\hat{v}$、比率パラメータ $r$、およびオフセットパラメータ $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ | +| 説明 | 引数 | 診断式 | +| ------------------------------------------ | ------------------------------------------------------------------------------------ | :---------------------------------------------------: | +| 逆速度: 計測速度が目標速度と符号が異なる。 | 計測速度 $v$、目標速度 $\hat{v}$、および速度パラメータ $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ | +| 過速度: 計測速度が目標速度を著しく上回る。 | 計測速度 $v$、目標速度 $\hat{v}$、比率パラメータ $r$、およびオフセットパラメータ $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ | - **基準軌跡と予測軌跡の逸脱量チェック**: 予測軌跡と基準軌跡との間の最大逸脱量が指定されたしきい値を超えている場合、無効になります。 @@ -24,11 +24,11 @@ `control_validator` には、次の入力量があります。 -| 名前 | タイプ | 説明 | -| ----------------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------- | -| `~/input/kinematics` | nav_msgs/Odometry | 自車位置とツイスト | -| `~/input/reference_trajectory` | autoware_planning_msgs/Trajectory | Planningモジュールから出力され、追従すべきリファレンストラジェクトリ | -| `~/input/predicted_trajectory` | autoware_planning_msgs/Trajectory | Controlモジュールから出力された予測軌跡 | +| 名前 | タイプ | 説明 | +| ------------------------------ | --------------------------------- | -------------------------------------------------------------------- | +| `~/input/kinematics` | nav_msgs/Odometry | 自車位置とツイスト | +| `~/input/reference_trajectory` | autoware_planning_msgs/Trajectory | Planningモジュールから出力され、追従すべきリファレンストラジェクトリ | +| `~/input/predicted_trajectory` | autoware_planning_msgs/Trajectory | Controlモジュールから出力された予測軌跡 | ### 出力 @@ -51,10 +51,10 @@ Autoware.Autoは、以下のような内部処理を実行します。 - **状態推定:** GNSS、IMU、オドメトリなどのセンサから自車位置を推定します。 - **センサフュージョン:** 複数のセンサからデータを統合して、より正確でロバストな推定を行います。 -| 名前 | タイプ | 説明 | -| -------------------------- | ---------------------------------------- | -------------------------------------------------------------------- | +| 名前 | タイプ | 説明 | +| ---------------------------- | ---------------------------------------- | ----------------------------------------------------- | | `~/output/validation_status` | control_validator/ControlValidatorStatus | 経路の有効性/無効性の理由を知らせるバリデーターの状態 | -| `/diagnostics` | diagnostic_msgs/DiagnosticStatus | エラーを報告する診断 | +| `/diagnostics` | diagnostic_msgs/DiagnosticStatus | エラーを報告する診断 | ## パラメータ @@ -62,11 +62,11 @@ Autoware.Autoは、以下のような内部処理を実行します。 ### システムパラメータ -| 名前 | 型 | 説明 | デフォルト値 | -| :--------------------------- | :--- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------ | -| `publish_diag` | bool | trueの場合、診断msgが公開されます。 | true | -| `diag_error_count_threshold` | int | 連続して無効な軌跡の数がこのしきい値を超えた場合、diagはERRORに設定されます(例:しきい値= 1の場合、軌跡が無効であっても、次の軌跡が有効な場合はdiagはERRORになりません)。 | true | -| `display_on_terminal` | bool | エラーメッセージをターミナルに表示します。 | true | +| 名前 | 型 | 説明 | デフォルト値 | +| :--------------------------- | :--- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| `publish_diag` | bool | trueの場合、診断msgが公開されます。 | true | +| `diag_error_count_threshold` | int | 連続して無効な軌跡の数がこのしきい値を超えた場合、diagはERRORに設定されます(例:しきい値= 1の場合、軌跡が無効であっても、次の軌跡が有効な場合はdiagはERRORになりません)。 | true | +| `display_on_terminal` | bool | エラーメッセージをターミナルに表示します。 | true | ### アルゴリズムパラメータ @@ -74,10 +74,9 @@ Autoware.Autoは、以下のような内部処理を実行します。 インデックスが以下のしきい値を超えた場合、入力軌跡は無効と検出されます。 -| 名称 | タイプ | 説明 | デフォルト値 | -| :---------------------------------- | :----- | :--------------------------------------------------------------------------------------------------------- | :------------ | -| `thresholds.max_distance_deviation` | double | 予測パスと基準軌道間の最大距離逸脱量の無効なしきい値 [m] | 1.0 | -| `thresholds.rolling_back_velocity` | double | 自車速度の有効性を検証するためのしきい値速度 [m/s] | 0.5 | -| `thresholds.over_velocity_offset` | double | 自車速度の有効性を検証するためのしきい値速度オフセット [m/s] | 2.0 | -| `thresholds.over_velocity_ratio` | double | 自車速度の有効性を検証するためのしきい値速度比率 [*] | 0.2 | - +| 名称 | タイプ | 説明 | デフォルト値 | +| :---------------------------------- | :----- | :----------------------------------------------------------- | :----------- | +| `thresholds.max_distance_deviation` | double | 予測パスと基準軌道間の最大距離逸脱量の無効なしきい値 [m] | 1.0 | +| `thresholds.rolling_back_velocity` | double | 自車速度の有効性を検証するためのしきい値速度 [m/s] | 0.5 | +| `thresholds.over_velocity_offset` | double | 自車速度の有効性を検証するためのしきい値速度オフセット [m/s] | 2.0 | +| `thresholds.over_velocity_ratio` | double | 自車速度の有効性を検証するためのしきい値速度比率 [*] | 0.2 | diff --git a/control/autoware_external_cmd_selector/README.md b/control/autoware_external_cmd_selector/README.md index 0b61813eca35..ce4bc46ae69a 100644 --- a/control/autoware_external_cmd_selector/README.md +++ b/control/autoware_external_cmd_selector/README.md @@ -10,30 +10,29 @@ ### 入力トピック -| 名前 | タイプ | 説明 | -| --------------------------------------------- | ---- | --------------------------------------------------------- | -| `/api/external/set/command/local/control` | TBD | 局所的。制御の計算値 | -| `/api/external/set/command/local/heartbeat` | TBD | 局所的。ハートビート | -| `/api/external/set/command/local/shift` | TBD | 局所的。ドライブ、リアなどのようなギアシフト | -| `/api/external/set/command/local/turn_signal` | TBD | 局所的。左折、右折などのターなのが信号 | -| `/api/external/set/command/remote/control` | TBD | リモート。制御の計算値 | -| `/api/external/set/command/remote/heartbeat` | TBD | リモート。ハートビート | -| `/api/external/set/command/remote/shift` | TBD | リモート。ドライブ、リアなどのようなギアシフト | -| `/api/external/set/command/remote/turn_signal` | TBD | リモート。左折、右折などのターのが信号 | +| 名前 | タイプ | 説明 | +| ---------------------------------------------- | ------ | ---------------------------------------------- | +| `/api/external/set/command/local/control` | TBD | 局所的。制御の計算値 | +| `/api/external/set/command/local/heartbeat` | TBD | 局所的。ハートビート | +| `/api/external/set/command/local/shift` | TBD | 局所的。ドライブ、リアなどのようなギアシフト | +| `/api/external/set/command/local/turn_signal` | TBD | 局所的。左折、右折などのターなのが信号 | +| `/api/external/set/command/remote/control` | TBD | リモート。制御の計算値 | +| `/api/external/set/command/remote/heartbeat` | TBD | リモート。ハートビート | +| `/api/external/set/command/remote/shift` | TBD | リモート。ドライブ、リアなどのようなギアシフト | +| `/api/external/set/command/remote/turn_signal` | TBD | リモート。左折、右折などのターのが信号 | ### 出力トピック -| 名前 | タイプ | 説明 | -| --------------------------------------------------------- | --------------------------------------------------- | ----------------------------------------------- | -| `/control/external_cmd_selector/current_selector_mode` | TBD | 現在選択中のモード(リモートまたはローカル) | -| `/diagnostics` | diagnostic_msgs::msg::DiagnosticArray | ノードがアクティブかどうかを確認する | -| `/external/selected/external_control_cmd` | TBD | 現在のモードで制御コマンドを透過する | -| `/external/selected/gear_cmd` | autoware_vehicle_msgs::msg::GearCommand | 現在のモードでギアコマンドを透過する | -| `/external/selected/hazard_lights_cmd` | autoware_vehicle_msgs::msg::HazardLightsCommand | 現在のモードでハザードランプを透過する | -| `/external/selected/heartbeat` | TBD | 現在のモードでハートビートを透過する | -| `/external/selected/turn_indicators_cmd` | autoware_vehicle_msgs::msg::TurnIndicatorsCommand | 現在のモードでターンインジケーターを透過する | +| 名前 | タイプ | 説明 | +| ------------------------------------------------------ | ------------------------------------------------- | -------------------------------------------- | +| `/control/external_cmd_selector/current_selector_mode` | TBD | 現在選択中のモード(リモートまたはローカル) | +| `/diagnostics` | diagnostic_msgs::msg::DiagnosticArray | ノードがアクティブかどうかを確認する | +| `/external/selected/external_control_cmd` | TBD | 現在のモードで制御コマンドを透過する | +| `/external/selected/gear_cmd` | autoware_vehicle_msgs::msg::GearCommand | 現在のモードでギアコマンドを透過する | +| `/external/selected/hazard_lights_cmd` | autoware_vehicle_msgs::msg::HazardLightsCommand | 現在のモードでハザードランプを透過する | +| `/external/selected/heartbeat` | TBD | 現在のモードでハートビートを透過する | +| `/external/selected/turn_indicators_cmd` | autoware_vehicle_msgs::msg::TurnIndicatorsCommand | 現在のモードでターンインジケーターを透過する | ## パラメータ {{json_to_markdown("control/autoware_external_cmd_selector/schema/external_cmd_selector.schema.json")}} - diff --git a/control/autoware_joy_controller/README.md b/control/autoware_joy_controller/README.md index 14456cc7b8dc..bf8e6fa1b34c 100644 --- a/control/autoware_joy_controller/README.md +++ b/control/autoware_joy_controller/README.md @@ -8,7 +8,6 @@ ### ROS 2起動 - ```bash # With default config (ds4) ros2 launch autoware_joy_controller joy_controller.launch.xml @@ -24,84 +23,84 @@ ros2 launch autoware_joy_controller joy_controller.launch.xml config_file:=/path ### 入力トピック -| 名称 | 型 | 説明 | -| ------------------ | ----------------------- | --------------------------------- | -| `~/input/joy` | sensor_msgs::msg::Joy | ジョイコントローラの指令 | +| 名称 | 型 | 説明 | +| ------------------ | ----------------------- | ------------------------------------ | +| `~/input/joy` | sensor_msgs::msg::Joy | ジョイコントローラの指令 | | `~/input/odometry` | nav_msgs::msg::Odometry | 自車位置を取得するための自己位置推定 | ### 出力トピック -| 名前 | タイプ | 説明 | -| ----------------------------------- | --------------------------------------------------- | ---------------------------------------- | -| `~/output/control_command` | `autoware_control_msgs::msg::Control` | 横方向および縦方向制御コマンド | -| `~/output/external_control_command` | `tier4_external_api_msgs::msg::ControlCommandStamped` | 横方向および縦方向制御コマンド | -| `~/output/shift` | `tier4_external_api_msgs::msg::GearShiftStamped` | ギアコマンド | -| `~/output/turn_signal` | `tier4_external_api_msgs::msg::TurnSignalStamped` | ウインカーコマンド | -| `~/output/gate_mode` | `tier4_control_msgs::msg::GateMode` | ゲートモード(AutoまたはExternal) | -| `~/output/heartbeat` | `tier4_external_api_msgs::msg::Heartbeat` | ハートビート | -| `~/output/vehicle_engage` | `autoware_vehicle_msgs::msg::Engage` | 車両エンゲージ | +| 名前 | タイプ | 説明 | +| ----------------------------------- | ----------------------------------------------------- | ---------------------------------- | +| `~/output/control_command` | `autoware_control_msgs::msg::Control` | 横方向および縦方向制御コマンド | +| `~/output/external_control_command` | `tier4_external_api_msgs::msg::ControlCommandStamped` | 横方向および縦方向制御コマンド | +| `~/output/shift` | `tier4_external_api_msgs::msg::GearShiftStamped` | ギアコマンド | +| `~/output/turn_signal` | `tier4_external_api_msgs::msg::TurnSignalStamped` | ウインカーコマンド | +| `~/output/gate_mode` | `tier4_control_msgs::msg::GateMode` | ゲートモード(AutoまたはExternal) | +| `~/output/heartbeat` | `tier4_external_api_msgs::msg::Heartbeat` | ハートビート | +| `~/output/vehicle_engage` | `autoware_vehicle_msgs::msg::Engage` | 車両エンゲージ | ## パラメータ -| パラメーター | タイプ | 説明 | -| ---------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `joy_type` | string | ジョイコントローラータイプ (初期値: DS4) | -| `update_rate` | double | 制御コマンドを公開するための更新レート | -| `accel_ratio` | double | 加速度を計算するための比率 (指示加速度は比率 \* 操作量) | -| `brake_ratio` | double | 減速度を計算するための比率 (指示加速度は -比率 \* 操作量) | -| `steer_ratio` | double | 減加速度を計算するための比率 (指示舵角は比率 \* 操作量) | -| `steering_angle_velocity` | double | 操作のときの舵角速度 | -| `accel_sensitivity` | double | 外部APIの加速度を計算するための感度 (指示加速度は pow(操作量, 1 / 感度)) | -| `brake_sensitivity` | double | 外部APIの減加速度を計算するための感度 (指示加速度は pow(操作量, 1 / 感度)) | -| `raw_control` | bool | 真の場合、入力車体運動をスキップする | -| `velocity_gain` | double | 加速度によって計算される速度の比率 | -| `max_forward_velocity` | double | 前方へ進む絶対最大速度 | -| `max_backward_velocity` | double | 後方へ進む絶対最大速度 | -| `backward_accel_ratio` | double | 減速度を計算するための比率 (Commanded acceleration is -ratio \* 操作量) | +| パラメーター | タイプ | 説明 | +| ------------------------- | ------ | -------------------------------------------------------------------------- | +| `joy_type` | string | ジョイコントローラータイプ (初期値: DS4) | +| `update_rate` | double | 制御コマンドを公開するための更新レート | +| `accel_ratio` | double | 加速度を計算するための比率 (指示加速度は比率 \* 操作量) | +| `brake_ratio` | double | 減速度を計算するための比率 (指示加速度は -比率 \* 操作量) | +| `steer_ratio` | double | 減加速度を計算するための比率 (指示舵角は比率 \* 操作量) | +| `steering_angle_velocity` | double | 操作のときの舵角速度 | +| `accel_sensitivity` | double | 外部APIの加速度を計算するための感度 (指示加速度は pow(操作量, 1 / 感度)) | +| `brake_sensitivity` | double | 外部APIの減加速度を計算するための感度 (指示加速度は pow(操作量, 1 / 感度)) | +| `raw_control` | bool | 真の場合、入力車体運動をスキップする | +| `velocity_gain` | double | 加速度によって計算される速度の比率 | +| `max_forward_velocity` | double | 前方へ進む絶対最大速度 | +| `max_backward_velocity` | double | 後方へ進む絶対最大速度 | +| `backward_accel_ratio` | double | 減速度を計算するための比率 (Commanded acceleration is -ratio \* 操作量) | ## P65 ジョイスティック キーマップ -| 操作 | ボタン | -|---|---| -| 加速度 | R2 | -| ブレーキ | L2 | -| ステアリング | レフトスティックの左右 | -| アップシフト | カーソル上 | -| ダウンシフト | カーソル下 | -| Driveシフト | カーソル左 | -| リバースシフト | カーソル右 | -| 左折ウィンカー | L1 | -| 右折ウィンカー | R1 | -| ウィンカー解除 | A | -| ゲートモード | B | -| 緊急停止 | セレクト | -| 緊急停止解除 | スタート | -| Autoware起動 | X | -| Autoware停止 | Y | -| Vehicle起動 | PS | -| Vehicle停止 | 右トリガー | +| 操作 | ボタン | +| -------------- | ---------------------- | +| 加速度 | R2 | +| ブレーキ | L2 | +| ステアリング | レフトスティックの左右 | +| アップシフト | カーソル上 | +| ダウンシフト | カーソル下 | +| Driveシフト | カーソル左 | +| リバースシフト | カーソル右 | +| 左折ウィンカー | L1 | +| 右折ウィンカー | R1 | +| ウィンカー解除 | A | +| ゲートモード | B | +| 緊急停止 | セレクト | +| 緊急停止解除 | スタート | +| Autoware起動 | X | +| Autoware停止 | Y | +| Vehicle起動 | PS | +| Vehicle停止 | 右トリガー | ## DS4 ジョイスティック キーマップ -| アクション | ボタン | -| -------------------- | -------------------------- | -| 加速 | R2、×、または右スティック上 | -| 減速 | L2、□、または右スティック下 | -| ステアリング | 左スティック左右 | -| シフトアップ | カーソル上 | -| シフトダウン | カーソル下 | -| シフトドライブ | カーソル左 | -| シフトリバース | カーソル右 | -| 左ウィンカー | L1 | -| 右ウィンカー | R1 | -| ウィンカー解除 | SHARE | -| ゲートモード | OPTIONS | -| 緊急停止 | PS | -| 緊急停止解除 | PS | -| Autoware起動 | ○ | -| Autoware停止 | ○ | -| 車両起動 | △ | -| 車両停止 | △ | +| アクション | ボタン | +| -------------- | --------------------------- | +| 加速 | R2、×、または右スティック上 | +| 減速 | L2、□、または右スティック下 | +| ステアリング | 左スティック左右 | +| シフトアップ | カーソル上 | +| シフトダウン | カーソル下 | +| シフトドライブ | カーソル左 | +| シフトリバース | カーソル右 | +| 左ウィンカー | L1 | +| 右ウィンカー | R1 | +| ウィンカー解除 | SHARE | +| ゲートモード | OPTIONS | +| 緊急停止 | PS | +| 緊急停止解除 | PS | +| Autoware起動 | ○ | +| Autoware停止 | ○ | +| 車両起動 | △ | +| 車両停止 | △ | ## XBOX ジョイスティック キーマッピング @@ -111,25 +110,25 @@ ros2 launch autoware_joy_controller joy_controller.launch.xml config_file:=/path ### 操作方法 -| 操作 | ボタン | -|---|---| -| 加速 | RT | -| ブレーキ | LT | -| ステアリング | 左スティック
左/右 | -| アップシフト | カーソル上 | -| ダウンシフト | カーソル下 | -| ドライブシフト | カーソル左 | -| リバースシフト | カーソル右 | -| 左ウインカー | LB | -| 右ウインカー | RB | -| ウインカー解除 | A | -| ゲートモード | B | -| 緊急停止 | ビュー | -| 緊急停止解除 | メニュー | -| Autoware 起動 | X | -| Autoware 停止 | Y | -| Vehicle 起動 | 左スティックボタン | -| Vehicle 停止 | 右スティックボタン | +| 操作 | ボタン | +| -------------- | --------------------- | +| 加速 | RT | +| ブレーキ | LT | +| ステアリング | 左スティック
左/右 | +| アップシフト | カーソル上 | +| ダウンシフト | カーソル下 | +| ドライブシフト | カーソル左 | +| リバースシフト | カーソル右 | +| 左ウインカー | LB | +| 右ウインカー | RB | +| ウインカー解除 | A | +| ゲートモード | B | +| 緊急停止 | ビュー | +| 緊急停止解除 | メニュー | +| Autoware 起動 | X | +| Autoware 停止 | Y | +| Vehicle 起動 | 左スティックボタン | +| Vehicle 停止 | 右スティックボタン | ### Planningコンポーネント @@ -140,4 +139,3 @@ ros2 launch autoware_joy_controller joy_controller.launch.xml config_file:=/path #### velocity逸脱量の計算 #### acceleration逸脱量の計算 - diff --git a/control/autoware_lane_departure_checker/README.md b/control/autoware_lane_departure_checker/README.md index a54c51b30d21..e40d564e3082 100644 --- a/control/autoware_lane_departure_checker/README.md +++ b/control/autoware_lane_departure_checker/README.md @@ -16,31 +16,31 @@ 1. 車両座標系における誤差楕円(共分散)の標準偏差を計算します。 - 1. 共分散を車両座標系に変換します。 - - $$ - \begin{align} - \left( \begin{array}{cc} x_{vehicle}\\ y_{vehicle}\\ \end{array} \right) = R_{map2vehicle} \left( \begin{array}{cc} x_{map}\\ y_{map}\\ \end{array} \right) - \end{align} - $$ - - 車両座標系における共分散を計算します。 - - $$ - \begin{align} - Cov_{vehicle} &= E \left[ - \left( \begin{array}{cc} x_{vehicle}\\ y_{vehicle}\\ \end{array} \right) (x_{vehicle}, y_{vehicle}) \right] \\ - &= E \left[ R\left( \begin{array}{cc} x_{map}\\ y_{map}\\ \end{array} \right) - (x_{map}, y_{map})R^t - \right] \\ - &= R E\left[ \left( \begin{array}{cc} x_{map}\\ y_{map}\\ \end{array} \right) - (x_{map}, y_{map}) - \right] R^t \\ - &= R Cov_{map} R^t - \end{align} - $$ - - 2. `post resampling`に展開する縦方向の長さは、$Cov_{vehicle}(0,0)$における$x_{vehicle}$の周辺分布に対応します。同様に、横方向の長さは$Cov_{vehicle}(1,1)$における$x_{vehicle}$の周辺分布に対応します。Wikipediaの参照 [こちら](https://en.wikipedia.org/wiki/Multivariate_normal_distribution#Marginal_distributions)。 + 1. 共分散を車両座標系に変換します。 + + $$ + \begin{align} + \left( \begin{array}{cc} x_{vehicle}\\ y_{vehicle}\\ \end{array} \right) = R_{map2vehicle} \left( \begin{array}{cc} x_{map}\\ y_{map}\\ \end{array} \right) + \end{align} + $$ + + 車両座標系における共分散を計算します。 + + $$ + \begin{align} + Cov_{vehicle} &= E \left[ + \left( \begin{array}{cc} x_{vehicle}\\ y_{vehicle}\\ \end{array} \right) (x_{vehicle}, y_{vehicle}) \right] \\ + &= E \left[ R\left( \begin{array}{cc} x_{map}\\ y_{map}\\ \end{array} \right) + (x_{map}, y_{map})R^t + \right] \\ + &= R E\left[ \left( \begin{array}{cc} x_{map}\\ y_{map}\\ \end{array} \right) + (x_{map}, y_{map}) + \right] R^t \\ + &= R Cov_{map} R^t + \end{align} + $$ + + 2. `post resampling`に展開する縦方向の長さは、$Cov_{vehicle}(0,0)$における$x_{vehicle}$の周辺分布に対応します。同様に、横方向の長さは$Cov_{vehicle}(1,1)$における$x_{vehicle}$の周辺分布に対応します。Wikipediaの参照 [こちら](https://en.wikipedia.org/wiki/Multivariate_normal_distribution#Marginal_distributions)。 2. `footprint_margin_scale`を乗じた標準偏差に基づいてフットプリントを拡張します。 @@ -64,56 +64,55 @@ #### 一般パラメータ -| 名称 | 型 | 説明 | デフォルト値 | -| :------------------------- | :----- | :---------------------------------------------------------------------------------------------------------- | :------------ | -| will_out_of_lane_checker | bool | 自車フットプリントが車線から逸脱するかどうかのチェッカーを有効にする | True | -| out_of_lane_checker | bool | 自車フットプリントが車線外にあるかどうかをチェッカーを有効にする | True | -| boundary_departure_checker | bool | 自車フットプリントがboundary_types_to_detectで指定された境界から逸脱するかどうかのチェッカーを有効にする | False | -| update_rate | double | パブリッシュする頻度 [Hz] | 10.0 | -| visualize_lanelet | bool | レーンレットを視覚化するフラグ | False | +| 名称 | 型 | 説明 | デフォルト値 | +| :------------------------- | :----- | :------------------------------------------------------------------------------------------------------- | :----------- | +| will_out_of_lane_checker | bool | 自車フットプリントが車線から逸脱するかどうかのチェッカーを有効にする | True | +| out_of_lane_checker | bool | 自車フットプリントが車線外にあるかどうかをチェッカーを有効にする | True | +| boundary_departure_checker | bool | 自車フットプリントがboundary_types_to_detectで指定された境界から逸脱するかどうかのチェッカーを有効にする | False | +| update_rate | double | パブリッシュする頻度 [Hz] | 10.0 | +| visualize_lanelet | bool | レーンレットを視覚化するフラグ | False | #### 車線逸脱のためのパラメータ -| 名前 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `include_right_lanes` | ブール | 境界に右のレーンレットを含めるかどうか | `False` | -| `include_left_lanes` | ブール | 境界に左のレーンレットを含めるかどうか | `False` | -| `include_opposite_lanes` | ブール | 境界に対向のレーンレットを含めるかどうか | `False` | -| `include_conflicting_lanes` | ブール | 境界に交差するレーンレットを含めるかどうか | `False` | +| 名前 | タイプ | 説明 | デフォルト値 | +| --------------------------- | ------ | ------------------------------------------ | ------------ | +| `include_right_lanes` | ブール | 境界に右のレーンレットを含めるかどうか | `False` | +| `include_left_lanes` | ブール | 境界に左のレーンレットを含めるかどうか | `False` | +| `include_opposite_lanes` | ブール | 境界に対向のレーンレットを含めるかどうか | `False` | +| `include_conflicting_lanes` | ブール | 境界に交差するレーンレットを含めるかどうか | `False` | #### 路側逸脱 パラメータ -* `# (m)`: 路側逸脱開始のしきい値 `'post resampling'` 距離(メートル) -* `# (rad)`: 路側逸脱開始のしきい値 `'post resampling'` 曲率(ラジアン) -* `# (m)`: `'post resampling'` 路側逸脱中の vehicle `'post resampling'` の速度(メートル) -* `# (s)`: `'post resampling'` 路側逸脱中の vehicle `'post resampling'` の経過時間(秒) -* `#`: `'post resampling'` 路側逸脱開始時の自車位置における heading 偏差(ラジアン) -* `# (m)`: `'post resampling'` 路側逸脱開始時の自車位置における lateral offset(メートル) -* `#`: `'post resampling'` 路側逸脱開始時の vehicle `'post resampling'` の速度(メートル/秒) -* `# (m^2/s)`: `'post resampling'` 路側逸脱中の vehicle `'post resampling'` の acceleration 逸脱量(平方メートル/秒) -* `# (m^2/s)`: `'post resampling'` 路側逸脱中の vehicle `'post resampling'` の velocity 逸脱量(平方メートル/秒) -* `# (m^2/s)`: 路側逸脱中の vehicle `'post resampling'` の heading 逸脱量(平方メートル/秒) -* `# (m)`: `'post resampling'` 路側逸脱終了時の vehicle `'post resampling'` の速度(メートル/秒) -* `#`: `'post resampling'` 路側逸脱終了時の自車位置における heading 偏差 -* `# (s)`: `'post resampling'` 路側逸脱終了時の vehicle `'post resampling'` の経過時間 -* `# (cm)`: 静止時の vehicle `'post resampling'` の steering wheel angle(センチメートル) -* `# (m)`: 静止時の vehicle `'post resampling'` の lateral offset(メートル) -* `#`: 静止時の vehicle `'post resampling'` の速度(メートル/秒) - -| 名称 | タイプ | 説明 | デフォルト値 | -| :----------------------- | :--------------------------- | :--------------------------------------------------------- | :------------ | +- `# (m)`: 路側逸脱開始のしきい値 `'post resampling'` 距離(メートル) +- `# (rad)`: 路側逸脱開始のしきい値 `'post resampling'` 曲率(ラジアン) +- `# (m)`: `'post resampling'` 路側逸脱中の vehicle `'post resampling'` の速度(メートル) +- `# (s)`: `'post resampling'` 路側逸脱中の vehicle `'post resampling'` の経過時間(秒) +- `#`: `'post resampling'` 路側逸脱開始時の自車位置における heading 偏差(ラジアン) +- `# (m)`: `'post resampling'` 路側逸脱開始時の自車位置における lateral offset(メートル) +- `#`: `'post resampling'` 路側逸脱開始時の vehicle `'post resampling'` の速度(メートル/秒) +- `# (m^2/s)`: `'post resampling'` 路側逸脱中の vehicle `'post resampling'` の acceleration 逸脱量(平方メートル/秒) +- `# (m^2/s)`: `'post resampling'` 路側逸脱中の vehicle `'post resampling'` の velocity 逸脱量(平方メートル/秒) +- `# (m^2/s)`: 路側逸脱中の vehicle `'post resampling'` の heading 逸脱量(平方メートル/秒) +- `# (m)`: `'post resampling'` 路側逸脱終了時の vehicle `'post resampling'` の速度(メートル/秒) +- `#`: `'post resampling'` 路側逸脱終了時の自車位置における heading 偏差 +- `# (s)`: `'post resampling'` 路側逸脱終了時の vehicle `'post resampling'` の経過時間 +- `# (cm)`: 静止時の vehicle `'post resampling'` の steering wheel angle(センチメートル) +- `# (m)`: 静止時の vehicle `'post resampling'` の lateral offset(メートル) +- `#`: 静止時の vehicle `'post resampling'` の速度(メートル/秒) + +| 名称 | タイプ | 説明 | デフォルト値 | +| :----------------------- | :------------------------- | :---------------------------------------------------- | :------------ | | boundary_types_to_detect | std::vector\ | boundary_departure_checkerで検出するline_stringタイプ | [road_border] | ### 主要パラメータ -| 名称 | 種類 | 説明 | デフォルト値 | -| :------------------------- | :----- | :------------------------------------------------------------------------------------------------------- | :------------ | -| footprint_margin_scale | 数値 | footprintマージンを拡張する係数。標準偏差に1を乗算 | 1.0 | -| footprint_extra_margin | 数値 | footprintマージンを拡張する係数。 レーン逸脱のチェック時 | 0.0 | -| resample_interval | 数値 | trajectoryを再サンプリングする際のポイント間の最小ユークリッド距離 (m) | 0.3 | -| max_deceleration | 数値 | 制動距離を計算する際の最大減速度 | 2.8 | -| delay_time | 数値 | 制動距離を計算する際のブレーキ作動までの遅延時間 (秒) | 1.3 | -| max_lateral_deviation | 数値 | 車両座標系における最大横方向逸脱距離 (m) | 2.0 | -| max_longitudinal_deviation | 数値 | 車両座標系における最大縦方向逸脱距離 (m) | 2.0 | -| max_yaw_deviation_deg | 数値 | trajectoryからの自己車両の最大ヨー逸脱角度 (度) | 60.0 | - +| 名称 | 種類 | 説明 | デフォルト値 | +| :------------------------- | :--- | :--------------------------------------------------------------------- | :----------- | +| footprint_margin_scale | 数値 | footprintマージンを拡張する係数。標準偏差に1を乗算 | 1.0 | +| footprint_extra_margin | 数値 | footprintマージンを拡張する係数。 レーン逸脱のチェック時 | 0.0 | +| resample_interval | 数値 | trajectoryを再サンプリングする際のポイント間の最小ユークリッド距離 (m) | 0.3 | +| max_deceleration | 数値 | 制動距離を計算する際の最大減速度 | 2.8 | +| delay_time | 数値 | 制動距離を計算する際のブレーキ作動までの遅延時間 (秒) | 1.3 | +| max_lateral_deviation | 数値 | 車両座標系における最大横方向逸脱距離 (m) | 2.0 | +| max_longitudinal_deviation | 数値 | 車両座標系における最大縦方向逸脱距離 (m) | 2.0 | +| max_yaw_deviation_deg | 数値 | trajectoryからの自己車両の最大ヨー逸脱角度 (度) | 60.0 | diff --git a/control/autoware_mpc_lateral_controller/README.md b/control/autoware_mpc_lateral_controller/README.md index ceff4c3bb0f4..46b27afc4015 100644 --- a/control/autoware_mpc_lateral_controller/README.md +++ b/control/autoware_mpc_lateral_controller/README.md @@ -23,7 +23,7 @@ - kinematics:ステアリング1次の遅れを持つ自転車運動学モデル。 - kinematics_no_delay:ステアリング遅れのない自転車運動学モデル。 - dynamics:スリップ角を考慮する自転車動力学モデル。 -運動学モデルがデフォルトで使用されています。詳細については、参照 [1]を参照してください。 + 運動学モデルがデフォルトで使用されています。詳細については、参照 [1]を参照してください。 最適化には2次計画問題(QP)ソルバーが使用され、現在2つのオプションが実装されています。 @@ -48,6 +48,7 @@ ## 入力 / 出力 / API - 入力: + - trajectory :リファレンストラジェクト(`autoware_api_msgs/Trajectory`) - vehicle_state :現在の車両のステータス(`autoware_auto_msgs/VehicleState`) - current_pose :自車位置(`geometry_msgs/PoseStamped`) @@ -55,6 +56,7 @@ - planned_trajectory :計画された軌道(`autoware_msgs/PlannedTrajectory`) - 出力: + - vehicle_control_cmd :車両制御コマンド(`autoware_auto_msgs/VehicleControlCommand`) - API: @@ -88,13 +90,13 @@ #### システム -| 名前 | タイプ | 説明 | デフォルト値 | -| :------------------------ | :------ | :------------------------------------------------------------------------------------ | :------------ | -| traj_resample_dist | double | 再サンプリングにおけるウェイポイント間の距離 [m] | 0.1 | -| use_steer_prediction | boolean | ステアリング予測を使用するフラグ(ステアリング測定値は使用しない) | false | -| admissible_position_error | double | 追従位置誤差がこの値 [m] より大きい場合に車両を停止する | 5.0 | -| admissible_yaw_error_rad | double | 追従ヨー角誤差がこの値 [rad] より大きい場合に車両を停止する | 1.57 | -| use_delayed_initial_state | boolean | 予測軌道の初期状態として `x0_delayed` を使用するフラグ | true | +| 名前 | タイプ | 説明 | デフォルト値 | +| :------------------------ | :------ | :----------------------------------------------------------------- | :----------- | +| traj_resample_dist | double | 再サンプリングにおけるウェイポイント間の距離 [m] | 0.1 | +| use_steer_prediction | boolean | ステアリング予測を使用するフラグ(ステアリング測定値は使用しない) | false | +| admissible_position_error | double | 追従位置誤差がこの値 [m] より大きい場合に車両を停止する | 5.0 | +| admissible_yaw_error_rad | double | 追従ヨー角誤差がこの値 [rad] より大きい場合に車両を停止する | 1.57 | +| use_delayed_initial_state | boolean | 予測軌道の初期状態として `x0_delayed` を使用するフラグ | true | #### パススムージング @@ -103,20 +105,23 @@ トリガーは、自車位置の更新、経路の変更、経路の`post resampling`の更新です。 #### レベル0の経路 + レベル0のレイヤーでは、Smoothed Path Providerによって、パスのスムージングによって生成された経路が提供されます。 #### レベル1のPlanning + レベル1のPlanningコンポーネントは、以下を行います。 + - スムーズな経路を`post resampling`に使用します。 - スムーズな経路に基づいて、velocity 逸脱量とacceleration 逸脱量を計算します。 - Velocity ControllerとAcceleration Controllerに逸脱量を通知します。 -| 名称 | タイプ | 説明 | デフォルト値 | -| :-------------------------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| path_smoothingを有効にする | boolean | パスの平滑化フラグ。リサンプリングノイズを低減するためにパスリサンプリングを使用する場合は、`True`にします。 | `False` | -| path_filter_moving_ave_num | int | path smoothingのために移動平均フィルタのデータポイントの数 | `25` | -| curvature_smoothing_num_traj | int | 軌道の曲率計算に使用される点のインデックス距離:p(i-num)、p(i)、p(i+num)。`num`が大きいほどノイズの少ない値になります。 | `15` | -| curvature_smoothing_num_ref_steer | int | 参照ステアリングコマンドの曲率計算に使用される点のインデックス距離:p(i-num)、p(i)、p(i+num)。`num`が大きいほどノイズの少ない値になります。 | `15` | +| 名称 | タイプ | 説明 | デフォルト値 | +| :-------------------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------ | :----------- | +| path_smoothingを有効にする | boolean | パスの平滑化フラグ。リサンプリングノイズを低減するためにパスリサンプリングを使用する場合は、`True`にします。 | `False` | +| path_filter_moving_ave_num | int | path smoothingのために移動平均フィルタのデータポイントの数 | `25` | +| curvature_smoothing_num_traj | int | 軌道の曲率計算に使用される点のインデックス距離:p(i-num)、p(i)、p(i+num)。`num`が大きいほどノイズの少ない値になります。 | `15` | +| curvature_smoothing_num_ref_steer | int | 参照ステアリングコマンドの曲率計算に使用される点のインデックス距離:p(i-num)、p(i)、p(i+num)。`num`が大きいほどノイズの少ない値になります。 | `15` | #### 軌道予測 @@ -128,7 +133,7 @@ Planningコンポーネントは、自車位置と目的地などの高レベル #### 経路検索 -経路検索は、始点と終点の間の経路を計算するプロセスです。経路検索アルゴリズムには、Dijkstraアルゴリズム、A*アルゴリズム、Floyd-Warshallアルゴリズムなどがあります。 +経路検索は、始点と終点の間の経路を計算するプロセスです。経路検索アルゴリズムには、Dijkstraアルゴリズム、A\*アルゴリズム、Floyd-Warshallアルゴリズムなどがあります。 ##### コスト関数 @@ -152,9 +157,9 @@ Planningコンポーネントは、自車位置と目的地などの高レベル 軌道生成アルゴリズムには、以下のようなものがあります。 -* **レファレンストラジャクトリ追従**:レファレンストラジャクトリを生成し、自車をそれに追従させます。 -* **最適制御**:最適化手法を使用して、コスト関数を最小化する軌道生成します。 -* **機械学習**:機械学習モデルを使用して、軌道を予測します。 +- **レファレンストラジャクトリ追従**:レファレンストラジャクトリを生成し、自車をそれに追従させます。 +- **最適制御**:最適化手法を使用して、コスト関数を最小化する軌道生成します。 +- **機械学習**:機械学習モデルを使用して、軌道を予測します。 ### 経路プランの実行 @@ -162,15 +167,15 @@ Planningコンポーネントは、自車位置と目的地などの高レベル 経路プラン追従は、自車を経路プランに沿って制御するプロセスです。経路プラン追従コントローラーには、以下のようなものがあります。 -* **制約性モデル予測制御(MPC)**:制約を考慮して自車を制御します。 -* **占有空間パス計画(OCPP)**:障害物を避けながら自車を制御します。 +- **制約性モデル予測制御(MPC)**:制約を考慮して自車を制御します。 +- **占有空間パス計画(OCPP)**:障害物を避けながら自車を制御します。 #### 軌道追従 軌道追従は、自車を軌道に沿って制御するプロセスです。軌道追従コントローラーには、以下のようなものがあります。 -* **PIDコントローラー**:誤差を最小化するフィードバック制御を行います。 -* **カルマンフィルター**:雑音を推定してより正確な制御を実現します。 +- **PIDコントローラー**:誤差を最小化するフィードバック制御を行います。 +- **カルマンフィルター**:雑音を推定してより正確な制御を実現します。 ### 安全性評価 @@ -178,93 +183,93 @@ Planningコンポーネントは、自車位置と目的地などの高レベル 運動学的検証は、軌道が物理的に実行可能であることを確認するプロセスです。運動学的検証では、以下の要素を考慮します。 -* **速度逸脱量** -* **加速度逸脱量** -* **ジャーク逸脱量** +- **速度逸脱量** +- **加速度逸脱量** +- **ジャーク逸脱量** #### 動力学的検証 動力学的検証は、軌道が車両の動力学を考慮して実行可能であることを確認するプロセスです。動力学的検証では、以下の要素を考慮します。 -* **タイヤの滑り** -* **車両の安定性** -* **サスペンションの影響** +- **タイヤの滑り** +- **車両の安定性** +- **サスペンションの影響** #### 障害物検出 障害物検出は、軌道上の障害物を検出するプロセスです。障害物検出には、以下の方法があります。 -* **センサーデータ(LiDAR、カメラ、レーダーなど)** -* **地図データ** -* **'post resampling'(前回のサンプルからの差分)**による検出 +- **センサーデータ(LiDAR、カメラ、レーダーなど)** +- **地図データ** +- **'post resampling'(前回のサンプルからの差分)**による検出 -| 名称 | 種類 | 説明 | デフォルト値 | -| :---------------------------------- | :------ | :----------------------------------------------------------- | :------------ | -| extend_trajectory_for_end_yaw_control | boolean | end yaw 制御のための軌道の延伸フラグ | true | +| 名称 | 種類 | 説明 | デフォルト値 | +| :------------------------------------ | :------ | :----------------------------------- | :----------- | +| extend_trajectory_for_end_yaw_control | boolean | end yaw 制御のための軌道の延伸フラグ | true | #### MPC最適化 -| 名前 | タイプ | 説明 | デフォルト値 | -| :-------------------------------------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| qp_solver_type | 文字列 | QPソルバーオプション。以下で詳細に説明します。 | "osqp" | -| mpc_prediction_horizon | 整数 | MPCのステップごとの合計予測 | 50 | -| mpc_prediction_dt | float | 1ステップあたりの予測時間[単位:秒] | 0.1 | -| mpc_weight_lat_error | float | 横方向の逸脱量の重み | 1.0 | -| mpc_weight_heading_error | float | ヘディングの逸脱量の重み | 0.0 | -| mpc_weight_heading_error_squared_vel | float | ヘディングの逸脱量 * 速度の重み | 0.3 | -| mpc_weight_steering_input | float | ステアリングの逸脱量の重み(ステアリングコマンド - 参照ステアリング) | 1.0 | -| mpc_weight_steering_input_squared_vel | float | ステアリングの逸脱量の重み(ステアリングコマンド - 参照ステアリング) * 速度 | 0.25 | -| mpc_weight_lat_jerk | float | 横方向のジャーク(steer(i) - steer(i-1)) * 速度 の重み | 0.1 | -| mpc_weight_steer_rate | float | ステアリング速度の重み[単位:rad/s] | 0.0 | -| mpc_weight_steer_acc | float | ステアリング速度の微分の重み[rad/ss] | 0.000001 | -| mpc_low_curvature_weight_lat_error | float | [低曲率軌道で使用] 横方向の逸脱量の重み | 0.1 | -| mpc_low_curvature_weight_heading_error | float | [低曲率軌道で使用] ヘディングの逸脱量の重み | 0.0 | -| mpc_low_curvature_weight_heading_error_squared_vel | float | [低曲率軌道で使用] ヘディングの逸脱量 * 速度の重み | 0.3 | -| mpc_low_curvature_weight_steering_input | float | [低曲率軌道で使用] ステアリングの逸脱量の重み(ステアリングコマンド - 参照ステアリング) | 1.0 | -| mpc_low_curvature_weight_steering_input_squared_vel | float | [低曲率軌道で使用] ステアリングの逸脱量の重み(ステアリングコマンド - 参照ステアリング) * 速度 | 0.25 | -| mpc_low_curvature_weight_lat_jerk | float | [低曲率軌道で使用] 横方向のジャーク(steer(i) - steer(i-1)) * 速度 の重み | 0.0 | -| mpc_low_curvature_weight_steer_rate | float | [低曲率軌道で使用] ステアリング速度の重み[単位:rad/s] | 0.0 | -| mpc_low_curvature_weight_steer_acc | float | [低曲率軌道で使用] ステアリング速度の微分の重み[rad/ss] | 0.000001 | -| mpc_low_curvature_thresh_curvature | float | "low_curvature"パラメータを使用するための曲率のしきい値 | 0.0 | -| mpc_weight_terminal_lat_error | float | mpcの安定性を向上させるための行列Qの最終横方向の逸脱量の重み | 1.0 | -| mpc_weight_terminal_heading_error | float | mpcの安定性を向上させるための行列Qの最終ヘディングの逸脱量の重み | 0.1 | -| mpc_zero_ff_steer_deg | float | フィードフォワード角度がゼロになるしきい値 | 0.5 | -| mpc_acceleration_limit | float | 車両加速度の制限 | 2.0 | -| mpc_velocity_time_constant | float | 速度スムージングに使用される時定数 | 0.3 | -| mpc_min_prediction_length | float | 最小予測の長さ | 5.0 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :-------------------------------------------------- | :----- | :----------------------------------------------------------------------------------------------- | :----------- | +| qp_solver_type | 文字列 | QPソルバーオプション。以下で詳細に説明します。 | "osqp" | +| mpc_prediction_horizon | 整数 | MPCのステップごとの合計予測 | 50 | +| mpc_prediction_dt | float | 1ステップあたりの予測時間[単位:秒] | 0.1 | +| mpc_weight_lat_error | float | 横方向の逸脱量の重み | 1.0 | +| mpc_weight_heading_error | float | ヘディングの逸脱量の重み | 0.0 | +| mpc_weight_heading_error_squared_vel | float | ヘディングの逸脱量 \* 速度の重み | 0.3 | +| mpc_weight_steering_input | float | ステアリングの逸脱量の重み(ステアリングコマンド - 参照ステアリング) | 1.0 | +| mpc_weight_steering_input_squared_vel | float | ステアリングの逸脱量の重み(ステアリングコマンド - 参照ステアリング) \* 速度 | 0.25 | +| mpc_weight_lat_jerk | float | 横方向のジャーク(steer(i) - steer(i-1)) \* 速度 の重み | 0.1 | +| mpc_weight_steer_rate | float | ステアリング速度の重み[単位:rad/s] | 0.0 | +| mpc_weight_steer_acc | float | ステアリング速度の微分の重み[rad/ss] | 0.000001 | +| mpc_low_curvature_weight_lat_error | float | [低曲率軌道で使用] 横方向の逸脱量の重み | 0.1 | +| mpc_low_curvature_weight_heading_error | float | [低曲率軌道で使用] ヘディングの逸脱量の重み | 0.0 | +| mpc_low_curvature_weight_heading_error_squared_vel | float | [低曲率軌道で使用] ヘディングの逸脱量 \* 速度の重み | 0.3 | +| mpc_low_curvature_weight_steering_input | float | [低曲率軌道で使用] ステアリングの逸脱量の重み(ステアリングコマンド - 参照ステアリング) | 1.0 | +| mpc_low_curvature_weight_steering_input_squared_vel | float | [低曲率軌道で使用] ステアリングの逸脱量の重み(ステアリングコマンド - 参照ステアリング) \* 速度 | 0.25 | +| mpc_low_curvature_weight_lat_jerk | float | [低曲率軌道で使用] 横方向のジャーク(steer(i) - steer(i-1)) \* 速度 の重み | 0.0 | +| mpc_low_curvature_weight_steer_rate | float | [低曲率軌道で使用] ステアリング速度の重み[単位:rad/s] | 0.0 | +| mpc_low_curvature_weight_steer_acc | float | [低曲率軌道で使用] ステアリング速度の微分の重み[rad/ss] | 0.000001 | +| mpc_low_curvature_thresh_curvature | float | "low_curvature"パラメータを使用するための曲率のしきい値 | 0.0 | +| mpc_weight_terminal_lat_error | float | mpcの安定性を向上させるための行列Qの最終横方向の逸脱量の重み | 1.0 | +| mpc_weight_terminal_heading_error | float | mpcの安定性を向上させるための行列Qの最終ヘディングの逸脱量の重み | 0.1 | +| mpc_zero_ff_steer_deg | float | フィードフォワード角度がゼロになるしきい値 | 0.5 | +| mpc_acceleration_limit | float | 車両加速度の制限 | 2.0 | +| mpc_velocity_time_constant | float | 速度スムージングに使用される時定数 | 0.3 | +| mpc_min_prediction_length | float | 最小予測の長さ | 5.0 | #### 車両モデル -| 名称 | 種別 | 説明 | デフォルト値 | -|---|---|---|---| -| vehicle_model_type | 文字列 | mpc予測のための車両モデルの種別 | "kinematics" | -| input_delay | 倍精度 | 遅延補正のためのステアリング入力遅延時間 | 0.24 | -| vehicle_model_steer_tau | 倍精度 | ステアリングの動特性時間定数 (1d近似) [秒] | 0.3 | -| steer_rate_lim_dps_list_by_curvature | 倍精度配列 | 曲率に応じて制限されるステアリング角速度の制限値のリスト [deg/s] | [40.0, 50.0, 60.0] | -| curvature_list_for_steer_rate_lim | 倍精度配列 | アセンディング順の曲率のリストにより、ステアリング角速度の制限値の補間が決定される [/m] | [0.001, 0.002, 0.01] | -| steer_rate_lim_dps_list_by_velocity | 倍精度配列 | 速度に応じて制限されるステアリング角速度の制限値のリスト [deg/s] | [60.0, 50.0, 40.0] | -| velocity_list_for_steer_rate_lim | 倍精度配列 | アセンディング順の速度のリストにより、ステアリング角速度の制限値の補間が決定される [m/s] | [10.0, 15.0, 20.0] | -| acceleration_limit | 倍精度 | 軌道速度の変更のための加速度の制限 [m/ss] | 2.0 | -| velocity_time_constant | 倍精度 | 軌道速度の変更のための速度の動特性時間定数 [s] | 0.3 | +| 名称 | 種別 | 説明 | デフォルト値 | +| ------------------------------------ | ---------- | ---------------------------------------------------------------------------------------- | -------------------- | +| vehicle_model_type | 文字列 | mpc予測のための車両モデルの種別 | "kinematics" | +| input_delay | 倍精度 | 遅延補正のためのステアリング入力遅延時間 | 0.24 | +| vehicle_model_steer_tau | 倍精度 | ステアリングの動特性時間定数 (1d近似) [秒] | 0.3 | +| steer_rate_lim_dps_list_by_curvature | 倍精度配列 | 曲率に応じて制限されるステアリング角速度の制限値のリスト [deg/s] | [40.0, 50.0, 60.0] | +| curvature_list_for_steer_rate_lim | 倍精度配列 | アセンディング順の曲率のリストにより、ステアリング角速度の制限値の補間が決定される [/m] | [0.001, 0.002, 0.01] | +| steer_rate_lim_dps_list_by_velocity | 倍精度配列 | 速度に応じて制限されるステアリング角速度の制限値のリスト [deg/s] | [60.0, 50.0, 40.0] | +| velocity_list_for_steer_rate_lim | 倍精度配列 | アセンディング順の速度のリストにより、ステアリング角速度の制限値の補間が決定される [m/s] | [10.0, 15.0, 20.0] | +| acceleration_limit | 倍精度 | 軌道速度の変更のための加速度の制限 [m/ss] | 2.0 | +| velocity_time_constant | 倍精度 | 軌道速度の変更のための速度の動特性時間定数 [s] | 0.3 | #### ノイズリダクションのローパスフィルタ -| 名前 | タイプ | 説明 | デフォルト値 | -| :------------------------ | :----- | :------------------------------------------------------------------------------ | :------------ | -| steering_lpf_cutoff_hz | double | ステアリング出力コマンドに対するローパスフィルタのカットオフ周波数 [hz] | 3.0 | -| error_deriv_lpf_cutoff_hz | double | エラー微分にローパスフィルタを適用する際のカットオフ周波数 [Hz] | 5.0 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :------------------------ | :----- | :---------------------------------------------------------------------- | :----------- | +| steering_lpf_cutoff_hz | double | ステアリング出力コマンドに対するローパスフィルタのカットオフ周波数 [hz] | 3.0 | +| error_deriv_lpf_cutoff_hz | double | エラー微分にローパスフィルタを適用する際のカットオフ周波数 [Hz] | 5.0 | #### 停止状態 -| 名前 | タイプ | 説明 | デフォルト値 | -| :--------------------------------------- | :------ | :------------------------------------------------------------------------------------------- | :----------: | -| stop_state_entry_ego_speed \*1 | double | 停止状態への移行条件に使用される自車速度のしきい値 | 0.001 | -| stop_state_entry_target_speed \*1 | double | 停止状態への移行条件に使用される目標速度のしきい値 | 0.001 | -| converged_steer_rad | double | 操舵の収束に使用されるしきい値 | 0.1 | -| keep_steer_control_until_converged | boolean | 操舵が収束するまで操舵制御を維持する | true | -| new_traj_duration_time | double | 新しい経路と見なされる時間のしきい値 | 1.0 | -| new_traj_end_dist | double | 新しい経路と見なされる軌道終端間の距離のしきい値 | 0.3 | -| mpc_converged_threshold_rps | double | 最適化の出力が収束したと判断するためのしきい値、停止状態で使用される | 0.01 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :------------------------------------------- | :------ | :------------------------------------------------------------------- | :----------: | +| stop_state_entry_ego_speed \*1 | double | 停止状態への移行条件に使用される自車速度のしきい値 | 0.001 | +| stop_state_entry_target_speed \*1 | double | 停止状態への移行条件に使用される目標速度のしきい値 | 0.001 | +| converged_steer_rad | double | 操舵の収束に使用されるしきい値 | 0.1 | +| keep_steer_control_until_converged | boolean | 操舵が収束するまで操舵制御を維持する | true | +| new_traj_duration_time | double | 新しい経路と見なされる時間のしきい値 | 1.0 | +| new_traj_end_dist | double | 新しい経路と見なされる軌道終端間の距離のしきい値 | 0.3 | +| mpc_converged_threshold_rps | double | 最適化の出力が収束したと判断するためのしきい値、停止状態で使用される | 0.01 | (\*1) 不要なステアリング操作を防止するため、ステアリングコマンドは停止状態では前の値に固定されます。 @@ -272,32 +277,32 @@ Planningコンポーネントは、自車位置と目的地などの高レベル `steering_offset` 名前空間で定義します。このロジックは、最小設計パラメータで可能な限りシンプルに設計されています。 -| 名前 | 種類 | 説明 | デフォルト値 | -| :-------------------------------------- | :------ | :--------------------------------------------------------------------------------------------------------------- | :------------ | -| enable_auto_steering_offset_removal | boolean | ステアリングオフセットを推定して補正を適用する | true | -| update_vel_threshold | double | 速度がこの値より小さい場合、データはオフセット推定に使用されない | 5.56 | -| update_steer_threshold | double | ステアリング角度がこの値より大きい場合、データはオフセット推定に使用されない | 0.035 | -| average_num | int | この数字の平均がステアリングオフセットとして使用される | 1000 | -| steering_offset_limit | double | オフセット補正に適用する角度制限 | 0.02 | +| 名前 | 種類 | 説明 | デフォルト値 | +| :---------------------------------- | :------ | :--------------------------------------------------------------------------- | :----------- | +| enable_auto_steering_offset_removal | boolean | ステアリングオフセットを推定して補正を適用する | true | +| update_vel_threshold | double | 速度がこの値より小さい場合、データはオフセット推定に使用されない | 5.56 | +| update_steer_threshold | double | ステアリング角度がこの値より大きい場合、データはオフセット推定に使用されない | 0.035 | +| average_num | int | この数字の平均がステアリングオフセットとして使用される | 1000 | +| steering_offset_limit | double | オフセット補正に適用する角度制限 | 0.02 | ##### 力学モデル(WIP) -| 名称 | 種類 | 説明 | デフォルト値 | -| :--------------------------- | :------ | :-------------------------------------------------------------------| :------------ | -| `cg_to_front_m` | double | ベースリンクからフロントアクスルまでの距離             | 1.228 | -| `cg_to_rear_m` | double | ベースリンクからリアアクスルまでの距離              | 1.5618 | -| `mass_fl` | double | フロント左タイヤに加わる質量                     | 600 | -| `mass_fr` | double | フロント右タイヤに加わる質量                     | 600 | -| `mass_rl` | double | リア左タイヤに加わる質量                     | 600 | -| `mass_rr` | double | リア右タイヤに加わる質量                     | 600 | -| `cf` | double | フロントコーナリングパワー                     | 155494.663 | -| `cr` | double | リアコーナリングパワー                     | 155494.663 | +| 名称 | 種類 | 説明 | デフォルト値 | +| :-------------- | :----- | :-------------------------------------------------------------------- | :----------- | +| `cg_to_front_m` | double | ベースリンクからフロントアクスルまでの距離              | 1.228 | +| `cg_to_rear_m` | double | ベースリンクからリアアクスルまでの距離               | 1.5618 | +| `mass_fl` | double | フロント左タイヤに加わる質量                      | 600 | +| `mass_fr` | double | フロント右タイヤに加わる質量                      | 600 | +| `mass_rl` | double | リア左タイヤに加わる質量                      | 600 | +| `mass_rr` | double | リア右タイヤに加わる質量                      | 600 | +| `cf` | double | フロントコーナリングパワー                      | 155494.663 | +| `cr` | double | リアコーナリングパワー                      | 155494.663 | #### デバッグ -| 名前 | 種類 | 説明 | デフォルト値 | -| :------------------------- | :------ | :-------------------------------------------------------------------------------- | :------------ | -| publish_debug_trajectories | ブール | デバッグ目的で予測軌跡と再サンプリングされた基準軌跡を公開 | true | +| 名前 | 種類 | 説明 | デフォルト値 | +| :------------------------- | :----- | :--------------------------------------------------------- | :----------- | +| publish_debug_trajectories | ブール | デバッグ目的で予測軌跡と再サンプリングされた基準軌跡を公開 | true | ### MPCパラメータのチューニング方法 @@ -406,7 +411,7 @@ Planningコンポーネントは、以下のような性能要件を満たす必 - **安全性:** Planningコンポーネントは、車両が安全に操作されるように経路を計画する必要があります。 - **効率性:** Planningコンポーネントは、計算効率が高く、リアルタイムで動作する必要があります。 -- ** robustness:** Planningコンポーネントは、不完全な情報や予測不可能なイベントに対しても堅牢である必要があります。 +- **robustness:** Planningコンポーネントは、不完全な情報や予測不可能なイベントに対しても堅牢である必要があります。 ### Planningコンポーネントの検証 @@ -415,4 +420,3 @@ Planningコンポーネントは、シミュレーションと実車テストの - **path planning**の正確性 - **Trajectory planning**の滑らかさと効率性 - **Collision avoidance**の有効性 - diff --git a/control/autoware_obstacle_collision_checker/README.md b/control/autoware_obstacle_collision_checker/README.md index 18fb4b301018..a385168ed1d9 100644 --- a/control/autoware_obstacle_collision_checker/README.md +++ b/control/autoware_obstacle_collision_checker/README.md @@ -8,7 +8,6 @@ ### フローチャート - ```plantuml @startuml skinparam monochrome true @@ -58,13 +57,13 @@ stop ### 入力 -| 名前 | 型 | 説明 | -|---|---|---| -| `~/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 基準軌跡 | -| `~/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 予測軌跡 | -| `/perception/obstacle_segmentation/pointcloud` | `sensor_msgs::msg::PointCloud2` | 自車が停止または回避すべき障害物の点群 | -| `/tf` | `tf2_msgs::msg::TFMessage` | TF | -| `/tf_static` | `tf2_msgs::msg::TFMessage` | スタティックTF | +| 名前 | 型 | 説明 | +| ---------------------------------------------- | ----------------------------------------- | -------------------------------------- | +| `~/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 基準軌跡 | +| `~/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 予測軌跡 | +| `/perception/obstacle_segmentation/pointcloud` | `sensor_msgs::msg::PointCloud2` | 自車が停止または回避すべき障害物の点群 | +| `/tf` | `tf2_msgs::msg::TFMessage` | TF | +| `/tf_static` | `tf2_msgs::msg::TFMessage` | スタティックTF | ### 出力 @@ -76,60 +75,59 @@ Planningモジュールは、Autowareの重要なコンポーネントの1つで **主な機能** -* **経路計画:** - * ダイナミック計画法を使用して、周囲の環境を考慮した最適な経路を生成します。 - * 衝突回避と安全性を確保するために、予測可能な障害物パスを予測します。 -* **モーション計画:** - * 経路計画に基づいて、目標速度と加速度を決定します。 -* **コマンド生成:** - * 目標速度と加速度を使用して、車両のハンドルとアクセル/ブレーキの制御コマンドを生成します。 +- **経路計画:** + - ダイナミック計画法を使用して、周囲の環境を考慮した最適な経路を生成します。 + - 衝突回避と安全性を確保するために、予測可能な障害物パスを予測します。 +- **モーション計画:** + - 経路計画に基づいて、目標速度と加速度を決定します。 +- **コマンド生成:** + - 目標速度と加速度を使用して、車両のハンドルとアクセル/ブレーキの制御コマンドを生成します。 **入力** -* Perceptionモジュールからのセンサデータ - * LiDAR - * レーダー - * カメラ -* 自車位置 +- Perceptionモジュールからのセンサデータ + - LiDAR + - レーダー + - カメラ +- 自車位置 **出力** -* 計画された経路 -* 目標速度と加速度 -* ハンドルとアクセル/ブレーキの制御コマンド +- 計画された経路 +- 目標速度と加速度 +- ハンドルとアクセル/ブレーキの制御コマンド **考慮事項** -* **センサーの不確実性:** センサーデータは不確実性を伴うため、Planningモジュールはロバストで信頼性の高い出力を生成する必要があります。 -* **現実世界の制約:** 計画された経路は、道路の傾斜、交通信号、その他の現実世界の制約を考慮する必要があります。 -* **リアルタイム処理:** Planningモジュールは、リアルタイムで動作して、車両の安全な運転を確保する必要があります。 +- **センサーの不確実性:** センサーデータは不確実性を伴うため、Planningモジュールはロバストで信頼性の高い出力を生成する必要があります。 +- **現実世界の制約:** 計画された経路は、道路の傾斜、交通信号、その他の現実世界の制約を考慮する必要があります。 +- **リアルタイム処理:** Planningモジュールは、リアルタイムで動作して、車両の安全な運転を確保する必要があります。 **追加の機能** -* **'post resampling' 局所パス計画:** センサーデータの更新に応じて、局所パスをリアルタイムで調整します。 -* **多様なパラメータ設定:** 車両のモデル、環境条件、運転スタイルに応じて、Planningモジュールのパラメータを調整できます。 -* **詳細なログ記録:** Planningモジュールの動作を診断し、改善するために、ログデータを記録できます。 +- **'post resampling' 局所パス計画:** センサーデータの更新に応じて、局所パスをリアルタイムで調整します。 +- **多様なパラメータ設定:** 車両のモデル、環境条件、運転スタイルに応じて、Planningモジュールのパラメータを調整できます。 +- **詳細なログ記録:** Planningモジュールの動作を診断し、改善するために、ログデータを記録できます。 **関連ドキュメント** -* Autoware Planningモジュールユーザーガイド -* Autoware Planningモジュール開発者ガイド +- Autoware Planningモジュールユーザーガイド +- Autoware Planningモジュール開発者ガイド -| 変数名 | 型 | 説明 | -| ------------ | --------------------------------------- | -------------------------- | -| `~/debug/marker` | `visualization_msgs::msg::MarkerArray` | 視覚化用マーカー | +| 変数名 | 型 | 説明 | +| ---------------- | -------------------------------------- | ---------------- | +| `~/debug/marker` | `visualization_msgs::msg::MarkerArray` | 視覚化用マーカー | ## パラメータ -| 名称 | 型 | 説明 | デフォルト値 | -| :------------------ | :------- | :----------------------------------------------------- | :------------ | -| `delay_time` | `double` | 車両の遅延時間 [s] | 0.3 | -| `footprint_margin` | `double` | 車両形状のマージン [m] | 0.0 | -| `max_deceleration` | `double` | 自車停止時の最大減速度 [m/s^2] | 2.0 | -| `resample_interval` | `double` | `post resampling`された軌道データの区間 [m] | 0.3 | -| `search_radius` | `double` | 軌道データから点群への探索距離 [m] | 5.0 | +| 名称 | 型 | 説明 | デフォルト値 | +| :------------------ | :------- | :------------------------------------------ | :----------- | +| `delay_time` | `double` | 車両の遅延時間 [s] | 0.3 | +| `footprint_margin` | `double` | 車両形状のマージン [m] | 0.0 | +| `max_deceleration` | `double` | 自車停止時の最大減速度 [m/s^2] | 2.0 | +| `resample_interval` | `double` | `post resampling`された軌道データの区間 [m] | 0.3 | +| `search_radius` | `double` | 軌道データから点群への探索距離 [m] | 5.0 | ## 前提 / 既知の制限事項 適切な衝突確認を行うためには、予測軌道とノイズのない障害物点群の予測値を取得する必要があります。 - diff --git a/control/autoware_operation_mode_transition_manager/README.md b/control/autoware_operation_mode_transition_manager/README.md index 3b46d4f231cc..6e73e39c55cf 100644 --- a/control/autoware_operation_mode_transition_manager/README.md +++ b/control/autoware_operation_mode_transition_manager/README.md @@ -87,55 +87,54 @@ {{ json_to_markdown("control/autoware_operation_mode_transition_manager/schema/operation_mode_transition_manager.schema.json") }} -| 名称 | 型 | 説明 | デフォルト値 | -| :------------------------------- | :---- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | -| `transition_timeout` | `float` | ステート遷移が __指定時間内に完了しない__場合、遷移が失敗と見なされます。 | 10.0 | -| `frequency_hz` | `float` | 実行 hz | 10.0 | -| `enable_engage_on_driving` | `bool` | 車両 __走行中に自動運転モードをオンにする__かどうかを指定します。 false の場合、車両速度が 0 以外の状況では走行モードへの切り替えを拒否します。パラメータを調整せずにこの機能を使用すると、急減速などの問題が発生する可能性があることに注意してください。使用する前に、走行条件と vehicle_cmd_gate 遷移フィルタが適切に調整されていることを確認してください。 | 0.1 | -| `check_engage_condition` | `bool` | false の場合、自動遷移は常に利用可能です。 | 0.1 | -| `nearest_dist_deviation_threshold` | `float` | 最も近い軌跡ポイントを見つけるために使用される距離の閾値 | 3.0 | -| `nearest_yaw_deviation_threshold` | `float` | 最も近い軌跡ポイントを見つけるために使用される角度の閾値 | 1.57 | +| 名称 | 型 | 説明 | デフォルト値 | +| :--------------------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------- | +| `transition_timeout` | `float` | ステート遷移が **指定時間内に完了しない**場合、遷移が失敗と見なされます。 | 10.0 | +| `frequency_hz` | `float` | 実行 hz | 10.0 | +| `enable_engage_on_driving` | `bool` | 車両 **走行中に自動運転モードをオンにする**かどうかを指定します。 false の場合、車両速度が 0 以外の状況では走行モードへの切り替えを拒否します。パラメータを調整せずにこの機能を使用すると、急減速などの問題が発生する可能性があることに注意してください。使用する前に、走行条件と vehicle_cmd_gate 遷移フィルタが適切に調整されていることを確認してください。 | 0.1 | +| `check_engage_condition` | `bool` | false の場合、自動遷移は常に利用可能です。 | 0.1 | +| `nearest_dist_deviation_threshold` | `float` | 最も近い軌跡ポイントを見つけるために使用される距離の閾値 | 3.0 | +| `nearest_yaw_deviation_threshold` | `float` | 最も近い軌跡ポイントを見つけるために使用される角度の閾値 | 1.57 | `engage_acceptable_limits` 関連パラメータについて: -| 名前 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `allow_autonomous_in_stopped` | `bool` | 停止時に他のチェックに失敗しても、自律走行への移行が許可される場合はtrue | true | -| `dist_threshold` | `double` | `Autonomous` への移行では、軌跡と自車位置の距離がこの距離内にある必要がある | 1.5 | -| `yaw_threshold` | `double` | `Autonomous` への移行では、軌跡と自車位置のヨー角がこのしきい値内にある必要がある | 0.524 | -| `speed_upper_threshold` | `double` | `Autonomous` への移行では、制御コマンドと自車位置の速度偏差はこのしきい値内にある必要がある | 10.0 | -| `speed_lower_threshold` | `double` | `Autonomous` への移行では、制御コマンドと自車位置の速度偏差はこのしきい値内にある必要がある | -10.0 | -| `acc_threshold` | `double` | `Autonomous` への移行では、制御コマンドの加速度はこのしきい値未満である必要がある | 1.5 | -| `lateral_acc_threshold` | `double` | `Autonomous` への移行では、制御コマンドの横加速度はこのしきい値未満である必要がある | 1.0 | -| `lateral_acc_diff_threshold` | `double` | `Autonomous` への移行では、制御コマンドの横加速度偏差はこのしきい値未満である必要がある | 0.5 | +| 名前 | タイプ | 説明 | デフォルト値 | +| ----------------------------- | -------- | ------------------------------------------------------------------------------------------- | ------------ | +| `allow_autonomous_in_stopped` | `bool` | 停止時に他のチェックに失敗しても、自律走行への移行が許可される場合はtrue | true | +| `dist_threshold` | `double` | `Autonomous` への移行では、軌跡と自車位置の距離がこの距離内にある必要がある | 1.5 | +| `yaw_threshold` | `double` | `Autonomous` への移行では、軌跡と自車位置のヨー角がこのしきい値内にある必要がある | 0.524 | +| `speed_upper_threshold` | `double` | `Autonomous` への移行では、制御コマンドと自車位置の速度偏差はこのしきい値内にある必要がある | 10.0 | +| `speed_lower_threshold` | `double` | `Autonomous` への移行では、制御コマンドと自車位置の速度偏差はこのしきい値内にある必要がある | -10.0 | +| `acc_threshold` | `double` | `Autonomous` への移行では、制御コマンドの加速度はこのしきい値未満である必要がある | 1.5 | +| `lateral_acc_threshold` | `double` | `Autonomous` への移行では、制御コマンドの横加速度はこのしきい値未満である必要がある | 1.0 | +| `lateral_acc_diff_threshold` | `double` | `Autonomous` への移行では、制御コマンドの横加速度偏差はこのしきい値未満である必要がある | 0.5 | `stable_check`関連パラメーター: -| 名称 | 型 | 説明 | デフォルト値 | -| :---------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------- | :------------ | -| `duration` | `数値` | この期間、安定条件が満たされると遷移が完了する。 | 0.1 | -| `dist_threshold` | `数値` | 経路と自車位置の距離が一定範囲内にある場合、`自律` への遷移が完了する。 | 1.5 | -| `yaw_threshold` | `数値` | 経路と自車位置のヨー角が一定範囲内にある場合、`自律` への遷移が完了する。 | 0.262 | -| `speed_upper_threshold` | `数値` | 制御コマンドと自車位置の速度偏差が一定範囲内にある場合、`自律` への遷移が完了する。 | 2.0 | -| `speed_lower_threshold` | `数値` | 制御コマンドと自車位置の速度偏差が一定範囲内にある場合、`自律` への遷移が完了する。 | 2.0 | +| 名称 | 型 | 説明 | デフォルト値 | +| :---------------------- | :----- | :---------------------------------------------------------------------------------- | :----------- | +| `duration` | `数値` | この期間、安定条件が満たされると遷移が完了する。 | 0.1 | +| `dist_threshold` | `数値` | 経路と自車位置の距離が一定範囲内にある場合、`自律` への遷移が完了する。 | 1.5 | +| `yaw_threshold` | `数値` | 経路と自車位置のヨー角が一定範囲内にある場合、`自律` への遷移が完了する。 | 0.262 | +| `speed_upper_threshold` | `数値` | 制御コマンドと自車位置の速度偏差が一定範囲内にある場合、`自律` への遷移が完了する。 | 2.0 | +| `speed_lower_threshold` | `数値` | 制御コマンドと自車位置の速度偏差が一定範囲内にある場合、`自律` への遷移が完了する。 | 2.0 | ## 各パラメータ設定におけるエンゲージチェック挙動 このマトリックスは、車両をエンゲージできるシナリオを、パラメータ設定の組み合わせに基づいて記述しています。 -| `enable_engage_on_driving` | `check_engage_condition` | `allow_autonomous_in_stopped` | 許容されるEngageのシナリオ | -| :------------------------: | :----------------------: | :---------------------------: | :---------------------------------------------------------------- | -| x | x | x | 車両が停止している場合のみ | -| x | x | o | 車両が停止している場合のみ | -| x | o | x | 車両が停止しており、すべてのEngage条件が満たされている場合 | -| x | o | o | 車両が停止している場合のみ | -| o | x | x | 常に(注意:推奨されません) | -| o | x | o | 常に(注意:推奨されません) | -| o | o | x | 車両の状態に関係なく、すべてのEngage条件が満たされた場合 | +| `enable_engage_on_driving` | `check_engage_condition` | `allow_autonomous_in_stopped` | 許容されるEngageのシナリオ | +| :------------------------: | :----------------------: | :---------------------------: | :------------------------------------------------------------------- | +| x | x | x | 車両が停止している場合のみ | +| x | x | o | 車両が停止している場合のみ | +| x | o | x | 車両が停止しており、すべてのEngage条件が満たされている場合 | +| x | o | o | 車両が停止している場合のみ | +| o | x | x | 常に(注意:推奨されません) | +| o | x | o | 常に(注意:推奨されません) | +| o | o | x | 車両の状態に関係なく、すべてのEngage条件が満たされた場合 | | o | o | o | すべてのEngage条件が満たされている場合、または車両が停止している場合 | ## Future extensions / Unimplemented parts - 後方互換インターフェイスを削除する必要があります。 - このノードは、`vehicle_cmd_gate` との密接な連携があるため、それに統合する必要があります。 - diff --git a/control/autoware_pid_longitudinal_controller/README.md b/control/autoware_pid_longitudinal_controller/README.md index 89895dbdcd33..9c1965ebfde1 100644 --- a/control/autoware_pid_longitudinal_controller/README.md +++ b/control/autoware_pid_longitudinal_controller/README.md @@ -56,9 +56,9 @@ longitudinal_controllerは、フィードフォワード / フィードバック 倾斜情報には2つの情報源があり、パラメータによって切り替えることができます。 - - 傾斜角から現在の勾配を計算します - - 長所: 容易に入手可能 - - 短所: 車両の振動の影響により、正確な勾配情報を抽出できません +- 傾斜角から現在の勾配を計算します +- 長所: 容易に入手可能 +- 短所: 車両の振動の影響により、正確な勾配情報を抽出できません - 軌道の Z 座標 - ターゲット軌跡における前輪と後輪位置の Z 座標の差から道路勾配を計算します - 長所: 経路の Z 座標が適切に維持されている場合、ピッチ情報よりも正確 @@ -116,11 +116,12 @@ longitudinal_controllerは、フィードフォワード / フィードバック - 傾斜角から現在の勾配を計算します ## 軌道の Z 座標 - - ターゲット軌道の前輪と後輪位置の Z 座標の差から道路勾配を計算 - - 長所: 経路の Z 座標が適切に維持されていれば、ピッチ情報よりも正確 - - 長所: (まだ実装されていない) 遅延補正と組み合わせて使用できる - - 短所: 高精細マップの Z 座標が必要 - - 短所: (現時点では) フリースペースプランニングに対応していない + +- ターゲット軌道の前輪と後輪位置の Z 座標の差から道路勾配を計算 +- 長所: 経路の Z 座標が適切に維持されていれば、ピッチ情報よりも正確 +- 長所: (まだ実装されていない) 遅延補正と組み合わせて使用できる +- 短所: 高精細マップの Z 座標が必要 +- 短所: (現時点では) フリースペースプランニングに対応していない ## 前提 / 制限事項 @@ -161,57 +162,57 @@ longitudinal_controllerは、フィードフォワード / フィードバック `param/lateral_controller_defaults.param.yaml` で定義されている既定のパラメータは、時速 40 km 未満の運転のために AutonomouStuff Lexus RX 450h に調整されています。 -| 名称 | 型 | 説明 | デフォルト値 | -| :-------------------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| `delay_compensation_time` | double | 縦制御の遅延 [s] | 0.17 | -| `enable_smooth_stop` | bool | STOPPING への遷移を有効にするフラグ | true | -| `enable_overshoot_emergency` | bool | `emergency_state_overshoot_stop_dist` で指定された距離でエゴが停止線を超えた場合に EMERGENCY への遷移を有効にするフラグ | true | -| `enable_large_tracking_error_emergency` | bool | 軌道とエゴの姿勢の大きなずれにより、最も近い軌跡ポイントの検索が失敗した場合に EMERGENCY への遷移を有効にするフラグ | true | -| `enable_slope_compensation` | bool | 勾配補正のための出力加速度を変更するフラグ。勾配角のソースはエゴの姿勢または軌道の角度から選択できます。 `use_trajectory_for_pitch_calculation` を参照してください。 | true | -| `enable_brake_keeping_before_stop` | bool | エゴが停止する前の DRIVE 状態中に特定の加速度を維持するフラグ。 [ブレーキの維持](#brake-keeping) を参照 | false | -| `enable_keep_stopped_until_steer_convergence` | bool | ステアが収束するまで停止状態を維持するフラグ | true | -| `max_acc` | double | 出力加速度の最大値 [m/s^2] | 3.0 | -| `min_acc` | double | 出力加速度の最小値 [m/s^2] | -5.0 | -| `max_jerk` | double | 出力加速度のジャークの最大値 [m/s^3] | 2.0 | -| `min_jerk` | double | 出力加速度のジャークの最小値 [m/s^3] | -5.0 | -| `use_trajectory_for_pitch_calculation` | bool | true の場合、勾配は軌跡の z レベルから推定されます。それ以外の場合は、エゴの姿勢のピッチ角が使用されます。 | false | -| `lpf_pitch_gain` | double | ピッチ推定用のローパスフィルターのゲイン | 0.95 | -| `max_pitch_rad` | double | 推定ピッチの最大値 [rad] | 0.1 | -| `min_pitch_rad` | double | 推定ピッチの最小値 [rad] | -0.1 | +| 名称 | 型 | 説明 | デフォルト値 | +| :-------------------------------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| `delay_compensation_time` | double | 縦制御の遅延 [s] | 0.17 | +| `enable_smooth_stop` | bool | STOPPING への遷移を有効にするフラグ | true | +| `enable_overshoot_emergency` | bool | `emergency_state_overshoot_stop_dist` で指定された距離でエゴが停止線を超えた場合に EMERGENCY への遷移を有効にするフラグ | true | +| `enable_large_tracking_error_emergency` | bool | 軌道とエゴの姿勢の大きなずれにより、最も近い軌跡ポイントの検索が失敗した場合に EMERGENCY への遷移を有効にするフラグ | true | +| `enable_slope_compensation` | bool | 勾配補正のための出力加速度を変更するフラグ。勾配角のソースはエゴの姿勢または軌道の角度から選択できます。 `use_trajectory_for_pitch_calculation` を参照してください。 | true | +| `enable_brake_keeping_before_stop` | bool | エゴが停止する前の DRIVE 状態中に特定の加速度を維持するフラグ。 [ブレーキの維持](#brake-keeping) を参照 | false | +| `enable_keep_stopped_until_steer_convergence` | bool | ステアが収束するまで停止状態を維持するフラグ | true | +| `max_acc` | double | 出力加速度の最大値 [m/s^2] | 3.0 | +| `min_acc` | double | 出力加速度の最小値 [m/s^2] | -5.0 | +| `max_jerk` | double | 出力加速度のジャークの最大値 [m/s^3] | 2.0 | +| `min_jerk` | double | 出力加速度のジャークの最小値 [m/s^3] | -5.0 | +| `use_trajectory_for_pitch_calculation` | bool | true の場合、勾配は軌跡の z レベルから推定されます。それ以外の場合は、エゴの姿勢のピッチ角が使用されます。 | false | +| `lpf_pitch_gain` | double | ピッチ推定用のローパスフィルターのゲイン | 0.95 | +| `max_pitch_rad` | double | 推定ピッチの最大値 [rad] | 0.1 | +| `min_pitch_rad` | double | 推定ピッチの最小値 [rad] | -0.1 | ### 状態遷移 -| 名称 | タイプ | 説明 | デフォルト値 | -| :---------------------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| drive_state_stop_dist | double | 停止位置までの距離が`drive_state_stop_dist` + `drive_state_offset_stop_dist` [m]を超えると、DRIVE状態に移行します。 | 0.5 | -| drive_state_offset_stop_dist | double | 停止位置までの距離が`drive_state_stop_dist` + `drive_state_offset_stop_dist` [m]を超えると、DRIVE状態に移行します。 | 1.0 | -| stopping_state_stop_dist | double | 停止位置までの距離が`stopping_state_stop_dist` [m]未満になるとSTOPPING状態に移行します。 | 0.5 | -| stopped_state_entry_vel | double | STOPPED状態への遷移時の自車速度のしきい値 [m/s] | 0.01 | -| stopped_state_entry_acc | double | STOPPED状態への遷移時の自車加速度のしきい値 [m/s^2] | 0.1 | -| emergency_state_overshoot_stop_dist | double | `enable_overshoot_emergency`が真の場合、自車が停止位置から`emergency_state_overshoot_stop_dist`メートル先にあるとEMERGENCY状態に移行します。 [m] | 1.5 | -| emergency_state_traj_trans_dev | double | 自車位置が最寄りの軌跡ポイントから`emergency_state_traj_tran_dev`メートル離れているとEMERGENCY状態に移行します。 [m] | 3.0 | -| emergency_state_traj_rot_dev | double | 自車の方位が最寄りの軌跡ポイントの方位から`emergency_state_traj_rot_dev`ラジアン離れているとEMERGENCY状態に移行します。 [rad] | 0.784 | +| 名称 | タイプ | 説明 | デフォルト値 | +| :---------------------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| drive_state_stop_dist | double | 停止位置までの距離が`drive_state_stop_dist` + `drive_state_offset_stop_dist` [m]を超えると、DRIVE状態に移行します。 | 0.5 | +| drive_state_offset_stop_dist | double | 停止位置までの距離が`drive_state_stop_dist` + `drive_state_offset_stop_dist` [m]を超えると、DRIVE状態に移行します。 | 1.0 | +| stopping_state_stop_dist | double | 停止位置までの距離が`stopping_state_stop_dist` [m]未満になるとSTOPPING状態に移行します。 | 0.5 | +| stopped_state_entry_vel | double | STOPPED状態への遷移時の自車速度のしきい値 [m/s] | 0.01 | +| stopped_state_entry_acc | double | STOPPED状態への遷移時の自車加速度のしきい値 [m/s^2] | 0.1 | +| emergency_state_overshoot_stop_dist | double | `enable_overshoot_emergency`が真の場合、自車が停止位置から`emergency_state_overshoot_stop_dist`メートル先にあるとEMERGENCY状態に移行します。 [m] | 1.5 | +| emergency_state_traj_trans_dev | double | 自車位置が最寄りの軌跡ポイントから`emergency_state_traj_tran_dev`メートル離れているとEMERGENCY状態に移行します。 [m] | 3.0 | +| emergency_state_traj_rot_dev | double | 自車の方位が最寄りの軌跡ポイントの方位から`emergency_state_traj_rot_dev`ラジアン離れているとEMERGENCY状態に移行します。 [rad] | 0.784 | ### DRIVE パラメータ -| 名称 | 型 | 説明 | デフォルト値 | -| :------------------------------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| kp | double | Longitudinal制御のPゲイン | 1.0 | -| ki | double | Longitudinal制御のIゲイン | 0.1 | -| kd | double | Longitudinal制御のDゲイン | 0.0 | -| max_out | double | DRIVE状態におけるPID出力加速度の最大値[m/s²] | 1.0 | -| min_out | double | DRIVE状態におけるPID出力加速度の最小値[m/s²] | -1.0 | -| max_p_effort | double | Pゲインにおける加速度の最大値 | 1.0 | -| min_p_effort | double | Pゲインにおける加速度の最小値 | -1.0 | -| max_i_effort | double | Iゲインにおける加速度の最大値 | 0.3 | -| min_i_effort | double | Iゲインにおける加速度の最小値 | -0.3 | -| max_d_effort | double | Dゲインにおける加速度の最大値 | 0.0 | -| min_d_effort | double | Dゲインにおける加速度の最小値 | 0.0 | -| lpf_vel_error_gain | double | 速度誤差のローパスフィルタのゲイン | 0.9 | -| enable_integration_at_low_speed | bool | 車両速度が`current_vel_threshold_pid_integration`未満の場合に、加速度誤差の積分を有効にするか否か | false | -| current_vel_threshold_pid_integration | double | 現在の速度の絶対値がこのパラメータより大きい場合にのみ、I項に対して速度誤差を積分します。 [m/s] | 0.5 | -| time_threshold_before_pid_integration | double | PID誤差の積分を有効にするまでに車両の無移動が経過する必要がある時間。 [s] | 5.0 | -| brake_keeping_acc | double | `enable_brake_keeping_before_stop`が真の場合、自我が停止する前にDRIVE状態中に特定の加速度が維持されます [m/s²] [ブレーキキープ](#brake-keeping)を参照 | 0.2 | +| 名称 | 型 | 説明 | デフォルト値 | +| :------------------------------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| kp | double | Longitudinal制御のPゲイン | 1.0 | +| ki | double | Longitudinal制御のIゲイン | 0.1 | +| kd | double | Longitudinal制御のDゲイン | 0.0 | +| max_out | double | DRIVE状態におけるPID出力加速度の最大値[m/s²] | 1.0 | +| min_out | double | DRIVE状態におけるPID出力加速度の最小値[m/s²] | -1.0 | +| max_p_effort | double | Pゲインにおける加速度の最大値 | 1.0 | +| min_p_effort | double | Pゲインにおける加速度の最小値 | -1.0 | +| max_i_effort | double | Iゲインにおける加速度の最大値 | 0.3 | +| min_i_effort | double | Iゲインにおける加速度の最小値 | -0.3 | +| max_d_effort | double | Dゲインにおける加速度の最大値 | 0.0 | +| min_d_effort | double | Dゲインにおける加速度の最小値 | 0.0 | +| lpf_vel_error_gain | double | 速度誤差のローパスフィルタのゲイン | 0.9 | +| enable_integration_at_low_speed | bool | 車両速度が`current_vel_threshold_pid_integration`未満の場合に、加速度誤差の積分を有効にするか否か | false | +| current_vel_threshold_pid_integration | double | 現在の速度の絶対値がこのパラメータより大きい場合にのみ、I項に対して速度誤差を積分します。 [m/s] | 0.5 | +| time_threshold_before_pid_integration | double | PID誤差の積分を有効にするまでに車両の無移動が経過する必要がある時間。 [s] | 5.0 | +| brake_keeping_acc | double | `enable_brake_keeping_before_stop`が真の場合、自我が停止する前にDRIVE状態中に特定の加速度が維持されます [m/s²] [ブレーキキープ](#brake-keeping)を参照 | 0.2 | ### STOPPING パラメーター(スムーズストップ) @@ -221,19 +222,19 @@ longitudinal_controllerは、フィードフォワード / フィードバック 車両がある一定時間停止しなかったり、停止位置を何メートルか超えた場合は、すぐに停止するための弱い加速度(`weak_stop_acc`)が生成されます。 車両がまだ走っている場合は、すぐに停止するための強い加速度(`strong_stop_acc`)が生成されます。 -| 名前 | タイプ | 説明 | デフォルト値 | -| :--------------------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------- | :------------ | -| smooth_stop_max_strong_acc | double | 最大強加速 [m/s^2] | -0.5 | -| smooth_stop_min_strong_acc | double | 最小強加速 [m/s^2] | -0.8 | -| smooth_stop_weak_acc | double | 弱加速 [m/s^2] | -0.3 | -| smooth_stop_weak_stop_acc | double | 弱停止加速 [m/s^2] | -0.8 | -| smooth_stop_strong_stop_acc | double | 自車が停止ポイントから `smooth_stop_strong_stop_dist` メートル離れたときに出力される強加速 [m/s^2] | -3.4 | -| smooth_stop_max_fast_vel | double | 自車が高速走行中とみなす、最大の高速限界速度 [m/s]。高速走行中とみなされると、強加速が出力されます。 | 0.5 | -| smooth_stop_min_running_vel | double | 自車が走行中とみなす、最低走行速度 [m/s] | 0.01 | -| smooth_stop_min_running_acc | double | 自車が走行中とみなす、最低走行加速度 [m/s^2] | 0.01 | -| smooth_stop_weak_stop_time | double | 弱加速を出力する最大時間 [s]。時間を超えると強加速が出力されます。 | 0.8 | -| smooth_stop_weak_stop_dist | double | 自車が停止ポイントから `smooth_stop_weak_stop_dist` メートルの距離にあるとき、弱加速が出力されます [m] | -0.3 | -| smooth_stop_strong_stop_dist | double | 自車が停止ポイントから `smooth_stop_strong_stop_dist` メートルの距離にあるとき、強加速が出力されます [m] | -0.5 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :--------------------------- | :----- | :------------------------------------------------------------------------------------------------------- | :----------- | +| smooth_stop_max_strong_acc | double | 最大強加速 [m/s^2] | -0.5 | +| smooth_stop_min_strong_acc | double | 最小強加速 [m/s^2] | -0.8 | +| smooth_stop_weak_acc | double | 弱加速 [m/s^2] | -0.3 | +| smooth_stop_weak_stop_acc | double | 弱停止加速 [m/s^2] | -0.8 | +| smooth_stop_strong_stop_acc | double | 自車が停止ポイントから `smooth_stop_strong_stop_dist` メートル離れたときに出力される強加速 [m/s^2] | -3.4 | +| smooth_stop_max_fast_vel | double | 自車が高速走行中とみなす、最大の高速限界速度 [m/s]。高速走行中とみなされると、強加速が出力されます。 | 0.5 | +| smooth_stop_min_running_vel | double | 自車が走行中とみなす、最低走行速度 [m/s] | 0.01 | +| smooth_stop_min_running_acc | double | 自車が走行中とみなす、最低走行加速度 [m/s^2] | 0.01 | +| smooth_stop_weak_stop_time | double | 弱加速を出力する最大時間 [s]。時間を超えると強加速が出力されます。 | 0.8 | +| smooth_stop_weak_stop_dist | double | 自車が停止ポイントから `smooth_stop_weak_stop_dist` メートルの距離にあるとき、弱加速が出力されます [m] | -0.3 | +| smooth_stop_strong_stop_dist | double | 自車が停止ポイントから `smooth_stop_strong_stop_dist` メートルの距離にあるとき、強加速が出力されます [m] | -0.5 | ### STOPPED パラメーター @@ -241,23 +242,22 @@ longitudinal_controllerは、フィードフォワード / フィードバック そのため、`stopped_acc` には、車両に最大のブレーキを適用することを可能にする値を設定する必要があります。 `stopped_acc` が十分に低いと、急勾配で滑落する可能性があります。 -| Name | Type | Description | Default value | -| :----------- | :----- | :----------------------------------------------------------------------------------- | :------------ | -| stopped_vel | double | STOPPED状態における目標速度 [m/s] | 0.0 | -| stopped_acc | double | STOPPED状態における目標加速度 [m/s^2] | -3.4 | -| stopped_jerk | double | STOPPED状態における目標ジャーク [m/s^3] | -5.0 | +| Name | Type | Description | Default value | +| :----------- | :----- | :-------------------------------------- | :------------ | +| stopped_vel | double | STOPPED状態における目標速度 [m/s] | 0.0 | +| stopped_acc | double | STOPPED状態における目標加速度 [m/s^2] | -3.4 | +| stopped_jerk | double | STOPPED状態における目標ジャーク [m/s^3] | -5.0 | ### EMERGENCYパラメータ -| 名称 | タイプ | 説明 | デフォルト値 | -| :------------- | :----- | :------------------------------------------------ | :------------ | -| emergency_vel | 倍精度浮動小数点 | EMERGENCY状態での目標速度 [m/s] | 0.0 | -| emergency_acc | 倍精度浮動小数点 | EMERGENCY状態での目標加速度 [m/s^2] | -5.0 | -| emergency_jerk | 倍精度浮動小数点 | EMERGENCY状態での目標ジャーク [m/s^3] | -3.0 | +| 名称 | タイプ | 説明 | デフォルト値 | +| :------------- | :--------------- | :------------------------------------ | :----------- | +| emergency_vel | 倍精度浮動小数点 | EMERGENCY状態での目標速度 [m/s] | 0.0 | +| emergency_acc | 倍精度浮動小数点 | EMERGENCY状態での目標加速度 [m/s^2] | -5.0 | +| emergency_jerk | 倍精度浮動小数点 | EMERGENCY状態での目標ジャーク [m/s^3] | -3.0 | ## 参考文献 / 外部リンク ## 今後の拡張 / 未実装の部分 ## 関連する課題 - diff --git a/control/autoware_pure_pursuit/README.md b/control/autoware_pure_pursuit/README.md index 3f5be1717fa6..157043674dfc 100644 --- a/control/autoware_pure_pursuit/README.md +++ b/control/autoware_pure_pursuit/README.md @@ -17,4 +17,3 @@ - LateralSyncData - ステアリングアングルの収束 - `autoware_planning_msgs/Trajectory`: 自車に対する予測パス - diff --git a/control/autoware_shift_decider/README.md b/control/autoware_shift_decider/README.md index c0aa422982d4..3cd3a217d776 100644 --- a/control/autoware_shift_decider/README.md +++ b/control/autoware_shift_decider/README.md @@ -8,7 +8,6 @@ ### フローチャート - ```plantuml @startuml skinparam monochrome true @@ -38,8 +37,8 @@ stop ### 入力 -| 名称 | タイプ | 説明 | -| --------------------- | ------------------------------------- | ---------------------------- | +| 名称 | タイプ | 説明 | +| --------------------- | ------------------------------------- | -------------------- | | `~/input/control_cmd` | `autoware_control_msgs::msg::Control` | 車両の制御コマンド。 | ### 出力 @@ -48,7 +47,7 @@ stop **更新履歴** -* 2023年3月15日: ドキュメントの初回公開 +- 2023年3月15日: ドキュメントの初回公開 **概要** @@ -58,20 +57,20 @@ stop Autoware のアーキテクチャはモジュール化されており、次のコンポーネントで構成されています。 -* **Perception (認識)**: カメラ、レーダー、LIDAR から受信したセンサーデータを処理し、自車位置と周囲環境のモデルを作成します。 -* **Planning (計画)**: 知覚された環境に基づいて、安全で効率的な経路を計画します。 -* **Control (制御)**: 計画された経路に従って車両を制御し、センサーデータとフィードバックを使用して適応します。 -* **Localization (自己位置推定)**: 車両の位置と姿勢をリアルタイムで追跡します。 +- **Perception (認識)**: カメラ、レーダー、LIDAR から受信したセンサーデータを処理し、自車位置と周囲環境のモデルを作成します。 +- **Planning (計画)**: 知覚された環境に基づいて、安全で効率的な経路を計画します。 +- **Control (制御)**: 計画された経路に従って車両を制御し、センサーデータとフィードバックを使用して適応します。 +- **Localization (自己位置推定)**: 車両の位置と姿勢をリアルタイムで追跡します。 **機能** Autoware は以下を含む幅広い機能を提供します。 -* **障害物検出と回避**: 歩行者、車両、その他の障害物を検出し、衝突を回避します。 -* **経路追従**: 計画された経路に沿って車両を正確に制御します。 -* **交通信号認識**: 交通信号を検出し、それらに従って動作します。 -* **駐車支援**: 車両の自動駐車を支援します。 -* **ビジョンベースの自己位置推定**: カメラ画像を使用して車両の位置と姿勢を推定します。 +- **障害物検出と回避**: 歩行者、車両、その他の障害物を検出し、衝突を回避します。 +- **経路追従**: 計画された経路に沿って車両を正確に制御します。 +- **交通信号認識**: 交通信号を検出し、それらに従って動作します。 +- **駐車支援**: 車両の自動駐車を支援します。 +- **ビジョンベースの自己位置推定**: カメラ画像を使用して車両の位置と姿勢を推定します。 **使用方法** @@ -84,17 +83,17 @@ Autoware を使用するには、次の手順に従います。 **注意事項** -* 自動運転システムは常に慎重に使用し、道路交通法を遵守する必要があります。 -* Autoware は開発中のソフトウェアであり、常に改善されています。 -* システムを十分にテストせずに使用しないでください。 +- 自動運転システムは常に慎重に使用し、道路交通法を遵守する必要があります。 +- Autoware は開発中のソフトウェアであり、常に改善されています。 +- システムを十分にテストせずに使用しないでください。 **免責事項** Autoware はオープンソースソフトウェアであり、いかなる保証もなしに提供されています。ユーザーは自己責任でこのソフトウェアを使用するものとします。 -| Name | Type | Description | -| -------------------- | -------------------------------------------- | ------------------------------------- | -| `~output/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | 前進 / 後退走行時のギア | +| Name | Type | Description | +| ------------------ | ----------------------------------------- | ----------------------- | +| `~output/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | 前進 / 後退走行時のギア | ## パラメータ @@ -103,4 +102,3 @@ Autoware はオープンソースソフトウェアであり、いかなる保 ## 仮定 / 制限事項 TBD - diff --git a/control/autoware_smart_mpc_trajectory_follower/README.md b/control/autoware_smart_mpc_trajectory_follower/README.md index 70eca571a892..4b13b25c2553 100644 --- a/control/autoware_smart_mpc_trajectory_follower/README.md +++ b/control/autoware_smart_mpc_trajectory_follower/README.md @@ -32,26 +32,24 @@ シミュレーションを実行するには、次のコマンドを実行します。 - ```bash ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit trajectory_follower_mode:=smart_mpc_trajectory_follower ``` [!NOTE] + > 名目モデルの[nominal_param.yaml](./autoware_smart_mpc_trajectory_follower/param/nominal_param.yaml)が設定されている場合は、[trained_model_param.yaml](./autoware_smart_mpc_trajectory_follower/param/trained_model_param.yaml)の`trained_model_parameter:control_application:use_trained_model`を`false`に設定してください。学習済みモデルを使用して実行するには、`trained_model_parameter:control_application:use_trained_model`を`true`に設定しますが、学習済みモデルは次の手順に従って生成する必要があります。 ### モデルの学習と制御への反映 学習データを収集するには、autowareを起動して、走行を行い、次のコマンドでrosbagデータを記録します。 - ```bash ros2 bag record /localization/kinematic_state /localization/acceleration /vehicle/status/steering_status /control/command/control_cmd /control/trajectory_follower/control_cmd /control/trajectory_follower/lane_departure_checker_node/debug/deviation/lateral /control/trajectory_follower/lane_departure_checker_node/debug/deviation/yaw /system/operation_mode/state /vehicle/status/control_mode /sensing/imu/imu_data /debug_mpc_x_des /debug_mpc_y_des /debug_mpc_v_des /debug_mpc_yaw_des /debug_mpc_acc_des /debug_mpc_steer_des /debug_mpc_X_des_converted /debug_mpc_x_current /debug_mpc_error_prediction /debug_mpc_max_trajectory_err /debug_mpc_emergency_stop_mode /debug_mpc_goal_stop_mode /debug_mpc_total_ctrl_time /debug_mpc_calc_u_opt_time ``` rosbagのディレクトリに[rosbag2.bash](./autoware_smart_mpc_trajectory_follower/training_and_data_check/rosbag2.bash)を移動させて、ディレクトリで下記コマンドを実行します - ```bash bash rosbag2.bash ``` @@ -64,7 +62,6 @@ rosbagデータをCSV形式に変換してモデルをトレーニングしま 代わりに、Python環境で次のコマンドを実行することで同様の結果を得ることができます。 - ```python from autoware_smart_mpc_trajectory_follower.training_and_data_check import train_drive_NN_model model_trainer = train_drive_NN_model.train_drive_NN_model() @@ -80,7 +77,6 @@ LSTM を使用すると、セル状態および隠れ状態は履歴時系列デ トレーニングと検証に使用される rosbag ディレクトリのパス (`dir_0`、`dir_1`、`dir_2`、`dir_val_0`、`dir_val_1`、`dir_val_2`...) と、モデルを保存するディレクトリ (`save_dir`) から、Python 環境で次のようにモデルを保存できます。 - ```python from autoware_smart_mpc_trajectory_follower.training_and_data_check import train_drive_NN_model model_trainer = train_drive_NN_model.train_drive_NN_model() @@ -100,7 +96,6 @@ model_trainer.save_models(save_dir) 多項式回帰の実行後は、次のとおり、NNを残差でトレーニングできます。 - ```python model_trainer.get_trained_model(use_polynomial_reg=True) ``` @@ -111,7 +106,6 @@ model_trainer.get_trained_model(use_polynomial_reg=True) NN モデルが使用されず、多項式回帰のみが実行される場合は、次のコマンドを実行します: - ```python model_trainer.get_trained_model(use_polynomial_reg=True,force_NN_model_to_zero=True) ``` @@ -123,7 +117,6 @@ model_trainer.get_trained_model(use_polynomial_reg=True,force_NN_model_to_zero=T ここではサンプル車両のホイールベースが2.79 mであるところ、コントローラ側に2.0 mという誤った値を入力した場合の適応性能の検証を例として示します。 コントローラに2.0 mのホイールベースを与えるため、[nominal_param.yaml](./autoware_smart_mpc_trajectory_follower/param/nominal_param.yaml)の`nominal_parameter:vehicle_info:wheel_base`の値を2.0に設定し、次のコマンドを実行します。 - ```bash python3 -m smart_mpc_trajectory_follower.clear_pycache ``` @@ -142,7 +135,6 @@ ROS バッグを記録し、ROS バッグを記録し、「モデルのトレー ここで取得したトレーニング済みモデルを使用して制御するには、`trained_model_parameter:control_application:use_trained_model` を `true` に設定し、同様に Autoware を起動し、同じルートで ROS バッグを記録しながら走行します。 走行が完了したら、「モデルのトレーニングと制御への反映」で説明した方法を使用して ROS バッグファイルを CSV 形式に変換します。`control/autoware_smart_mpc_trajectory_follower/autoware_smart_mpc_trajectory_follower/training_and_data_check/data_checker.ipynb` で `lateral_error_visualize` 関数を公称の ROS バッグファイル `rosbag_nominal` とトレーニング済み ROS バッグファイル `rosbag_trained` に対して実行すると、次のように横方向偏差のグラフを取得できます。 - ```python lateral_error_visualize(dir_name=rosbag_nominal,ylim=[-1.2,1.2]) lateral_error_visualize(dir_name=rosbag_trained,ylim=[-1.2,1.2]) @@ -165,14 +157,12 @@ lateral_error_visualize(dir_name=rosbag_trained,ylim=[-1.2,1.2]) } ``` - ```json { "wheel_base": 2.79 } ``` 次に、`control/autoware_smart_mpc_trajectory_follower/autoware_smart_mpc_trajectory_follower/python_simulator` に移動した後、以下のコマンドを実行してパイソンシミュレータ上でスラローム走行をノミナル制御を使用してテストします。 - ```bash python3 run_python_simulator.py nominal_test ``` @@ -191,7 +181,6 @@ python3 run_python_simulator.py nominal_test 得られたモデルに基づく8の字走行と運転を使用してトレーニングを実行するには、以下のコマンドを実行します。 - ```bash python3 run_python_simulator.py ``` @@ -217,19 +206,17 @@ python3 run_python_simulator.py まず、公称モデル設定の値をデフォルト値に戻すために、[nominal_param.yaml](./autoware_smart_mpc_trajectory_follower/param/nominal_param.yaml) の `nominal_parameter:vehicle_info:wheel_base` の値を 2.79 に設定して、次のコマンドを実行します。 - ```bash python3 -m smart_mpc_trajectory_follower.clear_pycache ``` 次に、`sim_setting.json` を次のように修正します: - ```json { "steer_time_delay": 1.01 } ``` - このように、`steer_time_delay` を 1.01 秒に設定して実験を実施します。 +このように、`steer_time_delay` を 1.01 秒に設定して実験を実施します。 公称モデルを使用した走行の結果は次のとおりです。 @@ -253,26 +240,25 @@ LSTM を含むモデルを使用したパフォーマンスは、含まないモ Python シミュレータに渡すことができるパラメータは次のとおりです。 -| パラメータ | 型 | 説明 | -| ------------------------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| steer_bias | 浮動 | ステアリングバイアス [rad] | -| steer_rate_lim | 浮動 | ステアリングレートの制限 [rad/s] | -| vel_rate_lim | 浮動 | 加速度制限 [m/s^2] | -| wheel_base | 浮動 | ホイールベース [m] |: -| steer_dead_band | 浮動 | ステアリングデッドバンド [rad] | -| adaptive_gear_ratio_coef | リスト[浮動] | タイヤ角からステアリングホイール角への速度依存ギア比に関する情報を指定する 6 個の長さを持つフローティングポイントのリスト | -| acc_time_delay | 浮動 | 加速度遅延時間 [s] | -| steer_time_delay | 浮動 | ステアリング遅延時間 [s] | -| acc_time_constant | 浮動 | 加速度時定数 [s] | -| steer_time_constant | 浮動 | ステアリング時定数 [s] | -| accel_map_scale | 浮動 | 加速度入力値から実際の加速度の実現への対応する歪みを拡大するパラメータ。
対応情報は `control/autoware_smart_mpc_trajectory_follower/autoware_smart_mpc_trajectory_follower/python_simulator/accel_map.csv` に格納されています。 | -| acc_scaling | 浮動 | 加速度スケーリング | -| steer_scaling | 浮動 | ステアリングスケーリング | -| vehicle_type | 整数 | 0 から 4 までの値を取ります。
各車両タイプについては以下で説明します。 | +| パラメータ | 型 | 説明 | +| ------------------------ | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | +| steer_bias | 浮動 | ステアリングバイアス [rad] | +| steer_rate_lim | 浮動 | ステアリングレートの制限 [rad/s] | +| vel_rate_lim | 浮動 | 加速度制限 [m/s^2] | +| wheel_base | 浮動 | ホイールベース [m] | : | +| steer_dead_band | 浮動 | ステアリングデッドバンド [rad] | +| adaptive_gear_ratio_coef | リスト[浮動] | タイヤ角からステアリングホイール角への速度依存ギア比に関する情報を指定する 6 個の長さを持つフローティングポイントのリスト | +| acc_time_delay | 浮動 | 加速度遅延時間 [s] | +| steer_time_delay | 浮動 | ステアリング遅延時間 [s] | +| acc_time_constant | 浮動 | 加速度時定数 [s] | +| steer_time_constant | 浮動 | ステアリング時定数 [s] | +| accel_map_scale | 浮動 | 加速度入力値から実際の加速度の実現への対応する歪みを拡大するパラメータ。
対応情報は `control/autoware_smart_mpc_trajectory_follower/autoware_smart_mpc_trajectory_follower/python_simulator/accel_map.csv` に格納されています。 | +| acc_scaling | 浮動 | 加速度スケーリング | +| steer_scaling | 浮動 | ステアリングスケーリング | +| vehicle_type | 整数 | 0 から 4 までの値を取ります。
各車両タイプについては以下で説明します。 | 例えば、シミュレーション側に0.01 [rad]のステア係数バイアスと0.001 [rad]のステアデッドバンドを与える場合は、`sim_setting.json`を次のように編集します。 - ```json { "steer_bias": 0.01, "steer_dead_band": 0.001 } ``` @@ -283,14 +269,14 @@ Python シミュレータに渡すことができるパラメータは次のと ## 自動運転ソフトウェアのパラメータ設定 -| パラメータ | 値 | -|---|---| -| ホイールベース | 2.79 | -| 加速度応答遅れ時間 | 0.1 | +| パラメータ | 値 | +| ------------------------ | ---- | +| ホイールベース | 2.79 | +| 加速度応答遅れ時間 | 0.1 | | ステアリング応答遅れ時間 | 0.27 | -| 加速度応答時間定数 | 0.1 | +| 加速度応答時間定数 | 0.1 | | ステアリング応答時間定数 | 0.24 | -| 加速度スケーリング | 1.0 | +| 加速度スケーリング | 1.0 | ##### vehicle_type_1 @@ -300,27 +286,27 @@ Python シミュレータに渡すことができるパラメータは次のと ### パラメータ -| パラメータ | 値 | -|---|---| -| ホイールベース | 4.76 | -| 加速度タイム遅延 | 1.0 | -| ステアリングタイム遅延 | 1.0 | -| 加速度タイム定数 | 1.0 | -| ステアリングタイム定数 | 1.0 | -| 加速度スケーリング | 0.2 | +| パラメータ | 値 | +| ---------------------- | ---- | +| ホイールベース | 4.76 | +| 加速度タイム遅延 | 1.0 | +| ステアリングタイム遅延 | 1.0 | +| 加速度タイム定数 | 1.0 | +| ステアリングタイム定数 | 1.0 | +| 加速度スケーリング | 0.2 | ##### vehicle_type_2 この車両タイプは、小型バスを想定しています。 -| パラメータ | 値 | -| ------------------- | ----- | -| ホイールベース | 4.76 | -| 加速度遅延時間 | 0.5 | -| 操舵遅延時間 | 0.5 | -| 加速度タイムコンスタント | 0.5 | -| 操舵タイムコンスタント | 0.5 | -| 加速度スケーリング | 0.5 | +| パラメータ | 値 | +| ------------------------ | ---- | +| ホイールベース | 4.76 | +| 加速度遅延時間 | 0.5 | +| 操舵遅延時間 | 0.5 | +| 加速度タイムコンスタント | 0.5 | +| 操舵タイムコンスタント | 0.5 | +| 加速度スケーリング | 0.5 | ##### vehicle_type_3 @@ -330,27 +316,27 @@ Python シミュレータに渡すことができるパラメータは次のと ### パラメータ -| パラメータ | 値 | -|---|---| -| ホイーベース | 1.335 | -| 加速度時間遅延 | 0.3 | -| 操舵時間遅延 | 0.3 | -| 加速度時間定数 | 0.3 | -| 操舵時間定数 | 0.3 | -| 加速度スケーリング | 1.5 | +| パラメータ | 値 | +| ------------------ | ----- | +| ホイーベース | 1.335 | +| 加速度時間遅延 | 0.3 | +| 操舵時間遅延 | 0.3 | +| 加速度時間定数 | 0.3 | +| 操舵時間定数 | 0.3 | +| 加速度スケーリング | 1.5 | ##### vehicle_type_4 この車両タイプは小型ロボット向けです。 -| パラメータ | 値 | -| ------------------- | ---- | -| ホイールベース | 0.395 | -| 加速遅延時間 | 0.2 | -| ステアリング遅延時間 | 0.2 | -| 加速時間定数 | 0.2 | +| パラメータ | 値 | +| -------------------- | ----- | +| ホイールベース | 0.395 | +| 加速遅延時間 | 0.2 | +| ステアリング遅延時間 | 0.2 | +| 加速時間定数 | 0.2 | | ステアリング時間定数 | 0.2 | -| 加速度スケーリング | 1.0 | +| 加速度スケーリング | 1.0 | #### Pythonシミュレーターでの自動テスト @@ -358,7 +344,6 @@ Python シミュレータに渡すことができるパラメータは次のと [run_sim.py](./autoware_smart_mpc_trajectory_follower/python_simulator/run_sim.py)で設定されたパラメータ変更範囲内で走行実験を実行するには、`control/autoware_smart_mpc_trajectory_follower/autoware_smart_mpc_trajectory_follower/python_simulator`に移動し、次のコマンドを実行します。 - ```bash python3 run_sim.py --param_name steer_bias ``` @@ -367,7 +352,6 @@ python3 run_sim.py --param_name steer_bias 一度に制限値以外のすべてのパラメーターのテストを実行するには、次のコマンドを実行します: - ```bash python3 run_auto_test.py ``` @@ -384,15 +368,14 @@ Auto_testの実行結果を`auto_test`ディレクトリに保存しています `run_sim.py`で次のパラメータを設定できます。 -| パラメータ | 型 | 説明 | -| ------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| USE_TRAINED_MODEL_DIFF | bool | トレーニングされたモデルの導関数が制御に反映されるか? | -| DATA_COLLECTION_MODE | DataCollectionMode | どの方式でトレーニングデータを収集するか
"DataCollectionMode.ff": フィードフォワード入力で直線走行
"DataCollectionMode.pp": ピュアパーシュート制御で8の字走行
"DataCollectionMode.mpc": mpcでスラローム走行 | -| USE_POLYNOMIAL_REGRESSION | bool | NNの前に多項式回帰を実行するか? | -| USE_SELECTED_POLYNOMIAL | bool | USE_POLYNOMIAL_REGRESSIONがTrueの場合、あらかじめ選択された多項式のみを使用して多項式回帰を実行する。
多項式の選択は、車両の公称モデルに基づくいくつかパラメータのシフトを吸収できるように意図されている。 +| パラメータ | 型 | 説明 | +| ------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| USE_TRAINED_MODEL_DIFF | bool | トレーニングされたモデルの導関数が制御に反映されるか? | +| DATA_COLLECTION_MODE | DataCollectionMode | どの方式でトレーニングデータを収集するか
"DataCollectionMode.ff": フィードフォワード入力で直線走行
"DataCollectionMode.pp": ピュアパーシュート制御で8の字走行
"DataCollectionMode.mpc": mpcでスラローム走行 | +| USE_POLYNOMIAL_REGRESSION | bool | NNの前に多項式回帰を実行するか? | +| USE_SELECTED_POLYNOMIAL | bool | USE_POLYNOMIAL_REGRESSIONがTrueの場合、あらかじめ選択された多項式のみを使用して多項式回帰を実行する。
多項式の選択は、車両の公称モデルに基づくいくつかパラメータのシフトを吸収できるように意図されている。 | -> [!注意] -> `run_sim.py` を実行すると、`run_sim.py` で設定された `use_trained_model_diff` が [trained_model_param.yaml](./autoware_smart_mpc_trajectory_follower/param/trained_model_param.yaml) で設定された `trained_model_parameter:control_application:use_trained_model_diff` より優先されます。 +> [!注意] > `run_sim.py` を実行すると、`run_sim.py` で設定された `use_trained_model_diff` が [trained_model_param.yaml](./autoware_smart_mpc_trajectory_follower/param/trained_model_param.yaml) で設定された `trained_model_parameter:control_application:use_trained_model_diff` より優先されます。 #### Pure Pursuit の走行データのカーネル密度推定 @@ -404,31 +387,30 @@ Pure Pursuit 走行から取得したデータの分布は、カーネル密度 車両モデルの公称パラメータは、[nominal_param.yaml](./autoware_smart_mpc_trajectory_follower/param/nominal_param.yaml) ファイルを編集することで変更できます。 公称パラメータを変更した後、次のコマンドを実行してキャッシュを削除する必要があります。 + ```bash rm ~/.cache/autoware/autoware_smart_mpc_trajectory_follower/params/ ``` - ```bash python3 -m smart_mpc_trajectory_follower.clear_pycache ``` **通常パラメータは次のとおりです。** -| パラメータ | 型 | 説明 | -| ------------------------------------------------ | ----- | -------------------------------------- | -| nominal_parameter:vehicle_info:wheel_base | float | ホイールベース [m] | -| nominal_parameter:acceleration:acc_time_delay | float | 加速度タイム遅延 [s] | -| nominal_parameter:acceleration:acc_time_constant | float | 加速度タイム定数 [s] | -| nominal_parameter:steering:steer_time_delay | float | ステアリングタイム遅延 [s] | -| nominal_parameter:steering:steer_time_constant | float | ステアリングタイム定数 [s] | +| パラメータ | 型 | 説明 | +| ------------------------------------------------ | ----- | -------------------------- | +| nominal_parameter:vehicle_info:wheel_base | float | ホイールベース [m] | +| nominal_parameter:acceleration:acc_time_delay | float | 加速度タイム遅延 [s] | +| nominal_parameter:acceleration:acc_time_constant | float | 加速度タイム定数 [s] | +| nominal_parameter:steering:steer_time_delay | float | ステアリングタイム遅延 [s] | +| nominal_parameter:steering:steer_time_constant | float | ステアリングタイム定数 [s] | ## コントロールパラメータの変更と再読み込み 制御パラメータは、ファイル[mpc_param.yaml](./autoware_smart_mpc_trajectory_follower/param/mpc_param.yaml)と[trained_model_param.yaml](./autoware_smart_mpc_trajectory_follower/param/trained_model_param.yaml)を変更することで変更できます。 パラメータの変更はAutowareを再起動することで反映できますが、次のコマンドを使用することでAutowareを実行中のまま反映できます。 - ```bash ros2 topic pub /pympc_reload_mpc_param_trigger std_msgs/msg/String "data: ''" --once ``` @@ -437,36 +419,35 @@ ros2 topic pub /pympc_reload_mpc_param_trigger std_msgs/msg/String "data: ''" -- ### `mpc_param.yaml` -| パラメータ | 型 | 説明 | -| ----------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| mpc_parameter:system:mode | str | 制御モード
"ilqr": iLQRモード
"mppi": MPPIモード
"mppi_ilqr": iLQRの初期値はMPPIソリューションによって与えられる | +| パラメータ | 型 | 説明 | +| ------------------------------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| mpc_parameter:system:mode | str | 制御モード
"ilqr": iLQRモード
"mppi": MPPIモード
"mppi_ilqr": iLQRの初期値はMPPIソリューションによって与えられる | | mpc_parameter:cost_parameters:Q | list[float] | 状態のステージコスト
長さ8のリスト、順に: 直線偏差、横方向偏差、速度偏差、偏航角偏差、加速度偏差、ステア偏差、加速度入力偏差、ステア入力偏差のコスト重み | -| mpc_parameter:cost_parameters:Q_c | list[float] | 状態の次のtiming_Q_cに相当するhorizon内のコスト
リストの構成要素の対応はQの場合と同じ | -| mpc_parameter:cost_parameters:Q_f | list[float] | 状態の終端コスト
リストの構成要素の対応はQの場合と同じ | -| mpc_parameter:cost_parameters:R | list[float] | 長さ2のリスト、R[0]は加速度入力値の変化率のコストの重み、R[1]はステア入力値の変化率のコストの重み | -| mpc_parameter:mpc_setting:timing_Q_c | list[int] | 状態のステージコストがQ_cに設定されるhorizon番号 | -| mpc_parameter:compensation:acc_fb_decay | float | MPC外部のコンペンセータの観測された加速度値と予測加速度値の間の誤差を積分する際の減哀係数 | -| mpc_parameter:compensation:acc_fb_gain | float | 加速度補償のゲイン | -| mpc_parameter:compensation:max_error_acc | float | 最大加速度補償 (m/s^2) | -| mpc_parameter:compensation:steer_fb_decay | float | MPC外部のコンペンセータにおける観測ステアリング値と予測ステアリング値の間の誤差を積分する際の減衰係数 | -| mpc_parameter:compensation:steer_fb_gain | float | ステアリング補償のゲイン | -| mpc_parameter:compensation:max_error_steer | float | 最大ステアリング補償 (rad) | +| mpc_parameter:cost_parameters:Q_c | list[float] | 状態の次のtiming_Q_cに相当するhorizon内のコスト
リストの構成要素の対応はQの場合と同じ | +| mpc_parameter:cost_parameters:Q_f | list[float] | 状態の終端コスト
リストの構成要素の対応はQの場合と同じ | +| mpc_parameter:cost_parameters:R | list[float] | 長さ2のリスト、R[0]は加速度入力値の変化率のコストの重み、R[1]はステア入力値の変化率のコストの重み | +| mpc_parameter:mpc_setting:timing_Q_c | list[int] | 状態のステージコストがQ_cに設定されるhorizon番号 | +| mpc_parameter:compensation:acc_fb_decay | float | MPC外部のコンペンセータの観測された加速度値と予測加速度値の間の誤差を積分する際の減哀係数 | +| mpc_parameter:compensation:acc_fb_gain | float | 加速度補償のゲイン | +| mpc_parameter:compensation:max_error_acc | float | 最大加速度補償 (m/s^2) | +| mpc_parameter:compensation:steer_fb_decay | float | MPC外部のコンペンセータにおける観測ステアリング値と予測ステアリング値の間の誤差を積分する際の減衰係数 | +| mpc_parameter:compensation:steer_fb_gain | float | ステアリング補償のゲイン | +| mpc_parameter:compensation:max_error_steer | float | 最大ステアリング補償 (rad) | ### `trained_model_param.yaml` -| パラメータ | 型 | 説明 | -| ------------------------------------------------------------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| trained_model_parameter:control_application:use_trained_model | bool | 学習済みモデルが制御に反映されるかどうかを示します。 | +| パラメータ | 型 | 説明 | +| ------------------------------------------------------------------- | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| trained_model_parameter:control_application:use_trained_model | bool | 学習済みモデルが制御に反映されるかどうかを示します。 | | trained_model_parameter:control_application:use_trained_model_diff | bool | 学習済みモデルの微分値が制御に反映されるかどうかを示します。
use_trained_modelがTrueの場合にのみ意味があり、Falseの場合は、運動の方程式の微分には公称モデルが使用され、学習済みモデルは予測にのみ使用されます。 | -| trained_model_parameter:memory_for_training:use_memory_for_training | bool | 学習のためにLSTMを含むモデルを使用するかどうかを示します。 | -| trained_model_parameter:memory_for_training:use_memory_diff | bool | LSTMの前時点でのセル状態および隠れ状態に対する微分が制御に反映されるかどうかを示します。 | +| trained_model_parameter:memory_for_training:use_memory_for_training | bool | 学習のためにLSTMを含むモデルを使用するかどうかを示します。 | +| trained_model_parameter:memory_for_training:use_memory_diff | bool | LSTMの前時点でのセル状態および隠れ状態に対する微分が制御に反映されるかどうかを示します。 | ## 減速停止モードの解除要求 予測軌跡がターゲット軌跡から大きく逸脱した場合、システムは減速停止モードに入り、車両は停止します。 減速停止モードをキャンセルして車両を走行可能にするには、次のコマンドを実行します。 - ```bash ros2 topic pub /pympc_stop_mode_reset_request std_msgs/msg/String "data: ''" --once ``` @@ -480,4 +461,3 @@ ros2 topic pub /pympc_stop_mode_reset_request std_msgs/msg/String "data: ''" --o - ゴール付近の停止動作では、制御が別の簡単な制御則に切り替わります。結果として、停止動作はゴール付近を除いて機能しない場合があります。加速度マップが大幅にシフトしている場合も停止は困難です。 - `vehicle_type_1` のように大型バス向けに想定されているように、ダイナミクスが公称モデルから大きく逸脱している場合、うまく制御できない可能性があります。 - diff --git a/control/autoware_trajectory_follower_base/README.md b/control/autoware_trajectory_follower_base/README.md index 6508e2bc0286..c609e5b62be2 100644 --- a/control/autoware_trajectory_follower_base/README.md +++ b/control/autoware_trajectory_follower_base/README.md @@ -51,4 +51,3 @@ ## 関連する問題 - diff --git a/control/autoware_trajectory_follower_node/README.md b/control/autoware_trajectory_follower_node/README.md index 15a547193a22..98464b5f8df9 100644 --- a/control/autoware_trajectory_follower_node/README.md +++ b/control/autoware_trajectory_follower_node/README.md @@ -10,7 +10,6 @@ デフォルトでは、次の `Controller` クラスのコントローラインスタンスが使用されます。 - ```plantuml @startuml package autoware_trajectory_follower_base { @@ -93,7 +92,6 @@ InputData ..> Controller `Controller` クラスのプロセスフローは次のとおりです。 - ```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); @@ -158,4 +156,3 @@ control_cmd_pub_->publish(out); [PlotJuggler](https://github.com/facontidavide/PlotJuggler) の設定ファイルが `config` フォルダに用意されており、読み込むとデバッグに役立つ情報を自動的に購読して視覚化できます。 さらに、予測された MPC 経路が `output/lateral/predicted_trajectory` トピックに発行され、Rviz で視覚化できます。 - diff --git a/control/autoware_vehicle_cmd_gate/README.md b/control/autoware_vehicle_cmd_gate/README.md index 8fbe47fefae1..c9fc498e253e 100644 --- a/control/autoware_vehicle_cmd_gate/README.md +++ b/control/autoware_vehicle_cmd_gate/README.md @@ -8,24 +8,24 @@ ### 入力 -| 名前 | タイプ | 説明 | -| --------------------------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------- | -| `~/input/steering` | `autoware_vehicle_msgs::msg::SteeringReport` | ステアリング状態 | -| `~/input/auto/control_cmd` | `autoware_control_msgs::msg::Control` | Planningモジュールからの横方向・縦方向速度コマンド | -| `~/input/auto/turn_indicators_cmd` | `autoware_vehicle_msgs::msg::TurnIndicatorsCommand` | Planningモジュールからのターンインジケータコマンド | -| `~/input/auto/hazard_lights_cmd` | `autoware_vehicle_msgs::msg::HazardLightsCommand` | Planningモジュールからのハザードランプコマンド | -| `~/input/auto/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | Planningモジュールからのギアコマンド | -| `~/input/external/control_cmd` | `autoware_control_msgs::msg::Control` | 外部からの横方向・縦方向速度コマンド | -| `~/input/external/turn_indicators_cmd` | `autoware_vehicle_msgs::msg::TurnIndicatorsCommand` | 外部からのターンインジケータコマンド | -| `~/input/external/hazard_lights_cmd` | `autoware_vehicle_msgs::msg::HazardLightsCommand` | 外部からのハザードランプコマンド | -| `~/input/external/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | 外部からのギアコマンド | -| `~/input/external_emergency_stop_heartbeat` | `tier4_external_api_msgs::msg::Heartbeat` | ハートビート | -| `~/input/gate_mode` | `tier4_control_msgs::msg::GateMode` | ゲートモード (AUTO または EXTERNAL) | -| `~/input/emergency/control_cmd` | `autoware_control_msgs::msg::Control` | エマージェンシーハンドラからの横方向・縦方向速度コマンド | -| `~/input/emergency/hazard_lights_cmd` | `autoware_vehicle_msgs::msg::HazardLightsCommand` | エマージェンシーハンドラからのハザードランプコマンド | -| `~/input/emergency/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | エマージェンシーハンドラからのギアコマンド | -| `~/input/engage` | `autoware_vehicle_msgs::msg::Engage` | エンゲージ信号 | -| `~/input/operation_mode` | `autoware_adapi_v1_msgs::msg::OperationModeState` | Autowareの動作モード | +| 名前 | タイプ | 説明 | +| ------------------------------------------- | --------------------------------------------------- | -------------------------------------------------------- | +| `~/input/steering` | `autoware_vehicle_msgs::msg::SteeringReport` | ステアリング状態 | +| `~/input/auto/control_cmd` | `autoware_control_msgs::msg::Control` | Planningモジュールからの横方向・縦方向速度コマンド | +| `~/input/auto/turn_indicators_cmd` | `autoware_vehicle_msgs::msg::TurnIndicatorsCommand` | Planningモジュールからのターンインジケータコマンド | +| `~/input/auto/hazard_lights_cmd` | `autoware_vehicle_msgs::msg::HazardLightsCommand` | Planningモジュールからのハザードランプコマンド | +| `~/input/auto/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | Planningモジュールからのギアコマンド | +| `~/input/external/control_cmd` | `autoware_control_msgs::msg::Control` | 外部からの横方向・縦方向速度コマンド | +| `~/input/external/turn_indicators_cmd` | `autoware_vehicle_msgs::msg::TurnIndicatorsCommand` | 外部からのターンインジケータコマンド | +| `~/input/external/hazard_lights_cmd` | `autoware_vehicle_msgs::msg::HazardLightsCommand` | 外部からのハザードランプコマンド | +| `~/input/external/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | 外部からのギアコマンド | +| `~/input/external_emergency_stop_heartbeat` | `tier4_external_api_msgs::msg::Heartbeat` | ハートビート | +| `~/input/gate_mode` | `tier4_control_msgs::msg::GateMode` | ゲートモード (AUTO または EXTERNAL) | +| `~/input/emergency/control_cmd` | `autoware_control_msgs::msg::Control` | エマージェンシーハンドラからの横方向・縦方向速度コマンド | +| `~/input/emergency/hazard_lights_cmd` | `autoware_vehicle_msgs::msg::HazardLightsCommand` | エマージェンシーハンドラからのハザードランプコマンド | +| `~/input/emergency/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | エマージェンシーハンドラからのギアコマンド | +| `~/input/engage` | `autoware_vehicle_msgs::msg::Engage` | エンゲージ信号 | +| `~/input/operation_mode` | `autoware_adapi_v1_msgs::msg::OperationModeState` | Autowareの動作モード | ### 出力 @@ -107,44 +107,44 @@ Autowareは、オープンソースの自動運転ソフトウェアプラットフォームです。主要な機能として上記で説明したコンポーネントを提供します。詳細については、Autowareのドキュメントを参照してください。 -| 名前 | 型 | 説明 | -| -------------------------------------- | --------------------------------------------------- | -------------------------------------------------------- | -| `~/output/vehicle_cmd_emergency` | `tier4_vehicle_msgs::msg::VehicleEmergencyStamped` | コマンド内の緊急状態 | -| `~/output/command/control_cmd` | `autoware_control_msgs::msg::Control` | 車両への横方向および縦方向速度コマンド | -| `~/output/command/turn_indicators_cmd` | `autoware_vehicle_msgs::msg::TurnIndicatorsCommand` | 車両へのターンインジケータコマンド | -| `~/output/command/hazard_lights_cmd` | `autoware_vehicle_msgs::msg::HazardLightsCommand` | 車両へのハザードランプコマンド | -| `~/output/command/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | 車両へのギアコマンド | -| `~/output/gate_mode` | `tier4_control_msgs::msg::GateMode` | ゲートモード(AUTOまたはEXTERNAL) | -| `~/output/engage` | `autoware_vehicle_msgs::msg::Engage` | エンゲージ信号 | -| `~/output/external_emergency` | `tier4_external_api_msgs::msg::Emergency` | 外部緊急信号 | -| `~/output/operation_mode` | `tier4_system_msgs::msg::OperationMode` | `vehicle_cmd_gate`の現在の動作モード | +| 名前 | 型 | 説明 | +| -------------------------------------- | --------------------------------------------------- | -------------------------------------- | +| `~/output/vehicle_cmd_emergency` | `tier4_vehicle_msgs::msg::VehicleEmergencyStamped` | コマンド内の緊急状態 | +| `~/output/command/control_cmd` | `autoware_control_msgs::msg::Control` | 車両への横方向および縦方向速度コマンド | +| `~/output/command/turn_indicators_cmd` | `autoware_vehicle_msgs::msg::TurnIndicatorsCommand` | 車両へのターンインジケータコマンド | +| `~/output/command/hazard_lights_cmd` | `autoware_vehicle_msgs::msg::HazardLightsCommand` | 車両へのハザードランプコマンド | +| `~/output/command/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | 車両へのギアコマンド | +| `~/output/gate_mode` | `tier4_control_msgs::msg::GateMode` | ゲートモード(AUTOまたはEXTERNAL) | +| `~/output/engage` | `autoware_vehicle_msgs::msg::Engage` | エンゲージ信号 | +| `~/output/external_emergency` | `tier4_external_api_msgs::msg::Emergency` | 外部緊急信号 | +| `~/output/operation_mode` | `tier4_system_msgs::msg::OperationMode` | `vehicle_cmd_gate`の現在の動作モード | ## パラメータ -| パラメータ | 型 | 説明 | -| ------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `update_period` | double | 更新周期 | -| `use_emergency_handling` | bool | エマージェンシーハンドラ使用時はtrue | -| `check_external_emergency_heartbeat` | bool | エマージェンシーストップのハートビートを確認する場合true | -| `system_emergency_heartbeat_timeout` | double | システムエマージェンシーのタイムアウト | -| `external_emergency_stop_heartbeat_timeout` | double | 外部エマージェンシーのタイムアウト | -| `filter_activated_count_threshold` | int | フィルタアクティベーションのしきい値 | -| `filter_activated_velocity_threshold` | double | フィルタアクティベーションの速度しきい値 | -| `stop_hold_acceleration` | double | 車両が停止する場合の縦断加速度コマンド | -| `emergency_acceleration` | double | 車両がエマージェンシーで停止する場合の縦断加速度コマンド | -| `moderate_stop_service_acceleration` | double | 車両がモデレートストップサービスで停止する場合の縦断加速度コマンド | -| `nominal.vel_lim` | double | 縦断速度の制限(自律運転モードでアクティブ化) | -| `nominal.reference_speed_point` | | コントロールコマンドの制限の計算時に参照速度点として使用される速度点(自律運転モードでアクティブ化)。この配列のサイズは制限配列のサイズと同じにする必要があります。 | -| `nominal.lon_acc_lim` | | 縦断加速度の限界値の配列(自律運転モードでアクティブ化) | -| `nominal.lon_jerk_lim` | | 縦断ジャークの限界値の配列(自律運転モードでアクティブ化) | -| `nominal.lat_acc_lim` | | 横断加速度の限界値の配列(自律運転モードでアクティブ化) | -| `nominal.lat_jerk_lim` | | 横断ジャークの限界値の配列(自律運転モードでアクティブ化) | -| `on_transition.vel_lim` | double | 縦断速度の制限(トランジションモードでアクティブ化) | +| パラメータ | 型 | 説明 | +| ------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `update_period` | double | 更新周期 | +| `use_emergency_handling` | bool | エマージェンシーハンドラ使用時はtrue | +| `check_external_emergency_heartbeat` | bool | エマージェンシーストップのハートビートを確認する場合true | +| `system_emergency_heartbeat_timeout` | double | システムエマージェンシーのタイムアウト | +| `external_emergency_stop_heartbeat_timeout` | double | 外部エマージェンシーのタイムアウト | +| `filter_activated_count_threshold` | int | フィルタアクティベーションのしきい値 | +| `filter_activated_velocity_threshold` | double | フィルタアクティベーションの速度しきい値 | +| `stop_hold_acceleration` | double | 車両が停止する場合の縦断加速度コマンド | +| `emergency_acceleration` | double | 車両がエマージェンシーで停止する場合の縦断加速度コマンド | +| `moderate_stop_service_acceleration` | double | 車両がモデレートストップサービスで停止する場合の縦断加速度コマンド | +| `nominal.vel_lim` | double | 縦断速度の制限(自律運転モードでアクティブ化) | +| `nominal.reference_speed_point` | | コントロールコマンドの制限の計算時に参照速度点として使用される速度点(自律運転モードでアクティブ化)。この配列のサイズは制限配列のサイズと同じにする必要があります。 | +| `nominal.lon_acc_lim` | | 縦断加速度の限界値の配列(自律運転モードでアクティブ化) | +| `nominal.lon_jerk_lim` | | 縦断ジャークの限界値の配列(自律運転モードでアクティブ化) | +| `nominal.lat_acc_lim` | | 横断加速度の限界値の配列(自律運転モードでアクティブ化) | +| `nominal.lat_jerk_lim` | | 横断ジャークの限界値の配列(自律運転モードでアクティブ化) | +| `on_transition.vel_lim` | double | 縦断速度の制限(トランジションモードでアクティブ化) | | `on_transition.reference_speed_point` | | コントロールコマンドの制限の計算時に参照速度点として使用される速度点(トランジションモードでアクティブ化)。この配列のサイズは制限配列のサイズと同じにする必要があります。 | -| `on_transition.lon_acc_lim` | | 縦断加速度の限界値の配列(トランジションモードでアクティブ化) | -| `on_transition.lon_jerk_lim` | | 縦断ジャークの限界値の配列(トランジションモードでアクティブ化) | -| `on_transition.lat_acc_lim` | | 横断加速度の限界値の配列(トランジションモードでアクティブ化) | -| `on_transition.lat_jerk_lim` | | 横断ジャークの限界値の配列(トランジションモードでアクティブ化) | +| `on_transition.lon_acc_lim` | | 縦断加速度の限界値の配列(トランジションモードでアクティブ化) | +| `on_transition.lon_jerk_lim` | | 縦断ジャークの限界値の配列(トランジションモードでアクティブ化) | +| `on_transition.lat_acc_lim` | | 横断加速度の限界値の配列(トランジションモードでアクティブ化) | +| `on_transition.lat_jerk_lim` | | 横断ジャークの限界値の配列(トランジションモードでアクティブ化) | ## フィルタ機能 @@ -171,4 +171,3 @@ Autowareは、オープンソースの自動運転ソフトウェアプラット 出力コマンドのトピック: `turn_indicators_cmd`, `hazard_light` および `gear_cmd` は `gate_mode` に基づいて選択されます。 ただし、コマンドの継続性を確保するために、モードが変更された場合でも、新しい入力コマンドのトピックが届くまでこれらのコマンドは変更されません。 - diff --git a/control/control_performance_analysis/README.md b/control/control_performance_analysis/README.md index d73209fcdeb9..11a83d9da48e 100644 --- a/control/control_performance_analysis/README.md +++ b/control/control_performance_analysis/README.md @@ -25,82 +25,81 @@ ### 入力トピック -| 名前 | タイプ | 説明 | -| ------------------------------------ | --------------------------------------- | --------------------------------------- | -| `/planning/scenario_planning/trajectory` | `autoware_planning_msgs::msg::Trajectory` | Planningモジュールからの出力軌道 | -| `/control/command/control_cmd` | `autoware_control_msgs::msg::Control` | Controlモジュールからの出力制御コマンド | -| `/vehicle/status/steering_status` | `autoware_vehicle_msgs::msg::SteeringReport` | 車両からのステアリング情報 | -| `/localization/kinematic_state` | `nav_msgs::msg::Odometry` | オドメトリからツイストを使用 | -| `/tf` | `tf2_msgs::msg::TFMessage` | TFから自車位置を抽出 | +| 名前 | タイプ | 説明 | +| ---------------------------------------- | -------------------------------------------- | --------------------------------------- | +| `/planning/scenario_planning/trajectory` | `autoware_planning_msgs::msg::Trajectory` | Planningモジュールからの出力軌道 | +| `/control/command/control_cmd` | `autoware_control_msgs::msg::Control` | Controlモジュールからの出力制御コマンド | +| `/vehicle/status/steering_status` | `autoware_vehicle_msgs::msg::SteeringReport` | 車両からのステアリング情報 | +| `/localization/kinematic_state` | `nav_msgs::msg::Odometry` | オドメトリからツイストを使用 | +| `/tf` | `tf2_msgs::msg::TFMessage` | TFから自車位置を抽出 | ## 出力トピック **AutowareのAPIバージョン:** 1.16.0-rc0 -| トピック | データタイプ | 説明 | -|---|---|---| -| `/vehicle/localization/current_pose` | `geometry_msgs/PoseStamped` | 自車位置の現在の推定値。このトピックにパブリッシュされるデータは、誤差を軽減するために、センサーデータから後処理やフィルタリングを経て得られたものです。 | -| `/trajectory/planning/lane_waypoints` | `autoware_planning_msgs/Lane` | 計画されたパス内のウェイポイントを格納します。| -| `/trajectory/planning/lattice_waypoints` | `autoware_planning_msgs/Lattice` | 速度と横方向位置(逸脱量)の組み合わせに対する、計画されたパスのウェイポイントを格納します。| -| `/trajectory/planning/optimized_trajectory` | `autoware_planning_msgs/OptimizedTrajectory` | 経路最適化モジュールによって最適化された経路のウェイポイントを格納します。| -| `/planning/planning_flag` | `autoware_planning_msgs/PlanningFlag` | 計画状態に関するフラグを格納します。0:停止、1:フォロー、2:計画中です。| -| `/planning/velocity_plan` | `autoware_planning_msgs/VelocityPlan` | 速度計画モジュールによって計算された車速と加速度の値を格納します。| -| `/control_command` | `autoware_msgs/ControlCommandStamped` | 制御モジュールへ送信される、モーターとステアリングの制御コマンドを格納します。| -| `/localization/odometry` | `nav_msgs/Odometry` | オドメトリ情報。| -| `/localization/estimation` | `geometry_msgs/PoseWithCovarianceStamped` | オドメトリ推定値。| -| `/velodyne_points` | `sensor_msgs/PointCloud2` | Velodyneセンサーからの点群。| -| `/image/front_camera/image_raw` | `sensor_msgs/Image` | フロントカメラからの生の画像データ。| -| `/image/rear_camera/image_raw` | `sensor_msgs/Image` | リアカメラからの生の画像データ。| - -| 名称 | タイプ | 説明 | +| トピック | データタイプ | 説明 | +| ------------------------------------------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `/vehicle/localization/current_pose` | `geometry_msgs/PoseStamped` | 自車位置の現在の推定値。このトピックにパブリッシュされるデータは、誤差を軽減するために、センサーデータから後処理やフィルタリングを経て得られたものです。 | +| `/trajectory/planning/lane_waypoints` | `autoware_planning_msgs/Lane` | 計画されたパス内のウェイポイントを格納します。 | +| `/trajectory/planning/lattice_waypoints` | `autoware_planning_msgs/Lattice` | 速度と横方向位置(逸脱量)の組み合わせに対する、計画されたパスのウェイポイントを格納します。 | +| `/trajectory/planning/optimized_trajectory` | `autoware_planning_msgs/OptimizedTrajectory` | 経路最適化モジュールによって最適化された経路のウェイポイントを格納します。 | +| `/planning/planning_flag` | `autoware_planning_msgs/PlanningFlag` | 計画状態に関するフラグを格納します。0:停止、1:フォロー、2:計画中です。 | +| `/planning/velocity_plan` | `autoware_planning_msgs/VelocityPlan` | 速度計画モジュールによって計算された車速と加速度の値を格納します。 | +| `/control_command` | `autoware_msgs/ControlCommandStamped` | 制御モジュールへ送信される、モーターとステアリングの制御コマンドを格納します。 | +| `/localization/odometry` | `nav_msgs/Odometry` | オドメトリ情報。 | +| `/localization/estimation` | `geometry_msgs/PoseWithCovarianceStamped` | オドメトリ推定値。 | +| `/velodyne_points` | `sensor_msgs/PointCloud2` | Velodyneセンサーからの点群。 | +| `/image/front_camera/image_raw` | `sensor_msgs/Image` | フロントカメラからの生の画像データ。 | +| `/image/rear_camera/image_raw` | `sensor_msgs/Image` | リアカメラからの生の画像データ。 | + +| 名称 | タイプ | 説明 | | --------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------- | -| `/control_performance/performance_vars` | control_performance_analysis::msg::ErrorStamped | パフォーマンス解析の結果 | +| `/control_performance/performance_vars` | control_performance_analysis::msg::ErrorStamped | パフォーマンス解析の結果 | | `/control_performance/driving_status` | control_performance_analysis::msg::DrivingMonitorStamped | 走行ステータス(加速度、ジャークなど)のモニタリング | ### 出力 #### control_performance_analysis::msg::DrivingMonitorStamped -| 名称 | タイプ | 説明 | -| ---------------------------- | ----- | ---------------------------------------------------------- | -| `longitudinal_acceleration` | float | [m/s^2] | -| `longitudinal_jerk` | float | [m/s^3] | -| `lateral_acceleration` | float | [m/s^2] | -| `lateral_jerk` | float | [m/s^3] | -| `desired_steering_angle` | float | [rad] | -| `controller_processing_time` | float | 2つの制御コマンドメッセージ間のタイムスタンプ [ms] | +| 名称 | タイプ | 説明 | +| ---------------------------- | ------ | -------------------------------------------------- | +| `longitudinal_acceleration` | float | [m/s^2] | +| `longitudinal_jerk` | float | [m/s^3] | +| `lateral_acceleration` | float | [m/s^2] | +| `lateral_jerk` | float | [m/s^3] | +| `desired_steering_angle` | float | [rad] | +| `controller_processing_time` | float | 2つの制御コマンドメッセージ間のタイムスタンプ [ms] | #### control_performance_analysis::msg::ErrorStamped - -| 名称 | タイプ | 説明 | -| ------------------------------------------ | ----- | ----------------------------------------------------------------------------------------------------------------- | -| `lateral_error` | float | [m] | -| `lateral_error_velocity` | float | [m/s] | -| `lateral_error_acceleration` | float | [m/s^2] | -| `longitudinal_error` | float | [m] | -| `longitudinal_error_velocity` | float | [m/s] | -| `longitudinal_error_acceleration` | float | [m/s^2] | -| `heading_error` | float | [rad] | -| `heading_error_velocity` | float | [rad/s] | -| `control_effort_energy` | float | [u * R * u^T] | -| `error_energy` | float | lateral_error^2 + heading_error^2 | -| `value_approximation` | float | V = xPx' ; 自車位置に基づく状態空間のパフォーマンス指数を近似した値 | -| `curvature_estimate` | float | [1/m] | -| `curvature_estimate_pp` | float | [1/m] | -| `vehicle_velocity_error` | float | [m/s] | -| `tracking_curvature_discontinuity_ability` | float | 曲率変化を追従する能力を測定 [`abs(delta(curvature)) / (1 + abs(delta(lateral_error))`] | +| 名称 | タイプ | 説明 | +| ------------------------------------------ | ------ | --------------------------------------------------------------------------------------- | +| `lateral_error` | float | [m] | +| `lateral_error_velocity` | float | [m/s] | +| `lateral_error_acceleration` | float | [m/s^2] | +| `longitudinal_error` | float | [m] | +| `longitudinal_error_velocity` | float | [m/s] | +| `longitudinal_error_acceleration` | float | [m/s^2] | +| `heading_error` | float | [rad] | +| `heading_error_velocity` | float | [rad/s] | +| `control_effort_energy` | float | [u * R * u^T] | +| `error_energy` | float | lateral_error^2 + heading_error^2 | +| `value_approximation` | float | V = xPx' ; 自車位置に基づく状態空間のパフォーマンス指数を近似した値 | +| `curvature_estimate` | float | [1/m] | +| `curvature_estimate_pp` | float | [1/m] | +| `vehicle_velocity_error` | float | [m/s] | +| `tracking_curvature_discontinuity_ability` | float | 曲率変化を追従する能力を測定 [`abs(delta(curvature)) / (1 + abs(delta(lateral_error))`] | ## パラメータ -| 名称 | 型 | 説明 | -| --------------------------------------- | ---------------- | --------------------------------------------------------------------- | -| `curvature_interval_length` | double | current curvature 推定に使用 | -| `prevent_zero_division_value` | double | ゼロ除算を回避するための値(デフォルトは `0.001`) | -| `odom_interval` | unsigned integer | odom メッセージ間のインターバル(より滑らかな曲線には大きくする) | -| `acceptable_max_distance_to_waypoint` | double | 軌道ポイントと車両の最大距離 [m] | -| `acceptable_max_yaw_difference_rad` | double | 軌道ポイントと車両の最大ヨー角差 [rad] | -| `low_pass_filter_gain` | double | ローパスフィルタのゲイン | +| 名称 | 型 | 説明 | +| ------------------------------------- | ---------------- | ----------------------------------------------------------------- | +| `curvature_interval_length` | double | current curvature 推定に使用 | +| `prevent_zero_division_value` | double | ゼロ除算を回避するための値(デフォルトは `0.001`) | +| `odom_interval` | unsigned integer | odom メッセージ間のインターバル(より滑らかな曲線には大きくする) | +| `acceptable_max_distance_to_waypoint` | double | 軌道ポイントと車両の最大距離 [m] | +| `acceptable_max_yaw_difference_rad` | double | 軌道ポイントと車両の最大ヨー角差 [rad] | +| `low_pass_filter_gain` | double | ローパスフィルタのゲイン | ## 操作方法 @@ -119,4 +118,3 @@ ## 今後の改善 - カットオフ周波数、微分方程式、離散状態空間の更新を使用して LPF を実装します。 - diff --git a/control/predicted_path_checker/README.md b/control/predicted_path_checker/README.md index f76127047e8c..cc2886a4755d 100644 --- a/control/predicted_path_checker/README.md +++ b/control/predicted_path_checker/README.md @@ -34,14 +34,14 @@ Predicted Path Checkerパッケージは、自律車両が制御モジュール ## 入力 -| 名 | 型 | 説明 | -| ------------------------------------- | ------------------------------------------------ | --------------------------------------------------- | -| `~/input/reference_trajectory` | `autoware_planning_msgs::msg::Trajectory` | リファレンストライジェクチャリ | -| `~/input/predicted_trajectory` | `autoware_planning_msgs::msg::Trajectory` | 予測されたトランスジェクチャリ | -| `~/input/objects` | `autoware_perception_msgs::msg::PredictedObject` | 環境における動的オブジェクト | +| 名 | 型 | 説明 | +| ------------------------------------- | ------------------------------------------------ | ---------------------------------------------- | +| `~/input/reference_trajectory` | `autoware_planning_msgs::msg::Trajectory` | リファレンストライジェクチャリ | +| `~/input/predicted_trajectory` | `autoware_planning_msgs::msg::Trajectory` | 予測されたトランスジェクチャリ | +| `~/input/objects` | `autoware_perception_msgs::msg::PredictedObject` | 環境における動的オブジェクト | | `~/input/odometry` | `nav_msgs::msg::Odometry` | 自車の速度を取得するためのオドメトリメッセージ | -| `~/input/current_accel` | `geometry_msgs::msg::AccelWithCovarianceStamped` | 現在の加速度 | -| `/control/vehicle_cmd_gate/is_paused` | `tier4_control_msgs::msg::IsPaused` | 車両の現在の停止状態 | +| `~/input/current_accel` | `geometry_msgs::msg::AccelWithCovarianceStamped` | 現在の加速度 | +| `/control/vehicle_cmd_gate/is_paused` | `tier4_control_msgs::msg::IsPaused` | 車両の現在の停止状態 | ## 出力 @@ -63,39 +63,38 @@ Predicted Path Checkerパッケージは、自律車両が制御モジュール - `post resampling`における経路可視化の改善 - 自車位置のより正確な表現 -| 名称 | 型 | 説明 | -| ------------------------------------ | ---------------------------------------- | ---------------------------------------- | -| `~/debug/marker` | `visualization_msgs::msg::MarkerArray` | 可視化用マーカー | -| `~/debug/virtual_wall` | `visualization_msgs::msg::MarkerArray` | 可視化用の仮想の壁のマーカー | -| `/control/vehicle_cmd_gate/set_pause` | `tier4_control_msgs::srv::SetPause` | 車両を停止させるための停止サービス | -| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticStatus` | 車両の診断状況 | +| 名称 | 型 | 説明 | +| ------------------------------------- | ---------------------------------------- | ---------------------------------- | +| `~/debug/marker` | `visualization_msgs::msg::MarkerArray` | 可視化用マーカー | +| `~/debug/virtual_wall` | `visualization_msgs::msg::MarkerArray` | 可視化用の仮想の壁のマーカー | +| `/control/vehicle_cmd_gate/set_pause` | `tier4_control_msgs::srv::SetPause` | 車両を停止させるための停止サービス | +| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticStatus` | 車両の診断状況 | ## パラメータ ### ノードパラメータ -| 名称 | 型 | 説明 | デフォルト値 | -| :---------------------------------- | :------- | :-------------------------------------------------------------------- | :------------ | -| `update_rate` | `倍精度浮動小数点` | 更新レート [Hz] | 10.0 | -| `delay_time` | `倍精度浮動小数点` | 緊急対応で考慮される時間遅延 [s] | 0.17 | -| `max_deceleration` | `倍精度浮動小数点` | 自動運転車両が停止するための最大減速度 [m/s^2] | 1.5 | -| `resample_interval` | `倍精度浮動小数点` | 軌道の再サンプリング間隔 [m] | 0.5 | -| `stop_margin` | `倍精度浮動小数点` | 停止マージン [m] | 0.5 | -| `ego_nearest_dist_threshold` | `倍精度浮動小数点` | 自動運転車両の最近接距離閾値 [m] | 3.0 | -| `ego_nearest_yaw_threshold` | `倍精度浮動小数点` | 自動運転車両の最近接ヨー角閾値 [rad] | 1.046 | -| `min_trajectory_check_length` | `倍精度浮動小数点` | メートル単位での最短軌道チェックの長さ [m] | 1.5 | -| `trajectory_check_time` | `倍精度浮動小数点` | 軌道チェック時間 [s] | 3.0 | -| `distinct_point_distance_threshold` | `倍精度浮動小数点` | 異なる点の距離閾値 [m] | 0.3 | -| `distinct_point_yaw_threshold` | `倍精度浮動小数点` | 異なる点のヨー角閾値 [deg] | 5.0 | -| `filtering_distance_threshold` | `倍精度浮動小数点` | 距離がこの値より大きい場合、オブジェクトを無視します [m] | 1.5 | -| `use_object_prediction` | `ブーリアン` | Trueの場合、ノードはデルタ時間に関連してオブジェクトの自車位置を予測します [-] | true | +| 名称 | 型 | 説明 | デフォルト値 | +| :---------------------------------- | :----------------- | :----------------------------------------------------------------------------- | :----------- | +| `update_rate` | `倍精度浮動小数点` | 更新レート [Hz] | 10.0 | +| `delay_time` | `倍精度浮動小数点` | 緊急対応で考慮される時間遅延 [s] | 0.17 | +| `max_deceleration` | `倍精度浮動小数点` | 自動運転車両が停止するための最大減速度 [m/s^2] | 1.5 | +| `resample_interval` | `倍精度浮動小数点` | 軌道の再サンプリング間隔 [m] | 0.5 | +| `stop_margin` | `倍精度浮動小数点` | 停止マージン [m] | 0.5 | +| `ego_nearest_dist_threshold` | `倍精度浮動小数点` | 自動運転車両の最近接距離閾値 [m] | 3.0 | +| `ego_nearest_yaw_threshold` | `倍精度浮動小数点` | 自動運転車両の最近接ヨー角閾値 [rad] | 1.046 | +| `min_trajectory_check_length` | `倍精度浮動小数点` | メートル単位での最短軌道チェックの長さ [m] | 1.5 | +| `trajectory_check_time` | `倍精度浮動小数点` | 軌道チェック時間 [s] | 3.0 | +| `distinct_point_distance_threshold` | `倍精度浮動小数点` | 異なる点の距離閾値 [m] | 0.3 | +| `distinct_point_yaw_threshold` | `倍精度浮動小数点` | 異なる点のヨー角閾値 [deg] | 5.0 | +| `filtering_distance_threshold` | `倍精度浮動小数点` | 距離がこの値より大きい場合、オブジェクトを無視します [m] | 1.5 | +| `use_object_prediction` | `ブーリアン` | Trueの場合、ノードはデルタ時間に関連してオブジェクトの自車位置を予測します [-] | true | ### 衝突チェッカーパラメータ -| 名称 | 型 | 説明 | デフォルト値 | -| :--------------------------------- | :------- | :---------------------------------------------------------------- | :------------ | -| `width_margin` | `double` | 衝突検査における幅マージン [Hz] | 0.2 | -| `chattering_threshold` | `double` | 衝突検出におけるチャタリングしきい値 [s] | 0.2 | -| `z_axis_filtering_buffer` | `double` | Z軸フィルタリングバッファ [m] | 0.3 | -| `enable_z_axis_obstacle_filtering` | `bool` | Z軸障害物フィルタリングが有効かどうかを示すフラグ | false | - +| 名称 | 型 | 説明 | デフォルト値 | +| :--------------------------------- | :------- | :------------------------------------------------ | :----------- | +| `width_margin` | `double` | 衝突検査における幅マージン [Hz] | 0.2 | +| `chattering_threshold` | `double` | 衝突検出におけるチャタリングしきい値 [s] | 0.2 | +| `z_axis_filtering_buffer` | `double` | Z軸フィルタリングバッファ [m] | 0.3 | +| `enable_z_axis_obstacle_filtering` | `bool` | Z軸障害物フィルタリングが有効かどうかを示すフラグ | false | diff --git a/evaluator/autoware_control_evaluator/README.md b/evaluator/autoware_control_evaluator/README.md index 6e0d0dd48c3f..905b88064d76 100644 --- a/evaluator/autoware_control_evaluator/README.md +++ b/evaluator/autoware_control_evaluator/README.md @@ -15,4 +15,3 @@ 制御評価器モジュールは、自車の運動学的および位置に関する情報を絶えず公開します。経路弧補正座標の縦方向 `s` と横方向 `t` を使用して、現在の自車レーン ID を公開します。また、現在の自車の速度、加速度、ジャークを診断メッセージで公開します。 この情報は、他のノードが ROSbag を使用した自動評価を実行するために使用できます。自車位置と運動学的情報を評価された制御モジュールの出力と照合することで、ROSbag 再現の特定の興味深いポイントにおいて評価された制御モジュールが適切に対応したかどうかを判断できます。 - diff --git a/evaluator/autoware_evaluator_utils/README.md b/evaluator/autoware_evaluator_utils/README.md index 16e202b58bd0..b13c2568177d 100644 --- a/evaluator/autoware_evaluator_utils/README.md +++ b/evaluator/autoware_evaluator_utils/README.md @@ -3,4 +3,3 @@ ## 目的 このパッケージは、他のエバリュエータパッケージ向けのユーティリティ関数を提供します。 - diff --git a/evaluator/autoware_planning_evaluator/README.md b/evaluator/autoware_planning_evaluator/README.md index 5dc7cc745607..886a4d66bea0 100644 --- a/evaluator/autoware_planning_evaluator/README.md +++ b/evaluator/autoware_planning_evaluator/README.md @@ -26,7 +26,6 @@ `MetricsCalculator` は、以下の関数を呼び出すことでメトリクス統計を計算します。 - ```C++ Stat MetricsCalculator::calculate(const Metric metric, const Trajectory & traj) const; ``` @@ -35,7 +34,7 @@ Stat MetricsCalculator::calculate(const Metric metric, const Trajectory - `metrics/metric.hpp`: `M` を `enum`、文字列変換マップ、説明マップに追加します。 - `metrics_calculator.cpp`: `calculate` 関数の `switch/case` ステートメントに `M` を追加します。 -- `selected_metrics` パラメータに `M` を追加します。 +- `selected_metrics` パラメータに `M` を追加します。 ## 入出力 @@ -43,17 +42,17 @@ Stat MetricsCalculator::calculate(const Metric metric, const Trajectory **自動運転ソフトウェア ドキュメント(日本語訳)** -| 名前 | 型 | 説明 | -|---|---|---| -| `~/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 評価するメインのPlanning | -| `~/input/reference_trajectory` | `autoware_planning_msgs::msg::Trajectory` | 逸脱量の測定に使用する基準Planning | -| `~/input/objects` | `autoware_perception_msgs::msg::PredictedObjects` | 障害物 | +| 名前 | 型 | 説明 | +| ------------------------------ | ------------------------------------------------- | ---------------------------------- | +| `~/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 評価するメインのPlanning | +| `~/input/reference_trajectory` | `autoware_planning_msgs::msg::Trajectory` | 逸脱量の測定に使用する基準Planning | +| `~/input/objects` | `autoware_perception_msgs::msg::PredictedObjects` | 障害物 | ### 出力 各メトリックは、メトリック名にちなんだトピックで公開されます。 -| 名称 | 種別 | 説明 | +| 名称 | 種別 | 説明 | | ----------- | --------------------------------------- | ----------------------------------------------------- | | `~/metrics` | `diagnostic_msgs::msg::DiagnosticArray` | メトリックごとのDiagnosticStatusを持つDiagnosticArray | @@ -77,4 +76,3 @@ Stat MetricsCalculator::calculate(const Metric metric, const Trajectory - `motion_evaluator_node`。 - エゴの実際の動作から時間の経過に伴ってトラジェクトリを構築するノード。 - 現在実装されているのは概念実証のみです。 - diff --git a/evaluator/diagnostic_converter/README.md b/evaluator/diagnostic_converter/README.md index 8b0053213e3b..1b14bd879d80 100644 --- a/evaluator/diagnostic_converter/README.md +++ b/evaluator/diagnostic_converter/README.md @@ -39,8 +39,8 @@ ## パラメータ -| 名前 | 型 | 説明 | -| :------------------ | :--------------- | :------------------------------------------------------------ | +| 名前 | 型 | 説明 | +| :------------------ | :------------- | :-------------------------------------------------------- | | `diagnostic_topics` | 文字列のリスト | UserDefinedValueに変換するDiagnosticArrayトピックのリスト | ## 想定 / 既知の制限 @@ -48,4 +48,3 @@ `DiagnosticStatus` の `KeyValue` オブジェクト内の値は、`double` 型であると想定されています。 ## 将来の拡張 / 未実装部分 - diff --git a/evaluator/kinematic_evaluator/README.md b/evaluator/kinematic_evaluator/README.md index e99a7ab2cbc4..f02f6be2155a 100644 --- a/evaluator/kinematic_evaluator/README.md +++ b/evaluator/kinematic_evaluator/README.md @@ -5,4 +5,3 @@ TBD ## パラメータ {{json_to_markdown("evaluator/kinematic_evaluator/schema/kinematic_evaluator.schema.json")}} - diff --git a/evaluator/localization_evaluator/README.md b/evaluator/localization_evaluator/README.md index ec00e67ac6a1..50d26005c87d 100644 --- a/evaluator/localization_evaluator/README.md +++ b/evaluator/localization_evaluator/README.md @@ -5,4 +5,3 @@ ## パラメーター {{ json_to_markdown("evaluator/localization_evaluator/schema/localization_evaluator.schema.json", "ja") }} - diff --git a/evaluator/perception_online_evaluator/README.md b/evaluator/perception_online_evaluator/README.md index 2e4372d1c0b9..30481bd4102e 100644 --- a/evaluator/perception_online_evaluator/README.md +++ b/evaluator/perception_online_evaluator/README.md @@ -23,8 +23,7 @@ 過去のオブジェクトの予測経路と実際の移動経路を比較して、**移動中のオブジェクト**の逸脱量を算出します。各オブジェクトについて、予測経路のポイントと実際の経路の対応するポイント間の平均距離を、指定された時間ステップまで計算します。言い換えると、平均変位誤差(ADE)を計算します。評価対象のオブジェクトは $T_N$ 秒前のオブジェクトで、$T_N$ は予測時間幅 $[T_1, T_2, ..., T_N]$ の最大値です。 -> [!NOTE] -> $T_N$ 秒前のオブジェクトは、すべてのメトリクスで対象オブジェクトです。これは、メトリクス全体で対象オブジェクトの時間を統一するためです。 +> [!NOTE] > $T_N$ 秒前のオブジェクトは、すべてのメトリクスで対象オブジェクトです。これは、メトリクス全体で対象オブジェクトの時間を統一するためです。 ![path_deviation_each_object](./images/path_deviation_each_object.drawio.svg) @@ -55,9 +54,10 @@ ADE_{min} = min(ADE_j) \end{align} $$ -Var_{max} = max(Var_j) \\ -Var_{min} = min(Var_j) +Var*{max} = max(Var_j) \\ +Var*{min} = min(Var_j) \end{align} + $$ - $n_{objects}$: オブジェクト数 @@ -107,10 +107,13 @@ $$ 指定された検出範囲内の各クラスの一意のオブジェクトの数をカウントします。全オブジェクトカウントは次のように計算されます。 + $$ + \begin{align} -\text{全オブジェクトカウント (クラス、範囲)} & = \left| \bigcup_{t=0}^{T_{\text{now}}} \{ \text{uuid} \mid \text{class}(t, \text{uuid}) = C \wedge \text{position}(t, \text{uuid}) \in R \} \right| +\text{全オブジェクトカウント (クラス、範囲)} & = \left| \bigcup*{t=0}^{T*{\text{now}}} \{ \text{uuid} \mid \text{class}(t, \text{uuid}) = C \wedge \text{position}(t, \text{uuid}) \in R \} \right| \end{align} + $$ ここで、 @@ -124,10 +127,13 @@ $$ 指定された検出範囲内の各クラスのオブジェクトの平均数をカウントします。この指標は、uuid を考慮せずに 1 フレームで検出されたオブジェクトの数を測定します。平均オブジェクト数は次のように計算されます。 + $$ + \begin{align} -\text{平均オブジェクト数(クラス、範囲)} = \frac{1}{N} \sum_{t=0}^{T_{\text{now}}} \left| \{ \text{object} \mid \text{class}(t, \text{object}) = C \wedge \text{position}(t, \text{object}) \in R \} \right| +\text{平均オブジェクト数(クラス、範囲)} = \frac{1}{N} \sum*{t=0}^{T*{\text{now}}} \left| \{ \text{object} \mid \text{class}(t, \text{object}) = C \wedge \text{position}(t, \text{object}) \in R \} \right| \end{align} + $$ ここで、 @@ -139,10 +145,13 @@ $$ 最後の `objects_count_window_seconds` において、指定された検出範囲内の各クラスのオブジェクトの平均数をカウントします。この指標は、uuid を考慮せずに 1 フレームで検出されたオブジェクトの数を測定します。区間オブジェクト数は次のように計算されます。 + $$ + \begin{align} -\text{区間オブジェクト数(クラス、範囲)} = \frac{1}{W} \sum_{t=T_{\text{now}} - T_W}^{T_{\text{now}}} \left| \{ \text{object} \mid \text{class}(t, \text{object}) = C \wedge \text{position}(t, \text{object}) \in R \} \right| +\text{区間オブジェクト数(クラス、範囲)} = \frac{1}{W} \sum*{t=T*{\text{now}} - T*W}^{T*{\text{now}}} \left| \{ \text{object} \mid \text{class}(t, \text{object}) = C \wedge \text{position}(t, \text{object}) \in R \} \right| \end{align} + $$ ここで、 @@ -190,4 +199,4 @@ $$ - オブジェクトの分割に対するメトリクス - 通常は静止しているが移動するオブジェクトに対するメトリクス - 消滅したオブジェクトのメトリクス - +$$ diff --git a/launch/tier4_autoware_api_launch/README.md b/launch/tier4_autoware_api_launch/README.md index 8200943511c4..6fbf6ae17985 100644 --- a/launch/tier4_autoware_api_launch/README.md +++ b/launch/tier4_autoware_api_launch/README.md @@ -12,7 +12,6 @@ `autoware_api.launch.xml`を使用するには、以下のように`*.launch.xml`に含めることができます。 - ```xml ``` @@ -20,4 +19,3 @@ ## 注意 処理負荷を軽減するため、ROS 2 の [Component](https://docs.ros.org/en/galactic/Concepts/About-Composition.html) 機能(ROS 1 の Nodelet に類似)を使用しています。 - diff --git a/launch/tier4_control_launch/README.md b/launch/tier4_control_launch/README.md index 74cdde685fd7..0607b57368e0 100644 --- a/launch/tier4_control_launch/README.md +++ b/launch/tier4_control_launch/README.md @@ -14,7 +14,6 @@ `PACKAGE_param_path` としてパラメータパスを設定する必要があります。設定するパラメータパスのリストは `planning.launch.xml` の先頭に記載されています。 - ```xml @@ -29,4 +28,3 @@ ## 注釈 処理負荷を削減するため、ROS 2における[Component](https://docs.ros.org/en/galactic/Concepts/About-Composition.html)の機能(ROS 1におけるNodeletに類似)を使用します。 - diff --git a/launch/tier4_localization_launch/README.md b/launch/tier4_localization_launch/README.md index a864823d36ee..21a78f2687ab 100644 --- a/launch/tier4_localization_launch/README.md +++ b/launch/tier4_localization_launch/README.md @@ -16,7 +16,6 @@ さらに、`PACKAGE_param_path`としてパラメータのパスを提供する必要があります。提供する必要のあるパラメータパスのリストは、`localization.launch.xml`の先頭に記載されています。 - ```xml @@ -29,4 +28,3 @@ ... ``` - diff --git a/launch/tier4_map_launch/README.md b/launch/tier4_map_launch/README.md index 872e5f5f050e..310cac8182db 100644 --- a/launch/tier4_map_launch/README.md +++ b/launch/tier4_map_launch/README.md @@ -14,7 +14,6 @@ `PACKAGE_param_path` としてパラメータパスを提供する必要があることに注意してください。提供する必要があるパラメータパスのリストは、`map.launch.xml` の最上部に記載されています。 - ```xml @@ -34,4 +33,3 @@ ## 注釈 処理負荷を軽減するために、ROS 2 の [Component](https://docs.ros.org/en/galactic/Concepts/About-Composition.html) 機能を使用しています(ROS 1 の Nodelet と同様)。 - diff --git a/launch/tier4_perception_launch/README.md b/launch/tier4_perception_launch/README.md index a2826996bbc9..5dc43c36e2a6 100644 --- a/launch/tier4_perception_launch/README.md +++ b/launch/tier4_perception_launch/README.md @@ -14,7 +14,6 @@ パラメータパスを `PACKAGE_param_path` として指定する必要があることに注意してください。指定する必要のあるパラメータパスのリストは、`perception.launch.xml` の先頭部に記載されています。 - ```xml @@ -26,4 +25,3 @@ ... ``` - diff --git a/launch/tier4_planning_launch/README.md b/launch/tier4_planning_launch/README.md index 0e709db504f4..2103820ceef3 100644 --- a/launch/tier4_planning_launch/README.md +++ b/launch/tier4_planning_launch/README.md @@ -12,7 +12,6 @@ パラメータのパスを`PACKAGE_param_path`として指定する必要があることに注意してください。指定する必要のあるパラメータのパスは`planning.launch.xml`の先頭で記載されています。 - ```xml @@ -21,4 +20,3 @@ ... ``` - diff --git a/launch/tier4_sensing_launch/README.md b/launch/tier4_sensing_launch/README.md index 91b6091b7274..92c142578a7d 100644 --- a/launch/tier4_sensing_launch/README.md +++ b/launch/tier4_sensing_launch/README.md @@ -12,7 +12,6 @@ `sensing.launch.xml` を使用するには、`*.launch.xml` に以下のように含めることができます。 - ```xml @@ -26,7 +25,6 @@ このパッケージは、`launch`で指定されたセンサーモデルのセンサー設定を見つけます。 - ```bash launch/ ├── aip_x1 # Sensor model name @@ -44,8 +42,6 @@ launch/ 例) - ```xml ``` - diff --git a/launch/tier4_simulator_launch/README.md b/launch/tier4_simulator_launch/README.md index 32b6385163e6..513c20ff0e9c 100644 --- a/launch/tier4_simulator_launch/README.md +++ b/launch/tier4_simulator_launch/README.md @@ -10,7 +10,6 @@ ## 使用方法 - ```xml @@ -18,5 +17,4 @@ ``` -simple\_planning\_simulator で使用されるシミュレータ モデルは、パッケージ "`VEHICLE\_MODEL`\_description" の "config/simulator\_model.param.yaml" からロードされています。 - +simple_planning_simulator で使用されるシミュレータ モデルは、パッケージ "`VEHICLE\_MODEL`\_description" の "config/simulator_model.param.yaml" からロードされています。 diff --git a/launch/tier4_system_launch/README.md b/launch/tier4_system_launch/README.md index f16293607907..82f7e546663d 100644 --- a/launch/tier4_system_launch/README.md +++ b/launch/tier4_system_launch/README.md @@ -12,7 +12,6 @@ パラメータパスを `PACKAGE_param_path` として指定する必要があります。必要となるパラメータパスのリストは `system.launch.xml` の先頭に記述されています。 - ```xml @@ -24,4 +23,3 @@ ... ``` - diff --git a/launch/tier4_vehicle_launch/README.md b/launch/tier4_vehicle_launch/README.md index 9453c5118a7d..66248633ede6 100644 --- a/launch/tier4_vehicle_launch/README.md +++ b/launch/tier4_vehicle_launch/README.md @@ -12,7 +12,6 @@ `*.launch.xml` に次のように含めることで、`vehicle.launch.xml` を使用できます。 - ```xml @@ -29,12 +28,10 @@ 例) - ```xml ``` - ```xml ``` @@ -43,16 +40,15 @@ ### 引数 -| 名称 | タイプ | 説明 | デフォルト | -| ------------- | ------ | ------------------ | ------- | -| sensor_model | 文字列 | センサーモデル名 | 空文字 | -| vehicle_model | 文字列 | 車両モデル名 | 空文字 | +| 名称 | タイプ | 説明 | デフォルト | +| ------------- | ------ | ---------------- | ---------- | +| sensor_model | 文字列 | センサーモデル名 | 空文字 | +| vehicle_model | 文字列 | 車両モデル名 | 空文字 | ### 使用方法 `*.launch.xml`に次のように記述できます。 - ```xml @@ -63,4 +59,3 @@ ``` - diff --git a/localization/autoware_ekf_localizer/README.md b/localization/autoware_ekf_localizer/README.md index 25e81b232703..61ad8bc65016 100644 --- a/localization/autoware_ekf_localizer/README.md +++ b/localization/autoware_ekf_localizer/README.md @@ -36,24 +36,24 @@ autoware_ekf_localizerの全体的なフローチャートを以下に示しま ### サブスクライブするトピック -| 名前 | タイプ | 説明 | -| -------------------------------------- | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| `measured_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 測定共分散行列を持つ入力ポーズソース | -| `measured_twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | 測定共分散行列を持つ入力ツイストソース | -| `initialpose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | EKF の初期ポーズ。推定ポーズは開始時にゼロで初期化されます。公開されるたびにこのメッセージで初期化されます。 | +| 名前 | タイプ | 説明 | +| -------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `measured_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 測定共分散行列を持つ入力ポーズソース | +| `measured_twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | 測定共分散行列を持つ入力ツイストソース | +| `initialpose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | EKF の初期ポーズ。推定ポーズは開始時にゼロで初期化されます。公開されるたびにこのメッセージで初期化されます。 | ### 公開トピック -| 名前 | タイプ | 説明 | -| --------------------------------- | ------------------------------------------------ | -------------------------------------------- | -| `ekf_odom` | `nav_msgs::msg::Odometry` | 推定オドメトリ。 | -| `ekf_pose` | `geometry_msgs::msg::PoseStamped` | 推定ポーズ。 | -| `ekf_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 共分散を含む推定ポーズ。 | -| `ekf_biased_pose` | `geometry_msgs::msg::PoseStamped` | Yawバイアスを含む推定ポーズ。 | -| `ekf_biased_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | Yawバイアスを含む共分散付き推定ポーズ。 | -| `ekf_twist` | `geometry_msgs::msg::TwistStamped` | 推定ツイスト。 | -| `ekf_twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | 共分散を含む推定ツイスト。 | -| `diagnostics` | `diagnostics_msgs::msg::DiagnosticArray` | 診断情報。 | +| 名前 | タイプ | 説明 | +| --------------------------------- | ------------------------------------------------ | --------------------------------------- | +| `ekf_odom` | `nav_msgs::msg::Odometry` | 推定オドメトリ。 | +| `ekf_pose` | `geometry_msgs::msg::PoseStamped` | 推定ポーズ。 | +| `ekf_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 共分散を含む推定ポーズ。 | +| `ekf_biased_pose` | `geometry_msgs::msg::PoseStamped` | Yawバイアスを含む推定ポーズ。 | +| `ekf_biased_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | Yawバイアスを含む共分散付き推定ポーズ。 | +| `ekf_twist` | `geometry_msgs::msg::TwistStamped` | 推定ツイスト。 | +| `ekf_twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | 共分散を含む推定ツイスト。 | +| `diagnostics` | `diagnostics_msgs::msg::DiagnosticArray` | 診断情報。 | ### 公開 TF @@ -137,16 +137,16 @@ EKFは観測による更新前にマハラノビス距離を使用してゲー 現在のところ、共分散推定の精度はあまり良くないため、偽陽性による拒否を減らすために、有意水準を非常に小さい値に設定することをお勧めします。 | 重要度レベル | 2 次元結果の閾値 | 3 次元結果の閾値 | -| ---------------- | -------------------- | -------------------- | -| $10 ^ {-2}$ | 9.21 | 11.3 | -| $10 ^ {-3}$ | 13.8 | 16.3 | -| $10 ^ {-4}$ | 18.4 | 21.1 | -| $10 ^ {-5}$ | 23.0 | 25.9 | -| $10 ^ {-6}$ | 27.6 | 30.7 | -| $10 ^ {-7}$ | 32.2 | 35.4 | -| $10 ^ {-8}$ | 36.8 | 40.1 | -| $10 ^ {-9}$ | 41.4 | 44.8 | -| $10 ^ {-10}$ | 46.1 | 49.5 | +| ------------ | ---------------- | ---------------- | +| $10 ^ {-2}$ | 9.21 | 11.3 | +| $10 ^ {-3}$ | 13.8 | 16.3 | +| $10 ^ {-4}$ | 18.4 | 21.1 | +| $10 ^ {-5}$ | 23.0 | 25.9 | +| $10 ^ {-6}$ | 27.6 | 30.7 | +| $10 ^ {-7}$ | 32.2 | 35.4 | +| $10 ^ {-8}$ | 36.8 | 40.1 | +| $10 ^ {-9}$ | 41.4 | 44.8 | +| $10 ^ {-10}$ | 46.1 | 49.5 | ## カルマンフィルタモデル @@ -205,4 +205,3 @@ pose_estimator は base_link を地図座標系で公開すると予想されて ## 参考資料 [1] Anderson, B. D. O., & Moore, J. B. (1979). Optimal filtering. Englewood Cliffs, NJ: Prentice-Hall. - diff --git a/localization/autoware_geo_pose_projector/README.md b/localization/autoware_geo_pose_projector/README.md index a67b863323fe..0407bedab354 100644 --- a/localization/autoware_geo_pose_projector/README.md +++ b/localization/autoware_geo_pose_projector/README.md @@ -6,17 +6,17 @@ ## 購読トピック -| 名前 | タイプ | 説明 | -| ------------------------- | ---------------------------------------------------- | -------------------- | -| `input_geo_pose` | `geographic_msgs::msg::GeoPoseWithCovarianceStamped` | 地理参照された位置 | +| 名前 | タイプ | 説明 | +| ------------------------- | ---------------------------------------------------- | ------------------------ | +| `input_geo_pose` | `geographic_msgs::msg::GeoPoseWithCovarianceStamped` | 地理参照された位置 | | `/map/map_projector_info` | `tier4_map_msgs::msg::MapProjectedObjectInfo` | マッププロジェクター情報 | ## 公開トピック -| 名称 | 型 | 説明 | -| ------------- | ------------------------------------------------- | ---------------------------------------- | -| `output_pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | マップフレーム内のポーズ | -| `/tf` | `tf2_msgs::msg::TFMessage` | 親リンクと子リンク間のtf | +| 名称 | 型 | 説明 | +| ------------- | ----------------------------------------------- | ------------------------ | +| `output_pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | マップフレーム内のポーズ | +| `/tf` | `tf2_msgs::msg::TFMessage` | 親リンクと子リンク間のtf | ## パラメータ @@ -26,4 +26,3 @@ 使用する投影タイプによっては、共分散を変換できない可能性があります。入力トピックの共分散は、対角行列として(緯度、経度、高度)で表されます。 現在、x軸を東向き、y軸を北向きと想定しています。そのため、この仮定が破られると、特に緯度と経度の共分散が異なる場合は、変換が正しく処理されない可能性があります。 - diff --git a/localization/autoware_gyro_odometer/README.md b/localization/autoware_gyro_odometer/README.md index 43e13e705cdd..db0f73cacdfc 100644 --- a/localization/autoware_gyro_odometer/README.md +++ b/localization/autoware_gyro_odometer/README.md @@ -7,18 +7,20 @@ ## 入力 / 出力 ### 入力 + - `/vehicle/odometry/twist` (geometry_msgs/Twist): ロボットのひねり速度 - `/imu//data_raw` (sensor_msgs/Imu): IMU データ - `/tf` (tf2/TransformStamped): ロボットの TF トランスフォーム - `/vehicle/wheel_cmd` (vehicle_msgs/WheelCmd): 車輪速度 ### 出力 + - `/vehicle/twist` (geometry_msgs/Twist): 補償されたひねり速度 -| 名称 | 型 | 説明 | -| ------------------------ | ------------------------------------------------ | ---------------------------------- | +| 名称 | 型 | 説明 | +| ------------------------------- | ------------------------------------------------ | ------------------------ | | `vehicle/twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | 車両の共分散付きツイスト | -| `imu` | `sensor_msgs::msg::Imu` | センサーの IMU | +| `imu` | `sensor_msgs::msg::Imu` | センサーの IMU | ### アウトプット @@ -34,26 +36,26 @@ y = y0 + \int vsin(θ) dt ここで、 -* `x` は x 軸上の自車位置 -* `y` は y 軸上の自車位置 -* `θ` は自車の偏角 -* `v` は車両の速度 -* `ω` は車両の角速度 -* `x0`、`y0`、`θ0` は初期条件 +- `x` は x 軸上の自車位置 +- `y` は y 軸上の自車位置 +- `θ` は自車の偏角 +- `v` は車両の速度 +- `ω` は車両の角速度 +- `x0`、`y0`、`θ0` は初期条件 車両の速度と加速度は、Planning コンポーネンによって生成されます。Planning コンポーネンは、周囲環境に関する情報をセンサから収集し、車両を目的地まで安全かつ効率的に移動させる目的経路を生成します。 ダイナミクス モデルは、以下の基準に基づいて、自車位置と姿勢の推定値を評価します。 -* **速度逸脱量:** Planning コンポーネンによって指定された速度からの自車速度の逸脱量 -* **加速度逸脱量:** Planning コンポーネンによって指定された加速度からの自車加速度の逸脱量 -* **軌跡逸脱量:** Planning コンポーネンによって指定された軌跡からの自車位置の逸脱量 +- **速度逸脱量:** Planning コンポーネンによって指定された速度からの自車速度の逸脱量 +- **加速度逸脱量:** Planning コンポーネンによって指定された加速度からの自車加速度の逸脱量 +- **軌跡逸脱量:** Planning コンポーネンによって指定された軌跡からの自車位置の逸脱量 Autoware では、こうした基準を使用して、ダイナミクス モデルの推定値の精度が検証されます。 -| 名称 | 種別 | 説明 | -| --------------------- | ------------------------------------------------- | ----------------------------- | -| `twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | 共分散付き推測速度 | +| 名称 | 種別 | 説明 | +| ----------------------- | ------------------------------------------------ | ------------------ | +| `twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | 共分散付き推測速度 | ## パラメータ @@ -75,14 +77,13 @@ Autoware では、こうした基準を使用して、ダイナミクス モデ drawing -| 名称 | 説明 | 警告への遷移条件 | エラーへの遷移条件 | -| -------------------------------- | -------------------------------------------------------------------------------------------- | ---------------------- | -------------------------------------------------------- | -| `topic_time_stamp` | サービスを呼び出すときのタイムスタンプ [ナノ秒] | なし | なし | -| `is_arrived_first_vehicle_twist` | 車両の Twist トピックを少なくとも 1 回受信したかどうかのフラグ | まだ受信していない | なし | -| `is_arrived_first_imu` | IMU トピックを少なくとも 1 回受信したかどうかのフラグ | まだ受信していない | なし | -| `vehicle_twist_time_stamp_dt` | 現在時刻と最新の車両の Twist トピック間の時間差 [秒] | なし | 時間差が `message_timeout_sec` より **長い** | -| `imu_time_stamp_dt` | 現在時刻と最新の IMU トピック間の時間差 [秒] | なし | 時間差が `message_timeout_sec` より **長い** | -| `vehicle_twist_queue_size` | `vehicle_twist_queue` のサイズ | なし | なし | -| `imu_queue_size` | `gyro_queue` のサイズ | なし | なし | -| `is_succeed_transform_imu` | IMU の変換の成功/失敗フラグ | なし | 変換が失敗した | - +| 名称 | 説明 | 警告への遷移条件 | エラーへの遷移条件 | +| -------------------------------- | -------------------------------------------------------------- | ------------------ | -------------------------------------------- | +| `topic_time_stamp` | サービスを呼び出すときのタイムスタンプ [ナノ秒] | なし | なし | +| `is_arrived_first_vehicle_twist` | 車両の Twist トピックを少なくとも 1 回受信したかどうかのフラグ | まだ受信していない | なし | +| `is_arrived_first_imu` | IMU トピックを少なくとも 1 回受信したかどうかのフラグ | まだ受信していない | なし | +| `vehicle_twist_time_stamp_dt` | 現在時刻と最新の車両の Twist トピック間の時間差 [秒] | なし | 時間差が `message_timeout_sec` より **長い** | +| `imu_time_stamp_dt` | 現在時刻と最新の IMU トピック間の時間差 [秒] | なし | 時間差が `message_timeout_sec` より **長い** | +| `vehicle_twist_queue_size` | `vehicle_twist_queue` のサイズ | なし | なし | +| `imu_queue_size` | `gyro_queue` のサイズ | なし | なし | +| `is_succeed_transform_imu` | IMU の変換の成功/失敗フラグ | なし | 変換が失敗した | diff --git a/localization/autoware_landmark_based_localizer/README.md b/localization/autoware_landmark_based_localizer/README.md index 66c4a6e678c2..897a8fb9dec1 100644 --- a/localization/autoware_landmark_based_localizer/README.md +++ b/localization/autoware_landmark_based_localizer/README.md @@ -61,4 +61,3 @@ このモードでは、x、y、z の相対位置だけが正しいように、新しい自車位置を計算します。 この手法では、方位の補正は行えませんが、マーカー検出の方位誤差の影響を受けません。 - diff --git a/localization/autoware_landmark_based_localizer/autoware_ar_tag_based_localizer/README.md b/localization/autoware_landmark_based_localizer/autoware_ar_tag_based_localizer/README.md index 719d5cfa4459..8785b0c6333f 100644 --- a/localization/autoware_landmark_based_localizer/autoware_ar_tag_based_localizer/README.md +++ b/localization/autoware_landmark_based_localizer/autoware_ar_tag_based_localizer/README.md @@ -13,11 +13,11 @@ ARタグの位置と向きは、Lanelet2フォーマットで記述されてい #### 入力 -| 名 | 型 | 説明 | -| :--------------------- | :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `~/input/lanelet2_map` | `autoware_map_msgs::msg::LaneletMapBin` | Lanelet 2データ | -| `~/input/image` | `sensor_msgs::msg::Image` | カメラ画像 | -| `~/input/camera_info` | `sensor_msgs::msg::CameraInfo` | カメラ情報 | +| 名 | 型 | 説明 | +| :--------------------- | :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `~/input/lanelet2_map` | `autoware_map_msgs::msg::LaneletMapBin` | Lanelet 2データ | +| `~/input/image` | `sensor_msgs::msg::Image` | カメラ画像 | +| `~/input/camera_info` | `sensor_msgs::msg::CameraInfo` | カメラ情報 | | `~/input/ekf_pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | IMU補正なしのEKF推定値。誤検知のフィルタリングに使用され、検出したARタグの妥当性を評価します。EKF推定値とARタグで検出した推定値が一定の時間と空間範囲内にある場合のみ、検出したARタグの推定値は有効と見なされ、パブリッシュされます。 | #### 出力 @@ -32,49 +32,49 @@ ARタグの位置と向きは、Lanelet2フォーマットで記述されてい **2.1 Perception(感知)モジュール** -* カメラ、レーダー、LiDARなどのセンサーからのデータを処理し、周囲環境の3Dマップを作成します。 -* 交通標識、歩行者、障害物などのオブジェクトを検出し、追跡します。 +- カメラ、レーダー、LiDARなどのセンサーからのデータを処理し、周囲環境の3Dマップを作成します。 +- 交通標識、歩行者、障害物などのオブジェクトを検出し、追跡します。 **2.2 Localization(自己位置推定)モジュール** -* GNSS、IMU、車輪エンコーダーなどのセンサーデータを処理し、自車位置を推定します。 -* スラム(SLAM)アルゴリズムを使用して、周囲環境の地図を作成・更新します。 +- GNSS、IMU、車輪エンコーダーなどのセンサーデータを処理し、自車位置を推定します。 +- スラム(SLAM)アルゴリズムを使用して、周囲環境の地図を作成・更新します。 **2.3 Planning(計画)モジュール** -* 感知モジュールからのオブジェクト情報を基に、車両の経路と速度計画を生成します。 -* 障害物回避、レーンキープなどの計画を実行するコントローラーを提供します。 +- 感知モジュールからのオブジェクト情報を基に、車両の経路と速度計画を生成します。 +- 障害物回避、レーンキープなどの計画を実行するコントローラーを提供します。 **2.4 Behavior Planning(挙動計画)モジュール** -* 交通規則を遵守するための車両挙動を生成します。 -* 自動運転レベルに応じた異なる挙動をサポートしています。 +- 交通規則を遵守するための車両挙動を生成します。 +- 自動運転レベルに応じた異なる挙動をサポートしています。 **2.5 Control(制御)モジュール** -* 計画モジュールからのコマンドに基づいて、車両のステアリング、ブレーキ、アクセルを制御します。 -* 縦方向、横方向の制御のためのコントローラーを提供します。 +- 計画モジュールからのコマンドに基づいて、車両のステアリング、ブレーキ、アクセルを制御します。 +- 縦方向、横方向の制御のためのコントローラーを提供します。 **3. 安全機能** Autowareには、次の安全機能が組み込まれています。 -* **衝突回避システム:** 障害物との衝突を回避するための緊急回避策を実行します。 -* **速度逸脱量管理:** 設定された速度制限を超えた場合に警告を発し、車両を減速します。 -* **加速度逸脱量管理:** 快適さと安全性を確保するための急加速度や急減速を防止します。 -* **車両制御の監視:** 制御モジュールの動作を監視し、異常が発生した場合に車両を停止させます。 +- **衝突回避システム:** 障害物との衝突を回避するための緊急回避策を実行します。 +- **速度逸脱量管理:** 設定された速度制限を超えた場合に警告を発し、車両を減速します。 +- **加速度逸脱量管理:** 快適さと安全性を確保するための急加速度や急減速を防止します。 +- **車両制御の監視:** 制御モジュールの動作を監視し、異常が発生した場合に車両を停止させます。 **4. データ処理パイプライン** Autowareのデータ処理パイプラインは、次の手順に従います。 -* **センサーデータの取得:** センサーから生のデータを収集します。 -* **'post resampling'によるデータフィルタリング:** ノイズや不要なデータを除去します。 -* **オブジェクト検出と追跡:** 感知モジュールがオブジェクトの検出と追跡を実行します。 -* **自己位置推定:** 自己位置推定モジュールが自車位置を推定します。 -* **経路計画:** 計画モジュールが経路と速度計画を生成します。 -* **挙動計画:** 挙動計画モジュールが車両挙動を生成します。 -* **制御:** 制御モジュールが車両の制御を実行します。 +- **センサーデータの取得:** センサーから生のデータを収集します。 +- **'post resampling'によるデータフィルタリング:** ノイズや不要なデータを除去します。 +- **オブジェクト検出と追跡:** 感知モジュールがオブジェクトの検出と追跡を実行します。 +- **自己位置推定:** 自己位置推定モジュールが自車位置を推定します。 +- **経路計画:** 計画モジュールが経路と速度計画を生成します。 +- **挙動計画:** 挙動計画モジュールが車両挙動を生成します。 +- **制御:** 制御モジュールが車両の制御を実行します。 **5. インターフェース** @@ -84,13 +84,13 @@ Autowareは、ROS(Robot Operating System)上で動作します。 ROSノー Autowareはオープンソースプロジェクトであり、誰でも貢献できます。 Autowareコミュニティは、ドキュメント、フォーラム、サポートでユーザーをサポートしています。 -| 名称 | タイプ | 説明 | -| :--------------------------------- | :--------------------------------------------------------------- | :------------------------------------------------------------------------- | -| `~/output/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 推定姿勢 | -| `~/debug/result` | `sensor_msgs::msg::Image` | [デバッグトピック] マーカー検出結果が、入力画像に重ね書きされた画像 | -| `~/debug/marker` | `visualization_msgs::msg::MarkerArray` | [デバッグトピック] Rviz内で薄い板として可視化するロード済ランドマーク | -| `/tf` | `geometry_msgs::msg::TransformStamped` | カメラから検出されたタグまでのトランスフォーム | -| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断結果 | +| 名称 | タイプ | 説明 | +| :------------------------------ | :---------------------------------------------- | :-------------------------------------------------------------------- | +| `~/output/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 推定姿勢 | +| `~/debug/result` | `sensor_msgs::msg::Image` | [デバッグトピック] マーカー検出結果が、入力画像に重ね書きされた画像 | +| `~/debug/marker` | `visualization_msgs::msg::MarkerArray` | [デバッグトピック] Rviz内で薄い板として可視化するロード済ランドマーク | +| `/tf` | `geometry_msgs::msg::TransformStamped` | カメラから検出されたタグまでのトランスフォーム | +| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断結果 | ## パラメータ @@ -100,7 +100,6 @@ Autowareはオープンソースプロジェクトであり、誰でも貢献で Autowareを起動する際、`artag` を `pose_source` に設定します。 - ```bash ros2 launch autoware_launch ... \ pose_source:=artag \ @@ -122,7 +121,6 @@ ros2 launch autoware_launch ... \ トピック名を再マッピングし、実行してください。 - ```bash ros2 bag play /path/to/ar_tag_based_localizer_sample_bag/ -r 0.5 -s sqlite3 \ --remap /sensing/camera/front/image:=/sensing/camera/traffic_light/image_raw \ @@ -142,4 +140,3 @@ ros2 bag play /path/to/ar_tag_based_localizer_sample_bag/ -r 0.5 -s sqlite3 \ ## 原理 ![principle](../doc_image/principle.png) - diff --git a/localization/autoware_landmark_based_localizer/autoware_lidar_marker_localizer/README.md b/localization/autoware_landmark_based_localizer/autoware_lidar_marker_localizer/README.md index 01f28f628f3d..5c11cd7b845e 100644 --- a/localization/autoware_landmark_based_localizer/autoware_lidar_marker_localizer/README.md +++ b/localization/autoware_landmark_based_localizer/autoware_lidar_marker_localizer/README.md @@ -7,24 +7,26 @@ ### `lidar_marker_localizer` ノード #### 入力 + - `/hesai406/points` (`PointCloud`) - - ヘサイ406のLiDARポイントクラウド + - ヘサイ406のLiDARポイントクラウド - `/current_pose` (`Odometry`) - - 自車位置 + - 自車位置 - `/static_map` (`StaticMap`) - - 静的地図(反転させた座標系) + - 静的地図(反転させた座標系) #### 出力 + - `/lidar_marker_localizer/output` (`Odometry`) - - 検出された反射器に基づく、自車位置の推定値 + - 検出された反射器に基づく、自車位置の推定値 - `/lidar_marker_localizer/debug` (`MarkerArray`) - - デバッグ用マーカー + - デバッグ用マーカー -| 名前 | 型 | 説明 | -|---|---|---| -| `~/input/lanelet2_map` | `autoware_map_msgs::msg::HADMapBin` | lanelet2データ | -| `~/input/pointcloud` | `sensor_msgs::msg::PointCloud2` | 点群 | -| `~/input/ekf_pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | EKFによる自車位置 | +| 名前 | 型 | 説明 | +| ---------------------- | ----------------------------------------------- | ----------------- | +| `~/input/lanelet2_map` | `autoware_map_msgs::msg::HADMapBin` | lanelet2データ | +| `~/input/pointcloud` | `sensor_msgs::msg::PointCloud2` | 点群 | +| `~/input/ekf_pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | EKFによる自車位置 | #### 出力 @@ -82,14 +84,14 @@ Autoware はオープンソースプロジェクトであり、コミュニテ このドキュメントに記載されている情報は、正確で最新であることを目指していますが、Autoware Foundation はその正確性または完全性について保証しません。Autoware の使用は、ユーザー自身の責任において行われるものとします。 -| 名前 | 種類 | 説明 | -| :-----------------------------------| :------------------------------------------------- | :--------------------------------------------------------------------- | -| `~/output/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 推定姿勢 | -| `~/debug/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | [デバッグトピック] 推定姿勢 | -| `~/debug/marker_detected` | `geometry_msgs::msg::PoseArray` | [デバッグトピック] 検出されたマーカートピック | -| `~/debug/marker_mapped` | `visualization_msgs::msg::MarkerArray` | [デバッグトピック] Rvizで薄板として可視化するための読み込まれたランドマーク | -| `~/debug/marker_pointcloud` | `sensor_msgs::msg::PointCloud2` | 検出されたマーカーのPointCloud | -| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断結果 | +| 名前 | 種類 | 説明 | +| :------------------------------ | :---------------------------------------------- | :-------------------------------------------------------------------------- | +| `~/output/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 推定姿勢 | +| `~/debug/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | [デバッグトピック] 推定姿勢 | +| `~/debug/marker_detected` | `geometry_msgs::msg::PoseArray` | [デバッグトピック] 検出されたマーカートピック | +| `~/debug/marker_mapped` | `visualization_msgs::msg::MarkerArray` | [デバッグトピック] Rvizで薄板として可視化するための読み込まれたランドマーク | +| `~/debug/marker_pointcloud` | `sensor_msgs::msg::PointCloud2` | 検出されたマーカーのPointCloud | +| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断結果 | ## パラメータ @@ -99,7 +101,6 @@ Autoware はオープンソースプロジェクトであり、コミュニテ Autowareを起動する際は、`pose_source`に`lidar-marker`を設定します。 - ```bash ros2 launch autoware_launch ... \ pose_source:=lidar-marker \ @@ -110,7 +111,6 @@ ros2 launch autoware_launch ... \ ### フローチャート - ```plantuml @startuml @@ -180,4 +180,3 @@ end group - [TIER IV](https://tier4.jp/en/) - [大成建設](https://www.taisei.co.jp/english/) - [Yuri Shimizu](https://github.com/YuriShimizu824) - diff --git a/localization/autoware_localization_error_monitor/README.md b/localization/autoware_localization_error_monitor/README.md index dcb5f93a0baf..6bc9d91ac873 100644 --- a/localization/autoware_localization_error_monitor/README.md +++ b/localization/autoware_localization_error_monitor/README.md @@ -16,8 +16,8 @@ autoware_localization_error_monitorは、位置推定の結果の不確かさを ### 入力 -| 名前 | タイプ | 説明 | -| ------------ | ------------------------- | ------------------- | +| 名前 | タイプ | 説明 | +| ------------ | ------------------------- | ------------ | | `input/odom` | `nav_msgs::msg::Odometry` | 自車位置結果 | ### 出力 @@ -83,15 +83,14 @@ Autowareはオープンソースプロジェクトです。貢献に興味があ Autowareに関する詳細情報は、以下のリソースを参照してください。 -- 公式ウェブサイト: https://www.autoware.ai -- GitHubリポジトリ: https://github.com/autowarefoundation/autoware.ai +- 公式ウェブサイト: +- GitHubリポジトリ: -| 名称 | 型 | 説明 | -| ---------------------- | --------------------------------------- | ------------------- | -| `debug/ellipse_marker` | `visualization_msgs::msg::Marker` | 楕円マーカー | -| `diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断出力 | +| 名称 | 型 | 説明 | +| ---------------------- | --------------------------------------- | ------------ | +| `debug/ellipse_marker` | `visualization_msgs::msg::Marker` | 楕円マーカー | +| `diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断出力 | ## パラメータ {{ json_to_markdown("localization/autoware_localization_error_monitor/schema/localization_error_monitor.schema.json", True) }} - diff --git a/localization/autoware_localization_util/README.md b/localization/autoware_localization_util/README.md index 289de2931eae..a0608e4983c9 100644 --- a/localization/autoware_localization_util/README.md +++ b/localization/autoware_localization_util/README.md @@ -3,4 +3,3 @@ `autoware_localization_util` はローカライゼーション用のユーティリティパッケージです。 このパッケージにはノードはなく、ライブラリのみです。 - diff --git a/localization/autoware_ndt_scan_matcher/README.md b/localization/autoware_ndt_scan_matcher/README.md index 93d668eaf884..8805c00c822f 100644 --- a/localization/autoware_ndt_scan_matcher/README.md +++ b/localization/autoware_ndt_scan_matcher/README.md @@ -15,42 +15,42 @@ autoware_ndt_scan_matcherはNDTスキャンマッチング手法を使用した ### 入力 -| 名称 | タイプ | 説明 | -| ----------------------------------- | --------------------------------------------- | --------------------------------------- | -| `ekf_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 初期位置 | -| `points_raw` | `sensor_msgs::msg::PointCloud2` | センサポイントクラウド | -| `sensing/gnss/pose_with_covariance` | `sensor_msgs::msg::PoseWithCovarianceStamped` | 正規化項の基本位置 | +| 名称 | タイプ | 説明 | +| ----------------------------------- | ----------------------------------------------- | ---------------------- | +| `ekf_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 初期位置 | +| `points_raw` | `sensor_msgs::msg::PointCloud2` | センサポイントクラウド | +| `sensing/gnss/pose_with_covariance` | `sensor_msgs::msg::PoseWithCovarianceStamped` | 正規化項の基本位置 | `sensing/gnss/pose_with_covariance` は、正則化が有効な場合にのみ必要です。 ### 出力 -| 名前 | タイプ | 説明 | -| ----------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| `ndt_pose` | `geometry_msgs::msg::PoseStamped` | 推定位相 | -| `ndt_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 共分散による推定位相 | -| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断 | -| `points_aligned` | `sensor_msgs::msg::PointCloud2` | [デバッグトピック] スキャンマッチングでアラインされた点群 | -| `points_aligned_no_ground` | `sensor_msgs::msg::PointCloud2` | [デバッグトピック] スキャンマッチングでアラインされた、地面を除いた点群 | -| `initial_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | [デバッグトピック] スキャンマッチングで使用される初期位相 | -| `multi_ndt_pose` | `geometry_msgs::msg::PoseArray` | [デバッグトピック] 実時間共分散推定におけるさまざまな初期位相からの推定位相 | -| `multi_initial_pose` | `geometry_msgs::msg::PoseArray` | [デバッグトピック] 実時間共分散推定における初期位相 | -| `exe_time_ms` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] スキャンマッチングの実行時間 [ミリ秒] | -| `transform_probability` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] スキャンマッチングのスコア | -| `no_ground_transform_probability` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] 地面のない LiDAR スキャンのスコア | -| `iteration_num` | `tier4_debug_msgs::msg::Int32Stamped` | [デバッグトピック] スキャンマッチングのイテレーション数 | -| `initial_to_result_relative_pose` | `geometry_msgs::msg::PoseStamped` | [デバッグトピック] 初期点と収束点間の相対位相 | -| `initial_to_result_distance` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] 初期点と収束点間の距離 [メートル] | -| `initial_to_result_distance_old` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] 線形補間で使用される古い 2 つの初期点のうちの 1 つと収束点の距離差 [メートル] | -| `initial_to_result_distance_new` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] 線形補間で使用される新しい 2 つの初期点のうちの 1 つと収束点の距離差 [メートル] | -| `ndt_marker` | `visualization_msgs::msg::MarkerArray` | [デバッグトピック] デバッグ用のマーカー | -| `monte_carlo_initial_pose_marker` | `visualization_msgs::msg::MarkerArray` | [デバッグトピック] 初期位置推定に使用されるパーティクル | +| 名前 | タイプ | 説明 | +| --------------------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `ndt_pose` | `geometry_msgs::msg::PoseStamped` | 推定位相 | +| `ndt_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 共分散による推定位相 | +| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断 | +| `points_aligned` | `sensor_msgs::msg::PointCloud2` | [デバッグトピック] スキャンマッチングでアラインされた点群 | +| `points_aligned_no_ground` | `sensor_msgs::msg::PointCloud2` | [デバッグトピック] スキャンマッチングでアラインされた、地面を除いた点群 | +| `initial_pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | [デバッグトピック] スキャンマッチングで使用される初期位相 | +| `multi_ndt_pose` | `geometry_msgs::msg::PoseArray` | [デバッグトピック] 実時間共分散推定におけるさまざまな初期位相からの推定位相 | +| `multi_initial_pose` | `geometry_msgs::msg::PoseArray` | [デバッグトピック] 実時間共分散推定における初期位相 | +| `exe_time_ms` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] スキャンマッチングの実行時間 [ミリ秒] | +| `transform_probability` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] スキャンマッチングのスコア | +| `no_ground_transform_probability` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] 地面のない LiDAR スキャンのスコア | +| `iteration_num` | `tier4_debug_msgs::msg::Int32Stamped` | [デバッグトピック] スキャンマッチングのイテレーション数 | +| `initial_to_result_relative_pose` | `geometry_msgs::msg::PoseStamped` | [デバッグトピック] 初期点と収束点間の相対位相 | +| `initial_to_result_distance` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] 初期点と収束点間の距離 [メートル] | +| `initial_to_result_distance_old` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] 線形補間で使用される古い 2 つの初期点のうちの 1 つと収束点の距離差 [メートル] | +| `initial_to_result_distance_new` | `tier4_debug_msgs::msg::Float32Stamped` | [デバッグトピック] 線形補間で使用される新しい 2 つの初期点のうちの 1 つと収束点の距離差 [メートル] | +| `ndt_marker` | `visualization_msgs::msg::MarkerArray` | [デバッグトピック] デバッグ用のマーカー | +| `monte_carlo_initial_pose_marker` | `visualization_msgs::msg::MarkerArray` | [デバッグトピック] 初期位置推定に使用されるパーティクル | ### サービス -| Name | Type | Description | -| --------------- | --------------------------------------------------------------- | --------------------------------- | -| `ndt_align_srv` | `autoware_localization_srvs::srv::PoseWithCovarianceStamped` | 初期姿勢推定サービス | +| Name | Type | Description | +| --------------- | ------------------------------------------------------------ | -------------------- | +| `ndt_align_srv` | `autoware_localization_srvs::srv::PoseWithCovarianceStamped` | 初期姿勢推定サービス | ## パラメーター @@ -195,14 +195,14 @@ Autowareは `ndt_scan_matcher` 用の動的マップロード機能をサポー #### 追加出力 -| 名 | タイプ | 説明 | -| ---- | ---- | ---- | +| 名 | タイプ | 説明 | +| ----------------------------- | ------------------------------- | ---------------------------------------------------------- | | `debug/loaded_pointcloud_map` | `sensor_msgs::msg::PointCloud2` | ローカライゼーション用に使用される点群マップ(デバッグ用) | #### 追加クライアント -| 名前 | 型 | 説明 | -| ------------------- | ------------------------------------------------------ | ------------------ | +| 名前 | 型 | 説明 | +| ------------------- | ------------------------------------------------------ | -------------------------- | | `client_map_loader` | `autoware_map_msgs::srv::GetDifferentialPointCloudMap` | マップ読み込みクライアント | ### パラメータ @@ -220,10 +220,10 @@ Autowareは `ndt_scan_matcher` 用の動的マップロード機能をサポー Autoware チュートリアルの `sample-map-rosbag` の分割された PCD マップを次に示します。[`sample-map-rosbag_split.zip`](https://github.com/autowarefoundation/autoware.universe/files/10349104/sample-map-rosbag_split.zip) -| PCDファイル | NDTがマップを読み込む方法 | -| :------------: | :------------------: | -| 単一ファイル | 一括(標準) | -| 複数ファイル | 動的 | +| PCDファイル | NDTがマップを読み込む方法 | +| :----------: | :-----------------------: | +| 単一ファイル | 一括(標準) | +| 複数ファイル | 動的 | ## グランドLiDARスキャンなしでのスキャンマッチングスコア @@ -269,27 +269,27 @@ MULTI_NDT_SCOREモードでは、出力2D共分散のスケールを温度に応 drawing -| Name | 説明 | 警告への遷移条件 | エラーへの遷移条件 | 推定結果の破棄の有無 ( `skipping_publish_num` に影響) | -| ------------------------------------------------ | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ----------------------------------------------------- | -| `topic_time_stamp` | 入力トピックのタイムスタンプ | なし | なし | いいえ | -| `sensor_points_size` | センサーポイントのサイズ | サイズが `sensor_points.timeout_sec` より **長い** | なし | はい | -| `sensor_points_delay_time_sec` | センサーポイントの遅延時間 | 時刻が `sensor_points.timeout_sec` より **長い** | なし | はい | -| `is_succeed_transform_sensor_points` | センサーポイントの変換が成功したかどうか | なし | 失敗 | はい | -| `sensor_points_max_distance` | センサーポイントの最大距離 | 最大距離が `sensor_points.required_distance` より **短い** | なし | はい | -| `is_activated` | ノードが "active" 状態であるかどうか | "active" 状態ではない | なし | `is_activated` が false の場合、推定は実行されず、 `skipping_publish_num` は 0 に設定されます。 | -| `is_succeed_interpolate_initial_pose` | 初期姿勢の補間が成功したかどうか | 失敗。
(1) `initial_pose_buffer_` のサイズが **2** より小さい。
(2) 初期姿勢とセンサーポイントクラウド間のタイムスタンプの差が `validation.initial_pose_timeout_sec` より **長い**。
(3) 線形補間に使用される 2 つ の初期姿勢間の距離の差が `validation.initial_pose_distance_tolerance_m` より **長い** | なし | はい | -| `is_set_map_points` | マップポイントが設定されているかどうか | 設定されていない | なし | はい | -| `iteration_num` | 整列を計算する回数 | 回数が `ndt.max_iterations` より **多い** | なし | はい | -| `local_optimal_solution_oscillation_num` | ソリューションが振動していると判断された回数 | 回数が **10** より **多い** | なし | はい | -| `transform_probability` | マップがセンサーポイントとどれほどよく一致するかを表すスコア | スコアが `score_estimation.converged_param_transform_probability` より **小さい** (`score_estimation.converged_param_type` が 0=TRANSFORM_PROBABILITY の場合のみ) | なし | はい | -| `transform_probability_diff` | 現在 `ndt` 最適化のtpスコア差 | なし | なし | いいえ | -| `transform_probability_before` | 現在 `ndt` 最適化前のtpスコア | なし | なし | いいえ | -| `nearest_voxel_transformation_likelihood` | マップがセンサーポイントとどれほどよく一致するかを表すスコア | スコアが `score_estimation.converged_param_nearest_voxel_transformation_likelihood` より **小さい** (`score_estimation.converged_param_type` が 1=NEAREST_VOXEL_TRANSFORMATION_LIKELIHOOD の場合のみ) | なし | はい | -| `nearest_voxel_transformation_likelihood_diff` | 現在 `ndt` 最適化のnvtlスコア差 | なし | なし | いいえ | -| `nearest_voxel_transformation_likelihood_before` | 現在 `ndt` 最適化前のnvtlスコア | なし | なし | いいえ | -| `distance_initial_to_result` | 収束処理前と後の位置間の距離 | 距離が `validation.initial_to_result_distance_tolerance_m` より **長い** | なし | いいえ | -| `execution_time` | 収束処理時間 | 時刻が `validation.critical_upper_bound_exe_time_ms` より **長い** | なし | いいえ | -| `skipping_publish_num` | 連続して推定結果を破棄した回数 | 回数が `validation.skipping_publish_num` 以上 | なし | - | +| Name | 説明 | 警告への遷移条件 | エラーへの遷移条件 | 推定結果の破棄の有無 ( `skipping_publish_num` に影響) | +| ------------------------------------------------ | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------- | +| `topic_time_stamp` | 入力トピックのタイムスタンプ | なし | なし | いいえ | +| `sensor_points_size` | センサーポイントのサイズ | サイズが `sensor_points.timeout_sec` より **長い** | なし | はい | +| `sensor_points_delay_time_sec` | センサーポイントの遅延時間 | 時刻が `sensor_points.timeout_sec` より **長い** | なし | はい | +| `is_succeed_transform_sensor_points` | センサーポイントの変換が成功したかどうか | なし | 失敗 | はい | +| `sensor_points_max_distance` | センサーポイントの最大距離 | 最大距離が `sensor_points.required_distance` より **短い** | なし | はい | +| `is_activated` | ノードが "active" 状態であるかどうか | "active" 状態ではない | なし | `is_activated` が false の場合、推定は実行されず、 `skipping_publish_num` は 0 に設定されます。 | +| `is_succeed_interpolate_initial_pose` | 初期姿勢の補間が成功したかどうか | 失敗。
(1) `initial_pose_buffer_` のサイズが **2** より小さい。
(2) 初期姿勢とセンサーポイントクラウド間のタイムスタンプの差が `validation.initial_pose_timeout_sec` より **長い**。
(3) 線形補間に使用される 2 つ の初期姿勢間の距離の差が `validation.initial_pose_distance_tolerance_m` より **長い** | なし | はい | +| `is_set_map_points` | マップポイントが設定されているかどうか | 設定されていない | なし | はい | +| `iteration_num` | 整列を計算する回数 | 回数が `ndt.max_iterations` より **多い** | なし | はい | +| `local_optimal_solution_oscillation_num` | ソリューションが振動していると判断された回数 | 回数が **10** より **多い** | なし | はい | +| `transform_probability` | マップがセンサーポイントとどれほどよく一致するかを表すスコア | スコアが `score_estimation.converged_param_transform_probability` より **小さい** (`score_estimation.converged_param_type` が 0=TRANSFORM_PROBABILITY の場合のみ) | なし | はい | +| `transform_probability_diff` | 現在 `ndt` 最適化のtpスコア差 | なし | なし | いいえ | +| `transform_probability_before` | 現在 `ndt` 最適化前のtpスコア | なし | なし | いいえ | +| `nearest_voxel_transformation_likelihood` | マップがセンサーポイントとどれほどよく一致するかを表すスコア | スコアが `score_estimation.converged_param_nearest_voxel_transformation_likelihood` より **小さい** (`score_estimation.converged_param_type` が 1=NEAREST_VOXEL_TRANSFORMATION_LIKELIHOOD の場合のみ) | なし | はい | +| `nearest_voxel_transformation_likelihood_diff` | 現在 `ndt` 最適化のnvtlスコア差 | なし | なし | いいえ | +| `nearest_voxel_transformation_likelihood_before` | 現在 `ndt` 最適化前のnvtlスコア | なし | なし | いいえ | +| `distance_initial_to_result` | 収束処理前と後の位置間の距離 | 距離が `validation.initial_to_result_distance_tolerance_m` より **長い** | なし | いいえ | +| `execution_time` | 収束処理時間 | 時刻が `validation.critical_upper_bound_exe_time_ms` より **長い** | なし | いいえ | +| `skipping_publish_num` | 連続して推定結果を破棄した回数 | 回数が `validation.skipping_publish_num` 以上 | なし | - | ※`sensor_points_callback`は`trigger_node_service`および`ndt_align_service`と同一コールバックグループを共有しています。結果的に、初期ポーズ推定に時間がかかりすぎると、この診断は古くなる可能性があります。 @@ -297,29 +297,29 @@ MULTI_NDT_SCOREモードでは、出力2D共分散のスケールを温度に応 drawing -| 名前 | 説明 | 注意の状態への遷移条件 | エラーの状態への遷移条件 | -| ------------------------------ | --------------------------------------------------------------------------------------------------- | ----------------------------------------- | -------------------------------------------------------- | -| `topic_time_stamp` | 入力トピックのタイムスタンプ | なし | なし | -| `is_activated` | ノードが「アクティブ」状態であるかどうか | 「アクティブ」状態以外 | なし | -| `is_expected_frame_id` | 入力フレーム IDが `frame.map_frame`と同一かどうか | なし | 異なる場合 | +| 名前 | 説明 | 注意の状態への遷移条件 | エラーの状態への遷移条件 | +| ---------------------- | ------------------------------------------------- | ---------------------- | ------------------------ | +| `topic_time_stamp` | 入力トピックのタイムスタンプ | なし | なし | +| `is_activated` | ノードが「アクティブ」状態であるかどうか | 「アクティブ」状態以外 | なし | +| `is_expected_frame_id` | 入力フレーム IDが `frame.map_frame`と同一かどうか | なし | 異なる場合 | ### regularization_pose_subscriber_status drawing -| Name | Description | Transition condition to Warning | Transition condition to Error | -| ------------------------- | --------------------------------------- | ---------------------------------- | ----------------------------- | -| `topic_time_stamp` | 入力トピックのタイムスタンプ | なし | なし | +| Name | Description | Transition condition to Warning | Transition condition to Error | +| ------------------ | ---------------------------- | ------------------------------- | ----------------------------- | +| `topic_time_stamp` | 入力トピックのタイムスタンプ | なし | なし | ### trigger_node_service_status 図 -| 名称 | 説明 | Warningへの移行条件 | Errorへの移行条件 | -| ------------------------- | --------------------------------------------------- | -------------------------- | --------------------- | -| `service_call_time_stamp` | サービス呼び出しのタイムスタンプ | なし | なし | -| `is_activated` | ノードが「アクティブ」状態か否か | なし | なし | -| `is_succeed_service` | サービスプロセスの成功または失敗 | なし | なし | +| 名称 | 説明 | Warningへの移行条件 | Errorへの移行条件 | +| ------------------------- | -------------------------------- | ------------------- | ----------------- | +| `service_call_time_stamp` | サービス呼び出しのタイムスタンプ | なし | なし | +| `is_activated` | ノードが「アクティブ」状態か否か | なし | なし | +| `is_succeed_service` | サービスプロセスの成功または失敗 | なし | なし | ※ この診断はサービスが呼び出されたときにのみ発行されるので、初期姿勢推定が完了すると古いものになります。 @@ -328,22 +328,22 @@ MULTI_NDT_SCOREモードでは、出力2D共分散のスケールを温度に応 図 -| 名前 | 説明 | 警告への遷移条件 | エラーへの遷移条件 | -| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ------------------- | -| `service_call_time_stamp` | サービス呼び出しのタイムスタンプ | なし | なし | -| `is_succeed_transform_initial_pose` | 初期位置の変換に成功したかどうか | なし | エラー | -| `is_need_rebuild` | マップを再構築する必要があるかどうか。まだマップがロードされていない場合、または「`distance_last_update_position_to_current_position encounters`」がエラー状態の場合、マップの再構築が必要と見なされ、`is_need_rebuild` が `True` になります | なし | なし | -| `maps_size_before` | マップの更新前のマップ数 | なし | なし | -| `is_succeed_call_pcd_loader` | pcd_loader サービスの呼び出しに成功したかどうか | エラー | なし | -| `maps_to_add_size` | 追加されるマップ数 | なし | なし | -| `maps_to_remove_size` | 削除されるマップ数 | なし | なし | -| `map_update_execution_time` | マップの更新にかかる時間 | なし | なし | -| `maps_size_after` | マップの更新後のマップ数 | なし | なし | -| `is_updated_map` | マップが更新されたかどうか。マップの更新を実行できなかった場合、またはマップを更新する必要がなかった場合、`False` になります。 | なし | `is_updated_map` が `False` で `is_need_rebuild` が `True` | -| `is_set_map_points` | マップポイントが設定されているかどうか | 設定されていない | なし | -| `is_set_sensor_points` | センサーポイントが設定されているかどうか | 設定されていない | なし | -| `best_particle_score` | 粒子のベストスコア | なし | なし | -| `is_succeed_service` | サービスの処理が成功したかどうか | エラー | なし | +| 名前 | 説明 | 警告への遷移条件 | エラーへの遷移条件 | +| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ---------------------------------------------------------- | +| `service_call_time_stamp` | サービス呼び出しのタイムスタンプ | なし | なし | +| `is_succeed_transform_initial_pose` | 初期位置の変換に成功したかどうか | なし | エラー | +| `is_need_rebuild` | マップを再構築する必要があるかどうか。まだマップがロードされていない場合、または「`distance_last_update_position_to_current_position encounters`」がエラー状態の場合、マップの再構築が必要と見なされ、`is_need_rebuild` が `True` になります | なし | なし | +| `maps_size_before` | マップの更新前のマップ数 | なし | なし | +| `is_succeed_call_pcd_loader` | pcd_loader サービスの呼び出しに成功したかどうか | エラー | なし | +| `maps_to_add_size` | 追加されるマップ数 | なし | なし | +| `maps_to_remove_size` | 削除されるマップ数 | なし | なし | +| `map_update_execution_time` | マップの更新にかかる時間 | なし | なし | +| `maps_size_after` | マップの更新後のマップ数 | なし | なし | +| `is_updated_map` | マップが更新されたかどうか。マップの更新を実行できなかった場合、またはマップを更新する必要がなかった場合、`False` になります。 | なし | `is_updated_map` が `False` で `is_need_rebuild` が `True` | +| `is_set_map_points` | マップポイントが設定されているかどうか | 設定されていない | なし | +| `is_set_sensor_points` | センサーポイントが設定されているかどうか | 設定されていない | なし | +| `best_particle_score` | 粒子のベストスコア | なし | なし | +| `is_succeed_service` | サービスの処理が成功したかどうか | エラー | なし | ※ この診断はサービスが呼び出され時にのみ発行されるため、初期ポーズ推定が完了すると古くなります。 @@ -352,18 +352,17 @@ MULTI_NDT_SCOREモードでは、出力2D共分散のスケールを温度に応 drawing -| 項目 | 説明 | 警告状態への移行条件 | エラー状態への移行条件 | -| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| `timer_callback_time_stamp` | `timer_callback` の呼び出しタイムスタンプ | なし | なし | -| `is_activated` | ノードが "activate" 状態であるかどうか | "activate" 状態でない | なし | -| `is_set_last_update_position` | `last_update_position` が設定されているかどうか | 設定されてない | なし | -| `distance_last_update_position_to_current_position` | `last_update_position` から現在の位置までの距離 | なし | (距離 + `dynamic_map_loading.lidar_radius`) が `dynamic_map_loading.map_radius` より **大きい** | -| `is_need_rebuild` | マップを再構築する必要があるかどうか。まだマップが読み込まれていなかったり、`distance_last_update_position_to_current_position` がエラー状態を検出したりすると、マップを再構築する必要があり、`is_need_rebuild` が `True` になる。 | なし | なし | -| `maps_size_before` | マップ更新前のマップの数 | なし | なし | -| `is_succeed_call_pcd_loader` | `pcd_loader` サービスを呼び出すことに成功したかどうか | 失敗 | なし | -| `maps_to_add_size` | 追加するマップの数 | なし | なし | -| `maps_to_remove_size` | 削除するマップの数 | なし | なし | -| `map_update_execution_time` | マップ更新の時間 | なし | なし | -| `maps_size_after` | マップ更新後のマップの数 | なし | なし | -| `is_updated_map` | マップが更新されたかどうか。マップの更新が実行できなかったか、マップを更新する必要がなかった場合、`False` になる | なし | `is_updated_map` が `False` だが `is_need_rebuild` が `True` | - +| 項目 | 説明 | 警告状態への移行条件 | エラー状態への移行条件 | +| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------- | +| `timer_callback_time_stamp` | `timer_callback` の呼び出しタイムスタンプ | なし | なし | +| `is_activated` | ノードが "activate" 状態であるかどうか | "activate" 状態でない | なし | +| `is_set_last_update_position` | `last_update_position` が設定されているかどうか | 設定されてない | なし | +| `distance_last_update_position_to_current_position` | `last_update_position` から現在の位置までの距離 | なし | (距離 + `dynamic_map_loading.lidar_radius`) が `dynamic_map_loading.map_radius` より **大きい** | +| `is_need_rebuild` | マップを再構築する必要があるかどうか。まだマップが読み込まれていなかったり、`distance_last_update_position_to_current_position` がエラー状態を検出したりすると、マップを再構築する必要があり、`is_need_rebuild` が `True` になる。 | なし | なし | +| `maps_size_before` | マップ更新前のマップの数 | なし | なし | +| `is_succeed_call_pcd_loader` | `pcd_loader` サービスを呼び出すことに成功したかどうか | 失敗 | なし | +| `maps_to_add_size` | 追加するマップの数 | なし | なし | +| `maps_to_remove_size` | 削除するマップの数 | なし | なし | +| `map_update_execution_time` | マップ更新の時間 | なし | なし | +| `maps_size_after` | マップ更新後のマップの数 | なし | なし | +| `is_updated_map` | マップが更新されたかどうか。マップの更新が実行できなかったか、マップを更新する必要がなかった場合、`False` になる | なし | `is_updated_map` が `False` だが `is_need_rebuild` が `True` | diff --git a/localization/autoware_pose2twist/README.md b/localization/autoware_pose2twist/README.md index 7787ab9f9103..03e527110db7 100644 --- a/localization/autoware_pose2twist/README.md +++ b/localization/autoware_pose2twist/README.md @@ -10,10 +10,12 @@ ## 入出力 ### 入力 + - `/diff_poses`: 車両の過去の `post resampling` ポーズ順序(ジオリファレンス済み) - `/current_pose`: 車両の自車位置と姿勢(ジオリファレンス済み) ### 出力 + - `/twist`: 速度 - `/linear_x`: `twist.linear.x` の値 - `/linear_y`: `twist.linear.y` の値 @@ -29,8 +31,8 @@ - `/acceleration_error_rot`: 回転加速度逸脱量 - `/filtered_velocity`: フィルタリングされた速度 -| 名称 | 種別 | 説明 | -|---|---|---| +| 名称 | 種別 | 説明 | +| ---- | ------------------------------- | ------------------------------ | | pose | geometry_msgs::msg::PoseStamped | 速度計算に使用する姿勢のソース | ## 自動運転ソフトウェアドキュメント @@ -122,11 +124,11 @@ Autowareシステムは、以下の指標を使用して評価されます。 - 加速度逸脱量 - 速度逸脱量 -| 名前 | 種類 | 説明 | -| --------- | ------------------------------------- | --------------------------------------------- | +| 名前 | 種類 | 説明 | +| --------- | ------------------------------------- | -------------------------------------- | | twist | geometry_msgs::msg::TwistStamped | 入力された姿勢履歴から計算した捻り率。 | -| linear_x | tier4_debug_msgs::msg::Float32Stamped | 出力捻り率の線形 x フィールド。 | -| angular_z | tier4_debug_msgs::msg::Float32Stamped | 出力捻り率の角速度 z フィールド。 | +| linear_x | tier4_debug_msgs::msg::Float32Stamped | 出力捻り率の線形 x フィールド。 | +| angular_z | tier4_debug_msgs::msg::Float32Stamped | 出力捻り率の角速度 z フィールド。 | ## パラメータ @@ -135,4 +137,3 @@ Autowareシステムは、以下の指標を使用して評価されます。 ## 仮定 / 既知の制約 なし - diff --git a/localization/autoware_pose_covariance_modifier/README.md b/localization/autoware_pose_covariance_modifier/README.md index ea5d093c490b..b999c41f94ce 100644 --- a/localization/autoware_pose_covariance_modifier/README.md +++ b/localization/autoware_pose_covariance_modifier/README.md @@ -51,7 +51,6 @@ GNSS システムは、共分散測定に変換できる信頼性の高い標準 ローカリゼーションでは NDT ポーズのみが使用されます。GNSS ポーズは初期化にのみ使用されます。 - ```mermaid graph TD ndt_scan_matcher["ndt_scan_matcher"] --> |"/localization/pose_estimator/pose_with_covariance"| ekf_localizer["ekf_localizer"] @@ -68,7 +67,6 @@ class ekf_localizer cl_node; 以下に、プロセスと定義済みの閾値を示すフローチャートを示します。 - ```mermaid graph TD gnss_poser["gnss_poser"] --> |"/sensing/gnss/
pose_with_covariance"| pose_covariance_modifier_node @@ -133,19 +131,19 @@ class gnss_ndt_pose cl_output; ### サブスクライブするトピック -| 名称 | タイプ | 説明 | -| ------------------------------- | -------------------------------------------- | --------------------------- | -| `input_gnss_pose_with_cov_topic` | `geometry_msgs::msg::PoseWithCovarianceStamped` | GNSSポーズ入力トピック。 | -| `input_ndt_pose_with_cov_topic` | `geometry_msgs::msg::PoseWithCovarianceStamped` | NDTポーズ入力トピック。 | +| 名称 | タイプ | 説明 | +| -------------------------------- | ----------------------------------------------- | ------------------------ | +| `input_gnss_pose_with_cov_topic` | `geometry_msgs::msg::PoseWithCovarianceStamped` | GNSSポーズ入力トピック。 | +| `input_ndt_pose_with_cov_topic` | `geometry_msgs::msg::PoseWithCovarianceStamped` | NDTポーズ入力トピック。 | ### 発行トピック -| 名称 | 型 | 説明 | -| ------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | -| `output_pose_with_covariance_topic` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 出力姿勢トピック。このトピックはekf_localizerパッケージで使用されます。 | -| `selected_pose_type` | `std_msgs::msg::String` | このパッケージの出力でどの姿勢ソースが使用されるかを宣言します。 | -| `output/ndt_position_stddev` | `std_msgs::msg::Float64` | 出力姿勢のndt位置標準偏差の平均(x-y)。enable_debug_topicsがtrueの場合にのみ公開されます。 | -| `output/gnss_position_stddev` | `std_msgs::msg::Float64` | 出力姿勢のGNSS位置標準偏差の平均(x-y)。enable_debug_topicsがtrueの場合にのみ公開されます。 | +| 名称 | 型 | 説明 | +| ----------------------------------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `output_pose_with_covariance_topic` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 出力姿勢トピック。このトピックはekf_localizerパッケージで使用されます。 | +| `selected_pose_type` | `std_msgs::msg::String` | このパッケージの出力でどの姿勢ソースが使用されるかを宣言します。 | +| `output/ndt_position_stddev` | `std_msgs::msg::Float64` | 出力姿勢のndt位置標準偏差の平均(x-y)。enable_debug_topicsがtrueの場合にのみ公開されます。 | +| `output/gnss_position_stddev` | `std_msgs::msg::Float64` | 出力姿勢のGNSS位置標準偏差の平均(x-y)。enable_debug_topicsがtrueの場合にのみ公開されます。 | ### パラメーター @@ -164,19 +162,19 @@ GNSSポーズトピックはNDTよりも高い周波数を持つ場合があり 入力が次の周波数を持つと仮定します。 | 情報源 | 周波数 | -| ------ | --------- | -| GNSS | 200 Hz | -| NDT | 10 Hz | +| ------ | ------ | +| GNSS | 200 Hz | +| NDT | 10 Hz | このパッケージは、モードに応じて出力のポーズを発行します。 最終的な結果: -| モード | 出力周波数 | -|---|---| -| GNSSのみ | 200 Hz | -| GNSS + NDT | 210 Hz | -| NDTのみ | 10 Hz | +| モード | 出力周波数 | +| ---------- | ---------- | +| GNSSのみ | 200 Hz | +| GNSS + NDT | 210 Hz | +| NDTのみ | 10 Hz | ### NDT共分散値の上書き方法および時期 @@ -197,11 +195,11 @@ NDT共分散値は、以下の条件を満たした場合に上書きされま オブジェクトの障害物逸脱量がvelocity逸脱量よりも著しく大きい場合、速度が0である場合でも、オブジェクトの障害物逸脱量はゼロにはなりません。 -| モード | 出力、共分散 | -| ---------- | ------------------------------------------- | -| GNSS のみ | GNSS、修正なし | +| モード | 出力、共分散 | +| ---------- | --------------------------------- | +| GNSS のみ | GNSS、修正なし | | GNSS + NDT | **GNSS:** 修正なし、**NDT:** 補間 | -| NDT のみ | NDT、修正なし | +| NDT のみ | NDT、修正なし | NDT 共分散値は `GNSS + NDT` モードでのみ上書きされます。 @@ -223,4 +221,3 @@ NDT 共分散値は `GNSS + NDT` モードでのみ上書きされます。 - 最終値 = `ndt_std_dev_bound_lower` + `ndt_std_dev_bound_upper` - `ndt_std_dev_target` (逆数を求める) 範囲から範囲への lerp アニメーション - diff --git a/localization/autoware_pose_estimator_arbiter/README.md b/localization/autoware_pose_estimator_arbiter/README.md index bb79b7ae3d55..50e4450aa7fa 100644 --- a/localization/autoware_pose_estimator_arbiter/README.md +++ b/localization/autoware_pose_estimator_arbiter/README.md @@ -49,7 +49,6 @@ rosbagは[AWSIM](https://tier4.github.io/AWSIM/)によって作成されたシミュレーションデータです。 マップは、AWSIMのドキュメンテーションページで公開されている[オリジナルマップデータ](https://github.com/tier4/AWSIM/releases/download/v1.1.0/nishishinjuku_autoware_map.zip)を編集したもので、複数の`pose_estimators`に適したものになっています。 - ```bash ros2 launch autoware_launch logging_simulator.launch.xml \ map_path:= \ @@ -69,8 +68,8 @@ ros2 launch autoware_launch logging_simulator.launch.xml \ ### サービス -| 名称 | 種類 | 説明 | -| ----------------- | ------------------------------- | ------------------------------- | +| 名称 | 種類 | 説明 | +| ---------------- | ------------------------------- | ---------------------------- | | `/config_logger` | logging_demo::srv::ConfigLogger | ログレベルを変更するサービス | ### クライアント @@ -99,43 +98,49 @@ ros2 launch autoware_launch logging_simulator.launch.xml \ - Controller Client は Controller モジュールの Pub/Sub クライアントです。[autoware.control.command]から制御コマンドをサブスクライブし、[autoware.control.act]へメッセージをパブリッシュします。 -| 名称 | タイプ | 説明 | -| --------------------- | --------------------- | --------------------------------- | +| 名称 | タイプ | 説明 | +| --------------------- | --------------------- | ----------------------------------- | | `/yabloc_suspend_srv` | std_srv::srv::SetBool | Yabloc を停止または再開するサービス | ### サブスクリプション ポーズ推定アビトレーション用: -| 名称 | 型 | 説明 | -| ------------------------------------- | --------------------------------------------- | -------------- | -| `/input/artag/image` | sensor_msgs::msg::Image | ArTag入力 | -| `/input/yabloc/image` | sensor_msgs::msg::Image | YabLoc入力 | +| 名称 | 型 | 説明 | +| ------------------------------------- | --------------------------------------------- | ----------- | +| `/input/artag/image` | sensor_msgs::msg::Image | ArTag入力 | +| `/input/yabloc/image` | sensor_msgs::msg::Image | YabLoc入力 | | `/input/eagleye/pose_with_covariance` | geometry_msgs::msg::PoseWithCovarianceStamped | Eagleye出力 | -| `/input/ndt/pointcloud` | sensor_msgs::msg::PointCloud2 | NDT入力 | +| `/input/ndt/pointcloud` | sensor_msgs::msg::PointCloud2 | NDT入力 | -## 切り替えルール: +## 切り替えルール - **Planningモジュールの障害物認識障害:** + - 監視タスクが障害物を検出し、直前のPlanningのcycleから障害物認識障害が報告された場合 - Planningのcycle自体が障害物認識障害を出力した場合 - 障害物が自車位置から十分近い場合、または衝突する可能性がある場合 - **Planningのcycle障害:** + - Planningが指定の期間内に完了しなかった場合 - Planningが予測不可能または無効なプランを生成した場合 - **走行中のPlanningの速度逸脱量:** + - 走行中に planificate の速度が要求済み速度を超過した場合 - planificate が想定以上の加速を要求した場合 - **走行中のPlanningの加速度逸脱量:** + - 走行中に planificate の加速度が要求済み加速度を超過した場合 - **動作中のPlanningの逸脱:** + - Planningが走行中に停止など、不適切な動作を要求した場合 - **PlanningとConrolの異なる目標:** + - PlanningがControlモジュールに、要求された目標と異なる目標を送信すると報告された場合 - **`post resampling`の障害:** @@ -143,23 +148,22 @@ ros2 launch autoware_launch logging_simulator.launch.xml \ ## 自動運転ソフトウェア -| 名称 | 型 | 説明 | -| ----------------------------------- | ------------------------------------------------------------ | ------------------------------------------------ | -| `/input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップ | -| `/input/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | ローカリゼーション最終出力 | -| `/input/initialization_state` | `autoware_adapi_v1_msgs::msg::LocalizationInitializationState` | ローカリゼーション初期化状態 | +| 名称 | 型 | 説明 | +| ----------------------------- | -------------------------------------------------------------- | ---------------------------- | +| `/input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップ | +| `/input/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | ローカリゼーション最終出力 | +| `/input/initialization_state` | `autoware_adapi_v1_msgs::msg::LocalizationInitializationState` | ローカリゼーション初期化状態 | ### 論文 - -| 名前 | タイプ | 説明 | -| --------------------------------------- | -------------------------------------------- | ------------------------------------------------------- | -| `/output/artag/image` | sensor_msgs::msg::Image | 中継されたArTag入力 | -| `/output/yabloc/image` | sensor_msgs::msg::Image | 中継されたYabLoc入力 | -| `/output/eagleye/pose_with_covariance` | geometry_msgs::msg::PoseWithCovarianceStamped | 中継されたEagleye出力 | -| `/output/ndt/pointcloud` | sensor_msgs::msg::PointCloud2 | 中継されたNDT入力 | -| `/output/debug/marker_array` | visualization_msgs::msg::MarkerArray | [デバッグトピック] 視覚化のすべて | -| `/output/debug/string` | visualization_msgs::msg::MarkerArray | [デバッグトピック] 現在のステータスなどのデバッグ情報 | +| 名前 | タイプ | 説明 | +| -------------------------------------- | --------------------------------------------- | ----------------------------------------------------- | +| `/output/artag/image` | sensor_msgs::msg::Image | 中継されたArTag入力 | +| `/output/yabloc/image` | sensor_msgs::msg::Image | 中継されたYabLoc入力 | +| `/output/eagleye/pose_with_covariance` | geometry_msgs::msg::PoseWithCovarianceStamped | 中継されたEagleye出力 | +| `/output/ndt/pointcloud` | sensor_msgs::msg::PointCloud2 | 中継されたNDT入力 | +| `/output/debug/marker_array` | visualization_msgs::msg::MarkerArray | [デバッグトピック] 視覚化のすべて | +| `/output/debug/string` | visualization_msgs::msg::MarkerArray | [デバッグトピック] 現在のステータスなどのデバッグ情報 | @@ -169,7 +173,6 @@ ros2 launch autoware_launch logging_simulator.launch.xml \ > [!TIP] - > ```bash > ros2 service call /localization/autoware_pose_estimator_arbiter/config_logger logging_demo/srv/ConfigLogger \ > '{logger_name: localization.autoware_pose_estimator_arbiter, level: debug}' @@ -230,7 +233,6 @@ ArTag ストッパーは、ランドマークローカルライザの前にあ ユーザーは、ランタイム引数 `pose_source` にアンダースコアの連結として `pose_estimator` 名を渡すことで、目的の `pose_estimators` を起動できます。 - ```bash ros2 launch autoware_launch logging_simulator.launch.xml \ map_path:= \ @@ -242,14 +244,14 @@ ros2 launch autoware_launch logging_simulator.launch.xml \ 予期しない文字列が `pose_source` に含まれていた場合でも、適切にフィルタされます。 詳細は下記の表を参照してください。 -| 実行時引数 | autoware_pose_estimator_arbiterのパラメータ(pose_source) | -| ----------- | --------------------------------------------------------- | -| `pose_source:=ndt` | `["ndt"]` | -| `pose_source:=nan` | `[]` | -| `pose_source:=yabloc_ndt` | `["ndt","yabloc"]` | -| `pose_source:=yabloc_ndt_ndt_ndt` | `["ndt","yabloc"]` | -| `pose_source:=ndt_yabloc_eagleye` | `["ndt","yabloc","eagleye"]` | -| `pose_source:=ndt_yabloc_nan_eagleye_artag` | `["ndt","yabloc","eagleye","artag"]` | +| 実行時引数 | autoware_pose_estimator_arbiterのパラメータ(pose_source) | +| ------------------------------------------- | -------------------------------------------------------- | +| `pose_source:=ndt` | `["ndt"]` | +| `pose_source:=nan` | `[]` | +| `pose_source:=yabloc_ndt` | `["ndt","yabloc"]` | +| `pose_source:=yabloc_ndt_ndt_ndt` | `["ndt","yabloc"]` | +| `pose_source:=ndt_yabloc_eagleye` | `["ndt","yabloc","eagleye"]` | +| `pose_source:=ndt_yabloc_nan_eagleye_artag` | `["ndt","yabloc","eagleye","artag"]` | ## 切り替えルール @@ -266,7 +268,6 @@ ros2 launch autoware_launch logging_simulator.launch.xml \ これは既定で最もシンプルなルールです。このルールは、現在の状態に関係なく、すべての pose_estimator を有効にします。 - ```mermaid flowchart LR A{ } @@ -292,25 +293,26 @@ flowchart LR 自車位置推定器の組み合わせを指定するだけで、pose_initializer に適切なパラメータが自動的に与えられます。 - **Autoware 開発者:** Autoware 開発者は、どのパラメータが割り当てられているかを知るためにこの表を参照できます。 - **新しい自車位置推定スイッチを実装する人:** -開発者は、この表を拡張し、pose_initializer に適切なパラメータを割り当てるように実装する必要があります。 + 開発者は、この表を拡張し、pose_initializer に適切なパラメータを割り当てるように実装する必要があります。 + -| pose_source | invoked initialization method | `ndt_enabled` | `yabloc_enabled` | `gnss_enabled` | `sub_gnss_pose_cov` | -| :-------------------------: | ----------------------------- | ------------- | ---------------- | -------------- | -------------------------------------------- | -| ndt | ndt | true | false | true | /sensing/gnss/pose_with_covariance | -| yabloc | yabloc | false | true | true | /sensing/gnss/pose_with_covariance | +| pose_source | invoked initialization method | `ndt_enabled` | `yabloc_enabled` | `gnss_enabled` | `sub_gnss_pose_cov` | +| :-------------------------: | ------------------------------------ | ------------- | ---------------- | -------------- | -------------------------------------------- | +| ndt | ndt | true | false | true | /sensing/gnss/pose_with_covariance | +| yabloc | yabloc | false | true | true | /sensing/gnss/pose_with_covariance | | eagleye | 車両はしばらく走行する必要があります | false | false | true | /localization/pose_estimator/eagleye/... | -| artag | 2D 姿勢推定(RViz) | false | false | true | /sensing/gnss/pose_with_covariance | -| ndt, yabloc | ndt | true | true | true | /sensing/gnss/pose_with_covariance | -| ndt, eagleye | ndt | true | false | true | /sensing/gnss/pose_with_covariance | -| ndt, artag | ndt | true | false | true | /sensing/gnss/pose_with_covariance | -| yabloc, eagleye | yabloc | false | true | true | /sensing/gnss/pose_with_covariance | -| yabloc, artag | yabloc | false | true | true | /sensing/gnss/pose_with_covariance | +| artag | 2D 姿勢推定(RViz) | false | false | true | /sensing/gnss/pose_with_covariance | +| ndt, yabloc | ndt | true | true | true | /sensing/gnss/pose_with_covariance | +| ndt, eagleye | ndt | true | false | true | /sensing/gnss/pose_with_covariance | +| ndt, artag | ndt | true | false | true | /sensing/gnss/pose_with_covariance | +| yabloc, eagleye | yabloc | false | true | true | /sensing/gnss/pose_with_covariance | +| yabloc, artag | yabloc | false | true | true | /sensing/gnss/pose_with_covariance | | eagleye, artag | 車両はしばらく走行する必要があります | false | false | true | /localization/pose_estimator/eagleye/pose... | -| ndt, yabloc, eagleye | ndt | true | true | true | /sensing/gnss/pose_with_covariance | -| ndt, eagleye, artag | ndt | true | false | true | /sensing/gnss/pose_with_covariance | -| yabloc, eagleye, artag | yabloc | false | true | true | /sensing/gnss/pose_with_covariance | -| ndt, yabloc, eagleye, artag | ndt | true | true | true | /sensing/gnss/pose_with_covariance | +| ndt, yabloc, eagleye | ndt | true | true | true | /sensing/gnss/pose_with_covariance | +| ndt, eagleye, artag | ndt | true | false | true | /sensing/gnss/pose_with_covariance | +| yabloc, eagleye, artag | yabloc | false | true | true | /sensing/gnss/pose_with_covariance | +| ndt, yabloc, eagleye, artag | ndt | true | true | true | /sensing/gnss/pose_with_covariance | ## 今後の計画 @@ -335,4 +337,3 @@ pose_estimator に大量の計算を伴う時系列処理が含まれている この問題は複数の pose_estimator を実現するための基本的な問題であり、この場合に提案されたアーキテクチャに関係なく発生することに注意してください。 - diff --git a/localization/autoware_pose_estimator_arbiter/example_rule/README.md b/localization/autoware_pose_estimator_arbiter/example_rule/README.md index d1e42b38109d..0acc5f7f2bf7 100644 --- a/localization/autoware_pose_estimator_arbiter/example_rule/README.md +++ b/localization/autoware_pose_estimator_arbiter/example_rule/README.md @@ -12,7 +12,6 @@ ### Pcdマップを使用したルール - ```mermaid flowchart LR A{PCD is enough dense } @@ -30,43 +29,42 @@ flowchart LR **1.2. 利点** -* 道路ネットワーク上の走行経路生成を正確化します。 -* 交通状況に適応して安全で効率的な走行を実現します。 +- 道路ネットワーク上の走行経路生成を正確化します。 +- 交通状況に適応して安全で効率的な走行を実現します。 **2. アーキテクチャ** ベクトルマップベースルール機能は、以下のコンポーネントで構成されています。 -* **ベクトルマップ解析器:** ベクトルマップから道路ネットワーク情報を抽出します。 -* **ルール処理:** 道路ネットワーク制約に基づいて走行経路にルールを適用します。 +- **ベクトルマップ解析器:** ベクトルマップから道路ネットワーク情報を抽出します。 +- **ルール処理:** 道路ネットワーク制約に基づいて走行経路にルールを適用します。 **3. ルール** ベクトルマップベースルール機能は、次のようなルールを走行経路に適用します。 -* **車線逸脱量:** 車線境界からの逸脱量を制限します。 -* **加速逸脱量:** 加速に関する制限を適用します。 -* **速度逸脱量:** 速度に関する制限を適用します。 -* **停止線遵守:** 停止線で車両を停止させます。 -* **優先順位付き交差点:** 交差点における優先順位を遵守します。 +- **車線逸脱量:** 車線境界からの逸脱量を制限します。 +- **加速逸脱量:** 加速に関する制限を適用します。 +- **速度逸脱量:** 速度に関する制限を適用します。 +- **停止線遵守:** 停止線で車両を停止させます。 +- **優先順位付き交差点:** 交差点における優先順位を遵守します。 **4. 使用方法** ベクトルマップベースルール機能を使用するには、次の手順に従います。 -* Autoware.Autoのルート設定ファイルでベクトルマップパスを指定します。 -* ナビゲーションコンポーネントを有効にします。 -* `post resampling`を使用している場合は、Planningパラメータを設定してベクトルマップベースのルールを有効にします。 +- Autoware.Autoのルート設定ファイルでベクトルマップパスを指定します。 +- ナビゲーションコンポーネントを有効にします。 +- `post resampling`を使用している場合は、Planningパラメータを設定してベクトルマップベースのルールを有効にします。 **5. 制限事項** -* ベクトルの品質に依存します。 -* すべての道路をカバーしていない場合があります。 +- ベクトルの品質に依存します。 +- すべての道路をカバーしていない場合があります。 **6. 関連ドキュメント** -* [Autoware.Autoドキュメント](https://autoware.github.io/autoware.auto/) - +- [Autoware.Autoドキュメント](https://autoware.github.io/autoware.auto/) ```mermaid flowchart LR @@ -95,7 +93,6 @@ flowchart LR エリアが正しく読み取られていることを確認するには、エリアのタイプを「`pose_estimator_specify`」にして、サブタイプをndt、yabloc、eagleye、またはartagのいずれかにします。 - ```xml @@ -145,4 +142,3 @@ flowchart LR ``` - diff --git a/localization/autoware_pose_initializer/README.md b/localization/autoware_pose_initializer/README.md index 4bdf0d275cba..2ced2cf100fb 100644 --- a/localization/autoware_pose_initializer/README.md +++ b/localization/autoware_pose_initializer/README.md @@ -12,64 +12,69 @@ ### サービス -| 名前 | タイプ | 説明 | -| -------------------------- | ---------------------------------------------------- | ----------------------- | -| `/localization/initialize` | tier4_localization_msgs::srv::InitializeLocalization | APIからの初期位置 | +| 名前 | タイプ | 説明 | +| -------------------------- | ---------------------------------------------------- | ----------------- | +| `/localization/initialize` | tier4_localization_msgs::srv::InitializeLocalization | APIからの初期位置 | ### クライアント -| 名称 | タイプ | 説明 | -| --------------------------------------- | --------------------------------------------------------- | ------------------------- | -| `/localization/pose_estimator/ndt_align_srv` | tier4_localization_msgs::srv::PoseWithCovarianceStamped | 位推定サービス | +| 名称 | タイプ | 説明 | +| -------------------------------------------- | ------------------------------------------------------- | -------------- | +| `/localization/pose_estimator/ndt_align_srv` | tier4_localization_msgs::srv::PoseWithCovarianceStamped | 位推定サービス | ### サブスクリプション - - -| 名称 | タイプ | 説明 | -|---|---|---| -| `/sensing/gnss/pose_with_covariance` | geometry_msgs::msg::PoseWithCovarianceStamped | GNSSから取得した自車位置 | -| `/sensing/vehicle_velocity_converter/twist_with_covariance` | geometry_msgs::msg::TwistStamped | 停止確認用の速度 | +| 名称 | タイプ | 説明 | +| ----------------------------------------------------------- | --------------------------------------------- | ------------------------ | +| `/sensing/gnss/pose_with_covariance` | geometry_msgs::msg::PoseWithCovarianceStamped | GNSSから取得した自車位置 | +| `/sensing/vehicle_velocity_converter/twist_with_covariance` | geometry_msgs::msg::TwistStamped | 停止確認用の速度 | ### 論文 ### Autoware の技術スタック + Autoware は、自動運転車両の開発と実装のためのオープンソースソフトウェアプラットフォームです。以下に、主なコンポーネントとモジュールをリストします。 #### Planning -* **Motion Planning:** 車両の安全で効率的な経路を生成します。 -* **Behavior Planning:** 車両の挙動を決定し、障害物回避や速度調整を行います。 + +- **Motion Planning:** 車両の安全で効率的な経路を生成します。 +- **Behavior Planning:** 車両の挙動を決定し、障害物回避や速度調整を行います。 #### Perception -* **Object Detection (2D/3D):** センサーからのデータを使用して、車両周辺の物体(歩行者、車両、障害物など)を検出します。 -* **Lane Detection:** カメラ画像を使用して、道路上の車線を検出します。 -* **Free Space Estimation:** 車両周辺の走行可能な領域を推定します。 + +- **Object Detection (2D/3D):** センサーからのデータを使用して、車両周辺の物体(歩行者、車両、障害物など)を検出します。 +- **Lane Detection:** カメラ画像を使用して、道路上の車線を検出します。 +- **Free Space Estimation:** 車両周辺の走行可能な領域を推定します。 #### Control -* **Longitudinal Control:** 車両の縦方向運動(加速度、減速度)を制御します。 -* **Lateral Control:** 車両の横方向運動(ステアリング)を制御します。 -* **Path Tracking:** 生成されたパスに従って車両を誘導します。 + +- **Longitudinal Control:** 車両の縦方向運動(加速度、減速度)を制御します。 +- **Lateral Control:** 車両の横方向運動(ステアリング)を制御します。 +- **Path Tracking:** 生成されたパスに従って車両を誘導します。 #### Localization -* **Odometry:** IMUやGNSSなどのセンサーを使用して、自車位置を推定します。 -* **Mapping:** 環境の地図を作成し、自車位置をローカライズするために使用します。 -* **Loop Closure Detection:** 地図内のループを検出し、ローカライゼーションの精度を向上させます。 + +- **Odometry:** IMUやGNSSなどのセンサーを使用して、自車位置を推定します。 +- **Mapping:** 環境の地図を作成し、自車位置をローカライズするために使用します。 +- **Loop Closure Detection:** 地図内のループを検出し、ローカライゼーションの精度を向上させます。 #### Sensor Interface -* **Sensor Fusion:** 複数のセンサーからのデータを統合し、より正確で堅牢な認識情報を作成します。 -* **'Post Resampling' Sensor Fusion:** センサーデータの処理を最適化して、リアルタイムパフォーマンスを向上させます。 + +- **Sensor Fusion:** 複数のセンサーからのデータを統合し、より正確で堅牢な認識情報を作成します。 +- **'Post Resampling' Sensor Fusion:** センサーデータの処理を最適化して、リアルタイムパフォーマンスを向上させます。 #### Software Architecture -* **ROS 2:** Autoware のコアアーキテクチャとして使用される、堅牢でスケーラブルなミドルウェア。 -* **DDS:** データをリアルタイムで配信するための高性能ミドルウェア。 -* **Python:** スクリプティングや構成に使用されます。 -* **C++:** リアルタイムコンポーネントやカーネルモジュールに使用されます。 - -| 名称 | 型 | 説明 | -| ------------------------------------ | ------------------------------------------------------------ | --------------------------- | -| `/localization/initialization_state` | autoware_adapi_v1_msgs::msg::LocalizationInitializationState | 位相初期化状態 | + +- **ROS 2:** Autoware のコアアーキテクチャとして使用される、堅牢でスケーラブルなミドルウェア。 +- **DDS:** データをリアルタイムで配信するための高性能ミドルウェア。 +- **Python:** スクリプティングや構成に使用されます。 +- **C++:** リアルタイムコンポーネントやカーネルモジュールに使用されます。 + +| 名称 | 型 | 説明 | +| ------------------------------------ | ------------------------------------------------------------ | ---------------------- | +| `/localization/initialization_state` | autoware_adapi_v1_msgs::msg::LocalizationInitializationState | 位相初期化状態 | | `/initialpose3d` | geometry_msgs::msg::PoseWithCovarianceStamped | 計算された自車初期位相 | -| `/diagnostics` | diagnostic_msgs::msg::DiagnosticArray | 診断 | +| `/diagnostics` | diagnostic_msgs::msg::DiagnosticArray | 診断 | ## 診断 @@ -89,7 +94,6 @@ Autoware は、自動運転車両の開発と実装のためのオープンソ ### GNSS推定位置の使用 - ```bash ros2 service call /localization/initialize tier4_localization_msgs/srv/InitializeLocalization ``` @@ -98,7 +102,6 @@ GNSS 推定位置は初期推測として使用され、局所化アルゴリズ ### 入力位置の使用 - ```bash ros2 service call /localization/initialize tier4_localization_msgs/srv/InitializeLocalization " pose_with_covariance: @@ -124,7 +127,6 @@ method: 0 ### 直接的な初期位置セット - ```bash ros2 service call /localization/initialize tier4_localization_msgs/srv/InitializeLocalization " pose_with_covariance: @@ -150,7 +152,6 @@ method: 1 ### Via ros2 トピックの送信 - ```bash ros2 topic pub --once /initialpose geometry_msgs/msg/PoseWithCovarianceStamped " header: @@ -171,4 +172,3 @@ pose: 「initialpose (rviz から)」と同じ動作をします。 [ad_api_adaptors](https://github.com/autowarefoundation/autoware.universe/tree/main/system/default_ad_api_helpers/ad_api_adaptors) によって position.z と共分散が上書きされるため、それらを入力する必要はありません。 - diff --git a/localization/autoware_pose_instability_detector/README.md b/localization/autoware_pose_instability_detector/README.md index 55b82c9b702f..2a006e405992 100644 --- a/localization/autoware_pose_instability_detector/README.md +++ b/localization/autoware_pose_instability_detector/README.md @@ -57,13 +57,13 @@ $$ \tau_x = v_{\rm max}\frac{\beta_v}{100} \Delta t + \epsilon_x\\ $$ -| 記号 | 説明 | 単位 | -| ------------- | -------------------------------------------------------------------------------- | ----- | -| $\tau_x$ | 縦軸方向の差のしきい値 | m | -| $v_{\rm max}$ | 最大速度 | m/s | -| $\beta_v$ | 最大速度の許容スケールファクター | $\%$ | -| $\Delta t$ | 時間間隔 | s | -| $\epsilon_x$ | 姿勢推定器(例:ndt_scan_matcher)の縦軸方向の誤差許容値 | m | +| 記号 | 説明 | 単位 | +| ------------- | -------------------------------------------------------- | ---- | +| $\tau_x$ | 縦軸方向の差のしきい値 | m | +| $v_{\rm max}$ | 最大速度 | m/s | +| $\beta_v$ | 最大速度の許容スケールファクター | $\%$ | +| $\Delta t$ | 時間間隔 | s | +| $\epsilon_x$ | 姿勢推定器(例:ndt_scan_matcher)の縦軸方向の誤差許容値 | m | ### `diff_position_y` および `diff_position_z` @@ -79,11 +79,11 @@ $$ \tau_y = l + \epsilon_y $$ -| シンボル | 説明 | 単位 | -| ------------ | ----------------------------------------------------------------------------------------------- | ---- | -| $\tau_y$ | 横軸誤差の閾値 | $m$ | -| $l$ | 上記の画像で示される最大横方向距離 (計算方法は付録を参照) | $m$ | -| $\epsilon_y$ | ポーズ推定器 (例: ndt_scan_matcher) の横軸方向での許容誤差 | $m$ | +| シンボル | 説明 | 単位 | +| ------------ | ---------------------------------------------------------- | ---- | +| $\tau_y$ | 横軸誤差の閾値 | $m$ | +| $l$ | 上記の画像で示される最大横方向距離 (計算方法は付録を参照) | $m$ | +| $\epsilon_y$ | ポーズ推定器 (例: ndt_scan_matcher) の横軸方向での許容誤差 | $m$ | `pose_instability_detector`では、y軸のしきい値はx軸と同じ値に設定されています。相違するのはpose estimatorの誤差許容度だけです。 @@ -95,16 +95,16 @@ $$ \tau_\phi = \tau_\theta = \tau_\psi = \left(\omega_{\rm max}\frac{\beta_\omega}{100} + b \right) \Delta t + \epsilon_\psi $$ -| 記号 | 説明 | 単位 | -|---|---|---| -| $\tau_\phi$ | ロール角差のしきい値 | rad | -| $\tau_\theta$ | ピッチ角差のしきい値 | rad | -| $\tau_\psi$ | ヨー角差のしきい値 | rad | -| $\omega_{\rm max}$ | 最大角速度 | rad/s | -| $\beta_\omega$ | 最大角速度の許容スケール誤差 | % | -| $b$ | 角速度のバイアス許容値 | rad/s | -| $\Delta t$ | 時間間隔 | s | -| $\epsilon_\psi$ | 姿勢推定器(例:ndt_scan_matcher)のヨー角エラー許容値 | rad | +| 記号 | 説明 | 単位 | +| ------------------ | ------------------------------------------------------ | ----- | +| $\tau_\phi$ | ロール角差のしきい値 | rad | +| $\tau_\theta$ | ピッチ角差のしきい値 | rad | +| $\tau_\psi$ | ヨー角差のしきい値 | rad | +| $\omega_{\rm max}$ | 最大角速度 | rad/s | +| $\beta_\omega$ | 最大角速度の許容スケール誤差 | % | +| $b$ | 角速度のバイアス許容値 | rad/s | +| $\Delta t$ | 時間間隔 | s | +| $\epsilon_\psi$ | 姿勢推定器(例:ndt_scan_matcher)のヨー角エラー許容値 | rad | ## パラメーター @@ -112,10 +112,10 @@ $$ ## 入力 -| 名称 | 型 | 説明 | -| -------------------- | ----------------------------------------------- | --------------------- | -| `~/input/odometry` | `nav_msgs::msg::Odometry` | EKFにより推定された姿勢 | -| `~/input/twist` | `geometry_msgs::msg::TwistWithCovarianceStamped` | ひねりだけでなく速度も表す | +| 名称 | 型 | 説明 | +| ------------------ | ------------------------------------------------ | -------------------------- | +| `~/input/odometry` | `nav_msgs::msg::Odometry` | EKFにより推定された姿勢 | +| `~/input/twist` | `geometry_msgs::msg::TwistWithCovarianceStamped` | ひねりだけでなく速度も表す | ## 出力 @@ -125,9 +125,9 @@ $$ 私たちのソフトウェアは、安全で効率的な自動運転を実現するために必要なすべてのモジュールを含んでいます。これらは、以下のコンポーネントで構成されています。 -* **Planning (計画)**: パスを生成し、速度プロフィールを決定します。 -* **Control (制御)**: 計画されたパスに従って車両を制御します。 -* **Perception (認識)**: 周囲環境を認識し、障害物や道路標識を検出します。 +- **Planning (計画)**: パスを生成し、速度プロフィールを決定します。 +- **Control (制御)**: 計画されたパスに従って車両を制御します。 +- **Perception (認識)**: 周囲環境を認識し、障害物や道路標識を検出します。 ### 2. アーキテクチャ @@ -157,9 +157,9 @@ Perceptionモジュールは、LIDARとカメラデータを使用して、障 私たちのソフトウェアは、以下の安全性機能を備えています。 -* **障害物検出**: 周囲の障害物を検出し、衝突を回避します。 -* **速度制限**: 設定された速度制限を超えないように車両を制御します。 -* **自己診断**: システムのコンポーネントを監視し、異常を検出します。 +- **障害物検出**: 周囲の障害物を検出し、衝突を回避します。 +- **速度制限**: 設定された速度制限を超えないように車両を制御します。 +- **自己診断**: システムのコンポーネントを監視し、異常を検出します。 ### 6. 性能 @@ -175,13 +175,13 @@ Planningモジュールは、障害物を効果的に回避し、安全なパス 自動運転ソフトウェアの開発には、以下のような課題があります。 -* **障害物の検出**: すべての種類の障害物を確実に検出することは困難な場合があります。 -* **Planing**: 障害物が多い環境では、安全で効率的なパスを生成するのは困難な場合があります。 -* **安全性**: 自動運転車両は、あらゆる状況で安全に行動する必要があります。 +- **障害物の検出**: すべての種類の障害物を確実に検出することは困難な場合があります。 +- **Planing**: 障害物が多い環境では、安全で効率的なパスを生成するのは困難な場合があります。 +- **安全性**: 自動運転車両は、あらゆる状況で安全に行動する必要があります。 私たちは、これらの課題に取り組み、私たちのソフトウェアを継続的に改善しています。 -| 名前 | タイプ | 説明 | +| 名前 | タイプ | 説明 | | ------------------- | ------------------------------------- | ----------- | | `~/debug/diff_pose` | geometry_msgs::msg::PoseStamped | diff_pose | | `/diagnostics` | diagnostic_msgs::msg::DiagnosticArray | Diagnostics | @@ -190,7 +190,7 @@ Planningモジュールは、障害物を効果的に回避し、安全なパス 最大横距離 $l$ の計算では、`pose_instability_detector` ノードは次の姿勢を推定します。 -| 自車位置 | heading速度 $v$ | angular速度 $\omega$ | +| 自車位置 | heading速度 $v$ | angular速度 $\omega$ | | ------------------------------- | ------------------------------------------------ | -------------------------------------------------------------- | | Nominalデッドレコニング位置 | $v_{\rm max}$ | $\omega_{\rm max}$ | | コーナーAのデッドレコニング位置 | $\left(1+\frac{\beta_v}{100}\right) v_{\rm max}$ | $\left(1+\frac{\beta_\omega}{100}\right) \omega_{\rm max} + b$ | @@ -227,4 +227,3 @@ $$ $$ 各コーナーについてこの変動を計算し、予測航法ポーズとコーナーポーズの距離を比較することで、横距離 $l$ の最大値を取得します。 - diff --git a/localization/autoware_stop_filter/README.md b/localization/autoware_stop_filter/README.md index 912946ed52de..759aaaecc548 100644 --- a/localization/autoware_stop_filter/README.md +++ b/localization/autoware_stop_filter/README.md @@ -12,12 +12,14 @@ ### 入力 -| 名称 | タイプ | 説明 | -| ------------ | ------------------------- | --------------------- | +| 名称 | タイプ | 説明 | +| ------------ | ------------------------- | ------------------------------ | | `input/odom` | `nav_msgs::msg::Odometry` | ローカライゼーションオドメトリ | ### 出力 + #### ドキュメント: 自動運転ソフトウェア概要 + **URL:** 自動運転ソフトウェアは、車両の安全で効率的な自動運転を可能にするソフトウェアシステムです。このドキュメントでは、Autowareのアーキテクチャ、コンポーネント、インターフェイスについて説明します。 @@ -26,42 +28,42 @@ Autowareは、モジュール式で階層的なアーキテクチャを採用しています。各モジュールは、特定の機能を実行し、他のモジュールとインターフェイスします。主なモジュールを以下に示します。 -* **Perception:** センサーデータから環境認識を実行します。 -* **Localization:** GNSS、IMU、LiDARなどのセンサーを統合して自車位置を推定します。 -* **Planning:** 安全で効率的な経路を生成します。 -* **Control:** 計画された経路に従って車両を制御します。 -* **Behavior Planning:** ハザード回避、車線変更などの高レベルの動作を決定します。 -* **Decision Making:** PerceptionとPlanningの出力を統合して運転判断を下します。 +- **Perception:** センサーデータから環境認識を実行します。 +- **Localization:** GNSS、IMU、LiDARなどのセンサーを統合して自車位置を推定します。 +- **Planning:** 安全で効率的な経路を生成します。 +- **Control:** 計画された経路に従って車両を制御します。 +- **Behavior Planning:** ハザード回避、車線変更などの高レベルの動作を決定します。 +- **Decision Making:** PerceptionとPlanningの出力を統合して運転判断を下します。 **コンポーネント** Autowareの主なコンポーネントを以下に示します。 -* **Node Manager:** ノード間の通信を管理します。 -* **Estimator:** IMU、GNSS、LiDARデータを使用して車両の動きを推定します。 -* **Perception:** LiDAR、カメラ、レーダーデータからオブジェクトを検出し、分類します。 -* **Map:** 経路計画に使用される環境マップを提供します。 -* **Planning:** 経路の選択、速度計画を実行します。 -* **Control:** ステアリング、アクセル、ブレーキを制御します。 -* **Safety Monitor:** システムの健全性を監視し、異常が発生した場合に介入します。 +- **Node Manager:** ノード間の通信を管理します。 +- **Estimator:** IMU、GNSS、LiDARデータを使用して車両の動きを推定します。 +- **Perception:** LiDAR、カメラ、レーダーデータからオブジェクトを検出し、分類します。 +- **Map:** 経路計画に使用される環境マップを提供します。 +- **Planning:** 経路の選択、速度計画を実行します。 +- **Control:** ステアリング、アクセル、ブレーキを制御します。 +- **Safety Monitor:** システムの健全性を監視し、異常が発生した場合に介入します。 **インターフェイス** Autowareのコンポーネントは、ROS(Robot Operating System)を使用して相互に通信します。主なインターフェイスを以下に示します。 -* **/current_pose:** 自車位置と姿勢 -* **/detected_objects:** 感知されたオブジェクトの情報 -* **/planned_path:** 計画された経路 -* **/control_command:** 車両の制御コマンド -* **/safety_status:** システムの健全性に関する情報 +- **/current_pose:** 自車位置と姿勢 +- **/detected_objects:** 感知されたオブジェクトの情報 +- **/planned_path:** 計画された経路 +- **/control_command:** 車両の制御コマンド +- **/safety_status:** システムの健全性に関する情報 **逸脱量** AutowareのPlanningコンポーネントは、経路計画中に以下のような逸脱量を考慮します。 -* velocity_deceleration:** 速度逸脱量 -* acceleration_deceleration:** 加速度逸脱量 -* jerk_deceleration:** ジャーク逸脱量 +- velocity_deceleration:\*\* 速度逸脱量 +- acceleration_deceleration:\*\* 加速度逸脱量 +- jerk_deceleration:\*\* ジャーク逸脱量 **'post resampling'** @@ -71,15 +73,14 @@ Planningコンポーネントは、Planningされた経路を'post resampling' Autowareの詳細については、以下のリソースを参照してください。 -* [Autoware公式サイト](https://www.autoware.org) -* [Autowareドキュメント](https://docs.autoware.org/) +- [Autoware公式サイト](https://www.autoware.org) +- [Autowareドキュメント](https://docs.autoware.org/) -| 名前 | 型 | 説明 | -| ----------------- | ------------------------------------- | ---------------------------------------------------------- | -| `output/odom` | `nav_msgs::msg::Odometry` | 縦方向とヨー方向のツイストが抑制されたオドメトリ | -| `debug/stop_flag` | `tier4_debug_msgs::msg::BoolStamped` | 車両が停止しているかどうかを示すフラグ | +| 名前 | 型 | 説明 | +| ----------------- | ------------------------------------ | ------------------------------------------------ | +| `output/odom` | `nav_msgs::msg::Odometry` | 縦方向とヨー方向のツイストが抑制されたオドメトリ | +| `debug/stop_flag` | `tier4_debug_msgs::msg::BoolStamped` | 車両が停止しているかどうかを示すフラグ | ## パラメータ {{ json_to_markdown("localization/autoware_stop_filter/schema/stop_filter.schema.json") }} - diff --git a/localization/autoware_twist2accel/README.md b/localization/autoware_twist2accel/README.md index 8c66fb02f424..6bbb5bbff44d 100644 --- a/localization/autoware_twist2accel/README.md +++ b/localization/autoware_twist2accel/README.md @@ -8,10 +8,10 @@ ### 入力 -| 名前 | タイプ | 説明 | -| ------------- | ----------------------------------------------- | --------------- | +| 名前 | タイプ | 説明 | +| ------------- | ------------------------------------------------ | ---------------------------- | | `input/odom` | `nav_msgs::msg::Odometry` | ローカリゼーションオドメトリ | -| `input/twist` | `geometry_msgs::msg::TwistWithCovarianceStamped` | ツイスト | +| `input/twist` | `geometry_msgs::msg::TwistWithCovarianceStamped` | ツイスト | ### 出力 @@ -25,37 +25,37 @@ Planningモジュールは、自車の将来的なパスを生成する責任を負います。以下のサブモジュールで構成されます。 -* **Path Planning:** 自車の経路を生成します。 -* **Behavior Planning:** 自車の速度と加速度のトラジェクトリを生成します。 -* **Trajectory Optimization:** `post resampling`と加速度滑ら化を使用して、トラジェクトリを最適化します。 +- **Path Planning:** 自車の経路を生成します。 +- **Behavior Planning:** 自車の速度と加速度のトラジェクトリを生成します。 +- **Trajectory Optimization:** `post resampling`と加速度滑ら化を使用して、トラジェクトリを最適化します。 **3. Predictionモジュール** Predictionモジュールは、周囲環境の動的物体を予測する責任を負います。次のサブモジュールで構成されます。 -* **Object Tracking:** レーザーセンサーとカメラ画像を使用して、周囲の物体を追跡します。 -* **Motion Forecasting:** 物体の将来的な運動を予測します。 -* **Intent Recognition:** 物体の意図を認識し、それらの将来的な行動を予測します。 +- **Object Tracking:** レーザーセンサーとカメラ画像を使用して、周囲の物体を追跡します。 +- **Motion Forecasting:** 物体の将来的な運動を予測します。 +- **Intent Recognition:** 物体の意図を認識し、それらの将来的な行動を予測します。 **4. Controlモジュール** Controlモジュールは、Planningモジュールで生成されたパスおよびトラジェクトリに基づいて、車両を制御します。次のサブモジュールで構成されます。 -* **Lateral Control:** 車両の横方向の運動を制御します。 -* **Longitudinal Control:** 車両の縦方向の運動を制御します。 -* **Safety Monitor:** 安全性を確保し、必要に応じて緊急停止します。 +- **Lateral Control:** 車両の横方向の運動を制御します。 +- **Longitudinal Control:** 車両の縦方向の運動を制御します。 +- **Safety Monitor:** 安全性を確保し、必要に応じて緊急停止します。 **5. パフォーマンス評価** 自動運転ソフトウェアのパフォーマンスは、以下の指標を使用して評価されます。 -* **障害物回避距離:** 自車が障害物を検出して回避するまでの距離。 -* **速度逸脱量:** 自車の実際の速度と理想的な速度との差。 -* **加速度逸脱量:** 自車の実際の加速度と理想的な加速度との差。 -* **追従距離逸脱量:** 自車と前走車との距離の差。 +- **障害物回避距離:** 自車が障害物を検出して回避するまでの距離。 +- **速度逸脱量:** 自車の実際の速度と理想的な速度との差。 +- **加速度逸脱量:** 自車の実際の加速度と理想的な加速度との差。 +- **追従距離逸脱量:** 自車と前走車との距離の差。 -| 名称 | 型 | 説明 | -| -------------- | ------------------------------------------------ | ---------------------- | +| 名称 | 型 | 説明 | +| -------------- | ------------------------------------------------ | ---------- | | `output/accel` | `geometry_msgs::msg::AccelWithCovarianceStamped` | 推定加速度 | ## パラメータ @@ -65,4 +65,3 @@ Controlモジュールは、Planningモジュールで生成されたパスお ## 今後の取り組み 今後の取り組みとしては、加速度を EKF 状態に統合することが含まれます。 - diff --git a/localization/yabloc/README.md b/localization/yabloc/README.md index 0e4168c9b711..0e71701ddc88 100644 --- a/localization/yabloc/README.md +++ b/localization/yabloc/README.md @@ -21,7 +21,6 @@ Autoware を起動するときに、`pose_source:=yabloc` を引数として設 YabLoc を実行するためのコマンドの例を以下に示します。 - ```shell ros2 launch autoware_launch logging_simulator.launch.xml \ map_path:=$HOME/autoware_map/sample-map-rosbag\ @@ -51,10 +50,10 @@ YabLocはこれらのセグメントを各パーティクルに変換し、そ -| index | トピック名 | 説明 | -| ----- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | `/localization/yabloc/pf/predicted_particle_marker` | パーティクルフィルタの粒子分布。赤い粒子は有力候補を示す。 | -| 2 | `/localization/yabloc/pf/scored_cloud` | 3D投影線分群。色はマップとの一致度を示す。 | +| index | トピック名 | 説明 | +| ----- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | `/localization/yabloc/pf/predicted_particle_marker` | パーティクルフィルタの粒子分布。赤い粒子は有力候補を示す。 | +| 2 | `/localization/yabloc/pf/scored_cloud` | 3D投影線分群。色はマップとの一致度を示す。 | | 3 | `/localization/yabloc/image_processing/lanelet2_overlay_image` | 推定された自車位置に基づいて画像にレーンレット2(黄色の線)を重ねた画像。実際の道路標識とよく一致していれば、ローカリゼーションが正確に行われていることを示す。 | ### デバッグ用の画像トピック @@ -63,23 +62,22 @@ YabLocはこれらのセグメントを各パーティクルに変換し、そ -| index | トピック名 | 説明 | -| ----- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -| 1 | `/localization/yabloc/pf/cost_map_image` | レーンレット2から作成されたコストマップ | -| 2 | `/localization/yabloc/pf/match_image` | 射影された線分 | -| 3 | `/localization/yabloc/image_processing/image_with_colored_line_segment` | 分類された線分。緑色の線分は、パーティクル補正に使用されます | -| 4 | `/localization/yabloc/image_processing/lanelet2_overlay_image` | レーンレット2のオーバーレイ | -| 5 | `/localization/yabloc/image_processing/segmented_image` | グラフベースのセグメンテーション結果 | +| index | トピック名 | 説明 | +| ----- | ----------------------------------------------------------------------- | ------------------------------------------------------------ | +| 1 | `/localization/yabloc/pf/cost_map_image` | レーンレット2から作成されたコストマップ | +| 2 | `/localization/yabloc/pf/match_image` | 射影された線分 | +| 3 | `/localization/yabloc/image_processing/image_with_colored_line_segment` | 分類された線分。緑色の線分は、パーティクル補正に使用されます | +| 4 | `/localization/yabloc/image_processing/lanelet2_overlay_image` | レーンレット2のオーバーレイ | +| 5 | `/localization/yabloc/image_processing/segmented_image` | グラフベースのセグメンテーション結果 | ## 制限事項 - YabLocとNDTを同時に動作させることはサポートされていません。 - - 二つを同時に動作させることは計算コストが高くなる可能性があるためです。 - - また、ほとんどの場合NDTはYabLocよりも優れているため、同時に動作させることのメリットは少ないです。 + - 二つを同時に動作させることは計算コストが高くなる可能性があるためです。 + - また、ほとんどの場合NDTはYabLocよりも優れているため、同時に動作させることのメリットは少ないです。 - ロールとピッチの推定を行わないため、一部の認識ノードが正しく動作しない可能性があります。 - 現在、複数のカメラはサポートされていません。将来的にはサポートされる予定です。 - 交差点など、路面標示が少ない場所では、推定はGNSS、IMU、車両のホイールオドメトリに大きく依存します。 - Lanelet2に路面境界または路面標示が含まれていない場合、推定は失敗する可能性があります。 - Autowareチュートリアルで提供されているサンプルrosbagには画像が含まれていないため、YabLocで実行することはできません。 - - YabLocの機能をテストしたい場合は、この[PR](https://github.com/autowarefoundation/autoware.universe/pull/3946)で提供されているサンプルテストデータが役立ちます。 - + - YabLocの機能をテストしたい場合は、この[PR](https://github.com/autowarefoundation/autoware.universe/pull/3946)で提供されているサンプルテストデータが役立ちます。 diff --git a/localization/yabloc/yabloc_common/README.md b/localization/yabloc/yabloc_common/README.md index 5a906338b8f9..db4c3d83cfa7 100644 --- a/localization/yabloc/yabloc_common/README.md +++ b/localization/yabloc/yabloc_common/README.md @@ -15,10 +15,10 @@ #### 入力 -| 名称 | 種別 | 説明 | -| ------------------ | -------------------------------------- | ----------------------------------- | -| `input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクタマップ | -| `input/pose` | `geometry_msgs::msg::PoseStamped` | 自車位置 | +| 名称 | 種別 | 説明 | +| ------------------ | --------------------------------------- | ------------ | +| `input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクタマップ | +| `input/pose` | `geometry_msgs::msg::PoseStamped` | 自車位置 | #### 出力 @@ -82,13 +82,13 @@ このソフトウェアは開発中のソフトウェアであり、すべての状況で確実に機能するわけではありません。自動運転中は常に周囲に注意を払い、必要に応じて手動操作を行ってください。 ``` -| 名称 | タイプ | 説明 | -| ----------------------- | ------------------------------------- | ------------------------------------------------------------------------------- | +| 名称 | タイプ | 説明 | +| ----------------------- | ---------------------------------- | -------------------------------------------------------------------------- | | `output/ground` | `std_msgs::msg::Float32MultiArray` | 推定された路面パラメーター。x、y、z、normal_x、normal_y、normal_z を含む。 | -| `output/ground_markers` | `visualization_msgs::msg::Marker` | 推定された路面の状態の可視化 | -| `output/ground_status` | `std_msgs::msg::String` | 路面状態の推定状態のログ | -| `output/height` | `std_msgs::msg::Float32` | 高度 | -| `output/near_cloud` | `sensor_msgs::msg::PointCloud2` | Lanelet2 から抽出され、路面の傾斜推定に使用される点群 | +| `output/ground_markers` | `visualization_msgs::msg::Marker` | 推定された路面の状態の可視化 | +| `output/ground_status` | `std_msgs::msg::String` | 路面状態の推定状態のログ | +| `output/height` | `std_msgs::msg::Float32` | 高度 | +| `output/near_cloud` | `sensor_msgs::msg::PointCloud2` | Lanelet2 から抽出され、路面の傾斜推定に使用される点群 | ### パラメーター @@ -104,8 +104,8 @@ #### 入力 -| 名称 | タイプ | 説明 | -|---|---|---| +| 名称 | タイプ | 説明 | +| ------------------ | --------------------------------------- | ------------ | | `input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | vectorマップ | #### 出力 @@ -136,38 +136,37 @@ Planningコンポーネントは、次のサブコンポーネントで構成さ Planningコンポーネントは、次の機能を実行します。 -* Perceptionによって提供される環境情報を使用して、安全な経路を計画します。 -* Predictionによって提供される物体の動き予測を使用して、計画された経路に沿った衝突の可能性を評価します。 -* 車両の速度、加速度逸脱量、操舵逸脱量などの制約を考慮して、実行可能な挙動を生成します。 +- Perceptionによって提供される環境情報を使用して、安全な経路を計画します。 +- Predictionによって提供される物体の動き予測を使用して、計画された経路に沿った衝突の可能性を評価します。 +- 車両の速度、加速度逸脱量、操舵逸脱量などの制約を考慮して、実行可能な挙動を生成します。 **Planningコンポーネントの入力** Planningコンポーネントの入力には、次のものが含まれます。 -* 自車位置 -* Perceptionによって提供される環境データ -* Predictionによって提供される物体の動き予測 -* 車両の制限事項 +- 自車位置 +- Perceptionによって提供される環境データ +- Predictionによって提供される物体の動き予測 +- 車両の制限事項 **Planningコンポーネントの出力** Planningコンポーネントの出力には、次のものが含まれます。 -* 安全な経路 -* 車両の加速、減速、操舵の挙動 +- 安全な経路 +- 車両の加速、減速、操舵の挙動 **追加のリソース** -* [Autoware 公式ドキュメント](https://docs.autoware.org/) +- [Autoware 公式ドキュメント](https://docs.autoware.org/) -| 名称 | タイプ | 説明 | -| -------------------------- | ------------------------------------- | -------------------------------------- | +| 名称 | タイプ | 説明 | +| -------------------------- | -------------------------------------- | ------------------------------------------------ | | `output/ll2_bounding_box` | `sensor_msgs::msg::PointCloud2` | レーンレット2 から抽出したバウンディングボックス | -| `output/ll2_road_marking` | `sensor_msgs::msg::PointCloud2` | レーンレット2 から抽出した路面標示 | -| `output/ll2_sign_board` | `sensor_msgs::msg::PointCloud2` | レーンレット2 から抽出した標識 | -| `output/sign_board_marker` | `visualization_msgs::msg::MarkerArray` | 可視化された標識 | +| `output/ll2_road_marking` | `sensor_msgs::msg::PointCloud2` | レーンレット2 から抽出した路面標示 | +| `output/ll2_sign_board` | `sensor_msgs::msg::PointCloud2` | レーンレット2 から抽出した標識 | +| `output/sign_board_marker` | `visualization_msgs::msg::MarkerArray` | 可視化された標識 | ### パラメータ {{ json_to_markdown("localization/yabloc/yabloc_common/schema/ll2_decomposer.schema.json") }} - diff --git a/localization/yabloc/yabloc_image_processing/README.md b/localization/yabloc/yabloc_image_processing/README.md index 2a2cda3e9a50..f534ca677d9b 100644 --- a/localization/yabloc/yabloc_image_processing/README.md +++ b/localization/yabloc/yabloc_image_processing/README.md @@ -19,8 +19,8 @@ #### 入力 -| 名前 | タイプ | 説明 | -| ----------------- | ------------------------ | ----------------- | +| 名前 | タイプ | 説明 | +| ----------------- | ------------------------- | -------- | | `input/image_raw` | `sensor_msgs::msg::Image` | 非歪画像 | ## 自動運転ソフトウェアドキュメント(マークダウン形式) @@ -73,10 +73,10 @@ Integrationモジュールは、Planningモジュール、Controlモジュール Autowareのアーキテクチャがご理解いただけたかと思います。質問やご提案がありましたら、お気軽にお問い合わせください。 -| 名称 | タイプ | 説明 | -| ------------------------------------ | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| `output/image_with_line_segments` | `sensor_msgs::msg::Image` | 線分を強調表示した画像 | -| `output/line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 点群としての検出された線分。各点は x、y、z、normal_x、normal_y、normal_z を含み、z と normal_z は常に空です。 | +| 名称 | タイプ | 説明 | +| --------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| `output/image_with_line_segments` | `sensor_msgs::msg::Image` | 線分を強調表示した画像 | +| `output/line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 点群としての検出された線分。各点は x、y、z、normal_x、normal_y、normal_z を含み、z と normal_z は常に空です。 | ## graph_segmentation @@ -88,8 +88,8 @@ Autowareのアーキテクチャがご理解いただけたかと思います。 #### 入力 -| Name | Type | Description | -| ----------------- | ------------------------- | ----------------- | +| Name | Type | Description | +| ----------------- | ------------------------- | ------------------ | | `input/image_raw` | `sensor_msgs::msg::Image` | 歪み補正された画像 | ## 自動運転ソフトウェア仕様書 @@ -102,62 +102,62 @@ Autowareのアーキテクチャがご理解いただけたかと思います。 #### 入出力 -* **入力:** - * 自車位置 - * マップ - * 障害物検出 -* **出力:** - * 経路 - * 加速 - * ハンドリング +- **入力:** + - 自車位置 + - マップ + - 障害物検出 +- **出力:** + - 経路 + - 加速 + - ハンドリング #### アルゴリズム 計画コンポーネントは、以下を含むさまざまなアルゴリズムを使用している: -* **経路計画:** A*アルゴリズム、Dijkstraアルゴリズム -* **動作計画:** Model Predictive Control (MPC)、最適制御 -* **障害物回避:** Velocity Obstacles法、Dynamic Window Approach (DWA) +- **経路計画:** A\*アルゴリズム、Dijkstraアルゴリズム +- **動作計画:** Model Predictive Control (MPC)、最適制御 +- **障害物回避:** Velocity Obstacles法、Dynamic Window Approach (DWA) #### パフォーマンス指標 -* **経路の安全性:** 障害物逸脱量、速度逸脱量、加速度逸脱量の最小化 -* **経路の効率性:** 移動時間の最小化、燃料消費の最小化 -* **計算時間:** リアルタイム要件の遵守 +- **経路の安全性:** 障害物逸脱量、速度逸脱量、加速度逸脱量の最小化 +- **経路の効率性:** 移動時間の最小化、燃料消費の最小化 +- **計算時間:** リアルタイム要件の遵守 #### システムアーキテクチャ 計画コンポーネントは、以下を含むモジュール式アーキテクチャで設計されている: -* **経路プランナー:** 経路を生成する -* **動作プランナー:** 車両の操作を生成する -* **障害物検出と回避:** 障害物を検出し、それらを回避する経路と操作を生成する +- **経路プランナー:** 経路を生成する +- **動作プランナー:** 車両の操作を生成する +- **障害物検出と回避:** 障害物を検出し、それらを回避する経路と操作を生成する #### 統合 計画コンポーネントは、Autowareシステムの他のコンポーネントと統合されている。これらには、以下が含まれる: -* センサーインターフェース: 障害物検出データを計画コンポーネントに提供する -* 制御インターフェース: 計画コンポーネントから車両の制御系に動作コマンドを送信する -* HMIインターフェース: 計画経路と車両の操作をユーザーに表示する +- センサーインターフェース: 障害物検出データを計画コンポーネントに提供する +- 制御インターフェース: 計画コンポーネントから車両の制御系に動作コマンドを送信する +- HMIインターフェース: 計画経路と車両の操作をユーザーに表示する #### テストと検証 計画コンポーネントは、シミュレーション環境と実車テストで徹底的にテストされている。このテストには以下が含まれる: -* **シミュレーション:** さまざまなシナリオ下での計画コンポーネントの動作の検証 -* **実車テスト:** 実際の世界での計画コンポーネントの性能評価 +- **シミュレーション:** さまざまなシナリオ下での計画コンポーネントの動作の検証 +- **実車テスト:** 実際の世界での計画コンポーネントの性能評価 #### リリースノート -* **バージョ ン1.0:** 初期リリース -* **バージョン1.1:** 障害物検出と回避の改善 -* **バージョン1.2:** パフォーマンスの向上とバグ修正 +- **バージョ ン1.0:** 初期リリース +- **バージョン1.1:** 障害物検出と回避の改善 +- **バージョン1.2:** パフォーマンスの向上とバグ修正 -| 名称 | 型 | 説明 | -| ------------------------ | ------------------------- | -------------------------------------------------------- | +| 名称 | 型 | 説明 | +| ------------------------ | ------------------------- | ------------------------------------------------------------ | | `output/mask_image` | `sensor_msgs::msg::Image` | 路面領域として特定されたマスクされたセグメントを含むイメージ | -| `output/segmented_image` | `sensor_msgs::msg::Image` | 可視化用のセグメントイメージ | +| `output/segmented_image` | `sensor_msgs::msg::Image` | 可視化用のセグメントイメージ | ### パラメータ @@ -172,15 +172,16 @@ Autowareのアーキテクチャがご理解いただけたかと思います。 ### 入出力 #### 入力 + - `lane_detected_raw` : レーン検出の生データ - `line_detected_raw` : 線検出の生データ - `current_pose` : 自車位置 -| 名前 | タイプ | 説明 | -|----|----|----| -| `input/line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 検出された線分 | -| `input/mask_image` | `sensor_msgs::msg::Image` | 路面領域と判断されたマスクされたセグメントを持つ画像 | -| `input/camera_info` | `sensor_msgs::msg::CameraInfo` | カメラの非歪み情報 | +| 名前 | タイプ | 説明 | +| --------------------------- | ------------------------------- | ---------------------------------------------------- | +| `input/line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 検出された線分 | +| `input/mask_image` | `sensor_msgs::msg::Image` | 路面領域と判断されたマスクされたセグメントを持つ画像 | +| `input/camera_info` | `sensor_msgs::msg::CameraInfo` | カメラの非歪み情報 | #### 出力 @@ -254,11 +255,11 @@ Controlコンポーネントは以下の機能を担当します。 - **計算コスト:** コンポーネントが使用する計算リソース - **センサーの限界:** センサーの能力と制限 -| 名前 | 型 | 説明 | -| ------------------------------------------------ | ---------------------------------- | ------------------------------------------------------------------- | -| `output/line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | ビジュアライゼーション用のフィルタ処理済み線分 | -| `output/projected_image` | `sensor_msgs::msg::Image` | ビジュアライゼーション用の投影されたフィルタ処理済み線分 | -| `output/projected_line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 投影されたフィルタ処理済み線分 | +| 名前 | 型 | 説明 | +| -------------------------------------- | ------------------------------- | -------------------------------------------------------- | +| `output/line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | ビジュアライゼーション用のフィルタ処理済み線分 | +| `output/projected_image` | `sensor_msgs::msg::Image` | ビジュアライゼーション用の投影されたフィルタ処理済み線分 | +| `output/projected_line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 投影されたフィルタ処理済み線分 | ### パラメータ @@ -273,20 +274,22 @@ Controlコンポーネントは以下の機能を担当します。 ### 入力 / 出力 #### 入力 - - camera_topic(`/{}'.format(camera_name)) - - 型: sensor_msgs/Image - - 説明: 歪んだカメラ画像 + +- camera_topic(`/{}'.format(camera_name)) + - 型: sensor_msgs/Image + - 説明: 歪んだカメラ画像 #### 出力 - - camera_topic_undistort - - 型: sensor_msgs/Image - - 説明: ゆがみの補正されたカメラ画像 -| 名前 | タイプ | 説明 | -| ------------------------------------ | --------------------------------------------------- | --------------------------------------------------- | -| `input/camera_info` | `sensor_msgs::msg::CameraInfo` | カメラ情報 | -| `input/image_raw` | `sensor_msgs::msg::Image` | 未加工のカメラ画像 | -| `input/image_raw/compressed` | `sensor_msgs::msg::CompressedImage` | 圧縮されたカメラ画像 | +- camera_topic_undistort + - 型: sensor_msgs/Image + - 説明: ゆがみの補正されたカメラ画像 + +| 名前 | タイプ | 説明 | +| ---------------------------- | ----------------------------------- | -------------------- | +| `input/camera_info` | `sensor_msgs::msg::CameraInfo` | カメラ情報 | +| `input/image_raw` | `sensor_msgs::msg::Image` | 未加工のカメラ画像 | +| `input/image_raw/compressed` | `sensor_msgs::msg::CompressedImage` | 圧縮されたカメラ画像 | このノードは、圧縮画像と生画像の両方のトピックをサブスクライブします。 生画像が一度でもサブスクライブされると、圧縮画像のサブスクライブが停止します。 @@ -294,9 +297,9 @@ Controlコンポーネントは以下の機能を担当します。 #### 出力 -| 名前 | タイプリスト | 説明 | -| -------------------- | ------------------------------------ | ------------------------- | -| `output/camera_info` | `sensor_msgs::msg::CameraInfo` | リサイズされたカメラ情報 | +| 名前 | タイプリスト | 説明 | +| -------------------- | ----------------------------------- | ------------------------ | +| `output/camera_info` | `sensor_msgs::msg::CameraInfo` | リサイズされたカメラ情報 | | `output/image_raw` | `sensor_msgs::msg::CompressedImage` | 非歪とリサイズされた画像 | ### パラメータ @@ -309,14 +312,12 @@ Controlコンポーネントは以下の機能を担当します。 いくつかのノードは `/base_link` から `/sensing/camera/traffic_light/image_raw/compressed` のフレーム ID (例: `/traffic_light_left_camera/camera_optical_link`) への `/tf_static` を必要とします。tf_static が正しいかどうかは以下のコマンドで確認できます。 - ```shell ros2 run tf2_ros tf2_echo base_link traffic_light_left_camera/camera_optical_link ``` プロトタイプ車両の使用、正確なキャリブレーションデータの欠如、またはその他の回避できない理由によって間違った`/tf_static`がブロードキャストされた場合、 `override_camera_frame_id`内の`frame_id`を指定すると便利です。非空の文字列を指定すると、`/image_processing/undistort_node`は`camera_info`内の`frame_id`を書き換えます。たとえば、以下のように異なる`tf_static`を指定できます。 - ```shell ros2 launch yabloc_launch sample_launch.xml override_camera_frame_id:=fake_camera_optical_link ros2 run tf2_ros static_transform_publisher \ @@ -338,15 +339,15 @@ ros2 run tf2_ros static_transform_publisher \ #### 入力 -| 名前 | タイプ | 説明 | -| ---------------------------------- | ---------------------------------- | ------------------------------------------------- | -| `input/pose` | `geometry_msgs::msg::PoseStamped` | 自車位置 | -| `input/projected_line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 路面マーキング以外の投影された線分 | -| `input/camera_info` | `sensor_msgs::msg::CameraInfo` | 無歪カメラ情報 | -| `input/image_raw` | `sensor_msgs::msg::Image` | 無歪カメラ画像 | -| `input/ground` | `std_msgs::msg::Float32MultiArray` | 地面勾配 | -| `input/ll2_road_marking` | `sensor_msgs::msg::PointCloud2` | 路面マーキングに関するlanelet2要素 | -| `input/ll2_sign_board` | `sensor_msgs::msg::PointCloud2` | 交通標識に関するlanelet2要素 | +| 名前 | タイプ | 説明 | +| ------------------------------------- | ---------------------------------- | ---------------------------------- | +| `input/pose` | `geometry_msgs::msg::PoseStamped` | 自車位置 | +| `input/projected_line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 路面マーキング以外の投影された線分 | +| `input/camera_info` | `sensor_msgs::msg::CameraInfo` | 無歪カメラ情報 | +| `input/image_raw` | `sensor_msgs::msg::Image` | 無歪カメラ画像 | +| `input/ground` | `std_msgs::msg::Float32MultiArray` | 地面勾配 | +| `input/ll2_road_marking` | `sensor_msgs::msg::PointCloud2` | 路面マーキングに関するlanelet2要素 | +| `input/ll2_sign_board` | `sensor_msgs::msg::PointCloud2` | 交通標識に関するlanelet2要素 | **自動運転ソフトウェアに関するドキュメント** @@ -358,32 +359,32 @@ Planningモジュールは、自車位置と周囲環境データを元に、安 **機能** -* **経路生成:** 自車位置から目的地までの最適な経路を計算します。 -* **速度計画:** 経路に沿った安全かつ快適な速度プロファイルを計算します。 -* **衝突回避:** 周囲の障害物との衝突を回避するための回避操作を計算します。 -* **車線維持:** 車線を維持するためのステアリング制御を計算します。 +- **経路生成:** 自車位置から目的地までの最適な経路を計算します。 +- **速度計画:** 経路に沿った安全かつ快適な速度プロファイルを計算します。 +- **衝突回避:** 周囲の障害物との衝突を回避するための回避操作を計算します。 +- **車線維持:** 車線を維持するためのステアリング制御を計算します。 **アーキテクチャ** Planningモジュールは、以下で構成されています。 -* **TrajGen:** 経路を生成します。 -* **TwistGenerator:** 速度プロファイルを計算します。 -* **ObstacleManager:** 障害物を管理します。 -* **LaneManager:** 車線を管理します。 +- **TrajGen:** 経路を生成します。 +- **TwistGenerator:** 速度プロファイルを計算します。 +- **ObstacleManager:** 障害物を管理します。 +- **LaneManager:** 車線を管理します。 **入出力** **入力:** -* 自車位置 -* 周囲環境データ (LiDAR、カメラなど) +- 自車位置 +- 周囲環境データ (LiDAR、カメラなど) **出力:** -* 計画された経路 -* 目標速度と加速度 -* ステアリング制御 +- 計画された経路 +- 目標速度と加速度 +- ステアリング制御 **インターフェイス** @@ -397,26 +398,26 @@ Planningモジュールのパラメータは、`/autoware/planning`ネームス Planningモジュールの性能は、以下によって向上できます。 -* 高精度のセンサーデータを使用する -* 現在の実速度をフィードバックする -* 障害物の位置を正確に予測する +- 高精度のセンサーデータを使用する +- 現在の実速度をフィードバックする +- 障害物の位置を正確に予測する **制限事項** -* 静的障害物のみを処理します。 -* 悪天候では性能が低下する可能性があります。 -* 急カーブや狭い道路で問題が発生する可能性があります。 +- 静的障害物のみを処理します。 +- 悪天候では性能が低下する可能性があります。 +- 急カーブや狭い道路で問題が発生する可能性があります。 **依存関係** Planningモジュールには、以下のコンポーネントが必要です。 -* PointCloudPreprocessor -* Mapping -* Localization -* Prediction -* ObstacleDetection -* Control +- PointCloudPreprocessor +- Mapping +- Localization +- Prediction +- ObstacleDetection +- Control **テスト** @@ -426,19 +427,19 @@ Planningモジュールは、シミュレーションと実車テストの両方 詳細については、以下のドキュメントを参照してください。 -* [Planningモジュール設計ドキュメント](https://github.com/autowarefoundation/autoware.ai/blob/master/docs/design/planning-module.md) -* [Planningモジュールソースコード](https://github.com/autowarefoundation/autoware.ai/tree/master/ros/autoware_planning) +- [Planningモジュール設計ドキュメント](https://github.com/autowarefoundation/autoware.ai/blob/master/docs/design/planning-module.md) +- [Planningモジュールソースコード](https://github.com/autowarefoundation/autoware.ai/tree/master/ros/autoware_planning) **追加情報** -* Planningモジュールでは、`post resampling`などの手法を使用しています。 -* Planningモジュールは、velocity逸脱量やacceleration逸脱量などのパラメータを調整できます。 -* Planningモジュールは、他のPlanningアルゴリズムと統合できます。 +- Planningモジュールでは、`post resampling`などの手法を使用しています。 +- Planningモジュールは、velocity逸脱量やacceleration逸脱量などのパラメータを調整できます。 +- Planningモジュールは、他のPlanningアルゴリズムと統合できます。 -| 名前 | 型 | 説明 | -| ------------------------------- | --------------------------------- | ---------------------------------------------------------- | -| `output/lanelet2_overlay_image` | `sensor_msgs::msg::Image` | レーンレット2のオーバーレイ画像 | -| `output/projected_marker` | `visualization_msgs::msg::Marker` | 路面マーキング以外の3D投影された線分 | +| 名前 | 型 | 説明 | +| ------------------------------- | --------------------------------- | ------------------------------------ | +| `output/lanelet2_overlay_image` | `sensor_msgs::msg::Image` | レーンレット2のオーバーレイ画像 | +| `output/projected_marker` | `visualization_msgs::msg::Marker` | 路面マーキング以外の3D投影された線分 | ## line_segments_overlay @@ -450,9 +451,9 @@ Planningモジュールは、シミュレーションと実車テストの両方 #### 入力 -| 名前 | タイプ | 説明 | -| --------------------------- | ------------------------------- | ------------------------ | -| `input/line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 分類線分 | +| 名前 | タイプ | 説明 | +| --------------------------- | ------------------------------- | ------------------ | +| `input/line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 分類線分 | | `input/image_raw` | `sensor_msgs::msg::Image` | 補正解除カメラ画像 | #### 出力 @@ -463,42 +464,41 @@ Planningモジュールは、シミュレーションと実車テストの両方 計画コンポーネントは、周囲の環境を認識し、それに応じて経路を計画します。 -* **地図管理:** ナビゲーションマップのロード、解析、更新を担当。 -* **センサーフュージョン:** レーダー、LiDAR、カメラなどのセンサーデータを集約し、周囲の環境の包括的な表現を作成。 -* **オドメトリー:** 自車位置の追跡と推定。 -* **パスプランニング:** 障害物や交通規制を考慮した安全で効率的な経路の生成。 -* **トラフィック予測:** 周辺車両の軌跡を予測し、それに応じて経路を調整。 +- **地図管理:** ナビゲーションマップのロード、解析、更新を担当。 +- **センサーフュージョン:** レーダー、LiDAR、カメラなどのセンサーデータを集約し、周囲の環境の包括的な表現を作成。 +- **オドメトリー:** 自車位置の追跡と推定。 +- **パスプランニング:** 障害物や交通規制を考慮した安全で効率的な経路の生成。 +- **トラフィック予測:** 周辺車両の軌跡を予測し、それに応じて経路を調整。 **制御コンポーネント** 制御コンポーネントは、計画コンポーネントによって生成された経路に従って車両を操作します。 -* **縦制御:** 加減速の制御を担当。 -* **横制御:** ステアリングの制御を担当。 -* **ブレーキ制御:** ブレーキの適用を担当。 -* **アクチュエーターインターフェース:** コントローラコマンドと車両アクチュエーターのインターフェース。 -* **安定性制御:** 車両の安定性を確保する機能を提供。 +- **縦制御:** 加減速の制御を担当。 +- **横制御:** ステアリングの制御を担当。 +- **ブレーキ制御:** ブレーキの適用を担当。 +- **アクチュエーターインターフェース:** コントローラコマンドと車両アクチュエーターのインターフェース。 +- **安定性制御:** 車両の安定性を確保する機能を提供。 **他のコンポーネント** -* **ビヘイビアープランナー:** 車両の一般的な動作を指定。 -* **RVIZビジュアライザー:** システムの動作を可視化する。 -* **ロギングシステム:** システムの動作とデータを記録。 +- **ビヘイビアープランナー:** 車両の一般的な動作を指定。 +- **RVIZビジュアライザー:** システムの動作を可視化する。 +- **ロギングシステム:** システムの動作とデータを記録。 **Autowareのアーキテクチャ** -* **モジュール性:** 各コンポーネントは独立しており、他のコンポーネントと簡単に統合できます。 -* **再利用性:** コンポーネントは再利用可能で、さまざまな自動運転システムで利用できます。 -* **オープンソース:** Autowareはオープンソースプラットフォームであり、コミュニティによって継続的に開発されています。 +- **モジュール性:** 各コンポーネントは独立しており、他のコンポーネントと簡単に統合できます。 +- **再利用性:** コンポーネントは再利用可能で、さまざまな自動運転システムで利用できます。 +- **オープンソース:** Autowareはオープンソースプラットフォームであり、コミュニティによって継続的に開発されています。 **使用上の注意** -* システムは依然として開発中であり、限定的な使用に限定されています。 -* システムを使用する前に、関連する安全対策を講じてください。 -* 'post resampling`のデータを使用する場合、元のデータの不確実性と時間遅延に注意してください。 -* 速度逸脱量または加速度逸脱量が高い場合、システムの応答が遅れる可能性があります。 - -| 名前 | 型 | 説明 | -| --------------------------------------------------- | --------------------------- | ------------------------------------------------------------- | -| `output/image_with_colored_line_segments` | `sensor_msgs::msg::Image` | 線分がハイライトされた画像 | +- システムは依然として開発中であり、限定的な使用に限定されています。 +- システムを使用する前に、関連する安全対策を講じてください。 +- 'post resampling`のデータを使用する場合、元のデータの不確実性と時間遅延に注意してください。 +- 速度逸脱量または加速度逸脱量が高い場合、システムの応答が遅れる可能性があります。 +| 名前 | 型 | 説明 | +| ----------------------------------------- | ------------------------- | -------------------------- | +| `output/image_with_colored_line_segments` | `sensor_msgs::msg::Image` | 線分がハイライトされた画像 | diff --git a/localization/yabloc/yabloc_monitor/README.md b/localization/yabloc/yabloc_monitor/README.md index 6454f0f08e28..a98f7f4df3be 100644 --- a/localization/yabloc/yabloc_monitor/README.md +++ b/localization/yabloc/yabloc_monitor/README.md @@ -16,8 +16,8 @@ YabLoc モニターは YabLoc Localization システムの状態を監視する ### 入力 -| 名前 | 型 | 説明 | -| --------------------- | --------------------------- | ------------------------------- | +| 名前 | 型 | 説明 | +| --------------------- | --------------------------- | -------------------- | | `~/input/yabloc_pose` | `geometry_msgs/PoseStamped` | YabLocの最終出力姿勢 | ### 出力 @@ -74,13 +74,12 @@ Path Planningモジュールには、次の主要な定数が含まれていま 付録には、Path Planningモジュールの使用方法に関する追加情報が含まれています。 -* `post resampling`処理に関するセクションを含んでいます。 +- `post resampling`処理に関するセクションを含んでいます。 -| Name | Type | Description | -| -------------- | --------------------------------- | ------------------- | -| `/diagnostics` | `diagnostic_msgs/DiagnosticArray` | 診断結果出力 | +| Name | Type | Description | +| -------------- | --------------------------------- | ------------ | +| `/diagnostics` | `diagnostic_msgs/DiagnosticArray` | 診断結果出力 | ### パラメータ {{ json_to_markdown("localization/yabloc/yabloc_monitor/schema/yabloc_monitor.schema.json", "ja") }} - diff --git a/localization/yabloc/yabloc_particle_filter/README.md b/localization/yabloc/yabloc_particle_filter/README.md index 540439b3da89..8dcaa03e5bd5 100644 --- a/localization/yabloc/yabloc_particle_filter/README.md +++ b/localization/yabloc/yabloc_particle_filter/README.md @@ -16,23 +16,25 @@ ### 入出力 #### 入力 + - `/localization/particle_cloud/sample` (ParticleCloud) #### 出力 + - `/localization/particle_cloud/prediction_sample` (ParticleCloud) - `/localization/particle_cloud/prediction_weight` (ParticleWeightArray) ### パラメータ -| パラメータ | 説明 | 型 | デフォルト | -| --- | --- | --- | --- | -| `resampling` | 仮説の再サンプリングを実行するかどうか | bool | true | -| `resampling_threshold` | 仮説が再サンプリングされる前の重みの最小しきい値 | double | 0.001 | -| `min_num_particles` | 再サンプリング後の最小パーティクル数 | int | 100 | -| `max_num_particles` | 再サンプリング後の最大パーティクル数 | int | 10000 | -| `temporal_variance` | `'post resampling'`仮説の生成に対する時系列的な分散 | double | 0.0 | -| `translational_variance` | `'post resampling'`仮説の生成に対する並進的な分散 | double | 0.0 | -| `rotational_variance` | `'post resampling'`仮説の生成に対する回転的な分散 | double | 0.0 | +| パラメータ | 説明 | 型 | デフォルト | +| ------------------------ | --------------------------------------------------- | ------ | ---------- | +| `resampling` | 仮説の再サンプリングを実行するかどうか | bool | true | +| `resampling_threshold` | 仮説が再サンプリングされる前の重みの最小しきい値 | double | 0.001 | +| `min_num_particles` | 再サンプリング後の最小パーティクル数 | int | 100 | +| `max_num_particles` | 再サンプリング後の最大パーティクル数 | int | 10000 | +| `temporal_variance` | `'post resampling'`仮説の生成に対する時系列的な分散 | double | 0.0 | +| `translational_variance` | `'post resampling'`仮説の生成に対する並進的な分散 | double | 0.0 | +| `rotational_variance` | `'post resampling'`仮説の生成に対する回転的な分散 | double | 0.0 | ## gnss_particle_corrector @@ -43,20 +45,22 @@ ### 入出力 #### 入力 + - `/localization/particle_cloud/ground_truth` (ParticleCloud) - `/localization/particle_cloud/prediction_sample` (ParticleCloud) - `/localization/gnss/odometry` (Odometry) #### 出力 + - `/localization/particle_cloud/correction_weight` (ParticleWeightArray) ### パラメータ -| パラメータ | 説明 | 型 | デフォルト | -| --- | --- | --- | --- | -| `gnss_model` | GNSSの測定モデル | string | `'gnss_sim'` | +| パラメータ | 説明 | 型 | デフォルト | +| ------------------- | -------------------------- | ------ | ------------- | +| `gnss_model` | GNSSの測定モデル | string | `'gnss_sim'` | | `gnss_device_model` | 使用するGNSSデバイスモデル | string | `'ublox_f9p'` | -| `gnss_max_age` | GNSS測定値の最大許容時間 | double | 1.0 | +| `gnss_max_age` | GNSS測定値の最大許容時間 | double | 1.0 | ## camera_particle_corrector @@ -67,28 +71,30 @@ ### 入出力 #### 入力 + - `/ localization / particle_cloud / ground_truth` (ParticleCloud) - `/ localization / particle_cloud / prediction_sample` (ParticleCloud) - `/localization/camera/detection` (DetectionArray) #### 出力 + - `/localization/particle_cloud/correction_weight` (ParticleWeightArray) ### パラメータ -| パラメータ | 説明 | 型 | デフォルト | -| --- | --- | --- | --- | -| `camera_model` | カメラの測定モデル | string | `'camera_sim'` | -| `camera_device_model` | 使用するカメラデバイスモデル | string | `'realsense_d435'` | -| `camera_max_age` | カメラ測定値の最大許容時間 | double | 1.0 | -| `detection_distance_threshold` | 検出とパーティクルの位置の距離の最大しきい値 | double | 1.0 | +| パラメータ | 説明 | 型 | デフォルト | +| ------------------------------ | -------------------------------------------- | ------ | ------------------ | +| `camera_model` | カメラの測定モデル | string | `'camera_sim'` | +| `camera_device_model` | 使用するカメラデバイスモデル | string | `'realsense_d435'` | +| `camera_max_age` | カメラ測定値の最大許容時間 | double | 1.0 | +| `detection_distance_threshold` | 検出とパーティクルの位置の距離の最大しきい値 | double | 1.0 | -| 名前 | 種類 | 説明 | -| ----------------------------- | ------------------------------------------------ | ----------------------------------------------------- | -| `input/initialpose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | パーティクルの初期位置を指定 | -| `input/twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | 予測更新の線速度と角速度 | -| `input/height` | `std_msgs::msg::Float32` | 地形高 | -| `input/weighted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 補正ノードによって重み付けされたパーティクル | +| 名前 | 種類 | 説明 | +| ----------------------------- | ------------------------------------------------ | -------------------------------------------- | +| `input/initialpose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | パーティクルの初期位置を指定 | +| `input/twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | 予測更新の線速度と角速度 | +| `input/height` | `std_msgs::msg::Float32` | 地形高 | +| `input/weighted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 補正ノードによって重み付けされたパーティクル | #### 出力 @@ -104,10 +110,10 @@ Perceptionコンポーネントは、カメラ、LiDAR、レーダーなどの Planningコンポーネントは、Perceptionから得られたデータを基に、安全で効率的な走行経路を生成します。経路生成では、以下の要因が考慮されます。 -* 周囲環境の認識 -* 障害物回避 -* 車両の運動力学(速度、加速度) -* 交通規則 +- 周囲環境の認識 +- 障害物回避 +- 車両の運動力学(速度、加速度) +- 交通規則 **Control** @@ -115,34 +121,34 @@ Controlコンポーネントは、Planningから生成された経路に従っ **追加機能** -* **Lane Keeping Assist (LKA):** 車線を維持するアシスタント -* **Adaptive Cruise Control (ACC):** 前方車両との車間距離を維持するクルーズコントロール -* **Emergency Braking:** 衝突の可能性がある場合に自動的にブレーキをかける機能 +- **Lane Keeping Assist (LKA):** 車線を維持するアシスタント +- **Adaptive Cruise Control (ACC):** 前方車両との車間距離を維持するクルーズコントロール +- **Emergency Braking:** 衝突の可能性がある場合に自動的にブレーキをかける機能 **評価** Autowareの性能は、さまざまな指標を使用して評価できます。 -* **Planning評価:** - * 障害物逸脱量(velocity, acceleration) - * 車線逸脱量 - * 安全距離 -* **Control評価:** - * 追従精度 - * 'post resampling'精度 - * 車両の安定性 +- **Planning評価:** + - 障害物逸脱量(velocity, acceleration) + - 車線逸脱量 + - 安全距離 +- **Control評価:** + - 追従精度 + - 'post resampling'精度 + - 車両の安定性 **使用例** Autowareの自動運転ソフトウェアは、自動運転車両、ロボタクシー、ラストワンマイル配送などのさまざまな用途で使用できます。 -| 名前 | 内容 | 説明 | -|---|---|---| -| `output/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 粒子中心と共分散 | -| `output/pose` | `geometry_msgs::msg::PoseStamped` | 粒子中心と共分散 | -| `output/predicted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 予測ノードで重み付けされた粒子 | -| `debug/init_marker` | `visualization_msgs::msg::Marker` | 初期位置のデバッグ用可視化 | -| `debug/particles_marker_array` | `visualization_msgs::msg::MarkerArray` | 粒子の可視化。`visualize` が true の場合に配信 | +| 名前 | 内容 | 説明 | +| ------------------------------ | ----------------------------------------------- | ---------------------------------------------- | +| `output/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | 粒子中心と共分散 | +| `output/pose` | `geometry_msgs::msg::PoseStamped` | 粒子中心と共分散 | +| `output/predicted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 予測ノードで重み付けされた粒子 | +| `debug/init_marker` | `visualization_msgs::msg::Marker` | 初期位置のデバッグ用可視化 | +| `debug/particles_marker_array` | `visualization_msgs::msg::MarkerArray` | 粒子の可視化。`visualize` が true の場合に配信 | ### パラメータ @@ -150,8 +156,8 @@ Autowareの自動運転ソフトウェアは、自動運転車両、ロボタク ### サービス -| 名称 | 種類 | 説明 | -| -------------------- | ------------------------ | ---------------------------------------------------- | +| 名称 | 種類 | 説明 | +| -------------------- | ------------------------ | ------------------------------ | | `yabloc_trigger_srv` | `std_srvs::srv::SetBool` | yabloc推定の有効化および無効化 | ## gnss_particle_corrector @@ -164,15 +170,16 @@ Autowareの自動運転ソフトウェアは、自動運転車両、ロボタク ### 入出力 #### 入力 -- ublox\_msgs::NavPVT:[GNSS情報](https://docs.autoware.io/en/latest/autoware.auto/msgs/ublox_msgs/message/NavPVT.html) -- geometry\_msgs::PoseWithCovarianceStamped:[自車位置](https://docs.autoware.io/en/latest/autoware.auto/msgs/geometry_msgs/message/PoseWithCovarianceStamped.html) -| 名前 | タイプ | 説明 | -| ------------------------------ | ------------------------------------------------ | ------------------------------------------------------- | -| `input/height` | `std_msgs::msg::Float32` | 地上高度 | -| `input/predicted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 推定パーティクル | -| `input/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | GNSS測定 (use_ublox_msgがfalseの場合に使用) | -| `input/navpvt` | `ublox_msgs::msg::NavPVT` | GNSS測定 (use_ublox_msgがtrueの場合に使用) | +- ublox_msgs::NavPVT:[GNSS情報](https://docs.autoware.io/en/latest/autoware.auto/msgs/ublox_msgs/message/NavPVT.html) +- geometry_msgs::PoseWithCovarianceStamped:[自車位置](https://docs.autoware.io/en/latest/autoware.auto/msgs/geometry_msgs/message/PoseWithCovarianceStamped.html) + +| 名前 | タイプ | 説明 | +| ---------------------------- | ----------------------------------------------- | ------------------------------------------- | +| `input/height` | `std_msgs::msg::Float32` | 地上高度 | +| `input/predicted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 推定パーティクル | +| `input/pose_with_covariance` | `geometry_msgs::msg::PoseWithCovarianceStamped` | GNSS測定 (use_ublox_msgがfalseの場合に使用) | +| `input/navpvt` | `ublox_msgs::msg::NavPVT` | GNSS測定 (use_ublox_msgがtrueの場合に使用) | **自動運転ソフトウェアの設計に関するドキュメント** @@ -180,46 +187,46 @@ Autowareの自動運転ソフトウェアは、自動運転車両、ロボタク **状態推定と構想** -* 最新の自車位置、周囲環境のステータス、予定ルートを把握するための状態推定 -* 障害物の検知、予測、および分類に基づいたパス計画の構想 +- 最新の自車位置、周囲環境のステータス、予定ルートを把握するための状態推定 +- 障害物の検知、予測、および分類に基づいたパス計画の構想 **動作計画** -* 経路最適化と障害物回避のためのグローバルプランナー -* 局所プランナーによるリアルタイム動作計画の生成 +- 経路最適化と障害物回避のためのグローバルプランナー +- 局所プランナーによるリアルタイム動作計画の生成 **制御** -* 車両の動的特性を考慮した制御器の設計 -* 経路追従、速度制御、障害物回避のための閉ループ制御 +- 車両の動的特性を考慮した制御器の設計 +- 経路追従、速度制御、障害物回避のための閉ループ制御 **シミュレーションとテスト** -* 仮想環境を使用した自動運転システムのシミュレーション -* 実際のテスト走路での実車テスト +- 仮想環境を使用した自動運転システムのシミュレーション +- 実際のテスト走路での実車テスト **システムアーキテクチャ** -* モジュール化されたソフトウェアアーキテクチャ -* さまざまなセンサーとアクチュエーターとのインターフェース +- モジュール化されたソフトウェアアーキテクチャ +- さまざまなセンサーとアクチュエーターとのインターフェース **Autowareソフトウェアスタック** -* オープンソースの自動運転ソフトウェアプラットフォーム -* Planning、制御、センシング、シミュレーションのためのモジュールを提供 +- オープンソースの自動運転ソフトウェアプラットフォーム +- Planning、制御、センシング、シミュレーションのためのモジュールを提供 **主要な概念** -* **'post resampling'**:状態推定後の予測された経路 -* **速度逸脱量**:目標速度からの逸脱 -* **加速度逸脱量**:目標加速度からの逸脱 -* **制御限界**:車両の物理的な制約による制御器の入出力の限界 -* **Lanelet2**:道路環境を表現するためのデータ構造 +- **'post resampling'**:状態推定後の予測された経路 +- **速度逸脱量**:目標速度からの逸脱 +- **加速度逸脱量**:目標加速度からの逸脱 +- **制御限界**:車両の物理的な制約による制御器の入出力の限界 +- **Lanelet2**:道路環境を表現するためのデータ構造 -| 名前 | タイプ | 説明 | -| ------------------------------ | -------------------------------------------- | -------------------------------------------------------- | -| `output/weighted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 重み付けられた粒子 | -| `debug/gnss_range_marker` | `visualization_msgs::msg::MarkerArray` | GNSS の重み分布 | +| 名前 | タイプ | 説明 | +| ------------------------------ | -------------------------------------------- | ---------------------------------------------------------------- | +| `output/weighted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 重み付けられた粒子 | +| `debug/gnss_range_marker` | `visualization_msgs::msg::MarkerArray` | GNSS の重み分布 | | `debug/particles_marker_array` | `visualization_msgs::msg::MarkerArray` | 粒子のビジュアライゼーション. `visualize` が真の場合に公開される | ### パラメータ @@ -236,13 +243,13 @@ Autowareの自動運転ソフトウェアは、自動運転車両、ロボタク #### 入力 -| 名称 | タイプ | 説明 | -| --------------------------------- | ----------------------------------------- | --------------------------------------------------------------- | -| `input/predicted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 予測粒子 | -| `input/ll2_bounding_box` | `sensor_msgs::msg::PointCloud2` | 路面標示を線分に変換したもの | -| `input/ll2_road_marking` | `sensor_msgs::msg::PointCloud2` | 路面標示を線分に変換したもの | -| `input/projected_line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 投影線分 | -| `input/pose` | `geometry_msgs::msg::PoseStamped` | 自車位置周辺のエリアマップを取得するための参照 | +| 名称 | タイプ | 説明 | +| ------------------------------------- | -------------------------------------------- | ---------------------------------------------- | +| `input/predicted_particles` | `yabloc_particle_filter::msg::ParticleArray` | 予測粒子 | +| `input/ll2_bounding_box` | `sensor_msgs::msg::PointCloud2` | 路面標示を線分に変換したもの | +| `input/ll2_road_marking` | `sensor_msgs::msg::PointCloud2` | 路面標示を線分に変換したもの | +| `input/projected_line_segments_cloud` | `sensor_msgs::msg::PointCloud2` | 投影線分 | +| `input/pose` | `geometry_msgs::msg::PoseStamped` | 自車位置周辺のエリアマップを取得するための参照 | #### 出力 @@ -252,11 +259,11 @@ Autoware Planning 2.x のモジュール開発チュートリアル ### 必要条件 -* C++ の中級レベルの知識 -* ROS の基本的な知識 -* Autoware の基本的な知識 +- C++ の中級レベルの知識 +- ROS の基本的な知識 +- Autoware の基本的な知識 -###推奨アプローチ +### 推奨アプローチ Planning 2.x でモジュールを開発するには、以下の推奨アプローチに従うことをお勧めします。 @@ -270,20 +277,20 @@ Planning 2.x でモジュールを開発するには、以下の推奨アプロ Planning 2.x のモジュールは、以下のような構成になっています。 -* **リソース:** モジュールによって使用される設定ファイルやパラメータです。 -* **インターフェース:** モジュールと外部コンポーネントとのやり取りに使用されるクラスと関数です。 -* **アルゴリズム:** モジュールの内部ロジックを実装するコードです。 -* **テスト:** モジュールを検証するためのテストケースです。 -* **ドキュメント:** モジュールのインターフェース、実装、テストについての説明です。 +- **リソース:** モジュールによって使用される設定ファイルやパラメータです。 +- **インターフェース:** モジュールと外部コンポーネントとのやり取りに使用されるクラスと関数です。 +- **アルゴリズム:** モジュールの内部ロジックを実装するコードです。 +- **テスト:** モジュールを検証するためのテストケースです。 +- **ドキュメント:** モジュールのインターフェース、実装、テストについての説明です。 ### モジュールの例 以下に、Planning 2.x で実装されているモジュールの例をいくつか示します。 -* **Local Planner:** 自車位置から近接将来の軌道を生成します。 -* **Global Planner:** 長期的な将来の軌道を生成します。 -* **Behavior Planner:** 自車の動作を決定します。 -* **Prediction Module:** 他者の動きを予測します。 +- **Local Planner:** 自車位置から近接将来の軌道を生成します。 +- **Global Planner:** 長期的な将来の軌道を生成します。 +- **Behavior Planner:** 自車の動作を決定します。 +- **Prediction Module:** 他者の動きを予測します。 ### モジュール開発の手順 @@ -302,24 +309,24 @@ Planning 2.x でモジュールを開発するには、以下の手順に従い Planning 2.x のモジュールをメンテナンスするには、以下のベストプラクティスに従うことをお勧めします。 -* **コードの変更を記録する:** コードの変更をコミットログに記録します。 -* **継続的な統合を使用する:** 変更があると自動的にモジュールをテストおよびビルドする継続的な統合システムを使用します。 -* **モジュールを更新する:** Planning の新しいバージョンがリリースされたら、モジュールを更新します。 +- **コードの変更を記録する:** コードの変更をコミットログに記録します。 +- **継続的な統合を使用する:** 変更があると自動的にモジュールをテストおよびビルドする継続的な統合システムを使用します。 +- **モジュールを更新する:** Planning の新しいバージョンがリリースされたら、モジュールを更新します。 ### サポート Planning 2.x のモジュール開発に関するサポートについては、[Autoware フォーラム](https://forum.autoware.ai/) にアクセスしてください。 -| 名前 | タイプ | 説明 | -| ----------------- | ----------------------------------------------- | ---------------------------------------------------------- | -| `output/weighted_particles` | `yabloc_particle_filter::msg::ParticleArray` | ウェイト付き粒子 | -| `debug/cost_map_image` | `sensor_msgs::msg::Image` | lanelet2 から生成されたコストマップ | -| `debug/cost_map_range` | `visualization_msgs::msg::MarkerArray` | コストマップ境界 | -| `debug/match_image` | `sensor_msgs::msg::Image` | 投影線分画像 | -| `debug/scored_cloud` | `sensor_msgs::msg::PointCloud2` | ウェイト付き3D線分 | -| `debug/scored_post_cloud` | `sensor_msgs::msg::PointCloud2` | ウェイト付き3D線分(不確実なもの) | -| `debug/state_string` | `std_msgs::msg::String` | ノード状態を表す文字列 | -| `debug/particles_marker_array` | `visualization_msgs::msg::MarkerArray` | 粒子ビジュアライゼーション.`visualize` が True の場合に公開 | +| 名前 | タイプ | 説明 | +| ------------------------------ | -------------------------------------------- | ----------------------------------------------------------- | +| `output/weighted_particles` | `yabloc_particle_filter::msg::ParticleArray` | ウェイト付き粒子 | +| `debug/cost_map_image` | `sensor_msgs::msg::Image` | lanelet2 から生成されたコストマップ | +| `debug/cost_map_range` | `visualization_msgs::msg::MarkerArray` | コストマップ境界 | +| `debug/match_image` | `sensor_msgs::msg::Image` | 投影線分画像 | +| `debug/scored_cloud` | `sensor_msgs::msg::PointCloud2` | ウェイト付き3D線分 | +| `debug/scored_post_cloud` | `sensor_msgs::msg::PointCloud2` | ウェイト付き3D線分(不確実なもの) | +| `debug/state_string` | `std_msgs::msg::String` | ノード状態を表す文字列 | +| `debug/particles_marker_array` | `visualization_msgs::msg::MarkerArray` | 粒子ビジュアライゼーション.`visualize` が True の場合に公開 | ### パラメータ @@ -327,7 +334,6 @@ Planning 2.x のモジュール開発に関するサポートについては、[ ### サービス -| 名 | 種類 | 説明 | -| ------------ | ------------------------ | ----------------------------------------- | -| `switch_srv` | `std_srvs::srv::SetBool` | 補正の有効化と無効化 | - +| 名 | 種類 | 説明 | +| ------------ | ------------------------ | -------------------- | +| `switch_srv` | `std_srvs::srv::SetBool` | 補正の有効化と無効化 | diff --git a/localization/yabloc/yabloc_pose_initializer/README.md b/localization/yabloc/yabloc_pose_initializer/README.md index a3cafdcd1749..599ac30c1cdc 100644 --- a/localization/yabloc/yabloc_pose_initializer/README.md +++ b/localization/yabloc/yabloc_pose_initializer/README.md @@ -8,7 +8,6 @@ 手動でモデルをダウンロードして解凍するには、次の手順を実行します。 - ```bash $ mkdir -p ~/autoware_data/yabloc_pose_initializer/ $ wget -P ~/autoware_data/yabloc_pose_initializer/ \ @@ -44,6 +43,7 @@ $ tar xzf ~/autoware_data/yabloc_pose_initializer/resources.tar.gz -C ~/autoware - このノードは、ADAPIの要求に応じ、カメラを使用して初期位置を推定します。 #### 入力 + - `/planning/scenario_planning/current_pose`:自車位置 - `/planning/scenario_planning/autoware/config/mission`:ミッション設定 - `/localization/hdmap`:HDマップ @@ -55,13 +55,14 @@ $ tar xzf ~/autoware_data/yabloc_pose_initializer/resources.tar.gz -C ~/autoware - `/planning/scenario_planning/current_frame_id`:現在のフレームID #### 出力 + - `/planning/scenario_planning/autoware/initial_pose`:初期位置推定結果 -| 名称 | 型 | 説明 | -| ------------------- | ------------------------------------ | -------------------------- | -| `input/camera_info` | `sensor_msgs::msg::CameraInfo` | 非歪みカメラ情報 | -| `input/image_raw` | `sensor_msgs::msg::Image` | 非歪みカメラ画像 | -| `input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップ | +| 名称 | 型 | 説明 | +| ------------------- | --------------------------------------- | ---------------- | +| `input/camera_info` | `sensor_msgs::msg::CameraInfo` | 非歪みカメラ情報 | +| `input/image_raw` | `sensor_msgs::msg::Image` | 非歪みカメラ画像 | +| `input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップ | #### 出力 @@ -121,8 +122,8 @@ Perceptionモジュールは、カメラ、レーダー、LiDARなどのセン 検証および検証モジュールは、Autowareシステムの安全性、信頼性、およびパフォーマンスを評価するためのツールと手順を提供します。 -| 名 | 型 | 説明 | -| ------------------- | -------------------------------------- | ----------------------- | +| 名 | 型 | 説明 | +| ------------------- | -------------------------------------- | ------------ | | `output/candidates` | `visualization_msgs::msg::MarkerArray` | 初期姿勢候補 | ### パラメータ @@ -131,7 +132,6 @@ Perceptionモジュールは、カメラ、レーダー、LiDARなどのセン ### サービス -| 名前 | タイプ | 説明 | -| ------------------------ | -------------------------------------------------------------- | ------------------------------------- | -| `yabloc_align_srv` | `tier4_localization_msgs::srv::PoseWithCovarianceStamped` | 初期姿勢推定リクエスト | - +| 名前 | タイプ | 説明 | +| ------------------ | --------------------------------------------------------- | ---------------------- | +| `yabloc_align_srv` | `tier4_localization_msgs::srv::PoseWithCovarianceStamped` | 初期姿勢推定リクエスト | diff --git a/map/autoware_map_height_fitter/README.md b/map/autoware_map_height_fitter/README.md index d97a2cce8828..513fedd7527f 100644 --- a/map/autoware_map_height_fitter/README.md +++ b/map/autoware_map_height_fitter/README.md @@ -10,8 +10,8 @@ ## トピックサブスクリプション -| Topic Name | 説明 | -| ---------------- | -------------------------------------------------------------------------------------------- | +| Topic Name | 説明 | +| ---------------- | ----------------------------------------------------------------------------------------------- | | ~/pointcloud_map | `enable_partial_load = false` の場合のみ使用される、ポイントクラウド マップ全体を含んだトピック | ## サービスクライアント @@ -19,6 +19,7 @@ ### Planningモジュール #### 制御信号の生成 + - **概要** - Planningモジュールは、障害物検出、経路計画、経路追従に基づいて、制御信号を生成します。 - **入力** @@ -29,6 +30,6 @@ - 車両の速度、加速度、操舵角度のコマンド ## サービス名 | 説明 + ---|---| | ~/partial_map_load | 局部地図を読み込むサービス - diff --git a/map/autoware_map_projection_loader/README.md b/map/autoware_map_projection_loader/README.md index d50993caa364..a597fd31c211 100644 --- a/map/autoware_map_projection_loader/README.md +++ b/map/autoware_map_projection_loader/README.md @@ -13,7 +13,6 @@ `map_path` ディレクトリに `map_projector_info.yaml` という名前の YAML ファイルを用意する必要があります。 `pointcloud_map_metadata.yaml` については、`map_loader` の Readme を参照してください。 - ```bash sample-map-rosbag ├── lanelet2_map.osm @@ -28,8 +27,6 @@ sample-map-rosbag ### ローカル座標を使用 - - ```yaml # map_projector_info.yaml projector_type: local @@ -48,7 +45,6 @@ projector_type: local MGRSを使用する場合は、MGRSグリッドも指定してください。 - ```yaml # map_projector_info.yaml projector_type: MGRS @@ -64,7 +60,6 @@ mgrs_grid: 54SUE ローカルカートシャンUTMを使用する場合は、マップの原点も指定してください。 - ```yaml # map_projector_info.yaml projector_type: LocalCartesianUTM @@ -79,7 +74,6 @@ map_origin: TransverseMercator投影を使用する場合は、マップ原点も指定してください。 - ```yaml # map_projector_info.yaml projector_type: TransverseMercator @@ -92,11 +86,10 @@ map_origin: ## 送信トピック -- `~/map_projector_info` (tier4\_map\_msgs/MapProjectorInfo): このトピックは、マッププロジェクターの定義情報を示します。 +- `~/map_projector_info` (tier4_map_msgs/MapProjectorInfo): このトピックは、マッププロジェクターの定義情報を示します。 ## パラメーター これらのパラメーターは起動引数から渡されると想定されており、`map_projection_loader.param.yaml`に直接書き込むことを推奨しません。 {{ json_to_markdown("map/autoware_map_projection_loader/schema/map_projection_loader.schema.json") }} - diff --git a/map/autoware_map_tf_generator/README.md b/map/autoware_map_tf_generator/README.md index b7464d84e257..88665a7788be 100644 --- a/map/autoware_map_tf_generator/README.md +++ b/map/autoware_map_tf_generator/README.md @@ -18,20 +18,21 @@ ### 入力 #### autoware_pcd_map_tf_generator + - ~/map/pcd_map/point_cloud2: PCD形式のマップデータ - ~/localization/current_pose: 自車位置のトピック -| 名前 | タイプ | 説明 | -| --------------------- | ------------------------------------------------ | ------------------------------------------------------------------------ | +| 名前 | タイプ | 説明 | +| --------------------- | ------------------------------- | ------------------------------------------------------------------------- | | `/map/pointcloud_map` | `sensor_msgs::msg::PointCloud2` | `viewer` フレームの位置を計算するためのポイントクラウドマップを購読します | #### autoware_vector_map_tf_generator Vector map publisher that converts map messages received on the ROS topic `/map` to a TF tree, and publishes it on the ROS topic `/tf`. -| 名前 | タイプ | 説明 | -| ------------------- | -------------------------------------------- | ------------------------------------------------------------- | -| `/map/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップをサブスクライブして `viewer` フレームの位置を計算する | +| 名前 | タイプ | 説明 | +| ----------------- | --------------------------------------- | -------------------------------------------------------------------- | +| `/map/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップをサブスクライブして `viewer` フレームの位置を計算する | ### 定常状態計画(SSS)プロセス @@ -44,19 +45,23 @@ SSSプロセスは、以下のようなタスクを実行します。 SSSプロセスは、以下からなる複数のモジュールで構成されています。 - **障害物除去モジュール:** + - レーダーセンサーやカメラセンサーから取得した障害物情報を処理します。 - 障害物情報をSSSマップにマージして、通行可能な領域を更新します。 - **パス計画モジュール:** + - Local Plannerから生成されたパスを受け取ります。 - SSSマップ上の通行可能な領域に基づいて、パスを修正して安全性を確保します。 - **速度計画モジュール:** + - パス計画モジュールから修正されたパスを受け取ります。 - 速度逸脱量と加速度逸脱量を計算します。 - Reference Pathに沿った速度プロファイルを作成します。 - **Reference Path生成モジュール:** + - パス計画モジュールから修正されたパスと速度プロファイルを受け取ります。 - パスを滑らかに補間して、Reference Pathを生成します。 - 自車位置を考慮してReference Pathを補正します。 @@ -65,8 +70,8 @@ SSSプロセスは、以下からなる複数のモジュールで構成され - Reference Pathをリサンプリングして、一定の時間間隔でデータポイントを作成します。 - 'post resampling'によって、以降のコンポーネントへのスムーズなデータ引き渡しが可能になります。 -| 名称 | タイプ | 説明 | -| ------------ | ------------------------ | ------------------------- | +| 名称 | タイプ | 説明 | +| ------------ | ------------------------ | ---------------------------------- | | `/tf_static` | `tf2_msgs/msg/TFMessage` | `viewer`フレームをブロードキャスト | ## パラメータ @@ -82,4 +87,3 @@ SSSプロセスは、以下からなる複数のモジュールで構成され ## 想定 / 制限事項 未定義。 - diff --git a/map/map_loader/README.md b/map/map_loader/README.md index 51c7807105f7..40a15e4b018c 100644 --- a/map/map_loader/README.md +++ b/map/map_loader/README.md @@ -22,7 +22,7 @@ 単一の .pcd ファイルまたは複数の .pcd ファイルを提供できます。複数の PCD データを使用する場合は、次のルールに従う必要があります。 -1. **ポイントクラウド マップは、`map_projection_loader` で定義された同じ座標に投影する必要があります**。これは、車線マップと、局所座標と測地座標を変換する他のパッケージと整合性を保つためです。詳細については、[``map_projection_loader`` の README](https://github.com/autowarefoundation/autoware.universe/tree/main/map/autoware_map_projection_loader/README.md) を参照してください。 +1. **ポイントクラウド マップは、`map_projection_loader` で定義された同じ座標に投影する必要があります**。これは、車線マップと、局所座標と測地座標を変換する他のパッケージと整合性を保つためです。詳細については、[`map_projection_loader` の README](https://github.com/autowarefoundation/autoware.universe/tree/main/map/autoware_map_projection_loader/README.md) を参照してください。 2. **x 軸と y 軸に平行な直線で分割する必要があります**。このシステムは、対角線または曲線による分割をサポートしていません。 3. **各軸に沿った分割サイズは等しくする必要があります**。特に、分割サイズが大きすぎる (たとえば、100 m 以上) 場合は、[ndt_scan_matcher](https://github.com/autowarefoundation/autoware.universe/tree/main/localization/autoware_ndt_scan_matcher) と [autoware_compare_map_segmentation](https://github.com/autowarefoundation/autoware.universe/tree/main/perception/autoware_compare_map_segmentation) の動的マップのローディング機能に悪影響を与える可能性があるため注意してください。 4. **すべての分割マップは互いに重複しないようにする必要があります**。 @@ -32,7 +32,6 @@ メタデータは次のようになります。 - ```yaml x_resolution: 20.0 y_resolution: 20.0 @@ -48,9 +47,9 @@ D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540 点群マップのフォーマットは次のとおりです。 -```` +``` .pcd -```` +``` - `x_resolution`と`y_resolution` - `A.pcd`, `B.pcd`などはPCDファイルの名前です。 @@ -62,7 +61,6 @@ D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540 点群マップが1つしかない場合、Autowareはデフォルトで次のディレクトリ構造を使用します。 - ```bash sample-map-rosbag ├── lanelet2_map.osm @@ -71,7 +69,6 @@ sample-map-rosbag 複数ロズバッグがある場合は、次のようになります。マルチポイントクラウドマップファイルがある場合はメタデータを用意する必要があります。 - ```bash sample-map-rosbag ├── lanelet2_map.osm @@ -178,4 +175,3 @@ lanelet2_map_visualizationは、autoware_map_msgs/LaneletMapBinメッセージ ### パブリッシュするトピック - ~output/lanelet2_map_marker (visualization_msgs/MarkerArray) : RViz用の可視化メッセージ - diff --git a/map/util/lanelet2_map_preprocessor/README.md b/map/util/lanelet2_map_preprocessor/README.md index 43dbec43e8cf..e6394d74e54c 100644 --- a/map/util/lanelet2_map_preprocessor/README.md +++ b/map/util/lanelet2_map_preprocessor/README.md @@ -1,2 +1 @@ このパッケージは に移動されました。 - diff --git a/perception/autoware_bytetrack/README.md b/perception/autoware_bytetrack/README.md index 3b5fa5db2138..a749f0741eb9 100644 --- a/perception/autoware_bytetrack/README.md +++ b/perception/autoware_bytetrack/README.md @@ -34,8 +34,8 @@ #### 入力 -| 名称 | タイプ | 説明 | -|---|---|---| +| 名称 | タイプ | 説明 | +| --------- | -------------------------------------------------- | ---------------------------------------------- | | `in/rect` | `tier4_perception_msgs/DetectedObjectsWithFeature` | 2Dバウンディングボックスを伴う検出オブジェクト | #### 自動運転ソフトウェアの日本語ドキュメント @@ -48,44 +48,44 @@ Autowareは、モジュール化されたアーキテクチャに基づいており、次の主要なコンポーネントで構成されています。 -* **Perception:** センサーデータからオブジェクト、道路、およびその他の環境情報を検出し、追跡します。 -* **Planning:** 自車の経路を生成し、周囲の状況に応じて最適化します。 -* **Control:** 生成された経路に従って自車を制御します。 -* **Localization:** 自車位置と姿勢を推定します。 -* **Behavior Planning:** 交通規則や社会的規範に基づいて、自車の挙動を制御します。 -* **Map:** 道路網、交通規制、およびその他の環境情報を提供します。 +- **Perception:** センサーデータからオブジェクト、道路、およびその他の環境情報を検出し、追跡します。 +- **Planning:** 自車の経路を生成し、周囲の状況に応じて最適化します。 +- **Control:** 生成された経路に従って自車を制御します。 +- **Localization:** 自車位置と姿勢を推定します。 +- **Behavior Planning:** 交通規則や社会的規範に基づいて、自車の挙動を制御します。 +- **Map:** 道路網、交通規制、およびその他の環境情報を提供します。 **コンポーネント** **Perceptionコンポーネント** -* カメラ感知 -* LiDAR感知 -* レーダー感知 +- カメラ感知 +- LiDAR感知 +- レーダー感知 **Planningコンポーネント** -* Motion Planning -* Trajectory Planning -* Path Tracking +- Motion Planning +- Trajectory Planning +- Path Tracking **Controlコンポーネント** -* ステアリング制御 -* アクセル/ブレーキ制御 -* 協調運動制御 +- ステアリング制御 +- アクセル/ブレーキ制御 +- 協調運動制御 **Localizationコンポーネント** -* GPS -* IMU -* オドメトリ +- GPS +- IMU +- オドメトリ **Behavior Planningコンポーネント** -* 交通信号制御 -* 歩行者横断制御 -* 車線変更制御 +- 交通信号制御 +- 歩行者横断制御 +- 車線変更制御 **インターフェース** @@ -95,9 +95,9 @@ Autowareコンポーネントは、ROSインターフェースを使用して相 Autowareは、開発プロセスをサポートするための独自のツールを提供しています。 -* **Autoware.AI:** Autowareソフトウェアを構築、テスト、展開するための包括的なプラットフォーム。 -* **OpenPlanner:** プランニングアルゴリズムの開発とシミュレーションのためのツール。 -* **CARLA:** 自動運転ソフトウェアのテストのためのシミュレーター。 +- **Autoware.AI:** Autowareソフトウェアを構築、テスト、展開するための包括的なプラットフォーム。 +- **OpenPlanner:** プランニングアルゴリズムの開発とシミュレーションのためのツール。 +- **CARLA:** 自動運転ソフトウェアのテストのためのシミュレーター。 **追加情報** @@ -107,36 +107,36 @@ Autowareコミュニティフォーラムおよびドキュメントページか このドキュメントに記載されている情報は、Autowareプロジェクトの現在の開発状況に基づいています。将来のリリースで変更される場合があります。 -| 名称 | タイプ | 説明 | -|---|---|---| -| `out/objects` | `tier4_perception_msgs/DetectedObjectsWithFeature` | 2Dバウンディングボックスを含む検出した物体 | -| `out/objects/debug/uuid` | `tier4_perception_msgs/DynamicObjectArray` | 各物体のユニバーサル一意識別子(UUID) | +| 名称 | タイプ | 説明 | +| ------------------------ | -------------------------------------------------- | ------------------------------------------ | +| `out/objects` | `tier4_perception_msgs/DetectedObjectsWithFeature` | 2Dバウンディングボックスを含む検出した物体 | +| `out/objects/debug/uuid` | `tier4_perception_msgs/DynamicObjectArray` | 各物体のユニバーサル一意識別子(UUID) | ### bytetrack_visualizer #### 入力 -| 名称 | 型 | 説明 | -|---|---|---| -| `in/image` | `sensor_msgs/Image` または `sensor_msgs/CompressedImage` | オブジェクト検出を実行する入力画像 | -| `in/rect` | `tier4_perception_msgs/DetectedObjectsWithFeature` | 2D バウンディングボックスを備えた検出オブジェクト | -| `in/uuid` | `tier4_perception_msgs/DynamicObjectArray` | 各オブジェクトの一意の識別子 (UUID) | -| `in/planning_status` | PlanningStatus | Planningモジュールによって計算された、自車位置と周囲の車両の状況 | -| `out/path` | `tier4_planning_msgs/Path` | Planningモジュールによって生成された予定経路 | -| `out/predicted_objects` | `tier4_planning_msgs/PredictedObjects` | 他の車両の予測軌跡 | -| `out/optimized_path` | `tier4_planning_msgs/OptimizedPath` | `post resampling` と走行性改善を適用した最適化された予定経路 | -| `out/published_objects` | `tier4_perception_msgs/PublishedObject` | Autowareが一般的なトピックに公開するオブジェクト | -| `in/odom` | `nav_msgs/Odometry` | 自車位置と速度 | -| `in/detected_lane` | `DetectedLaneArray` | 認識された車線 | -| `out/optimized_pose` | `geometry_msgs/PoseStamped` | 列挙された PlanningStatus の中で「最適化された」もの | -| `out/regular_pose` | `geometry_msgs/PoseStamped` | 列挙された PlanningStatus の中で「一般」のもの | -| `out/emergency_pose` | `geometry_msgs/PoseStamped` | 列挙された PlanningStatus の中で「緊急」のもの | -| `out/velocity_diff` | `geometry_msgs/Twist` | `in/odom` と `optimized_pose` の速度の差 | -| `out/acceleration_diff` | `geometry_msgs/Twist` | `in/odom` と `optimized_pose` の加速度の差 | -| `out/velocity_diff_with_filtered_brake` | `geometry_msgs/Twist` | フィルタリングされたブレーキをかけた `velocity_diff` | -| `out/acceleration_diff_with_filtered_brake` | `geometry_msgs/Twist` | フィルタリングされたブレーキをかけた `acceleration_diff` | -| `out/velocity_diff_with_filtered_gear` | `geometry_msgs/Twist` | フィルタリングされたギアをかけた `velocity_diff` | -| `out/acceleration_diff_with_filtered_gear` | `geometry_msgs/Twist` | フィルタリングされたギアをかけた `acceleration_diff` | +| 名称 | 型 | 説明 | +| ------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------- | +| `in/image` | `sensor_msgs/Image` または `sensor_msgs/CompressedImage` | オブジェクト検出を実行する入力画像 | +| `in/rect` | `tier4_perception_msgs/DetectedObjectsWithFeature` | 2D バウンディングボックスを備えた検出オブジェクト | +| `in/uuid` | `tier4_perception_msgs/DynamicObjectArray` | 各オブジェクトの一意の識別子 (UUID) | +| `in/planning_status` | PlanningStatus | Planningモジュールによって計算された、自車位置と周囲の車両の状況 | +| `out/path` | `tier4_planning_msgs/Path` | Planningモジュールによって生成された予定経路 | +| `out/predicted_objects` | `tier4_planning_msgs/PredictedObjects` | 他の車両の予測軌跡 | +| `out/optimized_path` | `tier4_planning_msgs/OptimizedPath` | `post resampling` と走行性改善を適用した最適化された予定経路 | +| `out/published_objects` | `tier4_perception_msgs/PublishedObject` | Autowareが一般的なトピックに公開するオブジェクト | +| `in/odom` | `nav_msgs/Odometry` | 自車位置と速度 | +| `in/detected_lane` | `DetectedLaneArray` | 認識された車線 | +| `out/optimized_pose` | `geometry_msgs/PoseStamped` | 列挙された PlanningStatus の中で「最適化された」もの | +| `out/regular_pose` | `geometry_msgs/PoseStamped` | 列挙された PlanningStatus の中で「一般」のもの | +| `out/emergency_pose` | `geometry_msgs/PoseStamped` | 列挙された PlanningStatus の中で「緊急」のもの | +| `out/velocity_diff` | `geometry_msgs/Twist` | `in/odom` と `optimized_pose` の速度の差 | +| `out/acceleration_diff` | `geometry_msgs/Twist` | `in/odom` と `optimized_pose` の加速度の差 | +| `out/velocity_diff_with_filtered_brake` | `geometry_msgs/Twist` | フィルタリングされたブレーキをかけた `velocity_diff` | +| `out/acceleration_diff_with_filtered_brake` | `geometry_msgs/Twist` | フィルタリングされたブレーキをかけた `acceleration_diff` | +| `out/velocity_diff_with_filtered_gear` | `geometry_msgs/Twist` | フィルタリングされたギアをかけた `velocity_diff` | +| `out/acceleration_diff_with_filtered_gear` | `geometry_msgs/Twist` | フィルタリングされたギアをかけた `acceleration_diff` | #### 出力 @@ -166,29 +166,29 @@ Autowareコミュニティフォーラムおよびドキュメントページか 追従制御量は、次の形式です。 -* 横方向速度逸脱量(lateral velocity error) -* 横方向加速度逸脱量(lateral acceleration error) -* 縦方向速度逸脱量(longitudinal velocity error) -* 縦方向加速度逸脱量(longitudinal acceleration error) +- 横方向速度逸脱量(lateral velocity error) +- 横方向加速度逸脱量(lateral acceleration error) +- 縦方向速度逸脱量(longitudinal velocity error) +- 縦方向加速度逸脱量(longitudinal acceleration error) ### パラメータ 追従アルゴリズムのパラメータは、次のとおりです。 -* 再サンプリング間隔(resampling interval) -* 前方検索距離(lookahead distance) +- 再サンプリング間隔(resampling interval) +- 前方検索距離(lookahead distance) ### 注意事項 次の点に注意してください。 -* 追従アルゴリズムは、 planificatorによって生成された経路に依存しています。 -* 追従アルゴリズムは、車両の動的特性とは無関係です。 -* 追従アルゴリズムは、リアルタイムで動作するように設計されています。 +- 追従アルゴリズムは、 planificatorによって生成された経路に依存しています。 +- 追従アルゴリズムは、車両の動的特性とは無関係です。 +- 追従アルゴリズムは、リアルタイムで動作するように設計されています。 -| 名前 | タイプ | 説明 | -| ----------- | ------------------- | ------------------------------------------------------------------- | -| `out/image` | `sensor_msgs/Image` | 検出された境界ボックスとそのUUIDが描画された画像 | +| 名前 | タイプ | 説明 | +| ----------- | ------------------- | ------------------------------------------------ | +| `out/image` | `sensor_msgs/Image` | 検出された境界ボックスとそのUUIDが描画された画像 | ## パラメータ @@ -196,18 +196,17 @@ Autowareコミュニティフォーラムおよびドキュメントページか #### Planningモジュール用のパラメータ -| 名前 | タイプ | デフォルト値 | 説明 | -| --------------------- | ---- | ------------- | ------------------------------------------- | -| `track_buffer_length` | int | 30 | トラッキングが失われたと見なされるフレーム数 | +| 名前 | タイプ | デフォルト値 | 説明 | +| --------------------- | ------ | ------------ | -------------------------------------------- | +| `track_buffer_length` | int | 30 | トラッキングが失われたと見なされるフレーム数 | ### bytetrack_visualizer ※: このドキュメントはAutoware.Autoの開発ドキュメントの一部です。 - -| 名称 | 種類 | デフォルト値 | 説明 | -| --------- | ---- | ------------- | ---------------------------------------------------------------------------------------------- | -| `use_raw` | bool | false | ノードが `sensor_msgs/Image` または `sensor_msgs/CompressedImage` を入力として切り替える場合のフラグ | +| 名称 | 種類 | デフォルト値 | 説明 | +| --------- | ---- | ------------ | ---------------------------------------------------------------------------------------------------- | +| `use_raw` | bool | false | ノードが `sensor_msgs/Image` または `sensor_msgs/CompressedImage` を入力として切り替える場合のフラグ | ## 想定/既知の制限 @@ -229,4 +228,3 @@ Autowareコミュニティフォーラムおよびドキュメントページか > 上記の著作権表示およびこの通知は、ソフトウェアのすべての複製または重要な部分に含まれる必要があります。 > > ソフトウェアは明示的または黙示的に保証されることなく、「現状のまま」提供されます。商品性、特定の目的への適合性、非侵害の保証を含むがこれらに限定されない保証は含まれます。いかなる場合も、著作権者または権利者は、契約、不法行為、またはその他の行為に関連して、またはその結果、ソフトウェアまたはソフトウェアの使用または他の取り扱いから生じる請求、損害、またはその他の責任について責任を負いません。 - diff --git a/perception/autoware_cluster_merger/README.md b/perception/autoware_cluster_merger/README.md index 7ef6415ad6a9..27ececee6de7 100644 --- a/perception/autoware_cluster_merger/README.md +++ b/perception/autoware_cluster_merger/README.md @@ -12,8 +12,8 @@ autoware_cluster_mergerは、特徴種別ごとにより検出された対象を ### 入力 -| 名称 | タイプ | 説明 | -| ---------------- | -------------------------------------------------------- | ------------------- | +| 名称 | タイプ | 説明 | +| ---------------- | -------------------------------------------------------- | ------------------ | | `input/cluster0` | `tier4_perception_msgs::msg::DetectedObjectsWithFeature` | pointcloudクラスタ | | `input/cluster1` | `tier4_perception_msgs::msg::DetectedObjectsWithFeature` | pointcloudクラスタ | @@ -27,55 +27,55 @@ autoware_cluster_mergerは、特徴種別ごとにより検出された対象を **BEV Planner** -* 障害物検出および分類 -* 静的障害物と動的障害物のトラッキング -* **Planning**領域内のフリースペースの推定 +- 障害物検出および分類 +- 静的障害物と動的障害物のトラッキング +- **Planning**領域内のフリースペースの推定 **Maneuver Planner** -* 自車位置を考慮した**Planning**領域内のマニューバの生成 -* 交通規則と安全要件を遵守するマニューバの選定 -* 経路候補の生成 +- 自車位置を考慮した**Planning**領域内のマニューバの生成 +- 交通規則と安全要件を遵守するマニューバの選定 +- 経路候補の生成 **Path Planner** -* マニューバから最適経路を生成 -* 経路の滑らかさと安全性を確保する最適化 -* 車両の動的制限を考慮した経路の生成 +- マニューバから最適経路を生成 +- 経路の滑らかさと安全性を確保する最適化 +- 車両の動的制限を考慮した経路の生成 **追従モード** 追従モードでは、**Planning**モジュールは前走車を監視し、次のタスクを実行します。 -* 前走車の速度と相対位置の追跡 -* 安全な車間距離の維持 -* `post resampling`を使用して経路を更新し、前走車の挙動の変化に対応 +- 前走車の速度と相対位置の追跡 +- 安全な車間距離の維持 +- `post resampling`を使用して経路を更新し、前走車の挙動の変化に対応 **経路計画モード** 経路計画モードでは、**Planning**モジュールは、指定された目的地までの経路を生成します。このモードでは、次のタスクが実行されます。 -* ナビゲーションデータからの経路候補の生成 -* 障害物や交通規制を考慮した経路の選択 -* 衝突の回避と車両の安全を確保する経路の最適化 +- ナビゲーションデータからの経路候補の生成 +- 障害物や交通規制を考慮した経路の選択 +- 衝突の回避と車両の安全を確保する経路の最適化 **エラー処理** **Planning**モジュールは、さまざまなエラーを検出して処理します。これらのエラーには以下が含まれます。 -* 障害物との衝突 -* velocity逸脱量 -* acceleration逸脱量 -* など +- 障害物との衝突 +- velocity逸脱量 +- acceleration逸脱量 +- など -| 名前 | タイプ | 説明 | -| ---------------- | ------------------------------------------------------- | ------------ | +| 名前 | タイプ | 説明 | +| ----------------- | -------------------------------------------------------- | -------------------- | | `output/clusters` | `tier4_perception_msgs::msg::DetectedObjectsWithFeature` | マージされたクラスタ | ## パラメータ -| 名称 | タイプ | 説明 | デフォルト値 | -| :---------------- | :----- | :----------------------------------- | :------------ | +| 名称 | タイプ | 説明 | デフォルト値 | +| :---------------- | :----- | :------------------------------ | :------------ | | `output_frame_id` | 文字列 | 出力トピックのheader frame_id。 | **base_link** | -------------------- +--- ## 仮定 / 既知の制限 @@ -192,4 +192,3 @@ Example: --> ## (任意) 将来の拡張機能 / 未実装部分 - diff --git a/perception/autoware_compare_map_segmentation/README.md b/perception/autoware_compare_map_segmentation/README.md index 958aa002e570..338420c768b6 100644 --- a/perception/autoware_compare_map_segmentation/README.md +++ b/perception/autoware_compare_map_segmentation/README.md @@ -38,9 +38,9 @@ #### 入力 -| 名前 | タイプ | 説明 | +| 名前 | タイプ | 説明 | | ----------------------- | ------------------------------- | ---------- | -| `~/input/points` | `sensor_msgs::msg::PointCloud2` | 基準点 | +| `~/input/points` | `sensor_msgs::msg::PointCloud2` | 基準点 | | `~/input/elevation_map` | `grid_map::msg::GridMap` | 標高マップ | #### 出力 @@ -100,27 +100,27 @@ PIDプランニングの性能は、以下を含むパラメータによって これらのパラメータは、車両のダイナミクスとアプリケーションの要件に応じて調整する必要があります。 -| 名前 | 種別 | 説明 | -| ----------------- | ------------------------------- | --------------- | +| 名前 | 種別 | 説明 | +| ----------------- | ------------------------------- | ------------------------- | | `~/output/points` | `sensor_msgs::msg::PointCloud2` | フィルタリングされた点 群 | #### パラメーター -| 名前 | タイプ | 説明 | デフォルト値 | -| :------------------- | :----- | :------------------------------------------------------------------------------ | :------------ | -| `map_layer_name` | 文字列 | 標高マップレイヤー名 | elevation | -| `map_frame` | 浮動小数 | 標高マップサブスクライブ前のマップのframe_id | マップ | -| `height_diff_thresh` | 浮動小数 | この値より標高差が小さい点は削除 [m] | 0.15 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :------------------- | :------- | :------------------------------------------- | :----------- | +| `map_layer_name` | 文字列 | 標高マップレイヤー名 | elevation | +| `map_frame` | 浮動小数 | 標高マップサブスクライブ前のマップのframe_id | マップ | +| `height_diff_thresh` | 浮動小数 | この値より標高差が小さい点は削除 [m] | 0.15 | ### 他のフィルタ #### 入力 -| 名前 | タイプ | 説明 | -| ------------------------------- | ------------------------------- | ------------------------------------------------------ | -| `~/input/points` | `sensor_msgs::msg::PointCloud2` | リファレンスポイント | -| `~/input/map` | `sensor_msgs::msg::PointCloud2` | マップ(静的マップをロードする場合) | -| `/localization/kinematic_state` | `nav_msgs::msg::Odometry` | 自車位置(動的マップをロードする場合) | +| 名前 | タイプ | 説明 | +| ------------------------------- | ------------------------------- | -------------------------------------- | +| `~/input/points` | `sensor_msgs::msg::PointCloud2` | リファレンスポイント | +| `~/input/map` | `sensor_msgs::msg::PointCloud2` | マップ(静的マップをロードする場合) | +| `/localization/kinematic_state` | `nav_msgs::msg::Odometry` | 自車位置(動的マップをロードする場合) | #### 出力 @@ -134,105 +134,105 @@ Autowareによる自動運転ソフトウェア文書の日本語訳 Autowareのセーフティコンポーネントは、以下のサブコンポーネントで構成されています。 -* **モーションプランニング** -* **オブジェクト認識** -* **センサフュージョン** +- **モーションプランニング** +- **オブジェクト認識** +- **センサフュージョン** **モーションプランニング** モーションプランニングサブコンポーネントは、車両の移動経路を生成します。 この経路は、以下の情報に基づいて生成されます。 -* **自車位置** -* **目標位置** -* **車両の周囲環境(オブジェクト認識によって検出)** +- **自車位置** +- **目標位置** +- **車両の周囲環境(オブジェクト認識によって検出)** モーションプランニングサブコンポーネントは、以下のアルゴリズムを使用して経路を生成します。 -* **DWA(動的ウィンドウアプローチ)** -* **EB(弾性バンドメソッド)** -* **PRM(確率的ロードマップ法)** +- **DWA(動的ウィンドウアプローチ)** +- **EB(弾性バンドメソッド)** +- **PRM(確率的ロードマップ法)** **オブジェクト認識** オブジェクト認識サブコンポーネントは、車両の周囲環境内のオブジェクトを検出します。 このサブコンポーネントは、以下のセンサからのデータを使用してオブジェクトを検出します。 -* **LiDAR** -* **カメラ** -* **レーダー** +- **LiDAR** +- **カメラ** +- **レーダー** オブジェクト認識サブコンポーネントは、以下のアルゴリズムを使用してオブジェクトを検出します。 -* **PCL(点群ライブラリ)** -* **オープンCV** -* **深度学習** +- **PCL(点群ライブラリ)** +- **オープンCV** +- **深度学習** **センサフュージョン** センサフュージョンサブコンポーネントは、さまざまなセンサからのデータを統合します。統合されたデータは、車両の周囲環境のより正確で完全な表現を提供します。センサフュージョンサブコンポーネントは、以下のアルゴリズムを使用してデータを統合します。 -* **カルマンフィルタ** -* **粒子フィルタ** -* **グラフ最適化** +- **カルマンフィルタ** +- **粒子フィルタ** +- **グラフ最適化** **セーフティチェック** セーフティチェックサブコンポーネントは、車両の動作をリアルタイムで監視します。 このサブコンポーネントは、以下のパラメータを監視します。 -* **速度** -* **加速度** -* **ヨー角速度** -* **制動圧** +- **速度** +- **加速度** +- **ヨー角速度** +- **制動圧** セーフティチェックサブコンポーネントは、以下の基準に基づいて潜在的な危険を特定します。 -* **安全限界の逸脱** -* **異常動作** -* **予想外のイベント** +- **安全限界の逸脱** +- **異常動作** +- **予想外のイベント** **応答アクション** 潜在的な危険が特定されると、セーフティチェックサブコンポーネントは他のコンポーネントに警告を発し、以下の応答アクションを実行します。 -* **速度の低下** -* **方向転換** -* **制動** -* **衝突回避** +- **速度の低下** +- **方向転換** +- **制動** +- **衝突回避** **インターフェース** セーフティコンポーネントは、以下のインターフェースを他のコンポーネントと持っています。 -* **Planningコンポーネント** -* **コントロールコンポーネント** -* **ヒューマンマシンインターフェースコンポーネント** +- **Planningコンポーネント** +- **コントロールコンポーネント** +- **ヒューマンマシンインターフェースコンポーネント** **パフォーマンス** セーフティコンポーネントは、他のコンポーネントを妨げずにリアルタイムで動作するように設計されています。 このコンポーネントは、以下を含むさまざまな条件下でテストされており、確実にその機能を実行することが証明されています。 -* **さまざまな道路状況** -* **さまざまな気象条件** -* **さまざまな交通状況** +- **さまざまな道路状況** +- **さまざまな気象条件** +- **さまざまな交通状況** **結論** Autowareのセーフティコンポーネントは、自動運転システムにおける安全上の要件を満たすために不可欠です。 このコンポーネントは、リアルタイムで車両の動作を監視し、潜在的な危険を特定し、衝突回避などの適切な対策を講じます。 -| 名前 | タイプ | 説明 | -| -------------------------- | --------------------------------------------------- | -------------------------------------- | -| `~/output/points` | `sensor_msgs::msg::PointCloud2` | フィルタされたポイント | +| 名前 | タイプ | 説明 | +| ----------------- | ------------------------------- | ---------------------- | +| `~/output/points` | `sensor_msgs::msg::PointCloud2` | フィルタされたポイント | #### パラメータ -| 名称 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `use_dynamic_map_loading` | ブーリアン | マップ読み込みモードの選択、`true` は動的マップ読み込み、`false` は静的マップ読み込み、分割なしのマップポイントクラウドの場合に推奨 | true | -| `distance_threshold` | 浮動小数点数 | マップポイントと入力ポイントを比較するしきい値距離 [m] | 0.5 | -| `map_update_distance_threshold` | 浮動小数点数 | マップの更新が必要な場合の車両移動距離のしきい値(動的マップ読み込み時)[m] | 10.0 | -| `map_loader_radius` | 浮動小数点数 | 読み込む必要があるマップの半径(動的マップ読み込み時)[m] | 150.0 | -| `timer_interval_ms` | 整数 | マップの更新が必要かどうかを確認するためのタイマー間隔(動的マップ読み込み時)[ms] | 100 | -| `publish_debug_pcd` | ブーリアン | デバッグ用に`debug/downsampled_map/pointcloud`にボクセル化された更新マップをパブリッシュするかどうか。追加の計算コストが発生する可能性があります。 | false | -| `downsize_ratio_z_axis` | 倍数 | z軸の`voxel_leaf_size`と近傍点の距離しきい値を減らすための正の倍率 | 0.5 | +| 名称 | タイプ | 説明 | デフォルト値 | +| ------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | +| `use_dynamic_map_loading` | ブーリアン | マップ読み込みモードの選択、`true` は動的マップ読み込み、`false` は静的マップ読み込み、分割なしのマップポイントクラウドの場合に推奨 | true | +| `distance_threshold` | 浮動小数点数 | マップポイントと入力ポイントを比較するしきい値距離 [m] | 0.5 | +| `map_update_distance_threshold` | 浮動小数点数 | マップの更新が必要な場合の車両移動距離のしきい値(動的マップ読み込み時)[m] | 10.0 | +| `map_loader_radius` | 浮動小数点数 | 読み込む必要があるマップの半径(動的マップ読み込み時)[m] | 150.0 | +| `timer_interval_ms` | 整数 | マップの更新が必要かどうかを確認するためのタイマー間隔(動的マップ読み込み時)[ms] | 100 | +| `publish_debug_pcd` | ブーリアン | デバッグ用に`debug/downsampled_map/pointcloud`にボクセル化された更新マップをパブリッシュするかどうか。追加の計算コストが発生する可能性があります。 | false | +| `downsize_ratio_z_axis` | 倍数 | z軸の`voxel_leaf_size`と近傍点の距離しきい値を減らすための正の倍率 | 0.5 | ## 前提条件 / 制限事項 @@ -243,4 +243,3 @@ Autowareのセーフティコンポーネントは、自動運転システムに ## (任意)外部リンク/外部リファレンス ## (任意)将来の拡張 / 未実装部分 - diff --git a/perception/autoware_crosswalk_traffic_light_estimator/README.md b/perception/autoware_crosswalk_traffic_light_estimator/README.md index 37ec6109a976..52b891b05168 100644 --- a/perception/autoware_crosswalk_traffic_light_estimator/README.md +++ b/perception/autoware_crosswalk_traffic_light_estimator/README.md @@ -8,11 +8,11 @@ ### 入力 -| 名前 | 型 | 説明 | -| ------------------------------------ | ------------------------------------------------- | ------------------ | -| `~/input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | vector map | -| `~/input/route` | `autoware_planning_msgs::msg::LaneletRoute` | route | -| `~/input/classified/traffic_signals` | `tier4_perception_msgs::msg::TrafficSignalArray` | 交通信号 | +| 名前 | 型 | 説明 | +| ------------------------------------ | ------------------------------------------------ | ---------- | +| `~/input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | vector map | +| `~/input/route` | `autoware_planning_msgs::msg::LaneletRoute` | route | +| `~/input/classified/traffic_signals` | `tier4_perception_msgs::msg::TrafficSignalArray` | 交通信号 | ### 出力 @@ -26,37 +26,37 @@ Planning コンポーネントは、周囲環境からのセンサーデータ **機能** -* **周囲環境認識:** レーダー、カメラ、LiDAR データを使用して、車両、歩行者、障害物を検出します。 -* **自車位置推定:** GPS、IMU、輪速センサーを使用して、自車位置と姿勢を推定します。 -* **経路計画:** 安全で効率的な経路を生成します。 -* **制御指令生成:** 制御システムに速度、加速度、ステアリング角の指令を出力します。 +- **周囲環境認識:** レーダー、カメラ、LiDAR データを使用して、車両、歩行者、障害物を検出します。 +- **自車位置推定:** GPS、IMU、輪速センサーを使用して、自車位置と姿勢を推定します。 +- **経路計画:** 安全で効率的な経路を生成します。 +- **制御指令生成:** 制御システムに速度、加速度、ステアリング角の指令を出力します。 **アルゴリズム** -* **'post resampling'` データ処理を使用して、センサーデータを適合させます。 -* **動的計画法**を使用して、最適な経路を検索します。 -* **モデル予測制御**を使用して、制御指令を生成します。 +- \*\*'post resampling'` データ処理を使用して、センサーデータを適合させます。 +- **動的計画法**を使用して、最適な経路を検索します。 +- **モデル予測制御**を使用して、制御指令を生成します。 **安全機能** -* **衝突検出:** 衝突の可能性を検出して、緊急停止を実行します。 -* **加速度と速度逸脱量監視:** 制御指令が安全な範囲内にあることを確認します。 -* **センサー障害監視:** センサーの障害を検出して、安全に停止または駐車します。 +- **衝突検出:** 衝突の可能性を検出して、緊急停止を実行します。 +- **加速度と速度逸脱量監視:** 制御指令が安全な範囲内にあることを確認します。 +- **センサー障害監視:** センサーの障害を検出して、安全に停止または駐車します。 **Autoware との統合** この Planning コンポーネントは、Autoware プラットフォームと統合されています。Autoware と連携して、周囲環境の認識、自車位置の推定、経路計画を実行します。 -| 名称 | タイプ | 説明 | -| -------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------- | -| `~/output/traffic_signals` | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 推定歩行者用信号機を含む出力 | +| 名称 | タイプ | 説明 | +| -------------------------- | ------------------------------------------------------- | ---------------------------- | +| `~/output/traffic_signals` | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 推定歩行者用信号機を含む出力 | ## パラメータ -| 名前 | タイプ | 説明 | デフォルト値 | -| :-------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| `use_last_detect_color` | `bool` | このパラメータが `true` の場合、このモジュールは、車両の信号が GREEN/AMBER として検出されるだけでなく、検出結果が GREEN/AMBER から UNKNOWN に変わっても歩行者の信号を RED として推定します。(検出結果が RED または AMBER を UNKNOWN に変えた場合、このモジュールは歩行者の信号を UNKNOWN として推定します)。このパラメータが `false` の場合、このモジュールは推定に最新の検出結果のみを使用します。(検出結果が GREEN/AMBER の場合のみ、このモジュールは歩行者の信号を RED として推定します。) | `true` | -| `last_detect_color_hold_time` | `double` | 検出された最後の色の保持時間のしきい値。 | `2.0` | +| 名前 | タイプ | 説明 | デフォルト値 | +| :---------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| `use_last_detect_color` | `bool` | このパラメータが `true` の場合、このモジュールは、車両の信号が GREEN/AMBER として検出されるだけでなく、検出結果が GREEN/AMBER から UNKNOWN に変わっても歩行者の信号を RED として推定します。(検出結果が RED または AMBER を UNKNOWN に変えた場合、このモジュールは歩行者の信号を UNKNOWN として推定します)。このパラメータが `false` の場合、このモジュールは推定に最新の検出結果のみを使用します。(検出結果が GREEN/AMBER の場合のみ、このモジュールは歩行者の信号を RED として推定します。) | `true` | +| `last_detect_color_hold_time` | `double` | 検出された最後の色の保持時間のしきい値。 | `2.0` | ## 内部構造 / アルゴリズム @@ -64,53 +64,63 @@ Planning コンポーネントは、周囲環境からのセンサーデータ **Planningコンポーネント** -* **カーパスジェネレータ:** - * 自己位置、障害物、および経路情報の観測値を使用して、経路を生成します。 +- **カーパスジェネレータ:** -* **経路評価器:** - * 複数の経路の安全性、快適性、および実現可能性を評価します。 + - 自己位置、障害物、および経路情報の観測値を使用して、経路を生成します。 -* **経路プランナー:** - * 評価された経路から最適な経路を選択します。 +- **経路評価器:** -* **操舵制御器:** - * 自己位置と目標経路に応じて、操舵角を生成します。 + - 複数の経路の安全性、快適性、および実現可能性を評価します。 -* **速度制御器:** - * 加速度と速度を制御し、快適性と安全性を確保します。 +- **経路プランナー:** -* **安全監視器:** - * 危険な状況を監視し、必要に応じて緊急ブレーキや緊急回避操作をトリガーします。 + - 評価された経路から最適な経路を選択します。 + +- **操舵制御器:** + + - 自己位置と目標経路に応じて、操舵角を生成します。 + +- **速度制御器:** + + - 加速度と速度を制御し、快適性と安全性を確保します。 + +- **安全監視器:** + - 危険な状況を監視し、必要に応じて緊急ブレーキや緊急回避操作をトリガーします。 **センサーモジュール** -* **ライダー:** - * 車両周辺の3D環境をマッピングします。 +- **ライダー:** + + - 車両周辺の3D環境をマッピングします。 -* **カメラ:** - * 障害物検出、道路認識、および標識認識に使用されます。 +- **カメラ:** -* **慣性測定装置 (IMU):** - * 車両の加速度と角速度情報を提供します。 + - 障害物検出、道路認識、および標識認識に使用されます。 -* **GNSS 受信機:** - * 車両の絶対位置と姿勢情報を提供します。 +- **慣性測定装置 (IMU):** + + - 車両の加速度と角速度情報を提供します。 + +- **GNSS 受信機:** + - 車両の絶対位置と姿勢情報を提供します。 **ロカリゼーションモジュール** -* **自己位置推定器:** - * センサーデータを統合して、自己位置を推定します。 +- **自己位置推定器:** + + - センサーデータを統合して、自己位置を推定します。 -* **マッピングモジュール:** - * 環境認識に使用される高精細マップを生成します。 +- **マッピングモジュール:** + - 環境認識に使用される高精細マップを生成します。 **その他のモジュール** -* **ヒューマンマシンインターフェイス (HMI):** - * ユーザーと車両間のインタラクションを可能にします。 +- **ヒューマンマシンインターフェイス (HMI):** -* **通信モジュール:** - * 他車両やインフラストラクチャとの通信を処理します。 + - ユーザーと車両間のインタラクションを可能にします。 + +- **通信モジュール:** + - 他車両やインフラストラクチャとの通信を処理します。 **主パーセプションパイプライン** @@ -126,20 +136,19 @@ Planning コンポーネントは、周囲環境からのセンサーデータ **主要な課題** -* **リアルタイム処理:** センサーデータの処理と制御出力を生成するために、低遅延で高性能な処理が必要です。 -* **センシングとマッピングの不確実性:** センサーの制限や環境のダイナミックにより、センシングとマッピング情報に不確実性が生じます。 -* **経路計画の最適化:** 交通状況、障害物、および車両の動力学を考慮した、効率的で安全な経路を計画する必要があります。 -* **制御の安定性:** 予測不可能な障害物や滑りやすい路面での車両の安定性を確保する必要があります。 -* **安全性の検証:** 自動運転システムの安全性と信頼性を証明するための厳密な検証と検証が必要です。 +- **リアルタイム処理:** センサーデータの処理と制御出力を生成するために、低遅延で高性能な処理が必要です。 +- **センシングとマッピングの不確実性:** センサーの制限や環境のダイナミックにより、センシングとマッピング情報に不確実性が生じます。 +- **経路計画の最適化:** 交通状況、障害物、および車両の動力学を考慮した、効率的で安全な経路を計画する必要があります。 +- **制御の安定性:** 予測不可能な障害物や滑りやすい路面での車両の安定性を確保する必要があります。 +- **安全性の検証:** 自動運転システムの安全性と信頼性を証明するための厳密な検証と検証が必要です。 **Autoware の設計原則** -* **モジュール性:** システムを自律的かつ再利用可能なコンポーネントに分解します。 -* **拡張性:** オープンソースのソフトウェアアーキテクチャにより、新しい機能やアルゴリズムの統合が容易になります。 -* **リアルタイム性:** 低遅延の処理を可能にする、最適化されたソフトウェア実装を使用します。 -* **安全性:** 冗長性、フォールトトレランス、および安全監視メカニズムを備えて、安全な運転を確保します。 -* **効率性:** コンピューティングとエネルギーリソースを効率的に使用します。 - +- **モジュール性:** システムを自律的かつ再利用可能なコンポーネントに分解します。 +- **拡張性:** オープンソースのソフトウェアアーキテクチャにより、新しい機能やアルゴリズムの統合が容易になります。 +- **リアルタイム性:** 低遅延の処理を可能にする、最適化されたソフトウェア実装を使用します。 +- **安全性:** 冗長性、フォールトトレランス、および安全監視メカニズムを備えて、安全な運転を確保します。 +- **効率性:** コンピューティングとエネルギーリソースを効率的に使用します。 ```plantuml @@ -194,4 +203,3 @@ end ## 仮定 / 既知の制限事項 ## 将来の拡張機能 / 未実装部分 - diff --git a/perception/autoware_detected_object_feature_remover/README.md b/perception/autoware_detected_object_feature_remover/README.md index 45906147b7fb..3ef7c9aba849 100644 --- a/perception/autoware_detected_object_feature_remover/README.md +++ b/perception/autoware_detected_object_feature_remover/README.md @@ -9,19 +9,21 @@ ## 入出力 ### 入力 + - `/detected_objects_with_features` ### 出力 + - `/detected_objects` ## パラメータ -| 名前 | 説明 | 型 | デフォルト値 | -|---|---|---|---| -| `remove_probability` | 確率が低すぎる対象物を削除する | ブール値 | `false` | -| `remove_points` | 点数の低い対象物を削除する | ブール値 | `false` | -| `threshold_probability` | 確率のしきい値 | 倍精度浮動小数点 | `0.5` | -| `threshold_points` | 点数のしきい値 | 倍精度浮動小数点 | `10` | +| 名前 | 説明 | 型 | デフォルト値 | +| ----------------------- | ------------------------------ | ---------------- | ------------ | +| `remove_probability` | 確率が低すぎる対象物を削除する | ブール値 | `false` | +| `remove_points` | 点数の低い対象物を削除する | ブール値 | `false` | +| `threshold_probability` | 確率のしきい値 | 倍精度浮動小数点 | `0.5` | +| `threshold_points` | 点数のしきい値 | 倍精度浮動小数点 | `10` | ## インターフェース @@ -84,8 +86,8 @@ rosparam set /autoware_detected_object_feature_remover/threshold_probability 0.6 3. 入力トピックが正しく発行されていることを確認します。 4. 出力トピックが正しく受信されていることを確認します。 -| 名前 | タイプ | 説明 | -| --------- | --------- | --------- | +| 名前 | タイプ | 説明 | +| --------- | ------------------------------------------------------------ | -------------------------- | | `~/input` | `tier4_perception_msgs::msg::DetectedObjectWithFeatureArray` | 特徴を持つ検出オブジェクト | ### 出力 @@ -140,8 +142,8 @@ Autowareを使用すると、開発者はカスタマイズして特定の車両 これらの指標は、自動運転システムの安全、効率、正確さを評価するために使用されます。 -| 名称 | タイプ | 説明 | -| ---------- | --------------------------------------------------- | --------- | +| 名称 | タイプ | 説明 | +| ---------- | ------------------------------------------------ | ---------------- | | `~/output` | `autoware_perception_msgs::msg::DetectedObjects` | 検出オブジェクト | ## パラメータ @@ -149,4 +151,3 @@ Autowareを使用すると、開発者はカスタマイズして特定の車両 なし ## 想定/既知の制限事項 - diff --git a/perception/autoware_detected_object_validation/README.md b/perception/autoware_detected_object_validation/README.md index 7d6086fed811..ffe28f89a730 100644 --- a/perception/autoware_detected_object_validation/README.md +++ b/perception/autoware_detected_object_validation/README.md @@ -28,4 +28,3 @@ #### occupancy_grid_based_validator {{ json_to_markdown("perception/autoware_detected_object_validation/schema/occupancy_grid_based_validator.schema.json", "ja") }} - diff --git a/perception/autoware_detection_by_tracker/README.md b/perception/autoware_detection_by_tracker/README.md index ba36661c8abc..d1f3ba948889 100644 --- a/perception/autoware_detection_by_tracker/README.md +++ b/perception/autoware_detection_by_tracker/README.md @@ -33,10 +33,10 @@ _[3]から改変]_ ### 入力 -| 名称 | 型 | 説明 | -|---|---|---| +| 名称 | 型 | 説明 | +| ------------------------- | -------------------------------------------------------- | ------------------ | | `~/input/initial_objects` | `tier4_perception_msgs::msg::DetectedObjectsWithFeature` | 未知のオブジェクト | -| `~/input/tracked_objects` | `tier4_perception_msgs::msg::TrackedObjects` | トラッカー | +| `~/input/tracked_objects` | `tier4_perception_msgs::msg::TrackedObjects` | トラッカー | ### 出力 @@ -45,61 +45,71 @@ _[3]から改変]_ 以下の方法は自己位置推定およびマッピングを処理します。 **Localization and Mapping (ローカライゼーションとマッピング)**: + - 現在の姿勢を推定および追跡します。 - 環境マップを作成および更新します。 **Planning (プランニング)** + - 安全で効率的な経路を計画します。 - 速度、加速度、ステアリングコマンドを生成します。 **Behavior Planning (動作プランニング)** + - 衝突回避のための障害物認識と回避を行います。 - 交通規則とエチケットに従います。 **Behavior Prediction (動作予測)** + - 歩行者、自転車、他の車両の動きを予測します。 - 交差点、人混み、その他の複雑な状況での安全な行動を可能にします。 **Controller (コントローラ)** + - 運転操作を実行します。 - ブレーキ、アクセル、ステアリングの制御を管理します。 **Perception (パーセプション)** + - カメラ、レーダー、LiDARセンサーからのデータを処理します。 - 物体、車線、信号などの周辺環境を認識および分類します。 **センサー** + - レーダー、LiDAR、カメラなどのセンサーを使用します。 - 検出距離、精度、視野などのセンサー特性を考慮します。 **データアグリゲーション** + - 複数のセンサーからのデータを統合します。 - `post resampling`を使用して時間同期された一貫したビューを作成します。 **データアソシエーション** + - 異なるセンサーからの測定結果を同一の対象物に関連付けます。 - KF(カルマンフィルタ)やHD(ハフ距離)などの手法を使用します。 **ステート推定** + - Kalmanフィルタを使用し、センサー測定値から状態を推定します。 - 速度逸脱量、加速度逸脱量などの状態変数を考慮します。 -| 名前 | 種類 | 説明 | -| ---------- | ---------------------------------------------- | ----------- | -| `~/output` | `autoware_perception_msgs::msg::DetectedObjects` | オブジェクト | +| 名前 | 種類 | 説明 | +| ---------- | ------------------------------------------------ | ------------ | +| `~/output` | `autoware_perception_msgs::msg::DetectedObjects` | オブジェクト | ## パラメータ -| 名称 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `tracker_ignore_label.UNKNOWN` | `bool` | ラベルが不明の場合は、ノードがトラッカーを無視するかどうか | `true` | -| `tracker_ignore_label.CAR` | `bool` | ラベルが CAR の場合は、ノードがトラッカーを無視するかどうか | `false` | -| `tracker_ignore_label.PEDESTRIAN` | `bool` | ラベルが歩行者の場合は、ノードがトラッカーを無視するかどうか | `false` | -| `tracker_ignore_label.BICYCLE` | `bool` | ラベルが自転車の場合は、ノードがトラッカーを無視するかどうか | `false` | -| `tracker_ignore_label.MOTORCYCLE` | `bool` | ラベルがオートバイの場合は、ノードがトラッカーを無視するかどうか | `false` | -| `tracker_ignore_label.BUS` | `bool` | ラベルがバスの場合は、ノードがトラッカーを無視するかどうか | `false` | -| `tracker_ignore_label.TRUCK` | `bool` | ラベルがトラックの場合は、ノードがトラッカーを無視するかどうか | `false` | -| `tracker_ignore_label.TRAILER` | `bool` | ラベルがトレーラーの場合は、ノードがトラッカーを無視するかどうか | `false` | +| 名称 | タイプ | 説明 | デフォルト値 | +| --------------------------------- | ------ | ---------------------------------------------------------------- | ------------ | +| `tracker_ignore_label.UNKNOWN` | `bool` | ラベルが不明の場合は、ノードがトラッカーを無視するかどうか | `true` | +| `tracker_ignore_label.CAR` | `bool` | ラベルが CAR の場合は、ノードがトラッカーを無視するかどうか | `false` | +| `tracker_ignore_label.PEDESTRIAN` | `bool` | ラベルが歩行者の場合は、ノードがトラッカーを無視するかどうか | `false` | +| `tracker_ignore_label.BICYCLE` | `bool` | ラベルが自転車の場合は、ノードがトラッカーを無視するかどうか | `false` | +| `tracker_ignore_label.MOTORCYCLE` | `bool` | ラベルがオートバイの場合は、ノードがトラッカーを無視するかどうか | `false` | +| `tracker_ignore_label.BUS` | `bool` | ラベルがバスの場合は、ノードがトラッカーを無視するかどうか | `false` | +| `tracker_ignore_label.TRUCK` | `bool` | ラベルがトラックの場合は、ノードがトラッカーを無視するかどうか | `false` | +| `tracker_ignore_label.TRAILER` | `bool` | ラベルがトレーラーの場合は、ノードがトラッカーを無視するかどうか | `false` | ## 前提条件と既知の制限事項 @@ -116,4 +126,3 @@ _[3]から改変]_ [3] デイビッド・ヘルドら. "空間的、時間的、セマンティックな手がかりを用いたリアルタイム 3D セグメンテーションのための確率的フレームワーク." (2016). ## (省略可能) 将来の拡張機能/未実装部分 - diff --git a/perception/autoware_elevation_map_loader/README.md b/perception/autoware_elevation_map_loader/README.md index 976b49bdda58..65adeb18f9bf 100644 --- a/perception/autoware_elevation_map_loader/README.md +++ b/perception/autoware_elevation_map_loader/README.md @@ -20,11 +20,11 @@ ### 入力 -| 名前 | 型 | 説明 | -|------------------------------------|---------------------------------------------------|--------------------------------------------| -| `input/pointcloud_map` | `sensor_msgs::msg::PointCloud2` | 点群マップ | +| 名前 | 型 | 説明 | +| ------------------------------- | ----------------------------------------------- | ------------------------------------------------ | +| `input/pointcloud_map` | `sensor_msgs::msg::PointCloud2` | 点群マップ | | `input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | (オプション) レーンレット2マップのバイナリデータ | -| `input/pointcloud_map_metadata` | `autoware_map_msgs::msg::PointCloudMapMetaData` | (オプション) 点群マップのメタデータ | +| `input/pointcloud_map_metadata` | `autoware_map_msgs::msg::PointCloudMapMetaData` | (オプション) 点群マップのメタデータ | ### 出力 @@ -38,14 +38,14 @@ **仕様** -* **入力:** - * 生センサデータ(IMU、GNSS、V2X) -* **出力:** - * 推定自車位置(x、y、z) - * 推定自車姿勢(roll、pitch、yaw) - * 推定自車速度(vx、vy、vz) -* **アルゴリズム:** - * EKF (拡張カルマンフィルタ)ベースのFusionアルゴリズム +- **入力:** + - 生センサデータ(IMU、GNSS、V2X) +- **出力:** + - 推定自車位置(x、y、z) + - 推定自車姿勢(roll、pitch、yaw) + - 推定自車速度(vx、vy、vz) +- **アルゴリズム:** + - EKF (拡張カルマンフィルタ)ベースのFusionアルゴリズム --- @@ -57,13 +57,13 @@ **仕様** -* **入力:** - * 環境マップ - * 開始点と目標点 -* **出力:** - * 最適経路のシーケンス(ウェイポイント) -* **アルゴリズム:** - * 動的経路計画法(DWA) +- **入力:** + - 環境マップ + - 開始点と目標点 +- **出力:** + - 最適経路のシーケンス(ウェイポイント) +- **アルゴリズム:** + - 動的経路計画法(DWA) --- @@ -75,15 +75,15 @@ **仕様** -* **入力:** - * 最適経路 - * 自車位置と姿勢 - * 環境情報(障害物、交通信号など) -* **出力:** - * 車両の速度とステアリング角のコマンド -* **アルゴリズム:** - * モデル予測制御(MPC) - * 後方サンプリング `post resampling`アルゴリズム +- **入力:** + - 最適経路 + - 自車位置と姿勢 + - 環境情報(障害物、交通信号など) +- **出力:** + - 車両の速度とステアリング角のコマンド +- **アルゴリズム:** + - モデル予測制御(MPC) + - 後方サンプリング `post resampling`アルゴリズム --- @@ -95,44 +95,44 @@ **仕様** -* **入力:** - * 動作計画出力 - * 環境情報 -* **出力:** - * 動作計画が安全かどうかのフラグ -* **アルゴリズム:** - * 障害物との衝突検出 - * 加速度逸脱量検出 - * 速度逸脱量検出 - -| 名称 | タイプ | 説明 | -| ---------------------------- | ------------------------------- | -------------------------------------------------------------------- | -| `output/elevation_map` | `grid_map_msgs::msg::GridMap` | 標高マップ | +- **入力:** + - 動作計画出力 + - 環境情報 +- **出力:** + - 動作計画が安全かどうかのフラグ +- **アルゴリズム:** + - 障害物との衝突検出 + - 加速度逸脱量検出 + - 速度逸脱量検出 + +| 名称 | タイプ | 説明 | +| ---------------------------- | ------------------------------- | --------------------------------------------- | +| `output/elevation_map` | `grid_map_msgs::msg::GridMap` | 標高マップ | | `output/elevation_map_cloud` | `sensor_msgs::msg::PointCloud2` | (オプション) 標高マップの値から生成された点群 | ### サービス -| Name | Type | Description | -| -------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| Name | Type | Description | +| ------------------------------ | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `service/get_selected_pcd_map` | `autoware_map_msgs::srv::GetSelectedPointCloudMap` | (オプション) ポイントクラウドマップを要求するサービス。ポイントクラウドマップローダーがROS 2サービス経由で選択されたポイントクラウドマップを利用する場合、これを利用します。 | ## パラメータ ### ノードパラメータ -| 名前 | タイプ | 説明 | デフォルト値 | -| :-------------------------------- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| map_layer_name | std::string | 標高マップレイヤー名 | elevation | -| param_file_path | std::string | GridMap パラメーターの設定 | path_default | -| elevation_map_directory | std::string | 標高マップファイル (bag2) | path_default | -| map_frame | std::string | 標高マップファイルを読み込むときの map_frame | map | -| use_inpaint | bool | 空のセルを補完するかどうかによります | true | -| inpaint_radius | float | アルゴリズムによって考慮される、補完された各ポイントの半径 [m] | 0.3 | -| use_elevation_map_cloud_publisher | bool | `output/elevation_map_cloud` を公開するか | false | -| use_lane_filter | bool | ベクトルマップで標高マップをフィルタリングするかどうかによります | false | -| lane_margin | float | インペインティングマスクに含めるエリアの車線ポリゴンからの余裕距離 [m] (use_lane_filter=True の場合のみ使用) | 0.0 | -| use_sequential_load | bool | サービスによって点群マップを取得するかどうかによります | false | -| sequential_map_load_num | int | 一度にロードする点群マップの数 (use_sequential_load が True に設定されている場合のみ使用)。これはすべての点群マップセルの数を超えてはいけません | 1 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :-------------------------------- | :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| map_layer_name | std::string | 標高マップレイヤー名 | elevation | +| param_file_path | std::string | GridMap パラメーターの設定 | path_default | +| elevation_map_directory | std::string | 標高マップファイル (bag2) | path_default | +| map_frame | std::string | 標高マップファイルを読み込むときの map_frame | map | +| use_inpaint | bool | 空のセルを補完するかどうかによります | true | +| inpaint_radius | float | アルゴリズムによって考慮される、補完された各ポイントの半径 [m] | 0.3 | +| use_elevation_map_cloud_publisher | bool | `output/elevation_map_cloud` を公開するか | false | +| use_lane_filter | bool | ベクトルマップで標高マップをフィルタリングするかどうかによります | false | +| lane_margin | float | インペインティングマスクに含めるエリアの車線ポリゴンからの余裕距離 [m] (use_lane_filter=True の場合のみ使用) | 0.0 | +| use_sequential_load | bool | サービスによって点群マップを取得するかどうかによります | false | +| sequential_map_load_num | int | 一度にロードする点群マップの数 (use_sequential_load が True に設定されている場合のみ使用)。これはすべての点群マップセルの数を超えてはいけません | 1 | ### GridMap のパラメータ @@ -140,8 +140,8 @@ #### 一般的なパラメータ -| Name | Type | Description | Default value | -| :--------------------------------------------- | :--- | :--------------------------------------------------------------------------------------------------- | :------------ | +| Name | Type | Description | Default value | +| :--------------------------------------------- | :--- | :--------------------------------------------------------------------------------------- | :------------ | | pcl_grid_map_extraction/num_processing_threads | int | グリッドマップセルを処理するスレッド数。生の入力点群のフィルタリングは並列化されません。 | 12 | #### グリッドマップのパラメーター @@ -150,12 +150,12 @@ 生成されるグリッドマップのパラメーター。 -| 名前 | タイプ | 説明 | デフォルト値 | -| ------------------------------------------------------ | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | +| 名前 | タイプ | 説明 | デフォルト値 | +| -------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------- | ------------ | | pcl_grid_map_extraction/grid_map/min_num_points_per_cell | int | グリッドマップセルのいずれにも当てはまる点群内の最低ポイント数。そうでなければ、そのセルの標高はNaNに設定されます。 | 3 | -| pcl_grid_map_extraction/grid_map/resolution | float | グリッドマップの解像度。幅と長さは自動的に計算されます。 | 0.3 | -| pcl_grid_map_extraction/grid_map/height_type | int | セルの標高を決定するパラメータ `0: 各クラスタの平均値の中で最も小さい値`, `1: 最もポイント数の多いクラスタの平均値` | 1 | -| pcl_grid_map_extraction/grid_map/height_thresh | float | 最も小さいクラスタからの標高範囲 (height_type 1 のみ) | 1.0 | +| pcl_grid_map_extraction/grid_map/resolution | float | グリッドマップの解像度。幅と長さは自動的に計算されます。 | 0.3 | +| pcl_grid_map_extraction/grid_map/height_type | int | セルの標高を決定するパラメータ `0: 各クラスタの平均値の中で最も小さい値`, `1: 最もポイント数の多いクラスタの平均値` | 1 | +| pcl_grid_map_extraction/grid_map/height_thresh | float | 最も小さいクラスタからの標高範囲 (height_type 1 のみ) | 1.0 | ### 点群の前処理パラメータ @@ -163,37 +163,36 @@ 標高を計算する前に点群に適用されるリジッド変換。 -| 名前 | タイプ | 説明 | デフォルト値 | -| :---------------------------------------------------------- | :---- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------ | -| pcl_grid_map_extraction/cloud_transform/translation | float | 標高を計算する前に、入力点群に対して適用される並進 (xyz)。 | 0.0 | -| pcl_grid_map_extraction/cloud_transform/rotation | float | 標高を計算する前に、入力点群に対して適用される回転 (固有回転、規則 X-Y'-Z'')。 | 0.0 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :-------------------------------------------------- | :----- | :----------------------------------------------------------------------------- | :----------- | +| pcl_grid_map_extraction/cloud_transform/translation | float | 標高を計算する前に、入力点群に対して適用される並進 (xyz)。 | 0.0 | +| pcl_grid_map_extraction/cloud_transform/rotation | float | 標高を計算する前に、入力点群に対して適用される回転 (固有回転、規則 X-Y'-Z'')。 | 0.0 | #### クラスター抽出パラメータ クラスターの抽出は、pclアルゴリズムに基づいています。詳細については、を参照してください。 -| 名称 | 型 | 説明 | デフォルト値 | -| ---- | --- | ---- | ---- | -| `pcl_grid_map_extraction/cluster_extraction/cluster_tolerance` | 実数 | クラスタに属すると見なされるポイント間の距離 | 0.2 | -| `pcl_grid_map_extraction/cluster_extraction/min_num_points` | 整数 | クラスタが持つ必要のある最小ポイント数(以下では破棄) | 3 | -| `pcl_grid_map_extraction/cluster_extraction/max_num_points` | 整数 | クラスタが持つことができる最大ポイント数(以上では破棄) | 1000000 | +| 名称 | 型 | 説明 | デフォルト値 | +| -------------------------------------------------------------- | ---- | -------------------------------------------------------- | ------------ | +| `pcl_grid_map_extraction/cluster_extraction/cluster_tolerance` | 実数 | クラスタに属すると見なされるポイント間の距離 | 0.2 | +| `pcl_grid_map_extraction/cluster_extraction/min_num_points` | 整数 | クラスタが持つ必要のある最小ポイント数(以下では破棄) | 3 | +| `pcl_grid_map_extraction/cluster_extraction/max_num_points` | 整数 | クラスタが持つことができる最大ポイント数(以上では破棄) | 1000000 | #### 外れ値除去パラメーター 外れ値除去の詳細については、 を参照してください。 -| 名前 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `pcl_grid_map_extraction/outlier_removal/is_remove_outliers` | float | 統計的異常値除去を実行するかどうか | false | -| `pcl_grid_map_extraction/outlier_removal/mean_K` | float | 点の統計を推定するために解析する近傍の数 | 10 | -| `pcl_grid_map_extraction/outlier_removal/stddev_threshold` | float | 点が内点と見なされる標準偏差の数 | 1.0 | +| 名前 | タイプ | 説明 | デフォルト値 | +| ------------------------------------------------------------ | ------ | ---------------------------------------- | ------------ | +| `pcl_grid_map_extraction/outlier_removal/is_remove_outliers` | float | 統計的異常値除去を実行するかどうか | false | +| `pcl_grid_map_extraction/outlier_removal/mean_K` | float | 点の統計を推定するために解析する近傍の数 | 10 | +| `pcl_grid_map_extraction/outlier_removal/stddev_threshold` | float | 点が内点と見なされる標準偏差の数 | 1.0 | #### サブサンプリングパラメータ ポイントクラウドのダウンサンプリングの詳細については、 を参照してください。 -| 名前 | タイプ | 説明 | デフォルト値 | -| :-------------------------------------------------------- | :---- | :------------------------------------------------------------ | :------------ | -| pcl_grid_map_extraction/downsampling/is_downsample_cloud | bool | ダウンサンプリングを実施するかどうか。 | false | -| pcl_grid_map_extraction/downsampling/voxel_size | float | ボクセルサイズ(xyz)、メートル単位。 | 0.02 | - +| 名前 | タイプ | 説明 | デフォルト値 | +| :------------------------------------------------------- | :----- | :------------------------------------- | :----------- | +| pcl_grid_map_extraction/downsampling/is_downsample_cloud | bool | ダウンサンプリングを実施するかどうか。 | false | +| pcl_grid_map_extraction/downsampling/voxel_size | float | ボクセルサイズ(xyz)、メートル単位。 | 0.02 | diff --git a/perception/autoware_euclidean_cluster/README.md b/perception/autoware_euclidean_cluster/README.md index 20330b7fc6ad..c7baa583cd0c 100644 --- a/perception/autoware_euclidean_cluster/README.md +++ b/perception/autoware_euclidean_cluster/README.md @@ -22,8 +22,8 @@ autoware_euclidean_cluster は、オブジェクトを分類するために点 ### 入力 -| 名前 | タイプ | 説明 | -| ------- | ------------------------------- | ----------- | +| 名前 | タイプ | 説明 | +| ------- | ------------------------------- | -------- | | `input` | `sensor_msgs::msg::PointCloud2` | 入力点群 | ### 出力 @@ -69,10 +69,10 @@ Planningモジュールは、以下の技術的詳細を備えています。 Planningモジュールは、Autowareソフトウェアスタックの一部です。 -| 名 | タイプ | 説明 | -| ---------------- | --------------------------------------------------------- | --------------------------------------------------- | -| `output` | `tier4_perception_msgs::msg::DetectedObjectsWithFeature` | クラスタ点群 | -| `debug/clusters` | `sensor_msgs::msg::PointCloud2` | 可視化のための着色済みクラスタ点群 | +| 名 | タイプ | 説明 | +| ---------------- | -------------------------------------------------------- | ---------------------------------- | +| `output` | `tier4_perception_msgs::msg::DetectedObjectsWithFeature` | クラスタ点群 | +| `debug/clusters` | `sensor_msgs::msg::PointCloud2` | 可視化のための着色済みクラスタ点群 | ## パラメータ @@ -80,12 +80,12 @@ Planningモジュールは、Autowareソフトウェアスタックの一部で #### euclidean_cluster -| 名称 | タイプ | 説明 | -| ---- | ---- | ----------------------------------------------------- | -| `use_height` | ブール | クラスタリングに point.z を使用 | -| `min_cluster_size` | 整数 | クラスターが有効と見なされるために必要な最小のポイント数 | -| `max_cluster_size` | 整数 | クラスターが有効と見なされるために必要な最大のポイント数 | -| `tolerance` | 浮動小数点 | L2 ユークリッド空間における尺度としての空間クラスター許容範囲 | +| 名称 | タイプ | 説明 | +| ------------------ | ---------- | ------------------------------------------------------------- | +| `use_height` | ブール | クラスタリングに point.z を使用 | +| `min_cluster_size` | 整数 | クラスターが有効と見なされるために必要な最小のポイント数 | +| `max_cluster_size` | 整数 | クラスターが有効と見なされるために必要な最大のポイント数 | +| `tolerance` | 浮動小数点 | L2 ユークリッド空間における尺度としての空間クラスター許容範囲 | #### voxel_grid_based_euclidean_cluster @@ -93,30 +93,30 @@ Planningモジュールは、Autowareソフトウェアスタックの一部で **サブスクライブするトピック** -* `/points_raw`: 入力点群 +- `/points_raw`: 入力点群 **パブリッシュするトピック** -* `/voxel_grid_based_euclidean_cluster/output`: クラスタリングされた点群 +- `/voxel_grid_based_euclidean_cluster/output`: クラスタリングされた点群 **パラメータ** -* **voxel_leaf_size:** クラスタリングに使用するボクセルサイズ[m] -* **euclidean_cluster_tolerance:** クラスタリングに使用するユークリッド距離公差[m] -* **min_cluster_size:** クラスタとして認識されるためにクラスタに含まれる必要のある最小ポイント数 -* **max_cluster_size:** 1つのクラスタに含まれることができる最大ポイント数 -* **post resampling:** 点群をサンプルするのかどうか (True/False) -* **sample_size:** サンプルするポイントの数。`post resampling` が True の場合にのみ使用されます。 -* **target_frame:** クラスタリングされた点群の目標フレーム。`current pose` または `sensor` のいずれか。 - -| 名称 | 型 | 説明 | -| ------------------------------ | ------- | ------------------------------------------------------------------------------------------------------ | -| `use_height` | bool | クラスタリングに point.z を使用する | -| `min_cluster_size` | int | 有効とみなされるためにクラスタが必要とする最小点の数 | -| `max_cluster_size` | int | 有効とみなされるためにクラスタが必要とする最大点の数 | -| `tolerance` | float | L2 ユークリッド空間の指標としての空間クラスタ許容誤差 | -| `voxel_leaf_size` | float | x と y のボクセルリーフサイズ | -| `min_points_number_per_voxel` | int | ボクセルに必要な最低点の数 | +- **voxel_leaf_size:** クラスタリングに使用するボクセルサイズ[m] +- **euclidean_cluster_tolerance:** クラスタリングに使用するユークリッド距離公差[m] +- **min_cluster_size:** クラスタとして認識されるためにクラスタに含まれる必要のある最小ポイント数 +- **max_cluster_size:** 1つのクラスタに含まれることができる最大ポイント数 +- **post resampling:** 点群をサンプルするのかどうか (True/False) +- **sample_size:** サンプルするポイントの数。`post resampling` が True の場合にのみ使用されます。 +- **target_frame:** クラスタリングされた点群の目標フレーム。`current pose` または `sensor` のいずれか。 + +| 名称 | 型 | 説明 | +| ----------------------------- | ----- | ----------------------------------------------------- | +| `use_height` | bool | クラスタリングに point.z を使用する | +| `min_cluster_size` | int | 有効とみなされるためにクラスタが必要とする最小点の数 | +| `max_cluster_size` | int | 有効とみなされるためにクラスタが必要とする最大点の数 | +| `tolerance` | float | L2 ユークリッド空間の指標としての空間クラスタ許容誤差 | +| `voxel_leaf_size` | float | x と y のボクセルリーフサイズ | +| `min_points_number_per_voxel` | int | ボクセルに必要な最低点の数 | ## 想定/既知の制限 @@ -161,4 +161,3 @@ Planningモジュールは、Autowareソフトウェアスタックの一部で ## (省略可) 今後の拡張機能/未実装部分 `voxel_grid_based_euclidean_cluster`の`use_height`オプションはまだ実装されていません。 - diff --git a/perception/autoware_ground_segmentation/README.md b/perception/autoware_ground_segmentation/README.md index bd0b4449844e..dc4d13baa147 100644 --- a/perception/autoware_ground_segmentation/README.md +++ b/perception/autoware_ground_segmentation/README.md @@ -8,19 +8,19 @@ 各地面セグメンテーションアルゴリズムの詳細な説明は、次のリンクを参照してください。 -| フィルタの名称 | 説明 | 詳細 | -| ------------------------ | --------------------------------------------------------------------------------------------------------- | -------------------------------------- | -| `ray_ground_filter` | 放射状に並んだ点の幾何学的関係に基づいて地面を取り除く方法 | [リンク](docs/ray-ground-filter.md) | -| `scan_ground_filter` | `ray_ground_filter`とほぼ同じ方法だが、パフォーマンスがわずかに向上 | [リンク](docs/scan-ground-filter.md) | -| `ransac_ground_filter` | 平面に対して地上の近似を行うことで地面を取り除く方法 | [リンク](docs/ransac-ground-filter.md) | +| フィルタの名称 | 説明 | 詳細 | +| ---------------------- | ------------------------------------------------------------------- | -------------------------------------- | +| `ray_ground_filter` | 放射状に並んだ点の幾何学的関係に基づいて地面を取り除く方法 | [リンク](docs/ray-ground-filter.md) | +| `scan_ground_filter` | `ray_ground_filter`とほぼ同じ方法だが、パフォーマンスがわずかに向上 | [リンク](docs/scan-ground-filter.md) | +| `ransac_ground_filter` | 平面に対して地上の近似を行うことで地面を取り除く方法 | [リンク](docs/ransac-ground-filter.md) | ## 入出力 ### 入力 -| 名前 | タイプ | 説明 | -| ----------------- | ------------------------------- | ----------------- | -| `~/input/points` | `sensor_msgs::msg::PointCloud2` | 基準点 | +| 名前 | タイプ | 説明 | +| ----------------- | ------------------------------- | ---------------- | +| `~/input/points` | `sensor_msgs::msg::PointCloud2` | 基準点 | | `~/input/indices` | `pcl_msgs::msg::Indices` | 基準インデックス | ### 自動運転ソフトウェアドキュメント @@ -64,23 +64,23 @@ - **Path 'post resampling'**: **Path Smoother** によって生成された経路が**Trajectory Planner** によって生成された経路を正確に表していることを確認します。 - **Vehicle Dynamics**: 車両の運動特性を考慮して、安全で快適な走行を確保します。 -| 名称 | 型 | 説明 | -|----------------------|-----------------------------------|---------------------| +| 名称 | 型 | 説明 | +| ----------------- | ------------------------------- | ------------------------ | | `~/output/points` | `sensor_msgs::msg::PointCloud2` | フィルタリングされた点群 | ## パラメータ ### ノードのパラメータ -| 名前 | 型 | デフォルト値 | 説明 | -| -------------------- | ------ | ------------- | ------------------------------------- | -| `input_frame` | 文字列 | " " | 入力フレーム ID | -| `output_frame` | 文字列 | " " | 出力フレーム ID | -| `has_static_tf_only` | ブール | false | TF を一度だけリスンするフラグ | -| `max_queue_size` | 整数 | 5 | 入力/出力トピックの最大キューサイズ | -| `use_indices` | ブール | false | ポイントクラウドのインデックスを使用するフラグ | -| `latched_indices` | ブール | false | ポイントクラウドのインデックスをラッチするフラグ | -| `approximate_sync` | ブール | false | 近似同期オプションを使用するフラグ | +| 名前 | 型 | デフォルト値 | 説明 | +| -------------------- | ------ | ------------ | ------------------------------------------------ | +| `input_frame` | 文字列 | " " | 入力フレーム ID | +| `output_frame` | 文字列 | " " | 出力フレーム ID | +| `has_static_tf_only` | ブール | false | TF を一度だけリスンするフラグ | +| `max_queue_size` | 整数 | 5 | 入力/出力トピックの最大キューサイズ | +| `use_indices` | ブール | false | ポイントクラウドのインデックスを使用するフラグ | +| `latched_indices` | ブール | false | ポイントクラウドのインデックスをラッチするフラグ | +| `approximate_sync` | ブール | false | 近似同期オプションを使用するフラグ | ## 前提 / 制限事項 @@ -89,4 +89,3 @@ ## 参考文献/外部リンク [1] - diff --git a/perception/autoware_image_projection_based_fusion/README.md b/perception/autoware_image_projection_based_fusion/README.md index 48d17e3cd9e4..efc115f6c6da 100644 --- a/perception/autoware_image_projection_based_fusion/README.md +++ b/perception/autoware_image_projection_based_fusion/README.md @@ -16,6 +16,7 @@ ![roi_sync_image1](./docs/images/roi_sync_1.png) Autoware.universeのTIER IV Robotaxiでの現在のデフォルト値は次のとおりです。 + - input_offset_ms: [61.67、111.67、45.0、28.33、78.33、95.0] - match_threshold_ms: 30.0 @@ -64,39 +65,39 @@ source code directory: `autoware/autoware/core/autoware_image_projection_based_f ### Required stack - ROS -- autoware\_can\_msgs -- autoware\_perception\_msgs -- autoware\_planning\_msgs -- cv\_bridge -- octomap\_ros +- autoware_can_msgs +- autoware_perception_msgs +- autoware_planning_msgs +- cv_bridge +- octomap_ros ### Example -tum\_slayer\_1/base\_linkへ変換されたcamera1のCameraInfoと、fusion\_imageのサブスクライバを起動します。 +tum_slayer_1/base_linkへ変換されたcamera1のCameraInfoと、fusion_imageのサブスクライバを起動します。 -``` bash +```bash roslaunch autoware_image_projection_based_fusion fusion.launch image_topic:=/camera1/front_left/compressed image_info_frame_id:=/base_link output_topic:=/fusion_image fusion_node_name:=fused_image ``` -| | pointcloud | roi msg 1 | roi msg 2 | roi msg 3 | -| :-----------------: | :--------: | :-------: | :-------: | :-------: | -| サブスクリプションステータス | | 有 | 有 | 有 | +| | pointcloud | roi msg 1 | roi msg 2 | roi msg 3 | +| :--------------------------: | :--------: | :-------: | :-------: | :-------: | +| サブスクリプションステータス | | 有 | 有 | 有 | roi msgsにマッチング可能な場合はそれらを融合してポイントクラウドメッセージを処理します。 それ以外の場合はマッチングしたroi msgsを融合してポイントクラウドをキャッシュします。 2.次の条件下でポイントクラウドメッセージにサブスクライブした場合: -| | pointcloud | roi msg 1 | roi msg 2 | roi msg 3 | -| :-----------------: | :--------: | :-------: | :-------: | :-------: | -| 受信状態 | | O | O | | +| | pointcloud | roi msg 1 | roi msg 2 | roi msg 3 | +| :------: | :--------: | :-------: | :-------: | :-------: | +| 受信状態 | | O | O | | 1. ROI メッセージが照合できる場合、それらを融合し、点群をキャッシュします。 2. 以下条件下で点群メッセージが購読された場合: -| | pointcloud | roi msg 1 | roi msg 2 | roi msg 3 | -| :----------------: | :--------: | :-------: | :-------: | :-------: | +| | pointcloud | roi msg 1 | roi msg 2 | roi msg 3 | +| :--------------------: | :--------: | :-------: | :-------: | :-------: | | サブスクリプション状態 | ○ | ○ | ○ | roi msg 3 が次のポイントクラウドメッセージの受信またはタイムアウト前にサブスクライブされている場合は、一致した場合に融合し、そうでなければ次の roi msg 3 を待ちます。 @@ -112,7 +113,6 @@ Autoware.universe での現在のデフォルト値:XX1: - timeout_ms: 50.0 `pointpainting_fusion` ノードには、ONNX ファイルから TensorRT エンジンファイルを構築するための `build_only` オプションがあります。 Autoware Universe の `.param.yaml` ファイルのすべての ROS パラメータを移動させることが好まれますが、`build_only` オプションはプレタスクとしてビルドを実行するためのフラグとして使用される可能性があるため、今のところ `.param.yaml` ファイルには移動されていません。次のコマンドで実行できます。 - ```bash ros2 launch autoware_image_projection_based_fusion pointpainting_fusion.launch.xml model_name:=pointpainting model_path:=/home/autoware/autoware_data/image_projection_based_fusion model_param_path:=$(ros2 pkg prefix autoware_image_projection_based_fusion --share)/config/pointpainting.param.yaml build_only:=true ``` @@ -123,10 +123,9 @@ rclcpp::TimerBase таймерは for ループを break できないため、ro ### 各融合アルゴリズムの詳細な説明は次のリンクにあります -| フュージョン名 | 説明 | 詳細 | -|---|---|---| -| `roi_cluster_fusion` | 2Dオブジェクト検出器のROIから、クラスタの分類ラベルを上書き | [リンク](./docs/roi-cluster-fusion.md) | -| `roi_detected_object_fusion` | 2Dオブジェクト検出器のROIから、検出オブジェクトの分類ラベルを上書き | [リンク](./docs/roi-detected-object-fusion.md) | -| `pointpainting_fusion` | 2Dオブジェクト検出器のROIで点群にペイントし、3Dオブジェクト検出器にフィード | [リンク](./docs/pointpainting-fusion.md) | -| `roi_pointcloud_fusion` | 2Dオブジェクト検出器のROIと点群を照合し、ラベル不明のオブジェクトを検出 | [リンク](./docs/roi-pointcloud-fusion.md) | - +| フュージョン名 | 説明 | 詳細 | +| ---------------------------- | --------------------------------------------------------------------------- | ---------------------------------------------- | +| `roi_cluster_fusion` | 2Dオブジェクト検出器のROIから、クラスタの分類ラベルを上書き | [リンク](./docs/roi-cluster-fusion.md) | +| `roi_detected_object_fusion` | 2Dオブジェクト検出器のROIから、検出オブジェクトの分類ラベルを上書き | [リンク](./docs/roi-detected-object-fusion.md) | +| `pointpainting_fusion` | 2Dオブジェクト検出器のROIで点群にペイントし、3Dオブジェクト検出器にフィード | [リンク](./docs/pointpainting-fusion.md) | +| `roi_pointcloud_fusion` | 2Dオブジェクト検出器のROIと点群を照合し、ラベル不明のオブジェクトを検出 | [リンク](./docs/roi-pointcloud-fusion.md) | diff --git a/perception/autoware_lidar_apollo_instance_segmentation/README.md b/perception/autoware_lidar_apollo_instance_segmentation/README.md index fe263e8c1447..b0d6319caafc 100644 --- a/perception/autoware_lidar_apollo_instance_segmentation/README.md +++ b/perception/autoware_lidar_apollo_instance_segmentation/README.md @@ -13,17 +13,19 @@ Apolloの[元の設計](https://github.com/ApolloAuto/apollo/blob/r6.0.0/docs/sp ## 入出力 ### 入力 + - `/points_raw` (`PointCloud2`): センサから取得したLiDAR点群のトピック - `/imu/data` (`Imu`): 車両の姿勢と角速度を更新するトピック - `/vehicle/status/control_mode` (`UInt8`): 制御モード(オートドライブ、手動運転)のトピック - `/had_map_available` (`Bool`): HDマップが利用可能な場合(True、False)のトピック ### 出力 + - `/apollo/perception/obstacles` (`ObjectArray`): 検出された障害物のトピック - `/planning/predicted_objects` (`ObjectArray`): Planningコンポーネントで使用するため、予測軌跡を持つ障害物のトピック -| 名称 | 型 | 説明 | -| ------------------ | ------------------------- | ---------------------------------- | +| 名称 | 型 | 説明 | +| ------------------ | ------------------------- | -------------------------------- | | `input/pointcloud` | `sensor_msgs/PointCloud2` | レーザーセンサーからの点群データ | ## 自動運転ソフトウェアのドキュメント @@ -32,57 +34,67 @@ Apolloの[元の設計](https://github.com/ApolloAuto/apollo/blob/r6.0.0/docs/sp 本システムは、以下のようなモジュールで構成されています。 -**Planningモジュール** +**Planningモジュール** + - 経路計画と制御 - 'post resampling' - 自車位置の推定 -**Controlモジュール** +**Controlモジュール** + - 速度と加速度の制御 - 車両運動学の制御 -**Perceptionモジュール** +**Perceptionモジュール** + - 車両と周辺環境の検出とトラッキング -**Localizationモジュール** +**Localizationモジュール** + - 自車位置と姿勢の推定 ### 要件 -**機能要件** +**機能要件** + - 障害物を回避しながらの自律走行 - 速度と加速度の制御 - 路面状況への対応 -**非機能要件** +**非機能要件** + - リアルタイム処理 - 安全性と信頼性 - Autowareとの互換性 ### パフォーマンス基準 -**安全性** +**安全性** + - 障害物逸脱量:0.1m以内 - 速度逸脱量:0.5m/s以内 - 加速度逸脱量:0.2m/s2以内 -**効率性** +**効率性** + - 1秒あたりの演算時間:10ms未満 ### インターフェース -**入力** +**入力** + - センサーデータ - 自車位置 -**出力** +**出力** + - 運転コマンド - システム状態 -| 名称 | タイプ | 説明 | -| --------------------------- | -------------------------------------------------- | ----------------------------------------------------- | +| 名称 | タイプ | 説明 | +| --------------------------- | -------------------------------------------------- | ------------------------------------------------------ | | `output/labeled_clusters` | `tier4_perception_msgs/DetectedObjectsWithFeature` | ラベル付きの点群クラスタを持つ検出されたオブジェクト。 | -| `debug/instance_pointcloud` | `sensor_msgs/PointCloud2` | 視覚化用のセグメント化された点群。 | +| `debug/instance_pointcloud` | `sensor_msgs/PointCloud2` | 視覚化用のセグメント化された点群。 | ## パラメータ @@ -92,20 +104,20 @@ Apolloの[元の設計](https://github.com/ApolloAuto/apollo/blob/r6.0.0/docs/sp ### コアパラメーター -| 名前 | タイプ | デフォルト値 | 説明 | -| ----------------------- | ------ | -------------------- | ----------------------------------------------------------------------------------- | +| 名前 | タイプ | デフォルト値 | 説明 | +| ----------------------- | ------ | -------------------- | -------------------------------------------------------------------------- | | `score_threshold` | double | 0.8 | 検出オブジェクトのスコアがこの値より低い場合、オブジェクトは無視されます。 | -| `range` | int | 60 | フィーチャマップの半分の長さ [m] | -| `width` | int | 640 | フィーチャマップのグリッド幅 | -| `height` | int | 640 | フィーチャマップのグリッド高さ | -| `engine_file` | string | "vls-128.engine" | CNNモデルのTensorRTエンジンファイルの名前 | -| `prototxt_file` | string | "vls-128.prototxt" | CNNモデルのprototxtファイルの名前 | -| `caffemodel_file` | string | "vls-128.caffemodel" | CNNモデルのcaffemodelファイルの名前 | -| `use_intensity_feature` | bool | true | ポイントクラウドの強度フィーチャを使用するフラグ | -| `use_constant_feature` | bool | false | ポイントクラウドの角度と距離のフィーチャを使用するフラグ | -| `target_frame` | string | "base_link" | ポイントクラウドデータはこのフレームに変換されます。 | -| `z_offset` | int | 2 | 標的フレームからのzオフセット [m] | -| `build_only` | bool | `false` | TensorRTエンジンファイルが構築された後にノードをシャットダウンします。 | +| `range` | int | 60 | フィーチャマップの半分の長さ [m] | +| `width` | int | 640 | フィーチャマップのグリッド幅 | +| `height` | int | 640 | フィーチャマップのグリッド高さ | +| `engine_file` | string | "vls-128.engine" | CNNモデルのTensorRTエンジンファイルの名前 | +| `prototxt_file` | string | "vls-128.prototxt" | CNNモデルのprototxtファイルの名前 | +| `caffemodel_file` | string | "vls-128.caffemodel" | CNNモデルのcaffemodelファイルの名前 | +| `use_intensity_feature` | bool | true | ポイントクラウドの強度フィーチャを使用するフラグ | +| `use_constant_feature` | bool | false | ポイントクラウドの角度と距離のフィーチャを使用するフラグ | +| `target_frame` | string | "base_link" | ポイントクラウドデータはこのフレームに変換されます。 | +| `z_offset` | int | 2 | 標的フレームからのzオフセット [m] | +| `build_only` | bool | `false` | TensorRTエンジンファイルが構築された後にノードをシャットダウンします。 | ## 前提条件 / 制限事項 @@ -129,7 +141,6 @@ CNNモデル用のトレーニングコードはありません。 1. [アポロ3D障害物検知の説明](https://github.com/ApolloAuto/apollo/blob/r7.0.0/docs/specs/3d_obstacle_perception.md) - ```txt /****************************************************************************** * Copyright 2017 The Apollo Authors. All Rights Reserved. @@ -151,7 +162,6 @@ CNNモデル用のトレーニングコードはありません。 2. [tensorRTWrapper](https://github.com/lewes6369/tensorRTWrapper) : lib ディレクトリ内で使用されます。 - ```txt MIT License @@ -180,24 +190,23 @@ CNNモデル用のトレーニングコードはありません。 [GitHub](https://github.com/k0suke-murakami/autoware_perception/tree/feature/integration_baidu_seg/lidar_apollo_cnn_seg_detect) - - ```txt - /* - * Copyright 2018-2019 Autoware Foundation. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - ``` +```txt +/* +* Copyright 2018-2019 Autoware Foundation. All rights reserved. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +``` ### 特別謝辞 @@ -205,4 +214,3 @@ CNNモデル用のトレーニングコードはありません。 - [lewes6369](https://github.com/lewes6369) - [Autoware財団](https://github.com/autowarefoundation/autoware) - [竹内 康輔](https://github.com/kosuke55) (TIER IV) - diff --git a/perception/autoware_lidar_centerpoint/README.md b/perception/autoware_lidar_centerpoint/README.md index cbd6af73800b..5d8ec3d7f074 100644 --- a/perception/autoware_lidar_centerpoint/README.md +++ b/perception/autoware_lidar_centerpoint/README.md @@ -13,17 +13,19 @@ autoware_lidar_centerpointは、動的3Dオブジェクトを検出するため ## 入出力 ### 入力 + - LiDAR点群 ### 出力 + - クラスID - Bounding Box - 速度ベクトル - 加速度ベクトル -| 名称 | タイプ | 説明 | -| ---------------------- | ----------------------------------- | ---------------------------------------- | -| `~/input/pointcloud` | `sensor_msgs::msg::PointCloud2` | 入力ポイントクラウド | +| 名称 | タイプ | 説明 | +| -------------------- | ------------------------------- | -------------------- | +| `~/input/pointcloud` | `sensor_msgs::msg::PointCloud2` | 入力ポイントクラウド | ### 出力 @@ -47,21 +49,21 @@ autoware_lidar_centerpointは、動的3Dオブジェクトを検出するため **評価指標:** -* 各シナリオにおける目標ポイント(回避距離、停止位置、駐車位置など)からの偏差 -* 'post resampling'前のPlanning出力と'post resampling'後のPlanning出力との間の軌跡の滑らかさ -* 車両の自車位置とPlanningが生成する軌跡との間の誤差 -* 計画された速度と加速度と、実際の速度と加速度との間の偏差 -* 計画された軌跡の曲率半径と、実際の軌跡の曲率半径との間の偏差 -* 車両周囲の障害物や他の車両を回避するために必要な回避時間 -* 車両が障害物や他の車両と衝突する可能性のある衝突時間(TTC) +- 各シナリオにおける目標ポイント(回避距離、停止位置、駐車位置など)からの偏差 +- 'post resampling'前のPlanning出力と'post resampling'後のPlanning出力との間の軌跡の滑らかさ +- 車両の自車位置とPlanningが生成する軌跡との間の誤差 +- 計画された速度と加速度と、実際の速度と加速度との間の偏差 +- 計画された軌跡の曲率半径と、実際の軌跡の曲率半径との間の偏差 +- 車両周囲の障害物や他の車両を回避するために必要な回避時間 +- 車両が障害物や他の車両と衝突する可能性のある衝突時間(TTC) Autoware Planningコンポーネントの性能評価には、これらのシナリオが利用できます。 -| 名前 | タイプ | 説明 | -| ------------------------ | ------------------------------------------------------ | ------ | -| `~/output/objects` | `autoware_perception_msgs::msg::DetectedObjects` | 検出オブジェクト | -| `debug/cyclic_time_ms` | `tier4_debug_msgs::msg::Float64Stamped` | サイクルタイム (msg) | -| `debug/processing_time_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 処理時間 (ms) | +| 名前 | タイプ | 説明 | +| -------------------------- | ------------------------------------------------ | -------------------- | +| `~/output/objects` | `autoware_perception_msgs::msg::DetectedObjects` | 検出オブジェクト | +| `debug/cyclic_time_ms` | `tier4_debug_msgs::msg::Float64Stamped` | サイクルタイム (msg) | +| `debug/processing_time_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 処理時間 (ms) | ## パラメータ @@ -69,43 +71,42 @@ Autoware Planningコンポーネントの性能評価には、これらのシナ これらのパラメータはONNXファイルに関連付けられており、トレーニングフェーズ中に定義済みです。このパラメータを変更する際は、ONNXファイルも変更してください。また、ONNXファイルを更新する際は、必ずこれらの値を確認してください。 -| 名称 | タイプ | デフォルト値 | 説明 | -| --------------------------------------- | ------------ | ---------------------------------------------------------- | --------------------------------------------------------------------- | -| `model_params.class_names` | list[string] | ["CAR", "TRUCK", "BUS", "BICYCLE", "PEDESTRIAN"] | モデル出力のクラス名のリスト | -| `model_params.point_feature_size` | int | `4` | 点群内の各ポイントのフィーチャ数 | -| `model_params.max_voxel_size` | int | `40000` | ボクセルの最大数 | -| `model_params.point_cloud_range` | list[double] | [-76.8, -76.8, -4.0, 76.8, 76.8, 6.0] | 検出範囲 [min_x, min_y, min_z, max_x, max_y, max_z] [m] | -| `model_params.voxel_size` | list[double] | [0.32, 0.32, 10.0] | 各ボクセルのサイズ [x, y, z] [m] | -| `model_params.downsample_factor` | int | `1` | 座標のダウンサンプル係数 | -| `model_params.encoder_in_feature_size` | int | `9` | エンコーダへの入力フィーチャ数 | -| `model_params.has_variance` | bool | `false` | モデルが各バウンディングボックスの姿勢分散と姿勢を出力する場合 `true` | -| `model_params.has_twist` | bool | `false` | モデルが各バウンディングボックスの速度と姿勢を出力する場合 `true` | +| 名称 | タイプ | デフォルト値 | 説明 | +| -------------------------------------- | ------------ | ------------------------------------------------ | --------------------------------------------------------------------- | +| `model_params.class_names` | list[string] | ["CAR", "TRUCK", "BUS", "BICYCLE", "PEDESTRIAN"] | モデル出力のクラス名のリスト | +| `model_params.point_feature_size` | int | `4` | 点群内の各ポイントのフィーチャ数 | +| `model_params.max_voxel_size` | int | `40000` | ボクセルの最大数 | +| `model_params.point_cloud_range` | list[double] | [-76.8, -76.8, -4.0, 76.8, 76.8, 6.0] | 検出範囲 [min_x, min_y, min_z, max_x, max_y, max_z] [m] | +| `model_params.voxel_size` | list[double] | [0.32, 0.32, 10.0] | 各ボクセルのサイズ [x, y, z] [m] | +| `model_params.downsample_factor` | int | `1` | 座標のダウンサンプル係数 | +| `model_params.encoder_in_feature_size` | int | `9` | エンコーダへの入力フィーチャ数 | +| `model_params.has_variance` | bool | `false` | モデルが各バウンディングボックスの姿勢分散と姿勢を出力する場合 `true` | +| `model_params.has_twist` | bool | `false` | モデルが各バウンディングボックスの速度と姿勢を出力する場合 `true` | ### コア・パラメータ -| 名前 | タイプ | デフォルト値 | 説明 | -| ------------------------------------------- | -------- | -------------- | ------------------------------------------------------------------ | -| `encoder_onnx_path` | 文字列 | `""` | VoxelFeatureEncoder ONNX ファイルへのパス | -| `encoder_engine_path` | 文字列 | `""` | VoxelFeatureEncoder TensorRT Engine ファイルへのパス | -| `head_onnx_path` | 文字列 | `""` | DetectionHead ONNX ファイルへのパス | -| `head_engine_path` | 文字列 | `""` | DetectionHead TensorRT Engine ファイルへのパス | -| `build_only` | ブール | `false` | TensorRT エンジンファイルが作成されたらノードをシャットダウンする | -| `trt_precision` | 文字列 | `fp16` | TensorRT 推論の精度: `fp32` または `fp16` | -| `post_process_params.score_threshold` | double | `0.4` | スコアが閾値未満の検出オブジェクトは無視される | -| `post_process_params.yaw_norm_thresholds` | doubleのリスト | [0.3, 0.3, 0.3, 0.3, 0.0] | Yaw ノルムの距離閾値の配列 [rad] | -| `post_process_params.iou_nms_target_class_names` | 文字列のリスト | - | IoU ベースの非最大抑制のターゲットクラス | -| `post_process_params.iou_nms_search_distance_2d` | double | - | 2 つ以上のオブジェクトが値よりも遠い場合、NMS は適用されない | -| `post_process_params.iou_nms_threshold` | double | - | IoU ベースの非最大抑制の IoU 閾値 | -| `post_process_params.has_twist` | ブール | false | モデルが出力値を捻じっているかどうかを示す | -| `densification_params.world_frame_id` | 文字列 | `map` | マルチフレーム点群を統合するワールドフレーム ID | -| `densification_params.num_past_frames` | 整数 | `1` | 現在フレームと統合する過去フレームの数 | +| 名前 | タイプ | デフォルト値 | 説明 | +| ------------------------------------------------ | -------------- | ------------------------- | ----------------------------------------------------------------- | +| `encoder_onnx_path` | 文字列 | `""` | VoxelFeatureEncoder ONNX ファイルへのパス | +| `encoder_engine_path` | 文字列 | `""` | VoxelFeatureEncoder TensorRT Engine ファイルへのパス | +| `head_onnx_path` | 文字列 | `""` | DetectionHead ONNX ファイルへのパス | +| `head_engine_path` | 文字列 | `""` | DetectionHead TensorRT Engine ファイルへのパス | +| `build_only` | ブール | `false` | TensorRT エンジンファイルが作成されたらノードをシャットダウンする | +| `trt_precision` | 文字列 | `fp16` | TensorRT 推論の精度: `fp32` または `fp16` | +| `post_process_params.score_threshold` | double | `0.4` | スコアが閾値未満の検出オブジェクトは無視される | +| `post_process_params.yaw_norm_thresholds` | doubleのリスト | [0.3, 0.3, 0.3, 0.3, 0.0] | Yaw ノルムの距離閾値の配列 [rad] | +| `post_process_params.iou_nms_target_class_names` | 文字列のリスト | - | IoU ベースの非最大抑制のターゲットクラス | +| `post_process_params.iou_nms_search_distance_2d` | double | - | 2 つ以上のオブジェクトが値よりも遠い場合、NMS は適用されない | +| `post_process_params.iou_nms_threshold` | double | - | IoU ベースの非最大抑制の IoU 閾値 | +| `post_process_params.has_twist` | ブール | false | モデルが出力値を捻じっているかどうかを示す | +| `densification_params.world_frame_id` | 文字列 | `map` | マルチフレーム点群を統合するワールドフレーム ID | +| `densification_params.num_past_frames` | 整数 | `1` | 現在フレームと統合する過去フレームの数 | ### `build_only` オプション `autoware_lidar_centerpoint` ノードには、ONNX ファイルから TensorRT エンジンファイルを構築するための `build_only` オプションがあります。 Autoware Universe の `.param.yaml` ファイル内のすべての ROS パラメータを移動することが好ましいですが、`build_only` オプションは現時点では `.param.yaml` ファイルに移動されていません。これは、構築をプリタスクとして実行するためのフラグとして使用されることがあるためです。次のコマンドで実行できます。 - ```bash ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true ``` @@ -138,7 +139,6 @@ ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:= **ステップ2.** conda仮想環境を作成してアクティブにします - ```bash conda create --name train-centerpoint python=3.8 -y conda activate train-centerpoint @@ -148,7 +148,6 @@ conda activate train-centerpoint PyTorch がインストール済みで、Autoware の要件である CUDA 11.6 に対応していることを確認してください。 - ```bash conda install pytorch==1.13.1 torchvision==0.14.1 pytorch-cuda=11.6 -c pytorch -c nvidia ``` @@ -157,7 +156,6 @@ conda install pytorch==1.13.1 torchvision==0.14.1 pytorch-cuda=11.6 -c pytorch - **ステップ 1.** MIMを使用してMMEngine、MMCV、MMDetectionをインストールします。 - ```bash pip install -U openmim mim install mmengine @@ -171,7 +169,6 @@ mmdetection3d リポジトリをフォークし、いくつかの貴重な機能 特に、PointPillar z ボクセルの特徴量の入力を省略できるようにし、元の論文との互換性を保ちました。 さらに、追加機能として PyTorch から ONNX へのコンバーターと T4 形式のリーダーを統合しました。 - ```bash git clone https://github.com/autowarefoundation/mmdetection3d.git cd mmdetection3d @@ -184,14 +181,12 @@ pip install -v -e . mmdetection3dレポジトリのフォークをクローンする - ```bash git clone https://github.com/autowarefoundation/mmdetection3d.git ``` 以下のコマンドを実行して Docker イメージを構築します。 - ```bash cd mmdetection3d docker build -t mmdetection3d -f docker/Dockerfile . @@ -199,7 +194,6 @@ docker build -t mmdetection3d -f docker/Dockerfile . Dockerコンテナを実行する: - ```bash docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/mmdetection3d/data mmdetection3d ``` @@ -212,14 +206,12 @@ docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/mmdetection3d/data mmdete **手順 2.** データセットフォルダにシンボリックリンクを作成する - ```bash ln -s /path/to/nuscenes/dataset/ /path/to/mmdetection3d/data/nuscenes/ ``` **ステップ 3.** NuScenesデータを実行して準備: - ```bash cd mmdetection3d python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes @@ -236,7 +228,6 @@ CenterPoint モデルは、設定ファイル内のさまざまなパラメー #### トレーニングの開始 - ```bash python tools/train.py projects/AutowareCenterPoint/configs/centerpoint_custom.py --work-dir ./work_dirs/centerpoint_custom ``` @@ -248,7 +239,6 @@ python tools/train.py projects/AutowareCenterPoint/configs/centerpoint_custom.py ##### サンプル・データセットのダウンロード - ```bash wget https://autoware-files.s3.us-west-2.amazonaws.com/dataset/lidar_detection_sample_dataset.tar.gz #Extract the dataset to a folder of your choice @@ -263,14 +253,12 @@ ln -s /PATH/TO/DATASET/ /PATH/TO/mmdetection3d/data/tier4_dataset/ データセットは T4Dataset 仕様に従ってフォーマットされており、「sample_dataset」をそのバージョンの 1 つとして指定します。 - ```bash python tools/create_data.py T4Dataset --root-path data/sample_dataset/ --out-dir data/sample_dataset/ --extra-tag T4Dataset --version sample_dataset --annotation-hz 2 ``` 評価を実行する - ```bash python tools/test.py projects/AutowareCenterPoint/configs/centerpoint_custom_test.py /PATH/OF/THE/CHECKPOINT --task lidar_det ``` @@ -283,7 +271,6 @@ python tools/test.py projects/AutowareCenterPoint/configs/centerpoint_custom_tes autoware_lidar_centerpointの実装では、ONNXモデルを2つ入力として必要とします。ボクセルエンコーダーとCenterPointモデルのバックボーン・ネック・ヘッドなど、ネットワークの他の側面は外部的に実装されています。mmdetection3dリポジトリのフォークの下で、CenterPointモデルをAutoware互換のONNX形式に変換するスクリプトを用意しました。これは `mmdetection3d/projects/AutowareCenterPoint` ファイルにあります。 - ```bash python projects/AutowareCenterPoint/centerpoint_onnx_converter.py --cfg projects/AutowareCenterPoint/configs/centerpoint_custom.py --ckpt work_dirs/centerpoint_custom/YOUR_BEST_MODEL.pth --work-dir ./work_dirs/onnx_models ``` @@ -292,7 +279,6 @@ python projects/AutowareCenterPoint/centerpoint_onnx_converter.py --cfg projects autoware_lidar_centerpointノードの設定ファイルディレクトリ内に**centerpoint_custom.param.yaml**という新しい設定ファイルを作成する。トレーニング設定ファイルに従ってpoint_cloud_range、point_feature_size、voxel_sizeなどの設定ファイルのパラメータを設定する。 - ```yaml /**: ros__parameters: @@ -313,7 +299,6 @@ autoware_lidar_centerpointノードの設定ファイルディレクトリ内に #### lidar_centerpoint ノードの起動 - ```bash cd /YOUR/AUTOWARE/PATH/Autoware source install/setup.bash @@ -324,17 +309,17 @@ ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name: #### v1 (2022/07/06) -| 名称 | URL | 説明 | -| ------------------- | --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -| `centerpoint` | [pts_voxel_encoder][v1-encoder-centerpoint]
[pts_backbone_neck_head][v1-head-centerpoint] | このパッケージの実装の制限のため、1 つの変更があります。`PillarFeatureNet` の `num_filters=[32, 32]` | -| `centerpoint_tiny` | [pts_voxel_encoder][v1-encoder-centerpoint-tiny]
[pts_backbone_neck_head][v1-head-centerpoint-tiny] | `v0`の`default`と同じモデル | +| 名称 | URL | 説明 | +| ------------------ | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `centerpoint` | [pts_voxel_encoder][v1-encoder-centerpoint]
[pts_backbone_neck_head][v1-head-centerpoint] | このパッケージの実装の制限のため、1 つの変更があります。`PillarFeatureNet` の `num_filters=[32, 32]` | +| `centerpoint_tiny` | [pts_voxel_encoder][v1-encoder-centerpoint-tiny]
[pts_backbone_neck_head][v1-head-centerpoint-tiny] | `v0`の`default`と同じモデル | 以下の変更はこの[構成](https://github.com/tianweiy/CenterPoint/blob/v0.2/configs/waymo/pp/waymo_centerpoint_pp_two_pfn_stride1_3x.py)と比較されています。 #### v0 (2021/12/03) -| 名前 | URL | 説明 | -| --------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 名前 | URL | 説明 | +| --------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | `default` | [pts_voxel_encoder][v0-encoder-default]
[pts_backbone_neck_head][v0-head-default] | オリジナルのCenterPointアーキテクチャから変更が2つある(`PillarFeatureNet`の`num_filters=[32]`と`RPN`の`ds_layer_strides=[2, 2, 2]`) | ## (省略可能) エラー検出と処理 @@ -447,4 +432,3 @@ Autowareのアーキテクチャは、主に以下のようなコンポーネン このインタラクションにより、Autowareは周囲を感知し、安全で効率的な経路を生成し、車両を制御することができ、自動運転の実現に不可欠です。 このドキュメントでは、Autowareのアーキテクチャの詳細について説明します。また、コンポーネントのインタラクションと、それらが自動運転システム全体にどのように寄与するかについても説明します。 - diff --git a/perception/autoware_lidar_transfusion/README.md b/perception/autoware_lidar_transfusion/README.md index 18ce3ba78c3c..cd424cc64226 100644 --- a/perception/autoware_lidar_transfusion/README.md +++ b/perception/autoware_lidar_transfusion/README.md @@ -14,8 +14,8 @@ ### 入力 -| 名称 | タイプ | 説明 | -| -------------------- | ------------------------------- | ----------------- | +| 名称 | タイプ | 説明 | +| -------------------- | ------------------------------- | ---------- | | `~/input/pointcloud` | `sensor_msgs::msg::PointCloud2` | 入力点群。 | ### 出力 @@ -24,20 +24,20 @@ **目的:** -* センサーからのセンサデータから自己位置を推定する。 -* Planningモジュールに自己位置を提供する。 +- センサーからのセンサデータから自己位置を推定する。 +- Planningモジュールに自己位置を提供する。 **入力:** -* IMUデータ -* GNSSデータ -* オドメトリデータ -* カメラ画像(オプション) +- IMUデータ +- GNSSデータ +- オドメトリデータ +- カメラ画像(オプション) **出力:** -* 自車位置 -* 自己位置の不確かさ +- 自車位置 +- 自己位置の不確かさ **アルゴリズム:** @@ -51,83 +51,83 @@ **目的:** -* センサーからのデータを処理し、エゴカーの周囲の障害物を検出する。 -* Planningモジュールに障害物の情報を提供する。 +- センサーからのデータを処理し、エゴカーの周囲の障害物を検出する。 +- Planningモジュールに障害物の情報を提供する。 **入力:** -* レーダーデータ -* カメラ画像 -* LIDARデータ +- レーダーデータ +- カメラ画像 +- LIDARデータ **出力:** -* 障害物の位置と形状 -* 障害物の速度と加速度 +- 障害物の位置と形状 +- 障害物の速度と加速度 **アルゴリズム:** 障害検出モジュールは、次のアルゴリズムを使用して障害物を検出します。 -* **点群処理:** LIDARデータを使用して点群を作成します。 -* **クラスタリング:** 点群をクラスタ(障害物)にグループ化します。 -* **分類:** カメラ画像とレーダーデータを使用して、クラスタを障害物として分類します。 +- **点群処理:** LIDARデータを使用して点群を作成します。 +- **クラスタリング:** 点群をクラスタ(障害物)にグループ化します。 +- **分類:** カメラ画像とレーダーデータを使用して、クラスタを障害物として分類します。 **Planningモジュール** **目的:** -* 自車位置と障害物の情報に基づき、経路を計画し、次のような制御コマンドを生成する。 -* ステアリング角 -* アクセル/ブレーキコマンド +- 自車位置と障害物の情報に基づき、経路を計画し、次のような制御コマンドを生成する。 +- ステアリング角 +- アクセル/ブレーキコマンド **入力:** -* 自車位置 -* 障害物の情報 -* 地図データ +- 自車位置 +- 障害物の情報 +- 地図データ **出力:** -* 制御コマンド +- 制御コマンド **アルゴリズム:** Planningモジュールは、次のアルゴリズムを使用して経路を計画し、制御コマンドを生成します。 -* **空間探索法:** 次の目的地までの可能な経路を探索します。 -* **コスト関数:** 各経路のコストを計算し、障害物逸脱量、速度逸脱量、加速度逸脱量を考慮します。 -* **最適化アルゴリズム:** コストが最小となる経路を選択します。 -* **'post resampling'` による経路の平滑化。 +- **空間探索法:** 次の目的地までの可能な経路を探索します。 +- **コスト関数:** 各経路のコストを計算し、障害物逸脱量、速度逸脱量、加速度逸脱量を考慮します。 +- **最適化アルゴリズム:** コストが最小となる経路を選択します。 +- \*\*'post resampling'` による経路の平滑化。 **制御モジュール** **目的:** -* Planningモジュールから生成された制御コマンドを実行する。 -* ステアリングシステムと動力伝達システムを制御する。 +- Planningモジュールから生成された制御コマンドを実行する。 +- ステアリングシステムと動力伝達システムを制御する。 **入力:** -* 制御コマンド +- 制御コマンド **出力:** -* 車両の運動(ステアリング角、速度、加速度) +- 車両の運動(ステアリング角、速度、加速度) **アルゴリズム:** 制御モジュールは、PID制御器または状態フィードバックコントローラを使用して制御コマンドを実行します。 -| 名称 | タイプ | 説明 | -|---|---|---| -| `/output/objects` | `autoware_perception_msgs::msg::DetectedObjects` | 検出されたオブジェクト | -| `debug/cyclic_time_ms` | `tier4_debug_msgs::msg::Float64Stamped` | サイクル時間 (ms) | -| `debug/pipeline_latency_ms` | `tier4_debug_msgs::msg::Float64Stamped` | パイプライン遅延時間 (ms) | -| `debug/processing_time/preprocess_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 前処理時間 (ms) | -| `debug/processing_time/inference_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 推論時間 (ms) | -| `debug/processing_time/postprocess_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 後処理時間 (ms) | -| `debug/processing_time/total_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 総処理時間 (ms) | +| 名称 | タイプ | 説明 | +| -------------------------------------- | ------------------------------------------------ | ------------------------- | +| `/output/objects` | `autoware_perception_msgs::msg::DetectedObjects` | 検出されたオブジェクト | +| `debug/cyclic_time_ms` | `tier4_debug_msgs::msg::Float64Stamped` | サイクル時間 (ms) | +| `debug/pipeline_latency_ms` | `tier4_debug_msgs::msg::Float64Stamped` | パイプライン遅延時間 (ms) | +| `debug/processing_time/preprocess_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 前処理時間 (ms) | +| `debug/processing_time/inference_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 推論時間 (ms) | +| `debug/processing_time/postprocess_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 後処理時間 (ms) | +| `debug/processing_time/total_ms` | `tier4_debug_msgs::msg::Float64Stamped` | 総処理時間 (ms) | ## パラメーター @@ -148,7 +148,6 @@ Planningモジュールは、次のアルゴリズムを使用して経路を計 `autoware_lidar_transfusion`ノードには、ONNXファイルからTensorRTエンジンファイルを構築するための`build_only`オプションがあります。 Autoware Universeの`.param.yaml`ファイルにすべてのROSパラメータを移動することが望ましいですが、`build_only`オプションは現在`.param.yaml`ファイルに移動されていません。これは、ビルドを事前タスクとして実行するためのフラグとして使用される可能性があるためです。次のコマンドで実行できます。 - ```bash ros2 launch autoware_lidar_transfusion lidar_transfusion.launch.xml build_only:=true ``` @@ -157,7 +156,6 @@ ros2 launch autoware_lidar_transfusion lidar_transfusion.launch.xml build_only:= `autoware_lidar_transfusion` のデフォルトのログ重要度レベルは `info` です。デバッグの目的では、開発者は `log_level` パラメータを使用して重要度のレベルを下げることができます: - ```bash ros2 launch autoware_lidar_transfusion lidar_transfusion.launch.xml log_level:=debug ``` @@ -166,7 +164,6 @@ ros2 launch autoware_lidar_transfusion lidar_transfusion.launch.xml log_level:=d このライブラリは、生のクラウドデータ (バイト) で動作します。入力ポイントクラウドメッセージのフォーマットは次のとおりであると想定されます。 - ```python [ sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1), @@ -179,7 +176,6 @@ ros2 launch autoware_lidar_transfusion lidar_transfusion.launch.xml log_level:=d この入力には、他のフィールドが含まれる場合もあります。表示されている形式は必要な最小限です。 デバッグの目的で、次のシンプルなコマンドを使用してポイントクラウド・トピックを検証することができます。 - ```bash ros2 topic echo --field fields ``` @@ -236,4 +232,3 @@ ros2 topic echo --field fields 現在、このパッケージは揺れる障害物を適切に処理できません。この問題を改善するために、知覚レイヤーに確率フィルターを追加する予定です。 また、グローバル化する必要があるパラメータがいくつかあります(例: 車両サイズ、最大ステアリングなど)。これらはリファクタリングされてグローバルパラメータとして定義されるため、異なるノード間で同じパラメータを共有できます。 --> - diff --git a/perception/autoware_map_based_prediction/README.md b/perception/autoware_map_based_prediction/README.md index fea4ce7dd603..d63cf3684687 100644 --- a/perception/autoware_map_based_prediction/README.md +++ b/perception/autoware_map_based_prediction/README.md @@ -74,11 +74,11 @@ これらのパラメータは、以下の表に示すように ROS パラメータで変更できます。 -| 設定名 | デフォルト値 | -| ---------------------------------------------------- | ------------- | -| `レーン変更検出の距離閾値` | `1.0` [m] | -| `レーン変更検出の時間閾値` | `5.0` [s] | -| `レーン変更検出用速度のカットオフ周波数` | `0.1` [Hz] | +| 設定名 | デフォルト値 | +| ---------------------------------------- | ------------ | +| `レーン変更検出の距離閾値` | `1.0` [m] | +| `レーン変更検出の時間閾値` | `5.0` [s] | +| `レーン変更検出用速度のカットオフ周波数` | `0.1` [Hz] | #### しきい値パラメータの調整 @@ -102,9 +102,9 @@ $$ 参考までに、横方向速度の計算方法を示します。 -| 横速度計算手法 | 式 | 説明 | -| ------------------------------------------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [**適用**済み] 横距離のタイムデリバティブ | $\dfrac{\Delta d_{lat}}{\Delta t}$ | 現在、この手法は曲がりくねった道路に対処するために使用されています。この時間微分は容易にノイズを生じるため、低域通過フィルターも使用して速度を滑らかにしています。 | +| 横速度計算手法 | 式 | 説明 | +| --------------------------------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [**適用**済み] 横距離のタイムデリバティブ | $\dfrac{\Delta d_{lat}}{\Delta t}$ | 現在、この手法は曲がりくねった道路に対処するために使用されています。この時間微分は容易にノイズを生じるため、低域通過フィルターも使用して速度を滑らかにしています。 | | [適用なし] オブジェクトの速度の横方向への投影 | $v_{obj} \sin(\theta)$ | 通常、オブジェクトの速度は横距離のタイムデリバティブよりもノイズが少なくなります。ただし、車線とオブジェクトの方向のヨー角差 $\theta$ が時々不連続になるため、この手法を採用しませんでした。 | 現在、ローパスフィルターを使用した高階メソッドで横速度を算出しています。 @@ -136,10 +136,10 @@ $$ Rosparam で以下の表に示すパラメータを変更できます。 -| パラメータ名 | デフォルト値 | -| ---------------------------------------- | ------------ | +| パラメータ名 | デフォルト値 | +| ---------------------------------------- | -------------- | | `check_lateral_acceleration_constraints` | `false` [bool] | -| `max_lateral_accel` | `2.0` [m/s^2] | +| `max_lateral_accel` | `2.0` [m/s^2] | | `min_acceleration_before_curve` | `-2.0` [m/s^2] | ## 自動車加速度を使用した経路予測(障害車両用) @@ -172,7 +172,7 @@ $\ x(t) = x*{t0} + (v*{t0} + a*{t0} \* (1/\lambda)) \cdot t + a*{t0}(1/λ^2)(e^{ 次の表の`rosparam`でこれらのパラメータを変更できます。 -| パラメータ名 | デフォルト値 | +| パラメータ名 | デフォルト値 | | ------------------------------------ | -------------- | | `use_vehicle_acceleration` | `false` [bool] | | `acceleration_exponential_half_life` | `2.5` [s] | @@ -209,11 +209,11 @@ $\ x(t) = x*{t0} + (v*{t0} + a*{t0} \* (1/\lambda)) \cdot t + a*{t0}(1/λ^2)(e^{ ### 入力 -| 名称 | 型 | 説明 | -| ------------------------------------------------------- | ------------------------------------------------------- | -------------------------------------------------------- | -| `~/perception/object_recognition/tracking/objects` | `autoware_perception_msgs::msg::TrackedObjects` | 予測パスを持たない追跡オブジェクト。 | -| `~/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | Lanelet2 Mapのバイナリデータ。 | -| `~/perception/traffic_light_recognition/traffic_signals` | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 対応する信号機の再配列された情報。 | +| 名称 | 型 | 説明 | +| -------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------ | +| `~/perception/object_recognition/tracking/objects` | `autoware_perception_msgs::msg::TrackedObjects` | 予測パスを持たない追跡オブジェクト。 | +| `~/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | Lanelet2 Mapのバイナリデータ。 | +| `~/perception/traffic_light_recognition/traffic_signals` | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 対応する信号機の再配列された情報。 | ### 自動運転ソフトウェアに関するドキュメント @@ -298,32 +298,32 @@ Autowareのアップデートにより、最新の機能、バグ修正、セキ Troubleshootingガイドには、一般的な問題の解決手順が記載されています。診断、ログ分析、デバッグの手順を提供します。 -| 名称 | 型 | 説明 | -| ---------------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------- | +| 名称 | 型 | 説明 | +| ---------------------------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------- | | `~/input/objects` | `autoware_perception_msgs::msg::TrackedObjects` | 検知物体。デフォルトは `/perception/object_recognition/tracking/objects` に設定されている | -| `~/output/objects` | `autoware_perception_msgs::msg::PredictedObjects` | 予測経路付き検知物体 | -| `~/objects_path_markers` | `visualization_msgs::msg::MarkerArray` | 可視化用のマーカー | -| `~/debug/processing_time_ms` | `std_msgs::msg::Float64` | このモジュールの処理時間 | -| `~/debug/cyclic_time_ms` | `std_msgs::msg::Float64` | このモジュールの周期時間 | +| `~/output/objects` | `autoware_perception_msgs::msg::PredictedObjects` | 予測経路付き検知物体 | +| `~/objects_path_markers` | `visualization_msgs::msg::MarkerArray` | 可視化用のマーカー | +| `~/debug/processing_time_ms` | `std_msgs::msg::Float64` | このモジュールの処理時間 | +| `~/debug/cyclic_time_ms` | `std_msgs::msg::Float64` | このモジュールの周期時間 | ## パラメータ -| パラメータ | 単位 | タイプ | 説明 | -|---|---|---|---| -| `enable_delay_compensation` | [-] | bool | 物体の位置に対する時間遅延補正を有効にするためのフラグ | -| `prediction_time_horizon` | [秒] | double | 予測 경로의 예측 시간 지속 기간 | -| `lateral_control_time_horizon` | [秒] | double | 예측 경로가 기준 경로(대부분 차선 중심)에 도달하는 시간 지속 기간 | -| `prediction_sampling_delta_time` | [秒] | double | 예측 경로에서 포인트의 샘플링 시간 | -| `min_velocity_for_map_based_prediction` | [m/s] | double | 이 값보다 높은 속도의 물체에 지도 기반 예측 적용 | -| `min_crosswalk_user_velocity` | [m/s] | double | 보행자의 속도를 계산할 때 사용되는 최소 속도 | -| `max_crosswalk_user_delta_yaw_threshold_for_lanelet` | [라디안] | double | 보행자와 차로 간의 최대 요우 각도 차이를 보행자 경로 예측에 사용 | -| `dist_threshold_for_searching_lanelet` | [m] | double | 물체가 속하는 차로를 검색하는 데 사용되는 각도 임계값 | -| `delta_yaw_threshold_for_searching_lanelet` | [라디안] | double | 물체가 속하는 차로를 검색하는 데 사용되는 각도 임계값 | -| `sigma_lateral_offset` | [m] | double | 물체의 측면 위치에 대한 표준 편차 | -| `sigma_yaw_angle_deg` | [도] | double | 물체의 요우 각도에 대한 표준 편차 | -| `object_buffer_time_length` | [초] | double | 물체의 정보를 저장하는 객체 이력의 시간 범위 | -| `history_time_length` | [초] | double | 예측에 사용되는 객체 정보의 시간 범위 | -| `prediction_time_horizon_rate_for_validate_shoulder_lane_length` | [-] | double | 예측 경로 길이가 차선 길이를 초과하면 예측 경로 비활성화. 이 매개변수는 예측 경로 길이를 제어 | +| パラメータ | 単位 | タイプ | 説明 | +| ---------------------------------------------------------------- | -------- | ------ | --------------------------------------------------------------------------------------------- | +| `enable_delay_compensation` | [-] | bool | 物体の位置に対する時間遅延補正を有効にするためのフラグ | +| `prediction_time_horizon` | [秒] | double | 予測 경로의 예측 시간 지속 기간 | +| `lateral_control_time_horizon` | [秒] | double | 예측 경로가 기준 경로(대부분 차선 중심)에 도달하는 시간 지속 기간 | +| `prediction_sampling_delta_time` | [秒] | double | 예측 경로에서 포인트의 샘플링 시간 | +| `min_velocity_for_map_based_prediction` | [m/s] | double | 이 값보다 높은 속도의 물체에 지도 기반 예측 적용 | +| `min_crosswalk_user_velocity` | [m/s] | double | 보행자의 속도를 계산할 때 사용되는 최소 속도 | +| `max_crosswalk_user_delta_yaw_threshold_for_lanelet` | [라디안] | double | 보행자와 차로 간의 최대 요우 각도 차이를 보행자 경로 예측에 사용 | +| `dist_threshold_for_searching_lanelet` | [m] | double | 물체가 속하는 차로를 검색하는 데 사용되는 각도 임계값 | +| `delta_yaw_threshold_for_searching_lanelet` | [라디안] | double | 물체가 속하는 차로를 검색하는 데 사용되는 각도 임계값 | +| `sigma_lateral_offset` | [m] | double | 물체의 측면 위치에 대한 표준 편차 | +| `sigma_yaw_angle_deg` | [도] | double | 물체의 요우 각도에 대한 표준 편차 | +| `object_buffer_time_length` | [초] | double | 물체의 정보를 저장하는 객체 이력의 시간 범위 | +| `history_time_length` | [초] | double | 예측에 사용되는 객체 정보의 시간 범위 | +| `prediction_time_horizon_rate_for_validate_shoulder_lane_length` | [-] | double | 예측 경로 길이가 차선 길이를 초과하면 예측 경로 비활성화. 이 매개변수는 예측 경로 길이를 제어 | ## 前提条件/既知の制限 @@ -341,4 +341,3 @@ Troubleshootingガイドには、一般的な問題の解決手順が記載さ 1. M. Werling, J. Ziegler, S. Kammel, and S. Thrun, “Optimal trajectory generation for dynamic street scenario in a frenet frame,” IEEE International Conference on Robotics and Automation, Anchorage, Alaska, USA, May 2010. 2. A. Houenou, P. Bonnifait, V. Cherfaoui, and Wen Yao, “Vehicle trajectory prediction based on motion model and maneuver recognition,” in 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, nov 2013, pp. 4363-4369. - diff --git a/perception/autoware_multi_object_tracker/README.md b/perception/autoware_multi_object_tracker/README.md index 257c6fa9d381..e0acefc731d7 100644 --- a/perception/autoware_multi_object_tracker/README.md +++ b/perception/autoware_multi_object_tracker/README.md @@ -24,7 +24,7 @@ - diff --git a/perception/autoware_object_merger/README.md b/perception/autoware_object_merger/README.md index 4da144ef24bd..4c9a2361e214 100644 --- a/perception/autoware_object_merger/README.md +++ b/perception/autoware_object_merger/README.md @@ -12,8 +12,8 @@ ### 入力 -| 名前 | タイプ | 説明 | -| --------------- | ------------------------------------------------ | ---------- | +| 名前 | タイプ | 説明 | +| --------------- | ------------------------------------------------ | -------- | | `input/object0` | `autoware_perception_msgs::msg::DetectedObjects` | 検出対象 | | `input/object1` | `autoware_perception_msgs::msg::DetectedObjects` | 検出対象 | @@ -25,41 +25,43 @@ **Sensor Fusion** -* **SBF (ステレオベースフロー)** - * ステレオカメラからの深度とオプティカルフローを融合して、3D点群を生成 +- **SBF (ステレオベースフロー)** -* **VLP16 LIDAR** - * 点群データを生成し、`post resampling`を使用して、3D空間内の障害物を検出 + - ステレオカメラからの深度とオプティカルフローを融合して、3D点群を生成 -* **RADAR** - * 車両、歩行者、その他の静止または動いている物体を検出 +- **VLP16 LIDAR** + + - 点群データを生成し、`post resampling`を使用して、3D空間内の障害物を検出 + +- **RADAR** + - 車両、歩行者、その他の静止または動いている物体を検出 **Global Planning** -* **Elastic Band** アルゴリズムを使用して、出発点から目的地までのパスを生成 -* 交通ルールや道路標識を考慮して、パスを最適化 +- **Elastic Band** アルゴリズムを使用して、出発点から目的地までのパスを生成 +- 交通ルールや道路標識を考慮して、パスを最適化 **Local Planning** -* **DWA (動的窓アプローチ)** アルゴリズムを使用して、自車位置を中心とした局所パスを生成 -* Planningモジュールが現在、障害物の回避、速度制御、パス追跡を実施中 +- **DWA (動的窓アプローチ)** アルゴリズムを使用して、自車位置を中心とした局所パスを生成 +- Planningモジュールが現在、障害物の回避、速度制御、パス追跡を実施中 **Control** -* **MPC (モデル予測制御)** アルゴリズムを使用して、ステアリング、加速、ブレーキを制御 -* 制御動作を最適化して、安全かつ効率的な走行を実現 +- **MPC (モデル予測制御)** アルゴリズムを使用して、ステアリング、加速、ブレーキを制御 +- 制御動作を最適化して、安全かつ効率的な走行を実現 **Performance Monitoring** -* **Path Evaluation** - * パスの妥当性と障害物との距離を評価 -* **Velocity and Acceleration Violation Detection** - * 速度逸脱量と加速逸脱量を検出し、異常な挙動を監視 -* **System Monitoring** - * システムのパフォーマンスを監視し、障害や異常を検出 +- **Path Evaluation** + - パスの妥当性と障害物との距離を評価 +- **Velocity and Acceleration Violation Detection** + - 速度逸脱量と加速逸脱量を検出し、異常な挙動を監視 +- **System Monitoring** + - システムのパフォーマンスを監視し、障害や異常を検出 -| 名前 | タイプ | 説明 | -|---|---|---| +| 名前 | タイプ | 説明 | +| --------------- | ------------------------------------------------ | -------------- | | `output/object` | `autoware_perception_msgs::msg::DetectedObjects` | 修正された物体 | ## パラメータ @@ -70,13 +72,13 @@ ## ヒント -* **誤検知:** クラスタリング手法によって検出された未知のオブジェクトは、急停止のリスクが高まり、Planningモジュールを妨げる場合があります。MLベースの検出器がオブジェクトを見逃すことがまれな場合は、object_merger のパラメータを調整して、Perceptionモジュールが未知のオブジェクトを無視するようにできます。 - * 大きな車両に近い未知のオブジェクトを削除したい場合: - * **HIGH** `distance_threshold_list`を利用する - * ただし、計算負荷が高くなります - * **LOW** `precision_threshold_to_judge_overlapped`を利用する - * **LOW** `generalized_iou_threshold`を利用する - * ただし、この2つのパラメータは、既知のオブジェクトに近いオブジェクトを見逃すリスクを高めます。 +- **誤検知:** クラスタリング手法によって検出された未知のオブジェクトは、急停止のリスクが高まり、Planningモジュールを妨げる場合があります。MLベースの検出器がオブジェクトを見逃すことがまれな場合は、object_merger のパラメータを調整して、Perceptionモジュールが未知のオブジェクトを無視するようにできます。 + - 大きな車両に近い未知のオブジェクトを削除したい場合: + - **HIGH** `distance_threshold_list`を利用する + - ただし、計算負荷が高くなります + - **LOW** `precision_threshold_to_judge_overlapped`を利用する + - **LOW** `generalized_iou_threshold`を利用する + - ただし、この2つのパラメータは、既知のオブジェクトに近いオブジェクトを見逃すリスクを高めます。 ## 想定/既知の制限 @@ -121,4 +123,3 @@ ## (省略可能) 今後の拡張/未実装の部分 データアソシエーションアルゴリズムは multi_object_tracker と同じでしたが、multi_object_tracker のアルゴリズムはすでに更新されています。 - diff --git a/perception/autoware_object_range_splitter/README.md b/perception/autoware_object_range_splitter/README.md index dc139a9bdbe7..9f19548bd48f 100644 --- a/perception/autoware_object_range_splitter/README.md +++ b/perception/autoware_object_range_splitter/README.md @@ -30,8 +30,8 @@ ### 入力 -| 名称 | 種別 | 説明 | -| ---------- | ------------------------------------------- | ---------- | +| 名称 | 種別 | 説明 | +| -------------- | ------------------------------------------------ | ---------------- | | `input/object` | `autoware_perception_msgs::msg::DetectedObjects` | 検出オブジェクト | ### 出力 @@ -48,51 +48,52 @@ Planning コンポーネントは、現在の状況や高レベルの目標に **機能** -* 安全で衝突を回避する経路の生成 -* 交通規則の遵守 -* 車両の制約(速度、加速度など)を考慮した経路生成 -* 動的障害物(歩行者、車両など)への対応 -* 高レベルの目標(目的地、レーンキープなど)への追従 -* 予測可能な経路生成 +- 安全で衝突を回避する経路の生成 +- 交通規則の遵守 +- 車両の制約(速度、加速度など)を考慮した経路生成 +- 動的障害物(歩行者、車両など)への対応 +- 高レベルの目標(目的地、レーンキープなど)への追従 +- 予測可能な経路生成 **実装** -Planning コンポーネントは、Autoware の __Planning モジュール__ によって実装されています。このモジュールは、以下を実行します。 +Planning コンポーネントは、Autoware の **Planning モジュール** によって実装されています。このモジュールは、以下を実行します。 -* センサデータの処理と解析 -* 自車位置の推定 -* 環境のモデリング -* 経路の探索と最適化 -* 経路の可視化 +- センサデータの処理と解析 +- 自車位置の推定 +- 環境のモデリング +- 経路の探索と最適化 +- 経路の可視化 **安全性** Planning コンポーネントは、次の特徴により安全な動作を確保します。 -* 複数のセンサからのデータフュージョン -* 予測可能な経路生成 -* 冗長性の確保 -* 逸脱量の制限(速度逸脱量、加速度逸脱量など) +- 複数のセンサからのデータフュージョン +- 予測可能な経路生成 +- 冗長性の確保 +- 逸脱量の制限(速度逸脱量、加速度逸脱量など) **性能** Planning コンポーネントは、以下のようなパフォーマンス目標を達成するように設計されています。 -* 低遅延の経路生成 -* `post resampling` 後の経路の正確さ -* さまざまな運転シナリオへの適応性 +- 低遅延の経路生成 +- `post resampling` 後の経路の正確さ +- さまざまな運転シナリオへの適応性 **依存関係** Planning コンポーネントは、以下のコンポーネントに依存しています。 -*センシングコンポーネント* -* ローカライゼーションコンポーネント* -* コントロールコンポーネント* +_センシングコンポーネント_ -| 名称 | 型 | 説明 | -|---|---|---| -| `output/long_range_object` | `autoware_perception_msgs::msg::DetectedObjects` | 長距離検出オブジェクト | +- ローカライゼーションコンポーネント\* +- コントロールコンポーネント\* + +| 名称 | 型 | 説明 | +| --------------------------- | ------------------------------------------------ | ---------------------- | +| `output/long_range_object` | `autoware_perception_msgs::msg::DetectedObjects` | 長距離検出オブジェクト | | `output/short_range_object` | `autoware_perception_msgs::msg::DetectedObjects` | 短距離検出オブジェクト | ## パラメータ @@ -147,4 +148,3 @@ Planning コンポーネントは、以下のコンポーネントに依存し 現在、このパッケージは障害物のチャタリングをうまく処理できません。知覚レイヤーに確率的フィルタを追加して、これを改善する予定です。 また、グローバルにする必要があるパラメータ (例: 車両サイズ、最大操舵角度など) がいくつかあります。これらはリファクタリングされ、グローバルパラメータとして定義されるため、異なるノード間で同じパラメータを共有できます。 --> - diff --git a/perception/autoware_object_velocity_splitter/README.md b/perception/autoware_object_velocity_splitter/README.md index 90e7d91fb0de..2b03aa5f8378 100644 --- a/perception/autoware_object_velocity_splitter/README.md +++ b/perception/autoware_object_velocity_splitter/README.md @@ -23,4 +23,3 @@ - デフォルトパラメータは3.0 このパラメータはオブジェクトを分割するための速度しきい値です - diff --git a/perception/autoware_occupancy_grid_map_outlier_filter/README.md b/perception/autoware_occupancy_grid_map_outlier_filter/README.md index cdb9dafe8f5f..c05d667699e4 100644 --- a/perception/autoware_occupancy_grid_map_outlier_filter/README.md +++ b/perception/autoware_occupancy_grid_map_outlier_filter/README.md @@ -24,10 +24,10 @@ ### 入力 -| 名前 | タイプ | 説明 | -|---|---|---| -| `~/input/pointcloud` | `sensor_msgs/PointCloud2` | 地面を除去した障害物点群 | -| `~/input/occupancy_grid_map` | `nav_msgs/OccupancyGrid` | 障害物存在確率を占有確率マップに示したマップ | +| 名前 | タイプ | 説明 | +| ---------------------------- | ------------------------- | -------------------------------------------- | +| `~/input/pointcloud` | `sensor_msgs/PointCloud2` | 地面を除去した障害物点群 | +| `~/input/occupancy_grid_map` | `nav_msgs/OccupancyGrid` | 障害物存在確率を占有確率マップに示したマップ | ### 出力 @@ -35,64 +35,64 @@ **目次** -* システムアーキテクチャ -* 知覚コンポーネント -* 計画モジュール -* 制御モジュール -* 評価方法 +- システムアーキテクチャ +- 知覚コンポーネント +- 計画モジュール +- 制御モジュール +- 評価方法 **システムアーキテクチャ** Autowareのシステムアーキテクチャは、次の主要コンポーネントで構成されています。 -* **知覚コンポーネント:** センサーデータを処理して、周囲の環境を認識します。 -* **計画モジュール:** 知覚された環境に基づき、走行経路と制御コマンドを生成します。 -* **制御モジュール:** 計画モジュールから生成されたコマンドに基づいて、車両を制御します。 +- **知覚コンポーネント:** センサーデータを処理して、周囲の環境を認識します。 +- **計画モジュール:** 知覚された環境に基づき、走行経路と制御コマンドを生成します。 +- **制御モジュール:** 計画モジュールから生成されたコマンドに基づいて、車両を制御します。 **知覚コンポーネント** 知覚コンポーネントは、次のタスクを実行します。 -* **物体検出:** 車両、歩行者、障害物を検出します。 -* **車線検出:** 車線を検出します。 -* **自由空間検出:** 車両が移動できる空間を検出します。 +- **物体検出:** 車両、歩行者、障害物を検出します。 +- **車線検出:** 車線を検出します。 +- **自由空間検出:** 車両が移動できる空間を検出します。 **計画モジュール** 計画モジュールは、以下のタスクを実行します。 -* **経路計画:** 安全で効率的な走行経路を生成します。 -* **運動計画:** 車両の速度と加速度を制御します。 -* **軌跡生成:** 車両が経路に従うための詳細な軌跡を生成します。 +- **経路計画:** 安全で効率的な走行経路を生成します。 +- **運動計画:** 車両の速度と加速度を制御します。 +- **軌跡生成:** 車両が経路に従うための詳細な軌跡を生成します。 **制御モジュール** 制御モジュールは、以下のタスクを実行します。 -* **ステアリング制御:** 車両の方向を制御します。 -* **スロットル制御:** 車両の速度を制御します。 -* **ブレーキ制御:** 車両を停止します。 +- **ステアリング制御:** 車両の方向を制御します。 +- **スロットル制御:** 車両の速度を制御します。 +- **ブレーキ制御:** 車両を停止します。 **評価方法** Autowareの性能は、シミュレーションと実車テストの両方を使用して評価されます。評価メトリクスには以下が含まれます。 -* **経路逸脱量:** 計画された経路からの車両の偏差 -* **速度逸脱量:** 計画された速度からの車両の偏差 -* **加速度逸脱量:** 計画された加速度からの車両の偏差 -* **衝突回数:** シミュレーションまたは実車テスト中の車両の衝突数 +- **経路逸脱量:** 計画された経路からの車両の偏差 +- **速度逸脱量:** 計画された速度からの車両の偏差 +- **加速度逸脱量:** 計画された加速度からの車両の偏差 +- **衝突回数:** シミュレーションまたは実車テスト中の車両の衝突数 **追加のドキュメント** -* [Autowareの開発ガイド](https://github.com/autowarefoundation/autoware/blob/master/docs/development_guide.md) -* [Autowareの技術ドキュメント](https://github.com/autowarefoundation/autoware/blob/master/docs/technical_docs.md) +- [Autowareの開発ガイド](https://github.com/autowarefoundation/autoware/blob/master/docs/development_guide.md) +- [Autowareの技術ドキュメント](https://github.com/autowarefoundation/autoware/blob/master/docs/technical_docs.md) -| 名称 | タイプ | 説明 | -| ------------------------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `~/output/pointcloud` | `sensor_msgs/PointCloud2` | 異常値が除去された点群 | -| `~/output/debug/outlier/pointcloud` | `sensor_msgs/PointCloud2` | 異常値として削除された点群 | -| `~/output/debug/low_confidence/pointcloud` | `sensor_msgs/PointCloud2` | 点群マップ内の占有確率が低い点群(ただし、異常値とは見なされない) | -| `~/output/debug/high_confidence/pointcloud` | `sensor_msgs/PointCloud2` | 点群マップ内の占有確率が高い点群 trajectory | +| 名称 | タイプ | 説明 | +| ------------------------------------------- | ------------------------- | ------------------------------------------------------------------ | +| `~/output/pointcloud` | `sensor_msgs/PointCloud2` | 異常値が除去された点群 | +| `~/output/debug/outlier/pointcloud` | `sensor_msgs/PointCloud2` | 異常値として削除された点群 | +| `~/output/debug/low_confidence/pointcloud` | `sensor_msgs/PointCloud2` | 点群マップ内の占有確率が低い点群(ただし、異常値とは見なされない) | +| `~/output/debug/high_confidence/pointcloud` | `sensor_msgs/PointCloud2` | 点群マップ内の占有確率が高い点群 trajectory | ## パラメータ @@ -107,4 +107,3 @@ Autowareの性能は、シミュレーションと実車テストの両方を使 ## (任意)リファレンス/外部リンク ## (任意)将来の拡張/未実装部分 - diff --git a/perception/autoware_probabilistic_occupancy_grid_map/README.md b/perception/autoware_probabilistic_occupancy_grid_map/README.md index 9278d5411f6c..292c210a131e 100644 --- a/perception/autoware_probabilistic_occupancy_grid_map/README.md +++ b/perception/autoware_probabilistic_occupancy_grid_map/README.md @@ -34,7 +34,6 @@ - pointcloud_based_occupancy_grid_map method - ```yaml # downsampled raw and obstacle pointcloud /perception/occupancy_grid_map/obstacle/downsample/pointcloud @@ -47,10 +46,10 @@ ### 特徴 -* 複数のLiDARからのポイントクラウドデータを統合 -* LiDARの視差を補正して、より正確なポイントクラウドを生成 -* ノイズや異常値を除去して、高品質なポイントクラウドを生成 -* `post resampling`を使用して、ポイントクラウドの密度のばらつきを削減 +- 複数のLiDARからのポイントクラウドデータを統合 +- LiDARの視差を補正して、より正確なポイントクラウドを生成 +- ノイズや異常値を除去して、高品質なポイントクラウドを生成 +- `post resampling`を使用して、ポイントクラウドの密度のばらつきを削減 ### 使用法 @@ -64,11 +63,10 @@ `multi_lidar_pointcloud_based_point_cloud`モジュールは、次の出力を生成します。 -* 高品質で濃密なポイントクラウド -* 各LiDARの点の距離逸脱量 -* 各LiDARの点の速度逸脱量 -* 各LiDARの点の加速度逸脱量 - +- 高品質で濃密なポイントクラウド +- 各LiDARの点の距離逸脱量 +- 各LiDARの点の速度逸脱量 +- 各LiDARの点の加速度逸脱量 ```yaml # downsampled raw and obstacle pointcloud @@ -81,7 +79,6 @@ このパッケージは `gtest` を使用するユニットテストを提供します。 以下のコマンドでテストを実行できます。 - ```bash colcon test --packages-select autoware_probabilistic_occupancy_grid_map --event-handlers console_direct+ ``` @@ -92,4 +89,3 @@ colcon test --packages-select autoware_probabilistic_occupancy_grid_map --event- - ユーティリティ関数のユニットテスト - オキュパンシグリッドマップ結合関数のユニットテスト - ポイントクラウドベースオキュパンシグリッドマップの入出力テスト - diff --git a/perception/autoware_radar_crossing_objects_noise_filter/README.md b/perception/autoware_radar_crossing_objects_noise_filter/README.md index 1b51f1c94786..76903192184c 100644 --- a/perception/autoware_radar_crossing_objects_noise_filter/README.md +++ b/perception/autoware_radar_crossing_objects_noise_filter/README.md @@ -30,7 +30,6 @@ ![algorithm](docs/radar_crossing_objects_noise_filter.drawio.svg) - ```cpp // If velocity of an object is rather than the velocity_threshold, // and crossing_yaw is near to vertical @@ -71,4 +70,3 @@ このパラメーターは、フィルタリングする速度のしきい値です。オブジェクトの速度がこのパラメーターより大きい場合、ノイズオブジェクトの候補となります。言い換えると、オブジェクトの速度がこのパラメーターより小さい場合は、フィルタリングされたオブジェクトです。 このパラメーターを小さく設定すると、より多くのオブジェクトがノイズと見なされます。詳細については、アルゴリズムの章を参照してください。 - diff --git a/perception/autoware_radar_fusion_to_detected_object/README.md b/perception/autoware_radar_fusion_to_detected_object/README.md index 93e5fa63bf80..68ab6fb422e3 100644 --- a/perception/autoware_radar_fusion_to_detected_object/README.md +++ b/perception/autoware_radar_fusion_to_detected_object/README.md @@ -77,7 +77,7 @@ LiDAR ベースの検出オブジェクトとレーダー速度のヨーの差 **速度推定におけるトップターゲット値レーダーデータのツイスト係数** レーダーポイントクラウドを使用している場合、ターゲット値は振幅です。レーダーオブジェクトを使用している場合、ターゲット値は確率です。 -### 固定オブジェクト情報の**パラメータ +### 固定オブジェクト情報の\*\*パラメータ - `convert_doppler_to_twist` (bool) - デフォルトパラメータは false です。 @@ -106,7 +106,6 @@ LiDAR ベースの検出オブジェクトとレーダー速度のヨーの差 ### 実行方法 - ```sh ros2 launch autoware_radar_fusion_to_detected_object radar_object_to_detected_object.launch.xml ``` @@ -138,4 +137,3 @@ ros2 launch autoware_radar_fusion_to_detected_object radar_object_to_detected_ob ## radar_scan_fusion_to_detected_objectインターフェイス(未定) 未実装 - diff --git a/perception/autoware_radar_object_clustering/README.md b/perception/autoware_radar_object_clustering/README.md index 7dc2d29eb4f4..e39ca463c212 100644 --- a/perception/autoware_radar_object_clustering/README.md +++ b/perception/autoware_radar_object_clustering/README.md @@ -77,7 +77,6 @@ これらは以下のような `isSameObject` 関数で使用されます。 - ```cpp bool RadarObjectClusteringNode::isSameObject( @@ -123,4 +122,3 @@ trueの場合、クラスタされたオブジェクトのラベルは`fixed_lab `is_fixed_size`は固定サイズのパラメータを使用するフラグです。 trueの場合、クラスタされたオブジェクトのサイズは`size_x`, `size_y`, `size_z`パラメータで設定されたラベルで上書きされます。 - diff --git a/perception/autoware_radar_object_tracker/README.md b/perception/autoware_radar_object_tracker/README.md index 1797f91a5fb0..749724b343fc 100644 --- a/perception/autoware_radar_object_tracker/README.md +++ b/perception/autoware_radar_object_tracker/README.md @@ -25,9 +25,9 @@ ### 入力 -| 名前 | 型 | 説明 | +| 名前 | 型 | 説明 | | ------------- | ------------------------------------------------ | ---------- | -| `~/input` | `autoware_perception_msgs::msg::DetectedObjects` | 検出物体 | +| `~/input` | `autoware_perception_msgs::msg::DetectedObjects` | 検出物体 | | `/vector/map` | `autoware_map_msgs::msg::LaneletMapBin` | 地図データ | ### 出力 @@ -38,19 +38,19 @@ Planning モジュールは、次のような機能を提供します。 -* 感知データからの動的障害物の検出 -* 自車位置に基づく周囲環境のマップ構築 -* 目標速度とステアリングの計算 +- 感知データからの動的障害物の検出 +- 自車位置に基づく周囲環境のマップ構築 +- 目標速度とステアリングの計算 ### Planning アーキテクチャ Planning モジュールは、以下のコンポーネントで構成されています。 -* **Perception:** ダイナミック障害物を検出します。 -* **Map:** 自車位置に基づいて周囲環境のマップを構築します。 -* **Motion Planning:** 目標速度と軌跡を計算します。 -* **Speed Planning:** 目標速度を決定します。 -* **Decision Making:** 感知データとマップ情報を統合し、パスを生成します。 +- **Perception:** ダイナミック障害物を検出します。 +- **Map:** 自車位置に基づいて周囲環境のマップを構築します。 +- **Motion Planning:** 目標速度と軌跡を計算します。 +- **Speed Planning:** 目標速度を決定します。 +- **Decision Making:** 感知データとマップ情報を統合し、パスを生成します。 ### Planning パイプライン @@ -62,7 +62,7 @@ Planning パイプラインは、以下の手順で構成されています。 4. **軌跡生成:** 障害物を回避する軌跡が生成されます。 5. **パス生成:** 軌跡からパスが生成されます。 -| 名前 | タイプ | 説明 | +| 名前 | タイプ | 説明 | | ---------- | ----------------------------------------------- | -------- | | `~/output` | `autoware_perception_msgs::msg::TrackedObjects` | 追跡対象 | @@ -70,27 +70,27 @@ Planning パイプラインは、以下の手順で構成されています。 ### ノードパラメータ -| 名前 | タイプ | デフォルト値 | 説明 | -| ------ | ------ | --------------------------- | --------------------------------------------------------------------------------------------------------------- | -| `publish_rate` | double | 10.0 | 出力メッセージをパブリッシュするレート | -| `world_frame_id` | string | "map" | ワールド座標系のフレームID | -| `enable_delay_compensation` | bool | false | ディレイ補正を有効にするかどうか。`True`に設定すると、出力トピックは`publish_rate`でタイマーによりパブリッシュされます。 | -| `tracking_config_directory` | string | "./config/tracking/" | トラッキング設定ファイルを含むディレクトリ | -| `enable_logging` | bool | false | ロギングを有効にするかどうか | -| `logging_file_path` | string | "/tmp/association_log.json" | ログを書き込むファイルのパス | -| `tracker_lifetime` | double | 1.0 | トラッカーの有効期間(秒) | -| `use_distance_based_noise_filtering` | bool | true | 距離ベースのフィルタリングを使用するかどうか | -| `minimum_range_threshold` | double | 70.0 | フィルタリングの最小距離しきい値(メートル) | -| `use_map_based_noise_filtering` | bool | true | マップベースのフィルタリングを使用するかどうか | -| `max_distance_from_lane` | double | 5.0 | フィルタリングのためのレーンからの最大距離(メートル) | -| `max_angle_diff_from_lane` | double | 0.785398 | フィルタリングのためのレーンからの最大角度差(ラジアン) | -| `max_lateral_velocity` | double | 5.0 | フィルタリングのための最大側方速度(m/s) | -| `can_assign_matrix` | array | | データアソシエーションアルゴリズムで使用される整数配列 | -| `max_dist_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | -| `max_area_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | -| `min_area_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | -| `max_rad_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | -| `min_iou_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | +| 名前 | タイプ | デフォルト値 | 説明 | +| ------------------------------------ | ------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| `publish_rate` | double | 10.0 | 出力メッセージをパブリッシュするレート | +| `world_frame_id` | string | "map" | ワールド座標系のフレームID | +| `enable_delay_compensation` | bool | false | ディレイ補正を有効にするかどうか。`True`に設定すると、出力トピックは`publish_rate`でタイマーによりパブリッシュされます。 | +| `tracking_config_directory` | string | "./config/tracking/" | トラッキング設定ファイルを含むディレクトリ | +| `enable_logging` | bool | false | ロギングを有効にするかどうか | +| `logging_file_path` | string | "/tmp/association_log.json" | ログを書き込むファイルのパス | +| `tracker_lifetime` | double | 1.0 | トラッカーの有効期間(秒) | +| `use_distance_based_noise_filtering` | bool | true | 距離ベースのフィルタリングを使用するかどうか | +| `minimum_range_threshold` | double | 70.0 | フィルタリングの最小距離しきい値(メートル) | +| `use_map_based_noise_filtering` | bool | true | マップベースのフィルタリングを使用するかどうか | +| `max_distance_from_lane` | double | 5.0 | フィルタリングのためのレーンからの最大距離(メートル) | +| `max_angle_diff_from_lane` | double | 0.785398 | フィルタリングのためのレーンからの最大角度差(ラジアン) | +| `max_lateral_velocity` | double | 5.0 | フィルタリングのための最大側方速度(m/s) | +| `can_assign_matrix` | array | | データアソシエーションアルゴリズムで使用される整数配列 | +| `max_dist_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | +| `max_area_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | +| `min_area_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | +| `max_rad_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | +| `min_iou_matrix` | array | | データアソシエーションアルゴリズムで使用されるdouble配列 | ## トラッカーのパラメータ @@ -120,4 +120,3 @@ Planning パイプラインは、以下の手順で構成されています。 ## (省略可) 将来の拡張機能/未実装部分 - diff --git a/perception/autoware_radar_tracks_msgs_converter/README.md b/perception/autoware_radar_tracks_msgs_converter/README.md index c93575c6ebdc..413e0f85910d 100644 --- a/perception/autoware_radar_tracks_msgs_converter/README.md +++ b/perception/autoware_radar_tracks_msgs_converter/README.md @@ -19,15 +19,15 @@ Autoware はレーダーオブジェクト入力データとして [radar_msgs/m ラベル ID は以下のように定義されています。 | | レーダートラック | Autoware | -| ---------- | ---------- | -------- | -| UNKNOWN | 32000 | 0 | -| CAR | 32001 | 1 | -| TRUCK | 32002 | 2 | -| BUS | 32003 | 3 | -| TRAILER | 32004 | 4 | -| MOTORCYCLE | 32005 | 5 | -| BICYCLE | 32006 | 6 | -| PEDESTRIAN | 32007 | 7 | +| ---------- | ---------------- | -------- | +| UNKNOWN | 32000 | 0 | +| CAR | 32001 | 1 | +| TRUCK | 32002 | 2 | +| BUS | 32003 | 3 | +| TRAILER | 32004 | 4 | +| MOTORCYCLE | 32005 | 5 | +| BICYCLE | 32006 | 6 | +| PEDESTRIAN | 32007 | 7 | 追加のベンダー固有分類は、32000 から [radar_msgs/msg/RadarTrack.msg](https://github.com/ros-perception/radar_msgs/blob/ros2/msg/RadarTrack.msg) で許可されています。 Autoware オブジェクト ラベルは [ObjectClassification](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_perception_msgs/msg/ObjectClassification.msg) で定義されています。 @@ -86,4 +86,3 @@ Autoware オブジェクト ラベルは [ObjectClassification](https://github.c このパラメーターはフラグ `is_stationary` を決定するしきい値です。 速度がこのパラメーターよりも低い場合、DetectedObject のフラグ `is_stationary` は `true` に設定され、静的オブジェクトとして扱われます。 - diff --git a/perception/autoware_shape_estimation/README.md b/perception/autoware_shape_estimation/README.md index efcb50a3aac5..922ff29c18b2 100644 --- a/perception/autoware_shape_estimation/README.md +++ b/perception/autoware_shape_estimation/README.md @@ -25,8 +25,8 @@ ### 入力 -| 名称 | タイプ | 説明 | -| --------- | -------------------------------------------------------- | ------------------------------------- | +| 名称 | タイプ | 説明 | +| ------- | -------------------------------------------------------- | ---------------------------------------- | | `input` | `tier4_perception_msgs::msg::DetectedObjectsWithFeature` | ラベル付きクラスタによる検出オブジェクト | ### 出力 @@ -66,8 +66,8 @@ Autowareの自己位置推定Planningモジュールは、自己位置の追従、軌道計画のpost resampling、計画された軌道の修正、計画された軌道の速度逸脱量と加速度逸脱量の計算を含む、自己位置推定Planningの重要なコンポーネントです。このモジュールは、車両の安全で効率的な動作を確実にします。 -| 名前 | タイプ | 説明 | -| ---------------- | ------------------------------------------------ | ----------------------------------- | +| 名前 | タイプ | 説明 | +| ---------------- | ------------------------------------------------ | ------------------------------------------ | | `output/objects` | `autoware_perception_msgs::msg::DetectedObjects` | 洗練された形状を持つ検出されたオブジェクト | ## パラメータ @@ -80,7 +80,7 @@ Autowareの自己位置推定Planningモジュールは、自己位置の追従 MLベースの形状推定アルゴリズムは、バックボーンとしてPointNetモデルを使用して、物体の3Dバウンディングボックスを推定します。このモデルは、車両ラベル(車、トラック、バス、トレーラー)を持つNuScenesデータセットでトレーニングされています。 -実装されたモデルは、入力ポイントクラウドを正規空間に変換するためにSTN(空間変換ネットワーク)と結合され、PointNetを使用して物体の3Dバウンディングボックスを予測します。_RGB-Dデータからの3D物体検出用のFrustum PointNets_論文のバウンディングボックス推定部分が参考として使用されました。 +実装されたモデルは、入力ポイントクラウドを正規空間に変換するためにSTN(空間変換ネットワーク)と結合され、PointNetを使用して物体の3Dバウンディングボックスを予測します。*RGB-Dデータからの3D物体検出用のFrustum PointNets*論文のバウンディングボックス推定部分が参考として使用されました。 このモデルは、各オブジェクトに対して以下の出力を予測します。 @@ -102,7 +102,6 @@ MLベースの形状推定アルゴリズムは、バックボーンとしてPoi **ステップ 2.** conda仮想環境を作成してアクティブにする - ```bash conda create --name train-shape-estimation python=3.8 -y conda activate train-shape-estimation @@ -110,7 +109,6 @@ conda activate train-shape-estimation **手順 3.** PyTorch をインストールする - ```bash conda install pytorch torchvision -c pytorch ``` @@ -119,7 +117,6 @@ conda install pytorch torchvision -c pytorch **手順 1.** MIM を使用して MMEngine、MMCV、および MMDetection をインストールする - ```bash pip install -U openmim mim install mmengine @@ -129,7 +126,6 @@ mim install 'mmdet>=3.0.0rc5, <3.3.0' **ステップ2.** AutowareのMMDetection3Dフォークをインストールする - ```bash git clone https://github.com/autowarefoundation/mmdetection3d.git cd mmdetection3d @@ -144,14 +140,12 @@ pip install -v -e . **ステップ 2**. データセットフォルダーへのシンボリックリンクを作成します - ```bash ln -s /path/to/nuscenes/dataset/ /path/to/mmdetection3d/data/nuscenes/ ``` **ステップ3.** 次のコマンドを実行してNuScenesデータを準備: - ```bash cd mmdetection3d python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes --only-gt-database True @@ -159,14 +153,12 @@ python tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./dat #### クローニング バウンディング ボックス エスティメータ モデル - ```bash git clone https://github.com/autowarefoundation/bbox_estimator.git ``` #### データセットをトレーニングセットと検証セットに分割する - ```bash cd bbox_estimator @@ -177,7 +169,6 @@ python3 utils/split_dbinfos.py --dataset_path /path/to/mmdetection3d/data/nuscen #### モデルの学習 - ```bash # Detailed training options can be found in the training script # For more details, run `python3 train.py --help` @@ -200,9 +191,9 @@ Autoware.Autoのパイプラインの `planning` モジュールでは、予測 予測モデルの性能は、次のような指標を使用して評価できます。 -* **平均絶対誤差(MAE)**: 障害物軌跡の予測値と実際の値との差の平均 -* **平均二乗誤差(MSE)**: 予測値と実際の値との二乗差の平均 -* **相関関係**: 予測値と実際の値との間の相関関係 +- **平均絶対誤差(MAE)**: 障害物軌跡の予測値と実際の値との差の平均 +- **平均二乗誤差(MSE)**: 予測値と実際の値との二乗差の平均 +- **相関関係**: 予測値と実際の値との間の相関関係 ### モデルの展開 @@ -214,7 +205,6 @@ Autoware.Autoのパイプラインの `planning` モジュールでは、予測 展開後、予測モデルはリアルタイムで障害物の軌跡を予測するために使用されます。この情報は、他のモーションプランニングモジュールによって安全な経路を計画するために使用されます。 - ```bash # Convert the trained model to ONNX format python3 onnx_converter.py --weight_path /path/to/best_checkpoint.pth --output_path /path/to/output.onnx @@ -230,7 +220,6 @@ python3 onnx_converter.py --weight_path /path/to/best_checkpoint.pth --output_pa 論文内のL字型フィッティングの実装: - ```bibtex @conference{Zhang-2017-26536, author = {Xiao Zhang and Wenda Xu and Chiyu Dong and John M. Dolan}, @@ -287,7 +276,6 @@ Frustum PointNetsモジュールは、Planningコンポーネントに次の影 Frustum PointNetsは、RGB-Dデータからの3D物体検出に高い精度を実現する強力な手法です。Autowareフレームワークに統合することにより、Planningコンポーネントの障害物検出と軌道計算の能力を向上させることができます。 - ````bibtex @inproceedings{qi2018frustum, title={Frustum pointnets for 3d object detection from rgb-d data}, @@ -299,4 +287,3 @@ year={2018} ```` - diff --git a/perception/autoware_simple_object_merger/README.md b/perception/autoware_simple_object_merger/README.md index a4ab9b21075f..980562b0bc08 100644 --- a/perception/autoware_simple_object_merger/README.md +++ b/perception/autoware_simple_object_merger/README.md @@ -57,7 +57,6 @@ このパラメータは、タイムアウト判定のしきい値です。 `input_topics` の最初のトピックと入力トピックの時差がこのパラメータを超えると、トピックのオブジェクトは出力オブジェクトにマージされません。 - ```cpp for (size_t i = 0; i < input_topic_size; i++) { double time_diff = rclcpp::Time(objects_data_.at(i)->header.stamp).seconds() - @@ -74,7 +73,6 @@ このパラメータは、入力トピックの名前です。 たとえば、このパッケージをレーダーオブジェクトに使用する場合、 - ```yaml input_topics: [ @@ -89,4 +87,3 @@ input_topics: config yaml ファイル内で設定できます。 現時点では、時間差は `input_topics` の最初のトピックと入力トピック間のヘッダー時間で計算されるため、検出する最も重要なオブジェクトは `input_topics` リストの最初の部分に設定する必要があります。 - diff --git a/perception/autoware_tensorrt_classifier/README.md b/perception/autoware_tensorrt_classifier/README.md index 3348e9e2543c..48c3065cb57a 100644 --- a/perception/autoware_tensorrt_classifier/README.md +++ b/perception/autoware_tensorrt_classifier/README.md @@ -3,4 +3,3 @@ ## 目的 このパッケージは TensorRT を利用して任意のカテゴリの分類を実施し、高効率・高速推論を実現します。具体的には、組み込みプラットフォームの効率的な推論のための前処理を最適化します。さらに、GPU と DLA での動的バッチ推論をサポートします。 - diff --git a/perception/autoware_tensorrt_common/README.md b/perception/autoware_tensorrt_common/README.md index 61c7f590874b..1608ec4370b4 100644 --- a/perception/autoware_tensorrt_common/README.md +++ b/perception/autoware_tensorrt_common/README.md @@ -4,4 +4,3 @@ このパッケージには、TensorRT に関連する共通関数のライブラリが含まれています。 このパッケージには、TensorRT エンジンの処理や、量子化に使用される較正アルゴリズムの関数が含まれます。 - diff --git a/perception/autoware_tensorrt_yolox/README.md b/perception/autoware_tensorrt_yolox/README.md index 8d2468172dde..04f6affb0df2 100644 --- a/perception/autoware_tensorrt_yolox/README.md +++ b/perception/autoware_tensorrt_yolox/README.md @@ -16,8 +16,8 @@ ### 入力 -| 名称 | 型 | 説明 | -| ---------- | ------------------- | --------------- | +| 名称 | 型 | 説明 | +| ---------- | ------------------- | -------- | | `in/image` | `sensor_msgs/Image` | 入力画像 | ### 出力 @@ -28,39 +28,39 @@ Autowareは、オープンソース自動運転ソフトウェアスタックで **Planningコンポーネント** -* **Path Planning:** 目的地までの経路を生成します。 -* **Speed Planning:** 経路上の最適速度プロファイルを作成します。 -* **Trajectory Planning:** 経路と速度プロファイルを組み合わせた、車両の軌跡を生成します。 +- **Path Planning:** 目的地までの経路を生成します。 +- **Speed Planning:** 経路上の最適速度プロファイルを作成します。 +- **Trajectory Planning:** 経路と速度プロファイルを組み合わせた、車両の軌跡を生成します。 **Perceptionコンポーネント** -* **Localization:** 自車位置と周囲環境の地図を特定します。 -* **Object Detection:** 周囲の車両、歩行者、障害物を検出します。 -* **Obstacle Tracking:** 時間とともに動いている物体を追跡します。 +- **Localization:** 自車位置と周囲環境の地図を特定します。 +- **Object Detection:** 周囲の車両、歩行者、障害物を検出します。 +- **Obstacle Tracking:** 時間とともに動いている物体を追跡します。 **Controlコンポーネント** -* **Longitudinal Control:** 車両の速度を制御します。 -* **Lateral Control:** 車両の向きを制御します。 -* **Model Predictive Control (MPC):** 車両の挙動を予測し、最適な制御入力を決定します。 +- **Longitudinal Control:** 車両の速度を制御します。 +- **Lateral Control:** 車両の向きを制御します。 +- **Model Predictive Control (MPC):** 車両の挙動を予測し、最適な制御入力を決定します。 **Drivingポリシー** -* **Lane Keeping Assist:** 車両が車線内を維持するのに役立ちます。 -* **Adaptive Cruise Control:** 前方車両との安全な間隔を維持します。 -* **Collision Avoidance:** 衝突の可能性を検出し、回避策を実行します。 +- **Lane Keeping Assist:** 車両が車線内を維持するのに役立ちます。 +- **Adaptive Cruise Control:** 前方車両との安全な間隔を維持します。 +- **Collision Avoidance:** 衝突の可能性を検出し、回避策を実行します。 **安全機能** -* **Velocity Violation Check:** `post resampling`による速度逸脱量を確認します。 -* **Acceleration Violation Check:** 加速度逸脱量を確認します。 -* **Obstacle Proximity Check:** 障害物との近接性を監視します。 +- **Velocity Violation Check:** `post resampling`による速度逸脱量を確認します。 +- **Acceleration Violation Check:** 加速度逸脱量を確認します。 +- **Obstacle Proximity Check:** 障害物との近接性を監視します。 -| 名称 | タイプ | 説明 | -| ---------------- | ----------------------------------------------------- | -------------------------------------------------------------------- | -| `out/objects` | `tier4_perception_msgs/DetectedObjectsWithFeature` | 2Dバウンディングボックス付きの検出オブジェクト | -| `out/image` | `sensor_msgs/Image` | 視覚化のための2Dバウンディングボックス付きのイメージ | -| `out/mask` | `sensor_msgs/Image` | セマンティックセグメンテーションマスク | +| 名称 | タイプ | 説明 | +| ---------------- | -------------------------------------------------- | -------------------------------------------------------------------- | +| `out/objects` | `tier4_perception_msgs/DetectedObjectsWithFeature` | 2Dバウンディングボックス付きの検出オブジェクト | +| `out/image` | `sensor_msgs/Image` | 視覚化のための2Dバウンディングボックス付きのイメージ | +| `out/mask` | `sensor_msgs/Image` | セマンティックセグメンテーションマスク | | `out/color_mask` | `sensor_msgs/Image` | 視覚化のためのセマンティックセグメンテーションマスクの色付けイメージ | ## パラメータ @@ -84,23 +84,23 @@ Autowareは、オープンソース自動運転ソフトウェアスタックで セマンティックセグメンテーションマスクは、各ピクセルが次のクラスのいずれかのインデックスであるグレースケール画像です。 | インデックス | シマンティック名 | -|---|---| -| 0 | 道路 | -| 1 | 建物 | -| 2 | 壁 | -| 3 | 障害物 | -| 4 | 交通信号 | -| 5 | 交通標識 | -| 6 | 歩行者 | -| 7 | 車両 | -| 8 | 自転車 | -| 9 | 道路 | -| 10 | 歩道 | -| 11 | 道路ペイント | -| 12 | 側石 | -| 13 | 交差点(その他) | -| 14 | 草木 | -| 15 | 空 | +| ------------ | ---------------- | +| 0 | 道路 | +| 1 | 建物 | +| 2 | 壁 | +| 3 | 障害物 | +| 4 | 交通信号 | +| 5 | 交通標識 | +| 6 | 歩行者 | +| 7 | 車両 | +| 8 | 自転車 | +| 9 | 道路 | +| 10 | 歩道 | +| 11 | 道路ペイント | +| 12 | 側石 | +| 13 | 交差点(その他) | +| 14 | 草木 | +| 15 | 空 | ## Onnxモデル @@ -140,8 +140,6 @@ PyTorchの`pth`フォーマットで保存されたユーザー独自のモデ 1. 依存関係をインストール - - ```shell git clone git@github.com:Megvii-BaseDetection/YOLOX.git cd YOLOX @@ -150,7 +148,6 @@ PyTorchの`pth`フォーマットで保存されたユーザー独自のモデ 2. pth を ONNX に変換する - ```shell python3 tools/export_onnx.py \ --output-name YOUR_YOLOX.onnx \ @@ -162,7 +159,6 @@ PyTorchの`pth`フォーマットで保存されたユーザー独自のモデ 1. 依存関係のインストール - ```shell git clone git@github.com:Megvii-BaseDetection/YOLOX.git cd YOLOX @@ -172,7 +168,6 @@ PyTorchの`pth`フォーマットで保存されたユーザー独自のモデ 2. pth を ONNX に変換する - ```shell python3 tools/export_onnx.py \ --output-name YOUR_YOLOX.onnx \ @@ -183,7 +178,6 @@ PyTorchの`pth`フォーマットで保存されたユーザー独自のモデ 3. YOLOX の最後に `EfficientNMS_TRT` を埋め込む - ```shell yolox_onnx_modifier YOUR_YOLOX.onnx -o YOUR_YOLOX_WITH_NMS.onnx ``` @@ -200,4 +194,3 @@ env準備プロセスの際に、サンプルラベルファイル(`label.txt` - - - - diff --git a/perception/autoware_tracking_object_merger/README.md b/perception/autoware_tracking_object_merger/README.md index 34f6cd4d0713..478e02cd37b7 100644 --- a/perception/autoware_tracking_object_merger/README.md +++ b/perception/autoware_tracking_object_merger/README.md @@ -46,11 +46,11 @@ トラックレットの入力センサー状態に応じて、異なるルールでトラックレット状態を更新します。 -| ステート/優先度 | 1番目 | 2番目 | 3番目 | -| -------------------------- | ------ | ----- | ------ | -| キネマティクス(速度以外) | LiDAR | レーダー | カメラ | -| 前方速度 | レーダー | LiDAR | カメラ | -| オブジェクト分類 | カメラ | LiDAR | レーダー | +| ステート/優先度 | 1番目 | 2番目 | 3番目 | +| -------------------------- | -------- | -------- | -------- | +| キネマティクス(速度以外) | LiDAR | レーダー | カメラ | +| 前方速度 | レーダー | LiDAR | カメラ | +| オブジェクト分類 | カメラ | LiDAR | レーダー | #### トラックレットマネジメント @@ -66,7 +66,6 @@ これらのパラメーターは`config/decorative_tracker_merger.param.yaml`で設定できます。 - ```yaml tracker_state_parameter: remove_probability_threshold: 0.3 @@ -80,23 +79,23 @@ tracker_state_parameter: #### 入力/パラメータ -| トピック名 | メッセージタイプ | 説明 | -| ------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------- | +| トピック名 | メッセージタイプ | 説明 | +| ------------------------------- | ------------------------------------------ | ---------------------------------------------------------------------- | | `~input/main_object` | `autoware_perception_msgs::TrackedObjects` | 主要な追跡対象。この主要な対象のスタンプで出力がパブリッシュされます。 | -| `~input/sub_object` | `autoware_perception_msgs::TrackedObjects` | サブ追跡対象。 | -| `output/object` | `autoware_perception_msgs::TrackedObjects` | マージされた追跡対象。 | -| `debug/interpolated_sub_object` | `autoware_perception_msgs::TrackedObjects` | 補間されたサブ追跡対象。 | +| `~input/sub_object` | `autoware_perception_msgs::TrackedObjects` | サブ追跡対象。 | +| `output/object` | `autoware_perception_msgs::TrackedObjects` | マージされた追跡対象。 | +| `debug/interpolated_sub_object` | `autoware_perception_msgs::TrackedObjects` | 補間されたサブ追跡対象。 | デフォルトパラメータは [config/decorative_tracker_merger.param.yaml](./config/decorative_tracker_merger.param.yaml) に設定されています。 -| パラメーター名 | 説明 | デフォルト値 | -| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | -| `base_link_frame_id` | ベースリンクフレームID。追跡対象の変換に使用されます。 | "base_link" | -| `time_sync_threshold` | 時間同期しきい値。2つの追跡対象の差が小さければ、それらは同一対象とみなされます。 | 0.05 | -| `sub_object_timeout_sec` | サブオブジェクトタイムアウト。サブオブジェクトがこの時間更新されなければ、存在しないとみなされます。 | 0.5 | -| `main_sensor_type` | メインセンサータイプ。主な追跡対象を判別するために使用します。 | "lidar" | -| `sub_sensor_type` | サブセンサータイプ。サブ追跡対象を判別するために使用します。 | "radar" | -| `tracker_state_parameter` | トラッカー状態パラメーター。トラッキングに使用されます。 | | +| パラメーター名 | 説明 | デフォルト値 | +| ------------------------- | ---------------------------------------------------------------------------------------------------- | ------------ | +| `base_link_frame_id` | ベースリンクフレームID。追跡対象の変換に使用されます。 | "base_link" | +| `time_sync_threshold` | 時間同期しきい値。2つの追跡対象の差が小さければ、それらは同一対象とみなされます。 | 0.05 | +| `sub_object_timeout_sec` | サブオブジェクトタイムアウト。サブオブジェクトがこの時間更新されなければ、存在しないとみなされます。 | 0.5 | +| `main_sensor_type` | メインセンサータイプ。主な追跡対象を判別するために使用します。 | "lidar" | +| `sub_sensor_type` | サブセンサータイプ。サブ追跡対象を判別するために使用します。 | "radar" | +| `tracker_state_parameter` | トラッカー状態パラメーター。トラッキングに使用されます。 | | - `tracker_state_parameter` の詳細については、[Tracklet Management](#tracklet-management) で説明しています。 @@ -113,4 +112,3 @@ tracker_state_parameter: ### equivalent_tracker_merger これは今後の予定です。 - diff --git a/perception/autoware_traffic_light_arbiter/README.md b/perception/autoware_traffic_light_arbiter/README.md index 95257ff1727e..35f05a731047 100644 --- a/perception/autoware_traffic_light_arbiter/README.md +++ b/perception/autoware_traffic_light_arbiter/README.md @@ -13,27 +13,28 @@ `enable_signal_matching` が true に設定されている場合、このノードは認識信号と外部信号の一致を検証します。 以下の表は、認識信号(列)の特定の色が外部信号(行)の色と交差したときに、どのような色の組み合わせで一致のプロセスがアウトプットを決定するかを概説しています。各セルは、認識信号の特定の色(列)と外部信号の色(行)が交差したときの結果を表しています。 -| 外部知覚 | 赤信号 | 黄信号 | 緑信号 | 未知 | 受信なし | -|---|---|---|---|---|---| -| 赤信号 | 赤信号 | 未知 | 未知 | 未知 | 未知 | -| 黄信号 | 未知 | 黄信号 | 未知 | 未知 | 未知 | -| 緑信号 | 未知 | 未知 | 緑信号 | 未知 | 未知 | -| 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | -| 受信なし | 未知 | 未知 | 未知 | 未知 | 未知 | +| 外部知覚 | 赤信号 | 黄信号 | 緑信号 | 未知 | 受信なし | +| -------- | ------ | ------ | ------ | ---- | -------- | +| 赤信号 | 赤信号 | 未知 | 未知 | 未知 | 未知 | +| 黄信号 | 未知 | 黄信号 | 未知 | 未知 | 未知 | +| 緑信号 | 未知 | 未知 | 緑信号 | 未知 | 未知 | +| 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | +| 受信なし | 未知 | 未知 | 未知 | 未知 | 未知 | ### 入力/出力 #### 入力 -| 名称 | タイプ | 説明 | -| -------------------------------- | ------------------------- | -------------------------------------------------------------- | -| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | 有効な信号 ID を取得するためのベクターマップ | -| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | 画像認識パイプラインからの信号 | -| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | 外部システムからの信号 | +| 名称 | タイプ | 説明 | +| -------------------------------- | ----------------------------------------------------- | -------------------------------------------- | +| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | 有効な信号 ID を取得するためのベクターマップ | +| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | 画像認識パイプラインからの信号 | +| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | 外部システムからの信号 | #### 出力 autoware ナビゲーションモジュールは、以下を含む自動運転ソフトウェアの主要コンポーネントです。 + - Planning - Perception - Control @@ -43,6 +44,7 @@ autoware ナビゲーションモジュールは、以下を含む自動運転 #### Planningモジュール Planningモジュールは、車両の経路と速度計画を作成します。センサーデータ、地図データ、自車位置に基づいて、モジュールは以下を行います。 + - 衝突回避パス計画 - 交通規則遵守 - 速度制御 @@ -50,6 +52,7 @@ Planningモジュールは、車両の経路と速度計画を作成します。 #### Perceptionモジュール Perceptionモジュールは、周囲環境を解釈します。センサーデータを使用して、モジュールは以下を行います。 + - 物体検出と分類 - 路面状況認識 - 静止物と動的物体の識別 @@ -57,6 +60,7 @@ Perceptionモジュールは、周囲環境を解釈します。センサーデ #### Controlモジュール Controlモジュールは、Planningモジュールからのコマンドに基づいて、車両を操作します。モジュールは、以下の制御入力を生成します。 + - ステアリング制御 - 加速度/減速度制御 - 変速制御 @@ -64,23 +68,23 @@ Controlモジュールは、Planningモジュールからのコマンドに基 #### その他の重要なコンポーネント Planning、Perception、Controlモジュールの他に、autowareには以下のような重要なコンポーネントも含まれます。 + - **Decision Making**:車両の動作を決定する高レベルコントローラー - **Localization**:車両の位置を特定するシステム - **Sensor Fusion**:さまざまなセンサーからのデータを統合するモジュール - **Communication**:他の車両、インフラストラクチャ、交通機関の管理システムとのデータをやり取りするインターフェイス -| 名前 | タイプ | 説明 | -| --------------------- | ----------------------------------------------------- | --------------------------- | +| 名前 | タイプ | 説明 | +| --------------------- | ----------------------------------------------------- | ------------------------ | | ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | 統合された信号機の状態。 | ## パラメータ ### コアパラメータ -| 名称 | 型 | デフォルト値 | 説明 | -| -------------------------- | ---------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------- | -| `external_time_tolerance` | double | 5.0 | 外部メッセージがマージに有効と見なされる秒数 | -| `perception_time_tolerance` | double | 1.0 | Perceptionメッセージがマージに有効と見なされる秒数 | -| `external_priority` | bool | false | 外部のシグナルがPerceptionベースのシグナルより優先されるかどうか。falseの場合、マージは基準として信頼性を使用する | -| `enable_signal_matching` | bool | false | Perceptionシグナルと外部シグナルの一致を検証するかどうか。trueに設定した場合、色が一致していることを確認し、一致する場合のみ公開する | - +| 名称 | 型 | デフォルト値 | 説明 | +| --------------------------- | ------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `external_time_tolerance` | double | 5.0 | 外部メッセージがマージに有効と見なされる秒数 | +| `perception_time_tolerance` | double | 1.0 | Perceptionメッセージがマージに有効と見なされる秒数 | +| `external_priority` | bool | false | 外部のシグナルがPerceptionベースのシグナルより優先されるかどうか。falseの場合、マージは基準として信頼性を使用する | +| `enable_signal_matching` | bool | false | Perceptionシグナルと外部シグナルの一致を検証するかどうか。trueに設定した場合、色が一致していることを確認し、一致する場合のみ公開する | diff --git a/perception/autoware_traffic_light_classifier/README.md b/perception/autoware_traffic_light_classifier/README.md index 1a2767cbb106..f13bc7517580 100644 --- a/perception/autoware_traffic_light_classifier/README.md +++ b/perception/autoware_traffic_light_classifier/README.md @@ -18,64 +18,64 @@ traffic_light_classifierは、交通信号機の周囲をトリミングした **モジュール** -* **Local Planning** - * 自車位置の追跡 - * 障害物検出 - * 経路生成 - * 'post resampling' 軌跡生成 -* **Behavior Planning** - * 経路追従制御 - * 速度計画 - * 車線維持 -* **Path Planning** - * ダイナミック経路生成 - * 障害物回避 +- **Local Planning** + - 自車位置の追跡 + - 障害物検出 + - 経路生成 + - 'post resampling' 軌跡生成 +- **Behavior Planning** + - 経路追従制御 + - 速度計画 + - 車線維持 +- **Path Planning** + - ダイナミック経路生成 + - 障害物回避 **センシングコンポーネント** -* **LiDAR** - * 3D نقطه群データの取得 - * 障害物検出 -* **カメラ** - * 視覚データの取得 - * レーンマーカー検出 - * 交通標識認識 -* **IMU (慣性計測装置)** - * 加速度や角速度の測定 - * 自車位置の推定 +- **LiDAR** + - 3D نقطه群データの取得 + - 障害物検出 +- **カメラ** + - 視覚データの取得 + - レーンマーカー検出 + - 交通標識認識 +- **IMU (慣性計測装置)** + - 加速度や角速度の測定 + - 自車位置の推定 **制御コンポーネント** -* **Longitudinal Controller** - * 車両速度の制御 - * 加速度逸脱量を最小化 -* **Lateral Controller** - * 車両ヨーの制御 - * 車線逸脱量を最小化 +- **Longitudinal Controller** + - 車両速度の制御 + - 加速度逸脱量を最小化 +- **Lateral Controller** + - 車両ヨーの制御 + - 車線逸脱量を最小化 **Autoware** Autoware は自動運転ソフトウェアのオープンソースプラットフォームです。主要なモジュールには以下が含まれます。 -* **Perception** - * センサーデータの処理と融合 - * 障害物認識と分類 -* **Fusion** - * ローカライゼーション、マッピング、トラッキング - * 環境の動的モデルの構築 -* **Control** - * 車両の制御とガイダンス - * PATH と BEHAVIOR Planner の実装 +- **Perception** + - センサーデータの処理と融合 + - 障害物認識と分類 +- **Fusion** + - ローカライゼーション、マッピング、トラッキング + - 環境の動的モデルの構築 +- **Control** + - 車両の制御とガイダンス + - PATH と BEHAVIOR Planner の実装 **評価方法** -* **シミュレーションパフォーマンス** - * レーン逸脱量、クラッシュ回避数 -* **実世界パフォーマンス** - * テスト走行における速度逸脱量、加減速逸脱量 -* **主要性能指標 (KPI)** - * 時間あたりの走行距離 - * 介入率 +- **シミュレーションパフォーマンス** + - レーン逸脱量、クラッシュ回避数 +- **実世界パフォーマンス** + - テスト走行における速度逸脱量、加減速逸脱量 +- **主要性能指標 (KPI)** + - 時間あたりの走行距離 + - 介入率 ### hsv_classifier @@ -96,9 +96,9 @@ Autoware は自動運転ソフトウェアのオープンソースプラット ### 入力 -| Name | Type | Description | -| --------------- | ------------------------------------------------------- | ---------------------- | -| `~/input/image` | `sensor_msgs::msg::Image` | 入力画像 | +| Name | Type | Description | +| --------------- | -------------------------------------------------- | ----------- | +| `~/input/image` | `sensor_msgs::msg::Image` | 入力画像 | | `~/input/rois` | `tier4_perception_msgs::msg::TrafficLightRoiArray` | 信号機のroi | ### 出力 @@ -108,8 +108,9 @@ Autoware は自動運転ソフトウェアのオープンソースプラット #### Planningのアルゴリズム Planningは、複数のPlanningモジュールで構成されています。 -* **TrajectoryGenerator** プランニング可能な軌道を生成します。 -* **Planner** 軌道の評価および最適化を実施します。 + +- **TrajectoryGenerator** プランニング可能な軌道を生成します。 +- **Planner** 軌道の評価および最適化を実施します。 #### モデル予測制御 (MPC) @@ -127,9 +128,9 @@ MPCのアルゴリズムは次の手順で行われます: Planningでは、MPCを使用して、以下のタスクを実行します: -* **経路追従:** 目標経路に沿った軌道を生成します。 -* **障害物回避:** 障害物を回避するための軌道を生成します。 -* **速度制御:** 目標速度を維持するための制御入力を計算します。 +- **経路追従:** 目標経路に沿った軌道を生成します。 +- **障害物回避:** 障害物を回避するための軌道を生成します。 +- **速度制御:** 目標速度を維持するための制御入力を計算します。 MPCのPlanningにおける主要な利点は、他の車両や障害物などの障害物を考慮して、将来のシステム挙動を予測できることです。これにより、Planningはリアルタイムで安全かつ効率的な軌道を作成できます。 @@ -137,42 +138,42 @@ MPCのPlanningにおける主要な利点は、他の車両や障害物などの MPCのAutowareにおける実装では、以下を使用しています: -* **コスト関数:** 位置逸脱量、速度逸脱量、加速度逸脱量の最小化 -* **最適化器:** 'post resampling`を備えたquadprog -* **制御入力:** ステアリング角、加速度 +- **コスト関数:** 位置逸脱量、速度逸脱量、加速度逸脱量の最小化 +- **最適化器:** 'post resampling`を備えたquadprog +- **制御入力:** ステアリング角、加速度 #### 参考資料 -* [Autoware Foundation Planning](https://github.com/autowarefoundation/autoware.auto/tree/master/ros/autoware/core/planning_with_mpc) -* [Model Predictive Control Theory and Design](https://link.springer.com/book/10.1007/978-0-89838-330-2) +- [Autoware Foundation Planning](https://github.com/autowarefoundation/autoware.auto/tree/master/ros/autoware/core/planning_with_mpc) +- [Model Predictive Control Theory and Design](https://link.springer.com/book/10.1007/978-0-89838-330-2) -| 名前 | 種類 | 説明 | -|---|---|---| -| `~/output/traffic_signals` | `tier4_perception_msgs::msg::TrafficLightArray` | 分類済み信号 | -| `~/output/debug/image` | `sensor_msgs::msg::Image` | デバッグ用画像 | +| 名前 | 種類 | 説明 | +| -------------------------- | ----------------------------------------------- | -------------- | +| `~/output/traffic_signals` | `tier4_perception_msgs::msg::TrafficLightArray` | 分類済み信号 | +| `~/output/debug/image` | `sensor_msgs::msg::Image` | デバッグ用画像 | ## パラメータ ### ノードパラメータ -| 名前 | タイプ | 説明 | -|---|---|---| -| `classifier_type` | int | 値が `1` の場合、cnn_classifier が使用されます。 | -| `data_path` | str | packages データおよびアーティファクトのディレクトリパス | -| `backlight_threshold` | float | 強度がこの値を超えた場合、対応する RoI で UNKNOWN で上書きします。この値がはるかに大きい場合、ノードは過酷な逆光状況でのみ上書きするということに注意してください。したがって、この機能を使用しない場合は、この値を `1.0` に設定してください。この値は `[0.0, 1.0]` にできます。上書きされた信号の信頼性は `0.0` に設定されます。 | +| 名前 | タイプ | 説明 | +| --------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `classifier_type` | int | 値が `1` の場合、cnn_classifier が使用されます。 | +| `data_path` | str | packages データおよびアーティファクトのディレクトリパス | +| `backlight_threshold` | float | 強度がこの値を超えた場合、対応する RoI で UNKNOWN で上書きします。この値がはるかに大きい場合、ノードは過酷な逆光状況でのみ上書きするということに注意してください。したがって、この機能を使用しない場合は、この値を `1.0` に設定してください。この値は `[0.0, 1.0]` にできます。上書きされた信号の信頼性は `0.0` に設定されます。 | ### コアパラメータ #### cnn_classifier -| 名称 | タイプ | 説明 | -| ----------------------- | --------------- | ------------------------------------ | -| `classifier_label_path` | str | モデルファイルのパス | -| `classifier_model_path` | str | ラベルファイルのパス | +| 名称 | タイプ | 説明 | +| ----------------------- | --------------- | -------------------------------- | +| `classifier_label_path` | str | モデルファイルのパス | +| `classifier_model_path` | str | ラベルファイルのパス | | `classifier_precision` | str | TensorRT精度、`fp16`または`int8` | -| `classifier_mean` | vector\ | 3チャネル入力画像の平均 | -| `classifier_std` | vector\ | 3チャネル入力画像の標準偏差 | -| `apply_softmax` | bool | ソフトマックスを適用するかどうか | +| `classifier_mean` | vector\ | 3チャネル入力画像の平均 | +| `classifier_std` | vector\ | 3チャネル入力画像の標準偏差 | +| `apply_softmax` | bool | ソフトマックスを適用するかどうか | #### hsv_classifier @@ -184,20 +185,20 @@ MPCのAutowareにおける実装では、以下を使用しています: **入力:** -* `PointCloud`: 障害物のPointCloudデータ -* `CameraInfo`: カメラの内部および外部パラメータ +- `PointCloud`: 障害物のPointCloudデータ +- `CameraInfo`: カメラの内部および外部パラメータ **出力:** -* `ClassifiedPointCloud`: HSV色相に基づいて分類された障害物のPointCloudデータ +- `ClassifiedPointCloud`: HSV色相に基づいて分類された障害物のPointCloudデータ ### パラメータ -| パラメータ | 説明 | デフォルト値 | -|---|---|---| -| `hue_threshold`: HSV色相の閾値 (度) | 30 | -| `saturation_threshold`: HSV彩度の閾値 | 0.1 | -| `value_threshold`: HSV明度の閾値 | 0.1 | +| パラメータ | 説明 | デフォルト値 | +| ------------------------------------------------------------------- | ---- | ------------ | +| `hue_threshold`: HSV色相の閾値 (度) | 30 | +| `saturation_threshold`: HSV彩度の閾値 | 0.1 | +| `value_threshold`: HSV明度の閾値 | 0.1 | | `post resampling`: ポストリサンプリングフィルターを使用するかどうか | True | ### アルゴリズム @@ -206,30 +207,30 @@ MPCのAutowareにおける実装では、以下を使用しています: ### 注意事項 -* この分類器は単一のカメラからのデータだけを使用することに注意してください。より堅牢な障害物検出を行うには、複数のカメラからのデータを使用する必要があります。 -* パラメータは特定のシーンやライティング条件に応じて調整する必要があります。 -* この分類器は、距離情報を使用しません。そのため、障害物が自車位置に近いか遠いかを区別できません。 - -| 名 | 型 | 説明 | -|---|---|---| -| `green_min_h` | int | 緑色の最小色相 | -| `green_min_s` | int | 緑色の最小彩度 | -| `green_min_v` | int | 緑色の最小明度 | -| `green_max_h` | int | 緑色の最大色相 | -| `green_max_s` | int | 緑色の最大彩度 | -| `green_max_v` | int | 緑色の最大明度 | +- この分類器は単一のカメラからのデータだけを使用することに注意してください。より堅牢な障害物検出を行うには、複数のカメラからのデータを使用する必要があります。 +- パラメータは特定のシーンやライティング条件に応じて調整する必要があります。 +- この分類器は、距離情報を使用しません。そのため、障害物が自車位置に近いか遠いかを区別できません。 + +| 名 | 型 | 説明 | +| -------------- | --- | -------------- | +| `green_min_h` | int | 緑色の最小色相 | +| `green_min_s` | int | 緑色の最小彩度 | +| `green_min_v` | int | 緑色の最小明度 | +| `green_max_h` | int | 緑色の最大色相 | +| `green_max_s` | int | 緑色の最大彩度 | +| `green_max_v` | int | 緑色の最大明度 | | `yellow_min_h` | int | 黄色の最小色相 | | `yellow_min_s` | int | 黄色の最小彩度 | | `yellow_min_v` | int | 黄色の最小明度 | | `yellow_max_h` | int | 黄色の最大色相 | | `yellow_max_s` | int | 黄色の最大彩度 | | `yellow_max_v` | int | 黄色の最大明度 | -| `red_min_h` | int | 赤色の最小色相 | -| `red_min_s` | int | 赤色の最小彩度 | -| `red_min_v` | int | 赤色の最小明度 | -| `red_max_h` | int | 赤色の最大色相 | -| `red_max_s` | int | 赤色の最大彩度 | -| `red_max_v` | int | 赤色の最大明度 | +| `red_min_h` | int | 赤色の最小色相 | +| `red_min_s` | int | 赤色の最小彩度 | +| `red_min_v` | int | 赤色の最小明度 | +| `red_max_h` | int | 赤色の最大色相 | +| `red_max_s` | int | 赤色の最大彩度 | +| `red_max_v` | int | 赤色の最大明度 | ## 交通信号機分類器モデルのトレーニング @@ -247,7 +248,6 @@ Autoware は交通信号機の分類のためのトレーニング手順を示 交通信号機分類器をトレーニングするには、各サブフォルダーが異なるクラスを表す、構造化されたサブフォルダー形式を採用します。以下に示すのは、データセット構造の例です。 - ```python DATASET_ROOT ├── TRAIN @@ -287,7 +287,6 @@ DATASET_ROOT **ステップ 2.** conda仮想環境を作成してアクティベートします - ```bash conda create --name tl-classifier python=3.8 -y conda activate tl-classifier @@ -297,7 +296,6 @@ conda activate tl-classifier CUDA 11.6と互換性のあるPyTorchをインストールしてください。これは、現在のAutowareの要件です。 - ```bash conda install pytorch==1.13.1 torchvision==0.14.1 pytorch-cuda=11.6 -c pytorch -c nvidia ``` @@ -306,7 +304,6 @@ conda install pytorch==1.13.1 torchvision==0.14.1 pytorch-cuda=11.6 -c pytorch - **手順 1.** mmpretrain をソースからインストール - ```bash cd ~/ git clone https://github.com/open-mmlab/mmpretrain.git @@ -325,14 +322,12 @@ MMPretrainは構成ファイルによって制御されるトレーニングス `configs`フォルダ内で使用するモデルの構成ファイルを作成します。 - ```bash touch ~/mmpretrain/configs/mobilenet_v2/mobilenet-v2_8xb32_custom.py ``` 好みのテキストエディターでコンフィグレーションファイルを開き、提供されたコンテンツのコピーを作成してください。データセットのパスに合わせて **data_root** 変数を調整します。モデル、データセット、スケジューラーのコンフィグレーションパラメーターは、好みに合わせてカスタマイズできます。 - ```python # Inherit model, schedule and default_runtime from base model _base_ = [ @@ -422,7 +417,6 @@ test_evaluator = val_evaluator #### トレーニングの開始 - ```bash cd ~/mmpretrain python tools/train.py configs/mobilenet_v2/mobilenet-v2_8xb32_custom.py @@ -437,7 +431,6 @@ python tools/train.py configs/mobilenet_v2/mobilenet-v2_8xb32_custom.py 「mmdeploy」ツールセットは、トレーニングされたモデルをさまざまなターゲットデバイスにデプロイするように設計されています。 その機能により、PyTorchモデルをONNX形式にシームレスに変換できます。 - ```bash # Activate your conda environment conda activate tl-classifier @@ -461,7 +454,6 @@ git clone -b main https://github.com/open-mmlab/mmdeploy.git #### PyTorchモデルをONNXモデルに変換する - ```bash cd ~/mmdeploy @@ -530,4 +522,3 @@ ONNXモデルを入手したら、起動ファイルで定義されているパ 現在、このパッケージはチャタリング障害物を適切に処理できません。知覚レイヤーに確率フィルタを追加して改善する予定です。 また、グローバルにすべきパラメータがいくつかあります(例:車両サイズ、最大ステアリングなど)。これらはリファクタリングされてグローバルパラメータとして定義されるため、異なるノード間で同じパラメータを共有できます。 --> - diff --git a/perception/autoware_traffic_light_fine_detector/README.md b/perception/autoware_traffic_light_fine_detector/README.md index 50c51c9d3c7d..ea1a20ade4cd 100644 --- a/perception/autoware_traffic_light_fine_detector/README.md +++ b/perception/autoware_traffic_light_fine_detector/README.md @@ -26,11 +26,11 @@ YoloX-sを利用した交通信号灯検出用パッケージです。 ### 入力 -| 名前 | 型 | 説明 | -| ----------- | ------------------------------------------------- | --------------------------------------------------------------- | -| `~/input/image` | `sensor_msgs/Image` | フルサイズカメラ画像 | -| `~/input/rois` | `tier4_perception_msgs::msg::TrafficLightRoiArray` | map_based_detectorで検出されたROIの配列 | -| `~/expect/rois` | `tier4_perception_msgs::msg::TrafficLightRoiArray` | オフセットのないmap_based_detectorで検出されたROIの配列 | +| 名前 | 型 | 説明 | +| --------------- | -------------------------------------------------- | ------------------------------------------------------- | +| `~/input/image` | `sensor_msgs/Image` | フルサイズカメラ画像 | +| `~/input/rois` | `tier4_perception_msgs::msg::TrafficLightRoiArray` | map_based_detectorで検出されたROIの配列 | +| `~/expect/rois` | `tier4_perception_msgs::msg::TrafficLightRoiArray` | オフセットのないmap_based_detectorで検出されたROIの配列 | ### 出力 @@ -55,36 +55,36 @@ Planningコンポーネントは、次のステップに従って動作します Planningコンポーネントには、次の機能があります。 -* 障害物回避のためのリアルタイムパス計画 -* 交通規則の遵守 -* 速度と加速度の最適化 -* 複数のパスオプションの生成 -* 高速道路と都市部の両方での動作 +- 障害物回避のためのリアルタイムパス計画 +- 交通規則の遵守 +- 速度と加速度の最適化 +- 複数のパスオプションの生成 +- 高速道路と都市部の両方での動作 -| 名 | 型 | 説明 | -| --------------------- | --------------------------------------------------- | ---------------------------- | -| `~/output/rois` | `tier4_perception_msgs::msg::TrafficLightRoiArray` | 検出された正確な枠 | -| `~/debug/exe_time_ms` | `tier4_debug_msgs::msg::Float32Stamped` | 推論にかかった時間 | +| 名 | 型 | 説明 | +| --------------------- | -------------------------------------------------- | ------------------ | +| `~/output/rois` | `tier4_perception_msgs::msg::TrafficLightRoiArray` | 検出された正確な枠 | +| `~/debug/exe_time_ms` | `tier4_debug_msgs::msg::Float32Stamped` | 推論にかかった時間 | ## パラメータ ### コアパラメータ -| 名称 | 種類 | デフォルト値 | 説明 | -| --------------------------- | ------ | ------------ | ---------------------------------------------------------------- | -| `fine_detector_score_thresh` | double | 0.3 | オブジェクトスコアがこの値未満の場合、オブジェクトは無視されます | -| `fine_detector_nms_thresh` | double | 0.65 | Non-Maximum Suppressionを実行するためのIoU閾値 | +| 名称 | 種類 | デフォルト値 | 説明 | +| ---------------------------- | ------ | ------------ | ---------------------------------------------------------------- | +| `fine_detector_score_thresh` | double | 0.3 | オブジェクトスコアがこの値未満の場合、オブジェクトは無視されます | +| `fine_detector_nms_thresh` | double | 0.65 | Non-Maximum Suppressionを実行するためのIoU閾値 | ### ノードパラメータ -| 名前 | 型 | 初期値 | 説明 | -| -------------------------- | ------- | ----------------------------- | ---------------------------------------------------------------- | -| `data_path` | 文字列 | "$(env HOME)/autoware_data" | パッケージのデータとアーティファクトのディレクトリパス | -| `fine_detector_model_path` | 文字列 | "" | Yoloモデルのonnxファイル名 | -| `fine_detector_label_path` | 文字列 | "" | 検出されたオブジェクトのラベル名を記載したラベルファイル | -| `fine_detector_precision` | 文字列 | "fp32" | 推論モード: "fp32", "fp16" | -| `approximate_sync` | ブール | false | 近似同期ポリシーを使用するかどうかを指定するフラグ | -| `gpu_id` | 整数 | 0 | CUDA GPUデバイスを選択するためのID | +| 名前 | 型 | 初期値 | 説明 | +| -------------------------- | ------ | --------------------------- | -------------------------------------------------------- | +| `data_path` | 文字列 | "$(env HOME)/autoware_data" | パッケージのデータとアーティファクトのディレクトリパス | +| `fine_detector_model_path` | 文字列 | "" | Yoloモデルのonnxファイル名 | +| `fine_detector_label_path` | 文字列 | "" | 検出されたオブジェクトのラベル名を記載したラベルファイル | +| `fine_detector_precision` | 文字列 | "fp32" | 推論モード: "fp32", "fp16" | +| `approximate_sync` | ブール | false | 近似同期ポリシーを使用するかどうかを指定するフラグ | +| `gpu_id` | 整数 | 0 | CUDA GPUデバイスを選択するためのID | ## 仮定 / 既知の制限 @@ -92,5 +92,4 @@ Planningコンポーネントには、次の機能があります。 YOLOX GitHub リポジトリ -- https://github.com/Megvii-BaseDetection/YOLOX - +- diff --git a/perception/autoware_traffic_light_map_based_detector/README.md b/perception/autoware_traffic_light_map_based_detector/README.md index 6881f5f04e16..af0483d71e96 100644 --- a/perception/autoware_traffic_light_map_based_detector/README.md +++ b/perception/autoware_traffic_light_map_based_detector/README.md @@ -13,31 +13,30 @@ ## 入力トピック -| 名称 | タイプ | 説明 | -| ---------------------| -------------------------------------- | -------------------------- | -| `~input/vector_map` | autoware_map_msgs::msg::LaneletMapBin | ベクタマップ | -| `~input/camera_info` | sensor_msgs::CameraInfo | ターゲットカメラパラメータ | -| `~input/route` | autoware_planning_msgs::LaneletRoute | オプション: ルート | +| 名称 | タイプ | 説明 | +| -------------------- | ------------------------------------- | -------------------------- | +| `~input/vector_map` | autoware_map_msgs::msg::LaneletMapBin | ベクタマップ | +| `~input/camera_info` | sensor_msgs::CameraInfo | ターゲットカメラパラメータ | +| `~input/route` | autoware_planning_msgs::LaneletRoute | オプション: ルート | ## 出力トピック -| 名前 | 型 | 説明 | -| ---------------- | ------------------------------------------- | -------------------------------------------------------------------- | -| `~output/rois` | tier4_perception_msgs::TrafficLightRoiArray | カメラ情報に対応する画像中の信号機の位置 | -| `~expect/rois` | tier4_perception_msgs::TrafficLightRoiArray | オフセットなしで画像内の信号機の位置 | -| `~debug/markers` | visualization_msgs::MarkerArray | デバッグ用の可視化 | +| 名前 | 型 | 説明 | +| ---------------- | ------------------------------------------- | ---------------------------------------- | +| `~output/rois` | tier4_perception_msgs::TrafficLightRoiArray | カメラ情報に対応する画像中の信号機の位置 | +| `~expect/rois` | tier4_perception_msgs::TrafficLightRoiArray | オフセットなしで画像内の信号機の位置 | +| `~debug/markers` | visualization_msgs::MarkerArray | デバッグ用の可視化 | ## ノードパラメータ -| パラメータ | 型 | 説明 | -| ---------------------- | ------ | ------------------------------------------------------------------------------------------------------------- | -| `max_vibration_pitch` | double | ピッチ方向の最大誤差。-5~+5の場合、10になります。 | -| `max_vibration_yaw` | double | ヨー方向の最大誤差。-5~+5の場合、10になります。 | -| `max_vibration_height` | double | 高さ方向の最大誤差。-5~+5の場合、10になります。 | -| `max_vibration_width` | double | 幅方向の最大誤差。-5~+5の場合、10になります。 | -| `max_vibration_depth` | double | 奥行き方向の最大誤差。-5~+5の場合、10になります。 | -| `max_detection_range` | double | メートル単位の最大検出範囲。正数でなければなりません | -| `min_timestamp_offset` | double | 対応するtfを検索するときの最小タイムスタンプオフセット | -| `max_timestamp_offset` | double | 対応するtfを検索するときの最大タイムスタンプオフセット | -| `timestamp_sample_len` | double | `min_timestamp_offset`と`max_timestamp_offset`の間の`'post resampling'`のサンプル長 | - +| パラメータ | 型 | 説明 | +| ---------------------- | ------ | ----------------------------------------------------------------------------------- | +| `max_vibration_pitch` | double | ピッチ方向の最大誤差。-5~+5の場合、10になります。 | +| `max_vibration_yaw` | double | ヨー方向の最大誤差。-5~+5の場合、10になります。 | +| `max_vibration_height` | double | 高さ方向の最大誤差。-5~+5の場合、10になります。 | +| `max_vibration_width` | double | 幅方向の最大誤差。-5~+5の場合、10になります。 | +| `max_vibration_depth` | double | 奥行き方向の最大誤差。-5~+5の場合、10になります。 | +| `max_detection_range` | double | メートル単位の最大検出範囲。正数でなければなりません | +| `min_timestamp_offset` | double | 対応するtfを検索するときの最小タイムスタンプオフセット | +| `max_timestamp_offset` | double | 対応するtfを検索するときの最大タイムスタンプオフセット | +| `timestamp_sample_len` | double | `min_timestamp_offset`と`max_timestamp_offset`の間の`'post resampling'`のサンプル長 | diff --git a/perception/autoware_traffic_light_multi_camera_fusion/README.md b/perception/autoware_traffic_light_multi_camera_fusion/README.md index 9e610e96ff74..e74f933006a9 100644 --- a/perception/autoware_traffic_light_multi_camera_fusion/README.md +++ b/perception/autoware_traffic_light_multi_camera_fusion/README.md @@ -11,220 +11,257 @@ 各カメラについて、以下の 3 つのトピックがサブスクライブされます: -| 名称 | 種類 | 説明 | -| -------------------------------------- | ---------------------------------------------- | ---------------------------------------------------- | +| 名称 | 種類 | 説明 | +| -------------------------------------- | ------------------------------------------------ | -------------------------------------------------- | | `~//camera_info` | `sensor_msgs::CameraInfo` | `traffic_light_map_based_detector`からのカメラ情報 | -| `~//rois` | `tier4_perception_msgs::TrafficLightRoiArray` | `traffic_light_fine_detector`からの検出ROI | -| `~//traffic_signals` | `tier4_perception_msgs::TrafficLightSignalArray` | `traffic_light_classifier`からの分類結果 | +| `~//rois` | `tier4_perception_msgs::TrafficLightRoiArray` | `traffic_light_fine_detector`からの検出ROI | +| `~//traffic_signals` | `tier4_perception_msgs::TrafficLightSignalArray` | `traffic_light_classifier`からの分類結果 | これらのトピックを手動で設定する必要はありません。`camera_namespaces` パラメータを提供するだけで、ノードは `` を自動的に抽出し、サブスクライバーを作成します。 ## 出力トピック -| 名 | タイプ | 説明 | -| --------------------------- | ------------------------------------------------------ | ------------------------------------- | -| `~/output/traffic_signals` | autoware_perception_msgs::TrafficLightSignalArray | 交通信号の融合結果 | +| 名 | タイプ | 説明 | +| -------------------------- | ------------------------------------------------- | ------------------ | +| `~/output/traffic_signals` | autoware_perception_msgs::TrafficLightSignalArray | 交通信号の融合結果 | ## ノードパラメータ --- ### Dynamic obstacles trajectory predictor (Dynamic tracker) - - Name: `~dynamic_tracker/tracking_time_window` - - Type: Float - - Default value: 4.0 - - Description: オブスタクルを追跡するための時間窓 (秒) - - - Name: `~dynamic_tracker/min_time_gap` - - Type: Float - - Default value: 1.0 - - Description: Dynamic Planning によって生成される経路上で、オブジェクトが追跡されるために必要な最小のタイムギャップ (秒) - - - Name: `~dynamic_tracker/max_time_gap` - - Type: Float - - Default value: 2.0 - - Description: Dynamic Planning によって生成される経路上で、オブジェクトが追跡されるために必要な最大タイムギャップ (秒) - - - Name: `~dynamic_tracker/acceleration_v2` - - Type: Float - - Default value: 2.0 - - Description: オブジェクトの加速度の最大値 (m/s^2) - - - Name: `~dynamic_tracker/longitudinal_jerk_v2` - - Type: Float - - Default value: 4.0 - - Description: オブジェクトの縦方向ジャークの最大値 (m/s^3) - - - Name: `~dynamic_tracker/lateral_jerk_v2` - - Type: Float - - Default value: 8.0 - - Description: オブジェクトの横方向ジャークの最大値 (m/s^3) - - - Name: `~dynamic_tracker/use_v_and_a` - - Type: Bool - - Default value: False - - Description: 速度と加速度を予測に使用するかどうか - - - Name: `~dynamic_tracker/consider_turning_radius` - - Type: Bool - - Default value: True - - Description: 予測の際、オブジェクトの旋回半径を考慮するかどうか - - - Name: `~dynamic_tracker/max_obstacle_age` - - Type: Float - - Default value: 1.0 - - Description: オブジェクトが追跡されるために必要な最大年齢 (秒) - - - Name: `~dynamic_tracker/pcd_post_resampling` - - Type: Bool - - Default value: False - - Description: `post resampling`後に点群を使用するかどうか - - - Name: `~dynamic_tracker/estimate_past_pose` - - Type: Bool - - Default value: True - - Description: オブジェクトの過去の位置を推定するかどうか - - - Name: `~dynamic_tracker/acceleration_lin_deceleration_v2` - - Type: Float - - Default value: 2.0 - - Description: オブジェクトの直線減速度の最大値 (m/s^2) + +- Name: `~dynamic_tracker/tracking_time_window` + + - Type: Float + - Default value: 4.0 + - Description: オブスタクルを追跡するための時間窓 (秒) + +- Name: `~dynamic_tracker/min_time_gap` + + - Type: Float + - Default value: 1.0 + - Description: Dynamic Planning によって生成される経路上で、オブジェクトが追跡されるために必要な最小のタイムギャップ (秒) + +- Name: `~dynamic_tracker/max_time_gap` + + - Type: Float + - Default value: 2.0 + - Description: Dynamic Planning によって生成される経路上で、オブジェクトが追跡されるために必要な最大タイムギャップ (秒) + +- Name: `~dynamic_tracker/acceleration_v2` + + - Type: Float + - Default value: 2.0 + - Description: オブジェクトの加速度の最大値 (m/s^2) + +- Name: `~dynamic_tracker/longitudinal_jerk_v2` + + - Type: Float + - Default value: 4.0 + - Description: オブジェクトの縦方向ジャークの最大値 (m/s^3) + +- Name: `~dynamic_tracker/lateral_jerk_v2` + + - Type: Float + - Default value: 8.0 + - Description: オブジェクトの横方向ジャークの最大値 (m/s^3) + +- Name: `~dynamic_tracker/use_v_and_a` + + - Type: Bool + - Default value: False + - Description: 速度と加速度を予測に使用するかどうか + +- Name: `~dynamic_tracker/consider_turning_radius` + + - Type: Bool + - Default value: True + - Description: 予測の際、オブジェクトの旋回半径を考慮するかどうか + +- Name: `~dynamic_tracker/max_obstacle_age` + + - Type: Float + - Default value: 1.0 + - Description: オブジェクトが追跡されるために必要な最大年齢 (秒) + +- Name: `~dynamic_tracker/pcd_post_resampling` + + - Type: Bool + - Default value: False + - Description: `post resampling`後に点群を使用するかどうか + +- Name: `~dynamic_tracker/estimate_past_pose` + + - Type: Bool + - Default value: True + - Description: オブジェクトの過去の位置を推定するかどうか + +- Name: `~dynamic_tracker/acceleration_lin_deceleration_v2` + - Type: Float + - Default value: 2.0 + - Description: オブジェクトの直線減速度の最大値 (m/s^2) ### Obstacle slice planner - - Name: `~obstacle_slice_planner/enable_rollout_detection` - - Type: Bool - - Default value: True - - Description: ロールアウト検出を有効にするかどうか - - - Name: `~obstacle_slice_planner/rollout_detection_min_lane_idx` - - Type: Int - - Default value: 1 - - Description: レーンインデックスの最小値。これ未満のレーンのオブジェクトはロールアウト検出の対象外 - - - Name: `~obstacle_slice_planner/rollout_detection_max_lane_idx` - - Type: Int - - Default value: 2 - - Description: レーンインデックスの最大値。これ以上のレーンのオブジェクトはロールアウト検出の対象外 - - - Name: `~obstacle_slice_planner/rollout_detection_min_ego_v` - - Type: Float - - Default value: 0.1 - - Description: ロールアウト検出に使用する、自車速度の最小値 (m/s) - - - Name: `~obstacle_slice_planner/rollout_detection_min_v_diff` - - Type: Float - - Default value: 0.5 - - Description: ロールアウト検出に使用する、自車と対象オブジェクトの速度差の最小値 (m/s) - - - Name: `~obstacle_slice_planner/rollout_detection_horizontal_distance` - - Type: Float - - Default value: 15.0 - - Description: ロールアウト検出に使用する、自車と対象オブジェクトの水平距離の最大値 (m) - - - Name: `~obstacle_slice_planner/rollout_detection_time_offset` - - Type: Float - - Default value: 3.0 - - Description: ロールアウト検出に使用する、タイムオフセットの最大値 (秒) - - - Name: `~obstacle_slice_planner/rollout_detection_speed_limit` - - Type: Float - - Default value: 20.0 - - Description: ロールアウト検出に使用する、道路の速度制限 (m/s) - - - Name: `~obstacle_slice_planner/rollout_detection_lateral_interval` - - Type: Float - - Default value: 2.0 - - Description: ロールアウト検出に使用する、横方向のインターバル (m) - - - Name: `~obstacle_slice_planner/rollout_detection_grid_resolution` - - Type: Float - - Default value: 1.0 - - Description: ロールアウト検出に使用する、グリッド解像度 (m) - - - Name: `~obstacle_slice_planner/rollout_detection_overlap_threshold` - - Type: Float - - Default value: 0.5 - - Description: ロールアウト検出に使用する、オブジェクトの重なり量のしきい値 - - - Name: `~obstacle_slice_planner/rollout_detection_angle_diff_threshold` - - Type: Float - - Default value: 20.0 - - Description: ロールアウト検出に使用する、オブジェクトの方向角差のしきい値 (deg) - - - Name: `~obstacle_slice_planner/candidate_index_list` - - Type: IntList - - Default value: [] - - Description: 候補となるスライスインデックスのリスト - - - Name: `~obstacle_slice_planner/candidate_pose_list` - - Type: PoseArray - - Default value: [] - - Description: 候補となる自車位置のリスト + +- Name: `~obstacle_slice_planner/enable_rollout_detection` + + - Type: Bool + - Default value: True + - Description: ロールアウト検出を有効にするかどうか + +- Name: `~obstacle_slice_planner/rollout_detection_min_lane_idx` + + - Type: Int + - Default value: 1 + - Description: レーンインデックスの最小値。これ未満のレーンのオブジェクトはロールアウト検出の対象外 + +- Name: `~obstacle_slice_planner/rollout_detection_max_lane_idx` + + - Type: Int + - Default value: 2 + - Description: レーンインデックスの最大値。これ以上のレーンのオブジェクトはロールアウト検出の対象外 + +- Name: `~obstacle_slice_planner/rollout_detection_min_ego_v` + + - Type: Float + - Default value: 0.1 + - Description: ロールアウト検出に使用する、自車速度の最小値 (m/s) + +- Name: `~obstacle_slice_planner/rollout_detection_min_v_diff` + + - Type: Float + - Default value: 0.5 + - Description: ロールアウト検出に使用する、自車と対象オブジェクトの速度差の最小値 (m/s) + +- Name: `~obstacle_slice_planner/rollout_detection_horizontal_distance` + + - Type: Float + - Default value: 15.0 + - Description: ロールアウト検出に使用する、自車と対象オブジェクトの水平距離の最大値 (m) + +- Name: `~obstacle_slice_planner/rollout_detection_time_offset` + + - Type: Float + - Default value: 3.0 + - Description: ロールアウト検出に使用する、タイムオフセットの最大値 (秒) + +- Name: `~obstacle_slice_planner/rollout_detection_speed_limit` + + - Type: Float + - Default value: 20.0 + - Description: ロールアウト検出に使用する、道路の速度制限 (m/s) + +- Name: `~obstacle_slice_planner/rollout_detection_lateral_interval` + + - Type: Float + - Default value: 2.0 + - Description: ロールアウト検出に使用する、横方向のインターバル (m) + +- Name: `~obstacle_slice_planner/rollout_detection_grid_resolution` + + - Type: Float + - Default value: 1.0 + - Description: ロールアウト検出に使用する、グリッド解像度 (m) + +- Name: `~obstacle_slice_planner/rollout_detection_overlap_threshold` + + - Type: Float + - Default value: 0.5 + - Description: ロールアウト検出に使用する、オブジェクトの重なり量のしきい値 + +- Name: `~obstacle_slice_planner/rollout_detection_angle_diff_threshold` + + - Type: Float + - Default value: 20.0 + - Description: ロールアウト検出に使用する、オブジェクトの方向角差のしきい値 (deg) + +- Name: `~obstacle_slice_planner/candidate_index_list` + + - Type: IntList + - Default value: [] + - Description: 候補となるスライスインデックスのリスト + +- Name: `~obstacle_slice_planner/candidate_pose_list` + - Type: PoseArray + - Default value: [] + - Description: 候補となる自車位置のリスト ### Motion planner - - Name: `~motion_planner/sample_interval` - - Type: Float - - Default value: 0.5 - - Description: サンプリングの間隔 (秒) - - - Name: `~motion_planner/max_sample_number` - - Type: Int - - Default value: 1000 - - Description: 最大サンプリング数 - - - Name: `~motion_planner/max_calc_time` - - Type: Float - - Default value: 0.1 - - Description: Motion Planning の最大計算時間 (秒) - - - Name: `~motion_planner/speed_limit` - - Type: Float - - Default value: 20.0 - - Description: 経路生成時の速度制限 (m/s) - - - Name: `~motion_planner/max_acceleration` - - Type: Float - - Default value: 2.0 - - Description: 経路生成時の最大加速度 (m/s^2) - - - Name: `~motion_planner/max_lateral_jerk` - - Type: Float - - Default value: 4.0 - - Description: 経路生成時の最大横方向ジャーク (m/s^3) - - - Name: `~motion_planner/max_lateral_acceleration` - - Type: Float - - Default value: 2.0 - - Description: 経路生成時の最大横方向加速度 (m/s^2) - - - Name: `~motion_planner/target_speed` - - Type: Float - - Default value: 10.0 - - Description: Motion Planning のターゲット速度 (m/s) - - - Name: `~motion_planner/min_speed` - - Type: Float - - Default value: 2.0 - - Description: Motion Planning の最小速度 (m/s) - - - Name: `~motion_planner/enable_smoothed_path` - - Type: Bool - - Default value: True - - Description: Smooth Path Planning を有効にするかどうか - - - Name: `~motion_planner/smoothed_path_epsilon` - - Type: Float - - Default value: 0.1 - - Description: Smooth Path Planning のイプシロン値 - - - Name: `~motion_planner/curvature_threshold` - - Type: Float - - Default value - -| パラメータ | 型 | 説明 | -| --------------------------- | ------------- | -------------------------------------------- | -| `camera_namespaces` | vector | 融合されるカメラのネームスペース | -| `message_lifespan` | double | 融合されるタイムスタンプの最大スパン | -| `approximate_sync` | bool | 近似同期モードで動作するかどうか | -| `perform_group_fusion` | bool | グループ融合を実行するかどうか | +- Name: `~motion_planner/sample_interval` + + - Type: Float + - Default value: 0.5 + - Description: サンプリングの間隔 (秒) + +- Name: `~motion_planner/max_sample_number` + + - Type: Int + - Default value: 1000 + - Description: 最大サンプリング数 + +- Name: `~motion_planner/max_calc_time` + + - Type: Float + - Default value: 0.1 + - Description: Motion Planning の最大計算時間 (秒) + +- Name: `~motion_planner/speed_limit` + + - Type: Float + - Default value: 20.0 + - Description: 経路生成時の速度制限 (m/s) + +- Name: `~motion_planner/max_acceleration` + + - Type: Float + - Default value: 2.0 + - Description: 経路生成時の最大加速度 (m/s^2) + +- Name: `~motion_planner/max_lateral_jerk` + + - Type: Float + - Default value: 4.0 + - Description: 経路生成時の最大横方向ジャーク (m/s^3) + +- Name: `~motion_planner/max_lateral_acceleration` + + - Type: Float + - Default value: 2.0 + - Description: 経路生成時の最大横方向加速度 (m/s^2) + +- Name: `~motion_planner/target_speed` + + - Type: Float + - Default value: 10.0 + - Description: Motion Planning のターゲット速度 (m/s) + +- Name: `~motion_planner/min_speed` + + - Type: Float + - Default value: 2.0 + - Description: Motion Planning の最小速度 (m/s) + +- Name: `~motion_planner/enable_smoothed_path` + + - Type: Bool + - Default value: True + - Description: Smooth Path Planning を有効にするかどうか + +- Name: `~motion_planner/smoothed_path_epsilon` + + - Type: Float + - Default value: 0.1 + - Description: Smooth Path Planning のイプシロン値 + +- Name: `~motion_planner/curvature_threshold` + - Type: Float + - Default value + +| パラメータ | 型 | 説明 | +| ---------------------- | -------------- | ------------------------------------ | +| `camera_namespaces` | vector | 融合されるカメラのネームスペース | +| `message_lifespan` | double | 融合されるタイムスタンプの最大スパン | +| `approximate_sync` | bool | 近似同期モードで動作するかどうか | +| `perform_group_fusion` | bool | グループ融合を実行するかどうか | diff --git a/perception/autoware_traffic_light_occlusion_predictor/README.md b/perception/autoware_traffic_light_occlusion_predictor/README.md index c66650a708c7..5d30e9e4a17d 100644 --- a/perception/autoware_traffic_light_occlusion_predictor/README.md +++ b/perception/autoware_traffic_light_occlusion_predictor/README.md @@ -12,26 +12,25 @@ ## 入力トピック -| 名前 | タイプ | 説明 | -| -------------------- | ------------------------------------------------ | ------------------- | -| `~input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | vector map | +| 名前 | タイプ | 説明 | +| -------------------- | ------------------------------------------------ | ------------------------ | +| `~input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | vector map | | `~/input/rois` | `autoware_perception_msgs::TrafficLightRoiArray` | traffic light detections | -| `~input/camera_info` | `sensor_msgs::CameraInfo` | target camera parameter | -| `~/input/cloud` | `sensor_msgs::PointCloud2` | LiDAR point cloud | +| `~input/camera_info` | `sensor_msgs::CameraInfo` | target camera parameter | +| `~/input/cloud` | `sensor_msgs::PointCloud2` | LiDAR point cloud | ## 出力トピック -| 名称 | タイプ | 説明 | -| -------------------- | ------------------------------------------------------- | ---------------------------- | -| `~/output/occlusion` | autoware_perception_msgs::TrafficLightOcclusionArray | 各ROIの遮蔽率 | +| 名称 | タイプ | 説明 | +| -------------------- | ---------------------------------------------------- | ------------- | +| `~/output/occlusion` | autoware_perception_msgs::TrafficLightOcclusionArray | 各ROIの遮蔽率 | ## ノードパラメーター -| パラメータ | 型 | 説明 | -| ------------------------------------ | ------ | ----------------------------------------------------------------------- | -| `azimuth_occlusion_resolution_deg` | double | LiDARポイントクラ​​ウドの方位分解能 (度) | -| `elevation_occlusion_resolution_deg` | double | LiDARポイントクラ​​ウドの仰角分解能 (度) | -| `max_valid_pt_dist` | double | この距離内のポイントは計算に使用される | -| `max_image_cloud_delay` | double | LiDARポイントクラ​​ウドとカメラ画像の最大遅延 | -| `max_wait_t` | double | LiDARポイントクラ​​ウドを待機する最大時間 | - +| パラメータ | 型 | 説明 | +| ------------------------------------ | ------ | --------------------------------------------- | +| `azimuth_occlusion_resolution_deg` | double | LiDARポイントクラ​​ウドの方位分解能 (度) | +| `elevation_occlusion_resolution_deg` | double | LiDARポイントクラ​​ウドの仰角分解能 (度) | +| `max_valid_pt_dist` | double | この距離内のポイントは計算に使用される | +| `max_image_cloud_delay` | double | LiDARポイントクラ​​ウドとカメラ画像の最大遅延 | +| `max_wait_t` | double | LiDARポイントクラ​​ウドを待機する最大時間 | diff --git a/perception/autoware_traffic_light_visualization/README.md b/perception/autoware_traffic_light_visualization/README.md index 9b5f029fddfb..9399170adcb8 100644 --- a/perception/autoware_traffic_light_visualization/README.md +++ b/perception/autoware_traffic_light_visualization/README.md @@ -17,10 +17,10 @@ #### 入力 -| 名前 | タイプ | 説明 | -| -------------------- | ---------------------------------------------------- | ----------------- | -| `~/input/tl_state` | `tier4_perception_msgs::msg::TrafficLightGroupArray` | 信号機の状態 | -| `~/input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップ | +| 名前 | タイプ | 説明 | +| -------------------- | ---------------------------------------------------- | -------------- | +| `~/input/tl_state` | `tier4_perception_msgs::msg::TrafficLightGroupArray` | 信号機の状態 | +| `~/input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップ | #### 出力 @@ -36,26 +36,26 @@ Perceptionコンポーネントは、センサーデータ(カメラ、レーダー、LiDARなど)を使用して、車両の周囲環境を検出し、解釈します。このデータから、以下の情報が生成されます。 -* オブジェクト検出(車両、歩行者、障害物) -* 車両の周辺認識(自車位置、車線、交通標識) -* 環境マッピング +- オブジェクト検出(車両、歩行者、障害物) +- 車両の周辺認識(自車位置、車線、交通標識) +- 環境マッピング **2. Planning** Planningコンポーネントは、Perceptionコンポーネントによって生成された情報を基に、車両の経路を計画します。この経路は、以下の制約を考慮して生成されます。 -* 交通規則 -* 速度制限 -* 障害物回避 -* ドライバの意図(例:ウインカーからの入力) +- 交通規則 +- 速度制限 +- 障害物回避 +- ドライバの意図(例:ウインカーからの入力) **3. Control** Controlコンポーネントは、Planningコンポーネントによって生成された経路に基づいて、車両を制御します。これには以下の機能が含まれます。 -* ステアリング角制御 -* スロットル制御 -* ブレーキ制御 +- ステアリング角制御 +- スロットル制御 +- ブレーキ制御 **リアルタイム処理** @@ -65,17 +65,17 @@ Controlコンポーネントは、Planningコンポーネントによって生 このアーキテクチャには、以下のエラー処理メカニズムが含まれています。 -* センサーデータの冗長性(複数のセンサーを使用) -* Planningの冗長性(複数のPlanningアルゴリズムを使用) -* Controlの冗長性(複数のアクチュエータを使用) +- センサーデータの冗長性(複数のセンサーを使用) +- Planningの冗長性(複数のPlanningアルゴリズムを使用) +- Controlの冗長性(複数のアクチュエータを使用) **テストと検証** このアーキテクチャのテストと検証は、以下の方法で行われます。 -* シミュレーション -* 屋外試験(公道上のテスト) -* `post resampling`の解析 +- シミュレーション +- 屋外試験(公道上のテスト) +- `post resampling`の解析 **業界における関連性** @@ -83,26 +83,26 @@ Controlコンポーネントは、Planningコンポーネントによって生 **用語集** -* Perception:車両の周囲環境の認識と解釈 -* Planning:車両の経路計画 -* Control:車両の制御とアクチュエーション -* `post resampling`:シミュレーションデータを使用して、実際に収集されたデータのテストを行う手法 -* velocity逸脱量:速度逸脱の量 -* acceleration逸脱量:加速度逸脱の量 +- Perception:車両の周囲環境の認識と解釈 +- Planning:車両の経路計画 +- Control:車両の制御とアクチュエーション +- `post resampling`:シミュレーションデータを使用して、実際に収集されたデータのテストを行う手法 +- velocity逸脱量:速度逸脱の量 +- acceleration逸脱量:加速度逸脱の量 -| 名称 | タイプ | 説明 | -| ------------------------ | -------------------------------------- | ---------------------------------------------------- | +| 名称 | タイプ | 説明 | +| ------------------------ | -------------------------------------- | ------------------------------------ | | `~/output/traffic_light` | `visualization_msgs::msg::MarkerArray` | 信号機のステータスを示すマーカー配列 | ### traffic_light_roi_visualizer #### 入力 -| 名目 | タイプ | 説明 | -| ----------------------------- | -------------------------------------------------- | -------------------------------------------------------- | -| `~/input/tl_state` | `tier4_perception_msgs::msg::TrafficLightArray` | 信号状態 | -| `~/input/image` | `sensor_msgs::msg::Image` | 知覚カメラでキャプチャした画像 | -| `~/input/rois` | `tier4_perception_msgs::msg::TrafficLightRoiArray` | `traffic_light_fine_detector` によって検出された ROI | +| 名目 | タイプ | 説明 | +| --------------------------------- | -------------------------------------------------- | --------------------------------------------------------- | +| `~/input/tl_state` | `tier4_perception_msgs::msg::TrafficLightArray` | 信号状態 | +| `~/input/image` | `sensor_msgs::msg::Image` | 知覚カメラでキャプチャした画像 | +| `~/input/rois` | `tier4_perception_msgs::msg::TrafficLightRoiArray` | `traffic_light_fine_detector` によって検出された ROI | | `~/input/rough/rois` (オプション) | `tier4_perception_msgs::msg::TrafficLightRoiArray` | `traffic_light_map_based_detector` によって検出された ROI | #### 出力 @@ -158,9 +158,9 @@ Behavior Planningコンポーネントは、継続的に改善されています - 計算効率の向上 - 安全性に関する評価能力の向上 -| Name | Type | Description | -| ------------------ | ---------------------------- | ----------------------- | -| `~/output/image` | `sensor_msgs::msg::Image` | ROI付き出力画像 | +| Name | Type | Description | +| ---------------- | ------------------------- | --------------- | +| `~/output/image` | `sensor_msgs::msg::Image` | ROI付き出力画像 | ## パラメータ @@ -183,4 +183,3 @@ Behavior Planningコンポーネントは、継続的に改善されています ## (任意) 参照/外部リンク ## (任意) 将来の拡張/未実装部分 - diff --git a/perception/perception_utils/README.md b/perception/perception_utils/README.md index 65fe36bf65f6..6b877e2b0568 100644 --- a/perception/perception_utils/README.md +++ b/perception/perception_utils/README.md @@ -3,4 +3,3 @@ ## 目的 このパッケージには、知覚モジュール全体で役立つ一般的な関数のライブラリが含まれています。 - diff --git a/planning/README.md b/planning/README.md index 226c317eac78..367a0608d81c 100644 --- a/planning/README.md +++ b/planning/README.md @@ -29,7 +29,6 @@ Planning コンポーネントの **モジュール** は、ソフトウェア [起動ファイル](https://github.com/autowarefoundation/autoware.universe/tree/main/launch/tier4_planning_launch/launch/scenario_planning/lane_driving) は、`default_preset.yaml` で定義された設定を参照して、動作経路プランナーのノードが実行されているときに構成を適用します。 - ```xml ``` @@ -46,7 +45,6 @@ launch_avoidance_module から `default_preset.yaml` に対応。 - デフォルトパラメータ `default_preset.yaml` ファイルにモジュールを追加します。例: - ```yaml - arg: name: launch_intersection_module @@ -55,7 +53,6 @@ launch_avoidance_module から `default_preset.yaml` に対応。 - モジュールを [launcher](https://github.com/autowarefoundation/autoware.universe/tree/main/launch/tier4_planning_launch/launch/scenario_planning) に統合します。例: [behavior_planning.launch.xml](https://github.com/autowarefoundation/autoware.universe/blob/main/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml) - ```xml @@ -69,14 +66,12 @@ launch_avoidance_module から `default_preset.yaml` に対応。 - 適用可能な場合、パラメータフォルダを適切な既存のパラメータフォルダ内に配置します。たとえば、次のような[交差点モジュールのパラメータ](https://github.com/autowarefoundation/autoware_launch/blob/main/autoware_launch/config/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/intersection.param.yaml)は[behavior_velocity_planner](https://github.com/autowarefoundation/autoware_launch/tree/main/autoware_launch/config/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner)内にあります。 - [tier4_planning_component.launch.xml](https://github.com/autowarefoundation/autoware_launch/blob/main/autoware_launch/launch/components/tier4_planning_component.launch.xml)に、パラメータのパスを挿入します。たとえば、次のような`behavior_velocity_planner_intersection_module_param_path`を使用します。 - ```xml ``` - 対応するランチャー内でパラメータパスの変数を定義します。たとえば、[behavior_planning.launch.xml](https://github.com/autowarefoundation/autoware.universe/blob/04aa54bf5fb0c88e70198ca74b9ac343cc3457bf/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml#L191) - ```xml ``` @@ -116,7 +111,6 @@ Planning Component の [Motion Velocity Smoother](./autoware_velocity_smoother/R Y. 清水、T. 堀部、F. 渡辺、加藤正樹、"[自律移動体のジャーク制約速度計画: 線形計画法アプローチ](https://arxiv.org/abs/2202.10029)"、2022 年国際ロボット工学および自動化会議 (ICRA) - ```tex @inproceedings{shimizu2022, author={Shimizu, Yutaka and Horibe, Takamasa and Watanabe, Fumiya and Kato, Shinpei}, @@ -126,4 +120,3 @@ Y. 清水、T. 堀部、F. 渡辺、加藤正樹、"[自律移動体のジャー pages={5814-5820}, doi={10.1109/ICRA46639.2022.9812155}} ``` - diff --git a/planning/autoware_costmap_generator/README.md b/planning/autoware_costmap_generator/README.md index 7fe4cde8107e..0bbad5dd7964 100644 --- a/planning/autoware_costmap_generator/README.md +++ b/planning/autoware_costmap_generator/README.md @@ -6,18 +6,18 @@ ### 入力トピック -| 名称 | タイプ | 説明 | -| --- | ---- | --- | -| `~input/objects` | `autoware_perception_msgs::PredictedObjects` | 障害物エリアの予測オブジェクト | -| `~input/points_no_ground` | `sensor_msgs::PointCloud2` | オブジェクトとして検出できない障害物エリアの地上除去ポイント | -| `~input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | 走行可能エリアのベクターマップ | -| `~input/scenario` | `tier4_planning_msgs::Scenario` | ノードの有効化に使用するアクティブ化するシナリオ | +| 名称 | タイプ | 説明 | +| ------------------------- | -------------------------------------------- | ------------------------------------------------------------ | +| `~input/objects` | `autoware_perception_msgs::PredictedObjects` | 障害物エリアの予測オブジェクト | +| `~input/points_no_ground` | `sensor_msgs::PointCloud2` | オブジェクトとして検出できない障害物エリアの地上除去ポイント | +| `~input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | 走行可能エリアのベクターマップ | +| `~input/scenario` | `tier4_planning_msgs::Scenario` | ノードの有効化に使用するアクティブ化するシナリオ | ### 出力トピック -| 名前 | タイプ | 説明 | -| ------------------------ | ----------------------- | ------------------------------------------------------- | -| `~output/grid_map` | grid_map_msgs::GridMap | costmapをGridMapとして表したもの、値の範囲は0.0から1.0 | +| 名前 | タイプ | 説明 | +| ------------------------ | ----------------------- | ---------------------------------------------------------- | +| `~output/grid_map` | grid_map_msgs::GridMap | costmapをGridMapとして表したもの、値の範囲は0.0から1.0 | | `~output/occupancy_grid` | nav_msgs::OccupancyGrid | costmapをOccupancyGridとして表したもの、値の範囲は0から100 | ### 出力 TF @@ -32,32 +32,31 @@ ### パラメータ -| 名前 | タイプ | 説明 | -|---|---|---| -| `update_rate` | double | タイマーの更新レート | -| `activate_by_scenario` | bool | true の場合、シナリオ(パーキング)によってアクティブ化します。それ以外の場合は、車両がパーキングロット内にある場合にアクティブ化します。 | -| `use_objects` | bool | `~input/objects` を使用するかどうかのフラグ | -| `use_points` | bool | `~input/points_no_ground` を使用するかどうかのフラグ | -| `use_wayarea` | bool | `~input/vector_map` の `wayarea` を使用するかどうかのフラグ | -| `use_parkinglot` | bool | `~input/vector_map` の `parkinglot` を使用するかどうかのフラグ | -| `costmap_frame` | string | 作成された Costmap の座標系 | -| `vehicle_frame` | string | 車両の座標系 | -| `map_frame` | string | マップの座標系 | -| `grid_min_value` | double | Gridmap の最小コスト | -| `grid_max_value` | double | Gridmap の最大コスト | -| `grid_resolution` | double | Gridmap の解像度 | -| `grid_length_x` | int | Gridmap の x 方向のサイズ | -| `grid_length_y` | int | Gridmap の y 方向のサイズ | -| `grid_position_x` | int | 座標系から x 方向へのオフセット | -| `grid_position_y` | int | 座標系から y 方向へのオフセット | -| `maximum_lidar_height_thres` | double | 点群データの最大高さしきい値 | -| `minimum_lidar_height_thres` | double | 点群データの最小高さしきい値 | -| `expand_rectangle_size` | double | オブジェクトの矩形をこの値で拡大します | -| `size_of_expansion_kernel` | int | オブジェクトの Costmap に対するぼかし効果のカーネルサイズ | +| 名前 | タイプ | 説明 | +| ---------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `update_rate` | double | タイマーの更新レート | +| `activate_by_scenario` | bool | true の場合、シナリオ(パーキング)によってアクティブ化します。それ以外の場合は、車両がパーキングロット内にある場合にアクティブ化します。 | +| `use_objects` | bool | `~input/objects` を使用するかどうかのフラグ | +| `use_points` | bool | `~input/points_no_ground` を使用するかどうかのフラグ | +| `use_wayarea` | bool | `~input/vector_map` の `wayarea` を使用するかどうかのフラグ | +| `use_parkinglot` | bool | `~input/vector_map` の `parkinglot` を使用するかどうかのフラグ | +| `costmap_frame` | string | 作成された Costmap の座標系 | +| `vehicle_frame` | string | 車両の座標系 | +| `map_frame` | string | マップの座標系 | +| `grid_min_value` | double | Gridmap の最小コスト | +| `grid_max_value` | double | Gridmap の最大コスト | +| `grid_resolution` | double | Gridmap の解像度 | +| `grid_length_x` | int | Gridmap の x 方向のサイズ | +| `grid_length_y` | int | Gridmap の y 方向のサイズ | +| `grid_position_x` | int | 座標系から x 方向へのオフセット | +| `grid_position_y` | int | 座標系から y 方向へのオフセット | +| `maximum_lidar_height_thres` | double | 点群データの最大高さしきい値 | +| `minimum_lidar_height_thres` | double | 点群データの最小高さしきい値 | +| `expand_rectangle_size` | double | オブジェクトの矩形をこの値で拡大します | +| `size_of_expansion_kernel` | int | オブジェクトの Costmap に対するぼかし効果のカーネルサイズ | ### フローチャート - ```plantuml @startuml title onTimer @@ -91,4 +90,3 @@ endif stop @enduml ``` - diff --git a/planning/autoware_external_velocity_limit_selector/README.md b/planning/autoware_external_velocity_limit_selector/README.md index 246c5c10386e..1dd5e318dd80 100644 --- a/planning/autoware_external_velocity_limit_selector/README.md +++ b/planning/autoware_external_velocity_limit_selector/README.md @@ -36,6 +36,7 @@ WIP --> ## 入力 + ``` #!cpp // API から受信した速度制限 @@ -48,178 +49,227 @@ WIP geometry_msgs::PoseStamped current_pose; ``` -| 名称 | タイプ | 説明 | -| ------------------------------------------------------ | ------------------------------------------------ | -------------------------------------------- | -| `~input/velocity_limit_from_api` | tier4_planning_msgs::VelocityLimit | APIからの速度制限 | -| `~input/velocity_limit_from_internal` | tier4_planning_msgs::VelocityLimit | Autoware内部モジュールからの速度制限 | +| 名称 | タイプ | 説明 | +| --------------------------------------------------- | ---------------------------------------------- | -------------------------------------------------- | +| `~input/velocity_limit_from_api` | tier4_planning_msgs::VelocityLimit | APIからの速度制限 | +| `~input/velocity_limit_from_internal` | tier4_planning_msgs::VelocityLimit | Autoware内部モジュールからの速度制限 | | `~input/velocity_limit_clear_command_from_internal` | tier4_planning_msgs::VelocityLimitClearCommand | Autoware内部モジュールからの速度制限クリアコマンド | ## 出力 **Global Path Plan** -* グローバルパス計画 + +- グローバルパス計画 **Local Trajectory Plan** -* ローカルトラジェクトリピュラン + +- ローカルトラジェクトリピュラン **Planning** -* Planning + +- Planning **Map Matching** -* マップマッチング + +- マップマッチング **Autoware API** -* Autoware API + +- Autoware API **Behavior Planning** -* 行動計画 + +- 行動計画 **Motion Planning** -* モーション計画 + +- モーション計画 **Control** -* 制御 + +- 制御 **Perception** -* 知覚 + +- 知覚 **Vehicle Dynamics** -* 車両運動力学 + +- 車両運動力学 **Sensor** -* センサー + +- センサー **Localization** -* ローカライズ + +- ローカライズ **Post Processing** -* ポスト処理 + +- ポスト処理 **Planning** -* Planning + +- Planning **Plotting** -* プロッティング + +- プロッティング **Best Trajectory Search** -* 最適トラジェクトリサーチ + +- 最適トラジェクトリサーチ **Clustering** -* クラスタリング + +- クラスタリング **Clustering Parameters** -* クラスタリングパラメータ + +- クラスタリングパラメータ **Post-resampling** -* `post-resampling` + +- `post-resampling` **Downsampling** -* ダウンサンプリング + +- ダウンサンプリング **Interpolation** -* 補間 + +- 補間 **Velocity Violation Threshold** -* 速度逸脱量閾値 + +- 速度逸脱量閾値 **Acceleration Violation Threshold** -* 加速度逸脱量閾値 + +- 加速度逸脱量閾値 **Jerk Violation Threshold** -* ジャーク逸脱量閾値 + +- ジャーク逸脱量閾値 **Snap Violation Threshold** -* スナップ逸脱量閾値 + +- スナップ逸脱量閾値 **Path Smoothing** -* パススムージング + +- パススムージング **Uniform B-Spline Smoothing** -* Uniform B-Splineスムーージング + +- Uniform B-Splineスムーージング **LSF Smoothing** -* LSFスムージング + +- LSFスムージング **Self-Motion Smoothing** -* 自車運動スムージング + +- 自車運動スムージング **Generate Trajectory** -* トラジェクトリ生成 + +- トラジェクトリ生成 **Generate Path** -* パス生成 + +- パス生成 **Generate Sim Trajectories** -* シミュレーション用トラジェクトリ生成 + +- シミュレーション用トラジェクトリ生成 **Publish Drive Trajectory** -* 駆動用トラジェクトリ発行 + +- 駆動用トラジェクトリ発行 **Publish Planning Visualization** -* Planningビジュアライゼーション発行 + +- Planningビジュアライゼーション発行 **Publish Trajectory** -* トラジェクトリ発行 + +- トラジェクトリ発行 **Publishing** -* 発行 + +- 発行 **Publish Pose** -* 自車位置発行 + +- 自車位置発行 **Publish Stop Trajectory** -* 停止用トラジェクトリ発行 + +- 停止用トラジェクトリ発行 **Publish Turn Signal** -* 方向指示器発行 + +- 方向指示器発行 **Publish Vehicle State** -* 車両状態発行 + +- 車両状態発行 **Subscribe Map** -* マップ購読 + +- マップ購読 **Subscribe Pose** -* 自車位置購読 + +- 自車位置購読 **Subscribe Stop Sign** -* 停止標識購読 + +- 停止標識購読 **Subscription** -* 購読 + +- 購読 **Target Planning** -* ターゲットPlanning + +- ターゲットPlanning **Trajectory Converter** -* トラジェクトリコンバータ + +- トラジェクトリコンバータ **Trajectory Optimization** -* トラジェクトリ最適化 + +- トラジェクトリ最適化 **Twist2D** -* Twist2D + +- Twist2D **Vehicle Model** -* 車両モデル -| 名前 | 型 | 説明 | -| ---------------------- | ---------------------------------- | ------------------------------------------------ | +- 車両モデル + +| 名前 | 型 | 説明 | +| ---------------------- | ---------------------------------- | -------------------------------------------- | | `~output/max_velocity` | tier4_planning_msgs::VelocityLimit | 自車位置における最も厳格な速度制限の最新情報 | ## パラメータ -| パラメーター | タイプ | 説明 | -| ----------------- | ------ | --------------------------------------- | -| `max_velocity` | double | デフォルト最大速度 [m/s] | -| `normal.min_acc` | double | 最小加速度 [m/ss] | -| `normal.max_acc` | double | 最大加速度 [m/ss] | -| `normal.min_jerk` | double | 最小ジャーク [m/sss] | -| `normal.max_jerk` | double | 最大ジャーク [m/sss] | -| `limit.min_acc` | double | 守られるべき最小加速度 [m/ss] | -| `limit.max_acc` | double | 守られるべき最大加速度 [m/ss] | -| `limit.min_jerk` | double | 守られるべき最小ジャーク [m/sss] | -| `limit.max_jerk` | double | 守られるべき最大ジャーク [m/sss] | +| パラメーター | タイプ | 説明 | +| ----------------- | ------ | -------------------------------- | +| `max_velocity` | double | デフォルト最大速度 [m/s] | +| `normal.min_acc` | double | 最小加速度 [m/ss] | +| `normal.max_acc` | double | 最大加速度 [m/ss] | +| `normal.min_jerk` | double | 最小ジャーク [m/sss] | +| `normal.max_jerk` | double | 最大ジャーク [m/sss] | +| `limit.min_acc` | double | 守られるべき最小加速度 [m/ss] | +| `limit.max_acc` | double | 守られるべき最大加速度 [m/ss] | +| `limit.min_jerk` | double | 守られるべき最小ジャーク [m/sss] | +| `limit.max_jerk` | double | 守られるべき最大ジャーク [m/sss] | ## 仮定 / 既知の制限事項 @@ -269,4 +319,3 @@ WIP 現在、このパッケージはチャタリング障害物を適切に処理できません。これを改善するために、認識レイヤーにいくつかの確率的フィルタを追加することを計画しています。 また、グローバルであるべきいくつかのパラメータがあります(例:車両サイズ、最大操舵角など)。これらはリファクタリングされ、グローバルパラメータとして定義されるため、さまざまなノード間で同じパラメータを共有できます。 --> - diff --git a/planning/autoware_freespace_planner/README.md b/planning/autoware_freespace_planner/README.md index 8a8574522735..59c3502a023a 100644 --- a/planning/autoware_freespace_planner/README.md +++ b/planning/autoware_freespace_planner/README.md @@ -9,18 +9,18 @@ ### 入力トピック -| 名称 | タイプ | 説明 | -| ------------------------ | ----------------------------- | ---------------------------------------------------------- | -| `~input/route` | autoware_planning_msgs::Route | ルートとゴールポーズ | -| `~input/occupancy_grid` | nav_msgs::OccupancyGrid | 走行可能な領域のコストマップ | -| `~input/odometry` | nav_msgs::Odometry | 車両速度(車両の停止状態をチェックするために使用する) | +| 名称 | タイプ | 説明 | +| ----------------------- | ----------------------------- | ---------------------------------------------------------- | +| `~input/route` | autoware_planning_msgs::Route | ルートとゴールポーズ | +| `~input/occupancy_grid` | nav_msgs::OccupancyGrid | 走行可能な領域のコストマップ | +| `~input/odometry` | nav_msgs::Odometry | 車両速度(車両の停止状態をチェックするために使用する) | | `~input/scenario` | tier4_planning_msgs::Scenario | ノードをアクティベートするためのアクティベートするシナリオ | ### 出力トピック -| 名称 | タイプ | 説明 | +| 名称 | タイプ | 説明 | | -------------------- | ---------------------------------- | ------------------------------------------ | -| `~output/trajectory` | autoware_planning_msgs::Trajectory | 追従する軌道 | +| `~output/trajectory` | autoware_planning_msgs::Trajectory | 追従する軌道 | | `is_completed` | bool (rosパラメータとして実装) | すべての分割された軌道が公開されたかどうか | ### 出力TF @@ -38,67 +38,66 @@ #### ノードパラメータ -| パラメータ | 型 | 説明 | -| --------------------------------- | ------ | ------------------------------------------------------------------------------------------------ | -| `planning_algorithms` | 文字列 | ノードで使用されるアルゴリズム | -| `vehicle_shape_margin_m` | 浮動小数 | 計画アルゴリズムのコリジョンマージン | -| `update_rate` | 倍精度浮動小数 | タイマーの更新レート | -| `waypoints_velocity` | 倍精度浮動小数 | 出力軌道の速度(現時点では定速のみをサポート) | -| `th_arrived_distance_m` | 倍精度浮動小数 | 車両が軌道のエンドポイントに到着したかどうかをチェックするしきい値距離 | -| `th_stopped_time_sec` | 倍精度浮動小数 | 車両が停止しているかどうかをチェックするしきい値時間 | -| `th_stopped_velocity_mps` | 倍精度浮動小数 | 車両が停止しているかどうかをチェックするしきい値速度 | -| `th_course_out_distance_m` | 倍精度浮動小数 | 車両がコースから外れたかどうかをチェックするしきい値距離 | -| `th_obstacle_time_sec` | 倍精度浮動小数 | 障害物が軌道上にあるかどうかをチェックするしきい値時間 | -| `vehicle_shape_margin_m` | 倍精度浮動小数 | 車両マージン | -| `replan_when_obstacle_found` | ブール | 障害物が軌道上で見つかったときに再計画するかどうか | -| `replan_when_course_out` | ブール | 車両がコースから外れたときに再計画するかどうか | +| パラメータ | 型 | 説明 | +| ---------------------------- | -------------- | ---------------------------------------------------------------------- | +| `planning_algorithms` | 文字列 | ノードで使用されるアルゴリズム | +| `vehicle_shape_margin_m` | 浮動小数 | 計画アルゴリズムのコリジョンマージン | +| `update_rate` | 倍精度浮動小数 | タイマーの更新レート | +| `waypoints_velocity` | 倍精度浮動小数 | 出力軌道の速度(現時点では定速のみをサポート) | +| `th_arrived_distance_m` | 倍精度浮動小数 | 車両が軌道のエンドポイントに到着したかどうかをチェックするしきい値距離 | +| `th_stopped_time_sec` | 倍精度浮動小数 | 車両が停止しているかどうかをチェックするしきい値時間 | +| `th_stopped_velocity_mps` | 倍精度浮動小数 | 車両が停止しているかどうかをチェックするしきい値速度 | +| `th_course_out_distance_m` | 倍精度浮動小数 | 車両がコースから外れたかどうかをチェックするしきい値距離 | +| `th_obstacle_time_sec` | 倍精度浮動小数 | 障害物が軌道上にあるかどうかをチェックするしきい値時間 | +| `vehicle_shape_margin_m` | 倍精度浮動小数 | 車両マージン | +| `replan_when_obstacle_found` | ブール | 障害物が軌道上で見つかったときに再計画するかどうか | +| `replan_when_course_out` | ブール | 車両がコースから外れたときに再計画するかどうか | #### Planner の共通パラメータ -| パラメータ | 種類 | 説明 | -| ------------------------- | ------ | ---------------------------------------------------- | -| `time_limit` | 数値 | Planning の時間制限 | -| `maximum_turning_ratio` | 数値 | 使用可能な実際の旋回範囲に対する最大比 | -| `turning_steps` | 数値 | 旋回範囲内の旋回ステップ数 | -| `theta_size` | 数値 | 角度の離散化の数 | -| `lateral_goal_range` | 数値 | 横位置の目標範囲 | -| `longitudinal_goal_range` | 数値 | 縦位置の目標範囲 | -| `angle_goal_range` | 数値 | 角度の目標範囲 | -| `curve_weight` | 数値 | 曲線操作に対する追加コスト係数 | -| `reverse_weight` | 数値 | バック動作に対する追加コスト係数 | -| `direction_change_weight` | 数値 | 方向変更に対する追加コスト係数 | -| `obstacle_threshold` | 数値 | 特定のグリッドを障害物と見なすための閾値 | +| パラメータ | 種類 | 説明 | +| ------------------------- | ---- | ---------------------------------------- | +| `time_limit` | 数値 | Planning の時間制限 | +| `maximum_turning_ratio` | 数値 | 使用可能な実際の旋回範囲に対する最大比 | +| `turning_steps` | 数値 | 旋回範囲内の旋回ステップ数 | +| `theta_size` | 数値 | 角度の離散化の数 | +| `lateral_goal_range` | 数値 | 横位置の目標範囲 | +| `longitudinal_goal_range` | 数値 | 縦位置の目標範囲 | +| `angle_goal_range` | 数値 | 角度の目標範囲 | +| `curve_weight` | 数値 | 曲線操作に対する追加コスト係数 | +| `reverse_weight` | 数値 | バック動作に対する追加コスト係数 | +| `direction_change_weight` | 数値 | 方向変更に対する追加コスト係数 | +| `obstacle_threshold` | 数値 | 特定のグリッドを障害物と見なすための閾値 | #### A\* 探索パラメータ -| パラメーター | タイプ | 説明 | -| -------------------------------- | ------ | ------------------------------------------------------------------- | -| `search_method` | 文字列 | 検索方法、スタートからゴールへまたはその逆方向 | -| `only_behind_solutions` | ブール | ソリューションをゴールの後ろに制限するかどうか | -| `use_back` | ブール | 後方軌道を使用するかどうか | -| `adapt_expansion_distance` | ブール | 環境に基づいて展開距離を適応する場合 | -| `expansion_distance` | double | ノード遷移の展開距離 | -| `near_goal_distance` | double | ゴール近傍距離のしきい値 | -| `distance_heuristic_weight` | double | ノードのコストを推定するためのヒューリスティック重み | -| `smoothness_weight` | double | 曲率の変化に対するコストファクター | -| `obstacle_distance_weight` | double | 障害物までの距離に対するコストファクター | -| `goal_lat_distance_weight` | double | ゴールからの横方向距離に対するコストファクター | - -#### RRT*探索パラメータ +| パラメーター | タイプ | 説明 | +| --------------------------- | ------ | ---------------------------------------------------- | +| `search_method` | 文字列 | 検索方法、スタートからゴールへまたはその逆方向 | +| `only_behind_solutions` | ブール | ソリューションをゴールの後ろに制限するかどうか | +| `use_back` | ブール | 後方軌道を使用するかどうか | +| `adapt_expansion_distance` | ブール | 環境に基づいて展開距離を適応する場合 | +| `expansion_distance` | double | ノード遷移の展開距離 | +| `near_goal_distance` | double | ゴール近傍距離のしきい値 | +| `distance_heuristic_weight` | double | ノードのコストを推定するためのヒューリスティック重み | +| `smoothness_weight` | double | 曲率の変化に対するコストファクター | +| `obstacle_distance_weight` | double | 障害物までの距離に対するコストファクター | +| `goal_lat_distance_weight` | double | ゴールからの横方向距離に対するコストファクター | + +#### RRT\*探索パラメータ -| パラメーター | 型 | 説明 | -| ------------------------ | ------ | ---------------------------------------------------------------------------- | -| `max planning time` | double | 最大計画時間 [msec] (`enable_update` が `true` の場合にのみ使用) | -| `enable_update` | bool | `max_planning time` が経過するまで実現可能なソリューションが見つかった後の更新の有無 | -| `use_informed_sampling` | bool | Informed RRT\*(Gammell et al.)の使用 | -| `neighbor_radius` | double | RRT\*アルゴリズムの近傍半径 | -| `margin` | double | RRT\*アルゴリズムにおけるパスの衝突チェックで確保される安全マージン | +| パラメーター | 型 | 説明 | +| ----------------------- | ------ | ------------------------------------------------------------------------------------ | +| `max planning time` | double | 最大計画時間 [msec] (`enable_update` が `true` の場合にのみ使用) | +| `enable_update` | bool | `max_planning time` が経過するまで実現可能なソリューションが見つかった後の更新の有無 | +| `use_informed_sampling` | bool | Informed RRT\*(Gammell et al.)の使用 | +| `neighbor_radius` | double | RRT\*アルゴリズムの近傍半径 | +| `margin` | double | RRT\*アルゴリズムにおけるパスの衝突チェックで確保される安全マージン | ### フローチャート - ```plantuml @startuml title onTimer @@ -137,4 +136,3 @@ endif stop @enduml ``` - diff --git a/planning/autoware_freespace_planning_algorithms/README.md b/planning/autoware_freespace_planning_algorithms/README.md index 7aa1f5e69679..3adca3b2e745 100644 --- a/planning/autoware_freespace_planning_algorithms/README.md +++ b/planning/autoware_freespace_planning_algorithms/README.md @@ -32,14 +32,13 @@ A\* -> informed RRT\* -> RRT。ほとんどの場合において、informed RRT\ - このパッケージ内のすべてのプランニングアルゴリズムクラスは、`AbstractPlanningAlgorithm`クラスを継承する必要があります。必要に応じて、仮想関数をオーバーライドしてください。 - すべてのアルゴリズムは`nav_msgs::OccupancyGrid`タイプのコストマップを使用する必要があります。 -したがって、`AbstractPlanningAlgorithm`クラスは主に、コストマップを使用した衝突チェック、グリッドベースのインデックス作成、コストマップに関連する座標変換を実装します。 + したがって、`AbstractPlanningAlgorithm`クラスは主に、コストマップを使用した衝突チェック、グリッドベースのインデックス作成、コストマップに関連する座標変換を実装します。 - すべてのアルゴリズムは、`PlannerCommonParam`タイプの構造とアルゴリズム固有タイプの構造の両方をコンストラクタの入力として受け取る必要があります。たとえば、`AstarSearch`クラスのコンストラクタは、`PlannerCommonParam`と`AstarParam`の両方を受け取ります。 ## スタンドアロンテストと可視化の実行 パッケージをros-testでビルドし、テストを実行します。 - ```sh colcon build --packages-select autoware_freespace_planning_algorithms colcon test --packages-select autoware_freespace_planning_algorithms @@ -87,4 +86,3 @@ Python モジュールへの拡張の実装があります。 は [pyReedsShepp](https://github.com/ghliu/pyReedsShepp) から取得されています。 `pyReedsShepp` の実装も [ompl](https://github.com/ompl/ompl) のコードを大いに基にしていることに注意してください。 `pyReedsShepp` と `ompl` はどちらも 3 項 BSD ライセンスで配布されています。 - diff --git a/planning/autoware_mission_planner/README.md b/planning/autoware_mission_planner/README.md index 603cbf70f88a..3c3f942a17f0 100644 --- a/planning/autoware_mission_planner/README.md +++ b/planning/autoware_mission_planner/README.md @@ -19,18 +19,18 @@ ### パラメーター -| 名称 | 型 | 説明 | -| ---------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `map_frame` | 文字列 | マップのフレーム名 | -| `arrival_check_angle_deg` | double | ゴール点検の角度閾値 | -| `arrival_check_distance` | double | ゴール点検の距離閾値 | -| `arrival_check_duration` | double | ゴール点検の期間閾値 | -| `goal_angle_threshold` | double | ゴールの承認のための目標ポーズの最大角度 | -| `enable_correct_goal_pose` | ブーリアン | 最も近いレーンレットの向きに従ってゴールポーズを修正するかどうか | -| `reroute_time_threshold` | double | 現在速度での経路変更ポイントまでの時間がこの閾値よりも大きい場合、経路変更が可能となる | -| `minimum_reroute_length` | double | 新しい経路を発行するための最小長 | -| `consider_no_drivable_lanes` | ブーリアン | 計画に走行不可のレーンレットを考慮するかどうかのフラグ | -| `allow_reroute_in_autonomous_mode` | ブーリアン | 自律運転モードでの経路変更を許可するフラグ。falseの場合は経路変更は失敗し、trueの場合は安全な経路変更のみが許可される | +| 名称 | 型 | 説明 | +| ---------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------- | +| `map_frame` | 文字列 | マップのフレーム名 | +| `arrival_check_angle_deg` | double | ゴール点検の角度閾値 | +| `arrival_check_distance` | double | ゴール点検の距離閾値 | +| `arrival_check_duration` | double | ゴール点検の期間閾値 | +| `goal_angle_threshold` | double | ゴールの承認のための目標ポーズの最大角度 | +| `enable_correct_goal_pose` | ブーリアン | 最も近いレーンレットの向きに従ってゴールポーズを修正するかどうか | +| `reroute_time_threshold` | double | 現在速度での経路変更ポイントまでの時間がこの閾値よりも大きい場合、経路変更が可能となる | +| `minimum_reroute_length` | double | 新しい経路を発行するための最小長 | +| `consider_no_drivable_lanes` | ブーリアン | 計画に走行不可のレーンレットを考慮するかどうかのフラグ | +| `allow_reroute_in_autonomous_mode` | ブーリアン | 自律運転モードでの経路変更を許可するフラグ。falseの場合は経路変更は失敗し、trueの場合は安全な経路変更のみが許可される | ### サービス @@ -53,16 +53,16 @@ - IMU/GNSS/カメラによる自車位置推定 - SLAMによるマップ構築と局在化 -| Name | Type | Description | -| ------------------------------------------------------------------- | ---------------------------------------- | ---------------------------------------------------- | -| `/planning/mission_planning/mission_planner/clear_route` | tier4_planning_msgs/srv/ClearRoute | ルートクリア要求 | +| Name | Type | Description | +| ------------------------------------------------------------------- | ---------------------------------------- | ------------------------------------------------ | +| `/planning/mission_planning/mission_planner/clear_route` | tier4_planning_msgs/srv/ClearRoute | ルートクリア要求 | | `/planning/mission_planning/mission_planner/set_waypoint_route` | tier4_planning_msgs/srv/SetWaypointRoute | レーンレットウェイポイントを伴うルート要求 | -| `/planning/mission_planning/mission_planner/set_lanelet_route` | tier4_planning_msgs/srv/SetLaneletRoute | 座標ベースのウェイポイントを伴うルート要求 | -| `/planning/mission_planning/route_selector/main/clear_route` | tier4_planning_msgs/srv/ClearRoute | メインルートクリア要求 | -| `/planning/mission_planning/route_selector/main/set_waypoint_route` | tier4_planning_msgs/srv/SetWaypointRoute | レーンレットウェイポイントを伴うメインルート要求 | -| `/planning/mission_planning/route_selector/main/set_lanelet_route` | tier4_planning_msgs/srv/SetLaneletRoute | 座標ベースのウェイポイントを伴うメインルート要求 | -| `/planning/mission_planning/route_selector/mrm/clear_route` | tier4_planning_msgs/srv/ClearRoute | MRMルートクリア要求 | -| `/planning/mission_planning/route_selector/mrm/set_waypoint_route` | tier4_planning_msgs/srv/SetWaypointRoute | レーンレットウェイポイントを伴うMRMルート要求 | +| `/planning/mission_planning/mission_planner/set_lanelet_route` | tier4_planning_msgs/srv/SetLaneletRoute | 座標ベースのウェイポイントを伴うルート要求 | +| `/planning/mission_planning/route_selector/main/clear_route` | tier4_planning_msgs/srv/ClearRoute | メインルートクリア要求 | +| `/planning/mission_planning/route_selector/main/set_waypoint_route` | tier4_planning_msgs/srv/SetWaypointRoute | レーンレットウェイポイントを伴うメインルート要求 | +| `/planning/mission_planning/route_selector/main/set_lanelet_route` | tier4_planning_msgs/srv/SetLaneletRoute | 座標ベースのウェイポイントを伴うメインルート要求 | +| `/planning/mission_planning/route_selector/mrm/clear_route` | tier4_planning_msgs/srv/ClearRoute | MRMルートクリア要求 | +| `/planning/mission_planning/route_selector/mrm/set_waypoint_route` | tier4_planning_msgs/srv/SetWaypointRoute | レーンレットウェイポイントを伴うMRMルート要求 | | `/planning/mission_planning/route_selector/mrm/set_lanelet_route` | tier4_planning_msgs/srv/SetLaneletRoute | 座標ベースのウェイポイントを伴うMRMルート要求 | ### サブスクリプション @@ -78,11 +78,11 @@ - `/carla/ego_vehicle/sensor/camera/rgb/front/image` : CARLAエミュレータによって提供されるフロントRGBカメラの画像 - `/carla/ego_vehicle/sensor/lidar/top/front/point_cloud` : CARLAエミュレータによって提供されるフロントLiDARの点群 -| 名前 | 種類 | 説明 | -| ---------------------------- | ----------------------------------------- | ---------------------- | +| 名前 | 種類 | 説明 | +| ---------------------------- | ----------------------------------------- | ------------------------ | | `input/vector_map` | autoware_map_msgs/msg/LaneletMapBin | Lanelet2のベクトルマップ | -| `input/modified_goal` | geometry_msgs/PoseWithUuidStamped | 修正されたゴールの姿勢 | -| `input/operation_mode_state` | autoware_adapi_v1_msgs/OperationModeState | 操作モードの状態 | +| `input/modified_goal` | geometry_msgs/PoseWithUuidStamped | 修正されたゴールの姿勢 | +| `input/operation_mode_state` | autoware_adapi_v1_msgs/OperationModeState | 操作モードの状態 | ### 資料 @@ -90,16 +90,16 @@ - [Open Robotics: Autoware.Auto](https://arxiv.org/abs/2204.09611) - [Experimental validation of the Autoware.Auto planning module in simulated scenarios](https://arxiv.org/abs/2204.10510) -| 名称 | タイプ | 説明 | -| ------------------------------------------------------ | ----------------------------------- | ------------------------------------------------ | -| `/planning/mission_planning/state` | tier4_planning_msgs/msg/RouteState | ルートの状態 | -| `/planning/mission_planning/route` | autoware_planning_msgs/LaneletRoute | ルート | -| `/planning/mission_planning/route_selector/main/state` | tier4_planning_msgs/msg/RouteState | メインルートの状態 | -| `/planning/mission_planning/route_selector/main/route` | autoware_planning_msgs/LaneletRoute | メインルート | -| `/planning/mission_planning/route_selector/mrm/state` | tier4_planning_msgs/msg/RouteState | MRMルートの状態 | -| `/planning/mission_planning/route_selector/mrm/route` | autoware_planning_msgs/LaneletRoute | MRMルート | -| `~/debug/route_marker` | visualization_msgs/msg/MarkerArray | デバッグ用のルートマーカー | -| `~/debug/goal_footprint` | visualization_msgs/msg/MarkerArray | デバッグ用の目標フットプリント | +| 名称 | タイプ | 説明 | +| ------------------------------------------------------ | ----------------------------------- | ------------------------------ | +| `/planning/mission_planning/state` | tier4_planning_msgs/msg/RouteState | ルートの状態 | +| `/planning/mission_planning/route` | autoware_planning_msgs/LaneletRoute | ルート | +| `/planning/mission_planning/route_selector/main/state` | tier4_planning_msgs/msg/RouteState | メインルートの状態 | +| `/planning/mission_planning/route_selector/main/route` | autoware_planning_msgs/LaneletRoute | メインルート | +| `/planning/mission_planning/route_selector/mrm/state` | tier4_planning_msgs/msg/RouteState | MRMルートの状態 | +| `/planning/mission_planning/route_selector/mrm/route` | autoware_planning_msgs/LaneletRoute | MRMルート | +| `~/debug/route_marker` | visualization_msgs/msg/MarkerArray | デバッグ用のルートマーカー | +| `~/debug/goal_footprint` | visualization_msgs/msg/MarkerArray | デバッグ用の目標フットプリント | ## ルートセクション @@ -129,7 +129,6 @@ Mission Planner は、与えられたゴールポーズを検証してルート `plan route` の詳細については、次のセクションで説明します。 - ```plantuml @startuml title goal callback @@ -156,7 +155,6 @@ stop `plan route`は、自車位置と目標位置を含むチェックポイントで実行されます。 - ```plantuml @startuml title plan route @@ -196,7 +194,7 @@ stop 1. 車線変更可能な計画されたパスに対するすべての隣接車線 (右と左) が `route_lanelets` として記憶されます。 2. 車線変更できない計画されたパスに対するすべての隣接車線 (右と左) が `candidate_lanelets` として記憶されます。 3. 各 `candidate_lanelets` の前後車線が `route_lanelets` である場合、`candidate_lanelet` は `route_lanelets` として登録されます。 - - これは、`candidate_lanelet` (隣接車線) が車線変更できない場合でも、`candidate_lanelet` の前後車線が `route_lanelets` であれば車線変更せずに `candidate_lanelet` を通過できるためです。 + - これは、`candidate_lanelet` (隣接車線) が車線変更できない場合でも、`candidate_lanelet` の前後車線が `route_lanelets` であれば車線変更せずに `candidate_lanelet` を通過できるためです。 `優先車線を取得` はルートハンドラーを使用して `route_lanelets` から `preferred_primitive` を抽出します。 @@ -237,4 +235,3 @@ MRM が路肩に停車するためのインターフェイスです。できる - 動的オブジェクト (例: 歩行者や他の車両) や動的マップ情報 (例: 一部の車線を塞ぐ道路工事) はルート計画中に考慮されません。 - ループルートはサポートされていません。 - diff --git a/planning/autoware_objects_of_interest_marker_interface/README.md b/planning/autoware_objects_of_interest_marker_interface/README.md index cdef375f7612..1bc828b4cfdb 100644 --- a/planning/autoware_objects_of_interest_marker_interface/README.md +++ b/planning/autoware_objects_of_interest_marker_interface/README.md @@ -13,4 +13,3 @@ ## 仮定 / わかっている制限事項 ## 将来の拡張 / 未実装の部分 - diff --git a/planning/autoware_obstacle_cruise_planner/README.md b/planning/autoware_obstacle_cruise_planner/README.md index e54a7383750b..69f169624043 100644 --- a/planning/autoware_obstacle_cruise_planner/README.md +++ b/planning/autoware_obstacle_cruise_planner/README.md @@ -15,20 +15,20 @@ ### 入力トピック -| 名称 | 種類 | 説明 | -| -------------------- | ------------------------------------------ | -------------------------------------- | -| `~/input/trajectory` | `autoware_planning_msgs::Trajectory` | 入力軌道 | -| `~/input/objects` | `autoware_perception_msgs::PredictedObjects` | 動的オブジェクト | -| `~/input/odometry` | `nav_msgs::msg::Odometry` | 自車オドメトリ | +| 名称 | 種類 | 説明 | +| -------------------- | -------------------------------------------- | ---------------- | +| `~/input/trajectory` | `autoware_planning_msgs::Trajectory` | 入力軌道 | +| `~/input/objects` | `autoware_perception_msgs::PredictedObjects` | 動的オブジェクト | +| `~/input/odometry` | `nav_msgs::msg::Odometry` | 自車オドメトリ | ### 出力トピック -| 名前 | 型 | 説明 | -| ------------------------------- | ---------------------------------------------- | -------------------------------------- | -| `~/output/trajectory` | autoware_planning_msgs::Trajectory | 出力軌跡 | -| `~/output/velocity_limit` | tier4_planning_msgs::VelocityLimit | 巡行時の速度制限 | -| `~/output/clear_velocity_limit` | tier4_planning_msgs::VelocityLimitClearCommand | 速度制限のクリアコマンド | -| `~/output/stop_reasons` | tier4_planning_msgs::StopReasonArray | 車両を停止させる理由 | +| 名前 | 型 | 説明 | +| ------------------------------- | ---------------------------------------------- | ------------------------ | +| `~/output/trajectory` | autoware_planning_msgs::Trajectory | 出力軌跡 | +| `~/output/velocity_limit` | tier4_planning_msgs::VelocityLimit | 巡行時の速度制限 | +| `~/output/clear_velocity_limit` | tier4_planning_msgs::VelocityLimitClearCommand | 速度制限のクリアコマンド | +| `~/output/stop_reasons` | tier4_planning_msgs::StopReasonArray | 車両を停止させる理由 | ## 設計 @@ -42,7 +42,6 @@ クルーズ計画と停止計画のデータ構造は次のとおりです。 このプランナーデータは最初に作成され、その後、計画アルゴリズムに送信されます。 - ```cpp struct PlannerData { @@ -55,7 +54,6 @@ struct PlannerData }; ``` - ```cpp struct Obstacle { @@ -95,20 +93,20 @@ struct Obstacle - 最も信頼性の高い予測経路が自車の軌道と衝突すること。 - その衝突期間が`behavior_determination.cruise.outside_obstacle.ego_obstacle_overlap_time_threshold`を超えていること。 -| パラメータ | 型 | 説明 | -|---|---|---| -| `common.cruise_obstacle_type.inside.unknown` | bool | クルーズに対して、不明なオブジェクトを考慮するフラグ | -| `common.cruise_obstacle_type.inside.car` | bool | クルーズに対して、乗用車オブジェクトを考慮するフラグ | -| `common.cruise_obstacle_type.inside.truck` | bool | クルーズに対して、トラックオブジェクトを考慮するフラグ | -| ... | bool | ... | -| `common.cruise_obstacle_type.outside.unknown` | bool | クルーズに対して、不明なオブジェクトを考慮するフラグ | -| `common.cruise_obstacle_type.outside.car` | bool | クルーズに対して、乗用車オブジェクトを考慮するフラグ | -| `common.cruise_obstacle_type.outside.truck` | bool | クルーズに対して、トラックオブジェクトを考慮するフラグ | -| ... | bool | ... | -| `behavior_determination.cruise.max_lat_margin` | double | クルーズ障害物の最大横方向マージン | -| `behavior_determination.obstacle_velocity_threshold_from_cruise_to_stop` | double | 軌道内のクルーズ障害物の最大障害物速度 | -| `behavior_determination.cruise.outside_obstacle.obstacle_velocity_threshold` | double | 軌道外のクルーズ障害物の最大障害物速度 | -| `behavior_determination.cruise.outside_obstacle.ego_obstacle_overlap_time_threshold` | double | 自車と障害物が衝突する最大重複時間 | +| パラメータ | 型 | 説明 | +| ------------------------------------------------------------------------------------ | ------ | ------------------------------------------------------ | +| `common.cruise_obstacle_type.inside.unknown` | bool | クルーズに対して、不明なオブジェクトを考慮するフラグ | +| `common.cruise_obstacle_type.inside.car` | bool | クルーズに対して、乗用車オブジェクトを考慮するフラグ | +| `common.cruise_obstacle_type.inside.truck` | bool | クルーズに対して、トラックオブジェクトを考慮するフラグ | +| ... | bool | ... | +| `common.cruise_obstacle_type.outside.unknown` | bool | クルーズに対して、不明なオブジェクトを考慮するフラグ | +| `common.cruise_obstacle_type.outside.car` | bool | クルーズに対して、乗用車オブジェクトを考慮するフラグ | +| `common.cruise_obstacle_type.outside.truck` | bool | クルーズに対して、トラックオブジェクトを考慮するフラグ | +| ... | bool | ... | +| `behavior_determination.cruise.max_lat_margin` | double | クルーズ障害物の最大横方向マージン | +| `behavior_determination.obstacle_velocity_threshold_from_cruise_to_stop` | double | 軌道内のクルーズ障害物の最大障害物速度 | +| `behavior_determination.cruise.outside_obstacle.obstacle_velocity_threshold` | double | 軌道外のクルーズ障害物の最大障害物速度 | +| `behavior_determination.cruise.outside_obstacle.ego_obstacle_overlap_time_threshold` | double | 自車と障害物が衝突する最大重複時間 | ##### エゴ車の車線へ割り込んでくる可能性のある車両への譲歩 @@ -117,7 +115,7 @@ struct Obstacle 以下の条件を満たす障害物は、譲歩(巡航)の障害物として判断されます。 - 物体タイプが `common.cruise_obstacle_type.*` に従って巡航用であり、速度が `behavior_determination.cruise.yield.stopped_obstacle_velocity_threshold` より大きい。 -- 物体がエゴ車の軌跡を横断していない(*1)。 +- 物体がエゴ車の軌跡を横断していない(\*1)。 - 移動中の障害物の前に `common.cruise_obstacle_type.*` タイプの別の停止障害物がある。 - 両方の障害物間の横方向距離(エゴ車の軌跡を基準とする)が `behavior_determination.cruise.yield.max_lat_dist_between_obstacles` 未満である。 - 移動中および停止中の障害物は両方、エゴ車の軌跡からそれぞれ横方向距離で `behavior_determination.cruise.yield.lat_distance_threshold` と `behavior_determination.cruise.yield.lat_distance_threshold` + `behavior_determination.cruise.yield.max_lat_dist_between_obstacles` 内にある。 @@ -132,19 +130,19 @@ struct Obstacle - 物体からエゴ車の軌跡への横方向距離が `behavior_determination.stop.max_lat_margin` 未満である。 - エゴ車の軌跡に沿った物体速度が `behavior_determination.obstacle_velocity_threshold_from_stop_to_cruise` より小さい。 - 物体は - - エゴ車の軌跡を横断していない(*1) + - エゴ車の軌跡を横断していない(\*1) - 速度が `behavior_determination.crossing_obstacle.obstacle_velocity_threshold` 未満 - - 衝突時刻マージンが十分に大きい(*2)。 - -| パラメーター | 型 | 説明 | -| -------------------------------------------------------------------- | ------ | -------------------------------------------- | -| `common.stop_obstacle_type.unknown` | ブール | 停止時の未知の障害物として考慮するフラグ | -| `common.stop_obstacle_type.car` | ブール | 停止時の不明な障害物として考慮するフラグ | -| `common.stop_obstacle_type.truck` | ブール | 停止時の不明な障害物として考慮するフラグ | -| ... | ブール | ... | -| `behavior_determination.stop.max_lat_margin` | double | 停止障害物の最大横方向マージン | -| `behavior_determination.crossing_obstacle.obstacle_velocity_threshold` | double | 無視する最大横断障害物速度 | -| `behavior_determination.obstacle_velocity_threshold_from_stop_to_cruise` | double | 停止時の最大障害物速度 | + - 衝突時刻マージンが十分に大きい(\*2)。 + +| パラメーター | 型 | 説明 | +| ------------------------------------------------------------------------ | ------ | ---------------------------------------- | +| `common.stop_obstacle_type.unknown` | ブール | 停止時の未知の障害物として考慮するフラグ | +| `common.stop_obstacle_type.car` | ブール | 停止時の不明な障害物として考慮するフラグ | +| `common.stop_obstacle_type.truck` | ブール | 停止時の不明な障害物として考慮するフラグ | +| ... | ブール | ... | +| `behavior_determination.stop.max_lat_margin` | double | 停止障害物の最大横方向マージン | +| `behavior_determination.crossing_obstacle.obstacle_velocity_threshold` | double | 無視する最大横断障害物速度 | +| `behavior_determination.obstacle_velocity_threshold_from_stop_to_cruise` | double | 停止時の最大障害物速度 | #### 減速対象車両の特定 @@ -153,13 +151,13 @@ struct Obstacle - オブジェクトタイプが `common.slow_down_obstacle_type.*` に従って減速対象である。 - オブジェクトから自車軌跡までの横方向距離が `behavior_determination.slow_down.max_lat_margin` 未満である。 -| パラメータ | 型 | 説明 | -| ---------------------------------------------- | ------ | ------------------------------------------------------ | -| `common.slow_down_obstacle_type.unknown` | bool | 不明なオブジェクトを減速で考慮するフラグ | -| `common.slow_down_obstacle_type.car` | bool | 不明なオブジェクトを減速で考慮するフラグ | -| `common.slow_down_obstacle_type.truck` | bool | 不明なオブジェクトを減速で考慮するフラグ | -| ... | bool | ... | -| `behavior_determination.slow_down.max_lat_margin` | double | 減速障害物の最大横マージン | +| パラメータ | 型 | 説明 | +| ------------------------------------------------- | ------ | ---------------------------------------- | +| `common.slow_down_obstacle_type.unknown` | bool | 不明なオブジェクトを減速で考慮するフラグ | +| `common.slow_down_obstacle_type.car` | bool | 不明なオブジェクトを減速で考慮するフラグ | +| `common.slow_down_obstacle_type.truck` | bool | 不明なオブジェクトを減速で考慮するフラグ | +| ... | bool | ... | +| `behavior_determination.slow_down.max_lat_margin` | double | 減速障害物の最大横マージン | #### メモ @@ -167,8 +165,8 @@ struct Obstacle 交差障害物は、自己車両の軌道に対するヨー角が `behavior_determination.crossing_obstacle.obstacle_traj_angle_threshold` より小さい物体である。 -| Parameter | Type | Description | -|---|---|---| +| Parameter | Type | Description | +| ------------------------------------------------------------------------ | ------ | ---------------------------------------------------------------------------------------------- | | `behavior_determination.crossing_obstacle.obstacle_traj_angle_threshold` | double | 自車軌跡に対する障害物の最大角度。この角度を超えると障害物が軌跡を横切っていると判断する [rad] | ##### \*2: 충돌 시간 여유 부족 @@ -177,17 +175,17 @@ struct Obstacle 그런 다음 충돌 영역 내에 자차가 진입할 시간과 장애물이 충돌 영역 내에 진입하는 시간의 차이인 충돌 시간 여유를 계산합니다. 이 여유 시간이 `behavior_determination.stop.crossing_obstacle.collision_time_margin`보다 작으면 여유가 부족합니다. -| パラメータ | タイプ | 説明 | -| ------------------------------------------------- | ------ | ------------------------------------------------------- | -| `behavior_determination.stop.crossing_obstacle.collision_time_margin` | double | 自車と障害物との最大衝突時間マージン | +| パラメータ | タイプ | 説明 | +| --------------------------------------------------------------------- | ------ | ------------------------------------ | +| `behavior_determination.stop.crossing_obstacle.collision_time_margin` | double | 自車と障害物との最大衝突時間マージン | ### Stop Planning -| パラメータ | 型 | 説明 | -| -------------------------------------- | ------ | ------------------------------------------------------------------------------------------ | -| `common.min_strong_accel` | double | 自車の停止に必要な最小加速度 [m/ss] | -| `common.safe_distance_margin` | double | 障害物との安全距離 [m] | -| `common.terminal_safe_distance_margin` | double | 安全距離の範囲を超えない、障害物との最終安全距離 [m] | +| パラメータ | 型 | 説明 | +| -------------------------------------- | ------ | ---------------------------------------------------- | +| `common.min_strong_accel` | double | 自車の停止に必要な最小加速度 [m/ss] | +| `common.safe_distance_margin` | double | 障害物との安全距離 [m] | +| `common.terminal_safe_distance_margin` | double | 安全距離の範囲を超えない、障害物との最終安全距離 [m] | 停止計画の役割は、静止車両物体または動的/静止非車両物体と安全な距離を保つことです。 @@ -197,9 +195,9 @@ struct Obstacle ### クルーズプランニング -| パラメータ | 型 | 説明 | -| ------------------------------ | ------ | --------------------------------------------- | -| `common.safe_distance_margin` | double | 定速走行時の障害物との最小距離 [m] | +| パラメータ | 型 | 説明 | +| ----------------------------- | ------ | ---------------------------------- | +| `common.safe_distance_margin` | double | 定速走行時の障害物との最小距離 [m] | **クルーズプランニング** @@ -214,11 +212,11 @@ $$ ここで、$d_{rss}$ は計算された安全車間距離、$t_{idling}$ は先行車両の減速を自己車両が検出するまでのアイドリング時間、$v_{ego}$ は自己車両の現在の速度、$v_{obstacle}$ は先行障害物の現在の速度、$a_{ego}$ は自己車両の加速度、$a_{obstacle}$ は障害物の加速度と仮定します。 これらの値は以下のとおりにパラメータ化されます。自己車両の最小加速度などの他の一般的な値は `common.param.yaml` で定義されています。 -| パラメータ | タイプ | 説明 | -|---|---|---| -| `common.idling_time` | double | 前走車の減速開始を自己車両が検出するまでのアイドル時間 [s] | -| `common.min_ego_accel_for_rss` | double | RSS時の自己車両の加速度 [m/ss] | -| `common.min_object_accel_for_rss` | double | RSS時の前方の障害物の加速度 [m/ss] | +| パラメータ | タイプ | 説明 | +| --------------------------------- | ------ | ---------------------------------------------------------- | +| `common.idling_time` | double | 前走車の減速開始を自己車両が検出するまでのアイドル時間 [s] | +| `common.min_ego_accel_for_rss` | double | RSS時の自己車両の加速度 [m/ss] | +| `common.min_object_accel_for_rss` | double | RSS時の前方の障害物の加速度 [m/ss] | 詳細な定式は以下のとおりです。 @@ -233,14 +231,14 @@ v_{target} & = max(v_{ego} + v_{add}, v_{min, cruise}) \end{align} $$ -| 変数 | 説明 | -| ----------------- | --------------------------------------- | -| `d` |障害物までの実際の距離 | -| `d_{rss}` |RSSに基づく障害物までの理想的な距離 | -| `v_{min, cruise}` | `min_cruise_target_vel` | -| `w_{acc}` | `output_ratio_during_accel` | -| `lpf(val)` | `val`にローパスフィルタを適用 | -| `pid(val)` | `val`にPIDを適用 | +| 変数 | 説明 | +| ----------------- | ----------------------------------- | +| `d` | 障害物までの実際の距離 | +| `d_{rss}` | RSSに基づく障害物までの理想的な距離 | +| `v_{min, cruise}` | `min_cruise_target_vel` | +| `w_{acc}` | `output_ratio_during_accel` | +| `lpf(val)` | `val`にローパスフィルタを適用 | +| `pid(val)` | `val`にPIDを適用 | ### 減速計画 @@ -248,8 +246,8 @@ Autowareの減速計画では、障害物やその他の危険な状況を回避 **コンポーネント** -* **Planningコンポーネント:** 障害物を検出し、減速計画を計算します。 -* **Executionコンポーネント:** 減速計画を実行し、車両を所定の速度まで減速します。 +- **Planningコンポーネント:** 障害物を検出し、減速計画を計算します。 +- **Executionコンポーネント:** 減速計画を実行し、車両を所定の速度まで減速します。 **アルゴリズム** @@ -264,41 +262,41 @@ Autowareの減速計画では、障害物やその他の危険な状況を回避 減速計画アルゴリズムは、次のパラメータで構成できます。 -* **最小減速距離:** 障害物との衝突を回避するために必要とされる最小減速距離 -* **最大減速率:** 車両が減速できる最大減速率 -* **目標速度:** 障害物との衝突を回避するために減速する目標速度 +- **最小減速距離:** 障害物との衝突を回避するために必要とされる最小減速距離 +- **最大減速率:** 車両が減速できる最大減速率 +- **目標速度:** 障害物との衝突を回避するために減速する目標速度 **制限事項** 減速計画アルゴリズムには次のような制限があります。 -* **センサーの制限:** 障害物の検出は、ライダーセンサーやカメラの能力に依存します。 -* **計算コスト:** 減速計画の計算は、大量の計算リソースを必要とする場合があります。 -* **環境の動的性:** 減速計画は、周囲環境の変化を考慮しません。 +- **センサーの制限:** 障害物の検出は、ライダーセンサーやカメラの能力に依存します。 +- **計算コスト:** 減速計画の計算は、大量の計算リソースを必要とする場合があります。 +- **環境の動的性:** 減速計画は、周囲環境の変化を考慮しません。 **アプリケーション** 減速計画は、次のような自動運転アプリケーションに使用できます。 -* **衝突回避:** 障害物との衝突を回避します。 -* **渋滞への対応:** 渋滞で安全な速度を維持します。 -* **停止交差点での停止:** 交差点で安全に停止します。 - -| パラメーター | タイプ | 説明 | -| ----------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `slow_down.labels` | vector(文字列) | 障害物のラベルに基づいた減速動作をカスタマイズするためのラベルのベクトル。各ラベルは、減速の適用時に異なる扱いを受ける障害物のタイプを表します。使用可能なラベルは次のとおりです(「default」(必須)、「unknown」、「car」、「truck」、「bus」、「trailer」、「motorcycle」、「bicycle」または「pedestrian」) | -| `slow_down.default.static.min_lat_velocity` | double | 減速速度を線形に計算するための最小速度 [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が静止または移動していないと見なされた場合に、このデフォルト値が使用されます | -| `slow_down.default.static.max_lat_velocity` | double | 減速速度を線形に計算するための最大速度 [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が静止または移動していないと見なされた場合に、このデフォルト値が使用されます | -| `slow_down.default.static.min_lat_margin` | double | 減速速度を線形に計算するための最小横方向のマージン [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が静止または移動していないと見なされた場合に、このデフォルト値が使用されます | -| `slow_down.default.static.max_lat_margin` | double | 減速速度を線形に計算するための最大横方向のマージン [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が静止または移動していないと見なされた場合に、このデフォルト値が使用されます | -| `slow_down.default.moving.min_lat_velocity` | double | 減速速度を線形に計算するための最小速度 [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が移動していると見なされた場合に、このデフォルト値が使用されます | -| `slow_down.default.moving.max_lat_velocity` | double | 減速速度を線形に計算するための最大速度 [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が移動していると見なされた場合に、このデフォルト値が使用されます | -| `slow_down.default.moving.min_lat_margin` | double | 減速速度を線形に計算するための最小横方向のマージン [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が移動していると見なされた場合に、このデフォルト値が使用されます | -| `slow_down.default.moving.max_lat_margin` | double | 減速速度を線形に計算するための最大横方向のマージン [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が移動していると見なされた場合に、このデフォルト値が使用されます | -| `(オプション) slow_down."ラベル".(static & moving).min_lat_velocity` | double | 減速速度を線形に計算するための最小速度 [m]。注: `slow_down.labels` で指定された障害物のみを使用します。`static` と `moving` の値が必要です | -| `(オプション) slow_down."ラベル".(static & moving).max_lat_velocity` | double | 減速速度を線形に計算するための最大速度 [m]。注: `slow_down.labels` で指定された障害物のみを使用します。`static` と `moving` の値が必要です | -| `(オプション) slow_down."ラベル".(static & moving).min_lat_margin` | double | 減速速度を線形に計算するための最小横方向のマージン [m]。注: `slow_down.labels` で指定された障害物のみを使用します。`static` と `moving` の値が必要です | -| `(オプション) slow_down."ラベル".(static & moving).max_lat_margin` | double | 減速速度を線形に計算するための最大横方向のマージン [m]。注: `slow_down.labels` で指定された障害物のみを使用します。`static` と `moving` の値が必要です | +- **衝突回避:** 障害物との衝突を回避します。 +- **渋滞への対応:** 渋滞で安全な速度を維持します。 +- **停止交差点での停止:** 交差点で安全に停止します。 + +| パラメーター | タイプ | 説明 | +| -------------------------------------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `slow_down.labels` | vector(文字列) | 障害物のラベルに基づいた減速動作をカスタマイズするためのラベルのベクトル。各ラベルは、減速の適用時に異なる扱いを受ける障害物のタイプを表します。使用可能なラベルは次のとおりです(「default」(必須)、「unknown」、「car」、「truck」、「bus」、「trailer」、「motorcycle」、「bicycle」または「pedestrian」) | +| `slow_down.default.static.min_lat_velocity` | double | 減速速度を線形に計算するための最小速度 [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が静止または移動していないと見なされた場合に、このデフォルト値が使用されます | +| `slow_down.default.static.max_lat_velocity` | double | 減速速度を線形に計算するための最大速度 [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が静止または移動していないと見なされた場合に、このデフォルト値が使用されます | +| `slow_down.default.static.min_lat_margin` | double | 減速速度を線形に計算するための最小横方向のマージン [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が静止または移動していないと見なされた場合に、このデフォルト値が使用されます | +| `slow_down.default.static.max_lat_margin` | double | 減速速度を線形に計算するための最大横方向のマージン [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が静止または移動していないと見なされた場合に、このデフォルト値が使用されます | +| `slow_down.default.moving.min_lat_velocity` | double | 減速速度を線形に計算するための最小速度 [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が移動していると見なされた場合に、このデフォルト値が使用されます | +| `slow_down.default.moving.max_lat_velocity` | double | 減速速度を線形に計算するための最大速度 [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が移動していると見なされた場合に、このデフォルト値が使用されます | +| `slow_down.default.moving.min_lat_margin` | double | 減速速度を線形に計算するための最小横方向のマージン [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が移動していると見なされた場合に、このデフォルト値が使用されます | +| `slow_down.default.moving.max_lat_margin` | double | 減速速度を線形に計算するための最大横方向のマージン [m]。注: 検出された障害物のラベルが `slow_down.labels` のいずれとも一致せず、障害物が移動していると見なされた場合に、このデフォルト値が使用されます | +| `(オプション) slow_down."ラベル".(static & moving).min_lat_velocity` | double | 減速速度を線形に計算するための最小速度 [m]。注: `slow_down.labels` で指定された障害物のみを使用します。`static` と `moving` の値が必要です | +| `(オプション) slow_down."ラベル".(static & moving).max_lat_velocity` | double | 減速速度を線形に計算するための最大速度 [m]。注: `slow_down.labels` で指定された障害物のみを使用します。`static` と `moving` の値が必要です | +| `(オプション) slow_down."ラベル".(static & moving).min_lat_margin` | double | 減速速度を線形に計算するための最小横方向のマージン [m]。注: `slow_down.labels` で指定された障害物のみを使用します。`static` と `moving` の値が必要です | +| `(オプション) slow_down."ラベル".(static & moving).max_lat_margin` | double | 減速速度を線形に計算するための最大横方向のマージン [m]。注: `slow_down.labels` で指定された障害物のみを使用します。`static` と `moving` の値が必要です | 減速プランニングの役割は、障害物に近い軌跡のポイントに減速速度を挿入することです。障害物の種類(「slow_down.labels」を参照)に応じてパラメーターをカスタマイズすることができ、障害物が歩行者、自転車、車などであるかによって減速の動作を調整できます。各障害物タイプには「static」と「moving」のパラメーターセットがあり、障害物タイプとその動きに合わせて自己車両の減速レスポンスをカスタマイズできます。障害物が移動していると判断された場合、対応する「moving」パラメーターセットを使用して車両の減速を計算しますが、そうでない場合は「static」パラメーターを使用します。静的な「static」と移動中の「moving」の分離は、たとえば、視界を遮る可能性のある停止車両や、突然ドアを開ける可能性のある停止車両を追い越すときに大幅に減速するなど、自己車両の減速動作をカスタマイズするのに役立ちます。 @@ -308,13 +306,13 @@ Autowareの減速計画では、障害物やその他の危険な状況を回避 ![slow_down_velocity_calculation](./media/slow_down_velocity_calculation.svg) -| 変数 | 説明 | -| ---------- | ------------------------------------------------------ | -| `v_{out}` | 減速の計算速度 | -| `v_{min}` | `slow_down.min_lat_velocity` | -| `v_{max}` | `slow_down.max_lat_velocity` | -| `l_{min}` | `slow_down.min_lat_margin` | -| `l_{max}` | `slow_down.max_lat_margin` | +| 変数 | 説明 | +| ---------- | ------------------------------------------------- | +| `v_{out}` | 減速の計算速度 | +| `v_{min}` | `slow_down.min_lat_velocity` | +| `v_{max}` | `slow_down.max_lat_velocity` | +| `l_{min}` | `slow_down.min_lat_margin` | +| `l_{max}` | `slow_down.max_lat_margin` | | `l'_{max}` | `behavior_determination.slow_down.max_lat_margin` | 計算された速度は、障害物が「behavior_determination.slow_down.max_lat_margin」のある領域内にある軌跡に挿入されます。 @@ -330,7 +328,6 @@ Autowareの減速計画では、障害物やその他の危険な状況を回避 停止およびクルーズプランニング用のさまざまなアルゴリズムが実装され、ユースケースに応じてそのうちの1つが指定されます。 コアアルゴリズム実装「generateTrajectory」は、指定されたアルゴリズムに依存します。 - ```plantuml @startuml title onTrajectory @@ -376,8 +373,8 @@ stop 現在は、PIDベースのプランナのみがサポートされています。 各プランナについては以下で説明します。 -| パラメータ | タイプ | 説明 | -| ------------------------ | ------ | ------------------------------------------------- | +| パラメータ | タイプ | 説明 | +| ------------------------ | ------ | -------------------------------------------------- | | `common.planning_method` | string | CruiseとStop計画アルゴリズム。「pid_base」から選択 | ### PIDベースプランナ @@ -386,8 +383,8 @@ stop `pid_based_planner`名前空間で、 -| パラメーター | タイプ | 説明 | -|---|---|---| +| パラメーター | タイプ | 説明 | +| ------------------------------------------------- | ------ | ---------------------------------------------------- | | `obstacle_velocity_threshold_from_cruise_to_stop` | double | 定速走行から停止へと移行する際の障害物速度閾値 [m/s] | 停止プランニングでは、障害物を1つだけ対象にします。 @@ -400,14 +397,14 @@ stop `pid_based_planner` 名前空間では、 -| パラメータ | 型 | 説明 | -| --------------------------- | ------ | -------------------------------------------------------------------------------------------------------- | -| `kp` | double | PID制御のPゲイン [-] | -| `ki` | double | PID制御のIゲイン [-] | -| `kd` | double | PID制御のDゲイン [-] | -| `output_ratio_during_accel` | double | 加速時に、先行車両を追従するために、出力速度にこの係数を乗算します。 [-] | -| `vel_to_acc_weight` | double | 目標加速度は目標速度 \* `vel_to_acc_weight` です。 [-] | -| `min_cruise_target_vel` | double | 定速走行中の最低目標速度 [m/s] | +| パラメータ | 型 | 説明 | +| --------------------------- | ------ | ------------------------------------------------------------------------ | +| `kp` | double | PID制御のPゲイン [-] | +| `ki` | double | PID制御のIゲイン [-] | +| `kd` | double | PID制御のDゲイン [-] | +| `output_ratio_during_accel` | double | 加速時に、先行車両を追従するために、出力速度にこの係数を乗算します。 [-] | +| `vel_to_acc_weight` | double | 目標加速度は目標速度 \* `vel_to_acc_weight` です。 [-] | +| `min_cruise_target_vel` | double | 定速走行中の最低目標速度 [m/s] | 安全距離を確保するために、目標速度と加速度が計算され、外部速度制限として速度平滑化パッケージ (`motion_velocity_smoother` が初期値) に送信されます。 目標速度と加速度はそれぞれ、基準安全距離と実際の距離の誤差に従って PID コントローラで計算されます。 @@ -425,8 +422,8 @@ stop 挙動モジュールと `autoware_obstacle_cruise_planner` 間の停止ポイントの非整合を解決するために、`common.min_behavior_stop_margin` が定義されています。 先に説明した横断歩道の場合は、`autoware_obstacle_cruise_planner` は、エゴと障害物の間に少なくとも `common.min_behavior_stop_margin` の距離で停止ポイントを挿入します。 -| パラメータ | 型 | 説明 | -| --------------------------------- | ------ | ---------------------------------------------------------------------- | +| パラメータ | 型 | 説明 | +| --------------------------------- | ---- | -------------------------------------------------------------------- | | `common.min_behavior_stop_margin` | 数値 | ビヘイビアモジュールが有効な状態で停止した場合の最小停止マージン [m] | ### ターゲット障害物内の最も近い停止障害物を保持する機能 @@ -437,8 +434,8 @@ stop 新しい停止障害物が現れて以前の最も近い障害物がリストから削除された場合、その障害物をターゲット障害物に再び追加しないことに注意してください。 -| パラメータ | タイプ | 説明 | -| ------------------------------------------------------------ | ------ | ------------------------------------------------ | +| パラメータ | タイプ | 説明 | +| ---------------------------------------------------------- | ------ | -------------------------------------- | | `behavior_determination.stop_obstacle_hold_time_threshold` | double | 最近接停止障害物を保持する最大時間 [s] | ## デバッグ方法 @@ -453,4 +450,3 @@ stop - 現在、障害物の車線変更の予測パスでは障害物クルーズプランナーの精度を確保できません。したがって、`rough_detection_area`は小さい値に設定します。 - PIDベースプランナー - アルゴリズムは、自車が指定された目標速度を実現するかどうかが、速度スムージングパッケージ(既定では`motion_velocity_smoother`)に大きく依存します。速度スムージングパッケージを更新した場合は、車両の挙動を可能な限り注意してください。 - diff --git a/planning/autoware_obstacle_stop_planner/README.md b/planning/autoware_obstacle_stop_planner/README.md index 166a12fd0595..905143a7becc 100644 --- a/planning/autoware_obstacle_stop_planner/README.md +++ b/planning/autoware_obstacle_stop_planner/README.md @@ -13,36 +13,36 @@ ### 入力トピック -| 名称 | タイプ | 説明 | -| --------------------------- | ------------------------------------------ | ------------ | -| `~/input/pointcloud` | `sensor_msgs::PointCloud2` | 障害物点群 | -| `~/input/trajectory` | `autoware_planning_msgs::Trajectory` | 経路 | +| 名称 | タイプ | 説明 | +| --------------------------- | -------------------------------------------- | -------------- | +| `~/input/pointcloud` | `sensor_msgs::PointCloud2` | 障害物点群 | +| `~/input/trajectory` | `autoware_planning_msgs::Trajectory` | 経路 | | `~/input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップ | -| `~/input/odometry` | `nav_msgs::Odometry` | 車両速度 | -| `~/input/dynamic_objects` | `autoware_perception_msgs::PredictedObjects` | 動的物体 | +| `~/input/odometry` | `nav_msgs::Odometry` | 車両速度 | +| `~/input/dynamic_objects` | `autoware_perception_msgs::PredictedObjects` | 動的物体 | | `~/input/expand_stop_range` | `tier4_planning_msgs::msg::ExpandStopRange` | 停止範囲の拡張 | ### 出力トピック -| 名称 | タイプ | 説明 | -|---|---|---| -| `~output/trajectory` | autoware_planning_msgs::Trajectory | 走行軌跡 | +| 名称 | タイプ | 説明 | +| ---------------------- | ------------------------------------ | -------------------- | +| `~output/trajectory` | autoware_planning_msgs::Trajectory | 走行軌跡 | | `~output/stop_reasons` | tier4_planning_msgs::StopReasonArray | 停止を引き起こす理由 | ### 共通パラメータ {{ json_to_markdown("planning/autoware_obstacle_stop_planner/schema/common.schema.json") | ja-markdown }} -| パラメータ | 型 | 説明 | -|---|---|---| -| `enable_slow_down` | bool | 低速化プランナを有効にする [-] | -| `max_velocity` | double | 最大速度 [m/s] | -| `chattering_threshold` | double | 障害物が消滅しても、停止判定を一定時間続ける [s](チャタリング防止) | -| `enable_z_axis_obstacle_filtering` | bool | z軸(高さ)方向の障害物をフィルタする [-] | -| `z_axis_filtering_buffer` | double | z軸フィルタのための追加バッファ [m] | -| `use_predicted_objects` | bool | 衝突検出と減速検出に予測オブジェクトを使用する [-] | +| パラメータ | 型 | 説明 | +| -------------------------------------- | ------ | ------------------------------------------------------------------------------------------------ | +| `enable_slow_down` | bool | 低速化プランナを有効にする [-] | +| `max_velocity` | double | 最大速度 [m/s] | +| `chattering_threshold` | double | 障害物が消滅しても、停止判定を一定時間続ける [s](チャタリング防止) | +| `enable_z_axis_obstacle_filtering` | bool | z軸(高さ)方向の障害物をフィルタする [-] | +| `z_axis_filtering_buffer` | double | z軸フィルタのための追加バッファ [m] | +| `use_predicted_objects` | bool | 衝突検出と減速検出に予測オブジェクトを使用する [-] | | `predicted_object_filtering_threshold` | double | 予測オブジェクトをフィルタするための閾値 [有効なのはpublish_obstacle_polygon trueの場合のみ] [m] | -| `publish_obstacle_polygon` | bool | use_predicted_objectsがtrueの場合、ノードが衝突ポリゴンを公開する [-] | +| `publish_obstacle_polygon` | bool | use_predicted_objectsがtrueの場合、ノードが衝突ポリゴンを公開する [-] | ## 障害物停止プランナー @@ -94,24 +94,23 @@ #### 停止位置 -| パラメータ | データ型 | 説明 | -|---|---|---| -| `max_longitudinal_margin` | double | 障害物と本車両前面とのマージン [m] | -| `max_longitudinal_margin_behind_goal` | double | 停止点がゴールの後ろにある場合の障害物と本車両前面とのマージン [m] | -| `min_longitudinal_margin` | double | `max_longitudinal_margin` 内に障害物がある場合、モジュールは停止マージンの値を `min_longitudinal_margin` [m] に設定します | -| `hold_stop_margin_distance` | double | 再起動防止のパラメータ(上のセクションを参照) [m] | +| パラメータ | データ型 | 説明 | +| ------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------- | +| `max_longitudinal_margin` | double | 障害物と本車両前面とのマージン [m] | +| `max_longitudinal_margin_behind_goal` | double | 停止点がゴールの後ろにある場合の障害物と本車両前面とのマージン [m] | +| `min_longitudinal_margin` | double | `max_longitudinal_margin` 内に障害物がある場合、モジュールは停止マージンの値を `min_longitudinal_margin` [m] に設定します | +| `hold_stop_margin_distance` | double | 再起動防止のパラメータ(上のセクションを参照) [m] | #### 障害物検出領域 -| パラメータ | 型 | 説明 | -| -------------------------------------- | -------- | -------------------------------------------------------------------------------------------- | -| `lateral_margin` | double | 障害物検知領域の車輪軌跡からの横マージン [m] | -| `step_length` | double | 点群検索範囲のステップ長 [m] | -| `enable_stop_behind_goal_for_obstacle` | bool | 障害物検出のためにゴールレーンを超えてトラジェクトリを延長 | +| パラメータ | 型 | 説明 | +| -------------------------------------- | ------ | ---------------------------------------------------------- | +| `lateral_margin` | double | 障害物検知領域の車輪軌跡からの横マージン [m] | +| `step_length` | double | 点群検索範囲のステップ長 [m] | +| `enable_stop_behind_goal_for_obstacle` | bool | 障害物検出のためにゴールレーンを超えてトラジェクトリを延長 | ### フローチャート - ```plantuml @startuml title insertStopPoint @@ -176,27 +175,26 @@ $v_{target} = v_{min} + \frac{l_{ld} - l_{vw}/2}{l_{margin}} (v_{max} - v_{min} #### 減速区間 -| パラメーター | 型 | 説明 | -| ------------------------------ | ------ | ----------------------------------------------- | +| パラメーター | 型 | 説明 | +| ------------------------------ | ------ | -------------------------------- | | `longitudinal_forward_margin` | double | 自車前面と障害物間のマージン [m] | -| `longitudinal_backward_margin` | double | 自車後面と障害物間のマージン [m] | +| `longitudinal_backward_margin` | double | 自車後面と障害物間のマージン [m] | #### 障害物検知領域 -| パラメータ | タイプ | 説明 | -| ---------------- | ------ | ----------------------------------------------------------------------------------- | -| `lateral_margin` | double | 減速障害検出エリアの車両フットプリントからの横方向マージン [m] | +| パラメータ | タイプ | 説明 | +| ---------------- | ------ | -------------------------------------------------------------- | +| `lateral_margin` | double | 減速障害検出エリアの車両フットプリントからの横方向マージン [m] | #### 減速目標速度 -| パラメータ名 | 型 | 説明 | -| ------------------------- | ------ | ----------------------------------- | -| `max_slow_down_velocity` | double | 最大減速速度 [m/s] | -| `min_slow_down_velocity` | double | 最小減速速度 [m/s] | +| パラメータ名 | 型 | 説明 | +| ------------------------ | ------ | ------------------ | +| `max_slow_down_velocity` | double | 最大減速速度 [m/s] | +| `min_slow_down_velocity` | double | 最小減速速度 [m/s] | ### フローチャート - ```plantuml @startuml title insertDecelerationPoint @@ -229,42 +227,41 @@ stop `Adaptive Cruise Controller`モジュールは、軌道上に動的点群がある場合、軌道内の最大速度を組み込みます。最大速度の値は、自車速度、点群速度(=前走車速度)、および点群までの距離(=前走車までの距離)によって異なります。 -| パラメータ | 型 | 説明 | -| -------------------------------------------------------------- | --- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `adaptive_cruise_control.use_object_to_estimate_vel` | bool | 物体の速度を推定するために動的な物体を使用するかどうか(osp.use_predicted_objectsがfalseの場合にのみ有効) | -| `adaptive_cruise_control.use_pcl_to_estimate_vel` | bool | 物体の速度を推定するために生の点群を使用するかどうか(osp.use_predicted_objectsがfalseの場合にのみ有効) | -| `adaptive_cruise_control.consider_obj_velocity` | bool | 追従走行時に目標速度を計算するために車両の速度を考慮するかどうか | -| `adaptive_cruise_control.obstacle_velocity_thresh_to_start_acc` | double | 前方障害物の速度がこの値を超えると追従走行を開始する [m/s] | -| `adaptive_cruise_control.obstacle_velocity_thresh_to_stop_acc` | double | 前方障害物の速度がこの値を下回るとACCを停止する [m/s] | -| `adaptive_cruise_control.emergency_stop_acceleration` | double | 緊急停止時の想定最小加速度(減速度)[m/ss] | -| `adaptive_cruise_control.emergency_stop_idling_time` | double | 緊急停止を開始するための想定停止時間 [s] | -| `adaptive_cruise_control.min_dist_stop` | double | 緊急停止の最小距離 [m] | -| `adaptive_cruise_control.obstacle_emergency_stop_acceleration` | double | 緊急停止時の想定最小加速度(減速度)[m/ss] | -| `adaptive_cruise_control.max_standard_acceleration` | double | 追従走行時の想定最大加速度 [m/ss] | -| `adaptive_cruise_control.min_standard_acceleration` | double | 追従走行時の想定最小加速度(減速度)[m/ss] | -| `adaptive_cruise_control.standard_idling_time` | double | 追従走行時に物体に対して反応する想定停止時間 [s] | -| `adaptive_cruise_control.min_dist_standard` | double | 追従走行時の最小距離 [m] | -| `adaptive_cruise_control.obstacle_min_standard_acceleration` | double | 前方障害物の想定最小加速度 [m/ss] | -| `adaptive_cruise_control.margin_rate_to_change_vel` | double | 目標速度を挿入するための余裕距離率 [-] | -| `adaptive_cruise_control.use_time_compensation_to_calc_distance` | bool | 前方車両との距離を計算するために時間補正を使用する | -| `adaptive_cruise_control.p_coefficient_positive` | double | PID制御における係数P(target_dist - current_dist >=0の場合に使用)[-] | -| `adaptive_cruise_control.p_coefficient_negative` | double | PID制御における係数P(target_dist - current_dist <0の場合に使用)[-] | -| `adaptive_cruise_control.d_coefficient_positive` | double | PID制御における係数D(delta_dist >=0の場合に使用)[-] | -| `adaptive_cruise_control.d_coefficient_negative` | double | PID制御における係数D(delta_dist <0の場合に使用)[-] | -| `adaptive_cruise_control.object_polygon_length_margin` | double | 点群オブジェクトマッチングでオブジェクトの多角形の長さを延長する距離 [m] | -| `adaptive_cruise_control.object_polygon_width_margin` | double | 点群オブジェクトマッチングでオブジェクトの多角形の幅を延長する距離 [m] | -| `adaptive_cruise_control.valid_estimated_vel_diff_time` | double | 点群を使用した速度推定で連続したポイントとして扱われる最大時間差 [s] | -| `adaptive_cruise_control.valid_vel_que_time` | double | 点群を使用した速度推定で使用される情報の時間幅 [s] | -| `adaptive_cruise_control.valid_estimated_vel_max` | double | 点群を使用した速度推定で有効な速度推定結果の最大値 [m/s] | -| `adaptive_cruise_control.valid_estimated_vel_min` | double | 点群を使用した速度推定で有効な速度推定結果の最小値 [m/s] | -| `adaptive_cruise_control.thresh_vel_to_stop` | double | ACCにより計算された最大速度がこの速度よりも低い場合、停止線を埋め込む [m/s] | -| `adaptive_cruise_control.lowpass_gain_of_upper_velocity` | double | 目標速度のローパスゲイン | -| `adaptive_cruise_control.use_rough_velocity_estimation:` | bool | 速度推定に失敗した場合にラフに速度を推定する(osp.use_predicted_objectsがfalseの場合にのみ有効) | -| `adaptive_cruise_control.rough_velocity_rate` | double | ラフな速度推定では、前方の車両の速度は自車位置の現在の速度 * この値として推定される | +| パラメータ | 型 | 説明 | +| ---------------------------------------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- | +| `adaptive_cruise_control.use_object_to_estimate_vel` | bool | 物体の速度を推定するために動的な物体を使用するかどうか(osp.use_predicted_objectsがfalseの場合にのみ有効) | +| `adaptive_cruise_control.use_pcl_to_estimate_vel` | bool | 物体の速度を推定するために生の点群を使用するかどうか(osp.use_predicted_objectsがfalseの場合にのみ有効) | +| `adaptive_cruise_control.consider_obj_velocity` | bool | 追従走行時に目標速度を計算するために車両の速度を考慮するかどうか | +| `adaptive_cruise_control.obstacle_velocity_thresh_to_start_acc` | double | 前方障害物の速度がこの値を超えると追従走行を開始する [m/s] | +| `adaptive_cruise_control.obstacle_velocity_thresh_to_stop_acc` | double | 前方障害物の速度がこの値を下回るとACCを停止する [m/s] | +| `adaptive_cruise_control.emergency_stop_acceleration` | double | 緊急停止時の想定最小加速度(減速度)[m/ss] | +| `adaptive_cruise_control.emergency_stop_idling_time` | double | 緊急停止を開始するための想定停止時間 [s] | +| `adaptive_cruise_control.min_dist_stop` | double | 緊急停止の最小距離 [m] | +| `adaptive_cruise_control.obstacle_emergency_stop_acceleration` | double | 緊急停止時の想定最小加速度(減速度)[m/ss] | +| `adaptive_cruise_control.max_standard_acceleration` | double | 追従走行時の想定最大加速度 [m/ss] | +| `adaptive_cruise_control.min_standard_acceleration` | double | 追従走行時の想定最小加速度(減速度)[m/ss] | +| `adaptive_cruise_control.standard_idling_time` | double | 追従走行時に物体に対して反応する想定停止時間 [s] | +| `adaptive_cruise_control.min_dist_standard` | double | 追従走行時の最小距離 [m] | +| `adaptive_cruise_control.obstacle_min_standard_acceleration` | double | 前方障害物の想定最小加速度 [m/ss] | +| `adaptive_cruise_control.margin_rate_to_change_vel` | double | 目標速度を挿入するための余裕距離率 [-] | +| `adaptive_cruise_control.use_time_compensation_to_calc_distance` | bool | 前方車両との距離を計算するために時間補正を使用する | +| `adaptive_cruise_control.p_coefficient_positive` | double | PID制御における係数P(target_dist - current_dist >=0の場合に使用)[-] | +| `adaptive_cruise_control.p_coefficient_negative` | double | PID制御における係数P(target_dist - current_dist <0の場合に使用)[-] | +| `adaptive_cruise_control.d_coefficient_positive` | double | PID制御における係数D(delta_dist >=0の場合に使用)[-] | +| `adaptive_cruise_control.d_coefficient_negative` | double | PID制御における係数D(delta_dist <0の場合に使用)[-] | +| `adaptive_cruise_control.object_polygon_length_margin` | double | 点群オブジェクトマッチングでオブジェクトの多角形の長さを延長する距離 [m] | +| `adaptive_cruise_control.object_polygon_width_margin` | double | 点群オブジェクトマッチングでオブジェクトの多角形の幅を延長する距離 [m] | +| `adaptive_cruise_control.valid_estimated_vel_diff_time` | double | 点群を使用した速度推定で連続したポイントとして扱われる最大時間差 [s] | +| `adaptive_cruise_control.valid_vel_que_time` | double | 点群を使用した速度推定で使用される情報の時間幅 [s] | +| `adaptive_cruise_control.valid_estimated_vel_max` | double | 点群を使用した速度推定で有効な速度推定結果の最大値 [m/s] | +| `adaptive_cruise_control.valid_estimated_vel_min` | double | 点群を使用した速度推定で有効な速度推定結果の最小値 [m/s] | +| `adaptive_cruise_control.thresh_vel_to_stop` | double | ACCにより計算された最大速度がこの速度よりも低い場合、停止線を埋め込む [m/s] | +| `adaptive_cruise_control.lowpass_gain_of_upper_velocity` | double | 目標速度のローパスゲイン | +| `adaptive_cruise_control.use_rough_velocity_estimation:` | bool | 速度推定に失敗した場合にラフに速度を推定する(osp.use_predicted_objectsがfalseの場合にのみ有効) | +| `adaptive_cruise_control.rough_velocity_rate` | double | ラフな速度推定では、前方の車両の速度は自車位置の現在の速度 * この値として推定される | ### フローチャート - ```plantuml @startuml title insertTargetVelocity() @@ -390,4 +387,3 @@ $d_{standard} = d_{margin_{standard}} + t_{idling_{standard}} \cdot v_{ego} + (- - `自適巡航制御` の速度推定アルゴリズムは、オブジェクト追跡モジュールに依存しています。オブジェクト追跡が失敗したり、追跡結果が誤っている場合、車両が危険な挙動をする可能性があることに注意してください。 - 後退走行では動作しませんが、入力されたパスをそのまま公開します。後退走行時に障害物に対して停止したい場合は、[obstacle_cruise_planner](../autoware_obstacle_cruise_planner/README.md) を使用してください。 - diff --git a/planning/autoware_path_optimizer/README.md b/planning/autoware_path_optimizer/README.md index 1fe72eedbd6c..cfc7447f8a4e 100644 --- a/planning/autoware_path_optimizer/README.md +++ b/planning/autoware_path_optimizer/README.md @@ -19,10 +19,10 @@ ### 入力 -| 名前 | タイプ | 説明 | -| ----------------- | ------------------------------- | ------------------------------------------------------ | -| `~/input/path` | autoware_planning_msgs/msg/Path | 参照パスと対応する走行可能領域 | -| `~/input/odometry` | nav_msgs/msg/Odometry | 自車の現在の速度 | +| 名前 | タイプ | 説明 | +| ------------------ | ------------------------------- | ------------------------------ | +| `~/input/path` | autoware_planning_msgs/msg/Path | 参照パスと対応する走行可能領域 | +| `~/input/odometry` | nav_msgs/msg/Odometry | 自車の現在の速度 | ### 出力 @@ -50,7 +50,7 @@ 計画コンポーネントは、次の経路検索アルゴリズムを使用します。 -- *Dijkstra法* +- _Dijkstra法_ - *A*法 ## 経路最適化 @@ -90,15 +90,14 @@ Autowareの計画コンポーネントは、ROSベースのアーキテクチャ - [Autoware 計画コンポーネントドキュメント](https://autoware.gitbooks.io/autoware.ai/content/wiki/planning.html) -| 名称 | 種類 | 説明 | -| --------------------- | --------------------------------- | ---------------------------------------------------------------------- | -| `~/output/trajectory` | autoware_planning_msgs/msg/Trajectory | 走行可能で衝突のない最適化された経路 | +| 名称 | 種類 | 説明 | +| --------------------- | ------------------------------------- | ------------------------------------ | +| `~/output/trajectory` | autoware_planning_msgs/msg/Trajectory | 走行可能で衝突のない最適化された経路 | ## フローチャート 機能のフローチャートについては、以下で説明します。 - ```plantuml @startuml title pathCallback @@ -143,7 +142,6 @@ stop 以下のデータがプランニング用に作成されます。 - ```cpp struct PlannerData { @@ -281,4 +279,3 @@ _理由_ ## デバッグ方法 デバッグ方法は [こちら](docs/debug.md) に記載されています。 - diff --git a/planning/autoware_path_smoother/README.md b/planning/autoware_path_smoother/README.md index 8c41c46f338a..a0df122dd1f0 100644 --- a/planning/autoware_path_smoother/README.md +++ b/planning/autoware_path_smoother/README.md @@ -9,4 +9,3 @@ ### エラスティックバンド エラスティックバンドの詳細については、[こちら](docs/eb.md)を参照してください。 - diff --git a/planning/autoware_planning_test_manager/README.md b/planning/autoware_planning_test_manager/README.md index 62a12699780c..0b28d47c3a6c 100644 --- a/planning/autoware_planning_test_manager/README.md +++ b/planning/autoware_planning_test_manager/README.md @@ -12,17 +12,16 @@ ### 通常動作の確認 -テスト対象ノードについて、ノードが正しく動作し、後続のノードに必要なメッセージをパブリッシュすることを確認します。これを行うには、test\_nodeに必要なメッセージをパブリッシュし、ノードの出力が出力されていることを確認します。 +テスト対象ノードについて、ノードが正しく動作し、後続のノードに必要なメッセージをパブリッシュすることを確認します。これを行うには、test_nodeに必要なメッセージをパブリッシュし、ノードの出力が出力されていることを確認します。 ### 特殊な入力のロバスト性確認 -通常動作を確認した後、例外的な入力が与えられたときにテスト対象ノードがクラッシュしないことを確認します。これを行うには、test\_nodeから例外的な入力を提供し、ノードがクラッシュしないことを確認します。 +通常動作を確認した後、例外的な入力が与えられたときにテスト対象ノードがクラッシュしないことを確認します。これを行うには、test_nodeから例外的な入力を提供し、ノードがクラッシュしないことを確認します。 (WIP) ## 使用方法 - ```cpp TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionTrajectory) @@ -71,18 +70,18 @@ TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionTrajectory) ## 実装されたテスト -| ノード | テスト名 | 例外的入力 | 出力 | 例外的な入力パターン | -| --------------------------- | ----------------------------------------------------------------------------------------- | ----------------- | -------------- | ------------------------------------------------------------------------------------- | -| autoware_planning_validator | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | -| velocity_smoother | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | -| obstacle_cruise_planner | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | -| obstacle_stop_planner | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | -| obstacle_velocity_limiter | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | -| path_optimizer | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | +| ノード | テスト名 | 例外的入力 | 出力 | 例外的な入力パターン | +| --------------------------- | ----------------------------------------------------------------------------------------- | ----------------- | -------------- | ----------------------------------------------------------------------------- | +| autoware_planning_validator | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | +| velocity_smoother | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | +| obstacle_cruise_planner | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | +| obstacle_stop_planner | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | +| obstacle_velocity_limiter | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | +| path_optimizer | NodeTestWithExceptionTrajectory | trajectory | trajectory | 空、単一ポイント、重複ポイントを含むパス | | scenario_selector | NodeTestWithExceptionTrajectoryLaneDrivingMode NodeTestWithExceptionTrajectoryParkingMode | trajectory | scenario | LANEDRIVING および PARKING シナリオの空、単一ポイント、重複ポイントを含むパス | -| freespace_planner | NodeTestWithExceptionRoute | route | trajectory | 空のルート | -| behavior_path_planner | NodeTestWithExceptionRoute NodeTestWithOffTrackEgoPose | route | route odometry | 空のルート オフレーン自己位置 | -| behavior_velocity_planner | NodeTestWithExceptionPathWithLaneID | path_with_lane_id | path | 空のパス | +| freespace_planner | NodeTestWithExceptionRoute | route | trajectory | 空のルート | +| behavior_path_planner | NodeTestWithExceptionRoute NodeTestWithOffTrackEgoPose | route | route odometry | 空のルート オフレーン自己位置 | +| behavior_velocity_planner | NodeTestWithExceptionPathWithLaneID | path_with_lane_id | path | 空のパス | ## 重要な注意事項 @@ -91,4 +90,3 @@ TEST(PlanningModuleInterfaceTest, NodeTestWithExceptionTrajectory) ## 今後の拡張 / 未実装部分 (WIP) - diff --git a/planning/autoware_planning_topic_converter/README.md b/planning/autoware_planning_topic_converter/README.md index 74e4d1851efa..8b1e6497d7be 100644 --- a/planning/autoware_planning_topic_converter/README.md +++ b/planning/autoware_planning_topic_converter/README.md @@ -10,7 +10,6 @@ このパッケージ内のツールは、合成可能なROS 2コンポーネントノードとして提供されるので、既存のプロセスにスポーンしたり、起動ファイルから起動したり、コマンドラインから呼び出すことができます。 - ```xml @@ -25,12 +24,11 @@ ## パラメータ -| 名前 | 種別 | 説明 | -| :------------- | :----- | :--------------------------------------- | -| `input_topic` | 文字列 | 入力トピック名 | -| `output_topic` | 文字列 | 出力トピック名 | +| 名前 | 種別 | 説明 | +| :------------- | :----- | :------------- | +| `input_topic` | 文字列 | 入力トピック名 | +| `output_topic` | 文字列 | 出力トピック名 | ## 想定条件/既知の限界 ## 将来的に拡張予定の部分/未実装の部分 - diff --git a/planning/autoware_planning_validator/README.md b/planning/autoware_planning_validator/README.md index 8f68780e9414..8d9b3697d784 100644 --- a/planning/autoware_planning_validator/README.md +++ b/planning/autoware_planning_validator/README.md @@ -30,6 +30,7 @@ ### 出力 `autoware_planning_validator` は次の出力を出力します: + - **/diagnostics** : このモジュールの診断ステータスに関する情報 - **/validation_status** : 軌道の検証ステータス @@ -37,20 +38,20 @@ `autoware_planning_validator` は次の入力を取ります: -| 名称 | タイプ | 説明 | -| -------------------- | --------------------------------- | ---------------------------------------------- | -| `~/input/kinematics` | nav_msgs/Odometry | 自車位置と速度 | +| 名称 | タイプ | 説明 | +| -------------------- | --------------------------------- | -------------------------------- | +| `~/input/kinematics` | nav_msgs/Odometry | 自車位置と速度 | | `~/input/trajectory` | autoware_planning_msgs/Trajectory | 本ノードで検証するターゲット軌跡 | ### 出力 次のものを出力します。 -| 名称 | タイプ | 説明 | -| ---------------------------- | ------------------------------------------ | ------------------------------------------------------------------------- | -| `~/output/trajectory` | autoware_planning_msgs/Trajectory | 検証済みの走行軌跡 | +| 名称 | タイプ | 説明 | +| ---------------------------- | ------------------------------------------ | --------------------------------------------------------------- | +| `~/output/trajectory` | autoware_planning_msgs/Trajectory | 検証済みの走行軌跡 | | `~/output/validation_status` | planning_validator/PlanningValidatorStatus | バリデータのステータスで、走行軌跡が有効/無効の理由を通知します | -| `/diagnostics` | diagnostic_msgs/DiagnosticStatus | エラーを報告する診断 | +| `/diagnostics` | diagnostic_msgs/DiagnosticStatus | エラーを報告する診断 | ## パラメータ @@ -58,12 +59,12 @@ ### システムパラメータ -| 名前 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `invalid_trajectory_handling_type` | int | 無効な経路が見つかった場合の処理を設定します。
0: 無効でも経路を公開する
1: 経路の公開を停止する
2: 最後に検証済の経路を公開する。 | 0 | -| `publish_diag` | bool | 連続した無効な経路の数がこの閾値を超えると、DiagがERRORに設定されます。(例: threshold = 1の場合、たとえ経路が無効でも、次の経路が有効であればDiagはERRORになりません。) | true | -| `diag_error_count_threshold` | int | trueの場合、診断メッセージが公開されます。 | true | -| `display_on_terminal` | bool | エラーメッセージをターミナルに表示する | true | +| 名前 | タイプ | 説明 | デフォルト値 | +| ---------------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | +| `invalid_trajectory_handling_type` | int | 無効な経路が見つかった場合の処理を設定します。
0: 無効でも経路を公開する
1: 経路の公開を停止する
2: 最後に検証済の経路を公開する。 | 0 | +| `publish_diag` | bool | 連続した無効な経路の数がこの閾値を超えると、DiagがERRORに設定されます。(例: threshold = 1の場合、たとえ経路が無効でも、次の経路が有効であればDiagはERRORになりません。) | true | +| `diag_error_count_threshold` | int | trueの場合、診断メッセージが公開されます。 | true | +| `display_on_terminal` | bool | エラーメッセージをターミナルに表示する | true | ### アルゴリズムパラメータ @@ -71,19 +72,19 @@ インデックスが以下の閾値を超えた場合、入力軌跡は無効として検出されます。 -| 名前 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `thresholds.interval` | 数値 | 2つの近隣の経路ポイント間の距離の無効しきい値 [`m`] | 100.0 | -| `thresholds.relative_angle` | 数値 | 2つの近隣の経路ポイント間の相対角度の無効しきい値 [`rad`] | 2.0 | -| `thresholds.curvature` | 数値 | 各経路ポイントの曲率の無効しきい値 [`1/m`] | 1.0 | -| `thresholds.lateral_acc` | 数値 | 各経路ポイントの横加速度の無効しきい値 [`m/ss`] | 9.8 | -| `thresholds.longitudinal_max_acc` | 数値 | 各経路ポイントの最大縦加速度の無効しきい値 [`m/ss`] | 9.8 | -| `thresholds.longitudinal_min_acc` | 数値 | 各経路ポイントの最小縦減速度の無効しきい値 [`m/ss`] | -9.8 | -| `thresholds.steering` | 数値 | 各経路ポイントの操舵角の無効しきい値 [`rad`] | 1.414 | -| `thresholds.steering_rate` | 数値 | 各経路ポイントの操舵角速度の無効しきい値 [`rad/s`] | 10.0 | -| `thresholds.velocity_deviation` | 数値 | エゴの速度とエゴに最も近い経路ポイント間の速度偏差の無効しきい値 [`m/s`] | 100.0 | -| `thresholds.distance_deviation` | 数値 | エゴの位置とエゴに最も近い経路ポイント間の距離偏差の無効しきい値 [`m`] | 100.0 | -| `parameters.longitudinal_distance_deviation` | 数値 | エゴの位置と経路間の縦方向距離偏差の無効しきい値 [`m`] | 2.0 | +| 名前 | タイプ | 説明 | デフォルト値 | +| -------------------------------------------- | ------ | ------------------------------------------------------------------------ | ------------ | +| `thresholds.interval` | 数値 | 2つの近隣の経路ポイント間の距離の無効しきい値 [`m`] | 100.0 | +| `thresholds.relative_angle` | 数値 | 2つの近隣の経路ポイント間の相対角度の無効しきい値 [`rad`] | 2.0 | +| `thresholds.curvature` | 数値 | 各経路ポイントの曲率の無効しきい値 [`1/m`] | 1.0 | +| `thresholds.lateral_acc` | 数値 | 各経路ポイントの横加速度の無効しきい値 [`m/ss`] | 9.8 | +| `thresholds.longitudinal_max_acc` | 数値 | 各経路ポイントの最大縦加速度の無効しきい値 [`m/ss`] | 9.8 | +| `thresholds.longitudinal_min_acc` | 数値 | 各経路ポイントの最小縦減速度の無効しきい値 [`m/ss`] | -9.8 | +| `thresholds.steering` | 数値 | 各経路ポイントの操舵角の無効しきい値 [`rad`] | 1.414 | +| `thresholds.steering_rate` | 数値 | 各経路ポイントの操舵角速度の無効しきい値 [`rad/s`] | 10.0 | +| `thresholds.velocity_deviation` | 数値 | エゴの速度とエゴに最も近い経路ポイント間の速度偏差の無効しきい値 [`m/s`] | 100.0 | +| `thresholds.distance_deviation` | 数値 | エゴの位置とエゴに最も近い経路ポイント間の距離偏差の無効しきい値 [`m`] | 100.0 | +| `parameters.longitudinal_distance_deviation` | 数値 | エゴの位置と経路間の縦方向距離偏差の無効しきい値 [`m`] | 2.0 | #### パラメータ @@ -91,4 +92,3 @@ | `parameters.forward_trajectory_length_acceleration` | double | この値は、必要な軌道長の算出に使用されます。 | -5.0 | | `parameters.forward_trajectory_length_margin` | double | 自車が軌道の終点をわずかに過ぎてもエラーが発生しないようにするための、必要な軌道長の余白。 | 2.0 | - diff --git a/planning/autoware_remaining_distance_time_calculator/README.md b/planning/autoware_remaining_distance_time_calculator/README.md index 796ba78ced9d..75ec356b1c94 100644 --- a/planning/autoware_remaining_distance_time_calculator/README.md +++ b/planning/autoware_remaining_distance_time_calculator/README.md @@ -11,9 +11,9 @@ ### モジュールパラメータ -| 名称 | 型 | デフォルト値 | 説明 | -| ------------- | ------ | ------------- | --------------------------- | -| `update_rate` | double | 10.0 | タイマーコールバック周期 [Hz] | +| 名称 | 型 | デフォルト値 | 説明 | +| ------------- | ------ | ------------ | ----------------------------- | +| `update_rate` | double | 10.0 | タイマーコールバック周期 [Hz] | ### 内部動作 @@ -37,4 +37,3 @@ - 残最短経路を検索するために定期的にグラフを探索するのではなく、より効率的な方法で距離残を計算します。 - より正確な時間残計算のために、より高度なモーションモデルに取り組みます。 - diff --git a/planning/autoware_route_handler/README.md b/planning/autoware_route_handler/README.md index bc34558c6b7c..95d4dd90ae5d 100644 --- a/planning/autoware_route_handler/README.md +++ b/planning/autoware_route_handler/README.md @@ -16,4 +16,3 @@ ![lane_change_test_route](./images/lane_change_test_route.svg) - この経路は `autoware_test_utils\test_map` から取得できるマップに基づいています。 - diff --git a/planning/autoware_rtc_interface/README.md b/planning/autoware_rtc_interface/README.md index 7f562b3a7360..86e4e3fd50fa 100644 --- a/planning/autoware_rtc_interface/README.md +++ b/planning/autoware_rtc_interface/README.md @@ -8,7 +8,6 @@ RTCインタフェースは、ビヘイビアプランニングモジュール ### 使用例 - ```c++ // Generate instance (in this example, "intersection" is selected) autoware::rtc_interface::RTCInterface rtc_interface(node, "intersection"); @@ -51,7 +50,6 @@ rtc_interface.removeCooperateStatus(uuid); ### RTCInterface (コンストラクター) - ```c++ autoware::rtc_interface::RTCInterface(rclcpp::Node & node, const std::string & name); ``` @@ -73,8 +71,6 @@ autoware::rtc_interface::RTCInterface(rclcpp::Node & node, const std::string & n ### publishCooperateStatus - - ```c++ autoware::rtc_interface::publishCooperateStatus(const rclcpp::Time & stamp) ``` @@ -93,7 +89,6 @@ autoware::rtc_interface::publishCooperateStatus(const rclcpp::Time & stamp) ### updateCooperateStatus - ```c++ autoware::rtc_interface::updateCooperateStatus(const unique_identifier_msgs::msg::UUID & uuid, const bool safe, const double start_distance, const double finish_distance, const rclcpp::Time & stamp) ``` @@ -117,7 +112,6 @@ autoware::rtc_interface::updateCooperateStatus(const unique_identifier_msgs::msg ### removeCooperateStatus - ```c++ autoware::rtc_interface::removeCooperateStatus(const unique_identifier_msgs::msg::UUID & uuid) ``` @@ -136,7 +130,6 @@ autoware::rtc_interface::removeCooperateStatus(const unique_identifier_msgs::msg ### clearCooperateStatus - ```c++ autoware::rtc_interface::clearCooperateStatus() ``` @@ -155,7 +148,6 @@ autoware::rtc_interface::clearCooperateStatus() ### isActivated - ```c++ autoware::rtc_interface::isActivated(const unique_identifier_msgs::msg::UUID & uuid) ``` @@ -176,7 +168,6 @@ autoware::rtc_interface::isActivated(const unique_identifier_msgs::msg::UUID & u ### isRegistered - ```c++ autoware::rtc_interface::isRegistered(const unique_identifier_msgs::msg::UUID & uuid) ``` @@ -200,4 +191,3 @@ RTCインターフェース用の[RTC Replayer](https://autowarefoundation.githu ## 想定/既知の制限 ## 将来の拡張/未実装の部分 - diff --git a/planning/autoware_scenario_selector/README.md b/planning/autoware_scenario_selector/README.md index 65e418186900..493fe2d488a0 100644 --- a/planning/autoware_scenario_selector/README.md +++ b/planning/autoware_scenario_selector/README.md @@ -6,21 +6,21 @@ ### 入力トピック -| 名称 | タイプ | 説明 | -|---|---|---| -| `~input/lane_driving/trajectory` | `autoware_planning_msgs::Trajectory` | LaneDriving シナリオの軌道 | -| `~input/parking/trajectory` | `autoware_planning_msgs::Trajectory` | Parking シナリオの軌道 | -| `~input/lanelet_map` | `autoware_map_msgs::msg::LaneletMapBin` | | -| `~input/route` | `autoware_planning_msgs::LaneletRoute` | ルートと目標位置 | -| `~input/odometry` | `nav_msgs::Odometry` | 車両が停止しているかどうかを確認するため | -| `is_parking_completed` | ブール型(ROS のパラメータとして実装) | Parking の分割された軌跡がすべて公開されているかどうか | +| 名称 | タイプ | 説明 | +| -------------------------------- | --------------------------------------- | ------------------------------------------------------ | +| `~input/lane_driving/trajectory` | `autoware_planning_msgs::Trajectory` | LaneDriving シナリオの軌道 | +| `~input/parking/trajectory` | `autoware_planning_msgs::Trajectory` | Parking シナリオの軌道 | +| `~input/lanelet_map` | `autoware_map_msgs::msg::LaneletMapBin` | | +| `~input/route` | `autoware_planning_msgs::LaneletRoute` | ルートと目標位置 | +| `~input/odometry` | `nav_msgs::Odometry` | 車両が停止しているかどうかを確認するため | +| `is_parking_completed` | ブール型(ROS のパラメータとして実装) | Parking の分割された軌跡がすべて公開されているかどうか | ### 出力トピック -| 名前 | タイプ | 説明 | -| -------------------- | ---------------------------------- | ---------------------------------------------- | -| `~output/scenario` | tier4_planning_msgs::Scenario | 自車位置とアクティブ化されるシナリオ | -| `~output/trajectory` | autoware_planning_msgs::Trajectory | 通過する軌跡 | +| 名前 | タイプ | 説明 | +| -------------------- | ---------------------------------- | ------------------------------------ | +| `~output/scenario` | tier4_planning_msgs::Scenario | 自車位置とアクティブ化されるシナリオ | +| `~output/trajectory` | autoware_planning_msgs::Trajectory | 通過する軌跡 | ### 出力TFs @@ -38,7 +38,6 @@ ### フローチャート - ```plantuml @startuml title onTimer @@ -71,7 +70,6 @@ stop @enduml ``` - ```plantuml @startuml title Scenario Transition @@ -115,4 +113,3 @@ endif stop @enduml ``` - diff --git a/planning/autoware_static_centerline_generator/README.md b/planning/autoware_static_centerline_generator/README.md index 5f99e17ec0e4..1adc568a2265 100644 --- a/planning/autoware_static_centerline_generator/README.md +++ b/planning/autoware_static_centerline_generator/README.md @@ -25,6 +25,7 @@ 最適化されたセンターラインは、ベクターマップビルダーの操作から生成できます。 次のコマンドで``を指定して実行できます。 + ```bash # path planning server rosrun autoware_path_optimizer path_optimizer_node --api_path /autoware_path_optimizer/path_optimizer @@ -32,7 +33,6 @@ rosrun autoware_path_optimizer path_optimizer_node --api_path /a rosrun autoware_path_optimizer center_line_generator_node ``` - ```sh ros2 launch autoware_static_centerline_generator run_planning_server.launch.xml vehicle_model:= ``` @@ -49,7 +49,6 @@ FYI、HTTPサーバのポートIDはデフォルトで4010です。 - `` - `` - ```sh ros2 launch autoware_static_centerline_generator static_centerline_generator.launch.xml run_backgrond:=false lanelet2_input_file_path:= lanelet2_output_file_path:= start_lanelet_id:= end_lanelet_id:= vehicle_model:= ``` @@ -80,4 +79,3 @@ ros2 launch autoware_static_centerline_generator static_centerline_generator.lau - 距離が 0.1 [m] 未満の場合: 赤 - 距離が 0.2 [m] 未満の場合: 緑 - 距離が 0.3 [m] 未満の場合: 青 - diff --git a/planning/autoware_surround_obstacle_checker/README.md b/planning/autoware_surround_obstacle_checker/README.md index a36b23354969..8e6ac4aac1ce 100644 --- a/planning/autoware_surround_obstacle_checker/README.md +++ b/planning/autoware_surround_obstacle_checker/README.md @@ -8,7 +8,6 @@ ### フローチャート - ```plantuml @startuml @@ -81,13 +80,13 @@ stop ### 入力 ``` -| 名前 | 種類 | 説明 | -| ------------------------------------------ | ------------------------------------------------- | --------------------------------------------------------------- | -| `/perception/obstacle_segmentation/pointcloud` | `sensor_msgs::msg::PointCloud2` | 自車が停止または回避すべき障害物の点群 | -| `/perception/object_recognition/objects` | `autoware_perception_msgs::msg::PredictedObjects` | 動的オブジェクト | -| `/localization/kinematic_state` | `nav_msgs::msg::Odometry` | 現在のひねり | -| `/tf` | `tf2_msgs::msg::TFMessage` | TF | -| `/tf_static` | `tf2_msgs::msg::TFMessage` | 静的TF | +| 名前 | 種類 | 説明 | +| ---------------------------------------------- | ------------------------------------------------- | -------------------------------------- | +| `/perception/obstacle_segmentation/pointcloud` | `sensor_msgs::msg::PointCloud2` | 自車が停止または回避すべき障害物の点群 | +| `/perception/object_recognition/objects` | `autoware_perception_msgs::msg::PredictedObjects` | 動的オブジェクト | +| `/localization/kinematic_state` | `nav_msgs::msg::Odometry` | 現在のひねり | +| `/tf` | `tf2_msgs::msg::TFMessage` | TF | +| `/tf_static` | `tf2_msgs::msg::TFMessage` | 静的TF | ### 出力 @@ -143,35 +142,34 @@ Controlモジュールは、以下の機能を担当します。 Autoware Stacは、オープンソース自動運転ソフトウェアスタックであり、ここで説明したアーキテクチャに基づいています。Autoware Stacは、Perception、Planning、Controlモジュールを提供し、自動運転車の開発を簡素化します。 -| 名前 | 型 | 説明 | -| --------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------- | -| `~/output/velocity_limit_clear_command` | `tier4_planning_msgs::msg::VelocityLimitClearCommand` | 速度制限クリアコマンド | -| `~/output/max_velocity` | `tier4_planning_msgs::msg::VelocityLimit` | 速度制限コマンド | -| `~/output/no_start_reason` | `diagnostic_msgs::msg::DiagnosticStatus` | スタート不可理由 | -| `~/output/stop_reasons` | `tier4_planning_msgs::msg::StopReasonArray` | 停止理由 | -| `~/debug/marker` | `visualization_msgs::msg::MarkerArray` | 可視化用マーカー | -| `~/debug/footprint` | `geometry_msgs::msg::PolygonStamped` | 自車ベースフットプリント(可視化用) | -| `~/debug/footprint_offset` | `geometry_msgs::msg::PolygonStamped` | `surround_check_distance`オフセット付き自車フットプリント(可視化用) | +| 名前 | 型 | 説明 | +| --------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------------------------------- | +| `~/output/velocity_limit_clear_command` | `tier4_planning_msgs::msg::VelocityLimitClearCommand` | 速度制限クリアコマンド | +| `~/output/max_velocity` | `tier4_planning_msgs::msg::VelocityLimit` | 速度制限コマンド | +| `~/output/no_start_reason` | `diagnostic_msgs::msg::DiagnosticStatus` | スタート不可理由 | +| `~/output/stop_reasons` | `tier4_planning_msgs::msg::StopReasonArray` | 停止理由 | +| `~/debug/marker` | `visualization_msgs::msg::MarkerArray` | 可視化用マーカー | +| `~/debug/footprint` | `geometry_msgs::msg::PolygonStamped` | 自車ベースフットプリント(可視化用) | +| `~/debug/footprint_offset` | `geometry_msgs::msg::PolygonStamped` | `surround_check_distance`オフセット付き自車フットプリント(可視化用) | | `~/debug/footprint_recover_offset` | `geometry_msgs::msg::PolygonStamped` | `surround_check_recover_distance`オフセット付き自車フットプリント(可視化用) | ## パラメータ {{ json_to_markdown("planning/autoware_surround_obstacle_checker/schema/surround_obstacle_checker.schema.json") }} -| 名前 | タイプ | 説明 | デフォルト値 | -| :----------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------- | -| `enable_check` | `bool` | 対象オブジェクトを障害物チェックのターゲットに含めてよいかどうかを示します。 | オブジェクト: `true`、点群: `false` | -| `surround_check_front_distance` | `bool` | この前方距離内にオブジェクトまたは点群がある場合は、"exist-surrounding-obstacle"ステータスに遷移します。[m] | 0.5 | -| `surround_check_side_distance` | `double` | この側面距離内にオブジェクトまたは点群がある場合は、"exist-surrounding-obstacle"ステータスに遷移します。[m] | 0.5 | -| `surround_check_back_distance` | `double` | この後方距離内にオブジェクトまたは点群がある場合は、"exist-surrounding-obstacle"ステータスに遷移します。[m] | 0.5 | -| `surround_check_hysteresis_distance` | `double` | `surround_check_xxx_distance`プラスこの追加距離内にオブジェクトが存在しない場合、"non-surrounding-obstacle"ステータスに遷移します。[m] | 0.3 | -| `state_clear_time` | `double` | 停止状態を解除するためのしきい値[s] | 2.0 | -| `stop_state_ego_speed` | `double` | 自己車両が停止したかどうかをチェックするためのしきい値[m/s] | 0.1 | -| `stop_state_entry_duration_time` | `double` | 自己車両が停止したかどうかをチェックするためのしきい値[s] | 0.1 | -| `publish_debug_footprints` | `bool` | オフセットあり/なしで車両のフットプリントを公開します。 | `true` | +| 名前 | タイプ | 説明 | デフォルト値 | +| :----------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------- | +| `enable_check` | `bool` | 対象オブジェクトを障害物チェックのターゲットに含めてよいかどうかを示します。 | オブジェクト: `true`、点群: `false` | +| `surround_check_front_distance` | `bool` | この前方距離内にオブジェクトまたは点群がある場合は、"exist-surrounding-obstacle"ステータスに遷移します。[m] | 0.5 | +| `surround_check_side_distance` | `double` | この側面距離内にオブジェクトまたは点群がある場合は、"exist-surrounding-obstacle"ステータスに遷移します。[m] | 0.5 | +| `surround_check_back_distance` | `double` | この後方距離内にオブジェクトまたは点群がある場合は、"exist-surrounding-obstacle"ステータスに遷移します。[m] | 0.5 | +| `surround_check_hysteresis_distance` | `double` | `surround_check_xxx_distance`プラスこの追加距離内にオブジェクトが存在しない場合、"non-surrounding-obstacle"ステータスに遷移します。[m] | 0.3 | +| `state_clear_time` | `double` | 停止状態を解除するためのしきい値[s] | 2.0 | +| `stop_state_ego_speed` | `double` | 自己車両が停止したかどうかをチェックするためのしきい値[m/s] | 0.1 | +| `stop_state_entry_duration_time` | `double` | 自己車両が停止したかどうかをチェックするためのしきい値[s] | 0.1 | +| `publish_debug_footprints` | `bool` | オフセットあり/なしで車両のフットプリントを公開します。 | `true` | ## 想定事項/既知の制限事項 停止計画を実行するには、障害物の点群データを取得する必要があります。 したがって、障害物が死角にある場合は停止計画を実行しません。 - diff --git a/planning/autoware_velocity_smoother/README.md b/planning/autoware_velocity_smoother/README.md index 0bdfec51b1b6..ce175ba51f08 100644 --- a/planning/autoware_velocity_smoother/README.md +++ b/planning/autoware_velocity_smoother/README.md @@ -51,12 +51,12 @@ 速度計画の初期値を計算します。 状況に応じた初期値が次の表のように計算されます。 -| シチュエーション | 初期速度 | 初期加速度 | -| ------------------------------------------------------------- | ---------------------- | ---------------------- | -| 第1計算 | 自車速度 | 0.0 | -| エンゲージ | `エンゲージ速度` | `エンゲージ加速度` | -| 計画速度と自車速度の逸脱 | 自車速度 | 前回の計画値 | -| ノーマル | 前回の計画値 | 前回の計画値 | +| シチュエーション | 初期速度 | 初期加速度 | +| ------------------------ | ---------------- | ------------------ | +| 第1計算 | 自車速度 | 0.0 | +| エンゲージ | `エンゲージ速度` | `エンゲージ加速度` | +| 計画速度と自車速度の逸脱 | 自車速度 | 前回の計画値 | +| ノーマル | 前回の計画値 | 前回の計画値 | #### 滑らかな速度 @@ -92,13 +92,13 @@ ### 入力 -| 名称 | 種別 | 説明 | -| --------------------------------------- | ------------------------------------ | -------------------------- | -| `~/input/trajectory` (*) | `autoware_planning_msgs/Trajectory` | 基準走行軌跡 | -| `/planning/scenario_planning/max_velocity` | `std_msgs/Float32` | 外部速度制限 [m/s] | -| `/localization/kinematic_state` | `nav_msgs/Odometry` | 自車位置 | -| `/tf` (*) | `tf2_msgs/TFMessage` | TF | -| `/tf_static` (*) | `tf2_msgs/TFMessage` | TF static | +| 名称 | 種別 | 説明 | +| ------------------------------------------ | ----------------------------------- | ------------------ | +| `~/input/trajectory` (\*) | `autoware_planning_msgs/Trajectory` | 基準走行軌跡 | +| `/planning/scenario_planning/max_velocity` | `std_msgs/Float32` | 外部速度制限 [m/s] | +| `/localization/kinematic_state` | `nav_msgs/Odometry` | 自車位置 | +| `/tf` (\*) | `tf2_msgs/TFMessage` | TF | +| `/tf_static` (\*) | `tf2_msgs/TFMessage` | TF static | ## 自動運転ソフトウェアに関するドキュメント @@ -108,33 +108,33 @@ Planningモジュールは、自動運転車両の経路計画を行います。以下のような機能があります。 -* マップデータに基づく経路の生成 -* 障害物回避 -* 交通ルール遵守 +- マップデータに基づく経路の生成 +- 障害物回避 +- 交通ルール遵守 ### Controlモジュール Controlモジュールは、車両の制御を行います。以下のような機能があります。 -* ステアリング制御 -* 加速制御 -* ブレーキ制御 +- ステアリング制御 +- 加速制御 +- ブレーキ制御 ### Perceptionモジュール Perceptionモジュールは、車両周囲の環境を認識します。以下のような機能があります。 -* LiDARデータの処理 -* カメラ画像の処理 -* レーダーデータの処理 +- LiDARデータの処理 +- カメラ画像の処理 +- レーダーデータの処理 ### システムアーキテクチャ Autowareのシステムアーキテクチャは以下のような階層構造になっています。 -* **Perception層:** Perceptionモジュールが含まれます。 -* **Planning層:** Planningモジュールが含まれます。 -* **Control層:** Controlモジュールが含まれます。 +- **Perception層:** Perceptionモジュールが含まれます。 +- **Planning層:** Planningモジュールが含まれます。 +- **Control層:** Controlモジュールが含まれます。 ### データフロー @@ -148,192 +148,201 @@ Autowareのシステムアーキテクチャは以下のような階層構造に Autowareには、以下のような安全性機能を備えています。 -* **障害物回避:** 障害物を検出し、自動的に回避します。 -* **衝突回避:** 車両との衝突を検出し、回避します。 -* **速度制限遵守:** 道路の速度制限を遵守します。 +- **障害物回避:** 障害物を検出し、自動的に回避します。 +- **衝突回避:** 車両との衝突を検出し、回避します。 +- **速度制限遵守:** 道路の速度制限を遵守します。 ### パフォーマンス評価 Autowareのパフォーマンスは、以下のような指標に基づいて評価されます。 -* **平均到達時間:** 目的地に到着するまでの平均時間 -* **走行距離:** 走行距離 -* **post resampling**障害物逸脱量 -* **post resampling**速度逸脱量 -* **post resampling**加速度逸脱量 +- **平均到達時間:** 目的地に到着するまでの平均時間 +- **走行距離:** 走行距離 +- **post resampling**障害物逸脱量 +- **post resampling**速度逸脱量 +- **post resampling**加速度逸脱量 ### 自車位置の推定 Autowareでは、以下のような方法で自車位置を推定しています。 -* GPS -* IMU -* オドメーター - -| 名前 | 型 | 説明 | -| ------------------------------------------------ | ------------------------------------ | -------------------------------------------------------------------------------------------------------------- | -| `~/output/trajectory` | `autoware_planning_msgs/Trajectory` | 変更された経路 | -| `/planning/scenario_planning/current_max_velocity` | `std_msgs/Float32` | 現在の外部速度制限 [m/s] | -| `~/closest_velocity` | `std_msgs/Float32` | 自車ベースリンクに最も近い計画速度 (デバッグ用) | -| `~/closest_acceleration` | `std_msgs/Float32` | 自車ベースリンクに最も近い計画加速度 (デバッグ用) | -| `~/closest_jerk` | `std_msgs/Float32` | 自車ベースリンクに最も近い計画ジャーク (デバッグ用) | -| `~/debug/trajectory_raw` | `autoware_planning_msgs/Trajectory` | 抽出された経路 (デバッグ用) | -| `~/debug/trajectory_external_velocity_limited` | `autoware_planning_msgs/Trajectory` | 外部速度制限経路 (デバッグ用) | -| `~/debug/trajectory_lateral_acc_filtered` | `autoware_planning_msgs/Trajectory` | 横加速度制限経路 (デバッグ用) | -| `~/debug/trajectory_steering_rate_limited` | `autoware_planning_msgs/Trajectory` | ステアリング角速度制限経路 (デバッグ用) | -| `~/debug/trajectory_time_resampled` | `autoware_planning_msgs/Trajectory` | `post resampling`された経路 (デバッグ用) | -| `~/distance_to_stopline` | `std_msgs/Float32` | 自車位置から停止線までの距離 (最大 50 m) (デバッグ用) | -| `~/stop_speed_exceeded` | `std_msgs/Bool` | 最大速度が 0 の地点における計画速度がしきい値を超えている場合に `true` を公開する | +- GPS +- IMU +- オドメーター + +| 名前 | 型 | 説明 | +| -------------------------------------------------- | ----------------------------------- | --------------------------------------------------------------------------------- | +| `~/output/trajectory` | `autoware_planning_msgs/Trajectory` | 変更された経路 | +| `/planning/scenario_planning/current_max_velocity` | `std_msgs/Float32` | 現在の外部速度制限 [m/s] | +| `~/closest_velocity` | `std_msgs/Float32` | 自車ベースリンクに最も近い計画速度 (デバッグ用) | +| `~/closest_acceleration` | `std_msgs/Float32` | 自車ベースリンクに最も近い計画加速度 (デバッグ用) | +| `~/closest_jerk` | `std_msgs/Float32` | 自車ベースリンクに最も近い計画ジャーク (デバッグ用) | +| `~/debug/trajectory_raw` | `autoware_planning_msgs/Trajectory` | 抽出された経路 (デバッグ用) | +| `~/debug/trajectory_external_velocity_limited` | `autoware_planning_msgs/Trajectory` | 外部速度制限経路 (デバッグ用) | +| `~/debug/trajectory_lateral_acc_filtered` | `autoware_planning_msgs/Trajectory` | 横加速度制限経路 (デバッグ用) | +| `~/debug/trajectory_steering_rate_limited` | `autoware_planning_msgs/Trajectory` | ステアリング角速度制限経路 (デバッグ用) | +| `~/debug/trajectory_time_resampled` | `autoware_planning_msgs/Trajectory` | `post resampling`された経路 (デバッグ用) | +| `~/distance_to_stopline` | `std_msgs/Float32` | 自車位置から停止線までの距離 (最大 50 m) (デバッグ用) | +| `~/stop_speed_exceeded` | `std_msgs/Bool` | 最大速度が 0 の地点における計画速度がしきい値を超えている場合に `true` を公開する | ## パラメータ ### 制約パラメータ -| 名称 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `max_velocity` | `double` | 最大速度制限 [m/s] | 20.0 | -| `max_accel` | `double` | 最大加速度制限 [m/ss] | 1.0 | -| `min_decel` | `double` | 最小減速度制限 [m/ss] | -0.5 | -| `stop_decel` | `double` | 停止点での停止減速度値 [m/ss] | 0.0 | -| `max_jerk` | `double` | 最大ジャーク制限 [m/sss] | 1.0 | -| `min_jerk` | `double` | 最小ジャーク制限 [m/sss] | -0.5 | +| 名称 | タイプ | 説明 | デフォルト値 | +| -------------- | -------- | ----------------------------- | ------------ | +| `max_velocity` | `double` | 最大速度制限 [m/s] | 20.0 | +| `max_accel` | `double` | 最大加速度制限 [m/ss] | 1.0 | +| `min_decel` | `double` | 最小減速度制限 [m/ss] | -0.5 | +| `stop_decel` | `double` | 停止点での停止減速度値 [m/ss] | 0.0 | +| `max_jerk` | `double` | 最大ジャーク制限 [m/sss] | 1.0 | +| `min_jerk` | `double` | 最小ジャーク制限 [m/sss] | -0.5 | ### 外部速度制限パラメータ -| 名称 | 型 | 説明 | デフォルト値 | -| :----------------------------------------- | :------- | :-------------------------------------------------- | :------------ | -| `margin_to_insert_external_velocity_limit` | `double` | 外部速度制限を挿入するマージン距離 [m] | 0.3 | +| 名称 | 型 | 説明 | デフォルト値 | +| :----------------------------------------- | :------- | :------------------------------------- | :----------- | +| `margin_to_insert_external_velocity_limit` | `double` | 外部速度制限を挿入するマージン距離 [m] | 0.3 | ### カーブパラメータ -| 名前 | タイプ | 説明 | デフォルト値 | -|:-------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------- | -| `enable_lateral_acc_limit` | `bool` | 横方向加速度フィルタのオンとオフを切り替える。実行時に動的に切り替えることができる。 | true | -| `max_lateral_accel` | `double` | 最大横方向加速度限界 [m/ss] | 0.5 | -| `min_curve_velocity` | `double` | 横方向加速度限界での最小速度 [m/ss] | 2.74 | -| `decel_distance_before_curve` | `double` | 横方向加速度限界のためにカーブの前で減速する距離 [m] | 3.5 | -| `decel_distance_after_curve` | `double` | 横方向加速度限界のためにカーブの後で減速する距離 [m] | 2.0 | -| `min_decel_for_lateral_acc_lim_filter` | `double` | 横方向加速度フィルタによる急ブレーキを避ける減速限界 [m/ss]。強い制限は、障害物回避などによる急カーブ出現に対する減速応答を低下させる。 | -2.5 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| `enable_lateral_acc_limit` | `bool` | 横方向加速度フィルタのオンとオフを切り替える。実行時に動的に切り替えることができる。 | true | +| `max_lateral_accel` | `double` | 最大横方向加速度限界 [m/ss] | 0.5 | +| `min_curve_velocity` | `double` | 横方向加速度限界での最小速度 [m/ss] | 2.74 | +| `decel_distance_before_curve` | `double` | 横方向加速度限界のためにカーブの前で減速する距離 [m] | 3.5 | +| `decel_distance_after_curve` | `double` | 横方向加速度限界のためにカーブの後で減速する距離 [m] | 2.0 | +| `min_decel_for_lateral_acc_lim_filter` | `double` | 横方向加速度フィルタによる急ブレーキを避ける減速限界 [m/ss]。強い制限は、障害物回避などによる急カーブ出現に対する減速応答を低下させる。 | -2.5 | ### 結合と再計画パラメータ -| 名前 | タイプ | 説明 | デフォルト値 | -| :----------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| `replan_vel_deviation` | `double` | 初期速度を再計画する速度逸脱量 [m/s] | 5.53 | -| `engage_velocity` | `double` | エンゲージ速度閾値 [m/s](軌跡速度がこの値より大きい場合、エンゲージ車両速度にこの速度を使用) | 0.25 | -| `engage_acceleration` | `double` | エンゲージ時使用する加速度 [m/ss] | 0.1 | -| `engage_exit_ratio` | `double` | 速度が engage_exit_ratio x engage_velocity を超えた場合、エンゲージシーケンスを通常の速度計画に戻す | 0.5 | -| `stop_dist_to_prohibit_engage` | `double` | 停止点がこの距離にある場合、車両が移動しないように速度を 0 に設定する [m] | 0.5 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :----------------------------- | :------- | :-------------------------------------------------------------------------------------------------- | :----------- | +| `replan_vel_deviation` | `double` | 初期速度を再計画する速度逸脱量 [m/s] | 5.53 | +| `engage_velocity` | `double` | エンゲージ速度閾値 [m/s](軌跡速度がこの値より大きい場合、エンゲージ車両速度にこの速度を使用) | 0.25 | +| `engage_acceleration` | `double` | エンゲージ時使用する加速度 [m/ss] | 0.1 | +| `engage_exit_ratio` | `double` | 速度が engage_exit_ratio x engage_velocity を超えた場合、エンゲージシーケンスを通常の速度計画に戻す | 0.5 | +| `stop_dist_to_prohibit_engage` | `double` | 停止点がこの距離にある場合、車両が移動しないように速度を 0 に設定する [m] | 0.5 | ### 停止速度パラメータ -| 名 | タイプ | 説明 | デフォルト値 | -| :-------------- | :------- | :------------------------------------------------------------------------------------- | :------------ | -| `stopping_velocity` | `double` | v=0 点に達する前にターゲット速度をこの値に変更します [m/s] | 2.778 | -| `stopping_distance` | `double` | `stopping_velocity` の距離 [m]。0 は `stopping_velocity` が適用されないことを表します。 | 0.0 | +| 名 | タイプ | 説明 | デフォルト値 | +| :------------------ | :------- | :-------------------------------------------------------------------------------------- | :----------- | +| `stopping_velocity` | `double` | v=0 点に達する前にターゲット速度をこの値に変更します [m/s] | 2.778 | +| `stopping_distance` | `double` | `stopping_velocity` の距離 [m]。0 は `stopping_velocity` が適用されないことを表します。 | 0.0 | ### 抽出パラメータ -| 名前 | 型 | 説明 | デフォルト値 | -| :-------------------- | :------- | :--------------------------------------------------------------- | :------------ | -| `extract_ahead_dist` | `double` | Planningに使用される前方軌跡距離 [m] | 200.0 | -| `extract_behind_dist` | `double` | Planningに使用される後方軌跡距離 [m] | 5.0 | -| `delta_yaw_threshold` | `double` | 自車位置と軌跡位置間の許容差変位角 [ラジアン] | 1.0472 | +| 名前 | 型 | 説明 | デフォルト値 | +| :-------------------- | :------- | :-------------------------------------------- | :----------- | +| `extract_ahead_dist` | `double` | Planningに使用される前方軌跡距離 [m] | 200.0 | +| `extract_behind_dist` | `double` | Planningに使用される後方軌跡距離 [m] | 5.0 | +| `delta_yaw_threshold` | `double` | 自車位置と軌跡位置間の許容差変位角 [ラジアン] | 1.0472 | ### 再サンプルパラメータ -| 名前 | タイプ | 説明 | デフォルト値 | -| :----------------------------- | :------- | :---------------------------------------------------- | :------------ | -| `max_trajectory_length` | `double` | 軌道の再サンプリングのための最大長 [m] | 200.0 | -| `min_trajectory_length` | `double` | 軌道の再サンプリングのための最小長 [m] | 30.0 | -| `resample_time` | `double` | 再サンプリングの全体の時間 [s] | 10.0 | -| `dense_dt` | `double` | 緻密なサンプリングのための再サンプリングの時間間隔 [s] | 0.1 | -| `dense_min_interval_distance` | `double` | 緻密なサンプリングのための最小ポイント間距離 [m] | 0.1 | -| `sparse_dt` | `double` | まばらなサンプリングのための再サンプリングの時間間隔 [s] | 0.5 | -| `sparse_min_interval_distance` | `double` | まばらなサンプリングのための最小ポイント間距離 [m] | 4.0 | +| 名前 | タイプ | 説明 | デフォルト値 | +| :----------------------------- | :------- | :------------------------------------------------------- | :----------- | +| `max_trajectory_length` | `double` | 軌道の再サンプリングのための最大長 [m] | 200.0 | +| `min_trajectory_length` | `double` | 軌道の再サンプリングのための最小長 [m] | 30.0 | +| `resample_time` | `double` | 再サンプリングの全体の時間 [s] | 10.0 | +| `dense_dt` | `double` | 緻密なサンプリングのための再サンプリングの時間間隔 [s] | 0.1 | +| `dense_min_interval_distance` | `double` | 緻密なサンプリングのための最小ポイント間距離 [m] | 0.1 | +| `sparse_dt` | `double` | まばらなサンプリングのための再サンプリングの時間間隔 [s] | 0.5 | +| `sparse_min_interval_distance` | `double` | まばらなサンプリングのための最小ポイント間距離 [m] | 4.0 | ### 'post resampling'用の再サンプリングパラメーター -| 名称 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `post_max_trajectory_length` | `double` | 再サンプリングの最大軌道長 [m] | 300.0 | -| `post_min_trajectory_length` | `double` | 再サンプリングの最小軌道長 [m] | 30.0 | -| `post_resample_time` | `double` | 密サンプリングの合計再サンプリング時間 [s] | 10.0 | -| `post_dense_dt` | `double` | 密サンプリングの再サンプリング時間間隔 [s] | 0.1 | -| `post_dense_min_interval_distance` | `double` | 密サンプリングの最小ポイント間隔 [m] | 0.1 | -| `post_sparse_dt` | `double` | 疎サンプリングの再サンプリング時間間隔 [s] | 0.1 | -| `post_sparse_min_interval_distance` | `double` | 疎サンプリングの最小ポイント間隔 [m] | 1.0 | +| 名称 | タイプ | 説明 | デフォルト値 | +| ----------------------------------- | -------- | ------------------------------------------ | ------------ | +| `post_max_trajectory_length` | `double` | 再サンプリングの最大軌道長 [m] | 300.0 | +| `post_min_trajectory_length` | `double` | 再サンプリングの最小軌道長 [m] | 30.0 | +| `post_resample_time` | `double` | 密サンプリングの合計再サンプリング時間 [s] | 10.0 | +| `post_dense_dt` | `double` | 密サンプリングの再サンプリング時間間隔 [s] | 0.1 | +| `post_dense_min_interval_distance` | `double` | 密サンプリングの最小ポイント間隔 [m] | 0.1 | +| `post_sparse_dt` | `double` | 疎サンプリングの再サンプリング時間間隔 [s] | 0.1 | +| `post_sparse_min_interval_distance` | `double` | 疎サンプリングの最小ポイント間隔 [m] | 1.0 | ### ステアリング角変化率パラメータの制限 ``` + ``` -| 名称 | タイプ | 説明 | デフォルト値 | -| :------------------------------- | :------- | :--------------------------------------------------------------------------------------- | :------------ | -| `enable_steering_rate_limit` | `bool` | ステアリング速度フィルタのオン/オフを切り替えます。ランタイム時に動的に切り替えられます。 | true | -| `max_steering_angle_rate` | `double` | 最大ステアリング角度速度 [degree/s] | 40.0 | -| `resample_ds` | `double` | Trajectory `post resampling` ポイント間の距離 [m] | 0.1 | -| `curvature_threshold` | `double` | 曲率 > `curvature_threshold` の場合、`steeringRateLimit` がトリガされます [1/m] | 0.02 | -| `curvature_calculation_distance` | `double` | 曲率計算中のポイントの距離 [m] | 1.0 | +| 名称 | タイプ | 説明 | デフォルト値 | +| :------------------------------- | :------- | :---------------------------------------------------------------------------------------- | :----------- | +| `enable_steering_rate_limit` | `bool` | ステアリング速度フィルタのオン/オフを切り替えます。ランタイム時に動的に切り替えられます。 | true | +| `max_steering_angle_rate` | `double` | 最大ステアリング角度速度 [degree/s] | 40.0 | +| `resample_ds` | `double` | Trajectory `post resampling` ポイント間の距離 [m] | 0.1 | +| `curvature_threshold` | `double` | 曲率 > `curvature_threshold` の場合、`steeringRateLimit` がトリガされます [1/m] | 0.02 | +| `curvature_calculation_distance` | `double` | 曲率計算中のポイントの距離 [m] | 1.0 | ### 最適化用の重み #### JerkFiltered -| 名称 | 型 | 説明 | デフォルト値 | -| :--------------- | :------ | :------------------------------------------- | :---------- | -| `jerk_weight` | `double` | ジャークの「滑らかさ」コストの重み | 10.0 | -| `over_v_weight` | `double` | 「速度制限逸脱」コストの重み | 100000.0 | -| `over_a_weight` | `double` | 「加速度逸脱量」コストの重み | 5000.0 | -| `over_j_weight` | `double` | 「ジャーク逸脱量」コストの重み | 1000.0 | +| 名称 | 型 | 説明 | デフォルト値 | +| :-------------- | :------- | :--------------------------------- | :----------- | +| `jerk_weight` | `double` | ジャークの「滑らかさ」コストの重み | 10.0 | +| `over_v_weight` | `double` | 「速度制限逸脱」コストの重み | 100000.0 | +| `over_a_weight` | `double` | 「加速度逸脱量」コストの重み | 5000.0 | +| `over_j_weight` | `double` | 「ジャーク逸脱量」コストの重み | 1000.0 | #### L2 -** Planning** +**Planning** + - トラジェクトリプランナーの最適化 - 制約の追加によってトラジェクトリプランニングの安定化 - クロスロードでの渋滞時の挙動の改善 - Scalingレイヤーでの速度、加速度の逸脱量に関するチェックの追加 -** Localization** +**Localization** + - ランタイムのパフォーマンスと精度を向上させるための改善 - ランタイムの更新によってIMUのバイアス推定の精度を高める - 障害物検知の性能を向上させるため、点群データを活用した道路のセグメンテーションの改善 -** perception** +**perception** + - 深層学習モデルを更新する - 物体検出の精度を向上させるために、データセットの拡張 - 『post resampling』におけるデータの品質向上 -** Control** +**Control** + - 車両の挙動をよりスムーズにする、ステアリング制御の改善 - 加速度、ヨー変化率に関する制御の改善 - Autowareのコントローラーのドメイン固有言語であるCLARAtyで、コントローラーの再実装 -** reality sensors** +**reality sensors** + - LiDARのノイズ低減のために、データ処理パイプラインの最適化 - カメラの露出制御の改善による、夜間や低照度条件における画像の品質向上 - センサーキャリブレーションに関するパイプラインの改善 -** visualization** +**visualization** + - 可視化ツールのアップグレードによる、より正確で情報が豊富な可視化 - データの取得と処理の効率を高めるキャッシュメカニズムの追加 -** core utils** +**core utils** + - シミュレーションとテスト用に、独自のデータ駆動型テストフレームワークの導入 - より効率的な『post resampling』のための、ポイントクラウドライブラリの最適化 -** self-driving** +**self-driving** + - 自車位置推定の向上による、全体的なパフォーマンスの向上 - パラメータの最適化による、様々な運転シナリオにおけるRobust性を向上 - Autowareのアーキテクチャのモジュール化と拡張性向上 -| 名前 | 型 | 説明 | デフォルト値 | -| :------------------- | :------- | :--------------------------------- | :------------ | -| `pseudo_jerk_weight` | `double` | 「スムーズさ」コストの重み | 100.0 | -| `over_v_weight` | `double` | 「速度制限超過」コストの重み | 100000.0 | -| `over_a_weight` | `double` | 「加速度制限超過」コストの重み | 1000.0 | +| 名前 | 型 | 説明 | デフォルト値 | +| :------------------- | :------- | :----------------------------- | :----------- | +| `pseudo_jerk_weight` | `double` | 「スムーズさ」コストの重み | 100.0 | +| `over_v_weight` | `double` | 「速度制限超過」コストの重み | 100000.0 | +| `over_a_weight` | `double` | 「加速度制限超過」コストの重み | 1000.0 | #### Linf @@ -343,9 +352,9 @@ Linfは、経路計画における障害物回避に用いられる Planning モ **入力** -* 自車位置 -* 目標位置 -* 周囲の障害物情報 +- 自車位置 +- 目標位置 +- 周囲の障害物情報 **処理** @@ -355,34 +364,34 @@ Linfは、経路計画における障害物回避に用いられる Planning モ **出力** -* 障害物回避経路 +- 障害物回避経路 **制約事項** -* **速度逸脱量:** 本モジュールは、速度逸脱量を考慮しません。 -* **加速度逸脱量:** 本モジュールは、加速度逸脱量を考慮しません。 -* **予測:** 本モジュールは、障害物の予測移動を考慮しません。 +- **速度逸脱量:** 本モジュールは、速度逸脱量を考慮しません。 +- **加速度逸脱量:** 本モジュールは、加速度逸脱量を考慮しません。 +- **予測:** 本モジュールは、障害物の予測移動を考慮しません。 **依存関係** -* **障害物検出モジュール:** 障害物マップの作成に使用されます。 -* **経路生成モジュール:** 障害物回避経路の生成に使用されます。 +- **障害物検出モジュール:** 障害物マップの作成に使用されます。 +- **経路生成モジュール:** 障害物回避経路の生成に使用されます。 **Autowareにおける用途** Autowareでは、Linfモジュールは、障害物回避Planningにおける重要なコンポーネントです。本モジュールは、障害物マップから安全で効率的な経路を計算し、自動運転車両に安全なナビゲーションを提供します。 -| 名前 | タイプ | 説明 | デフォルト値 | -|---|---|---|---| -| `pseudo_jerk_weight` | `double` | 「スムーズ性」コストの重み | 100.0 | -| `over_v_weight` | `double` | 「速度制限逸脱量」コストの重み | 100000.0 | -| `over_a_weight` | `double` | 「加速度制限逸脱量」コストの重み | 1000.0 | +| 名前 | タイプ | 説明 | デフォルト値 | +| -------------------- | -------- | -------------------------------- | ------------ | +| `pseudo_jerk_weight` | `double` | 「スムーズ性」コストの重み | 100.0 | +| `over_v_weight` | `double` | 「速度制限逸脱量」コストの重み | 100000.0 | +| `over_a_weight` | `double` | 「加速度制限逸脱量」コストの重み | 1000.0 | ### その他 -| 名称 | 型 | 説明 | デフォルト値 | -| :---------------------------- | :------- | :------------------------------------------------------------------------------------------------------- | :------------ | -| `over_stop_velocity_warn_thr` | `double` | 停止点における最適化速度が入力速度を超えていると判断するための閾値 [m/s] | 1.389 | +| 名称 | 型 | 説明 | デフォルト値 | +| :---------------------------- | :------- | :----------------------------------------------------------------------- | :----------- | +| `over_stop_velocity_warn_thr` | `double` | 停止点における最適化速度が入力速度を超えていると判断するための閾値 [m/s] | 1.389 | ## 仮定 / 既知の限界 @@ -400,4 +409,4 @@ Autowareでは、Linfモジュールは、障害物回避Planningにおける重 [2] Y. Zhang, et al., "Toward a More Complete, Flexible, and Safer Speed Planning for Autonomous Driving via Convex Optimization", Sensors, vol. 18, no. 7, p. 2185, 2018, [10.3390/s18072185](https://doi.org/10.3390/s18072185) -## (オプション) 将来の拡張 / 未実装の部分 \ No newline at end of file +## (オプション) 将来の拡張 / 未実装の部分 diff --git a/planning/behavior_path_planner/autoware_behavior_path_avoidance_by_lane_change_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_avoidance_by_lane_change_module/README.md index 67d9d755b4e4..b345fc8c1f6a 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_avoidance_by_lane_change_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_avoidance_by_lane_change_module/README.md @@ -33,9 +33,8 @@ ## パラメータ -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :------------------------------------------- | ---- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- | ----------- | -| execute_object_num | [-] | int | 自車進行車線上の回避対象の数がこの値より多い場合、本モジュールが起動します。 | 1 | -| execute_object_longitudinal_margin | [m] | double | [おそらく未使用] 自車と回避対象の距離がこの値よりも長い場合のみ、本モジュールが起動します。 | 0.0 | -| execute_only_when_lane_change_finish_before_object | [-] | bool | このフラグが`true`に設定されている場合、本モジュールは車線変更の終了点が回避対象の **後ろではない** 場合にのみ起動します。 | true | - +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :------------------------------------------------- | ---- | ------ | -------------------------------------------------------------------------------------------------------------------------- | ------------ | +| execute_object_num | [-] | int | 自車進行車線上の回避対象の数がこの値より多い場合、本モジュールが起動します。 | 1 | +| execute_object_longitudinal_margin | [m] | double | [おそらく未使用] 自車と回避対象の距離がこの値よりも長い場合のみ、本モジュールが起動します。 | 0.0 | +| execute_only_when_lane_change_finish_before_object | [-] | bool | このフラグが`true`に設定されている場合、本モジュールは車線変更の終了点が回避対象の **後ろではない** 場合にのみ起動します。 | true | diff --git a/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/README.md index f471437f6ca7..33a74b6390e4 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/README.md @@ -15,10 +15,10 @@ そのため、本モジュールの名称には「動的」という言葉が使用されています。 以下の表に、各状況に対応する回避モジュールを記載します。 -| | 車線内での回避 | 車線外の外側からの回避 | -| :----------------------- | :------------------------------------------------------------------------: | :------------------------------------: | -| 未稼働オブジェクトの回避 | Avoidance Module
Dynamic Avoidance Module + Obstacle Avoidance Module | Avoidance Module | -| 稼働オブジェクトの回避 | Dynamic Avoidance Module + Obstacle Avoidance Module | モジュールなし (開発中) | +| | 車線内での回避 | 車線外の外側からの回避 | +| :----------------------- | :------------------------------------------------------------------------: | :---------------------: | +| 未稼働オブジェクトの回避 | Avoidance Module
Dynamic Avoidance Module + Obstacle Avoidance Module | Avoidance Module | +| 稼働オブジェクトの回避 | Dynamic Avoidance Module + Obstacle Avoidance Module | モジュールなし (開発中) | ## アルゴリズムのポリシー @@ -118,19 +118,18 @@ 開発中 -| 名称 | 単位 | 型 | 説明 | デフォルト値 | -| :--------------------------------------------------------------- | :---- | :----- | :------------------------------------------------------------------ | :------------ | -| `target_object.car` | [-] | bool | 車の回避フラグ | true | -| `target_object.truck` | [-] | bool | トラックの回避フラグ | true | -| ... | [-] | bool | ... | ... | -| `target_object.min_obstacle_vel` | [m/s] | double | 回避する際の最小障害物速度 | 1.0 | -| `drivable_area_generation.lat_offset_from_obstacle` | [m] | double | 障害物からの回避用横方向オフセット | 0.8 | -| `drivable_area_generation.max_lat_offset_to_avoid` | [m] | double | 回避する際の最大横方向オフセット | 0.5 | -| `drivable_area_generation.overtaking_object.max_time_to_collision` | [s] | double | タイムトゥーコリジョンを計算する際の最大値 | 3.0 | -| `drivable_area_generation.overtaking_object.start_duration_to_avoid` | [s] | double | 障害物を通過する前に回避を考慮する期間 | 4.0 | -| `drivable_area_generation.overtaking_object.end_duration_to_avoid` | [s] | double | 障害物を通過した後に回避を考慮する期間 | 5.0 | -| `drivable_area_generation.overtaking_object.duration_to_hold_avoidance` | [s] | double | 障害物を通過した後に回避を保持する期間 | 3.0 | -| `drivable_area_generation.oncoming_object.max_time_to_collision` | [s] | double | タイムトゥーコリジョンを計算する際の最大値 | 3.0 | -| `drivable_area_generation.oncoming_object.start_duration_to_avoid` | [s] | double | 障害物を通過する前に回避を考慮する期間 | 9.0 | -| `drivable_area_generation.oncoming_object.end_duration_to_avoid` | [s] | double | 障害物を通過した後に回避を考慮する期間 | 0.0 | - +| 名称 | 単位 | 型 | 説明 | デフォルト値 | +| :---------------------------------------------------------------------- | :---- | :----- | :----------------------------------------- | :----------- | +| `target_object.car` | [-] | bool | 車の回避フラグ | true | +| `target_object.truck` | [-] | bool | トラックの回避フラグ | true | +| ... | [-] | bool | ... | ... | +| `target_object.min_obstacle_vel` | [m/s] | double | 回避する際の最小障害物速度 | 1.0 | +| `drivable_area_generation.lat_offset_from_obstacle` | [m] | double | 障害物からの回避用横方向オフセット | 0.8 | +| `drivable_area_generation.max_lat_offset_to_avoid` | [m] | double | 回避する際の最大横方向オフセット | 0.5 | +| `drivable_area_generation.overtaking_object.max_time_to_collision` | [s] | double | タイムトゥーコリジョンを計算する際の最大値 | 3.0 | +| `drivable_area_generation.overtaking_object.start_duration_to_avoid` | [s] | double | 障害物を通過する前に回避を考慮する期間 | 4.0 | +| `drivable_area_generation.overtaking_object.end_duration_to_avoid` | [s] | double | 障害物を通過した後に回避を考慮する期間 | 5.0 | +| `drivable_area_generation.overtaking_object.duration_to_hold_avoidance` | [s] | double | 障害物を通過した後に回避を保持する期間 | 3.0 | +| `drivable_area_generation.oncoming_object.max_time_to_collision` | [s] | double | タイムトゥーコリジョンを計算する際の最大値 | 3.0 | +| `drivable_area_generation.oncoming_object.start_duration_to_avoid` | [s] | double | 障害物を通過する前に回避を考慮する期間 | 9.0 | +| `drivable_area_generation.oncoming_object.end_duration_to_avoid` | [s] | double | 障害物を通過した後に回避を考慮する期間 | 0.0 | diff --git a/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/README.md index 1ca2c53bcbd6..f2ca30e874e2 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/README.md @@ -12,7 +12,6 @@ ゴール変更が許可されていない場合は、指定された固定ゴールに駐車する(下の図の `fixed_goal_planner`)。 許可されている場合は、指定されたポリシー(例:車線の左右に駐車)に従って駐車する(下の図の `rough_goal_planner`)。現在、ラフゴールプランナーはプルオーバー機能のみをサポートしているが、将来的にはさまざまな駐車ポリシーに対応できることが望ましい。 - ```plantuml @startuml package goal_planner{ @@ -127,12 +126,12 @@ _注意: このプランナーは、「目標探索」、「衝突チェック ## goal_planner の一般的なパラメータ -| 名前 | 単位 | タイプ | 説明 | デフォルト値 | -| :------------------------ | :---- | :----- | :---------------------------------------------------------------------- | :------------ | -| th_arrived_distance | [m] | 数値 | パス終了に到着するための距離閾値 | 1.0 | -| th_stopped_velocity | [m/s] | 数値 | パス終了に到着するための速度閾値 | 0.01 | -| th_stopped_time | [s] | 数値 | パス終了に到着するための時間閾値 | 2.0 | -| center_line_path_interval | [m] | 数値 | 参照センターラインパスのポイント間隔 | 1.0 | +| 名前 | 単位 | タイプ | 説明 | デフォルト値 | +| :------------------------ | :---- | :----- | :----------------------------------- | :----------- | +| th_arrived_distance | [m] | 数値 | パス終了に到着するための距離閾値 | 1.0 | +| th_stopped_velocity | [m/s] | 数値 | パス終了に到着するための速度閾値 | 0.01 | +| th_stopped_time | [s] | 数値 | パス終了に到着するための時間閾値 | 2.0 | +| center_line_path_interval | [m] | 数値 | 参照センターラインパスのポイント間隔 | 1.0 | ## **Goal Search** @@ -174,19 +173,19 @@ _注意: このプランナーは、「目標探索」、「衝突チェック ### Goal Search のパラメータ -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :------------------------------ | :--- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | -| goal_priority | [-] | string | longitudinal distancesを優先し小さい距離を優先する `minimum_longitudinal_distance`、weighted lateral distanceとlongitudinal distanceの総和を優先する `minimum_weighted_distance` | `minimum_weighted_distance` | -| lateral_weight | [-] | double | `minimum_weighted_distance`時に使用されるlateral distanceの重み | 40.0 | -| prioritize_goals_before_objects | [-] | bool | 回避すべきオブジェクトがある場合、それらの前面にある目標を優先 | true | -| forward_goal_search_length | [m] | double | 元の目標から探索する前方範囲の長さ | 20.0 | -| backward_goal_search_length | [m] | double | 元の目標から探索する後方範囲の長さ | 20.0 | -| goal_search_interval | [m] | double | 目標検索の距離間隔 | 2.0 | -| longitudinal_margin | [m] | double | 目標位置の自車と障害物間の距離マージン | 3.0 | -| max_lateral_offset | [m] | double | lateral方向の目標検索の最大オフセット | 0.5 | -| lateral_offset_interval | [m] | double | lateral方向の目標検索の距離間隔 | 0.25 | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :------------------------------ | :--- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------- | +| goal_priority | [-] | string | longitudinal distancesを優先し小さい距離を優先する `minimum_longitudinal_distance`、weighted lateral distanceとlongitudinal distanceの総和を優先する `minimum_weighted_distance` | `minimum_weighted_distance` | +| lateral_weight | [-] | double | `minimum_weighted_distance`時に使用されるlateral distanceの重み | 40.0 | +| prioritize_goals_before_objects | [-] | bool | 回避すべきオブジェクトがある場合、それらの前面にある目標を優先 | true | +| forward_goal_search_length | [m] | double | 元の目標から探索する前方範囲の長さ | 20.0 | +| backward_goal_search_length | [m] | double | 元の目標から探索する後方範囲の長さ | 20.0 | +| goal_search_interval | [m] | double | 目標検索の距離間隔 | 2.0 | +| longitudinal_margin | [m] | double | 目標位置の自車と障害物間の距離マージン | 3.0 | +| max_lateral_offset | [m] | double | lateral方向の目標検索の最大オフセット | 0.5 | +| lateral_offset_interval | [m] | double | lateral方向の目標検索の距離間隔 | 0.25 | | ignore_distance_from_lane_start | [m] | double | このパラメータによって、車線路の開始位置と目標間の距離が指定した値以上になることが保証されます。これは、目標を車線路の開始位置にかなり近い位置に設定することを防ぐために使用され、安全でない、または実用的な路肩への車両移動につながる可能性があります。この値を増やすと、システムは車線路の開始位置近くの潜在的な目標位置を無視せざるを得なくなり、安全で快適な路肩への車両移動につながる可能性があります。 | 0.0 | -| margin_from_boundary | [m] | double | 車線路の端からの距離マージン | 0.5 | +| margin_from_boundary | [m] | double | 車線路の端からの距離マージン | 0.5 | ## **路肩駐車** @@ -205,16 +204,16 @@ _注意: このプランナーは、「目標探索」、「衝突チェック - そこで生成された経路候補はメインスレッドで参照され、現在のプランナーのデータ(例: 自車と障害物の情報)に対して有効と判断された候補がその中から選択されます。有効とは、急減速なし、障害物との衝突なしなどを意味します。選択された経路がこのモジュールの出力になります。 - 選択された経路がない場合、または選択された経路が衝突で自車が停止した場合、別のスレッド(フリースペース経路生成スレッド)がフリースペース Plannar アルゴリズムを使用して経路を生成します。有効なフリースペース経路が見つかった場合、それはモジュールの出力になります。障害物が移動して車線に沿って生成された路肩駐車の経路が衝突フリーの場合、経路は再び出力として使用されます。フリースペース経路の生成フローの詳細については、フリースペース駐車に関するセクションも参照してください。 -| 名称 | 単位 | 種類 | 説明 | デフォルト値 | -| ------------------------------------------ | ------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | -| pull_over_minimum_request_length | [m] | double | 自動車が目標地点にこの距離まで接近するか、停止する安全距離に達すると、プルオーバーが有効になる。 | 100.0 | -| pull_over_velocity | [m/s] | double | 目標検索エリアまでにこの速度に減速する | 3.0 | -| pull_over_minimum_velocity | [m/s] | double | 一度停止した後のプルオーバーの速度。過度の加速度を防止する。 | 1.38 | -| decide_path_distance | [m] | double | 駐車位置にこの距離まで接近した場合に経路を決定する。その後、経路計画と目標検索は実行されません | 10.0 | -| maximum_deceleration | [m/s2] | double | 最大減速度。駐車経路が急に検出できない場合に急減速を防ぐ。 | 1.0 | -| path_priority | [-] | string | `efficient_path`を使用する場合、`efficient_path_order`に設定された効率的な経路を生成できる目標を使用します。`close_goal`を使用する場合、元の目標に最も近い目標を使用します。 | efficient_path | -| efficient_path_order | [-] | string | フリースペースでのプルオーバーを除くレーンに沿ったプルオーバープランナーの効率的な順序 | ["SHIFT", "ARC_FORWARD", "ARC_BACKWARD"] | -| lane_departure_check_expansion_margin | [m] | double | 車線逸脱チェックを実行するときの自動車両のフットプリントを拡大するためのマージン | 0.0 | +| 名称 | 単位 | 種類 | 説明 | デフォルト値 | +| ------------------------------------- | ------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | +| pull_over_minimum_request_length | [m] | double | 自動車が目標地点にこの距離まで接近するか、停止する安全距離に達すると、プルオーバーが有効になる。 | 100.0 | +| pull_over_velocity | [m/s] | double | 目標検索エリアまでにこの速度に減速する | 3.0 | +| pull_over_minimum_velocity | [m/s] | double | 一度停止した後のプルオーバーの速度。過度の加速度を防止する。 | 1.38 | +| decide_path_distance | [m] | double | 駐車位置にこの距離まで接近した場合に経路を決定する。その後、経路計画と目標検索は実行されません | 10.0 | +| maximum_deceleration | [m/s2] | double | 最大減速度。駐車経路が急に検出できない場合に急減速を防ぐ。 | 1.0 | +| path_priority | [-] | string | `efficient_path`を使用する場合、`efficient_path_order`に設定された効率的な経路を生成できる目標を使用します。`close_goal`を使用する場合、元の目標に最も近い目標を使用します。 | efficient_path | +| efficient_path_order | [-] | string | フリースペースでのプルオーバーを除くレーンに沿ったプルオーバープランナーの効率的な順序 | ["SHIFT", "ARC_FORWARD", "ARC_BACKWARD"] | +| lane_departure_check_expansion_margin | [m] | double | 車線逸脱チェックを実行するときの自動車両のフットプリントを拡大するためのマージン | 0.0 | ### **路肩駐車** @@ -231,14 +230,14 @@ _注意: このプランナーは、「目標探索」、「衝突チェック #### 路肩駐車のパラメータ -| 名称 | 単位 | 型 | 説明 | デフォルト値 | -| :----------------------------- | :----- | :--------- | :-------------------------------------------------------------------- | :------------- | -| enable_shift_parking | [-] | ブール型 | シフトパーキングを有効にするフラグ | true | -| shift_sampling_num | [-] | 整数型 | lateral_jerkの最小および最大範囲内のサンプリング数 | 4 | -| maximum_lateral_jerk | [m/s3] | 倍精度浮動小数点数型 | 最大横方向ジャーク | 2.0 | -| minimum_lateral_jerk | [m/s3] | 倍精度浮動小数点数型 | 最小横方向ジャーク | 0.5 | -| deceleration_interval | [m] | 倍精度浮動小数点数型 | 減速区間の距離 | 15.0 | -| after_shift_straight_distance | [m] | 倍精度浮動小数点数型 | 引き寄せ終了後の直線距離 | 1.0 | +| 名称 | 単位 | 型 | 説明 | デフォルト値 | +| :---------------------------- | :----- | :------------------- | :------------------------------------------------- | :----------- | +| enable_shift_parking | [-] | ブール型 | シフトパーキングを有効にするフラグ | true | +| shift_sampling_num | [-] | 整数型 | lateral_jerkの最小および最大範囲内のサンプリング数 | 4 | +| maximum_lateral_jerk | [m/s3] | 倍精度浮動小数点数型 | 最大横方向ジャーク | 2.0 | +| minimum_lateral_jerk | [m/s3] | 倍精度浮動小数点数型 | 最小横方向ジャーク | 0.5 | +| deceleration_interval | [m] | 倍精度浮動小数点数型 | 減速区間の距離 | 15.0 | +| after_shift_straight_distance | [m] | 倍精度浮動小数点数型 | 引き寄せ終了後の直線距離 | 1.0 | ### **geometric parallel parking** @@ -247,10 +246,10 @@ _注意: このプランナーは、「目標探索」、「衝突チェック #### geometric parallel parkingのパラメータ -| 名称 | 単位 | 型 | 説明 | デフォルト値 | -| :---------------------- | :---- | :----- | :------------------------------------------------------------------------------------------------------------------- | :------------ | -| arc_path_interval | [m] | double | アークパスポイント間の距離 | 1.0 | -| pull_over_max_steer_rad | [rad] | double | Path生成時の最大ステアリング角度。停止中はvehicle_infoでmax_steer_angleまでステアリングを制御できない場合がある | 0.35 | +| 名称 | 単位 | 型 | 説明 | デフォルト値 | +| :---------------------- | :---- | :----- | :-------------------------------------------------------------------------------------------------------------- | :----------- | +| arc_path_interval | [m] | double | アークパスポイント間の距離 | 1.0 | +| pull_over_max_steer_rad | [rad] | double | Path生成時の最大ステアリング角度。停止中はvehicle_infoでmax_steer_angleまでステアリングを制御できない場合がある | 0.35 | #### アークフォワードパーキング @@ -262,12 +261,12 @@ _注意: このプランナーは、「目標探索」、「衝突チェック #### アークフォワードパーキングのパラメータ -| 名前 | 単位 | 型 | 説明 | デフォルト値 | -| :-------------------------------------- | :---- | :----- | :-------------------------------------------------------------------------------------------------- | :------------ | -| `enable_arc_forward_parking` | [-] | ブール | 円弧前進駐車を有効にするかどうか | true | -| `after_forward_parking_straight_distance` | [m] | double | 引き上げ終了地点から直線距離 | 2.0 | -| `forward_parking_velocity` | [m/s] | double | 前進駐車時の速度 | 1.38 | -| `forward_parking_lane_departure_margin` | [m/s] | double | 前進駐車時の車両左前角の車線逸脱マージン | 0.0 | +| 名前 | 単位 | 型 | 説明 | デフォルト値 | +| :---------------------------------------- | :---- | :----- | :--------------------------------------- | :----------- | +| `enable_arc_forward_parking` | [-] | ブール | 円弧前進駐車を有効にするかどうか | true | +| `after_forward_parking_straight_distance` | [m] | double | 引き上げ終了地点から直線距離 | 2.0 | +| `forward_parking_velocity` | [m/s] | double | 前進駐車時の速度 | 1.38 | +| `forward_parking_lane_departure_margin` | [m/s] | double | 前進駐車時の車両左前角の車線逸脱マージン | 0.0 | #### アーク後退駐車 @@ -279,12 +278,12 @@ _注意: このプランナーは、「目標探索」、「衝突チェック #### 後退アーク駐車のパラメータ -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :--------------------------------------- | :---- | :----- | :----------------------------------------------------------------------- | :----------- | -| enable_arc_backward_parking | [-] | bool | アーク後退駐車を有効にするフラグ | true | -| after_backward_parking_straight_distance | [m] | double | 駐車終了地点後の直線距離 | 2.0 | -| backward_parking_velocity | [m/s] | double | 後退駐車時の速度 | -1.38 | -| backward_parking_lane_departure_margin | [m/s] | double | 自車の前右隅が後退駐車時に車線から逸脱するマージン | 0.0 | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :--------------------------------------- | :---- | :----- | :------------------------------------------------- | :----------- | +| enable_arc_backward_parking | [-] | bool | アーク後退駐車を有効にするフラグ | true | +| after_backward_parking_straight_distance | [m] | double | 駐車終了地点後の直線距離 | 2.0 | +| backward_parking_velocity | [m/s] | double | 後退駐車時の速度 | -1.38 | +| backward_parking_lane_departure_margin | [m/s] | double | 自車の前右隅が後退駐車時に車線から逸脱するマージン | 0.0 | ### 無人駐車(Freespace Parking) @@ -299,9 +298,9 @@ _注意: このプランナーは、「目標探索」、「衝突チェック #### 無人駐車パラメーター -| 名称 | 単位 | 型 | 説明 | デフォルト値 | -| :----------------------- | :--- | :--- | :---------------------------------------------------------------------------------------------------------------- | :------------ | -| enable_freespace_parking | [-] | ブール値 | 障害物などにより駐車スペースで車両がスタックした場合にfreespace駐車が有効になるフラグです。 | true | +| 名称 | 単位 | 型 | 説明 | デフォルト値 | +| :----------------------- | :--- | :------- | :------------------------------------------------------------------------------------------ | :----------- | +| enable_freespace_parking | [-] | ブール値 | 障害物などにより駐車スペースで車両がスタックした場合にfreespace駐車が有効になるフラグです。 | true | [freespace_planner](../autoware_freespace_planner/README.md)の他のパラメータについては、参照してください。 @@ -315,14 +314,14 @@ _注意: このプランナーは、「目標探索」、「衝突チェック #### オキュパンシーグリッドベースの衝突チェックに関するパラメータ -| 名前 | 単位 | タイプ | 説明 | デフォルト値 | -| :------------------------------------------------------ | :--- | :----- | :-------------------------------------------------------------------------------------------------------------- | :------------ | -| use_occupancy_grid_for_goal_search | - | bool | 目標探索衝突確認のためオキューパンシーグリッドを使用するかどうか | true | -| use_occupancy_grid_for_goal_longitudinal_margin | - | bool | 縦方向マージンを保持するためオキューパンシーグリッドを使用するかどうか | false | -| use_occupancy_grid_for_path_collision_check | - | bool | 衝突確認のためオキューパンシーグリッドを使用するかどうか | false | -| occupancy_grid_collision_check_margin | m | double | フットプリントから自車セルを計算するためのマージン | 0.0 | -| theta_size | - | int | 考慮するシータ角のサイズ。衝突確認の角度分解能は 2$\pi$ / theta_size [rad] となります。 | 360 | -| obstacle_threshold | - | int | 障害物と見なされるセルの値のしきい値 | 60 | +| 名前 | 単位 | タイプ | 説明 | デフォルト値 | +| :---------------------------------------------- | :--- | :----- | :-------------------------------------------------------------------------------------- | :----------- | +| use_occupancy_grid_for_goal_search | - | bool | 目標探索衝突確認のためオキューパンシーグリッドを使用するかどうか | true | +| use_occupancy_grid_for_goal_longitudinal_margin | - | bool | 縦方向マージンを保持するためオキューパンシーグリッドを使用するかどうか | false | +| use_occupancy_grid_for_path_collision_check | - | bool | 衝突確認のためオキューパンシーグリッドを使用するかどうか | false | +| occupancy_grid_collision_check_margin | m | double | フットプリントから自車セルを計算するためのマージン | 0.0 | +| theta_size | - | int | 考慮するシータ角のサイズ。衝突確認の角度分解能は 2$\pi$ / theta_size [rad] となります。 | 360 | +| obstacle_threshold | - | int | 障害物と見なされるセルの値のしきい値 | 60 | ### **オブジェクト認識ベースの衝突確認** @@ -339,13 +338,13 @@ _注意: このプランナーは、「目標探索」、「衝突チェック #### オブジェクト認識ベースの衝突確認のパラメータ -| 名称 | 単位 | 入力種別 | 説明 | デフォルト値 | -| :----------------------------------------------------------- | :--- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | -| use_object_recognition | [-] | bool | 障害物チェックに物体認識を使用するかどうか | true | -| object_recognition_collision_check_soft_margins | [m] | vector[double] | パス生成時の衝突チェックのソフトマージン。厳密にはフットプリント間の距離ではなく、自己位置と物体が向き合っているときの最大距離。 | [5.0, 4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0] | -| object_recognition_collision_check_hard_margins | [m] | vector[double] | パス生成時の衝突チェックのハードマージン | [0.6] | -| object_recognition_collision_check_max_extra_stopping_margin | [m] | double | 停止距離を考慮した衝突チェックのための縦方向距離マージンの追加時の最大値 | 1.0 | -| detection_bound_offset | [m] | double | パス生成の衝突チェック検出エリアを作るため、待避レーンをこのオフセットで拡張 | 15.0 | +| 名称 | 単位 | 入力種別 | 説明 | デフォルト値 | +| :----------------------------------------------------------- | :--- | :------------- | :------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------- | +| use_object_recognition | [-] | bool | 障害物チェックに物体認識を使用するかどうか | true | +| object_recognition_collision_check_soft_margins | [m] | vector[double] | パス生成時の衝突チェックのソフトマージン。厳密にはフットプリント間の距離ではなく、自己位置と物体が向き合っているときの最大距離。 | [5.0, 4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0] | +| object_recognition_collision_check_hard_margins | [m] | vector[double] | パス生成時の衝突チェックのハードマージン | [0.6] | +| object_recognition_collision_check_max_extra_stopping_margin | [m] | double | 停止距離を考慮した衝突チェックのための縦方向距離マージンの追加時の最大値 | 1.0 | +| detection_bound_offset | [m] | double | パス生成の衝突チェック検出エリアを作るため、待避レーンをこのオフセットで拡張 | 15.0 | ## **safety check** @@ -365,7 +364,6 @@ _注意: このプランナーは、「目標探索」、「衝突チェック また、安全チェックには時間のヒステリシスがあり、一定期間(`keep_unsafe_time`)経路が「安全」と判断されると、最終的に「安全」として扱われます。 - ```txt ==== is_safe ---- current_is_safe @@ -383,33 +381,33 @@ _注意: このプランナーは、「目標探索」、「衝突チェック ### 安全チェックのパラメータ -| 名前 | 単位 | タイプ | 説明 | デフォルト値 | -| :----------------------------------- | :---- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------- | -| enable_safety_check | [-] | bool | セーフティチェックを使用するかどうか | true | -| method | [-] | 文字列 | セーフティチェックの方法. RSSまたはintegral_predicted_polygon | integral_predicted_polygon | -| keep_unsafe_time | [s] | double | セーフティチェックヒステリシス時間. その時間だけ経路が"安全"と判定されれば、最終的に"安全"とみなされる | 3.0 | -| check_all_predicted_path | - | bool | 予測経路のすべてを確認するためのフラグ | true | -| publish_debug_marker | - | bool | デバッグマーカーを公開するためのフラグ | false | -| collision_check_yaw_diff_threshold | [rad] | double | RSSベースの衝突チェックを実行するときの、自己位置と物体との最大ヨーの違い | 3.1416 | +| 名前 | 単位 | タイプ | 説明 | デフォルト値 | +| :--------------------------------- | :---- | :----- | :----------------------------------------------------------------------------------------------------- | :------------------------- | +| enable_safety_check | [-] | bool | セーフティチェックを使用するかどうか | true | +| method | [-] | 文字列 | セーフティチェックの方法. RSSまたはintegral_predicted_polygon | integral_predicted_polygon | +| keep_unsafe_time | [s] | double | セーフティチェックヒステリシス時間. その時間だけ経路が"安全"と判定されれば、最終的に"安全"とみなされる | 3.0 | +| check_all_predicted_path | - | bool | 予測経路のすべてを確認するためのフラグ | true | +| publish_debug_marker | - | bool | デバッグマーカーを公開するためのフラグ | false | +| collision_check_yaw_diff_threshold | [rad] | double | RSSベースの衝突チェックを実行するときの、自己位置と物体との最大ヨーの違い | 3.1416 | #### RSS 安全性検査パラメータ -| 名前 | 単位 | 型 | 説明 | デフォルト値 | -| :------------------------------------------- | :--- | :----- | :------------------------------------------------- | :------------ | -| `rear_vehicle_reaction_time` | [s] | double | 後方車両の反応時間 | 2.0 | -| `rear_vehicle_safety_time_margin` | [s] | double | 後方車両の安全時間マージン | 1.0 | -| `lateral_distance_max_threshold` | [m] | double | 最大横方向距離閾値 | 2.0 | -| `longitudinal_distance_min_threshold` | [m] | double | 最小縦方向距離閾値 | 3.0 | -| `longitudinal_velocity_delta_time` | [s] | double | 縦方向速度のデルタ時間 | 0.8 | +| 名前 | 単位 | 型 | 説明 | デフォルト値 | +| :------------------------------------ | :--- | :----- | :------------------------- | :----------- | +| `rear_vehicle_reaction_time` | [s] | double | 後方車両の反応時間 | 2.0 | +| `rear_vehicle_safety_time_margin` | [s] | double | 後方車両の安全時間マージン | 1.0 | +| `lateral_distance_max_threshold` | [m] | double | 最大横方向距離閾値 | 2.0 | +| `longitudinal_distance_min_threshold` | [m] | double | 最小縦方向距離閾値 | 3.0 | +| `longitudinal_velocity_delta_time` | [s] | double | 縦方向速度のデルタ時間 | 0.8 | #### インテグラル予測ポリゴン安全性チェック用パラメーター -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :-------------- | :--- | :----- | :------------------------------------- | :------------ | -| forward_margin | [m] | double | 自己位置の前面の余裕 | 1.0 | -| backward_margin | [m] | double | 自己位置の後面の余裕 | 1.0 | -| lat_margin | [m] | double | 自己位置の側面の余裕 | 1.0 | -| time_horizon | [s] | double | 各フットプリントを統合する時間幅 | 10.0 | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :-------------- | :--- | :----- | :------------------------------- | :----------- | +| forward_margin | [m] | double | 自己位置の前面の余裕 | 1.0 | +| backward_margin | [m] | double | 自己位置の後面の余裕 | 1.0 | +| lat_margin | [m] | double | 自己位置の側面の余裕 | 1.0 | +| time_horizon | [s] | double | 各フットプリントを統合する時間幅 | 10.0 | ## **パス決定** @@ -429,4 +427,3 @@ _注意: このプランナーは、「目標探索」、「衝突チェック - 短いパスが生成された場合、エゴカーは走行できません。 - 複雑なケースでは、生成に時間がかかったり、失敗したりします。 - 走行可能なエリアは `parking_lot` に収まることが保証されていません。 - diff --git a/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/README.md index 61cf9c4b4b0c..3833fbfcbcd4 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/README.md @@ -26,7 +26,6 @@ 以下のグラフは、車線変更の候補経路をサンプリングするプロセスを示しています。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -92,7 +91,6 @@ stop 以下の図では、有効な候補経路の生成プロセスを示しています。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -132,7 +130,6 @@ endif 準備軌道とは候補パスの中で最初で、自車位置に沿って生成される直線部分です。準備軌道の長さは、以下のように計算します。 - ```C++ lane_change_prepare_distance = current_speed * lane_change_prepare_duration + 0.5 * deceleration * lane_change_prepare_duration^2 ``` @@ -143,7 +140,6 @@ lane_change_prepare_distance = current_speed * lane_change_prepare_duration + 0. レーン変更の段階は、自車の現在の車線から目標の車線に移動するシフトパスで構成されています。レーン変更の段階の総距離を以下に示します。レーン変更の段階では、自車は一定速度で走行します。 - ```C++ lane_change_prepare_velocity = std::max(current_speed + deceleration * lane_change_prepare_duration, minimum_lane_changing_velocity) lane_changing_distance = lane_change_prepare_velocity * lane_changing_duration @@ -157,7 +153,6 @@ lane_changing_distance = lane_change_prepare_velocity * lane_changing_duration 事前決定された縦方向加速度値は、`longitudinal_acceleration = maximum_longitudinal_acceleration` から開始されるセットと、`longitudinal_acceleration = -maximum_longitudinal_deceleration` に達するまで `longitudinal_acceleration_resolution` ずつ減少するセットです。`maximum_longitudinal_acceleration` と `maximum_longitudinal_deceleration` の両方が、`common.param` ファイルで `normal.min_acc` として定義されているように計算されます。 - ```C++ maximum_longitudinal_acceleration = min(common_param.max_acc, lane_change_param.max_acc) maximum_longitudinal_deceleration = max(common_param.min_acc, lane_change_param.min_acc) @@ -167,7 +162,6 @@ maximum_longitudinal_deceleration = max(common_param.min_acc, lane_change_param. `longitudinal_acceleration_resolution` は次によって決定されます。 - ```C++ longitudinal_acceleration_resolution = (maximum_longitudinal_acceleration - minimum_longitudinal_acceleration) / longitudinal_acceleration_sampling_num ``` @@ -176,7 +170,6 @@ longitudinal_acceleration_resolution = (maximum_longitudinal_acceleration - mini グラフは縦加速度の値がサンプリングされる条件を示しています。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -230,7 +223,6 @@ stop このドキュメントでは、縦断加速度をサンプリングするプロセスについて説明します。 - ```plantuml @startuml start @@ -360,7 +352,6 @@ Planningコンポーネントは、将来の機能拡張や改善のために設 この範囲内で、自車位置の横加速度をサンプリングします。縦加速度のサンプリングに使用された方法と同様、横加速度の分解能 (lateral_acceleration_resolution) は以下の方法で決定されます。 - ```C++ lateral_acceleration_resolution = (maximum_lateral_acceleration - minimum_lateral_acceleration) / lateral_acceleration_sampling_num ``` @@ -378,7 +369,6 @@ lateral_acceleration_resolution = (maximum_lateral_acceleration - minimum_latera 以下のフローチャートは、有効性チェックを示しています。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -473,7 +463,6 @@ stop ##### オブジェクトフィルタリング - ```plantuml @startuml skinparam defaultTextAlignment center @@ -619,7 +608,6 @@ stop 他の車両と一緒に公道を走行する場合は、車線変更が実行できないシナリオがあります。例えば、近隣の車線に進入車両があるため、候補パスが安全でない場合が考えられます。その場合、自車位置は車線変更することができず、ゴールに到達することはできません。そのため、自車位置は特定の距離で早めに停止し、近隣の車線が安全と評価されるまで待つ必要があります。最小停止距離は、シフトの長さと車線変更の最小速度から計算できます。 - ```C++ lane_changing_time = f(shift_length, lat_acceleration, lat_jerk) minimum_lane_change_distance = minimum_prepare_length + minimum_lane_changing_velocity * lane_changing_time + lane_change_finish_judge_buffer @@ -635,7 +623,6 @@ minimum_lane_change_distance = minimum_prepare_length + minimum_lane_changing_ve 次のフローチャートとサブセクションでは、障害物が前方にある場合に停止地点を挿入する場所の決定条件について説明します。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -755,7 +742,6 @@ stop 以下は、車線変更の中断チェックの流れを示しています。 - ```plantuml @startuml skinparam monochrome true @@ -804,7 +790,6 @@ detach 安全と危険な状態の交互によって発生する車線変更経路の振動に対する予防策として、中止またはキャンセル操作を実行する前に、ヒステリシスカウントチェックが追加で実装されています。安全でない場合は、`unsafe_hysteresis_count_` がインクリメントされ、`unsafe_hysteresis_threshold` と比較されます。これを超えると中止条件のチェックが促され、最近の安全評価を考慮に入れて決定が下されるようにします(上のフローチャートで示されています)。このメカニズムは意思決定を安定させ、一時的な安全でない状態による急激な変化を防ぎます。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -858,7 +843,6 @@ endif 車線変更完了の判定プロセスは、次の図に示します。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -910,46 +894,46 @@ endif 以下のパラメータは [lane_change.param.yaml](https://github.com/autowarefoundation/autoware_launch/blob/main/autoware_launch/config/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/lane_change/lane_change.param.yaml) で構成できます。 -| 名前 | 単位 | 型 | 説明 | デフォルト値 | -|---|---|---|---|---| -| `backward_lane_length` | [m] | double | 車線変更のターゲット車線を後方からチェックする長さ | 200.0 | -| `prepare_duration` | [m] | double | 自動運転車が車線変更の準備をするための時間 | 4.0 | -| `backward_length_buffer_for_end_of_lane` | [m] | double | 車線変更を開始するために自動運転車が十分な距離を確保するための、車線末端のバッファ | 3.0 | -| `backward_length_buffer_for_blocking_object` | [m] | double | 車両の正面に障害物がある場合に車線変更を開始するために自動運転車が十分な距離を確保するための、車線末端のバッファ | 3.0 | -| `backward_length_from_intersection` | [m] | double | 最後の交差点からの距離のしきい値。この距離以内では車線変更経路が無効またはキャンセルされる | 5.0 | -| `lane_change_finish_judge_buffer` | [m] | double | 車線変更プロセスの完了を確認するために使用される追加のバッファ | 2.0 | -| `lane_changing_lateral_jerk` | [m/s3] | double | 車線変更経路を生成するための横方向加速度値 | 0.5 | -| `minimum_lane_changing_velocity` | [m/s] | double | 車線変更プロセス中の最小速度 | 2.78 | -| `prediction_time_resolution` | [s] | double | 障害物の経路補間と衝突チェックのための時間分解能 | 0.5 | -| `longitudinal_acceleration_sampling_num` | [-] | int | 縦方向加速度の影響を受ける車線変更可能な経路の数 | 3 | -| `lateral_acceleration_sampling_num` | [-] | int | 横方向加速度の影響を受ける車線変更可能な経路の数 | 3 | -| `object_check_min_road_shoulder_width` | [m] | double | 車線に路側帯がない場合、路側帯と見なされる幅 | 0.5 | -| `object_shiftable_ratio_threshold` | [-] | double | 中心線からこの距離比内にある車両は、駐車車両から除外される | 0.6 | -| `min_length_for_turn_signal_activation` | [m] | double | 自動運転車が車線変更の最小距離にこの長さまで近づいたら、ターンシグナルが有効になる | 10.0 | -| `length_ratio_for_turn_signal_deactivation` | [-] | double | 自動運転車が車線変更の終了点にこの距離比まで近づいたら、ターンシグナルが無効になる | 0.8 | -| `max_longitudinal_acc` | [-] | double | 車線変更の最大縦方向加速度 | 1.0 | -| `min_longitudinal_acc` | [-] | double | 車線変更の最大縦方向減速度 | -1.0 | -| `lateral_acceleration.velocity` | [m/s] | double | 横方向加速度計算のための基準速度(参照テーブル) | [0.0, 4.0, 10.0] | -| `lateral_acceleration.min_values` | [m/ss] | double | 速度に対応する最小横方向加速度値(参照テーブル) | [0.4, 0.4, 0.4] | -| `lateral_acceleration.max_values` | [m/ss] | double | 速度に対応する最大横方向加速度値(参照テーブル) | [0.65, 0.65, 0.65] | +| 名前 | 単位 | 型 | 説明 | デフォルト値 | +| -------------------------------------------- | ------ | ------ | ---------------------------------------------------------------------------------------------------------------- | ------------------ | +| `backward_lane_length` | [m] | double | 車線変更のターゲット車線を後方からチェックする長さ | 200.0 | +| `prepare_duration` | [m] | double | 自動運転車が車線変更の準備をするための時間 | 4.0 | +| `backward_length_buffer_for_end_of_lane` | [m] | double | 車線変更を開始するために自動運転車が十分な距離を確保するための、車線末端のバッファ | 3.0 | +| `backward_length_buffer_for_blocking_object` | [m] | double | 車両の正面に障害物がある場合に車線変更を開始するために自動運転車が十分な距離を確保するための、車線末端のバッファ | 3.0 | +| `backward_length_from_intersection` | [m] | double | 最後の交差点からの距離のしきい値。この距離以内では車線変更経路が無効またはキャンセルされる | 5.0 | +| `lane_change_finish_judge_buffer` | [m] | double | 車線変更プロセスの完了を確認するために使用される追加のバッファ | 2.0 | +| `lane_changing_lateral_jerk` | [m/s3] | double | 車線変更経路を生成するための横方向加速度値 | 0.5 | +| `minimum_lane_changing_velocity` | [m/s] | double | 車線変更プロセス中の最小速度 | 2.78 | +| `prediction_time_resolution` | [s] | double | 障害物の経路補間と衝突チェックのための時間分解能 | 0.5 | +| `longitudinal_acceleration_sampling_num` | [-] | int | 縦方向加速度の影響を受ける車線変更可能な経路の数 | 3 | +| `lateral_acceleration_sampling_num` | [-] | int | 横方向加速度の影響を受ける車線変更可能な経路の数 | 3 | +| `object_check_min_road_shoulder_width` | [m] | double | 車線に路側帯がない場合、路側帯と見なされる幅 | 0.5 | +| `object_shiftable_ratio_threshold` | [-] | double | 中心線からこの距離比内にある車両は、駐車車両から除外される | 0.6 | +| `min_length_for_turn_signal_activation` | [m] | double | 自動運転車が車線変更の最小距離にこの長さまで近づいたら、ターンシグナルが有効になる | 10.0 | +| `length_ratio_for_turn_signal_deactivation` | [-] | double | 自動運転車が車線変更の終了点にこの距離比まで近づいたら、ターンシグナルが無効になる | 0.8 | +| `max_longitudinal_acc` | [-] | double | 車線変更の最大縦方向加速度 | 1.0 | +| `min_longitudinal_acc` | [-] | double | 車線変更の最大縦方向減速度 | -1.0 | +| `lateral_acceleration.velocity` | [m/s] | double | 横方向加速度計算のための基準速度(参照テーブル) | [0.0, 4.0, 10.0] | +| `lateral_acceleration.min_values` | [m/ss] | double | 速度に対応する最小横方向加速度値(参照テーブル) | [0.4, 0.4, 0.4] | +| `lateral_acceleration.max_values` | [m/ss] | double | 速度に対応する最大横方向加速度値(参照テーブル) | [0.65, 0.65, 0.65] | ### 車線変更完了判定パラメータ 車線変更完了を判定するために、以下のパラメータを使用します。 -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :------------------------------------- | ----- | ------ | ---------------------------------------------------------------------------------------------------------------------- | ------------- | -| `lane_change_finish_judge_buffer` | [m] | double | レーン変更終了姿勢からの縦方向距離 | 2.0 | -| `finish_judge_lateral_threshold` | [m] | double | ターゲットレーンの中心線からの横方向距離。`finish_judge_lateral_angle_deviation`と併用する | 0.1 | -| `finish_judge_lateral_angle_deviation` | [度] | double | ターゲットレーンの中心線に対する自車角度偏差。`finish_judge_lateral_threshold`と併用する | 2.0 | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :------------------------------------- | ---- | ------ | ------------------------------------------------------------------------------------------ | ------------ | +| `lane_change_finish_judge_buffer` | [m] | double | レーン変更終了姿勢からの縦方向距離 | 2.0 | +| `finish_judge_lateral_threshold` | [m] | double | ターゲットレーンの中心線からの横方向距離。`finish_judge_lateral_angle_deviation`と併用する | 0.1 | +| `finish_judge_lateral_angle_deviation` | [度] | double | ターゲットレーンの中心線に対する自車角度偏差。`finish_judge_lateral_threshold`と併用する | 2.0 | ### 車線変更規制 -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :------------------------- | ---- | ------- | ----------------------------------------------------------------------------------- | ------------- | -| `regulation.crosswalk` | [-] | ブール値 | 横断歩道間での車線変更を許可する | true | -| `regulation.intersection` | [-] | ブール値 | 交差点間での車線変更を許可する | true | -| `regulation.traffic_light` | [-] | ブール値 | 信号間での車線変更の実行を許可する | true | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :------------------------- | ---- | -------- | ---------------------------------- | ------------ | +| `regulation.crosswalk` | [-] | ブール値 | 横断歩道間での車線変更を許可する | true | +| `regulation.intersection` | [-] | ブール値 | 交差点間での車線変更を許可する | true | +| `regulation.traffic_light` | [-] | ブール値 | 信号間での車線変更の実行を許可する | true | ### 自車位置検出 @@ -957,96 +941,97 @@ endif 障害物が自車を完全に包囲して動作不可能にした状態を検出します。 -| 名称 | 単位 | 型 | 説明 | 初期値 | -| :-------------------------- | ----- | ------ | --------------------------------------------------- | ------------- | -| `stuck_detection.velocity` | [m/s] | double | 自車位置の静止検出における速度しきい値 | 0.1 | -| `stuck_detection.stop_time` | [秒] | double | 自車位置の静止検出における停止時間しきい値 | 3.0 | +| 名称 | 単位 | 型 | 説明 | 初期値 | +| :-------------------------- | ----- | ------ | ------------------------------------------ | ------ | +| `stuck_detection.velocity` | [m/s] | double | 自車位置の静止検出における速度しきい値 | 0.1 | +| `stuck_detection.stop_time` | [秒] | double | 自車位置の静止検出における停止時間しきい値 | 3.0 | ### 衝突チェック #### 目標オブジェクト -| 名前 | 単位 | 型 | 説明 | デフォルト値 | -| :------------------------- | ---- | ------- | -------------------------------------------------- | ------------- | -| `target_object.car` | [-] | boolean | 安全チェックに自動車オブジェクトを含める | true | -| `target_object.truck` | [-] | boolean | 安全チェックにトラックオブジェクトを含める | true | -| `target_object.bus` | [-] | boolean | 安全チェックにバスオブジェクトを含める | true | -| `target_object.trailer` | [-] | boolean | 安全チェックにトレーラーオブジェクトを含める | true | -| `target_object.unknown` | [-] | boolean | 安全チェックに不明オブジェクトを含める | true | -| `target_object.bicycle` | [-] | boolean | 安全チェックに自転車オブジェクトを含める | true | -| `target_object.motorcycle` | [-] | boolean | 安全チェックにオートバイオブジェクトを含める | true | -| `target_object.pedestrian` | [-] | boolean | 安全チェックに歩行者オブジェクトを含める | true | +| 名前 | 単位 | 型 | 説明 | デフォルト値 | +| :------------------------- | ---- | ------- | -------------------------------------------- | ------------ | +| `target_object.car` | [-] | boolean | 安全チェックに自動車オブジェクトを含める | true | +| `target_object.truck` | [-] | boolean | 安全チェックにトラックオブジェクトを含める | true | +| `target_object.bus` | [-] | boolean | 安全チェックにバスオブジェクトを含める | true | +| `target_object.trailer` | [-] | boolean | 安全チェックにトレーラーオブジェクトを含める | true | +| `target_object.unknown` | [-] | boolean | 安全チェックに不明オブジェクトを含める | true | +| `target_object.bicycle` | [-] | boolean | 安全チェックに自転車オブジェクトを含める | true | +| `target_object.motorcycle` | [-] | boolean | 安全チェックにオートバイオブジェクトを含める | true | +| `target_object.pedestrian` | [-] | boolean | 安全チェックに歩行者オブジェクトを含める | true | #### common -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :---------------------------------------- | ---- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -| `safety_check.lane_expansion.left_offset` | [m] | 倍精度浮動小数点 | 検出領域の左側の境界を拡大し、以前は左側にあったオブジェクトの検出とターゲットへの登録を可能にする。 | 0.0 | -| `safety_check.lane_expansion.right_offset` | [m] | 倍精度浮動小数点 | 検出領域の右側の境界を拡大し、以前は右側にあったオブジェクトの検出とターゲットへの登録を可能にする。 | 0.0 | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :----------------------------------------- | ---- | ---------------- | ---------------------------------------------------------------------------------------------------- | ------------ | +| `safety_check.lane_expansion.left_offset` | [m] | 倍精度浮動小数点 | 検出領域の左側の境界を拡大し、以前は左側にあったオブジェクトの検出とターゲットへの登録を可能にする。 | 0.0 | +| `safety_check.lane_expansion.right_offset` | [m] | 倍精度浮動小数点 | 検出領域の右側の境界を拡大し、以前は右側にあったオブジェクトの検出とターゲットへの登録を可能にする。 | 0.0 | #### 追加パラメータ -| Name | Unit | Type | Description | Default value | -| :------------------------------------------------------- | ----- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | +| Name | Unit | Type | Description | Default value | +| :------------------------------------------------------- | ----- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | | `enable_collision_check_for_prepare_phase.general_lanes` | [-] | boolean | Planningコンポーネントの準備フェーズから衝突チェックを実行します(交差点など、他の設定で明示的にカバーされていない状況の場合)。`false`の場合、衝突チェックは車線変更フェーズのみで評価されます。 | false | -| `enable_collision_check_for_prepare_phase.intersection` | [-] | boolean | 自車が交差点にいる場合、準備フェーズから衝突チェックを実行します。`false`の場合、衝突チェックは車線変更フェーズのみで評価されます。 | true | -| `enable_collision_check_for_prepare_phase.turns` | [-] | boolean | 自車が旋回方向タグのあるLaneletにいる場合、準備フェーズから衝突チェックを実行します。`false`の場合、衝突チェックは車線変更フェーズのみで評価されます。 | true | -| `prepare_phase_ignore_target_speed_thresh` | [m/s] | double | 設定された値より小さいオブジェクトの速度について、準備フェーズでの衝突チェックを無視します。`enable_collision_check_at_prepare_phase`が`true`である必要があります。 | 0.1 | -| `check_objects_on_current_lanes` | [-] | boolean | trueの場合、車線変更モジュールは衝突評価を実行する際、現在の車線上のオブジェクトをチェックします。 | false | -| `check_objects_on_other_lanes` | [-] | boolean | trueの場合、車線変更モジュールは衝突評価を実行する際、他の車線上のオブジェクトを含めます。 | false | -| `use_all_predicted_path` | [-] | boolean | falseの場合、信頼度が最も高い予測パスのみを使用します。 | true | -| `safety_check.collision_check_yaw_diff_threshold` | [rad] | double | RSSベースの衝突チェックを実行する際の自車とオブジェクト間の最大ヨー角差 | 3.1416 | +| `enable_collision_check_for_prepare_phase.intersection` | [-] | boolean | 自車が交差点にいる場合、準備フェーズから衝突チェックを実行します。`false`の場合、衝突チェックは車線変更フェーズのみで評価されます。 | true | +| `enable_collision_check_for_prepare_phase.turns` | [-] | boolean | 自車が旋回方向タグのあるLaneletにいる場合、準備フェーズから衝突チェックを実行します。`false`の場合、衝突チェックは車線変更フェーズのみで評価されます。 | true | +| `prepare_phase_ignore_target_speed_thresh` | [m/s] | double | 設定された値より小さいオブジェクトの速度について、準備フェーズでの衝突チェックを無視します。`enable_collision_check_at_prepare_phase`が`true`である必要があります。 | 0.1 | +| `check_objects_on_current_lanes` | [-] | boolean | trueの場合、車線変更モジュールは衝突評価を実行する際、現在の車線上のオブジェクトをチェックします。 | false | +| `check_objects_on_other_lanes` | [-] | boolean | trueの場合、車線変更モジュールは衝突評価を実行する際、他の車線上のオブジェクトを含めます。 | false | +| `use_all_predicted_path` | [-] | boolean | falseの場合、信頼度が最も高い予測パスのみを使用します。 | true | +| `safety_check.collision_check_yaw_diff_threshold` | [rad] | double | RSSベースの衝突チェックを実行する際の自車とオブジェクト間の最大ヨー角差 | 3.1416 | #### 車線変更経路が計算中の安全性制約 ``` + ``` -| 名称 | 単位 | 型 | 説明 | デフォルト値 | -| :--------------------------------------------------------- | ------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -| `safety_check.execution.expected_front_deceleration` | [m/s²] | double | 前方の車両が急ブレーキを行った場合の前方対象物の最大減速度。(\*1) | -1.0 | -| `safety_check.execution.expected_rear_deceleration` | [m/s²] | double | 後方の車両が急ブレーキを行った場合の後方対象物の最大減速度。(\*1) | -1.0 | -| `safety_check.execution.rear_vehicle_reaction_time` | [s] | double | 前方車両の急ブレーキに気付いた時点からブレーキを踏むまでの後方車両の運転者の反応時間。 | 2.0 | -| `safety_check.execution.rear_vehicle_safety_time_margin` | [s] | double | 後方車両の運転者が急ブレーキを行ったときに完全停止状態になるまでの時間バッファ。 | 1.0 | -| `safety_check.execution.lateral_distance_max_threshold` | [m] | double | 2 つの対象物間の横方向距離が十分で、車線変更が安全かどうかを判断するために使用される横方向距離のしきい値。 | 2.0 | -| `safety_check.execution.longitudinal_distance_min_threshold` | [m] | double | 2 つの対象物間の縦方向距離が十分で、車線変更が安全かどうかを判断するために使用される縦方向距離のしきい値。 | 3.0 | -| `safety_check.cancel.longitudinal_velocity_delta_time` | [m] | double | 予測された各時点での車両間の実際のギャップを計算するために使用される時間乗数(RSS 距離ではない)。 | 0.8 | +| 名称 | 単位 | 型 | 説明 | デフォルト値 | +| :----------------------------------------------------------- | ------ | ------ | ---------------------------------------------------------------------------------------------------------- | ------------ | +| `safety_check.execution.expected_front_deceleration` | [m/s²] | double | 前方の車両が急ブレーキを行った場合の前方対象物の最大減速度。(\*1) | -1.0 | +| `safety_check.execution.expected_rear_deceleration` | [m/s²] | double | 後方の車両が急ブレーキを行った場合の後方対象物の最大減速度。(\*1) | -1.0 | +| `safety_check.execution.rear_vehicle_reaction_time` | [s] | double | 前方車両の急ブレーキに気付いた時点からブレーキを踏むまでの後方車両の運転者の反応時間。 | 2.0 | +| `safety_check.execution.rear_vehicle_safety_time_margin` | [s] | double | 後方車両の運転者が急ブレーキを行ったときに完全停止状態になるまでの時間バッファ。 | 1.0 | +| `safety_check.execution.lateral_distance_max_threshold` | [m] | double | 2 つの対象物間の横方向距離が十分で、車線変更が安全かどうかを判断するために使用される横方向距離のしきい値。 | 2.0 | +| `safety_check.execution.longitudinal_distance_min_threshold` | [m] | double | 2 つの対象物間の縦方向距離が十分で、車線変更が安全かどうかを判断するために使用される縦方向距離のしきい値。 | 3.0 | +| `safety_check.cancel.longitudinal_velocity_delta_time` | [m] | double | 予測された各時点での車両間の実際のギャップを計算するために使用される時間乗数(RSS 距離ではない)。 | 0.8 | #### 停止または駐車車両に対する安全制約 -| 名前 | 単位 | 型 | 説明 | デフォルト値 | -| :-------------------------------------------------------- | ------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -| `safety_check.parked.expected_front_deceleration` | [m/s^2] | double | 前走車が急ブレーキをかけたときの前方の物体の最大の減速度。(\*1) | -1.0 | -| `safety_check.parked.expected_rear_deceleration` | [m/s^2] | double | 後続車が急ブレーキをかけたときの後方の物体の最大の減速度。(\*1) | -2.0 | -| `safety_check.parked.rear_vehicle_reaction_time` | [s] | double | 後続車のドライバーが、前走車の急ブレーキに気づいてからブレーキを踏むまでの反応時間。 | 1.0 | -| `safety_check.parked.rear_vehicle_safety_time_margin` | [s] | double | 後続車のドライバーが急ブレーキをかけたときに完全に停止するための時間バッファ。 | 0.8 | -| `safety_check.parked.lateral_distance_max_threshold` | [m] | double | 2つの物体間の横方向距離が十分かどうか、また車線変更が安全かどうかを判断するために使用される横方向距離のしきい値。 | 1.0 | -| `safety_check.parked.longitudinal_distance_min_threshold` | [m] | double | 2つの物体間の縦方向距離が十分かどうか、また車線変更が安全かどうかを判断するために使用される縦方向距離のしきい値。 | 3.0 | -| `safety_check.parked.longitudinal_velocity_delta_time` | [m] | double | 予測された各ポイントにおける車両間の実際のギャップを計算するために使用される時間乗数(RSS距離ではなく)。 | 0.8 | +| 名前 | 単位 | 型 | 説明 | デフォルト値 | +| :-------------------------------------------------------- | ------- | ------ | ----------------------------------------------------------------------------------------------------------------- | ------------ | +| `safety_check.parked.expected_front_deceleration` | [m/s^2] | double | 前走車が急ブレーキをかけたときの前方の物体の最大の減速度。(\*1) | -1.0 | +| `safety_check.parked.expected_rear_deceleration` | [m/s^2] | double | 後続車が急ブレーキをかけたときの後方の物体の最大の減速度。(\*1) | -2.0 | +| `safety_check.parked.rear_vehicle_reaction_time` | [s] | double | 後続車のドライバーが、前走車の急ブレーキに気づいてからブレーキを踏むまでの反応時間。 | 1.0 | +| `safety_check.parked.rear_vehicle_safety_time_margin` | [s] | double | 後続車のドライバーが急ブレーキをかけたときに完全に停止するための時間バッファ。 | 0.8 | +| `safety_check.parked.lateral_distance_max_threshold` | [m] | double | 2つの物体間の横方向距離が十分かどうか、また車線変更が安全かどうかを判断するために使用される横方向距離のしきい値。 | 1.0 | +| `safety_check.parked.longitudinal_distance_min_threshold` | [m] | double | 2つの物体間の縦方向距離が十分かどうか、また車線変更が安全かどうかを判断するために使用される縦方向距離のしきい値。 | 3.0 | +| `safety_check.parked.longitudinal_velocity_delta_time` | [m] | double | 予測された各ポイントにおける車両間の実際のギャップを計算するために使用される時間乗数(RSS距離ではなく)。 | 0.8 | ##### 車線変更パスのキャンセルに対するセーフティ制約 -| 名前 | ユニット | タイプ | 説明 | デフォルト値 | -|---|---|---|---|---| -| `safety_check.cancel.expected_front_deceleration` | [m/s^2] | double | 前方車両が急ブレーキをかけたときの前方車両の最大減速度。(*1) | -1.0 | -| `safety_check.cancel.expected_rear_deceleration` | [m/s^2] | double | 後方車両が急ブレーキをかけたときの後方車両の最大減速度。(*1) | -2.0 | -| `safety_check.cancel.rear_vehicle_reaction_time` | [s] | double | 前方車両の急ブレーキに気づいてブレーキを踏むまでの後方車両のドライバーの反応時間 | 1.5 | -| `safety_check.cancel.rear_vehicle_safety_time_margin` | [s] | double | 後方車両のドライバーが急ブレーキをかけたときに完全に停止するまでの時間バッファ | 0.8 | -| `safety_check.cancel.lateral_distance_max_threshold` | [m] | double | 2つの車両間の横距離が十分であり、車線変更が安全かどうかを判断するために使用される横距離のしきい値 | 1.0 | -| `safety_check.cancel.longitudinal_distance_min_threshold` | [m] | double | 2つの車両間の縦距離が十分であり、車線変更が安全かどうかを判断するために使用される縦距離のしきい値 | 2.5 | -| `safety_check.cancel.longitudinal_velocity_delta_time` | [m] | double | 各予測点での車両間の実際のギャップを計算するために使用される時間倍率(RSS距離ではない) | 0.6 | +| 名前 | ユニット | タイプ | 説明 | デフォルト値 | +| --------------------------------------------------------- | -------- | ------ | ------------------------------------------------------------------------------------------------- | ------------ | +| `safety_check.cancel.expected_front_deceleration` | [m/s^2] | double | 前方車両が急ブレーキをかけたときの前方車両の最大減速度。(*1) | -1.0 | +| `safety_check.cancel.expected_rear_deceleration` | [m/s^2] | double | 後方車両が急ブレーキをかけたときの後方車両の最大減速度。(*1) | -2.0 | +| `safety_check.cancel.rear_vehicle_reaction_time` | [s] | double | 前方車両の急ブレーキに気づいてブレーキを踏むまでの後方車両のドライバーの反応時間 | 1.5 | +| `safety_check.cancel.rear_vehicle_safety_time_margin` | [s] | double | 後方車両のドライバーが急ブレーキをかけたときに完全に停止するまでの時間バッファ | 0.8 | +| `safety_check.cancel.lateral_distance_max_threshold` | [m] | double | 2つの車両間の横距離が十分であり、車線変更が安全かどうかを判断するために使用される横距離のしきい値 | 1.0 | +| `safety_check.cancel.longitudinal_distance_min_threshold` | [m] | double | 2つの車両間の縦距離が十分であり、車線変更が安全かどうかを判断するために使用される縦距離のしきい値 | 2.5 | +| `safety_check.cancel.longitudinal_velocity_delta_time` | [m] | double | 各予測点での車両間の実際のギャップを計算するために使用される時間倍率(RSS距離ではない) | 0.6 | ##### 車両が動けなくなった場合にレーンチェンジパスの計算に使用​​される安全制約 -| 名前 | 単位 | タイプ | 説明 | デフォルト値 | -| :---------------------------------------------------- | ----- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | -| `safety_check.stuck.expected_front_deceleration` | [m/s^2] | double | 前方車両が急ブレーキを実行した場合の前方オブジェクトの最大減速度。(\*1) | -1.0 | -| `safety_check.stuck.expected_rear_deceleration` | [m/s^2] | double | 後方車両が急ブレーキを実行した場合の後方オブジェクトの最大減速度。(\*1) | -1.0 | -| `safety_check.stuck.rear_vehicle_reaction_time` | [s] | double | 後方車両の運転手が前方の車両の急ブレーキに気付く瞬間からブレーキを踏む瞬間までの反応時間。 | 2.0 | -| `safety_check.stuck.rear_vehicle_safety_time_margin` | [s] | double | 後方車両の運転手が急ブレーキを実行したときに完全に停止するためのタイムバッファ。 | 1.0 | -| `safety_check.stuck.lateral_distance_max_threshold` | [m] | double | 2つのオブジェクト間の横方向の距離が十分かどうか、および車線変更が安全かどうかを判断するために使用される横方向距離の閾値。 | 2.0 | -| `safety_check.stuck.longitudinal_distance_min_threshold` | [m] | double | 2つのオブジェクト間の縦方向の距離が十分かどうか、および車線変更が安全かどうかを判断するために使用される縦方向距離の閾値。 | 3.0 | -| `safety_check.stuck.longitudinal_velocity_delta_time` | [m] | double | 各予測ポイントでの車両間の実際のギャップを計算するために使用される時間乗数(RSS距離ではない)。 | 0.8 | +| 名前 | 単位 | タイプ | 説明 | デフォルト値 | +| :------------------------------------------------------- | ------- | ------ | ------------------------------------------------------------------------------------------------------------------------- | ------------ | +| `safety_check.stuck.expected_front_deceleration` | [m/s^2] | double | 前方車両が急ブレーキを実行した場合の前方オブジェクトの最大減速度。(\*1) | -1.0 | +| `safety_check.stuck.expected_rear_deceleration` | [m/s^2] | double | 後方車両が急ブレーキを実行した場合の後方オブジェクトの最大減速度。(\*1) | -1.0 | +| `safety_check.stuck.rear_vehicle_reaction_time` | [s] | double | 後方車両の運転手が前方の車両の急ブレーキに気付く瞬間からブレーキを踏む瞬間までの反応時間。 | 2.0 | +| `safety_check.stuck.rear_vehicle_safety_time_margin` | [s] | double | 後方車両の運転手が急ブレーキを実行したときに完全に停止するためのタイムバッファ。 | 1.0 | +| `safety_check.stuck.lateral_distance_max_threshold` | [m] | double | 2つのオブジェクト間の横方向の距離が十分かどうか、および車線変更が安全かどうかを判断するために使用される横方向距離の閾値。 | 2.0 | +| `safety_check.stuck.longitudinal_distance_min_threshold` | [m] | double | 2つのオブジェクト間の縦方向の距離が十分かどうか、および車線変更が安全かどうかを判断するために使用される縦方向距離の閾値。 | 3.0 | +| `safety_check.stuck.longitudinal_velocity_delta_time` | [m] | double | 各予測ポイントでの車両間の実際のギャップを計算するために使用される時間乗数(RSS距離ではない)。 | 0.8 | (\*1) この値は負の値でなければなりません。 @@ -1054,30 +1039,29 @@ endif 次のパラメータは `lane_change.param.yaml` で構成できます。 -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :------------------------------------- | ------- | ------- | ------------------------------------------------------------------------------------------------------------------- | ------------- | -| `cancel.enable_on_prepare_phase` | [-] | boolean | レーン変更のキャンセルを許可 | true | -| `cancel.enable_on_lane_changing_phase` | [-] | boolean | レーン変更の中断を許可 | false | -| `cancel.delta_time` | [s] | double | センタラインに戻るステアリングを開始するのにかかる時間 | 3.0 | -| `cancel.duration` | [s] | double | センタラインに戻るために要する時間 | 3.0 | -| `cancel.max_lateral_jerk` | [m/sss] | double | 中断パスの最大横方向ジャーク | 1000.0 | -| `cancel.overhang_tolerance` | [m] | double | 車両ヘッドがこの許容距離を超えて車線境界を超えた場合、レーン変更のキャンセルは禁止される | 0.0 | -| `cancel.unsafe_hysteresis_threshold` | [-] | int | 安全と不安全の決定の間の頻繁な切り替えを防ぐのに役立つしきい値 | 10 | -| `cancel.deceleration_sampling_num` | [-] | int | レーン変更のキャンセルを安全にするためにチェックする 減速度パターンの数 | 5 | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :------------------------------------- | ------- | ------- | ---------------------------------------------------------------------------------------- | ------------ | +| `cancel.enable_on_prepare_phase` | [-] | boolean | レーン変更のキャンセルを許可 | true | +| `cancel.enable_on_lane_changing_phase` | [-] | boolean | レーン変更の中断を許可 | false | +| `cancel.delta_time` | [s] | double | センタラインに戻るステアリングを開始するのにかかる時間 | 3.0 | +| `cancel.duration` | [s] | double | センタラインに戻るために要する時間 | 3.0 | +| `cancel.max_lateral_jerk` | [m/sss] | double | 中断パスの最大横方向ジャーク | 1000.0 | +| `cancel.overhang_tolerance` | [m] | double | 車両ヘッドがこの許容距離を超えて車線境界を超えた場合、レーン変更のキャンセルは禁止される | 0.0 | +| `cancel.unsafe_hysteresis_threshold` | [-] | int | 安全と不安全の決定の間の頻繁な切り替えを防ぐのに役立つしきい値 | 10 | +| `cancel.deceleration_sampling_num` | [-] | int | レーン変更のキャンセルを安全にするためにチェックする 減速度パターンの数 | 5 | ### デバッグ 以下のパラメータは `lane_change.param.yaml` で設定できます。 -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| --- | --- | --- | --- | --- | -| `publish_debug_marker` | [-] | ブール型 | デバッグマーカーの公開を設定 | `false` | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| ---------------------- | ---- | -------- | ---------------------------- | ------------ | +| `publish_debug_marker` | [-] | ブール型 | デバッグマーカーの公開を設定 | `false` | ## デバッグマーカーと可視化 デバッグマーカーを有効にするには、(再起動は不要です)を実行します。 - ```shell ros2 param set /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner lane_change.publish_debug_marker true @@ -1087,7 +1071,6 @@ LaneChangeモジュール内の`publish_debug_marker`を`lane_change.param.yaml` 次に、マーカーを追加します。 - ```shell /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/debug/lane_change_left ``` @@ -1097,9 +1080,11 @@ LaneChangeモジュール内の`publish_debug_marker`を`lane_change.param.yaml` ### 車線変更戦略 #### 概要 + この戦略では、車両の車線変更に関する予測、決定、実行のためのコンポーネントが提供されます。戦略は、環境内のオブジェクトに関する情報を考慮して、車線変更を実施するかどうかを決定します。 #### コンポーネント + - **Planning Planner** - 車両の軌道と車線変更の実行時間に関する情報を生成します。 - **Safety Checker** @@ -1108,12 +1093,15 @@ LaneChangeモジュール内の`publish_debug_marker`を`lane_change.param.yaml` - PlannerとSafety Checkerからの情報を統合し、車線変更を実施するかどうかを決定します。 ### 起動要件 + この戦略を起動するには、次の情報を提供する必要があります。 + - **自車位置** - **周囲の物体の情報** - **目標車線** ### 利用可能な情報 + **rviz2**で利用できる情報。 ![デバッグ](./images/lane_change-debug-1.png) @@ -1123,9 +1111,9 @@ LaneChangeモジュール内の`publish_debug_marker`を`lane_change.param.yaml` ![デバッグ3](./images/lane_change-debug-3.png) **提供される情報:** + 1. 自車と物体の関係、および安全チェック情報 2. 最新の安全チェック位置までの自車位置(補間) 3. オブジェクトの安全性(ポリゴンの色で表示:緑 = 安全、赤 = 安全でない) 4. 有効な候補パス 5. 車線変更の開始および終了位置 - diff --git a/planning/behavior_path_planner/autoware_behavior_path_planner/README.md b/planning/behavior_path_planner/autoware_behavior_path_planner/README.md index d05eadf70e44..4014ed0e256f 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_planner/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_planner/README.md @@ -24,17 +24,17 @@ 行動経路プランナーには、次のシーンモジュールがあります。 -| 名称 | 説明 | 詳細 | -| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------- | -| 車線追従 | このモジュールは、レーンレットの中心線から基準パスを生成します。 | [LINK](https://drive.google.com/file/d/1upH4p_9JUod40iEIdAQq4A2H6-52zz-l/view?usp=sharing) | -| 静的障害物回避 | このモジュールは、回避すべきオブジェクトがある場合に回避パスを生成します。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_static_obstacle_avoidance_module/README.md) | -| 動的障害物回避 | WIP | [LINK](https://github.com/ros-planning/autoware/tree/master/ros2/autoware_behavior_path_dynamic_obstacle_avoidance_module) | -| 車線変更による回避 | このモジュールは、回避すべきオブジェクトがある場合に車線変更パスを生成します。 | [LINK](https://drive.google.com/file/d/1k7x-4T2Yj_bJhp0-IzY12wY4gII_42Vu/view?usp=sharing) | -| 車線変更 | このモジュールは、必要に応じて実行され、他の車両との衝突チェックが完了します。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_lane_change_module/README.md) | -| 外部車線変更 | WIP | [LINK](https://drive.google.com/file/d/13jDgm9Q7ELR00Gka51B_2XquH6e_61cp/view?usp=sharing) | -| ゴールプランナー | このモジュールは、自車が道路車線にいるときでゴールが路側車線にいるときに実行されます。自車はゴールで停止します。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_goal_planner_module/README.md) | -| スタートプランナー | このモジュールは、自車が停止していて、自車のフットプリントが路側車線に含まれているときに実行されます。このモジュールは、自車が道路に合流すると終了します。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_start_planner_module/README.md) | -| サイドシフト | (リモート制御用)外部の命令に従ってパスを左または右にシフトします。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_side_shift_module/README.md) | +| 名称 | 説明 | 詳細 | +| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------- | +| 車線追従 | このモジュールは、レーンレットの中心線から基準パスを生成します。 | [LINK](https://drive.google.com/file/d/1upH4p_9JUod40iEIdAQq4A2H6-52zz-l/view?usp=sharing) | +| 静的障害物回避 | このモジュールは、回避すべきオブジェクトがある場合に回避パスを生成します。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_static_obstacle_avoidance_module/README.md) | +| 動的障害物回避 | WIP | [LINK](https://github.com/ros-planning/autoware/tree/master/ros2/autoware_behavior_path_dynamic_obstacle_avoidance_module) | +| 車線変更による回避 | このモジュールは、回避すべきオブジェクトがある場合に車線変更パスを生成します。 | [LINK](https://drive.google.com/file/d/1k7x-4T2Yj_bJhp0-IzY12wY4gII_42Vu/view?usp=sharing) | +| 車線変更 | このモジュールは、必要に応じて実行され、他の車両との衝突チェックが完了します。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_lane_change_module/README.md) | +| 外部車線変更 | WIP | [LINK](https://drive.google.com/file/d/13jDgm9Q7ELR00Gka51B_2XquH6e_61cp/view?usp=sharing) | +| ゴールプランナー | このモジュールは、自車が道路車線にいるときでゴールが路側車線にいるときに実行されます。自車はゴールで停止します。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_goal_planner_module/README.md) | +| スタートプランナー | このモジュールは、自車が停止していて、自車のフットプリントが路側車線に含まれているときに実行されます。このモジュールは、自車が道路に合流すると終了します。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_start_planner_module/README.md) | +| サイドシフト | (リモート制御用)外部の命令に従ってパスを左または右にシフトします。 | [LINK](https://autoware.readthedocs.io/en/latest/autoware_behavior_path_side_shift_module/README.md) | !!! Note @@ -89,32 +89,32 @@ ### 入力 -| 名前 | 必須? | タイプ | 説明 | -| :----------------------------- | :-------: | :----------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ~/input/odometry | ○ | `nav_msgs::msg::Odometry` | 自車速度 | -| ~/input/accel | ○ | `geometry_msgs::msg::AccelWithCovarianceStamped` | 自車加速度 | -| ~/input/objects | ○ | `autoware_perception_msgs::msg::PredictedObjects` | 知覚モジュールからのダイナミックオブジェクト | -| ~/input/occupancy_grid_map | ○ | `nav_msgs::msg::OccupancyGrid` | 知覚モジュールのオキュパンシグリッドマップ。Goal Plannerモジュールでのみ使用されます。 | -| ~/input/traffic_signals | ○ | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 知覚モジュールからの交通信号情報 | -| ~/input/vector_map | ○ | `autoware_map_msgs::msg::LaneletMapBin` | ベクタマップ情報 | -| ~/input/route | ○ | `autoware_planning_msgs::msg::LaneletRoute` | スタートからゴールまでの現在のルート | -| ~/input/scenario | ○ | `tier4_planning_msgs::msg::Scenario` | 現在シナリオが`Scenario:LaneDriving`の場合、ビヘイビアパスプランナーを起動 | -| ~/input/lateral_offset | △ | `tier4_planning_msgs::msg::LateralOffset` | サイドシフトをトリガするための横方向オフセット | -| ~/system/operation_mode/state | ○ | `autoware_adapi_v1_msgs::msg::OperationModeState` | 車両が自律モードにあるか、制御可能であるかどうかをPlanningモジュールに伝える[参照](https://github.com/autowarefoundation/autoware.universe/blob/main/system/autoware_default_adapi/document/operation-mode.md) | +| 名前 | 必須? | タイプ | 説明 | +| :---------------------------- | :---: | :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| ~/input/odometry | ○ | `nav_msgs::msg::Odometry` | 自車速度 | +| ~/input/accel | ○ | `geometry_msgs::msg::AccelWithCovarianceStamped` | 自車加速度 | +| ~/input/objects | ○ | `autoware_perception_msgs::msg::PredictedObjects` | 知覚モジュールからのダイナミックオブジェクト | +| ~/input/occupancy_grid_map | ○ | `nav_msgs::msg::OccupancyGrid` | 知覚モジュールのオキュパンシグリッドマップ。Goal Plannerモジュールでのみ使用されます。 | +| ~/input/traffic_signals | ○ | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 知覚モジュールからの交通信号情報 | +| ~/input/vector_map | ○ | `autoware_map_msgs::msg::LaneletMapBin` | ベクタマップ情報 | +| ~/input/route | ○ | `autoware_planning_msgs::msg::LaneletRoute` | スタートからゴールまでの現在のルート | +| ~/input/scenario | ○ | `tier4_planning_msgs::msg::Scenario` | 現在シナリオが`Scenario:LaneDriving`の場合、ビヘイビアパスプランナーを起動 | +| ~/input/lateral_offset | △ | `tier4_planning_msgs::msg::LateralOffset` | サイドシフトをトリガするための横方向オフセット | +| ~/system/operation_mode/state | ○ | `autoware_adapi_v1_msgs::msg::OperationModeState` | 車両が自律モードにあるか、制御可能であるかどうかをPlanningモジュールに伝える[参照](https://github.com/autowarefoundation/autoware.universe/blob/main/system/autoware_default_adapi/document/operation-mode.md) | - ○ 必須: このどれか1つでも存在しない場合、Planning Moduleは動作しません。 - △ オプション: 一部のモジュールは動作しませんが、Planning Moduleは引き続き動作できます。 ### 出力 -| 名前 | タイプ | 説明 | QoSの耐久性 | -|---|---|---|---| -| ~/output/path | `tier4_planning_msgs::msg::PathWithLaneId` | 各モジュールによって生成された経路 | `volatile` | -| ~/output/turn_indicators_cmd | `autoware_vehicle_msgs::msg::TurnIndicatorsCommand` | ターンシグナルのコマンド | `volatile` | -| ~/output/hazard_lights_cmd | `autoware_vehicle_msgs::msg::HazardLightsCommand` | ハザードランプのコマンド | `volatile` | -| ~/output/modified_goal | `autoware_planning_msgs::msg::PoseWithUuidStamped` | 変更された目標コマンドの出力を示す | `transient_local` | -| ~/output/stop_reasons | `tier4_planning_msgs::msg::StopReasonArray` | 自車停止の理由を説明 | `volatile` | -| ~/output/reroute_availability | `tier4_planning_msgs::msg::RerouteAvailability` | モジュールが採用しようとしている経路。外部からの承認が得られ次第実行される | `volatile` | +| 名前 | タイプ | 説明 | QoSの耐久性 | +| ----------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------- | ----------------- | +| ~/output/path | `tier4_planning_msgs::msg::PathWithLaneId` | 各モジュールによって生成された経路 | `volatile` | +| ~/output/turn_indicators_cmd | `autoware_vehicle_msgs::msg::TurnIndicatorsCommand` | ターンシグナルのコマンド | `volatile` | +| ~/output/hazard_lights_cmd | `autoware_vehicle_msgs::msg::HazardLightsCommand` | ハザードランプのコマンド | `volatile` | +| ~/output/modified_goal | `autoware_planning_msgs::msg::PoseWithUuidStamped` | 変更された目標コマンドの出力を示す | `transient_local` | +| ~/output/stop_reasons | `tier4_planning_msgs::msg::StopReasonArray` | 自車停止の理由を説明 | `volatile` | +| ~/output/reroute_availability | `tier4_planning_msgs::msg::RerouteAvailability` | モジュールが採用しようとしている経路。外部からの承認が得られ次第実行される | `volatile` | ### デバッグ @@ -179,15 +179,15 @@ - `/localization/debug_info` トピックを subscribe し、ローカリゼーションの結果を確認します。 - `/localization/pose` トピックを subscribe し、自車位置を取得します。 -| 名前 | タイプ | 説明 | QoS の永続性 | -|---|---|---|---| -| ~/debug/avoidance_debug_message_array | `tier4_planning_msgs::msg::AvoidanceDebugMsgArray` | Avoidance のデバッグメッセージ。Avoidance パスを生成できない理由をユーザーに通知します | `volatile` | -| ~/debug/lane_change_debug_message_array | `tier4_planning_msgs::msg::LaneChangeDebugMsgArray` | レーン変更のデバッグメッセージ。レーン変更処理中の危険な理由をユーザーに通知します | `volatile` | -| ~/debug/maximum_drivable_area | `visualization_msgs::msg::MarkerArray` | 最大の静的走行可能領域を表示します | `volatile` | -| ~/debug/turn_signal_info | `visualization_msgs::msg::MarkerArray` | TBA | `volatile` | -| ~/debug/bound | `visualization_msgs::msg::MarkerArray` | 静的走行可能領域のデバッグ | `volatile` | -| ~/planning/path_candidate/* | `autoware_planning_msgs::msg::Path` | 承認前のパス | `volatile` | -| ~/planning/path_reference/* | `autoware_planning_msgs::msg::Path` | 各モジュールによって生成されたリファレンスパス | `volatile` | +| 名前 | タイプ | 説明 | QoS の永続性 | +| --------------------------------------- | --------------------------------------------------- | -------------------------------------------------------------------------------------- | ------------ | +| ~/debug/avoidance_debug_message_array | `tier4_planning_msgs::msg::AvoidanceDebugMsgArray` | Avoidance のデバッグメッセージ。Avoidance パスを生成できない理由をユーザーに通知します | `volatile` | +| ~/debug/lane_change_debug_message_array | `tier4_planning_msgs::msg::LaneChangeDebugMsgArray` | レーン変更のデバッグメッセージ。レーン変更処理中の危険な理由をユーザーに通知します | `volatile` | +| ~/debug/maximum_drivable_area | `visualization_msgs::msg::MarkerArray` | 最大の静的走行可能領域を表示します | `volatile` | +| ~/debug/turn_signal_info | `visualization_msgs::msg::MarkerArray` | TBA | `volatile` | +| ~/debug/bound | `visualization_msgs::msg::MarkerArray` | 静的走行可能領域のデバッグ | `volatile` | +| ~/planning/path_candidate/\* | `autoware_planning_msgs::msg::Path` | 承認前のパス | `volatile` | +| ~/planning/path_reference/\* | `autoware_planning_msgs::msg::Path` | 各モジュールによって生成されたリファレンスパス | `volatile` | !!! note @@ -207,12 +207,11 @@ Behavior Path Planning内のモジュールの有効化と無効化は、主に2 `behavior_path_planner.launch.xml`ファイルは、`default_preset.yaml`に定義された設定を参照して、Behavior Path Planningのノード実行時に設定を適用するために使用します。たとえば、`behavior_path_planner.launch.xml`の`static_obstacle_avoidance.enable_module`パラメータでは、 - ```xml ``` -### `default_preset.yaml`の`launch_static_obstacle_avoidance_module`に対応する。 +### `default_preset.yaml`の`launch_static_obstacle_avoidance_module`に対応する したがって、モジュールを有効または無効にするには、`default_preset.yaml`内の対応するモジュールを`true`または`false`に設定します。これらの変更は、Autowareの次回の起動時に適用されます。 @@ -302,7 +301,6 @@ Behavior Path Plannerモジュールは、ターンシグナルのコマンド [設定ファイル](https://github.com/autowarefoundation/autoware_launch/tree/main/autoware_launch/config/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner) は、操作と管理の容易さのために階層的なディレクトリ構造で整理されています。各サブディレクトリには、そのモジュールに関連する具体的な構成ファイルが含まれています。ルートディレクトリには、プランナー全体の動作に適用される一般的な構成ファイルがあります。以下は、ディレクトリ構造とその構成ファイルの概要です。 - ```text behavior_path_planner ├── behavior_path_planner.param.yaml @@ -326,7 +324,6 @@ behavior_path_planner 同様に、[common](https://github.com/autowarefoundation/autoware_launch/tree/main/autoware_launch/config/planning/scenario_planning/common) ディレクトリには、さまざまなモジュールで使用される設定ファイルが含まれています。これらの設定ファイルは、Behavior Path Planner の機能に不可欠な共通パラメータと設定を提供します。 - ```text common ├── common.param.yaml @@ -336,7 +333,6 @@ common [Preset](https://github.com/autowarefoundation/autoware_launch/tree/main/autoware_launch/config/planning/preset) ディレクトリには、さまざまなモジュールの動作状態を管理するための構成が含まれています。これには、システム内のモジュールの有効化や無効化を具体的に処理する `default_preset.yaml` ファイルが含まれます。 - ```text preset └── default_preset.yaml @@ -346,4 +342,3 @@ preset 1. ゴールプランナーモジュールは、他のモジュールと同時に実行できません。 2. このモジュールはプラグインとして設計されていません。カスタムモジュールの統合は容易ではなく、ユーザーは動作パス計画メインコードの一部を変更する必要があります。 - diff --git a/planning/behavior_path_planner/autoware_behavior_path_sampling_planner_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_sampling_planner_module/README.md index 21400d9626b4..d67e8872cd0f 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_sampling_planner_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_sampling_planner_module/README.md @@ -61,17 +61,16 @@ このモジュールには次のような潜在的な改善事項が含まれます。 -*動的重み調整アルゴリズムの実装: 全ての障害物が回避された後、シチュエーションに応じて重みを動的に変更する (つまり、曲率が低く、平均横方向逸脱量が低いパスを優先する)。 +\*動的重み調整アルゴリズムの実装: 全ての障害物が回避された後、シチュエーションに応じて重みを動的に変更する (つまり、曲率が低く、平均横方向逸脱量が低いパスを優先する)。 -*コンピューティング時間を改善し、より動的なソフト制約の重み調整を行うことができる、多目的最適化の実装 [関連出版物](https://ieeexplore.ieee.org/abstract/document/10180226)。 +\*コンピューティング時間を改善し、より動的なソフト制約の重み調整を行うことができる、多目的最適化の実装 [関連出版物](https://ieeexplore.ieee.org/abstract/document/10180226)。 -*別のサンプル取得手法としてベジエ曲線を実装する [sampling_based_plannerモジュール](https://github.com/autowarefoundation/autoware.universe/tree/main/planning/sampling_based_planner)を参照。 +\*別のサンプル取得手法としてベジエ曲線を実装する [sampling_based_plannerモジュール](https://github.com/autowarefoundation/autoware.universe/tree/main/planning/sampling_based_planner)を参照。 -*サンプリングベースの行動経路モジュールで他のいくつかの行動経路モジュールを置き換えることができる可能性を検討する。 +\*サンプリングベースの行動経路モジュールで他のいくつかの行動経路モジュールを置き換えることができる可能性を検討する。 -*このモジュールが成熟し、いくつかの制限が解決されたら、このモジュールのリアルライフテストを実施する。 +\*このモジュールが成熟し、いくつかの制限が解決されたら、このモジュールのリアルライフテストを実施する。 ## その他の可能性 現在、このモジュールは静的障害物回避用パスの作成を目的としています。ただし、サンプリングプランナーの性質により、このモジュールを車線変更、動的回避、目標への一般的な到達などの他のタスクに拡張または転用できます。適切な候補の剪定とソフト制約の適切な重み調整を前提に、サンプリングプランニングの手法を他の行動経路モジュールの代替として使用することが可能です。 - diff --git a/planning/behavior_path_planner/autoware_behavior_path_side_shift_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_side_shift_module/README.md index 45190b7257d2..088c6a678fb8 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_side_shift_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_side_shift_module/README.md @@ -6,8 +6,8 @@ 1. 必要な横方向オフセット入力を受信します。 2. 次の条件下で`requested_lateral_offset_`を更新します。 - a. 最後の更新時刻が経過したか確認します。 - b. 必要な横方向オフセット値が前の値と異なることを確認します。 + a. 最後の更新時刻が経過したか確認します。 + b. 必要な横方向オフセット値が前の値と異なることを確認します。 3. 側方シフトモジュールのステータスがSHIFTINGステータスの場合は、シフトポイントをパスに挿入します。 `requested_lateral_offset_`は最新の値で常に更新され、キューに入れられないことに注意してください。 @@ -27,7 +27,6 @@ ## フローチャート - ```plantuml @startuml skinparam monochrome true @@ -51,7 +50,6 @@ stop @enduml ``` - ```plantuml @startuml skinparam monochrome true @@ -78,7 +76,6 @@ stop @enduml ``` - ```plantuml @startuml skinparam monochrome true @@ -116,4 +113,3 @@ partition updateState { @enduml ``` - diff --git a/planning/behavior_path_planner/autoware_behavior_path_start_planner_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_start_planner_module/README.md index bc6645ec40d0..526756630d51 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_start_planner_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_start_planner_module/README.md @@ -104,7 +104,6 @@ 以下のフローチャートは、`canTransitSuccessState` 関数における意思決定プロセスを示しています。 - ```plantuml @startuml @startuml @@ -210,24 +209,24 @@ endif ![priority_order](./images/priority_order.drawio.svg) -** 優先順位 ** +**優先順位** `PriorityOrder` は、各要素が開始姿勢候補のインデックスを表す `size_t` インデックスとプランナータイプで構成されるペアのベクトルとして定義されます。 PriorityOrder ベクトルは先頭から順次処理され、ベクトルの先頭にリストされたペアがプルアウトパスの生成で優先されます。 -##### ** `efficient_path` ** +##### **`efficient_path`** `search_priority` が `efficient_path` に設定され、`shift_pull_out` を優先する場合、`PriorityOrder` 配列は `shift_pull_out` がすべての開始姿勢候補にグループ化された後、次のプランナータイプに移行するように設定されます。この優先順位は配列の順序に反映され、`shift_pull_out` が `geometric_pull_out` の前にリストされています。 -| インデックス | Plan手法 | -|---|---| -| 0 | shift_pull_out | -| 1 | shift_pull_out | -| ... | ... | -| N | shift_pull_out | -| 0 | geometric_pull_out | -| 1 | geometric_pull_out | -| ... | ... | -| N | geometric_pull_out | +| インデックス | Plan手法 | +| ------------ | ------------------ | +| 0 | shift_pull_out | +| 1 | shift_pull_out | +| ... | ... | +| N | shift_pull_out | +| 0 | geometric_pull_out | +| 1 | geometric_pull_out | +| ... | ... | +| N | geometric_pull_out | この手法では、`geometric_pull_out` に進む前に、`shift_pull_out` が適切である可能性が高い状況で効率的である可能性のある `shift_pull_out` ですべて候補を試すことを優先します。 @@ -236,14 +235,14 @@ endif `search_priority` が `short_back_distance` に設定されている場合、アレイは各スタートポーズ候補のプランナタイプを交互に使用して、前の候補が成功した場合に車両が後方移動する距離を最小化できます。 | Index | Planningコンポーネント | -| ----- | -------------------- | -| 0 | shift_pull_out | -| 0 | geometric_pull_out | -| 1 | shift_pull_out | -| 1 | geometric_pull_out | -| ... | ... | -| N | shift_pull_out | -| N | geometric_pull_out | +| ----- | ---------------------- | +| 0 | shift_pull_out | +| 0 | geometric_pull_out | +| 1 | shift_pull_out | +| 1 | geometric_pull_out | +| ... | ... | +| N | shift_pull_out | +| N | geometric_pull_out | この順番付けは、後退距離を最小化することが優先される場合に有益であり、各プランナーに最も近い可能な開始位置で成功する平等な機会を与えます。 @@ -255,7 +254,6 @@ endif - **衝突対応ポリシー**: 生成されたパス上の動的物体との衝突が検出されると、出発前に衝突検出が発生した場合、モジュール非アクティブ決定が登録されます。車両がすでに動き始めた場合、制動制約内で実行可能であり、後続車両が自車と車線境界の隙間を通過できる場合に限り、停止を試みます。 - ```plantuml @startuml start @@ -306,7 +304,6 @@ stop ## 設計 - ```plantuml @startuml package start_planner{ @@ -350,28 +347,26 @@ PullOutPath --o PullOutPlannerBase ## Planningコンポーネントの一般パラメータ - - -| パラメータ名 | 単位 | 型 | 説明 | デフォルト値 | -| :------------------------------------------------------- | :---- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- | -| th_arrived_distance | [m] | double | 到達後経路終了距離のしきい値 | 1.0 | -| th_stopped_velocity | [m/s] | double | 到達後経路終了速度のしきい値 | 0.01 | -| th_stopped_time | [s] | double | 到達後経路終了時間のしきい値 | 1.0 | -| th_distance_to_middle_of_the_road | [m] | double | 車両が道路の中間点にいるかどうかを判断するための距離のしきい値 | 0.1 | -| collision_check_margins | [m] | double | 障害物衝突チェックマージンのリスト | [2.0, 1.0, 0.5, 0.1] | -| shift_collision_check_distance_from_end | [m] | double | 衝突チェック距離の終端からのシフト終端姿勢 | -10.0 | -| geometric_collision_check_distance_from_end | [m] | double | 衝突チェック距離の終端幾何学的終端姿勢 | 0.0 | -| collision_check_margin_from_front_object | [m] | double | 前方の対象からの衝突チェックマージン | 5.0 | -| skip_rear_vehicle_check | - | bool | 後続車両チェックをスキップするフラグ(後続車両チェックは、自動運転車が後続車両の進行を妨げているときに安全チェックをスキップして出発を続行するために実行される) | false | -| extra_width_margin_for_rear_obstacle | [m] | double | 自動運転車が路肩車線から車線に合流する間に、後方の障害物が自動運転車を追い抜くことができるかどうかを判断するときに、認知される後方の障害物の幅に追加される追加幅 | 0.5 | -| object_types_to_check_for_path_generation.check_car | - | bool | getPathGen用車検フラグ | true | -| object_types_to_check_for_path_generation.check_truck | - | bool | getPathGen用トラック検査フラグ | true | -| object_types_to_check_for_path_generation.check_bus | - | bool | getPathGen用バス検査フラグ | true | -| object_types_to_check_for_path_generation.check_bicycle | - | bool | getPathGen用自転車検査フラグ | true | -| object_types_to_check_for_path_generation.check_motorcycle | - | bool | getPathGen用オートバイ検査フラグ | true | -| object_types_to_check_for_path_generation.check_pedestrian | - | bool | getPathGen用歩行者検査フラグ | true | -| object_types_to_check_for_path_generation.check_unknown | - | bool | getPathGen用障害物検査フラグ | true | -| center_line_path_interval | [m] | double | 参照中心線経路ポイント間隔 | 1.0 | +| パラメータ名 | 単位 | 型 | 説明 | デフォルト値 | +| :--------------------------------------------------------- | :---- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- | +| th_arrived_distance | [m] | double | 到達後経路終了距離のしきい値 | 1.0 | +| th_stopped_velocity | [m/s] | double | 到達後経路終了速度のしきい値 | 0.01 | +| th_stopped_time | [s] | double | 到達後経路終了時間のしきい値 | 1.0 | +| th_distance_to_middle_of_the_road | [m] | double | 車両が道路の中間点にいるかどうかを判断するための距離のしきい値 | 0.1 | +| collision_check_margins | [m] | double | 障害物衝突チェックマージンのリスト | [2.0, 1.0, 0.5, 0.1] | +| shift_collision_check_distance_from_end | [m] | double | 衝突チェック距離の終端からのシフト終端姿勢 | -10.0 | +| geometric_collision_check_distance_from_end | [m] | double | 衝突チェック距離の終端幾何学的終端姿勢 | 0.0 | +| collision_check_margin_from_front_object | [m] | double | 前方の対象からの衝突チェックマージン | 5.0 | +| skip_rear_vehicle_check | - | bool | 後続車両チェックをスキップするフラグ(後続車両チェックは、自動運転車が後続車両の進行を妨げているときに安全チェックをスキップして出発を続行するために実行される) | false | +| extra_width_margin_for_rear_obstacle | [m] | double | 自動運転車が路肩車線から車線に合流する間に、後方の障害物が自動運転車を追い抜くことができるかどうかを判断するときに、認知される後方の障害物の幅に追加される追加幅 | 0.5 | +| object_types_to_check_for_path_generation.check_car | - | bool | getPathGen用車検フラグ | true | +| object_types_to_check_for_path_generation.check_truck | - | bool | getPathGen用トラック検査フラグ | true | +| object_types_to_check_for_path_generation.check_bus | - | bool | getPathGen用バス検査フラグ | true | +| object_types_to_check_for_path_generation.check_bicycle | - | bool | getPathGen用自転車検査フラグ | true | +| object_types_to_check_for_path_generation.check_motorcycle | - | bool | getPathGen用オートバイ検査フラグ | true | +| object_types_to_check_for_path_generation.check_pedestrian | - | bool | getPathGen用歩行者検査フラグ | true | +| object_types_to_check_for_path_generation.check_unknown | - | bool | getPathGen用障害物検査フラグ | true | +| center_line_path_interval | [m] | double | 参照中心線経路ポイント間隔 | 1.0 | ### **自車速度計画** @@ -387,71 +382,71 @@ PullOutPath --o PullOutPlannerBase `stop_condition` のパラメータは停止条件の基準を定義します。 -| 名称 | 単位 | 型 | 説明 | デフォルト値 | -| :------------------------------- | :----- | :------ | :--------------------------------------- | :---------- | -| `maximum_deceleration_for_stop` | [m/s^2] | double | 停止時の最大減速度 | 1.0 | -| `maximum_jerk_for_stop` | [m/s^3] | double | 停止時の最大ジャーク | 1.0 | +| 名称 | 単位 | 型 | 説明 | デフォルト値 | +| :------------------------------ | :------ | :----- | :------------------- | :----------- | +| `maximum_deceleration_for_stop` | [m/s^2] | double | 停止時の最大減速度 | 1.0 | +| `maximum_jerk_for_stop` | [m/s^3] | double | 停止時の最大ジャーク | 1.0 | ### 自車予測経路パラメータ `path_safety_check.ego_predicted_path` のパラメータは、自車予測経路特性を指定します。 -| 名称 | 単位 | 型 | 説明 | デフォルト値 | -| :---------------------------- | :------ | :----- | :------------------------------------------------- | :------------ | -| min_velocity | [m/s] | double | 自車位置の予測経路の最小速度 | 0.0 | -| acceleration | [m/s^2] | double | 自車位置の予測経路の加速度 | 1.0 | -| max_velocity | [m/s] | double | 自車位置の予測経路の最大速度 | 1.0 | -| time_horizon_for_front_object | [s] | double | 先方物体の予測時間幅 | 10.0 | -| time_horizon_for_rear_object | [s] | double | 後方物体の予測時間幅 | 10.0 | -| time_resolution | [s] | double | 自車位置の予測経路の時間分解能 | 0.5 | -| delay_until_departure | [s] | double | 自車が発進するまでの遅延時間 | 1.0 | +| 名称 | 単位 | 型 | 説明 | デフォルト値 | +| :---------------------------- | :------ | :----- | :----------------------------- | :----------- | +| min_velocity | [m/s] | double | 自車位置の予測経路の最小速度 | 0.0 | +| acceleration | [m/s^2] | double | 自車位置の予測経路の加速度 | 1.0 | +| max_velocity | [m/s] | double | 自車位置の予測経路の最大速度 | 1.0 | +| time_horizon_for_front_object | [s] | double | 先方物体の予測時間幅 | 10.0 | +| time_horizon_for_rear_object | [s] | double | 後方物体の予測時間幅 | 10.0 | +| time_resolution | [s] | double | 自車位置の予測経路の時間分解能 | 0.5 | +| delay_until_departure | [s] | double | 自車が発進するまでの遅延時間 | 1.0 | ### ターゲットオブジェクトフィルタリングのパラメーター `target_filtering` のパラメーターは、セーフティチェックのためのターゲットオブジェクトのフィルタリングに関連しています。 -| Name | 単位 | タイプ | 説明 | デフォルト値 | -| :---------------------------------------------- | :---- | :----- | :-------------------------------------------------------------------------- | :------------ | -| safety_check_time_horizon | [秒] | 倍精度 | 自車と動的オブジェクトの予測パスの時間範囲 | 5.0 | -| safety_check_time_resolution | [秒] | 倍精度 | 自車と動的オブジェクトの予測パスの時間解像度 | 1.0 | -| object_check_forward_distance | [m] | 倍精度 | 物体検出の前方距離 | 10.0 | -| object_check_backward_distance | [m] | 倍精度 | 物体検出の後方距離 | 100.0 | -| ignore_object_velocity_threshold | [m/秒] | 倍精度 | 物体が無視される速度しきい値 | 1.0 | -| object_types_to_check.check_car | - | ブール | 車を検査するためのフラグ | true | -| object_types_to_check.check_truck | - | ブール | トラックを検査するためのフラグ | true | -| object_types_to_check.check_bus | - | ブール | バスを検査するためのフラグ | true | -| object_types_to_check.check_trailer | - | ブール | トレーラーを検査するためのフラグ | true | -| object_types_to_check.check_bicycle | - | ブール | 自転車を検査するためのフラグ | true | -| object_types_to_check.check_motorcycle | - | ブール | オートバイを検査するためのフラグ | true | -| object_types_to_check.check_pedestrian | - | ブール | 歩行者を検査するためのフラグ | true | -| object_types_to_check.check_unknown | - | ブール | 不明なタイプのオブジェクトを検査するためのフラグ | false | -| object_lane_configuration.check_current_lane | - | ブール | 現在の車線を検査するためのフラグ | true | -| object_lane_configuration.check_right_side_lane | - | ブール | 右側の車線を検査するためのフラグ | true | -| object_lane_configuration.check_left_side_lane | - | ブール | 左側の車線を検査するためのフラグ | true | -| object_lane_configuration.check_shoulder_lane | - | ブール | 路肩を検査するためのフラグ | true | -| object_lane_configuration.check_other_lane | - | ブール | 他の車線を検査するためのフラグ | false | -| include_opposite_lane | - | ブール | 反対車線を検査に含めるフラグ | false | -| invert_opposite_lane | - | ブール | 反対車線の検査を反転するフラグ | false | -| check_all_predicted_path | - | ブール | すべての予測パスを検査するためのフラグ | true | -| use_all_predicted_path | - | ブール | すべての予測パスを使用するためのフラグ | true | -| use_predicted_path_outside_lanelet | - | ブール | 車線外側の予測パスを使用するためのフラグ | false | +| Name | 単位 | タイプ | 説明 | デフォルト値 | +| :---------------------------------------------- | :----- | :----- | :----------------------------------------------- | :----------- | +| safety_check_time_horizon | [秒] | 倍精度 | 自車と動的オブジェクトの予測パスの時間範囲 | 5.0 | +| safety_check_time_resolution | [秒] | 倍精度 | 自車と動的オブジェクトの予測パスの時間解像度 | 1.0 | +| object_check_forward_distance | [m] | 倍精度 | 物体検出の前方距離 | 10.0 | +| object_check_backward_distance | [m] | 倍精度 | 物体検出の後方距離 | 100.0 | +| ignore_object_velocity_threshold | [m/秒] | 倍精度 | 物体が無視される速度しきい値 | 1.0 | +| object_types_to_check.check_car | - | ブール | 車を検査するためのフラグ | true | +| object_types_to_check.check_truck | - | ブール | トラックを検査するためのフラグ | true | +| object_types_to_check.check_bus | - | ブール | バスを検査するためのフラグ | true | +| object_types_to_check.check_trailer | - | ブール | トレーラーを検査するためのフラグ | true | +| object_types_to_check.check_bicycle | - | ブール | 自転車を検査するためのフラグ | true | +| object_types_to_check.check_motorcycle | - | ブール | オートバイを検査するためのフラグ | true | +| object_types_to_check.check_pedestrian | - | ブール | 歩行者を検査するためのフラグ | true | +| object_types_to_check.check_unknown | - | ブール | 不明なタイプのオブジェクトを検査するためのフラグ | false | +| object_lane_configuration.check_current_lane | - | ブール | 現在の車線を検査するためのフラグ | true | +| object_lane_configuration.check_right_side_lane | - | ブール | 右側の車線を検査するためのフラグ | true | +| object_lane_configuration.check_left_side_lane | - | ブール | 左側の車線を検査するためのフラグ | true | +| object_lane_configuration.check_shoulder_lane | - | ブール | 路肩を検査するためのフラグ | true | +| object_lane_configuration.check_other_lane | - | ブール | 他の車線を検査するためのフラグ | false | +| include_opposite_lane | - | ブール | 反対車線を検査に含めるフラグ | false | +| invert_opposite_lane | - | ブール | 反対車線の検査を反転するフラグ | false | +| check_all_predicted_path | - | ブール | すべての予測パスを検査するためのフラグ | true | +| use_all_predicted_path | - | ブール | すべての予測パスを使用するためのフラグ | true | +| use_predicted_path_outside_lanelet | - | ブール | 車線外側の予測パスを使用するためのフラグ | false | ### 安全確認パラメータ `safety_check_params` のパラメータは、安全確認の設定を定義しています。 -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :------------------------------------------- | :--- | :----- | :----------------------------------------------------------------------------------------------- | :------------ | -| enable_safety_check | - | bool | セーフティチェックを有効にするフラグ | true | -| check_all_predicted_path | - | bool | 予測パスをすべてチェックするフラグ | true | -| publish_debug_marker | - | bool | デバッグマーカーを発行するフラグ | false | -| rss_params.rear_vehicle_reaction_time | [s] | double | 後続車の反応時間 | 2.0 | -| rss_params.rear_vehicle_safety_time_margin | [s] | double | 後続車のセーフティタイムマージン | 1.0 | -| rss_params.lateral_distance_max_threshold | [m] | double | 最大横方向距離のしきい値 | 2.0 | -| rss_params.longitudinal_distance_min_threshold | [m] | double | 最小縦方向距離のしきい値 | 3.0 | -| rss_params.longitudinal_velocity_delta_time | [s] | double | 縦速度のデルタ時間 | 0.8 | -| hysteresis_factor_expand_rate | - | double | ヒステリシスの拡張/縮小率 | 1.0 | -| collision_check_yaw_diff_threshold | - | double | RSSベースのコリジョンチェックの実行時にEgoとオブジェクト間の最大ヨー差 | 1.578 | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :--------------------------------------------- | :--- | :----- | :--------------------------------------------------------------------- | :----------- | +| enable_safety_check | - | bool | セーフティチェックを有効にするフラグ | true | +| check_all_predicted_path | - | bool | 予測パスをすべてチェックするフラグ | true | +| publish_debug_marker | - | bool | デバッグマーカーを発行するフラグ | false | +| rss_params.rear_vehicle_reaction_time | [s] | double | 後続車の反応時間 | 2.0 | +| rss_params.rear_vehicle_safety_time_margin | [s] | double | 後続車のセーフティタイムマージン | 1.0 | +| rss_params.lateral_distance_max_threshold | [m] | double | 最大横方向距離のしきい値 | 2.0 | +| rss_params.longitudinal_distance_min_threshold | [m] | double | 最小縦方向距離のしきい値 | 3.0 | +| rss_params.longitudinal_velocity_delta_time | [s] | double | 縦速度のデルタ時間 | 0.8 | +| hysteresis_factor_expand_rate | - | double | ヒステリシスの拡張/縮小率 | 1.0 | +| collision_check_yaw_diff_threshold | - | double | RSSベースのコリジョンチェックの実行時にEgoとオブジェクト間の最大ヨー差 | 1.578 | ## **経路生成** @@ -473,18 +468,18 @@ PullOutPath --o PullOutPlannerBase #### Shift Pull Outのパラメーター -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :----------------------------------------------- | :----- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| enable_shift_pull_out | [-] | bool | Shift pull out を有効にするかどうか | true | -| check_shift_path_lane_departure | [-] | bool | Shift path の車両逸脱量をチェックするかどうか | true | -| allow_check_shift_path_lane_departure_override | [-] | bool | エゴビークルの現在の位置がすでに車両逸脱中である場合に、車両逸脱のチェックを上書き/キャンセルするフラグ | false | -| shift_pull_out_velocity | [m/s] | double | Shift pull out の速度 | 2.0 | -| pull_out_sampling_num | [-] | int | 横方向加速度の最小値から最大値の範囲内でサンプリングする回数 | 4 | -| maximum_lateral_jerk | [m/s3] | double | 最大横方向加速度 | 2.0 | -| minimum_lateral_jerk | [m/s3] | double | 最小横方向加速度 | 0.1 | -| minimum_shift_pull_out_distance | [m] | double | 最小 Shift pull out 距離。計算された pull out 距離がこれよりも短かった場合、Path 生成にこれを用いる。 | 0.0 | -| maximum_curvature | [1/m] | double | 最大曲率。Shift pull out 距離を、参照パスが直線で、2 つの近似弧でシフトされたものと仮定して、この最大曲率から計算する。シフトパスまたは曲線内の曲率は考慮されない。 | 0.07 | -| end_pose_curvature_threshold | [1/m] | double | Shift pull out 距離を計算するために使用される曲率の閾値。シフトのエンドポーズは、シフトのエンドポーズの曲率がこの値未満になるように前方にシフトされる。これは、エンドポーズが曲線上にある場合に生成されたパスに大きな曲率が発生するのを防ぐためである。閾値以下の曲率を持つシフトのエンドポーズが見つからない場合、Shift pull out 距離は特定の距離を越えた地点のうち、最も曲率が低い地点までの距離として使用される。 | 0.01 | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :--------------------------------------------- | :----- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | +| enable_shift_pull_out | [-] | bool | Shift pull out を有効にするかどうか | true | +| check_shift_path_lane_departure | [-] | bool | Shift path の車両逸脱量をチェックするかどうか | true | +| allow_check_shift_path_lane_departure_override | [-] | bool | エゴビークルの現在の位置がすでに車両逸脱中である場合に、車両逸脱のチェックを上書き/キャンセルするフラグ | false | +| shift_pull_out_velocity | [m/s] | double | Shift pull out の速度 | 2.0 | +| pull_out_sampling_num | [-] | int | 横方向加速度の最小値から最大値の範囲内でサンプリングする回数 | 4 | +| maximum_lateral_jerk | [m/s3] | double | 最大横方向加速度 | 2.0 | +| minimum_lateral_jerk | [m/s3] | double | 最小横方向加速度 | 0.1 | +| minimum_shift_pull_out_distance | [m] | double | 最小 Shift pull out 距離。計算された pull out 距離がこれよりも短かった場合、Path 生成にこれを用いる。 | 0.0 | +| maximum_curvature | [1/m] | double | 最大曲率。Shift pull out 距離を、参照パスが直線で、2 つの近似弧でシフトされたものと仮定して、この最大曲率から計算する。シフトパスまたは曲線内の曲率は考慮されない。 | 0.07 | +| end_pose_curvature_threshold | [1/m] | double | Shift pull out 距離を計算するために使用される曲率の閾値。シフトのエンドポーズは、シフトのエンドポーズの曲率がこの値未満になるように前方にシフトされる。これは、エンドポーズが曲線上にある場合に生成されたパスに大きな曲率が発生するのを防ぐためである。閾値以下の曲率を持つシフトのエンドポーズが見つからない場合、Shift pull out 距離は特定の距離を越えた地点のうち、最も曲率が低い地点までの距離として使用される。 | 0.01 | ### **geometric pull out** @@ -497,14 +492,14 @@ PullOutPath --o PullOutPlannerBase #### geometric pull out のパラメータ -| 名称 | 単位 | タイプ | 説明 | デフォルト値 | -| :-------------------------------------- | :---- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| enable_geometric_pull_out | [-] | bool | ジオメトリプルアウトを有効にするフラグ | true | -| divide_pull_out_path | [-] | bool | 円弧パスを分割するフラグ。曲率が連続ではないため、パスは分割されていると想定されます。ただし、出発中に停止が必要です。 | false | -| geometric_pull_out_velocity | [m/s] | double | ジオメトリプルアウトの速度 | 1.0 | -| lane_departure_margin | [m] | double | 右側車線を逸脱する際の許容範囲 | 0.2 | -| lane_departure_check_expansion_margin | [m] | double | 車線逸脱チェック時の自車Footprintの拡大マージン | 0.0 | -| pull_out_max_steer_angle | [rad] | double | パス生成における最大操舵角 | 0.26 | +| 名称 | 単位 | タイプ | 説明 | デフォルト値 | +| :------------------------------------ | :---- | :----- | :--------------------------------------------------------------------------------------------------------------------- | :----------- | +| enable_geometric_pull_out | [-] | bool | ジオメトリプルアウトを有効にするフラグ | true | +| divide_pull_out_path | [-] | bool | 円弧パスを分割するフラグ。曲率が連続ではないため、パスは分割されていると想定されます。ただし、出発中に停止が必要です。 | false | +| geometric_pull_out_velocity | [m/s] | double | ジオメトリプルアウトの速度 | 1.0 | +| lane_departure_margin | [m] | double | 右側車線を逸脱する際の許容範囲 | 0.2 | +| lane_departure_check_expansion_margin | [m] | double | 車線逸脱チェック時の自車Footprintの拡大マージン | 0.0 | +| pull_out_max_steer_angle | [rad] | double | パス生成における最大操舵角 | 0.26 | ## **後退引き出し始点の検索** @@ -516,14 +511,14 @@ PullOutPath --o PullOutPlannerBase ### **後退引き出し開始点検索のパラメータ** -| 名前 | 単位 | タイプ | 説明 | デフォルト値 | -| :-------------------------- | :--- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------- | -| enable_back | [-] | bool | 開始点として後方検索するかどうか | true | -| search_priority | [-] | string | `efficient_path`の場合、後方距離が長くても効率的な経路を使用する。 `short_back_distance`の場合、後方距離が短い経路を使用 | efficient_path | -| max_back_distance | [m] | double | 後方距離の最大値 | 30.0 | -| backward_search_resolution | [m] | double | 後方引き出し開始点の検索間隔 | 2.0 | -| backward_path_update_duration | [s] | double | 後方引き出し開始点の検索時間間隔。これにより、後方走行と引き出しのチャッタリングを防ぐことができる | 3.0 | -| ignore_distance_from_lane_end | [m] | double | シフト開始位置から側道レーンの終了までの距離がこの値より小さい場合、この開始位置の候補は無視される | 15.0 | +| 名前 | 単位 | タイプ | 説明 | デフォルト値 | +| :---------------------------- | :--- | :----- | :----------------------------------------------------------------------------------------------------------------------- | :------------- | +| enable_back | [-] | bool | 開始点として後方検索するかどうか | true | +| search_priority | [-] | string | `efficient_path`の場合、後方距離が長くても効率的な経路を使用する。 `short_back_distance`の場合、後方距離が短い経路を使用 | efficient_path | +| max_back_distance | [m] | double | 後方距離の最大値 | 30.0 | +| backward_search_resolution | [m] | double | 後方引き出し開始点の検索間隔 | 2.0 | +| backward_path_update_duration | [s] | double | 後方引き出し開始点の検索時間間隔。これにより、後方走行と引き出しのチャッタリングを防ぐことができる | 3.0 | +| ignore_distance_from_lane_end | [m] | double | シフト開始位置から側道レーンの終了までの距離がこの値より小さい場合、この開始位置の候補は無視される | 15.0 | ### **フリースペースでの引き出し** @@ -540,12 +535,11 @@ PullOutPath --o PullOutPlannerBase #### フリースペース駐車のパラメータ -| 名前 | 単位 | 型 | 説明 | デフォルト値 | -| :----------------------------- | :--- | :------- | :------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| enable_freespace_planner | [-] | ブール | 車両が走行する車線に障害物があり、車両が立ち往生した際に実行するフリースペースプルのフラグを有効にします | true | -| end_pose_search_start_distance | [m] | 倍精度 | 自車からfreespace_pull_outのドライビングレーンで終端点の検索を開始する地点までの距離 | 20.0 | -| end_pose_search_end_distance | [m] | 倍精度 | 自車からfreespace_pull_outのドライビングレーンで終端点の検索を終了する地点までの距離 | 30.0 | -| end_pose_search_interval | [m] | 倍精度 | freespace_pull_outのドライビングレーンで終端点を検索する間隔 | 2.0 | +| 名前 | 単位 | 型 | 説明 | デフォルト値 | +| :----------------------------- | :--- | :----- | :------------------------------------------------------------------------------------------------------- | :----------- | +| enable_freespace_planner | [-] | ブール | 車両が走行する車線に障害物があり、車両が立ち往生した際に実行するフリースペースプルのフラグを有効にします | true | +| end_pose_search_start_distance | [m] | 倍精度 | 自車からfreespace_pull_outのドライビングレーンで終端点の検索を開始する地点までの距離 | 20.0 | +| end_pose_search_end_distance | [m] | 倍精度 | 自車からfreespace_pull_outのドライビングレーンで終端点の検索を終了する地点までの距離 | 30.0 | +| end_pose_search_interval | [m] | 倍精度 | freespace_pull_outのドライビングレーンで終端点を検索する間隔 | 2.0 | その他の詳細は [freespace_planner](../autoware_freespace_planner/README.md) を参照してください。 - diff --git a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/README.md b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/README.md index 0f37a7089cd8..85000127a03f 100644 --- a/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/README.md +++ b/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/README.md @@ -28,7 +28,6 @@ このモジュールには、主にターゲットフィルタリングとパスジェネレーションの2つの部分があります。最初に、すべてのオブジェクトがいくつかの条件でフィルタリングされます。このステップで、モジュールは回避の実現可能性と必要性をチェックします。その後、このモジュールは、フィルタリングされたオブジェクトを基に、**シフトライン**と呼ばれる回避パスの輪郭を生成します。シフトラインは[パスシフター](../autoware_behavior_path_planner_common/docs/behavior_path_planner_path_generation_design.md)に設定されます。パスシフターは、スムーズなシフトパスの生成に使用されるパスジェネレーション用のライブラリです。さらに、このモジュールには、エゴがターゲットオブジェクトを安全に回避できるように、ターゲット以外のオブジェクトをチェックする機能があります。この機能は、生成された回避パスと周囲のオブジェクトを受け取り、現在の状況を判断します。最後に、このモジュールは現在のエゴ挙動を更新します。 - ```plantuml @startuml skinparam monochrome true @@ -213,22 +212,22 @@ stop このモジュールは、回避するターゲットオブジェクトをフィルタリングするために、以下の条件を使用します。 -| 条件の確認 | ターゲットクラス | 詳細 | 条件が満たされない場合 | -| --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | -| 回避対象クラスオブジェクトですか? | 全て | 設定ファイルから回避対象クラスを選択できます。 | 回避しません。 | -| 停止中のオブジェクトですか? | 全て | `th_moving_speed`よりも速い速度を`th_moving_time`よりも長い時間維持するオブジェクトは移動中と判断されます。 | 回避しません。 | -| 検知エリア内ですか? | 全て | モジュールは設定ファイルの横方向マージンに基づいて対象オブジェクトを大まかにフィルターするために検知エリアを作成します。([こちら](#width-of-detection-area)を参照) | 回避しません。 | -| オブジェクトとパスの間に十分な横方向距離がないですか? | 全て | - | 回避しません。 | -| 自車線のセンターラインの近くですか? | 全て | - | その他の条件によって異なります。 | -| オブジェクトの近くに横断歩道がありますか? | 歩行者、自転車 | モジュールは横断歩道の近くに歩行者と自転車を回避しません。横断歩道で道路を渡っている場合、自車は停止する必要があるからです。([こちら](#for-crosswalk-users)を参照) | 回避しません。 | -| パス上のオブジェクトと信号との距離がしきい値よりも長くなっていますか? | 乗用車、トラック、バス、トレーラー | この条件は、車両が駐車されているかどうかが不明な場合に使用されます。 | その他の条件によって異なります。 | -| パス上のオブジェクトと横断歩道信号との距離がしきい値よりも長くなっていますか? | 乗用車、トラック、バス、トレーラー | 上記と同じ。 | その他の条件によって異なります。 | -| 停止時間がしきい値よりも長くなっていますか? | 乗用車、トラック、バス、トレーラー | 上記と同じ。 | その他の条件によって異なります。 | -| 交差点内ですか? | 乗用車、トラック、バス、トレーラー | モジュールは交差点内に駐車車両がないことを前提としています。 | その他の条件によって異なります。 | -| 自車線上にありますか? | 乗用車、トラック、バス、トレーラー | - | その他の条件によって異なります。 | -| 駐車車両ですか? | 乗用車、トラック、バス、トレーラー | モジュールは横方向オフセットに基づいて車両が駐車車両かどうかを判断します。([こちら](#judge-if-its-a-parked-vehicle)を参照) | その他の条件によって異なります。 | -| 他車線から自車線に合流していますか? | 乗用車、トラック、バス、トレーラー | モジュールはヨー角とオフセットの方向に基づいて車両の挙動を判断します。([こちら](#judge-vehicle-behavior)を参照) | その他の条件によって異なります。 | -| 自車線から他車線に合流していますか? | 乗用車、トラック、バス、トレーラー | 上記と同じ。 | その他の条件によって異なります。 | +| 条件の確認 | ターゲットクラス | 詳細 | 条件が満たされない場合 | +| ------------------------------------------------------------------------------ | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | +| 回避対象クラスオブジェクトですか? | 全て | 設定ファイルから回避対象クラスを選択できます。 | 回避しません。 | +| 停止中のオブジェクトですか? | 全て | `th_moving_speed`よりも速い速度を`th_moving_time`よりも長い時間維持するオブジェクトは移動中と判断されます。 | 回避しません。 | +| 検知エリア内ですか? | 全て | モジュールは設定ファイルの横方向マージンに基づいて対象オブジェクトを大まかにフィルターするために検知エリアを作成します。([こちら](#width-of-detection-area)を参照) | 回避しません。 | +| オブジェクトとパスの間に十分な横方向距離がないですか? | 全て | - | 回避しません。 | +| 自車線のセンターラインの近くですか? | 全て | - | その他の条件によって異なります。 | +| オブジェクトの近くに横断歩道がありますか? | 歩行者、自転車 | モジュールは横断歩道の近くに歩行者と自転車を回避しません。横断歩道で道路を渡っている場合、自車は停止する必要があるからです。([こちら](#for-crosswalk-users)を参照) | 回避しません。 | +| パス上のオブジェクトと信号との距離がしきい値よりも長くなっていますか? | 乗用車、トラック、バス、トレーラー | この条件は、車両が駐車されているかどうかが不明な場合に使用されます。 | その他の条件によって異なります。 | +| パス上のオブジェクトと横断歩道信号との距離がしきい値よりも長くなっていますか? | 乗用車、トラック、バス、トレーラー | 上記と同じ。 | その他の条件によって異なります。 | +| 停止時間がしきい値よりも長くなっていますか? | 乗用車、トラック、バス、トレーラー | 上記と同じ。 | その他の条件によって異なります。 | +| 交差点内ですか? | 乗用車、トラック、バス、トレーラー | モジュールは交差点内に駐車車両がないことを前提としています。 | その他の条件によって異なります。 | +| 自車線上にありますか? | 乗用車、トラック、バス、トレーラー | - | その他の条件によって異なります。 | +| 駐車車両ですか? | 乗用車、トラック、バス、トレーラー | モジュールは横方向オフセットに基づいて車両が駐車車両かどうかを判断します。([こちら](#judge-if-its-a-parked-vehicle)を参照) | その他の条件によって異なります。 | +| 他車線から自車線に合流していますか? | 乗用車、トラック、バス、トレーラー | モジュールはヨー角とオフセットの方向に基づいて車両の挙動を判断します。([こちら](#judge-vehicle-behavior)を参照) | その他の条件によって異なります。 | +| 自車線から他車線に合流していますか? | 乗用車、トラック、バス、トレーラー | 上記と同じ。 | その他の条件によって異なります。 | ### 一般的な条件 @@ -236,7 +235,6 @@ stop モジュールは、以下のパラメータに基づいて、ターゲットのフィルタリング用の検出エリアを生成します。 - ```yaml # avoidance is performed for the object type with true target_object: @@ -268,7 +266,6 @@ stop パラメータ`detection_area.static`が`false`に設定されている場合、モジュールは自車が最小の側方ジャーク値でオブジェクトを回避できるように検出領域を作成します。したがって、縦方向距離は最大側方シフト長、側方ジャーク制約、および現在の自車速度によって異なります。さらに、準備段階で使用される距離も考慮する必要があります。 - ```c++ ... const auto max_shift_length = std::max( @@ -296,19 +293,17 @@ stop このモジュールは、ヨー角とオフセット方向に基づいて車両を以下の3つの挙動に分類します。 - ```yaml # params for filtering objects that are in intersection intersection: yaw_deviation: 0.349 # [rad] (default 20.0deg) ``` -| 動作 | 詳細 | 図形 | -| ------ | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | -| NONE | オブジェクトの車線に対する相対的な偏角が閾値 `yaw_deviation` 未満の場合、`NONE` に分類されます。 | ![fig](./images/target_filter/none.png) | -| MERGING | 以下のフローチャートを参照してください。 | ![fig](./images/target_filter/merging.png) | -| DEVIATING | 以下のフローチャートを参照してください。 | ![fig](./images/target_filter/deviating.png) | - +| 動作 | 詳細 | 図形 | +| --------- | ------------------------------------------------------------------------------------------------ | -------------------------------------------- | +| NONE | オブジェクトの車線に対する相対的な偏角が閾値 `yaw_deviation` 未満の場合、`NONE` に分類されます。 | ![fig](./images/target_filter/none.png) | +| MERGING | 以下のフローチャートを参照してください。 | ![fig](./images/target_filter/merging.png) | +| DEVIATING | 以下のフローチャートを参照してください。 | ![fig](./images/target_filter/deviating.png) | ```plantuml @startuml @@ -371,24 +366,23 @@ $$ ### ターゲットオブジェクトのフィルタリング -| 状況 | 詳細 | 自車動作 | -| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| 自車がHDMapで定義された交差点エリア内にある場合。このモジュールは、車線を走行中または自車線に合流中の車両を無視する | ![fig](./images/target_filter/never_avoid_intersection.png) | 回避しない。 | -| 自車が自車線上にいる場合、両側に隣接した車線がある | ![fig](./images/target_filter/never_avoid_not_edge.png) | 回避しない。 | -| 自車線から他の車線に合流中の車両。その車両のフットプリントの大部分が自車線にある | ![fig](./images/target_filter/never_avoid_deviating.png) | 回避しない。 | -| 他の車線から自車線に合流中の車両。その車両のフットプリントの大部分が自車線にある | ![fig](./images/target_filter/never_avoid_merging.png) | 回避しない。 | -| 駐車しているようには見えないが、横断歩道または信号の前に停止している車両 | ![fig](./images/target_filter/never_avoid_stop_factor.png) | 回避しない。 | -| 道路脇に停車しようとして自車線上で停止した車両 | ![fig](./images/target_filter/avoid_on_ego_lane.png) | すぐに回避する。 | -| 隣接した車線で停止した車両 | ![fig](./images/target_filter/avoid_not_on_ego_lane.png) | すぐに回避する。 | -| 道路脇に停車せずに自車線上で停止した車両 | ![fig](./images/target_filter/ambiguous_parallel.png) | パラメータ`avoidance_for_ambiguous_vehicle.enable`を`true`に設定すると、モジュールは不明瞭な車両を回避する。 | -| 他の車線から自車線に合流中の車両 | ![fig](./images/target_filter/ambiguous_merging.png) | パラメータ`avoidance_for_ambiguous_vehicle.enable`を`true`に設定すると、モジュールは不明瞭な車両を回避する。 | -| 自車線から他の車線に合流中の車両 | ![fig](./images/target_filter/ambiguous_deviating.png) | パラメータ`avoidance_for_ambiguous_vehicle.enable`を`true`に設定すると、モジュールは不明瞭な車両を回避する。 | +| 状況 | 詳細 | 自車動作 | +| ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | +| 自車がHDMapで定義された交差点エリア内にある場合。このモジュールは、車線を走行中または自車線に合流中の車両を無視する | ![fig](./images/target_filter/never_avoid_intersection.png) | 回避しない。 | +| 自車が自車線上にいる場合、両側に隣接した車線がある | ![fig](./images/target_filter/never_avoid_not_edge.png) | 回避しない。 | +| 自車線から他の車線に合流中の車両。その車両のフットプリントの大部分が自車線にある | ![fig](./images/target_filter/never_avoid_deviating.png) | 回避しない。 | +| 他の車線から自車線に合流中の車両。その車両のフットプリントの大部分が自車線にある | ![fig](./images/target_filter/never_avoid_merging.png) | 回避しない。 | +| 駐車しているようには見えないが、横断歩道または信号の前に停止している車両 | ![fig](./images/target_filter/never_avoid_stop_factor.png) | 回避しない。 | +| 道路脇に停車しようとして自車線上で停止した車両 | ![fig](./images/target_filter/avoid_on_ego_lane.png) | すぐに回避する。 | +| 隣接した車線で停止した車両 | ![fig](./images/target_filter/avoid_not_on_ego_lane.png) | すぐに回避する。 | +| 道路脇に停車せずに自車線上で停止した車両 | ![fig](./images/target_filter/ambiguous_parallel.png) | パラメータ`avoidance_for_ambiguous_vehicle.enable`を`true`に設定すると、モジュールは不明瞭な車両を回避する。 | +| 他の車線から自車線に合流中の車両 | ![fig](./images/target_filter/ambiguous_merging.png) | パラメータ`avoidance_for_ambiguous_vehicle.enable`を`true`に設定すると、モジュールは不明瞭な車両を回避する。 | +| 自車線から他の車線に合流中の車両 | ![fig](./images/target_filter/ambiguous_deviating.png) | パラメータ`avoidance_for_ambiguous_vehicle.enable`を`true`に設定すると、モジュールは不明瞭な車両を回避する。 | ### フローチャート `isSatisfiedWithCommonCondition()`, `isSatisfiedWithVehicleCondition()`, `isSatisfiedWithNonVehicleCondition()`の3つのメインフィルタリング関数があります。フィルタリングプロセスは次のフローチャートに従って実行されます。さらに、このモジュールはコンフィグファイル内のオブジェクトの姿勢、エゴパス、横マージンに基づいて`isNoNeedAvoidanceBehavior()`で回避の必要性を確認します。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -438,7 +432,6 @@ stop まず、`isSatisfiedWithCommonCondition()` 関数には、すべてのオブジェクトクラスに使用される条件が含まれます。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -492,7 +485,6 @@ stop 次のステップとして、オブジェクトはそのクラスに特化した条件でフィルタリングされます。 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -557,7 +549,6 @@ stop ``` - ```plantuml @startuml skinparam defaultTextAlignment center @@ -627,7 +618,6 @@ stop @enduml ``` - ```plantuml @startuml skinparam defaultTextAlignment center @@ -676,7 +666,6 @@ stop - 歩行者 - 自転車 - ```plantuml @startuml skinparam defaultTextAlignment center @@ -723,7 +712,6 @@ stop ターゲット オブジェクトが消えた際のエゴの動作は、ユーザーが選択できます。 - ```yaml cancel: enable: true # [-] @@ -748,7 +736,6 @@ cancel: エンベロープ多角形は長方形のボックスで、サイズはオブジェクトの多角形とバッファパラメータ「envelope_buffer_margin」によって異なります。さらに、常に基準パスと平行です。モジュールがターゲットオブジェクトを初めて検出したとき、多角形を初期化します。 - ```yaml car: ... @@ -773,7 +760,6 @@ cancel: 2 つの点の横方向の位置は、自車本体と封筒ポリゴン境界点の最もオーバーハングした点の間に十分なスペース (= 横方向余裕) ができるようになっています。ユーザーは、次のパラメーターを使用して横方向余裕を調整できます。 - ```yaml car: ... @@ -785,7 +771,6 @@ cancel: 縦方向の位置は、エンベロープ多角形、自車仕様、次のパラメーターに依存します。回避シフトセクションの終点とエンベロープ多角形 (つまり前面縦方向バッファ) との縦方向距離は、`consider_front_overhang` パラメーターが `true` の場合、`vehicle_info.param.yaml` で定義された `front_overhang` と `longitudinal_margin` の合計です。`consider_front_overhang` が `false` の場合、`longitudinal_margin` のみが考慮されます。同様に、復帰シフトセクションの始点とエンベロープ多角形 (つまり後方縦方向バッファ) との距離は、`rear_overhang` と `longitudinal_margin` の合計です。 - ```yaml target_object: @@ -806,7 +791,6 @@ cancel: 上記のとおり、横断マージンは次の2種類のタイプのパラメータを変更することで調整できます。`soft_margin`は横断マージンのソフト制約パラメータです。`hard_margin`と`hard_margin_for_parked_vehicle`はハード制約パラメータです。 - ```yaml car: ... @@ -866,7 +850,6 @@ cancel: 回避モジュールの使用可能なレーンは、config ファイルを使用して選択できます。 - ```yaml ... # drivable lane setting. This module is able to use not only current lane but also right/left lane @@ -878,6 +861,7 @@ cancel: ``` ### 使用レーンのタイプの設定 + ユーザーがパラメータ `use_lane_type` を `opposite_direction_lane` に設定した場合、逆走車線を走行できます。 ![fig](./images/path_generation/opposite_direction.png) @@ -892,7 +876,6 @@ cancel: 2つのポイントは常に自車線の中心線上に存在するため、モジュールは次の関数に基づいてシフトのスタートポイントとエンドポイント間の縦方向距離のみを計算します。この関数はパスシフタライブラリで定義されています。[こちら](../autoware_behavior_path_planner_common/docs/behavior_path_planner_path_generation_design.md)のページも参照してください。 - ```c++ double PathShifter::calcLongitudinalDistFromJerk( const double lateral, const double jerk, const double velocity) @@ -911,7 +894,6 @@ double PathShifter::calcLongitudinalDistFromJerk( 回避開始地点には、もう 1 つの縦方向拘束があります。回避操作を開始する前にウインカーを数秒間点灯し続けるために、回避開始地点は自分の位置から自己速度に応じた値(距離を `prepare_length` と呼びます)よりも遠くなければなりません。 - ```yaml longitudinal: min_prepare_time: 1.0 # [s] @@ -955,7 +937,6 @@ longitudinal: この機能は次のパラメータを`true`に設定することで有効にできます。 - ```yaml safety_check: ... @@ -972,7 +953,6 @@ longitudinal: この機能は、次のパラメーターを `true` に設定することで有効にできます。 - ```yaml yield: enable: true # [-] @@ -988,7 +968,6 @@ yield: ユーザーは、以下のパラメーターを使用して安全チェックエリアを選択できます。基本的に、シフト側の車線のみを確認するための以下の設定を推奨します。安全を厳格に確認したい場合は、`check_current_lane` および/または `check_other_side_lane` を `true` に設定してください。 - ```yaml safety_check: ... @@ -999,7 +978,6 @@ yield: 回避モジュールでは、`path_safety_checker::isCentroidWithinLanelet` 関数はレーンのオブジェクトをフィルタリングするために使用されます。 - ```c++ bool isCentroidWithinLanelet(const PredictedObject & object, const lanelet::ConstLanelet & lanelet) { @@ -1047,7 +1025,6 @@ bool isCentroidWithinLanelet(const PredictedObject & object, const lanelet::Cons これらのエリアを回避操作で使用できるようにする場合は、これらのフラグを `true` に設定してください。 - ```yaml # drivable lane setting. This module is able to use not only current lane but also right/left lane # if the current lane(=lanelet::Lanelet) and the right/left lane share the boundary(=lanelet::Linestring) in HDMap. @@ -1061,12 +1038,12 @@ use_hatched_road_markings: true use_freespace_areas: true ``` -| | | | -| -------------------------------------- | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `use_lane_type: same_direction_lane` | ![図](./images/advanced/avoidance_same_direction.png) | | -| `use_lane_type: opposite_direction_lane` | ![図](./images/advanced/avoidance_opposite_direction.png) | | -| 交差点エリア | ![図](./images/advanced/avoidance_intersection.png) | 交差点エリアはLanelet mapで定義されます。 [こちら](https://github.com/autowarefoundation/autoware_lanelet2_extension/blob/main/autoware_lanelet2_extension/docs/lanelet2_format_extension.md) を参照してください | -| ハッチング道路標示 | ![図](./images/advanced/avoidance_zebra.png) | ハッチング道路標示はLanelet mapで定義されています +| | | | +| ---------------------------------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `use_lane_type: same_direction_lane` | ![図](./images/advanced/avoidance_same_direction.png) | | +| `use_lane_type: opposite_direction_lane` | ![図](./images/advanced/avoidance_opposite_direction.png) | | +| 交差点エリア | ![図](./images/advanced/avoidance_intersection.png) | 交差点エリアはLanelet mapで定義されます。 [こちら](https://github.com/autowarefoundation/autoware_lanelet2_extension/blob/main/autoware_lanelet2_extension/docs/lanelet2_format_extension.md) を参照してください | +| ハッチング道路標示 | ![図](./images/advanced/avoidance_zebra.png) | ハッチング道路標示はLanelet mapで定義されています | ## 未実装/将来の拡張 @@ -1098,7 +1075,6 @@ use_freespace_areas: true ユーザーは、次のコマンドでデバッグ情報を参照できます。 - ```bash ros2 service call /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/config_logger logging_demo/srv/ConfigLogger "{logger_name: 'planning.scenario_planning.lane_driving.behavior_planning.behavior_path_planner.static_obstacle_avoidance', level: DEBUG}" ``` @@ -1107,7 +1083,6 @@ ros2 service call /planning/scenario_planning/lane_driving/behavior_planning/beh ユーザーは、次のパラメーターを使用して、デバッグマーカーの公開を有効にできます。 - ```yaml debug: enable_other_objects_marker: false @@ -1130,7 +1105,6 @@ debug: デバッグメッセージを出力するには、次のコマンドを実行するだけです。 - ```bash ros2 topic echo /planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/debug/avoidance_debug_message_array ``` @@ -1143,7 +1117,7 @@ ros2 topic echo /planning/scenario_planning/lane_driving/behavior_planning/behav このモジュールは静止オブジェクト(停止しているオブジェクト)を回避しますが、動的オブジェクト(動いているオブジェクト)の回避はサポートしていません。動的オブジェクトは、[動的障害物回避モジュール](../autoware_behavior_path_dynamic_obstacle_avoidance_module/README.md)内で処理されます。 -#### 回避するオブジェクトのタイプ(クラス)を教えてください。 +#### 回避するオブジェクトのタイプ(クラス)を教えてください デフォルトでは、車、トラック、バス、トレーラー、自転車、オートバイ、歩行者、未知のオブジェクトを回避します。詳細は、[ターゲットオブジェクトのフィルタリングセクション](#target-object-filtering)を参照してください。 これらのオブジェクトは、車両タイプオブジェクトと車両タイプ以外のオブジェクトに分類され、ターゲットオブジェクトのフィルタリングは車両タイプと車両タイプ以外で異なります。 @@ -1245,7 +1219,6 @@ MANUALモードを使用すると、オペレーターは回避パスの承認 - ```plantuml @startuml skinparam monochrome true @@ -1400,4 +1373,3 @@ stop 回避固有のパラメータ設定ファイルの場所: `src/autoware/launcher/planning_launch/config/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/static_obstacle_avoidance.param.yaml`。 {{ json_to_markdown("planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/schema/static_obstacle_avoidance.schema.json") }} - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/README.md index 1d22eea921c6..d606820cfaf8 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/README.md @@ -33,17 +33,16 @@ ### モジュールパラメータ -| パラメータ | タイプ | 説明 | -| ------------------------------- | ------ | ---------------------------------------------------------------------------------------------- | -| `stop_line_margin` | double | [m] 車両が停止線手前で停止しようとするマージン | -| `backward_length` | double | [m] 最も近いパスポイントから始点のエッジまでの距離 | -| `ignore_width_from_center_line` | double | [m] 自車の後方の車両が自車と衝突するかどうかを無視するしきい値 | -| `max_future_movement_time` | double | [s] オブジェクトの将来の移動を考慮するための最大時間 | +| パラメータ | タイプ | 説明 | +| ------------------------------- | ------ | -------------------------------------------------------------------------------------- | +| `stop_line_margin` | double | [m] 車両が停止線手前で停止しようとするマージン | +| `backward_length` | double | [m] 最も近いパスポイントから始点のエッジまでの距離 | +| `ignore_width_from_center_line` | double | [m] 自車の後方の車両が自車と衝突するかどうかを無視するしきい値 | +| `max_future_movement_time` | double | [s] オブジェクトの将来の移動を考慮するための最大時間 | | `adjacent_extend_width` | double | [m] 隣接する車線(例:自転車専用車線)が存在する場合、死角領域はこの長さだけ拡張される | ### フローチャート - ```plantuml @startuml title modifyPathVelocity @@ -98,4 +97,3 @@ endif stop @enduml ``` - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/README.md index 52214668f479..1511095409a0 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/README.md @@ -10,7 +10,6 @@ ## フローチャート - ```plantuml @startuml @@ -42,7 +41,6 @@ stop @enduml ``` - ```plantuml @startuml @@ -80,8 +78,8 @@ stop crosswalkモジュールは、`object_filtering.target_object` 名前空間で定義された次のパラメータのタイプを持つオブジェクトを処理します。 -| パラメータ | 単位 | 型 | 説明 | -| ------------ | ---- | ---- | ---------------------------------------------- | +| パラメータ | 単位 | 型 | 説明 | +| ------------ | ---- | ---- | ----------------------------------------- | | `unknown` | [-] | bool | `UNKNOWN` 物体を探して停止するかどうか | | `pedestrian` | [-] | bool | `PEDESTRIAN` 物体を探して停止するかどうか | | `bicycle` | [-] | bool | `BICYCLE` 物体を探して停止するかどうか | @@ -95,9 +93,9 @@ crosswalkモジュールは、`object_filtering.target_object` 名前空間で 周囲は `object_filtering.target_object` ネームスペース内の次のパラメータによって定義されます。 -| パラメータ | 単位 | 型 | 説明 | -|---|---|---|---| -| `crosswalk_attention_range` | [m] | double | 検出エリアは -X メートルから +X メートルの間の横断歩道として定義されます | +| パラメータ | 単位 | 型 | 説明 | +| --------------------------- | ---- | ------ | ------------------------------------------------------------------------ | +| `crosswalk_attention_range` | [m] | double | 検出エリアは -X メートルから +X メートルの間の横断歩道として定義されます | #### 停止位置 @@ -122,12 +120,12 @@ crosswalkモジュールは、`object_filtering.target_object` 名前空間で `stop_position` 名前空間では、以下のパラメータが定義されています。 -| パラメータ | | 型 | 説明 | -| ------------------------------ | --- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `stop_position_threshold` | [m] | double | 自車位置が停止線からこの値よりも近い場合は、このモジュールは自車が譲歩を完了したとみなします。 | -| `stop_distance_from_crosswalk` | [m] | double | 明示的な停止線が設定されていないLanelet2マップの場合、停止線を横断歩道から離す | +| パラメータ | | 型 | 説明 | +| ------------------------------ | --- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `stop_position_threshold` | [m] | double | 自車位置が停止線からこの値よりも近い場合は、このモジュールは自車が譲歩を完了したとみなします。 | +| `stop_distance_from_crosswalk` | [m] | double | 明示的な停止線が設定されていないLanelet2マップの場合、停止線を横断歩道から離す | | `far_object_threshold` | [m] | double | 物体が停止線のXメートル後ろを通過した場合、停止位置は、横断歩道の幅が非常に広い場合のケースに対して、オブジェクト位置に基づいて決定されます(オブジェクトの`stop_distance_from_object`メートル前) | -| `stop_distance_from_object` | [m] | double | Vehicle decelerates to be able to stop in front of object with margin | +| `stop_distance_from_object` | [m] | double | Vehicle decelerates to be able to stop in front of object with margin | #### Yield判断 @@ -173,14 +171,14 @@ AとBの境界は、`ego_pass_later_margin_x`と`ego_pass_later_margin_y`から `pass_judge`ネームスペースで、以下のパラメータが定義されています。 -| パラメーター | | 型 | 説明 | -| ---------------------------------- | ----- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| `ego_pass_first_margin_x` | [[s]] | double | ego_pass_first状況のタイム・トゥ・コリジョン・マージンベクトル(モジュールは、TTC + マージン < TTV条件ではegoが停止する必要がないと判断します) | -| `ego_pass_first_margin_y` | [[s]] | double | ego_pass_first状況のタイム・トゥ・ビークル・マージンベクトル(モジュールは、TTC + マージン < TTV条件ではegoが停止する必要がないと判断します) | -| `ego_pass_first_additional_margin` | [s] | double | チャッタリングを抑止するための、ego_pass_first状況の追加タイムマージン | -| `ego_pass_later_margin_x` | [[s]] | double | オブジェクトパスファースト状況のタイム・トゥ・ビークル・マージンベクトル(モジュールは、TTV + マージン < TTC条件ではegoが停止する必要がないと判断します) | +| パラメーター | | 型 | 説明 | +| ---------------------------------- | ----- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ego_pass_first_margin_x` | [[s]] | double | ego_pass_first状況のタイム・トゥ・コリジョン・マージンベクトル(モジュールは、TTC + マージン < TTV条件ではegoが停止する必要がないと判断します) | +| `ego_pass_first_margin_y` | [[s]] | double | ego_pass_first状況のタイム・トゥ・ビークル・マージンベクトル(モジュールは、TTC + マージン < TTV条件ではegoが停止する必要がないと判断します) | +| `ego_pass_first_additional_margin` | [s] | double | チャッタリングを抑止するための、ego_pass_first状況の追加タイムマージン | +| `ego_pass_later_margin_x` | [[s]] | double | オブジェクトパスファースト状況のタイム・トゥ・ビークル・マージンベクトル(モジュールは、TTV + マージン < TTC条件ではegoが停止する必要がないと判断します) | | `ego_pass_later_margin_y` | [[s]] | double | オブジェクトパスファースト状況のタイム・トゥ・コリジョン・マージンベクトル(モジュールは、TTV + マージン < TTC条件ではegoが停止する必要がないと判断します) | -| `ego_pass_later_additional_margin` | [s] | double | チャッタリングを抑止するための、オブジェクトパスファースト状況の追加タイムマージン | +| `ego_pass_later_additional_margin` | [s] | double | チャッタリングを抑止するための、オブジェクトパスファースト状況の追加タイムマージン | #### スムーズ歩行者譲り判定 @@ -194,17 +192,17 @@ AとBの境界は、`ego_pass_later_margin_x`と`ego_pass_later_margin_y`から `pass_judge` 名前空間では、以下のパラメータが定義されています。 -| パラメータ | | タイプ | 説明 | -| -------------------------------------------- | ----- | ------ | -------------------------------------------------------------------------------------------------- | -| `distance_set_for_no_intention_to_walk` | [[m]] | double | 歩行の意思なしのタイムアウトを補間で計算するためのキーを設定します | -| `timeout_set_for_no_intention_to_walk` | [[s]] | double | 歩行の意思なしのタイムアウトを補間で計算するための値を設定します | +| パラメータ | | タイプ | 説明 | +| --------------------------------------- | ----- | ------ | ------------------------------------------------------------------ | +| `distance_set_for_no_intention_to_walk` | [[m]] | double | 歩行の意思なしのタイムアウトを補間で計算するためのキーを設定します | +| `timeout_set_for_no_intention_to_walk` | [[s]] | double | 歩行の意思なしのタイムアウトを補間で計算するための値を設定します | **パス判定** `pass_judge`名前空間に、以下のパラメータが定義されています。 -| パラメータ | | タイプ | 説明 | -|---|---|---|---| +| パラメータ | | タイプ | 説明 | +| ---------------------------- | --- | ------ | ---------------------------------------------------------------------------------------------------------------- | | `timeout_ego_stop_for_yield` | [s] | double | 自動運転車が停止を保持する時間がこの期間に達した場合、自動運転車は十分な時間停止したとみなし、走行を再開します。 | #### 新規オブジェクトの取り扱い @@ -217,9 +215,9 @@ trueを設定すると、信号機のある横断歩道の周辺における減 `pass_judge`ネームスペースでは、以下のパラメータが定義されています。 -| パラメータ | | タイプ | 説明 | -|------------------------------------------|--------|---------|------------------------------------------------------------------------------------------| -| `disable_yield_for_new_stopped_object` | [X] | bool | trueの場合、信号機の付いた横断歩道付近にある停止中の新しい障害物は無視されます | +| パラメータ | | タイプ | 説明 | +| -------------------------------------- | --- | ------ | ------------------------------------------------------------------------------ | +| `disable_yield_for_new_stopped_object` | [X] | bool | trueの場合、信号機の付いた横断歩道付近にある停止中の新しい障害物は無視されます | ### 歩行者横断歩道での停止防止 @@ -234,14 +232,14 @@ trueを設定すると、信号機のある横断歩道の周辺における減 `stuck_vehicle`名前空間で、次のパラメータが定義されます。 -| パラメータ | 単位 | 型 | 説明 | -| ---------------------------------------- | ---- | -------- | --------------------------------------------------------------------- | -| `stuck_vehicle_velocity` | [m/s] | double | 車両停止状態の最大速度しきい値 | -| `max_stuck_vehicle_lateral_offset` | [m] | double | 目標車両の最大横方向オフセット | -| `required_clearance` | [m] | double | 自車と前方の車両との確保するクリアランス | -| `min_acc` | [m/ss] | double | 停止するための最小加速度 | -| `min_jerk` | [m/sss] | double | 停止するための最小ジャーク | -| `max_jerk` | [m/sss] | double | 停止するための最大ジャーク | +| パラメータ | 単位 | 型 | 説明 | +| ---------------------------------- | ------- | ------ | ---------------------------------------- | +| `stuck_vehicle_velocity` | [m/s] | double | 車両停止状態の最大速度しきい値 | +| `max_stuck_vehicle_lateral_offset` | [m] | double | 目標車両の最大横方向オフセット | +| `required_clearance` | [m] | double | 自車と前方の車両との確保するクリアランス | +| `min_acc` | [m/ss] | double | 停止するための最小加速度 | +| `min_jerk` | [m/sss] | double | 停止するための最小ジャーク | +| `max_jerk` | [m/sss] | double | 停止するための最大ジャーク | ### 安全減速挙動 @@ -250,12 +248,12 @@ trueを設定すると、信号機のある横断歩道の周辺における減 この状況は、[lanelet2_format_extension.md](https://github.com/autowarefoundation/autoware_lanelet2_extension/blob/main/autoware_lanelet2_extension/docs/lanelet2_format_extension.md) ドキュメントの指示に従って、関連する横断歩道にタグを設定することによって処理できます。 -| パラメーター | 単位 | タイプ | 説明 | -| --------------------- | ---- | ------ | ------------------------------------------------------------------------------------------------------------------- | -| `slow_velocity` | m/s | double | モジュールが FOA から減速コマンドを受信したときのターゲット車両速度 | -| `max_slow_down_jerk` | m/sss | double | 安全なブレーキのための最小ジャーク減速度 | -| `max_slow_down_accel` | m/ss | double | 安全なブレーキのための最小アクセル減速度 | -| `no_relax_velocity` | m/s | double | 現在速度が X m/s 未満の場合、エゴは常に停止位置で停止する(減速制約を緩和しない) | +| パラメーター | 単位 | タイプ | 説明 | +| --------------------- | ----- | ------ | --------------------------------------------------------------------------------- | +| `slow_velocity` | m/s | double | モジュールが FOA から減速コマンドを受信したときのターゲット車両速度 | +| `max_slow_down_jerk` | m/sss | double | 安全なブレーキのための最小ジャーク減速度 | +| `max_slow_down_accel` | m/ss | double | 安全なブレーキのための最小アクセル減速度 | +| `no_relax_velocity` | m/s | double | 現在速度が X m/s 未満の場合、エゴは常に停止位置で停止する(減速制約を緩和しない) | ### オクルージョン @@ -281,39 +279,39 @@ trueを設定すると、信号機のある横断歩道の周辺における減 ![stuck_vehicle_attention_range](docs/with_occlusion.svg){width=600} -| パラメータ | 単位 | タイプ | 説明 | -| ---------------------------------------------- | ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -| `enable` | [-] | ブール型 | trueの場合、エゴは、遮蔽されている横断歩道の周囲で減速します。 | -| `occluded_object_velocity` | [m/s] | ダブル型 | 遮蔽された空間から現れる可能性のあるオブジェクトの想定速度 | -| `slow_down_velocity` | [m/s] | ダブル型 | 減速速度 | -| `time_buffer` | [s] | ダブル型 | 減速を追加/削除するための、遮蔽あり/なしの連続時間 | -| `min_size` | [m] | ダブル型 | 遮蔽の最小サイズ(正方形の1辺の長さ) | -| `free_space_max` | [-] | ダブル型 | オキュパンシーグリッド内の空きセルの最大値 | -| `occupied_min` | [-] | ダブル型 | オキュパンシーグリッド内の占有セルの最小値 | -| `ignore_with_traffic_light` | [-] | ブール型 | trueの場合、信号機のある横断歩道の遮蔽は無視されます。 | -| `ignore_behind_predicted_objects` | [-] | ブール型 | trueの場合、予測されたオブジェクトの背後にある遮蔽は無視されます。 | -| `ignore_velocity_thresholds.default` | [m/s] | ダブル型 | 遮蔽は、速度が同じかそれよりも高いオブジェクトの背後でのみ無視されます。 | +| パラメータ | 単位 | タイプ | 説明 | +| ---------------------------------------------- | ----- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `enable` | [-] | ブール型 | trueの場合、エゴは、遮蔽されている横断歩道の周囲で減速します。 | +| `occluded_object_velocity` | [m/s] | ダブル型 | 遮蔽された空間から現れる可能性のあるオブジェクトの想定速度 | +| `slow_down_velocity` | [m/s] | ダブル型 | 減速速度 | +| `time_buffer` | [s] | ダブル型 | 減速を追加/削除するための、遮蔽あり/なしの連続時間 | +| `min_size` | [m] | ダブル型 | 遮蔽の最小サイズ(正方形の1辺の長さ) | +| `free_space_max` | [-] | ダブル型 | オキュパンシーグリッド内の空きセルの最大値 | +| `occupied_min` | [-] | ダブル型 | オキュパンシーグリッド内の占有セルの最小値 | +| `ignore_with_traffic_light` | [-] | ブール型 | trueの場合、信号機のある横断歩道の遮蔽は無視されます。 | +| `ignore_behind_predicted_objects` | [-] | ブール型 | trueの場合、予測されたオブジェクトの背後にある遮蔽は無視されます。 | +| `ignore_velocity_thresholds.default` | [m/s] | ダブル型 | 遮蔽は、速度が同じかそれよりも高いオブジェクトの背後でのみ無視されます。 | | `ignore_velocity_thresholds.custom_labels` | [-] | 文字列リスト | 既定以外の速度しきい値を定義するラベル(すべてのラベルについては、`autoware_perception_msgs::msg::ObjectClassification`を参照してください) | -| `ignore_velocity_thresholds.custom_thresholds` | [-] | ダブルリスト | カスタムラベルの速度 | -| `extra_predicted_objects_size` | [m] | ダブル型 | 遮蔽をマスクするためにオブジェクトに追加される余分なサイズ | +| `ignore_velocity_thresholds.custom_thresholds` | [-] | ダブルリスト | カスタムラベルの速度 | +| `extra_predicted_objects_size` | [m] | ダブル型 | 遮蔽をマスクするためにオブジェクトに追加される余分なサイズ | ### その他 `common` 名前空間では、以下のパラメータが定義されています。 -| パラメータ | ユニット | 種類 | 説明 | -| ------------------------------- | ------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| `show_processing_time` | [-] | ブール値 | 処理時間を表示するかどうか | -| `traffic_light_state_timeout` | [s] | double | 信号のタイムアウトしきい値 | -| `enable_rtc` | [-] | ブール値 | true の場合、シーンモジュールは (rtc 関数の協力を要求して) rtc によって承認される必要があります。false の場合、モジュールは rtc から承認なしに実行できます。 | +| パラメータ | ユニット | 種類 | 説明 | +| ----------------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `show_processing_time` | [-] | ブール値 | 処理時間を表示するかどうか | +| `traffic_light_state_timeout` | [s] | double | 信号のタイムアウトしきい値 | +| `enable_rtc` | [-] | ブール値 | true の場合、シーンモジュールは (rtc 関数の協力を要求して) rtc によって承認される必要があります。false の場合、モジュールは rtc から承認なしに実行できます。 | -##既知の問題 +## 既知の問題 - ケースによっては譲歩の決定が積極的または消極的になることがあります。 - 主な理由は、横断歩道モジュールが車両の将来の位置を知らないことです。車両の正確な位置は、すべての計画の後で決定されます。 - 現在、このモジュールは車両が一定の速度で移動すると想定しています。 -##デバッグ +## デバッグ ### デバッグマーカーの可視化 @@ -334,7 +332,6 @@ trueを設定すると、信号機のある横断歩道の周辺における減 ### 衝突時間(TTC)の可視化 - ```sh ros2 run autoware_behavior_velocity_crosswalk_module time_to_collision_plotter.py ``` @@ -362,4 +359,3 @@ ros2 run autoware_behavior_velocity_crosswalk_module time_to_collision_plotter.p ## **参考文献/外部リンク** [1] 佐藤 みなみ, 早坂 祥一, 清水 政行, 村野 隆彦, 横断歩行者に対するドライバのリスク回避行動のモデル化, 自動車技術会論文集, 2013, 44 巻, 3 号, p. 931-936. - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/README.md index 35242c174212..8f0c9ebda5f9 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/README.md @@ -12,16 +12,16 @@ ### モジュールパラメータ -| パラメータ | 型 | 説明 | -| ----------------------------------- | ------ | ---------------------------------------------------------------------------------------------------------- | -| `use_dead_line` | 論理型 | [-] デッドラインを使用するかどうか | -| `use_pass_judge_line` | 論理型 | [-] 通過判定ラインを使用するかどうか | -| `state_clear_time` | double | [s] オブジェクトが一定時間検出されず、車両が停止している場合、STOPPED 状態に遷移する | -| `stop_margin` | double | [m] 車両が停止線前に停止しようとするマージン | -| `dead_line_margin` | double | [m] 後続車が自車と衝突するかどうかを無視するしきい値 | -| `hold_stop_margin_distance` | double | [m] 再始動防止のための設定 (アルゴリズム セクションを参照) | -| `distance_to_judge_over_stop_line` | double | [m] 停止線を越えたことを判定するためのパラメータ | -| `suppress_pass_judge_when_stopping` | 論理型 | [m] 停止時に通過判定を抑制するためのパラメータ | +| パラメータ | 型 | 説明 | +| ----------------------------------- | ------ | ------------------------------------------------------------------------------------ | +| `use_dead_line` | 論理型 | [-] デッドラインを使用するかどうか | +| `use_pass_judge_line` | 論理型 | [-] 通過判定ラインを使用するかどうか | +| `state_clear_time` | double | [s] オブジェクトが一定時間検出されず、車両が停止している場合、STOPPED 状態に遷移する | +| `stop_margin` | double | [m] 車両が停止線前に停止しようとするマージン | +| `dead_line_margin` | double | [m] 後続車が自車と衝突するかどうかを無視するしきい値 | +| `hold_stop_margin_distance` | double | [m] 再始動防止のための設定 (アルゴリズム セクションを参照) | +| `distance_to_judge_over_stop_line` | double | [m] 停止線を越えたことを判定するためのパラメータ | +| `suppress_pass_judge_when_stopping` | 論理型 | [m] 停止時に通過判定を抑制するためのパラメータ | ### 内部動作/アルゴリズム @@ -33,7 +33,6 @@ #### フローチャート - ```plantuml @startuml title modifyPathVelocity @@ -98,7 +97,7 @@ stop 車両制御性能が低いため、動き始めたら0.5メートルなどの距離(Xメートル)が必要な場合、車両は停止地点を超えて進み、停止寸前の地点(例:0.3メートル先)に近づくため、厳守する必要があります。 -このモジュールには、このような重複する再始動を防ぐためのパラメーター「hold_stop_margin_distance」があります。車両がモジュール停止位置(_front_to_stop_line < hold_stop_margin_distance)から「hold_stop_margin_distance」メートル以内で停止した場合、車両はモジュールの停止位置で停止していると判断し、車両が他の要因で停止した場合でも現在の位置で停止を続けることを計画します。 +このモジュールには、このような重複する再始動を防ぐためのパラメーター「hold_stop_margin_distance」があります。車両がモジュール停止位置(\_front_to_stop_line < hold_stop_margin_distance)から「hold_stop_margin_distance」メートル以内で停止した場合、車両はモジュールの停止位置で停止していると判断し、車両が他の要因で停止した場合でも現在の位置で停止を続けることを計画します。
![例](restart_prevention.svg){width=1000} @@ -114,4 +113,3 @@ stop ![例](keep_stopping.svg){width=1000}
hold_stop_margin_distanceの内側
- diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/README.md index f4abd4362db9..3ff34dc6d8c2 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/README.md @@ -55,13 +55,13 @@ HDマップ上に定義されている `intersection_area` は、交差点全体 次の表は、**例**として、信号のない交差点の各レーンに `yield_lane` を設定する方法を示しています。幾何学的/トポロジ的な方法で交差点レーンのセットの一意の信号位相グループを決定する方法は明らかでないため、`yield_lane` を手動で設定する必要があります。信号機のある直進レーンは、通常他のすべてのレーンよりも優先順位が高いため、レーンの検出がされないように特別に処理されます。したがって、RightOfWay の設定は必要ありません。 -| 進路と優先道路の関係 | 交差点での減速車線(信号有り) | 交差点での減速車線(信号無し) | -| ---------------------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------- | -| 直進 | 減速車線を設定する必要はない(このケースは特殊) | 同相車の対向車線 | -| 左折(左ハンドル車) | 反相車の対抗車線と対向車線の同相車の右側から対抗する車線 | 同相車の対向車線の右側の車線 | -| 右折(左ハンドル車) | 反相車の対抗車線 | 減速車線を設定しない | -| 左折(右ハンドル車) | 反相車の対抗車線 | 減速車線を設定しない | -| 右折(右ハンドル車) | 反相車の対抗車線と対向車線の同相車の右側から対抗する車線 | 同相車の対向車線の左側の車線 | +| 進路と優先道路の関係 | 交差点での減速車線(信号有り) | 交差点での減速車線(信号無し) | +| -------------------- | -------------------------------------------------------- | ------------------------------ | +| 直進 | 減速車線を設定する必要はない(このケースは特殊) | 同相車の対向車線 | +| 左折(左ハンドル車) | 反相車の対抗車線と対向車線の同相車の右側から対抗する車線 | 同相車の対向車線の右側の車線 | +| 右折(左ハンドル車) | 反相車の対抗車線 | 減速車線を設定しない | +| 左折(右ハンドル車) | 反相車の対抗車線 | 減速車線を設定しない | +| 右折(右ハンドル車) | 反相車の対抗車線と対向車線の同相車の右側から対抗する車線 | 同相車の対向車線の左側の車線 | この設定は、次の `attention_area` 設定を提供します。 @@ -108,18 +108,17 @@ HDマップ上に定義されている `intersection_area` は、交差点全体 シーンに応じて、いくつかの動作があります。 -| 挙動 | シーン | アクション | -| ---------------- | ------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| 安全 | 自車が遮蔽と衝突を検出しない | 自車が交差点を通過する | -| 停止維持 | 交差点の出口が渋滞によって塞がれている | 自車が交差点または注意領域の境界手前で停止する | -| 譲歩による停止 | 他の車両が自車に道を譲るために停車する | 自車が交差点または注意領域の境界手前で停止する | -| 遮蔽なし衝突停止 | 自車が遮蔽を検出しないが衝突を検出する | 自車がデフォルトの停止線で停止する | -| 遮蔽範囲前に待機する | 交差点への進入時に自車が遮蔽を検出する | 自車が最初にデフォルトの停止線で停止する | -| 遮蔽のほうを伺う | 自車が遮蔽を検出し、視野内では衝突を検出しない(遮蔽範囲前に待機した後) | 自車が注意領域の境界にゆっくりと接近する | -| 遮蔽により衝突停止 | 自車が遮蔽と衝突の両方を検出する(遮蔽範囲前に待機した後) | 自車が直ちに停止する | -| 完全優先 | 自車が赤/矢印信号によって完全に優先されている | 自車は交差点内でまだ走行中の車両のみを考慮する。遮蔽は無視される | -| 通過判断線通過 | 自車がすでに注意領域内にある、または注意領域の境界手前で停止できないことを検出している | 自車は衝突/遮蔽を検出せず、交差点を通過する | - +| 挙動 | シーン | アクション | +| -------------------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | +| 安全 | 自車が遮蔽と衝突を検出しない | 自車が交差点を通過する | +| 停止維持 | 交差点の出口が渋滞によって塞がれている | 自車が交差点または注意領域の境界手前で停止する | +| 譲歩による停止 | 他の車両が自車に道を譲るために停車する | 自車が交差点または注意領域の境界手前で停止する | +| 遮蔽なし衝突停止 | 自車が遮蔽を検出しないが衝突を検出する | 自車がデフォルトの停止線で停止する | +| 遮蔽範囲前に待機する | 交差点への進入時に自車が遮蔽を検出する | 自車が最初にデフォルトの停止線で停止する | +| 遮蔽のほうを伺う | 自車が遮蔽を検出し、視野内では衝突を検出しない(遮蔽範囲前に待機した後) | 自車が注意領域の境界にゆっくりと接近する | +| 遮蔽により衝突停止 | 自車が遮蔽と衝突の両方を検出する(遮蔽範囲前に待機した後) | 自車が直ちに停止する | +| 完全優先 | 自車が赤/矢印信号によって完全に優先されている | 自車は交差点内でまだ走行中の車両のみを考慮する。遮蔽は無視される | +| 通過判断線通過 | 自車がすでに注意領域内にある、または注意領域の境界手前で停止できないことを検出している | 自車は衝突/遮蔽を検出せず、交差点を通過する | ```plantuml @startuml @@ -212,7 +211,6 @@ OccludedCollisionStop --> PeekingTowardOcclusion: IF not collision detected 現在、交差点モジュールは`motion_velocity_smoother`機能を使用して、縦方向/横方向の制約の下で交差点レーンに沿ったエゴの速度プロファイルを正確に計算しています。フラグ`collision_detection.velocity_profile.use_upstream`がtrueの場合、元々のパスのターゲット速度プロファイルが使用されます。そうでない場合、ターゲット速度は`collision.velocity_profile.default_velocity`に設定されます。軌跡平滑化処理では、エゴの軌跡ポイントで/その前のターゲット速度は、エゴの現在の速度に設定されます。滑らかにされた軌跡はその後、現在のエゴの位置から経路上の各軌跡ポイントへの到着時間を示す(時間、距離)の配列に変換されます。レーンIDを`debug.ttc`に追加して実行することでこの配列を視覚化できます。 - ```bash ros2 run behavior_velocity_intersection_module ttc.py --lane_id ``` @@ -228,9 +226,9 @@ ros2 run behavior_velocity_intersection_module ttc.py --lane_id ## オクルージョン検出 -フラグ `occlusion.enable` が true の場合、このモジュールは `occlusion.occlusion_attention_area_length` までの注目範囲の視野 (FOV) が十分にあるかどうかを確認します。FOV が十分にクリアでない場合、ego は最初に `occlusion.temporal_stop_time_before_peeking` の間 default_stopline で短時間停止し、その後オクルージョン_ピーキング_ストップラインにゆっくりと進みます。`occlusion.creep_during_peeking.enable` が true の場合、`occlusion.creep_during_peeking.creep_velocity` がオクルージョン_ピーキング_ストップラインまで挿入されます。そうでない場合、停止線のみが挿入されます。 +フラグ `occlusion.enable` が true の場合、このモジュールは `occlusion.occlusion_attention_area_length` までの注目範囲の視野 (FOV) が十分にあるかどうかを確認します。FOV が十分にクリアでない場合、ego は最初に `occlusion.temporal_stop_time_before_peeking` の間 default*stopline で短時間停止し、その後オクルージョン*ピーキング*ストップラインにゆっくりと進みます。`occlusion.creep_during_peeking.enable` が true の場合、`occlusion.creep_during_peeking.creep_velocity` がオクルージョン*ピーキング\_ストップラインまで挿入されます。そうでない場合、停止線のみが挿入されます。 -忍び寄っている間に衝突が検出された場合、このモジュールはすぐに ego の前に停止線を追加し、FOV が十分にクリアになると交差点_オクルージョン壁は消えます。オクルージョンがクリアされ、衝突が検出されなかった場合、ego は交差点を通過します。 +忍び寄っている間に衝突が検出された場合、このモジュールはすぐに ego の前に停止線を追加し、FOV が十分にクリアになると交差点\_オクルージョン壁は消えます。オクルージョンがクリアされ、衝突が検出されなかった場合、ego は交差点を通過します。 オクルージョンは、オクルージョン注目範囲(通常注目範囲と部分的に同じ)と占有グリッドマップの不明セルとの共通領域として検出されます。占有グリッドマップは `occlusion.denoise_kernel` のウィンドウサイズを使用して形態学を用いてノイズを除去されます。オクルージョン注目範囲のレーンは直線ストリングに離散化され、それらを使用して、下の図のように各セルがレーンに沿った ego パスの距離を表すグリッドを生成します。 @@ -240,9 +238,9 @@ ros2 run behavior_velocity_intersection_module ttc.py --lane_id ### 信号機のある交差点でのオクルージョンソースの推定 -信号機のある交差点では、ego と最も近いオクルージョンセルとの間に物体があるかどうかをチェックすることで、オクルージョンの所在推定が行われます。オクルージョンが何らかの物体によって引き起こされていると推定される間 (動的にオクルージョンされる)、交差点_ウォールは常に表示されます。ego と最も近いオクルージョンセルとの間に物体が見つからない場合(静的にオクルージョンされる)、ego は `occlusion.static_occlusion_with_traffic_light_timeout` の期間と `occlusion.occlusion_detection_hold_time` の期間停止した後、意図的にオクルージョンを無視してスタックを回避します。 +信号機のある交差点では、ego と最も近いオクルージョンセルとの間に物体があるかどうかをチェックすることで、オクルージョンの所在推定が行われます。オクルージョンが何らかの物体によって引き起こされていると推定される間 (動的にオクルージョンされる)、交差点\_ウォールは常に表示されます。ego と最も近いオクルージョンセルとの間に物体が見つからない場合(静的にオクルージョンされる)、ego は `occlusion.static_occlusion_with_traffic_light_timeout` の期間と `occlusion.occlusion_detection_hold_time` の期間停止した後、意図的にオクルージョンを無視してスタックを回避します。 -残り時間は交差点_オクルージョン仮想ウォールに視覚化されます。 +残り時間は交差点\_オクルージョン仮想ウォールに視覚化されます。 ![static-occlusion-timeout](./docs/static-occlusion-timeout.png) @@ -252,7 +250,7 @@ ros2 run behavior_velocity_intersection_module ttc.py --lane_id ![occlusion_detection](./docs/occlusion-without-tl.drawio.svg) -ego が進んでいる間、黄色の交差点_ウォールが ego の前に表示されます。 +ego が進んでいる間、黄色の交差点\_ウォールが ego の前に表示されます。 ![occlusion-wo-tl-creeping](./docs/occlusion-wo-tl-creeping.png) @@ -262,11 +260,11 @@ ego が進んでいる間、黄色の交差点_ウォールが ego の前に表 TTC パラメータは信号機の色や形状によって次のように変化します。 -| 交通信号色 | ttc(開始) | ttc(終了) | -| ------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| GREEN | `collision_detection.not_prioritized.collision_start_margin` | `collision_detection.not_prioritized.collision_end_margin` | -| AMBER | `collision_detection.partially_prioritized.collision_start_end_margin` | `collision_detection.partially_prioritized.collision_start_end_margin` | -| RED / Arrow | `collision_detection.fully_prioritized.collision_start_end_margin` | `collision_detection.fully_prioritized.collision_start_end_margin` | +| 交通信号色 | ttc(開始) | ttc(終了) | +| ----------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| GREEN | `collision_detection.not_prioritized.collision_start_margin` | `collision_detection.not_prioritized.collision_end_margin` | +| AMBER | `collision_detection.partially_prioritized.collision_start_end_margin` | `collision_detection.partially_prioritized.collision_start_end_margin` | +| RED / Arrow | `collision_detection.fully_prioritized.collision_start_end_margin` | `collision_detection.fully_prioritized.collision_start_end_margin` | ### グリーンスロー中での譲り @@ -292,10 +290,10 @@ TTC パラメータは信号機の色や形状によって次のように変化 1. 車両は、停止する場合、少なくとも制動距離分、無保護領域の境界線より手前でブレーキを開始する必要がある 2. 車両は、走行する場合、十分な制動距離マージンで先行車両を認識し、安全性を事前に確認する必要がある - 1. そして、安全の判断は絶対に確実であり、将来の予測期間にわたって有効である必要がある。そのため、安全条件は、自分車が無保護領域内を走行している間、常に満たされる必要があります。 -3. (TODO): 制限された検出範囲/速度追跡性能を考慮すると、完璧に安全な判断を事前に下すことはほとんど不可能であるため、交差点モジュールは、安全上の判断が次の理由により後に "裏切られた" 場合に、リスク回避的加速速度プロファイルの計画と/または横方向加速度制限の緩和を行う必要があります。 - 1. 状況がその後に危険になった場合、主に速度追跡が過小評価されたか、またはオブジェクトが TTC マージンを超えて加速したため - 2. 状況がその後に危険になった場合、主にオブジェクトが突然どこからともなく検出されたため +3. そして、安全の判断は絶対に確実であり、将来の予測期間にわたって有効である必要がある。そのため、安全条件は、自分車が無保護領域内を走行している間、常に満たされる必要があります。 +4. (TODO): 制限された検出範囲/速度追跡性能を考慮すると、完璧に安全な判断を事前に下すことはほとんど不可能であるため、交差点モジュールは、安全上の判断が次の理由により後に "裏切られた" 場合に、リスク回避的加速速度プロファイルの計画と/または横方向加速度制限の緩和を行う必要があります。 +5. 状況がその後に危険になった場合、主に速度追跡が過小評価されたか、またはオブジェクトが TTC マージンを超えて加速したため +6. 状況がその後に危険になった場合、主にオブジェクトが突然どこからともなく検出されたため $$ \dfrac{v_{\mathrm{ego}}^{2}}{2a_{\mathrm{max}}} + v_{\mathrm{ego}} * t_{\mathrm{delay}} @@ -303,28 +301,28 @@ $$ によって得られる制動距離分、無保護領域の境界線より手前の位置をパス判定線と呼び、自分車がこの位置を通過する前に安全上の判断が行われなければなりません。自分車はこれ以上停車しなくなるからです。 -1st_pass_判定線は最初の先行レーンより手前にあり、複数の先行レーンがある交差点では、2nd_pass_判定線は制動距離分、最初の注意レーンのセンターラインより手前の位置として定義されます。1st/2nd_pass_判定線は次の図で示されています。 +1st*pass*判定線は最初の先行レーンより手前にあり、複数の先行レーンがある交差点では、2nd*pass*判定線は制動距離分、最初の注意レーンのセンターラインより手前の位置として定義されます。1st/2nd*pass*判定線は次の図で示されています。 ![pass-judge-line](./docs/pass-judge-line.drawio.svg) 交差点モジュールは次の場合に走行を指示します。 - 自分車がデフォルト・ストップラインを越えている場合 (または `common.enable_pass_judge_before_default_stopline` が true の場合) -- 自分車が 1st_pass_判定線を越えている場合 +- 自分車が 1st*pass*判定線を越えている場合 - 自分車が以前に SAFE と判断されている場合 -- (自分車が 2nd_pass_判定線を越えている場合、または自分車が 1st と 2nd のパス判定線の間にあるが、最も可能性の高い衝突が 1st の注意レーンで発生すると予想される場合) +- (自分車が 2nd*pass*判定線を越えている場合、または自分車が 1st と 2nd のパス判定線の間にあるが、最も可能性の高い衝突が 1st の注意レーンで発生すると予想される場合) 以下の場合は、停止するか停止判断を継続すると予想されるためです。 1. 自分車がデフォルト・ストップラインより前で `common.enable_pass_judge_before_default_stopline` が false の場合 - 1. 理由: デフォルト・ストップラインはマップ上に定義されており、尊重する必要があります -2. 自分車が 1st_pass_判定線より前 - 1. 理由: 制動距離マージンが十分にある -3. 自分車は以前に UNSAFE と判断されました - 1. 理由: 自分車は現在停止しようとしており、減速中に 1st_pass_判定線を越えたとしても、衝突が検出されたら停止判断を続ける必要があります -4. (自分車は 1st と 2nd のパス判定線の間で、最も可能性の高い衝突が 2nd の注意レーンで発生すると予想される) +1. 理由: デフォルト・ストップラインはマップ上に定義されており、尊重する必要があります +1. 自分車が 1st*pass*判定線より前 +1. 理由: 制動距離マージンが十分にある +1. 自分車は以前に UNSAFE と判断されました +1. 理由: 自分車は現在停止しようとしており、減速中に 1st*pass*判定線を越えたとしても、衝突が検出されたら停止判断を続ける必要があります +1. (自分車は 1st と 2nd のパス判定線の間で、最も可能性の高い衝突が 2nd の注意レーンで発生すると予想される) -3 番目の条件では、自分車が衝突検出のために停止しようとしている場合、無保護領域にオーバーシュートして停止する可能性があります。これは、自分車が減速中に 1st_pass_判定線を越えた場合でも UNSAFE 判断が行われたままで、停止判断を続ける必要があるためです。 +3 番目の条件では、自分車が衝突検出のために停止しようとしている場合、無保護領域にオーバーシュートして停止する可能性があります。これは、自分車が減速中に 1st*pass*判定線を越えた場合でも UNSAFE 判断が行われたままで、停止判断を続ける必要があるためです。 交差点の4番目の条件では、2番目の注意車線が交わる交差点で、自車が1番目のpass_judge_lineを超えたとしても、2番目の注意車線で最も衝突が起こりそうな場合は、交差点モジュールは停止するように指示します。 @@ -338,7 +336,6 @@ $$ ### `IntersectionLanelets` - ```plantuml @startuml entity IntersectionLanelets { @@ -365,7 +362,6 @@ entity IntersectionLanelets { 各停止線は、補間されたパス点から生成され、正確な位置を取得します。 - ```plantuml @startuml entity IntersectionStopLines { @@ -394,7 +390,6 @@ entity IntersectionStopLines { `TargetObject` は、対象物、その所属車線、および対応する停止線情報を保持します。 - ```plantuml @startuml entity TargetObject { @@ -414,29 +409,29 @@ entity TargetObject { ### 共通 -| パラメータ | タイプ | 説明 | -| ------------------------------------------- | ------ | ---------------------------------------- | -| `.attention_area_length` | double | [m] 物体検出範囲 | -| `.attention_area_margin` | double | [m] アテンションエリアの幅の拡張マージン | -| `.attention_area_angle_threshold` | double | [rad] 検出オブジェクトと車線の角度差の閾値 | -| `.use_intersection_area` | bool | [-] 衝突検出に交差領域を使用するフラグ | -| `.default_stopline_margin` | double | [m] 停止線手前マージン | -| `.stopline_overshoot_margin` | double | [m] 停止線への進入マージン | -| `.max_accel` | double | [m/ss] 停止時の最大加速度 | -| `.max_jerk` | double | [m/sss] 停止時の最大ジャーク | -| `.delay_response_time` | double | [s] 停止前のアクション遅延時間 | +| パラメータ | タイプ | 説明 | +| -------------------------------------------- | ------ | ----------------------------------------------------------------------------- | +| `.attention_area_length` | double | [m] 物体検出範囲 | +| `.attention_area_margin` | double | [m] アテンションエリアの幅の拡張マージン | +| `.attention_area_angle_threshold` | double | [rad] 検出オブジェクトと車線の角度差の閾値 | +| `.use_intersection_area` | bool | [-] 衝突検出に交差領域を使用するフラグ | +| `.default_stopline_margin` | double | [m] 停止線手前マージン | +| `.stopline_overshoot_margin` | double | [m] 停止線への進入マージン | +| `.max_accel` | double | [m/ss] 停止時の最大加速度 | +| `.max_jerk` | double | [m/sss] 停止時の最大ジャーク | +| `.delay_response_time` | double | [s] 停止前のアクション遅延時間 | | `.enable_pass_judge_before_default_stopline` | bool | [-] ego が pass_judge_line を超えていても default_stopline で停止しないフラグ | ### stuck_vehicle/yield_stuck 自動車が駐車されたり、故障したりして動けなくなっている車両に遭遇した場合の対処法を定義する。 -| パラメータ | 型 | 説明 | -|---|---|---| -| `stuck_vehicle.turn_direction` | - | [-] 自動停止車両検出のための turn_direction 指定 | -| `stuck_vehicle.stuck_vehicle_detect_dist` | double | [m] 自動停止車両検出のための交差点出口からの方向 | -| `stuck_vehicle.stuck_vehicle_velocity_threshold` | double | [m/s] 自動停止車両検出のための速度しきい値 | -| `yield_stuck.distance_threshold` | double | [m/s] 自車経路に沿って停止車両から ego まで距離しきい値 | +| パラメータ | 型 | 説明 | +| ------------------------------------------------ | ------ | ------------------------------------------------------- | +| `stuck_vehicle.turn_direction` | - | [-] 自動停止車両検出のための turn_direction 指定 | +| `stuck_vehicle.stuck_vehicle_detect_dist` | double | [m] 自動停止車両検出のための交差点出口からの方向 | +| `stuck_vehicle.stuck_vehicle_velocity_threshold` | double | [m/s] 自動停止車両検出のための速度しきい値 | +| `yield_stuck.distance_threshold` | double | [m/s] 自車経路に沿って停止車両から ego まで距離しきい値 | ### 衝突検出 @@ -445,42 +440,42 @@ entity TargetObject { 衝突は、自車および周囲のオブジェクトの間の距離が一定のしきい値を下回った場合に検出されます。 検出された衝突は、`post resampling`によって調整されます。 -| パラメータ | 種類 | 説明 | -|---|---|---| -| `.consider_wrong_direction_vehicle` | bool | [-] 逆走車両を検出するためのフラグ | -| `.collision_detection_hold_time` | double | [s] 衝突検出のホールド時間 | -| `.min_predicted_path_confidence` | double | [-] 衝突検出に使用される予測パスの最小信頼値 | -| `.keep_detection_velocity_threshold` | double | [s] パスジャッジラインを通過するまでの衝突検出を継続するための自車速度閾値 | -| `.velocity_profile.use_upstream` | bool | [-] 上流モジュールで計画された速度プロファイルを使用するためのフラグ | -| `.velocity_profile.minimum_upstream_velocity` | double | [m/s] ゼロ除算を回避するための上流速度プロファイルの最小速度 | -| `.velocity_profile.default_velocity` | double | [m/s] use_upstreamがfalseの場合の一定速度プロファイル | -| `.velocity_profile.minimum_default_velocity` | double | [m/s] ゼロ除算を回避するためのデフォルト速度プロファイルの最小速度 | -| `.yield_on_green_traffic_light` | - | [-] [説明](#yield-on-green) | -| `.ignore_amber_traffic_light` | - | [-] [説明](#skip-on-amber) | -| `.ignore_on_red_traffic_light` | - | [-] [説明](#skip-on-red) | +| パラメータ | 種類 | 説明 | +| --------------------------------------------- | ------ | -------------------------------------------------------------------------- | +| `.consider_wrong_direction_vehicle` | bool | [-] 逆走車両を検出するためのフラグ | +| `.collision_detection_hold_time` | double | [s] 衝突検出のホールド時間 | +| `.min_predicted_path_confidence` | double | [-] 衝突検出に使用される予測パスの最小信頼値 | +| `.keep_detection_velocity_threshold` | double | [s] パスジャッジラインを通過するまでの衝突検出を継続するための自車速度閾値 | +| `.velocity_profile.use_upstream` | bool | [-] 上流モジュールで計画された速度プロファイルを使用するためのフラグ | +| `.velocity_profile.minimum_upstream_velocity` | double | [m/s] ゼロ除算を回避するための上流速度プロファイルの最小速度 | +| `.velocity_profile.default_velocity` | double | [m/s] use_upstreamがfalseの場合の一定速度プロファイル | +| `.velocity_profile.minimum_default_velocity` | double | [m/s] ゼロ除算を回避するためのデフォルト速度プロファイルの最小速度 | +| `.yield_on_green_traffic_light` | - | [-] [説明](#yield-on-green) | +| `.ignore_amber_traffic_light` | - | [-] [説明](#skip-on-amber) | +| `.ignore_on_red_traffic_light` | - | [-] [説明](#skip-on-red) | ### 閉塞 -| パラメータ | 型 | 説明 | -| --------------------------------------------- | -------- | ----------------------------------------------------------------------------------------------- | -| `.enable` | bool | [-] オクルージョン検出を計算するフラグ | -| `.occlusion_attention_area_length` | double | [m] オクルージョン検出のための注目領域の長さ | -| `.free_space_max` | int | [-] オクルージョンとして扱うために、占有グリッドセルの最大値 | -| `.occupied_min` | int | [-] オクルージョンとして扱うために、占有グリッドセルの最小値 | -| `.denoise_kernel` | double | [m] 生の占有グリッドを前処理するための形態学的ウィンドウサイズ | -| `.attention_lane_crop_curvature_threshold` | double | [m] レーンの曲線部を切り取るための曲率のしきい値 | -| `.attention_lane_crop_curvature_ds` | double | [m] レーンの曲率を計算するためのセンターラインの離散化間隔 | -| `.creep_during_peeking.enable` | bool | [-] 交差点のオクルージョン停止線にピーキング中に `creep_velocity` を挿入するためのフラグ | -| `.creep_during_peeking.creep_velocity` | double | [m/s] 交差点のオクルージョン停止線にピーキング中に使用するコマンド速度 | -| `.peeking_offset` | double | [m] ピーキング中のオクルージョンのために、車両前面を注意領域にオフセットする距離 | -| `.occlusion_required_clearance_distance` | double | [m] エゴパスからの最寄りのオクルージョンセルまでの距離のしきい値 | -| `.possible_object_bbox` | [double] | [m] オクルージョンポリゴンが十分に小さいかどうかを確認するための最小バウンディングボックスサイズ | -| `.ignore_parked_vehicle_speed_threshold` | double | [m/s] 駐車車両の確認のための速度しきい値 | -| `.occlusion_detection_hold_time` | double | [s] オクルージョン検出のホールド時間 | -| `.temporal_stop_time_before_peeking` | double | [s] ピーキングを開始する前に、`default_stopline` でのタイムスタンプの停止時間 | -| `.temporal_stop_before_attention_area` | bool | [-] `attention_area` にピーキングする前に、`first_attention_stopline` で一時停止するフラグ | -| `.creep_velocity_without_traffic_light` | double | [m/s] `occlusion_wo_tl_pass_judge_line` へのクリープ速度 | -| `.static_occlusion_with_traffic_light_timeout` | double | [s] 交通信号のある交差点での静的オクルージョンを無視するためのタイムアウトの期間 | +| パラメータ | 型 | 説明 | +| ---------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------ | +| `.enable` | bool | [-] オクルージョン検出を計算するフラグ | +| `.occlusion_attention_area_length` | double | [m] オクルージョン検出のための注目領域の長さ | +| `.free_space_max` | int | [-] オクルージョンとして扱うために、占有グリッドセルの最大値 | +| `.occupied_min` | int | [-] オクルージョンとして扱うために、占有グリッドセルの最小値 | +| `.denoise_kernel` | double | [m] 生の占有グリッドを前処理するための形態学的ウィンドウサイズ | +| `.attention_lane_crop_curvature_threshold` | double | [m] レーンの曲線部を切り取るための曲率のしきい値 | +| `.attention_lane_crop_curvature_ds` | double | [m] レーンの曲率を計算するためのセンターラインの離散化間隔 | +| `.creep_during_peeking.enable` | bool | [-] 交差点のオクルージョン停止線にピーキング中に `creep_velocity` を挿入するためのフラグ | +| `.creep_during_peeking.creep_velocity` | double | [m/s] 交差点のオクルージョン停止線にピーキング中に使用するコマンド速度 | +| `.peeking_offset` | double | [m] ピーキング中のオクルージョンのために、車両前面を注意領域にオフセットする距離 | +| `.occlusion_required_clearance_distance` | double | [m] エゴパスからの最寄りのオクルージョンセルまでの距離のしきい値 | +| `.possible_object_bbox` | [double] | [m] オクルージョンポリゴンが十分に小さいかどうかを確認するための最小バウンディングボックスサイズ | +| `.ignore_parked_vehicle_speed_threshold` | double | [m/s] 駐車車両の確認のための速度しきい値 | +| `.occlusion_detection_hold_time` | double | [s] オクルージョン検出のホールド時間 | +| `.temporal_stop_time_before_peeking` | double | [s] ピーキングを開始する前に、`default_stopline` でのタイムスタンプの停止時間 | +| `.temporal_stop_before_attention_area` | bool | [-] `attention_area` にピーキングする前に、`first_attention_stopline` で一時停止するフラグ | +| `.creep_velocity_without_traffic_light` | double | [m/s] `occlusion_wo_tl_pass_judge_line` へのクリープ速度 | +| `.static_occlusion_with_traffic_light_timeout` | double | [s] 交通信号のある交差点での静的オクルージョンを無視するためのタイムアウトの期間 | ## トラブルシューティング @@ -533,7 +528,6 @@ laserscan_based_occupancy_grid_map は 2D 方式で不自然な UNKNOWN セル 実車または [AWSIM](https://tier4.github.io/AWSIM/) などのエンドツーエンドシミュレータでは、次の pointcloud_based_occupancy_grid_map 設定を強くお勧めします。 - ```yaml scan_origin_frame: "velodyne_top" @@ -549,7 +543,6 @@ OccupancyGridMapProjectiveBlindSpot: 作業中 - ```plantuml @startuml title modifyPathVelocity @@ -648,8 +641,8 @@ stop - 自車線に「private」タグが付けられている - 自車線は、他の非私有レーンレットと衝突している -| パラメータ | 型 | 説明 | -| ------------------------------------------ | ------ | ------------------------ | +| パラメータ | 型 | 説明 | +| ------------------------------------------- | ------ | ------------------------ | | `merge_from_private_road/stop_duration_sec` | double | 状態変更のマージンタイム | ### 既知の問題 @@ -667,4 +660,3 @@ stop - 複雑な交差点 ![intersection_test](./docs/intersection_test_map.png) - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_no_drivable_lane_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_drivable_lane_module/README.md index 2170ce63d110..b835b47707e2 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_no_drivable_lane_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_drivable_lane_module/README.md @@ -27,10 +27,10 @@ ### モジュールパラメータ -| Parameter | 型 | 説明 | -| ------------------ | ---- | ------------------------------------------------- | +| Parameter | 型 | 説明 | +| ------------------ | ------ | -------------------------------------------------- | | `stop_margin` | double | 自車位置が速度抑制帯前で停止するためのマージン [m] | -| `print_debug_info` | bool | デバッグ情報を印刷するかどうか | +| `print_debug_info` | bool | デバッグ情報を印刷するかどうか | ### 仕組み / アルゴリズム @@ -50,4 +50,3 @@ - [Request to Intervene API](https://github.com/autowarefoundation/autoware/issues/3487) はまだ実装されていないため、この機能は `no_drivable_lane` により車両が停止した後、運転作業の引き継ぎをドライバーに通知するために処理されます - 車両が no_drivable_lane の前で停止するが、その一部が no_drivable_lane ポリゴンと交差するケースを処理 - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/README.md index 6c14d5dc5e68..7a411af383a3 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/README.md @@ -19,19 +19,18 @@ #### ModelParameter -| パラメーター | タイプ | 説明 | -| ---------------------------- | ------ | ------------------------------------------------------------ | -| `state_clear_time` | 数値 | [s] 停止状態を解除する時間 | -| `stuck_vehicle_vel_thr` | 数値 | [m/s] この速度以下の車両は停止車両とみなす。 | -| `stop_margin` | 数値 | [m] 停止禁止区域での停止線へのマージン | -| `dead_line_margin` | 数値 | [m] 自車がこの位置を通過すると進路を許可 | -| `stop_line_margin` | 数値 | [m] 停止禁止区域での自動生成停止線へのマージン | -| `detection_area_length` | 数値 | [m] 検索ポリゴンの長 | -| `stuck_vehicle_front_margin` | 数値 | [m] 障害物停止最大距離 | +| パラメーター | タイプ | 説明 | +| ---------------------------- | ------ | ---------------------------------------------- | +| `state_clear_time` | 数値 | [s] 停止状態を解除する時間 | +| `stuck_vehicle_vel_thr` | 数値 | [m/s] この速度以下の車両は停止車両とみなす。 | +| `stop_margin` | 数値 | [m] 停止禁止区域での停止線へのマージン | +| `dead_line_margin` | 数値 | [m] 自車がこの位置を通過すると進路を許可 | +| `stop_line_margin` | 数値 | [m] 停止禁止区域での自動生成停止線へのマージン | +| `detection_area_length` | 数値 | [m] 検索ポリゴンの長 | +| `stuck_vehicle_front_margin` | 数値 | [m] 障害物停止最大距離 | #### フローチャート - ```plantuml @startuml title modifyPathVelocity @@ -124,4 +123,3 @@ stop @enduml ``` - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_occlusion_spot_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_occlusion_spot_module/README.md index 592b96525886..b9ce64ec67f4 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_occlusion_spot_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_occlusion_spot_module/README.md @@ -104,54 +104,53 @@ TODO: 最善の選択肢の 1 つを検討する #### モジュールパラメータ -| パラメータ | 型 | 説明 | -| ------------------- | ------ | ----------------------------------------------------------------------------------- | -| `pedestrian_vel` | double | [m/s] 障害物出現点から出てくる歩行者の仮定最大速度。 | -| `pedestrian_radius` | double | 障害物スポットにフィットする仮定歩行者半径。 | - -| パラメータ | 型 | 説明 | -| ----------- | --- | ---------------------------------------------------------------- | -| `use_object_info` | bool | [-] オブジェクト情報を占有グリッドマップに反映するかどうか | -| `use_partition_lanelet` | bool | [-] パーティションLaneletマップデータを使用するかどうか | - -| パラメータ /デバッグ | 型 | 説明 | -|---|---|---| -| `is_show_occlusion` | bool | 遮蔽点のマーカーを表示するかどうか | -| `is_show_cv_window` | bool | OpenCVデバッグウィンドウを表示するかどうか | -| `is_show_processing_time` | bool | 処理時間を表示するかどうか | - -| パラメータ/しきい値 | 型 | 説明 | -| ------------------------ | ------- | --------------------------------------------------- | -| `detection_area_length` | double | [m] オクルージョン地点を考えるパス長 | -| `stuck_vehicle_vel` | double | [m/s] この値より速度が低い場合は停止していると判断 | -| `lateral_distance` | double | [m] 隠れた衝突を考える最大横方向距離 | - -| パラメーター/モーション | タイプ | 説明 | -| ---------------------------- | ------ | ---------------------------------------------- | -| `safety_ratio` | double | [-] じゃーと加速度の安全性係数 | -| `max_slow_down_jerk` | double | [m/s^3] 安全なブレーキのじゃー | -| `max_slow_down_accel` | double | [m/s^2] 安全なブレーキの減速度 | -| `non_effective_jerk` | double | [m/s^3] 速度Plannningの弱いじゃー | -| `non_effective_acceleration` | double | [m/s^2] 速度Plannningの弱い減速度 | -| `min_allowed_velocity` | double | [m/s] 許容最小速度 | +| パラメータ | 型 | 説明 | +| ------------------- | ------ | ---------------------------------------------------- | +| `pedestrian_vel` | double | [m/s] 障害物出現点から出てくる歩行者の仮定最大速度。 | +| `pedestrian_radius` | double | 障害物スポットにフィットする仮定歩行者半径。 | + +| パラメータ | 型 | 説明 | +| ----------------------- | ---- | ---------------------------------------------------------- | +| `use_object_info` | bool | [-] オブジェクト情報を占有グリッドマップに反映するかどうか | +| `use_partition_lanelet` | bool | [-] パーティションLaneletマップデータを使用するかどうか | + +| パラメータ /デバッグ | 型 | 説明 | +| ------------------------- | ---- | ------------------------------------------ | +| `is_show_occlusion` | bool | 遮蔽点のマーカーを表示するかどうか | +| `is_show_cv_window` | bool | OpenCVデバッグウィンドウを表示するかどうか | +| `is_show_processing_time` | bool | 処理時間を表示するかどうか | + +| パラメータ/しきい値 | 型 | 説明 | +| ----------------------- | ------ | -------------------------------------------------- | +| `detection_area_length` | double | [m] オクルージョン地点を考えるパス長 | +| `stuck_vehicle_vel` | double | [m/s] この値より速度が低い場合は停止していると判断 | +| `lateral_distance` | double | [m] 隠れた衝突を考える最大横方向距離 | + +| パラメーター/モーション | タイプ | 説明 | +| ---------------------------- | ------ | ---------------------------------------------------- | +| `safety_ratio` | double | [-] じゃーと加速度の安全性係数 | +| `max_slow_down_jerk` | double | [m/s^3] 安全なブレーキのじゃー | +| `max_slow_down_accel` | double | [m/s^2] 安全なブレーキの減速度 | +| `non_effective_jerk` | double | [m/s^3] 速度Plannningの弱いじゃー | +| `non_effective_acceleration` | double | [m/s^2] 速度Plannningの弱い減速度 | +| `min_allowed_velocity` | double | [m/s] 許容最小速度 | | `safe_margin` | double | [m] 緊急ブレーキシステムで停止するための最大許容誤差 | -| パラメーター / detection_area | 型 | 説明 | -| ---------------------------- | ------ | -------------------------------------------------------------------------------------- | -| `min_occlusion_spot_size` | double | [m] オクルージョンを考慮するパスの長さ | -| `slice_length` | double | [m] 検出エリアを分割する距離 | -| `max_lateral_distance` | double | [m] 検出_エリア領域を構築するために使用される自己パスの周りのバッファ. | +| パラメーター / detection_area | 型 | 説明 | +| ----------------------------- | ------ | ----------------------------------------------------------------------- | +| `min_occlusion_spot_size` | double | [m] オクルージョンを考慮するパスの長さ | +| `slice_length` | double | [m] 検出エリアを分割する距離 | +| `max_lateral_distance` | double | [m] 検出\_エリア領域を構築するために使用される自己パスの周りのバッファ. | -| パラメータ/グリッド | 型 | 説明 | -| ---------------- | ------ | ----------------------------------------------------------------------- | -| `free_space_max` | double | [-] 占有グリッド内の空きスペースセルの最大値 | -| `occupied_min` | double | [-] detection_area 領域の構築に使用される自車パス周辺のバッファー | +| パラメータ/グリッド | 型 | 説明 | +| ------------------- | ------ | ----------------------------------------------------------------- | +| `free_space_max` | double | [-] 占有グリッド内の空きスペースセルの最大値 | +| `occupied_min` | double | [-] detection_area 領域の構築に使用される自車パス周辺のバッファー | #### フローチャート ##### 全体過程のフローアウトライン - ```plantuml @startuml title modifyPathVelocity (Occupancy/PredictedObject) @@ -224,7 +223,6 @@ stop ##### 予測オブジェクトの詳細プロセス(未更新) - ```plantuml @startuml title modifyPathVelocity @@ -278,29 +276,33 @@ stop ##### 点群ベースの空間グリッドの細部プロセス 1. 1パス目 - - 点群データを `post resampling` 処理して、空間グリッド上に等間隔で配置します。 - - 自車位置の周りの空間グリッドセルに、点群データを割り当てます。 - - 各空間グリッドセルに、占有確率を割り当てます。 + + - 点群データを `post resampling` 処理して、空間グリッド上に等間隔で配置します。 + - 自車位置の周りの空間グリッドセルに、点群データを割り当てます。 + - 各空間グリッドセルに、占有確率を割り当てます。 2. 2パス目 - - 占有確率に基づいて、空間グリッドセルを「占有」、「非占有」、「不明」に分類します。 - - 隣接する空間グリッドセルの分類を考慮して、分類結果を洗練します。 + + - 占有確率に基づいて、空間グリッドセルを「占有」、「非占有」、「不明」に分類します。 + - 隣接する空間グリッドセルの分類を考慮して、分類結果を洗練します。 3. 障害物検出 - - 占有確率が高い空間グリッドセルを、障害物として検出します。 - - 障害物の形状や位置を推定します。 + + - 占有確率が高い空間グリッドセルを、障害物として検出します。 + - 障害物の形状や位置を推定します。 4. **Planning** - - 障害物の予測と回避を考慮した経路を生成します。 - - 速度、加速度、逸脱量に基づく制約を考慮します。 + + - 障害物の予測と回避を考慮した経路を生成します。 + - 速度、加速度、逸脱量に基づく制約を考慮します。 5. **Control** - - **Planning** モジュールからの経路に従って、車両を制御します。 - - ステアリング、アクセル、ブレーキなどのアクチュエーターを制御します。 -6. 反復 - - システムは、点群データの更新を受け取り、プロセスを繰り返します。 + - **Planning** モジュールからの経路に従って、車両を制御します。 + - ステアリング、アクセル、ブレーキなどのアクチュエーターを制御します。 +6. 反復 + - システムは、点群データの更新を受け取り、プロセスを繰り返します。 ```plantuml @startuml @@ -361,4 +363,3 @@ partition handle_possible_collision { stop @enduml ``` - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/README.md index 93f6d252ae20..3189f48d1fdf 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/README.md @@ -28,43 +28,42 @@ ## 入力トピック -| 名前 | タイプ | 説明 | -| --------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| `~input/path_with_lane_id` | tier4_planning_msgs::msg::PathWithLaneId | レーンID付きパス | -| `~input/vector_map` | autoware_map_msgs::msg::LaneletMapBin | ベクターマップ | -| `~input/vehicle_odometry` | nav_msgs::msg::Odometry | 車両の速度 | -| `~input/dynamic_objects` | autoware_perception_msgs::msg::PredictedObjects | 動的オブジェクト | -| `~input/no_ground_pointcloud` | sensor_msgs::msg::PointCloud2 | 障害物点群 | +| 名前 | タイプ | 説明 | +| ----------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| `~input/path_with_lane_id` | tier4_planning_msgs::msg::PathWithLaneId | レーンID付きパス | +| `~input/vector_map` | autoware_map_msgs::msg::LaneletMapBin | ベクターマップ | +| `~input/vehicle_odometry` | nav_msgs::msg::Odometry | 車両の速度 | +| `~input/dynamic_objects` | autoware_perception_msgs::msg::PredictedObjects | 動的オブジェクト | +| `~input/no_ground_pointcloud` | sensor_msgs::msg::PointCloud2 | 障害物点群 | | `~/input/compare_map_filtered_pointcloud` | sensor_msgs::msg::PointCloud2 | 比較マップでフィルタリングされた障害物点群(この実行モジュールの検出方法がPointsの場合に使用されます) | -| `~input/traffic_signals` | autoware_perception_msgs::msg::TrafficLightGroupArray | 信号状態 | +| `~input/traffic_signals` | autoware_perception_msgs::msg::TrafficLightGroupArray | 信号状態 | ## 出力トピック -| 名前 | 型 | 説明 | -| ---------------------- | ----------------------------------------- | ----------------------------------- | -| `~output/path` | `autoware_planning_msgs::msg::Path` | 走行すべきパス | -| `~output/stop_reasons` | `tier4_planning_msgs::msg::StopReasonArray` | 車両を停止させる理由 | +| 名前 | 型 | 説明 | +| ---------------------- | ------------------------------------------- | -------------------- | +| `~output/path` | `autoware_planning_msgs::msg::Path` | 走行すべきパス | +| `~output/stop_reasons` | `tier4_planning_msgs::msg::StopReasonArray` | 車両を停止させる理由 | ## ノードパラメータ -| パラメーター | タイプ | 説明 | -| ------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------------- | -| `launch_modules` | 文字列のベクトル | 起動するモジュール名 | -| `forward_path_length` | double | フォワードパス長 | -| `backward_path_length` | double | バックワードパス長 | -| `max_accel` | double | (グローバルパラメータ) 車両の最大加速度 | -| `system_delay` | double | (グローバルパラメータ) 制御コマンドの出力を始めるまでの遅延時間 | -| `delay_response_time` | double | (グローバルパラメータ) 車両が制御コマンドに応答するまでの遅延時間 | +| パラメーター | タイプ | 説明 | +| ---------------------- | ---------------- | ----------------------------------------------------------------- | +| `launch_modules` | 文字列のベクトル | 起動するモジュール名 | +| `forward_path_length` | double | フォワードパス長 | +| `backward_path_length` | double | バックワードパス長 | +| `max_accel` | double | (グローバルパラメータ) 車両の最大加速度 | +| `system_delay` | double | (グローバルパラメータ) 制御コマンドの出力を始めるまでの遅延時間 | +| `delay_response_time` | double | (グローバルパラメータ) 車両が制御コマンドに応答するまでの遅延時間 | ## シミュレーション/実環境における信号機処理 信号機情報の処理は用途によって異なります。以下の表では、対応する車線の信号機トピック要素を `info` とし、`info` が使用できない場合は `null` とします。 -| モジュール/ケース | `info` が `null` | `info` が `null` 以外 | -| :------------------------------------------------------------------------------------------------------------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| intersection_occlusion(`is_simulation = *`)
  • `info` は最新の非 `null` 情報
| GO (遮蔽は無視されます) | intersection_occlusion は現在までのキューの中で最新の UNKNOWN 以外の情報を利用します。
  • `info` が `GREEN` または `UNKNOWN` の場合、遮蔽が考慮されます
  • `info` が `RED` または `YELLOW` の場合、遮蔽は無視されます (GO)
  • 注: 現在、タイムアウトは考慮されていません
| -| traffic_light(sim, `is_simulation = true`)
  • `info` は現在の情報
| GO | traffic_light は現在知覚している交通信号情報を直接使用します。
  • `info` がタイムアウトの場合は、色に関係なく停止します
  • `info` がタイムアウトでない場合は、色に応じて動作します。`info` が `UNKNOWN` の場合は、停止します
{: rowspan=2} | -| traffic_light(real, `is_simulation = false`)
  • `info` は現在の情報
| 停止 | {: style="padding:0"} | -| 歩行者横断歩道と交通信号 (`is_simulation = *`)
  • `info` は現在の情報
| デフォルト |
  • `disable_yield_for_new_stopped_object` が true の場合、各サブ scene_module はモジュールインスタンス化後に検出された新しい歩行者を無視します。
  • `ignore_with_traffic_light` が true の場合、遮蔽検出はスキップされます。
| -| map_based_prediction(`is_simulation = *`)
  • `info` は現在の情報
| デフォルト | 歩行者信号が
  • RED の場合、周囲の歩行者は予測されません。
  • GREEN の場合、停止中の歩行者は予測されません。
| - +| モジュール/ケース | `info` が `null` | `info` が `null` 以外 | +| :------------------------------------------------------------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| intersection_occlusion(`is_simulation = *`)
  • `info` は最新の非 `null` 情報
| GO (遮蔽は無視されます) | intersection_occlusion は現在までのキューの中で最新の UNKNOWN 以外の情報を利用します。
  • `info` が `GREEN` または `UNKNOWN` の場合、遮蔽が考慮されます
  • `info` が `RED` または `YELLOW` の場合、遮蔽は無視されます (GO)
  • 注: 現在、タイムアウトは考慮されていません
| +| traffic_light(sim, `is_simulation = true`)
  • `info` は現在の情報
| GO | traffic_light は現在知覚している交通信号情報を直接使用します。
  • `info` がタイムアウトの場合は、色に関係なく停止します
  • `info` がタイムアウトでない場合は、色に応じて動作します。`info` が `UNKNOWN` の場合は、停止します
{: rowspan=2} | +| traffic_light(real, `is_simulation = false`)
  • `info` は現在の情報
| 停止 | {: style="padding:0"} | +| 歩行者横断歩道と交通信号 (`is_simulation = *`)
  • `info` は現在の情報
| デフォルト |
  • `disable_yield_for_new_stopped_object` が true の場合、各サブ scene_module はモジュールインスタンス化後に検出された新しい歩行者を無視します。
  • `ignore_with_traffic_light` が true の場合、遮蔽検出はスキップされます。
| +| map_based_prediction(`is_simulation = *`)
  • `info` は現在の情報
| デフォルト | 歩行者信号が
  • RED の場合、周囲の歩行者は予測されません。
  • GREEN の場合、停止中の歩行者は予測されません。
| diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner_common/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner_common/README.md index 00d5064e66b8..6532b1fe6b62 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_planner_common/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_planner_common/README.md @@ -1,4 +1,3 @@ # Behavior Velocity Planner (共通) このパッケージはライブラリとして共通関数を提供し、`behavior_velocity_planner` ノードとモジュールで使用されます。 - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/README.md index fda9deb72099..9cf7441e7c34 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/README.md @@ -14,7 +14,6 @@ #### フローチャート - ```plantuml @startuml title modifyPathVelocity @@ -72,14 +71,14 @@ stop 障害物の抽象化されたデータには、次の情報が含まれています。 -| 名称 | 型 | 説明 | -| ---------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 位置 | `geometry_msgs::msg::Pose` | 障害物の位置 | -| 分類 | `std::vector` | 確率のある分類 | -| 形状 | `autoware_perception_msgs::msg::Shape` | 障害物の形状 | -| 予測経路 | `std::vector` | 信頼度のある予測経路。このデータには、最小速度と最大速度を使用するため、タイムステップがありません。 | -| 最小速度 (m/s) | `float` | 障害物の最小速度。パラメータ `dynamic_obstacle.min_vel_kmph` で指定されています。 | -| 最大速度 (m/s) | `float` | 障害物の最大速度。パラメータ `dynamic_obstacle.max_vel_kmph` で指定されています。 | +| 名称 | 型 | 説明 | +| -------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------- | +| 位置 | `geometry_msgs::msg::Pose` | 障害物の位置 | +| 分類 | `std::vector` | 確率のある分類 | +| 形状 | `autoware_perception_msgs::msg::Shape` | 障害物の形状 | +| 予測経路 | `std::vector` | 信頼度のある予測経路。このデータには、最小速度と最大速度を使用するため、タイムステップがありません。 | +| 最小速度 (m/s) | `float` | 障害物の最小速度。パラメータ `dynamic_obstacle.min_vel_kmph` で指定されています。 | +| 最大速度 (m/s) | `float` | 障害物の最大速度。パラメータ `dynamic_obstacle.max_vel_kmph` で指定されています。 | オブジェクトの最大/最小速度をパラメータとして入力し、予想速度に十分なマージンを追加します。このパラメータは、[衝突検出](.#衝突検出)の多角形を作成するために使用されます。 @@ -92,11 +91,11 @@ stop 一方、`Points`の方法は、入力として点群を使用するため、高い安全性(誤認が少ない)があります。点は予測経路を持たないため、自車経路に垂直な方向に移動する経路が抽象化された動的障害物データの予測経路と見なされます。しかし、ポイントフィルタを適切に調整しなければ、多くのポイントを検出する可能性があり、可用性が非常に低くなります。 `ObjectWithoutPath`は、`Object`と`Points`の中間に位置する特性を持っています。 -| 手法 | 説明 | -|---|---|---| -| オブジェクト | 衝突検出に予測パス付きのオブジェクトを使用する。 | -| ObjectWithoutPath | オブジェクトを使用するが、衝突検出に予測パスを使用しない。オブジェクトが指定された速度で車線に飛び出すことを前提にパスを置き換える。 | -| ポイント | 衝突検出にフィルタされたポイントを使用する。ポイントは車線に飛び出すことを前提にパスが作成される。ポイントは小さな円形の障害物とみなされる。 | +| 手法 | 説明 | +| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| オブジェクト | 衝突検出に予測パス付きのオブジェクトを使用する。 | +| ObjectWithoutPath | オブジェクトを使用するが、衝突検出に予測パスを使用しない。オブジェクトが指定された速度で車線に飛び出すことを前提にパスを置き換える。 | +| ポイント | 衝突検出にフィルタされたポイントを使用する。ポイントは車線に飛び出すことを前提にパスが作成される。ポイントは小さな円形の障害物とみなされる。 | ## 自動運転ソフトウェアドキュメント @@ -146,7 +145,6 @@ stop ![brief](./docs/insert_velocity_to_approach.svg) - ```plantuml @startuml hide empty description @@ -170,59 +168,59 @@ APPROACH --> APPROACH : Approach duration is less than threshold ### モジュールパラメータ -| パラメータ名 | タイプ | 説明 | -|---|---|---| -| `detection_method` | 文字列 | [-] 候補: Object, ObjectWithoutPath, Points | +| パラメータ名 | タイプ | 説明 | +| ----------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `detection_method` | 文字列 | [-] 候補: Object, ObjectWithoutPath, Points | | `target_obstacle_types` | 文字ベクトル | [-] モジュールが考慮する障害物タイプを指定します。障害物の分類タイプがここに記載されていない場合、無視されます。候補: ["PEDESTRIAN", "BICYCLE","MOTORCYCLE"] | -| `use_partition_lanelet` | ブール | [-] 分割laneletマップデータを使用するかどうか | -| `specify_decel_jerk` | ブール | [-] 自車が減速するときのジャークを指定するかどうか | -| `stop_margin` | double | [m] 車両はこのマージンを保持して停止できるよう減速します | -| `passing_margin` | double | [m] 障害物より先に予測位置にある車両の前方が障害物 + このマージンに達したときに車両の加速を開始します | -| `deceleration_jerk` | double | [m/s^3] 障害物のために停止するときに自車がこのジャークで減速します | -| `detection_distance` | double | [m] 自車の前方距離から障害物を検出します | -| `detection_span` | double | [m] 計算時間を短縮するために、この間隔で衝突を計算します | -| `min_vel_ego_kmph` | double | [km/h] 衝突までの時間を計算するための最小速度 | - -| パラメータ /detection_area | 型 | 説明 | -| ------------------------- | ------ | ----------------------------------------- | -| `margin_ahead` | double | 検出エリア多角形の前方マージン [m] | -| `margin_behind` | double | 検出エリア多角形の後方マージン [m] | - -| パラメータ | タイプ | 説明 | -|---|---|---| -| `use_mandatory_area` | double | [-] 強制検出領域を使用するかどうか | -| `assume_fixed_velocity.enable` | double | [-] 有効な場合、障害物の速度は以下に指定した最小速度と最大速度の範囲内と見なされます | -| `assume_fixed_velocity.min_vel_kmph` | double | [km/h] 動的障害物の最小速度 | -| `assume_fixed_velocity.max_vel_kmph` | double | [km/h] 動的障害物の最大速度 | -| `diameter` | double | [m] 障害物の直径。ポイントから動的障害物を作成するために使用されます | -| `height` | double | [m] 障害物の高さ。ポイントから動的障害物を作成するために使用されます | -| `max_prediction_time` | double | [秒] この時間まで予測経路を作成します | -| `time_step` | double | [秒] 各パスステップのタイムステップ。パスを含まないポイントまたはオブジェクトから動的障害物を作成するために使用されます | -| `points_interval` | double | [m] この間隔で障害物ポイントをグループに分割し、最も近くにある横方向のポイントのみを検出します。ポイントメソッドでのみ使用されます | - -| パラメータ /approaching | タイプ | 説明 | -| ------------------------ | ------ | ----------------------------------------------------- | -| `enable` | bool | [-] 停止後に接近を有効にするかどうか | -| `margin` | double | [m] 自車が障害物に接近する方法の距離 | -| `limit_vel_kmph` | double | [km/h] 停止後に接近するための速度制限 | - -| パラメータ/状態 | 型 | 説明 | -| ------------------------ | ------ | ---------------------------------------------------------------------------------- | -| `stop_thresh` | double | [m/s] エゴが停止状態であると判定するための閾値 | -| `stop_time_thresh` | double | [sec] 停止状態から接近状態に移行するための停止時間閾値 | -| `disable_approach_dist` | double | [m] 障害物との距離がこの値より長い場合に接近状態を終了する | -| `keep_approach_duration` | double | [sec] 状態遷移のチャタリングを避けるため、接近状態をこの期間保持する | - -| パラメータ /slow\_down\_limit | 型 | 説明 | -| ----------------------------- | ------ | -------------------------------------------------------- | -| `enable` | bool | [-] 最大ジャークと加速度で速度を制限するかどうか | -| `max\_jerk` | double | [m/s^3] 安全なブレーキのための最小ジャーク減速度。 | -| `max\_acc` | double | [m/s^2] 安全なブレーキのための最小加速度減速度。 | - -| パラメーター /ignore_momentary_detection | タイプ | 説明 | -|------------------------------------------|-----------|-----------------------------------------------------------------| -| `enable` | bool |[-] 一時的な検出を無視するかどうか | -| `time_threshold` | double | [秒] この期間より短い検出を無視する | +| `use_partition_lanelet` | ブール | [-] 分割laneletマップデータを使用するかどうか | +| `specify_decel_jerk` | ブール | [-] 自車が減速するときのジャークを指定するかどうか | +| `stop_margin` | double | [m] 車両はこのマージンを保持して停止できるよう減速します | +| `passing_margin` | double | [m] 障害物より先に予測位置にある車両の前方が障害物 + このマージンに達したときに車両の加速を開始します | +| `deceleration_jerk` | double | [m/s^3] 障害物のために停止するときに自車がこのジャークで減速します | +| `detection_distance` | double | [m] 自車の前方距離から障害物を検出します | +| `detection_span` | double | [m] 計算時間を短縮するために、この間隔で衝突を計算します | +| `min_vel_ego_kmph` | double | [km/h] 衝突までの時間を計算するための最小速度 | + +| パラメータ /detection_area | 型 | 説明 | +| -------------------------- | ------ | ---------------------------------- | +| `margin_ahead` | double | 検出エリア多角形の前方マージン [m] | +| `margin_behind` | double | 検出エリア多角形の後方マージン [m] | + +| パラメータ | タイプ | 説明 | +| ------------------------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------- | +| `use_mandatory_area` | double | [-] 強制検出領域を使用するかどうか | +| `assume_fixed_velocity.enable` | double | [-] 有効な場合、障害物の速度は以下に指定した最小速度と最大速度の範囲内と見なされます | +| `assume_fixed_velocity.min_vel_kmph` | double | [km/h] 動的障害物の最小速度 | +| `assume_fixed_velocity.max_vel_kmph` | double | [km/h] 動的障害物の最大速度 | +| `diameter` | double | [m] 障害物の直径。ポイントから動的障害物を作成するために使用されます | +| `height` | double | [m] 障害物の高さ。ポイントから動的障害物を作成するために使用されます | +| `max_prediction_time` | double | [秒] この時間まで予測経路を作成します | +| `time_step` | double | [秒] 各パスステップのタイムステップ。パスを含まないポイントまたはオブジェクトから動的障害物を作成するために使用されます | +| `points_interval` | double | [m] この間隔で障害物ポイントをグループに分割し、最も近くにある横方向のポイントのみを検出します。ポイントメソッドでのみ使用されます | + +| パラメータ /approaching | タイプ | 説明 | +| ----------------------- | ------ | ------------------------------------- | +| `enable` | bool | [-] 停止後に接近を有効にするかどうか | +| `margin` | double | [m] 自車が障害物に接近する方法の距離 | +| `limit_vel_kmph` | double | [km/h] 停止後に接近するための速度制限 | + +| パラメータ/状態 | 型 | 説明 | +| ------------------------ | ------ | -------------------------------------------------------------------- | +| `stop_thresh` | double | [m/s] エゴが停止状態であると判定するための閾値 | +| `stop_time_thresh` | double | [sec] 停止状態から接近状態に移行するための停止時間閾値 | +| `disable_approach_dist` | double | [m] 障害物との距離がこの値より長い場合に接近状態を終了する | +| `keep_approach_duration` | double | [sec] 状態遷移のチャタリングを避けるため、接近状態をこの期間保持する | + +| パラメータ /slow_down_limit | 型 | 説明 | +| --------------------------- | ------ | -------------------------------------------------- | +| `enable` | bool | [-] 最大ジャークと加速度で速度を制限するかどうか | +| `max\_jerk` | double | [m/s^3] 安全なブレーキのための最小ジャーク減速度。 | +| `max\_acc` | double | [m/s^2] 安全なブレーキのための最小加速度減速度。 | + +| パラメーター /ignore_momentary_detection | タイプ | 説明 | +| ---------------------------------------- | ------ | ----------------------------------- | +| `enable` | bool | [-] 一時的な検出を無視するかどうか | +| `time_threshold` | double | [秒] この期間より短い検出を無視する | ### 今後の拡張 / 未実装の部分 @@ -230,4 +228,3 @@ APPROACH --> APPROACH : Approach duration is less than threshold - ポリゴンオブジェクトとの衝突を検出する - 障害物の予測経路が直線でない場合の処理 - 現在、衝突チェックは障害物の予測経路が直線であるという仮定に基づいて計算されています - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_speed_bump_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_speed_bump_module/README.md index ad175ccd44a2..8433a0579bb0 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_speed_bump_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_speed_bump_module/README.md @@ -12,22 +12,22 @@ ### モジュールパラメーター -| パラメーター | 型 | 説明 | -| ------------------- | ------ | ------------------------------------------------------- | -| `slow_start_margin` | double | 車両が減速帯手前で減速するための [m] マージン | +| パラメーター | 型 | 説明 | +| ------------------- | ------ | ----------------------------------------------- | +| `slow_start_margin` | double | 車両が減速帯手前で減速するための [m] マージン | | `slow_end_margin` | double | 車両が減速帯通過後に加速するための [m] マージン | -| `print_debug_info` | bool | デバッグ情報を印刷するか否か | +| `print_debug_info` | bool | デバッグ情報を印刷するか否か | #### 速度計算 - 段差の高さおよび減速速度の限界を使用して一次方程式を作成する -| パラメータ | 型 | 説明 | -| ------------ | ------ | ------------------------------------------------- | -| `min_height` | double | [m] スピードバンプの低さの最低想定値 | -| `max_height` | double | [m] スピードバンプの高さの最高想定値 | -| `min_speed` | double | [m/s] 減速速度の最低想定値 | -| `max_speed` | double | [m/s] 減速速度の最高想定値 | +| パラメータ | 型 | 説明 | +| ------------ | ------ | ------------------------------------ | +| `min_height` | double | [m] スピードバンプの低さの最低想定値 | +| `max_height` | double | [m] スピードバンプの高さの最高想定値 | +| `min_speed` | double | [m/s] 減速速度の最低想定値 | +| `max_speed` | double | [m/s] 減速速度の最高想定値 | ### 内部動作 / アルゴリズム @@ -49,4 +49,3 @@ ### 今後の作業 - [こちら](https://journals.sagepub.com/doi/10.1155/2014/736576) の記事では、バンプのモデリング手法が提案されています。これは、バンプを円に当てはめて、半径を計算するという簡単なものです。最近のインプリメンテーションでは、速度の計算はバンプの高さだけに基づいていますが、将来はより現実的な結果を得るために、この手法を適用する予定です。 - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/README.md index 49643da8f71e..a4475ef990e7 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/README.md @@ -12,13 +12,13 @@ ### モジュールパラメータ -| パラメータ | タイプ | 説明 | -| -------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `stop_margin` | 倍精度 | 車両が停止線前に停止しようとするマージン | -| `stop_duration_sec` | 倍精度 | [秒] 自己車両が停止線の前で停止する時間パラメータ | +| パラメータ | タイプ | 説明 | +| -------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `stop_margin` | 倍精度 | 車両が停止線前に停止しようとするマージン | +| `stop_duration_sec` | 倍精度 | [秒] 自己車両が停止線の前で停止する時間パラメータ | | `hold_stop_margin_distance` | 倍精度 | [メートル] 再始動防止パラメータ(アルゴリズムセクションを参照)。また、自己車両がこの距離より停止線に近い場合、自己状態は接近から停止に変わります | -| `use_initialization_stop_state` | ブール | 車両が停止線から離れる場合に接近状態に戻すかどうかを決定するフラグ | -| `show_stop_line_collision_check` | ブール | 停止線との衝突チェックのデバッグ情報を表示するかどうかを決定するフラグ | +| `use_initialization_stop_state` | ブール | 車両が停止線から離れる場合に接近状態に戻すかどうかを決定するフラグ | +| `show_stop_line_collision_check` | ブール | 停止線との衝突チェックのデバッグ情報を表示するかどうかを決定するフラグ | ### 内部動作 / アルゴリズム @@ -29,7 +29,6 @@ #### フローチャート - ```plantuml @startuml title modifyPathVelocity @@ -110,4 +109,3 @@ stop ![example](docs/keep_stopping.svg){width=1000}
hold_stop_margin_distance の内部
- diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_template_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_template_module/README.md index 286680304418..2329d1bb3867 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_template_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_template_module/README.md @@ -72,7 +72,6 @@ 次の例では、パスの各点を取得して 2 倍にします。つまり、速度を複製します。すべてのビヘイビア速度モジュールが実行された後、Velocity Smoother がパス速度をさらに変更することに注意してください。 - ```cpp bool TemplateModule::modifyPathVelocity( [[maybe_unused]] PathWithLaneId * path, [[maybe_unused]] StopReason * stop_reason) @@ -84,4 +83,3 @@ bool TemplateModule::modifyPathVelocity( return false; } ``` - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/README.md index fb989a5a941e..e16da19adaa9 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/README.md @@ -63,17 +63,16 @@ #### モジュールパラメータ -| パラメータ | 型 | 説明 | -|---|---|---| -| `stop_margin` | double | [m] 停止点手前の余裕 | -| `tl_state_timeout` | double | [s] 検出された信号機の結果のタイムアウト | +| パラメータ | 型 | 説明 | +| ---------------------- | ------ | ---------------------------------------------------------- | +| `stop_margin` | double | [m] 停止点手前の余裕 | +| `tl_state_timeout` | double | [s] 検出された信号機の結果のタイムアウト | | `stop_time_hysteresis` | double | [s] チャタリング防止のための停止計画の決定に関する時間閾値 | -| `yellow_lamp_period` | double | [s] 黄色のランプ時間 | -| `enable_pass_judge` | bool | [-] 通過判定を使用するかどうか | +| `yellow_lamp_period` | double | [s] 黄色のランプ時間 | +| `enable_pass_judge` | bool | [-] 通過判定を使用するかどうか | #### フローチャート - ```plantuml @startuml title modifyPathVelocity @@ -117,4 +116,3 @@ endif ##### 既知の限界 - 現在確認中 - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/README.md index 07e7e9ff796b..55d778375155 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/README.md @@ -27,7 +27,6 @@ ### システム構成図 - ```plantuml @startuml !theme cerulean-outline @@ -110,7 +109,6 @@ FMS: 複数の車両が運用中で関連レーンの占有がある場合の交 FMS: フリートマネジメントシステム - ```plantuml @startuml !theme cerulean-outline @@ -210,19 +208,19 @@ remote_controllable_traffic_light -[hidden]down-> warning_light ## 自動運転ソフトウェア パラメータ -| パラメータ | 型 | 説明 | -|---|---|---| -| `max_delay_sec` | double | [秒] コマンドの最大許容遅延 | -| `near_line_distance` | double | [m] 停車線を停止するために停止線までの距離のしきい値 | -| `dead_line_margin` | double | [m] このモジュールが停止線を挿入し続けるしきい値 | -| `hold_stop_margin_distance` | double | [m] 再起動防止のパラメータ(以降のセクションを参照) | -| `check_timeout_after_stop_line` | bool | [-] リンクが切断されたときに停止するタイムアウトの確認 | +| パラメータ | 型 | 説明 | +| ------------------------------- | ------ | ------------------------------------------------------ | +| `max_delay_sec` | double | [秒] コマンドの最大許容遅延 | +| `near_line_distance` | double | [m] 停車線を停止するために停止線までの距離のしきい値 | +| `dead_line_margin` | double | [m] このモジュールが停止線を挿入し続けるしきい値 | +| `hold_stop_margin_distance` | double | [m] 再起動防止のパラメータ(以降のセクションを参照) | +| `check_timeout_after_stop_line` | bool | [-] リンクが切断されたときに停止するタイムアウトの確認 | #### 再始動防止 車両の制御性能が低下するために、車両の動き始め時に停止するのに X メートル(例: 0.5 メートル)を要する場合、車両は停止点に近づこうとして動き始めるときは厳守すべき停止位置を超過します(例: 0.3 メートル距離)。 -このモジュールには、これらの余分な再始動を防止するためのパラメータ `hold_stop_margin_distance` があります。車両がモジュールの停止位置(_front_to_stop_line < hold_stop_margin_distance)から `hold_stop_margin_distance` メーター以内に停止した場合、モジュールは車両がモジュールの停止位置で既に停止していると判断し、他の要素により車両が停止した場合にも、現在の位置で停止し続けることを計画します。 +このモジュールには、これらの余分な再始動を防止するためのパラメータ `hold_stop_margin_distance` があります。車両がモジュールの停止位置(\_front_to_stop_line < hold_stop_margin_distance)から `hold_stop_margin_distance` メーター以内に停止した場合、モジュールは車両がモジュールの停止位置で既に停止していると判断し、他の要素により車両が停止した場合にも、現在の位置で停止し続けることを計画します。
![例](docs/restart_prevention.svg){width=1000} @@ -241,7 +239,6 @@ remote_controllable_traffic_light -[hidden]down-> warning_light #### フローチャート - ```plantuml @startuml !theme cerulean-outline @@ -302,4 +299,3 @@ $$ #### 制限事項 - 未定 - diff --git a/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/README.md b/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/README.md index 954314cc0c4c..c4007a704ccf 100644 --- a/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/README.md +++ b/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/README.md @@ -3,4 +3,3 @@ ### 役割 このモジュールは、自車が私有地に進入または離脱するために横断歩道を含む横断施設を横断する前に停止することを決定します。 - diff --git a/planning/motion_velocity_planner/autoware_motion_velocity_dynamic_obstacle_stop_module/README.md b/planning/motion_velocity_planner/autoware_motion_velocity_dynamic_obstacle_stop_module/README.md index 2ce0267a35fa..f50618902bf5 100644 --- a/planning/motion_velocity_planner/autoware_motion_velocity_dynamic_obstacle_stop_module/README.md +++ b/planning/motion_velocity_planner/autoware_motion_velocity_dynamic_obstacle_stop_module/README.md @@ -79,15 +79,14 @@ ### モジュールパラメータ -| パラメーター | タイプ | 説明 | -| ---------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------- | -| `extra_object_width` | double | [m] 検出したオブジェクト周辺の余分な幅 | -| `minimum_object_velocity` | double | [m/s] この値以下の速度のオブジェクトは無視されます | -| `stop_distance_buffer` | double | [m] 停止点と衝突点の間に追加する余分な距離 | -| `time_horizon` | double | [s] 衝突チェックに使用される時間的視野 | -| `hysteresis` | double | [m] 衝突が検出されると、このヒステリシスが衝突検出に使用されます | -| `add_stop_duration_buffer` | double | [s] 停止の判断が追加される前に、衝突が継続的に検出されなければならない時間 | -| `remove_stop_duration_buffer` | double | [s] 衝突が検出されなくなってから停止の判断が削除されるまでの時間 | -| `minimum_object_distance_from_ego_trajectory` | double | [m] 衝突を考慮する場合の、自己軌跡とオブジェクトの足跡間の最小距離 | -| `ignore_unavoidable_collisions` | bool | [-] trueの場合、停止では回避できない衝突を無視します(障害物が直進し続けると仮定した場合) | - +| パラメーター | タイプ | 説明 | +| --------------------------------------------- | ------ | ------------------------------------------------------------------------------------------ | +| `extra_object_width` | double | [m] 検出したオブジェクト周辺の余分な幅 | +| `minimum_object_velocity` | double | [m/s] この値以下の速度のオブジェクトは無視されます | +| `stop_distance_buffer` | double | [m] 停止点と衝突点の間に追加する余分な距離 | +| `time_horizon` | double | [s] 衝突チェックに使用される時間的視野 | +| `hysteresis` | double | [m] 衝突が検出されると、このヒステリシスが衝突検出に使用されます | +| `add_stop_duration_buffer` | double | [s] 停止の判断が追加される前に、衝突が継続的に検出されなければならない時間 | +| `remove_stop_duration_buffer` | double | [s] 衝突が検出されなくなってから停止の判断が削除されるまでの時間 | +| `minimum_object_distance_from_ego_trajectory` | double | [m] 衝突を考慮する場合の、自己軌跡とオブジェクトの足跡間の最小距離 | +| `ignore_unavoidable_collisions` | bool | [-] trueの場合、停止では回避できない衝突を無視します(障害物が直進し続けると仮定した場合) | diff --git a/planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/README.md b/planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/README.md index 8dab87014fa3..c09acc7445c6 100644 --- a/planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/README.md +++ b/planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/README.md @@ -128,7 +128,7 @@ レーンレットマップは常に障害物をチェックしていますが、他のソースはパラメーター `obstacles.dynamic_source` を使用して切り替えられます。 -フットプリントと交差する障害物を効率的に探すために、それらは R-ツリー ([https://www.boost.org/doc/libs/1_80_0/libs/geometry/doc/html/geometry/reference/spatial_indexes/boost__geometry__index__rtree.html](https://www.boost.org/doc/libs/1_80_0/libs/geometry/doc/html/geometry/reference/spatial_indexes/boost__geometry__index__rtree.html)) に格納されます。 +フットプリントと交差する障害物を効率的に探すために、それらは R-ツリー ([https://www.boost.org/doc/libs/1_80_0/libs/geometry/doc/html/geometry/reference/spatial_indexes/boost**geometry**index\_\_rtree.html](https://www.boost.org/doc/libs/1_80_0/libs/geometry/doc/html/geometry/reference/spatial_indexes/boost__geometry__index__rtree.html)) に格納されます。 2 つのツリーが使用されます。1 つは障害物点用で、1 つは障害物ラインストリング用です (R-ツリーを簡素化するために、ラインストリングはセグメントに分解されます)。 #### オブスタクルマスク @@ -200,27 +200,27 @@ $velocity = \frac{dist\_to\_collision}{min\_ttc}$ ## パラメータ -| 名前 | 型 | 説明 | -|---|---|---| -| `min_ttc` | float | 各軌跡点で一定の向きと速度を想定した場合、衝突しないために必要な最低時間 [秒] | -| `distance_buffer` | float | 障害物との必要な距離バッファ [m] | -| `min_adjusted_velocity` | float | このノードが設定できる最小調整速度 [m/s] | -| `max_deceleration` | float | 調整速度が発生させることができる最大減速 [m/s²] | -| `trajectory_preprocessing.start_distance` | float | 軌道の一部 (現在の自車位置に対する相対距離) から速度を調整するコントロールの開始点 [m] | -| `trajectory_preprocessing.max_length` | float | 速度を調整する最大距離 (`start_distance` から開始) [m] | -| `trajectory_preprocessing.max_distance` | float | 速度を調整する最大時間 (`start_distance` から測定) [秒] | -| `trajectory_preprocessing.downsample_factor` | int | 軌跡のダウンサンプリング係数。精度と性能のトレードオフに使用できます。 | -| `trajectory_preprocessing.calculate_steering_angle` | bool | True の場合、軌跡メッセージの操舵角は使用されず、再計算されます。 | -| `simulation.model` | string | シミュレーションに使用するモデル。 "particle" か "bicycle" のいずれか。 | -| `simulation.distance_method` | string | 衝突までの距離の計算に使用するメソッド。 "exact" か "approximation" のいずれか。 | -| `simulation.steering_offset` | float | bicycle モデルで使用する操舵の周りにオフセット。 | -| `simulation.nb_points` | int | bicycle モデルでモーションをシミュレートするために使用するポイント数。 | -| `obstacles.dynamic_source` | string | 障害物チェックに使用される動的障害物のソース。 "occupancy_grid"、"point_cloud"、または "static_only" (動的障害物なし) のいずれか。 | -| `obstacles.occupancy_grid_threshold` | int | 占用グリッドでセルが障害物と見なされる値。 | -| `obstacles.dynamic_obstacles_buffer` | float | 障害物マスク時に障害物の周りに使用するバッファ。ノイズを防ぎます。 | -| `obstacles.dynamic_obstacles_min_vel` | float | 動的障害物をマスクする最小速度。 | -| `obstacles.static_map_tags` | 文字列リスト | このタグを持つレーンのマップの直線は障害物として使用されます。 | -| `obstacles.filter_envelope` | bool | 安全エンベロープを使用して動的障害物ソースをフィルタリングするかどうか。 | +| 名前 | 型 | 説明 | +| --------------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------- | +| `min_ttc` | float | 各軌跡点で一定の向きと速度を想定した場合、衝突しないために必要な最低時間 [秒] | +| `distance_buffer` | float | 障害物との必要な距離バッファ [m] | +| `min_adjusted_velocity` | float | このノードが設定できる最小調整速度 [m/s] | +| `max_deceleration` | float | 調整速度が発生させることができる最大減速 [m/s²] | +| `trajectory_preprocessing.start_distance` | float | 軌道の一部 (現在の自車位置に対する相対距離) から速度を調整するコントロールの開始点 [m] | +| `trajectory_preprocessing.max_length` | float | 速度を調整する最大距離 (`start_distance` から開始) [m] | +| `trajectory_preprocessing.max_distance` | float | 速度を調整する最大時間 (`start_distance` から測定) [秒] | +| `trajectory_preprocessing.downsample_factor` | int | 軌跡のダウンサンプリング係数。精度と性能のトレードオフに使用できます。 | +| `trajectory_preprocessing.calculate_steering_angle` | bool | True の場合、軌跡メッセージの操舵角は使用されず、再計算されます。 | +| `simulation.model` | string | シミュレーションに使用するモデル。 "particle" か "bicycle" のいずれか。 | +| `simulation.distance_method` | string | 衝突までの距離の計算に使用するメソッド。 "exact" か "approximation" のいずれか。 | +| `simulation.steering_offset` | float | bicycle モデルで使用する操舵の周りにオフセット。 | +| `simulation.nb_points` | int | bicycle モデルでモーションをシミュレートするために使用するポイント数。 | +| `obstacles.dynamic_source` | string | 障害物チェックに使用される動的障害物のソース。 "occupancy_grid"、"point_cloud"、または "static_only" (動的障害物なし) のいずれか。 | +| `obstacles.occupancy_grid_threshold` | int | 占用グリッドでセルが障害物と見なされる値。 | +| `obstacles.dynamic_obstacles_buffer` | float | 障害物マスク時に障害物の周りに使用するバッファ。ノイズを防ぎます。 | +| `obstacles.dynamic_obstacles_min_vel` | float | 動的障害物をマスクする最小速度。 | +| `obstacles.static_map_tags` | 文字列リスト | このタグを持つレーンのマップの直線は障害物として使用されます。 | +| `obstacles.filter_envelope` | bool | 安全エンベロープを使用して動的障害物ソースをフィルタリングするかどうか。 | ## 仮定 / 制約 @@ -240,4 +240,3 @@ $velocity = \frac{dist\_to\_collision}{min\_ttc}$ ## (オプション) 参照 / 外部リンク ## (オプション) 今後の拡張 / 実装されていない部分 - diff --git a/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/README.md b/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/README.md index fb1cc55fa69d..87e91512e689 100644 --- a/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/README.md +++ b/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/README.md @@ -52,8 +52,8 @@ - パラメータ`cut_predicted_paths_beyond_red_lights`が`true`に設定されている場合は、赤信号の停止線を超える予測パスのポイントをカットします。 | `cut_predicted_paths_beyond_red_lights = false` | `cut_predicted_paths_beyond_red_lights = true` | -| :----------------------------------------------------: | :---------------------------------------------------: | -| ![](./docs/path_green_light.png) | ![](./docs/path_red_light.png) | +| :---------------------------------------------: | :--------------------------------------------: | +| ![](./docs/path_green_light.png) | ![](./docs/path_red_light.png) | デバッグ可視化では、予測パスは緑、赤信号の停止線は赤で表示されます。 @@ -99,41 +99,40 @@ ## モジュールパラメータ -| パラメータ | 型 | 説明 | -| ---------------- | ---- | ---------------------------------------- | -| `mode` | 文字列 | 動的対象の考慮に使用するモード。候補: threshold, intervals, ttc | +| パラメータ | 型 | 説明 | +| ----------------------------- | -------- | -------------------------------------------------------------------------- | +| `mode` | 文字列 | 動的対象の考慮に使用するモード。候補: threshold, intervals, ttc | | `skip_if_already_overlapping` | ブール値 | 真の場合、自車が既に他の車線と重複している場合、このモジュールを実行しない | -| `max_arc_length` | double | 車線逸脱衝突の確認に使用される最大軌跡弧長 | +| `max_arc_length` | double | 車線逸脱衝突の確認に使用される最大軌跡弧長 | -| パラメータ/しきい値 | 型 | 説明 | -| -------------------- | ------ | ---------------------------------------------------------------- | -| `time_threshold` | double | [s] この時間内に重なりが生じる可能性のあるオブジェクトを考慮する | +| パラメータ/しきい値 | 型 | 説明 | +| ------------------- | ------ | ---------------------------------------------------------------- | +| `time_threshold` | double | [s] この時間内に重なりが生じる可能性のあるオブジェクトを考慮する | -| Parameter /ttc | Type | Description | -| -------------- | ------ | ----------------------------------------------------------------------------------------------------- | +| Parameter /ttc | Type | Description | +| -------------- | ------ | -------------------------------------------------------------------------------------- | | `threshold` | double | egoが重なっている間に、この値よりも推定衝突時間(TTC)が短いオブジェクトを考慮します。 | -| パラメータ / オブジェクト | データ型 | 説明 | -|---|---|---| -| `minimum_velocity` | double | [m/s] この値以下の速度のオブジェクトを無視 | -| `predicted_path_min_confidence` | double | [-] 予測パスが有効と見なされるための最小信頼度 | -| `cut_predicted_paths_beyond_red_lights` | bool | [-] trueの場合、赤信号の停止線の向こう側の予測パスは切断 | -| `ignore_behind_ego` | bool | [-] trueの場合、自車後方のオブジェクトは無視 | - -| パラメータ/アクション | タイプ | 説明 | -| -------------------------------- | ------ | ------------------------------------------------------------------------ | -| `precision` | double | 停止点を軌跡に挿入するときの[m]精度 | -| `longitudinal_distance_buffer` | double | 自車の前方に保持する[m]の安全距離バッファ | -| `lateral_distance_buffer` | double | 自車の側面に保持する[m]の安全距離バッファ | -| `min_duration` | double | 決定をキャンセルできるようになるまでに必要な[s]の最小継続時間 | -| `slowdown.distance_threshold` | double | オーバーラップからこの距離よりも近づいたときに減速を挿入する | -| `slowdown.velocity` | double | 減速速度 | -| `stop.distance_threshold` | double | オーバーラップからこの距離よりも近づいたときに停止を挿入する | - -| パラメータ/自車 | タイプ | 説明 | -| ---------------- | ----- | ---------------------------------------------------- | +| パラメータ / オブジェクト | データ型 | 説明 | +| --------------------------------------- | -------- | -------------------------------------------------------- | +| `minimum_velocity` | double | [m/s] この値以下の速度のオブジェクトを無視 | +| `predicted_path_min_confidence` | double | [-] 予測パスが有効と見なされるための最小信頼度 | +| `cut_predicted_paths_beyond_red_lights` | bool | [-] trueの場合、赤信号の停止線の向こう側の予測パスは切断 | +| `ignore_behind_ego` | bool | [-] trueの場合、自車後方のオブジェクトは無視 | + +| パラメータ/アクション | タイプ | 説明 | +| ------------------------------ | ------ | ------------------------------------------------------------- | +| `precision` | double | 停止点を軌跡に挿入するときの[m]精度 | +| `longitudinal_distance_buffer` | double | 自車の前方に保持する[m]の安全距離バッファ | +| `lateral_distance_buffer` | double | 自車の側面に保持する[m]の安全距離バッファ | +| `min_duration` | double | 決定をキャンセルできるようになるまでに必要な[s]の最小継続時間 | +| `slowdown.distance_threshold` | double | オーバーラップからこの距離よりも近づいたときに減速を挿入する | +| `slowdown.velocity` | double | 減速速度 | +| `stop.distance_threshold` | double | オーバーラップからこの距離よりも近づいたときに停止を挿入する | + +| パラメータ/自車 | タイプ | 説明 | +| -------------------- | ------ | --------------------------------------- | | `extra_front_offset` | double | 自車フットプリントに追加する前方距離[m] | -| `extra_rear_offset` | double | 自車フットプリントに追加する後方距離[m] | -| `extra_left_offset` | double | 自車フットプリントに追加する左側距離[m] | +| `extra_rear_offset` | double | 自車フットプリントに追加する後方距離[m] | +| `extra_left_offset` | double | 自車フットプリントに追加する左側距離[m] | | `extra_right_offset` | double | 自車フットプリントに追加する右側距離[m] | - diff --git a/planning/motion_velocity_planner/autoware_motion_velocity_planner_node/README.md b/planning/motion_velocity_planner/autoware_motion_velocity_planner_node/README.md index ea4471907a62..57643122af40 100644 --- a/planning/motion_velocity_planner/autoware_motion_velocity_planner_node/README.md +++ b/planning/motion_velocity_planner/autoware_motion_velocity_planner_node/README.md @@ -17,56 +17,61 @@ ## 入力トピック -| 名称 | 型 | 説明 | -| ------------------------------- | ----------------------------------------------- | ---------------------------- | -| `~/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 入力軌道 | -| `~/input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップ | -| `~/input/vehicle_odometry` | `nav_msgs::msg::Odometry` | 自車位置と速度 | -| `~/input/accel` | `geometry_msgs::msg::AccelWithCovarianceStamped` | 自車加速度 | -| `~/input/dynamic_objects` | `autoware_perception_msgs::msg::PredictedObjects` | 動的オブジェクト | -| `~/input/no_ground_pointcloud` | `sensor_msgs::msg::PointCloud2` | 障害物点群 | -| `~/input/traffic_signals` | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 交通信号状態 | -| `~/input/virtual_traffic_light_states` | `tier4_v2x_msgs::msg::VirtualTrafficLightStateArray` | 仮想交通信号状態 | -| `~/input/occupancy_grid` | `nav_msgs::msg::OccupancyGrid` | オキュパンシグリッド | +| 名称 | 型 | 説明 | +| -------------------------------------- | ------------------------------------------------------- | -------------------- | +| `~/input/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 入力軌道 | +| `~/input/vector_map` | `autoware_map_msgs::msg::LaneletMapBin` | ベクターマップ | +| `~/input/vehicle_odometry` | `nav_msgs::msg::Odometry` | 自車位置と速度 | +| `~/input/accel` | `geometry_msgs::msg::AccelWithCovarianceStamped` | 自車加速度 | +| `~/input/dynamic_objects` | `autoware_perception_msgs::msg::PredictedObjects` | 動的オブジェクト | +| `~/input/no_ground_pointcloud` | `sensor_msgs::msg::PointCloud2` | 障害物点群 | +| `~/input/traffic_signals` | `autoware_perception_msgs::msg::TrafficLightGroupArray` | 交通信号状態 | +| `~/input/virtual_traffic_light_states` | `tier4_v2x_msgs::msg::VirtualTrafficLightStateArray` | 仮想交通信号状態 | +| `~/input/occupancy_grid` | `nav_msgs::msg::OccupancyGrid` | オキュパンシグリッド | ## 出力トピック -| 名称 | タイプ | 説明 | -|---|---|---| -| `~/output/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 速度プロファイルを更新したエゴトラジェクトリ | -| `~/output/velocity_factors` | `autoware_adapi_v1_msgs::msg::VelocityFactorsArray` | エゴの速度プロファイルを変化させる要因 | +| 名称 | タイプ | 説明 | +| --------------------------- | --------------------------------------------------- | -------------------------------------------- | +| `~/output/trajectory` | `autoware_planning_msgs::msg::Trajectory` | 速度プロファイルを更新したエゴトラジェクトリ | +| `~/output/velocity_factors` | `autoware_adapi_v1_msgs::msg::VelocityFactorsArray` | エゴの速度プロファイルを変化させる要因 | ## サービス ### Planning + - self-localization: `current pose` の更新 - behavior-planning: `trajectory` の生成 - trajectory-planning: `trajectory` の追従制御 - perception: 感知データの提供 ### Control + - steering-control: ステアリング制御 - braking-control: ブレーキ制御 - throttle-control: アクセル制御 ### Mapping + - map: 地図データの提供 ### Monitoring + - system-monitoring: システム状態の監視 ### Visualization + - visualization: 各種情報の可視化 -| 名前 | 種類 | 説明 | -|---|---|---| -| `~/service/load_plugin` | autoware_motion_velocity_planner_node::srv::LoadPlugin | プラグインのロードをリクエスト | +| 名前 | 種類 | 説明 | +| ------------------------- | -------------------------------------------------------- | ---------------------------------- | +| `~/service/load_plugin` | autoware_motion_velocity_planner_node::srv::LoadPlugin | プラグインのロードをリクエスト | | `~/service/unload_plugin` | autoware_motion_velocity_planner_node::srv::UnloadPlugin | プラグインのアンロードをリクエスト | ## ノードパラメータ -| パラメータ | 型 | 説明 | -| ---------------- | ---------------- | ---------------------- | +| パラメータ | 型 | 説明 | +| ---------------- | ---------------- | ------------------------ | | `launch_modules` | vector\ | 起動するモジュールの名前 | 加えて、以下のパラメータをノードに提供する必要があります。 @@ -76,4 +81,3 @@ - [一般的なPlanningパラメータ](https://github.com/autowarefoundation/autoware_launch/blob/main/autoware_launch/config/planning/scenario_planning/common/common.param.yaml) - [Smootherパラメータ](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_velocity_smoother/#parameters) - ロードされる各プラグインのパラメータ - diff --git a/planning/sampling_based_planner/autoware_bezier_sampler/README.md b/planning/sampling_based_planner/autoware_bezier_sampler/README.md index e038eaa0a745..9caa170f5934 100644 --- a/planning/sampling_based_planner/autoware_bezier_sampler/README.md +++ b/planning/sampling_based_planner/autoware_bezier_sampler/README.md @@ -1,4 +1,3 @@ ## ベジエサンプラー このドキュメントでは、ベジエ曲線とその生成に関する実装について説明します。サンプリング戦略は [IEEE](https://ieeexplore.ieee.org/document/8932495) に掲載された論文に従っています。 - diff --git a/planning/sampling_based_planner/autoware_frenet_planner/README.md b/planning/sampling_based_planner/autoware_frenet_planner/README.md index d0d0a8368932..88862895c985 100644 --- a/planning/sampling_based_planner/autoware_frenet_planner/README.md +++ b/planning/sampling_based_planner/autoware_frenet_planner/README.md @@ -5,4 +5,3 @@ ## 説明 [オリジナル論文](https://www.researchgate.net/publication/224156269_Optimal_Trajectory_Generation_for_Dynamic_Street_Scenarios_in_a_Frenet_Frame) - diff --git a/planning/sampling_based_planner/autoware_path_sampler/README.md b/planning/sampling_based_planner/autoware_path_sampler/README.md index 3c77c6d81e20..b7f695ffc66a 100644 --- a/planning/sampling_based_planner/autoware_path_sampler/README.md +++ b/planning/sampling_based_planner/autoware_path_sampler/README.md @@ -19,11 +19,11 @@ ### 入力 -| 名前 | タイプ | 説明 | -| ------------------ | --------------------------------------------- | -------------------------------------------------- | +| 名前 | タイプ | 説明 | +| ------------------ | --------------------------------------------- | ------------------------------ | | `~/input/path` | autoware_planning_msgs/msg/Path | 基準経路と対応する走行可能領域 | -| `~/input/odometry` | nav_msgs/msg/Odometry | 自車位置の現在の状態 | -| `~/input/objects` | autoware_perception_msgs/msg/PredictedObjects | 回避すべきオブジェクト | +| `~/input/odometry` | nav_msgs/msg/Odometry | 自車位置の現在の状態 | +| `~/input/objects` | autoware_perception_msgs/msg/PredictedObjects | 回避すべきオブジェクト | ### 自動運転ソフトウェアのドキュメント @@ -31,11 +31,11 @@ Planning コンポーネントは、センシングと知覚から得られた環境情報を使用して、車両の経路を計画しています。 Planning モジュールは、以下のタスクを実行します。 -* 自車位置の確立 -* 障害物の検出と分類 -* 目的地の決定 -* 経路の計画 -* 経路の追跡 +- 自車位置の確立 +- 障害物の検出と分類 +- 目的地の決定 +- 経路の計画 +- 経路の追跡 Planning コンポーネントは、センサーからのリアルタイムデータを処理して、車両の周囲を正確に把握しています。この情報は、衝突回避や効率的なルートプランニングのために使用されています。 @@ -43,10 +43,10 @@ Planning コンポーネントは、センサーからのリアルタイムデ Motion Planning モジュールは、Planning コンポーネントが生成した経路に基づいて、車両の動きを制御しています。 Motion Planning モジュールは、以下のタスクを実行します。 -* 車両の運動学モデルの確立 -* 経路追従の生成 -* 経路追従エラーの最小化 -* 障害物回避の計画 +- 車両の運動学モデルの確立 +- 経路追従の生成 +- 経路追従エラーの最小化 +- 障害物回避の計画 Motion Planning モジュールは、車両の運動学を考慮して、安全かつ効率的な車両の動きを計画しています。このモジュールは、衝突を回避し、快適な乗り心地を提供する最適な軌跡を生成しています。 @@ -54,10 +54,10 @@ Motion Planning モジュールは、車両の運動学を考慮して、安全 Control モジュールは、Motion Planning モジュールが生成した軌跡に基づいて、車両を制御しています。 Control モジュールは、以下のタスクを実行します。 -* ステアリングの制御 -* アクセルの制御 -* ブレーキの制御 -* 横滑り防止制御 +- ステアリングの制御 +- アクセルの制御 +- ブレーキの制御 +- 横滑り防止制御 Control モジュールは、車両のactuatorにシグナルを送信して、車両の実際の動きを計画された軌跡に一致させています。このモジュールは、車両の安定性と安全性を確保しながら、正確な制御を実現しています。 @@ -65,9 +65,9 @@ Control モジュールは、車両のactuatorにシグナルを送信して、 Perception モジュールは、車両の周囲を検知し、障害物を識別しています。 Perception モジュールは、以下のタスクを実行します。 -* センサーデータの収集 -* データの処理とフィルタリング -* 障害物の検出と分類 +- センサーデータの収集 +- データの処理とフィルタリング +- 障害物の検出と分類 Perception モジュールは、レーダー、カメラ、LIDAR などのセンサーからのデータを処理して、車両の周囲の正確な地図を作成しています。この情報は、衝突回避や障害物回避のために使用されています。 @@ -75,9 +75,9 @@ Perception モジュールは、レーダー、カメラ、LIDAR などのセン Localization モジュールは、車両の自車位置と姿勢を決定しています。 Localization モジュールは、以下のタスクを実行します。 -* センサーデータの収集 -* データの処理とフィルタリング -* 自車位置と姿勢の推定 +- センサーデータの収集 +- データの処理とフィルタリング +- 自車位置と姿勢の推定 Localization モジュールは、GPS、IMU、車輪速度センサーなどのセンサーからのデータを処理して、車両の自車位置を正確に特定しています。この情報は、経路プランニングや障害物回避のために使用されています。 @@ -85,10 +85,10 @@ Localization モジュールは、GPS、IMU、車輪速度センサーなどの Health Monitoring モジュールは、システムのヘルス状態を監視しています。 Health Monitoring モジュールは、以下のタスクを実行します。 -* センサーの健康状態の監視 -* データの健全性のチェック -* 障害の検出 -* 復旧メカニズムの起動 +- センサーの健康状態の監視 +- データの健全性のチェック +- 障害の検出 +- 復旧メカニズムの起動 Health Monitoring モジュールは、システムの健全性を確保し、障害が発生した場合に適切な措置を講じています。このモジュールは、システムの信頼性と安全性を向上させています。 @@ -96,10 +96,10 @@ Health Monitoring モジュールは、システムの健全性を確保し、 Safety モジュールは、システムの安全性を確保しています。 Safety モジュールは、以下のタスクを実行します。 -* 障害物逸脱量の監視 -* 加速度逸脱量の監視 -* 速度逸脱量の監視 -* システムのシャットダウン +- 障害物逸脱量の監視 +- 加速度逸脱量の監視 +- 速度逸脱量の監視 +- システムのシャットダウン Safety モジュールは、システムの安全パラメータを監視し、逸脱量が許容範囲を超えた場合にシステムをシャットダウンしています。このモジュールは、乗客と周囲の安全を確保しています。 @@ -107,19 +107,19 @@ Safety モジュールは、システムの安全パラメータを監視し、 Autoware は、オープンソースの自動運転ソフトウェアプラットフォームです。 Autoware は、以下のモジュールを含むコンポーネントベースのアーキテクチャを採用しています。 -* Planning -* Motion Planning -* Control -* Perception -* Localization -* Health Monitoring -* Safety +- Planning +- Motion Planning +- Control +- Perception +- Localization +- Health Monitoring +- Safety Autoware は、自動運転車両の開発を加速化するために設計されており、用途の広い柔軟なプラットフォームを提供しています。 -| 名称 | タイプ | 説明 | -| --------------------- | ------------------------------------- | ----------------------------------------------------------------- | -| `~/output/trajectory` | autoware_planning_msgs/msg/Trajectory | Drivingを実行可能かつ衝突のない生成された軌跡 | +| 名称 | タイプ | 説明 | +| --------------------- | ------------------------------------- | --------------------------------------------- | +| `~/output/trajectory` | autoware_planning_msgs/msg/Trajectory | Drivingを実行可能かつ衝突のない生成された軌跡 | ## アルゴリズム @@ -184,4 +184,3 @@ TODO ## デバッグ方法 TODO - diff --git a/planning/sampling_based_planner/autoware_sampler_common/README.md b/planning/sampling_based_planner/autoware_sampler_common/README.md index 7a77d84b105e..78912bb888e9 100644 --- a/planning/sampling_based_planner/autoware_sampler_common/README.md +++ b/planning/sampling_based_planner/autoware_sampler_common/README.md @@ -2,4 +2,3 @@ Samplerベースのプランナーの共通関数です。 パスや軌跡、強く柔らかい制約、カルテシアンフレームとフロネフレームの変換を表現するためのクラスが含まれます。 - diff --git a/sensing/autoware_gnss_poser/README.md b/sensing/autoware_gnss_poser/README.md index 7f1a682a5add..9c15495429ba 100644 --- a/sensing/autoware_gnss_poser/README.md +++ b/sensing/autoware_gnss_poser/README.md @@ -15,10 +15,10 @@ ### 入力 -| 名称 | タイプ | 説明 | -|---|---|---| -| `/map/map_projector_info` | `tier4_map_msgs::msg::MapProjectorInfo` | 地図投影情報 | -| `~/input/fix` | `sensor_msgs::msg::NavSatFix` | GNSS状態メッセージ | +| 名称 | タイプ | 説明 | +| ------------------------------ | ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `/map/map_projector_info` | `tier4_map_msgs::msg::MapProjectorInfo` | 地図投影情報 | +| `~/input/fix` | `sensor_msgs::msg::NavSatFix` | GNSS状態メッセージ | | `~/input/autoware_orientation` | `autoware_sensing_msgs::msg::GnssInsOrientationStamped` | 姿勢 [詳細はこちら](https://github.com/autowarefoundation/autoware_msgs/tree/main/autoware_sensing_msgs) | ### アウトプット @@ -56,11 +56,11 @@ Path Planning モジュールの制御フローは次のとおりです。 5. 加減速軌道を計算します。 6. 車輌を制御します。 -| 名前 | タイプ | 説明 | -| ------------------------ | ----------------------------------------------- | ------------------------------------------------------------ | -| `~/output/pose` | `geometry_msgs::msg::PoseStamped` | GNSS センシングデータから計算された自車位置 | +| 名前 | タイプ | 説明 | +| ------------------------ | ----------------------------------------------- | ------------------------------------------------------------- | +| `~/output/pose` | `geometry_msgs::msg::PoseStamped` | GNSS センシングデータから計算された自車位置 | | `~/output/gnss_pose_cov` | `geometry_msgs::msg::PoseWithCovarianceStamped` | GNSS センシングデータから計算された、共分散行列を含む自車位置 | -| `~/output/gnss_fixed` | `tier4_debug_msgs::msg::BoolStamped` | GNSS 固定ステータス | +| `~/output/gnss_fixed` | `tier4_debug_msgs::msg::BoolStamped` | GNSS 固定ステータス | ## パラメータ @@ -77,4 +77,3 @@ Path Planning モジュールの制御フローは次のとおりです。 ## (オプション) 参照/外部リンク ## (オプション) 将来の拡張/未実装部分 - diff --git a/sensing/autoware_image_diagnostics/README.md b/sensing/autoware_image_diagnostics/README.md index 5f707d448a66..9234fd0eface 100644 --- a/sensing/autoware_image_diagnostics/README.md +++ b/sensing/autoware_image_diagnostics/README.md @@ -22,9 +22,9 @@ ### 入力 -| 名称 | 型 | 説明 | -| ----------------- | ------------------------- | ----------- | -| `input/raw_image` | `sensor_msgs::msg::Image` | 生画像 | +| 名称 | 型 | 説明 | +| ----------------- | ------------------------- | ------ | +| `input/raw_image` | `sensor_msgs::msg::Image` | 生画像 | ### 出力 @@ -131,13 +131,13 @@ Autowareは継続的に開発されており、以下を含む機能の向上が - より堅牢な障害物検出 - より効率的な経路計画 -| 名前 | タイプ | 説明 | -| ----------------------------------- | --------------------------------------- | ------------------------------------- | -| `image_diag/debug/gray_image` | `sensor_msgs::msg::Image` | グレー画像 | -| `image_diag/debug/dft_image` | `sensor_msgs::msg::Image` | 離散フーリエ変換画像 | -| `image_diag/debug/diag_block_image` | `sensor_msgs::msg::Image` | 各ブロック状態のカラー化 | -| `image_diag/image_state_diag` | `tier4_debug_msgs::msg::Int32Stamped` | 画像診断のステータス値 | -| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断 | +| 名前 | タイプ | 説明 | +| ----------------------------------- | --------------------------------------- | ------------------------ | +| `image_diag/debug/gray_image` | `sensor_msgs::msg::Image` | グレー画像 | +| `image_diag/debug/dft_image` | `sensor_msgs::msg::Image` | 離散フーリエ変換画像 | +| `image_diag/debug/diag_block_image` | `sensor_msgs::msg::Image` | 各ブロック状態のカラー化 | +| `image_diag/image_state_diag` | `tier4_debug_msgs::msg::Int32Stamped` | 画像診断のステータス値 | +| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | 診断 | ## パラメータ @@ -156,4 +156,3 @@ Autowareは継続的に開発されており、以下を含む機能の向上が - 降雨や埃などの、より具体的な画像の歪み / 遮蔽タイプを検討する。 - 光学的な観点からの霧や雨による視界の悪化を検討する - diff --git a/sensing/autoware_image_transport_decompressor/README.md b/sensing/autoware_image_transport_decompressor/README.md index 6f7894bd0d75..83fa60eaddeb 100644 --- a/sensing/autoware_image_transport_decompressor/README.md +++ b/sensing/autoware_image_transport_decompressor/README.md @@ -10,8 +10,8 @@ ### 入力 -| 名前 | 型 | 説明 | -| -------------------------- | ----------------------------------- | ---------------- | +| 名前 | 型 | 説明 | +| -------------------------- | ----------------------------------- | -------- | | `~/input/compressed_image` | `sensor_msgs::msg::CompressedImage` | 圧縮画像 | **自動運転ソフトウェアドキュメント** @@ -37,7 +37,7 @@ Planningコンポーネントは、以下を含むさまざまなアルゴリズムを使用します。 - Dijkstraアルゴリズム -- A*アルゴリズム +- A\*アルゴリズム - Velocity-Obstacle法 - モデル予測制御 @@ -74,9 +74,9 @@ Planningコンポーネントのテストと検証は、以下の方法を使用 - 実車両テスト - 速度逸脱量、加速度逸脱量の監視 -| Name | Type | Description | -| ------------------------ | ---------------------------- | ------------------------------------ | -| `~/output/raw_image` | `sensor_msgs::msg::Image` | 非圧縮画像 | +| Name | Type | Description | +| -------------------- | ------------------------- | ----------- | +| `~/output/raw_image` | `sensor_msgs::msg::Image` | 非圧縮画像 | ## パラメータ @@ -91,4 +91,3 @@ Planningコンポーネントのテストと検証は、以下の方法を使用 ## (任意) 参照 / 外部リンク ## (任意) 将来の拡張 / 未実装部分 - diff --git a/sensing/autoware_imu_corrector/README.md b/sensing/autoware_imu_corrector/README.md index b7a2b57c1550..d07bcd56fd47 100644 --- a/sensing/autoware_imu_corrector/README.md +++ b/sensing/autoware_imu_corrector/README.md @@ -21,8 +21,8 @@ $$ ### 入力 -| 名称 | 型 | 説明 | -| -------- | ----------------------- | ------------ | +| 名称 | 型 | 説明 | +| -------- | ----------------------- | ----------------- | | `~input` | `sensor_msgs::msg::Imu` | 未処理のIMUデータ | ### 自動運転ソフトウェアのドキュメント @@ -63,21 +63,21 @@ Planning コンポーネントは、Autoware の自動運転システムの重 アクターコンポーネントは、制御コンポーネントが生成した制御信号に基づいて車両の作動器を制御する制御コンポーネントのサブコンポーネントです。ステアリングコントローラー、アクセルコントローラー、ブレーキコントローラーなどがあります。 -| 名称 | タイプ | 説明 | -|---|---|---| +| 名称 | タイプ | 説明 | +| --------- | ----------------------- | ----------------- | | `~output` | `sensor_msgs::msg::Imu` | 補正済みIMUデータ | ### パラメータ -| 名称 | タイプ | 説明 | -| --------------------- | ------ | -------------------------------------------- | -| `angular_velocity_offset_x` | double | imu_linkにおけるロール角速度オフセット [rad/s] | -| `angular_velocity_offset_y` | double | imu_linkにおけるピッチ角速度オフセット [rad/s] | -| `angular_velocity_offset_z` | double | imu_linkにおけるヨー角速度オフセット [rad/s] | +| 名称 | タイプ | 説明 | +| ---------------------------- | ------ | ---------------------------------------------- | +| `angular_velocity_offset_x` | double | imu_linkにおけるロール角速度オフセット [rad/s] | +| `angular_velocity_offset_y` | double | imu_linkにおけるピッチ角速度オフセット [rad/s] | +| `angular_velocity_offset_z` | double | imu_linkにおけるヨー角速度オフセット [rad/s] | | `angular_velocity_stddev_xx` | double | imu_linkにおけるロール角速度の標準偏差 [rad/s] | | `angular_velocity_stddev_yy` | double | imu_linkにおけるピッチ角速度の標準偏差 [rad/s] | -| `angular_velocity_stddev_zz` | double | imu_linkにおけるヨー角速度の標準偏差 [rad/s] | -| `acceleration_stddev` | double | imu_linkにおける加速度の標準偏差 [m/s^2] | +| `angular_velocity_stddev_zz` | double | imu_linkにおけるヨー角速度の標準偏差 [rad/s] | +| `acceleration_stddev` | double | imu_linkにおける加速度の標準偏差 [m/s^2] | ## gyro_bias_estimator @@ -87,10 +87,10 @@ Planning コンポーネントは、Autoware の自動運転システムの重 ### 入力 -| 名称 | 種類 | 説明 | -| ----------------- | ----------------------------------------------- | --------- | +| 名称 | 種類 | 説明 | +| ----------------- | ----------------------------------------------- | --------------------- | | `~/input/imu_raw` | `sensor_msgs::msg::Imu` | **未加工** IMU データ | -| `~/input/pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | NDT の自車位置 | +| `~/input/pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | NDT の自車位置 | 入力ポーズは十分に正確であると仮定されています。例えば、NDTを使用する場合、NDTは適切に収束していると仮定します。 @@ -100,18 +100,17 @@ Planning コンポーネントは、Autoware の自動運転システムの重 ### 出力 -| 名称 | タイプ | 説明 | -| -------------------- | ------------------------------------ | ----------------------------- | +| 名称 | タイプ | 説明 | +| -------------------- | ------------------------------------ | ---------------------------------- | | `~/output/gyro_bias` | `geometry_msgs::msg::Vector3Stamped` | ジャイロスコープのバイアス [rad/s] | ### パラメータ このノードは、`imu_corrector.param.yaml`の`angular_velocity_offset_x`、`angular_velocity_offset_y`、`angular_velocity_offset_z`パラメータも使用します。 -| 名前 | 型 | 説明 | -| -------------------------------------| ------ | -------------------------------------------------------------------------------------------------------- | -| `gyro_bias_threshold` | double | ジャイロスコープのバイアスの閾値 [rad/s] | -| `timer_callback_interval_sec` | double | タイマコールバック関数の秒数 [秒] | -| `diagnostics_updater_interval_sec` | double | Diagnostics updater の周期 [秒] | -| `straight_motion_ang_vel_upper_limit` | double | 直線運動と見なさない、ヨー角速度の上限 [rad/s] | - +| 名前 | 型 | 説明 | +| ------------------------------------- | ------ | ---------------------------------------------- | +| `gyro_bias_threshold` | double | ジャイロスコープのバイアスの閾値 [rad/s] | +| `timer_callback_interval_sec` | double | タイマコールバック関数の秒数 [秒] | +| `diagnostics_updater_interval_sec` | double | Diagnostics updater の周期 [秒] | +| `straight_motion_ang_vel_upper_limit` | double | 直線運動と見なさない、ヨー角速度の上限 [rad/s] | diff --git a/sensing/autoware_pcl_extensions/README.md b/sensing/autoware_pcl_extensions/README.md index 66dac20d43ea..49083fa16686 100644 --- a/sensing/autoware_pcl_extensions/README.md +++ b/sensing/autoware_pcl_extensions/README.md @@ -33,4 +33,3 @@ [1] ## (省略可)将来の拡張 / 実装されていない部分 - diff --git a/sensing/autoware_pointcloud_preprocessor/README.md b/sensing/autoware_pointcloud_preprocessor/README.md index d945e59f88e8..abd76f9640e8 100644 --- a/sensing/autoware_pointcloud_preprocessor/README.md +++ b/sensing/autoware_pointcloud_preprocessor/README.md @@ -14,25 +14,25 @@ 各フィルタのアルゴリズムの詳細については、以下のリンクを参照してください。 -| フィルター名 | 説明 | 詳細 | -| ----------------------------- | ---------------------------------------------------------------------------------------- | --------------------------------------------- | +| フィルター名 | 説明 | 詳細 | +| ----------------------------- | -------------------------------------------------------------------------------------- | --------------------------------------------- | | concatenate_data | 複数の点群を購読し、それらを 1 つの点群に連結します。 | [link](docs/concatenate-data.md) | -| crop_box_filter | 1 回の走査中に自車位置の移動によって生じた点群の歪みを補正します。 | [link](docs/crop-box-filter.md) | -| distortion_corrector | 1 回の走査中に自車位置の移動によって生じた点群の歪みを補正します。 | [link](docs/distortion-corrector.md) | -| downsample_filter | 入力点群をダウンサンプリングします。 | [link](docs/downsample-filter.md) | +| crop_box_filter | 1 回の走査中に自車位置の移動によって生じた点群の歪みを補正します。 | [link](docs/crop-box-filter.md) | +| distortion_corrector | 1 回の走査中に自車位置の移動によって生じた点群の歪みを補正します。 | [link](docs/distortion-corrector.md) | +| downsample_filter | 入力点群をダウンサンプリングします。 | [link](docs/downsample-filter.md) | | outlier_filter | ハードウェアの問題、雨滴、小さな昆虫によって引き起こされるノイズとして点を削除します。 | [link](docs/outlier-filter.md) | -| passthrough_filter | 与えられたフィールド (例: x、y、z、強度) の範囲外にある点を削除します。 | [link](docs/passthrough-filter.md) | -| pointcloud_accumulator | 一定時間点群を累積します。 | [link](docs/pointcloud-accumulator.md) | +| passthrough_filter | 与えられたフィールド (例: x、y、z、強度) の範囲外にある点を削除します。 | [link](docs/passthrough-filter.md) | +| pointcloud_accumulator | 一定時間点群を累積します。 | [link](docs/pointcloud-accumulator.md) | | vector_map_filter | ベクトルマップを使用して、車線の外側の点を削除します。 | [link](docs/vector-map-filter.md) | -| vector_map_inside_area_filter | 指定されたタイプのパラメーターによって、ベクトルマップ領域内の点を削除します。 | [link](docs/vector-map-inside-area-filter.md) | +| vector_map_inside_area_filter | 指定されたタイプのパラメーターによって、ベクトルマップ領域内の点を削除します。 | [link](docs/vector-map-inside-area-filter.md) | ## 入力 / 出力 ### 入力 -| 名前 | タイプ | 説明 | -| ---------------- | -------------------------------- | ----------------- | -| `~/input/points` | `sensor_msgs::msg::PointCloud2` | 基準点群 | +| 名前 | タイプ | 説明 | +| ----------------- | ------------------------------- | -------------------- | +| `~/input/points` | `sensor_msgs::msg::PointCloud2` | 基準点群 | | `~/input/indices` | `pcl_msgs::msg::Indices` | 基準点のインデックス | ### 出力 @@ -63,7 +63,7 @@ Planningコンポーネントは、次の機能を提供します。 Planningコンポーネントでは、次のアルゴリズムを使用しています。 -- **A*探索**: 最適経路の探索に使用されます。 +- **A\*探索**: 最適経路の探索に使用されます。 - **Dijkstraのアルゴリズム**: 最短経路の探索に使用されます。 - **動的計画法**: 最適化された経路の生成に使用されます。 @@ -101,22 +101,22 @@ Planningコンポーネントを使用する際は、以下の注意事項を考 - Planningコンポーネントは、周囲環境が正確にマップされている場合に最も効果的です。 - Planningコンポーネントは、悪天候や複雑な交通状況では十分に機能しない場合があります。 -| 名称 | タイプ | 説明 | -|---|---|---| +| 名称 | タイプ | 説明 | +| ----------------- | ------------------------------- | ------------------------ | | `~/output/points` | `sensor_msgs::msg::PointCloud2` | フィルタリング済みの点群 | ## パラメータ ### ノードパラメータ -| 名称 | タイプ | デフォルト値 | 説明 | -|---|---|---|---| -| `input_frame` | 文字列 | "" | 入力フレームID | -| `output_frame` | 文字列 | "" | 出力フレームID | -| `max_queue_size` | 整数 | 5 | 入力/出力トピックの最大キューサイズ | -| `use_indices` | ブール | false | ポイントクラウドインデックスを使用するフラグ | -| `latched_indices` | ブール | false | ポイントクラウドインデックスをラッチするフラグ | -| `approximate_sync` | ブール | false | 近似同期オプションを使用するフラグ | +| 名称 | タイプ | デフォルト値 | 説明 | +| ------------------ | ------ | ------------ | ---------------------------------------------- | +| `input_frame` | 文字列 | "" | 入力フレームID | +| `output_frame` | 文字列 | "" | 出力フレームID | +| `max_queue_size` | 整数 | 5 | 入力/出力トピックの最大キューサイズ | +| `use_indices` | ブール | false | ポイントクラウドインデックスを使用するフラグ | +| `latched_indices` | ブール | false | ポイントクラウドインデックスをラッチするフラグ | +| `approximate_sync` | ブール | false | 近似同期オプションを使用するフラグ | ## 想定事項と既知の制限事項 @@ -156,4 +156,4 @@ Autoware を実行すると、以下の ROS 2 トピックを購読すること [1] -## (任意)今後の拡張/未実装部分 \ No newline at end of file +## (任意)今後の拡張/未実装部分 diff --git a/sensing/autoware_radar_scan_to_pointcloud2/README.md b/sensing/autoware_radar_scan_to_pointcloud2/README.md index 22fb2c39a4a7..cae787deb4e7 100644 --- a/sensing/autoware_radar_scan_to_pointcloud2/README.md +++ b/sensing/autoware_radar_scan_to_pointcloud2/README.md @@ -8,28 +8,26 @@ ### 入力トピック -| 名 | タイプ | 説明 | -| ----------- | -------------------------- | ----------- | -| input/radar | radar_msgs::msg::RadarScan | RadarScan | +| 名 | タイプ | 説明 | +| ----------- | -------------------------- | --------- | +| input/radar | radar_msgs::msg::RadarScan | RadarScan | ### 出力トピック -| 名前 | 型 | 説明 | -|---|---|---| -| output/amplitude_pointcloud | sensor_msgs::msg::PointCloud2 | 強度が振幅のPointCloud2レーダー点群 | -| output/doppler_pointcloud | sensor_msgs::msg::PointCloud2 | 強度がドップラー速度のPointCloud2レーダー点群 | +| 名前 | 型 | 説明 | +| --------------------------- | ----------------------------- | --------------------------------------------- | +| output/amplitude_pointcloud | sensor_msgs::msg::PointCloud2 | 強度が振幅のPointCloud2レーダー点群 | +| output/doppler_pointcloud | sensor_msgs::msg::PointCloud2 | 強度がドップラー速度のPointCloud2レーダー点群 | ### パラメータ -| 名称 | タイプ | 説明 | -|---|---|---| -| publish_amplitude_pointcloud | bool | レーダーの点群の強度を振幅で公開するかどうか。初期値は `true` です。 | -| publish_doppler_pointcloud | bool | レーダーの点群の強度をドップラー速度で公開するかどうか。初期値は `false` です。 | +| 名称 | タイプ | 説明 | +| ---------------------------- | ------ | ------------------------------------------------------------------------------- | +| publish_amplitude_pointcloud | bool | レーダーの点群の強度を振幅で公開するかどうか。初期値は `true` です。 | +| publish_doppler_pointcloud | bool | レーダーの点群の強度をドップラー速度で公開するかどうか。初期値は `false` です。 | ### 起動方法 - ```sh ros2 launch autoware_radar_scan_to_pointcloud2 radar_scan_to_pointcloud2.launch.xml ``` - diff --git a/sensing/autoware_radar_static_pointcloud_filter/README.md b/sensing/autoware_radar_static_pointcloud_filter/README.md index db5dd880c7d4..458e0952bbd1 100644 --- a/sensing/autoware_radar_static_pointcloud_filter/README.md +++ b/sensing/autoware_radar_static_pointcloud_filter/README.md @@ -7,27 +7,26 @@ Doppler速度と自車運動を使用して、静的および動的なレーダ ### 入力トピック -| 名称 | 型 | 説明 | -| -------------- | -------------------------- | -------------------------- | -| input/radar | radar_msgs::msg::RadarScan | RadarScan | +| 名称 | 型 | 説明 | +| -------------- | -------------------------- | ---------------------- | +| input/radar | radar_msgs::msg::RadarScan | RadarScan | | input/odometry | nav_msgs::msg::Odometry | 自車オドメトリトピック | ### 出力トピック -| 名称 | タイプ | 説明 | -| ------------------------- | -------------------------- | -------------------------------- | -| output/static_radar_scan | radar_msgs::msg::RadarScan | 静的レーダーポイントクラウド | -| output/dynamic_radar_scan | radar_msgs::msg::RadarScan | 動的レーダーポイントクラウド | +| 名称 | タイプ | 説明 | +| ------------------------- | -------------------------- | ---------------------------- | +| output/static_radar_scan | radar_msgs::msg::RadarScan | 静的レーダーポイントクラウド | +| output/dynamic_radar_scan | radar_msgs::msg::RadarScan | 動的レーダーポイントクラウド | ### パラメータ -| 名前 | タイプ | 説明 | -| ------------------- | ------ | ---------------------------------------------------- | +| 名前 | タイプ | 説明 | +| ------------------- | ------ | ------------------------------------------ | | doppler_velocity_sd | double | レーダー・ドップラー速度の標準偏差。 [m/s] | ### 起動方法 - ```sh ros2 launch autoware_radar_static_pointcloud_filter radar_static_pointcloud_filter.launch.xml ``` @@ -35,4 +34,3 @@ ros2 launch autoware_radar_static_pointcloud_filter radar_static_pointcloud_filt ### アルゴリズム ![algorithm](docs/radar_static_pointcloud_filter.drawio.svg) - diff --git a/sensing/autoware_radar_threshold_filter/README.md b/sensing/autoware_radar_threshold_filter/README.md index 547267109793..100494b025c1 100644 --- a/sensing/autoware_radar_threshold_filter/README.md +++ b/sensing/autoware_radar_threshold_filter/README.md @@ -12,39 +12,37 @@ ### 入力トピック -| 名称 | 型 | 説明 | -| ----------- | ---------------------------- | --------------------- | +| 名称 | 型 | 説明 | +| ----------- | ---------------------------- | ---------------------------------- | | input/radar | radar_msgs/msg/RadarScan.msg | レーダー・ポイントクラウド・データ | ### 出力トピック -| Name | Type | 説明 | -| ------------ | ---------------------------- | ------------------------- | +| Name | Type | 説明 | +| ------------ | ---------------------------- | -------------------------------------- | | output/radar | radar_msgs/msg/RadarScan.msg | フィルタされたレーダーポイントクラウド | ### パラメータ - ノードパラメータ -| 名前 | タイプ | 説明 | -| ------------------- | ------ | ----------------------------------------------------------------------------------------------------- | +| 名前 | タイプ | 説明 | +| ------------------- | ------ | ------------------------------------------------------------------------------------------------------- | | is_amplitude_filter | bool | このパラメータが true の場合、振幅フィルタを適用する(`amplitude_min` < 振幅 < `amplitude_max` を公開) | -| amplitude_min | double | [dBm2] | -| amplitude_max | double | [dBm2] | -| is_range_filter | bool | このパラメータが true の場合、レンジフィルタを適用する(`range_min` < 距離 < `range_max` を公開) | -| range_min | double | [m] | -| range_max | double | [m] | -| is_azimuth_filter | bool | このパラメータが true の場合、角度フィルタを適用する(`azimuth_min` < 距離 < `azimuth_max` を公開) | -| azimuth_min | double | [rad] | -| azimuth_max | double | [rad] | -| is_z_filter | bool | このパラメータが true の場合、z 位置フィルタを適用する(`z_min` < z < `z_max` を公開) | -| z_min | double | [m] | -| z_max | double | [m] | +| amplitude_min | double | [dBm2] | +| amplitude_max | double | [dBm2] | +| is_range_filter | bool | このパラメータが true の場合、レンジフィルタを適用する(`range_min` < 距離 < `range_max` を公開) | +| range_min | double | [m] | +| range_max | double | [m] | +| is_azimuth_filter | bool | このパラメータが true の場合、角度フィルタを適用する(`azimuth_min` < 距離 < `azimuth_max` を公開) | +| azimuth_min | double | [rad] | +| azimuth_max | double | [rad] | +| is_z_filter | bool | このパラメータが true の場合、z 位置フィルタを適用する(`z_min` < z < `z_max` を公開) | +| z_min | double | [m] | +| z_max | double | [m] | ### 起動方法 - ```sh ros2 launch autoware_radar_threshold_filter radar_threshold_filter.launch.xml ``` - diff --git a/sensing/autoware_radar_tracks_noise_filter/README.md b/sensing/autoware_radar_tracks_noise_filter/README.md index bc402ce6d35e..2242ed8b3db2 100644 --- a/sensing/autoware_radar_tracks_noise_filter/README.md +++ b/sensing/autoware_radar_tracks_noise_filter/README.md @@ -16,8 +16,8 @@ y軸しきい値フィルタでは、レーダートラックのy軸速度が`ve ## 入力 -| Name | Type | Description | -|---|---|---| +| Name | Type | Description | +| ---------------- | -------------------------------- | --------------------------------------- | | `~/input/tracks` | `radar_msgs/msg/RadarTracks.msg` | 3D 検出されたトラック(レーダートラック) | ## 出力 @@ -69,14 +69,13 @@ Autoware Planningコンポーネントに貢献するには、以下のリポジ [https://github.com/AutowareFoundation/autoware/tree/master/ros/planning](https://github.com/AutowareFoundation/autoware/tree/master/ros/planning) -| 名称 | 種類 | 説明 | -| -------------------------- | --------------------------------- | ---------------- | -| `~/output/noise_tracks` | radar_msgs/msg/RadarTracks.msg | ノイズオブジェクト | -| `~/output/filtered_tracks` | radar_msgs/msg/RadarTracks.msg | フィルタ処理されたオブジェクト | +| 名称 | 種類 | 説明 | +| -------------------------- | ------------------------------ | ------------------------------ | +| `~/output/noise_tracks` | radar_msgs/msg/RadarTracks.msg | ノイズオブジェクト | +| `~/output/filtered_tracks` | radar_msgs/msg/RadarTracks.msg | フィルタ処理されたオブジェクト | ## パラメータ -| 名前 | タイプ | 説明 | デフォルト値 | -| :--------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------ | :------------ | -| `velocity_y_threshold` | double | Y軸速度の閾値 [m/s]。レーダーのトラックのY軸速度が`velocity_y_threshold`を超える場合、ノイズオブジェクトとして扱われます。 | 7.0 | - +| 名前 | タイプ | 説明 | デフォルト値 | +| :--------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------- | :----------- | +| `velocity_y_threshold` | double | Y軸速度の閾値 [m/s]。レーダーのトラックのY軸速度が`velocity_y_threshold`を超える場合、ノイズオブジェクトとして扱われます。 | 7.0 | diff --git a/sensing/livox/autoware_livox_tag_filter/README.md b/sensing/livox/autoware_livox_tag_filter/README.md index 84f83a93f0e8..ef7df4280a22 100644 --- a/sensing/livox/autoware_livox_tag_filter/README.md +++ b/sensing/livox/autoware_livox_tag_filter/README.md @@ -14,11 +14,12 @@ ### 入力 -| Name | Type | Description | -|----------------|---------------------------------------------------------|------------------------| -| `~/input` | `sensor_msgs::msg::PointCloud2` | リファレンスポイント | +| Name | Type | Description | +| --------- | ------------------------------- | -------------------- | +| `~/input` | `sensor_msgs::msg::PointCloud2` | リファレンスポイント | ### 出力 + ### Localizerについて このドキュメントでは、AutowareのLocalizerの機能と実装について説明します。Localizerモジュールは、SLAMの結果を出力として受け取り、自車位置と自身の周囲地図を推定します。 @@ -71,35 +72,35 @@ Localizerモジュールの動作を制御するには、次のパラメータ - `vel_range_violation`:速度逸脱量のしきい値です。 - `acc_range_violation`:加速度逸脱量のしきい値です。 -| 名前 | 型 | 説明 | -| ---------- | ------------------------------- | ----------- | +| 名前 | 型 | 説明 | +| ---------- | ------------------------------- | ---------------- | | `~/output` | `sensor_msgs::msg::PointCloud2` | フィルタされた点 | ## パラメータ ### ノードパラメータ -| 名前 | タイプ | 説明 | -| ------------- | --------------- | -------------------------------------- | +| 名前 | タイプ | 説明 | +| ------------- | --------------- | ------------------------------- | | `ignore_tags` | vector | 除外されたタグ (以下の表を参照) | ### タグパラメータ | ビット | 空間的位置に基づく点の特性 | オプション | -| --- | ---------------------------- | ---------- | -| 0~1 | ノーマル | | -| | ノイズの信頼度が高い | | -| | ノイズの信頼度が中程度 | | -| | ノイズの信頼度が低い | | -| 2~3 | 強度の点の特性 | ノーマル | -| | ノイズの信頼度が高い | | -| | ノイズの信頼度が中程度 | | -| | 予約 | | -| 4~5 | 戻り値 | 0を返す | -| | 1を返す | | -| | 2を返す | | -| | 3を返す | | -| 6~7 | 予約 | | +| ------ | -------------------------- | ---------- | +| 0~1 | ノーマル | | +| | ノイズの信頼度が高い | | +| | ノイズの信頼度が中程度 | | +| | ノイズの信頼度が低い | | +| 2~3 | 強度の点の特性 | ノーマル | +| | ノイズの信頼度が高い | | +| | ノイズの信頼度が中程度 | | +| | 予約 | | +| 4~5 | 戻り値 | 0を返す | +| | 1を返す | | +| | 2を返す | | +| | 3を返す | | +| 6~7 | 予約 | | ## 想定 / 既知の制限事項 @@ -112,4 +113,3 @@ Localizerモジュールの動作を制御するには、次のパラメータ [1] ## (任意) 将来の拡張 / 未実装部分 - diff --git a/sensing/vehicle_velocity_converter/README.md b/sensing/vehicle_velocity_converter/README.md index 935510b3a34e..b4074e9a43c5 100644 --- a/sensing/vehicle_velocity_converter/README.md +++ b/sensing/vehicle_velocity_converter/README.md @@ -10,8 +10,8 @@ ### 入力 -| 名称 | タイプ | 説明 | -|-----------------|-------------------------------------------|--------------| +| 名称 | タイプ | 説明 | +| ----------------- | ------------------------------------------- | -------- | | `velocity_status` | `autoware_vehicle_msgs::msg::VehicleReport` | 車両速度 | ### 出力 @@ -78,16 +78,15 @@ 詳細については、GitHubリポジトリを参照してください。 -| 名称 | 型 | 説明 | -| ----------------------- | ------------------------------------------------ | -------------------------------------------------- | +| 名称 | 型 | 説明 | +| ----------------------- | ------------------------------------------------ | --------------------------------------------- | | `twist_with_covariance` | `geometry_msgs::msg::TwistWithCovarianceStamped` | `VehicleReport`から変換した共分散付きツイスト | ## パラメータ -| 名前 | タイプ | 説明 | -| ---------------------------- | ------ | --------------------------------------- | +| 名前 | タイプ | 説明 | +| ---------------------------- | ------ | ------------------------------- | | `speed_scale_factor` | double | 速度スケール係数(理想値: 1.0) | -| `frame_id` | string | 出力メッセージのフレーム ID | -| `velocity_stddev_xx` | double | vx の標準偏差 | -| `angular_velocity_stddev_zz` | double | ヨーレートの標準偏差 | - +| `frame_id` | string | 出力メッセージのフレーム ID | +| `velocity_stddev_xx` | double | vx の標準偏差 | +| `angular_velocity_stddev_zz` | double | ヨーレートの標準偏差 | diff --git a/simulator/autoware_carla_interface/README.md b/simulator/autoware_carla_interface/README.md index b7dcf8e28c9b..12e17c7fe32c 100644 --- a/simulator/autoware_carla_interface/README.md +++ b/simulator/autoware_carla_interface/README.md @@ -86,7 +86,6 @@ ### ビルド - ```bash colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release ``` @@ -95,7 +94,6 @@ colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release 1. carlaを実行し、マップを変更し、必要に応じてオブジェクトを生成する - ```bash cd CARLA ./CarlaUE4.sh -prefernvidia -quality-level=Low -RenderOffScreen @@ -104,10 +102,11 @@ colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release ## 2. rosノードの実行 ```bash -$ roslaunch autoware ai_node.launch +roslaunch autoware ai_node.launch ``` `Autoware`を起動すると、以下のノードが実行されます。 + - `Planning` コンポーネント - `localization` コンポーネント - `visualization` コンポーネント @@ -152,10 +151,9 @@ $ roslaunch autoware ai_node.launch /path_offset ``` - - ```bash - ros2 launch autoware_launch e2e_simulator.launch.xml map_path:=$HOME/autoware_map/Town01 vehicle_model:=sample_vehicle sensor_model:=awsim_sensor_kit simulator_type:=carla carla_map:=Town01 - ``` +```bash +ros2 launch autoware_launch e2e_simulator.launch.xml map_path:=$HOME/autoware_map/Town01 vehicle_model:=sample_vehicle sensor_model:=awsim_sensor_kit simulator_type:=carla carla_map:=Town01 +``` ### 内部メカニズム / アルゴリズム @@ -169,29 +167,29 @@ Autowareからの自動運転車の指令は、`autoware_raw_vehicle_cmd_convert すべての主要パラメータは、`autoware_carla_interface.launch.xml`で設定できます。 -| 名称 | タイプ | デフォルト値 | 説明 | -| -------------------------- | ------ | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `host` | 文字列 | "localhost" | CARLA サーバーのホスト名 | -| `port` | 整数 | "2000" | CARLA サーバーのポート番号 | -| `timeout` | 整数 | 20 | CARLA クライアントのタイムアウト | -| `ego_vehicle_role_name` | 文字列 | "ego_vehicle" | 自車ロールの名称 | -| `vehicle_type` | 文字列 | "vehicle.toyota.prius" | スポーンさせる車両のブループリント ID。車両のブループリント ID は [CARLA ブループリント ID](https://carla.readthedocs.io/en/latest/catalogue_vehicles/) で見つけることができる | -| `spawn_point` | 文字列 | なし | 自車をスポーンさせる座標(なしの場合はランダム)。形式 = [x, y, z, roll, pitch, yaw] | -| `carla_map` | 文字列 | "Town01" | CARLA にロードするマップの名称 | -| `sync_mode` | ブール | True | CARLA に同期モードを設定するためのブールフラグ | -| `fixed_delta_seconds` | double | 0.05 | シミュレーションのタイムステップ(クライアント FPS に関連付けられている) | -| `objects_definition_file` | 文字列 | "$(find-pkg-share autoware_carla_interface)/objects.json" | CARLA でセンサーをスポーンするために使用されるセンサーパラメーターファイル | -| `use_traffic_manager` | ブール | True | CARLA にトラフィックマネージャーを設定するためのブールフラグ | -| `max_real_delta_seconds` | double | 0.05 | `fixed_delta_seconds` よりもシミュレーション速度を制限するためのパラメーター | -| `config_file` | 文字列 | "$(find-pkg-share autoware_carla_interface)/raw_vehicle_cmd_converter.param.yaml" | `autoware_raw_vehicle_cmd_converter` で使用される制御マッピングファイル。現在の制御は CARLA の `vehicle.toyota.prius` ブループリント ID に基づいてキャリブレーションされている。車両タイプを変更する場合は再キャリブレーションが必要になる可能性がある | +| 名称 | タイプ | デフォルト値 | 説明 | +| ------------------------- | ------ | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `host` | 文字列 | "localhost" | CARLA サーバーのホスト名 | +| `port` | 整数 | "2000" | CARLA サーバーのポート番号 | +| `timeout` | 整数 | 20 | CARLA クライアントのタイムアウト | +| `ego_vehicle_role_name` | 文字列 | "ego_vehicle" | 自車ロールの名称 | +| `vehicle_type` | 文字列 | "vehicle.toyota.prius" | スポーンさせる車両のブループリント ID。車両のブループリント ID は [CARLA ブループリント ID](https://carla.readthedocs.io/en/latest/catalogue_vehicles/) で見つけることができる | +| `spawn_point` | 文字列 | なし | 自車をスポーンさせる座標(なしの場合はランダム)。形式 = [x, y, z, roll, pitch, yaw] | +| `carla_map` | 文字列 | "Town01" | CARLA にロードするマップの名称 | +| `sync_mode` | ブール | True | CARLA に同期モードを設定するためのブールフラグ | +| `fixed_delta_seconds` | double | 0.05 | シミュレーションのタイムステップ(クライアント FPS に関連付けられている) | +| `objects_definition_file` | 文字列 | "$(find-pkg-share autoware_carla_interface)/objects.json" | CARLA でセンサーをスポーンするために使用されるセンサーパラメーターファイル | +| `use_traffic_manager` | ブール | True | CARLA にトラフィックマネージャーを設定するためのブールフラグ | +| `max_real_delta_seconds` | double | 0.05 | `fixed_delta_seconds` よりもシミュレーション速度を制限するためのパラメーター | +| `config_file` | 文字列 | "$(find-pkg-share autoware_carla_interface)/raw_vehicle_cmd_converter.param.yaml" | `autoware_raw_vehicle_cmd_converter` で使用される制御マッピングファイル。現在の制御は CARLA の `vehicle.toyota.prius` ブループリント ID に基づいてキャリブレーションされている。車両タイプを変更する場合は再キャリブレーションが必要になる可能性がある | ### センサーの構成可能なパラメータ 以下のパラメータは `carla_ros.py` で構成できます。 -| 名称 | タイプ | デフォルト値 | 説明 | -| ------------------------- | ---- | -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `self.sensor_frequencies` | dict | {"top": 11, "left": 11, "right": 11, "camera": 11, "imu": 50, "status": 50, "pose": 2} | (line 67) 前回の公開以降の時間間隔を計算し、この間隔が、所定の頻度を超過しないために必要な最小限度を満たしているかどうかを確認します。これは ROS の公開頻度のみ影響し、CARLA のセンサーの更新には影響しません。 | +| 名称 | タイプ | デフォルト値 | 説明 | +| ------------------------- | ------ | -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `self.sensor_frequencies` | dict | {"top": 11, "left": 11, "right": 11, "camera": 11, "imu": 50, "status": 50, "pose": 2} | (line 67) 前回の公開以降の時間間隔を計算し、この間隔が、所定の頻度を超過しないために必要な最小限度を満たしているかどうかを確認します。これは ROS の公開頻度のみ影響し、CARLA のセンサーの更新には影響しません。 | - CARLAセンサーパラメータは`config/objects.json`で設定できます。 - CARLAで設定可能なパラメータの詳細については、[Carla Ref Sensor](https://carla.readthedocs.io/en/latest/ref_sensors/)で説明されています。 @@ -202,7 +200,6 @@ Autowareからの自動運転車の指令は、`autoware_raw_vehicle_cmd_convert 1. **クライアント接続**: - ```python client = carla.Client(self.local_host, self.port) client.set_timeout(self.timeout) @@ -212,7 +209,6 @@ Autowareからの自動運転車の指令は、`autoware_raw_vehicle_cmd_convert `carla_map`パラメータに従って、マップをCARLAワールドにロード。 - ```python client.load_world(self.map_name) self.world = client.get_world() @@ -222,7 +218,6 @@ Autowareからの自動運転車の指令は、`autoware_raw_vehicle_cmd_convert 車両は `vehicle_type`, `spawn_point`, `agent_role_name` のパラメーターに従って生成されます。 - ```python spawn_point = carla.Transform() point_items = self.spawn_point.split(",") @@ -266,4 +261,3 @@ Carla シミュレータ ([Carla Lanelet2 Maps](https://bitbucket.org/carla-simu - センサーは現在、Autoware センサーキットと同じ場所に配置されるように自動的に設定されていません。現在の回避策は、各センサーの新しいフレームを (0, 0, 0, 0, 0, 0) 座標 (base_link に相対的) で作成し、各センサーを新しいフレームにアタッチすることです (`autoware_carla_interface.launch.xml` 行 28)。この回避策は非常に限定的で制約があります。センサーキットが変更されると、センサーの場所は正しくアタッチされません。 - 信号認識。 - 現在、CARLA の HDmap には、Autoware が信号認識を行うために必要な信号に関する情報がありません。 - diff --git a/simulator/dummy_perception_publisher/README.md b/simulator/dummy_perception_publisher/README.md index db8e3bedbc40..fdfcd2d44430 100644 --- a/simulator/dummy_perception_publisher/README.md +++ b/simulator/dummy_perception_publisher/README.md @@ -10,10 +10,10 @@ ### 入力 -| 名称 | タイプ | 説明 | -| -------------- | ---------------------------------------- | ----------------------------------------- | -| `/tf` | `tf2_msgs/TFMessage` | TF (自車位置) | -| `input/object` | `tier4_simulation_msgs::msg::DummyObject` | ダミー検出オブジェクト | +| 名称 | タイプ | 説明 | +| -------------- | ----------------------------------------- | ---------------------- | +| `/tf` | `tf2_msgs/TFMessage` | TF (自車位置) | +| `input/object` | `tier4_simulation_msgs::msg::DummyObject` | ダミー検出オブジェクト | ### 出力 @@ -37,24 +37,24 @@ - 加速度逸脱量 - ヨー逸脱量 -| 名前 | タイプ | 説明 | -| ------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------- | -| `output/dynamic_object` | `tier4_perception_msgs::msg::DetectedObjectsWithFeature` | ダミー検出オブジェクト | -| `output/points_raw` | `sensor_msgs::msg::PointCloud2` | オブジェクトの点群 | -| `output/debug/ground_truth_objects` | `autoware_perception_msgs::msg::TrackedObjects` | グランドトゥルースオブジェクト | +| 名前 | タイプ | 説明 | +| ----------------------------------- | -------------------------------------------------------- | ------------------------------ | +| `output/dynamic_object` | `tier4_perception_msgs::msg::DetectedObjectsWithFeature` | ダミー検出オブジェクト | +| `output/points_raw` | `sensor_msgs::msg::PointCloud2` | オブジェクトの点群 | +| `output/debug/ground_truth_objects` | `autoware_perception_msgs::msg::TrackedObjects` | グランドトゥルースオブジェクト | ## パラメータ -| 名前 | タイプ | デフォルト値 | 説明 | -| --------------------------- | ------ | ------------- | ------------------------------------------- | -| `visible_range` | double | 100.0 | センサー視界範囲 [m] | -| `detection_successful_rate` | double | 0.8 | センサー検出率。(最小値) 0.0 - 1.0(最大値) | -| `enable_ray_tracing` | bool | true | True の場合、レイ追跡を使用する | -| `use_object_recognition` | bool | true | True の場合、物体トピックを公開する | -| `use_base_link_z` | bool | true | True の場合、ノードはエゴ base_link の Z 座標を使用する | -| `publish_ground_truth` | bool | false | True の場合、グランドトゥルースオブジェクトを公開する | -| `use_fixed_random_seed` | bool | false | True の場合、固定ランダムシードを使用する | -| `random_seed` | int | 0 | ランダムシード | +| 名前 | タイプ | デフォルト値 | 説明 | +| --------------------------- | ------ | ------------ | ------------------------------------------------------- | +| `visible_range` | double | 100.0 | センサー視界範囲 [m] | +| `detection_successful_rate` | double | 0.8 | センサー検出率。(最小値) 0.0 - 1.0(最大値) | +| `enable_ray_tracing` | bool | true | True の場合、レイ追跡を使用する | +| `use_object_recognition` | bool | true | True の場合、物体トピックを公開する | +| `use_base_link_z` | bool | true | True の場合、ノードはエゴ base_link の Z 座標を使用する | +| `publish_ground_truth` | bool | false | True の場合、グランドトゥルースオブジェクトを公開する | +| `use_fixed_random_seed` | bool | false | True の場合、固定ランダムシードを使用する | +| `random_seed` | int | 0 | ランダムシード | ### Node パラメータ @@ -67,4 +67,3 @@ ## 想定/既知の制限事項 TBD - diff --git a/simulator/fault_injection/README.md b/simulator/fault_injection/README.md index 5d43436131f5..5795b9aa6a5c 100644 --- a/simulator/fault_injection/README.md +++ b/simulator/fault_injection/README.md @@ -9,7 +9,6 @@ ## テスト - ```bash source install/setup.bash cd fault_injection @@ -22,8 +21,8 @@ launch_test test/test_fault_injection_node.test.py ### 入力 -| 名称 | タイプ | 説明 | -| --------------------------- | ---------------------------------------------- | ----------------- | +| 名称 | タイプ | 説明 | +| --------------------------- | ---------------------------------------------- | ------------------------ | | `~/input/simulation_events` | `tier4_simulation_msgs::msg::SimulationEvents` | シミュレーションイベント | ### 出力 @@ -32,21 +31,21 @@ launch_test test/test_fault_injection_node.test.py **目次** -* [はじめに](#はじめに) -* [アーキテクチャ](#アーキテクチャ) - * [Planningコンポーネント](#planningコンポーネント) - * [Controlモジュール](#controlモジュール) -* [インターフェース](#インターフェース) - * [API](#api) - * [パラメータ](#パラメータ) -* [使用方法](#使用方法) - * [インストール](#インストール) - * [設定](#設定) - * [実行](#実行) -* [トラブルシューティング](#トラブルシューティング) - * [一般的な問題](#一般的な問題) - * [高度な問題](#高度な問題) -* [寄稿](#寄稿) +- [はじめに](#はじめに) +- [アーキテクチャ](#アーキテクチャ) + - [Planningコンポーネント](#planningコンポーネント) + - [Controlモジュール](#controlモジュール) +- [インターフェース](#インターフェース) + - [API](#api) + - [パラメータ](#パラメータ) +- [使用方法](#使用方法) + - [インストール](#インストール) + - [設定](#設定) + - [実行](#実行) +- [トラブルシューティング](#トラブルシューティング) + - [一般的な問題](#一般的な問題) + - [高度な問題](#高度な問題) +- [寄稿](#寄稿) **はじめに** @@ -58,16 +57,16 @@ launch_test test/test_fault_injection_node.test.py Planningコンポーネントは、車両の経路を生成します。次のような複数の要素で構成されています。 -* **PathPlanningモジュール:** 車両の経路を生成します。 -* **TrajectoryPlanningモジュール:** PathPlanningモジュールで生成された経路を滑らかな軌跡に変換します。 -* **BehaviorPlanningモジュール:** 障害物回避やレーン維持などの高レベルの挙動を決定します。 +- **PathPlanningモジュール:** 車両の経路を生成します。 +- **TrajectoryPlanningモジュール:** PathPlanningモジュールで生成された経路を滑らかな軌跡に変換します。 +- **BehaviorPlanningモジュール:** 障害物回避やレーン維持などの高レベルの挙動を決定します。 **Controlモジュール** Controlモジュールは、車両の挙動を制御します。次のような複数の要素で構成されています。 -* **LongitudinalControlモジュール:** 車両の速度を制御します。 -* **LateralControlモジュール:** 車両の方向を制御します。 +- **LongitudinalControlモジュール:** 車両の速度を制御します。 +- **LateralControlモジュール:** 車両の方向を制御します。 **インターフェース** @@ -75,20 +74,20 @@ Controlモジュールは、車両の挙動を制御します。次のような Autowareソフトウェアは、次のようなAPIを提供します。 -* **`planning/planning_interface`:** Planningコンポーネントとのインターフェースを提供します。 -* **`control/control_interface`:** Controlモジュールとのインターフェースを提供します。 +- **`planning/planning_interface`:** Planningコンポーネントとのインターフェースを提供します。 +- **`control/control_interface`:** Controlモジュールとのインターフェースを提供します。 **パラメータ** PlanningとControlコンポーネントは、次のような構成可能なパラメータを備えています。 -* **Planningコンポーネント:** - * パス生成パラメータ - * 軌跡生成パラメータ - * 挙動計画パラメータ -* **Controlモジュール:** - * 速度制御パラメータ - * ステアリング制御パラメータ +- **Planningコンポーネント:** + - パス生成パラメータ + - 軌跡生成パラメータ + - 挙動計画パラメータ +- **Controlモジュール:** + - 速度制御パラメータ + - ステアリング制御パラメータ **使用方法** @@ -118,23 +117,23 @@ cd autoware **一般的な問題** -* **`post resampling`の障害:** Planningコンポーネントが経路を生成できない可能性があります。PathPlanningモジュールのパラメータを確認してください。 -* **速度逸脱量の増加:** Controlモジュールが車両の速度を適切に制御できない可能性があります。LongitudinalControlモジュールの速度制御パラメータを確認してください。 -* **加速度逸脱量の増加:** Controlモジュールが車両の方向を適切に制御できない可能性があります。LateralControlモジュールのステアリング制御パラメータを確認してください。 +- **`post resampling`の障害:** Planningコンポーネントが経路を生成できない可能性があります。PathPlanningモジュールのパラメータを確認してください。 +- **速度逸脱量の増加:** Controlモジュールが車両の速度を適切に制御できない可能性があります。LongitudinalControlモジュールの速度制御パラメータを確認してください。 +- **加速度逸脱量の増加:** Controlモジュールが車両の方向を適切に制御できない可能性があります。LateralControlモジュールのステアリング制御パラメータを確認してください。 **高度な問題** -* **自車位置の精度が悪い:** GPSまたはIMUセンサーからのデータが適切でない可能性があります。センサーの校正と設定を確認してください。 -* **障害物の認識が不十分:** センサーからのデータが不完全またはノイズが多い可能性があります。センサーの配置と感度を確認してください。 -* **経路生成の遅延:** Planningコンポーネントが過負荷になっている可能性があります。Planningコンポーネントのリソース消費を確認してください。 +- **自車位置の精度が悪い:** GPSまたはIMUセンサーからのデータが適切でない可能性があります。センサーの校正と設定を確認してください。 +- **障害物の認識が不十分:** センサーからのデータが不完全またはノイズが多い可能性があります。センサーの配置と感度を確認してください。 +- **経路生成の遅延:** Planningコンポーネントが過負荷になっている可能性があります。Planningコンポーネントのリソース消費を確認してください。 **寄稿** Autowareプロジェクトはオープンソースであり、寄稿を歓迎します。詳細については、[寄稿ガイドライン](https://github.com/autowarefoundation/autoware/blob/master/CONTRIBUTING.md)を参照してください。 -| 名称 | タイプ | 説明 | -|--------------|----------------------------------------|------------------| -| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | ダミー診断 | +| 名称 | タイプ | 説明 | +| -------------- | --------------------------------------- | ---------- | +| `/diagnostics` | `diagnostic_msgs::msg::DiagnosticArray` | ダミー診断 | ## パラメータ @@ -151,4 +150,3 @@ Autowareプロジェクトはオープンソースであり、寄稿を歓迎し ## 前提条件 / 制限事項 TBD。 - diff --git a/simulator/learning_based_vehicle_model/README.md b/simulator/learning_based_vehicle_model/README.md index 3e35836840bb..ba9910043f17 100644 --- a/simulator/learning_based_vehicle_model/README.md +++ b/simulator/learning_based_vehicle_model/README.md @@ -26,7 +26,6 @@ このパッケージを使用するには、`python3`と`pybind11`をインストールする必要があります。Pythonサブモデルの唯一の仮定は、それらのインタフェースです。 - ```python class PythonSubmodelInterface: @@ -151,7 +150,6 @@ class PythonSubmodelInterface: 最初にモデルを設定する必要があります。 - ```C++ InterconnectedModel vehicle; @@ -185,7 +183,6 @@ vehicle.dtSet(dt); モデルが正しく設定された後、以下のように使用できます。 - ```C++ // Example of an model input std::vector vehicle_input = {0.0, 1.0}; // INPUT_NAME_1, INPUT_NAME_2 @@ -207,4 +204,3 @@ std::vector next_state = vehicle.updatePyModel(vehicle_input); ## 関連する問題 - diff --git a/simulator/simple_planning_simulator/README.md b/simulator/simple_planning_simulator/README.md index 065a5e95dc6c..843d8860a2e3 100644 --- a/simulator/simple_planning_simulator/README.md +++ b/simulator/simple_planning_simulator/README.md @@ -40,17 +40,17 @@ ### コモンパラメーター -| 名称 | タイプ | 説明 | デフォルト値 | -| :-------------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- | -| simulated_frame_id | 文字列 | 出力tf内のchild_frame_idに設定 | "base_link" | -| origin_frame_id | 文字列 | 出力tf内のframe_idに設定 | "odom" | +| 名称 | タイプ | 説明 | デフォルト値 | +| :-------------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------- | :------------------- | +| simulated_frame_id | 文字列 | 出力tf内のchild_frame_idに設定 | "base_link" | +| origin_frame_id | 文字列 | 出力tf内のframe_idに設定 | "odom" | | initialize_source | 文字列 | "ORIGIN"の場合は、初期姿勢が(0, 0, 0)に設定され、"INITIAL_POSE_TOPIC"の場合は、ノードが`input/initialpose`トピックが発行されるまで待機 | "INITIAL_POSE_TOPIC" | -| add_measurement_noise | ブール | trueの場合、シミュレーション結果にガウスノイズが加えられる | true | -| pos_noise_stddev | double | 位置ノイズの標準偏差 | 0.01 | -| rpy_noise_stddev | double | オイラー角ノイズの標準偏差 | 0.0001 | -| vel_noise_stddev | double | 速度ノイズの標準偏差 | 0.0 | -| angvel_noise_stddev | double | 角速度ノイズの標準偏差 | 0.0 | -| steer_noise_stddev | double | ステアリング角ノイズの標準偏差 | 0.0001 | +| add_measurement_noise | ブール | trueの場合、シミュレーション結果にガウスノイズが加えられる | true | +| pos_noise_stddev | double | 位置ノイズの標準偏差 | 0.01 | +| rpy_noise_stddev | double | オイラー角ノイズの標準偏差 | 0.0001 | +| vel_noise_stddev | double | 速度ノイズの標準偏差 | 0.0 | +| angvel_noise_stddev | double | 角速度ノイズの標準偏差 | 0.0 | +| steer_noise_stddev | double | ステアリング角ノイズの標準偏差 | 0.0001 | ### 車両モデルのパラメータ @@ -71,26 +71,26 @@ 次の表は、どのモデルがどのパラメータに対応するかを示しています。モデル名は省略形で書かれています(例: IDEAL_STEER_VEL = I_ST_V)。 -| 名称 | 型 | 説明 | I_ST_V | I_ST_A | I_ST_A_G | D_ST_V | D_ST_A | D_ST_A_G | D_ST_A_G_WO_FG | D_ST_M_ACC_G | L_S_V | デフォルト値 | 単位 | -| :------------------------- | :----- | :------------------------------------------------------------------------------------------------------ | :----- | :----- | :------- | :----- | :----- | :------- | :------------- | :----------- | :---- | :------------ | :------ | -| acc_time_delay | double | 加速度入力のデッドタイム | x | x | x | x | o | o | o | o | x | 0.1 | [s] | -| steer_time_delay | double | ステアリング入力のデッドタイム | x | x | x | o | o | o | o | o | x | 0.24 | [s] | -| vel_time_delay | double | 速度入力のデッドタイム | x | x | x | o | x | x | x | x | x | 0.25 | [s] | -| acc_time_constant | double | 1次の加速度動特性の時間定数 | x | x | x | x | o | o | o | o | x | 0.1 | [s] | -| steer_time_constant | double | 1次のステアリング動特性の時間定数 | x | x | x | o | o | o | o | o | x | 0.27 | [s] | -| steer_dead_band | double | ステアリング角のデッドバンド | x | x | x | o | o | o | o | x | x | 0.0 | [rad] | -| vel_time_constant | double | 1次の速度動特性の時間定数 | x | x | x | o | x | x | x | x | x | 0.5 | [s] | -| vel_lim | double | 速度の上限 | x | x | x | o | o | o | o | o | x | 50.0 | [m/s] | -| vel_rate_lim | double | 加速度の上限 | x | x | x | o | o | o | o | o | x | 7.0 | [m/ss] | -| steer_lim | double | ステアリング角の上限 | x | x | x | o | o | o | o | o | x | 1.0 | [rad] | -| steer_rate_lim | double | ステアリング角変化率の上限 | x | x | x | o | o | o | o | o | x | 5.0 | [rad/s] | -| steer_bias | double | ステアリング角のバイアス | x | x | x | o | o | o | o | o | x | 0.0 | [rad] | -| debug_acc_scaling_factor | double | 加速度コマンドのスケーリング係数 | x | x | x | x | o | o | o | x | x | 1.0 | [-] | -| debug_steer_scaling_factor | double | ステアリングコマンドのスケーリング係数 | x | x | x | x | o | o | o | x | x | 1.0 | [-] | -| acceleration_map_path | string | 速度と理想的な加速度を実際の加速度に変換するためのCSVファイルのパス | x | x | x | x | x | x | x | o | x | - | [-] | -| model_module_paths | string | モデルを実装するPythonモジュールのパス | x | x | x | x | x | x | x | x | o | - | [-] | -| model_param_paths | string | モデルパラメータが格納されているファイルのパス(パラメータファイルが必要ない場合は空文字列可) | x | x | x | x | x | x | x | x | o | - | [-] | -| model_class_names | string | モデルを実装するクラスの名前 | x | x | x | x | x | x | x | x | o | - | [-] | +| 名称 | 型 | 説明 | I_ST_V | I_ST_A | I_ST_A_G | D_ST_V | D_ST_A | D_ST_A_G | D_ST_A_G_WO_FG | D_ST_M_ACC_G | L_S_V | デフォルト値 | 単位 | +| :------------------------- | :----- | :--------------------------------------------------------------------------------------------- | :----- | :----- | :------- | :----- | :----- | :------- | :------------- | :----------- | :---- | :----------- | :------ | +| acc_time_delay | double | 加速度入力のデッドタイム | x | x | x | x | o | o | o | o | x | 0.1 | [s] | +| steer_time_delay | double | ステアリング入力のデッドタイム | x | x | x | o | o | o | o | o | x | 0.24 | [s] | +| vel_time_delay | double | 速度入力のデッドタイム | x | x | x | o | x | x | x | x | x | 0.25 | [s] | +| acc_time_constant | double | 1次の加速度動特性の時間定数 | x | x | x | x | o | o | o | o | x | 0.1 | [s] | +| steer_time_constant | double | 1次のステアリング動特性の時間定数 | x | x | x | o | o | o | o | o | x | 0.27 | [s] | +| steer_dead_band | double | ステアリング角のデッドバンド | x | x | x | o | o | o | o | x | x | 0.0 | [rad] | +| vel_time_constant | double | 1次の速度動特性の時間定数 | x | x | x | o | x | x | x | x | x | 0.5 | [s] | +| vel_lim | double | 速度の上限 | x | x | x | o | o | o | o | o | x | 50.0 | [m/s] | +| vel_rate_lim | double | 加速度の上限 | x | x | x | o | o | o | o | o | x | 7.0 | [m/ss] | +| steer_lim | double | ステアリング角の上限 | x | x | x | o | o | o | o | o | x | 1.0 | [rad] | +| steer_rate_lim | double | ステアリング角変化率の上限 | x | x | x | o | o | o | o | o | x | 5.0 | [rad/s] | +| steer_bias | double | ステアリング角のバイアス | x | x | x | o | o | o | o | o | x | 0.0 | [rad] | +| debug_acc_scaling_factor | double | 加速度コマンドのスケーリング係数 | x | x | x | x | o | o | o | x | x | 1.0 | [-] | +| debug_steer_scaling_factor | double | ステアリングコマンドのスケーリング係数 | x | x | x | x | o | o | o | x | x | 1.0 | [-] | +| acceleration_map_path | string | 速度と理想的な加速度を実際の加速度に変換するためのCSVファイルのパス | x | x | x | x | x | x | x | o | x | - | [-] | +| model_module_paths | string | モデルを実装するPythonモジュールのパス | x | x | x | x | x | x | x | x | o | - | [-] | +| model_param_paths | string | モデルパラメータが格納されているファイルのパス(パラメータファイルが必要ない場合は空文字列可) | x | x | x | x | x | x | x | x | o | - | [-] | +| model_class_names | string | モデルを実装するクラスの名前 | x | x | x | x | x | x | x | x | o | - | [-] | _注意:_ パラメータ`model_module_paths`、`model_param_paths`、および`model_class_names`は同じ長にする必要があります。 @@ -98,7 +98,6 @@ _注意:_ パラメータ`model_module_paths`、`model_param_paths`、および` `acceleration_map.csv`の例 - ```csv default, 0.00, 1.39, 2.78, 4.17, 5.56, 6.94, 8.33, 9.72, 11.11, 12.50, 13.89, 15.28, 16.67 -4.0, -4.40, -4.36, -4.38, -4.12, -4.20, -3.94, -3.98, -3.80, -3.77, -3.76, -3.59, -3.50, -3.40 @@ -130,31 +129,30 @@ convert_steer_cmd_method には、「vgr」と「steer_map」の 2 つのオプ ![vgr_sim](./media/vgr_sim.drawio.svg) - ```yaml ``` ACTUATION_CMDで使用するパラメータは次のとおりです。 -| 名前 | 型 | 説明 | 単位 | -| :----------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- | -| accel_time_delay | double | 加速度入力のデッドタイム | [秒] | -| accel_time_constant | double | 1 次加速度動特性のタイムコンスタント | [秒] | -| brake_time_delay | double | ブレーキ入力のデッドタイム | [秒] | -| brake_time_constant | double | 1 次ブレーキ動特性のタイムコンスタント | [秒] | -| convert_accel_cmd | bool | true の場合、コマンドは加速度作動値に変換されて送信されると想定され、シミュレータ内で加速度値に戻されます。 | [-] | -| convert_brake_cmd | bool | true の場合、コマンドはブレーキ作動値に変換されて送信されると想定され、シミュレータ内で加速度値に戻されます。 | [-] | -| convert_steer_cmd | bool | true の場合、コマンドは操舵作動値に変換されて送信されると想定され、シミュレータ内で操舵速度値に戻されます。 | [-] | -| convert_steer_cmd_method | bool | 操舵コマンドを変換する方法。「vgr」と「steer_map」から選択できます。 | [-] | -| vgr_coef_a | double | 可変ギア比の係数 a の値 | [-] | -| vgr_coef_b | double | 可変ギア比の係数 b の値 | [-] | -| vgr_coef_c | double | 可変ギア比の係数 c の値 | [-] | -| enable_pub_steer | bool | ステアリングタイヤ角を公開するかどうか。false の場合、actuation_status から他のノード(例: raw_vehicle_cmd_converter)で変換され、公開される必要があります。 | [-] +| 名前 | 型 | 説明 | 単位 | +| :----------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | :--- | +| accel_time_delay | double | 加速度入力のデッドタイム | [秒] | +| accel_time_constant | double | 1 次加速度動特性のタイムコンスタント | [秒] | +| brake_time_delay | double | ブレーキ入力のデッドタイム | [秒] | +| brake_time_constant | double | 1 次ブレーキ動特性のタイムコンスタント | [秒] | +| convert_accel_cmd | bool | true の場合、コマンドは加速度作動値に変換されて送信されると想定され、シミュレータ内で加速度値に戻されます。 | [-] | +| convert_brake_cmd | bool | true の場合、コマンドはブレーキ作動値に変換されて送信されると想定され、シミュレータ内で加速度値に戻されます。 | [-] | +| convert_steer_cmd | bool | true の場合、コマンドは操舵作動値に変換されて送信されると想定され、シミュレータ内で操舵速度値に戻されます。 | [-] | +| convert_steer_cmd_method | bool | 操舵コマンドを変換する方法。「vgr」と「steer_map」から選択できます。 | [-] | +| vgr_coef_a | double | 可変ギア比の係数 a の値 | [-] | +| vgr_coef_b | double | 可変ギア比の係数 b の値 | [-] | +| vgr_coef_c | double | 可変ギア比の係数 c の値 | [-] | +| enable_pub_steer | bool | ステアリングタイヤ角を公開するかどうか。false の場合、actuation_status から他のノード(例: raw_vehicle_cmd_converter)で変換され、公開される必要があります。 | [-] | -_注意_: ステアリング・ダイナミクス/速度・加速度ダイナミクスは、_遅延_モデルにおけるデッドタイムを持った1次システムでモデリングされています。_時定数_の定義は、ステップ応答が最終値の63%に上昇するまでの時間です。_デッドタイム_は、制御入力に対する応答の遅延です。 +_注意_: ステアリング・ダイナミクス/速度・加速度ダイナミクスは、*遅延*モデルにおけるデッドタイムを持った1次システムでモデリングされています。*時定数*の定義は、ステップ応答が最終値の63%に上昇するまでの時間です。*デッドタイム*は、制御入力に対する応答の遅延です。 ### LEARNED_STEER_VELモデルの例 @@ -164,7 +162,6 @@ _注意_: ステアリング・ダイナミクス/速度・加速度ダイナミ 2. `src/vehicle/sample_vehicle_launch/sample_vehicle_description/config/simulator_model.param.yaml`ファイルの`vehicle_model_type`を`LEARNED_STEER_VEL`に設定します。同じファイルで、次のパラメータを設定します。これらのモデルはテスト用であり、パラメータファイルは必要ありません。 - ```yaml model_module_paths: [ @@ -212,6 +209,5 @@ Autoware.AI で最初に開発されました。以下のリンクを参照し ## 今後の拡張/未実装の部分 - - 車両モデルの精度の向上 (例: ステアリングデッドゾーンとスリップ挙動の追加) - - 擬似点群または擬似認識結果を出力するモジュールとの連携 - +- 車両モデルの精度の向上 (例: ステアリングデッドゾーンとスリップ挙動の追加) +- 擬似点群または擬似認識結果を出力するモジュールとの連携 diff --git a/simulator/tier4_dummy_object_rviz_plugin/README.md b/simulator/tier4_dummy_object_rviz_plugin/README.md index 630857475bee..7f6fc23f67e4 100644 --- a/simulator/tier4_dummy_object_rviz_plugin/README.md +++ b/simulator/tier4_dummy_object_rviz_plugin/README.md @@ -15,8 +15,8 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 ### 出力 -| 名前 | タイプ | 説明 | -| ---------------------------------------------------- | ------------------------------------------ | ------------------------------------------------ | +| 名前 | タイプ | 説明 | +| ---------------------------------------------------- | ----------------------------------------- | ------------------------------------------------ | | `/simulation/dummy_perception_publisher/object_info` | `tier4_simulation_msgs::msg::DummyObject` | ダミーオブジェクト情報をパブリッシュするトピック | ## パラメータ @@ -24,9 +24,11 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 ### コアパラメータ #### CarPose + - 定義: 自車位置に関するパラメータ - 説明: 自車位置の初期値に関するパラメータです。 例: + ``` - car_pose: x: 10.0 @@ -42,6 +44,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: プランナーの目標に関するパラメータ - 説明: プランナーのゴールに関するパラメータです。 例: + ``` - planner_goal: x: 40.0 @@ -59,6 +62,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: 軌道に関するパラメータ - 説明: 車両が走行する予定の軌道の初期値に関するパラメータです。 例: + ``` - trajectory: x: [0.0, 1.0, 2.0, 3.0, 4.0, 5.0] @@ -73,6 +77,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: 行動プランナーに関するパラメータ - 説明: 行動プランナーに関するパラメータです。 例: + ``` - behavior_planner: target_vel: 10.0 @@ -88,6 +93,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: レーダーに関するパラメータ - 説明: レーダーセンサーに関するパラメータです。 例: + ``` - radar: fov: 90.0 @@ -100,6 +106,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: LiDARに関するパラメータ - 説明: LiDARセンサーに関するパラメータです。 例: + ``` - lidar: fov: 180.0 @@ -112,6 +119,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: カメラに関するパラメータ - 説明: カメラセンサーに関するパラメータです。 例: + ``` - camera: fov: 120.0 @@ -126,6 +134,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: MPCに関するパラメータ - 説明: MPCに関するパラメータです。 例: + ``` - mpc: dt: 0.01 @@ -139,6 +148,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: PurePursuitに関するパラメータ - 説明: PurePursuitに関するパラメータです。 例: + ``` - pure_pursuit: lookahead_distance: 10.0 @@ -152,6 +162,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: シミュレーターに関するパラメータ - 説明: シミュレーターに関するパラメータです。 例: + ``` - simulator: dt: 0.01 @@ -165,6 +176,7 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 定義: Autowareに関するパラメータ - 説明: Autowareに関するパラメータです。 例: + ``` - autoware: debug: false @@ -172,35 +184,35 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 'post resampling': false ``` -| 名前 | 型 | 初期値 | 説明 | -| ----------------- | ------ | --------------------------------------------- | -------------------------------------- | +| 名前 | 型 | 初期値 | 説明 | +| ----------------- | ------ | ---------------------------------------------------- | ------------------------------------------------ | | `topic_property_` | string | `/simulation/dummy_perception_publisher/object_info` | ダミーオブジェクト情報をパブリッシュするトピック | -| `std_dev_x_` | float | 0.03 | 初期ポーズの X 標準偏差 [m] | -| `std_dev_y_` | float | 0.03 | 初期ポーズの Y 標準偏差 [m] | -| `std_dev_z_` | float | 0.03 | 初期ポーズの Z 標準偏差 [m] | -| `std_dev_theta_` | float | 5.0 \* M_PI / 180.0 | 初期ポーズの Theta 標準偏差 [rad] | -| `length_` | float | 4.0 | 初期ポーズの X 標準偏差 [m] | -| `width_` | float | 1.8 | 初期ポーズの Y 標準偏差 [m] | -| `height_` | float | 2.0 | 初期ポーズの Z 標準偏差 [m] | -| `position_z_` | float | 0.0 | 初期ポーズの Z 位置 [m] | -| `velocity_` | float | 0.0 | 速度 [m/s] | +| `std_dev_x_` | float | 0.03 | 初期ポーズの X 標準偏差 [m] | +| `std_dev_y_` | float | 0.03 | 初期ポーズの Y 標準偏差 [m] | +| `std_dev_z_` | float | 0.03 | 初期ポーズの Z 標準偏差 [m] | +| `std_dev_theta_` | float | 5.0 \* M_PI / 180.0 | 初期ポーズの Theta 標準偏差 [rad] | +| `length_` | float | 4.0 | 初期ポーズの X 標準偏差 [m] | +| `width_` | float | 1.8 | 初期ポーズの Y 標準偏差 [m] | +| `height_` | float | 2.0 | 初期ポーズの Z 標準偏差 [m] | +| `position_z_` | float | 0.0 | 初期ポーズの Z 位置 [m] | +| `velocity_` | float | 0.0 | 速度 [m/s] | #### BusPose 走行中の車両の姿勢を表現し、車両座標系における現在の姿勢を提供する。 -| 名称 | タイプ | デフォルト値 | 説明 | -| --------------------- | ------ | ------------------------------------------------------- | ------------------------------------------------------- | -| `topic_property_` | 文字列 | `/simulation/dummy_perception_publisher/object_info` | ダミーオブジェクト情報をパブリッシュするトピック | -| `std_dev_x_` | 浮動小数 | 0.03 | 初期姿勢に対する X 軸の標準偏差 [m] | -| `std_dev_y_` | 浮動小数 | 0.03 | 初期姿勢に対する Y 軸の標準偏差 [m] | -| `std_dev_z_` | 浮動小数 | 0.03 | 初期姿勢に対する Z 軸の標準偏差 [m] | -| `std_dev_theta_` | 浮動小数 | 5.0 \* M_PI / 180.0 | 初期姿勢に対する θ 軸の標準偏差 [rad] | -| `length_` | 浮動小数 | 10.5 | 初期姿勢に対する X 軸の標準偏差 [m] | -| `width_` | 浮動小数 | 2.5 | 初期姿勢に対する Y 軸の標準偏差 [m] | -| `height_` | 浮動小数 | 3.5 | 初期姿勢に対する Z 軸の標準偏差 [m] | -| `position_z_` | 浮動小数 | 0.0 | 初期姿勢に対する Z 軸の位置 [m] | -| `velocity_` | 浮動小数 | 0.0 | 速度 [m/s] | +| 名称 | タイプ | デフォルト値 | 説明 | +| ----------------- | -------- | ---------------------------------------------------- | ------------------------------------------------ | +| `topic_property_` | 文字列 | `/simulation/dummy_perception_publisher/object_info` | ダミーオブジェクト情報をパブリッシュするトピック | +| `std_dev_x_` | 浮動小数 | 0.03 | 初期姿勢に対する X 軸の標準偏差 [m] | +| `std_dev_y_` | 浮動小数 | 0.03 | 初期姿勢に対する Y 軸の標準偏差 [m] | +| `std_dev_z_` | 浮動小数 | 0.03 | 初期姿勢に対する Z 軸の標準偏差 [m] | +| `std_dev_theta_` | 浮動小数 | 5.0 \* M_PI / 180.0 | 初期姿勢に対する θ 軸の標準偏差 [rad] | +| `length_` | 浮動小数 | 10.5 | 初期姿勢に対する X 軸の標準偏差 [m] | +| `width_` | 浮動小数 | 2.5 | 初期姿勢に対する Y 軸の標準偏差 [m] | +| `height_` | 浮動小数 | 3.5 | 初期姿勢に対する Z 軸の標準偏差 [m] | +| `position_z_` | 浮動小数 | 0.0 | 初期姿勢に対する Z 軸の位置 [m] | +| `velocity_` | 浮動小数 | 0.0 | 速度 [m/s] | #### 歩行者姿勢 @@ -210,37 +222,37 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 **入力** -* 車両の点群(organized point cloud) -* 車両の画像(RGB画像) -* 自車位置と姿勢(6DoF) -* 制限速度 +- 車両の点群(organized point cloud) +- 車両の画像(RGB画像) +- 自車位置と姿勢(6DoF) +- 制限速度 **出力** -* 検出された歩行者リスト -* 歩行者のバウンディングボックス(3D bounding box) -* 歩行者の速度(東東、南北) -* 歩行者の加速度(東東、南北) -* 歩行者の[後方距離]'post resampling' +- 検出された歩行者リスト +- 歩行者のバウンディングボックス(3D bounding box) +- 歩行者の速度(東東、南北) +- 歩行者の加速度(東東、南北) +- 歩行者の[後方距離]'post resampling' **パラメータ** -* 点群の処理時間 -* 画像の処理時間 -* 検出距離 -* 以下の歩行者逸脱量のしきい値: - * 速度 - * 加速度 +- 点群の処理時間 +- 画像の処理時間 +- 検出距離 +- 以下の歩行者逸脱量のしきい値: + - 速度 + - 加速度 -| Name | Type | Default Value | Description | -| ----------------- | ------ | ---------------------------------------------------- | ----------------------------------------------- | +| Name | Type | Default Value | Description | +| ----------------- | ------ | ---------------------------------------------------- | ------------------------------------------------ | | `topic_property_` | string | `/simulation/dummy_perception_publisher/object_info` | ダミーオブジェクト情報をパブリッシュするトピック | -| `std_dev_x_` | float | 0.03 | 初期位置のX軸標準偏差 [m] | -| `std_dev_y_` | float | 0.03 | 初期位置のY軸標準偏差 [m] | -| `std_dev_z_` | float | 0.03 | 初期位置のZ軸標準偏差 [m] | -| `std_dev_theta_` | float | 5.0 \* M_PI / 180.0 | 初期位置のθ軸標準偏差 [rad] | -| `position_z_` | float | 0.0 | 初期位置のZ軸位置 [m] | -| `velocity_` | float | 0.0 | 速度 [m/s] | +| `std_dev_x_` | float | 0.03 | 初期位置のX軸標準偏差 [m] | +| `std_dev_y_` | float | 0.03 | 初期位置のY軸標準偏差 [m] | +| `std_dev_z_` | float | 0.03 | 初期位置のZ軸標準偏差 [m] | +| `std_dev_theta_` | float | 5.0 \* M_PI / 180.0 | 初期位置のθ軸標準偏差 [rad] | +| `position_z_` | float | 0.0 | 初期位置のZ軸位置 [m] | +| `velocity_` | float | 0.0 | 速度 [m/s] | #### UnknownPose @@ -267,20 +279,20 @@ DeleteAllObjectsToolは上記3つのツールで表示されたダミー車、 - 信号のない交差点 - 一時停止標識のある交差点 -| 名前 | タイプ | デフォルト値 | 説明 | -| ----------------- | ------ | ---------------------------------------------------- | ---------------------------------------------- | -| `topic_property_` | 文字列 | `/simulation/dummy_perception_publisher/object_info` | ダミーの物体情報を発行するトピック | -| `std_dev_x_` | 浮動小数 | 0.03 | 初期姿勢の X 標準偏差 [m] | -| `std_dev_y_` | 浮動小数 | 0.03 | 初期姿勢の Y 標準偏差 [m] | -| `std_dev_z_` | 浮動小数 | 0.03 | 初期姿勢の Z 標準偏差 [m] | -| `std_dev_theta_` | 浮動小数 | 5.0 \* M_PI / 180.0 | 初期姿勢のシータ標準偏差 [rad] | -| `position_z_` | 浮動小数 | 0.0 | 初期姿勢の Z 位置 [m] | -| `velocity_` | 浮動小数 | 0.0 | 速度 [m/s] | +| 名前 | タイプ | デフォルト値 | 説明 | +| ----------------- | -------- | ---------------------------------------------------- | ---------------------------------- | +| `topic_property_` | 文字列 | `/simulation/dummy_perception_publisher/object_info` | ダミーの物体情報を発行するトピック | +| `std_dev_x_` | 浮動小数 | 0.03 | 初期姿勢の X 標準偏差 [m] | +| `std_dev_y_` | 浮動小数 | 0.03 | 初期姿勢の Y 標準偏差 [m] | +| `std_dev_z_` | 浮動小数 | 0.03 | 初期姿勢の Z 標準偏差 [m] | +| `std_dev_theta_` | 浮動小数 | 5.0 \* M_PI / 180.0 | 初期姿勢のシータ標準偏差 [rad] | +| `position_z_` | 浮動小数 | 0.0 | 初期姿勢の Z 位置 [m] | +| `velocity_` | 浮動小数 | 0.0 | 速度 [m/s] | #### DeleteAllObjects -| 名前 | タイプ | デフォルト値 | 説明 | -| ----------------- | ------ | ---------------------------------------------------- | ----------------------------------------------- | +| 名前 | タイプ | デフォルト値 | 説明 | +| ----------------- | ------ | ---------------------------------------------------- | ------------------------------------------ | | `topic_property_` | 文字列 | `/simulation/dummy_perception_publisher/object_info` | ダミーのオブジェクト情報を公開するトピック | ## 制限と前提 @@ -307,11 +319,11 @@ Planningシミュレータを使用しています。 4. ツールタブでまだ選択していない項目を選択します。 5. キーコマンドは次のとおりです。 -| 操作 | キーコマンド | -|---|---| -| 追加 | Shift + 右クリック | +| 操作 | キーコマンド | +| ---- | ----------------------------------------- | +| 追加 | Shift + 右クリック | | 移動 | 右クリック長押し + ドラッグアンドドロップ | -| 削除 | Alt + 右クリック | +| 削除 | Alt + 右クリック | ## Material Designアイコン @@ -330,4 +342,3 @@ Material DesignアイコンはApache License、バージョン2.0のライセン ### Acknowledgment これらのアイコンをコミュニティに提供し、開発者とデザイナーがプロジェクトのビジュアルアピールとユーザーエクスペリエンスを向上させるのに役立てさせてくれたGoogleに感謝の意を表します。 - diff --git a/simulator/vehicle_door_simulator/README.md b/simulator/vehicle_door_simulator/README.md index cd70b0d6fef1..b78582238983 100644 --- a/simulator/vehicle_door_simulator/README.md +++ b/simulator/vehicle_door_simulator/README.md @@ -1,4 +1,3 @@ # vehicle_door_simulator このパッケージは、ドアなどの車両機器の動作をテストするためのものです。 - diff --git a/system/autoware_component_monitor/README.md b/system/autoware_component_monitor/README.md index 48e9a6445724..d8c9e5b39e88 100644 --- a/system/autoware_component_monitor/README.md +++ b/system/autoware_component_monitor/README.md @@ -11,8 +11,8 @@ ### 出力 -| 名称 | タイプ | 説明 | -| -------------------------- | ------------------------------------------------- | ----------------- | +| 名称 | タイプ | 説明 | +| -------------------------- | -------------------------------------------------- | --------------------- | | `~/component_system_usage` | `autoware_internal_msgs::msg::ResourceUsageReport` | CPU、メモリ使用量など | ## パラメーター @@ -25,7 +25,6 @@ 起動ファイルにコンポーザブルノードとして追加します。 - ```xml @@ -50,7 +49,6 @@ 次のコマンドを実行することでパッケージをテストできます。 - ```bash ros2 component load autoware_component_monitor autoware::component_monitor::ComponentMonitor -p publish_rate:=10.0 --node-namespace @@ -70,7 +68,6 @@ ros2 component load /pointcloud_container autoware_component_monitor autoware::c サンプル出力は次のとおりです。 - ```text top - 13:57:26 up 3:14, 1 user, load average: 1,09, 1,10, 1,04 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie @@ -83,4 +80,3 @@ KiB Swap: 39062524 total, 39062524 free, 0 used. 45520816 avail Mem ``` 5行目の最後にある5番目、8番目のフィールド(それぞれRES、%CPU)を取得します。 - diff --git a/system/autoware_default_adapi/README.md b/system/autoware_default_adapi/README.md index 26aaf81cb3e9..337ed1f58db8 100644 --- a/system/autoware_default_adapi/README.md +++ b/system/autoware_default_adapi/README.md @@ -24,7 +24,6 @@ これは、自律モードへの遷移条件を確認するためのデバッグスクリプトです。 - ```bash $ ros2 run autoware_default_adapi guide.py @@ -35,4 +34,3 @@ The vehicle is ready. Please change the operation mode to autonomous. The vehicle is driving autonomously. The vehicle has reached the goal of the route. Please reset a route. ``` - diff --git a/system/autoware_processing_time_checker/README.md b/system/autoware_processing_time_checker/README.md index 0f26495bc464..179569c6c9db 100644 --- a/system/autoware_processing_time_checker/README.md +++ b/system/autoware_processing_time_checker/README.md @@ -7,7 +7,6 @@ ### スタンドアロン起動 - ```bash ros2 launch autoware_processing_time_checker processing_time_checker.launch.xml ``` @@ -18,9 +17,9 @@ ros2 launch autoware_processing_time_checker processing_time_checker.launch.xml ### 入力 -| 名称 | タイプ | 説明 | -| -------------------------- | --------------------------------------- | ------------------------------------------ | -| `/.../processing_time_ms` | `tier4_debug_msgs/Float64Stamped` | 各モジュールの処理時間 | +| 名称 | タイプ | 説明 | +| ------------------------- | --------------------------------- | ---------------------- | +| `/.../processing_time_ms` | `tier4_debug_msgs/Float64Stamped` | 各モジュールの処理時間 | ### 出力 @@ -50,7 +49,7 @@ Planningモジュールは、以下のサブモジュールで構成されてい Planningモジュールは、以下のようなアルゴリズムを使用しています。 -- **A*アルゴリズム:** グラフ探索を使用して経路を生成します。 +- **A\*アルゴリズム:** グラフ探索を使用して経路を生成します。 - **動的プログラミング:** 時系列データの最適化問題を解きます。 - **確率的ロードマップ法 (PRM):** ランダムなノードとエッジを使用して経路を生成します。 @@ -114,8 +113,8 @@ Autowareは、以下のようなテストシナリオを使用して評価され Autowareは、包括的な自律走行ソフトウェアスタックです。モジュール式のアーキテクチャ、高度なアルゴリズム、包括的な開発ツールにより、研究者や開発者が自律走行システムを開発するための強力なプラットフォームを提供します。 -| 名称 | 種類 | 説明 | -|---|---|---| +| 名称 | 種類 | 説明 | +| ----------------------------------------- | --------------------------------- | ---------------------- | | `/system/processing_time_checker/metrics` | `diagnostic_msgs/DiagnosticArray` | 全モジュールの処理時間 | ## パラメータ @@ -125,4 +124,3 @@ Autowareは、包括的な自律走行ソフトウェアスタックです。モ ## 仮定/既知の制限 TBD. - diff --git a/system/bluetooth_monitor/README.md b/system/bluetooth_monitor/README.md index 3d9cac9ecbb4..f534c2834918 100644 --- a/system/bluetooth_monitor/README.md +++ b/system/bluetooth_monitor/README.md @@ -21,27 +21,27 @@ L2pingはデフォルトではrootユーザーのみ許可されているため [概要] | レベル | メッセージ | -| ----- | -------- | -| OK | OK | -| WARN | RTT警告 | -| ERROR | ロスト | -| | 関数エラー | +| ------ | ---------- | +| OK | OK | +| WARN | RTT警告 | +| ERROR | ロスト | +| | 関数エラー | **[値]** -| キー | 値 (例) | -| ---------------------------- | ------------------------------------------------------------------------- | +| キー | 値 (例) | +| -------------------------- | ------------------------------------------------------------ | | デバイス [0-9]: ステータス | OK / RTT 警告 / 検証エラー / ロスト / Ping 拒否 / 機能エラー | -| デバイス [0-9]: 名称 | ワイヤレスコントローラー | -| デバイス [0-9]: 製造元 | MediaTek, Inc. | -| デバイス [0-9]: アドレス | AA:BB:CC:DD:EE:FF | -| デバイス [0-9]: RTT | 0.00ms | +| デバイス [0-9]: 名称 | ワイヤレスコントローラー | +| デバイス [0-9]: 製造元 | MediaTek, Inc. | +| デバイス [0-9]: アドレス | AA:BB:CC:DD:EE:FF | +| デバイス [0-9]: RTT | 0.00ms | - 「bluetooth_monitor」が「機能エラー」をレポートすると、次のキーが追加されます。
例) 「connect」システムコールが失敗する。 -| キー(例) | 値(例) | -| -------------------- | ---------------------- | +| キー(例) | 値(例) | +| -------------------- | ------------------------------------------------ | | デバイス [0-9]: 接続 | そのようなファイルまたはディレクトリはありません | ## パラメータ @@ -63,14 +63,12 @@ L2pingはデフォルトではrootユーザーのみ許可されているため 1. L2pingは`cap_net_raw+eip`機能を必要とするため、`cap_net_raw+eip`機能を`l2ping_service`に割り当てます。 - ```sh sudo setcap 'cap_net_raw+eip' ./build/bluetooth_monitor/l2ping_service ``` 2. `l2ping_service` と `bluetooth_monitor` を実行します。 - ```sh ./build/bluetooth_monitor/l2ping_service ros2 launch bluetooth_monitor bluetooth_monitor.launch.xml @@ -79,4 +77,3 @@ L2pingはデフォルトではrootユーザーのみ許可されているため ## 周知の制限と問題 なし。 - diff --git a/system/component_state_monitor/README.md b/system/component_state_monitor/README.md index d0bcef5e096c..4e9ea0bc87cb 100644 --- a/system/component_state_monitor/README.md +++ b/system/component_state_monitor/README.md @@ -1,4 +1,3 @@ # component_state_monitor コンポーネントステートモニターは、トピックステートモニターを使用して各コンポーネントのステートを確認します。これは、ADサービスステートモニターとの後方互換性のための実装です。将来的には診断ツリーを使用して置き換えられます。 - diff --git a/system/default_ad_api_helpers/ad_api_adaptors/README.md b/system/default_ad_api_helpers/ad_api_adaptors/README.md index f353464cf2b7..e0e7d812b931 100644 --- a/system/default_ad_api_helpers/ad_api_adaptors/README.md +++ b/system/default_ad_api_helpers/ad_api_adaptors/README.md @@ -7,10 +7,10 @@ このノードはマップ高度適合ライブラリに依存します。 [詳細はここを参照してください。](../../../map/autoware_map_height_fitter/README.md) -| インターフェイス | ローカル名 | グローバル名 | 説明 | -| ------------ | ----------- | ---------------------------- | ----------------------------------------- | -| サブスクリプション | initialpose | /initialpose | ローカリゼーション初期化の姿勢 | -| クライアント | - | /api/localization/initialize | ローカリゼーション初期化 API | +| インターフェイス | ローカル名 | グローバル名 | 説明 | +| ------------------ | ----------- | ---------------------------- | ------------------------------ | +| サブスクリプション | initialpose | /initialpose | ローカリゼーション初期化の姿勢 | +| クライアント | - | /api/localization/initialize | ローカリゼーション初期化 API | ## routing_adaptor @@ -19,18 +19,17 @@ ウェイポイントの姿勢トピックを受信すると、APIを呼び出すためのウェイポイントの末尾に追加されます。 ルートを設定する前に、clear APIが自動的に呼び出されます。 -| Interface | Local Name | Global Name | Description | -| ---------------- | ------------------ | ------------------------------------------- | ----------------------------------------------------------- | -| 購読 | - | /api/routing/state | ルーティング API の状態 | -| 購読 | ~/input/fixed_goal | /planning/mission_planning/goal | 経路のゴール目標値(目標の変更は無効) | -| 購読 | ~/input/rough_goal | /rviz/routing/rough_goal | 経路のゴール目標値(目標の変更を有効) | -| 購読 | ~/input/reroute | /rviz/routing/reroute | 再経路の目標位置 | -| 購読 | ~/input/waypoint | /planning/mission_planning/checkpoint | 経路のウェイポイント位置 | -| クライアント | - | /api/routing/clear_route | ルートクリア API | -| クライアント | - | /api/routing/set_route_points | ルートポイント設定 API | -| クライアント | - | /api/routing/change_route_points | ルートポイント変更 API | +| Interface | Local Name | Global Name | Description | +| ------------ | ------------------ | ------------------------------------- | -------------------------------------- | +| 購読 | - | /api/routing/state | ルーティング API の状態 | +| 購読 | ~/input/fixed_goal | /planning/mission_planning/goal | 経路のゴール目標値(目標の変更は無効) | +| 購読 | ~/input/rough_goal | /rviz/routing/rough_goal | 経路のゴール目標値(目標の変更を有効) | +| 購読 | ~/input/reroute | /rviz/routing/reroute | 再経路の目標位置 | +| 購読 | ~/input/waypoint | /planning/mission_planning/checkpoint | 経路のウェイポイント位置 | +| クライアント | - | /api/routing/clear_route | ルートクリア API | +| クライアント | - | /api/routing/set_route_points | ルートポイント設定 API | +| クライアント | - | /api/routing/change_route_points | ルートポイント変更 API | ## パラメーター {{ json_to_markdown("/system/default_ad_api_helpers/ad_api_adaptors/schema/ad_api_adaptors.schema.json") }} - diff --git a/system/default_ad_api_helpers/automatic_pose_initializer/README.md b/system/default_ad_api_helpers/automatic_pose_initializer/README.md index 24934e5d0196..0f90bcb7574b 100644 --- a/system/default_ad_api_helpers/automatic_pose_initializer/README.md +++ b/system/default_ad_api_helpers/automatic_pose_initializer/README.md @@ -5,8 +5,7 @@ このノードは、ローカリゼーション初期化状態が初期化されていない場合にローカリゼーション初期化APIを呼び出します。 APIは、ポーズが指定されていない場合にGNSSポーズを使用するため、GNSSを使用した初期化を自動的に実行できます。 -| インターフェース | ローカル名 | グローバル名 | 説明 | -| ---------------- | ---------- | ----------------------------------- | --------------------------------------- | -| サブスクリプション | - | /api/localization/initialization_state | ローカリゼーションの初期状態API | -| クライアント | - | /api/localization/initialize | ローカリゼーションの初期化API | - +| インターフェース | ローカル名 | グローバル名 | 説明 | +| ------------------ | ---------- | -------------------------------------- | ------------------------------- | +| サブスクリプション | - | /api/localization/initialization_state | ローカリゼーションの初期状態API | +| クライアント | - | /api/localization/initialize | ローカリゼーションの初期化API | diff --git a/system/diagnostic_graph_aggregator/README.md b/system/diagnostic_graph_aggregator/README.md index 74fa8538d944..37f310dcfff9 100644 --- a/system/diagnostic_graph_aggregator/README.md +++ b/system/diagnostic_graph_aggregator/README.md @@ -39,23 +39,23 @@ MRMでは、このノードは専用のメッセージに最上位の機能単 ## インターフェイス -| インターフェイス種別 | インターフェイス名 | データ型 | 説明 | -|---|---|---|---| -| サブスクリプション | `/diagnostics` | `diagnostic_msgs/msg/DiagnosticArray` | 診断入力 | -| パブリッシャー | `/diagnostics_graph/unknowns` | `diagnostic_msgs/msg/DiagnosticArray` | グラフに含まれない診断 | -| パブリッシャー | `/diagnostics_graph/struct` | `tier4_system_msgs/msg/DiagGraphStruct` | 診断グラフ(静的部分) | -| パブリッシャー | `/diagnostics_graph/status` | `tier4_system_msgs/msg/DiagGraphStatus` | 診断グラフ(動的部分) | -| パブリッシャー | `/system/operation_mode/availability` | `tier4_system_msgs/msg/OperationModeAvailability` | オペレーションモードの可用性 | +| インターフェイス種別 | インターフェイス名 | データ型 | 説明 | +| -------------------- | ------------------------------------- | ------------------------------------------------- | ---------------------------- | +| サブスクリプション | `/diagnostics` | `diagnostic_msgs/msg/DiagnosticArray` | 診断入力 | +| パブリッシャー | `/diagnostics_graph/unknowns` | `diagnostic_msgs/msg/DiagnosticArray` | グラフに含まれない診断 | +| パブリッシャー | `/diagnostics_graph/struct` | `tier4_system_msgs/msg/DiagGraphStruct` | 診断グラフ(静的部分) | +| パブリッシャー | `/diagnostics_graph/status` | `tier4_system_msgs/msg/DiagGraphStatus` | 診断グラフ(動的部分) | +| パブリッシャー | `/system/operation_mode/availability` | `tier4_system_msgs/msg/OperationModeAvailability` | オペレーションモードの可用性 | ## パラメータ -| パラメータ名 | データ型 | 説明 | -|---|---|---| -| `graph_file` | `string` | コンフィグファイルのパス | -| `rate` | `double` | 集計とトピック公開のレート | -| `input_qos_depth` | `uint` | 入力配列トピックのQoS深度 | -| `graph_qos_depth` | `uint` | 出力グラフトピックのQoS深度 | -| `use_operation_mode_availability` | `bool` | 運転モード利用可能パブリッシャーを使用する | +| パラメータ名 | データ型 | 説明 | +| --------------------------------- | -------- | ------------------------------------------ | +| `graph_file` | `string` | コンフィグファイルのパス | +| `rate` | `double` | 集計とトピック公開のレート | +| `input_qos_depth` | `uint` | 入力配列トピックのQoS深度 | +| `graph_qos_depth` | `uint` | 出力グラフトピックのQoS深度 | +| `use_operation_mode_availability` | `bool` | 運転モード利用可能パブリッシャーを使用する | ## 例 @@ -65,7 +65,6 @@ MRMでは、このノードは専用のメッセージに最上位の機能単 - [module1.yaml](./example/graph/module1.yaml) - [module2.yaml](./example/graph/module2.yaml) - ```bash ros2 launch diagnostic_graph_aggregator example-main.launch.xml ``` @@ -74,7 +73,6 @@ ros2 launch diagnostic_graph_aggregator example-main.launch.xml - [edit.yaml](./example/graph/edit.yaml) - ```bash ros2 launch diagnostic_graph_aggregator example-edit.launch.xml ``` @@ -90,4 +88,3 @@ ros2 launch diagnostic_graph_aggregator example-edit.launch.xml - [path](./doc/format/path.md) - [unit](./doc/format/unit.md) - [edit](./doc/format/edit.md) - diff --git a/system/diagnostic_graph_utils/README.md b/system/diagnostic_graph_utils/README.md index 023a4739fcf1..0f546d2640a7 100644 --- a/system/diagnostic_graph_utils/README.md +++ b/system/diagnostic_graph_utils/README.md @@ -11,4 +11,3 @@ - [DiagGraph](./include/diagnostic_graph_utils/graph.hpp) - [DiagGraphSubscription](./include/diagnostic_graph_utils/subscription.hpp) - diff --git a/system/dummy_diag_publisher/README.md b/system/dummy_diag_publisher/README.md index bb0a3a188a02..8e3c10c93046 100644 --- a/system/dummy_diag_publisher/README.md +++ b/system/dummy_diag_publisher/README.md @@ -8,8 +8,8 @@ ### 出力 -| 名前 | タイプ | 説明 | -| -------------- | ---------------------------------------- | ------------------- | +| 名前 | タイプ | 説明 | +| -------------- | ---------------------------------------- | -------- | | `/diagnostics` | `diagnostic_msgs::msgs::DiagnosticArray` | 診断出力 | ## パラメータ @@ -18,20 +18,20 @@ パラメータ`DIAGNOSTIC_NAME`は、パラメータYAMLファイルに存在する名前でなければなりません。`status`パラメータがコマンドラインから指定された場合、`is_active`パラメータは自動的に`true`に設定されます。 -| 名称 | タイプ | 既定値 | 説明 | 再構成可能 | -| ----------------------------- | ------ | ---------- | -------------------------------------------- | ----------- | -| `update_rate` | int | `10` | タイマーコールバックの周期 [Hz] | false | -| `DIAGNOSTIC_NAME.is_active` | bool | `true` | 強制的に更新するかどうか | true | -| `DIAGNOSTIC_NAME.status` | string | `"OK"` | ダミー診断パブリッシャーによる診断ステータス | true | +| 名称 | タイプ | 既定値 | 説明 | 再構成可能 | +| --------------------------- | ------ | ------ | -------------------------------------------- | ---------- | +| `update_rate` | int | `10` | タイマーコールバックの周期 [Hz] | false | +| `DIAGNOSTIC_NAME.is_active` | bool | `true` | 強制的に更新するかどうか | true | +| `DIAGNOSTIC_NAME.status` | string | `"OK"` | ダミー診断パブリッシャーによる診断ステータス | true | ### dummy_diag_publisher の YAML フォーマット 値が `default` の場合、既定値が設定されます。 -| キー | タイプ | デフォルト値 | 説明 | -| --------------------------------------- | ------ | ----------- | ---------------------------------------------------------------------| -| `required_diags.DIAGNOSTIC_NAME.is_active` | bool | `true` | 強制アップデートするか否か | -| `required_diags.DIAGNOSTIC_NAME.status` | string | `"OK"` | ダミー診断パブリッシャーによって設定された診断ステータス | +| キー | タイプ | デフォルト値 | 説明 | +| ------------------------------------------ | ------ | ------------ | -------------------------------------------------------- | +| `required_diags.DIAGNOSTIC_NAME.is_active` | bool | `true` | 強制アップデートするか否か | +| `required_diags.DIAGNOSTIC_NAME.status` | string | `"OK"` | ダミー診断パブリッシャーによって設定された診断ステータス | ## 想定事項/既知の制約事項 @@ -41,16 +41,13 @@ ### 起動 - ```sh ros2 launch dummy_diag_publisher dummy_diag_publisher.launch.xml ``` ### 再構成 - ```sh ros2 param set /dummy_diag_publisher velodyne_connection.status "Warn" ros2 param set /dummy_diag_publisher velodyne_connection.is_active true ``` - diff --git a/system/dummy_infrastructure/README.md b/system/dummy_infrastructure/README.md index d9f0f285808f..4ee4765f17b1 100644 --- a/system/dummy_infrastructure/README.md +++ b/system/dummy_infrastructure/README.md @@ -4,7 +4,6 @@ ## 使用方法 - ```sh ros2 launch dummy_infrastructure dummy_infrastructure.launch.xml ros2 run rqt_reconfigure rqt_reconfigure @@ -14,30 +13,29 @@ ros2 run rqt_reconfigure rqt_reconfigure ### 入力 -| 名称 | 種別 | 説明 | -| ----------------------- | ---------------------------------------------------- | ---------------------- | +| 名称 | 種別 | 説明 | +| ----------------------- | ------------------------------------------------- | ------------------- | | `~/input/command_array` | `tier4_v2x_msgs::msg::InfrastructureCommandArray` | V2Xインフラコマンド | ### 出力 -| 名前 | タイプ | 説明 | -| -------------------------- | ---------------------------------------------------------------------- | ------------------------------ | +| 名前 | タイプ | 説明 | +| ---------------------- | ---------------------------------------------------- | ---------------------------------- | | `~/output/state_array` | `tier4_v2x_msgs::msg::VirtualTrafficLightStateArray` | バーチャルトラフィックライトアレイ | ## パラメーター ### ノードパラメーター -| 名称 | 種別 | デフォルト値 | 説明 | -| ------------------- | ------ | ------------- | ------------------------------------------------------ | -| `update_rate` | double | `10.0` | タイマーコールバック周期 [Hz] | -| `use_first_command` | bool | `true` | インスト読み取り ID を考慮するかどうするか | -| `use_command_state` | bool | `false` | コマンドの状態を考慮するかどうするか | -| `instrument_id` | string | `` | コマンド ID として使用 | -| `approval` | bool | `false` | `approval` フィールドを ROS パラメータに設定する | -| `is_finalized` | bool | `false` | `finalization` が完了していない場合、一時停止線で停止する | +| 名称 | 種別 | デフォルト値 | 説明 | +| ------------------- | ------ | ------------ | --------------------------------------------------------- | +| `update_rate` | double | `10.0` | タイマーコールバック周期 [Hz] | +| `use_first_command` | bool | `true` | インスト読み取り ID を考慮するかどうするか | +| `use_command_state` | bool | `false` | コマンドの状態を考慮するかどうするか | +| `instrument_id` | string | `` | コマンド ID として使用 | +| `approval` | bool | `false` | `approval` フィールドを ROS パラメータに設定する | +| `is_finalized` | bool | `false` | `finalization` が完了していない場合、一時停止線で停止する | ## 仮定 / 既知の限界 未定です。 - diff --git a/system/duplicated_node_checker/README.md b/system/duplicated_node_checker/README.md index 8111b7224542..e7c2adfedfc4 100644 --- a/system/duplicated_node_checker/README.md +++ b/system/duplicated_node_checker/README.md @@ -7,7 +7,6 @@ ### スタンドアロン起動 - ```bash ros2 launch duplicated_node_checker duplicated_node_checker.launch.xml ``` @@ -16,17 +15,17 @@ ros2 launch duplicated_node_checker duplicated_node_checker.launch.xml トピックステータスとその診断ステータスの対応は次のとおりです。 -| **重複ステータス** | **診断ステータス** | **説明** | -|---|---|---| -| `OK` | OK | 重複は検出されません | -| `重複検出` | エラー | 重複が検出されました | +| **重複ステータス** | **診断ステータス** | **説明** | +| ------------------ | ------------------ | -------------------- | +| `OK` | OK | 重複は検出されません | +| `重複検出` | エラー | 重複が検出されました | ## 入出力 ### 出力 -| 名称 | 型 | 説明 | -| -------------- | --------------------------------- | ------------------- | +| 名称 | 型 | 説明 | +| -------------- | --------------------------------- | -------- | | `/diagnostics` | `diagnostic_msgs/DiagnosticArray` | 診断出力 | ## パラメーター @@ -36,4 +35,3 @@ ros2 launch duplicated_node_checker duplicated_node_checker.launch.xml ## 想定事項 / 制限事項 未定 - diff --git a/system/mrm_comfortable_stop_operator/README.md b/system/mrm_comfortable_stop_operator/README.md index abbfbab76464..911b0888a667 100644 --- a/system/mrm_comfortable_stop_operator/README.md +++ b/system/mrm_comfortable_stop_operator/README.md @@ -10,8 +10,8 @@ MRM comfortable stop operatorは、MRM comfortable stopコマンドに従って ### 入力 -| 名称 | 型 | 説明 | -| ------------------------------------ | ----------------------------------- | ----------------- | +| 名称 | 型 | 説明 | +| -------------------------------------- | ------------------------------------ | --------------- | | `~/input/mrm/comfortable_stop/operate` | `tier4_system_msgs::srv::OperateMrm` | MRM実行オーダー | ### 出力 @@ -84,29 +84,28 @@ Autowareは、以下を含むさまざまな機能を提供します。 - アダプティブクルーズコントロール - 自動運転 -| 名前 | 型 | 説明 | -| ------------------------------------ | -------------------------------------------------------- | ---------------------------------------- | -| `~/output/mrm/comfortable_stop/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRM実行状態 | -| `~/output/velocity_limit` | `tier4_planning_msgs::msg::VelocityLimit` | 速度制限コマンド | -| `~/output/velocity_limit/clear` | `tier4_planning_msgs::msg::VelocityLimitClearCommand` | 速度制限クリアコマンド | +| 名前 | 型 | 説明 | +| -------------------------------------- | ----------------------------------------------------- | ---------------------- | +| `~/output/mrm/comfortable_stop/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRM実行状態 | +| `~/output/velocity_limit` | `tier4_planning_msgs::msg::VelocityLimit` | 速度制限コマンド | +| `~/output/velocity_limit/clear` | `tier4_planning_msgs::msg::VelocityLimitClearCommand` | 速度制限クリアコマンド | ## パラメーター ### ノードパラメーター -| 名称 | 型 | デフォルト値 | 説明 | -| ----------- | ---- | ------------- | ----------------------------- | -| update_rate | int | `10` | タイマーコールバック頻度 [Hz] | +| 名称 | 型 | デフォルト値 | 説明 | +| ----------- | --- | ------------ | ----------------------------- | +| update_rate | int | `10` | タイマーコールバック頻度 [Hz] | ### コアパラメータ -| 名前 | 型 | デフォルト値 | 説明 | -| ---------------- | ------ | ------------- | --------------------------------------------------- | -| min_acceleration | double | `-1.0` | 快適な停止のための最低加速度 [m/s^2] | -| max_jerk | double | `0.3` | 快適な停止のための最大ジャーク [m/s^3] | -| min_jerk | double | `-0.3` | 快適な停止のための最小ジャーク [m/s^3] | +| 名前 | 型 | デフォルト値 | 説明 | +| ---------------- | ------ | ------------ | -------------------------------------- | +| min_acceleration | double | `-1.0` | 快適な停止のための最低加速度 [m/s^2] | +| max_jerk | double | `0.3` | 快適な停止のための最大ジャーク [m/s^3] | +| min_jerk | double | `-0.3` | 快適な停止のための最小ジャーク [m/s^3] | ## 想定事項/既知の制限 TBD. - diff --git a/system/mrm_emergency_stop_operator/README.md b/system/mrm_emergency_stop_operator/README.md index 3db2df7f2491..12eec956ca18 100644 --- a/system/mrm_emergency_stop_operator/README.md +++ b/system/mrm_emergency_stop_operator/README.md @@ -10,10 +10,10 @@ MRM emergency stop operatorは、緊急停止MRM順序に基づいて緊急停 ### 入力 -| 名前 | タイプ | 説明 | -| ---------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| `~/input/mrm/emergency_stop/operate` | `tier4_system_msgs::srv::OperateMrm` | MRM 実行命令 | -| `~/input/control/control_cmd` | `autoware_control_msgs::msg::Control` | 制御コンポーネントの最後のノードから出力される制御コマンド。緊急停止コマンドの初期値に使用されます。 | +| 名前 | タイプ | 説明 | +| ------------------------------------ | ------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `~/input/mrm/emergency_stop/operate` | `tier4_system_msgs::srv::OperateMrm` | MRM 実行命令 | +| `~/input/control/control_cmd` | `autoware_control_msgs::msg::Control` | 制御コンポーネントの最後のノードから出力される制御コマンド。緊急停止コマンドの初期値に使用されます。 | ### 出力 @@ -50,27 +50,26 @@ Planningコンポーネントには、以下を含むその他の機能もあり - **Velocity Planning:** 安全で快適な速度プロファイルを決定します。 - **Safety Checks:** 軌跡が安全で、車両の制限内であることを確認します。 -| 名称 | タイプ | 説明 | -| ----------------------------------------- | ------------------------------------------ | ------------------------------------------- | -| `~/output/mrm/emergency_stop/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRM 実行ステータス | -| `~/output/mrm/emergency_stop/control_cmd` | `autoware_control_msgs::msg::Control` | 緊急停止コマンド | +| 名称 | タイプ | 説明 | +| ----------------------------------------- | ------------------------------------------- | ------------------ | +| `~/output/mrm/emergency_stop/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRM 実行ステータス | +| `~/output/mrm/emergency_stop/control_cmd` | `autoware_control_msgs::msg::Control` | 緊急停止コマンド | ## パラメータ ### ノードパラメータ -| 名称 | 種別 | デフォルト値 | 説明 | -| ---------- | ---- | ------------ | ------------------------------------------ | -| update_rate | int | `30` | タイマーコールバック周波数 [Hz] | +| 名称 | 種別 | デフォルト値 | 説明 | +| ----------- | ---- | ------------ | ------------------------------- | +| update_rate | int | `30` | タイマーコールバック周波数 [Hz] | ### コアパラメーター -| 名称 | タイプ | デフォルト値 | 説明 | -| ------------------- | ------ | ------------- | ---------------------------------------------- | -| target_acceleration | double | `-2.5` | 緊急停止時の目標加速度 [m/s^2] | -| target_jerk | double | `-1.5` | 緊急停止時の目標ジャーク [m/s^3] | +| 名称 | タイプ | デフォルト値 | 説明 | +| ------------------- | ------ | ------------ | -------------------------------- | +| target_acceleration | double | `-2.5` | 緊急停止時の目標加速度 [m/s^2] | +| target_jerk | double | `-1.5` | 緊急停止時の目標ジャーク [m/s^3] | ## 前提条件/既知の制限 未定。 - diff --git a/system/mrm_handler/README.md b/system/mrm_handler/README.md index fe6f5b172961..e45554e0beb6 100644 --- a/system/mrm_handler/README.md +++ b/system/mrm_handler/README.md @@ -14,15 +14,15 @@ MRM Handlerは、OperationModeAvailabilityに含まれるシステム障害状 ### 入力 -| 名称 | 種別 | 説明 | +| 名称 | 種別 | 説明 | | -------------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| `/localization/kinematic_state` | `nav_msgs::msg::Odometry` | 車両が停止しているかどうか判断するために使用 | +| `/localization/kinematic_state` | `nav_msgs::msg::Odometry` | 車両が停止しているかどうか判断するために使用 | | `/system/operation_mode/availability` | `tier4_system_msgs::msg::OperationModeAvailability` | operationModeAvailabilityに示されている適切なMRMをシステム利用可能なMRM動作から選択するために使用 | -| `/vehicle/status/control_mode` | `autoware_vehicle_msgs::msg::ControlModeReport` | 車両モード(自律運転または手動運転)をチェックするために使用 | -| `/system/mrm/emergency_stop/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRM緊急停止動作が利用可能かどうかをチェックするために使用 | -| `/system/mrm/comfortable_stop/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRM快適停止動作が利用可能かどうかをチェックするために使用 | -| `/system/mrm/pull_over_manager/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRMプルオーバー動作が利用可能かどうかをチェックするために使用 | -| `/api/operation_mode/state` | `autoware_adapi_v1_msgs::msg::OperationModeState` | 現在の動作モードがAUTOまたはSTOPであるかどうかを確認するために使用 | +| `/vehicle/status/control_mode` | `autoware_vehicle_msgs::msg::ControlModeReport` | 車両モード(自律運転または手動運転)をチェックするために使用 | +| `/system/mrm/emergency_stop/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRM緊急停止動作が利用可能かどうかをチェックするために使用 | +| `/system/mrm/comfortable_stop/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRM快適停止動作が利用可能かどうかをチェックするために使用 | +| `/system/mrm/pull_over_manager/status` | `tier4_system_msgs::msg::MrmBehaviorStatus` | MRMプルオーバー動作が利用可能かどうかをチェックするために使用 | +| `/api/operation_mode/state` | `autoware_adapi_v1_msgs::msg::OperationModeState` | 現在の動作モードがAUTOまたはSTOPであるかどうかを確認するために使用 | ### 出力 @@ -70,14 +70,14 @@ Autowareは、オープンソースの自律走行ソフトウェアプラット 信頼性は、自律走行システムがさまざまな状況下で予測可能かつ一貫して動作するために重要です。システムは、センサーの故障、天候の変化、交通状況の変化に耐えられるように設計されています。 -| 名前 | 種類 | 説明 | -| --------------------------------------- | ------------------------------------------------- | ----------------------------------------------------- | -| `/system/emergency/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | MRMの適切な実行に必要な(ギアコマンドを送信) | +| 名前 | 種類 | 説明 | +| --------------------------------------- | ------------------------------------------------- | ------------------------------------------------------- | +| `/system/emergency/gear_cmd` | `autoware_vehicle_msgs::msg::GearCommand` | MRMの適切な実行に必要な(ギアコマンドを送信) | | `/system/emergency/hazard_lights_cmd` | `autoware_vehicle_msgs::msg::HazardLightsCommand` | MRMの適切な実行に必要な(ターンシグナルコマンドを送信) | -| `/system/fail_safe/mrm_state` | `autoware_adapi_v1_msgs::msg::MrmState` | MRM実行状態と選択されたMRM挙動を通知 | -| `/system/mrm/emergency_stop/operate` | `tier4_system_msgs::srv::OperateMrm` | MRM緊急停止用実行命令 | -| `/system/mrm/comfortable_stop/operate` | `tier4_system_msgs::srv::OperateMrm` | MRM快適停止用実行命令 | -| `/system/mrm/pull_over_manager/operate` | `tier4_system_msgs::srv::OperateMrm` | MRM停車用実行命令 | +| `/system/fail_safe/mrm_state` | `autoware_adapi_v1_msgs::msg::MrmState` | MRM実行状態と選択されたMRM挙動を通知 | +| `/system/mrm/emergency_stop/operate` | `tier4_system_msgs::srv::OperateMrm` | MRM緊急停止用実行命令 | +| `/system/mrm/comfortable_stop/operate` | `tier4_system_msgs::srv::OperateMrm` | MRM快適停止用実行命令 | +| `/system/mrm/pull_over_manager/operate` | `tier4_system_msgs::srv::OperateMrm` | MRM停車用実行命令 | ## パラメータ @@ -86,4 +86,3 @@ Autowareは、オープンソースの自律走行ソフトウェアプラット ## 前提条件 / 制限事項 未定 - diff --git a/system/system_diagnostic_monitor/README.md b/system/system_diagnostic_monitor/README.md index ee8d14acca6b..b83ad1f0991b 100644 --- a/system/system_diagnostic_monitor/README.md +++ b/system/system_diagnostic_monitor/README.md @@ -4,14 +4,13 @@ ## 設定 -| 名称 | 説明 | -| ------------------------------------------------- | ----------------------------------------------------- | -| [autoware-main.yaml](./config/autoware-main.yaml) | Autowareの基本モニタリングのための診断グラフ。 | +| 名称 | 説明 | +| ------------------------------------------------- | ------------------------------------------------------ | +| [autoware-main.yaml](./config/autoware-main.yaml) | Autowareの基本モニタリングのための診断グラフ。 | | [autoware-psim.yaml](./config/autoware-psim.yaml) | シミュレーター用に一部ユニットを無効にした診断グラフ。 | ## スクリプト -| 名称 | 説明 | -| -------------------------------------------------------------------- | ------------------------------------------------ | +| 名称 | 説明 | +| ---------------------------------------------------------------------- | ------------------------------------ | | [component_state_diagnostics](./script/component_state_diagnostics.py) | コンポーネント状態を変換するノード。 | - diff --git a/system/system_monitor/README.md b/system/system_monitor/README.md index 860cfbe166d7..82322f197c99 100644 --- a/system/system_monitor/README.md +++ b/system/system_monitor/README.md @@ -30,7 +30,6 @@ 他のパッケージと同様に、colcon buildとlaunchを使用します。 - ```sh colcon build source install/setup.bash @@ -56,38 +55,38 @@ CMakeは自動的にビルド環境に応じたビルド対象のソースを選 [使用状況] ✓:サポート、-:サポートなし -| ノード | メッセージ | Intel | arm64(tegra) | arm64(raspi) | メモ | -| --------------- | ---------------------------- | :---: | :----------: | :----------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| CPUモニター | CPU温度 | ✓ | ✓ | ✓ | | -| | CPU使用率 | ✓ | ✓ | ✓ | | -| | CPU負荷平均 | ✓ | ✓ | ✓ | | -| | CPUサーマルスロットリング | ✓ | - | ✓ | | -| | CPU周波数 | ✓ | ✓ | ✓ | 周波数の通知のみで、通常エラーは生成されません。 | -| HDDモニター | HDD温度 | ✓ | ✓ | ✓ | | -| | HDD通電時間 | ✓ | ✓ | ✓ | | -| | HDD総書き込みデータ量 | ✓ | ✓ | ✓ | | -| | HDD復旧エラー | ✓ | ✓ | ✓ | | -| | HDD使用率 | ✓ | ✓ | ✓ | | -| | HDDリードデータレート | ✓ | ✓ | ✓ | | -| | HDDライトデータレート | ✓ | ✓ | ✓ | | -| | HDDリードIOPS | ✓ | ✓ | ✓ | | -| | HDDライトIOPS | ✓ | ✓ | ✓ | | -| | HDD接続 | ✓ | ✓ | ✓ | | -| メモリモニター | メモリ使用率 | ✓ | ✓ | ✓ | | -| ネットワークモニタ | ネットワーク接続 | ✓ | ✓ | ✓ | | -| | ネットワーク使用率 | ✓ | ✓ | ✓ | 使用率の通知のみで、通常エラーは生成されません。 | -| | ネットワークCRCエラー | ✓ | ✓ | ✓ | 周期内のCRCエラー数が閾値に達すると警告が発生します。発生するCRCエラー数は、`ip`コマンドで確認できる値と同じです。 | -| | IPパケット再構成失敗 | ✓ | ✓ | ✓ | | -| NTPモニター | NTPオフセット | ✓ | ✓ | ✓ | | -| プロセスモニター | タスクの概要 | ✓ | ✓ | ✓ | | -| | 高負荷プロセス[0-9] | ✓ | ✓ | ✓ | | -| | 高メモリプロセス[0-9] | ✓ | ✓ | ✓ | | -| GPUモニター | GPU温度 | ✓ | ✓ | - | | -| | GPU使用率 | ✓ | ✓ | - | | -| | GPUメモリ使用率 | ✓ | - | - | | -| | GPUサーマルスロットリング | ✓ | - | - | | -| | GPU周波数 | ✓ | ✓ | - | インテルプラットフォームでは、現在のGPUクロックがGPUでサポートされているかどうかを監視します。 | -| 電圧モニター | CMOSバッテリーステータス | ✓ | - | - | RTCとBIOSのバッテリーの健全性 | +| ノード | メッセージ | Intel | arm64(tegra) | arm64(raspi) | メモ | +| ------------------ | ------------------------- | :---: | :----------: | :----------: | ------------------------------------------------------------------------------------------------------------------ | +| CPUモニター | CPU温度 | ✓ | ✓ | ✓ | | +| | CPU使用率 | ✓ | ✓ | ✓ | | +| | CPU負荷平均 | ✓ | ✓ | ✓ | | +| | CPUサーマルスロットリング | ✓ | - | ✓ | | +| | CPU周波数 | ✓ | ✓ | ✓ | 周波数の通知のみで、通常エラーは生成されません。 | +| HDDモニター | HDD温度 | ✓ | ✓ | ✓ | | +| | HDD通電時間 | ✓ | ✓ | ✓ | | +| | HDD総書き込みデータ量 | ✓ | ✓ | ✓ | | +| | HDD復旧エラー | ✓ | ✓ | ✓ | | +| | HDD使用率 | ✓ | ✓ | ✓ | | +| | HDDリードデータレート | ✓ | ✓ | ✓ | | +| | HDDライトデータレート | ✓ | ✓ | ✓ | | +| | HDDリードIOPS | ✓ | ✓ | ✓ | | +| | HDDライトIOPS | ✓ | ✓ | ✓ | | +| | HDD接続 | ✓ | ✓ | ✓ | | +| メモリモニター | メモリ使用率 | ✓ | ✓ | ✓ | | +| ネットワークモニタ | ネットワーク接続 | ✓ | ✓ | ✓ | | +| | ネットワーク使用率 | ✓ | ✓ | ✓ | 使用率の通知のみで、通常エラーは生成されません。 | +| | ネットワークCRCエラー | ✓ | ✓ | ✓ | 周期内のCRCエラー数が閾値に達すると警告が発生します。発生するCRCエラー数は、`ip`コマンドで確認できる値と同じです。 | +| | IPパケット再構成失敗 | ✓ | ✓ | ✓ | | +| NTPモニター | NTPオフセット | ✓ | ✓ | ✓ | | +| プロセスモニター | タスクの概要 | ✓ | ✓ | ✓ | | +| | 高負荷プロセス[0-9] | ✓ | ✓ | ✓ | | +| | 高メモリプロセス[0-9] | ✓ | ✓ | ✓ | | +| GPUモニター | GPU温度 | ✓ | ✓ | - | | +| | GPU使用率 | ✓ | ✓ | - | | +| | GPUメモリ使用率 | ✓ | - | - | | +| | GPUサーマルスロットリング | ✓ | - | - | | +| | GPU周波数 | ✓ | ✓ | - | インテルプラットフォームでは、現在のGPUクロックがGPUでサポートされているかどうかを監視します。 | +| 電圧モニター | CMOSバッテリーステータス | ✓ | - | - | RTCとBIOSのバッテリーの健全性 | ## ROSパラメータ @@ -107,7 +106,6 @@ CMakeは自動的にビルド環境に応じたビルド対象のソースを選 1. 「msr_reader」を実行するユーザーを作成します。 - ```sh sudo adduser ``` @@ -115,28 +113,24 @@ CMakeは自動的にビルド環境に応じたビルド対象のソースを選 2. 対象システムに `msr` カーネルモジュールをロードする。
`/dev/cpu/CPUNUM/msr` パスが出現する。 - ```sh sudo modprobe msr ``` 3. アクセス制御リスト(ACL)を使用して、読み取り専用アクセス権でMSRにユーザーアクセスを許可します。 - ```sh sudo setfacl -m u::r /dev/cpu/*/msr ``` 4. 'msr_reader'にcapabilityを割り当てます。msrカーネルモジュールにはrawioのcapabilityが必要です。 - ```sh sudo setcap cap_sys_rawio=ep install/system_monitor/lib/system_monitor/msr_reader ``` 5. 作成したユーザとして「msr_reader」を実行し、汎用ユーザとしてsystem_monitorを実行します。 - ```sh su install/system_monitor/lib/system_monitor/msr_reader @@ -159,28 +153,24 @@ CPUモニターと同様に、このパッケージはセキュリティリス 1. 'hdd_reader'を実行するユーザーを作成します。 - ```sh sudo adduser ``` 2. ディスクグループにユーザーを追加します。 - ```sh sudo usermod -a -G disk ``` 3. SCSIカーネルモジュールがATA PASS-THROUGH (12)コマンドを送信するには `rawio` 機能が必要で、NVMeカーネルモジュールは管理コマンドを送信するには `admin` 機能が必要なので、`hdd_reader`に機能を割り当てます。 - ```sh sudo setcap 'cap_sys_rawio=ep cap_sys_admin=ep' install/system_monitor/lib/system_monitor/hdd_reader ``` 4. 作成したユーザーとして `hdd_reader` を実行し、一般的ユーザーとして `system_monitor` を実行します。 - ```sh su install/system_monitor/lib/system_monitor/hdd_reader @@ -206,7 +196,6 @@ CUDA 10.0のインストール手順については、[NVIDIA CUDAインスト たとえば、電圧が2.9V未満になると警告し、2.7V未満になるとエラーを出す場合。 チップセットnct6106でのsensorsの実行結果は次のとおりで、「in7:」はCMOSバッテリの電圧です。 - ```txt $ sensors pch_cannonlake-virtual-0 @@ -230,7 +219,6 @@ fan2: 0 RPM (min = 0 RPM) 次の通り、voltage_monitor.param.yaml の設定値です。 - ```yaml /**: ros__parameters: @@ -243,7 +231,6 @@ fan2: 0 RPM (min = 0 RPM) 上記の例では、トピック/診断に出力されるメッセージは次のとおりです。 電圧<2.9Vの場合: - ```txt name: /autoware/system/resource_monitoring/voltage/cmos_battery message: Warning @@ -255,7 +242,6 @@ fan2: 0 RPM (min = 0 RPM) 電圧 < 2.7V の場合: - ```txt name: /autoware/system/resource_monitoring/voltage/cmos_battery message: Warning @@ -267,7 +253,6 @@ fan2: 0 RPM (min = 0 RPM) そうでない場合は、 - ```txt name: /autoware/system/resource_monitoring/voltage/cmos_battery message: OK @@ -285,4 +270,3 @@ CMOS バッテリー電圧が `voltage_error` または `voltage_warn` より低 [クラス図](docs/class_diagrams.md) を参照してください。 [シーケンス図](docs/seq_diagrams.md) を参照してください。 - diff --git a/system/topic_state_monitor/README.md b/system/topic_state_monitor/README.md index 1e9f4b62709b..3bc1ee6976dd 100644 --- a/system/topic_state_monitor/README.md +++ b/system/topic_state_monitor/README.md @@ -9,20 +9,20 @@ トピックステータスの種類と対応する診断ステータスは次のとおりです。 -| トピック状態 | 診断状態 | 説明 | -|---|---|---| -| `OK` | OK | トピックに異常なし | -| `NotReceived` | ERROR | トピックが未受信 | -| `WarnRate` | WARN | トピックの受信頻度が低下 | -| `ErrorRate` | ERROR | トピックの受信頻度が大幅に低下 | -| `Timeout` | ERROR | トピックサブスクリプションが一定時間停止 | +| トピック状態 | 診断状態 | 説明 | +| ------------- | -------- | ---------------------------------------- | +| `OK` | OK | トピックに異常なし | +| `NotReceived` | ERROR | トピックが未受信 | +| `WarnRate` | WARN | トピックの受信頻度が低下 | +| `ErrorRate` | ERROR | トピックの受信頻度が大幅に低下 | +| `Timeout` | ERROR | トピックサブスクリプションが一定時間停止 | ## 入力 / 出力 ### 入力 -| 名前 | タイプ | 説明 | -|---|---|---| +| 名前 | タイプ | 説明 | +| ---------- | ------------ | ------------------------ | | 任意の名前 | 任意のタイプ | 監視対象のトピックを購読 | ### 出力 @@ -31,61 +31,60 @@ Autowareの自動運転ソフトウェアは、Perception、Planning、Control **Perception** -* センサーからの生のデータを処理し、車載環境の3Dモデルを作成します。 -* 物体検出、物体分類、セグメンテーションなどのタスクを実行します。 +- センサーからの生のデータを処理し、車載環境の3Dモデルを作成します。 +- 物体検出、物体分類、セグメンテーションなどのタスクを実行します。 **Planning** -* 環境マップを使用し、自車位置を決定します。 -* 障害物を回避し、安全な経路を生成する、経路計画と軌跡生成を行います。 +- 環境マップを使用し、自車位置を決定します。 +- 障害物を回避し、安全な経路を生成する、経路計画と軌跡生成を行います。 **Control** -* 経路に従って車両を制御し、加速、ブレーキング、ステアリングを行います。 -* 速度、加速度、ヨー角などの逸脱量を最小限に抑えます。 +- 経路に従って車両を制御し、加速、ブレーキング、ステアリングを行います。 +- 速度、加速度、ヨー角などの逸脱量を最小限に抑えます。 **Autoware**では、Planningコンポーネントが以下を行います。 -* Planningモジュールの主な機能は'post resampling'後のパス生成です。 -* パス生成は、'post resampling'後の以下の情報に基づいて行われます。 -* 'post resampling'後の自車位置と周囲環境のマップ -* 経路制約(速度制限、道路標識など) -* 障害物の検出結果と予測された経路 +- Planningモジュールの主な機能は'post resampling'後のパス生成です。 +- パス生成は、'post resampling'後の以下の情報に基づいて行われます。 +- 'post resampling'後の自車位置と周囲環境のマップ +- 経路制約(速度制限、道路標識など) +- 障害物の検出結果と予測された経路 **Autoware**では、以下のPlanningアルゴリズムが実装されています。 -* **ダイナミックウィンドウアプローチ(DWA):** リアルタイムで経路を生成し、障害物を回避するためのアルゴリズムです。 -* **モデル予測制御(MPC):** 制御入力のシーケンスを最適化して、 заданную経路を追従するためのアルゴリズムです。 +- **ダイナミックウィンドウアプローチ(DWA):** リアルタイムで経路を生成し、障害物を回避するためのアルゴリズムです。 +- **モデル予測制御(MPC):** 制御入力のシーケンスを最適化して、 заданную経路を追従するためのアルゴリズムです。 -| 名前 | 型 | 説明 | -| -------------- | --------------------------------- | ------------------- | +| 名前 | 型 | 説明 | +| -------------- | --------------------------------- | ------------ | | `/diagnostics` | `diagnostic_msgs/DiagnosticArray` | 診断結果出力 | ## パラメータ ### ノードパラメータ -| 名称 | 型 | デフォルト値 | 説明 | -| ----------------- | ------ | ------------- | ------------------------------------------------------------------- | -| `topic` | 文字列 | - | ターゲット・トピック名 | -| `topic_type` | 文字列 | - | ターゲット・トピックの型 (トピックが変換でない場合に使用する) | -| `frame_id` | 文字列 | - | 変換親のフレーム ID (トピックが変換の場合に使用する) | -| `child_frame_id` | 文字列 | - | 変換子のフレーム ID (トピックが変換の場合に使用する) | -| `transient_local` | ブール | false | トピック・サブスクリプションの QoS ポリシー (Transient Local/Volatile) | -| `best_effort` | ブール | false | トピック・サブスクリプションの QoS ポリシー (Best Effort/Reliable) | -| `diag_name` | 文字列 | - | 診断の発行に使用される名前 | -| `update_rate` | double | 10.0 | タイマー・コールバック期間 [Hz] | +| 名称 | 型 | デフォルト値 | 説明 | +| ----------------- | ------ | ------------ | ---------------------------------------------------------------------- | +| `topic` | 文字列 | - | ターゲット・トピック名 | +| `topic_type` | 文字列 | - | ターゲット・トピックの型 (トピックが変換でない場合に使用する) | +| `frame_id` | 文字列 | - | 変換親のフレーム ID (トピックが変換の場合に使用する) | +| `child_frame_id` | 文字列 | - | 変換子のフレーム ID (トピックが変換の場合に使用する) | +| `transient_local` | ブール | false | トピック・サブスクリプションの QoS ポリシー (Transient Local/Volatile) | +| `best_effort` | ブール | false | トピック・サブスクリプションの QoS ポリシー (Best Effort/Reliable) | +| `diag_name` | 文字列 | - | 診断の発行に使用される名前 | +| `update_rate` | double | 10.0 | タイマー・コールバック期間 [Hz] | ### コアパラメータ -| 名称 | タイプ | デフォルト値 | 説明 | -| ------------- | ------ | ------------- | ---------------------------------------------------------------------------------------------------------- | -| `warn_rate` | double | 0.5 | トピックレートがこの値を下回ると、トピックステータスは`WarnRate`になる | -| `error_rate` | double | 0.1 | トピックレートがこの値を下回ると、トピックステータスは`ErrorRate`になる | -| `timeout` | double | 1.0 | トピックサブスクリプションがこの時間を超えて停止すると、トピックステータスは`Timeout`になる | -| `window_size` | int | 10 | 周波数の計算用のターゲットトピックのウィンドウサイズ | +| 名称 | タイプ | デフォルト値 | 説明 | +| ------------- | ------ | ------------ | ------------------------------------------------------------------------------------------- | +| `warn_rate` | double | 0.5 | トピックレートがこの値を下回ると、トピックステータスは`WarnRate`になる | +| `error_rate` | double | 0.1 | トピックレートがこの値を下回ると、トピックステータスは`ErrorRate`になる | +| `timeout` | double | 1.0 | トピックサブスクリプションがこの時間を超えて停止すると、トピックステータスは`Timeout`になる | +| `window_size` | int | 10 | 周波数の計算用のターゲットトピックのウィンドウサイズ | ## 想定条件 / 制約 TBD. - diff --git a/system/velodyne_monitor/README.md b/system/velodyne_monitor/README.md index d4ccaf17ec2f..5521e54916d4 100644 --- a/system/velodyne_monitor/README.md +++ b/system/velodyne_monitor/README.md @@ -12,20 +12,20 @@ Velodyne LiDAR のステータスは `http://[ip_address]/cgi/{info, settings, s 異常ステータスと対応する診断ステータスのタイプは次のとおりです。 -| 異常状態 | 診断ステータス | -| -------------------------------------------------- | ---------------- | -| 異常なし | OK | -| 基板の上面の温度が低すぎる | ERROR | -| 基板の上面の温度が低い | WARN | -| 基板の上面の温度が高すぎる | ERROR | -| 基板の上面の温度が高い | WARN | -| 基板の下面の温度が低すぎる | ERROR | -| 基板の下面の温度が低い | WARN | -| 基板の下面の温度が高すぎる | ERROR | -| 基板の下面の温度が高い | WARN | -| モーターの回転数(rpm)が低すぎる | ERROR | -| モーターの回転数(rpm)が低い | WARN | -| 接続エラー(Velodyne LiDARステータスを取得できない) | ERROR | +| 異常状態 | 診断ステータス | +| ---------------------------------------------------- | -------------- | +| 異常なし | OK | +| 基板の上面の温度が低すぎる | ERROR | +| 基板の上面の温度が低い | WARN | +| 基板の上面の温度が高すぎる | ERROR | +| 基板の上面の温度が高い | WARN | +| 基板の下面の温度が低すぎる | ERROR | +| 基板の下面の温度が低い | WARN | +| 基板の下面の温度が高すぎる | ERROR | +| 基板の下面の温度が高い | WARN | +| モーターの回転数(rpm)が低すぎる | ERROR | +| モーターの回転数(rpm)が低い | WARN | +| 接続エラー(Velodyne LiDARステータスを取得できない) | ERROR | ## 入力 / 出力 @@ -35,27 +35,27 @@ Velodyne LiDAR のステータスは `http://[ip_address]/cgi/{info, settings, s ### 出力 -| Name | Type | 説明 | -| -------------- | --------------------------------- | ------------------- | +| Name | Type | 説明 | +| -------------- | --------------------------------- | -------- | | `/diagnostics` | `diagnostic_msgs/DiagnosticArray` | 診断出力 | ## パラメータ ### ノードパラメータ -| 名前 | 型 | デフォルト値 | 説明 | -| --------- | ------ | ------------- | -------------------------------------------------------- | -| `timeout` | double | 0.5 | Velodyne LiDAR のステータスを取得するための HTTP リクエストのタイムアウト [s] | +| 名前 | 型 | デフォルト値 | 説明 | +| --------- | ------ | ------------ | ----------------------------------------------------------------------------- | +| `timeout` | double | 0.5 | Velodyne LiDAR のステータスを取得するための HTTP リクエストのタイムアウト [s] | ### 主要パラメータ -| 名前 | 型 | デフォルト値 | 説明 | -| ----------------- | ------ | --------------- | ------------------------------------------------------------------------------------------------------------------------- | -| `ip_address` | 文字列 | "192.168.1.201" | ターゲット Velodyne LiDAR の IP アドレス | -| `temp_cold_warn` | double | -5.0 | Velodyne LiDAR の温度がこの値を下回ると、診断ステータスが WARN になります [°C] | -| `temp_cold_error` | double | -10.0 | Velodyne LiDAR の温度がこの値を下回ると、診断ステータスが ERROR になります [°C] | -| `temp_hot_warn` | double | 75.0 | Velodyne LiDAR の温度がこの値を超えると、診断ステータスが WARN になります [°C] | -| `temp_hot_error` | double | 80.0 | Velodyne LiDAR の温度がこの値を超えると、診断ステータスが ERROR になります [°C] | +| 名前 | 型 | デフォルト値 | 説明 | +| ----------------- | ------ | --------------- | ------------------------------------------------------------------------------------------------------------ | +| `ip_address` | 文字列 | "192.168.1.201" | ターゲット Velodyne LiDAR の IP アドレス | +| `temp_cold_warn` | double | -5.0 | Velodyne LiDAR の温度がこの値を下回ると、診断ステータスが WARN になります [°C] | +| `temp_cold_error` | double | -10.0 | Velodyne LiDAR の温度がこの値を下回ると、診断ステータスが ERROR になります [°C] | +| `temp_hot_warn` | double | 75.0 | Velodyne LiDAR の温度がこの値を超えると、診断ステータスが WARN になります [°C] | +| `temp_hot_error` | double | 80.0 | Velodyne LiDAR の温度がこの値を超えると、診断ステータスが ERROR になります [°C] | | `rpm_ratio_warn` | double | 0.80 | モーターの回転数率(= 現在の回転数 / デフォルト回転数)がこの値を下回ると、診断ステータスが WARN になります | | `rpm_ratio_error` | double | 0.70 | モーターの回転数率(= 現在の回転数 / デフォルト回転数)がこの値を下回ると、診断ステータスが ERROR になります | @@ -66,15 +66,14 @@ Velodyne LiDAR のステータスは `http://[ip_address]/cgi/{info, settings, s さらに、各モデルの `temp_hot_***` は動作温度より 20 高く設定されています。 現在、`VLP-16.param.yaml` が最も低い仕様であるためデフォルト引数として使用されています。 -| モデル名 | 設定名 | 実稼働温度 [℃] | -| --------------------- | -------------------------------------- | ------------------------- | -| VLP-16 | VLP-16.param.yaml | -10 ~ 60 | -| VLP-32C | VLP-32C.param.yaml | -20 ~ 60 | -| VLS-128 | VLS-128.param.yaml | -20 ~ 60 | -| Velarray M1600 | Velarray_M1600.param.yaml | -40 ~ 85 | -| HDL-32E | HDL-32E.param.yaml | -10 ~ 60 | +| モデル名 | 設定名 | 実稼働温度 [℃] | +| -------------- | ------------------------- | -------------- | +| VLP-16 | VLP-16.param.yaml | -10 ~ 60 | +| VLP-32C | VLP-32C.param.yaml | -20 ~ 60 | +| VLS-128 | VLS-128.param.yaml | -20 ~ 60 | +| Velarray M1600 | Velarray_M1600.param.yaml | -40 ~ 85 | +| HDL-32E | HDL-32E.param.yaml | -10 ~ 60 | ## 前提 / 制限事項 このノードは[http_client](https://github.com/microsoft/cpprestsdk)を使用し、結果をGETメソッドで要求します。このノードは結果を取得するのに数秒かかります。GETリクエストが成功しない場合はタイムアウト例外を生成します。これは頻繁に発生し、診断アグリゲータが出力を古くしたと判断します。そのため、この結果をレーザスキャナのエラーを判断するために使用しなくなり、レーザスキャナのステータスを確認するためにのみ監視することをお勧めします。 - diff --git a/tools/reaction_analyzer/README.md b/tools/reaction_analyzer/README.md index fac0822755ed..f5cdb9d06136 100644 --- a/tools/reaction_analyzer/README.md +++ b/tools/reaction_analyzer/README.md @@ -40,7 +40,6 @@ reaction analyzerパッケージの主な目的は、ROSベースの自動運転 - 次の`reaction_chain`リストで、計画ノードと制御ノードのみを定義する必要があります。デフォルトのパラメータで、次のコマンドでテストを開始できます。 - ```bash ros2 launch reaction_analyzer reaction_analyzer.launch.xml running_mode:=planning_control vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit map_path:=[MAP_PATH] ``` @@ -54,7 +53,6 @@ ros2 launch reaction_analyzer reaction_analyzer.launch.xml running_mode:=plannin - zip ファイルを展開し、`.db3` ファイルのパスをパラメーター `path_bag_without_object` と `path_bag_with_object` に設定します。 - 以下のコマンドでテストを開始できます。 - ```bash ros2 launch reaction_analyzer reaction_analyzer.launch.xml running_mode:=perception_planning vehicle_model:=sample_vehicle sensor_model:=awsim_labs_sensor_kit map_path:=[MAP_PATH] ``` @@ -82,7 +80,6 @@ ros2 launch reaction_analyzer reaction_analyzer.launch.xml running_mode:=percept - AWSIM 環境を実行します。AWSIM のチュートリアルは [こちら](https://autowarefoundation.github.io/AWSIM/main/GettingStarted/QuickStartDemo/) からご覧いただけます。 - 次のコマンドで e2e_simulator を実行します。 - ```bash ros2 launch autoware_launch e2e_simulator.launch.xml vehicle_model:=sample_vehicle sensor_model:=awsim_labs_sensor_kit map_path:=[MAP_PATH] ``` @@ -100,7 +97,6 @@ ros2 launch autoware_launch e2e_simulator.launch.xml vehicle_model:=sample_vehic - パラメータが記録された後、テスト用の ROS バッグを記録する必要があります。ROS バッグを記録するには、次のコマンドを使用できます。 - ```bash ros2 bag record --all ``` @@ -121,30 +117,30 @@ ros2 bag record --all ## パラメータ -| 名称 | タイプ | 説明 | -| ----------------------------------------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| `timer_period` | double | [s] メイン処理タイマーのピリオド。 | -| `test_iteration` | int | テストの繰り返し回数。 | -| `output_file_path` | string | テスト結果と統計情報を格納するディレクトリパス。 | -| `spawn_time_after_init` | double | [s] オブジェクトをスポーンする前の初期化後のタイムディレイ。 `perception_planning` モードでのみ有効。 | -| `spawn_distance_threshold` | double | [m] オブジェクトスポーンの距離しきい値。 `planning_control` モードでのみ有効。 | -| `poses.initialization_pose` | struct | 車両の初期姿勢で `x`, `y`, `z`, `roll`, `pitch`, `yaw` フィールドを含む。 `planning_control` モードでのみ有効。 | +| 名称 | タイプ | 説明 | +| ---------------------------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `timer_period` | double | [s] メイン処理タイマーのピリオド。 | +| `test_iteration` | int | テストの繰り返し回数。 | +| `output_file_path` | string | テスト結果と統計情報を格納するディレクトリパス。 | +| `spawn_time_after_init` | double | [s] オブジェクトをスポーンする前の初期化後のタイムディレイ。 `perception_planning` モードでのみ有効。 | +| `spawn_distance_threshold` | double | [m] オブジェクトスポーンの距離しきい値。 `planning_control` モードでのみ有効。 | +| `poses.initialization_pose` | struct | 車両の初期姿勢で `x`, `y`, `z`, `roll`, `pitch`, `yaw` フィールドを含む。 `planning_control` モードでのみ有効。 | | `poses.entity_params` | struct | エンティティ(障害物など)のパラメータで `x`, `y`, `z`, `roll`, `pitch`, `yaw`, `x_dimension`, `y_dimension`, `z_dimension` を含む。 | -| `poses.goal_pose` | struct | 車両のゴール姿勢で `x`, `y`, `z`, `roll`, `pitch`, `yaw` フィールドを含む。 | -| `topic_publisher.path_bag_without_object` | string | オブジェクトなしの ROS バッグファイルへのパス。 `perception_planning` モードでのみ有効。 | -| `topic_publisher.path_bag_with_object` | string | オブジェクトありの ROS バッグファイルへのパス。 `perception_planning` モードでのみ有効。 | -| `topic_publisher.spawned_pointcloud_sampling_distance` | double | [m] スポーンされたオブジェクトの点群のサンプリング距離。 `planning_control` モードでのみ有効。 | -| `topic_publisher.dummy_perception_publisher_period` | double | [s] ダミー知覚データの公開周期。 `planning_control` モードのみ有効。 | -| `topic_publisher.pointcloud_publisher.pointcloud_publisher_type` | string | PointCloud2 メッセージの公開方法を定義します。上記で説明したモード。 | -| `topic_publisher.pointcloud_publisher.pointcloud_publisher_period` | double | [s] PointCloud2 メッセージの公開周期。 | -| `topic_publisher.pointcloud_publisher.publish_only_pointcloud_with_object` | bool | デフォルトは false。オブジェクトのある点群メッセージのみを公開します。 | -| `reaction_params.first_brake_params.debug_control_commands` | bool | デバッグ公開フラグ。 | -| `reaction_params.first_brake_params.control_cmd_buffer_time_interval` | double | [s] 制御コマンドのバッファー処理のタイムインターバル。 | -| `reaction_params.first_brake_params.min_number_descending_order_control_cmd` | int | ブレーキトリガーの降順制御コマンドの最小数。 | -| `reaction_params.first_brake_params.min_jerk_for_brake_cmd` | double | [m/s³] ブレーキコマンドを発行するための最小ジャーク値。 | -| `reaction_params.search_zero_vel_params.max_looking_distance` | double | [m] 軌道上でゼロ速度を探すための最大探索距離。 | -| `reaction_params.search_entity_params.search_radius` | double | [m] スポーンされたエンティティの検索半径。自己位置とエンティティ位置間の距離。 | -| `reaction_chain` | struct | トピックとそのトピックのメッセージタイプを持つノードのリスト。 | +| `poses.goal_pose` | struct | 車両のゴール姿勢で `x`, `y`, `z`, `roll`, `pitch`, `yaw` フィールドを含む。 | +| `topic_publisher.path_bag_without_object` | string | オブジェクトなしの ROS バッグファイルへのパス。 `perception_planning` モードでのみ有効。 | +| `topic_publisher.path_bag_with_object` | string | オブジェクトありの ROS バッグファイルへのパス。 `perception_planning` モードでのみ有効。 | +| `topic_publisher.spawned_pointcloud_sampling_distance` | double | [m] スポーンされたオブジェクトの点群のサンプリング距離。 `planning_control` モードでのみ有効。 | +| `topic_publisher.dummy_perception_publisher_period` | double | [s] ダミー知覚データの公開周期。 `planning_control` モードのみ有効。 | +| `topic_publisher.pointcloud_publisher.pointcloud_publisher_type` | string | PointCloud2 メッセージの公開方法を定義します。上記で説明したモード。 | +| `topic_publisher.pointcloud_publisher.pointcloud_publisher_period` | double | [s] PointCloud2 メッセージの公開周期。 | +| `topic_publisher.pointcloud_publisher.publish_only_pointcloud_with_object` | bool | デフォルトは false。オブジェクトのある点群メッセージのみを公開します。 | +| `reaction_params.first_brake_params.debug_control_commands` | bool | デバッグ公開フラグ。 | +| `reaction_params.first_brake_params.control_cmd_buffer_time_interval` | double | [s] 制御コマンドのバッファー処理のタイムインターバル。 | +| `reaction_params.first_brake_params.min_number_descending_order_control_cmd` | int | ブレーキトリガーの降順制御コマンドの最小数。 | +| `reaction_params.first_brake_params.min_jerk_for_brake_cmd` | double | [m/s³] ブレーキコマンドを発行するための最小ジャーク値。 | +| `reaction_params.search_zero_vel_params.max_looking_distance` | double | [m] 軌道上でゼロ速度を探すための最大探索距離。 | +| `reaction_params.search_entity_params.search_radius` | double | [m] スポーンされたエンティティの検索半径。自己位置とエンティティ位置間の距離。 | +| `reaction_chain` | struct | トピックとそのトピックのメッセージタイプを持つノードのリスト。 | ## 制限 @@ -181,4 +177,3 @@ ros2 bag record --all ## 将来の改善点 - 反応分析は、より多くの反応タイプを追加することで改善できます。現在サポートしているのは `FIRST_BRAKE`、`SEARCH_ZERO_VEL`、`SEARCH_ENTITY` だけです。メッセージ タイプごとに反応タイプを追加することで拡張できます。 - diff --git a/vehicle/autoware_accel_brake_map_calibrator/README.md b/vehicle/autoware_accel_brake_map_calibrator/README.md index 69a28ec7a4a3..5b3227d64aaf 100644 --- a/vehicle/autoware_accel_brake_map_calibrator/README.md +++ b/vehicle/autoware_accel_brake_map_calibrator/README.md @@ -10,14 +10,12 @@ Autoware の起動後、次のコマンドで `autoware_accel_brake_map_calibrator` を実行し、自律走行を行います。注:自律走行中に同じ車両インターフェイスを使用できる場合は、手動走行でもデータを収集できます(例:ジョイスティックの使用)。 - ```sh ros2 launch autoware_accel_brake_map_calibrator accel_brake_map_calibrator.launch.xml rviz:=true ``` もしrosbagファイルを使用したい場合は、以下のコマンドを実行してください。 - ```sh ros2 launch autoware_accel_brake_map_calibrator accel_brake_map_calibrator.launch.xml rviz:=true use_sim_time:=true ros2 bag play --clock @@ -51,14 +49,13 @@ ros2 bag play --clock `accel brake map_calibrator` はキャリブレーションのステータスに応じて診断メッセージを発行します。診断タイプ `WARN` は、現在のアクセル/ブレーキマップが不正確であると推定されることを示します。この状況では、アクセル/ブレーキマップの再キャリブレーションを実行することを強くお勧めします。 -| 状態 | 診断タイプ | 診断メッセージ | 説明 | -| ----------------------- | ---------------- | ------------------------------------------------- | -------------------------------------------- | -| キャリブレーション不要 | `OK` | "OK" | | -| キャリブレーション必要 | `WARN` | "アクセル/ブレーキマップのキャリブレーションが必要です。" | 現在のアクセル/ブレーキマップの精度は低いかもしれません。 | +| 状態 | 診断タイプ | 診断メッセージ | 説明 | +| ---------------------- | ---------- | --------------------------------------------------------- | --------------------------------------------------------- | +| キャリブレーション不要 | `OK` | "OK" | | +| キャリブレーション必要 | `WARN` | "アクセル/ブレーキマップのキャリブレーションが必要です。" | 現在のアクセル/ブレーキマップの精度は低いかもしれません。 | この診断ステータスは、以下のROSトピックでも確認できます。 - ```sh ros2 topic echo /accel_brake_map_calibrator/output/update_suggest ``` @@ -89,7 +86,6 @@ ros2 topic echo /accel_brake_map_calibrator/output/update_suggest 以下のコマンドで、較正で使用されたデータのプロットを表示します。各速度範囲のプロットでは、ペダルと加速度の関係が分布表示されており、ピッチ角に応じて色付けされた生のデータポイントが含まれています。 - ```sh ros2 run autoware_accel_brake_map_calibrator view_plot.py ``` @@ -104,7 +100,6 @@ ros2 run autoware_accel_brake_map_calibrator view_plot.py 各地図セル内のすべてのデータについて。 - ```sh ros2 run autoware_accel_brake_map_calibrator view_statistics.py ``` @@ -113,7 +108,6 @@ ros2 run autoware_accel_brake_map_calibrator view_statistics.py 次のコマンドでいつでも加速およびブレーキマップを保存できます。 - ```sh ros2 service call /accel_brake_map_calibrator/update_map_dir tier4_vehicle_msgs/srv/UpdateAccelBrakeMap "path: ''" ``` @@ -122,48 +116,48 @@ AutowareでAccel_map.csv/brake_map.csvを読み込むデフォルトのディレ 1.「パネル」タブをクリックして、AccelBrakeMapCalibratorButtonPanelを選択します。 - ![add_panel](./media/add_panel.png) +![add_panel](./media/add_panel.png) 2.パネルを選択すると、ボタンがRVizの下部に表示されます。 - ![calibrator_button_panel](./media/calibrator_button_panel.png) +![calibrator_button_panel](./media/calibrator_button_panel.png) 3.ボタンを押すと、accel /ブレーキマップが保存されます。(キャリブレーターノードが実行されていない場合など、特定の状況ではボタンを押せません。) - ![push_calibration_button](./media/push_calibration_button.png) +![push_calibration_button](./media/push_calibration_button.png) ## パラメータ ## システムパラメータ -| 名称 | タイプ | 説明 | デフォルト値 | -| :-----------------------------------| :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- | -| update_method | string | マップのキャリブレーション手法を選択できます。"update_offset_each_cell" は、マップ上の各グリッドセルのオフセットを計算します。 "update_offset_total" は、マップの合計オフセットを計算します。 | "update_offset_each_cell" | -| get_pitch_method | string | "tf": tf からピッチを取得する、"none": ピッチ検証とピッチ補正を実行できません。 | "tf" | -| pedal_accel_graph_output | bool | true の場合、ペダルアクセルのログを出力します。 | true | -| progress_file_output | bool | true の場合、更新プロセスのログと CSV ファイルを出力します。 | false | -| default_map_dir | str | デフォルトのマップディレクトリ | [autoware_raw_vehicle_cmd_converter のディレクトリ]/data/default/ | -| calibrated_map_dir | str | キャリブレーションされたマップディレクトリ | [autoware_accel_brake_map_calibrator のディレクトリ]/config/ | -| update_hz | double | 更新の Hz | 10.0 | +| 名称 | タイプ | 説明 | デフォルト値 | +| :----------------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- | +| update_method | string | マップのキャリブレーション手法を選択できます。"update_offset_each_cell" は、マップ上の各グリッドセルのオフセットを計算します。 "update_offset_total" は、マップの合計オフセットを計算します。 | "update_offset_each_cell" | +| get_pitch_method | string | "tf": tf からピッチを取得する、"none": ピッチ検証とピッチ補正を実行できません。 | "tf" | +| pedal_accel_graph_output | bool | true の場合、ペダルアクセルのログを出力します。 | true | +| progress_file_output | bool | true の場合、更新プロセスのログと CSV ファイルを出力します。 | false | +| default_map_dir | str | デフォルトのマップディレクトリ | [autoware_raw_vehicle_cmd_converter のディレクトリ]/data/default/ | +| calibrated_map_dir | str | キャリブレーションされたマップディレクトリ | [autoware_accel_brake_map_calibrator のディレクトリ]/config/ | +| update_hz | double | 更新の Hz | 10.0 | ## アルゴリズムパラメータ -| 名称 | 種別 | 説明 | デフォルト値 | -| :----------------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :------------ | -| initial_covariance | double | 初期加速度マップの共分散 (共分散が大きいほど更新速度が向上) | 0.05 | -| velocity_min_threshold | double | これより小さい速度は更新に使用されない。 | 0.1 | -| velocity_diff_threshold | double | 速度データがこのしきい値よりグリッド参照速度 (中央値) から離れている場合、関連データは更新に使用されない。 | 0.556 | -| max_steer_threshold | double | ステアリング角度がこの値より大きい場合、関連データは更新に使用されない。 | 0.2 | -| max_pitch_threshold | double | ピッチ角度がこの値より大きい場合、関連データは更新に使用されない。 | 0.02 | -| max_jerk_threshold | double | 自車加速度から計算された自車ジャークがこの値より大きい場合、関連データは更新に使用されない。 | 0.7 | -| pedal_velocity_thresh | double | ペダル移動速度がこの値より大きい場合、関連データは更新に使用されない。 | 0.15 | -| pedal_diff_threshold | double | 現在ペダル値がこのしきい値より前の値から離れている場合、関連データは更新に使用されない。 | 0.03 | -| max_accel | double | 速度ソースから計算される加速度の最大値。 | 5.0 | -| min_accel | double | 速度ソースから計算される加速度の最小値。 | -5.0 | -| pedal_to_accel_delay | double | 加速度への actuation_cmd との間の遅延時間 (更新ロジックで考慮)。 | 0.3 | -| update_suggest_thresh | double | RMSE 比率がこの値になる更新の提案フラグ (RMSE 比率: [新しいマップの RMSE] / [元のマップの RMSE])。 | 0.7 | -| max_data_count | int | 視覚化用。各グリッドのデータ数がこの値になると、グリッドの色が赤になる。 | 100 | -| accel_brake_value_source | string | 加速度/ブレーキソースとして actuation_status または actuation_command を使用するかどうか。 | status | +| 名称 | 種別 | 説明 | デフォルト値 | +| :----------------------- | :----- | :--------------------------------------------------------------------------------------------------------- | :----------- | +| initial_covariance | double | 初期加速度マップの共分散 (共分散が大きいほど更新速度が向上) | 0.05 | +| velocity_min_threshold | double | これより小さい速度は更新に使用されない。 | 0.1 | +| velocity_diff_threshold | double | 速度データがこのしきい値よりグリッド参照速度 (中央値) から離れている場合、関連データは更新に使用されない。 | 0.556 | +| max_steer_threshold | double | ステアリング角度がこの値より大きい場合、関連データは更新に使用されない。 | 0.2 | +| max_pitch_threshold | double | ピッチ角度がこの値より大きい場合、関連データは更新に使用されない。 | 0.02 | +| max_jerk_threshold | double | 自車加速度から計算された自車ジャークがこの値より大きい場合、関連データは更新に使用されない。 | 0.7 | +| pedal_velocity_thresh | double | ペダル移動速度がこの値より大きい場合、関連データは更新に使用されない。 | 0.15 | +| pedal_diff_threshold | double | 現在ペダル値がこのしきい値より前の値から離れている場合、関連データは更新に使用されない。 | 0.03 | +| max_accel | double | 速度ソースから計算される加速度の最大値。 | 5.0 | +| min_accel | double | 速度ソースから計算される加速度の最小値。 | -5.0 | +| pedal_to_accel_delay | double | 加速度への actuation_cmd との間の遅延時間 (更新ロジックで考慮)。 | 0.3 | +| update_suggest_thresh | double | RMSE 比率がこの値になる更新の提案フラグ (RMSE 比率: [新しいマップの RMSE] / [元のマップの RMSE])。 | 0.7 | +| max_data_count | int | 視覚化用。各グリッドのデータ数がこの値になると、グリッドの色が赤になる。 | 100 | +| accel_brake_value_source | string | 加速度/ブレーキソースとして actuation_status または actuation_command を使用するかどうか。 | status | ## テストユーティリティースクリプト @@ -177,7 +171,6 @@ AutowareでAccel_map.csv/brake_map.csvを読み込むデフォルトのディレ `accel/brake_tester.py`は、CLIからターゲットの加速/制動コマンドを受け取ります。ターゲット値を`actuation_cmd_publisher.py`に送信し、これが`ActuationCmd`を生成します。次のコマンドを別のターミナルで実行して、これらのスクリプトを実行でき、以下のスクリーンショットのようになります。 - ```bash ros2 run autoware_accel_brake_map_calibrator accel_tester.py ros2 run autoware_accel_brake_map_calibrator brake_tester.py @@ -196,13 +189,13 @@ ros2 run autoware_accel_brake_map_calibrator actuation_cmd_publisher.py #### パラメーター -| 名 | 説明 | デフォルト値 | -| ---------------------- | ---------------------------- | ------------- | -| velocity_min_threshold | 最小速度を除外 | 0.1 | -| max_steer_threshold | 大きなステアリング角を除外 | 0.2 | -| max_pitch_threshold | 大きなピッチ角を除外 | 0.02 | -| max_jerk_threshold | 大きなジャークを除外 | 0.7 | -| pedal_velocity_thresh | 大きなペダリング速度を除外 | 0.15 | +| 名 | 説明 | デフォルト値 | +| ---------------------- | -------------------------- | ------------ | +| velocity_min_threshold | 最小速度を除外 | 0.1 | +| max_steer_threshold | 大きなステアリング角を除外 | 0.2 | +| max_pitch_threshold | 大きなピッチ角を除外 | 0.02 | +| max_jerk_threshold | 大きなジャークを除外 | 0.7 | +| pedal_velocity_thresh | 大きなペダリング速度を除外 | 0.15 | ### update_offset_each_cell @@ -216,10 +209,10 @@ ros2 run autoware_accel_brake_map_calibrator actuation_cmd_publisher.py データの選択は、次のしきい値によって決定されます。 -| 名前 | 既定値 | -| ------------------- | -------- | -| velocity_diff_threshold | 0.556 | -| pedal_diff_threshold | 0.03 | +| 名前 | 既定値 | +| ----------------------- | ------ | +| velocity_diff_threshold | 0.556 | +| pedal_diff_threshold | 0.03 | #### フォーミュラの更新 @@ -233,13 +226,13 @@ $$ #### 変数 -| 変数名 | 記号 | -|---|---| -| 共分散 | $p[n-1]$ | -| マップオフセット | $\theta[n]$ | +| 変数名 | 記号 | +| ----------------- | ----------- | +| 共分散 | $p[n-1]$ | +| マップオフセット | $\theta[n]$ | | forgetting factor | $\lambda$ | -| フィー | $x(=1)$ | -| 測定加速度 | $y$ | +| フィー | $x(=1)$ | +| 測定加速度 | $y$ | ### update_offset_four_cell_around [1] @@ -262,4 +255,3 @@ RLS(再帰的最小二乗法)により、新規取得データ周囲の 4 [1] [Gabrielle Lochrie, Michael Doljevic, Mario Nona, Yongsoon Yoon, Anti-Windup Recursive Least Squares Method for Adaptive Lookup Tables with Application to Automotive Powertrain Control Systems, IFAC-PapersOnLine, Volume 54, Issue 20, 2021, Pages 840-845](https://www.sciencedirect.com/science/article/pii/S240589632102320X) - diff --git a/vehicle/autoware_external_cmd_converter/README.md b/vehicle/autoware_external_cmd_converter/README.md index 32ed47637551..b45581cd767e 100644 --- a/vehicle/autoware_external_cmd_converter/README.md +++ b/vehicle/autoware_external_cmd_converter/README.md @@ -20,12 +20,12 @@ $$ acc_{ref} = Acc(ペダル_d, v_{x,現在}). $$ -| パラメーター | 説明 | -| --------------- | ----------------------------------------------------------------------------------------- | +| パラメーター | 説明 | +| --------------- | --------------------------------------------------------------------------- | | $throttle_d$ | 外部制御コマンドのアクセル値 (`~/in/external_control_cmd.control.throttle`) | -| $brake_d$ | 外部制御コマンドのブレーキ値 (`~/in/external_control_cmd.control.brake`) | -| $v_{x,current}$ | 現在縦速度 (`~/in/odometry.twist.twist.linear.x`) | -| Acc | accel_brake_map | +| $brake_d$ | 外部制御コマンドのブレーキ値 (`~/in/external_control_cmd.control.brake`) | +| $v_{x,current}$ | 現在縦速度 (`~/in/odometry.twist.twist.linear.x`) | +| Acc | accel_brake_map | #### リファレンス速度 @@ -36,39 +36,38 @@ v_{ref} = v_{x,current} + k_{v_{ref}} \cdot \text{sign}_{gear} \cdot acc_{ref}. $$ -| パラメータ | 説明 | -| -------------------- | --------------------------------------------------------------------------- | -| $acc_{ref}$ | 基準加速度 | -| $k_{v_{ref}}$ | 基準速度ゲイン | +| パラメータ | 説明 | +| -------------------- | ---------------------------------------------------------------------- | +| $acc_{ref}$ | 基準加速度 | +| $k_{v_{ref}}$ | 基準速度ゲイン | | $\text{sign}_{gear}$ | ギアコマンド (`~/in/shift_cmd`) (Drive/Low: 1, Reverse: -1, その他: 0) | ## 入力トピック -| 名称 | タイプ | 説明 | -| --------------------------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `~/in/external_control_cmd` | tier4_external_api_msgs::msg::ControlCommand | 目標`スロットル/ブレーキ/操舵角/操舵角速度`は、目的制御コマンドを計算するために必要。 | -| `~/input/shift_cmd"` | autoware_vehicle_msgs::GearCommand | 現在のギア状態。 | -| `~/input/emergency_stop` | tier4_external_api_msgs::msg::Heartbeat | 外部コマンドに対する緊急ハートビート。 | -| `~/input/current_gate_mode` | tier4_control_msgs::msg::GateMode | ゲートモード用のトピック。 | -| `~/input/odometry` | navigation_msgs::Odometry | オドメトリ内のツイストトピックが使用される。 | +| 名称 | タイプ | 説明 | +| --------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------- | +| `~/in/external_control_cmd` | tier4_external_api_msgs::msg::ControlCommand | 目標`スロットル/ブレーキ/操舵角/操舵角速度`は、目的制御コマンドを計算するために必要。 | +| `~/input/shift_cmd"` | autoware_vehicle_msgs::GearCommand | 現在のギア状態。 | +| `~/input/emergency_stop` | tier4_external_api_msgs::msg::Heartbeat | 外部コマンドに対する緊急ハートビート。 | +| `~/input/current_gate_mode` | tier4_control_msgs::msg::GateMode | ゲートモード用のトピック。 | +| `~/input/odometry` | navigation_msgs::Odometry | オドメトリ内のツイストトピックが使用される。 | ## 出力トピック -| 名称 | タイプ | 説明 | -| ------------------- | ----------------------------------- | ------------------------------------------------------------------ | +| 名称 | タイプ | 説明 | +| ------------------- | ----------------------------------- | -------------------------------------------------- | | `~/out/control_cmd` | autoware_control_msgs::msg::Control | 外部コマンドから変換したアッカーマン型制御コマンド | ## パラメータ -| パラメータ | タイプ | 説明 | -| ------------------------- | ------ | ----------------------------------------------------- | -| `ref_vel_gain_` | double | 基準速度ゲイン | -| `timer_rate` | double | タイマーの更新レート | -| `wait_for_first_topic` | double | 最初のトピック受信後にタイムアウトチェックを行う場合 | +| パラメータ | タイプ | 説明 | +| ------------------------- | ------ | ------------------------------------------------------ | +| `ref_vel_gain_` | double | 基準速度ゲイン | +| `timer_rate` | double | タイマーの更新レート | +| `wait_for_first_topic` | double | 最初のトピック受信後にタイムアウトチェックを行う場合 | | `control_command_timeout` | double | 制御コマンドのタイムアウトチェック | | `emergency_stop_timeout` | double | エマージェンシーストップコマンドのタイムアウトチェック | ## 制限事項 未定 - diff --git a/vehicle/autoware_raw_vehicle_cmd_converter/README.md b/vehicle/autoware_raw_vehicle_cmd_converter/README.md index 8939a0c7f907..fe07738f28d5 100644 --- a/vehicle/autoware_raw_vehicle_cmd_converter/README.md +++ b/vehicle/autoware_raw_vehicle_cmd_converter/README.md @@ -34,7 +34,6 @@ $$ その車両の場合、係数は次のとおりでした。 - ```yaml vgr_coef_a: 15.713 vgr_coef_b: 0.053 @@ -47,18 +46,18 @@ vgr_coef_c: 0.042 ## 入力トピック -| 名称 | タイプ | 説明 | -| -------------------------- | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `~/input/control_cmd` | `autoware_control_msgs::msg::Control` | ターゲットの速度/加速度/ステアリング角度/ステアリング角度速度は、アクチュエータコマンドを計算するために必要です。 | -| `~/input/steering"` | `autoware_vehicle_msgs::msg::SteeringReport` | `convert_actuation_to_steering_status: false` の場合のみサブスクライブします。ステアリングフィードバック制御に使用されるステアリングの現在の状態 | -| `~/input/odometry` | `navigation_msgs::Odometry` | オドメトリの `twist` トピックが使用されます。 | +| 名称 | タイプ | 説明 | +| -------------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `~/input/control_cmd` | `autoware_control_msgs::msg::Control` | ターゲットの速度/加速度/ステアリング角度/ステアリング角度速度は、アクチュエータコマンドを計算するために必要です。 | +| `~/input/steering"` | `autoware_vehicle_msgs::msg::SteeringReport` | `convert_actuation_to_steering_status: false` の場合のみサブスクライブします。ステアリングフィードバック制御に使用されるステアリングの現在の状態 | +| `~/input/odometry` | `navigation_msgs::Odometry` | オドメトリの `twist` トピックが使用されます。 | | `~/input/actuation_status` | `tier4_vehicle_msgs::msg::ActuationStatus` | アクチュエータステータスは、車両側に送信されるのと同じタイプのステータスを受信すると想定されています。たとえば、スロットル/ブレーキペダル/ステアリングホイール角度が送信された場合、同じタイプのステータスが受信されます。ステアリングホイール角度の場合は、このノードでステアリングタイヤ角度と VGR の計算に使用されます。 | ## 出力トピック -| 名称 | タイプ | 説明 | -| -------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | -| `~/output/actuation_cmd` | `tier4_vehicle_msgs::msg::ActuationCommandStamped` | 車両が機械的入力を適用するためのアクチュエーションコマンド | +| 名称 | タイプ | 説明 | +| -------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `~/output/actuation_cmd` | `tier4_vehicle_msgs::msg::ActuationCommandStamped` | 車両が機械的入力を適用するためのアクチュエーションコマンド | | `~/output/steering_status` | `autoware_vehicle_msgs::msg::SteeringReport` | `convert_actuation_to_steering_status: true` の場合のみ公開されます。ステアリングタイヤ角度はステアリングホイール角度から計算されて公開されます。 | ## パラメータ @@ -68,4 +67,3 @@ vgr_coef_c: 0.042 ## 制限事項 現在のフィードバック実装は、操舵制御のみに適用されます。 -