6.2 Конфигурационный файл анализатора

Для мониторинга устройства с помощью диагностического агрегатора нам нужна запись в конфигурационном файле анализатора, как и показанная ниже, которая часто используется с сервоприводами Dynamixel:

pub_rate: 1.0
analyzers:
joints:
type: GenericAnalyzer
path: 'Joints'
timeout: 5.0
contains: '_joint'

Пока нужно определить пользовательские анализаторы для различных устройств, нам нужно будет использовать только общий тип GenericAnalyzer. Вы можете узнать больше о параметрах конфигурации анализатора в учебнике Generic Analyzer Tutorial на сайте Ros Wiki. На данный момент будет достаточно параметров, показанных выше. Давайте разберем его по строчкам:

В 1 строке указывается скорость, с которой агрегатор должен публиковать диагностическую информацию. Скорость в 1,0 Гц, вероятно, достаточно быстра для большинства устройств, таких как сервоприводы, батареи, приводные двигатели и т.д.

Во 2 строке указывается, что все наши параметры будут попадать под пространство имен ~analyzers, что требуется при использовании GenericAnalyzer с диагностическим агрегатором. Нам не нужно будет обращаться непосредственно к этому пространству имен, но эта строка должна появиться в нашем конфигурационном файле.

Строка 3 указывает, что мы будем использовать пространство имен joints под пространством имен ~analyzers для хранения агрегированной диагностики для серво-суставов.

Строка 4 указывает, что мы будем использовать тип плагина GenericAnalyzer для анализа этих устройств.

В строке 5 параметр path определяет строку, которая будет использоваться для классификации этих устройств при просмотре в графическом интерфейсе rqt_robot_monitor. В этом случае мы хотим, чтобы все наши сервоприводы были перечислены в категории "Joints"(суставы).

Строка 6 определяет тайм-аут для получения обновления от устройства. Если в течение этого периода времени от устройства не будет получено никаких данных, то устройство будет помечено как "Stale" в rqt_robot_monitor.

Наконец, строка 7 действительно является ключом ко всему файлу. Здесь мы указываем строку, которая должна появиться где-то в сообщении диагностического массива, чтобы определить тип устройства, которое мы хотим контролировать. Как мы увидим в следующем разделе, Имена всех наших совместных контроллеров содержат строку "_joint", а именно head_pain_joint и head_tilt_joint. Таким образом, использование строки "_joint" для параметра contains должно работать в этом случае. Как показано в онлайн-учебнике Generic Analyzer Tutorial , можно также использовать параметр startswith вместо contains. В этом случае мы могли бы использовать слово "Joint", поскольку поле name в диагностических сообщениях для сервоприводов все начинается с "Joint".

В следующем разделе мы рассмотрим, как можно настроить несколько анализаторов в одном файле конфигурации.

Last updated