Можно включить выполнение развернутого узла ROS на основе времени, опубликованного на /clock
тема в сети ROS. Как развернуть узел ROS из Simulink®, см. «Генерация автономного узла ROS из Simulink ®».
При включении шага модели времени ROS развернутый узел ROS выполняется, когда опубликованное время ROS является произведением базовой скорости модели. Чтобы включить степпинг модели на основе времени ROS:
На вкладке Apps, в разделе Control Systems, нажмите Robot Operating System (ROS).
В открывшемся Robot Operating System (ROS) окне выберите Robot Operating System (ROS)
из раскрывающегося списка ROS Network. Это открывает вкладку ROS на панели инструментов, которая показывает указанную сеть ROS в Connect разделе.
В разделе Prepare под вкладкой ROS нажмите Hardware Settings, чтобы открыть диалоговое окно параметров конфигурации модели. В разделе Target Hardware resources > ROS time выберите Enable ROS time model stepping.
Чтобы задать тему для публикации уведомления при выполнении модели, установите флажок Enable notification after step и используйте Notification topic (по умолчанию это /step_notify
). Subscribe к теме, чтобы получать сообщение каждый раз, когда ROS время публикуется. Узел ROS публикует std_msgs/String
тип сообщения со строкой, содержащей '+'
или '-'
и имя модели (+rostime_test
, для примера). A '+'
указывает, что модель была ступенчатой. A '-'
указывает, что опубликованное время ROS не было кратным базовой скорости модели.
После включения шага модели и настройки темы уведомления можно перестроить и развернуть модель. При запуске узла ROS модель ожидает публикации времени ROS.
Можно также включить обнаружение переполнения, если выполнение модели все еще обрабатывается, когда следующий шаг инициируется временем ROS. Для получения дополнительной информации смотрите Обнаружение переполнения с развернутыми узлами ROS.