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

David Gobbi dgobbi at atamai.com
Thu Dec 1 16:21:28 EST 2005


Ziv Yaniv wrote:

> 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 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.

Yeah, that does invole a lot of unecessary work...  As you mentioned 
earlier, for general-purpose use of IGSTK an orientation calibration 
procedure wouldn't be necessary.  We just need some way of saying "this 
pointer tool is pointing along the +X axis" or "this pointer tool is 
pointing along the -Z axis".  So, like I've been saying all along, all 
we really need is to take the 3D tip position from the tip calibration,  
concatenate that with the pre-defined orientation of the pointer that we 
are using, then use the result as the ToolCalibrationTransform.

 - David







More information about the IGSTK-Developers mailing list