Можно включить превышенное обнаружение для развернутого узла ROS. Чтобы развернуть узел ROS от Simulink®, смотрите, Генерируют Автономный Узел ROS от Simulink®.
Переполнение происходит, когда развернутая модель Simulink все еще обрабатывает последний шаг, но следующий шаг требуют.
Когда вы включаете превышенное обнаружение, развернутый узел ROS уведомляет пользователя через ROS_ERROR
логгирование механизма (см., что ROS Регистрирует). Ошибка выводится к командной строке консоли ROS. Включить превышенное обнаружение на времени ROS:
Под вкладкой Modeling выберите Model Settings для своей модели.
Под Hardware Implementation, набор Hardware board к Robot Operating System (ROS)
.
Под 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 !!!
Модель продолжает выполняться, когда предыдущий шаг заканчивается и ожидает следующего временного шага.
Когда условие переполнения происходит, можно откорректировать его с помощью одного из следующих подходов:
Упростите модель
Увеличьте шаги расчета для модели и блоков в ней. Например, измените параметр Same time во всех ваших блоках источника данных из 0.1
к 0.2
.