MATLABを使用してライブIoTデータを活用する
センサーまたは他のタイプのデータソースからデータ分析を行ったことがある場合は、データを収集し、データを変換してから、MATLABを使用してデータを処理および分析するプロセスに従っている可能性があります。 MATLABを使用してデータを分析することは、そのタスクを実行するための非常によく知られたツールです。データを収集して変換し、MATLABで使用できるようにするには、膨大な時間がかかる可能性があります。 MathWorksによって完了した統合のおかげで、MATLABをDDSで公開およびサブスクライブされているライブデータと簡単に接続できるようになりました。 MATLABはデータの分析に使用されるトップツールの1つであり、DDSはすぐにIIoTアプリケーションのデータ通信ミドルウェアになります。この統合により、開発者は非常に迅速なプロトタイピングとテスト分析が可能になります。このブログ投稿では、DDSデータを公開する方法と、MATLABを使用してDDSデータをサブスクライブする方法の例をいくつか紹介します。
はじめに
開始するには、MATLABとRTI ConnextDDSの両方がコンピューターにインストールされていることを確認する必要があります。この一連の例では、次のバージョンが使用されました。
- MathWorks MATLAB R2016b
- MathWorksDDSブロックセット2.9.2
- RTI Connext DDS 5.2.3(ビデオチュートリアル-LinuxおよびWindows用のインストール)
- RTI Shapesデモアプリケーション(Connext DDSとともにインストールされます。チュートリアルはこちらをご覧ください)
- Windows 10 PC
それらをインストールしたら、次のリンクのビデオに従ってインストールを完了し、確認してください:インストールビデオ
初期化
すべてをインストールして検証したら、MATLAB内でDDSを適切にセットアップするためのいくつかの手順があります。
- プロジェクトで使用されるデータ型をインポートします。
- DDSドメイン参加者を作成する
- DDSデータライターを作成する
- DDSデータリーダーを作成する
MATLABでのデータ型のインポートは簡単です。 DDSでは、データ型はIDLファイルを使用して指定されます。 MATLAB importステートメントはIDLファイルを直接読み取ることができ、MATLABインタープリター内でそのデータ型を操作するために必要な「.m」ファイルを作成します。次のMATLAB呼び出しは、現在の作業ディレクトリにあるShapeType.idlファイルから「ShapeType」というデータ型をインポートします。
>> DDS.import( 'ShapeType.idl'、 'matlab'、 'f')
これで、DDSでトピックのDataReadersとDataWritersを作成するときにデータ型を使用できるようになりました。また、インポートが完了すると、このステップを今後実行する必要がなくなることにも注意してください。この型は、今後MATLABで使用できるようになります。 DDSディスカバリーを実行するために次に行うことは、DDSドメイン参加者を作成することです。これは、この呼び出しで実行できます:
>> dp =DDS.DomainParticipant;
このDomainParticipant(dp)オブジェクトを使用して、DataWriterオブジェクトとDataReaderオブジェクトの両方を作成できます。次の2つのコマンドは、データライターオブジェクトとデータリーダーオブジェクトをdpに追加し、そのタイプを新しく作成された「ShapeType」に指定し、トピックをそれぞれ「Triangle」と「Square」に指定します。
>> dp.addWriter( 'ShapeType'、 'Triangle')>> dp.addReader( 'ShapeType'、 'Square')
Shapesデモでのデータのサブスクライブ
ShapeTypeは、RTIが提供する標準のRTI Shapes Demonstrationアプリケーション(Shapes)と通信するために使用されます。 Shapesを使用すると、「ShapeType」データ型に基づいた「Square」、「Circle」、「Triangle」トピックのDataWriterとDataReaderの両方を作成できます。 Shapesアプリケーションの使用方法の詳細については、ここをクリックしてビデオチュートリアルをご覧ください。
Shapesでは、次のステップはTriangleのサブスクライバーを作成することです。次の画面では、他のすべてのQoSオプションをデフォルトのままにします。
MATLABでのデータの公開
これで、MATLABでTriangleトピックに関するShapeTypeを送信するためのDataWriterセットアップができました。また、パブリケーションを受信するためのShapes Demoセットアップができたので、ライターを練習しましょう。次のコマンドは、ShapeTypeのフィールドにデータを入力してから、三角形のトピックにデータを公開します。
%% ShapeTypemyDataのインスタンスを作成します=ShapeType; myData.x =int32(75); myData.y =int32(100); myData.shapesize =int32(50); myData.color ='GREEN'; %% DDSdp.write(myData);にデータを書き込みます
Shapes Demo内のTriangleトピックの結果は、ここに示されている単一のGreenTriangleになります。
MATLAB内でTriangleを公開するいくつかのより興味深いユースケースは次のとおりです。
%% i =1:10の場合、1Hzで緑色の三角形を1行に公開します。myData.x=int32(20 + 10 * i); myData.y =int32(40 + 10 * i); dp.write(myData); pause(1); end %% i =1:1000の角度=10 * pi *(i / 200)の場合、20Hzで円パターンの緑色の三角形を公開します。 myData.x =int32(100 +(50 * cos(angle))); myData.y =int32(100 +(50 * sin(angle))); myData.shapesize =int32(40); myData.color ='GREEN'; dp.write(myData); pause(0.05); end
ShapesDemoの結果の出力はそれぞれ次のとおりです。
Shapesデモでのデータの公開
Shapesのデモで、Squareのパブリッシャーを作成します。次の画面では、色を選択し、他のすべてのQoSオプションをデフォルトのままにします。次のスクリーンショットは、SquarePublish画面を示しています。私のデモンストレーションでは、オレンジ色の正方形を選択しました。これにより、30ミリ秒ごとに画面上のX、Y位置が公開されます。
MATLABでのデータのサブスクライブ
以前から覚えている場合は、MATLABのドメイン参加者にSquare TopicDataReaderを追加しました。このDataReaderを使用して、ShapesDemonstrationから現在公開しているデータをサブスクライブします。 MATLABの次のコマンドは、1Hzで10個のサンプルを読み取ります。
%%読み取りデータfori =1:10 dp.read()pause(1); end
結果として得られるMATLABの出力は、次の10個のレポートになります。
もっと面白いもの
両方向に進んでいるので、データを使ってより創造的なことをしましょう。まず、Squareデータを読み込み、X座標とY座標を切り替えるように変更してから、REDTriangleに再公開します。次に、結果の位置データを取得し、MATLAB内に直接プロットします。これらは、MATLABでそれを実現するために使用するコマンドです。
%% 100個の要素の配列を割り当てますxArray =zeros(1,100); %%ループを実行してデータを収集し、配列に格納します%% X座標とY座標を切り替えてから、%% Triangleトピックに再公開します。 i =1:100 [myData、status] =dp.read(); if〜isempty(myData)x =myData(1).x; y =myData(1).y; xArray(i)=x; yArray(i)=y; myData(1).y =x; myData(1).x =y; myData(1).color ='RED'; dp.write(myData(1)); end pause(0.05)end %% X位置データをプロット=1:100; plot(t、xArray); legend( 'xPos'); xlabel( 'Time')、ylabel( 'Position'); title( 'X投稿 ');
Shapes Demoの結果の出力は、オレンジ色の正方形の反対側に移動する赤い三角形になります。また、MATLAB内に、X位置データを示すプロットが生成されます。
ご覧のとおり、DDSとMATLABの統合は非常に使いやすく、データの収集、データの注入、およびデータの分析が非常に簡単になります。このデモンストレーションでは、単純なShapesアプリケーションを使用しましたが、使用するデータは、同じように簡単に独自のアプリケーションデータにすることができます。 MATLABとRTIConnext DDSの統合について詳しく知りたい場合は、MathWorksサイトのMATLAB DDS統合にアクセスしてください。 Connext DDSの使用について詳しく知りたい場合は、ここをクリックして開発者向けリソースにアクセスしてください。
モノのインターネットテクノロジー