[IGSTK-Users] tracking in IGSTK 3

Patrick Cheng cheng at isis.georgetown.edu
Tue Apr 15 14:51:52 EDT 2008


Hi Özgür Güler,

http://public.kitware.com/IGSTKWIKI/index.php/Needle_Biopsy#How_to_connect_the_scene_graph

I have put together a tutorial on how to connect the scene graph in a 
typical image guided surgery using the needle biopsy as an example.

Please take a look at it, see if it will help.

Thank you,

Patrick

Özgür Güler wrote:
> Hallo,
> 
>> 1) What components do you have in your application? (How many tracker 
>> tools,
>>      View, Image spatial object...etc)
> 
> //VIEW
> igstk::FLTKWidget
> igstk::View2D
> igstk::View3D
> //READER 
> igstk::CTImageReader 
> //IMAGE OBJECT
> ImageSpatialObjectType;
> //IMAGE OBJECT REPRESENTATION
> igstk::CTImageSpatialObjectRepresentation            
> //REGISTRATION
> igstk::Landmark3DRegistration 
> //TRACKING
> igstk::SerialCommunication
> igstk::PolarisTracker
> igstk::PolarisTrackerTool
> igstk::TransformObserver
> 
>> 2) How are they connected?  ( a sketch of collaboration diagram between 
>> the components would
>>  be great .)
>> 3) What is the work flow of your application?
> 
>  LIKE THE THE NEEDLE BIOPSY EXAMPLE IGSTK SANDBOX 2.0.1
> 
> I'll go through the relevant parts namely setting transformations and parents
> 
> 1. Read image with the reader
> and get the image through the image observer and set
> 
> m_ImageSpatialObject->RequestSetTransformAndParent( transform, worldReference );
> //worldRerence is a AxesObject and transform an identity transform
> 
> 2. Initialize Views and set e.g.
> 
> DisplayAxial->RequestSetTransformAndParent( transform, worldReference );
> 
> 3. Get landmarks from image
> 
> 4. Initialize Tracker, TrackerTool and drfTool and set
> ...
> drfTool->RequestAttachToTracker( m_Tracker );
> m_Tracker->RequestSetReferenceTool( drfTool );
> ...
> m_Tracker->RequestStartTracking();
> ...
> 
> 5. Get landmarks from patient with tracker
> ...
> m_Tracker->RequestUpdateStatus();
> ...
> trackerTool->RequestGetTransformToParent();
> 
> 6. Compute Registration
> ...
> m_Tracker->RequestStopTracking();
> ...
> m_LandmarkRegistration->RequestComputeTransform();
> m_LandmarkRegistration->RequestGetRMSError();
> m_LandmarkRegistration->RequestGetTransformFromTrackerToImage();
> ...through event
> drfTool->RequestSetTransformAndParent(m_ImageToTrackerTransform, worldReference);
> 
> 7. Start Tracking
> ...
> m_Needle->RequestSetTransformAndParent( transform, trackerTool );
> m_NeedleTip->RequestSetTransformAndParent( transform, trackerTool );
> ...
> m_Tracker->RequestStartTracking();
> m_PulseGenerator->RequestStart();  
> 
> 8. Tracking
> 
> ... I'm not sure which one to use
> trackerTool->RequestComputeTransformTo( worldReference );
> //trackerTool->RequestGetTransformToParent();
> //trackerTool->RequestComputeTransformTo( drfTool );
> //trackerTool->RequestComputeTransformTo( m_Tracker ); 
>  
> thx yet
> 
> özgür 
> 
> 
> 
> 
>>> Hello,
>>>
>>> I've written an igstk app with release 2. It works well.
>>> Now I'll port this app to igstk release 3.
>>> I'm using a PolarisTracker (1.Generation (driver written by me)) with a
>> referenceTool. Tracking works well.
>>> In detail I've problems to set correctly the 
>>> ->RequestSetTransformAndParent(..,..)
>>> functions for the Objects Tracker, TrackerTool, ReferenceTool,
>> ImageSpatialObject.
>>>
>>>
>>> I tried many constellations e.g. one of them
>>> ...
>>> m_ImageSpatialObject->RequestSetTransformAndParent(transform,
>> worldReference);
>>> ...
>>> //tracker init: transform = identity
>>> referenceTool->RequestSetTransformAndParent(transform, worldReference);
>>> ...
>>> //landmark registration: transform = computed from registration
>>> referenceTool->RequestSetTransformAndParent(transform, worldReference);
>>> ...
>>> //Tracking
>>> trackerTool->RequestComputeTransformTo( worldReference ); 
>>>
>>> this constellation didn't work.
>>> Is there an error in my reasoning? 
>>> How should I set up the associations between the transforms and the
>> object parents?
>>> please help.
>>>
>>> best regards
>>>
>>> özgür güler
>>> ENT clinic
>>> Innsbruck Austria
>>>
>>>
>>>
>>>  
>>>
>>
>> -- 
>> ==========================================================
>> Andinet A. Enquobahrie, PhD
>> R&D Engineer
>> Kitware Inc.
>>
>> 28 Corporate Drive
>> Clifton Park, NY 12065-8662
>> Phone: 518-371-3971 x124
>> www.kitware.com
>>
> 



More information about the IGSTK-Users mailing list