OpenRTM-aist用MQTT通信モジュール群とMosquitto MQTT brokerの 組み合わせによるIoTシステムの構築方法

OpenRTM-aist用MQTT通信モジュール群とMosquitto MQTT brokerの 組み合わせによるIoTシステムの構築方法

投稿者: 
daishi-y

概要

top01ex_0.png

MQTT通信モジュールをOpenRTM-aistに組み込むことで、RTコンポーネントにおけるデータポート間の通信インタフェース型としてIoT(Internet of Things)プロトコルの一つであるMQTT(Message Queuing Telemetry Transport)を選択できるようになります。

これにより、OpenRTM-aistをIoTシステム構築用のミドルウェアとして活用できます。

MQTT通信モジュールはMessageにおけるpayloadのシリアライズ形式の違いから、大きく以下の2種類に分類されます。
  • CDR(Common Data Representation)シリアライズ版MQTT通信モジュール
  • JSONシリアライズ版MQTT通信モジュール

シリアライズ形式の違いはありますが、いずれのモジュールにおいても平文でデータ交換可能なものと、セキュア通信に対応したものを揃えています。

特徴

  • MQTT通信モジュールを用いることで、以下のような制限付きの環境においてもRTシステムを構築できるようになります。
    • 通信成立にNAT(Network Address Translation)越えを必要とする環境
    • 通信成立にFirewall越えを必要とする環境
    • 無線LAN等、不安定なネットワーク環境
  • セキュア通信機能付きモジュールを活用することで以下を実現できます。
    • インターネット等、不特定多数が利用するネットワーク環境でのシステム構築
    • IoTプラットフォームのAWS(Amazon Web Services) IoT CoreをBrokerとしたPublish/Subscribe(発行/購読)メッセージング
  • MQTT ver.3.1.1の'Retain(保持)'および'Will(遺言)'の機能を利用できます。
    • 'Retain'機能により、新規InPort(データ受信側)がシステムに参加すると同時に最新データを受け取れる
    • 'Will'機能により、InPortはOutPort(データ送信側)の異常切断を即座に関知できるようになる
  • JSONシリアライズ版モジュールを活用することで以下を実現できます。
    • OpenRTM-aist上のRTシステムと、外部のMQTTシステム(通常のMQTTクライアントで構築されたシステム)間の連携
    • AWS IoT Core等を通して、RTシステムとAWSにおける他のクラウドサービスとの連携

仕様

  • 言語: Python
  • OS: Linux(Ubuntu・Debian・Raspbian・Raspberry Pi OS)
  • 対応しているOpenRTM-aistのversion:
    • 1.1.2, 1.2.0, 1.2.1(Python2系)
    • 1.2.2(Python3系)

MQTT通信モジュール群

  • CDRシリアライズ版MQTT通信モジュール(RTCの全データ型に対応)
    • OutPortPahoPublisher(OutPort用セキュア通信機能なし)
    • InPortPahoSubscriber(InPort用セキュア通信機能なし)
    • OutPortPahoPubSecure(OutPort用セキュア通信機能付き)
    • InPortPahoSubSecure(InPort用セキュア通信機能付き)
  • JSONシリアライズ版MQTT通信モジュール(RTCのBasicDataTypesとExtendedDataTypesに対応)
    • OutPortPahoPubJson(OutPort用セキュア通信機能なし)
    • InPortPahoSubJson(InPort用セキュア通信機能なし)
    • OutPortPahoPubJsonSecure(OutPort用セキュア通信機能付き)
    • InPortPahoSubJsonSecure(InPort用セキュア通信機能付き)

ソースコード

GitHubリポジトリ:https://github.com/dyubicuoa/OpenRTM_aist_paho_mqtt_interface

問合先(メールアドレス): 
daishi-y<at>u-aizu.ac.jp
Project Information
OS: 
Linux
言語: 
Python
OpenRTM ver.: 
1.1
1.2
Average: 
0
まだ投票はありません
最終更新日時: 
火, 2020-11-24 13:20

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク