このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
send
ROS メッセージをトピックにパブリッシュ
説明
例
ROS メッセージの作成および送受信
ROS ネットワークでメッセージを送受信するパブリッシャーとサブスクライバーを設定します。
ROS ネットワークに接続します。
rosinit
Launching ROS Core... Done in 0.77453 seconds. Initializing ROS master on http://172.29.217.125:56013. Initializing global node /matlab_global_node_49233 with NodeURI http://dcc934856glnxa64:42035/ and MasterURI http://localhost:56013.
特定のトピックとメッセージ タイプをもつパブリッシャーを作成します。このパブリッシャーを使用して、送信する既定のメッセージを返すこともできます。
[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: [1x1 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_49233 with NodeURI http://dcc934856glnxa64:42035/ and MasterURI http://localhost:56013. Shutting down ROS master on http://172.29.217.125:56013.
入力引数
pub
— ROS パブリッシャー
Publisher
オブジェクト ハンドル
ROS パブリッシャー。Publisher
オブジェクト ハンドルとして指定します。rospublisher
を使用してオブジェクトを作成できます。
msg
— ROS メッセージ
Message
オブジェクト ハンドル | 構造体
ROS メッセージ。Message
オブジェクト ハンドルまたは構造体として指定します。オブジェクトは rosmessage
を使用して作成できます。
メモ
将来のリリースでは、ROS Toolbox は ROS メッセージ用のオブジェクトではなくメッセージ構造体を使用します。
現時点でメッセージ構造体を使用する場合、名前と値の引数 "DataFormat"
を "struct"
に設定します。詳細については、ROS メッセージ構造体を参照してください。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用に関するメモと制限:
struct
メッセージでのみサポートされます。
バージョン履歴
R2019b で導入R2021a: ROS メッセージ構造体
これで、メッセージ オブジェクトのプロパティと一致するフィールドをもつ構造体としてメッセージを作成できます。通常、構造体を利用すると 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 コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)