isNodeRunning

Определите, работает ли узел ROS или ROS 2

Описание

пример

running = isNodeRunning(device,modelName) определяет, сопоставлен ли узел ROS или ROS 2 с заданным Simulink® модель работает на заданном rosdevice или ros2device, device.

Примеры

свернуть все

Подключитесь к удаленному устройству ROS и запустите узел ROS. Запустите ядро ROS, чтобы узлы ROS могли взаимодействовать через сеть ROS. Можно запустить и остановить ядро ROS или узел и проверить их состояние с помощью rosdevice объект.

Создайте соединение с устройством ROS. Укажите адрес, имя пользователя и пароль конкретного устройства ROS. Устройство уже содержит доступные узлы ROS, которые можно запустить с помощью 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'}

Запуск ядра ROS. Подключите MATLAB ® к мастеру ROS с помощью rosinit. Это ядро позволяет запускать узлы ROS на устройстве ROS.

runCore(d)
rosinit(d.DeviceAddress,11311)
Initializing global node /matlab_global_node_84497 with NodeURI http://192.168.203.1:56034/

Проверьте доступные узлы ROS на подключенном устройстве ROS. Эти перечисленные узлы были сгенерированы из моделей Simulink ® после процесса в примере Запуск with ROS в Simulink ®.

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

Запустите узел ROS и укажите имя узла. Проверьте, работает ли узел.

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

Остановите узел ROS. Отсоединитесь от сети ROS. Остановите ядро ROS.

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

Входные параметры

свернуть все

Устройство ROS или ROS 2, заданное как rosdevice или ros2device объект, соответственно.

Имя развернутой модели Simulink, заданное как вектор символов. Если имя модели недопустимо, функция возвращается false.

Выходные аргументы

свернуть все

Состояние запуска узла ROS или ROS 2, возвращаемое как true или false.

Введенный в R2019b