4.1K Views
March 23, 23
スライド概要
2023/3/13「TIER IV Computing System Workshop 2023」
発表者:矢野 篤志
Mar. 13th 2023 TIER IV Computing System Workshop 2023 最悪応答時間分析手法の Autowareへの適用 矢野 篤志 EmbIV 埼玉大学大学院 安積研究室 M2
Outline ◆前提知識 ◆使用ツール ◆Autowareへの適用 ◆評価 ◆まとめ 2
Outline ◆前提知識 3
[前提知識] ROS (Robot Operating System) 2 ◆ロボット開発におけるライブラリやツールを提供 ◆世界で最も利用されているロボットミドルウェア ROS の立ち位置 https://metrics.ros.org/index.html https://intra.ece.ucr.edu/~hyoseung/pdf/rtas21_picas_slides.pdf ROS 利用者数の増加 4
[前提知識] Autoware ◆TierIVが開発するROS 2ベースの自動運転システム ◆様々な機能群で構成されている ⁃ センシング・自己位置推定・物体認識・経路計画・車体制御 https://intra.ece.ucr.edu/~hyoseung/pdf/rtas21_picas_slides.pdf 5
[前提知識] ROS 2のアプリケーション構成要素 ROS 2アプリケーションは複数のノードの通信によって実現されている ⁃ ノード:プログラムの実行単位 ⁃ コールバック:イベントに反応し、ノード間の通信などに使われる関数 Node cb Node Node cb cb cb 6
[前提知識] コールバックチェーン コールバックは, 主にタイマコールバック・レギュラーコールバックに分けられる タイマコールバック レギュラーコールバック ROS 2アプリケーション コールバックチェーン 7
[前提知識] コールバックチェーンの最悪応答時間 全てのチェーンインスタンスの中で, 終了時間とトリガ時間の最大の差 :タイマコールバック Chain 2 の最悪応答時間 8
[前提知識] 最悪応答時間分析手法とは あるコールバックチェーンを考えた時, 概要 システム実行中にそのチェーンの実行に干渉する(実行を遅らせる) チェーンを全て考慮して, 起こり得る最大の応答時間を数学的に証明する ◆導出された最悪応答時間でチェーンが処理された場合にも対応できる 利点 システム設計になっていれば, 安全であることが理論的に保証される ◆システムの性能評価指標の1つになる 9
[前提知識] 本発表の概要 Autowareをコールバックチェーンの集合と考え, チェーンベースの最悪応答時間分析手法を適用する 10
Outline ◆使用ツール 11
[使用ツール] チェーンベーススケジューリングフレームワーク (PiCAS) 2021年にリアルタイムスケジューリングのトップカンファレンス & ROSCONで発表された ROS 2アプリケーションのためのスケジューリングフレームワーク https://www.youtube.com/watch?v=MxrOGQBebPA 12
[使用ツール] PiCASのキーとなる考え方 チェーンの後ろにあるコールバックほど高い優先度を与えることで, チェーンの自己干渉を防ぐ ⁃ 自己干渉:自身のインスタンスから受ける遅延 13
[使用ツール] 本発表の前提 AutowareをPiCASフレームワークでスケジューリングしたと想定して, 最悪応答時間分析を適用 理由 ROS 2デフォルトの Completely Fair Scheduler (CFS) では, 全てのチェーンが干渉要因になり, 分析がとても悲観的になるため 14
[使用ツール] PiCASフレームワークにおける最悪応答時間の導出 PiCASは固定優先度スケジューリングであるため, 比較的単純な式で最悪応答時間が導出できる 最悪応答時間導出式 必要な情報 ◆コールバックチェーンの優先度 ◆コールバックの繋がり ◆チェーンの先頭のコールバックの周期 ◆各コールバックの最悪実行時間 https://intra.ece.ucr.edu/~hyoseung/pdf/rtas21_picas_slides.pdf 15
[使用ツール] 情報収集のための計測ツール 必要な情報を収集するために CARET (Chain-Aware ROS Evaluation Tool) を使用 CARET概要 可視化の例 ◆ROSアプリケーション専用の性能解析ツール ◆コールバック単位の実行時間だけでなく、 ◆コールバックチェーンのメッセージフローも 計測・可視化できる 16
Outline ◆Autowareへの適用 17
[Autowareへの適用] Autowareの解析 AutowareのチュートリアルをCARETで計測 https://autowarefoundation.github.io/autoware-documentation/main/tutorials/ad-hoc-simulation/rosbag-replay-simulation/ 18
[Autowareへの適用] 計測で得られたAutowareのコールバックグラフ ※TierIVの方が開発された別のツールで可視化 https://github.com/takeshi-iwanari/dear_ros_node_viewer 19
[Autowareへの適用] コールバックチェーンへの分割の問題点 閉路 Autowareには閉路が存在する ⁃ 自己位置の補正 複数のサブスクライバ を持つノード ◆複数の入力をマージして出力 ⁃ 複数のセンサ情報の結合 ◆異なる入力に対して異なる出力 複数のパブリッシャ を持つノード 複数のノードに対して出力 ⁃ 自己位置情報 20
[Autowareへの適用] チェーンへの分割はヒュースティックアルゴリズムで行う トリガのセマンティクスを理解するために 理由1 実装を把握する必要があり, 膨大な時間と知識が必要 理由2 実装が変更されたら分割方法も変更が必要 21
[Autowareへの適用] コールバックチェーンへの分割ヒューリスティック 1. 先頭からホップ数計算し、後続のコールバックから前へのエッジは削除 PiCASは自己干渉が起きないため, 1 2 3 4 設 計 理 由 2の実行1回に対して, 4も丁度1回すぐに実行される ため問題無いと判断 2. タイマコールバックへのエッジを全て削除 設 計 理 由 チェーンの定義より 22
[Autowareへの適用] コールバックチェーンへの分割ヒューリスティック 3. 複数のサブスクライバがある場合は, クリティカルパスからのエッジでトリガされるとし, そうでないエッジを削除 設 計 理 由 クリティカルパス以外からの入力は 補助的な情報であるという 推測と経験即に基づく 4. 分岐がある場合は, クリティカルパスとそれ以外で分割する 設 計 理 由 クリティカルパスへの出力が 重要な情報であるという 推測と経験即に基づく 23
[Autowareへの適用] チェーンへの分割結果 ヒューリスティックアルゴリズムにより, CARETの計測データからチェーンの分割まで自動化可能 24
[Autowareへの適用] レギュラーコールバックで始まるチェーンの扱い方 ◆先頭のレギュラーコールバックを, 最小到達間隔 𝒅 を持つ散発的タスクとして扱う ◆そして, 最悪応答時間分析では, 𝒅 を周期としたタイマコールバックとして扱える :タイマコールバック 𝒅 𝒅= の最良実行時間 25
[Autowareへの適用] チェーンの優先度決定 PiCASで示された定理に従って, 後ろのチェーンほど高い優先度を付けることで, 自己干渉を防ぐ チェーンへの拡張 26
[Autowareへの適用] PiCASアルゴリズムの実装 PiCASアルゴリズム 入力 出力 ◆エグゼキュータの最大数 ◆コールバック優先度 ◆使用可能なCPUコア数 ◆ノードのエグゼキュータへの ◆チェーンセット ◆チェーン優先度 割り当て ◆エグゼキュータのコアへの 割り当て 27
[Autowareへの適用] 最悪応答時間の導出 最悪応答時時間 入力 出力 ◆エグゼキュータの最大数 ◆使用可能なCPUコア数 ◆チェーンセット 各チェーンの最悪応答時間 ◆チェーン優先度 28
Outline ◆評価 29
[評価] 主要チェーンの最悪応答時間と最大観測レイテンシの比較 17ms 58ms 30
[評価] 主要チェーンの最悪応答時間と最大観測レイテンシの比較 466ms 75ms 31
[評価] 主要チェーンの最悪応答時間と最大観測レイテンシの比較 ◆全てのチェーンで観測値の最大値を上回った → 導出した境界は安全 結果 ◆最悪応答時間分析の境界値は観測値の最大値の約1.5—3倍 → やや悲観的 32
[評価] 悲観性の原因考察1 レギュラーコールバックをタイマコールバックとみなす場合の周期が悲観的 → 𝑑 の周期でトリガされることはほぼ無い → より適切なモデル化が必要 :タイマコールバック 𝒅 𝒅= の最良実行時間 33
[評価] 悲観性の原因考察2 コールバックの最悪実行時間が悲観的 → 今後は確率に基づく実行時間モデルを導入する 平均値 2022, JSA, Autoware_Perf: A tracing and performance analysis framework for ROS 2 applications 最悪実行時間 34
Outline ◆まとめ 35
まとめ ◆ 研究背景・問題点 ⁃ ROS 2ベースの自動運転システムであるAutowareはコールバックチェーンで構成されている ⁃ 最悪応答時間を導出することでシステムの安全性を担保可能 ◆ アプローチ ⁃ 応答時間分析に必要な情報をCARETで計測 ⁃ Autowareを単一周期コールバックチェーンに分割するヒューリスティックアルゴリズムの提案 ⁃ 各チェーンの優先度を決め、PiCASフレームワーク上での最悪応答時間を導出 ◆ 評価 ⁃ 導出した最悪応答時間を観測値が上回ることは無かった ⁃ やや悲観的だが不可能ではない値 ◆ 拡張の方針 ⁃ 確率的実行時間モデルの導入 ⁃ ヒューリスティックアルゴリズムの性能改善 ⁃ より良い分析方法検討 36