VRPN
Developer(s) | Sensics |
---|---|
Development status | Active |
Written in | C++, Python, Java |
Type | VR Middleware |
Website |
github |
VRPN (Virtual-Reality Peripheral Network) is a device-independent and network-transparent system for accessing virtual reality peripherals in VR applications. It was originally designed and implemented by Russell M. Taylor II at the Department of Computer Science of the University of North Carolina at Chapel Hill. VRPN is now maintained and supported by Sensics[1] and developed in collaboration with a productive community of contributors. It is described more fully at vrpn.org.
The purpose of VRPN is to provide a unified interface to input devices, like motion trackers or joystick controllers. It also provides for
- Time-stamping of data
- Multiple simultaneous access to peripheral devices
- Automatic re-connection of failed servers
- Storage and playback of sessions
The VRPN system consists of programming interfaces for both the client application and the hardware drivers and a server application that communicates with the hardware devices. The client interfaces are written in C++ but has been wrapped in Python and Java.
Supported Devices
Trackers (listed alphabetically)
- 3rdTech HiBall-3000 Wide Area Tracker (formerly the UNC Ceiling tracker).
- ART optical tracking systems, including Flystick2 and Flystick3. The receiving code is part of the standard source distribution.
- Analog devices used as a tracker (Magellan, CerealBox with joysticks attached, Radamec SPI, Mouse, ...).
- ARToolkit VRPN tracker available from Universidad de los Andes.
- Ascension Flock-of-birds (either running through one serial port, or with each sensor connected to its own serial port). This driver (and the other tracker drivers) resets the tracker in case of power cycle, serial disconnect or other flukes. _Do not use this driver on a Nest of Birds_ because it will burn out the transmitter drive circuitry (see email from Kyle Smith).
- Button devices used as teleporters or trackers (Global Haptics GeoOrb, ...).
- Crossbow RGA300 accelerometer using a serial interface.
- GameTrak devices.
- Immersion Microscribe.
- Inertialmouse and Event Mouse from Bauhaus University Weimar.
- InterSense IS-600 and IS-900 (using augmented Fastrak interface on any architecture).
- Logitech 3D mouse.
- Microsoft Kinect (two different VRPN servers available from https://github.com/vancegroup/KVR and http://people.ict.usc.edu/~suma/faast).
- MotionNode inertial tracking device.
- NDI Polaris optical tracking system.
- Novint force-feedback device.
- OptiTrack Motive (was NaturalPoint OptiTrack Tracking Tools) (VRPN server is built into vendor server).
- Origin Systems DynaSight tracker (with passive reflector). This driver also supports the older tracker in the SeeReal D4D stereo Display.
- OSVR Hacker Developer Kit
- Other InterSense trackers (using InterSense native library, even USB-based ones); there is currently a discussion on the VRPN email list about whether the position and orientation information are returned consistently when using this interface.
- PS-Tech optical tracking system.
- PhaseSpace tracking system.
- PNI SpacePoint.
- Polhemus Fastrak tracker and 3Space trackers on several architectures, Liberty and LibertyHS tracker under at least Linux. The Patriot tracker is supported using the Liberty driver. G4 Powertrack.
- Razer Hydra game controller.
- Sensable Technologies PHANToM force-feedback device.
- Sensics dSight tracker.
- Sensics zSight tracker.
- Serial-port GPS device.
- Vicon (VRPN server is built into the vendor's server).
- Viewpoint Eye tracker.
- Wintracker III magnetic tracking system from Virtual Realities Ltd.
- WorldViz Precision Position Tracker PPT 1.2.
- YEI 3Space Sensor (and wireless 3Space sensors).
- zSpace immersive interactive hardware and software platform (VRPN server built into vendor server).
Other devices (listed alphabetically)
- 3DConnexion SpaceNavigator, SpaceExplorer, Spacemouse Pro, Navigator for Notebooks, SpaceTraveler devices, and SpaceMouseWireless (buttons and 6DOF differential analog).
- 5DT glove tracker (analog device with 5 values for the fingers plus pitch and roll). Also, the 5DT16 glove is supported along with a driver to convert the 16 analog values into button presses.
- B&G systems CerealBox button/dial/slider/joystick controllers plugged into any server-capable machine.
- Biosciences Tools thermal-control system.
- CH Products Fighterstick
- DirectInput enabled joysticks (including force-feedback joysticks) on Windows (see howto). Also, DirectInput enabled rumble packs on Windows.
- Dream Cheeky USB drum kit.
- Fraunhofer IMK ADBox and Fakespace Cubic Mouse.
- Global Haptics GeOrb (buttons and analogs).
- Haydon-Kerk IDEA drives, linear-motion controllers.
- Hillcrest Labs' Freespace devices.
- Joystick controllers: Contour ShuttleXpress, Futaba InterLink Elite, Griffin PowerMate, Logitech Extreme 3D Pro, Saitek ST290 Pro, Microsoft SideWinder Precision 2, Microsoft SideWinder, Microsoft Xbox S (raw controller on all O/S), Microsoft Xbox 360 (raw controller on all O/S), Afterglow Ax1 For Xbox 360 (raw controller on all O/S).
- Keyboard on Windows.
- Logitech Magellan and Spaceball 6DOF motion controllers with buttons (including the Spaceball 5000).
- LUDL XY stages through LibUSB.
- Mouse devices on Linux (when logged in at the console) and Windows.
- National Instruments A/D cards.
- Nintendo Wii Remote (also acting as a tracker).
- NRL ImmersionBox serial driver (support for buttons only).
- Other joysticks on Windows.
- PC joysticks running under Linux.
- Radamec Serial Position Interface video/movie camera tracker (unscaled zoom/focus, untested motion base).
- Retrolink GameCube.
- Serial mice: The buttons on several styles of serial mice plugged into a serial port.
- SGI button and dial boxes (on an SGI or other machines).
- Totally Neat Gadget (TNGs) from MindTel (buttons and analogs).
- Xbox 360 game controller.
- UNC's hand-held controller (or any device with up to 5 buttons; can be plugged into the parallel port on a Linux or Windows box—its use is deprecated, use the TNG3 instead).
- Wanda analog/button device.
- Win32 sound servers, based on the Miles SDK (obsolete), the AuSIM sound hardware, and Microsoft DirectSound.
- XKeys devices from P.I. Engineering: the Desktop, Professional, Jog&Shuttle, Joystick, and foot pedal.
- Zaber.com's linear positioning elements.
References
- ↑ Sensics http://sensics.com