Benutzer-Werkzeuge

Webseiten-Werkzeuge


analysistools:pointingdevice

Dies ist eine alte Version des Dokuments!


Working with a pointing device

A typical workflow, based on marker-clusters, includes the usage of a so called „pointer“ to define anatomical prominences of bony structures.

The pointer needs at minimum two markers, but typically four markers are used for better „autolabeling“ function.

To determine the position of the „tip“ of the pointer from the markers of the pointer, the kinematic model has to implement this feature, e.g.:

 <Point name="P"
           includes="locator">LOCATOR3+normalize(LOCATOR1-LOCATOR3)*LocatorLength
 </Point>

The formula of the code fragment above includes the labels „LOCATOR1“ and „LOCATOR3“. These are the names of the markers, as defined in the „input-labelset“:

<?xml version="1.0" encoding="UTF-8"?>
<LabelSet name="Markers">
  <Labels name="Markers" baseFile="true">
     <Label name="LOCATOR1"/>
     <Label name="LOCATOR2"/>
     <Label name="LOCATOR3"/>
     <Label name="LOCATOR4"/> 
     ...

The kinematic model you can find in the „Models“ subfolder of your project. If there are more than one model, you have to check, which one is used as default. This is defined in the „cmlproject.xml“, which you can find in the „Jobs“ subfolder of your project. The used kinematic model you can find as value of the attribute „defaultmodel“ of the xml-element <CalcMLProcessConfig>, e.g.:

<?xml version="1.0" encoding="iso-8859-1" ?>
<CalcMLProcessConfig name="UEGeneral2 HUX + Cluster"
                     version="1.0"
                     defaultmodel="UEGeneral2+Cluster_without-SHO-markers.xml"
                     defaultmarkerset="Input.xml"
                     defaultconstants="constants.properties"
                     defaultview="StickFigure.xml"
                     useEventsFromSessionMetaDataFile="false">
...

In this code fragment above you can also see which is the name of the default input-labelset. The attribute name is called „defaultmarkerset“. The referenced labelset files you can find in the subfolder „Labelset“ in you project.

The formula to define the tip of the pointer also includes a label with the name „LocatorLength“. This points to a constant, which is defined in the „constants.properties“ file in the subfolder „Constants“ of your project, e.g.:

MarkerDiameter=9.5
FuncionalTrialAbdukROM=45.0
RabShoulderOffset=0.17
LocatorLength=119,5

To define an anatomical coordinate system of a bony segment, three points have to be pointed. Typically each poining is done in a separate „static trial“. To collect the data of these trials, each of the trials has to be recognized by the model. It has to recognized which point is pointed and it has to be formulated in the model how to determine an anatomical coordinate system based on these points and the cluster coordinate system.

Using a Vicon motion capture system, the needed information to recognize the trial, can be saved as a property in the so called „Eclipse“ functionality. In newer Eclipse version used as default in the Vicon Nexus system has the following properties as default, which can easy be used. Typically the attributes with the names

 ACTIVITY
 SIDE
 TYPE

The Attribute „ACTIVITY“ can be used to define, which bony position is pointed, if the position is side dependend the attribute „SIDE“ can be used additionally and the attribute „TYPE“ can be set to „static“ to say that it is a trial without motion.

How to recoginize a trial based on these attributes is defined in the so called „job configuation“. It is the file „cmlproject.xml“ in the subfolder „Jobs“ in your project.

Have a look at the following code fragment:

  <CalcGroups sequence="... static_calibrate_T8 static_calibrate_right_SC static_calibrate_right_AC ...">
 
     <!-- calibration by locator -->
 
     <!-- thorax -->
     <CalcGroup name="static_calibrate_T8">
        <identification>
          <entry key="TYPE">Static_Cal|Static</entry>
          <entry key="ACTIVITY">Thorax T8</entry>
          <entry key="SIDE">Both</entry>
        </identification>
        <process>
            <entry key="POINTS">true</entry>
            <entry key="NOEVENTS">true</entry>
        </process>
        <output labelset="empty.xml" dir="">
            <entry key="integerDigits">10</entry>
            <entry key="fractionDigits">5</entry>
        </output>
        <!--output labelset="Output_calibrate.xml"
                handlerclass="de.orat.motionDataConverter.MotionDataOutputHandler">
        </output-->
     </CalcGroup>

The element <CalcGroup> defines a group of trials. In the case of pointing, typically such a group should include only one trial. The entries in the <identification>-element define how a trial is recognized. Each <entry>-element defines the values an attribute with a given name must set to, so that the trial is recognized as a member of this group of trials.

The value is given as an regular expression.

The allocation to a trial group is one part. In the case of a pointing trial the calculation depends on it. Thatś why as an additional step a „switch“ must added. This is also defined in the „job configuration“, e.g.:

 
analysistools/pointingdevice.1488282623.txt.gz · Zuletzt geändert: 2017/02/28 12:50 von oliver

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki