Successfully reported this slideshow.
Your SlideShare is downloading. ×

ROS (Robot Operating System) の紹介とIoT/IOT分野への展開

Ad

ROS (Robot Operating System) の紹介と
IoT/IOT分野への展開
⾼瀬 英希
(京都⼤学/JSTさきがけ)
RICC-PIoT workshop 2021
2021/03/05

Ad

2
⽬次・内容︓
• はじめに︓⾃⼰紹介とやりたいこと
• ROSの紹介
­ロボット開発を加速化する4つの側⾯
­通信ミドルウェアの構成とプロトコル
­閑話休題︓mROS, ZytleBot, rclex
• IoT/IOT for/with ...

Ad

3
⾃⼰紹介
本務・兼務
­京都⼤学 情報学研究科 准教授
­JSTさきがけ 兼任研究者
­理研R-CCS 客員研究員
­TOPPERSプロジェクト 運営委員
学会活動
­IPSJ-SIGEMB 運営幹事
­IEICE-RECONF 専⾨委員
...

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Loading in …3
×

Check these out next

1 of 66 Ad
1 of 66 Ad

ROS (Robot Operating System) の紹介とIoT/IOT分野への展開

Download to read offline

RICC-PIoT workshop 2021 @ 2021/03/05
https://ricc.itrc.net/events/ricc-piot-workshop-2021

概要: ROS (Robot Operating System) とは,多品種少量生産のドメインであるロボットシステムの開発を加速化するプラットフォームである.ROSには様々な側面があるが,RICC-PIoT の領域における最大の関心事は通信ミドルウェアとしての側面であろう. 本発表では,ロボットシステムと IoT/IOT 分野の境界面を起点として,ROS の提供する利点や最新の動向を解説する.特に最近では,各種クラウドサービス・ベンダからロボット開発に向けた試みが盛んに展開されており,発表者の取り組みを交えながらこれらを紹介していく.ROS と IoT/IOT の融合が進むことでもたらされる展開について,参加者の皆さまと議論してみたい.

注:SlideShareアップロード時に画像の色情報が落ちています.
[Download] すると綺麗なPDFが取得できます.

RICC-PIoT workshop 2021 @ 2021/03/05
https://ricc.itrc.net/events/ricc-piot-workshop-2021

概要: ROS (Robot Operating System) とは,多品種少量生産のドメインであるロボットシステムの開発を加速化するプラットフォームである.ROSには様々な側面があるが,RICC-PIoT の領域における最大の関心事は通信ミドルウェアとしての側面であろう. 本発表では,ロボットシステムと IoT/IOT 分野の境界面を起点として,ROS の提供する利点や最新の動向を解説する.特に最近では,各種クラウドサービス・ベンダからロボット開発に向けた試みが盛んに展開されており,発表者の取り組みを交えながらこれらを紹介していく.ROS と IoT/IOT の融合が進むことでもたらされる展開について,参加者の皆さまと議論してみたい.

注:SlideShareアップロード時に画像の色情報が落ちています.
[Download] すると綺麗なPDFが取得できます.

Advertisement
Advertisement

More Related Content

More from Hideki Takase (20)

Advertisement

ROS (Robot Operating System) の紹介とIoT/IOT分野への展開

  1. 1. ROS (Robot Operating System) の紹介と IoT/IOT分野への展開 ⾼瀬 英希 (京都⼤学/JSTさきがけ) RICC-PIoT workshop 2021 2021/03/05
  2. 2. 2 ⽬次・内容︓ • はじめに︓⾃⼰紹介とやりたいこと • ROSの紹介 ­ロボット開発を加速化する4つの側⾯ ­通信ミドルウェアの構成とプロトコル ­閑話休題︓mROS, ZytleBot, rclex • IoT/IOT for/with ROS ­IoT/IOT分野におけるロボット業界の動向 ­箱庭とRDBOXによる展開 • おわりに︓IoT/IOT分野への展開
  3. 3. 3 ⾃⼰紹介 本務・兼務 ­京都⼤学 情報学研究科 准教授 ­JSTさきがけ 兼任研究者 ­理研R-CCS 客員研究員 ­TOPPERSプロジェクト 運営委員 学会活動 ­IPSJ-SIGEMB 運営幹事 ­IEICE-RECONF 専⾨委員 ­SWEST ステアリング委員 コミュニティ活動 ­ROS Japan Users Group ­ROSCon JP 実⾏委員 ­IoT ALGYAN (あるじゃん) 運営委員 ­NervesJP : Elixir for IoT @takasehideki 箱 庭
  4. 4. 4 研究対象︓組込みシステムからのIoTへ AI/ML技術との 密接な統合 あらゆるモノ・コトの ネットワーク接続によって 新たな社会的価値を創造 各構成要素における 計算機特性の結集 ⼤量のデバイスとデータ 「デバイスレベル並列化」 による最適化の時代へ︕
  5. 5. 5 ⾼瀬の研究テーマ あらゆる モノ・コトと ヒトを繋げる 設計基盤の 確⽴ 最適化 設計技術 良いモノ を 誰でも楽に つくることができる世界へ 組込み/IoTコンピューティング基盤を⽀える プラットフォーム技術と設計⽅法論
  6. 6. これまでの取り組み 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 task arrival task is running MM-SPM copy Execution time Task1 Task2 Task3 SPM region メモリ配置最適化 ΗΑ΅ ΗΑ΅ ΗΑ΅ ΗΑ΅ ΗΑ΅ ΗΑ΅ ΗΑ΅ Εή Π̻ ̼ ̰ R N B ̰ Ѓ ; Ξ΅ Ιμ㌸廷 ʹ ό ΙΛΰ ΦΛΠψЃ ΅ ㌸廷 Ή ό Ϊ ̹ ς ㌸廷 Q S N R ㌸廷 剰堽⒔ ς ό Θι φΐ Λ΅ κλσ̰ Ѓ ; Ξ΅ Ιμ㌸廷 ΰ φΓΛΌ ̰ Ѓ ; Ξ΅ Ιμ㌸廷 徳從㝡㏆㌸廷 G V ̰ τΊ σΒι κλσ'; μΛΏ ξ( ✆咩G V ΰ φΓΛΌ κλσ ΰ φΓΛΌ ʹ ό ΙΛΰ ΦΛΠψЃ ΅ ΰ φΓΛΌ κλσ ΰ φΓΛΌ ✆咩G V 設計階層に跨る 消費エネルギー 統合的最適化 RTOS FPGA ROS Elixir Power- Efficient High- Performance Power- Efficient High- Performance τ1 CP1 CP2 τ2 τ3 High- Performance Power- Efficient τ1 τ2 τ3 τ3 DEPS for hetero SoC SW志向協調設計 ZytleBot SoCアーキテクチャ コンパイラ 汎⽤カーネル 通信ミドルウェア AI/MLライブラリ SoCアーキテクチャ コンパイラ リアルタイムOS 通信ミドルウェア デバイスライブラリ SoCアーキテクチャ コンパイラ インタプリタ 通信ミドルウェア 数値演算ライブラリ デバイス エッジサーバ クラウド 箱 庭 Cockatrice HLS最適化 包括的IoT 開発環境 組込み向けROS Rclex
  7. 7. 7 突然のElixir!! 2012年に登場した新たな関数型⾔語 Erlang VM上で動作 • ⾼い並列性能を誇る • 軽量かつ頑強なプロセスモデル • 耐障害性が極めて⾼い Rubyを基にした⾔語設計 • 習得しやすく⽣産性が向上する • WebフレームワークPhoenixを持つ Ø応答性が極めて⾼い Programming should be about transforming data Elixir Zen Style IoTの本質をなすビッグデータを柱に据えて プログラミング⾔語の 新たな可能性を開拓
  8. 8. 8 “包括的な”IoTシステム開発環境 SoCアーキテクチャ コンパイラ 汎⽤カーネル 通信ミドルウェア AI/MLライブラリ SoCアーキテクチャ コンパイラ リアルタイムOS 通信ミドルウェア デバイスライブラリ SoCアーキテクチャ コンパイラ インタプリタ 通信ミドルウェア 数値演算ライブラリ 構成要素を横断するIoTシステム開発技術 設計階層を縦断する最適化・実⾏環境 デバイス エッジサーバ クラウド Elixirの記述”だけ”で IoTシステム全体を 設計開発できるようにする
  9. 9. 9 今⽇やりたいこと • ROSのセカイをIoT/IOTな皆さまにご紹介します ­(でも触んないっすよね^^; • 「クラウドロボティクス」の現状を共有します ­(でもなんか縁遠いっすよね:D • ROSとIoT/IOTが連携することでどんな展開があるか, みなさんと考えたいです(教えてください^^; ­ロボット/ROSが地域間相互接続の広域分散網と連携されると, どのような展開がありえるでしょうか︖ • ROSのセカイをIoT/IOTな皆さまにご紹介します • 「クラウドロボティクス」の現状を共有します • ROSとIoT/IOTが連携することでどんな展開があるか, みなさんと考えたいです(教えてください^^; ­ロボット/ROSが地域間相互接続の広域分散網と連携されると, どのような展開がありえるでしょうか︖
  10. 10. 10 ⽬次・内容︓ • はじめに︓⾃⼰紹介とやりたいこと • ROSの紹介 ­ロボット開発を加速化する4つの側⾯ ­通信ミドルウェアの構成とプロトコル ­閑話休題︓mROS, ZytleBot, rclex • IoT/IOT for/with ROS ­IoT/IOT分野におけるロボット業界の動向 ­箱庭とRDBOXによる展開 • おわりに︓IoT/IOT分野への展開
  11. 11. 11 ロボットシステムと取り巻く課題 様々な状況に 対応する 複雑な制御 AI/ML処理の ための処理性能 多品種少量⽣産の 展開への対応 限定された 計算資源と電⼒量 実世界との 膨⼤なデータの やりとり 厳しい品質要求 への対応
  12. 12. 12 ロボットの開発の進め⽅ • 開発の加速化のためには,,, ­モジュールの再利⽤性の促進 ü便利なものは使い回したい ü「⾞輪の再発明」は避けたい ­プロセス間通信の効率的な管理 ü通信=部品間とロボット間の両⽅ üモジュールごとに開発・保守したい ü組み合わせを簡単に試したい ­サービスの向上に注⼒したい 統⼀的な開発フレームワークによる 設計開発の加速化に期待
  13. 13. 13 (Robot Operating System) • ROS (ROS 1)︓2007年11⽉に最初の正式リリース ­ OSS資産や情報,対応ロボットが豊富にある ­ 最終版 Noetic の EOL は2025年3⽉まで • ROS 2︓絶賛成⻑中の次世代版 ­ ROSのコンセプトを引き継いで再設計されたバージョン ロボットソフトウェアの開発を加速化するプラットフォーム http://www.ros.org/about-ros/
  14. 14. 14 Plumbing: 通信モデルとミドルウェア • ROSノード (機能単位) の疎な結合⽅式 ­登録・変更・削除・配置が容易にできる ­障害時にはノード単位で再起動を⾏える ­基本はTopicを介した⾮同期・出版購読型の通信 node1 node2 node3 node4 Topic1 Topic2 node5 出版(Publish) 購読(Subscribe) msg msg msg msg 詳細は のちほど,,,
  15. 15. 15 Tools: 開発促進のためのツール群 • catkin_tools: プロジェクト構成/ビルドシステム • rqt: Qtベースのデバッグフレームワーク • gazebo: 3D物理シミュレーションツール • rviz: 可視化ツール ­他にもroslaunch, rosbagなど,,,
  16. 16. 16 Capabilities: 再利⽤性の⾼い⾞輪 • ROSパッケージ︓有⽤な機能がまとめられたライブラリの集合 ­2,000以上のパッケージが公開されている https://index.ros.org/packages/ ­利点︓既存資産として活⽤できる üコンポーネント指向開発を実現できる パッケージ名 内容 tf ロボットの3次元座標と連鎖関係,時間の管理 teleop ロボットの移動⽅向の操作 usb_cam USBカメラの画像の取り込み ros_control ハードウェアを抽象化したアクチュエータの制御 MoveIt マニピュレーションの制御アルゴリズム Navigation 地図ベースの⾃⼰位置推定と経路計画のアルゴリズム
  17. 17. 17 Ecosystem: 世界規模のコミュニティ • オンライン ­ROS Wiki: パッケージ・⽂書の公開 ­ROS Answers: Q&Aページ ­ROS Discourse: リリースやイベントの告⽰ üTSC, SIG-WGsの議事録も全て公開 • オフライン ­ROSCon: 世界規模の開発者会議 ü最近はlocal conf.も ­SIG meetups, workshop, local events, etc.,,,
  18. 18. 18 ROSの歴史と開発体制の変遷 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 1st commit to SourceForge (Nov. 2007) https://sourceforge.net/p/ros/code/1/log/?path= http://www.ros.org/news/ 2017/11/ros-turns-10.html ROS 1.0 released ROS 2 Alpha released http://wiki.ros.org/Distributions https://docs.ros.org/en/ rolling/Releases.html ROS 2 TSC
  19. 19. 19 ⽬次・内容︓ • はじめに︓⾃⼰紹介とやりたいこと • ROSの紹介 ­ロボット開発を加速化する4つの側⾯ ­通信ミドルウェアの構成とプロトコル ­閑話休題︓mROS, ZytleBot, rclex • IoT/IOT for/with ROS ­IoT/IOT分野におけるロボット業界の動向 ­箱庭とRDBOXによる展開 • おわりに︓IoT/IOT分野への展開
  20. 20. 20 ROSの通信⽅式 • トピック topic ­ROS通信の基本 ­⾮同期型の出版購読通信 (Publish/Subscribe) • サービス service ­1対1・同期型のRPC通信 (Request/Response) • アクション action ­フィードバック付きRPC通信 ­⾮同期と同期の組み合わせ node service action node node node node topic publish subscribe node node node node node request response goal feedback result node service action node node node node topic publish subscribe node node node node node request response goal feedback result
  21. 21. 21 ROSの通信型 • ロボット通信に頻出する型が定義されている ­Primitive Type: Bool / Byte / Char / Duration / String / Time / Float32, 64 / Int8, 16, 32, 64 / UInt8, 16, 32, 64 / Empty ­Array Type: Header / ByteMultiArray / ColorRGBA / MultiArrayDimension / MultiArrayLayout / Float32, Float64MultiArray / Int8, Int16, Int32, Int64MultiArray / UInt8, UInt16, UInt32, UInt64MultiArray • 独⾃の型のメッセージを定義することができる ­例︓両⾞輪の⾓速度と回転量,現在位置の3次元座標,など ­階層構造や配列を含むこともできる ­*.msg, *.srv ファイルで定義する ­パッケージ化して流⽤もできる requestの設定 (serviceへの送信値) responseの設定 (serviceからの返送値)
  22. 22. 22 ROS 1の通信プロトコル • roscore (ROS Master)︓ ­ノードの登録と名前空間の管理 • XML-RPC︓ ­roscoreへのノードの登録 ­ノード間の接続関係の確⽴ • TCPROS ­TCP/IP上での⾮同期通信 ­UDPROSもある
  23. 23. 23 ROS 2のソフトウェア階層構造 node.cpp rclcpp node.py rclpy RCL(ROS Client Library) RMW(ROS MiddleWare) DDS A Operating System node.rs rclrs ・・・ DDS (Data Distribution Service) • OMG標準仕様として規定 • 出版購読通信を提供 • ノード⾃動検出 など • 共通の基盤機能 • 実装はC⾔語 • 各⾔語から呼び出すことで ライブラリを開発可能 DDS B ・・・ • DDSの通信機能を抽象化するAPI層 • 複数のDDS実装から選択可能
  24. 24. 24 ROS 2に(公式)対応しているDDS実装 Middleware Library Provider Support ライセンス・備考等 rmw_fastrtps_cpp eProsima Fast-RTPS Tier 1 Apache 2.0,現時点のROS 2デフォルト, 軽量実装 rmw_connext_cpp RTI Connext Tier 1 商⽤/研究(機能制限)ライセンス, No.1ベンダ,PF/Arch.サポートは限定的 rmw_cyclonedds_cpp Eclipse Cyclone DDS Tier 1 Eclipse Public License 2.0(Open), ⾼性能・⾼信頼な評価結果, 次のdistributionからROS 2デフォルトに rmw_fastrtps_ dynamic_cpp eProsima Fast-RTPS Tier 2 Apache 2.0,型の実⾏時の解釈・変換 (type introspection)をサポート REP-2000 を基に 作成・整理 • 実装機能やライセンス形態で複数のDDSから通信層を選択できる • 異種DDSを選択したノード間で通信できる(rmw層で抽象化) ­ Tier 1: Open Robotics公式の⼿厚いサポート ­ Tier 2: 公式だが限定的なサポート
  25. 25. 25 QoS Control • 通信経路の品質を指定する(Pub/Sub間で互換性が必要) • 指定できるパラメータの例 (下線はデフォルト設定) ­History (履歴): Keep last (任意の値数を保持) or Keep all ­Depth (深さ): Size of the queue (Keep lastの個数 10) ­Reliability (信頼性): Best effort or Reliable (リトライ試⾏) ­Durability (耐久性): Transient local or Volatile (遅延⾮許容) https://index.ros.org/doc/ros2/Concepts/About-Quality-of-Service-Settings/ Profile History policy Reliability Durability Default Keep last 10 Reliable Volatile Services Keep last 10 Reliable Volatile Sensor data keep last 5 Best effort Volatile Parameters keep last 1000 Reliable Volatile
  26. 26. 26 ⽬次・内容︓ • はじめに︓⾃⼰紹介とやりたいこと • ROSの紹介 ­ロボット開発を加速化する4つの側⾯ ­通信ミドルウェアの構成とプロトコル ­閑話休題︓mROS, ZytleBot, rclex • IoT/IOT for/with ROS ­IoT/IOT分野におけるロボット業界の動向 ­箱庭とRDBOXによる展開 • おわりに︓IoT/IOT分野への展開
  27. 27. 27 閑話休題︓組込み技術のROSへの統合 • 様々な状況に対応する複雑な制御 • 限定された計算資源と電⼒量 • AI/ML処理を実現する処理性能 • 多品種少量⽣産の展開への対応 組込み技術 Ø⾼機能・多機能化 Ø省電⼒化 Ø並列性能向上 Ø設計柔軟性向上 通 信 バ ス アナログ回路 プロセッサ SW FPGA HW 通 信 IF IF レイヤ IF レイヤ driver HW SW RTOS SW SW IF レイヤ SW
  28. 28. 28 ROS 1ノードの軽量実⾏環境 • ロボットアプリのリアルタイム性の確保を容易化 • ROSとのAPI互換による既存資産の移植性の向上 • 分散ロボットシステムの省電⼒化を実現 貢献 組込みデバイスでROS 1を活⽤する技術 H. Takase, et al., “mROS: A Lightweight Runtime Environment of ROS 1 nodes for Embedded Devices,” Journal of Information Processing, Vol. 28, No. 2, pp. 150-160, Feb 2020.
  29. 29. 29 ソフトウェア階層と構造 H. Takase, et al., “mROS: A Lightweight Runtime Environment of ROS 1 nodes for Embedded Devices,” Journal of Information Processing, Vol. 28, No. 2, pp. 150-160, Feb 2020. inter-task communication TCP/IP communication mROS comm. lib TCPROS XMLRPC • ROSと互換性のあるAPIを提供 ­ 下回りのスタックは組込み向けの TCP/IPスタックとカーネルで構成 ­ マルチノード化も可能
  30. 30. 30 適⽤事例︓特徴点抽出
  31. 31. FPGAのROSへの統合 • ROSはつまるところ通信ライブラリである • プログラマブルSoCの活⽤︓FPGAをドライバとして扱う üFPGA︓再構成可能なハードウェア回路・電⼒効率が⾼い üトピックを外部ノードへのインタフェースに⾒⽴てる (1) CPUからFPGAにデータを送信して処理をオフロード (2) FPGAでデータを直接処理してからCPUに送信 31 FPGA CPU bus ROS data circuit node topic data circuit driver node topic driver ZytleBot
  32. 32. ROS x FPGA統合開発PF • Zynq + TurtleBot ­Zynq Ultrascale+ MPSoC ­TurtleBot3 • 開発⼿法とテンプレートを提供 ­ROS/FPGA協調設計フロー ­FPGA駆動⽤ROSノード ­PS/PL通信インタフェース 32 ZytleBot • 新⽥, ⽥村, ⾼瀬 ”ZytleBot: ROSベースの⾃律移動ロボットへのFPGAの統合に向けて“ IEICE-RECONF 201909 (招待講演) • Y. Nitta, Sou Tamura, Hidetoshi Yugen and Hideki Takase, “ZytleBot: FPGA Integrated Development Platform for ROS Based Autonomous Mobile Robot,” in ICFPT 2019. ROSとFPGAの統合を加速化 ロボットの動作品質を向上
  33. 33. ROS x FPGAの適⽤事例 33 ZytleBot FPGA CPU ROS camera Image Preprocessor driving motor webcam SVM Classifier 画像処理を 275倍⾼速化 • 新⽥, ⽥村, ⾼瀬 ”ZytleBot: ROSベースの⾃律移動ロボットへのFPGAの統合に向けて“ IEICE-RECONF 201909 (招待講演) • Y. Nitta, Sou Tamura, Hidetoshi Yugen and Hideki Takase, “ZytleBot: FPGA Integrated Development Platform for ROS Based Autonomous Mobile Robot,” in ICFPT 2019. SVM Classification ! "!#! " !#$ + % Feature Extraction 8x8 BGR 8x8 HSV HOG
  34. 34. 34 ElixirのROS 2 Client Library Rclex RMW (ROS MiddleWare) node.py rclpy RCL (ROS Client Library) HW node.cpp rclcpp Rclex node.ex node node node DDS B DDS A DDS (Data Distribution Service) • OMG標準仕様として規定 • 出版購読通信を提供 • ノード⾃動検出 など • 共通の基盤機能 • 実装はC⾔語 • 各⾔語から呼び出すことで ライブラリを開発可能 • DDSの通信機能を抽象化するAPI層 • 複数のDDS実装から選択可能 tlk-emb/rclex
  35. 35. 35 ROS x Elixir︕の⽬指す貢献 Rclex Publisher ・ ・ Topic1 Subscriber ・ ・ Publisher ・ ・ Topic1 Subscriber ・ ・ Topic2 Topic3 ...Erlangプロセスに実⾏させる処理 ØElixirでErlangプロセスを 同時かつ⼤量に⽣成 Øプロセスで出版購読処理と 付随するコールバックを実⾏ 軽量プロセスの並⾏処理で ⽣成ノード数に対する スケーラビリティを向上 tlk-emb/rclex
  36. 36. 36 Erlang VM/カーネルとの関係 Rclex OS Process Space rclcpp node1 rclcpp node2 Erlang VM Rclex node1 Rclex node2 CPU process exec. queue Pub process1 Sub process1 Sub process2 ... RCL node block = Erlang resource object • OSの1プロセスとしてErlang VMが起動 • Erlangスケジューラの中でループ処理とプロセス=ROSノードを実⾏ • プロセスが軽量︓起動時間が数マイクロ秒,メモリはおよそ300ワード RCL資源をstatic linkした 共有ライブラリをErlang NIFを 介してロード・呼び出し tlk-emb/rclex
  37. 37. 37 Rclexノードの実装例 (topic出版) tlk-emb/rclex Rclex defmodule PubSample do def pubmain do num_node = 10 Rclex.rclexinit |> Rclex.create_nodes(ʻtest_pub_nodeʼ,num_node) |> Rclex.create_publishers(ʻtesttopicʼ, :single) |> Rclex.Timer.create_wall_timer(1000,&pub_func/1) end def pub_func (publisher_list) do n = length(publisher_list) msg_list = Rclex.initialize_msg(:string, n) Enum.map(0..n-1,fn(index)-> Rclex.setdata_string(Enum.at(msg_list,index),”hello”) end) Rclex.Publisher.publish(publisher_list,msg_list) end end ノード数 設定されたノード名にインデックスを 付けてノードを⽣成 トピックの作成 :single->1つのトピック :multi-> 複数のトピック 実⾏周期と実⾏する関数の設定 ノード数に応じた メッセージリストを⽤意 トピックへの出版
  38. 38. 38 ⽬次・内容︓ • はじめに︓⾃⼰紹介とやりたいこと • ROSの紹介 ­ロボット開発を加速化する4つの側⾯ ­通信ミドルウェアの構成とプロトコル ­閑話休題︓mROS, ZytleBot, rclex • IoT/IOT for/with ROS ­IoT/IOT分野におけるロボット業界の動向 ­箱庭とRDBOXによる展開 • おわりに︓IoT/IOT分野への展開
  39. 39. その前に,ROS 2 TSC @2021-02-22 • ロードマップの策定やコア機能などを主導 https://docs.ros.org/en/foxy/Governance.html • ROS 2開発に貢献する組織(の技術者)により編成 ­いわゆるBig Techやロボティクス業界の有名企業 ­半導体やOSやDDSのトップベンダ など ­特定トピックに特化したWGsも編成されている • 品質保証を重視した開発プロセスの採⽤ ­アジャイル︓Kanbanによるプロジェクト進⾏の可視化 ­テスト駆動︓継続的インテグレーション(CI)の適⽤
  40. 40. 40 AWS RoboMaker • ROS開発環境がすぐに使⽤開始できる • 知能ロボットの構築を容易化できる • ⼤規模な並列シミュレーションを実⾏できる • アプリを⼤量のロボットに対して安全に 管理・デプロイできる(フリート管理) https://aws.amazon.com/robomaker/ https://youtu.be/_YY0-SdlhNg
  41. 41. 41 ROS with Windows and Azure • Windows 10 Desktop / IoTでのサポート • MS各種ツール・サービスとの連携 • ROSノード・パッケージの提供 https://aka.ms/ros
  42. 42. 42 rapyuta.io by Rapyuta Robotics https://www.rapyuta-robotics.com/ja/platform/ • 異種・マルチロボットシステムにスケールと 柔軟性を与える分散型インテリジェンス • すべてのロボットとクラウド上で動作する 分散アプリケーションの構築、デプロイ、監視 • ROSとの互換性を備えた、安全でスケーラブルな ロボット間およびロボットとクラウド間の通信を実現 • API⼜はWebUIを通し、すべてのロボットから データを収集、保存、可視化 https://youtu.be/vogOEIwGh50
  43. 43. 43 FIWARE with ROS RoboticBase by TIS micro-ROS and FIWARE by eProsima https://youtu.be/XJL2_FHcils
  44. 44. 44 Webとの︖ブリッジ • rosbridge_suite ­ROSメッセージのJSON API形式 ­UDP, TCP, WebSocketのサーバを提供 ­ROS 2版も開発中 • mqtt_bridge ­ROSとMQTTの双⽅向のブリッジ ­JSON (or MessagePack) に変換 • ROSLink
  45. 45. 45 ⽬次・内容︓ • はじめに︓⾃⼰紹介とやりたいこと • ROSの紹介 ­ロボット開発を加速化する4つの側⾯ ­通信ミドルウェアの構成とプロトコル ­閑話休題︓mROS, ZytleBot, rclex • IoT/IOT for/with ROS ­IoT/IOT分野におけるロボット業界の動向 ­箱庭とRDBOXによる展開 • おわりに︓IoT/IOT分野への展開
  46. 46. IoTシステム開発時の課題 (例: ⾃動運転配⾞システム) 46 • IoT開発には様々な分野の技術領域 =技術者の結集が不可⽋ • 結合テストや検証が困難である • 問題発⽣時にはその原因と 経路の調査が複雑となる • 実証実験コストも⼤きくなる 凡例 クラウド CAN ECU ⾞載PC 管制サーバ スマホ Web系 ⾃動運転 制御系 ECU制御系 バックエンド サーバ系 メカ系 エレキ系 ネットワーク系 IT系エンジニア 交通サービス系 ET系エンジニア 制御系エンジニア ICTエンジニア センサ
  47. 47. IoTサービス構築時の課題 (例: ロボットサービス) ロボットシステム・ 開発者 物理 シミュレータ システム要件 ロボットサービス・提供者 実証実験 設計・実装 作りたいロボットサービス ・ロボットサービスをどう組み合わせると,効果的な新しいサービスを創出できるかわからない ・新しいサービスを検討するにしても,実物のロボットでは準備・⼿間がかかりすぎる ロボットサービス群 ? ?? どう組み合わせればよい︖ 実物のロボットは⼿間がかかる どうやって動かす︖ 要件が頻繁に変わる 実証実験時に結合トラブ ルが頻発する 要件変更適⽤に 時間がかかる 47
  48. 48. 『箱庭』とは︖ • 箱の中に,様々なモノをみんなの好みで配置して,いろいろ試せる︕ ⇒ 各技術者が開発対象と興味(=アセット)を持ち寄って,机上で実証実験 ECU制御系 エンジニア バックエンドサーバ 系エンジニア ネットワーク系 エンジニア ⾃動運転 制御系エンジニア 交通サービス系 エンジニア 48
  49. 49. 『箱庭』のアーキテクチャ Simulink 箱庭アセット・サービス RTOS 箱庭ドメイン・サービス ⾞載系 家電系 ロボット サービス 航空・ 宇宙系 箱庭コア サード パーティ (クラウド) サード パーティ (可視化) ■箱庭ドメイン・サービス 様々な分野への適応を⽬指す ■箱庭アセット・サービス シミュレーション内の登場物をアセット化 箱庭アセット数の拡充を⽬指す ■箱庭コア 箱庭固有のシミュレーション技術をコア技術化 Hakoniwa Engine ■サードパーティ 既存のサードパーティ製は積極利⽤ 49
  50. 50. Hakoniwa Engine: 複雑なシステムを仮想環境で動作させるためのコア機能 50 箱庭エンジン (コア機能) アセット アセット スケジューリング 時間管理 物理シミュレータ シミュレーション時間 マイコン シミュレータ シミュレー ション時間 テスト実⾏管理 シナリオ 可視化ツール 可視化 ⾃動化 コンポーネント化 同期・通信 アセット管理
  51. 51. プロトタイプモデルの開発 51 プロトタイプモデル ⽬的 A︓ 単体ロボット向け ・シミュレータ間の連携⽅法の検討 ・アセット間の時間同期と通信⽅式の確⽴ ・広報活動(ユーザ・技術者の獲得) B︓ ROS・マルチECU向け ・ヘテロ環境(ECU/FPGA/GPU)の机上構築 ・通信可視化⽅法の検討(ROS連携含む) ・箱庭アセットの仕組み検討 C︓ ロボット間協調動作向け ・クラウドサービスとの連携 ・ロボット間の協調連携⽅法の検討 ・箱庭アセットの拡充 マイコン・シミュレータ 制御処理(C/C++) EV3RT ASP3/ASP athrill ⽬的︓箱庭コンセプトの実現可能性の実証と技術研鑽
  52. 52. A︓単体ロボット向けシミュレータ 52 技術研鑽視点での狙い︓ ・物理シミュレータと マイコンシミュレータ間 連携⽅法の検討 ・異なるシミュレータ間の 時間同期の検討 その他の狙い︓ ・ETロボコンユーザ層に 箱庭を広める(広報活動) ETロボコンを題材として構築 マイコン・シミュレータ 制御処理(C/C++) EV3RT ASP3/ASP athrill HackEVのUnityアセットは,ETロボコン実⾏委員会より提供いただいたデータを基に作成しています. 実⾏委員会の皆さまに深く感謝いたします.ただし本アセットはETロボコンの本番環境とは異なりますので,⼤会に 参加予定の⽅はご注意ください.また,本アセットは,個⼈利⽤または教育利⽤に限定してご利⽤ください. Unityパッケージの設計と作成にあたっては,宝塚⼤学 東京メディア芸術学部 吉岡章夫准教授および 学部⽣の杉﨑涼志さん,⽊村明美さん,千葉純平さんにご協⼒いただきました。
  53. 53. • 1台のロボットが1個の組込みマイコンで制御 • 仮想化対象︓HackEV @ETロボコン • 組込みマイコン︓athrill • カーネルとロボット制御⽤プログラムの仮想化 • 実⾏プラットフォーム︓TOPPERS/EV3RT • ISA︓V850E2M <- ARMv7-A • カーネル︓TOPPERS/ASP3 <- HRP3 • 制御アプリのレベルでは互換となる • 可視化・物理演算︓Unity • センサ値の取得(カラー,超⾳波,ジャイロ) • モータ制御・LCD表⽰ プロトタイプモデルの構成 53 超⾳波センサ カラーセンサ センサ⽤ライト モータ ジャイロセンサ LCD表⽰ マイコン・シミュレータ 制御処理(C/C++) EV3RT ASP3/ASP athrill
  54. 54. プロトタイプモデルの動作例 54 [デモ内容] Athrill上の制御アプリケーションにより,Unityロボット(HackEV)がライントレースする ⾛⾏路にはカラーコードが配置されており,制御アプリケーションの⾊認識によって加速/減速/停⽌する ⾚︓加速,緑︓減速,⻘︓停⽌ [Unity] [Athrill]
  55. 55. ロボット教育演習への展開の想定 55 • フロアの⾊,障害物までの距離を 各種センサで検出して,ゴールまで たどり着こう • ロボットの内部状態でLEDカラーで 変化させてみよう • 地⾯に落ちているボールを運んで みよう ゴール 障害物 ⾛⾏ルート ボール (運べるか?) LEDカラー
  56. 56. B︓ROS・マルチECU向けシミュレータ 56 技術研鑽視点での狙い︓ ・マルチECU/FPGA/GPU間の連携⽅法検討(シミュレーション時間同期等) ・箱庭アセット間の通信可視化⽅法の検討(ROS/ROS2連携含む) ・箱庭アセットの仕組み検討 その他の狙い︓ ・ROSユーザ層に箱庭を広める(広報活動) ・その他チャレンジ(つくばチャレンジ/FPGAデザインコンテスト) 物理シミュレータ マルチECUシミュレータ ROS/ROS2 FPGA/GPU 画像認識 仮想Linux マシン(QEMU) ロボット 制御 モーター 病室 シミュレータ 間通信 センサ 仮想マイコン (athrill/mROS) モータ 制御
  57. 57. C︓ロボット間協調動作向けシミュレータ 57 物理シミュレータ 仮想サーバー (RDBOX) ロボット制御・ シミュレータ シミュレータ 間通信 技術研鑽視点での狙い︓ ・クラウド連携⽅法検討 ・ロボット間の連携⽅法検討(より複雑なロボットの動き/⼲渉に挑戦) ・箱庭アセットを増やす仕組みの検討 その他の狙い︓ ・RDBOX連携(開発⽀援仮想環境としての箱庭の実績作り) ・RDBOXユーザ層に箱庭を広める(広報活動/ROSCon JP 参加)
  58. 58. プロトタイプモデルの開発状況 58 プロトタイプモデル 技術調査 実装 動作確認 配布 〇 〇 〇 〇 △ △ △ × 〇 〇 〇 × EV3RTの教育向け活⽤に興味のある⽅, ETロボコンへの参加を検討される⽅向けに公開中 仮想マイコン(docker/athrill/mROS)とUnity間連携完了 FPGA/GPUおよびLinux(QEMU)との連携⽅法を検討予定 ET & IoT Digital 2020のTOPPERS/SESSAMEパビリオンにて RDBOXとの連携⽅法/デモ等をご紹介中︕︕
  59. 59. 59 RDBOX by インテック ①⾃動でロボット実⾏環境を作る・守る、維持する ②ロボットを改良し続ける ③効率的にリソースを使う Robotics Developers BOX︓ロボット技術者の為の道具箱 RDBOXは、クラウドネイティブとエッジコンピューティング技術を⾼度に統合した、ロボット/IoT開発者のための 先進的なITプラットフォームです。OSSとして公開されており、誰でも簡単に使うことができます。 59
  60. 60. 60 RDBOX x 箱庭で実現するこれからの開発スタイル Logging CI/CD • コンテナ作成 • 静的解析 • ユニットテスト • システムテスト commit 【箱庭システムテストS】 • 動作を点数化する仕組み • 録画の仕組み • 並列実⾏する仕組み • 倍速で動かす仕組み Developper 実機へ投⼊ (⾃動で) 差し戻し Hook Visualization Analyze 実⾏ファイル 差し戻し × RDBOX App Marketで好きなアプリを選んで RDBOXが供するネットワーク環境下で クラウドコンピュートリソースを活⽤しながら稼働 Feedback ログファイル Cloud Real World OnPre or IaaS Try & Errorを繰り返すことをサポートし、自動化によって属人性を排除 ブラウザからいつでも・どこでも・誰でも開発に参加できる 60
  61. 61. 61 61 CI/CD for ROS powered by & 箱 庭 https://twitter.com/fudekunJP/status/1356840768527163394
  62. 62. 62 ⽬次・内容︓ • はじめに︓⾃⼰紹介とやりたいこと • ROSの紹介 ­ロボット開発を加速化する4つの側⾯ ­通信ミドルウェアとプロトコル ­閑話休題︓mROS, ZytleBot, rclex • IoT/IOT for/with ROS ­IoT/IOT分野におけるロボット業界の動向 ­箱庭とRDBOXによる展開 • おわりに︓IoT/IOT分野への展開
  63. 63. 63 おわりに • ROS (Robot Operating System) の紹介 ­特に Plumbing を重点的に • IoT/IOT for/with ROSの動向の共有 ­地域間相互接続の広域分散網と連携されていくと, どのような展開がありえるでしょうか︖ ­強⼒に,協⼒しませんか︕︖︖ https://toppers.github.io/hakoniwa/ 箱 庭
  64. 64. 64 ROS Japan Users Group • Discourse: https://discourse.ros.org/c/local/japan • connpass: https://rosjp.connpass.com ­勉強会・講習会など 初⼼者から歴戦の猛者まで︕ ­関⻄や瀬⼾内・九州でも開催︕ ­メンバー数 2,066名 @2021/03/03 üSlack: rosjp üTwitter: #rosjp
  65. 65. 65 参考情報︓書籍 • ⼩倉 崇︓ROSではじめるロボットプログラミング まずはじめに読むべき書籍︕バージョンと情報は古いので注意 • 表 允皙 ほか︓ROSロボットプログラミングバイブル TurtleBot3を⽚⼿に進める場合の良書 • 上⽥ 隆⼀︓Raspberry Piで学ぶROSロボット⼊⾨ ラズパイマウスを⽚⼿に進める場合の良書 • ⻄⽥ 健 ほか︓実⽤ロボット開発のためのROSプログラミング 中級向け ロボット開発をなにか実践してから読むのが有⽤ • 近藤 豊︓ROS2ではじめよう次世代ロボットプログラミング 世界初 && 最も充実したROS 2の解説本︕ • 岡⽥ 浩之︓ロボットプログラミングROS2⼊⾨ ⼿を動かしながらROS 2を基本から学べる
  66. 66. 66 参考情報︓Web Tutorial • ROS Tutorials http://wiki.ros.org/ROS/Tutorials • ROS 2 Tutorials https://index.ros.org/doc/ros2/Tutorials/ • ROS講座 (on Qiita) https://qiita.com/srs/items/5f44440afea0eb616b4a • 5分でワカル!? ROSとはなにか https://twitter.com/takasehideki/status/1365328482583019523 • 「ROS」の基礎とROS 2プログラミングの実践 https://drive.google.com/open?id=12yDH1WFAyaunIROPaFlo3XULziugxIze

×