rossubscriber
トピック上のメッセージをサブスクライブ
説明
rossubscriber を使用して、ROS ネットワーク上でメッセージを受信するための ROS サブスクライバーを作成します。メッセージを送信するには、rospublisher を使用します。ROS ネットワークでのメッセージのパブリッシュに合わせて継続的にメッセージを受信する最も信頼性の高い方法は、rossubscriber オブジェクトのコールバックを作成する方法です。詳細については、コールバック関数を使用するサブスクライバーの作成を参照してください。あるいは、新しい 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 メッセージの作成 |