工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial Internet of Things >> モノのインターネットテクノロジー

Pythonを使用したConnextDDS用のRTIラボとコネクタの紹介

これ以降、多くのことが起こりました。最初に公開された投稿。 PythonまたはJavascriptを使用してDDSにアクセスできるようになったことをご存知ですか? Connext ® のRTIコネクタとしての需要を高めてくれたRTILabsプログラムのベータテスターに​​感謝します。 DDSは、Connext製品スイートの一部として利用できるようになりました。

今週は、産業用IoT向けに開発している新しいテクノロジーにお客様が早期にアクセスできる無料のプログラムであるRTILabsを発表できることに興奮しています。私たちはそれらを実験的プロジェクトと呼んでいます。 RTI Labsを利用するお客様は、次世代テクノロジーを活用し、実験機能に関するフィードバックを提供することで、製品ロードマップに影響を与える機会があります。それはお互いに有利な状況です!

3つの新しい実験プロジェクトでプログラムを開始します。最初のプロジェクトはConnext DDS用のRTI(R)コネクタです。 RTI Connext5.3.0をダウンロードしてRTILauncherを起動した場合は、[ラボ]タブにいくつかの新しいアイコンが表示されます。これらのアイコンの1つはコネクタ用です。

コネクタアイコンをクリックすると、コミュニティポータルのRTIコネクタページに移動します。 Connectorは、デモの作成と迅速なテストを支援するためにRTIの研究チームによって開発されました。 ConnectorはRTIPrototyperへのLuaインターフェースから始まり、その後、PythonやJavaScript /node.jsなどのスクリプト言語のサポートが追加されました。

しかし、RTIコネクタとは何ですか?

Connext DDS用のRTIコネクタは、JavaScript、Python、Luaなどのさまざまなスクリプト言語からRTI ConnextDDSの機能と機能にすばやく簡単にアクセスする方法です。 XMLアプリの作成や動的データなど、ConnextDDSのいくつかの強力な機能に基づいて構築されています。

このブログ投稿はRTI ConnectorのPythonインターフェースに焦点を当てていますが、ほとんどの概念はJavaScript /node.jsとlua / prototyperに簡単に適用できます。

ユースケース

RTIコネクタには多くの使用例があります。アーリーアダプターのユースケースには、次のようなものがあります。

RTIの使用を開始する

このブログ投稿では、Pythonにある程度精通していることを前提としています。 RTIコネクタはPython3と<3の両方で動作します。すべての主要なエンタープライズシステムと、RaspberryPiなどのボードでサポートされています。利用可能なプラットフォームのリストはここで確認できます。他のサポートが必要な場合は、フォーラムで遠慮なく質問してください。 RTI Connector for Connext DDSをPythonにインストールするには、PyPIで入手可能なパッケージを使用できます:

 pip install rticonnextdds_connector 

別の方法は、リポジトリのクローンを作成することです:

 git clone https://github.com/rticommunity/rticonnextdds-connector.git 

リポジトリには、開始するための例もいくつかあります。


APIの概要

APIがどのように見えるか見てみましょう。より詳細な情報が必要な場合は、GitHubリポジトリでREADMEを表示できます。

最初に行うことは、RTIコネクタライブラリをインポートすることです。

 rticonnextdds_connectorをrtiとしてインポートします 

RTIコネクタへの参照を取得したら、APIを呼び出して新しいコネクタを作成できます:

コネクタ=rti.Connector( "MyParticipantLibrary ::Zero"、 "./ ShapeExample.xml"); 

最初の文字列は使用する構成の名前であり、2番目の文字列はXMLベースのアプリ作成構成を含むXMLファイルです。そのファイルの例をここで見ることができます。

コネクタが作成されると、getOutput APIを使用してすべてのデータライターにアクセスできます:

 output =Connector.getOutput( "MyPublisher ::MySquareWriter") 

または、同じ方法でデータリーダーにアクセスできます:

 input =Connector.getInput( "MySubscriber ::MySquareReader"); 

どちらのAPIも、XMLファイルで定義されたエンティティの名前を表すパラメータとして1つの文字列を取得します。

データライターへの参照(この例では出力)を取得したら、関連付けられたインスタンスのフィールドを設定できます。辞書を渡すことでそれを行うことができます:

 output.instance.setDictionary(sample); 

または各フィールドを個別に設定する:

 output.instance.setNumber( "y"、2); 

データリーダー側(この例では入力)では、readまたはtakeを呼び出すことができます:

 input.read(); 

または

 input.take(); 

次に、受け取ったサンプルを反復処理できます:

 numOfSamples =input.samples.getLength(); 

範囲(1、numOfSamples + 1)のjの場合:
input.infos.isValid(j)の場合:
x =input.samples.getNumber(j、 "x");
y =input.samples.getNumber(j、 "y");
....

サンプルには2つの方法でアクセスできます。辞書として:

 sample =input.samples.getDictionary(j); 

またはフィールドごと:

 y =input.samples.getNumber(j、 "y"); 
size =input.samples.getNumber(j、 "shapesize");

マルチスレッドライブラリを使用する場合は、コネクタへのアクセスを保護することを忘れないでください。これを行う方法の例はここにあります。

この力のすべてには境界があります

RTIコネクタは優れており、多くの課題を解決できます。しかし、すべてとして、それはすべてに完璧ではありません。 APIのセットは限られています。ConnextDDSProで実行できることのいくつかは、RTIコネクタでは実行できません。動的データでのみ機能し、コンパイルされたタイプでは機能しません。使いやすく、移植するために、特定のユースケースを念頭に置いていくつかの仮定を立てました。特定のユースケースを解決できない場合や、最も効率的な解決方法ではない場合がありますが、おそらく別のツールまたはサービスがあります。あなたの特定の問題:私たちに聞いてください!

いくらですか?

このテクノロジーの費用について疑問に思われるかもしれません…無料です!!あなたはそれを手に入れて実験することができます。私たちがお願いするのは、あなたが私たちにあなたのフィードバックと提案を与えることだけです。このフィードバックは、今後の製品リリースに含めるアップデートと機能を優先する際に考慮されるため、ロードマップに影響を与えることができます。

結論

このブログは、Python用のRTIコネクタの紹介にすぎません。あなたが興味を持っているなら、学ぶための最良の方法はそれを試すことです。 RTIコミュニティフォーラムでご不明な点やご質問がございましたら、お気軽にお問い合わせください。喜んでお手伝いさせていただきます。それが好きで、改善のための提案やアイデアがある場合は、お気軽にお問い合わせください。次のことを決定する際にフィードバックを求めています...


モノのインターネットテクノロジー

  1. オープンDDSとRTIDDSソフトウェア
  2. Connext DDS用のTelegrafプラグイン:DDSとInfluxDBを使用して時系列監視システムを構築する
  3. Connext 6:利用可能になりました!
  4. Connext DDSと産業用IoT:知っておくべき5つのこと
  5. ConnextDDSの最新のRTIパフォーマンスを発表
  6. 誰もが自動運転車にRTIConnextDDSを使用している理由はここにあります
  7. IIoT開発者向けの2017年のトップ7リソース
  8. DDSとLabVIEW2017を使用して産業用IoTシステムを設計する方法
  9. ConnextDDS入門-ELI5をお願いします。
  10. RaspberryPiとPythonを使用したロボットの構築
  11. Python の type() と isinstance() と例