send
ROS メッセージをトピックにパブリッシュ
説明
例
ROS ネットワークでメッセージを送受信するパブリッシャーとサブスクライバーを設定します。
ROS ネットワークに接続します。
rosinit
Launching ROS Core... Done in 0.60613 seconds. Initializing ROS master on http://172.20.24.202:50740. Initializing global node /matlab_global_node_67937 with NodeURI http://dcc2856820glnxa64:34863/ and MasterURI http://localhost:50740.
特定のトピックとメッセージ タイプをもつパブリッシャーを作成します。このパブリッシャーを使用して、送信する既定のメッセージを返すこともできます。
[pub,msg] = rospublisher('position','geometry_msgs/Point');
メッセージを変更してからネットワーク経由で送信します。
msg.X = 1; msg.Y = 2; send(pub,msg);
サブスクライバーを作成して最新のメッセージを待ちます。それが自分で送信したメッセージであることを確認します。
sub = rossubscriber('position')sub =
Subscriber with properties:
TopicName: '/position'
LatestMessage: [1×1 Point]
MessageType: 'geometry_msgs/Point'
BufferSize: 1
MessagePreprocessingEnabled: 0
NewMessageFcn: []
DataFormat: 'object'
pause(1); sub.LatestMessage
ans =
ROS Point message with properties:
MessageType: 'geometry_msgs/Point'
X: 1
Y: 2
Z: 0
Use showdetails to show the contents of the message
ROS ネットワークをシャットダウンします。
rosshutdown
Shutting down global node /matlab_global_node_67937 with NodeURI http://dcc2856820glnxa64:34863/ and MasterURI http://localhost:50740. Shutting down ROS master on http://172.20.24.202:50740.
入力引数
ROS パブリッシャー。Publisher オブジェクト ハンドルとして指定します。rospublisher を使用してオブジェクトを作成できます。
ROS メッセージ。Message オブジェクト ハンドルまたは構造体として指定します。オブジェクトは rosmessage を使用して作成できます。
メモ
将来のリリースでは、ROS Toolbox は ROS メッセージ用のオブジェクトではなくメッセージ構造体を使用します。
現時点でメッセージ構造体を使用する場合、名前と値の引数 "DataFormat" を "struct" に設定します。詳細については、ROS メッセージ構造体を参照してください。
拡張機能
使用上の注意および制限:
structメッセージでのみサポートされます。
バージョン履歴
R2019b で導入これで、メッセージ オブジェクトのプロパティと一致するフィールドをもつ構造体としてメッセージを作成できます。通常、構造体を利用すると ROS メッセージの作成、更新、使用のパフォーマンスが向上しますが、設定時にメッセージのフィールドが検証されなくなります。メッセージ タイプと、構造体から取得した対応するフィールド値は、ネットワーク経由で送信されたときに検証されます。
ROS メッセージを構造体として使用するには、パブリッシャー、サブスクライバー、またはその他の ROS オブジェクトの作成時に名前と値の引数 "DataFormat" を使用します。これらのオブジェクトから生成されたすべてのメッセージで構造体が利用されます。
pub = rospublisher("/scan","sensor_msgs/LaserScan","DataFormat","struct") msg = rosmessage(pub)
また、メッセージを直接構造体として作成することもできますが、パブリッシャー、サブスクライバー、またはその他の ROS オブジェクトについても必ずデータ形式を "struct" として指定してください。現時点では、ROS オブジェクトは既定でメッセージ オブジェクトを使用します。
msg = rosmessage("/scan","sensor_msgs/LaserScan","DataFormat","struct") ... pub = rospublisher("/scan","sensor_msgs/LaserScan","DataFormat","struct")
将来のリリースでは、ROS メッセージは既定で構造体を使用し、ROS メッセージ オブジェクトは削除されます。
詳細については、Improve Performance of ROS Using Message Structuresを参照してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)