VRPN - Википедия - VRPN

Периферийная сеть виртуальной реальности
Разработчики)ReliaSolve
Написано вC ++, Python, Ява
ТипПО промежуточного слоя виртуальной реальности
Интернет сайтgithub.com/ vrpn/ vrpn/ wiki

VRPN (Периферийная сеть виртуальной реальности) - это не зависящий от устройства сетевой интерфейс для доступа виртуальная реальность периферийные устройства в приложениях VR. Первоначально он был разработан и реализован Расселом М. Тейлором II в Департаменте компьютерных наук Университет Северной Каролины в Чапел-Хилл. VRPN поддерживался и поддерживался Sensics[1] пока это был бизнес. В настоящее время поддерживается ReliaSolve и разработан в сотрудничестве с продуктивным сообществом участников. Более подробно это описано в vrpn.org И в VRPN-VRST[2].

Цель VRPN - предоставить единый интерфейс для устройств ввода, например трекеры движения или же джойстик контроллеры. Он также обеспечивает следующее:

  • Отметка времени данных
  • Множественный одновременный доступ к периферийным устройствам
  • Автоматическое повторное подключение отказавших серверов
  • Хранение и воспроизведение сессий

Система VRPN состоит из программных интерфейсов как для клиентского приложения, так и для драйверов оборудования, а также серверного приложения, которое взаимодействует с аппаратными устройствами. Клиентские интерфейсы написаны на C ++ но был обернут на C #, Python и Java.

Типичное применение VRPN - кодирование и отправка 6DoF захвата движения данные по сети в реальном времени.

Сети

Клиент VRPN может установить соединение с сервером VRPN (устройством, предоставляющим данные) двумя способами: либо через TCP (надежно, но менее эффективно) или более UDP (ненадежно, но с меньшей задержкой и более эффективным). «Ненадежный» режим обычно предпочтительнее, когда время ожидания критично.

Последовательность инициализации «ненадежного» соединения использует протоколы TCP и UDP. Это работает следующим образом[3]:

  1. клиент открывает TCP разъем для прослушивания произвольного порта;
  2. клиент отправляет номер порта этого сокета вместе с собственным именем машины в дейтаграмме UDP, направленной на хорошо известный порт сервера VRPN (по умолчанию - 3883);
  3. сервер открывает TCP-соединение с клиентом на номер порта, указанный на шаге 2;
  4. если TCP-соединение установлено, каждое устройство сообщает другому поддерживаемую версию VRPN;
  5. если версии несовместимы, соединение разрывается;
  6. в противном случае каждое устройство начинает прослушивать новый порт UDP (отличный от используемых ранее) и отправляет номер порта другому устройству, используя ранее созданное TCP-соединение;
  7. с этого момента все данные отправляются через два порта UDP, открытые на шаге 6.

Преимущества этого подхода: быстрое время подключения и быстрое обнаружение сбоев во время подключения.

Однако протокол инициализации «ненадежного» соединения не учитывает строгое наслоение принцип построения протокола, как уровень приложения Полезная нагрузка VRPN приводит к утечке информации о нижних уровнях в сетевом стеке, а именно об именах компьютеров и номерах портов TCP / UDP. Из-за этого выбора конструкции невозможно установить соединение VRPN между двумя устройствами, подключенными через NAT: маршрутизатору потребуется транслировать не только информацию уровня 3 в заголовках пакетов, но также ссылки на IP-адреса и номера портов внутри полезной нагрузки VRPN.

Для решения этой проблемы VRPN предлагает[4] второй «надежный» режим инициализации TCP-соединения, который является стандартным TCP сервер-клиент взаимодействие: сервер VRPN прослушивает хорошо известный порт TCP, и клиент инициирует соединение. В этом режиме все данные отправляются по одному и тому же TCP-соединению, и UDP-соединение не требуется.

Поддерживаемые устройства

Трекеры (перечислены в алфавитном порядке)

  • 3rdTech HiBall-3000 Wide Area Tracker (ранее - потолочный трекер UNC).
  • ИЗОБРАЗИТЕЛЬНОЕ ИСКУССТВО системы оптического слежения, включая Flystick2 и Flystick3. Код получения является частью стандартного исходного кода.
  • Аналоговые устройства, используемые в качестве трекера (Magellan, CerealBox с подключенными джойстиками, Radamec SPI, Mouse, ...).
  • ARToolkit VRPN трекер можно получить в Universidad de los Andes.
  • Вознесение Стая птиц (работающая либо через один последовательный порт, либо с каждым датчиком, подключенным к собственному последовательному порту). Этот драйвер (и другие драйверы трекера) сбрасывает трекер в случае отключения питания, последовательного отключения или других случайностей. _Не используйте этот драйвер в «Птичьем гнезде», потому что он сожжет схему привода передатчика (см. Электронное письмо от Кайла Смита).
  • Кнопочные устройства, используемые как телепортеры или трекеры (Global Haptics GeoOrb, ...).
  • Акселерометр Crossbow RGA300 с последовательным интерфейсом.
  • Устройства GameTrak.
  • Immersion Microscribe.
  • Inertialmouse и Event Mouse от Университета Баухаус в Веймаре.
  • InterSense ИС-600 и ИС-900 (с использованием расширенного интерфейса Fastrak на любой архитектуре).
  • 3D-мышь Logitech.
  • Microsoft Kinect (два разных сервера VRPN доступны от https://github.com/vancegroup/KVR и http://people.ict.usc.edu/~suma/faast ).
  • MotionNode инерциальный прибор слежения.
  • NDI Polaris система оптического слежения.
  • Новинт устройство силовой обратной связи.
  • OptiTrack Motive (был NaturalPoint OptiTrack Tracking Tools) (сервер VRPN встроен в сервер поставщика).
  • Системы происхождения Трекер DynaSight (с пассивным отражателем). Этот драйвер также поддерживает старый трекер в стереодисплее SeeReal D4D.
  • OSVR Комплект разработчика хакера
  • Другие трекеры InterSense (с использованием родной библиотеки InterSense, даже с USB); в настоящее время в списке рассылки VRPN обсуждается вопрос о том, последовательно ли возвращается информация о положении и ориентации при использовании этого интерфейса.
  • PS-Tech система оптического слежения.
  • PhaseSpace система слежения.
  • PNI SpacePoint.
  • Polhemus Трекер Fastrak и трекеры 3Space на нескольких архитектурах, трекер Liberty и LibertyHS как минимум под Linux. Трекер Patriot поддерживается с помощью драйвера Liberty. G4 Powertrack.
  • Razer Hydra игровой контроллер.
  • Разумные технологии Устройство обратной связи по усилию PHANToM.
  • Sensics dSight трекер.
  • Sensics zSight трекер.
  • Устройство GPS с последовательным портом.
  • Викон (Сервер VRPN встроен в сервер поставщика).
  • Смотровая площадка Айтрекер.
  • Винтрекер III система магнитного слежения от Virtual Realities Ltd.
  • WorldViz Точный трекер положения PPT 1.2.
  • Датчик пространства Yost Labs 3Space (и беспроводные датчики 3Space).
  • zSpace иммерсивная интерактивная аппаратная и программная платформа (сервер VRPN, встроенный в сервер поставщика).

Другие устройства (перечислены в алфавитном порядке)

  • 3DConnexion SpaceNavigator, SpaceExplorer, Spacemouse Pro, Navigator для ноутбуков, устройств SpaceTraveler и SpaceMouseWireless (кнопки и дифференциальный аналог 6DOF).
  • 5DT трекер перчаток (аналоговое устройство с 5 значениями для пальцев плюс шаг и крен). Также поддерживается перчатка 5DT16 вместе с драйвером для преобразования 16 аналоговых значений в нажатия кнопок.
  • B&G systems CerealBox контроллеры кнопок / циферблатов / слайдеров / джойстиков, подключенные к любой серверной машине.
  • Система терморегулирования Biosciences Tools.
  • CH Продукты Fighterstick
  • Джойстики с поддержкой DirectInput (включая джойстики с принудительной обратной связью) в Windows (см. Инструкции). Кроме того, DirectInput позволяет использовать пакеты вибрации в Windows.
  • Мечта нахальный Ударная установка USB.
  • Fraunhofer IMK ADBox и Fakespace Cubic Mouse.
  • Global Haptics GeOrb (кнопки и аналоги).
  • Приводы Haydon-Kerk IDEA, контроллеры линейного перемещения.
  • 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 (необработанный контроллер на все O / S), Afterglow Ax1 для Xbox 360 (необработанный контроллер на всех O / S).
  • Клавиатура в Windows.
  • Logitech Контроллеры движения Magellan и Spaceball 6DOF с кнопками (включая Spaceball 5000).
  • LUDL XY проходит через LibUSB.
  • Мыши в Linux (при входе в систему с консоли) и Windows.
  • Национальные инструменты Карты A / D.
  • Пульт 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 от ЧИСЛО ПИ. Инженерное дело: настольный компьютер, профессиональный, джойстик, джойстик и ножная педаль.
  • Zaber.com элементы линейного позиционирования.

Рекомендации

  1. ^ Sensics http://sensics.com
  2. ^ {{cite journal | last1 = Taylor | first1 = Russell | title = VRPN: независимая от устройств, прозрачная для сети периферийная система виртуальной реальности | journal = VRST '01 Труды симпозиума ACM по программному обеспечению и технологиям виртуальной реальности | date = 15 ноября - 17, 2001 | pages = 55-61 | doi = 10.1145 / 505008.505019 | url =https://dl.acm.org/citation.cfm?id=505019}
  3. ^ vrpn: Использование vrpn_Connection - Официальный репозиторий GitHub, Периферийная сеть виртуальной реальности, 2018-02-19, получено 2018-02-20
  4. ^ vrpn: устранение неполадок VRPN - официальный репозиторий GitHub, Периферийная сеть виртуальной реальности, 2018-02-19, получено 2018-02-20

внешняя ссылка