Можно включить превышенное обнаружение для развернутого узла ROS. Чтобы развернуть узел ROS от Simulink®, смотрите, Генерируют Автономный Узел ROS от Simulink®.
Переполнение происходит, когда развернутая модель Simulink все еще обрабатывает последний шаг, но следующий шаг требуют.
Когда вы включаете превышенное обнаружение, развернутый узел ROS уведомляет пользователя через ROS_ERROR
логгирование механизма (см., что 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, чтобы открыть диалоговое окно параметров конфигурации модели. Под Hardware board settings> Operating system/scheduler settings> Operating system options, выберите Detect task overruns.
После включения Detect task overruns можно восстановить и развернуть модель. При запуске узла ROS модель ожидает в течение времени ROS, которое будет опубликовано. Когда переполнение обнаруживается, ошибка выводится к командной строке консоли ROS, записала в файле журнала и опубликовала через /rosout
. Типичная ошибка:
[ERROR [1518780859.389633256, 214281.990000000]: !!! Overrun 1 !!!
Модель продолжает выполняться, когда предыдущий шаг заканчивается и ожидает следующего временного шага.
Когда условие переполнения происходит, можно откорректировать его с помощью одного из следующих подходов:
Упростите модель
Увеличьте шаги расчета для модели и блоков в ней. Например, измените параметр Sample time во всех ваших блоках источника данных из 0.1
к 0.2
.