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

なんしかいろいろつながるZenohの紹介

takasehideki
February 03, 2024

 なんしかいろいろつながるZenohの紹介

第17回FA設備技術勉強会 in TOKYO
2024/02/03
https://fa-study.connpass.com/event/301303/

takasehideki

February 03, 2024
Tweet

More Decks by takasehideki

Other Decks in Technology

Transcript

  1. 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 システム開発者 デプロイされる コード ① ③ ② ③ ③ ❤ 評価アプリ ❤ 評価アプリ ④ ④ ❤ 評価アプリ ④ ② ② ❤ 評価アプリ ④ ② ② ② ②
  2. 3 はじめに a.k.a おことわり • スライドの完成度はひくいです ;;( • 本発表の内容には takasehideki

    の独断と偏⾒で⾏っている 調査結果がたぶんに含まれておりまする かならず⼀次情報をご確認ください :- • デモ的なさむしんぐはこちらから,,, https://github.com/takasehideki/zenoh_trial
  3. 5 出版購読型通信 • 特定のトピックをSubscribe(購読)しているノードに対して, 特定のトピック宛てにPublish(配信)したメッセージが届く形式 パブ サブ1 サブ2 サブ3 topicAを

    購読するやで topicBを〜 topicAを〜 topicA に送るっす topicAを購読しているなら サブ1,3のどちらにも同じメッセージが届く Pub Sub Pub/Subを兼任できるし 複数Topicの 購読と配信も可能
  4. • Zero Overhead Pub/Sub, Store/Query and Compute. — Zero network

    overhead protocol — ネットワーク内ではDDSライク, ネットワーク間ではMQTTライクな通信ミドルウェア — GitHub : https://github.com/eclipse-zenoh/ üEclipse Public License 2.0 and/or Apache 2.0 — 当初はOCaml実装,2020/10- 頃からRustに移⾏ • 開発主体︓ZettaScale Technology — CEO/CTO︓Angelo Corsaro さん — ADLINK(CycloneDDS開発主体)から独⽴︖ 7
  5. 8 • Pub / Sub (Push) • Pub / Sub

    (Pull) • Pub / Store / Get • Get / Reply Peer Peer Peer Peer Peer Peer Peer Peer Pub Sub(callback) Sub(Pull) Pub Pub Get Reply Pull
  6. 11 なんでもつかえる︕ QUIC, TLS, TCP, UDP Unicast, UDP Multicast IPv4,

    IPv6 6LoWPAN WiFi, Ethernet, Thread, Bluetooth, Serial • https://github.com/eclipse-zenoh/zenoh-python • https://github.com/eclipse-zenoh/zenoh-cpp • https://github.com/eclipse-zenoh/zenoh-c • https://github.com/eclipse-zenoh/zenoh-java • https://github.com/eclipse-zenoh/zenoh-kotlin • https://github.com/eclipse-zenoh/zenoh-csharp • https://github.com/eclipse-zenoh/zenoh-go https://zenoh.io/docs/ getting-started/first-app/
  7. • Zenohex = Zenoh + Elixir https://github.com/b5g-ex/zenohex Zenoh Protocol by

    Rust Erlang VM Elixir node1 Elixir node2 process Rustler github.com/rusterlium/rustler Rust謹製のZenoh APIを Elixir/Erlangから利⽤ Python node2 Erlangプロセスなので 軽量かつ堅牢︕︕ C++ node1 だったらElixirじゃね︖︖
  8. 14 なんしか Elixir!! 2012年に登場した新しめの関数型⾔語 BEAM (Erlang VM) 上で動作 • ⾼い並⾏/並列性能を誇る

    • 軽量かつ頑強なプロセスモデル • 耐障害性が極めて⾼い Rubyを基にした⾔語設計 • 習得しやすく⽣産性が向上する • 通信応答性能が極めて⾼い • Web/IoT/AI FW. を備える Programming should be about transforming data .1 1 ( 0 ) . .1 ) 11 .1 ) ) &0 1(. &0 1 Elixir Zen Style Ø データフローと並列処理を Enum Flow |> で直感的に記述できる ※各⾔語・フレームワークのロゴの権利は それぞれの作成者に帰属しています
  9. 17 いろいろつながる︕ Peer Peer Peer Peer Router Peer Peer Peer

    client Peer Peer Router client Router Peer to peer Clique Mesh Brokered Routed Router Router Router Router client client Router client client client client
  10. 23 つまり,こうなる︕(はず) … … rclcpp rclpy node.cpp node.py RCL (ROS

    Client Library) RMW (ROS MiddleWare) DDS B DDS A General Purpose OS rclrs node.rs Zenoh?? DDSと同じようにZenohを 選択できるようになる DDSと同じレイヤに Zenohが追加される ユーザアプリ/クライアントライブラリの レベルでは影響なし ていう話しを来週の rosjp関⻄で︕︖ https://rosjp.connpass.com/ event/304753/
  11. 24 Thank you! merci!! Arigato!!! @takasehideki A part of this

    work is supported by the commissioned research (04001) by National Institute of Information and Communications Technology (NICT) , Japan.