Main Content


Publish ROS message to topic



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 1.0486 seconds.
Initializing ROS master on
Initializing global node /matlab_global_node_79464 with NodeURI http://bat1073812glnxa64:33431/

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: [0x1 Point]
      MessageType: 'geometry_msgs/Point'
       BufferSize: 1
    NewMessageFcn: []

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_79464 with NodeURI http://bat1073812glnxa64:33431/
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. You can create object using rosmessage.

Introduced in R2019b