Doing Real-Time with ROS 2:
Capabilities and Challenges
ROSCon 2019 workshop report
https://www.apex.ai/roscon2019
Geoffrey Biggs
ワークショップの目的
• ROS 2のリアルタイム可能性周り情報共有
• 最近の
Doing real-time with ROS 2: Capabilities and
Challenges
• ROS 2のリアルタイム機能のオーバービューと現状報告
• 特に例で必要性を説明した
• 自動運転
• ドローン
• トラックの自動駐車
• 倉庫ロボットの安全性
• 農業ロボット
• 現在のROS 2のリアルタイム
可能性が知りたいなら読むべき
Lessons learned on real-time and security
• セキュリティーについての話は少ない
• でもROS自体についての情報も少ない
• ネットワークレーヤーのリアルタイム性
• DDSのジッター
• タイムシンクロナイズ
Real Time Hardware
• 制御レベルで具体的にどうやってリアルタイムを果たすかの話
• かなり具体的に!
• リアルタイム初心者にオススメな発表
• ハードウェアの関わりも説明した
• Time Sensitive Networking (TSN)の
話も出るから特に面白かった
Safely in time: Real-time and safety-critical
software development
• なぜリアルタイム性は大事かの説明
• すなわち安全性のため
• そしてどうそれを果たすかの概念を説明
• 文字ばっかり!つまらない!
ROS 2 Execution
• ノードをどうリアルタイムに回すか?
• 簡単ではない!
• コールバックはinterrupt可能か?
• コールバックの優先を
どう指定するか?
• 実行時間Queueの長さがに
影響はあるか?
• Callback groupの提案
• コールバックを優先度で分けて
グループを作る
• グループことにExecutorがある
ROS 2 Static Executor
• 新しく提案されたExecutor
• 現在のExecutorはオーバーヘッドが悪い
• ループごとに新しいwait-setを作らないといけない
• Static executorは動的に登録されているノードなどに変更がない
との前提
An introduction to tooling
• リアルタイム性を評価するためのツールの紹介
• ROS Performance Test
• ROS Tracetools
• SLX Performance Testing Platform
• Silexica SLXの紹介
• 非常にパワーフルな
分析ツール
• ノード、コールバックな
どの実行タイミング分析
• リアルタイムを本当に
果たしているかを
明確にしてくれる
Summary
• リアルタイムサポートはまだ完璧ではない
• が!たくさんの人と会社が取り掛かっていて、あっと言う間に
できそう!
• コアライブラリだけでなくツールも!

Real-Time Workshop Recap

  • 1.
    Doing Real-Time withROS 2: Capabilities and Challenges ROSCon 2019 workshop report https://www.apex.ai/roscon2019 Geoffrey Biggs
  • 2.
  • 3.
    Doing real-time withROS 2: Capabilities and Challenges • ROS 2のリアルタイム機能のオーバービューと現状報告 • 特に例で必要性を説明した • 自動運転 • ドローン • トラックの自動駐車 • 倉庫ロボットの安全性 • 農業ロボット • 現在のROS 2のリアルタイム 可能性が知りたいなら読むべき
  • 4.
    Lessons learned onreal-time and security • セキュリティーについての話は少ない • でもROS自体についての情報も少ない • ネットワークレーヤーのリアルタイム性 • DDSのジッター • タイムシンクロナイズ
  • 5.
    Real Time Hardware •制御レベルで具体的にどうやってリアルタイムを果たすかの話 • かなり具体的に! • リアルタイム初心者にオススメな発表 • ハードウェアの関わりも説明した • Time Sensitive Networking (TSN)の 話も出るから特に面白かった
  • 6.
    Safely in time:Real-time and safety-critical software development • なぜリアルタイム性は大事かの説明 • すなわち安全性のため • そしてどうそれを果たすかの概念を説明 • 文字ばっかり!つまらない!
  • 7.
    ROS 2 Execution •ノードをどうリアルタイムに回すか? • 簡単ではない! • コールバックはinterrupt可能か? • コールバックの優先を どう指定するか? • 実行時間Queueの長さがに 影響はあるか? • Callback groupの提案 • コールバックを優先度で分けて グループを作る • グループことにExecutorがある
  • 8.
    ROS 2 StaticExecutor • 新しく提案されたExecutor • 現在のExecutorはオーバーヘッドが悪い • ループごとに新しいwait-setを作らないといけない • Static executorは動的に登録されているノードなどに変更がない との前提
  • 9.
    An introduction totooling • リアルタイム性を評価するためのツールの紹介 • ROS Performance Test • ROS Tracetools • SLX Performance Testing Platform • Silexica SLXの紹介 • 非常にパワーフルな 分析ツール • ノード、コールバックな どの実行タイミング分析 • リアルタイムを本当に 果たしているかを 明確にしてくれる
  • 10.