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

フィジカル AI 時代のスタンダードになれるか!? 通信ミドルウェア Zenoh を使ってみた

Avatar for wanda wanda
September 29, 2026

フィジカル AI 時代のスタンダードになれるか!? 通信ミドルウェア Zenoh を使ってみた

2026/9/29に開催されたDevelopersIO 2026 Osaka の登壇資料です。
https://events.classmethod.jp/study-club/connpass-401017/

当日紹介できなかったマスコットキャラクターのカメのスライドも追加しています。

Avatar for wanda

wanda

September 29, 2026

More Decks by wanda

Other Decks in Technology

Transcript

  1. アジェンダ 前半:ROS の基本と課題 後半:Zenoh の活用と実践 01 ROS とは 01 Zenoh

    の紹介 02 ROS の通信(Pub / Sub) 02 Zenoh + ROS2 の組み合わせ 03 フィジカル AI と ROS 03 ROS2 のリモート通信デモ 04 ROS に関する与太話 04 Zenoh Storage の紹介 05 ROS のプロセス間通信について 05 ROS トピックと Zenoh Key 06 ROS の Pub / Sub でできないこと 06 その他の ROS ブリッジ ROS のプロセス間通信はユースケース次第で課題が出てきます。 それらの課題を Zenoh が解決してくれる、というニッチなテーマで喋ります
  2. 自己紹介 市田 善久 クラウド事業本部 コンサルティング部 IoT ソリューションアーキテクト / マネージャー 業務:

    AWS 環境の設計・構築からサーバーマイグレーション、データ 基盤構築、スマートファクトリー支援パッケージの開発など 様々な業種のお客様に技術支援を実施 好きなサービス・ボード: AWS IoT Greengrass, FRDM-MCXN947(NXPセミコンダクターズ)
  3. ROS(Robot Operating System) とは 概要と特徴 • OSと名前がついているが、ロボットアプリケーションの開発を⽀援するソフトウェアライブラリとツールのセット • 実際には、ロボットのセンサーやモーターなどを標準化されたメッセージ形式でつなぐ通信ミドルウェア •

    ROS 向けのライブラリ‧ドライバが提供されているケースや 各種の⾔語向けに提供されているライブラリを 組み合わせて ROS アプリを開発 利⽤イメージ 採⽤事例 ソニーのaibo ※イメージのための疑似プログラムです SEQSENSEの警備ロボット Unitree Go2 (DevelopersIO 会場にいる4⾜歩⾏ロボット)
  4. ROS のディストリビューション • • 今は ROS2 が主流(ROS 1 は2025年5月31日が EOL)

    ROS2 は毎年5月23日にリリースがあり、LTSバージョンは偶数年ごと ROS distribution Ubuntu EOL Lyrical Luth Ubuntu26.04LTS May 2031 Jazzy Jalisco Ubuntu24.04LTS May 2029 Humble Hawksbill Ubuntu22.04LTS May 2027
  5. フィジカル AI と ROS AI ROS AI / ROS ⾃然⾔語や映像などを理解しロボット

    の⾏動計画を決定 AI の判断をもとに ROS を使ってロ ボット制御 センサーでデータを収集し、AIに フィードバックしながら動作を修正
  6. 5月23日は世界カメの日(毎年の ROS2 リリース日) • アメリカの非営利団体「American Tortoise Rescue」が2000年に制定した記念日 • カメに対する知識と敬意を高め、カメの生存と繁栄のための人類の行動を促す •

    公式サイト:https://worldturtleday.org/ ◦ カメと飼い主の安全を確保するための、段階的な手順ガイド ◦ カメの飼育方法 ◦ カメに関するFAQ ◦ 関連書品のショップ など
  7. ROS における通信 • • ノード単位の疎結合な通信として3パターンの通信方式 基本はトピック(topic)を介した非同期型の Pub / Sub 通信

    ◦ トピック:ROS通信の基本 ◦ サービス:「サーバー / クライアント」関係の通信 ▪ クライアントのリクエストに対してサーバー がレスポンスを返す ◦ アクション: ▪ 「サーバー / クライアント」関係の通信 ▪ サーバーがクライアントに非同期に フィードバックを返す(Publishする) ▪ 長時間のタスクの進行状況を知ることが出来る
  8. DDS(Data Distribution Service) • ROS2は通信レイヤにDDS(Data Distribution Service)を採用 ◦ DDSとは、産業用IoT(IIoT)向けのデータ中心型ミドルウェアプロトコルおよびAPI標準 ◦

    ROS観点でいうと「ROS 2におけるノード間のデータ通信の標準規格」 • DDS を抽象化した「RMW」(ROS Middleware) レイヤーを通して通信する • DDSには代表的な複数の実装があるが Fast DDS がROS2 のデフォルト • ROS2(Jazzy)ではFast DDS対応の rmw_fastrtps_cpp がデフォルト
  9. ROS2 / Fast DDS • ROS2 Jazzyでデフォルトで利用できるDDS実装 • シンプルディスカバリープロトコル ◦

    ◦ ◦ • DDS標準で定義されている標準プロトコル 新しいノードが追加されるにつれて交換されるパケット数が大幅に増加する マルチキャスト機能が必要 ディスカバリーサーバー ◦ ◦ 各ノードはクライアントとして機能し、 ディスカバリーサーバーと情報を共有し、 ディスカバリーサーバーから検出情報を受信 これにより、大規模システムにおける ネットワークトラフィックが大幅に削減 マルチキャストも不要になる。
  10. Zenoh の紹介 • • • Zero network overhead protocol Eclipse

    Foundationのプロジェクトで開発主体はフランスのZettaScale社 ROS 2 の非DDS のRMW実装として公式にサポートされている ◦ ◦ • GitHub - ros2/rmw_zenoh: RMW for ROS 2 using Zenoh as the middleware · GitHub Zenoh — ROS 2 ドキュメント 特徴的な機能 ◦ ◦ ◦ ◦ ◦ Pub / Sub 型の通信 柔軟なネットワークトポロジの構成が可能 様々なプロトコルと連携できる ストレージ機能(Zenoh Storage)によるデータ保存とクエリ 軽い(スループット msg/s が MQTT の130倍)
  11. Zenoh Router によるネットワーク間の Pub/Sub • Peer to Peer ◦ ◦

    ◦ • 同一ネットワーク内でのピア(ノード)自動探索 やデータ通信にUDPマルチキャストを利用 UDPマルチキャスト(デフォルト)を使ってピア 同士がお互いを自動で探し出す 探索後は、ユニキャスト(1対1)に切り替えて データ通信 Brokerd / Routed ◦ WANや異なるネットワーク間の通信は Zenoh ルーターを利用したブリッジ通信 ▪ NAT/マスカレード超えが可能
  12. Zenoh + ROS2 の通信 • • • Zenoh はROS通信用のブリッジを提供している ROS

    2の非DDSのRMW実装(rmw_zenoh)を利用して、異なるネットワーク間 のROS通信が可能 ROS2 アプリは Zenoh を経由しても実装に影響なく利用できる
  13. Zenoh + ROS2 の通信 • • • 各 ROS クライアントで環境変数

    RMW_IMPLEMENTATION=rmw_zenoh_cpp を設定 rmw_zenohd をローカルのバックグラウンドで動作する Zenoh Routerとして利用 rmw_zenohd と Zenoh ルーターを接続して双方向通信を行う
  14. Zenoh Storage • • Zenoh は publishしたデータを永続的なストレージに保存可能 Zenoh Router 経由でデータを保存・取得が可能

    ストレージの種類 概要 Amazon S3 AWSが提供するオブジェクトストレージ InfluxDB(v1,v2) 時系列データベースの一つ。 AWSでも Amazon Timestream for InfluxDB を提供(v2, v3) RocksDB LSM-Treeベースで実装された key-value型のデータベース ファイルシステム ファイルシステム
  15. Zenoh Storage - S3 Backend の注意点 常に最新のデータで上書きされる点に注意しましょう • • •

    S3上のオブジェクトは Zenoh Keyの構造のまま put される Zenoh Key が変わらない場合は、S3 オブジェクトの中身が上書きで更新 時系列データを扱う場合は、キー(トピック)に時間を含めて put する実装にする
  16. ROS2 + Zenoh で S3 にデータを保存する Zenoh API で直接 S3

    に put するのではなく ROS2 で put する場合 • • ROSのトピック と Zenoh のキー のマッピングに注意 事前に 該当するROS トピックが対応する Zenoh のキーを確認しておく
  17. ROS Topic と Zenoh Key マッピングの確認方法 • Zenoh CLI を使って

    ROS トピックに対応する Zenoh Keyを確認 ◦ • Zenoh Router 上で実施 ROS Node から 該当トピックにメッセージを Publish Zenoh CLI で 全トピックをSubscribe ROS トピック /chatter に Publish Zenoh CLIで確認。「0/chatter/・・・1a18」 全体が該当する Zenoh Key
  18. その他の Zenoh ブリッジ ◦ MQTT: ◦ ◦ Eclipse zenoh の公式リポジトリがある(eclipse-zenoh/zenoh-plugin-mqtt)

    OPC UA: ◦ ◦ ◦ ◦ OPC UA は工場設備などで利用される産業用通信プロトコル ネット上で関連ワードとして紹介されているサイトが散見される Eclipse zenoh には関連リポジトリは存在しないので、スタンダードなものは現状無し 各種言語で OPC UA のライブラリがあるので、ブリッジのプロトタイピングは容易 Zenoh は ロボットやインダストリアル IoT などの分野と相性がよく、超軽 量・高速な分散型通信プロトコル(ミドルウェア)として注目されている