[IGSTK-Users] Tool positions or Tools Translations?

Eric L. B. eric_lb at hotmail.com
Thu Jun 25 16:59:23 EDT 2009


 

 

Hi all.

 

I'm working in a project where I need to know the positions in 3D of each marker (reflective sphere) of a passive tool.

I have some problems with this.

The tool is intented to be referenced to a static tool (the reference tool provided with the tracking system).

The problem is that when I try to get the transformations of each marker, there is no consistent data.

 

My design tool have three spheres(ellipses), like this:

/////////////Desing Tool03

translation[0] = 0;

translation[1] = 0;

translation[2] = 0;

rotation.Set( 0.0, 0.0, 0.0, 1.0 );

transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds );

Tool03Ellip1->RequestSetTransformAndParent( transform, Tool03 );

 

translation[0] = 50;

transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds );

Tool03Ellip2->RequestSetTransformAndParent( transform, Tool03 );

 

translation[0] = 32.07;

translation[1] = 58.83;

transform.SetTranslationAndRotation(translation, rotation, errorValue, validityTimeInMilliseconds );

Tool03Ellip3->RequestSetTransformAndParent( transform, Tool03 );

 

 

I set some observers to each ellipse:

T3Ellip1Observer = ObserverType::New();

T3Ellip1Observer->ObserveTransformEventsFrom( Tool03Ellip1 );

T3Ellip2Observer = ObserverType::New();

T3Ellip2Observer->ObserveTransformEventsFrom( Tool03Ellip2 );

T3Ellip3Observer = ObserverType::New();

T3Ellip3Observer->ObserveTransformEventsFrom( Tool03Ellip3 );

 

And I get the transformations:

TT3Ellip01=T3Ellip1Observer->GetTransform();

translation=TT3Ellip01.GetTranslation();

T3RotE1=TT3Ellip01.GetRotation(); 

///...  for  each ellipse

 

With the transformations data I try to apply the rotation and translation to each position marker taked from origin of coordinate system (reference tool), but the positions that i get seems to be incorrect.

Then, I decided to take directly the translation as the position, with no rotation, and the result were better, but with positions not aligned to the coordinated system (rotated). If i apply the rotation to each marker, the result is again bad.

 

I undesrtand that to get the transformations referenced to the static tool need to apply:

T= (Mreg) (Tref^-1) (Traw) (Mcal)     ... (IGSTK The book for release 2.0, Chap 8.2.5 Coordinate Transformations, pp 105)

In this case, there is no Mreg and Mcal. When i try to get the referenced transformation of the ellispes, i use this code:

TAbs01=TAbs01.TransformCompose(TRef.GetInverse(),TT3Ellip01);  //...  for  each ellipse

But the data is incorrect.

 

I plot the data with matlab to emulate the movement of the tool, thats why i can see the incorrect transformations.

Considering all this long process :s my question is How can i get the three marker positions??? What i need to do with the rotations???

There is something that i'm doing bad?? Some idea????

Please, I hope someone can help me.

 

Thanks.

 

 

Eric LB

 

 

 

_________________________________________________________________
Actualiza y gana con Windows Live
http://www.actualizatuperfil.com.mx/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/igstk-users/attachments/20090625/b9580ba7/attachment-0001.html>


More information about the IGSTK-Users mailing list