AntilatencyFreeDServer

AntilatencyFreeDServer

Консольное приложение, которое позволяет передавать данные трекинга от устройств Antilatency по протоколу FreeD.
Мы разработали утилиту, которая трансформирует данные трекинга нашей системы в формат одного из пакетов протокола FreeD. Например, вы можете взять сокет с Alt и установить его на вашу камеру, затем запустить утилиту AntilatencyFreeDServer и далее работать с данными трекинга уже в рамках протокола FreeD.

В этой статье

Подготовка

Версия утилиты – это версия Antilatency SDK, используемая этой программой. Вам понадобится AntilatencyService с тем же номером версии.

settings.json : ServerSettings

Эта группа настроек в файле settings.json задаёт параметры сервера и место, куда посылать данные трекинга.
ПараметрОписание
ip
Это ip-адрес устройства, на которое будут отправляться данные трекинга. По умолчанию равен 127.0.0.1 — данные отправляются на то же устройство, на котором запущена утилита. Вместо этого значения можно записать ip-адрес другого устройства внутри сети.
port
Порт устройства, который будет собирать данные трекинга. Значение по умолчанию 40000 — это порт по умолчанию в UnrealEngine. Вы можете скопировать номер порта из используемого приложения.
sendRate
Частота отправки пакетов данных в секунду. Вы можете задать значение больше 100, если ваше приложение может получить и обработать такое число пакетов в секунду.
broadcast
Этот параметр задаёт адресацию данных: на одно устройство или всем устройствам внутри сети. Значение по умолчанию false — это режим Unicast, отправка данных только на одно устройство. Для широковещательного режима используется значение true в паре с параметром "ip": "xxx.xxx.xxx.255", где часть xxx.xxx.xxx – 3 первых октета сети, в которую нужно отправлять данные. Например, 192.168.0.255 для отправки данных на все устройства в сети 192.168.0.0/24.

settings.json : TrackersSettings

Эта группа настроек задаёт параметры отдельно для каждого трекера, закреплённого на камере или другом объекте трекинга.
ПараметрОписание
cameraId
Номер камеры задаётся только целым десятичным числом в диапазоне 0..255. Номер камеры для каждого трекера должен быть уникальным.
socketTag
Тег сокета, который установлен на выбранной камере. Трекинг не будет запускаться на сокетах с тегами, которые не указаны в файле настроек. Тег можно задать и просмотреть в AntilatencyService в свойстве Tag нужного сокета, подробнее: Как настроить пользовательские свойства устройств.
extrapolationTime
Время экстраполяции в секундах, положительное значение – экстраполяция в будущее, отрицательное – в прошлое. Чем сильнее значение отличается от 0, тем менее достоверным будет результат экстраполяции. В большинстве случаев используется значение 0.00 или отрицательное, так как поток данных трекинга обычно опережает видеопоток с камеры. Подобрать оптимальное время экстраполяции лучше всего в ходе ваших тестов.
Если в программе-получателе есть настройка задержки трекинга/видео, то можно выставить "extrapolationTime": 0.00 и регулировать задержку уже в программе-получателе, например, в Aximmetry или UE. Так будет удобнее подобрать нужное значение.
placementCode
Это положение трекера Alt относительно опорной точки камеры (входного зрачка объектива) или объекта трекинга, то есть его Placement. Если значение пусто, то будет использоваться Placement, выбранный по умолчанию в AntilatencyService. Чтобы задать код, выберите или создайте текущий Placement в AntilatencyService, нажмите на знак " ⋮ " рядом с его именем, затем нажмите пункт Share или Copy link. Вставьте ссылку в качестве значения параметра placementCode и удалите лишнюю информацию, оставив только код Placement (значение между data= и &name). Пример ссылки, где выделен код Placement: http://www.antilatency.com/antilatencyservice/placement?data=AAAAAACYmBi91NTUPdoPyT8AAAAAAAAAgA&name=MainCamera
environmentCode
Это код используемой зоны трекинга — Environment. Если значение пусто, то будет использоваться Environment, выбранный по умолчанию в AntilatencyService. Чтобы задать код, выберите текущий Environment, нажмите на знак " ⋮ " рядом с его именем, затем нажмите пункт Share или Copy link. Вставьте ссылку в качестве значения параметра environmentCode и удалите лишнюю информацию, оставив только код Environment (значение между data= и &name). Пример ссылки, где выделен код Environment: http://www.antilatency.com/antilatencyservice/environment?data=AntilatencyAltEnvironmentHorizontalGrid~AgZ5ZWxsb3cICLhTiT_cRqA-r45jvZqZmT4AAAAAAAAAAACamRk_AQwCBwIABgMEBgIGBwIHBgMHAgMGAAIGAwMEAgIBAwMAAgMCAAI&name=FloorExample
Если параметры placementCode и environmentCode заданы явно, то AntilatencyService не требуется ни на одном из устройств. Иначе на устройстве, которое отправляет данные по протоколу FreeD, следует установить AntilatencyService.
Пример заданных параметров для двух камер с трекерами Alt:
Сохраните изменения в файле и закройте файл настроек.

Запуск приложения

Данная утилита должна быть запущена на устройстве, к которому в этот момент подключена система трекинга Antilatency (подключены проводные сокеты Universal Radio Socket и/или Wired USB Socket). После задания настроек в файле settings.json запустите файл AntilatencyFreeDServer.exe. Для нашего примера с файлом настроек для двух камер, приложение вывело следующую информацию:
Теперь можно переключиться на ваше рабочее приложение и проверить работу трекинга. Данные системы трекинга Antilatency будут передаваться по протоколу FreeD, пока запущена утилита AntilatencyFreeDServer.

Устранение неполадок

ПроблемаРешение
AntilatencyFreeDServer.exe вылетает сразу после запуска приложения.
В файле settings.json присутствует ошибка в пунктуации JSON или недопустимое значение в одном из параметров. Проверьте файл и исправьте ошибку.
В окне приложения AntilatencyFreeDServer.exe отображается только первое сообщение AntilatencyFreeDServer <версия SDK>, не появляется информация о трекерах.
  1. Убедитесь, что сокеты включены/подключены к компьютеру, на котором запущен AntilatencyFreeDServer.exe.
  2. Покиньте вкладку Device Network в приложении AntilatencyService или закройте AntilatencyService.
  3. Перезапустите приложение AntilatencyFreeDServer.
  4. Если это не помогло, нужно найти и закрыть другие приложения, использующие трекинг Antilatency.
Последнее сообщение в консоли – No nodes with Alt Tracking Task support found.
Вставьте Alt в подключённый сокет.
Последнее сообщение в консоли – Failed to create placement from code "..." with error need VersionConverter implementation.
В файле settings.json в поле placementCode одного из трекеров вставлен неверный (с ошибками) код Placement. Скопируйте заново код Placement (или Placement data) из AntilatencyService в файл settings.json.
Последнее сообщение в консоли – Failed to create environment from code "..." with error need VersionConverter implementation.
В файле settings.json в поле environmentCode одного из трекеров вставлен неверный (с ошибками) код Environment. Скопируйте заново код Environment (или Environment data) из AntilatencyService в файл settings.json.
Во время работы основного приложения одна камера зависима от другой, они пытаются занять одну позицию независимо от своих фактических координат.
В файле settings.json несколько трекеров имеют одинаковое значение в параметре cameraId. Исправьте так, чтобы у каждого трекера был уникальный номер в cameraId.