VRPN

VRPN

Проект по интеграции системы трекинга Antilatency в систему VRPN.
Следуя приведённой ниже инструкции, вы сможете получить доступ к оборудованию Antilatency через систему VRPN.
Больше о VRPN вы можете узнать из официальной документации.
Вы можете использовать устройства Antilatency для nDisplay с помощью VRPN. Воспользуйтесь инструкцией по настройке устройств ввода VRPN.

Компиляция проекта

Склонируйте в удобную директорию исходники с GitHub через cmd с помощью следующего шаблона команды, где t_ означает выбор tag-версии, [SDK version] – версия Antilatency SDK, [VRPN version] – версия VRPN: git clone --depth 1 --recurse-submodules -b t_antilatency-integration_[SDK version]_[VRPN version] https://github.com/antilatency/vrpn.git
Например, для Antilatency SDK 4.2.1 и VRPN v07.35 команда будет выглядеть так: git clone --depth 1 --recurse-submodules -b antilatency-integration_4.2.1_v07.35 https://github.com/antilatency/vrpn.git
Скачать скомпилированный проект для Antilatency SDK 4.2.1 и VRPN v07.35 можно здесь.
Внутри папки vrpn cоздайте папку для проекта, например с именем build. Затем откройте эту папку в командной строке и выполните команду cmake ...
В Visual Studio откройте файл [путь к проекту]\VRPN.sln.
Соберите проект vrpn_server, который находится во вкладке Main Server. Перед сборкой вы можете выбрать одну из конфигураций: Debug или Release. Чтобы собрать проект, кликните по нему правой кнопкой мыши и выберите опцию Build. Эти действия показаны на анимации:

Запуск сервера

Откройте папку [путь к проекту]\server_src\, и в файле vrpn.cfg раскомментируйте строчку (уберите знак #):
#vrpn_alt_tracker Device0 <-env [environment code]> [tag <-p [placement code]>] <more tags...> <options>
Параметр -lp больше не работает, так как библиотеки уже привязаны к сабмодулю Antilatency SDK.
В этой строке нужно указать список имён трекеров (одного или более) и желаемые опции. Если не заданы опции Environment code или Placement code, будут использованы настройки по умолчанию из AntilatencyService.
Код Environment и Placement можно получить из ссылки на элемент в AntilatencyService.
Например, ссылка на Environment может иметь такой вид:
http://www.antilatency.com/antilatencyservice/environment?data=AAVSaWdpZBcABnllbGxvdwQEBAABAQMBAQEDAAEAAD_W&name=DevKit
Данные между data= и &name — это код данного Environment.
Подробнее о работе с ссылками читайте тут: Environments.
Если мы подключаем один сокет, для которого хотим задать значения по умолчанию для Environment и Placement, строка может выглядеть так:
vrpn_alt_tracker Device0
Затем нужно подключить сокет с трекером Alt и в AntilatencyService установить для сокета свойство Tag, соответствующее тому, что мы прописали в vrpn.cfg.
В примере мы указали имя устройства как Device0, значит, и свойству Tag следует присвоить значение Device0.
О том, как редактировать пользовательские свойства, читайте тут: Как настроить пользовательские свойства устройств.
Перейдите в папку [путь к проекту]\server_src\Debug\ или [путь к проекту]\server_src\Release\, в зависимости от конфигурации сборки. Запустите сервер из командной строки, указав путь к файлу vrpn.cfg:
vrpn_server.exe -f ../vrpn.cfg

Тест

В Visual Studio откройте файл [путь к проекту]\VRPN.sln, если он ещё не открыт.
Соберите Debug или Release проект vrpn_print_devices, который находится во вкладке Clients. Для этого кликните правой кнопкой мыши по названию проекта и выберите опцию Build.
Теперь вам потребуется файл vrpn_print_devices.exe, который находится тут:
[путь к проекту]\client_src\Debug(или Release)\
Убедитесь, что сервер запущен, и запустите из командной строки файл vrpn_print_devices.exe, указав тег трекера и адрес сервера по следующему шаблону:
vrpn_print_devices.exe -trackerstride 10 [TrackerTag]@localhost
В нашем примере команда будет выглядеть так:
vrpn_print_devices.exe -trackerstride 10 Device0@localhost
-trackerstride — частота вывода данных; в этом случае будет выведен 1 из 10 полученных результатов.
В выводе вы увидите:
pos — данные о позиции объекта;
quat — кватернион вращения объекта.