HMI Implementation for 3D Scanner

About the Client

PredictIT is a leading technology company specializing in the creation of fully automated 3D inspection systems that offer optical quality controls and dimensional measurements for industrial environments.
Industrial Automation

Company’s Request

PredictIT required the development of a Graphical User Interface (GUI) for its 3D scanner, aimed at enhancing its defect detection capabilities with exceptional accuracy.

Technology Set

Visual Studio 2017
A versatile integrated development environment (IDE) for building applications, it was chosen for this project due to its robust debugging tools, extensive support for .NET and C#, and compatibility with various libraries needed for GUI development.
.NET Framework versions 4.6.2-4.7
A software development platform that provides a wide range of services for running and building applications. Offers enhanced performance and security features, making them ideal for developing high-performance applications like our GUI, which requires handling real-time data and complex algorithms.
C# 7.0
Includes several new features that simplify code and improve performance. We used C# due to its powerful capabilities in object-oriented programming, which is necessary for creating modular, scalable, and maintainable software.
Windows Presentation Foundation (WPF) & XAML
WPF, paired with XAML, was utilized to design the GUI's graphical aspects. WPF is known for its ability to create more dynamic and data-driven user interfaces. XAML simplifies the design by separating the graphical interface from the programming logic, making the UI flexible and easy to adjust during the development process.
Language Integrated Query (LINQ)
A powerful query language integrated into C# that allows for managing data with fewer lines of code. It was employed to handle data manipulation tasks within the application, such as sorting and searching through the 3D scan data efficiently. This made the application faster and reduced the complexity of the data management logic.
Task Parallel Library (TPL)
TPL supports making asynchronous and parallel code easier to write and read. In our project, TPL was indispensable in enhancing the application’s performance by managing multiple operations simultaneously, such as data processing and UI updates, without causing delays or freezes in the user interface.
MySQL 5.7, including MySQL Workbench and MySQL Connector
A database management system used for storing and retrieving data needed by the application. Provides advanced features in performance, reliability, and ease of use. MySQL Workbench and MySQL Connector were utilized for database design and integration with the .NET environment for efficient and secure data handling.
HALCON 12 for image processing
A comprehensive software for machine vision with image processing capabilities. It was chosen specifically for its powerful algorithms that support 3D object recognition and surface analysis for the accurate and precise operation of the 3D scanner. HALCON’s library allowed us to implement high-precision comparison algorithms for detecting defects in scanned objects.

Our solution entailed the design and development of a modern graphical user interface (GUI) for PredictIT’s advanced 3D scanner, leveraging the full capabilities of .NET Framework version 4.7 and C# 7.0. The development environment was set up in Visual Studio 2017, providing a robust platform for building and debugging the application.

Graphical User Interface Development

The GUI was developed using Windows Presentation Foundation (WPF), which is particularly suited for creating rich, interactive user interfaces. WPF uses XAML (Extensible Application Markup Language) for layout, which allows developers to define UI elements declaratively and separate the UI design from the business logic. This separation is needed for maintaining clean code architecture and enables easier updates and maintenance.

In this project, we utilized advanced features of WPF, such as data binding, control templates, and styles, to create a dynamic and responsive interface. The data binding feature, in particular, was used to synchronize the UI with real-time data from the 3D scanner, to make sure that the displayed information is always current and accurate. 

Control templates were used to customize the appearance and behavior of controls, while styles helped maintain a consistent look and feel throughout the application.

High-Precision Comparison Algorithms

A key component of the GUI is the integration of high-precision comparison algorithms for detecting defects in the inspected items. These algorithms were implemented in C# and utilized advanced features such as LINQ for efficient data manipulation and the Task Parallel Library (TPL) for enhancing performance through parallel processing.

The algorithms leverage a unique library provided by PredictIT, designed specifically for high-resolution image processing and geometric computations necessary for 3D scanning. This library includes methods for edge detection, surface analysis, and dimensional measurements, which are required for accurate quality control.

Integration with 3D Scanning Hardware

For the interaction with the 3D scanning hardware, we implemented a hardware abstraction layer (HAL) that communicates directly with the scanner’s firmware. This layer handles all hardware interactions, such as sending scan commands, adjusting scan parameters, and retrieving scan data. It was developed using C# and the .NET Framework’s support for serial communication, which enabled a reliable and efficient interface with the scanner’s programmable logic controller (PLC).

One significant challenge was managing the real-time data flow from the 3D scanner, which generates large volumes of data during each scan. Handling this data efficiently without causing UI freezes was crucial. We addressed this issue by implementing asynchronous data processing using the TPL. This allowed us to process data in parallel threads, thereby keeping the UI responsive while managing heavy data loads. Additionally, we used advanced data structures and algorithms to optimize memory usage and data processing speed, ensuring that the GUI remains fluid and responsive even under heavy load.

Another challenge was the integration of the new GUI with existing legacy systems that were using older technologies and different data formats. To solve this, we developed custom middleware that acts as a bridge between the new GUI and the legacy systems. This middleware was responsible for translating data formats and protocols between the systems. We also implemented error handling and logging mechanisms within the middleware to monitor and troubleshoot any issues during data transmission


Value Delivered

Improved User Interaction
The new touchscreen GUI simplifies how operators use the 3D scanner. This ease of use reduces training time, increases operator efficiency, and minimizes errors. This translates to faster production and better product quality, leading to higher customer satisfaction.
Seamless Hardware Integration
The GUI integrates smoothly with existing PLC hardware, and alerts and errors are displayed directly on the screen. This immediate reporting speeds up problem-solving, decreases downtime, and saves costs.
On-Time Project Delivery
Delivering the project on time was crucial due to a nearing automotive exhibition. Meeting this deadline allowed PredictIT to demonstrate its enhanced scanner at this major event, restoring client trust and showcasing Sirin Software's reliability.
Enhanced System Demonstration
At the automotive exhibition, PredictIT showcased its advanced 3D scanner with the new GUI. Successfully presenting these improvements helped strengthen their market position, attract potential customers, and increase trust in their brand.