diff --git a/Plugins/org.mitk.gui.qt.igtexamples/documentation/doxygen/IGTExampleIGT_QT_Tutorial_PluginView.png b/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/IGTExampleIGT_QT_Tutorial_PluginView.png similarity index 100% rename from Plugins/org.mitk.gui.qt.igtexamples/documentation/doxygen/IGTExampleIGT_QT_Tutorial_PluginView.png rename to Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/IGTExampleIGT_QT_Tutorial_PluginView.png diff --git a/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/IGT_TrackingLab_PluginView.png b/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/IGT_TrackingLab_PluginView.png new file mode 100644 index 0000000000..bf0f649303 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/IGT_TrackingLab_PluginView.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 ea52e517f2..ac7a0c5bd9 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTrackingLab.dox +++ b/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTrackingLab.dox @@ -1,67 +1,69 @@ /** -\page org_igttrackinglab IGT Tutorial Step 4: The IGT-TrackingLab +\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. It is a plugin which shows examples usage for many IGT classes and is also an example navigation implemented with IGT. In the following you can learn how to use the plugin by reading this manual together with the source code. Most important code passages are included in this manual. +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/IgtTrackingLab.png,"",2} +\imageMacro{../../resources/icon_igt_tracking_lab.png,"",2} The view looks like this: \imageMacro{IGT_TrackingLab_PluginView.png,"",15.90} -TODO - explain here, what will happen... e.g. register a book, ... +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. +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 6c95608409..eba1dfcd3a 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTutorial.dox +++ b/Plugins/org.mitk.gui.qt.igtexamples/documentation/UserManual/QmitkIGTTutorial.dox @@ -1,90 +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/IGTTutorial.png,"",2} +\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: \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.igtexamples/documentation/doxygen/IGT_TrackingLab_InitialRegistration.PNG b/Plugins/org.mitk.gui.qt.igtexamples/documentation/doxygen/IGT_TrackingLab_InitialRegistration.PNG new file mode 100644 index 0000000000..907507d353 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igtexamples/documentation/doxygen/IGT_TrackingLab_InitialRegistration.PNG differ diff --git a/Plugins/org.mitk.gui.qt.igtexamples/documentation/doxygen/IGT_TrackingLab_PluginView.png b/Plugins/org.mitk.gui.qt.igtexamples/documentation/doxygen/IGT_TrackingLab_PluginView.png deleted file mode 100644 index 42e03a1b76..0000000000 Binary files a/Plugins/org.mitk.gui.qt.igtexamples/documentation/doxygen/IGT_TrackingLab_PluginView.png and /dev/null differ diff --git a/Plugins/org.mitk.gui.qt.igtexamples/files.cmake b/Plugins/org.mitk.gui.qt.igtexamples/files.cmake index 085e0de10c..2e72b5f794 100644 --- a/Plugins/org.mitk.gui.qt.igtexamples/files.cmake +++ b/Plugins/org.mitk.gui.qt.igtexamples/files.cmake @@ -1,62 +1,52 @@ set(SRC_CPP_FILES ) set(INTERNAL_CPP_FILES QmitkIGTTrackingLabView.cpp QmitkIGTTutorialView.cpp OpenIGTLinkExample.cpp OpenIGTLinkProviderExample.cpp OpenIGTLinkPlugin.cpp mitkPluginActivator.cpp ) set(UI_FILES src/internal/QmitkIGTTrackingLabViewControls.ui src/internal/QmitkIGTTutorialViewControls.ui src/internal/OpenIGTLinkProviderExampleControls.ui src/internal/OpenIGTLinkExampleControls.ui src/internal/OpenIGTLinkPluginControls.ui ) set(MOC_H_FILES src/internal/QmitkIGTTrackingLabView.h src/internal/QmitkIGTTutorialView.h src/internal/OpenIGTLinkProviderExample.h src/internal/OpenIGTLinkExample.h src/internal/mitkPluginActivator.h src/internal/OpenIGTLinkPlugin.h ) -set(QRC_FILES - #resources/QmitkIGTTrackingLabView.qrc - #resources/QmitkIGTTutorialView.qrc -) - set(CACHED_RESOURCE_FILES - #resources/IgtTrackingLab.png resources/start_rec.png resources/stop_rec.png - #resources/IGTTutorial.png - #resources/icon.xpm - #resources/example.png - #resources/provider.png resources/icon_igt_simple_example.svg resources/icon_igt_tracking_lab.svg resources/icon_openigtlink_client_example.svg resources/icon_openigtlink_extended_example.svg resources/icon_openigtlink_provider_example.svg plugin.xml ) set(CPP_FILES ) foreach(file ${SRC_CPP_FILES}) set(CPP_FILES ${CPP_FILES} src/${file}) endforeach(file ${SRC_CPP_FILES}) foreach(file ${INTERNAL_CPP_FILES}) set(CPP_FILES ${CPP_FILES} src/internal/${file}) endforeach(file ${INTERNAL_CPP_FILES}) diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/ReadMe_ChangeIcons.txt b/Plugins/org.mitk.gui.qt.igtexamples/resources/ReadMe_ChangeIcons.txt new file mode 100644 index 0000000000..bd75a511b3 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.igtexamples/resources/ReadMe_ChangeIcons.txt @@ -0,0 +1 @@ +If you change icons, please change both - svg and png - as one is needed for the documentation and the other as plugin icon. \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_simple_example.png b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_simple_example.png new file mode 100644 index 0000000000..6d08792e7b Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_simple_example.png differ diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_tracking_lab.png b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_tracking_lab.png new file mode 100644 index 0000000000..cdd3e37d36 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_igt_tracking_lab.png differ diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_client_example.png b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_client_example.png new file mode 100644 index 0000000000..982c00e0d3 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_client_example.png differ diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_extended_example.png b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_extended_example.png new file mode 100644 index 0000000000..b765309de4 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_extended_example.png differ diff --git a/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_provider_example.png b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_provider_example.png new file mode 100644 index 0000000000..7fab1feda6 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igtexamples/resources/icon_openigtlink_provider_example.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTRegistration.dox b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTRegistration.dox new file mode 100644 index 0000000000..13a3509625 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTRegistration.dox @@ -0,0 +1,6 @@ +/** + +\page org_mitk_views_igtregistrationview The IGT Registration view + + +\imageMacro{QmitkIGTTracking_RegistrationView.png,"Icon of the MITK-IGT Tracking Toolbox",2.00} \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_RegistrationView.png b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_RegistrationView.png new file mode 100644 index 0000000000..891a9f4d00 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkIGTTracking_RegistrationView.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTNavigationToolManager.dox b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTNavigationToolManager.dox index 57249fb3c1..5c84813a8f 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTNavigationToolManager.dox +++ b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkMITKIGTNavigationToolManager.dox @@ -1,53 +1,53 @@ /** \page org_mitk_views_igtnavigationtoolmanager The MITK-IGT Navigation Tool Manager -\imageMacro{../resources/iconTrackingToolManager.svg,"Icon of the Navigation Tool Manager",2.00} +\imageMacro{../resources/iconTrackingToolManager.png,"Icon of the Navigation Tool Manager",2.00} \section QmitkMITKIGTNavigationToolManager Introduction This view allows for creating and editing NavigationToolStorages. These storages contains naviagtion tools of a tracking device, can be saved permanently and used later for any other IGT application. \tableofcontents \section QmitkMITKIGTNavigationToolManagerToolOverview Navigation Tools Overview A navigation tool of MITK-IGT represents a tracking tool (e.g. an emt sensor or an optically tracked tool) and it's corresponding data, like it's name and it's surface. A navigation tool is a generalized container for any trackable object in combination with it's additional information. Every navigation tool has different properties which are: Note that not all properties are needed for all types of tools. A tool definition file, for example, is only needed by optical tracking tools (e.g. a .rom file for Polaris or a toolfile for the MicronTracker). A tool associated with the aurora system is alwalys identified by it's serial number. You can also detect Aurora tools automatically with the TrackingToolbox view and edit the automatically detected tool storage later with this view. \section QmitkMITKIGTNavigationToolManagerManagingNavigationToolStorage Managing Navigation Tool Storage In order to create edit a tool storage container, you can select one of the available tool storages listed in the upper part of the UI. The list shows all tool storages which are available throug the micro services concept of MITK. The list also shows the current tool storage of the IGT tracking toolbox view if it is active. In addition to the listed tool storages, you can load new storages from the hard disc which will then appear in the list and might be edited as all other storage by simply selecting it in the list. You may also save a selected tool storage to the hard disc or create a new one. In the lower part of the UI you always see the list of tools of the tool storage which is currently selected in the upper part. Use the buttons "add", "edit" and "delete" to manage the contained navigation tools. If you click "edit" or "delete" the operation is applied on the currently selected tool, as shown in the screenshot below. \imageMacro{QmitkIGTTracking_NavigationToolManagemantStartScreen.png,"Screenshot of the main view of NavigationToolManagent",10.90} \section QmitkMITKIGTNavigationToolManagerAddingEditingNavigationTools Adding / Editing Navigation Tools If you add or edit a navigation tool, an input mask, as shown in the screenshot below, appears. The tool identifier is filled automatically, if you change it, remember that it is unique in the current storage. Also, choose a valid surface for every tool, this is nessesary for correct tool visualization. By default, a cone is displayed. The other information depends on the tracking system type, e.g. choose a tool file for the Polaris or the MicronTracker system and type in a serial number for the Aurora system. Two identical tools with the same serial number are also possible, they are assigned by the order in which they are attached to the device. As long as they also have the same surface as representation, this should not be a problem for most of the use cases. The tool type is additional information which is not needed by the tracking device but might be needed by further IGT applications. The same applies to the tool landmarks which might be defined for a tool. There are two different types of landmarks which are designed as described here: \imageMacro{QmitkIGTTracking_NavigationToolManagementAddTool.png,"Screenshot of add/edit navigation tool screen",9.19} Return to the Tutorial Step: \ref IGTTutorialStepPluginIntroduction */ \ 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 856f44967e..3607db9596 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.svg,"Icon of the MITK-IGT Tracking Toolbox",2.00} +\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 IGTTutorialStepPluginIntroduction. 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: 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 \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 Tutorial Step: \ref IGTTutorialStepPluginIntroduction */ \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkNavigationDataPlayer.dox b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkNavigationDataPlayer.dox index ae116b0cfe..2cad750c6d 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkNavigationDataPlayer.dox +++ b/Plugins/org.mitk.gui.qt.igttracking/documentation/UserManual/QmitkNavigationDataPlayer.dox @@ -1,29 +1,29 @@ /** \page org_mitk_views_navigationdataplayer The NavigationData Player -\imageMacro{../resources/iconTrackingDataPlayer.svg,"Icon of the NavigationData Player",2.00} +\imageMacro{../resources/iconTrackingDataPlayer.png,"Icon of the NavigationData Player",2.00} \tableofcontents \section NavigationDataPlayerOverview The navigation data player plays recorded or artificial navigation data of one ore more tracking tools and visualizes their trajectory. It can also make the data available als a NavigationDataSource to Plugins that require a stream of tracking data, without having to create a tracking device. \imageMacro{QmitkIGTTracking_NavigationDataPlayer.png, "The Navigation Data Player", 7} To use it, select a set of recorded navigation data using the "Open File" button. The Player will show the number of tools and the number of frames in the file. Select the sequential player if you want to play the data with a specified tempo (set the update Interval accordingly). Use the Time-based player to play the data in the speed they were originally acquired in. Tutorial: As part of the IGT tutorial, you might try to replay your recorded data from step \ref org_mitk_views_igttrackingtoolbox. You should see two spheric tools moving within the tracking volume. Note that the tool storage is not included in the navigation data player at the moment, and hence all tools are represented as spheres. Return to the Tutorial Step: \ref IGTTutorialStepPluginIntroduction */ \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/ReadMe_ChangeIcons.txt b/Plugins/org.mitk.gui.qt.igttracking/resources/ReadMe_ChangeIcons.txt new file mode 100644 index 0000000000..bd75a511b3 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.igttracking/resources/ReadMe_ChangeIcons.txt @@ -0,0 +1 @@ +If you change icons, please change both - svg and png - as one is needed for the documentation and the other as plugin icon. \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingDataPlayer.png b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingDataPlayer.png new file mode 100644 index 0000000000..91f7e51af9 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingDataPlayer.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingRegistration.png b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingRegistration.png new file mode 100644 index 0000000000..4a64ec4fee Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingRegistration.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolCalibration.png b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolCalibration.png new file mode 100644 index 0000000000..afcfe72c86 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolCalibration.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolManager.png b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolManager.png new file mode 100644 index 0000000000..ef3041cb19 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolManager.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolbox.png b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolbox.png new file mode 100644 index 0000000000..d78528cf14 Binary files /dev/null and b/Plugins/org.mitk.gui.qt.igttracking/resources/iconTrackingToolbox.png differ diff --git a/Plugins/org.mitk.gui.qt.igttracking/src/internal/IGTFiducialRegistrationControls.ui b/Plugins/org.mitk.gui.qt.igttracking/src/internal/IGTFiducialRegistrationControls.ui index ba66e4f1b6..608bda5390 100644 --- a/Plugins/org.mitk.gui.qt.igttracking/src/internal/IGTFiducialRegistrationControls.ui +++ b/Plugins/org.mitk.gui.qt.igttracking/src/internal/IGTFiducialRegistrationControls.ui @@ -1,185 +1,169 @@ IGTFiducialRegistrationControls 0 0 - 294 - 425 + 392 + 753 0 0 QmitkTemplate 2 2 2 2 - - - 0 + + + Configuration - - - Configuration - - - - - - <html><head/><body><p><span style=" font-weight:600;">Choose Tracking Pointer:</span></p></body></html> - - - - - - - - - - - - Choose Selected - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - <none> - - - - - - - - - Qt::Horizontal - - - - - - - <html><head/><body><p><span style=" font-weight:600;">Choose Image or Surface:</span></p></body></html> - - - - - - - - - - - - Choose Selected - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - <none> - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - Point Based Registration - - - - - - - + + + + + <html><head/><body><p><span style=" font-weight:600;">Choose Tracking Pointer:</span></p></body></html> + + + + + + + + + + + + Choose Selected + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + <none> + + + + + + + + + Qt::Horizontal + + + + + + + <html><head/><body><p><span style=" font-weight:600;">Choose Image or Surface:</span></p></body></html> + + + + + + + + + + + + Choose Selected + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + <none> + + + + + + + + + + + + Point Based Registration + + + + + + QmitkNavigationDataSourceSelectionWidget QTextBrowser
QmitkNavigationDataSourceSelectionWidget.h
QmitkFiducialRegistrationWidget QTextBrowser
QmitkFiducialRegistrationWidget.h
QmitkDataStorageComboBox QComboBox
QmitkDataStorageComboBox.h