Main Content

send

Publish ROS message to topic

Since R2019b

Description

example

send(pub,msg) publishes a message to the topic specified by the publisher, pub. This message can be received by all subscribers in the ROS network that are subscribed to the topic specified by pub.

Examples

collapse all

Set up a publisher and subscriber to send and receive a message on a ROS network.

Connect to a ROS network.

rosinit
Launching ROS Core...
Done in 0.95175 seconds.
Initializing ROS master on http://172.29.195.158:56750.
Initializing global node /matlab_global_node_74389 with NodeURI http://dcc602414glnxa64:46569/ and MasterURI http://localhost:56750.

Create a publisher with a specific topic and message type. You can also return a default message to send using this publisher.

[pub,msg] = rospublisher('position','geometry_msgs/Point');

Modify the message before sending it over the network.

msg.X = 1;
msg.Y = 2;
send(pub,msg);

Create a subscriber and wait for the latest message. Verify the message is the one you sent.

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

Shut down the ROS network.

rosshutdown
Shutting down global node /matlab_global_node_74389 with NodeURI http://dcc602414glnxa64:46569/ and MasterURI http://localhost:56750.
Shutting down ROS master on http://172.29.195.158:56750.

Input Arguments

collapse all

ROS publisher, specified as a Publisher object handle. You can create the object using rospublisher.

ROS message, specified as a Message object handle or structure. You can create object using rosmessage.

Note

In a future release, ROS Toolbox will use message structures instead of objects for ROS messages.

To use message structures now, set the "DataFormat" name-value argument to "struct". For more information, see ROS Message Structures.

Extended Capabilities

Version History

Introduced in R2019b

expand all