Wait for new ROS message
Connect to a ROS network. Set up a sample ROS network. The
'/scan' topic is being published on the network.
Launching ROS Core... Done in 0.79397 seconds. Initializing ROS master on http://192.168.0.10:53964. Initializing global node /matlab_global_node_95936 with NodeURI http://bat800205glnxa64:41133/
Create a subscriber for the
'/scan' topic using message structures. Wait for the subscriber to register with the master.
sub = rossubscriber('/scan','DataFormat','struct'); pause(1);
Receive data from the subscriber as a ROS message structure. Specify a 10-second timeout.
msg2 = receive(sub,10)
msg2 = struct with fields: MessageType: 'sensor_msgs/LaserScan' Header: [1x1 struct] AngleMin: -0.5216 AngleMax: 0.5243 AngleIncrement: 0.0016 TimeIncrement: 0 ScanTime: 0.0330 RangeMin: 0.4500 RangeMax: 10 Ranges: [640x1 single] Intensities: 
Shutdown the timers used by sample network.
Shut down ROS network.
Shutting down global node /matlab_global_node_95936 with NodeURI http://bat800205glnxa64:41133/ Shutting down ROS master on http://192.168.0.10:53964.
msg— ROS message
Messageobject handle | structure
ROS message, returned as a
Message object handle or structure.
In a future release, ROS Toolbox will use message structures instead of objects for ROS messages.
To use message structures now, set the
"struct". For more information, see ROS Message Structures.
Behavior change in future release
You can now create messages as structures with fields matching the message object properties. Using structures typically improves performance of creating, updating, and using ROS messages, but message fields are no longer validated when set. Message types and corresponding field values from the structures are validated when sent across the network.
To use ROS messages as structures, use the
argument when creating your publishers, subscribers, or other ROS objects. Any messages
generated from these objects will utilize structures.
pub = rospublisher("/scan","sensor_msgs/LaserScan","DataFormat","struct") msg = rosmessage(pub)
You can also create messages as structures directly, but make sure to specify the data
"struct" for the publisher, subscriber, or other ROS objects as
well. ROS objects still use message objects by default.
msg = rosmessage("/scan","sensor_msgs/LaserScan","DataFormat","struct") ... pub = rospublisher("/scan","sensor_msgs/LaserScan","DataFormat","struct")
In a future release, ROS messages will use structures by default and ROS message objects will be removed.
For more information, see Improve Performance of ROS Using Message Structures.
Usage notes and limitations:
Supported only for