[IGSTK-Developers] calibration (followup to David and James'sdiscussion)

Hui Zhang zhang at isis.imac.georgetown.edu
Thu Dec 1 16:27:17 EST 2005


Hi, David and Ziv,

----- Original Message ----- 
From: "Ziv Yaniv" <zivy at isis.imac.georgetown.edu>
To: "David Gobbi" <dgobbi at atamai.com>
Cc: "'IGSTK-developers'" <igstk-developers at public.kitware.com>
Sent: Thursday, December 01, 2005 3:56 PM
Subject: Re: [IGSTK-Developers] calibration (followup to David and 
James'sdiscussion)


> David Gobbi wrote:
>  ...
>
>> The easiest way to do this, though I know James doesn't like it, is to 
>> have a SetToolOrientation() method in the ToolTipCalibration.  The tip

I am OK with it, don't worry about me. :) I can add the SetToolOrientation 
method to the PivotCalibration class and make it an easy way to give the 
full calibration transform. This routine will be easily accepted by 
application developer to make the elegent code. I agreed with this. Maybe in 
the document, we should remind the users that pivot calibration can only 
provide 3D translation, and the rotation information is set by themselves, 
to avoid they take the default rotation information as the real rotation 
elements.

>> calibration won't use this information to compute the tip position, but 
>> it will include this orientation in the transform that it produces.  That 
>> would be sufficient for providing an accurate tip location and nominal 
>> orientation for the pointer.
>>
>> - David
>>
> This seems a reasonable approach, although it is ugly (giving a parameter 
> to a method so that it only passes it on).
>    Which brings me to the following scenario for getting the tool 
> orientation based solely on pivot calibration.
>     As we all know pivot calibration computes two translations 
> simultaneously, the translation from the tool's tracking device origin
>      to the tip and the transformation from the tracking systems origin to 
> the location of the tool tip.
>     To get an approximate orientation for our tool do the following:
>      1. pivot calibrate at location one.
>       2. pivot calibrate at location two.
>       3. place the tool so that its axis connects location one and two, 
> subtract the two points the resulting vector is the
>           direction of the tool axis in the tracking system coordinate 
> system.
>     Assumption: During this process the relationship between the tracking 
> system and points one and two remains fixed.
>
>     a. This is crude and ugly.
>     b. I'm not sure if the tool reference frame can be seem for all three 
> steps when using optical trackers.
>     c. It fits right in with the SetToolOrientation approach.

This is the way works to get the real orientation. We may code like those to 
follow these steps:
1. Use igstkPivotCalibration at location one. Use the function 
GetPivotPosition in the PivotCalibration class to retrieve the coordinate 1;
2. Move to location two, to retrieve the coordinate 2;
3. Place the tool aligning with location 1 and 2. Read the tracker 
information from igstkTracker;
4. Put coordinate 1 and 2, with the tracker information in location 3, as 
the input to a new igstkReferenceCalibration class to get the rotation 
information.
5. Set the rotation information to PivotCalibration class to assemble the 
correct transform.

One additional question in step 3: can we put the tracked tool to make it 
perfectly align with location 1 and 2? Due to the diameter of tools, it is a 
bit hard.

Regards,
James

>
>                                                                   Ziv
> 
> _______________________________________________
> IGSTK-Developers mailing list
> IGSTK-Developers at public.kitware.com
> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>
> 





More information about the IGSTK-Developers mailing list