このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 メッセージの作成 |