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

Hui Zhang zhang at isis.imac.georgetown.edu
Fri Dec 2 12:11:11 EST 2005


Hi, David,

I have added some new functions to manually set the calibration matrix:

RequestSetTranslation
RequestSetQuaternion
RequestSetRotationMatrix
RequestSetToolPrinicipalAxis
RequestSetToolPlaneNormal

I am a bit not sure about turning the principal axis and plane normal into 
quaternion. The quaternion means a rotation, not an absolute orientation. 
Tool principalaxis/planenormal defines an absolute orientation. So I set the 
default principalaxis/planenormal to (0,0,1)/(0,1,0), and the quaternion is 
the rotation from the input principalaxis/planenormal to the default one. I 
have commited the recent code to sandbox, please feel free to check out and 
change the code if that mathematic computation is not correct.

Regards,
James

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


> Yes, I think that the igstkReferenceCalibration should be added to the 
> wiki.  I'm interested to see what the interface to the class will look 
> like.
>
> Hui Zhang wrote:
>
>> Hi,
>>
>> This sounds good, I will put these two functions in the Wiki's class 
>> requirement soon. Do we also need add that igstkReferenceCalibration 
>> class in the Wiki? That is a general class to calculate the reference 
>> transform between the object position/orientation to reference 
>> position/orientation, which can also be used for Ziv's proposed routine 
>> to get the rotation?
>> Regards,
>> James
>> ----- Original Message ----- From: "David Gobbi" <dgobbi at atamai.com>
>>
>>>
>>> We will need intuitive methods for setting the orientation, because not 
>>> many people are familiar enough with quaternions.  So there could be two 
>>> methods:
>>>
>>> SetToolPrincipalAxis(vx, vy, vz) -- set a vector that points along the 
>>> tool axis towards the tool top
>>> SetToolFaceNormal(nx, ny, nz) -- set a vector to define a  that "face" 
>>> of the tool, this vector must be perpendicular to the tool axis
>>>
>>> The "tool face" is for when you want to use a pointer as a virtual 
>>> ultrasound probe, it will define the orientation of the plane that you 
>>> want to use as the virtual ultrasound plane.  This is only useful for 
>>> 6DOF tools, not for 5DOF tools.
>>>
>>> These two vectors can be put together to create the quaternion that is 
>>> used as the orientation.  The NDI tool architect software does something 
>>> very similar to this.
>>>
>>> - David
>>>
>>>
>>
>>
>>
>
> 





More information about the IGSTK-Developers mailing list