Direkt zu
Kooperationen

SCoPE

SimTech

GSaME

Baden-Württemberg Stiftung

 

DFG

 

BMBF

twip optical solutions GmbH

 

 
Kontakt

Institut f. Technische Optik
Universität Stuttgart
Pfaffenwaldring 9
70569 Stuttgart
Deutschland

T: +49 (0)711/685-66074
F: +49 (0)711/685-66586

 

itom - an Open Source Measurement, Automation and Evaluation Software Suite

itom is an open source software suite for operating measurement systems, laboratory automation and data evaluation.

 

One main application of itom is the development and operation of sensor and measurement systems for instance in a laboratory environment. Therefore, the software has to be able to communicate with a wide range of different hardware systems, such as cameras or actuators and should provide a diversified and as complete as possible set of evaluation and data processing methods. Additionally, the rapid prototyping of modern measurement and inspection setups requires a system, where parameters or components can easily be changed at runtime, necessitating the availability of an embedded scripting language. Finally, when operating a measurement system, it is also desirable to extend the graphical user interface by system adapted dialogs and windows.

Official itom website

More information about itom and its plugins (including downloads, the sources, documentation, screenshots, presentations...) can be found at the official itom website:


http://itom.bitbucket.io

Main features

When using itom you benefit from the following main features:

  • The embedded Python scripting language (version 3) allows you to use all functionalities that are provided by Python or other freely available packages as Numpy, Scipy or Matplotlib. Additionally, itom is connected to the Python scripting language by the package itom that acts as an interface to the core application as well as all its plugins.

  • For developing scripts, itom provides important functionalities like syntax highlighting, auto completion, debugging possibilities, workspace introspection...

  • The core application of itom with its graphical user interface already gives access to the most important functions such that small setups and experiments can quickly be adjusted and installed.

  • itom benefits from a modular software architecture. Therefore, all external hardware components are provided by external libraries (plugins) that are dynamically loaded at runtime. All itom-plugins are divided into different groups, where each group is defined by a specific interface, allowing communication with the corresponding plugin via itom or specific scriptable commands. One group of plugins provides access to hardware components, such as cameras or actuators. Since their implementation must follow the rules given by specific interfaces, it is guaranteed that the call to any camera or actuator plugin is the same, hence, plugins can be simply changed without adaption to your scripted code. Other plugins contain data processing and analysis algorithms as well as complex user interfaces like additional windows or dialogs. Another group of plugins provides plotting and figure components for showing live images of cameras or visualizing other data structures. One example of enhanced plugin is the project MacroSim, that provides a GUI for a GPU accelerated ray tracing engine.

  • Measurement systems can be extended by specific user interfaces. Therefore, a WYSIWYG design tool allows the creation of personalized user interfaces at runtime without requiring C++ programming experience. Furthermore, it is possible to integrate itom's plot and visualization tools into these interfaces. Afterwards, interface elements can be connected to scripted functionalities. As a result, users can configure the appearance of their measurement system to optimally enable or protect the underlying functionalities.

  • itom is a cross-platform application. Currently, the sources have been compiled on Windows (setup available) and Linux. Mac OS is possible but not tested yet.

Software Structure

itom is a modular software that consists of the following parts:

  • Core application. This is the main application consisting of the user interface, the scripting functionalities and the management of all plugins. This core application is released under the open source LGPL license plus the additional itom exception. This exception allows the inclusion and linking of additional components independent of those components licensing against all code provided by itom.
     
  • Hardware and software plugins. These plugins are resources, separated from itom. If the library of a specific plugin is copied into a folder of itom, it can be loaded. There is a default set of plugins that is also released under the LGPL license. You are free to program your own plugins using the SDK and an appropriate API provided by itom. Additionally you can release your plugins under any license you desire to have. The sources of the default plugins are contained in its own repository.
     
  • Designer plugins. These plugins are additionally widgets that can be placed on used defined interfaces. Therefore, all plots are also created as designer plugins. The licensing system is the same than for the hardware and software plugins. The open source default set of plot plugins is also contained in its own repository.

Screenshots

Visit our gallery in order to see some screenshots of the main application.

Get itom

The source code of itom and its default plugins is hosted on bitbucket. Feel free to clone the repositories and compile itom on your Windows or Linux operating system. See the documentation for more information.

Source repositories

Binaries

Additionally, we provide a setup for a Windows 32bit or 64bit version of itom. The setup and the current documentation can be downloaded from https://bitbucket.org/itom/itom/downloads.

The download section contains the following types of binaries:

  • The version of the binary is always appended at the filename (e.g. 2.1.1)

  • 32bit and 64bit setup version for Windows

  • The all-in-one installer of the version 2.2.1 not only contains itom but it also the following python packages:

    • compiled using Qt5.6.1-1
    • Python 3.5.1
    • Pip 8.1.2
    • Numpy 1.11.1 + MKL
    • Scipy 0.18.0
    • six 1.10.0
    • pytz 2016.6
    • Matplotlib 1.5.2
    • Frosted 1.4.1
    • PyParsing 2.1.10
    • dateutil 2.5.3
    • Pies 2.6.7
    • cycler 0.10.0
    • scikit-image 0.12.3
    • decorator 4.0.10
    • networkx 1.11
    • Pillow 3.3.0
    • dask 0.11.1
    • PointCloudLibrary 1.8.0
    • VTK 7.0 (OpenGL 1.1)
  • The documentation is available as pdf-file or chm-file (windows help file). Please make sure that you start the chm-file from a local hard drive since it does not support startup from a network location. After having started itom, you will also get the itom-internal help.


Implementation

itom is written in C++ using the open source framework Qt. Qt enhances the functionalities of C++, mainly by providing a cross-platform GUI, allowing itom to run on both Windows and Linux operating systems. Since itom is also designed for multi-core processors, its modules run partly in different threads that allow operating an actuator, simultaneously acquiring images while keeping the main window reactive for user interaction. Therefore, the core application, the python script engine as well as all plugins run in their separate threads.

Collaboration

We thank the company twip optical solutions GmbH for their intense contribution to the core framework of itom as well as to many plugins and designer plugins. They also provide their own plugin repository for itom under http://twipos.bitbucket.org/ where you can find an enhanced 3D visualization plugin (also part of the itom Windows setup).

twip optical solutions also offers commercial support for itom as well as the development of plugins. For more information see http://www.twip-os.com/?lang=en#services

There are other companies and research groups that participate in the development of itom. A more enhanced reference list can be found at http://itom.bitbucket.io/collaboration.html.

References

The following publications are available and can also be used as reference:

  • M. Gronle, W. Lyda, M. Wilke, C. Kohler, and W. Osten, "itom: an open source metrology, automation, and data evaluation software," Appl. Opt. 53, 2974-2982 (2014)
  • Gronle, M., Kohler, C., Wilke, M., Lyda, W., Bieger, H., Osten, W., "itom - An Open Source Measurement, Automation and Evaluation Software Suite", in:Fringe 2013, 957-964  (2013)

Further presentations and media about itom are available at the project website of itom.