Main Content


Publish ROS message to topic

Since R2019b



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.


collapse all

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

Connect to a ROS network.

Launching ROS Core...
Done in 0.95175 seconds.
Initializing ROS master on
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;

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'

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.

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

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.


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