concept - OpenIndy/OpenIndy GitHub Wiki

"Metrology is the science of measurement. Metrology includes all theoretical and practical aspects of measurement. The word comes from Greek μέτρον (metron), "measure" + "λόγος" (logos), amongst others meaning "speech, oration, discourse, quote, study, calculation, reason". In Ancient Greek the term μετρολογία (metrologia) meant "theory of ratios"." (wikipedia)

Requirements for OpenIndy:

  • Controlling of 3D - Measurement Systems (laser tracker, tachymeter, etc)(plugins)
  • Open data exchange format (openindyXML.xml)
  • Various algorithms to fit, construct and manipulate geometries (plugins)
  • Algorithms for the measurement analysis are easy to add or change (plugins)
  • Easy to use development framework for students
  • Easy to use GUI, which provides a deep insight into the measurement data.

OpenIndy Architecture

OpenIndy Architecture

OpenIndy is a typical desktop application. All functionality and sensor integration will be realized by plugins. That way you can configure OpenIndy for your custom task pane. The backend is a SQLite database that stores the user-defined configuration. The collected and processed data are stored in a XML format (openIndyXML).

OpenIndy class diagram

OpenIndy has three major object groups:

A sensor generates readings. A reading is an original measurement value of the sensor. For example a polar reading is described by two angles and a distance. If possible the reading will be transformed to an observation. An observation is a 3D coordinate that knows the reading from which it was generated. Each observation can belong to one or more geometries and can be changed by system tranformations.

A feature is anything which can be manipulated by functions. OpenIndy uses features to describe all elements in an abstract way that you need to solve your task. For example you want to measure a pipeline. So you will need the feature cylinder (geometry) to reconstruct the pipeline. In addition to the feature, you need a function(fit or construct) that solves the cylinder.

feature and function

feature and function

OpenIndy is feature based. Every feature can be changed by functions. For example, you can solve a geometry with a fit function, and then rotate the geometry using a transformation function. Each function generates a statistics object with information about the accuracy and passes it to the next function. Thus, a consistent error propagation is possible.