ВРПН
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Разработчик(и) | ReliaSolve |
---|---|
Написано в | С++ , Питон , Ява |
Тип | Промежуточное программное обеспечение виртуальной реальности |
Веб-сайт | github |
VRPN (периферийная сеть виртуальной реальности) — это независимый от устройства сетевой интерфейс для доступа к периферийным устройствам виртуальной реальности в приложениях VR. Первоначально он был разработан и реализован Расселом М. Тейлором II на факультете компьютерных наук Университета Северной Каролины в Чапел-Хилл . VRPN поддерживался Sensics. [1] пока это был бизнес. В настоящее время он поддерживается ReliaSolve и разрабатывается в сотрудничестве с продуктивным сообществом участников. Более подробно оно описано на vrpn.net и в VRPN-VRST . [2]
Цель VRPN — предоставить унифицированный интерфейс для устройств ввода, таких как трекеры движения или джойстики . Он также обеспечивает следующее:
- Метка времени данных
- Множественный одновременный доступ к периферийным устройствам
- Автоматическое переподключение вышедших из строя серверов
- Хранение и воспроизведение сессий
Система VRPN состоит из программных интерфейсов как для клиентского приложения, так и для драйверов оборудования, а также серверного приложения, которое взаимодействует с аппаратными устройствами. Клиентские интерфейсы написаны на C++, но обернуты C#, Python и Java.
Типичным применением VRPN является кодирование и отправка 6DoF данных захвата движения по сети в режиме реального времени.
сеть
[ редактировать ]Клиент VRPN может установить соединение с сервером VRPN (устройством, предоставляющим данные) двумя способами: либо через TCP (надежный, но менее эффективный), либо через UDP (ненадежный, но с меньшей задержкой и более эффективный). «Ненадежный» режим обычно предпочтительнее, когда задержка имеет решающее значение.
В «ненадежной» последовательности инициализации соединения используются протоколы TCP и UDP. Это работает следующим образом: [3]
- клиент открывает TCP- сокет для прослушивания произвольного порта;
- клиент отправляет номер порта этого сокета вместе с именем своего компьютера в дейтаграмме UDP, направленной на известный порт сервера VRPN (по умолчанию — 3883);
- сервер открывает TCP-соединение с клиентом по номеру порта, указанному на шаге 2;
- если TCP-соединение установлено, каждое устройство сообщает другому поддерживаемую версию VRPN;
- если версии несовместимы, соединение разрывается;
- в противном случае каждое устройство начинает прослушивать новый порт UDP (отличный от тех, которые использовались ранее) и отправляет номер порта другому устройству, используя ранее созданное TCP-соединение;
- с этого момента все данные передаются через два порта UDP, открытые на шаге 6.
Преимуществами этого подхода являются: быстрое время подключения и быстрое обнаружение сбоев во время подключения.
Однако «ненадежный» протокол инициализации соединения не соблюдает строгий принцип разработки многоуровневого протокола, поскольку полезная нагрузка VRPN уровня приложения пропускает информацию о нижних уровнях сетевого стека, а именно имена компьютеров и номера портов TCP/UDP. Из-за такого выбора конструкции невозможно установить соединение VRPN между двумя устройствами, подключенными через NAT : маршрутизатору необходимо будет транслировать не только информацию уровня 3 в заголовках пакетов, но также ссылки на IP-адреса и номера портов. внутри полезной нагрузки VRPN.
Чтобы решить эту проблему, VRPN предлагает [4] второй «надежный» режим инициализации соединения только TCP, который представляет собой стандартное взаимодействие TCP-сервер-клиент : сервер VRPN прослушивает известный TCP-порт, и клиент инициирует соединение. В этом режиме все данные передаются по одному и тому же TCP-соединению, и соединение UDP не требуется.
Поддерживаемые устройства
[ редактировать ]Трекеры (в алфавитном порядке)
[ редактировать ]- Широкозонный трекер 3rdTech HiBall-3000 (ранее — потолочный трекер UNC).
- Антилатентная система позиционного слежения.
- Системы оптического слежения ART, включая Flystick2 и Flystick3. Принимающий код является частью стандартного исходного дистрибутива.
- Аналоговые устройства, используемые в качестве трекера (Magellan, CerealBox с подключенными джойстиками, Radamec SPI, Mouse, ...).
- Трекер ARToolkit VRPN, доступный в Университете Лос-Андес.
- Стая птиц Вознесения (либо через один последовательный порт, либо с подключением каждого датчика к своему последовательному порту). Этот драйвер (и другие драйверы трекера) сбрасывает трекер в случае отключения питания, последовательного отключения или других ошибок. Использование этого драйвера в Nest of Birds [ необходимо определение ] сгорит схема привода передатчика.
- Кнопочные устройства, используемые в качестве телепортов или трекеров (Global Haptics GeoOrb,...).
- Акселерометр Crossbow RGA300 с последовательным интерфейсом.
- Устройства GameTrak.
- Иммерсионный микрописец.
- Инерционная мышь и мышь для событий от Университета Баухаус в Веймаре.
- InterSense IS-600 и IS-900 (с использованием расширенного интерфейса Fastrak на любой архитектуре).
- 3D мышь Логитек.
- Microsoft Kinect (доступны два разных сервера VRPN.)
- Motion Analysis Corporation (VRPN-сервер встроен в сервер продавца)
- Устройство инерциального слежения MotionNode.
- Оптическая система слежения NDI Polaris.
- Novint . Устройство с силовой обратной связью
- OptiTrack Motive (ранее были инструменты отслеживания NaturalPoint OptiTrack) (сервер VRPN встроен в сервер поставщика).
- Трекер Origin Systems DynaSight (с пассивным отражателем). Этот драйвер также поддерживает более старый трекер стереодисплея SeeReal D4D.
- OSVR Hacker Комплект разработчика
- Другие трекеры InterSense (с использованием собственной библиотеки InterSense, даже на базе USB); В настоящее время в списке адресов электронной почты VRPN обсуждается, будет ли информация о положении и ориентации возвращаться последовательно при использовании этого интерфейса.
- PS-Tech . Система оптического слежения
- Система отслеживания PhaseSpace.
- ПНИ СпейсПойнт.
- Трекер Polhemus Fastrak и трекеры 3Space на нескольких архитектурах, трекер Liberty и LibertyHS как минимум под Linux. Трекер Патриот поддерживается с помощью драйвера Liberty. G4 Powertrack.
- Razer Hydra . Игровой контроллер
- Устройство силовой обратной связи Sensable Technologies PHANToM.
- Трекер Sensics dSight.
- Трекер Sensics zSight.
- GPS-устройство с последовательным портом.
- Vicon (VRPN-сервер встроен в сервер производителя).
- Точка обзора Eye tracker.
- Магнитная система слежения Wintracker III от Virtual Realities Ltd.
- WorldViz Precision Position Tracker PPT 1.2.
- Датчик 3Space от Yost Labs (и беспроводные датчики 3Space).
- zSpace иммерсивная интерактивная аппаратно-программная платформа (VRPN-сервер, встроенный в сервер вендора).
Другие устройства (перечислены в алфавитном порядке)
[ редактировать ]- 3DConnexion SpaceNavigator, SpaceExplorer, Spacemouse Pro, Navigator for Notebooks, SpaceTraveler и SpaceMouseWireless (кнопки и дифференциальный аналог с 6 степенями свободы).
- Трекер перчаток 5DT (аналоговое устройство с пятью значениями пальцев плюс шаг и крен). Кроме того, поддерживается перчатка 5DT16 и драйвер для преобразования 16 аналоговых значений в нажатия кнопок.
- Системы B&G. Контроллеры кнопок/дисков/ползунков/джойстиков CerealBox, подключаемые к любому серверному компьютеру.
- Система терморегулирования инструментов для биологических наук.
- Продукты CH
- Джойстики с поддержкой DirectInput (включая джойстики с принудительной обратной связью) в Windows (см. инструкции). Кроме того, DirectInput включил пакеты Rumble в Windows.
- USB-ударная установка Dream Cheeky.
- Голограммные устройства Euclideon Holographics (стол с голограммами, комната с голограммами, стена с голограммами).
- Fraunhofer IMK ADBox и Fakespace Cubic Mouse.
- Global Haptics GeOrb (кнопки и аналоги).
- Приводы Haydon-Kerk IDEA, контроллеры линейного движения.
- Устройства Freespace от Hillcrest Labs .
- Джойстиковые контроллеры: Contour ShuttleXpress, Futaba InterLink Elite, Griffin PowerMate, Logitech Extreme 3D Pro, Saitek ST290 Pro, Microsoft SideWinder Precision 2, Microsoft SideWinder, Microsoft Xbox S (необработанный контроллер на всех операционных системах), Microsoft Xbox 360 (необработанный контроллер на всех операционных системах) все операционные системы), Afterglow Ax1 для Xbox 360 (необработанный контроллер на всех операционных системах).
- Клавиатура в Windows.
- Контроллеры движений Logitech Magellan и Spaceball 6DOF с кнопками (включая Spaceball 5000).
- LUDL XY проходит через LibUSB.
- Мышиные устройства в Linux (при входе в консоль) и Windows.
- National Instruments . Аналого-цифровые карты
- Nintendo Wii Remote (также выполняет функцию трекера).
- Драйвер последовательного порта NRL ImmersionBox (поддержка только кнопок).
- Другие джойстики на Windows.
- Джойстики для ПК под управлением Linux.
- Трекер видео/кинокамеры Radamec с последовательным интерфейсом (немасштабируемый зум/фокус, непроверенная база движения).
- Ретролинк GameCube.
- Последовательные мыши: кнопки на нескольких типах последовательных мышей, подключенных к последовательному порту.
- Кнопка SGI и поля набора номера (на SGI или других машинах).
- Totally Neat Gadget (TNG) от MindTel (кнопки и аналоги).
- Игровой контроллер Xbox 360.
- Ручной контроллер UNC (или любое устройство, имеющее до 5 кнопок; можно подключить к параллельному порту на компьютере Linux или Windows — его использование не рекомендуется, вместо этого используйте TNG3).
- Аналоговое/кнопочное устройство Wanda.
- Звуковые серверы Win32 на основе Miles SDK (устарело), звукового оборудования AuSIM и Microsoft DirectSound.
- Устройства XKeys от PI Engineering: Desktop, Professional, Jog&Shuttle, Joystick и ножная педаль.
- Элементы линейного позиционирования Zaber.com.
Ссылки
[ редактировать ]- ^ Чувствительность http://sensics.com
- ^ Тейлор, Рассел (15–17 ноября 2001 г.). «ВРПН» . Материалы симпозиума ACM по программному обеспечению и технологиям виртуальной реальности . стр. 55–61. дои : 10.1145/505008.505019 . ISBN 9781581134278 . S2CID 1487053 .
- ^ vrpn: Использование vrpn_Connection — Официальный репозиторий GitHub , Периферийная сеть виртуальной реальности, 19 февраля 2018 г. , получено 20 февраля 2018 г.
- ^ vrpn: Устранение неполадок VRPN — Официальный репозиторий GitHub , Периферийная сеть виртуальной реальности, 19 февраля 2018 г. , получено 20 февраля 2018 г.