> For the complete documentation index, see [llms.txt](https://m1801899.gitbook.io/translate-book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://m1801899.gitbook.io/translate-book/6.2-konfiguracionnyi-fail-analizatora.md).

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

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

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

Пока нужно определить пользовательские анализаторы для различных устройств, нам нужно будет использовать только общий тип **GenericAnalyzer**. Вы можете узнать больше о параметрах конфигурации анализатора в учебнике [Generic Analyzer Tutorial](http://wiki.ros.org/diagnostics/Tutorials/Using%20the%20GenericAnalyzer) на сайте 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](http://wiki.ros.org/diagnostics/Tutorials/Using%20the%20GenericAnalyzer) , можно также использовать параметр startswith вместо contains. В этом случае мы могли бы использовать слово "Joint", поскольку поле name в диагностических сообщениях для сервоприводов все начинается с "Joint".

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