VRPN Tracking

Return to Tracking Configuration

Introduction

Unifeye is capable of receiving and processing tracking information sent via the network using the VRPN protocol. More detailed information about the Virtual Reality Peripheral Network can be found at http://www.cs.unc.edu/Research/vrpn/index.html. Please also note that Unifeye can also send tracking data via a network using this procotol (please refer to: the synchronization section and the configuration section.

By using VRPN you can connect any kind of tracking system to Unifeye via a network connection. To the end user this is transparant as tracking information received via VRPN is treated like any other tracking values or results and can be used in normal coordinate systems within the Unifeye SDK.

Creating a VRPN tracking configuration file

You can find a sample VRPN tracking configuration within the folder <UnifeyeInstallationDirectory>/config/SensorSources called AS_Tracking_Data_VRPN.xml.

For the sensor source itself you can specify an update interval (in milliseconds) in which the internal VRPN network traffic listener should check for new tracking values at the VRPN network interface.

For the sensor coordinate systems you have to configure the <Parameters> section appropriately. There is a sub XML element called <Tracker> which contains two parameters:

  • <Name>: Defines the name of the "Tracker" as it is defined on the sending unit for the VRPN tracking data. Usually one "Tracker" contains the tracking values for one tracked coordinate system. For every VRPN "Tracker" you want to use you should thus define on VRPN sensor coordinate system with the according "Tracker" <Name>.
  • <VRPNServer>: Defines the name (IP address or DNS) of the VRPN sender that is supplying the tracking data for the defined VRPN "Tracker". This allows you to configure several VRPN "Trackers" from different sending units/machines. You only have to define a sensor coordinate system for each VRPN "Tracker" and sending machine.

A valid, example configuration file would like this:

<?xml version="1.0"?>
<TrackingData>
<Sensors>
    <Sensor type="VRPNSensorSource">        
        <SensorID>VRPNSensor</SensorID>
        <Parameters><!-- sensor specific parameters -->
        <updateInterval>20</updateInterval><!-- in ms -->
        </Parameters>
        <SensorCOS>
            <SensorCosID>Tracker0</SensorCosID>
            <Parameters>
                <Tracker>
                    <!-- define Tracker name -->
                    <Name>Tracker0</Name>
                    <!-- define VRPN Server IP address/DNS name -->
                    <VRPNServer>localhost</VRPNServer>
                </Tracker>
            </Parameters>
        </SensorCOS>
    </Sensor>
</Sensors>    
<Connections>
    <COS>
        <Fuser type="BestQualityFuser">
            <Parameters></Parameters>
        </Fuser>
        <!-- There are 1-n SensorCoses -->
        <SensorSource trigger="1">
            <SensorID>VRPNSensor</SensorID>    
            <SensorCosID>Tracker0</SensorCosID>
            <HandEyeCalibration>
                <TranslationOffset>
                    <x>0.0</x>
                    <y>0.0</y>
                    <z>0.0</z>
                </TranslationOffset>
                <RotationOffset>
                    <x>0.0</x>
                    <y>0.0</y>
                    <z>0.0</z>
                    <w>1.0</w>
                </RotationOffset>
            </HandEyeCalibration>
            <COSOffset>
                <TranslationOffset>
                    <x>0.0</x>
                    <y>0.0</y>
                    <z>0.0</z>
                </TranslationOffset>
                <RotationOffset>
                    <x>0.0</x>
                    <y>0.0</y>
                    <z>0.0</z>
                    <w>1.0</w>
                </RotationOffset>
            </COSOffset>
        </SensorSource>
    </COS>
</Connections>
</TrackingData>

Using VRPN tracking configuration files

To activate VRPN tracking within the Unifeye SDK you simply have to load an according tracking configuration file and use the API function setTrackingData() (see http://doxygen.metaio.com/UnifeyeSDK/UnifeyeSDK_doxygen/group__Configuration.html). You can also load the according tracking configuration file within the Unifeye GUI using the Tracking Configuration Tool.


Return to Tracking Configuration


-- SupportMetaio - 2011-02-09

Topic revision: r3 - 2011-02-10 - 19:31:11 - SupportMetaio
 
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback