Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rosのリアルタイムツールの紹介

6,697 views

Published on

Real-time tools for ROS

Published in: Software
  • Sex in your area is here: ❶❶❶ http://bit.ly/2Q98JRS ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❶❶❶ http://bit.ly/2Q98JRS ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Rosのリアルタイムツールの紹介

  1. 1. 立命館大学 情報理工学研究科 鈴木 祐平 ROSのリアルタイムツールの紹介
  2. 2. リアルタイム分野でのROSの需要 • 自立型自動運転車の開発が盛ん – ROSの利用がデファクトスタンダード – 障害物検知を始め、リアルタイム性が求められる機能が多数存在する 2 例:自動運転ソフトウェアAutoware※ ※“Autoware,” https://github.com/CPFL/Autoware
  3. 3. ROSの通信モデル Node topic B F C J L M A D H K E G I LiDAR Camera driver 3 • Publish/Scribeモデル – : ソフトフェアの実行単位 – : データのやり取りを行う名前付きバス – : 依存関係 ※“Autoware,” https://github.com/CPFL/Autoware障害物距離推定を構成するノード群 ※
  4. 4. ROSの real-time scheduling に対する要求 • Publish/Scribeモデル – : ソフトフェアの実行単位 – : データのやり取りを行う名前付きバス – : 依存関係 Node topic 4 障害物距離推定を構成するノード群 B F C J L M A D H K E G I ROS① 依存関係の考慮が必要 • ノードCはノードA・B・D・Eの処理を待つ必要がある Autowareを構成するノード群 オフラインスケジューリングが好ましい • scheduling overheadがボトルネックになりうる • 一般に依存関係を考慮したスケジューリングはNP困難 ROS② ※“Autoware,” https://github.com/CPFL/Autoware
  5. 5. ROSのリアルタイムツールの開発 • ROSの real-time scheduling に対する要求 1. 依存関係の考慮が必要 2. オフラインスケジューリングが好ましい • 開発要件 1. アプリケーションに一切の変更を必要としない 2. 特権問題の解決 (ROSはsudo実行を推奨していない) 3. GPUの利用も想定 5 Linux-RTXG (LKM) ※ Application ApplicationROS node ROS GPU Device Driver GPUCPU Application 層 OS 層 GPU Scheduler Middleware 層 CPU Scheduler RT-ROS システムモデル ROSのリアルタイムスケジューラ “ROSCH”の開発 ※ “GPU Resource Management with Loadable Kernel Modules,” Yuhei Suzuki, Yusuke Fujii, Takuya Azumi, Nobuhiko Nishio and Shinpei Kato, IEEE Transactions on Parallel and Distributed Systems (TPDS), 2017 (accepted)
  6. 6. ROSCHの主な機能 • ROSCH – Measurer • 実行時間の自動計測 – Analyzer • DAG解析によるタスクスケジューリングのシュミレート – Scheduler • Analyzerの解析結果を元にCPU&GPUタスクをスケジュール – Tracer • スケジューリング結果の可視化 6
  7. 7. ROSCHの動作デモ • 今回デモするnode – ROSのチュートリアルで使用するtalkerとlistener 7talker listener
  8. 8. スケジューリング性能評価 • ワークロードベンチテスト – 評価環境 • Linux kernel Version 4.4.0-89-generic • Intel Core i7 2600 (8コア) – 評価方法 • ワークロード: 50%~100%まで10%ずつ増加 • リアルタイムタスク数: 13 – 対象:Autoware 障害物距離推定機能 8 HLBS (fixed core) HLBS (linux) 提案手法による優先度 & コア配置 提案手法による優先度 & Linuxによるコア配置 優先度&コアを指定しない (LinuxによるCFS(Completely Fair Scheduler)) Non-policy 𝑆𝑢𝑐𝑐𝑒𝑠𝑠 𝑟𝑎𝑡𝑖𝑜 = 70%のワークロードまで ほぼ100%のSuccess ratioを示した 提案① 提案②
  9. 9. ROSCHの対応表 – 現在はROS1のみ対応 – KernelはLTSだとupgradeしている可能性があるため、14.04以降すべてに対応 – ROSはUbuntu LTSで推奨されているものを対象 9 OS Ver OS Name Kernel Ver ROS Ver 14.04 Trusty Tahr 3.13 or newer Indigo 14.10 Utopic Unicorn 3.16 15.04 Vivid Vervet 3.19 Jade 15.10 Wily Werewolf 4.2 16.04 Xenial Xerus 4.4 or newer Kinetic Kame 16.10 Yakkety Yak 4.8 17.04 Zesty Zapus 4.10 Lunar
  10. 10. 今後 • ROS 2.0への対応 • ROSのスケジューリングアルゴリズムの改良 – データ依存のノードが多いため実行時間のばらつきが大きく、WCETを用いたオフライ ン解析は悲観的 10 How to use ROSCH • github • https://github.com/CPFL/ROSCH.git • youtube • https://www.youtube.com/playlist?list=PLfCEge3UVyxSn9IU-QZ0LSF4fMZG2XPZP
  11. 11. HLBSアルゴリズム • 依存関係を考慮 • オフライン解析アルゴリズム 11 ※ “HLBS: Heterogeneous Laxity-Based Scheduling,” Yuhei Suzuki, Takuya Azumi, Nobuhiko Nishio and Shinpei Kato, the 4th IEEE International Conference on Cyber-Physical Systems, Networks, and Applications (CPSNA 2016), pp.82-88, 2016

×