rossubscriber
説明
rossubscriber
を使用して、ROS ネットワーク上でメッセージを受信するための ROS サブスクライバーを作成します。メッセージを送信するには、rospublisher
を使用します。新しい ROS メッセージを待機するには、関数 receive
を、作成したサブスクライバーと共に使用します。
関数 rossubscriber
によって作成された Subscriber
オブジェクトは、ROS ネットワーク上のサブスクライバーを表します。Subscriber
オブジェクトは、使用可能なトピックまたは自ら作成したトピックをサブスクライブします。このトピックにはメッセージ タイプが関連付けられています。パブリッシャーは、Subscriber
オブジェクトが受信するメッセージをネットワーク経由で送信できます。
メモ
将来のリリースでは、ROS Toolbox は ROS メッセージ用のオブジェクトではなくメッセージ構造体を使用します。
現時点でメッセージ構造体を使用する場合、名前と値の引数 "DataFormat"
を "struct"
に設定します。詳細については、ROS メッセージ構造体を参照してください。
Subscriber
オブジェクトは、関数 rossubscriber
を使用するか、ros.Subscriber
を呼び出すことによって作成できます。
rossubscriber
は、rosinit
を使用するグローバル ノードでのみ機能します。引数としてノード オブジェクト ハンドルは必要ありません。ros.Subscriber
は、ros.Node
を使用して作成された追加のノードで機能します。最初の引数としてノード オブジェクト ハンドルが必要です。
作成
構文
説明
は、指定された sub
= rossubscriber(topicname
)TopicName
をもつトピックをサブスクライブします。トピックは、確立されたメッセージ タイプと共に ROS マスターのトピック リスト上に既に存在しなければなりません。ROS ノードがそのトピック上にメッセージをパブリッシュすると、MATLAB® はこのサブスクライバーを通してそれらのメッセージを受信します。
は、指定された名前 sub
= rossubscriber(topicname
,msgtype
)TopicName
とタイプ MessageType
をもつトピックをサブスクライブします。ROS マスター上のトピックに、指定された名前とタイプのトピックが含まれていない場合、該当するトピックがトピック リストに追加されます。この構文を使用すると、パブリッシャーが ROS マスター上のトピック リストにトピックを追加する前にそのトピックをサブスクライブしたときのエラーを回避できます。
は、サブスクライバー オブジェクト ハンドルがトピック メッセージを受信したときに実行されるコールバック関数 sub
= rossubscriber(topicname
,callback
)callback
を指定します。この構文を使用して、ブロッキング受信関数を回避します。関数 callback
は 1 つの関数ハンドルまたは cell 配列にすることができます。cell 配列の最初の要素は、関数ハンドル、または関数の名前を含む string でなければなりません。cell 配列の残りの要素には、コールバック関数に渡される任意のユーザー データを指定できます。
は、コールバック関数を指定して、指定された名前 sub
= rossubscriber(topicname
, msgtype
,callback
)TopicName
とタイプ MessageType
をもつトピックをサブスクライブします。
は、これまでの構文のいずれかの引数を使用して 1 つ以上の sub
= rossubscriber(___,Name,Value)Name,Value
ペア引数によって指定された追加オプションを提供します。Name
はプロパティ名で、Value
は対応する値です。
はオブジェクトではなくメッセージ構造体を使用します。詳細については、ROS メッセージ構造体を参照してください。sub
= rossubscriber(___,"DataFormat","struct")
sub = ros.Subscriber(
は、node
,topicname
)TopicName
という名前のトピックをサブスクライブします。node
は、このパブリッシャーの接続先の ros.Node
オブジェクト ハンドルです。
sub = ros.Subscriber(
は、トピックのメッセージ タイプ node
,topicname
,msgtype
)MessageType
を指定します。名前が同じでメッセージ タイプが異なるトピックが存在する場合、MATLAB は、指定されたメッセージ タイプで新しいトピックを作成します。
sub = ros.Subscriber(
は、サブスクライバー オブジェクトがトピック メッセージを受信したときに実行するコールバック関数とオプションのデータを指定します。コールバック関数の詳細については、node
,topicname
,callback
)NewMessageFcn
を参照してください。
sub = ros.Subscriber(
は、サブスクライバーのトピック名、メッセージ タイプおよびコールバック関数を指定します。node
,topicname
,type
,callback
)
sub = ros.Subscriber(___,"BufferSize",
は、受信メッセージのキュー サイズを value
)BufferSize
で指定します。この構文では、これまでの入力を任意に組み合わせて使用できます。
はオブジェクトではなくメッセージ構造体を使用します。詳細については、ROS メッセージ構造体を参照してください。sub
= ros.Subscriber(___,"DataFormat","struct")
プロパティ
オブジェクト関数
receive | 新しい ROS メッセージを待機 |
rosmessage | ROS メッセージの作成 |