Path Sampler#
目的#
このパッケージは、サンプリングベースのPlaningを使用して、走行可能な軌跡を作成するノードを実装します。
機能#
このパッケージを使用すると、次のことができます。
- 軌跡をスムーズにする
- 軌跡を走行可能領域内に保持する
- 静的障害物を回避する
- 有効な軌跡を生成できない場合に停止する
速度は入力パスから取得されることに注意してください。
入出力#
入力#
名前 | タイプ | 説明 |
---|---|---|
~/input/path |
autoware_planning_msgs/msg/Path | 基準経路と対応する走行可能領域 |
~/input/odometry |
nav_msgs/msg/Odometry | 自車位置の現在の状態 |
~/input/objects |
autoware_perception_msgs/msg/PredictedObjects | 回避すべきオブジェクト |
自動運転ソフトウェアのドキュメント#
Planning コンポーネント#
Planning コンポーネントは、センシングと知覚から得られた環境情報を使用して、車両の経路を計画しています。 Planning モジュールは、以下のタスクを実行します。
- 自車位置の確立
- 障害物の検出と分類
- 目的地の決定
- 経路の計画
- 経路の追跡
Planning コンポーネントは、センサーからのリアルタイムデータを処理して、車両の周囲を正確に把握しています。この情報は、衝突回避や効率的なルートプランニングのために使用されています。
Motion Planning モジュール#
Motion Planning モジュールは、Planning コンポーネントが生成した経路に基づいて、車両の動きを制御しています。 Motion Planning モジュールは、以下のタスクを実行します。
- 車両の運動学モデルの確立
- 経路追従の生成
- 経路追従エラーの最小化
- 障害物回避の計画
Motion Planning モジュールは、車両の運動学を考慮して、安全かつ効率的な車両の動きを計画しています。このモジュールは、衝突を回避し、快適な乗り心地を提供する最適な軌跡を生成しています。
Control モジュール#
Control モジュールは、Motion Planning モジュールが生成した軌跡に基づいて、車両を制御しています。 Control モジュールは、以下のタスクを実行します。
- ステアリングの制御
- アクセルの制御
- ブレーキの制御
- 横滑り防止制御
Control モジュールは、車両のactuatorにシグナルを送信して、車両の実際の動きを計画された軌跡に一致させています。このモジュールは、車両の安定性と安全性を確保しながら、正確な制御を実現しています。
Perception モジュール#
Perception モジュールは、車両の周囲を検知し、障害物を識別しています。 Perception モジュールは、以下のタスクを実行します。
- センサーデータの収集
- データの処理とフィルタリング
- 障害物の検出と分類
Perception モジュールは、レーダー、カメラ、LIDAR などのセンサーからのデータを処理して、車両の周囲の正確な地図を作成しています。この情報は、衝突回避や障害物回避のために使用されています。
Localization モジュール#
Localization モジュールは、車両の自車位置と姿勢を決定しています。 Localization モジュールは、以下のタスクを実行します。
- センサーデータの収集
- データの処理とフィルタリング
- 自車位置と姿勢の推定
Localization モジュールは、GPS、IMU、車輪速度センサーなどのセンサーからのデータを処理して、車両の自車位置を正確に特定しています。この情報は、経路プランニングや障害物回避のために使用されています。
Health Monitoring モジュール#
Health Monitoring モジュールは、システムのヘルス状態を監視しています。 Health Monitoring モジュールは、以下のタスクを実行します。
- センサーの健康状態の監視
- データの健全性のチェック
- 障害の検出
- 復旧メカニズムの起動
Health Monitoring モジュールは、システムの健全性を確保し、障害が発生した場合に適切な措置を講じています。このモジュールは、システムの信頼性と安全性を向上させています。
Safety モジュール#
Safety モジュールは、システムの安全性を確保しています。 Safety モジュールは、以下のタスクを実行します。
- 障害物逸脱量の監視
- 加速度逸脱量の監視
- 速度逸脱量の監視
- システムのシャットダウン
Safety モジュールは、システムの安全パラメータを監視し、逸脱量が許容範囲を超えた場合にシステムをシャットダウンしています。このモジュールは、乗客と周囲の安全を確保しています。
Autoware#
Autoware は、オープンソースの自動運転ソフトウェアプラットフォームです。 Autoware は、以下のモジュールを含むコンポーネントベースのアーキテクチャを採用しています。
- Planning
- Motion Planning
- Control
- Perception
- Localization
- Health Monitoring
- Safety
Autoware は、自動運転車両の開発を加速化するために設計されており、用途の広い柔軟なプラットフォームを提供しています。
名称 | タイプ | 説明 |
---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Drivingを実行可能かつ衝突のない生成された軌跡 |
アルゴリズム#
サンプリングベースプランニングは、3つの連続した手順に分解されます。
- サンプリング: 実行可能経路の候補が生成されます。
- プルーニング: 無効な候補が破棄されます。
- 選択: 残りの有効な最適候補が選択されます。
サンプリング#
実行可能経路の候補は、現在の自車状態とターゲット状態に基づいて生成されます。 現在、2つのサンプリングアルゴリズムが実装されています。ベジェ曲線を使用したサンプリングと、フレネフレーム内の多項式を使用したサンプリングです。
プルーニング#
各実行可能経路の候補の有効性は、一連のハード制約を使用してチェックされます。
- 衝突: 静的障害物との衝突がないことを確認
- 曲率: 滑らかな曲率を確保
- 走行可能エリア: 経路が走行可能エリア内にあることを確認
選択#
有効な実行可能経路の候補の中から、一連のソフト制約(つまり、目的関数)を使用して最良の候補が決定されます。
- 曲率: より滑らかな経路を優先
- 長さ: より長い経路を優先
- 横偏差: 基準パスに近い経路を優先
各ソフト制約には重みが関連付けられており、優先度の調整が可能です。
制限#
フレネフレーム内の多項式で生成された候補の品質は、基準パスに大きく依存します。 基準パスが滑らかでない場合、生成された候補はおそらく走行できません。
有効な経路を見つけることができない場合、現在は突然停止する経路が発生します。
autoware_path_optimizer
との比較#
autoware_path_optimizer
は、最適化ベースのアプローチを使用しており、数学的問題の最適解が存在する場合にそれを求めます。
解が見つからない場合、問題の中間数学的表現が原因で、しばしば問題を特定するのが困難です。
比較すると、サンプリングベースアプローチは最適解を保証できませんが、はるかに簡単で、デバッグと調整が容易です。
パラメータの調整方法#
サンプリングベースプランナーは、主に経路の一貫した品質と計算時間のトレードオフを提供します。 良好な経路が見つかることを保証するには、多くの候補を生成する必要があり、それにより計算時間が線形的に増加します。
TODO
狭い道での走行性#
計算時間#
ロバスト性#
その他オプション#
デバッグ方法#
TODO