OpenRTM-aistでIoTシステムを構築しよう! ~MQTT通信モジュールの開発とソースコードの公開~
(会津大学 復興支援センター 吉野 大志)
トップページ >
ドキュメント >
コラム >
OpenRTM-aistでIoTシステムを構築しよう! ~MQTT通信モジュールの開発とソースコードの公開~
この度、これまで開発してきたロボットミドルウェアOpenRTM-aist Python用のMQTT通信モジュールをブラッシュアップさせ、Web上でソースコードを公開するに至りました。MQTTは世界中で広く利用されているIoTプロトコルであり、MQTT通信モジュールで拡張することで、OpenRTM-aistをIoTシステム構築のためのミドルウェアとして活用できるようになります。
OpenRTM-aistでは、インターネットを含むTCP/IPネットワーク上の通信において、通常オブジェクト分散技術であるCORBAが選択されます。しかし、CORBAはデータ送信者と受信者がクライアントとサーバの関係になっており、もしサーバ側で何らかのセキュリティ上の制約がある場合はクライアントからサーバが見えなくなってしまうため、通信不可能となります。ですのでCORBAはセキュリティ上の制約が多いインターネット上での分散システム構築には向きません。これに対してMQTTは送信者と受信者が共にクライアントとなり、外部のメッセージBrokerに接続してBroker経由でデータのやり取りを行います。このため、いずれかのクライアント側におけるインバウンド通信に何らかの制限がかかっていたとしても、外部にあるBrokerへの接続が可能な状態であれば(クライアントからBrokerに対するアウトバウンド通信について特段制限がなければ)クライアント間のデータ交換が可能となります。
注目いただきたいのはシステム中の通信インタフェースがMQTTに変わるだけ、という点です。OpenRTM-aistのユーザであれば、MQTTクライアントの開発を意識することなく、これまでと同様にRTコンポーネントを開発し、RTシステムを構築する感覚でIoTシステムを構築できます。さらにRTコンポーネント単体には異なる通信インタフェースのデータポートを複数備えられることから、例えば、リアルタイム性を意識したプロセス間通信の”shared memory”と、MQTT通信インタフェースを一つのRTコンポーネントに同居させることもできます。すなわち、MQTT通信インタフェースと他のリアルタイム系通信インタフェースの組み合わせはロボットのインターネット活用にも応用可能ということです。もしよろしければOpenRTM-aistを通してIoTプロトコルのMQTTに触れてみてください。
詳しくはこちらから
Fig.1 MQTT通信インタフェースを備えたOpenRTM-aistによるIoRT(Internet of Robotic Things)としてのRTシステムの構築例
会津大学
復興支援センター
吉野 大志