Faro measurement arm tracking

Return to Tracking Configuration

Introduction

The FARO arm provides mechanical tracking information. Its advantage lies in the high accuracy and robustness offered by the system.A typical use case for a FARO-AR-system would be a discrepancy measurement, for example to check if a prototype car part corresponds to the original CAD data. In order to use the FARO system with the Unifeye SDK a FARO arm has to be connected to your computer and the FARO drivers installed. In Unifeye a FARO tracking configuration file has to be loaded, whose content is explained in detail in the next section.

Image of a FARO measurement arm

Image of a FARO measurement arm with attached AVT camera

Configuration

The code below specifies the content of the FARO configuration file.

  • In the Sensor section a Sensor of type FaroSensorsource is defined with a unique SensorID, no additional parameters are needed.
  • Then a SensorCOS is added for the camera which contains a unique SensorCOSID. No further parameters are needed.
  • Then the Connections are defined, which link a SensorID with a SensorCosID in terms of COSes.
  • In our case one COS is defined which
    • uses a Fuser of type BestQualityFuser
    • links the SensorID "Faro1" with the SensorCosID "Faro"
    • holds a HandEyeCalibration transform which references the internal FARO coordinate system to the coordinate system of the camera attached to the FARO arm
    • holds a COSOffset transform which moves the resulting tracking coordinate system to another location (e.g. an external object coordinate system)

Example FARO tracking configuration

<?xml version="1.0"?>
<TrackingData>
<Sensors>
   <Sensor type="FaroSensorSource">      
      <SensorID>Faro1</SensorID> 
      <Parameters></Parameters> 
      <SensorCOS>
         <SensorCosID>Faro</SensorCosID>
         <Parameters></Parameters>
      </SensorCOS>
   </Sensor>
</Sensors>   
<Connections>
   <COS>
      <Fuser type="BestQualityFuser">
         <Parameters></Parameters>
      </Fuser>
      <SensorSource trigger="1">
         <SensorID>Faro1</SensorID>   
         <SensorCosID>Faro</SensorCosID>   
         <HandEyeCalibration>
            <TranslationOffset>
               <x>1.2175999879837</x>
               <y>-62.4329986572266</y>
               <z>-100.73999786377</z>
            </TranslationOffset>
            <RotationOffset>
               <x>-0.71175172529687</x>
               <y>0.702411714043187</y>
               <z>-0.00519841281546098</z>
               <w>0.000491951258962297</w>
            </RotationOffset>
         </HandEyeCalibration>
         <COSOffset>
            <TranslationOffset>
               <x>-1008.52478027344</x>
               <y>-197.035705566406</y>
               <z>-375.111022949219</z>
            </TranslationOffset>
            <RotationOffset>
               <x>-0.705727948490848</x>
               <y>-0.0146657083256182</y>
               <z>-0.0106710073837198</z>
               <w>0.708250739018057</w>
            </RotationOffset>
         </COSOffset>
      </SensorSource>
   </COS>   
</Connections>
</TrackingData>

Using Faro tracking configuration files

To activate Faro 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-01-28

Topic revision: r4 - 2011-02-10 - 19:06:41 - 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