%% Publish and Subscribe to ROS Messages in Simulink
% This model shows how to publish and subscribe to a ROS topic using
% Simulink(R).

open_system('rosPubSubExample.slx')
%%
% Use the Blank Message and Bus Assignment blocks to specify
% the |X| and |Y| values of a |'geometry_msgs/Point'| message type. Open
% the Blank Message block mask to specify the message type. Open 
% the Bus Assignment block mask to select the signals you want to assign.
% Remove any values with |'???'| from the right column. Supply the Bus
% Assignment block with relevant values for |X| and |Y|.

%%
% Feed the |Bus| output to the Publish block. Open the block mask 
% and choose |Specify your own| as the topic source. Specify the topic,
% |'/location'|, and message type, |'geoemetry_msgs/Point'|.

%%
% Add a Subscribe block and specify the topic and message type. Feed the
% output |Msg| to a Bus Selector and specify the selected signals in the
% block mask. Display the |X| and |Y| values.

%%
% Before running the model, call |rosinit| to connect to a ROS network.
rosinit

%%
% Run the model. You should see
% the |xPosition Out| and |yPosition Out| displays show the corresponding
% values published to the ROS network.
sim('rosPubSubExample')

%%
% Shut down the ROS network.
rosshutdown

%% 
% Copyright 2019 The MathWorks, Inc.