Управление поворотными устройствами (PTZ Controller) — различия между версиями

Материал из Integra-S Wiki
Перейти к: навигация, поиск
(Замечания)
(Назначение)
 
(не показано 26 промежуточных версий 2 участников)
Строка 1: Строка 1:
 
__FORCETOC__
 
__FORCETOC__
 
== Назначение ==
 
== Назначение ==
# Поворот устройства PTZDevice в расположение(position) наблюдаемой точки, в указанные Панорамирование(pan), Наклон датчика(tilt) и Зум(zoom) либо по номеру preset.
+
# Поворот устройства видеокамеры(PTZDevice) в расположение(position) наблюдаемой точки, датчика, по номеру preset или тур по поворотным точкам.
# Поворот устройства PTZDevice в расположение(position) датчика.
+
# Поворот устройства видеокамеры PTZDevice за подвижной целью(MoveableObject), находящейся в зоне.
# Поворот устройства PTZDevice за подвижной целью MoveableObject, находящейся в зоне.
 
 
# Создание фотоснимка цели после позиционирования на ней и запись его в trace_snapshot.
 
# Создание фотоснимка цели после позиционирования на ней и запись его в trace_snapshot.
 +
 +
== Создание схемы ==
 +
 +
В редакторе СКАДА необходимо добавить элементы, для этого необходимо:
 +
::1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент '''Компьютер (Computer)'''.
 +
[[File:computer.jpg|центр]]
 +
::2. Дважды нажать на элемент Компьютер, после чего появится окно для добавления элемента.
 +
[[File:add_element.jpg|центр]]
 +
::3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
 +
::4. Аналогично пункту 2 добавить элементы: Менеджер устройств (AcuarioManager), EGS Модуль (EGSModule), ПО Интегра-Видео 7, IP поворотная камера, Наблюдаемая точка, Зона.
 +
::5. PTZ Controller (Скрипт необходимо импортировать отсюда [http://maps.integra-s.com:5434/resources/typedef2017/egs/PTZ%20Controller.put PTZ Controller]). Для того, чтобы импортировать скрипт необходимо сначала скопировать и вставить вышеуказанную ссылку в адресную строку браузера, нажать на клавиатуре Enter, в окне браузера нажать правой кнопкой мыши, в появившемся контекстном меню нажать на сохранить как и выбрать удобное для Вас местоположения сохранив скрипт с расширением .put. В редакторе СКАДА нажать на меню Действия > Импорт элементов > выбрать сохраненный скрипт.
 +
Необходимо добавить следующие связи:
 +
::1. PTZ Controller: EGS вход:EGSInput + EGS Модуль: EGS Выход:EGSOutput.
 +
::2. Менеджер устройств: Менеджер устройств:ManagingContainer + EGS Модуль: Привязка к менеджеру:ManagingContent.
 +
::3. Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer.
 +
::4. Менеджер устройств: Менеджер устройств: ManagingContainer + ПО Интегра-Видео 7: Привязка к менеджеру:ManagingContent.
 +
::5. ПО Интегра-Видео 7: ПО:SoftwareContent + Компьютер: Установленное ПО:SoftwareContainer.
 +
::6. ПО Интегра-Видео 7: Медиаданные:MediaContainer + IP поворотная камера: Медиаданные:MediaContent
 +
::7. IP поворотная камера: Приемник наблюдателя:
 +
[[File:схема в скаде.png|центр]]
 +
 +
==Проверка==
 +
 +
После запуска скрипта в параметре Хеш появится хеш текста скрипта, который должен быть равен тексту по следующей  [http://maps.integra-s.com:5434/resources/typedef2017/jsonpath.php?url=/egs/PTZ%20Controller.put&path=0/params/hash/value ссылке], в том случае если скрипт не был изменен.
  
 
== Настройка ==
 
== Настройка ==
 +
 
# У компьютера/сервера должен быть настроен параметр сетевой адрес (ip).
 
# У компьютера/сервера должен быть настроен параметр сетевой адрес (ip).
 
# Параметры PTZController:
 
# Параметры PTZController:
Строка 13: Строка 37:
 
### url - адрес веб-сервиса IntegraVideo7, например: http://localhost:1986/axis2/services/Iv7Server;
 
### url - адрес веб-сервиса IntegraVideo7, например: http://localhost:1986/axis2/services/Iv7Server;
 
### tracer - настройки слежения:
 
### tracer - настройки слежения:
 +
#### iterations - количество итераций алгоритма расcчитывающего положение движущейся цели в будущем, например: 10.
 
#### enabled - задействовать автоматическое слежение;
 
#### enabled - задействовать автоматическое слежение;
#### iterations - количество итераций алгоритма расcчитывающего положение движущейся цели в будущем, например: 10.
+
#### update_trace_time - обновление времени на позиционирование.
 +
#### busy_recent_alarm - считать устройство занятым если оно находится в состоянии "недавней тревоги" т.е. не вышел alarm_timeout. Если устройство занято, то оно не будет поворачиваться.
 +
#### busy_alarm - считать устройство занятым если оно находится в состоянии тревоги прямо сейчас.
 
### snapshot - настройки фотоснимка:
 
### snapshot - настройки фотоснимка:
 
#### width - ширина фотоснимка в пикселях, например: 320;
 
#### width - ширина фотоснимка в пикселях, например: 320;
 
#### height - высота фотоснимка в пикселях, например: 240.
 
#### height - высота фотоснимка в пикселях, например: 240.
 
### update - настройки обновления параметров:
 
### update - настройки обновления параметров:
#### trace_time - обновлять параметр Время на позиционирование, сек (trace_time) поворотной камеры;
+
#### trace_time - обновлять параметр Время на позиционирование(trace_time) поворотной камеры;
 
#### point_ptz - обновлять параметры Панорамирование(pan), Наклон датчика(tilt) и Зум(zoom) поворотной точки;
 
#### point_ptz - обновлять параметры Панорамирование(pan), Наклон датчика(tilt) и Зум(zoom) поворотной точки;
 
#### device_ptz - обновлять параметры pan, tilt и zoom поворотной камеры.
 
#### device_ptz - обновлять параметры pan, tilt и zoom поворотной камеры.
 +
#### interval - интервал опроса PTZ поворотных камер.
 +
### trace_disabled_timeout - переключать поворотную камеру на автоматическое управление по выходу этого таймаута, т.е. задействовать параметр Слежение включено(trace_enabled), если он не сбрасывался в false в течении указанного времени.
 +
### alarm_timeout - интервал в течении которого датчик подключенный к зоне считается тревожным, даже если тревожное состояние уже сброшено. Используется при автоматическом повороте по тревоге от датчика
 +
### logon - вкл\выкл вызова функции ИВ7 logon перед выполнением команды.
 +
### analytics - специальный пресет включающий аналитику на камере:
 +
#### pause - пауза между командой на поворот в точку и командой на включение аналитики.
 +
#### enabled - задействовать автоматическое включение аналитики.
 +
### observe - настройки автоматического поворота по тревоге от датчика:
 +
#### all_cameras - поворачиваться всеми вариантами текущего выбранного способа.
 +
#### all_manner - поворачиваться на тревожный датчик всеми возможными способами.
 +
#### tour_rounds_number - количество кругов тура по поворотным точкам (0 - бесконечный тур).
 +
#### expansion - искусственное расширение калибровочных зон поворотного устройства.
 +
### dependencies - зависимости некоторых управляемых параметров:
 +
#### point_ptz - при изменении хотя бы одного из указанного списка параметров поворотной точки очистить ее pan, tilt и zoom (т.е. pan = tilt = zoom = 0).
 +
#### detection_zonenames - список имен регионов детекции для поворотных камер.
 +
### simulate - словарь типов\масок\значений как обычно, где:
 +
#### первичный ключ - тип устройства источника.
 +
#### вторичный ключ - маска состояния устройства источника (NB: реакция будет только на тревоги).
 +
#### значение - структура вида: {"method": "ewriter_remote:insert_event", "event_type": 20107, "alert": "red", "jsontime": "5", "paths": ["ZoneLink/Zone/ZoneLink/VideoCamera"]}
 +
##### method— метод на веб-сервисе ИВ ewriter_remote:insert_event.
 +
##### event_type— номер события 20107 — именно на него будут реагировать детекторы.
 +
##### alert - 'yellow' или 'red' — красная или желтая.
 +
##### jsontime - '5' — время в минутах, на которое детекторы на этом сервере переходят в заданный тревожный режим.
 +
##### paths - один или более пути для поиска камеры по устройству источнику (см. Поиск связанных элементов), например для нахождения всех камер в той же зоне ZoneLink/Zone/ZoneLink/VideoCamera.
  
== Замечания ==
+
== Дополнительно ==
 
# Для поворота камеры необходимо чтобы был запущен клиент Интегра-Видео и acuariomanager на одной физической машине.
 
# Для поворота камеры необходимо чтобы был запущен клиент Интегра-Видео и acuariomanager на одной физической машине.
# Камера должна быть подключена к корректно настроенной зоне Zone:
+
# Камера должна быть подключена к корректно настроенной зоне:
 
## area - область обслуживания;
 
## area - область обслуживания;
 
## area_heights - высота области;
 
## area_heights - высота области;
Строка 49: Строка 100:
 
## trace_types - список типов целей на которые данному устройству разрешено поворачиваться (пустой список означает, что разрешены все типы целей);
 
## trace_types - список типов целей на которые данному устройству разрешено поворачиваться (пустой список означает, что разрешены все типы целей);
 
## trace_time - среднее время на позиционирование в секундах, начальное значение необходимо указать пользователю, затем если в настройках включено update_trace_time, то скрипт будет пересчитывать данное значение.
 
## trace_time - среднее время на позиционирование в секундах, начальное значение необходимо указать пользователю, затем если в настройках включено update_trace_time, то скрипт будет пересчитывать данное значение.
 +
## analytics_preset - специальный пресет включающий аналитику на поворотной камере. Выключение аналитики происходит автоматически при следующем повороте камеры.
 +
# У линка ZoneLink соединяющего поворотную камеру с зоной Zone может быть указан следующий параметр:
 +
## constweight - запретить автоматическое управление весом поворотной камеры в этой зоне.
 
# У самой же цели MoveableObject должны быть корректно настроены следующие параметры:
 
# У самой же цели MoveableObject должны быть корректно настроены следующие параметры:
 
## position - расположение;
 
## position - расположение;
## trace_zones - список идентификатов зон, в которые входит цель в данный момент;
+
## trace_zones - список идентификаторов зон, в которые входит цель в данный момент;
 
## trace_order - числовой приоритет цели, чем меньше тем выше, но отрицательные значения исключают цель из слежения.
 
## trace_order - числовой приоритет цели, чем меньше тем выше, но отрицательные значения исключают цель из слежения.
 
# У наблюдаемой точки(ObservablePoint) должен быть корректно настроен параметр расположение(position).
 
# У наблюдаемой точки(ObservablePoint) должен быть корректно настроен параметр расположение(position).
Строка 59: Строка 113:
 
# Если preset меньше 0, а pan, tilt и zoom равно 0, но точка имеет position и altitude и камера откалибрована (т.е. имеет calibrationMatrix), то выполняется расчет и запись pan, tilt и zoom по позиции точки.
 
# Если preset меньше 0, а pan, tilt и zoom равно 0, но точка имеет position и altitude и камера откалибрована (т.е. имеет calibrationMatrix), то выполняется расчет и запись pan, tilt и zoom по позиции точки.
 
# При изменении параметров pan, tilt, zoom поворотной камеры проставляется флаг observed той ее поворотной точке, которая указывает приблизительно в тоже место с допусками указанными в pan_error, tilt_error и zoom_error поворотной камеры.
 
# При изменении параметров pan, tilt, zoom поворотной камеры проставляется флаг observed той ее поворотной точке, которая указывает приблизительно в тоже место с допусками указанными в pan_error, tilt_error и zoom_error поворотной камеры.
 +
# All_cameras - поворачиваться всеми вариантами текущего выбранного способа:
 +
## Во все связанные с источником точки (всеми связанными с точками камерами).
 +
## Всеми связанными с источником камерами.
 +
## Всеми камерами во всех связанных зонах.
 +
# All_manner - означает только одно - что следует искать поворотное устройство по зоне даже если источник связан соответствующими линками с точкой и\или камерой.
 +
 +
== Пример работы ==

Текущая версия на 15:52, 2 февраля 2022

Назначение

  1. Поворот устройства видеокамеры(PTZDevice) в расположение(position) наблюдаемой точки, датчика, по номеру preset или тур по поворотным точкам.
  2. Поворот устройства видеокамеры PTZDevice за подвижной целью(MoveableObject), находящейся в зоне.
  3. Создание фотоснимка цели после позиционирования на ней и запись его в trace_snapshot.

Создание схемы

В редакторе СКАДА необходимо добавить элементы, для этого необходимо:

1. Перейти на вкладку "Типы элементов" и выбрать в списке элемент Компьютер (Computer).
Computer.jpg
2. Дважды нажать на элемент Компьютер, после чего появится окно для добавления элемента.
Add element.jpg
3. Нажать кнопку "Добавить". Элемент появится на рабочей области.
4. Аналогично пункту 2 добавить элементы: Менеджер устройств (AcuarioManager), EGS Модуль (EGSModule), ПО Интегра-Видео 7, IP поворотная камера, Наблюдаемая точка, Зона.
5. PTZ Controller (Скрипт необходимо импортировать отсюда PTZ Controller). Для того, чтобы импортировать скрипт необходимо сначала скопировать и вставить вышеуказанную ссылку в адресную строку браузера, нажать на клавиатуре Enter, в окне браузера нажать правой кнопкой мыши, в появившемся контекстном меню нажать на сохранить как и выбрать удобное для Вас местоположения сохранив скрипт с расширением .put. В редакторе СКАДА нажать на меню Действия > Импорт элементов > выбрать сохраненный скрипт.

Необходимо добавить следующие связи:

1. PTZ Controller: EGS вход:EGSInput + EGS Модуль: EGS Выход:EGSOutput.
2. Менеджер устройств: Менеджер устройств:ManagingContainer + EGS Модуль: Привязка к менеджеру:ManagingContent.
3. Менеджер устройств: ПО:SoftwareContent + Компьютер или Сервер: Установленное ПО:SoftwareContainer.
4. Менеджер устройств: Менеджер устройств: ManagingContainer + ПО Интегра-Видео 7: Привязка к менеджеру:ManagingContent.
5. ПО Интегра-Видео 7: ПО:SoftwareContent + Компьютер: Установленное ПО:SoftwareContainer.
6. ПО Интегра-Видео 7: Медиаданные:MediaContainer + IP поворотная камера: Медиаданные:MediaContent
7. IP поворотная камера: Приемник наблюдателя:
Схема в скаде.png

Проверка

После запуска скрипта в параметре Хеш появится хеш текста скрипта, который должен быть равен тексту по следующей ссылке, в том случае если скрипт не был изменен.

Настройка

  1. У компьютера/сервера должен быть настроен параметр сетевой адрес (ip).
  2. Параметры PTZController:
    1. Включен (enabled) - задействовать триггер.
    2. Настройки (settings) - настройки скрипта имеют следующие параметры:
      1. url - адрес веб-сервиса IntegraVideo7, например: http://localhost:1986/axis2/services/Iv7Server;
      2. tracer - настройки слежения:
        1. iterations - количество итераций алгоритма расcчитывающего положение движущейся цели в будущем, например: 10.
        2. enabled - задействовать автоматическое слежение;
        3. update_trace_time - обновление времени на позиционирование.
        4. busy_recent_alarm - считать устройство занятым если оно находится в состоянии "недавней тревоги" т.е. не вышел alarm_timeout. Если устройство занято, то оно не будет поворачиваться.
        5. busy_alarm - считать устройство занятым если оно находится в состоянии тревоги прямо сейчас.
      3. snapshot - настройки фотоснимка:
        1. width - ширина фотоснимка в пикселях, например: 320;
        2. height - высота фотоснимка в пикселях, например: 240.
      4. update - настройки обновления параметров:
        1. trace_time - обновлять параметр Время на позиционирование(trace_time) поворотной камеры;
        2. point_ptz - обновлять параметры Панорамирование(pan), Наклон датчика(tilt) и Зум(zoom) поворотной точки;
        3. device_ptz - обновлять параметры pan, tilt и zoom поворотной камеры.
        4. interval - интервал опроса PTZ поворотных камер.
      5. trace_disabled_timeout - переключать поворотную камеру на автоматическое управление по выходу этого таймаута, т.е. задействовать параметр Слежение включено(trace_enabled), если он не сбрасывался в false в течении указанного времени.
      6. alarm_timeout - интервал в течении которого датчик подключенный к зоне считается тревожным, даже если тревожное состояние уже сброшено. Используется при автоматическом повороте по тревоге от датчика
      7. logon - вкл\выкл вызова функции ИВ7 logon перед выполнением команды.
      8. analytics - специальный пресет включающий аналитику на камере:
        1. pause - пауза между командой на поворот в точку и командой на включение аналитики.
        2. enabled - задействовать автоматическое включение аналитики.
      9. observe - настройки автоматического поворота по тревоге от датчика:
        1. all_cameras - поворачиваться всеми вариантами текущего выбранного способа.
        2. all_manner - поворачиваться на тревожный датчик всеми возможными способами.
        3. tour_rounds_number - количество кругов тура по поворотным точкам (0 - бесконечный тур).
        4. expansion - искусственное расширение калибровочных зон поворотного устройства.
      10. dependencies - зависимости некоторых управляемых параметров:
        1. point_ptz - при изменении хотя бы одного из указанного списка параметров поворотной точки очистить ее pan, tilt и zoom (т.е. pan = tilt = zoom = 0).
        2. detection_zonenames - список имен регионов детекции для поворотных камер.
      11. simulate - словарь типов\масок\значений как обычно, где:
        1. первичный ключ - тип устройства источника.
        2. вторичный ключ - маска состояния устройства источника (NB: реакция будет только на тревоги).
        3. значение - структура вида: {"method": "ewriter_remote:insert_event", "event_type": 20107, "alert": "red", "jsontime": "5", "paths": ["ZoneLink/Zone/ZoneLink/VideoCamera"]}
          1. method— метод на веб-сервисе ИВ ewriter_remote:insert_event.
          2. event_type— номер события 20107 — именно на него будут реагировать детекторы.
          3. alert - 'yellow' или 'red' — красная или желтая.
          4. jsontime - '5' — время в минутах, на которое детекторы на этом сервере переходят в заданный тревожный режим.
          5. paths - один или более пути для поиска камеры по устройству источнику (см. Поиск связанных элементов), например для нахождения всех камер в той же зоне ZoneLink/Zone/ZoneLink/VideoCamera.

Дополнительно

  1. Для поворота камеры необходимо чтобы был запущен клиент Интегра-Видео и acuariomanager на одной физической машине.
  2. Камера должна быть подключена к корректно настроенной зоне:
    1. area - область обслуживания;
    2. area_heights - высота области;
    3. trace_factor - дополнительный делитель числового приоритета для зоны.
  3. У поворотного устройства PTZDevice должны быть корректно настроены следующие параметры:
    1. trace_enabled - флаг выключения автоматики оператором;
    2. geo_position - географические координаты;
    3. geo_height - географическая высота;
    4. calibrationMatrix - калибровочная матрица;
    5. url - сетевой адрес камеры в формате IntegraVideo7;
    6. min_zoom_distance - дистанция до цели, менее которой приближение камеры будет всегда минимальным;
    7. min_zoom_limit_factor - коэффициент ограничивающий минимальное приближение камеры, от 0.0 (0%) до 1.0 (100%);
    8. max_zoom_distance - дистанция до цели, более которой приближение камеры будет всегда максимальным;
    9. max_zoom_limit_factor - коэффициент ограничивающий максимальное приближение камеры, от 0.0 (0%) до 1.0 (100%);
    10. focus_time - время необходимое на фокусировку в секундах;
    11. zoom_time - время необходимое на полное приближение в секундах;
    12. pan_speed - скорость горизонтального поворота в градусах в секунду;
    13. tilt_speed - скорость вертикального поворота в градусах в секунду;
    14. parallel_ptz - флаг указывающий на возможность одновременного поворота, приближения и фокусировки;
    15. pan_error - максимальная допустимая разница между параметрами pan камеры и точки;
    16. tilt_error - максимальная допустимая разница между параметрами tilt камеры и точки;
    17. zoom_error - максимальная допустимая разница между параметрами zoom камеры и точки;
    18. trace_types - список типов целей на которые данному устройству разрешено поворачиваться (пустой список означает, что разрешены все типы целей);
    19. trace_time - среднее время на позиционирование в секундах, начальное значение необходимо указать пользователю, затем если в настройках включено update_trace_time, то скрипт будет пересчитывать данное значение.
    20. analytics_preset - специальный пресет включающий аналитику на поворотной камере. Выключение аналитики происходит автоматически при следующем повороте камеры.
  4. У линка ZoneLink соединяющего поворотную камеру с зоной Zone может быть указан следующий параметр:
    1. constweight - запретить автоматическое управление весом поворотной камеры в этой зоне.
  5. У самой же цели MoveableObject должны быть корректно настроены следующие параметры:
    1. position - расположение;
    2. trace_zones - список идентификаторов зон, в которые входит цель в данный момент;
    3. trace_order - числовой приоритет цели, чем меньше тем выше, но отрицательные значения исключают цель из слежения.
  6. У наблюдаемой точки(ObservablePoint) должен быть корректно настроен параметр расположение(position).
  7. Наблюдаемая точка должна быть подключена к поворотной камере.
  8. Если preset больше или равно 0, то выполняется поворот по пресету. Калибровка не нужна. pan, tilt и zoom не заполняются.
  9. Если preset меньше 0, а pan, tilt и zoom не равно 0, то выполняется поворот по pan, tilt и zoom.
  10. Если preset меньше 0, а pan, tilt и zoom равно 0, но точка имеет position и altitude и камера откалибрована (т.е. имеет calibrationMatrix), то выполняется расчет и запись pan, tilt и zoom по позиции точки.
  11. При изменении параметров pan, tilt, zoom поворотной камеры проставляется флаг observed той ее поворотной точке, которая указывает приблизительно в тоже место с допусками указанными в pan_error, tilt_error и zoom_error поворотной камеры.
  12. All_cameras - поворачиваться всеми вариантами текущего выбранного способа:
    1. Во все связанные с источником точки (всеми связанными с точками камерами).
    2. Всеми связанными с источником камерами.
    3. Всеми камерами во всех связанных зонах.
  13. All_manner - означает только одно - что следует искать поворотное устройство по зоне даже если источник связан соответствующими линками с точкой и\или камерой.

Пример работы