Skip to content

crgz/industrial-precision-visualizer

Repository files navigation

Simple end to end streamed Single Page Application that minimize processing time using non-blocking asynchronous I/O and visualization time by pushing real-time events to a time series chart.

By Franck Morisseau (Own work) [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons

💡 Synopsis

An automated advanced manufacturing equipment attaches a lens on an optical engine (a PCB with microelectronics that drives a laser).

The equipment accepts a tray of optical engines with attached lens. The machine takes 8 pictures of the attached lens at various angles and compares them against a reference after the process. The machine assigns a score (from 0 to 100) based on the slight variances in measurements between the actual image and reference. The higher the score, the closer the result is to the desired specifications. The MRSI_VISION.log file stores these results.

The events column of the "human-parsed-log.xlsx" contains the image and the results of its score. Each image file name represents a unique "measurement". So 8 unique measurements (images) and their resulting scores. Each series in the chart plot its own measurement. The catch is that, an engineer can update the set of 8 images when a batch is done. (Meaning, a given set of 8 will be in effect for a period of time than another 8 might be introduced in the log. You can distinguish this change by time increments).

Each image-set/series can simply be labelled using their image filenames but you can refer to the “filename-mappings.csv” to map them to nice names.

This solution works as follow:

  • Upload a log file onto a web service/app.
  • Parse and extract the scores from the raw log file.
  • Generates a visualization that plots the scores onto a time series graph.

💾 Installation

	npm install

⚙️ Execution

	node bin/www

▶️ Usage

  • In Google Chrome open: http:https://localhost:3000.
  • Choose test data file "MRSI_VISION.LOG" located in the doc folder.
  • Click the Upload button.

🎁 Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

🎓 License

This experiment is released under the MIT License.