Upgrade to Pro — share decks privately, control downloads, hide ads and more …

mROS 2が拓くIoT computingの新しいカタチ

mROS 2が拓くIoT computingの新しいカタチ

EdgeTech+ 2022 / 情報処理学会第61回組込みシステム研究会 特別講演
2022/11/17
https://f2ff.jp/introduction/6971?event_id=etexpo-2022
https://www.ipsj.or.jp/kenkyukai/event/emb61.html

概要:
ROS(Robot Operating System)は、ロボットシステムの開発を加速する新世代のプラットフォームとして急速に普及が進んでいます。ROSには様々な側面がありますが,その本質はノード/部品間の出版購読型の通信方式にあります。第二世代となるROS 2では、自律的に通信相手の探索と通信経路の確立ができるDDS(Data Distribution Service)が採用されています。
講演者らは、ROS 2の通信技術と組込み技術の融合を図る試みである"mROS 2"についての研究開発を進めています。ロボットシステム開発に組込み技術を導入することで、通信性能として応答性およびリアルタイム性の向上、またシステム全体の消費電力の削減といった貢献が期待できます。mROS 2の狙いは、ROS 2/DDSの利点である通信の自律性と柔軟性の高さを、組込み機器にもそのまま活かすことです。ロボットシステムに組込み技術の貢献をもたらすだけでなく、IoT分野にROS 2/DDSの利点を展開することが期待できます。
本講演では、ROS 2そのものの基礎知識の解説から始め、組込み技術の導入に関する種々の取り組み、そしてmROS 2がもたらすIoT開発の将来像までをお示しします。

takasehideki

November 17, 2022
Tweet

More Decks by takasehideki

Other Decks in Technology

Transcript

  1. が拓く IoT computing の 新しいカタチ ⾼瀬 英希 (東京⼤学 ⼤学院情報理⼯学系研究科) [email protected]

    EdgeTech+ 2022 IPSJ EMB61 特別講演 2022/11/17 資料URL bit.ly/et22ut -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ
  2. Hobby Recent R&D Affiliation Mission あらゆる モノ・コトと ヒトを繋げる 設計基盤の 確⽴

    最適化 設計技術 良いモノ を 誰でも楽に つくることができる世界へ 組込み/IoTコンピューティング基盤を⽀える プラットフォーム技術と設計⽅法論 @takasehideki ശ ఉ ϩʔΧϧ؀ڥ ηϯγϯά ̇ ̇ ̇ ө૾ Ի Թ౓ ࣪౓ ѹྗ ৼಈ Edge AI ޯ഑ܭࢉɾߋ৽ -PTT 8FJHIU ਪ࿦ ੍ޚ ΢ΣΞϥϒϧ σόΠεɾ ϔϧεέΞ ϩϘοτ ϞϏϦςΟ ೖྗ ग़ྗ ϑΟʔυ όοΫ Edge AI Edge AI Edge AI Edge AI Fog AI ू໿ ෼഑ ϩʔΧϧ؀ڥ Fog AI Edge AI Edge AI ϩʔΧϧ؀ڥ Fog AI Edge AI Edge AI Cloud MEC BEAM クラウド BEAM エッジ BEAM 最適配分アルゴリズム 透過型分散プラットフォーム BEAM システム開発者 デプロイされる コード ① ③ ② ③ ③ ❤ 評価アプリ ❤ 評価アプリ ④ ④ ❤ 評価アプリ ④ ② ② ❤ 評価アプリ ④ ② ② ② ②
  3. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 3 デバイス エッジサーバ クラウド IoT

    Computing?? AI/ML技術との 密接な統合 あらゆるモノ・コトの ネットワーク接続によって 新たな社会的価値を創造 各構成要素における 計算機特性の結集 ⼤量のデバイスとデータ 「デバイスレベル並列化」 による最適化の時代へ︕ なにをどこでやるか︖ どうやって繋げるか︖
  4. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 4 = + https://vimeo.com/showcase/9954564/video/767150435 https://www.stmcu.jp/design/thirdparty/os/91883/

    mROS-base/mros2
  5. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 5 Agenda • ROSとはなにか —ロボット開発を加速する4つの側⾯

    —DDS/RTPSによる出版購読通信機能 • mROS 2 = EdgeTech + ROS 2 —組込み技術を “組み込む” には —yet another なアプローチの紹介 —論よりRUN︓実装・動作例 • おわりに・今後の展望(+暴論) • C-M15 出展ブースのご案内 https://github.com/mROS-base/mros2
  6. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 6 (Robot Operating System) •

    ROS (ROS 1)︓2007年11⽉に最初の正式リリース — OSS資産や情報,対応ロボットが豊富にある — 最終版 Noetic の EOL は2025年3⽉まで • ROS 2︓絶賛成⻑中の次世代版 — ROSのコンセプトを引き継いで再設計されたバージョン — 通信層にOMG標準のDDS (Data Distribution Service) を採⽤ ロボットソフトウェアの開発を加速するプラットフォーム http://www.ros.org/about-ros/
  7. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 7 Plumbing: 通信モデルとミドルウェア • ROSノード

    (機能単位) の疎な結合⽅式 —機能の登録・変更・削除・配置・復旧が容易にできる —基本はTopicを介した⾮同期・出版購読型の通信 —効率的なプロセス/モジュール間通信を実現できる node1 node2 node3 node4 Topic1 Topic2 node5 出版(Publish) 購読(Subscribe) msg msg msg msg 詳細は のちほど,,,
  8. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 8 Tools: 開発促進のためのツール群 • catkin_tools:

    プロジェクト構成/ビルドシステム • rqt: Qtベースのデバッグフレームワーク • rviz: 可視化ツール • gazebo: 3D物理シミュレーションツール —他にもroslaunch, rosbagなど,,,
  9. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 9 Capabilities: 再利⽤性の⾼い⾞輪 • ROSパッケージ︓有⽤な機能がまとめられたライブラリの集合

    —2,000以上のパッケージが公開されている https://index.ros.org/packages/ —利点︓既存資産として活⽤できる üコンポーネント指向開発を実現できる パッケージ名 内容 tf ロボットの3次元座標と連鎖関係,時間の管理 teleop ロボットの移動⽅向の操作 usb_cam USBカメラの画像の取り込み ros_control ハードウェアを抽象化したアクチュエータの制御 MoveIt マニピュレーションの制御アルゴリズム Navigation 地図ベースの⾃⼰位置推定と経路計画のアルゴリズム
  10. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ Ecosystem: 世界規模のコミュニティ • オンライン —ROS

    Wiki: パッケージ・⽂書の公開 —ROS Answers: Q&Aページ —ROS Discourse: リリースやイベントの告⽰ üTSC, SIG-WGsの議事録も全て公開 • オフライン —ROSCon: 世界規模の開発者会議 ü最近はlocal conf.も —SIG meetups, workshop, local events, etc.,,, 10
  11. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 11 ROS対応のロボット https://robots.ros.org Aerial Marine

    Component Sensor Ground Manipulator Motor
  12. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 12 学習⽤ロボット︓TurtleBot3 • ROS公式の研究・教育⽤ロボット組⽴キット —テーブルトップでROSやSLAMの学習が出来る

    —OSRF (Open Robotics)からのリクエストで誕⽣ —改造の⾃由度が⾼く、ROS対応ロボット作成が容易 https://emanual.robotis.com/docs/en/ platform/turtlebot3/overview/ TurtleBot3 - Official Product Video https://youtu.be/9OC3J53RUsk
  13. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 補⾜︓ROS 2 TSC @2022-02-01 •

    ロードマップの策定やコア機能などを主導 https://docs.ros.org/en/rolling/Governance.html • ROS 2開発に貢献する組織(の技術者)により編成 —いわゆるBig Techやロボティクス業界の有名企業 —半導体やOSやDDSのトップベンダ など ü最近は Community Representative も選考されている —特定トピックに特化したWGsも編成されている • 品質保証を重視した開発プロセスの採⽤ —アジャイル︓Kanbanによるプロジェクト進⾏の可視化 —テスト駆動︓継続的インテグレーション(CI)の適⽤
  14. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 14 ROSの通信⽅式︓トピック • ROS通信の基本 •

    ⾮同期型の出版購読通信 —publisher/subscriber • 通信データ︓message • 通信経路︓topic —topic 名が同⼀であれば,任意の個数/種類のノードが 任意のタイミングで登録/変更/削除できる —message の型が同⼀であれば,データ通信が⾏われる • subscribe 時にはコールバック関数が実⾏される node node node node node topic publish subscribe node node node node node topic publish subscribe
  15. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 15 ROSの通信型︓Field types • ROSIDL︓ROS通信型の記法

    • build-in-type︓ロボット通信に頻出する型の定義 —ROSのtype nameとC++, Python, DDSとで対応付けられる (カッコ内はC++の型) ü bool / byte / char / float32,64 / int8,16,32,64 / uint8,16,32,64 / string / wstring (std::u16string) ü static array (std::array<T,N>) / unbounded dynamic array (std::vector) / bounded dynamic array (custom_class<T,N>) / bounded string (std::string) • build-in-types の組合せで独⾃の型の定義もできる —例︓両⾞輪の⾓速度と回転量,現在位置の3次元座標,など —階層構造や配列を含むこともできる —パッケージ化して他プロジェクトに流⽤もできる https://docs.ros.org/en/foxy/Concepts/About-ROS-Interfaces.html requestの設定 (serviceへの送信値) responseの設定 (serviceからの返送値)
  16. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 16 Publisherの実装例 (rclpy) https://github.com/ros2/demos/blob/foxy/demo_nodes_py/demo_nodes_py/topics/talker.py クラスから

    ノードを⽣成 コールバック関数と タイマ周期の設定 トピックに メッセージを出版 ノード名の 指定 トピックと型情報を 指定して出版者に登録 メッセージの 作成 クラス定義
  17. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ … … 17 rclcpp rclpy

    node.cpp node.py RCL (ROS Client Library) RMW (ROS MiddleWare) DDS B DDS A General Purpose OS • 共通の基盤機能を提供 • C⾔語による実装 • 任意の⾔語から呼び出して そのライブラリを開発可能 • DDS通信機能を抽象化するAPI層 • 複数のDDS実装から選択可能 rclrs node.rs DDS C DDS (Data Distribution Service) • OMG標準仕様として規定 • 出版購読型の通信機能を提供 • RTPSによる通信相⼿の⾃動探索 ソフトウェアの階層構造
  18. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 18 DDS (Data Distribution Service)

    • OMG (Object Management Group) で策定された通信仕様 —peer-to-peer の通信ミドルウェアを実現 —最新版は2015年4⽉公開の Version 1.4 https://www.omg.org/spec/DDS • ROS 2での採⽤による利点 —ROS 2のメンテコード削減 —厳格かつ明確な仕様に依存できる ü第三者によるレビューや監査が可能 —⾼い互換性のある実装が提供される ünot “The DDS Wars”, but “DDS Cambrian Explosion” !!
  19. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 19 ROS 2に(公式)対応しているDDS実装 Middleware Library

    Provider Support ライセンス・備考等 rmw_fastrtps_cpp eProsima Fast DDS (Fast-RTPS) Tier 1 Apache 2.0,軽量実装, Foxyまで&Humbleのデフォルト [https://osrf.github.io/TSC-RMW-Reports/] 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), ⾼性能・⾼信頼な評価結果@ROSCon2019, Galacticではデフォルト rmw_fastrtps_ dynamic_cpp eProsima Fast DDS Tier 2 Apache 2.0,型の実⾏時の解釈・変換 (type introspection)をサポート REP-2000 を基に 作成・整理・抜粋 • 実装機能やライセンス形態に合わせて選択できる • 異種DDSのノード間でも通信できる(rmw層で抽象化) — Tier 1: Open Robotics公式の⼿厚いサポート — Tier 2: 公式だが限定的なサポート
  20. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 20 RTPS (Real-Time Publish-Subscribe) •

    DDSの通信プロトコル —正式名称は DDS Interoperability Wire Protocol (DDSI-RTPS) —最新版は2021年3⽉公開の Version 2.5 https://www.omg.org/spec/DDSI-RTPS/ • UDP/IP 上に実装される —OSI参照モデルのtransport層に位置 —パケットの到着保証などの不確実性は QoS機能によってカバーする • 通信相⼿の探索/通信経路の確⽴を ⾃律的に⾏うことができる
  21. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 21 RTPS による通信確⽴のフロー Participant_A SPDP

    Endpoint Writer Reader SEDP Endpoint RTPS Endpoint HistoryCache • Participant: ROS 2におけるノード • SPDP: Simple Participant Discover Protocol • SEDP: Simple Endpoit Discover Protocol • Endpoint: 通信端点となるモジュール — Writer/Reader: 情報を送信/受信するモジュール • HistoryCache: 通信履歴を保持するモジュール Writer Reader Publisher Subscriber
  22. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ P_E W_E R_E W_E R_E

    P_E S_E P_D W_D R_D W_D R_D P_D S_D P_C W_C R_C W_C R_C P_C S_C 22 RTPS による通信確⽴のフロー Participant_A SPDP Endpoint Writer Reader SEDP Endpoint RTPS Endpoint HistoryCache ①SPDPで⾃⾝のParticipant情報をmulticast発信 — Participant⽣成時/以降の定期的に発信 Writer Reader Publisher Subscriber P_B W_B R_B W_B R_B P_B S_B
  23. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 23 RTPS による通信確⽴のフロー Participant_A SPDP

    Endpoint Writer Reader SEDP Endpoint RTPS Endpoint HistoryCache ②SEDPでEndpoint情報を発信元にunicastで返送 — 出版購読に関わる情報を発信する Writer Reader Publisher Subscriber P_E W_E R_E W_E R_E P_E S_E T_3 P_D W_D R_D W_D R_D P_D S_D T_2 T_3 P_C W_C R_C W_C R_C P_C S_C T_1 T_2 P_B W_B R_B W_B R_B P_B S_B
  24. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 24 RTPS による通信確⽴のフロー Participant_A SPDP

    Endpoint Writer Reader SEDP Endpoint RTPS Endpoint HistoryCache ③Endpoint情報同⼠を照合 合致したもので通信経路を確⽴ Writer Reader Publisher Subscriber Topic_1 Topic_2 P_E W_E R_E W_E R_E P_E S_E T_3 P_D W_D R_D W_D R_D P_D S_D T_2 T_3 P_C W_C R_C W_C R_C P_C S_C T_1 T_2 P_B W_B R_B W_B R_B P_B S_B P_A T_1 T_2 P_B T_2 P_A T_1 T_2 P_C T_1 P_A T_1 T_2 P_D T_3 T_2 P_A T_1 T_2 P_E T_3 P_A C 1 D 2 B 2
  25. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 25 RTPS による通信確⽴のフロー Participant_A SPDP

    Endpoint Writer Reader SEDP Endpoint RTPS Endpoint HistoryCache ④確⽴された経路で出版購読通信を⾏う Writer Reader Publisher Subscriber Topic_1 Topic_2 P_E W_E R_E W_E R_E P_E S_E T_3 P_D W_D R_D W_D R_D P_D S_D T_2 T_3 P_C W_C R_C W_C R_C P_C S_C T_1 T_2 P_B W_B R_B W_B R_B P_B S_B P_A C 1 D 2 B 2
  26. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 26 QoS Control • 通信経路の品質を指定する(Pub/Sub間で互換性が必要)

    • 指定できるパラメータの例 (下線はデフォルト設定) —History (履歴) / Depth (深さ): Keep last (任意の値 (10個)を保持) or Keep all —Reliability (信頼性): Best effort or Reliable (リトライ試⾏) —Durability (耐久性): Transient local or Volatile (遅延⾮許容) —Deadline (許容更新間隔) https://docs.ros.org/en/foxy/Concepts/About-Quality-of-Service-Settings.html Profile History policy Reliability Durability Deadline Default Keep last 10 Reliable Volatile default Services Keep last 10 Reliable Volatile default Sensor data keep last 5 Best effort Volatile default Parameters keep last 1000 Reliable Volatile default
  27. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 27 Agenda • ROSとはなにか —ロボット開発を加速する4つの側⾯

    —DDS/RTPSによる出版購読通信機能 • mROS 2 = EdgeTech + ROS 2 —組込み技術を “組み込む” には —yet another なアプローチの紹介 —論よりRUN︓実装・動作例 • おわりに・今後の展望(+暴論) • C-M15 出展ブースのご案内 https://github.com/mROS-base/mros2
  28. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 28 • ROSの本質は通信にあり — ROSノード

    (機能単位) の疎な結合⽅式 — ROS 2ではDDS/RTPSに則った通信⽅式 — 基本はTopicを介した出版購読型 http://www.ros.org/about-ros/ node1 node2 node3 node4 Topic1 Topic2 node5 出版(Publish) 購読(Subscribe) msg msg msg msg ROS2/DDS通信技術の IoT分野への展開にも期待 • 通信性能の向上 — 応答性︓遅延時間 — リアルタイム性︓遅延変動 • 消費電⼒の削減 meets EMB for IoT!!
  29. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 29 X どうやって “組み込む” か︖

    native ROS 2 on SBC micro-ROS on EMB board 豊富なカーネル/ボード対応 rclc に完全準拠の機能群 Serial, UDP, Bluetooth 対応 XRCE-DDS=agent必須
  30. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 30 EMC GPC agent master

    node node client node dds-xrce rtps rtps m • RTPS︓DDSの通信プロトコル — SPDP/SEDP︓⾃律的に通信相⼿と 通信経路を探索/確⽴(master不要) — (ROS 2⾃体が)汎⽤OS上での稼働を想定 • 組込み技術の導⼊ — エッジ処理の応答性向上や消費電⼒削減 • micro-ROS︓ROS 2の組込み対応 — POSIX準拠の複数のRTOSをサポート — Micro-XRCE-DDS を利⽤ ØRTPS通信の仲介に agent が必要 Ø 単⼀障害点の発⽣と通信性能の劣化 ※GPC: General Purpose Computer EMC: Embedded Micro-Computer agent無⽤で ROS 2ノードと ⾃律的に通信︕ X どうやって “組み込む” か︖
  31. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 31 yet another なアプローチ —中規模の組込みデバイス上で実⾏されるプログラムが,

    汎⽤デバイス上のROS 2ノードと⾃律的に通信できるようにする —通信性能に優れた分散ロボットシステムの構築に貢献する • 提案︓ 組込みデバイス向けの⾼効率なROS 2通信⽅式と メモリ軽量な実⾏環境の確⽴ • 本研究における通信性能の定義 — 応答性︓通信処理の遅延時間 — リアルタイム性︓遅延時間の変動 ü いずれも⼩さいほど良い
  32. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 32 ソフトウェア構成 通信の⾃律性の確保 RTPSの仕様に則った通信の実現 ⾼品質なリアルタイムOSの採⽤

    通信性能・メモリ軽量性の向上にも寄与 出版購読通信向けAPIの提供 開発⽣産性=rclcppとの互換性を考慮 Embedded devices HAL library Kernel (ASP3, Mbed, POSIX) mROS 2 application mROS 2 comm. lib. mROS 2 API UDP stack (lwIP) RTPS (embeddedRTPS) CMSIS wrapper 軽量かつ効率的な通信処理の実現 CPU 数百MHz / Mem 数MB程度 mROS-base/mros2 多種デバイスへの 展開の容易化も考慮
  33. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 33 補⾜︓embeddedRTPS [A. Kampmann+ ITSC'2019]

    • C++実装による組込み向けのRTPSスタック —UDP/IP には lwIP (Raw Mode) を採⽤ —シリアライズに eProsima Micro-CDR を利⽤ • 主な機能と利点 —Discovery: SPDP と SEDP の機能を提供 —Interoperability: FastDDS 2.3.1 と疎通可能 —QoS Policies: reliable と best-effort に対応 —UDP Multicast: multicast locators に対応 —Message size: lwIP バッファサイズまで対応可能 mROS-base/mros2
  34. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 34 mROS 2 のタスク構成 •

    user_task — ROS 2のノードに相当 — マルチタスクプログラミングも可能 • init_task — ノード情報の初期化 — RTPS Participant として登録 — RTPS Reader/Writer 機能のための インスタンスを⽣成 • writer_task / reader_task — API に応じて出版購読処理を担う reader_task application mROS 2 comm. lib. RTPS/UDP mROS 2 API writer_task init_task user_task (mROS 2 node) mROS-base/mros2
  35. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 35 出版処理の動作フロー writer_task user_task (2)

    serialize message (3) create UDP packet (4) publish message (1) call publish() (1) メッセージ情報のオブジェクトのポインタを引数として publish() を呼出し (2) メッセージをシリアライズしてRTPSに則ったデータ形式に変換 (3) UDPパケットを作成し,writer_task に出版処理を依頼 (4) 出版処理を writer_task 内で実⾏(user_task と並⾏処理できる) mROS-base/mros2
  36. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ writer_task user_task (2) serialize message

    (1) call publish() user_task reader_task (1) receive UDP packet (3) deserialize message (4) receive info and message (2) exec RTPS callback (5) exec user_callback() 購読処理の動作フロー (1) UDPパケットを reader_task で受信 (2) 初期化時に登録された embeddedRTPS 内のコールバック関数を実⾏ (3) RTPSパケットをデシリアライズしてメッセージのデータ形式に変換 (4) コールバック関数とメッセージのオブジェクトのポインタを user_task に通信 (5) コールバック関数を user_task のコンテキストで実⾏ mROS-base/mros2
  37. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 37 Currently Supported mROS-base/mros2

  38. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ • Steps for embedded board

    • Step for the host 38 Getting started!! $ git clone https://github.com/mROS-base/mros2-mbed $ cd mros2-mbed $ ./build.bash all NUCLEO_F767ZI echoback_string $ picocom -b 115200 /dev/ttyACM0 $ docker run --rm -it --net=host ros:humble /bin/bash ¥ -c "mkdir -p ~/ros2/src && cd ~/ros2/src && ¥ git clone https://github.com/mROS-base/mros2-host-examples && ¥ cd ~/ros2_ws && ¥ colcon build --packages-select mros2_echoreply_string && ¥ source install/setup.bash && ¥ ros2 run mros2_echoreply_string echoreply_node " mROS-base/mros2
  39. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ mROS-base/mros2 39 定量的評価 [email protected] with

    Foxy uros-serial uros-udp uros-rtps mros2-asp3 mros2-mbed API rclc (galactic) mROS 2 API v0.3.1 RTPS Micro XRCE DDS embeddedRTPS protocol USART UDP RTPS on UDP RTOS FreeRTOS v2 TOPPERS/ASP3 Mbed OS 6 compiler 8.3.1 9.3.1 7.3.1 10.3.1 Ubuntu20 on RPi4 /to_stm /to_linux Round-Trip Time for UInt16, Twist, String by rclcpp::WallTimer.get_clock() on the host STM32 NUCLEO-F767ZI https://github.com/mROS-base/eval/releases/tag/v0.1.1
  40. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ mROS-base/mros2 40 評価結果︓通信性能・メモリサイズ • UInt16

    [ms] uros- serial uros- udp uros- rtps mros2- asp3 mros2- mbed avg 11.710 2.109 5.182 0.570 0.646 max 17.370 4.240 11.190 0.810 0.940 min 7.590 1.900 1.940 0.490 0.560 std.p 3.094 0.244 2.684 0.067 0.081 • Twist [ms] uros- serial uros- udp uros- rtps mros2- asp3 mros2- mbed avg 19.530 2.304 5.508 0.593 0.703 max 25.510 11.250 9.860 0.850 0.880 min 15.590 2.050 2.610 0.520 0.640 std.p 3.666 0.904 1.551 0.065 0.042 • mem size (binary for Twist) uros- serial uros- udp uros- rtps mros2- asp3 mros2- mbed text 209,836 233,656 174,752 90,551 393,312 data 356 356 576 16,632 3,336 bss 110,280 108,160 282,016 111,800 70,688 total 320,472 342,172 457,334 225,983 469,336 length of String 1 2 4 8 16 32 64 comm time [ms] 0.0 5.0 10.0 15.0 20.0 25.0 30.0 uros-serial uros-udp mros2-asp3 mros2-mbed • String
  41. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 41 議論︓Pros and Cons uros-

    serial uros- udp uros- rtps mros2 -asp3 mros2 -mbed summary (weakness of mros2) latency × △ × ◎ ◯ mros2-同⼠ではasp3がやや良い real-time × △ × ◎ ◯ -mbedはまれに外れ値が観測されることがある stability △ △ × △ ◯ uXRCEはagentが必須 -rtpsは接続難あり -asp3は初回通信時に⽋損することあり mem. size △ △ × ◯ × 特に-asp3は静的OSの⽅針に完全に基づく variety ◎ ◯ ◯ × △ uros-は多様なチップ・ボードに対応 -asp3は1種のみ -mbedは選択肢多め productivity △ △ △ ◯ ◎ mros2-ではC++でノード実装可能 コンパイル環境の準備も容易 perfection ◎ ◎ ◯ △ △ uros-はROS 2機能に完全準拠 mros2-はトピック通信のみ community ◎ ◎ △ × × uros-は世界規模︕ mros2-はこれから,,, mROS-base/mros2
  42. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 42 FAQ︓どこから始めたらいいの︖ ALGYAN(あるじゃん)主催︕mROS 2 ハンズオン︕

    https://algyan.connpass.com/event/259028/presentation/ mROS-base/mros2
  43. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ mROS-base/mros2 43 https://twitter.com/takasehideki/status/ 1505066116921524228 turtlesim

    $ ros2 run mturtlesim turtlesim_node $ picocom /dev/ttyACM0 EMB board + analog joystick publish Twist 論よりRUN!! "ron yori run" The RUN is mightier than the word
  44. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 44 論よりRUN!! 其の弐 mROS-base/mros2 mros2-mbed

    NUCLEO_F767ZI mros2-mbed ARCH_MAX mros2-mbed GR_MANGO mros2-posix RPi4 (w/o ROS 2) /to_humble /to_mros2 /to_hum ble /to_m ros2 /to_humble /to_mros2 /to_humble /to_mros2
  45. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 45 論よりRUN!! 其の参 powered by

    mROS-base/mros2 robot body node calc. PWM node /to_pid IMU data /to_control PWM value ⼆輪倒⽴振⼦
  46. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 46 Agenda • ROSとはなにか —ロボット開発を加速する4つの側⾯

    —DDS/RTPSによる出版購読通信機能 • mROS 2 = EdgeTech + ROS 2 —組込み技術を “組み込む” には —yet another なアプローチの紹介 —論よりRUN︓実装・動作例 • おわりに・今後の展望(+暴論) • C-M15 出展ブースのご案内 https://github.com/mROS-base/mros2
  47. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 47 まとめ • 組込み向けROS 2ノードのAgent無⽤な軽量実⾏環境

    • 貢献すること — ROS 2への組込み技術の導⼊を容易にする — 中規模の組込みデバイス上からROS 2ノードと ⾃律的に通信可能なノードを稼働させることができる — 通信性能と消費電⼒に優れた分散ロボットシステムの構築に期待できる Topic通信機能のみだが, 分散ロボット/IoTシステムの開発において 有望な選択肢のひとつになる(はず🤔🤔🤔
  48. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ Check it out! & Whatʼs

    next?? Please give us the Star! & your contribution!! https://github.com/mROS-base/mros2 • 多種のボード/カーネルへの対応 ü 直近のTODO/WiP︓POSIX対応RTOSへの移植 • QoS制御,サービス,アクションなどへの対応 • 実際のロボットシステム向け専⽤ボードの設計︖︖ 48
  49. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 49 圧倒的︕感︕謝︕︕ @ken551 @Hibagon1go @smoriemb

    @tmori @hakuturu583 @Haru-T mROS-base/mros2 本研究の⼀部は,JST CREST JPMJCR21D2 の⽀援ならびに 国⽴研究開発法⼈情報通信研究機構の委託研究(04001)により 得られたものである. @s-hosoai
  50. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ 50 デバイス エッジサーバ クラウド IoT

    Computing あらゆるモノ・コトの ネットワーク接続によって 新たな社会的価値を創造 各構成要素における 計算機特性の結集 なにをどこでやるか︖ どうやって繋げるか︖ ROS 2/mROS 2"だけ"で IoTの新しいセカイを繋げる︕ with
  51. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ C-M15 出展ブースのご案内 資料URL bit.ly/et22ut •

    B5G.ex: 関数型⾔語&MJYJSでBeyond 5G — 資源透過型広域分散プラットフォーム — B5G時代の通信ミドルウェア技術 など Ø Rclex: ROS 2 Client Library for Elixir ぜひとも お⽴ち寄りを︕
  52. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ C-M15 出展ブースのご案内 資料URL bit.ly/et22ut •

    固定⼩数点MPCの精度保証解析と⾼速化 • クライアントの多様性に寄り添う連合学習 a) 分散学習アルゴリズム b) 顔認証タスクの実機実装 EMB61で発表予定︕ 11/17(Thu) 14:30-15:00 近似 東京⼤学⼤学院情報理⼯学系研究科 コンピューティングシステム学研究室 概要 モデル予測制御(MPC) 固定⼩数点モデル予測制御の精度保証解析と⾼速化 貢献 応⽤ 汎⽤的で⾼性能な制御を達成するモデ ル予測制御は⼤規模な問題や組み込み機 器においてはサンプリングレートが低下 することから,適⽤が制限されている. 本研究では,固定⼩数点演算による精度 保証付きMPCを⽤いて,ハードウェアリ ソースと速度のトレードオフを考慮しな がら⾼速化を⽬指す. MPCの固定⼩数点実装に対して,EMPC を⽤いて動的に反復初期点を与える形に 拡張することで,以下を達成. 1)固定⼩数点MPCを従来より⾼速化 2)解精度を保証するための最適な 固定⼩数点ビット数と反復回数を導出 3)メモリ使⽤量と実⾏時間の トレードオフをとる設計を可能に 本研究により,MPCの適⽤幅を様々な 機器⽤件に広げられ,ロボットや航空機 の姿勢制御,⾼精度の観測機器系などで 精度やコストの改善を期待できる 提案⼿法 評価 連合学習の難しいポイント ✓ 分散データの統計的な性質がバラバラ ✓ 多様なHW仕様の違いにより処理時間がバラバラ → 多様性を包摂する連合学習の枠組みが重要 a) 学習アルゴリズムへの取り組み b) 実機実装の取り組み ・分散データの秘匿性を担保して機械学習に活⽤ → ⾦融、⽣体認証等の領域でデータ利活⽤の期待 <latexit sha1_base64="L9IJ1iNZ47EMbPJjpnhVMsIoYEc=">AAACxHichVFNSxtBGH7cfqiprbG9CF4Wg5IeGiYiWtpDAxbpMYmNClkJs9uJDs5+sDuJ2EV/gH/AQ08teCj9Af0BvQhezSE/QTwqePHgm92FolL7LrPzzDPv884z89qBkpFmrD9kPHr85OnwyGju2djzF+P5iZerkd8JHdFwfOWH6zaPhJKeaGiplVgPQsFdW4k1e3tpsL/WFWEkfe+z3g3Ehss3PdmWDtdEtfIfLNuNd/Za0lKirXkY+jtmSplvTEtobloetxU328WUfm+5XG85XMUfSfW6lS+wEkvCvA/KGSggi6qf/w0LX+DDQQcuBDxowgocEX1NlMEQELeBmLiQkEz2BfaQI22HsgRlcGK36b9Jq2bGerQe1IwStUOnKBohKU3MsB77yS7YMfvFztj1P2vFSY2Bl12a7VQrgtb4weTK1X9VLs0aW39VD3rWaONt4lWS9yBhBrdwUn336+HFyrv6TDzLfrBz8v+d9dkfuoHXvXSOaqL+7QE/NnmhF6MGle+24z5YnSuVF0rztflCpZK1agRTmEaR+rGICj6higbVP8IJTtEzlg1lREYnTTWGMs0r3Apj/wbSL6nM</latexit> wi w ⌘rf(w; Di) <latexit sha1_base64="C7QBleeQImuLzlCp8nuFBqBn6ww=">AAACtXichVHLShxBFD22STTmMWOyCbgZMhhcDbdFVARhwE1W4iOjgj1puttqLewX1TUjpukfyAfEhasEXIgf4MZdSMgPuPATJEsFN1nkTk9DSERzm+o6deqeW6fqukkgU010MWAMPnj4aGj48ciTp8+eV6qjL9bSuKM80fLiIFYbrpOKQEaipaUOxEaihBO6gVh3dxd6++tdoVIZR+/0fiLaobMdSV96jmbKrpLlhtlebgXC145S8V7N8pXjZWaeLeZW2gntTM6b+fvFfp4t7WqdGlRE7TYwS1BHGUtx9RQWthDDQwchBCJoxgEcpPxtwgQhYa6NjDnFSBb7AjlGWNvhLMEZDrO7/N/m1WbJRrzu1UwLtcenBDwUK2sYp3M6piv6QSd0Sb/urJUVNXpe9nl2+1qR2JWPr1Zv/qsKedbY+aO617OGj9nCq2TvScH0buH19d0PB1ercyvj2Rv6Qj/Z/2e6oK98g6h77R0ti5XDe/y47IVfjBtk/tuO22BtsmFON6aWp+rNZtmqYYzhNSa4HzNo4i2W0OL6n3CGb/huzBhtY8vw+6nGQKl5ib/CiH8DArukxQ==</latexit> w 1 N N X i=1 wi 反復更新 Clients Server モデル送受信 F2MKD [3]︓Clientに寄り添った個別のモデルを学習 ✓ FogとClientでデータを共有 – 集めたデータを⼊⼒としてモデルの知識蒸留を Fog–Client間の双⽅向で⾏う Server Fog Clients Fogモデル Clientモデル 0.0 0.2 0.4 0.6 0.8 1.0 (a) (b) (c) 0 100 200 300 400 500 0.0 0.2 0.4 0.6 0.8 1.0 (d) 0 100 200 300 400 500 (e) 0 100 200 300 400 500 (f) ௨৴ϥ΢ϯυ CA F2MKD FedFog FML Solo 学習ラウンド Clientの精度 Scenario Fog partitioning Client partitioning (a) IID IID (b) NonIID(2) (c) NonIID(1) (d) NonIID(2) IID (e) NonIID(1) (f) NonIID(1) IID 個別のモデルは 不要なケース ・顔画像を⼊⼒し本⼈か否かを 認証するシステムを構築 → 顔画像は秘匿したい︕ – Server︓Microsoft Azure VM – Clients︓シングルボードコンピュータ等 <latexit sha1_base64="M4e5h2P82f3OW4ZRYtsMDEyV9C4=">AAACZHichVFNSwJBGH7cvswsLQmCICQxOskYUtFJ6NLRj/wAE9ndRltcd5fdVTLpD9S16NCpICL6GV36Ax38A0F0NOjSodd1IUqqd5iZZ555n3eemZEMVbFsxroeYWR0bHzCO+mb8k/PBIKzc3lLb5oyz8m6qptFSbS4qmg8Zyu2youGycWGpPKCVN/u7xda3LQUXdu12wYvN8SaplQVWbSJSh9WghEWY06Eh0HcBRG4kdKDt9jDPnTIaKIBDg02YRUiLGolxMFgEFdGhziTkOLscxzDR9omZXHKEImt01ijVcllNVr3a1qOWqZTVOomKcOIsid2x3rskd2zF/bxa62OU6PvpU2zNNByoxI4Wci+/6tq0Gzj4Ev1p2cbVWw6XhXybjhM/xbyQN86uuhltzLRzgq7Zq/k/4p12QPdQGu9yTdpnrmEjz4g/vO5h0F+LRZfjyXSiUgy4X6FF4tYxiq99waS2EEKOTqX4xRnOPc8C34hJMwPUgWPqwnhWwhLn/UEifM=</latexit> x <latexit sha1_base64="fQhEUmfToFEYNlx+hdtFpU+YzgI=">AAACZnichVHLSsNAFD2Nr1pfVREFN8VScSHlRkTFVcGNy2qtClpKEqd1ME1Ckha0+AOCW7twpSAifoYbf8CFf6C4VHDjwts0IFrUO8zMmTP33Dkzozum9Hyix4jS0dnV3RPtjfX1DwwOxYdHNj276hoib9im7W7rmidMaYm8L31TbDuu0Cq6Kbb0g5Xm/lZNuJ60rQ3/0BGFila2ZEkams9UzirKYjxJaQoi0Q7UECQRRtaOX2MXe7BhoIoKBCz4jE1o8LjtQAXBYa6AOnMuIxnsCxwjxtoqZwnO0Jg94LHMq52QtXjdrOkFaoNPMbm7rEwgRQ90Q690T7f0TB+/1qoHNZpeDnnWW1rhFIdOJnLv/6oqPPvY/1L96dlHCUuBV8nenYBp3sJo6WtHjdfc8nqqPk2X9ML+L+iR7vgGVu3NuFoT6+eI8QeoP5+7HWzOpdWF9PzafDIzG35FFJOYwgy/9yIyWEUWeT63jFOcoRF5UgaVMWW8lapEQs0ovoWS+AS6t4q9</latexit> ni <latexit sha1_base64="BSkiGt/BBSx6dVaQjPSw4pDPEzw=">AAACmXichVG7SgNBFD1ZXzG+4qMQ0ohBUZAwkaCiTcTCYBWNUcFI2N1MdHFf7E4CJuQH/AELGxUsoh/gB9j4Axb5BLFUsLHwZrMgGox3mZ0zZ+65c2auYuuaKxhrBKSu7p7evmB/aGBwaHgkPDq251olR+VZ1dIt50CRXa5rJs8KTej8wHa4bCg631dON5r7+2XuuJpl7oozmx8Z8rGpFTVVFkTlwxObczm1YIm1nGJUc+KEC7k2nw9HWYx5MdUO4j6Iwo+0FX5ADgVYUFGCAQ4TgrAOGS59h4iDwSbuCFXiHEKat89RQ4i0JcrilCETe0r/Y1od+qxJ62ZN11OrdIpOwyHlFGbYM6uzN/bE7tkL+/yzVtWr0fRyRrPS0nI7P3I+mfn4V2XQLHDyreroWaCIFc+rRt5tj2neQm3py5WLt8zqzkx1lt2wV/J/zRrskW5glt/V222+c9nBj0Je6MWoQfHf7WgHe4ux+FIssZ2IJhf8VgURwTTmqB/LSCKFNLJUv4Ir1HEnRaR1KSVttVKlgK8Zx4+QMl80a5fH</latexit> G(·; ✓) <latexit sha1_base64="T7pAOSyBng1CN3QUgP82hdC+y2k=">AAACnXichVG7SgNBFD1Z3++oTcDCYFAsJEwkqFgFRLAQMdEYwWjYXUcdsi92JwFd4gf4AxZWihYi2voBNv6AhZ8glgo2Ft5sFkRFvcvsnDlzz50zczXHEJ5k7DGiNDW3tLa1d3R2dff09kX7B9Y8u+LqPK/bhu2ua6rHDWHxvBTS4OuOy1VTM3hBK8/V9wtV7nrCtlblvsM3TXXXEjtCVyVRpWisaKpyT9P8XG3L3y5KYXIvbpVErRRNsCQLIv4TpEKQQBjLdvQWRWzDho4KTHBYkIQNqPDo20AKDA5xm/CJcwmJYJ+jhk7SViiLU4ZKbJn+u7TaCFmL1vWaXqDW6RSDhkvKOEbZA7tkL+yeXbEn9v5rLT+oUfeyT7PW0HKn1HcUW3n7V2XSLLH3qfrTs8QOZgKvgrw7AVO/hd7QVw+OX1Zmc6P+GDtjz+T/lD2yO7qBVX3VL7I8d/KHH4280ItRg1Lf2/ETrE0mU1PJdDadyEyErWrHEEYwTv2YRgYLWEae6h/iHNe4UYaVeWVRWWqkKpFQM4gvoRQ+AKXjmiM=</latexit> Rd⇥ni <latexit sha1_base64="NF+guRIhMKMoDwMoqBOez5KuTHs=">AAACnnichVHLLgRBFD3aa7wHG2IzMSEWMqkRQawmkYiNYBgmMUy6WqGiX+muGaEzsfcDFlYkFiJh6QNs/ICFTxBLEhsLd3o6EQS3U12nTt1z61Rd7prSV4w91mn1DY1NzbGW1rb2js6ueHfPqu+UPEPkDMd0vDzXfWFKW+SUVKbIu57QLW6KNb43U91fKwvPl469og5csWHpO7bcloauiCrG+wvcCvYrRVmQdsHS1S7nQbayGWxVivEkS7EwEj9BOgJJRLHoxG9RwBYcGCjBgoANRdiEDp++daTB4BK3gYA4j5AM9wUqaCVtibIEZejE7tF/h1brEWvTulrTD9UGnWLS8EiZwBB7YJfshd2zK/bE3n+tFYQ1ql4OaOY1rXCLXcd9y2//qiyaFXY/VX96VtjGVOhVknc3ZKq3MGr68uHJy/J0digYZufsmfyfsUd2Rzewy6/GxZLInv7hh5MXejFqUPp7O36C1bFUeiI1vjSezIxGrYphAIMYoX5MIoM5LCJH9Y9wgWvcaAltVpvXFmqpWl2k6cWX0PIfck+a7g==</latexit> wi 2 Rd <latexit sha1_base64="MNufod/I9dxTMrzHBNWwvDiUse8=">AAACoHichVHLLgRBFD3a+zmDjcRGTIiFTGpkglhJbOyYYRCGTlcro6Jf6a6ZhM4sbP2AhRWJiNiw8gE2fsDCJ4gliY2FOz2dCILbqa5Tp+65daou9ywZKMYeG7TGpuaW1rb2js6u7p5EsrdvJXDLvikKpmu5/ho3AmFJRxSUVJZY83xh2NwSq3xvrra/WhF+IF1nWe17YtM2So7ckaahiNKTg0Vuh0FVl0XpFG1D7XIe5qtboaPLqp5MsTSLYugnyMQghTgW3eQtitiGCxNl2BBwoAhbMBDQt4EMGDziNhES5xOS0b5AFR2kLVOWoAyD2D36l2i1EbMOrWs1g0ht0ikWDZ+UQxhhD+ySvbB7dsWe2PuvtcKoRs3LPs28rhWenjgaWHr7V2XTrLD7qfrTs8IOpiOvkrx7EVO7hVnXVw6OX5Zm8iPhKDtjz+T/lD2yO7qBU3k1z3Mif/KHH05e6MWoQZnv7fgJVibSmcl0NpdNzY7HrWrDIIYxRv2YwizmsYgC1T/EBa5xow1r89qClqunag2xph9fQlv/AIiGm9A=</latexit> si 2 Rni 類似度の算出 →閾値以上で本⼈と認証 顔画像の撮影 ランドマークによる正規化 DNNによる特徴ベクトル抽出 →深層距離学習に利⽤ GitHub リポジトリ 統合 モデル更新 GT ⼊⼒ 類似度 5 0.7604 0.1704 0.2476 8 0.1132 0.6359 0.2333 9 0.3259 0.3669 0.7526 独⾃実装 Flower API Ø 認証結果の例 – 本⼈に対する類似度は⾼く – 他⼈に対する類似度は低く 学習(∵連合学習による協調) Ø 処理時間の評価 – ClientのHW性能の違い から遊休時間が⽣じる Jetsonの遊休時間 学習ラウンド 処理時間 [s] [1] ⼭﨑雄輔, ⾼瀬英希, “フォグコンピューティングを活⽤したサーバクライアン ト間双⽅向知識蒸留を⽤いる連合学習⼿法F2MKD,” SWoPP 2022, 海峡メッセ下関, ⼭⼝, 2022年7⽉. (IEICE CPSY研優秀若⼿発表賞) [2] ⼭﨑雄輔, 細合晋太郎, ⾼瀬英希, “顔認証タスクを事例とした連合学習システム の実機実装,” IPSJ-EMB61 2022, パシフィコ横浜, 神奈川, 2022年11⽉. [3] Y. Yamasaki and H. Takase, “Fog-enabled federated learning with mutual knowledge distillation: F2MKD,” in Proc. CCNC 2023, Jan. 2023. (to appear) 概要 連合学習 クライアントの多様性に寄り添う連合学習 貢献 応⽤ センシティブなデータを中央のAIシステム には集めず機械学習を可能にする連合学習 について,Clientの多様性に着⽬しそれら を包摂する枠組みを提案する. a) 知識蒸留とFogコンピューティングの 活⽤による個別のモデルを学習可能に b) 顔認証タスクを事例とした実践的な 実機実装及び性能評価 データの秘匿性が重要である 医療や⾏政分野でのデータ利活⽤を促進 a) 分散学習アルゴリズムの提案 b) 顔認証タスクを 事例とした実機実装 研究業績 D3-AIプロジェクト 個別のモデルが 有効なケース 以下の「信頼」を備えるAIシステムの創出 (1) データや機械学習モデルのプライバシーが利⽤者 や設計者の意図通りに保護されること (2) AIシステムの健全な利⽤者が公平にAIの恩恵を受 けられること (3) 利⽤環境の変動にシステムが⾃動的に適応し安⼼ してシステムを利⽤できること (4) 省エネルギーで動作し環境負荷が⼩さいこと • Distributed︓分散データを利活⽤し • Dynamic︓時空間的な性質の変動に適応し • Diverse︓利⽤者の多様性を尊重する RPiでもJetsonでも Diverseに使⽤可 デモ展⽰ あり〼 <latexit sha1_base64="kyCpwhzoRwuYygayvcycEFnbVXs=">AAACiXichVG7TgJBFL2sLwQV1MbEhkgwVmTWoBIqEhpLHvJIgJDdddAJ+8rugEHCD1jaWGCjiYWx9wds/AELPsFYYmJj4d1lE6NEvJvdOXPmnrtncmRTZTYnZOgTZmbn5hf8i4Hg0vJKKLy6VrKNtqXQomKohlWRJZuqTKdFzrhKK6ZFJU1WaVluZZzzcodaNjP0I941aV2TTnTWZIrEkarUZK131m/sNcJREiduRSaB6IEoeJU1wo9Qg2MwQIE2aEBBB45YBQlsfKogAgETuTr0kLMQMfecQh8CqG1jF8UOCdkWfk9wV/VYHffOTNtVK/gXFV8LlRGIkRdyT0bkmTyQV/L556yeO8Px0sVVHmup2QhdbBQ+/lVpuHI4/VZN9cyhCUnXK0Pvpss4t1DG+s751aiQysd62+SWvKH/GzIkT3gDvfOu3OVofjDFj4xe+hiP+DuMSVDajYv78UQuEU0nvaD8sAlbsINpHEAaDiELRTeFSxjAtRAURCEppMatgs/TrMOPEjJfmWGS1Q==</latexit> w5 <latexit sha1_base64="uhZqpJXb1laUVfgZjy6aSKAHJXU=">AAACiXichVE9T8JQFL3ULwQV1MXEhUgwTuTVEG2YSFgc+ZCPBAhp6wNf6FfagsGGP+Do4oCLJg7G3T/g4h9w4CcYR0xcHLwtTYwS8TbtO++8e27Py5EMhVk2IaMANze/sLgUXA6FV1bXItH1jbKld02ZlmRd0c2qJFpUYRot2cxWaNUwqahKCq1Inax7XulR02K6dmz3DdpQxbbGWkwWbaSqdUl1zgZNoRmNkyTxKjYNeB/Ewa+cHn2EOpyADjJ0QQUKGtiIFRDBwqcGPBAwkGuAg5yJiHnnFAYQQm0Xuyh2iMh28NvGXc1nNdy7My1PLeNfFHxNVMYgQV7IPRmTZ/JAXsnnn7Mcb4brpY+rNNFSoxm52Cp+/KtScbXh9Fs107MNLRA8rwy9Gx7j3kKe6HvnV+NiupBwdskteUP/N2REnvAGWu9dvsvTwnCGHwm9DDAe/ncY06C8n+QPkql8Kp4R/KCCsA07sIdpHEIGjiAHJS+FSxjCNRfmeE7g0pNWLuBrNuFHcdkvn7uS2A==</latexit> w8 <latexit sha1_base64="wms8/cP9eBlmlQYX7Zgp0veD6+Q=">AAACiXichVG7TgJBFL2sLwQV1MbEhkgwVmTWEEUqEhpLHvJIgJDdddAJ+8rugEHCD1jaWGCjiYWx9wds/AELPsFYYmJj4d1lE6NEvJvdOXPmnrtncmRTZTYnZOgTZmbn5hf8i4Hg0vJKKLy6VrKNtqXQomKohlWRJZuqTKdFzrhKK6ZFJU1WaVluZZzzcodaNjP0I941aV2TTnTWZIrEkarUZK131m8cNMJREiduRSaB6IEoeJU1wo9Qg2MwQIE2aEBBB45YBQlsfKogAgETuTr0kLMQMfecQh8CqG1jF8UOCdkWfk9wV/VYHffOTNtVK/gXFV8LlRGIkRdyT0bkmTyQV/L556yeO8Px0sVVHmup2QhdbBQ+/lVpuHI4/VZN9cyhCUnXK0Pvpss4t1DG+s751aiQysd62+SWvKH/GzIkT3gDvfOu3OVofjDFj4xe+hiP+DuMSVDajYt78UQuEU0nvaD8sAlbsINp7EMaDiELRTeFSxjAtRAURCEppMatgs/TrMOPEjJfodmS2Q==</latexit> w9 IPSJ-EMB61で発表予定 [2] 11/17(Thu) 14:30–15:00 予測区間 N 予測区間 N ⽬標値 ! 現時刻 現時刻 最初の要素を実 際の⼊⼒とする 誤差⾯積が最⼩に なるよう⼊⼒決定 状態 " ⼊⼒ # MPCは制約付き線形時不変系 の制御に⽤いられる汎⽤⼿法 ⼆次計画問題(QP)を解く Ø 応⽤上の課題 EMPC)⾼速だが区分領域数がパラメタ数に対して指数爆 発するため,⼩サイズの問題のみ適⽤可能 IMPC)⾼負荷のため,⾼い制御サンプリングレートが必要 な領域への適⽤が制限(ex. ロボットの姿勢制御) !!"# = #!! + %&!, !! ∈ ) 状態 " #! $∗ = min # )$*) + ," $) !. .. ) = #! , … , #%&' ∈ Ζ 制御 対象 ⼆次計画問題 Plant *∗ = min % .& /. + (1!)& . 3. 5. . = &', … , &()# ∈ Ζ initial state 8 9* for : = 1, … , <* do QP solver iteration IMPC ̃ .+ , >+ ← @ABCDE F GℎADA ! ∈ ℛAJKCL+ Ø Implicit MPC・Explicit MPC ü 固定⼩数点演算,近似EMPCを⽤いて,IMPC を⾼速化する ü 解精度を保証するために必要な反復回数と固定 ⼩数点ビット数を導出する QPを反復法で解く Implicit MPC (IMPC)と,オフラインで厳密解を得る Explicit MPC (EMPC)がある.EMPCで は右図のような状態空間の線形区分領 域をメモリに保持する Step 1. 近似分割領域を得る Step 2. 近似分割領域(ℛ"#$%&)ごとの近似解およ び,解精度保証に必要反復回数を定理[1]に従って 導出,メモリに格納する Step 3. 動的に初期値・反復回数を定め制御する D Previous Proposal [2] W = 4 W = 5 17 36/36 35/31.9 31/28.0 20 33/33 32/28.9 28/25.0 ∞ 32/32 31/28.9 28/24.6 B# & 0 !# !, B, & 1 解精度0.1を保証する 反復回数の最⼤値/平均値 バネマス系での シミュレーション 従来法より, 平均反復回数24% 最⼤反復回数15% 程度の削減 近似度でメモリ量 と速度のトレード オフを調節できる 必要な解精度を保 証するために最適 な反復回数-固定 ⼩数点ビット数' を求められる 本ケースでは ( = 19あれば最適 [1] 前⽥志温, 中村宏, and ⾼瀬英希. "精度保証付き⾼速モデル予測制御の固定⼩数 点実装に向けた検討." 電⼦情報通信学会技術研究報告; 信学技報. [2] Peyrl, Helfried, et al "Parallel implementations of the fast gradient method for high-speed MPC” Control Engineering Practice 33 (2014): 22-34 参考⽂献 Ø 最適な固定⼩数点ビット数と反復回数を導出 Ø ⾼速化を達成 近似度 W 本研究の⼀部は,JST CREST JPMJCR21D2の⽀援によるものである. 資料URL ぜひとも お⽴ち寄りを︕
  53. -BC *1$ *45 65PLZP $PNQVUJOH4ZTUFN-BCPSBUPSZ C-M15 出展ブースのご案内 資料URL bit.ly/et22ut 東京⼤学⼤学院情報理⼯学系研究科

    コンピューティングシステム学研究室 CGRA (Coarse-Grained Reconfigurable Architecture)はその⾼いエネルギー効率からIoTデバイ スや組み込みデバイス向けの演算処理ユニットとしての利⽤が期待されている。CGRAはデータフ ロー型計算機であり、従来のプロセッサとは異なるアプリケーション開発アプローチが求められる。 概要 CGRAの持つ省エネルギー性、⾼スループット性を最⼤限に引き出すには、計算データフローの マッピング最適化が必須である。そこで、さまざまな視点で最適化を⾏うアルゴリズムの考案や、 既存のアプリケーションソースの再利⽤を可能にするOpenMPコンパイラの開発を⾏なった。 貢献 同⼀の設計で製造されたCGRAでは多様化する要求に応えることは困難である。現在、CGRAの⽅ 式や演算器の規模などを容易に変更可能な設計フレームワークの開発を進めている。これを応⽤す ることで、⽤途やデバイスが稼働する環境に合わせて最適なCGRAの設計を短期間で完了できる。 応⽤ 再構成可能ハードウェアCGRAによる⾼効率計算 次世代の計算機: CGRA アプリケーション開発の効率化 プログラム柔軟性 エネルギー効率 ASIC FPGA CGRA GPU DSP CPU DSAの選択肢 【近年の傾向】 • 領域特化アーキテクチャ (DSA: Domain-Specific Architecture) • 汎⽤コアではなく、特定の計算に特化したコアを採⽤ (e.g., Google TPU) • Mooreの法則の終焉により、⾯積、エネルギー効率を重要視 • IoTデバイスの普及に伴い多様化するアプリケーション • 処理の計算パターンや要求されるスループット、電⼒制約は多種多様 2~200 TOPS 0.5~500 MOPS 1 kOPS~30 MOPS PE PE Data Memory PE PE PE PE PE PE PE PE PE PE PE PE PE PE Configuration Cache ヘルスケア スマートメーター センサーノードなど インフラ エッジAI ドローン x 機械学習 ウェアラブル端末 x ⼼電図モニタリング IoTデバイスのためのCGRA uW~mWオーダーの消費電⼒制約 【CGRAによる解決】 • 再構成可能ハードウェア によるHW/SW協調設計 • 省エネルギー性 • ⾼スループット性 CGRA設計のスケーラビリティ向上 Exact PE Ax PE ① Exact PE Exact PE Ax PE ③ Ax PE ③ Ax PE ② Ax PE ① Exact PE Ax Mem ① Ax Mem ② Exact Mem PEアレイ メモリ ユーザー拡張 ロジック アーキテクチャ 設計パラメータ スケーラブルな CGRA設計フレームワーク パラメタライズ CGRAコンポーネント Chisel on Scala CGRA設計DSL コンパイラフロントエンド CGRAOmp [T.Kojima IPDPSW 2022] OpenMP # pragma omp 計算データ フローグラフ DFG DFG分割 Trained weight DFGマッピング 深層学習ベースの リソース推定モデル [T.Kojima, TPDS 2022] 最適化⽬的 l スループット最⼤化 l カットサイズ最⼩化 l ロードバランス 分割後の DFG GenMap [T.Kojima, TVLSI 2020] CGRAへの マッピング 遺伝的アルゴリズム による多⽬的最適化 LLVMベースのコンパイラ OpenMPのtarget構⽂ Githubで公開中 最適化⽬的 l 配線⻑の最⼩化 l ⾯積、リソース最⼩化 l エネルギー最⼩化 【多様なCGRA実現に向けて】 • 共通のフレームワークから CGRAインスタンスを⽣成 • 開発期間を最⼩化 • ハードウェア記述⾔語 Chiselを採⽤ 応⽤例) 近似計算回路を保有するCGRA CGRA の多様化 資料URL 東京⼤学⼤学院情報理⼯学系研究科 コンピューティングシステム学研究室 近距離無線規格Zigbeeは間接通信によって低消費電⼒を達成している。本研究では、この間接通信 を悪⽤する新たなLow-rate DoS攻撃を指摘し、さらにその攻撃の緩和策や検知⼿法について提案 した。 概要 Zigbeeに対する新たなLow-rate DoS攻撃とその緩和策を提案し、攻撃の影響と緩和策の効果をシ ミュレータ上で検証・測定した。さらに攻撃検知アルゴリズムも考案し、その検知率が⾼くリソー スの限られたIoT機器上で動かせる程⼗分に軽量であることも確認した。 貢献 Zigbeeと類似した通信⽅式を採⽤する無線プロトコル(Bluetooth Low Energy, 6LowPANなど) に対する同様の攻撃⼿法を検討している。 応⽤ ZigbeeネットワークにおけるLDoS攻撃とその対策 [1] Satoshi Okada, Daisuke Miyamoto, Yuji Sekiya, Hiroshi Nakamura “New LDoS Attack in Zigbee Network and its Possible Countermeasures,” International Conference on Smart Computing (SMARTCOMP), IEEE , pp.246-251, 2021. [2] Satoshi Okada, Daisuke Miyamoto, Yuji Sekiya, Hideki Takase, Hiroshi Nakamura, “LDoS Attacker Detection Algorithms in Zigbee Network,” International Conferences on Internet of Things (iThings), IEEE, pp.43-50, 2021. 参考 ⽂献 LDoS攻撃 Zigbee • DoS攻撃︓Denial of Service 攻撃 攻撃者はターゲットに対して⼤量のデータを送りつけて、 サービス障害を引き起こす。 ⼀定期間の通信量に着⽬することで⽐較的簡単に検知可能。 • LDoS攻撃︓Low-rate Denial of Service 攻撃 攻撃者はターゲットに対して周期的かつパルス状のデータを 送りつけて、サービスの質の低下を引き起こす。 攻撃通信の平均通信量は⼩さいため、従来⼿法での検知が困難。 Average volume • 近距離無線規格の⼀つで、消費電⼒が⼩さい • 低消費電⼒は、エンドデバイス(ZED)が スリープとアクティブを定期的に繰り返すことで 実現されている →間接通信 1. スリープしているZEDにデータを送信 2. 送信先ZEDの親機(ZR)がデータを⼀時的に保存 3. 送信先ZEDがアクティブになった時に、親機に 問い合わせを⾏いデータを回収 Active inquiry (polling) Sleeping... Router (ZR) End device (ZED) 攻撃⼿法 Zigbeeの通信形式を悪⽤するLDoS攻撃とその対策を提案 [1] <攻撃フロー> 1. ネットワークに不正に侵⼊し、ターゲットの親機に攻撃 ノードを接続 2. ターゲットに短期間で⼀気にデータを送りつける 3. 親機のバッファが⼀杯になる ※この期間ターゲット宛のデータは全て 破棄されてしまう 4. ターゲットがアクティブになり、親機からデータを回収 5. ステップ2 - 4を繰り返す target node ・・・ Buffer ZC ZR ZED attack node 対策 【緩和策 】[1] バッファが満杯になった際に、新規に到着したパケットを 破棄する(Taiil Drop)のではなく、バッファ内のパケットを ランダムに選んで破棄(RDOF) →正常通信の到達率が上昇 【攻撃ノードの検知】[2] 攻撃通信の周期性やバッファが破棄したパケットの分布から 攻撃者を特定 →⾼い検知率を達成 ⼩型コンピュータRaspberry pi zero上で提案アルゴリズムが 正常に動作することを確認 →⼗分に軽量でリソースの制限されたIoT機器上でも動作可能 資料URL ぜひとも お⽴ち寄りを︕