VRPN

VRPN

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

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

В первую очередь, создайте папку для проекта.
Скопируйте в удобную директорию исходники с GitHub, скачав и распаковав ветку antilatency-integration. Это можно сделать через cmd с помощью команды:
git clone --single-branch --branch antilatency-integration https://github.com/antilatency/vrpn
Запустите CMake. В окне программы укажите путь к исходникам проекта c помощью Browse Source и путь сохранения проекта, используя Browse Build.
Нажмите Configure и в открывшемся окне выберите свою версию Visual Studio и системы. Когда процесс конфигурации завершится, нажмите Generate.
В Visual Studio откройте файл [путь к проекту]\VRPN.sln.
Соберите версию проекта vrpn_server, который находится во вкладке Main Server. Перед сборкой вы можете выбрать одну из версий: Debug или Release. Чтобы собрать проект, кликните по нему правой кнопкой мыши и выберите опцию Build.

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

Для работы сервера нужны библиотеки из SDK 3.x.x, которые можно скачать на странице конфигуратора SDK.
В зависимости от настроек сборки VRPN, выберите правильную версию библиотеки: x86 для Win32 VRPN, x64 для x64 VRPN. Библиотеки находятся в директории AntilatencySDK/Bin/WindowsDesktop/.
Их можно скопировать в папку к vrpn_server.exe. По умолчанию, этот файл находится в папке Debug или Release, в зависимости от настроек, выбранных при сборке проекта:
[путь к проекту]\server_src\Debug(или Release)\
Другой способ — указать путь к библиотекам через опцию -lp в файле vrpn.cfg, который находится тут:
[путь к проекту]\server_src\vrpn.cfg
Затем в файле vrpn.cfg нужно раскомментировать строчку:
#vrpn_Tracker_Alt <-env [environment code]> [tag <-p [placement code]>] <more tags...> <options>
В ней нужно указать список имён трекеров (одного или более) и желаемые опции. Если не заданы опции Environment code или Placement code, будут использованы настройки по умолчанию из AntilatencyService.
Код Environment и Placement можно получить из ссылки на элемент в AntilatencyService.
Например, ссылка на Environment может иметь такой вид:
http://www.antilatency.com/antilatencyservice/environment?data=AAVSaWdpZBcABnllbGxvdwQEBAABAQMBAQEDAAEAAD_W&name=DevKit
Данные после data= — это код данного Environment.
Подробнее о работе с ссылками читайте тут: Environments
Если мы подключаем один Socket, для которого хотим задать значения по умолчанию для Environment и Placement, строка может выглядеть так:
vrpn_Tracker_Alt Device0
Затем нужно подключить сокет, Alt и в AntilatencyService установить для сокета свойство Tag, соответствующее тому, что мы прописали в vrpn.cfg.
В примере мы прописали имя устройства как Device0, значит, и свойству Tag следует присвоить значение Device0.
О том, как редактировать пользовательские свойства, читайте тут: Как настроить пользовательские свойства устройств
Запустите сервер из командной строки, указав путь к файлу 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 — кватернион вращения объекта