exponenta event banner

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 ® в соответствии с процессом в примере Начало работы с ROS в Simulink ®.

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

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

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

Остановите узел ROS. Отключитесь от сети АФК. Остановите ядро АФК.

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

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

свернуть все

Устройство АФК или АФК 2, указанное как rosdevice или ros2device объект, соответственно.

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

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

свернуть все

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

Представлен в R2019b