send

Publish ROS message to topic

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
Initializing ROS master on http://bat584805glnxa64:44161/.
Initializing global node /matlab_global_node_74603 with NodeURI http://bat584805glnxa64:33945/

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

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_74603 with NodeURI http://bat584805glnxa64:33945/
Shutting down ROS master on http://bat584805glnxa64:44161/.

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