Main Content

isNodeRunning

Determine if ROS or ROS 2 node is running

Description

example

running = isNodeRunning(device,modelName) determines if the ROS or ROS 2 node associated with the specified Simulink® model is running on the specified rosdevice or ros2device, device.

Examples

collapse all

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'
d = 
  rosdevice with properties:

      DeviceAddress: '192.168.203.129'
           Username: 'user'
          ROSFolder: '/opt/ros/indigo'
    CatkinWorkspace: '~/catkin_ws_test'
     AvailableNodes: {'robotcontroller'  'robotcontroller2'}

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)
Initializing global node /matlab_global_node_84497 with NodeURI http://192.168.203.1:56034/

Check the available ROS nodes on the connected ROS device. These nodes listed were generated from Simulink® models following the process in the Get Started with ROS in Simulink® example.

d.AvailableNodes
ans = 1×2 cell
    {'robotcontroller'}    {'robotcontroller2'}

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

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

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

stopNode(d,'RobotController')
rosshutdown
Shutting down global node /matlab_global_node_84497 with NodeURI http://192.168.203.1:56034/
stopCore(d)

Input Arguments

collapse all

ROS or ROS 2 device, specified as a rosdevice or ros2device object, respectively.

Name of the deployed Simulink model, specified as a character vector. If the model name is not valid, the function returns false.

Output Arguments

collapse all

Status of whether the ROS or ROS 2 node is running, returned as true or false.

Introduced in R2019b