Slide 1

Slide 1 text

@takasehideki @ShintaroHosoai けっきょく ってなんなのか︖ 〜ROS 2の復習︖紹介︖も交えつつ〜

Slide 2

Slide 2 text

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 システム開発者 デプロイされる コード ① ③ ② ③ ③ ❤ 評価アプリ ❤ 評価アプリ ④ ④ ❤ 評価アプリ ④ ② ② ❤ 評価アプリ ④ ② ② ② ②

Slide 3

Slide 3 text

Software Engineering Embedded System Modeling ほそあい しんたろう 略歴 都島⼯業⾼校 →近⼤⽣物理⼯(B) →JAIST(M,D) →九⼤研究員 →チェンジビジョン →東⼤研究員 なう @ShintaroHosoai 細合 晋太郎 @s-hosoai 細合晋太郎 Software Hardware Electronics Mechatronics DIY 3D cad 3D print Software product line DSL Web Cloud AI ROS 専門分野 趣味 ・ダイビングで海底漁り ・プログラミング言語漁り ・Steamでゲーム漁り ・ハヤカワでSF漁り ・つくりたいもの漁り

Slide 4

Slide 4 text

(Robot Operating System) • Plumbing: 出版購読型の通信ミドルウェア • Tools: プロジェクト管理,デバッグ,可視化,等 • Capabilities: 膨⼤なライブラリ・パッケージ • Ecosystem: 世界規模の強⼒なOSSコミュニティ ロボットソフトウェアの開発を加速するプラットフォーム http://www.ros.org/about-ros/ 4 https://youtu.be/9wM_l6Y1IJI

Slide 5

Slide 5 text

通信ミドルウェアとしての • Publish / Subscribe messaging infrastructure —ROSノード︓ロボットシステムを構成する機能単位 —Topicを介した出版購読型通信︓基本的に⾮同期・疎な通信⽅式 üノードの登録・変更・削除・配置が容易に実現できる ü障害時にはノード単位で再起動と復旧ができる node1 node2 node3 node4 Topic1 Topic2 node5 出版(Publish) 購読(Subscribe) msg msg msg msg • その他の通信⽅式 — Service: 同期式 — Action: 同期と⾮同期の組合せ — Parameter: 多変量辞書 5

Slide 6

Slide 6 text

ROS 2 の階層構造 … … 6 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による通信相⼿の⾃動探索

Slide 7

Slide 7 text

7 つまり,,, • 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分野への展開にも期待 • 通信性能の向上 — 応答性︓遅延時間 — リアルタイム性︓遅延変動 • 消費電⼒の削減 mROS-base/mros2 meets EMB for IoT!!

Slide 8

Slide 8 text

8 X どうやるの︖︖ micro-ROS GPC agent master node node client node dds-xrce rtps rtps m • RTPS︓DDSの通信プロトコル — SPDP/SEDP︓⾃律的に通信相⼿と 通信経路を探索/確⽴ • micro-ROS︓ROS 2の組込み対応 — POSIX準拠の複数のRTOSをサポート — Micro-XRCE-DDS を利⽤ ØRTPS通信の仲介に agent が必要 agent無⽤で ROS 2通信︕ 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 W_E R_E W_E W_D R_D W_D R_D P_D T_2 W_C R_C W_C R_C T_2 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

Slide 9

Slide 9 text

9 mROS 2?? https://vimeo.com/638040779/8a10335711 このとき v0.1.4,,, https://www.stmcu.jp/design/thirdparty/os/91883/ Embedded devices HAL library RTOS (ASP3 or Mbed) mROS 2 application mROS 2 comm. lib. mROS 2 API UDP stack (lwIP) RTPS (embeddedRTPS) mROS-base/mros2 ROSConʼ22も お楽しみに,,,

Slide 10

Slide 10 text

Embedded devices HAL library RTOS (ASP3 or Mbed) mROS 2 application mROS 2 comm. lib. mROS 2 API UDP stack (lwIP) RTPS (embeddedRTPS) 10 ソフトウェア構成 通信の⾃律性の確保 RTPSの仕様に則った通信の実現 軽量かつ効率的な通信処理の実現 C++実装 / CPU 数百MHz / Mem 数MB程度 ⾼品質なリアルタイムOSの採⽤ 通信性能・メモリ軽量性の向上にも寄与 基本型に対応した出版購読APIの提供 開発⽣産性=rclcppとの互換性を考慮 mROS-base/mros2 多種デバイスへの 展開の容易化も考慮 ASP3ではCMSIS 互換レイヤを整備

Slide 11

Slide 11 text

11 補⾜︓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: PR#4 より対応 —Message size: lwIP バッファサイズまで対応可能 mROS-base/mros2

Slide 12

Slide 12 text

mROS-base/mros2 12 Platform Variation

Slide 13

Slide 13 text

13 Getting started!! $ git clone https://github.com/mROS-base/mros2-mbed $ cd mros2-mbed $ ./build.bash all [TARGET] echoreply_string mROS-base/mros2 also available with Keil Studio Cloud a.k.a Mbed Online Compiler https://os.mbed.com/users/smoritaemb/code/mbed -os-example-mros2/

Slide 14

Slide 14 text

mROS-base/mros2 14 論よりRUN!! https://twitter.com/takasehideki/status/ 1505066116921524228 mturtlesim $ ros2 run mturtlesim turtlesim_node $ picocom /dev/ttyACM0 EMB board + analog joystick publish Twist

Slide 15

Slide 15 text

mROS-base/mros2 Check it out!! Please give us the Star! & your contribution!! https://github.com/mROS-base/mros2 • support other boards & TOPPERS kernels • implement new targets with POSIX compliant RTOS • support QoS control, Service, Action, ... • check with Galactic & support Humble??

Slide 16

Slide 16 text

mROS-base/mros2 16 圧倒的︕感︕謝︕︕ 本研究の⼀部は,JST CREST JPMJCR21D2 の⽀援ならびに 国⽴研究開発法⼈情報通信研究機構の委託研究(04001)により 得られたものである. @ken551 @Hibagon1go @smoriemb @tmori @hakuturu583 @Haru-T

Slide 17

Slide 17 text

17 9⽉にハンズオン,開催決定︕︕ mROS-base/mros2 もうハラをくくって やっちゃうぞぉ,,, しらんけど :D 詳細の続報は #ALGYAN にて︕ 本⽇は9⽉31⽇!! それではハンズオンを 楽しみましょう︕ https://docs.google.com/document/d/ 14tb6riEkbYYiEMxBEIIdI4j2KYm1JenvI 23AvOBuCHU/edit?usp=sharing