Skip to content

Instantly share code, notes, and snippets.

@unitycoder
Created November 24, 2015 09:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save unitycoder/447c1db2e9c55cd72b0e to your computer and use it in GitHub Desktop.
Save unitycoder/447c1db2e9c55cd72b0e to your computer and use it in GitHub Desktop.
uiva_1.02\Release\VRPN servers\Wiimote + WiiFit Balance Board - config file
# vrpn.cfg.SAMPLE for VRPN version 07.18
################################################################################
################################################################################
# This file provides comments and examples for the vrpn.cfg file that is read
# by the vrpn_server application when it starts up. This is a generic server
# application that can start up many but maybe not all servers.
#
# This has sample lines for a vrpn.cfg file. If you get a new device working,
# add a line for it here. DO NOT remove lines from this file (unless
# devices are declared obsolete) - just change the actual vrpn.cfg to match
# your application.
#
# All examples in the file are preceeded by comment characters (#). To actually
# use one of these examples, remove that character from the beginning of all the
# examples that you want to use, and edit those lines to suit your environment.
################################################################################
################################################################################
# NULL Tracker. This is a "device" that reports the Identity transformation for
# each of its sensors at the specified rate. It can be used to verify connections
# are working and for other tests of VRPN. There are three arguments:
# char name_of_this_device[]
# int number_of_sensors
# float rate_at_which_to_report_updates
#vrpn_Tracker_NULL Tracker0 2 2.0
################################################################################
# Flock-of-birds Tracker. Runs an Ascension Flock of Birds tracker that is
# attached to a serial port on this machine. Note that there is another driver
# (listed below) that runs the Flock when each sensor is connected to its own
# serial line. Arguments:
# char name_of_this_device[]
# int number_of_sensors
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int invert_quaternion (0 = no, 1 = yes)
# char useERT (OPTIONAL; defaults to yes)
# char[2] active_hemisphere (OPTIONAL; defaults to +z)
#
# NOTE: for useERT: use nothing, y or Y if you have an extended range
# transmitter, use N or n if not (added by David Nahon for Virtools
# VRPack/SAS Cube.
# NOTE: The "invert_quaternion" parameter was added because there was a
# conflict between the code that had been around since VRPN started and
# the Flock documentation -- it looks like most people had been using the
# Flock in the "wrong" hemisphere, which inverted the orientation relative
# to the position. The old behavior is obtained by specifying "1". Not
# inverting it is specified using "0".
# NOTE: active hemisphere is one of "+x", "-x", "+y", "-y", "+z", "-z"
# If "active_hemisphere" is not specified, it defaults to +z.
#vrpn_Tracker_Flock Tracker0 4 /dev/ttyS0 115200 1
# If you have to FOB, with no Extended Range ctrler/transmitter, on Windows,
# with -x as the active hemisphere, use
#vrpn_Tracker_Flock Tracker0 2 COM1 38400 1 N -x
# Watch: be sure that the serial baud rate dip switches (the 3 on the left)
# of your master flock are properly set.
# You should try baud rates like 38400 before trying to go higher
# In normal adress mode - less than 14 fob units - your switch should be:
# 0 1 2 3 4 5 6 7
# 0 0 1 X X X X 0 2400
# 0 1 0 X X X X 0 4800
# 0 1 1 X X X X 0 9600
# 1 0 0 X X X X 0 19200
# 1 0 1 X X X X 0 38400
# 1 1 0 X X X X 0 57600
# 1 1 1 X X X X 0 115200
#
# X X X X are used for coding the FOB adress, they must be set correctly,
# even if you are only using 1 unit (standalone mode)
# the settings should be (in normal adress mode):
# 3 4 5 6
# 0 0 0 1 for the first unit
# 0 0 1 0 for the second unit
# 0 0 1 1 for the third
# 0 1 0 0 for the fourth
# 0 1 0 1 for the fifth
# ...
#
############################################################################
# WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH
###################
#
# On windows at least, it might be necessary to cut your serial cable so as
# to only have Transmit, Recieve and Ground pins. Even if CBIRDS or WINBIRDS
# are fine with a cable, it doesn't mean that this cable will please vrpn.
# This limitation should have been fixed with version 06.05.
#
###################
################################################################################
# Flock-of-birds in parallel Tracker. Runs an Ascension Flock of Birds tracker
# that has its source and each sensor plugged into its own serial port on this
# machine (perhaps through a Cyclades multi-port serial card). This mode of
# operation increases the throughput and decreases the latency of tracker reports.
# The arguments match those of the Flock-of-birds tracker from above, with the
# addition of the name of the serial ports for each of the sensors added at the
# end. Arguments (all on the same line):
# char name_of_this_device[]
# int number_of_sensors
# char name_of_serial_device_for_controller[]
# int baud_rate_of_serial_device
# int invert_quaternion (0 = no, 1 = yes)
# [one for each sensor] char name_of_serial_device_for_sensor[]
#
# NOTE: The "invert_quaternion" parameter was added because there was a
# conflict between the code that had been around since VRPN started and
# the Flock documentation -- it looks like most people had been using the
# Flock in the "wrong" hemisphere, which inverted the orientation relative
# to the position. The old behavior is obtained by specifying "1". Not
# inverting it is specified using "0".
#vrpn_Tracker_Flock_Parallel Tracker0 4 /dev/ttyC4 115200 1 /dev/ttyC0 /dev/ttyC1 /dev/ttyC2 /dev/ttyC3
#vrpn_Tracker_Flock_Parallel Tracker0 2 COM1 115200 1 COM2 COM3
################################################################################
# Fastrak Tracker. Runs a Polhemus Fastrak tracker that is attached to a serial
# port on this machine. This driver will also run an InterSense IS600 or IS900
# tracker, but you will want to include extra initialization code (as described
# below) to set up the ultrasonic pip information, wand devices, stylus devices
# and so forth. Arguments that go on the first line:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#
# It is possible to add additional commands that will be sent to the tracker
# by putting the backslash character (\) at the end of the config line. This
# will cause the following line to be read in and sent to the Fastrak during
# the reset routine. You can add additional lines by putting a slash at the
# end of each command line but the last. Each line will be sent to the Fastrak
# with a newline at the end of it. If a line starts with an asterisk (*), then
# it is treated as a line telling how long to sleep, with the integer number of
# seconds following the *.
#
# If one or more sensors on the Fastrak have a stylus button on them, use
# the "FTStylus" command after the reset command lines (if any). There should
# be a front-slash "/" character at the end of the line before the FTStylus
# command. The command takes two arguments: the name of the button device
# that will report the buttons and the sensor number to which the button is
# attached (the first sensor is sensor 0).
#
# Commands to add Joysticks (2 buttons) or Wands (5 buttons and 2 analogs) to
# the various sensors on the Isense900 are done by adding Stylus and
# Wand command lines after the reset command lines. Each of these lines
# takes two arguments: the name of the button (for Stylus) or button and
# analog (for Wand) servers, and the sensor number (starting from 0). The
# Wand line takes eight additional parameters, which specify the scaling
# and clipping behavior of the two directions on the analog joystick. Each
# set of for is the min, lowzero, hizero, and max values: these are mapped
# to -1, 0,0, and 1 (all values between lowzero and hizero are mapped to 0).
# Start with these at -1,0,0,1 and use the 'printcereal' program or some other
# method to read them and see what the range of acheivable values is. Then,
# set them to slightly conservative values so that the whole range is covered
# and the analogs will report zero when the joystick is centered. The
# presence of these lines is indicated by placing them after any additional
# reset command lines, by ending the line preceding them with the front slash
# "/" character.
#
# Remember that the "remote" button object is not the same as the the tracking
# device, so be sure to use a remote button object that connects to the button
# rather than the tracker. The button device name is defined on the stylus or
# wand line in the config file, and should not be the same as the tracker. In
# the case described by the example configuration below, if the name of the
# machine running the server is "myis900server" you would connect to the tracker
# as "Isense900@myis900server" and to the buttons on the stylus as
# "Stylus0@myis900server":
#
# Note that this frontslash and backslash-notation can only be used for the
# Fastrak/Isense tracker, not to extend the line for any other type of device
# listed in this configuration file.
# Vanilla Fastrak on on a Unix box
#vrpn_Tracker_Fastrak Fastrak0 /dev/ttyS0 19200
# Fastrak with a stylus on sensor zero on a Windows box
#vrpn_Tracker_Fastrak Tracker0 COM1 115200 /
#FTStylus Stylus0 0
# IS600 and its pip settings
#vrpn_Tracker_Fastrak Isense600 /dev/ttyS0 19200 \
#MCc\
#*5\
#MCM1,1,0.0900,0.0000,-0.2210,0.00,0.00,-1.00,89\
#MCM1,2,-0.0566,0.0000,-0.2210,0.00,0.00,-1.00,87\
#MCM2,1,0.0900,0.0000,-0.2210,0.00,0.00,-1.00,66\
#MCM2,2,-0.0566,0.0000,-0.2210,0.00,0.00,-1.00,71\
#MCM3,1,0.1237,-0.0762,-0.0424,0.00,0.00,-1.00,82\
#MCM3,2,0.1237,0.0762,-0.0424,0.00,0.00,-1.00,77\
#MCe\
#*10
# IS900 with a wand on the first sensor and a stylus on the third:
#vrpn_Tracker_Fastrak Isense900 COM1 115200 /
#Wand Wand0 0 -1.0 0.0 0.0 1.0 -1.0 0.0 0.0 1.0 /
#Stylus Stylus0 2
################################################################################
# Isotrak Tracker. Runs a Polhemus Isotrak tracker that is attached to a serial
# port on this machine. Arguments that go on the first line:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#
# It is possible to add additional commands that will be sent to the tracker
# by putting the backslash character (\) at the end of the config line. This
# will cause the following line to be read in and sent to the Isotrak during
# the reset routine. You can add additional lines by putting a slash at the
# end of each command line but the last. Each line will be sent to the Isotrak
# with a newline at the end of it. If a line starts with an asterisk (*), then
# it is treated as a line telling how long to sleep, with the integer number of
# seconds following the *.
#vrpn_Tracker_Isotrak TrackerIsotrak /dev/ttyS0 115200 \
#H1,0,1,0
################################################################################
# Liberty Tracker. Runs a Polhemus Liberty tracker that is attached to a serial
# port or USB port on this machine. Arguments that go on the first line
# char name_of_this_device[]
# char name_of_serial_or_usb_device[]
# int baud_rate_of_serial_device (not used when the device is USB)
# int number_of_chars_in_whoami_response (optional)
#
# It is possible to add additional commands that will be sent to the tracker
# by putting the backslash character (\) at the end of the config line. This
# will cause the following line to be read in and sent to the Liberty during
# the reset routine. You can add additional lines by putting a slash at the
# end of each command line but the last. Each line will be sent to the Fastrak
# with a newline at the end of it. If a line starts with an asterisk (*), then
# it is treated as a line telling how long to sleep, with the integer number of
# seconds following the *.
#
# If one or more sensors on the Liberty have a stylus button on them, use
# the "Stylus" command after the reset command lines (if any). There should
# be a front-slash "/" character at the end of the line before the Stylus
# command. The command takes two arguments: the name of the button device
# that will report the buttons and the sensor number to which the button is
# attached (the first sensor is sensor 0).
#
# -------------------------------------------
# Example when Liberty is attached via USB
# The BAUD Rate is needed, although it is not used
#vrpn_Tracker_Liberty Liberty /dev/usb/ttyUSB0 115200
#--------------------------------------------
# Example when Liberty is attached via Serial
#vrpn_Tracker_Liberty Liberty /dev/ttyS0 115200
#--------------------------------------------
# Example when Liberty is attached via Serial with a non-standard whoami length
#vrpn_Tracker_Liberty Liberty /dev/ttyS0 115200 247
#--------------------------------------------
# Liberty attached via Serial with styluses on sensors zero and three
#vrpn_Tracker_Liberty Tracker0 /dev/ttyS0 115200 /
#Stylus Stylus0 0 /
#Stylus Stylus1 3
################################################################################
# InterSense tracker using the Intersense-provided library to communicate
# with the tracker. This device type is not compiled by default, since it uses
# a proprietary library. However, you can get it to compile by defining
# VRPN_INCLUDE_INTERSENSE when compiling. Note that the Fastrak driver will
# run IS-600 and IS-900 trackers without the proprietary library, so you might
# try that as well.
#
# You can include extra initialization code (as described
# below) to set up the ultrasonic pip information, wand devices, stylus devices
# and so forth. Arguments that go on the first line:
# char name_of_this_device[]
# char name_of_serial_device[] - this can be COM1-4 or AUTO
# AUTO will automatically find USB and
# serial trackers. Use COM1-4 only if you
# have more than one serial tracker.
# You should use COM1-4 on unix as well,
# as these just tell the isense library
# to look in serial port 1-4.
# I guess you can't have >1 USB trackers.
# char "IS900time" - use the IS900 timestamps (optional)
# char "ResetAtStartup" - resets all boresight and heading, on intertrax,
# equivalent to push the reset button
#
# It is possible to add additional commands that will be sent to the tracker
# by putting the backslash character (\) at the end of the config line. This
# will cause the following line to be read in and sent to the InterSense during
# the reset routine. You can add additional lines by putting a slash at the
# end of each command line but the last. Each line will be sent to the InterSense
# with a newline at the end of it. If a line starts with an asterisk (*), then
# it is treated as a line telling how long to sleep, with the integer number of
# seconds following the *.
#
# Commands to add Joysticks (2 buttons) or Wands (5 buttons and 2 analogs) to
# the various sensors on the Isense900 are done by adding Stylus and
# Wand command lines after the reset command lines. Each of these lines
# takes two arguments: the name of the button (for Stylus) or button and
# analog (for Wand) servers, and the sensor number (starting from 0). The
# Wand line takes eight additional parameters, which specify the scaling
# and clipping behavior of the two directions on the analog joystick. Each
# set of for is the min, lowzero, hizero, and max values: these are mapped
# to -1, 0,0, and 1 (all values between lowzero and hizero are mapped to 0).
# Start with these at -1,0,0,1 and use the 'printcereal' program or some other
# method to read them and see what the range of acheivable values is. Then,
# set them to slightly conservative values so that the whole range is covered
# and the analogs will report zero when the joystick is centered. The
# presence of these lines is indicated by placing them after any additional
# reset command lines, by ending the line preceding them with the front slash
# "/" character.
#
# Remember that the "remote" button object is not the same as the the tracking
# device, so be sure to use a remote button object that connects to the button
# rather than the tracker. The button device name is defined on the stylus or
# wand line in the config file, and should not be the same as the tracker. In
# the case described by the example configuration below, if the name of the
# machine running the server is "myis900server" you would connect to the tracker
# as "Isense900@myis900server" and to the buttons on the stylus as
# "Stylus0@myis900server":
#
# Note that this frontslash and backslash-notation can only be used for the
# Fastrak and InterSense tracker, not to extend the line for any other
# type of device
# listed in this configuration file.
#
# Note that this driver expects the device to be set to output centimeters, and will convert
# the positions to meters. It is recommanded to permanently set the units in the eeprom of your device.
# If this is not possible, you should add in this file the "u" reset command so as to have vrpn
# tell your device to use centimeters
#
#Vanilla InterSense
#vrpn_Tracker_InterSense Tracker0 AUTO IS900time
# Vanilla InterSense using IS900 timing, with wand in port B (and possibly head tracker in port A)
#vrpn_Tracker_InterSense Tracker0 AUTO IS900time /
#Wand Wand0 1 -1.0 0.0 0.0 1.0 -1.0 0.0 0.0 1.0
# IS600 and its pip settings
#vrpn_Tracker_InterSense Isense600 COM1 \
#MCc\
#*5\
#MCM1,1,0.0900,0.0000,-0.2210,0.00,0.00,-1.00,89\
#MCM1,2,-0.0566,0.0000,-0.2210,0.00,0.00,-1.00,87\
#MCM2,1,0.0900,0.0000,-0.2210,0.00,0.00,-1.00,66\
#MCM2,2,-0.0566,0.0000,-0.2210,0.00,0.00,-1.00,71\
#MCM3,1,0.1237,-0.0762,-0.0424,0.00,0.00,-1.00,82\
#MCM3,2,0.1237,0.0762,-0.0424,0.00,0.00,-1.00,77\
#MCe\
#*10
# IS900 with a wand on the first sensor and a stylus on the third:
#vrpn_Tracker_InterSense Isense900 COM1 /
#Wand Wand0 0 -1.0 0.0 0.0 1.0 -1.0 0.0 0.0 1.0 /
#Stylus Stylus0 2
# Intertrax2 on USB, With automatic reset at startup
#vrpn_Tracker_InterSense Tracker0 AUTO ResetAtStartup
################################################################################
# Dynasight Tracker. Runs an Origin System's DynaSight tracker connected to a
# serial port on this machine. arguments:
# char name_of_this_device[]
# int number_of_sensors
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_Tracker_Dyna Tracker0 1 /dev/ttyS0 19200
#vrpn_Tracker_Dyna Tracker0 1 COM1 19200
################################################################################
# Crossbow Tracker. Runs a Crossbow Technology RGA300-series tracker that is
# attached to a serial port on this machine. There are four arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device (should be 38400)
# float linear_acceleration_sensitivity (Gs; default is 2.0)
# float angular_rate_sensitivity (degrees per second; default is 100)
#vrpn_Tracker_Crossbow Tracker0 COM1: 38400 2.0 100
###############################################################################
# 3d Microscribe is a mechanical tracker the nesseccary params are
# name port baudrate
# additional params are offsetx offsety offsetz scale
# offsets are in meters. Scale is an abomination in VRPN; all
# trackers report in meters.
#
#vrpn_3DMicroscribe Microscribe COM1 19200 0.3 -0.1 -0.2 1
################################################################################
# 5DT glove with 16 sensors. This driver reports the 16 channels as analog
# devices. If you want to treat them as buttons, then also add the entry
# for the vrpn_Button_5DT_Server below, connecting it to the output of this
# server.
#
# This server does not work with the previous version of the glove.
#
# arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_5dt16 glove_5dt16 COM1 19200
################################################################################
#
# Use the 5dtglove16 as button device. Use in conjunction with the vrpn_5dt16
# device above to turn the analog reports into button press/release when the
# sensors cross the threshold.
#
# arguments:
# char name_of_this_device[]
# char name_of_the_glove device[]
# double threshold_toggle_point_between_pressed_and_unpressed[16]
#vrpn_Button_5DT_Server glove_5dt_button glove_5dt16 1794 2171 2110 2610 1707 2673 2459 1493 3029 2301 1936 3007 2302 1635 0 0
################################################################################
# AnalogFly Tracker. This is a tracker that is intended to be used on top of
# a joystick or motion tracker of some kind to turn it into a moving or flying
# device. It could be used on top of any analog device, in fact.
# This device basically takes in analog signals and puts out transformation
# matrices. It should supercede the JoyFly tracker, since it is more general.
# There are two kinds of JoyFly's: absolute ones and differential ones. For
# absolute ones, the analog value is mapped directly to position or orientation
# on each axis. For differential ones, the values are used to create a
# "change" matrix that is applied once per interval, accumulating changes as
# it goes; this enables the user to "fly" along by holding a joystick forward,
# for example.
# One analog channel is associated with each axis (X, Y, Z) and rotation about
# each axis (RX, RY, RZ). For each axis, the value is converted to a position
# (meters) or speed (meters/second) for absolute trackers; or into an
# orientation (revolutions) or angular velocity (revolutions/second) by first
# subtracting an offset, then thresholding it to see if it is far enough from
# zero, then (if it is) scaling it and taking it to a power (to allow nonlinear
# speedup as the stick is pushed far from center).
# A button can be associated with a reset function, which will take the
# device back to center (identity transformation). The device will also recenter
# when the first connection is made to the server it is running on. (Centering
# has no effect on absolute AnalogFlys).
# A button can be associated with a clutch function, which will mean that
# the device will not move unless the clutch is pressed, so you can use it
# like a mouse and continue to move by pulling to the right with the button
# down and then to the left with the button up. For differential analogflys,
# clutching makes the tracker not move unless the button is pressed. For
# absolute ones, it only moves when the button is pressed and the mouse is
# moving; it offsets to enable long-range motions in a finite tracking area,
# as with a mouse.
# Any axis or the reset button can be disabled by setting the name of its
# associated device to the string "NULL".
# Note that you could have multiple of these devices running simultaneously,
# each with a different name and interaction metaphor. The user could then
# connect to their favorite one. Arguments:
# char name_of_this_device[]
# float update_rate_to_send_tracker_reports
# char type[] = "absolute" or "differential"
# [six lines follow, one for X Y Z RX RY RZ, each with:
# char axis_name[] (X Y Z RX RY RZ in that order)
# char name_of_analog_device[] (start with * for local)
# int channel_of_analog_device
# float offset
# float threshold
# float scale
# float power
# ]
# [New line to describe reset button, with:
# char "RESET"
# char name_of_button_device[] (start with * for local)
# int which_button_to_use
# ]
# [New line to describe clutch button, with:
# char "CLUTCH"
# char name_of_button_device[] (start with * for local)
# int which_button_to_use
# ]
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X *Mouse0 0 0.5 0.0 2.0 1.0
#Y *Mouse0 1 0.5 0.0 2.0 1.0
#Z NULL 2 0.0 0.0 1.0 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ NULL 5 0.0 0.0 1.0 1.0
#RESET NULL 0
#CLUTCH *Mouse0 0
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X *CerealBox0 4 0.0 0.021 1.0 1.0
#Y *CerealBox0 5 0.0 0.021 1.0 1.0
#Z *CerealBox0 6 0.0 0.021 3.0 1.0
#RX *CerealBox0 0 0.0 0.021 1.0 1.0
#RY *CerealBox0 1 0.0 0.021 1.0 1.0
#RZ *CerealBox0 2 0.0 0.021 3.0 1.0
#RESET *CerealBox 3
#CLUTCH NULL 0
#vrpn_Tracker_AnalogFly Tracker0 60.0 differential
#X *Magellan0 0 0.0 0.0 2.0 1.0
#Y *Magellan0 1 0.0 0.0 2.0 1.0
#Z *Magellan0 2 0.0 0.0 2.0 1.0
#RX *Magellan0 3 0.0 0.0 2.0 1.0
#RY *Magellan0 4 0.0 0.0 2.0 1.0
#RZ *Magellan0 5 0.0 0.0 2.0 1.0
#RESET NULL 0
#CLUTCH NULL 0
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X NULL 0 0.0 0.0 1.0 1.0
#Y NULL 0 0.0 0.0 1.0 1.0
#Z NULL 0 0.0 0.0 1.0 1.0
#RX *Radamec0 1 0.0 0.0 -0.0027777777 1.0
#RY NULL 0 0.0 0.0 1.0 1.0
#RZ *Radamec0 0 0.0 0.0 0.0027777777 1.0
#RESET NULL 0
#CLUTCH NULL 0
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X *Joystick0 0 0.0 0.0 1.0 1.0
#Y *Joystick0 1 0.0 0.0 -1.0 1.0
#Z *Joystick0 6 0.0 0.0 1.0 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ *Joystick0 5 0.0 0.0 0.5 1.0
#RESET NULL 0
#CLUTCH NULL 0
# Using a joystick to emulate a Phantom for the
# nanoManipulator, the throttle maps to Z.
#vrpn_Tracker_AnalogFly Phantom 60.0 absolute
#X *Phantom 0 0.0 0.0 0.125 1.0
#Y *Phantom 1 0.0 0.0 -0.125 1.0
#Z *Phantom 6 0.0 0.0 0.25 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ *Phantom 5 0.0 0.0 0.06 1.0
#RESET NULL 0
#CLUTCH NULL 0
# For DTU/MIC optical nanoHand stage motion, moving over full 300 micron range
# of motion, using the Logitech joystick for the analog
# server and the tracker_to_poser program.
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X *Joystick0 0 -0.03 0.0 2.53 1.0
#Y *Joystick0 1 -0.04 0.0 2.53 1.0
#Z *Joystick0 6 -0.10 0.0 -1.75 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ *Joystick0 5 0.0 0.0 0.5 1.0
#RESET NULL 0
#CLUTCH NULL 0
# To drive a Tektronix 4662 full range (Z, RZ ignored)
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X *Joystick0 0 -1.0 0.0 0.19 1.0
#Y *Joystick0 1 1.0 0.0 -0.13 1.0
#Z *Joystick0 6 0.0 0.0 1.0 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ *Joystick0 5 0.0 0.0 0.5 1.0
#RESET NULL 0
#CLUTCH NULL 0
# For UNC Mad City Labs stage motion, moving over full 100 micron range
# of motion, using the Microsoft FF joystick for the analog
# server and the tracker_to_poser program.
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X *Joystick0 0 -1 0.0 50 1.0
#Y *Joystick0 1 -1 0.0 50 1.0
#Z *Joystick0 6 -1 0.0 50 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ *Joystick0 5 0.0 0.0 0.5 1.0
#RESET NULL 0
#CLUTCH NULL 0
# For Artemis or Hercules (mad-city-labs) stages
# Maps 0-10 from the voltage into the range 0-100 microns.
#vrpn_Tracker_AnalogFly StageTracker 60.0 absolute
#X *MCLXYZIN 4 0 0.0 10 1.0
#Y *MCLXYZIN 5 0 0.0 10 1.0
#Z *MCLXYZIN 6 0 0.0 10 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ NULL 5 0.0 0.0 1.0 1.0
#RESET NULL 0
#CLUTCH NULL 0
################################################################################
# XXX This device is superceded by the more-general vrpn_Tracker_AnalogFly.
# JoyFly Tracker. A vrpn_Tracker that translates the vrpn_Joystick into
# Walkthrough- convention tracker reports. This is part of a two-part setup
# that allows you to use a joystick as a flying device. First, a joystick
# device has to be created (named joybox in our example) that will produce
# the analog inputs that the JoyFly tracker uses to determine the transformation.
# Then, the JoyFly device needs to be started and will listen to the device
# and produce tracker reports. If these are both run on the same server, then
# the JoyFly needs to use the "server" connection to hear from the Joystick
# device, which is indicated by placing a '*' in front of the name of the
# joystick device that it is to use. If the joystick device is remote from
# this server, then the full name of it should be used (joystick@foo.cs.unc.edu).
# XXX This device is superceded by the more-general vrpn_Tracker_AnalogFly
# Arguments:
# char name_of_this_device[]
# char source_joystick_name[] (Start with * for one sharing a connection)
# char joystick_configuration_file_name[]
#vrpn_JoyFly walk-joybox *joybox vrpn_Joyfly.cfg
################################################################################
# ButtonFly Tracker. This is a tracker that is intended to be used on top of
# a Global Haptics Orb or other buttond device to turn it into a moving or
# flying device. It basically takes in button signals and puts out
# transformation matrices.
# There are two kinds of Buttons: absolute ones and differential ones. For
# absolute ones, pressing it causes the position or orientation associated with
# it to be stored directly into the transformation. This enables the user to
# "teleport" to given locations by pressing buttons. For differential ones,
# the position or orientation are treated as deltas and are used to create a
# "change" matrix that is applied once per interval, accumulating changes as
# it goes; this enables the user to "fly" along by holding a button down,
# for example.
# Each button is associated with either a position (meters) or speed
# (meters/second) for absolute buttons; or an orientation (revolutions)
# or angular velocity (revolutions/second).
# An analog channel can be associated with a scale function that scales the
# velocity or angular velocity terms uniformly. The entry specifies an
# offset to be applied to the analog channel, a scale to be applied to it,
# and a power to which the result should be taken; the end result is used
# to scale all velocity or angular velocity terms. This channel has no
# effect on the effects of absolute buttons.
# The device will recenter (set itself to the identity transform) when the
# first connection is made to the server it is running on.
# Note that you could have multiple of these devices running simultaneously,
# each with a different name and interaction metaphor. The user could then
# connect to their favorite one. Arguments:
# char name_of_this_device[]
# float update_rate_to_send_tracker_reports
# [one or more lines follow, each of one of two types
# (1) char [] = "absolute"
# char name_of_button_device[] (start with * for local)
# int which_button_on_device
# float X_to_translate_to
# float Y_to_translate_to
# float Z_to_translate_to
# float rotation_about_X
# float rotation_about_Y
# float rotation_about_Z
# (2) char [] = "differential"
# char name_of_button_device[] (start with * for local)
# int which_button_on_device
# float X_translation_meters_per_second
# float Y_translation_meters_per_second
# float Z_translation_meters_per_second
# float spin_about_X_revolutions_per_second
# float spin_about_Y_revolutions_per_second
# float spin_about_Z_revolutions_per_second
# ]
# [An optional line describing an analog to scale the velocity
# char [] = "vel_scale"
# char name_of_button_device[] (start with * for local)
# int which_button_on_device
# float offset
# float scale
# float power
# ]
# [An optional line describing an analog to scale the rotation
# char [] = "rot_scale"
# char name_of_button_device[] (start with * for local)
# int which_button_on_device
# float offset
# float scale
# float power
# ]
# [one more line, consisting of the word "end"]
# Note that the same button can cause more than one action to take place,
# and the same analog can cause scaling of both the velocity and rotation.
# This example for a Global Haptics Orb pushes the transformation away
# from the button that is pressed
# for all of the standard buttons. It rotates around the Y axis when the
# rocker switch is rocked up and down. It resets to the origin when one
# of the pushbuttons is pressed. Both the velocity and angular velocity
# are controlled by the thumbwheel.
#vrpn_Tracker_ButtonFly Tracker0 60.0
#differential *Orb0 0 0 1 0 0 0 0
#differential *Orb0 1 0.707 0.707 0 0 0 0
#differential *Orb0 2 1 0 0 0 0 0
#differential *Orb0 3 0.707 -0.707 0 0 0 0
#differential *Orb0 4 0 -1 0 0 0 0
#differential *Orb0 5 -0.707 -0.707 0 0 0 0
#differential *Orb0 6 -1 0 0 0 0 0
#differential *Orb0 7 -0.707 0.707 0 0 0 0
#differential *Orb0 8 0 0.707 -0.707 0 0 0
#differential *Orb0 9 0.577 0.577 -0.577 0 0 0
#differential *Orb0 10 0.707 0 -0.707 0 0 0
#differential *Orb0 11 0.577 -0.577 -0.577 0 0 0
#differential *Orb0 12 0 -0.707 -0.707 0 0 0
#differential *Orb0 13 -0.577 -0.577 -0.577 0 0 0
#differential *Orb0 14 -0.707 0 -0.707 0 0 0
#differential *Orb0 15 -0.577 0.577 -0.577 0 0 0
#differential *Orb0 16 0 0.707 0.707 0 0 0
#differential *Orb0 17 0.577 0.577 0.577 0 0 0
#differential *Orb0 18 0.707 0 0.707 0 0 0
#differential *Orb0 19 0.577 -0.577 0.577 0 0 0
#differential *Orb0 20 0 -0.707 0.707 0 0 0
#differential *Orb0 21 -0.577 -0.577 0.577 0 0 0
#differential *Orb0 22 -0.707 0 0.707 0 0 0
#differential *Orb0 23 -0.577 0.577 0.577 0 0 0
#differential *Orb0 24 0 0 -1 0 0 0
#differential *Orb0 25 0 0 1 0 0 0
#differential *Orb0 28 0 0 0 0 -0.1 0
#differential *Orb0 29 0 0 0 0 0.1 0
#absolute *Orb0 27 0 0 0 0 0 0
#vel_scale *Orb0 0 -1.0 0.5 1.0
#rot_scale *Orb0 0 -1.0 0.5 1.0
#end
################################################################################
# 3Space Tracker. Runs a Polhemus 3Space (not Fastrak) tracker that is attached
# to a serial port on this machine. Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_Tracker_3Space Tracker0 /dev/ttyS0 19200
################################################################################
# Logitech 3DMouse tracker attached to a serial port on this machine.
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int filtering_count (this parameter is optional)
#vrpn_Tracker_3DMouse Tracker0 /dev/ttyS0 19200
################################################################################
# NDI Polaris Spectra or Vectra, attached to a serial or USB port
# This server works with the NDI Polaris Spectra and Polaris Vectra
# trackers. It doesn't work with the Optitrak or Aurora. It only
# handles rigid bodies made from passive sphere markers, and does
# not yet support active led markers nor single "stray" passive
# spheres.
#
# Each vrpn "sensor" is a single rigid body (or "tool" in NDI
# terminology), which consists of 3 or more passive spheres in a
# particular geometric arrangement. In order to define a custom
# rigid body (one that didn't come from NDI), you must use the NDI
# Architect software. That software produces .rom files for each
# rigid body. This vrpn tracker class will load those files during
# initialization.
#
# Before configuring the vrpn server here, you should first run
# the NDI software to track the rigid bodies using the NDI's
# interactive GUI. Only after you have configured and tested the
# tracker and rigid bodies to your satisfaction, should you try
# this vrpn server.
#
# This currently only handles an IR strobe rate of 60Hz, not
# 20Hz or 30Hz.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int number of sensors (i.e. num of rigid bodies)
#
# char rigidBody 0's .rom filename
# char rigidBody 1's .rom filename
# char rigidBody 2's ...
# vrpn_Tracker_NDI_Polaris Tracker0 COM1 2
# hello.rom
# ../world.rom
################################################################################
# Non-tracker devices. Lines are provided here for the various non-tracker servers
# that can be started.
################################################################################
# Example Dial server. This is a "device" that reports constant rotations for
# each of its dials at the specified rate. It can be used to verify connections
# are working and for other tests of VRPN. There are four arguments:
# char name_of_this_device[]
# int number_of_dials
# float rate_at_which_the_dials_spin (revolutions/second)
# float rate_at_which_to_report_updates (udpates/second)
#vrpn_Dial_Example Dial0 2 2.0 10.0
################################################################################
# CerealBox dial/button/analog. Runs a BG Systems CerealBox device that attaches
# to a serial port on this machine. As of VRPN version 04.07, 19200 is the
# only supported baud rate. The driver has been tested on an LV824-F-8e device.
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int number_of_buttons_to_read (starting from 0)
# int number_of_analogs_to_read
# int number_of_encoders_to_read
#vrpn_CerealBox Cereal0 /dev/cua0 19200 8 8 8
################################################################################
# Magellan button/analog. Runs a Logitech Magellan device that attaches
# to a serial port on this machine. As of VRPN version 04.12, 9600 is the
# only supported baud rate.
#
# Note that if you want to use the Magellan as a tracking device, you will
# need to run a vrpn_Tracker_AnalogFly device that listens to its analog
# outputs and converts them into tracker reports
#
# John Stone added support for the SpaceBalls in version 06.03, an example
# startup is shown below.
#
# Julien Brisset discovered how to make this work with a slightly older version
# of the Magellan. If the example Magellan line doesn't work, add 'altreset' to
# the line to use the alternative reset string for the device.
#
# NOTE: You should NOT run the driver that comes with the Magellan, since the
# VRPN driver opens the serial port and communicates with the device directly.
# If the Magellan driver from the manufacturer is running, then VRPN will not
# be able to open the port.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# char "altreset" {Optional, for older Magellans}
#vrpn_Magellan Magellan0 COM1 9600
#vrpn_Magellan Magellan0 /dev/ttyS0 9600 altreset
#vrpn_Spaceball Spaceball0 /dev/ttyS0 9600
################################################################################
# NRL Immersion Box dial/button/analog. Runs a Immersion Interface Box device
# attached to a serial port. As of March 28, 2000 code to read the analog and
# angle encoders has not been implemented. Also, baud rate on many SGI's is
# limited to 38400, but I have run the ibox at 115200 on PCs.
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int number_of_buttons_to_read (i.e. 4 ==> 0,1,2,3)
# int number_of_analogs_to_read
# int number_of_encoders_to_read
#vrpn_ImmersionBox ibox /dev/ttyd2 38400 4 0 0
#vrpn_ImmersionBox ibox com1 115200 4 0 0
################################################################################
# Wands button/analog, driver from Brown University. Runs a Wanda device
# attached to a serial port.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_port_to_use[]
# int baud_rate_of_serial_device
# float minimum_update_rate
#vrpn_Wanda Wanda /dev/ttyd2 1200 60.0
#vrpn_Wanda Wanda COM2 1200 60.0
################################################################################
# Radamec Serial Position Interface analog. Camera tracker that attaches
# to a serial port on this machine. Note that for normal operation, 38400 is the
# only supported baud rate.
#
# Note that if you want to use the Radamec SPI as a tracking device, you will
# need to run a vrpn_Tracker_AnalogFly device (of the absolute variety)
# that listens to its analog outputs and converts them into tracker reports.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_port[]
# int baud_rate_of_serial_port
#vrpn_Radamec_SPI Analog0 /dev/ttyS16 38400
################################################################################
# Zaber linear positioning element analog that attaches
# to a serial port on this machine.
#
# Note that if you want to use the Zaber as a tracking device, you will
# need to run a vrpn_Tracker_AnalogFly device (of the absolute variety)
# that listens to its analog outputs and converts them into tracker reports.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_port[]
#vrpn_Zaber Analog0 COM1
################################################################################
# SGI Dial and Button box, raw interface. Runs a dial-and-button box from SGI,
# talking to it through the raw serial interface (not using the GL interface
# supplied by SGI). This allows the box to be opened even if there is nobody
# logged on at the console. Note that to use this on an SGI, you will need to
# configure the port as a serial device, not as a button device, to get it to
# run. Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# [list of buttons to treat as toggles] int button_to_toggle
#vrpn_raw_SGIBox Sgibox0 /dev/ttyS0 0 1 2 3
################################################################################
# SGI Dial and Button box, cooked interface. Runs a dial-and-button box from SGI,
# talking to it through the GL interface supplied by SGI. Note that this can
# only be used on an SGI, and the serial port must be configured as a dial/button
# device and the dial/button server from SGI must be running to use it. Arguments:
# char name_of_this_device[]
# [list of buttons to treat as toggles] int button_to_toggle
#vrpn_SGIBOX Sgibox0 1 2
################################################################################
# UNC Python button device. UNC has developed a custom button input device, which
# is a 5-button controller that attaches to a parallel port and uses the sense
# lines to return the state of the buttons. This runs the device. Note that on
# Windows NT, you need to have installed the GiveIO driver for this code to
# work. It also works on Linux (no extra drivers needed), but on no other
# architecture. Arguments:
# char name_of_this_device[]
# int parallel_port_to_use_starting_with_1
# int hexadecimal_io_base_number (default address used if left off)
#vrpn_Button_Python Button0 1
################################################################################
# UNC Joystick driver. UNC has developed a custom-build joybox, with 7 analog
# and 2 button inputs (two 3-axis joysticks and a slider, with a button on top
# of each joystick). This will drive one of these devices, which attaches to
# a serial port on this computer. I'm not sure what the baud rate should be;
# David Harrison might know.
# This driver can be used in conjunction with the JoyFly driver to produce a
# tracker that uses the joystick to fly around. Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# float minimum_update_rate_from_analogs_even_if_they_dont_move
#vrpn_Joystick Joybox0 /dev/ttyd1 19200 10.0
################################################################################
# Linux Joystick. Interface to the Linux Joystick driver by Vojtech Pavlik
# included in several Linux distributions. The server code has been tested
# with Linux Joystick driver version 1.2.14. Yet, there is no way how to
# map a typical joystick's zillion buttons and axes on few buttons and axes
# really used. Unfortunately, even joysticks of the same kind can have
# different button mappings from one to another.
# Arguments:
# char name_of_this_device[]
# char name_of_joystick_device[]
#vrpn_Joylin Joylin0 /dev/js0
################################################################################
# Fakespace Pinch Glove. Drives a Fakespace Pinch Glove device connected to a
# serial port on this machine. This device has ten buttons-two hands and five
# fingers on each hand. Buttons 0-4 are fingers for the right hand-thumb first
# and pinkie last- while buttons 5-9 are for the left hand-thumb first. The
# Button is ON when it is touching another finger. Therefore there cannot
# be just one Button ON. Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_Button_PinchGlove PinchGlove0 COM1 9600
################################################################################
# Adrienne Electronics Corporation PCI time code driver. The PCI-VITC board
# for which this driver was developed reads in VITC time codes from an input
# signal. This will drive one of these devices.
# Arguments:
# char name_of_this_device[]
#vrpn_TimeCode_Generator TimeGen0
################################################################################
# 5DT glove. Drive a 5dt glove connected on a serial Port. This device uses
# optical fiber to get the finger position. Not all the 5dt gloves are available
# now.
# 2 modes are driven: the first one let the driver get data from the glove
# when requested (we advise this mode). The second one makes the glove send
# data continuously. This mode may saturate the input buffer.
# The manual states that there will be 9 bytes per report, but one group
# has found that they get an extra one: 0x55 at the end of each report.
# So, you can choose whether to use 9 (the default) or 10 now.
# Gesture management is not implemented yet nor the mouse emulation mode
# arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int mode_of_data_reporting (1 = on request, 2 = continuously)
# int ten_bytes_per_report (0 = no, use 9; 1 = yes)
#vrpn_5dt glove_5dt /dev/ttyS0 19200 1 0
#vrpn_5dt glove_5dt COM1 19200 1 0
################################################################################
# BPack wireless accelerometer. Drive a BPack wirelessly connected on a serial Port.
# arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int period (how often does BPack sense the acceleration)
# int average counter (after avgCnt sensings, send a report)
#vrpn_BPack BPack0 /dev/ttyS0 9600 6 5
#vrpn_BPack BPack0 COM4 9600 10 6
################################################################################
# BPack wireless accelerometer. Drive a BPack wirelessly connected on a serial Port.
# arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int period (how often does BPack sense the acceleration)
# int average counter (after avgCnt sensings, send a report)
#vrpn_BPack BPack1 /dev/ttyS0 9600 6 5
#vrpn_BPack BPack1 COM6 9600 10 6
################################################################################
# NRL Serial Mouse. A device made by wiring buttons in parallel with the buttons
# on a serial mouse. Both mousesystems or microsoft mouse protocols are
# supported. Note that the server code makes the connection at the standard
# 1200 baud. The mouse can be plugged into any serial port -- this driver goes
# directly through the raw port and does not use the built-in mouse drivers.
# NOTE: The middle button on the 3button type is toggled by moving the mouse
# on a surface while not toggling the other two buttons, strange as this may
# seem. The motion of the mouse is not reported, only the buttons.
#vrpn_Button_SerialMouse Button0 /dev/ttyd1 mousesystems
#vrpn_Button_SerialMouse Button0 COM1 mousesystems
#vrpn_Button_SerialMouse Button0 COM1 3button
# For a Linux box with a mouse on port 0
#vrpn_Button_SerialMouse Button0 /dev/ttyS0 3button
# For a mac with a Keyspan 4-port serial-to-USB converter
#vrpn_Button_SerialMouse Button0 /dev/tty.USA49W3b12P1.1 3button
################################################################################
# NRL TNG3. (Totally Neat Gadget) A device made by mindtel, available from
# pulsar.org. Powered off the serial port control lines, the TNG3 has 8 digital
# and 8 analog inputs. Analog resolution is 8 bits. Baud rate fixed internally
# at 19200.
# char name_of_this_device[]
# char name_of_serial_device[]
# int number_of_buttons_to_read (i.e. 8 ==> 0,1,2,3,4,5,6,7)
# int number_of_analogs_to_read
#vrpn_Tng3 tng3name /dev/ttyd2 4 0
#vrpn_Tng3 tng3name com1 8 8
#vrpn_Tng3 tng3name com1 1 1
################################################################################
# Microsoft DirectX compatible force-feedback joystick (or non-force-feedback
# joystick).
# char name_of_this_device[]
# int number of times per second to read from the device
# int number of times per second to update force (0 for non-force device)
#vrpn_DirectXFFJoystick Joystick0 60 200
#vrpn_DirectXFFJoystick Joystick0 60 0
################################################################################
# Microsoft DirectX compatible rumble-pad (e.g. Wingman)
# char name_of_this_device[]
#vrpn_DirectXRumblePad RumblePad0
################################################################################
# Microsoft XInput compatible controller (e.g. Xbox 360 gamepad)
# char name_of_this_device[]
# int userIndex (0 for "Player 1", 1 for "Player 2", etc.)
#vrpn_XInputGamepad XInput0 0
################################################################################
# Manager for joysticks under windows using standard win32 calls.
# for force feedback support, see DirectX joystick above
#
# Arguments:
# char name_of_this_device[]
# int joystick Id
# (1 for first joystick JOYSTICKID1 or 2 for second JOYSTICKID2 only)
# int number of times per second to read from the device
# int readmode : 0 = raw data;
# 1 = 0,1 normalized data;
# 2=-1,1 normalized data
# int percentage (0 to 100) of deadzone (used mode 1 and 2 only)
#vrpn_Joywin32 joyWin32 1 60 2 35
################################################################################
# Global Haptics GeoOrb serial-line device that contains a number of buttons,
# a thumbwheel, and a trackball. For current devices, only 19200 baud works.
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_GlobalHapticsOrb Orb0 COM1 19200
################################################################################
# SensAble Technologies Phantom force-feedback device opened using the
# GHOST software developer's kit. For Phantom Desktop systems, you don't
# need to have the user establish the reset position. For the Premium models,
# you do.
# Arguments:
# char name_of_this_device[]
# int establish_reset_position (0 or 1)
# float rate_to_send_tracker_reports
#vrpn_Phantom Phantom 0 60.0
##############################################################################
# Virtual Presence Joystick tracker device. (http://www.vrweb.com)
# Use this driver to read the button states,
# use Flock-of-Birds driver for the position/orientation state
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_VPJoystick VPJoystick0 /dev/ttyS0 9600
################################################################################
# Advanced Realtime Tracking GmbH (http://www.ar-tracking.de) DTrack client
#
# creates as many vrpn_Tracker as there are bodies or Flysticks, starting with the bodies
# creates 2 analogs per Flystick
# creates 8 buttons per Flystick
#
# NOTE: when using DTrack's older output format for Flystick data ('6df'), the numbering
# of Flystick buttons differs from DTrack documentation (for compatibility with
# older vrpn releases)
#
# Arguments:
# char name_of_this_device[]
# int udp_port (DTrack sends data to this UDP port)
#
# Optional arguments:
# float time_to_reach_joy (in seconds; see below)
# int number_of_bodies, number_of_flysticks (fixed numbers of bodies and Flysticks)
# int renumbered_ids[] (vrpn_Tracker IDs of bodies and Flysticks)
# char "-" (activates tracing; always last argument)
#
# NOTE: time_to_reach_joy is the time needed to reach the maximum value (1.0 or -1.0) of the
# joystick of older 'Flystick' devices when the corresponding button is pressed
# (one of the last buttons amongst the 8); not necessary for newer 'Flystick2' devices
# with its analog joystick
#
# NOTE: if fixed numbers of bodies and Flysticks should be used, both arguments
# number_of_bodies and number_of_flysticks have to be set
#
# NOTE: renumbering of tracker IDs is only possible, if fixed numbers of bodies and
# Flysticks are set; there has to be an argument present for each body/Flystick
#vrpn_Tracker_DTrack DTrack 5000
#vrpn_Tracker_DTrack DTrack 5000 0.5
#vrpn_Tracker_DTrack DTrack 5000 0.5 2 2
#vrpn_Tracker_DTrack DTrack 5000 0.5 2 2 2 1 0 3
################################################################################
# National Instruments Analog Output server. This will open the board whose
# name is specified, configure the number of channels specified, and set the
# polarity and maximum voltage range at which to drive the channels.
#
# XXX This server is deprecated, please use the vrpn_National_Instruments
# server listed below.
#
# Arguments:
# char vrpn_name_for_this_device[]
# char name_of_NI_board[]
# int number_of_channels
# int polarity : 0 = unipolar, 1 = bipolar
# float min_voltage
# float max_voltage
#vrpn_NI_Analog_Output Analog_XY DAQCard-6036E 2 0 -10.0 10.0
#vrpn_NI_Analog_Output Analog_ZTweeze DAQCard-6036E 2 0 -10.0 10.0
#vrpn_NI_Analog_Output Analog_XYZ PCI-6733 3 0 -10.0 10.0
################################################################################
# National Instruments A/D, D/A Analog and Analog Output server. This will open
# the board whose name is specified, configure the number of channels specified,
# and set the polarity and maximum voltage range at which to read and
# drive the channels.
##
# Arguments:
# char vrpn_name_for_this_device[]
# char name_of_NationalInstruments_board[]
# int number_of_input_channels (can be zero)
# float mininum_delay_between_Analog_Reports (zero for fastest)
# int input_polarity : 0 = unipolar, 1 = bipolar
# int input_mode : 0 = differential, 1 = ref single-end, 2 = non-ref SE
# int input_range : 5 = 5v, 10 = 10v, 20 = 20v
# int input_drive_ais : 0 = no, 1 = yes
# int input_gain
# int number_of_output_channels (can be zero)
# int output_polarity : 0 = unipolar, 1 = bipolar
# float min_out_voltage (used to guard against overdriving devices)
# float max_out_voltage (used to guard against overdriving devices)
# Input example
#vrpn_National_Instruments MCLXYZIN PCI-6052E 7 0 0 0 10 0 1 0 0 -10.0 10.0
# Output examples
#vrpn_National_Instruments MCLXYZOUT PCI-6733 0 0 0 0 10 0 1 3 0 0.0 10.0
#vrpn_National_Instruments Analog_XY DAQCard-6036E 0 0 0 0 10 0 1 2 1 -10.0 10.0
################################################################################
# Analog Poser. This is a poser that is intended to be used on top of
# an analog output (perhaps a National Instruments board), whose outputs
# directly drive the position of some actuated stage. It could be used on top
# of any analog output device, in fact. This device basically takes in poses
# and puts out analog outputs.
# One analog channel is associated with each axis (X, Y, Z) and rotation about
# each axis (RX, RY, RZ). For each axis, the position (meters) is converted into
# a voltage; the orientation is mapped from a quaternion into Euler angles and
# each of the Euler angles is converted into a voltage (XXX Orientation is not yet
# implemented; the RX,RY, and RZ values must be specified but they are not used).
# XXX Velocity and orientation velocity are not yet supported.
# Any axis can be disabled by setting the name of its associated device to the
# string "NULL".
#
# Arguments:
# char vrpn_name_for_this_device[]
# int send_tracker_reports
# [six lines follow, one for X Y Z RX RY RZ, each with:
# char axis_name[] (X Y Z RX RY RZ in that order)
# char vrpn_name_of_the_analog_output_to_use[]
# (Preface with a * if it uses the same connection)
# int channel_of_analog_output_device (First channel is channel 0)
# float offset
# float scale
# float min_value of workspace
# float max_value of workspace
# ]
#vrpn_Poser_Analog Poser0 1
#X *Analog_XY 0 0.0 1.0 -10 10
#Y *Analog_XY 1 0.0 1.0 -10 10
#Z *Analog_ZTweeze 0 0.0 1.0 -10 10
#RX NULL 0 0.0 1.0 -10 10
#RY NULL 0 0.0 1.0 -10 10
#RZ NULL 0 0.0 1.0 -10 10
# Poser to drive Mad City Labs stage from an input value of
# 0 to 100 microns to an output (through a National Instruments
# D/A card) of 0-10 volts.
#vrpn_Poser_Analog Poser0 1
#X *MCLXYZOUT 0 0.0 0.1 0 100
#Y *MCLXYZOUT 1 0.0 0.1 0 100
#Z *MCLXYZOUT 2 0.0 0.1 0 100
#RX NULL 0 0.0 1.0 -10 10
#RY NULL 0 0.0 1.0 -10 10
#RZ NULL 0 0.0 1.0 -10 10
################################################################################
# Nikon microscope connected to PC via serial port. Currently only controls
# the focus of the microscope using an analogout and reads the focus position
# using an analog.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
#vrpn_nikon_controls nikon COM1
################################################################################
# Tektronix 4662 plotter. Attaches to a serial port. Acts as both a poser and
# a tracker. Reports positions 4x per second plus when a move command completes.
# Multiple move commands issued before they complete will result in only the last
# one being executed.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_Tek4662 Tek4662 COM1 1200
###############################################################################
# keyboard and mouse button is a tracker with button system
# XXX These have been removed and replaced with vrpn_Mouse
# and vrpn_Keyboard. Use the clutch option on vrpn_AnalogFly to
# replicate the mouse behavior. The vrpn_Keyboard does not
# enable key mapping, just sends all of the keys' scancodes
# through.
################################################################################
# US Digital A2 Absolute Encoder Analog Input server. This will open the COM
# port specified, configure the number of channels specified, and report
# Absolute Encoder values in tenths of a degree from 0 to 3599.
#
# Arguments:
# char name_of_this_device[]
# int COM_port. If 0, search for correct COM port.
# int number_of_channels
# int 0 to report always, 1 to report on change only (optional, default=0)
#vrpn_Analog_USDigital_A2 Analog0 1 2
################################################################################
# This is a driver for National Instruments DAQCard-
# DIO-24, a PCMCIA card, which provides 24-bit digital I/O.
#
# Arguments:
# char name_of_this_device[]
# int number_of_channls to read: 1-24 (optional. default=24).
#vrpn_Button_NI_DIO24 Button0 1
##############################################################################
#PhaseSpace OWL server. This device type is not compiled by default, since
#it uses a proprietary library. However, you can get it to compile by
#defining VRPN_INCLUDE_PHASESPACE and including the appropriate libraries
#and headers when compiling (See vrpn_Configure.h).
#
#Arguments:
# char name_of_this_tracker[] #Tracker0, Tracker1, ... etc
# char location_of_OWL_device[] #typically localhost, or ip address
# float frame_rate #between 0.0 and 480.0
# int read_till_most_recent #0 or 1.
# int slave_mode #0 or 1.
# [Additional lines specifying markers and rigid bodies]
#
#Specifying a frequency >0 will start streaming immediately at startup.
#To delay this, set the frequency to zero and adjust the update rate later.
#
#Specifying 1 for read_till_most_recent will cause the server to drop frames
#in order to get the most recent data on every run through the mainloop.
#This may be desirable for most VR applications and for slower machines.
#
#The format of the additional lines is as follows:
#
#Example:
#
#vrpn_Tracker_PhaseSpace Tracker0 localhost 480.0 1 0
#<owl>
#0 : rbnew
#1 : rb+ 0 0 300 0
#2 : rb+ 1 300 0 0
#3 : rb+ 2 -300 0 0
#4 : rb+ 3 0 76 -200
#5 : pt 4
#6 : pt 5
#7 : pt 6 #this is a comment
#8 : pt 8
#9 : pt 9
#</owl>
#
#
#
# In regular expression syntax:
# sensornumber : spectype led_id [xcoord ycoord zcoord]
#
# The <owl> and </owl> tags indicate the start and end of the marker
# and rigid body specifications. Each line inside the tags correspond
# to a sensor specified by the first number in the line. Register
# callbacks as necessary. The # character will cause the rest of
# the line to be ignored. Do not assign duplicate sensors.
#
# There are 4 spectypes: "rbnew", "rb+", and "pt".
#
# "pt" indicates a normal marker specification.
# The number following it indicates the led id to assign to that sensor.
# No further arguments are needed for the rest of the line. The vrpn
# server will return position data for that marker but no orientation
# data.
#
# "rbnew" indicates a new rigid body specification. The lines following
# it must be "rb+" lines, indicating the addition of markers to the
# rigid body. The "rb+" lines must have the x,y, and z coordinates of
# the rigid body marker specified after the led id. The rigid body
# itself is assigned the sensor of the "rbnew" line, and the markers
# in the rigid body are given the sensor numbers of the "rb+" lines.
# The rigid body specification continues until another "rbnew" line is
# encountered or until the </owl> tag. If "pt" lines are mixed in, they
# do not affect the rigid body. Rigid bodies will return an orientation
# as well as positional data.
#
# Empty or invalid lines inside the <owl> and </owl> tags are also
# ignored.
#
# Care must be taken to AVOID specifying the same led id or sensor twice,
# sensors and led ids should be unique.
#
# The OWL server (not just the vrpn server) must still be configured to
# track the specified markers. Consult the PhaseSpace documentation to
# see how.
#
#
# Velocities and accelerations are not currently supported.
#
# The frequency of streaming can be varied with set_update_rate()
# in vrpn_Tracker_Remote. To stop streaming, set the update rate to
# zero.
#
# For support, questions, comments, or bug reports please send emails
# to: support@phasespace.com
#vrpn_Tracker_PhaseSpace Tracker0 localhost 480.0 1 0
#<owl>
#0 : pt 0 #to sensor 0 assign led 0
#1 : pt 1 #to sensor 1 assign led 1
#2 : pt 2 #to sensor 2 assign led 2
#3 : pt 3 #to sensor 3 assign led 3
#</owl>
################################################################################
# Generic Auxiliary Logger. This is a server that will listen for requests to
# produce additional log files and the name of the connection it should make the
# log files for. It can only have one set of such logs open (can be more than
# one log but all for the same connection). There are two arguments:
# char name_of_this_device[]
# char name_of_connection_to_log
#vrpn_Auxiliary_Logger_Server_Generic Logger0 localhost
################################################################################
# Imager Stream Buffer. This is a server that will listen for requests to
# produce additional log files and the name of the connection it should make the
# log files for. It can only have one set of such logs open (can be more than
# one log but all for the same connection). The "local" log files are with
# respect to the machine where this server is running, and the "remote" ones
# are with respect to the vrpn_Imager_Server it has connected to (which may
# be on yet a third machine compared to the client machine).
# There are two arguments:
# char name_of_this_device[]
# char name_of_imager_server_to_log
#vrpn_Imager_Stream_Buffer ImageStream0 TestImage@localhost
################################################################################
# X-Keys devices from P.I. Engineering. There are four devices we have
# drivers for. The only argument is the name of the device to open. The Pro
# and Joystick models have not been tested.
#
# There is one argument:
# char name_of_this_device[]
#vrpn_Xkeys_Desktop xkeys0
#vrpn_Xkeys_Pro xkeys0
#vrpn_Xkeys_Joystick xkeys0
#vrpn_Xkeys_Jog_And_Shuttle xkeys0
################################################################################
# Space Navigator, Space Traveler, and Space Mouse devices from 3DConnexion.
# The only argument is the name of the device to open.
#
# There is one argument:
# char name_of_this_device[]
#
# On Linux, make sure the HID and evdev drivers are running so that these
# devices will be recognized:
# Start a separate Root shell:
# cd .../vrpn/server_src/pc_linux
# lsmod
# modprobe evdev
# modprobe hid
# lsmod
# (check that evdev and hid are running)
#vrpn_3DConnexion_Navigator device0
#vrpn_3DConnexion_Traveler device0
#vrpn_3DConnexion_SpaceMouse device0
#vrpn_3DConnexion_SpaceExplorer device0
#vrpn_3DConnexion_SpaceBall5000 device0
################################################################################
# Open the mouse as an analog and button devices. There is an implementation
# under Windows and another under Linux (using GPM). There are two analog
# channels, reporting in the range [0..1] as the mouse moves across the screen.
# There are 3 button channels: left, middle, right.
#
# There is one argument:
# char name_of_this_device[]
#vrpn_Mouse Mouse0
################################################################################
# Open the keybaord as a button device. There is an implementation
# under Windows. There are 256 buttons, and they are triggered according
# to the scan code that they represent.
#
# There is one argument:
# char name_of_this_device[]
#vrpn_Keyboard Keyboard0
################################################################################
# MotionNode inertial tracking system.
#
# There are four arguments:
# char name_of_this_device[]
# int num_sensors
# char address
# int port
#vrpn_Tracker_MotionNode Tracker0 1 FIXME 1
################################################################################
# Nintendo Wii Remote Controller
# char name_of_this_device[]
# int userIndex (1 for the first Wii devices connected, 2 for the second, etc.)
# int useMotionSensing
# int useIR
# int reorderButtons (set to make button ids somewhat more sensible)
#vrpn_WiiMote WiiMote0 1 1 0 1
################################################################################
# Nintendo Wii Fit Balance Board Controller
# It has to be named vrpn_Wiimote because WiiFit is recognized as a parasitized WiiMote by VRPN
# char name_of_this_device[]
# int userIndex (1 for the first Wii devices connected, 2 for the second, etc.)
# int This has no meaning for WiiFit, but please don't remove it
# int This has no meaning for WiiFit, but please don't remove it
# int This has no meaning for WiiFit, but please don't remove it
#vrpn_WiiMote WiiFit0 2 1 0 1
vrpn_WiiMote WiiFit0 1 1 0 1
################################################################################
# Novint Falcon attached to USB.
# Arguments:
# char name_of_this_device[]
# int device index (starts at 0)
# char name_of_grip (optional, default= "4-button")
# char kinematic_model (optional, default="stamper")
# float damping_factor (optional, range 1.0-1000.0, default=10.0)
#vrpn_Tracker_NovintFalcon Tracker0 0 4-button 10.0
################################################################################
# Hillcrest Labs Freespace device
# char name_of_this_device[]
# int Index (0 for device 1, 1 for device 2, ...)
# int Send body frames (0 = no, 1 = yes)
# int Send user frames (0 = no, 1 = yes)
#vrpn_Freespace FreeSpace0 0 1 1
################################################################################
# Dream Cheeky devices, of which only the USB Roll-Up Drum Kit is implemented.
#
# There is one argument:
# char name_of_this_device[]
#vrpn_Dream_Cheeky_USB_roll_up_drums drums0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment