VRPN - VRPN

Perifer nettverk for virtuell virkelighet
Utvikler (er) ReliaSolve
Skrevet inn C ++ , Python , Java
Type VR mellomvare
Nettsted github .com /vrpn /vrpn /wiki

VRPN (Virtual-Reality Peripheral Network) er et enhetsuavhengig, nettverksbasert grensesnitt for tilgang til virtual reality- periferiutstyr i VR-applikasjoner. Det ble opprinnelig designet og implementert av Russell M. Taylor II ved Institutt for informatikk ved University of North Carolina i Chapel Hill . VRPN ble vedlikeholdt og støttet av Sensics mens det var virksomhet. Det vedlikeholdes for tiden av ReliaSolve og utvikles i samarbeid med et produktivt fellesskap av bidragsytere. Det er beskrevet mer fullstendig på vrpn.org og i VRPN-VRST .

Formålet med VRPN er å tilby et enhetlig grensesnitt til inndataenheter, som bevegelsessporere eller joystick -kontrollere. Det gir også følgende:

  • Tidsstempling av data
  • Flere tilganger til eksterne enheter samtidig
  • Automatisk tilkobling av mislykkede servere
  • Lagring og avspilling av økter

VRPN -systemet består av programmeringsgrensesnitt for både klientprogrammet og maskinvaredrivere og et serverprogram som kommuniserer med maskinvareenhetene. Klientgrensesnittene er skrevet i C ++, men har vært pakket inn i C#, Python og Java.

En typisk applikasjon av VRPN er å kode og sende 6DoF motion capture -data gjennom nettverket i sanntid.

Nettverk

En VRPN-klient kan opprette en forbindelse med en VRPN-server (enheten som leverer dataene) på to måter: enten over TCP (pålitelig, men mindre effektiv), eller over UDP (upålitelig, men lavere latens og mer effektiv). Den "upålitelige" modusen foretrekkes vanligvis når ventetiden er kritisk.

Den "upålitelige" initialiseringssekvensen for tilkobling bruker både TCP- og UDP -protokollene. Det fungerer som følger:

  1. klienten åpner en TCP -kontakt for å lytte på en vilkårlig port;
  2. klienten sender portnummeret til denne kontakten, sammen med sitt eget maskinnavn, i et UDP -datagram rettet til en velkjent port på VRPN -serveren (standard er 3883);
  3. serveren åpner en TCP -tilkobling med klienten, til portnummeret som ble kommunisert i trinn 2;
  4. hvis TCP -tilkoblingen er opprettet, forteller hver enhet til den andre den støttede VRPN -versjonen;
  5. hvis versjonene ikke er kompatible, blir tilkoblingen avbrutt;
  6. ellers begynner hver enhet å lytte til en ny UDP -port (forskjellig fra den som ble brukt før) og sender portnummeret til den andre enheten ved å bruke den tidligere opprettede TCP -tilkoblingen;
  7. fra nå av blir alle dataene sendt over de to UDP -portene som ble åpnet i trinn 6.

Fordelene med denne tilnærmingen er: rask tilkoblingstid og rask feiloppdagelse under tilkobling.

Imidlertid respekterer den "upålitelige" tilkoblingsinitialiseringsprotokollen ikke det strenge utformingsprinsippet for lagdelingsprotokoll , ettersom VRPN-nyttelast på applikasjonsnivå lekker informasjon om lavere nivåer i nettverksstakken, nemlig maskinnavn og TCP/UDP-portnummer. På grunn av dette designvalget er det umulig å etablere en VRPN-tilkobling mellom to enheter som er koblet til via en NAT : ruteren trenger ikke bare å oversette lag-3-informasjonen i pakkehodene, men også referansene til IP-adresser og portnumre inne i VRPN nyttelast.

For å håndtere dette problemet tilbyr VRPN en andre "pålitelig", TCP-eneste tilkoblingsinitialiseringsmodus, som er en standard TCP-server-klient-interaksjon : VRPN-serveren lytter på en velkjent TCP-port og klienten starter en tilkobling. I denne modusen sendes alle dataene på den samme TCP -tilkoblingen, og det kreves ingen UDP -kommunikasjon.

Støttede enheter

Sporere (oppført alfabetisk)

  • 3rdTech HiBall-3000 Wide Area Tracker (tidligere UNC Ceiling tracker).
  • [1] Antilatency posisjonelt sporingssystem.
  • ART optiske sporingssystemer, inkludert Flystick2 og Flystick3. Mottakskoden er en del av standard kildefordeling.
  • Analoge enheter som brukes som en tracker (Magellan, CerealBox med joysticks festet, Radamec SPI, mus, ...).
  • ARToolkit VRPN tracker tilgjengelig fra Universidad de los Andes.
  • Ascension Flock-of-birds (enten går gjennom en serieport, eller med hver sensor koblet til sin egen serieport). Denne driveren (og de andre tracker -driverne) tilbakestiller trackeren i tilfelle strømssyklus, seriell frakobling eller andre feil. _Ikke bruk denne driveren på et Nest of Birds_ fordi den vil brenne ut senderens kretser (se e -post fra Kyle Smith).
  • Knappeapparater som brukes som teleportere eller sporere (Global Haptics GeoOrb, ...).
  • Crossbow RGA300 akselerometer ved hjelp av et serielt grensesnitt.
  • GameTrak -enheter.
  • Immersion Microscribe .
  • Inertialmouse og eventmus fra Bauhaus University Weimar.
  • InterSense IS-600 og IS-900 (ved hjelp av et utvidet Fastrak-grensesnitt på hvilken som helst arkitektur).
  • Logitech 3D -mus.
  • Microsoft Kinect (to forskjellige VRPN -servere tilgjengelig fra https://github.com/vancegroup/KVR og http://people.ict.usc.edu/~suma/faast ).
  • Motion Analysis Corporation (VRPN -server er innebygd i venders server)
  • MotionNode treghetssporingsenhet.
  • NDI Polaris optisk sporingssystem.
  • En ny kraft-tilbakemelding.
  • OptiTrack Motive (var NaturalPoint OptiTrack Tracking Tools) (VRPN -serveren er innebygd i leverandørserveren).
  • Origin Systems DynaSight tracker (med passiv reflektor). Denne driveren støtter også den eldre trackeren i SeeReal D4D stereodisplay.
  • OSVR Hacker Developer Kit
  • Andre InterSense-sporere (bruker InterSense-innfødte bibliotek, til og med USB-baserte); det er for tiden en diskusjon på VRPN -e -postlisten om posisjons- og orienteringsinformasjonen returneres konsekvent når du bruker dette grensesnittet.
  • PS-Tech optisk sporingssystem.
  • PhaseSpace -sporingssystem.
  • PNI SpacePoint .
  • Polhemus Fastrak tracker og 3Space trackers på flere arkitekturer, Liberty og LibertyHS tracker under minst Linux. Patriot -trackeren støttes av Liberty -driveren. G4 Powertrack.
  • Razer Hydra spillkontroller.
  • Sensable Technologies PHANToM kraft-tilbakemeldingsenhet.
  • Sensics dSight tracker.
  • Sensics zSight tracker.
  • GPS-enhet med serieport.
  • Vicon (VRPN -server er innebygd i leverandørens server).
  • Viewpoint Eye tracker.
  • Wintracker III magnetisk sporingssystem fra Virtual Realities Ltd.
  • WorldViz Precision Position Tracker PPT 1.2.
  • Yost Labs 3Space Sensor (og trådløse 3Space sensorer).
  • zSpace oppslukende interaktiv maskinvare- og programvareplattform (VRPN -server innebygd i leverandørserver).

Andre enheter (oppført alfabetisk)

  • 3DConnexion SpaceNavigator, SpaceExplorer, Spacemouse Pro, Navigator for bærbare datamaskiner, SpaceTraveler -enheter og SpaceMouseWireless (knapper og 6DOF differensialanalog).
  • 5DT hansketracker (analog enhet med 5 verdier for fingrene pluss pitch and roll). I tillegg støttes 5DT16 -hansken sammen med en driver for å konvertere de 16 analoge verdiene til knappetrykk.
  • B&G-systemer CerealBox- knapp/skive/glidebryter/joystick-kontrollere som er koblet til en hvilken som helst server-kompatibel maskin.
  • Biosciences Tools termisk kontrollsystem.
  • CH Products Fighterstick
  • DirectInput-aktiverte joysticks (inkludert joysticks for kraft-tilbakemelding) på Windows (se hvordan). Også DirectInput -aktiverte rumble -pakker på Windows.
  • Dream Cheeky USB trommesett.
  • Euclideon Holographics Hologram Devices (Hologram Table, Hologram Room, Hologram Wall).
  • Fraunhofer IMK ADBox og Fakespace Cubic Mouse.
  • Global Haptics GeOrb (knapper og analoger).
  • Haydon-Kerk IDEA-stasjoner, lineære bevegelseskontrollere.
  • Hillcrest Labs ' Freespace -enheter.
  • Joystick -kontrollere: Contour ShuttleXpress, Futaba InterLink Elite, Griffin PowerMate, Logitech Extreme 3D Pro, Saitek ST290 Pro, Microsoft SideWinder Precision 2, Microsoft SideWinder, Microsoft Xbox S (rå kontroller på alle O/S), Microsoft Xbox 360 (rå kontroller på alle O/S), Afterglow Ax1 For Xbox 360 (rå kontroller på alle O/S).
  • Tastatur på Windows.
  • Logitech Magellan og Spaceball 6DOF bevegelseskontroller med knapper (inkludert Spaceball 5000).
  • LUDL XY stadier gjennom LibUSB.
  • Musenheter på Linux (når de er logget inn på konsollen) og Windows.
  • National Instruments A/D -kort.
  • Nintendo Wii Remote (fungerer også som en tracker).
  • NRL ImmersionBox seriell driver (kun støtte for knapper).
  • Andre joysticks på Windows.
  • PC -joysticks som kjører under Linux.
  • Radamec Serial Position Interface video/filmkamera tracker (uskalert zoom/fokus, uprøvd bevegelsesbase).
  • Retrolink GameCube.
  • Seriemus: Knappene på flere stiler av seriemus koblet til en seriell port.
  • SGI -knapp og oppringingsbokser (på en SGI eller andre maskiner).
  • Helt ryddig gadget (TNG) fra MindTel (knapper og analoger).
  • Xbox 360 spillkontroller.
  • UNCs håndholdte kontroller (eller hvilken som helst enhet med opptil 5 knapper; kan kobles til parallellporten på en Linux- eller Windows-boks-bruken er utdatert, bruk TNG3 i stedet).
  • Wanda analog/knapp -enhet.
  • Win32 lydservere , basert på Miles SDK (foreldet), AuSIM lydmaskinvare og Microsoft DirectSound.
  • XKeys -enheter fra PI Engineering : Desktop, Professional, Jog & Shuttle, Joystick og fotpedal.
  • Zaber.coms lineære posisjoneringselementer.

Referanser

  1. ^ Sensics http://sensics.com
  2. ^ Taylor, Russell (15. – 17. November 2001). "VRPN: et enhetsuavhengig, nettverkstransparent VR-perifert system" . VRST '01 Proceedings of the ACM Symposium on Virtual Reality Software and Technology : 55–61. doi : 10.1145/505008.505019 .
  3. ^ vrpn: Bruke vrpn_Connection-Official GitHub Repository , Virtual Reality Peripheral Network, 2018-02-19 , hentet 2018-02-20
  4. ^ vrpn: Feilsøking VRPN-Offisielt GitHub-depot , Perifer nettverk for virtuell virkelighet, 2018-02-19 , hentet 2018-02-20

Eksterne linker