Main Content

Subscribe

ROS ネットワークからメッセージを受信

R2019b 以降

  • Subscribe block

ライブラリ:
ROS Toolbox / ROS

説明

Subscribe ブロックは、指定された ROS メッセージ タイプに対応する Simulink® 非バーチャル バスを作成します。このブロックは Simulink モデルのノードを使用して、特定のトピックのための ROS サブスクライバーを作成します。このノードは、モデルの実行時に作成され、モデルの終了時に削除されます。モデルにノードがない場合は、このブロックによって作成されます。

各シミュレーション ステップで、ブロックは特定のトピックで新しいメッセージが使用可能かどうかをチェックします。新しいメッセージが使用可能な場合は、ブロックはメッセージを取得して Simulink バス信号に変換します。Msg 端子がこの新しいメッセージを出力します。新しいメッセージが使用可能でない場合は、Msg は最後に受け取った ROS メッセージを出力します。シミュレーションの開始後にメッセージをまったく受け取っていない場合は、Msg は空白のメッセージを出力します。

端子

出力

すべて展開する

新しいメッセージのインジケーター。logical として返されます。出力が 1 の場合は、最後のサンプル ヒット以降に新しいメッセージを受け取っています。この出力は、ROS ネットワークで受信した新しいメッセージを処理するためのサブシステムのトリガーに使用できます。

ROS メッセージ。非バーチャル バスとして返されます。ROS メッセージのタイプは、[メッセージ タイプ] パラメーターで指定します。Subscribe ブロックは、指定したトピック名に関するメッセージを受け取るまで、空白のメッセージを出力します。これらの空白のメッセージにより、ネットワークの残りの部分が設定される前に完全なモデルを作成およびテストできます。

データ型: bus

パラメーター

すべて展開する

トピック名を指定するためのソース。以下のいずれかとして指定します。

  • ROS ネットワークから選択[選択] を使用してトピック名を選択します。[トピック] パラメーターと [メッセージ タイプ] パラメーターは自動的に設定されます。ROS ネットワークに接続している必要があります。

  • 独自に指定[トピック] にトピック名を入力し、[メッセージ タイプ] でそのメッセージ タイプを指定します。トピック名は厳密に一致する必要があります。

サブスクライブ先のトピックの名前。string として指定します。[トピックのソース][ROS ネットワークから選択] に設定されている場合は、[選択] を使用して ROS ネットワークからトピックを選択します。トピックのリストを表示するには、ROS ネットワークに接続している必要があります。それ以外の場合は、[トピックのソース][独自に指定] に設定し、必要なトピックを指定します。

ROS メッセージ タイプ。string として指定します。[選択] を使用して、サポートされている ROS メッセージの完全なリストから選択します。サービス メッセージ タイプはサポートされていないため、リストに含まれていません。

出力の間隔。スカラーとして指定します。シミュレーションでは、サンプル時間はシミュレーション時間に従うため、実際のクロック時間ではありません。

この既定値は、ブロックのサンプル時間が "継承される" ことを示します。

継承サンプル時間タイプの詳細については、サンプル時間の指定 (Simulink)を参照してください。

コード生成でのメッセージ キューの長さ。整数として指定します。シミュレーションでは、メッセージ キューは常に 1 で、調整できません。各メッセージが確実にキャッチされるようにするには、モデルのステップを小さくするか、IsNew1 が返された場合にのみモデルを実行します。

ヒント

ブロックの [ネットワーク アドレスの構成] リンクをクリックすると、ROS マスターとノード ホストのアドレスも設定できます。

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2019b で導入