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

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

Author: 
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
No votes yet
Last modified: 
Tue, 2020-11-24 13:20

Download

latest Releases

For Begginers

Windows msi(installer) package (only trying samples)

C++,Python,Java,
Toolsを含む
1.2.1-RELEASE

Development environment is required for RT-Component development. See download page for details.

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK