rospublisher
メッセージをトピック上にパブリッシュ
説明
rospublisher を使用して、ROS ネットワーク経由でメッセージを送信するための ROS パブリッシャーを作成します。ROS メッセージを作成するには、rosmessage を使用します。これらのメッセージを、関数 send を使用して ROS パブリッシャー経由で送信します。
この関数によって作成される Publisher オブジェクトは、ROS ネットワーク上のパブリッシャーを表します。このオブジェクトは、指定されたトピック上に特定のメッセージ タイプをパブリッシュします。Publisher オブジェクトがこのトピックに対してメッセージをパブリッシュすると、そのトピックのすべてのサブスクライバーがこのメッセージを受信します。同じトピックが、複数のパブリッシャーとサブスクライバーをもつことができます。
メモ
将来のリリースでは、ROS Toolbox は ROS メッセージ用のオブジェクトではなくメッセージ構造体を使用します。
現時点でメッセージ構造体を使用する場合、名前と値の引数 "DataFormat" を "struct" に設定します。詳細については、ROS メッセージ構造体を参照してください。
パブリッシャーは、ROS マスター上のトピック リストからトピックのメッセージ タイプを取得します。MATLAB® グローバル ノードがそのトピック上にメッセージをパブリッシュすると、そのトピックをサブスクライブしている ROS ノードがそれらのメッセージを受信します。トピックが ROS マスターのトピック リスト上にない場合、この関数はエラー メッセージを表示します。ROS マスターのトピック リストに一致するトピックが既に含まれている場合、ROS マスターは、そのトピックのパブリッシャーのリストに MATLAB グローバル ノードを追加します。使用可能なトピック名のリストを確認するには、MATLAB コマンド プロンプトで、rostopic list と入力します。
Publisher オブジェクトは、関数 rospublisher を使用するか、ros.Publisher を呼び出すことによって作成できます。
rospublisherは、rosinitを使用しているグローバル ノードでのみ機能します。引数としてノード オブジェクト ハンドルは必要ありません。ros.Publisherは、ros.Nodeを使用して作成された追加のノードで機能します。最初の引数としてノード オブジェクト ハンドルが必要です。
作成
構文
説明
は、特定のトピック名のためのパブリッシャーを作成し、pub = rospublisher(topicname)TopicName プロパティを設定します。トピックは、確立された MessageType と共に ROS マスターのトピック リスト上に既に存在しなければなりません。
は、トピックのためのパブリッシャーを作成し、そのトピックを ROS マスターのトピック リストに追加します。入力は、パブリッシャーの pub = rospublisher(topicname,msgtype)TopicName プロパティと MessageType プロパティに設定されます。トピックが既に存在し、msgtype が ROS マスターのトピック リスト上のトピック タイプと異なる場合、この関数はエラー メッセージを表示します。
は、これまでの構文のいずれかの引数を使用して 1 つ以上の pub = rospublisher(___,Name,Value)Name,Value ペア引数によって指定された追加オプションを提供します。Name はプロパティ名で、Value は対応する値です。
[ は、メッセージ pub,msg] = rospublisher(___)msg を返します。このメッセージはパブリッシャー pub を使用して送信できます。メッセージは既定値で初期化されます。関数 rosmessage を使用して ROS メッセージを取得することもできます。
[ はオブジェクトではなくメッセージ構造体を使用します。詳細については、ROS メッセージ構造体を参照してください。pub,msg] = rospublisher(___,"DataFormat","struct")
pub = ros.Publisher(node, は、topicname)topicname という名前のトピックのパブリッシャーを作成します。node は、このパブリッシャーの接続先の ros.Node オブジェクト ハンドルです。node が [] として指定されている場合、パブリッシャーはグローバル ノードに接続しようとします。
pub = ros.Publisher(node, は、指定されたメッセージ タイプ topicname,type)type をもつパブリッシャーを作成します。トピックが既に存在する場合、MATLAB はメッセージ タイプをチェックして、入力タイプが異なる場合はエラーを表示します。ROS マスターのトピック リストに一致するトピックが既に含まれている場合、ROS マスターは、そのトピックのパブリッシャーのリストに MATLAB グローバル ノードを追加します。
pub = ros.Publisher(___,"IsLatching", は、パブリッシャーがラッチしているかどうかを boolean の value)value で指定します。ラッチしている場合、パブリッシャーは、最後に送信されたメッセージを保存して、新しいサブスクライバーに送信します。既定では、IsLatching が有効になっています。
[ はオブジェクトではなくメッセージ構造体を使用します。詳細については、ROS メッセージ構造体を参照してください。pub,msg] = ros.Publisher(___,"DataFormat","struct")
プロパティ
オブジェクト関数
send | ROS メッセージをトピックにパブリッシュ |
rosmessage | ROS メッセージの作成 |