RTI Labs、Python対応Connector for Connext DDSを提供開始 - Connextスイートに統合
この記事が最初に公開されて以来、多くのことが変わりました。今日では、RTI Labsプログラムのベータ・テスターのおかげで、PythonやJavaScriptから直接DDSにアクセスできます。RTI Connector for Connext® DDSはConnext製品ファミリに統合されています。
今週、RTI Labsを発表できることを嬉しく思います。これは、お客様に次世代Industrial IoTテクノロジーへの早期アクセスを提供する無料イニシアチブです。RTI Labsでリリースされるプロジェクトは実験的で、参加者が新しいアイデアをプロトタイピングし、実世界のフィードバックを通じて製品ロードマップを形作ることを可能にします。RTIとコミュニティの双方にとってウィン・ウィンです。
3つの実験的プロジェクトでプログラムを開始し、最初がRTI Connector for Connext DDSです。すでにRTI Connext 5.3.0をダウンロードし、RTI Launcherを起動している場合、「Lab」タブに新しいアイコンが表示されていることに気づくでしょう - そのうちの1つがConnectorアイコンです。

Connectorアイコンをクリックすると、コミュニティ・ポータルのRTI Connectorページが開きます。Connectorは、RTIの研究チームによってデモ開発と迅速なテストを加速するために作成されました。LuaインターフェースによるRTI Prototyperから始まり、以来PythonとJavaScript/node.jsをサポートするように拡張されました。
RTI Connectorとは?
RTI Connector for Connext DDSは、RTI Connext DDSの全機能への軽量でスクリプト可能なインターフェースを提供します。JavaScript、Python、Luaをサポートし、ConnextのXMLアプリケーション作成とDynamic Data機能を基盤としています。本記事ではPython APIに焦点を当てますが、同じ原則がJavaScript/node.jsとLua/Prototyperにも適用されます。
ユースケース
早期採用者は、以下のシナリオでConnectorを有用と見出しています:
- テスト: 分散システムのコンポーネントが未完成の場合、Connectorで不足するDDS部分をエミュレートし、分離テストを可能にし、統合遅延を削減。
- プロトタイピング: 最小限のコードでデモや概念実証を迅速に構築 - ネイティブConnext APIの桁違いに少ないコード量で実現。
- ユーザー・インターフェース: ConnectorをPyQtなどのPython UIフレームワークと組み合わせ、DDSデータをパブリッシュ/サブスクライブするシンプルなダッシュボードを作成。
- 統合: Pythonの巨大なエコシステム(PyPIには112,439以上のパッケージ)を活用し、サードパーティ機能を追加してDDSで通信。
- その他: 独自のユースケースをRTIコミュニティ・フォーラムで共有し、将来の拡張を形作るのを支援。
RTIで始める
以下はPythonの基本的な知識を前提としています。RTI ConnectorはPython 3とそれ以前のリリースで動作し、すべての主要エンタープライズOSで実行可能、Raspberry Piなどの組み込みボードでもサポートされます。完全なプラットフォーム・リストはウェブサイトでご確認ください。他の環境サポートが必要な場合はフォーラムでご相談ください。
PyPIからConnectorをインストール:
pip install rticonnextdds_connector
またはリポジトリをクローン:
git clone https://github.com/rticommunity/rticonnextdds-connector.git
リポジトリには実行可能な例がいくつか含まれます:
- simple/writer.js - Writerを作成、インスタンス設定、サンプル公開。
- simple/reader.js - Readerを取得、サンプル取得、内容検査。
- simple/read_and_write.py - 各サンプルを読み取り、2フィールドを反転、書き戻し。
- mixed/ - シーケンス長、wait()使用法などをカバーする更新済み例。
API概要
詳細については、GitHubリポジトリのREADMEをご覧ください。以下はコアAPIの簡潔なウォークスルーです。
まず、Connectorライブラリをインポート:
import rticonnextdds_connector as rti
希望の設定とXMLファイルでConnectorインスタンスを作成:
connector = rti.Connector("MyParticipantLibrary::Zero", "./ShapeExample.xml")
最初の文字列が設定名、2番目がXMLベース・アプリ作成ファイルを指します。サンプル・ファイルはリポジトリにあります。
getOutputでData Writerに、getInputでData Readerにアクセス:
output = connector.getOutput("MyPublisher::MySquareWriter") input = connector.getInput("MySubscriber::MySquareReader")
両メソッドはXMLで定義されたエンティティ名を受け取ります。
Writerで辞書または個別にフィールドを設定:
output.instance.setDictionary(sample) output.instance.setNumber("y", 2)
Reader側では、read()またはtake()でサンプルを取得し、イテレート:
input.read() # or input.take() numOfSamples = input.samples.getLength() for j in range(1, numOfSamples+1): if input.infos.isValid(j): x = input.samples.getNumber(j, "x") y = input.samples.getNumber(j, "y") # …
サンプルは辞書としてもアクセス可能:
sample = input.samples.getDictionary(j)
マルチスレッドで作業する場合、Connectorアクセスをガード - 例はリポジトリにあります。
制限事項
RTI Connectorは多くのタスクを簡素化しますが、意図的に軽量です。Dynamic Dataのみサポートし、コンパイル済み型はサポートせず、フルConnext DDS Proスイートで利用可能ないくつかの高度な機能は欠けています。特殊なユースケースの場合、ドキュメントを確認するか、サポートに連絡して代替ソリューションをご相談ください。
コスト
RTI Connectorは無料です。将来のリリース形成のためフィードバックを提供することのみお願いします。あなたの洞察がロードマップに影響します。
結論
この投稿は、Python向けRTI Connectorのハイレベル・ビューを提供します。学ぶ最良の方法は実験です - パッケージをダウンロードし、例を実行し、RTIコミュニティ・フォーラムで体験を共有してください。ツールを洗練し、次世代機能を計画する上で、あなたのフィードバックは不可欠です。
モノのインターネットテクノロジー
- Raspberry Pi と Python でロボットを構築:完全ガイド
- OpenDDS vs RTI Connext DDS:適切なデータ配布サービスソリューションの選択
- 堅牢な時系列監視システムの構築:RTI Connext DDSとTelegraf、InfluxDBの統合
- RTI Connext 6リリース:性能向上、セキュリティ強化、統合接続性
- 産業用IoTにおけるConnext DDS:信頼性・セキュリティ・拡張性のための5つの重要知見
- RTI Perftest 2.4リリース:Connext DDSのパフォーマンス・テストを強化
- なぜRTI Connext DDSが自律走行車の定番ミドルウェアなのか
- 産業IoT開発者のためのトップ7リソース - 2017年版
- LabVIEW 2017でRTI DDS Toolkitを用いた産業IoTシステム設計
- Connext DDS 101:初心者向けスタートガイド
- Python type()とisinstance()の理解:実例付き解説