VRPN - VRPN

Periferní síť pro virtuální realitu
Vývojáři ReliaSolve
Napsáno C ++ , Python , Java
Typ VR Middleware
webová stránka github .com / vrpn / vrpn / wiki

VRPN (Virtual-Reality Peripheral Network) je na zařízení nezávislé síťové rozhraní pro přístup k periferním zařízením virtuální reality v aplikacích VR. Původně jej navrhl a implementoval Russell M. Taylor II na katedře informatiky University of North Carolina v Chapel Hill . VRPN byla udržována a podporována společností Sensics, zatímco to bylo obchodní. V současné době jej udržuje ReliaSolve a je vyvíjen ve spolupráci s produktivní komunitou přispěvatelů. Podrobněji je popsán na vrpn.org a ve VRPN-VRST .

Účelem VRPN je poskytnout jednotné rozhraní pro vstupní zařízení, jako jsou sledovače pohybu nebo joystickové ovladače. Poskytuje také následující:

  • Časové razítko údajů
  • Několikanásobný současný přístup k periferním zařízením
  • Automatické opětovné připojení serverů, které selhaly
  • Ukládání a přehrávání relací

Systém VRPN se skládá z programovacích rozhraní pro klientskou aplikaci a ovladače hardwaru a serverovou aplikaci, která komunikuje s hardwarovými zařízeními. Klientská rozhraní jsou napsána v C ++, ale byla zabalena v C #, Pythonu a Javě.

Typickou aplikací VRPN je kódování a odesílání dat o snímání pohybu 6DoF v síti v reálném čase.

Síťování

Klient VRPN může navázat spojení se serverem VRPN (zařízením poskytujícím data) dvěma způsoby: buď přes TCP (spolehlivý, ale méně efektivní), nebo přes UDP (nespolehlivý, ale s nižší latencí a efektivnější). Režim „nespolehlivý“ je obecně preferován, když je latence kritická.

„Nespolehlivá“ inicializační sekvence připojení využívá protokoly TCP i UDP. Funguje to následovně:

  1. klient otevře soket TCP pro naslouchání na libovolném portu;
  2. klient odešle číslo portu tohoto soketu spolu s vlastním názvem počítače v datagramu UDP směrovaném na dobře známý port serveru VRPN (výchozí hodnota je 3883);
  3. server zahájí TCP spojení s klientem na číslo portu sdělené v kroku 2;
  4. pokud je navázáno připojení TCP, každé zařízení sdělí druhému podporovanou verzi VRPN;
  5. pokud verze nejsou kompatibilní, spojení je přerušeno;
  6. jinak každé zařízení začne naslouchat na novém portu UDP (odlišném od dříve používaných) a odešle číslo portu do druhého zařízení pomocí dříve vytvořeného připojení TCP;
  7. od této chvíle jsou všechna data odesílána přes dva porty UDP otevřené v kroku 6.

Výhody tohoto přístupu jsou: rychlá doba připojení a rychlá detekce selhání během připojení.

„Nespolehlivý“ inicializační protokol připojení však nerespektuje přísný princip návrhu protokolu vrstvení , protože užitečné zatížení VRPN na úrovni aplikace propouští informace o nižších úrovních v síťovém zásobníku, jmenovitě názvy strojů a čísla portů TCP / UDP. Kvůli této konstrukční volbě je nemožné navázat spojení VRPN mezi dvěma zařízeními připojenými přes NAT : router by musel překládat nejen informace vrstvy 3 v hlavičkách paketů, ale také odkazy na IP adresy a čísla portů uvnitř užitečného zatížení VRPN.

Pro řešení tohoto problému nabízí VRPN druhý „spolehlivý“ režim inicializace připojení pouze s TCP, což je standardní interakce TCP-klient : server VRPN naslouchá na známém portu TCP a klient zahájí připojení. V tomto režimu jsou všechna data odesílána na stejném připojení TCP a není nutná žádná komunikace UDP.

Podporovaná zařízení

Trackery (řazeny abecedně)

  • Wide Area Tracker od společnosti 3rdTech HiBall-3000 (dříve UNC Ceiling tracker).
  • Optické sledovací systémy ART , včetně Flystick2 a Flystick3. Přijímací kód je součástí standardní distribuce zdroje.
  • Analogová zařízení používaná jako sledovací zařízení (Magellan, CerealBox s připojenými joysticky, Radamec SPI, myš, ...).
  • Sledovač ARToolkit VRPN k dispozici na Universidad de los Andes.
  • Ascension Flock-of-birds (buď běží přes jeden sériový port, nebo s každým senzorem připojeným k jeho vlastnímu sériovému portu). Tento ovladač (a další ovladače sledovače) resetuje sledovač v případě výpadku napájení, sériového odpojení nebo jiných chyb. _ Nepoužívejte tento ovladač na Nest of Birds_, protože by došlo k vyhoření obvodů pohonu vysílače (viz e-mail od Kylea Smitha).
  • Knoflíková zařízení používaná jako teleporty nebo trackery (Global Haptics GeoOrb, ...).
  • Akcelerometr Crossbow RGA300 využívající sériové rozhraní.
  • Zařízení GameTrak.
  • Ponoření Microscribe .
  • Inerciální myš a myš z Weimarské univerzity v Bauhausu.
  • InterSense IS-600 a IS-900 (pomocí rozšířeného rozhraní Fastrak na jakékoli architektuře).
  • Logitech 3D myš.
  • Microsoft Kinect (dva různé servery VRPN dostupné na https://github.com/vancegroup/KVR a http://people.ict.usc.edu/~suma/faast ).
  • Motion Analysis Corporation (server VRPN je zabudován do serveru prodejce)
  • Inerciální sledovací zařízení MotionNode .
  • Optický sledovací systém NDI Polaris .
  • Zařízení silové zpětné vazby Novint .
  • OptiTrack Motive (dříve NaturalPoint OptiTrack Tracking Tools) (server VRPN je integrován do serveru dodavatele).
  • Sledovač Origin Systems DynaSight (s pasivním reflektorem). Tento ovladač podporuje také starší tracker ve stereofonním displeji SeeReal D4D.
  • OSVR Hacker Developer Kit
  • Jiné sledovače InterSense (využívající nativní knihovnu InterSense, dokonce i ty založené na USB); na e-mailovém seznamu VRPN aktuálně probíhá diskuse o tom, zda jsou při použití tohoto rozhraní konzistentně vráceny informace o poloze a orientaci.
  • Optický sledovací systém PS-Tech .
  • Systém sledování PhaseSpace .
  • PNI SpacePoint .
  • Polhemus FasTrak tracker a 3Space trackery na několika architekturách, Liberty a LibertyHS tracker pod alespoň Linux. Sledovač Patriot je podporován pomocí ovladače Liberty. G4 Powertrack.
  • Herní ovladač Razer Hydra .
  • Sensable Technologies PHANToM silové zpětnovazební zařízení.
  • Tracker Sensics dSight.
  • Sledovač Sensics zSight .
  • Zařízení GPS se sériovým portem.
  • Vicon (server VRPN je zabudován do serveru dodavatele).
  • Viewpoint tracker Eye.
  • Systém magnetického sledování Wintracker III od společnosti Virtual Realities Ltd.
  • WorldViz Precision Position Tracker PPT 1.2.
  • Yost Labs 3Space Sensor (a bezdrátové 3Space senzory).
  • Pohlcující interaktivní hardwarová a softwarová platforma zSpace (server VRPN zabudovaný do serveru dodavatele).

Jiná zařízení (uvedena v abecedním pořadí)

  • 3DConnexion SpaceNavigator, SpaceExplorer, Spacemouse Pro, Navigator pro notebooky, zařízení SpaceTraveler a SpaceMouseWireless (tlačítka a 6DOF analogový analog).
  • Tracker rukavic 5DT (analogové zařízení s 5 hodnotami pro prsty plus rozteč a rozteč). Rukavice 5DT16 je také podporována spolu s ovladačem pro převod 16 analogových hodnot na stisknutí tlačítek.
  • Systémy B&G CerealBox s tlačítky / vytočením / posuvníkem / joystickem zapojené do jakéhokoli serveru schopného pracovat.
  • Tepelně-řídicí systém Biosciences Tools.
  • CH Products Fighterstick
  • Joysticky s povolenou DirectInput (včetně joysticků se zpětnou vazbou) v systému Windows (viz návod). DirectInput také povolil Rumble Pack ve Windows.
  • Dream Cheeky USB bicí sada.
  • Hologramová zařízení Euclideon Hologram (hologramový stůl, hologramová místnost, hologramová zeď).
  • Fraunhofer IMK ADBox a Fakespace kubická myš.
  • Global Haptics GeOrb (tlačítka a analogy).
  • Pohony Haydon-Kerk IDEA, řadiče lineárního pohybu.
  • Freespace zařízení Hillcrest Labs .
  • Ovladače joysticku: Contour ShuttleXpress, Futaba InterLink Elite, Griffin PowerMate, Logitech Extreme 3D Pro, Saitek ST290 Pro, Microsoft SideWinder Precision 2, Microsoft SideWinder, Microsoft Xbox S (surový ovladač na všech O / S), Microsoft Xbox 360 (surový ovladač na all O / S), Afterglow Ax1 For Xbox 360 (raw controller on all O / S).
  • Klávesnice ve Windows.
  • Ovladače pohybu Logitech Magellan a Spaceball 6DOF s tlačítky (včetně Spaceball 5000).
  • LUDL XY vystupuje přes LibUSB.
  • Myš zařízení na Linuxu (když jste přihlášeni na konzoli) a Windows.
  • A / D karty National Instruments .
  • Nintendo Wii Remote (také jako tracker).
  • Sériový ovladač NRL ImmersionBox (podpora pouze pro tlačítka).
  • Další joysticky ve Windows.
  • PC joysticky běžící pod Linuxem.
  • Sledovač videa / videokamery Radamec Serial Position Interface (zvětšení / zaostření bez měřítka, nevyzkoušená základna pohybu).
  • Retrolink GameCube.
  • Sériové myši: Tlačítka na několika stylech sériových myší zapojených do sériového portu.
  • Krabice tlačítek SGI a vytáčení (na SGI nebo jiných strojích).
  • Totally Neat Gadget (TNGs) od MindTel (tlačítka a analogy).
  • Herní ovladač pro Xbox 360.
  • Ruční ovladač UNC (nebo jakékoli zařízení s až 5 tlačítky; lze zapojit do paralelního portu na linuxovém nebo Windows boxu - jeho použití je zastaralé, použijte místo toho TNG3).
  • Analogové / tlačítkové zařízení Wanda.
  • Zvukové servery Win32 založené na Miles SDK (zastaralé), zvukovém hardwaru AuSIM a Microsoft DirectSound.
  • Zařízení XKeys od PI Engineering : Desktop, Professional, Jog & Shuttle, Joystick a nožní pedál.
  • Lineární polohovací prvky Zaber.com .

Reference

  1. ^ Sensics http://sensics.com
  2. ^ Taylor, Russell (15. – 17. Listopadu 2001). „VRPN: na zařízení nezávislý, síťově transparentní periferní systém VR“ . VRST '01 Proceedings of the ACM Symposium on Virtual Reality Software and Technology : 55–61. doi : 10,1145 / 505008,505019 .
  3. ^ vrpn: Používání vrpn_Connection - oficiální úložiště GitHub , periferní síť virtuální reality, 19. února 2018 , vyvoláno 20. února 2018
  4. ^ vrpn: Řešení potíží s VRPN - oficiální úložiště GitHub , periferní síť virtuální reality, 2018-02-19 , vyvoláno 2018-02-20

externí odkazy