%% Run ROS Node on ROS Device
% Connect to a remote ROS device and start a ROS node. Run a ROS core so that ROS nodes can communicate via a ROS network. You can run and stop a ROS core or node and check their status using a rosdevice object.
%
% Create a connection to a ROS device. Specify the address, user name, and password of your specific ROS device. The device already contains the available ROS nodes that can be run using runNode.

ipaddress = '192.168.203.129';
d = rosdevice(ipaddress,'user','password');
d.ROSFolder = '/opt/ros/indigo';
d.CatkinWorkspace = '~/catkin_ws_test'

% Run a ROS core. Connect MATLAB® to the ROS master using rosinit. This core enables you to run ROS nodes on your ROS device.

runCore(d)
rosinit(d.DeviceAddress,11311)

%
% Check the available ROS nodes on the connected ROS device. These nodes listed were generated from Simulink® models following the process in the Generate a standalone ROS node from Simulink example.

d.AvailableNodes

% Run a ROS node and specify the node name. Check if the node is running.

runNode(d,'RobotController')
running = isNodeRunning(d,'RobotController')

% Stop the ROS node. Disconnect from the ROS network. Stop the ROS core.

stopNode(d,'RobotController')
rosshutdown
stopCore(d)

% Copyright 2019 The MathWorks, Inc.