diff --git a/Modules/IGT/Documentation/doxygen/IGTTutorialOverview.dox b/Modules/IGT/Documentation/doxygen/IGTTutorialOverview.dox index fefcffc36e..8221eaf76f 100644 --- a/Modules/IGT/Documentation/doxygen/IGTTutorialOverview.dox +++ b/Modules/IGT/Documentation/doxygen/IGTTutorialOverview.dox @@ -1,49 +1,50 @@ /** \page IGTTutorialOverview IGT Tutorial Overview The IGT tutorial consists of several steps which will introduce the you to the basic concepts and functions of IGT. The overview of all pages can be found here: \ref NavigationGeneralModulePage. \section TrackingPlugins Tracking Plugins Step 1 - Introduction to the Tracking Plugins \n During the introduction, you will get familiar with the usage of the tracking plugins. We will guide you step by step through the most important functions of our plugins. \li \ref org_mitk_gui_qt_igttracking \section IGTCode The IGT code Step 2 - IGT filter pipeline \n We will now start with a look at simple code examples to construct a simple navigation pipeline. Via a virtual tracking device, tracking data is written to the console. Everything is organized in a classic c++ main method. \li \subpage IGTTutorialStepFilterPipeline Step 3 - Visualization Filter and MITK Concepts \n This step adds a broader view of basic MITK concepts. The objects are now added to an mitkDataStorage and rendered in an mitkRenderWindow. For visualization the NavigationDataObjectVisualizationFilter is used. Everything is organized in a classic c++ main method. \li \subpage IGTTutorialStepVisualization \section IGTWorkbench IGT within the MITK workbench Step 4 - Write your own simple Tracking Plugin \n This step shows how to seamlessly integrate an IGT plugin (the QmitkIGTTutorialView) into the mitkWorkbench. The plugin uses the virtual tracking device to generate data and renders the result in the mitkWorkbench. It is also possible to connect an NDI tracking device and use real hardware to track. The code is written in the QmitkView manner. \li \subpage IGTTutorialStepSimplePlugin Step 5 - Example for a tracking application: The IGT Tracking Lab Plugin \n +This step includes a small example of a tracking application. You will record points to track and register a book and update its position. It will show you a demo workflow for possible applications. \li \subpage IGTTutorialStepTrackingLab Step 6 - Advanced usage of IGT Modules \n In this step, we will have a deeper look into the plugins which we already saw within the first introduction step. Here, we point out some details in the code, which might be useful for you to reuse them within your own projects. \li \subpage IGTTutorialStepAdvanced Step 7 - OpenIGTLink Tutorial \n This step gives examples how to use OpenIGTLink in MITK. The first two simple examples include code to open a OpenIGTLink client and server for tracking data. The third, more advanced example shows you how to stream tracking and ultrasound data simultaneously from an external server. \li \subpage IGTTutorialStepOpenIGTLink \section FurtherFunctionality Further IGT functionality If you want to implement your own tracking device, this page might be helpful: \li \subpage IGTHowToImplementATrackingDevice */ \ No newline at end of file diff --git a/Modules/IGT/Documentation/doxygen/IGTTutorialStep3.dox b/Modules/IGT/Documentation/doxygen/IGTTutorialStep3.dox index 2b63a1eb1e..5ff38de0f7 100644 --- a/Modules/IGT/Documentation/doxygen/IGTTutorialStep3.dox +++ b/Modules/IGT/Documentation/doxygen/IGTTutorialStep3.dox @@ -1,17 +1,17 @@ /** \page IGTTutorialStepSimplePlugin IGT QT Tutorial This tutorial shows how to integrate IGT in your plugin. You can enable this example in cmake with the option: MITK_BUILD_org.mitk.gui.qt.igtexamples. \imageMacro{IGTTutorialStep3_cmake.png,"",15.90} The code of the plugin/view is located in: -MITK-Source/Plugins/org.mitk.gui.qt.igtexamples/src/internal/QmitkIGTTutorialView +MITK-Source/Plugins/org.mitk.gui.qt.igtexamples/src/internal/QmitkIGTTutorialView . The plugin will automatically be lodaed in the mitkWorkbench. Please read the manual page on how to use this example: \ref org_imageguidedtherapytutorial \ref Return to the \ref IGTTutorialOverview "[IGT Tutorial Overview]" */ \ No newline at end of file diff --git a/Modules/IGT/Documentation/doxygen/IGTTutorialStep4.dox b/Modules/IGT/Documentation/doxygen/IGTTutorialStep4.dox index 4953500b3e..68b9bfc2a9 100644 --- a/Modules/IGT/Documentation/doxygen/IGTTutorialStep4.dox +++ b/Modules/IGT/Documentation/doxygen/IGTTutorialStep4.dox @@ -1,17 +1,17 @@ /** \page IGTTutorialStepTrackingLab Tracking Lab The tracking lab is an IGT plugin containing various functions. You can enable this example in CMake with the option: MITK_BUILD_org.mitk.gui.qt.igtexamples. \imageMacro{IGTTutorialStep3_cmake.png,"",15.90} The code of the plugin/view is located in: -MITK-Source/Plugins/org.mitk.gui.qt.igtexamples/src/internal/QmitkIGTTrackingLabView +MITK-Source/Plugins/org.mitk.gui.qt.igtexamples/src/internal/QmitkIGTTrackingLabView . The plugin will automatically be lodaed in the mitkWorkbench. Please read the manual page on how to use this example: \ref org_igttrackinglab \ref Return to the \ref IGTTutorialOverview "[IGT Tutorial Overview]" */ \ No newline at end of file diff --git a/Modules/IGT/Documentation/doxygen/IGTTutorialStep5.dox b/Modules/IGT/Documentation/doxygen/IGTTutorialStep5.dox index f1eaecbfa4..b3d6eff801 100644 --- a/Modules/IGT/Documentation/doxygen/IGTTutorialStep5.dox +++ b/Modules/IGT/Documentation/doxygen/IGTTutorialStep5.dox @@ -1,68 +1,72 @@ /** \page IGTTutorialStepAdvanced A deeper look into the IGT Plugins We already know the three views of the IGT tracking plugin from the first tutorial step (\ref org_mitk_gui_qt_igttracking): \ref org_mitk_views_igttrackingtoolbox , \ref org_mitk_views_igtnavigationtoolmanager and \ref org_mitk_views_navigationdataplayer . While the first tutorial step only dealt with the usage of these views, we now want to have a deeper look at some parts of the code. -Please note, that a lot of the IGT functionality is available as a widget. So if you need some part of it for your own plugin, you might just want to include the widget. This is for example done for the QmitkNavigationToolCreationWidget, which is used in the \ref org_mitk_views_igttrackingtoolbox view as well as in the \ref org_mitk_views_igtnavigationtoolmanager view. +\section Widgets IGT Widgets + +A lot of the IGT functionality is available as a widget. So if you need some part of it for your own plugin, you might just want to include the widget. This is for example done for the QmitkNavigationToolCreationWidget, which is used in the \ref org_mitk_views_igttrackingtoolbox view as well as in the \ref org_mitk_views_igtnavigationtoolmanager view. + +\imageMacro{IGTTutorialStep5_Widgets.png,"",15.90} \section DataAccess Data access The fist important question is, how to get the tools you want to use for your application. The most simple way is using the \ref org_mitk_views_igtnavigationtoolmanager to load, create or edit the tools and access it via the NavigationToolStorage. It's provided by a microservice and you can access it e.g. via the module context (make sure, your module depends on IGT): us::ModuleContext* context = us::GetModuleContext(); std::vector > refs = context->GetServiceReferences(); m_ToolStorage = context->GetService(refs.front()); Then, simply access the tools by - m_ToolStorage->->GetTool(); + m_ToolStorage->GetTool(); There are also many different functions available, e.g. providing the number of available tools or the name of the current tracking device. Just have a look at the documentation of the mitk::NavigationToolStorage if you are interested in it. \section AutoLoad Autoload all parameters from last session To increase the usability of the application, the tracking toolbox restores all parameters from the last session. Therefore, we will use the following code to save all parameters. It is also used in the specific tracking device widgets, but we will just have a look at one example, restoring some parameters like the Show-Tracking-Volume-Checkbox, the filename of the autosave path of the tool storage or the index of the tracking volume. To store the settings, the following code is used: \snippet QmitkMITKIGTTrackingToolboxView.cpp StoreUISettings We will reload it with \snippet QmitkMITKIGTTrackingToolboxView.cpp LoadUISettings \section LoadToolStorage Load Tool Storage This code will load a previously stored or autosaved tool storage: \snippet QmitkMITKIGTTrackingToolboxView.cpp LoadToolStorage \section ThreadedTracking Threaded Tracking Usually, the tracking is done in a separate thread in order to still allow parallel usage of the workbench. If we track the devices in the same thread, the workbench might freeze. That's why we use thread workers \snippet QmitkMITKIGTTrackingToolboxView.cpp Thread 1 ...which are connected to functions \snippet QmitkMITKIGTTrackingToolboxView.cpp Thread 3 The thread will be startet, if we connect a tracking device by pushing the connect button or start tracking etc: \snippet QmitkMITKIGTTrackingToolboxView.cpp Thread 4 ...and finished afterwards: \snippet QmitkMITKIGTTrackingToolboxView.cpp Thread 5 You can access the data from the worker thread if needed: \snippet QmitkMITKIGTTrackingToolboxView.cpp Thread 6 Which of the functions is finally executed will be chosen in the ThreadFunc: \snippet QmitkMITKIGTTrackingToolboxView.cpp Thread 7 To deconstruct the workers, we first terminate the threads and then delete them \snippet QmitkMITKIGTTrackingToolboxView.cpp Thread 2 \ref Return to the \ref IGTTutorialOverview "[IGT Tutorial Overview]" */ \ No newline at end of file diff --git a/Modules/IGT/Documentation/doxygen/IGTTutorialStep5_Widgets.png b/Modules/IGT/Documentation/doxygen/IGTTutorialStep5_Widgets.png new file mode 100644 index 0000000000..defb17267b Binary files /dev/null and b/Modules/IGT/Documentation/doxygen/IGTTutorialStep5_Widgets.png differ diff --git a/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTrackingLab.dox b/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTrackingLab.dox index ac7a0c5bd9..2c2a1dc362 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTrackingLab.dox +++ b/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTrackingLab.dox @@ -1,69 +1,68 @@ /** \page org_igttrackinglab IGT Tutorial Step 5: The IGT-TrackingLab Available sections: - \ref QmitkIGTTrackingLabUsersManualOverview - \ref QmitkIGTTrackingLabUsersManualPrel - \ref QmitkIGTTrackingLabUsersManualConf - \ref QmitkIGTTrackingLabUsersManualIntialReg - \ref QmitkIGTTrackingLabUsersManualPermReg - \ref QmitkIGTTrackingLabUsersManualPtSetRec - \ref QmitkIGTTrackingLabUsersManualCamView \section QmitkIGTTrackingLabUsersManualOverview Introduction The IGT-TrackingLab is the last step of the IGT tutorial. In the following you can learn how to use the plugin by reading this manual. IGT-TrackingLab shows example usage for many IGT classes and is also an example navigation implemented with IGT. The symbol of the Tracking Lab View is the following: \imageMacro{../../resources/icon_igt_tracking_lab.png,"",2} The view looks like this: \imageMacro{IGT_TrackingLab_PluginView.png,"",15.90} With this tutorial you will register a book using a tracking device of your choice and the MITK's book surface file. The registration will enable you to move the book in the real world and observe its movement in the MITK display. It also allows you to record PointSets or use the CameraView which simulates a Camera at the tip of your pointer. \section QmitkIGTTrackingLabUsersManualPrel Preliminaries First connect your tracking device to your PC. Then start the MITK Workbench and configure your tracking device using the \ref org_mitk_views_igttrackingtoolbox "Tracking Toolbox View". -TODO - here should be an option to use previously recorded data. \section QmitkIGTTrackingLabUsersManualConf Configuration Select the desired Navigation Data Source. Now it's time to define which tool shall be used as object marker and which tool shall be used as pointer. Next load the Book surface provided with the example data (e.g. book.stl from the MITK-Data repository which comes with every superbuild or may also be checked out separately) into MITK. Fixate the object marker on a real book of your choice. Now we need to tell MITK that the object marker has been fixated on a physical object. To do this, select the Book as surface in the Object Selection submenu as you can see in the screenshot above. \section QmitkIGTTrackingLabUsersManualIntialReg Initial Registration Now we need to register the object marker to the surface it's fixed upon, in our case the book. To do this, first press the initial registration button. For MITK to be able to do this registration, we need to 1. Select landmarks on the virtual object (e.g. the corners of the book) Press the plus button in the Image fiducials column. Shift + click on the corners on the book in the MITK Display. 2. Point to the corresponding landmarks in the real world using the pointer. Now press the plus button in the Real world fiducials column and point to the corners on the real book. Press Add current instrument position whenever you targeted a corner to tell MITK this is the desired landmark. Make sure you select the "real" edges in the same order as the edges in the image. \imageMacro{IGT_TrackingLab_InitialRegistration.png,"Here the landmarks of the virtual object are already set",15.90} Press Register to finalize the initial registration. Now the object marker is registered onto the book. You can see this in the MITK image. If needed the FRE is shown in the widget. \section QmitkIGTTrackingLabUsersManualPermReg Permanent Registration Now everything is set up and registered. We can thus activate permanent registration to continuously track the object, the object marker and the pointer. For this, simply press the Permanent Registration button and select Activate permanent registration. You can now move the book in the real world and see the same movement in the MITK Display. A nice test to see if everything was correctly registered is to target the corners of the book with the pointer and check if the correct corners are pointed to in the MITK Display. \section QmitkIGTTrackingLabUsersManualPtSetRec PointSet Recording A user might now want to track a tool's trajectory. For this, the PointSet Recording was created. First click on PointSet Recording. Now select your tracking source and the tool whose trajectory shall be recorded. Activate the Point Set Recording checkbox. In the MITK Display little green points will now be drawn for every measured position. Deactivate the checkbox to stop recording. The trajectory is saved in the PointSet Recorded Points visible in the Data Manager. \section QmitkIGTTrackingLabUsersManualCamView Camera View Another possible tracking application is the Camera View. Here, a virtual camera is placed at the pointers tip and its images are shown in the MITK Display. Select Camera View and as usual the Tracking Source and the tool you want to place the virtual camera on. Activate the "Activate Needle View" checkbox and move the pointer around the book. You can now see the book from the pointers perspective. You may need to adjust the Needle View Direction and the View Up Vector. This is always relative to your tools coordinate center origin. An example of the NDI pointer tool coordinate system is shown below: \imageMacro{QmitkIGTExamples_Tool.png,"The coordinate system of the NDI pointing tool",16.00} In the above case, the camera should look in inverse z-direction, and the view up vector should probably be set to positive x. Note this is just an example and may be different depending on your pointer. \ref Return to the \ref IGTTutorialOverview "[IGT Tutorial Overview]" */ \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTutorial.dox b/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTutorial.dox index eba1dfcd3a..d6f0f59d15 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTutorial.dox +++ b/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTutorial.dox @@ -1,94 +1,94 @@ /** \page org_imageguidedtherapytutorial The MITK-IGT Tutorial View This view is not meant as an end-user module. It contains tutorial program code that explains how to use the MITK-IGT component. It contains only two buttons. The "Start image guided therapy" button will create a virtual tracking device and a virtual tool. It will move the tool around on random paths in a tracking volume of 200x200x200 mm. The tool is visualized with a cone. If you do not see a cone moving around, you will need to initialize the rendering views correctly. Use the DataManager view to perform a global reinit. The symbol of this view is the following: \imageMacro{../../resources/icon_igt_simple_example.png,"",2} and the whole view looks like this: \imageMacro{IGTExampleIGT_QT_Tutorial_PluginView.png,"",2} In this tutorial we connect to the NDI Polaris tracking system (or alternatively use a virtual tracking device) and we will show the movement of a tool as cone in the StdMultiWidget editor. -First of all, you will have to add an IGT dependency to your cmake list. FOr this example, MitkIGTUI would be sufficient, but as the plugin contains several views, we have additional OpenIGTLink and US dependencies: +First of all, you will have to add an IGT dependency to your cmake list. For this example, MitkIGTUI would be sufficient, but as the plugin contains several views, we have additional OpenIGTLink and US dependencies: \code{.cpp} project(org_mitk_gui_qt_igtexamples) mitk_create_plugin( EXPORT_DIRECTIVE IGTEXAMPLES_EXPORT EXPORTED_INCLUDE_SUFFIXES src MODULE_DEPENDS MitkQtWidgetsExt MitkIGT MitkIGTUI MitkOpenIGTLink MitkOpenIGTLinkUI MitkUS ) \endcode More information on how to create your own plugin can be found here: \ref NewPluginPage When clicking the start button, a cone should move in the 3D view and stop after clicking the stop button. The view has several fuctions. Most of them deal with the basic functionality with the plugin (e.g. CreateQTPartControl or CreateConnections). For a deeper understanding, you might have a look at the files QmitkIGTTutorialView.cpp and QmitkIGTTutorialView.h For our IGT functionality, the following functions are important: \li OnStartIGT: Starts the navigation pipeline \li OnStopIGT: Disconnect the pipeline \li OnTimer: Updates the view Let's now have a deeper look at these functions. \section OnStartIGT OnStartIGT \snippet ../../src/internal/QmitkIGTTutorialView.cpp OnStart 1 We first check in a try environment, if we should use an NDI tracking device or a virtual device. Let's start with NDI, we hardcode the parameters here and give out a warning. In your propper application, the parameters should be set via the gui aswell (see \ref org_mitk_views_igttrackingtoolbox ), but for simplicity, we just set hardcoded parameters here. If you want to try it with your own NDI device, you need to adapt these parameters here in the code: \snippet ../../src/internal/QmitkIGTTutorialView.cpp OnStart 2 The tracking device has to be set to a source. For more information on the tracking pipeline, please have a look at the \ref IGTTutorialStepFilterPipeline. \snippet QmitkIGTTutorialView.cpp OnStart 3 Alternatively, we can setup a virtual tracking device. We create this device, set the bounds, add a tool and connect it to the source: \snippet QmitkIGTTutorialView.cpp OnStart 4 Now we need to connect the tracking system \snippet QmitkIGTTutorialView.cpp OnStart 5 For the visualisation, we need an object. Here, we create a red cone \snippet QmitkIGTTutorialView.cpp OnStart 6 The visualization filter will actually render the cone \snippet QmitkIGTTutorialView.cpp OnStart 7 For a continuous display, we need to call update, here we decide to do it every 100 ms using a timer. \snippet QmitkIGTTutorialView.cpp OnStart 8 Disable the selection of tracking devices during tracking: \snippet QmitkIGTTutorialView.cpp OnStart 8a For propper coding, you should always catch the exceptions: \snippet QmitkIGTTutorialView.cpp OnStart 9 \section OnTimer OnTimer Each time, the timer is updated, the following code is executed: \snippet QmitkIGTTutorialView.cpp OnTimer \section OnStopIGT OnStopIGT This function will stop the pipeline and clean up everything: \snippet QmitkIGTTutorialView.cpp OnStop You now have a very simple plugin, which creates an own tracking device and starts or stops tracking. Of course, for your more advanced project, you could implement a new tracking device to be available in every plugin (see \ref IGTHowToImplementATrackingDevice) or use already implemented tracking devices via the tracking toolbox and/or microservices. This small example should just show you the most simple way to start tracking. \ref Return to the \ref IGTTutorialOverview "[IGT Tutorial Overview]" */ \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking.dox b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking.dox index bf5a90db7c..e94957da24 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking.dox +++ b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking.dox @@ -1,20 +1,20 @@ /** \page org_mitk_gui_qt_igttracking The IGT Tracking Plugin This plugin offers basic tracking functionalities. This includes connecting to a tracking system, logging and recording of tracking data, managing tracking tools and playing recorded tracking data. The plugin includes different views, which are described on different pages in detail. As part of the tutorial, it is recommended to get familiar with each of the following views as they lead you through the main functionality of the IGT plugin. Please read the following pages to get familiar with them:
  • \subpage org_mitk_views_igttrackingtoolbox : Allows for connecting a tracking system and logging/recording the tracked data.
  • \subpage org_mitk_views_igtnavigationtoolmanager : This view offers functionality to manage tool storages. Each tool storage holds a preconfigured tool collection. Once saved you can load a tool storage in the Tracking Toolbox and don't need to add every tool seperately.
  • \subpage org_mitk_views_navigationdataplayer : Plays navigation data which was recorded with the Tracking Toolbox for example. -
  • \subpage org_mitk_views_calibrationtoolmanager Calibration Tool Manager. +
  • \subpage org_mitk_views_calibrationtoolmanager Calibration Tool Manager. This view offers functionality to calibrate navigation tools.
  • \subpage org_mitk_views_igtregistrationview : The IGTFiducialRegistration view allows the recording of real world landmarks and corresponding landmarks on a virtual object.
\ref Return to the \ref TrackingPlugins "[IGT Tutorial Overview]" */ \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_ToolCalibration_Manual_After.png b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_ToolCalibration_Manual_After.png new file mode 100644 index 0000000000..e5ebfa9f18 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_ToolCalibration_Manual_After.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_ToolCalibration_Manual_Before.png b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_ToolCalibration_Manual_Before.png new file mode 100644 index 0000000000..bf66621a22 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_ToolCalibration_Manual_Before.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_ToolCalibration_Manual_EditingWindow.png b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_ToolCalibration_Manual_EditingWindow.png new file mode 100644 index 0000000000..910c14f389 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_ToolCalibration_Manual_EditingWindow.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTNavigationToolCalibration.dox b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTNavigationToolCalibration.dox index e27ddad54e..8681cf5ff9 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTNavigationToolCalibration.dox +++ b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTNavigationToolCalibration.dox @@ -1,33 +1,53 @@ /** \page org_mitk_views_calibrationtoolmanager The MITK-IGT Navigation Tool Calibration -\imageMacro{../resources/iconTrackingToolCalibration.svg,"Icon of the MITK-IGT Tracking Toolbox",2.00} +\imageMacro{../resources/iconTrackingToolCalibration.png,"Icon of the MITK-IGT Tracking Toolbox",2.00} \section QmitkMITKIGTNavigationToolCalibrationIntroduction Introduction This view allows the calibration of navigation tools. The calibrated tools can be saved permanently and later be used for any other IGT application. \section QmitkMITKIGTNavigationToolCalibrationPrerequisities Prerequisites -In the IGT Tracking Toolbox configure your tracking device with at least two tools. The tool you wish to calibrate and one tool used as a pointer during the calibration process. For details on how to configure your tracking device and your tools have a look at \ref org_mitk_views_igttrackingtoolbox +In the IGT Tracking Toolbox configure your tracking device with at least two tools. The tool you wish to calibrate and one tool used as a pointer during the calibration process. For details on how to configure your tracking device and your tools have a look at \ref org_mitk_views_igttrackingtoolbox . After you configured your device and your tools connect your device and start tracking. Now switch to the IGT Navigation Tool Calibration for the calibration process. \section QmitkMITKIGTNavigationToolCalibrationInitialization Initialization On the tab Initialization choose the tracking device you configured in the prevois step by clicking on it in the box "Available Navigation Data Sources". Then in the box "Tools" the tools you configured for this device should appear. Click on the tool that needs to be calibrated and then on the button "Use as Tool to Calibrate". On top of the view under the headline "Tool To calibrate" you now see the tool information for the chosen tool. For the tool used as a pointer do the same. Click on it, then click on the button "Use as Calibration Pointer" and on top of the view under the headline "Calibration pointer you should see the tool information for the pointer tool. -\imageMacro{QmitkIGTTracking_ToolCalibration_Initialization.png,"MITK Screenshot with the initialized tools for calibration",16.00} +\imageMacro{QmitkIGTTracking_ToolCalibration_Initialization.png,"MITK Screenshot with the initialized tools for calibration",5.00} \section QmitkMITKIGTNavigationToolCalibrationToolTipCalibration Tool Tip Calibration -Onto the next step +After you finished the initialization of your tracking device you can proceed on to the tab Tool Tip Calibration to calibrate your tool. +For the Tool Tip Calibration you have four different options: + +
    +
  • Manual: Enter the known Translation and Rotation for the Tool Tip manually +
  • Single Reference Tool: Use a calibrated tool as a reference to calibrate the non-calibrated tool +
  • Multiple Tools Reference: Not implemented yet +
  • Pivoting: Calibrate the tool by pivoting it around its tip. (Not fully implemented yet) +
+ +\subsection QmitkMITKIGTNavigationToolCalibrationManual Manual Tool Tip Calibration + +Use this method to calibrate a navigation tool, of which you already know the translation and rotation that determine the tool tip calibration. +Click on Start Edit Tooltip and in the new window you can enter the values for the translation and the rotation. Either by using the sliders or by entering the values into the boxes. +\imageMacro{QmitkIGTTracking_ToolCalibration_Manual_EditingWindow.png,"MITK Screenshot of the window for manual tool calibration",5.00} +After you entered the values you can click "Use Manipulated ToolTip" to perform the Calibration on the Tool to calibrate. The box "Current Tool Tip Orientation" will show you the results. It will list the resulting values of the Quaternion, the Euler Angles and the Matrix. To save the result permanently just click "Save Calibrated Navigation Tool" and you can save the calibrated tool as an IGTTool for later use with your tracking device in a navigation application. +If you are not satisfied with the results you can click "Start Edit Tooltip" again and either change the values for the rotation and translation again or just reset everything by clicking on "Reset to Identity". To write the new values or reseted values into the tool just click "Use Manipulated Tool Tip" again. Now you can save your relust just as described above. + + + + Return to the overview of the IGT Tracking Plugin views: \ref org_mitk_gui_qt_igttracking */ \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTTrackingToolbox.dox b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTTrackingToolbox.dox index 1c12deb934..45b0d224b2 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTTrackingToolbox.dox +++ b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTTrackingToolbox.dox @@ -1,93 +1,93 @@ /** \page org_mitk_views_igttrackingtoolbox The MITK-IGT Tracking Toolbox \imageMacro{../resources/iconTrackingToolbox.png,"Icon of the MITK-IGT Tracking Toolbox",2.00} \tableofcontents \section QmitkMITKIGTTrackingToolboxIntroduction Introduction The MITK-IGT Tracking Toolbox is a view which allows you to connect to a tracking device, track and visualize navigation tools and write the tracked data into a log file. This page gives an overview of the view and is at the same time part of the IGT tutorial step \ref org_mitk_gui_qt_igttracking. All parts containing instructions for the tutorial begin with the bold printed label Tutorial. \imageMacro{QmitkIGTTracking_ScreenshotMitk.png,"MITK Screenshot with the TrackingToolbox activated",16.00} \section QmitkMITKIGTTrackingToolboxWorkflow General workflow Introduction Currently the devices Polaris, Aurora (both Northern Digital Inc. (NDI); Waterloo, Ontario, Canada), MicronTracker (Claron Technology, Inc.; Toronto, Ontario, Canada) and Optitrack (NaturalPoint) are supported (see Hardware Tracking Device Support). Different tracking hardware can be used via OpenIGTLink connections (see \ref IGTTutorialStepOpenIGTLink "Open IGT Link tutorial" ). For this Tracking Toolbox tutorial, we will use a virtual tracking device, which allows you to use simulated tracking data. This is very helpful if you want to test or implement some tracking application and don't have the hardware always available. A general Workflow with the Tracking Toolbox may be:
  • Configuration of a tracking device
  • Adding or loading a toolfile which holds tool definitions
  • Start tracking
  • Logging tracked data
Tutorial: In the following sections, we will get familiar with each of these points using the Virtual Tracking Device. \section QmitkMITKIGTTrackingToolboxConnecting Tracking Device Configuration The tracking device can be specified in the tracking device configuration section located in the upper area of the tracking tab. As shown in the screenshot below, you choose your tracking device in the drop down menu. If you use a real tracking system, you might need to set some parameters like the serial port for Aurora or Polaris or the host name for your OpenIGTLink connection. Most implemented tracking device include an option to test your conection. Therefore you just need to press the button "test connection". The results are displayed in the small black box on the right. Tutorial: For a first introduction, please select the virtual tracking device in the drop-down-menu. You should see an option to add some jittering to the simulated data. \imageMacro{QmitkIGTTracking_ConfigurationWidget.png,"Tracking Device Configuration",8.55} \section Tracking Tools -For tracking, you need information about your tools. You can either add single tools, load previously created tool storages or for some devices auto-detect all available tools. The best way to edit tools after creation/loading is \ref org_mitk_views_igtnavigationtoolmanager view. Creation of new tools or loading of existing tool storages can be done within the Tracking Tool Widget +For tracking, you need information about your tools. You can either add single tools, load previously created tool storages or for some devices auto-detect all available tools. The best way to edit tools after creation/loading is \ref org_mitk_views_igtnavigationtoolmanager view. Creation of new tools or loading of existing tool storages can be done within the Tracking Tool Widget. \imageMacro{QmitkIGTTracking_NavigationToolManagement_TrackingTools.png, "The tracking tool widget for adding or loading tools.",9.00} All added or loaded tools will then be displayed in grey as shown in the screenshot below. If you start tracking they will become green if the tools were found and red if they were not found inside the tracking volume. \imageMacro{QmitkIGTTracking_TrackingToolsWidget.png,"Added Tracking Tools",9.08} \subsection QmitkMITKIGTTrackingToolboxAddingTools Adding tools The most simple step to begin with is to add new tools with this widget. The same widget is also available within \ref org_mitk_views_igtnavigationtoolmanager view and the single parameters are explained there in more detail. \imageMacro{QmitkIGTTracking_NavigationToolManagementAddTool.png,"Adding a new tool", 9.00} Tutorial: Please click the "Add single tool" button and make sure, that the Virtual Tracker is selected in the drop-down-menu (the tracking device configured in the first step must always match your tools!). You might want to give your tool a new name in the "Basic Information" section and load a surface for visualization in the "Tool Visualization" section (a surface file can be found in your binary folder if you did compile MITK by yourself: MITK-superbuild\MITK-Data\IGT-Data\ClaronTool.stl). If you don't have any surface data, you can just select "use simple cone". Click on "Finished" and repeat this step to add a second tool. \subsection QmitkMITKIGTTrackingToolboxLoadingTools Loading tools To load tools which can be tracked you need a predefined tracking tool storage. You can use the MITK \ref org_mitk_views_igtnavigationtoolmanager view to define a navigation tool storage or to save the tools created within the last step in a toolstorage. Navigation tool storages can be loaded by pressing the button "Load Tools". Please ensure that the tracking device type of the tools matches the chosen tracking device, otherwise you will get an error message if you try to start tracking. \subsection QmitkMITKIGTTrackingToolboxAutoDetection Auto detection of tools (only Aurora) If you use the Aurora system you also have the possibility to automatically detect the connected tools. In this case a tracking tool storage is created by the software. In the Tracking Device Configuration widget, a button "Auto Detection" appears. If you press this button the software connects to the system and automatically detects all connected tools. You will then be asked whether you want to save the detected tools as a tool storage to the hard drive. You might want to do this if you want to use or modify this tool storage later. In the automatically detected tool storage the tools are named AutoDetectedTools1, AutoDetectedTools2, and so on. Small spheres are used as tool surfaces. After autodetection the detected tools are loaded automatically even if you did not save them. \section QmitkMITKIGTTrackingToolboxStartTracking Start/stop tracking To start tracking, you first need to connect to your tracking device ("connect" button). If your tools or tool storage don't match the tracking device or if no connection can be established, this might give an error message here. \imageMacro{QmitkIGTTracking_TrackingControl.png,"Tracking Control to start tracking.", 9.00} If connected succesfully, the start tracking button is enabled. As soon as you clicked this button, the tool information and tools will be highlighted red or green (un-/successful tracking) and in case of successful tracking, it's position will be updated and the tools are visualized in the 3D view of MITK. Note that options may not be changed after connecting the tracking device. You can start, freeze, unfreeze and stop the tracking as long as you are connected. If you want to finish your tracking, please stop an disconnect your tracking device. Tutorial: Please click "connect" and "start tracking". Both tools should move within the tracking volume, the position data should be updated in the tool widget and be highlighted green. You can freeze, unfreeze and stop/restart the tracking as often as you like. When finished, please stop and disconnect. \section QmitkMITKIGTTrackingOptions Options In the options tab you can enable or disable the visualization of the tracking volume and of the tool quaternions. If enabled, the tool quaternions are shown in the tool information. You can also define the update rate of the tracking data. The update rate should not be set higher than the update rate of the tracking system. Other options might be available here depending on the newest developement within MITK-IGT. \imageMacro{QmitkIGTTracking_Options.png,"Recorded logging data.", 9.00} \section QmitkMITKIGTTrackingToolboxLogging Logging features The logging feature of the Tracking Toolbox supports logging in XML or CSV format. If your device is tracking, you are able to log the tracking data by using the logging tab. You first must define a file name. You can then choose whether you want comma seperated (csv) or xml format. Press "Start Logging" to start logging. You can also limit the number of logged frames, which will cause the logging to stop automatically after the given number. \imageMacro{QmitkIGTTracking_LoggingWidget.png,"Tracking options.", 9.00} Tutorial: Please connect and start tracking as you already did in the last step, switch to the logging tab, specify a csv file and start logging for a view seconds. Stop the tracking after a short period of time. You should now find the specified file which should look similar to the following screenshot and contain position data for both tools: \imageMacro{QmitkIGTTracking_LogFile.png,"Recorded logging data.", 9.00} Return to the overview of the IGT Tracking Plugin views: \ref org_mitk_gui_qt_igttracking */ \ No newline at end of file