first draft

This commit is contained in:
Nareshkumar Rao 2022-02-03 00:19:38 +01:00
parent ee6844a508
commit 155c2ef126
41 changed files with 4492 additions and 138 deletions

2
.gitignore vendored
View File

@ -262,3 +262,5 @@ TSWLatexianTemp*
# standalone packages
*.sta
report.html

3
.textidote Normal file
View File

@ -0,0 +1,3 @@
--output html
--dict dico.txt
--check en Main.tex

View File

@ -3,6 +3,7 @@
\vspace*{1cm}
\begin{Huge}
\textbf{Measuring Bulk Material Flow using Commercially-Available LIDAR Sensors}\par
\textbf{---First Draft---}\par
\end{Huge}
\vfill
\large

View File

@ -1,107 +1,102 @@
\chapter{Introduction}
\chapter{Introduction}\label{chap:intro}
\section{Motivation}
\subsection{Transportation of Bulk Material}
It is necessary in several industries, including those of mining and manufacturing, to transport bulk material from one on-site location to another. In mining, it may be sand or gravel. In manufacturing, it may be powdered chemicals.
It is necessary in several industries, including those of mining and manufacturing, to transport bulk material from one location to another. In mining, it may be sand or gravel. In manufacturing, it may be powdered chemicals\cite{protogerakisInterview2022}.
The transportation of this bulk material typically involves the use of a belt conveyor. These belt conveyors are designed especially with the purpose of containing bulk material, as well as applying the necessary forces to transport them.
The transportation of this bulk material typically involves the use of a conveyor belt. These conveyors are specifically designed for the efficient transport of bulk material.
\subsection{Measuring Bulk Material Flow}
\begin{wrapfigure}[10]{R}{0.4\textwidth}
\begin{wrapfigure}[12]{R}{0.5\textwidth}
\centering
\includegraphics[width=0.4\textwidth]{beltscale}
\caption{A conventional electronic belt scale. Source: \url{https://www.mts-waagen.de/}}
\includegraphics[width=0.45\textwidth]{photographs/beltscale}
\caption{A conventional electronic belt scale.}
\end{wrapfigure}
This transportation of bulk material flow introduces challenges into the processing engineering and automation ability of the facility. This work deals with the specific challenge of measuring bulk material flow on a conveyor.
Possessing this information is important for the proper control and regulation of the conveyor system, as well as for safety functions. Knowing when a belt is overloaded, running empty, or broken may prevent damage to people and machinery.
This transportation of bulk material flow introduces the need to accurately measure the rate at which the material is flowing. This is essential for various tasks such as keeping track of inventory or for control systems. Knowing when a belt is overloaded, running empty or broken is also an important safety concern. This work deals with the specific challenge of measuring bulk material flow on a conveyor.
\subsection{Conventional Belt Scales}
The conventional method of measuring bulk material flow in use in the industry today the electronic belt scale. These scales use load cells to translate compression and tension into electrical signals. These signals representing weight may be then be converted into measurements of volume.
The conventional method of measuring bulk material flow in use in the industry today is the electronic belt scale. These scales use load cells to translate compression and tension into electrical signals. These signals representing weight may then be converted into measurements of volume.
These electronic belt scales are robust and proven in the field. However, there are also downsides with this approach.
Firstly, the retrofitting of these belt scales are difficult and costly. \todo{add more info}
Secondly, the cost of the units themselves are high, not including the necessary maintenance and servicing these units require. \todo{add cost examples}
Other specialized methods for measuring material flow, such as using a radiation based sensor, are not considered here, as they require highly-skilled personnel to design, develop, deploy and maintain.
\begin{enumerate}
\item High unit costs as well as higher retrofitting costs
\item Humidity and moisture content of the material may introduce significant errors which may not be easily compensated
\item Vibration from transport and loading introduces noise into the measurements\cite{tomobe2006}
\end{enumerate}
\section{Aims of this Work}
\subsection{Research Question}
The central research question that is investigated in this work is the following:
%\subsection{Research Question}
The central \textbf{research question} that is investigated in this work is:
\textit{How can a cheaper and easier to install measurement system for bulk material flow on a conveyor belt be designed?}
\subsection{Use of Commercially-Available Products}
\subsection{Use of Commercially-Available Products}\label{sec:useOfCommerciallyAvailableProducts}
As given by the research question above, one of the central requirements of the research question is a question of cost.
As given by the research question above, one of the central parameters is the question of cost. Since the cost of industrial equipment can be many multiples of the cost of commercially available products, studying alternatives becomes attractive.
In order to reduce the costs of development, as well as to keep unit cost price low, this work strives to use commercially available products wherever suitable.
As an example, the cost price of the Intel RealSense L515 used in this project was €380\footnote{Due to Intel announcing that they are discontinuing their LIDAR sensor series, the price of this particular product has risen up to €570 as of January 2022.}, whereas the SICK LM400 used by Fojtik\cite{fojtik2014} can cost upwards of €4000\footnote{This price is an aggregate estimate based on multiple online merchants as of January 2022}.
\subsection{Use of the LIDAR Sensor}
The usage of the LIDAR sensor was implemented in order to fulfill the second requirement of the research question, namely that the solution must be easier to install, than other conventional solutions.
The usage of the LIDAR sensor was implemented in order to fulfill the second requirement of the research question, namely that the solution must be easier to install than other conventional solutions.
As is discussed in the following section on design, the LIDAR sensor was selected primarily because it is a contact-less sensor. This means that installation can be carried out with little to no adjustments to the existing conveyor belt system. The LIDAR sensor must simply be suitably positioned in order to gather and deliver data.
As is discussed in the following section on design, the LIDAR sensor was selected primarily because it is a contactless sensor. This means that installation can be carried out with little to no adjustments to the existing conveyor belt system. The LIDAR sensor must simply be suitably positioned in order to gather and deliver data.
\subsection{Requirements \& Restrictions}
Besides fulfilling the research question, the design solution should ideally fulfill the following restrictions and requirements as well.
Besides fulfilling the research question, the design solution should fulfill the following restrictions and requirements as well.
\begin{itemize}
\item \textbf{Industrial Robustness} - The final product should be able to withstand the harsh environments that it would likely be installed in, i.e. in a gravel pit. This means the product must be adequately housed and protected from the environment, against vibrations and shocks.
\item \textbf{Industrial Robustness} - The final product should be able to withstand the harsh environments that it would likely be installed in, i.e. in a gravel quarry. This means the product must be adequately housed and protected from the environment, against vibrations and shocks.
\item \textbf{Industrial Connectivity} - The product should be able to interface with existing industrial networks, i.e. using Industrial Ethernet.
\item \textbf{Real-Time Ability} - The product should ideally deliver values in Real-Time through the required interface. This means not only a high enough data resolution, but also a high determinism.
\end{itemize}
Although not strictly necessary, a significant benefit would be:
\begin{itemize}
\item \textbf{Remote Control} - The product should be able to be configure and diagnosed remotely, in order to prioritize simplicity of installation and maintenance.
\item \textbf{Real-Time Ability} - The product should ideally deliver values in Real-Time through the required interface. This means not only a high enough data resolution but also high determinism.
\item \textbf{Remote Control} - The product should be able to be configured and diagnosed remotely, in order to prioritize simplicity of installation and maintenance.
\end{itemize}
\subsection{Conception of the Design}
Analysis of the research question as well as the other requirements have led us to use the following components to build the final product.
Analysis of the research question as well as the other requirements have led to the use of the following components to build the final product.
\begin{itemize}
\item \textbf{Raspberry Pi 4B} - Provides a low-cost platform with a Linux kernel and OS for processing data
\item \textbf{Raspberry Pi 4 Model B} - Provides a low-cost platform with a Linux kernel and OS for processing data
\item \textbf{netHAT} - A HAT format extension module for the Raspberry Pi that provides Industrial Ethernet capabilities
\item \textbf{Intel RealSense L515 LIDAR Sensor} - Commercially available LIDAR sensor unit, compatible with the Pi
\end{itemize}
More details on each of these components are provided in \autoref{sec:componenets}.
\section{Approach}
The following lays out an overview of the steps taken in order to realize the final product of this project. For more details on the specifics of the steps, please see \autoref{chap:design}.
The following is a layout of the steps taken in order to realize the final product of this project. For more details on the specifics of the steps, see \autoref{chap:design}.
\subsection{Interfacing with the LIDAR sensor}
The initial step of this project was naturally to establish an interface with the sensor itself. This includes:
\begin{itemize}
\item Preparing the development environment
\item Building the necessary libraries and drivers
\item Writing basic test software to manipulate sensor data
\item Developing a basic test software to manipulate sensor data
\end{itemize}
\subsection{Proof-of-Concept Software}
After being able to successfully interface with the sensor, a proof-of-concept software was designed and written. Later, a GUI interface was also added the software to improve ease-of-use. The software was designed to be able to do the following things:
After being able to successfully interface with the sensor, a proof-of-concept software was designed and developed. Later, a GUI interface was also added to the software to improve ease-of-use. The software was designed to be able to do the following things:
\begin{itemize}
\item Remotely acquire the raw sensor data over the network
\item Display the raw sensor data in a meaningful way
\item Display, calibrate and use the sensor data as a line scanner, with \textbf{instantaneous cross-sectional area} as an output
\item Display, calibrate and use the sensor data as a line scanner, with the \textbf{cross-sectional area} as an output
\end{itemize}
\subsection{Laboratory Prototype}
Once the proof-of-concept software was stable, the setup was moved into a laboratory environment in order to further develop the main functionalities of the prototype. Among the functionalities that were developed:
\begin{itemize}
\item Remotely acquire the raw sensor data over the network
\item Image preparation (offset, rotation, skew)
\item Cross-Correlation methods to determine band speed
\item Cross-correlation methods to determine belt velocity
\item Profinet interface to deliver processed data
\end{itemize}
\subsection{Field Testing and Refinement}
Eventually a staged was reached where development on the prototype in a small-scale laboratory setting was no longer adequate. Development and testing was then continued on-site at a gravel pit in order to validate laboratory results and further refine the software.
Eventually, a stage was reached where development on the prototype in a small-scale laboratory setting was no longer adequate. Development and testing were then continued on-site at a gravel quarry in order to validate laboratory results and further refine the software.

View File

@ -1 +1,19 @@
\chapter{State of the Art}
The interest in the implementation of optical methods for the purposes of measuring bulk material is not novel. The reasoning is clear: conventional methods are intrusive and costly. Being a non-contact, non-intrusive approach, makes any sort of optical solution to the measurement problem very desirable.
As early as 1997, Green et al.\ were already experimenting with non-contact methods to calculate mass flow rates. In that time, they resorted to using electrodynamic sensors. Although a far cry from the resolution afforded by contemporary sensors, Green et al.\ and their electrodynamic sensors demonstrated the potential of non-contact sensing for bulk materials\cite{green1997}.
In 2014, Fojtik released his paper on using laser scanning to measure the volume of bulk material on a conveyor belt. Fojtik focused on the measurement of wood chips, which required special consideration to the volume fluctuations due to humidity\cite{fojtik2014}.
Independently, Zeng et al.\ too released their paper on the use of laser scanning for measuring the volume flow of bulk material.\cite{zeng2015} The focus of their paper was using these technologies to increase energy efficiency.
Although they differed slightly in their precise approaches, both Fojtik and Zeng et al.\ used the same fundamental principle to determining volume flow, namely the derivation of the cross-sectional area of material based on the difference between an empty and laden belt. Both of them also are similar in their use of SICK LMS industrial laser scanners.
Both Min et al.\ in 2020\cite{min2020}, and Qiao et al.\ in 2021\cite{qiao2022} too have published their analyses and results on solving this problem. They both take novel approaches, however, using not only laser scanning but a hybrid solution involving regular optical imaging to supplement the analysis of the material surface. They both also attempt to implement more advanced mathematical models, using 3D reconstruction and neural networks.
As shown by the papers above, this work is not novel in its use of optical methods to solve the problem of measuring bulk material volume flow. This project does set itself apart, however, by
\begin{enumerate*}[label=\alph*)]
\item focusing on the use of commercially-available hardware
\item being an all-in-one solution and not requiring any additional sensory information, such as belt velocity
\end{enumerate*}.

View File

@ -1,5 +1,119 @@
\chapter{Design and Implementation}\label{chap:design}
This chapter outlines and further describes in details the design decisions behind the end-product of this project, as well as the specifics on the implementation of the project.
This chapter outlines and further describes in detail the design decisions behind the end-product of this project, as well as the specifics on the implementation of the project.
\section{Principles of Operation}
The analysis of volume flow can be broken down into two fundamental operations that must be carried out:
\begin{itemize}
\item A calculation of the \textbf{cross-sectional area} of a slice (or slices) of material
\item A calculation of the \textbf{velocity} of the material flow
\end{itemize}
\subsection{Cross-Sectional Area}
\begin{figure}[h]
\centering
\includegraphics[width=0.6\textwidth]{design/cross_analysis_new}
\caption{Cross-section of material flow on a conveyor belt.}
\label{fig:cross_analysis}
\end{figure}
The methodology used in order to analyze the cross-sectional area of the material flow is \textbf{geometric analysis}. Simply put, the geometry of a laden belt is compared with that of an empty belt. The resulting difference in area is that of the material itself.
In order to accomplish this analysis, a horizontal slice of the sensor data is used. The slice represents the depth data of a single dimension, in this case, the crosswise dimension of the belt.
During calibration, the empty belt is used to fit the polynomial belt curve $f(x)$. The fitting of this nth-degree polynomial is done with the least-squares method.
\begin{equation}
A_C = \int^{x_b}_{x_a}\left[ g(x) - f(x) \right] dx \label{eq:cross_area}
\end{equation}
After calibration, the current slice curve $g(x)$ can be used to obtain the Cross-Sectional Area as shown in \autoref{eq:cross_area}.
\subsubsection{Further Considerations}
The accuracy of the computed cross-sectional area depends primarily on the accuracy of the depth data as well the frame rate of the sensor.
However, further operations may be implemented in order to increase accuracy, such as:
\begin{itemize}
\item Computing the cross-sectional area from multiple slices of each frame and averaging these
\item Computing the average cross-sectional area between frames, in order to create a smoother---and possibly more accurate---estimation of the volume flow
\end{itemize}
It is important to note though, that the implementation of further operations may exhaust the processing capabilities of the platform. Therefore, a crucial balance must be struck between performance and accuracy.
\begin{figure}[h]
\centering
\includegraphics[width=0.75\textwidth]{design/conveyor_top}
\caption{Graphical depiction of the LIDAR sensor image. The slice is a one-dimensional extract of the sensor image crosswise over the belt.}
\end{figure}
\subsection{Belt Velocity}
Conventional belt scales use some form of a rotary encoder in order to measure the belt velocity. This is---however accurate---only an approximation of the velocity of the material flow itself, since material velocity may deviate from belt velocity depending on environmental or material conditions.
For the purposes of this project, the term \textit{belt velocity} will be used loosely to describe an indeterminate aggregate of belt, volume and surface velocities. This is because the techniques used in order to determine the velocity---as shown below---are not designed to isolate a single velocity type.
The fundamental operation being used in the following methods in order to determine the belt velocity is \textbf{cross-correlation}. In essence, a signal is compared to an older version of itself in order to determine a displacement---or in signal terms, a \textit{delay}.
In the case of this project, given the known interval between two consecutive signals---i.e.\ the frame rate---it is possible to express this delay in the form of a physical displacement, in meters.
The different analytic methods used in this project differ only by which data is selected to represent the signal during cross-correlation. The algorithm of calculating the cross-correlation itself remains the same.
\begin{equation}
r(d) = \sum_{i=1}^{n} A_i \cdot B_{i+d} \label{eq:cross_corr}
\end{equation}
Equation \ref{eq:cross_corr} shows how the cross-correlation $r$ between two signals $A$ and $B$ of lengths $n$ may be calculated by multiplying each element $i$ together. This is done for each possible delay $d$ value. The maximum value of the correlation $r$ corresponds to the most likely value of $d$.
\subsubsection{Chosen Method - Statistical Method}
\begin{figure}[h]
\centering
\includegraphics[width=0.8\textwidth]{design/conveyor_xcorr}
\caption{Representation of the area of interest and vertical strips used for the cross-correlation operations.}
\label{fig:conveyor_xcorr}
\end{figure}
This method was developed as an aggregate of the previously attempted methods, improving on and solving issues earlier iterations had. It is therefore simply the most successful iteration.
The statistical method carries out the following operations:
\begin{enumerate}
\item A user-provided area of interest is cropped out of the entire sensor frame. This is done to isolate only the most relevant and data-dense regions, as well as to eliminate error from static elements as much as possible.
\item This subset of the frame is then divided into one-dimensional vertical strips
\item For each of the strips, the cross-correlation displacement is calculated.
\item With the of displacement values for each strip, statistical outlier values are removed and a mean displacement is calculated
\item This mean displacement in pixels, together with camera frame geometry, is used to calculate the physical displacement in meters.
\end{enumerate}
The use of this statistical approach using multiple vertical strips---see \autoref{fig:conveyor_xcorr}---is very similar to directly using 2-dimensional correlation, however it attempts to solve a significant problem with the 2-dimensional cross-correlation method.
Since a 2-dimension cross-correlation would simultaneously consider the entire area of interest, any static elements in the frame would highly influence the results of the correlation, causing it to always be close to zero. This introduces a high error and variability in the result.
This statistical approach allows us to discard outlier values---such as values close to zero---and retain only those slices which do not contain any static elements.
\subsubsection{Alternative Methods}
Before arriving at the statistical method described above, multiple iterations of possible methods were tested. In this subsection, two of the most significant alternative methods are described.
Firstly, as already mentioned above, the \textbf{2-dimensional cross-correlation}. This method produces robust values and is less computationally complex than the statistical approach, however it is significantly more sensitive to static elements. This introduces many challenges since static elements may not be entirely avoided, either on the belt, or on the sensor itself.
The other alternative method called the \textbf{topographical method} is much less computationally expensive, since it only runs one cycle of the cross-correlation algorithm per frame.
The topographical approach works in the following manner. The values within each \textbf{crosswise} slice are summed. This reduces the 2-dimensional sensor data into a 1-dimensional representation which is called the \textit{topography}. This topography can be used as the signal for cross-correlation.
Although this method was robust to signal noise, the uncertainty of the values was due to information being lost in the summation process.
\subsection{Volume Flow}
Once the cross-sectional area and velocity of the material have been determined, the only operation that remains is to derive from them the volume flow.
The volume of material that has passed the sensor per frame $V_F$, can be calculated simply as described in Equation \ref{eq:volume_flow}. $A_{C}$ is the cross-sectional area measured in a particular frame, $v_m$ is the velocity of the material flow and $f$ is simply the framerate of the sensor.
\begin{equation}
V_F = A_{C} \cdot v_m \cdot \frac{1}{f} \label{eq:volume_flow}
% V_F &= \left( \frac{A_{C,F} + A_{C,F-1}}{2}\right) \cdot v_m \cdot
% \frac{1}{f} \label{eq:volavg}
\end{equation}
\section{Phases of Development}
The following phases of development are not grouped chronologically over the span of the project schedule, rather into conceptual groups.
@ -7,45 +121,44 @@ The following phases of development are not grouped chronologically over the spa
\subsection{Preparing Development and Build Environment}
Setting up the development environment for this project was a non-trivial task, due to a lack of pre-compiled binaries for the intended architecture, the ARM chipset of the Raspberry Pi.
The Raspberry Pi 4B used in this project was delivered with a Quad Core Cortex-A72 64-bit SOC. However, a 32-bit kernel OS was used in this project, due to the netHAT drivers only delivered as 32-bit compiled binaries.
The Raspberry Pi 4 Model B used in this project was delivered with a Quad Core Cortex-A72 64-bit SOC. However, a 32-bit kernel OS was used in this project, due to the netHAT drivers being delivered as 32-bit compiled binaries.
\subsubsection{Intel RealSense SDK}
The Intel RealSense SDK, or librealsense, is a cross-platform library provided by Intel for use with their RealSense devices. Pre-compiled binaries for 32-bit ARM were not provided, and therefore must be compiled\cite{realsense_git}.
\subsubsection{ZeroMQ}
ZeroMQ is a lightweight asynchronous messaging library which extends the traditional socket interfaces\cite{zeromq_git}. In this project, ZeroMQ is used in order to:
ZeroMQ is a lightweight asynchronous messaging library that extends the traditional socket interfaces\cite{zeromq_git}. In this project, ZeroMQ was used in order to:
\begin{itemize}
\item Broadcast raw sensor data to remote controllers using a publish/subscribe model
\item Exchange configuration parameters between the remote controller and the local processor using a request/reply model
\end{itemize}
In this project, TCP sockets are used for communications.
In this project, TCP sockets were used for communications.
ZeroMQ was chosen to provide the aforementioned functionalities for the following reasons:
\begin{itemize}
\item Simple to implement
\item Data can be transferred as binary data, instead of requiring it to be serialized
\item Data can be transferred as binary data, instead of requiring serialization
\item Availability on numerous platforms, as well as pre-compiled binaries
\end{itemize}
\subsubsection{Real-Time Kernel Patch}
Traditionally, the Linux kernel only allows one process to preempt another process in specific circumstances. This means, that even a high-priority thread may not preempt kernel code, until the kernel explicitly yields control.
Traditionally, the Linux kernel only allows one process to preempt another process in specific circumstances. This means, that even a high-priority thread may not preempt kernel code until the kernel explicitly yields control.
This is particularly disadvantageous for any operations requiring real-time performance. In order to circumvent this, the \verb|CONFIG_PREEMPT_RT| Kernel Patch is used in order to allow kernel code to be preempted\cite{rtwiki}.
In the case of this project, this means that the local processor can process and deliver data in a more deterministic fashion\todo{maybe insert some test data here}.
In the case of this project, this means that the local processor can process and deliver data in a more deterministic fashion.
\subsubsection{GUI with Qt}
The Qt GUI framework was used in order to create a GUI for the remote controller. This allowed for the sensor data to be more easily calibrated and aligned, as well as providing a consistent interface for end-user configuration. Qt was chosen for its ease-of-use, as well as ability to be compiled cross-platform\cite{qtWebsite}.
\subsection{Main Functionality}
This subsection elaborates the fundamental building blocks of the program that are required.
The Qt GUI framework was used in order to create a GUI for the remote controller. This allowed for the sensor data to be more easily calibrated and aligned, as well as providing a consistent interface for end-user configuration. Qt was chosen for its ease of use, as well as its ability to be compiled cross-platform\cite{qtWebsite}.
\subsection{Development of Main Functionality}
At this stage of the design process, the functionality that is fundamental to the principle operation described earlier are developed. These functions include:
\begin{itemize}
\item Transmission of Raw Sensor Data
\item Calibration of Sensor Data
\item Configuration for Processing
\item Transmission of Configuration Parameters
\item Transmission of raw sensor data
\item Calibration of sensor data
\item Configuration for processing
\item Transmission of configuration parameters
\end{itemize}
\subsection{Testing and Validation}
@ -59,9 +172,9 @@ The iterative cycles can be broken down into:
\item Representing the data visually
\item Basic manipulation of the sensor data
\end{enumerate}
\item \textbf{Laboratory Testing:} In the lab, the main features and functionalities of the program could be developed and tested in more controlled, smaller scale. Among the main functionalities:
\item \textbf{Laboratory Testing:} In the lab, the main features and functionalities of the program could be developed and tested on a more controlled, smaller scale. Among the main functionalities:
\begin{enumerate}
\item Development of the processing algorithms, ie. for cross-correlation, determining cross-sectional area
\item Development of the processing algorithms, i.e.\ for cross-correlation, determining the cross-sectional area
\item Processing of output data
\item Establishing and transmitting output data over Profinet
\item Tuning performance
@ -69,7 +182,93 @@ The iterative cycles can be broken down into:
\item \textbf{Field Testing:} At a certain point, development in the laboratory setting could no longer proceed without taking into consideration the environmental and full-scale factors of deployment in the field. Thus, the final iteration of development must be carried out on-site.
\end{enumerate}
See \autoref{chap:validation} for elaboration and details of each of the testing cycles.
See \autoref{chap:validation} for elaboration and results of each of the testing cycles.
\section{Components}\label{sec:componenets}
\textbf{Raspberry Pi 4 Model B}\nopagebreak
\begin{table}[H]
\centering
\begin{tabularx}{0.75\textwidth}{| c | >{\centering\arraybackslash}X |}
\hline
Processor & Quad Core Cortex-A72 (ARM v8) 64-Bit \\
\hline
Memory & 2GB \\
\hline
\multirow{3}*{Networking} & 2GHz and 5GHz 802.11ac Wireless \\
& Bluetooth 5.0 \\
& Gigabit Ethernet \\
\hline
\multirow{3}*{Connectivity} & 2x USB 3.0 \\
& 2x USB 2.0 \\
& 40 pin GPIO header \\
\hline
Storage & Micro-SD card slot \\
\hline
Operational Temperature & \SI{0}{\celsius} to \SI{50}{\celsius} \\
\hline
\end{tabularx}
\caption{The relevant technical specifications of the Raspberry Pi 4 Model B used in this project\cite{rpiSpecs}.}
\end{table}
\textbf{Intel RealSense L515}\nopagebreak
\begin{table}[H]
\centering
\begin{tabularx}{0.75\textwidth}{ >{\centering\arraybackslash}X | >{\centering\arraybackslash}X | >{\centering\arraybackslash}X |}
\cline{2-3}
& Depth & Color\\
\hline
\multicolumn{1}{|c|}{Resolution} & Up to 1024x768 & Up to 1920x1080\\
\hline
\multicolumn{1}{|c|}{Field-of-View} & \ang{70}x\ang{55} & \ang{69}x\ang{42} \\
\hline
\multicolumn{1}{|c|}{Frame Rate} & \multicolumn{2}{c|}{30 Frames per Second}\\
\hline
\multicolumn{1}{|c|}{ \multirow{2}*{Depth Range} } & \multicolumn{2}{c|}{Up to \SI{3.9}{\meter} at 15\% Reflectivity} \\
\multicolumn{1}{|c|}{} & \multicolumn{2}{c|}{Up to \SI{9}{\meter} at 95\% Reflectivity}\\
\hline
\multicolumn{1}{|c|}{ \multirow{2}*{Depth Accuracy} } & \multicolumn{2}{c|}{\SI{5}{\milli\meter} at \SI{1}{\meter}}\\
\multicolumn{1}{|c|}{} & \multicolumn{2}{c|}{\SI{14}{\milli\meter} at \SI{9}{\meter}}\\
\hline
\multicolumn{1}{|c|}{Laser Wavelength} & \multicolumn{2}{c|}{\SI{860}{\nano\meter} Infrared}\\
\hline
\multicolumn{1}{|c|}{Power Consumption} & \multicolumn{2}{c|}{Up to \SI{3.3}{\watt}}\\
\hline
\multicolumn{1}{|c|}{Operational Temperature} & \multicolumn{2}{c|}{\SI{0}{\celsius} to \SI{30}{\celsius}}\\
\hline
\multicolumn{1}{|c|}{\multirow{2}*{Mounting Options}} & \multicolumn{2}{c|}{ISO1222 Tripod Mounting Point}\\
\multicolumn{1}{|c|}{} & \multicolumn{2}{c|}{2x M3 Mounting Point}\\
\hline
\end{tabularx}
\caption{The relevant technical specifications of the Intel RealSense L515 used in this project\cite{realsenseDatasheet}.}
\end{table}
\textbf{netHAT}\nopagebreak
\begin{table}[H]
\centering
\begin{tabularx}{0.75\textwidth}{ | c | >{\centering\arraybackslash}X | } \hline
Processor & Hilscher netX 52 \\ \hline
Memory & 4MB Quad SPI Flash \\ \hline
Interface & SPI up to 125MHz \\ \hline
Network & 2x Ethernet 100 BASE-TX \\ \hline
\end{tabularx}
\caption{The relevant technical specifications of the Hilscher netHat\cite{nethatHilscher}.}
\end{table}
\subsection{Cost Breakdown}
\begin{table}[H]
\centering
\begin{tabular}{| c | c |}
\hline
Intel RealSense L515 & €380\tablefootnote{The cost has since increased to €570 as of January 2022.}\\ \hline
Raspberry Pi Model 4 B & €84 \\ \hline
netHAT & €69 \\ \hline
\textbf{Total} & \textbf{€553\tablefootnote{Due to a malfunctioning unit, a new sensor was purchased, bringing the total cost of development to around €1120.}} \\ \hline
\end{tabular}
\caption{Breakdown of the costs used in the development of this project.}
\label{table:cost}
\end{table}
\section{Process Overview}
\begin{figure}[h]
@ -81,21 +280,21 @@ See \autoref{chap:validation} for elaboration and details of each of the testing
With the objective of creating a marketable commercial product in mind, the process flow was designed for ease-of-use and ease-of-configuration for the end-user. This is the justification for implementing a remote controller that allows the setup to be remotely configured once installed.
While \autoref{fig:processoverview} gives a brief overview of the inter-relationship of the remote and local sides in the complete process, it is here further elaborated:
While \autoref{fig:processoverview} gives a brief overview of the interrelationship of the remote and local sides in the complete process, it is here further elaborated:
\begin{enumerate}
\item \textbf{Transmission of Raw Data:} Upon first startup, the local processing software immediately begins to broadcast the raw sensor data. This data can then be subscribed to by a remote controller.
\item \textbf{Transmission of Raw Data:} Upon the first startup, the local processing software immediately begins to broadcast the raw sensor data. This data can then be subscribed to by a remote controller.
\item \textbf{Remote Configuration:} Once the remote devices has subscribed to the raw data broadcast, it will be previewed on the FlowRemote GUI interface. See \autoref{fig:flowremote} for an overview of the FlowRemote interface.
\item \textbf{Remote Configuration:} Once the remote devices have subscribed to the raw data broadcast, it will be previewed on the FlowRemote GUI interface. See \autoref{fig:flowremote} for an overview of the FlowRemote interface.
\begin{enumerate}
\item \textbf{Image Pre-Processing:} The engineer then pre-processes the image --- rotating, skewing and cropping --- the conveyor belt in the sensor image is vertically aligned and the perspective has been corrected.
\item \textbf{Calibration and Fitting:} Now the engineer may select a single layer or slice of the sensor image which will be used to fit for the conveyor belt curve. The fitting parameters are selected, and the calibration is saved.
\item \textbf{Belt Parameters:} In order to correctly determine the band velocity and volume flow --- see \autoref{sec:dataproc} --- the conveyor belt parameters such as visible length and width need to be provided.
\item \textbf{Image Pre-Processing:} The engineer then pre-processes the image---rotating, skewing and cropping---until the conveyor belt appears vertically aligned and the perspective has been corrected.
\item \textbf{Calibration and Fitting:} Now the engineer may select a single layer or slice of the sensor image which will be used to fit for the conveyor belt curve. The fitting parameters are selected, and the calibration is saved. This corresponds to the curve $f(x)$.
\item \textbf{Belt Parameters:} In order to correctly determine the belt velocity and volume flow, the conveyor belt parameters such as visible length and width need to be provided.
\end{enumerate}
\item \textbf{Transmission of Configuration Parameters:} The parameters that were configured in the previous step are then transmitted back to the local processor, FlowPi, and local processing mode is then engaged.
\item \textbf{Local Processing:} In local processing mode, raw data is no longer transmitted for performance purposes. The sensor data is directly processed on the Raspberry Pi, and the outputs are delivered over Profinet to the Profinet Controller.
\item \textbf{Local Processing:} In local processing mode, raw data is no longer transmitted for performance purposes. The sensor data is directly processed on the Raspberry Pi, and the outputs are delivered over Profinet to the PLC.
\end{enumerate}
@ -106,35 +305,35 @@ While \autoref{fig:processoverview} gives a brief overview of the inter-relation
\caption{Overview of the interactions between the various software components and their communication.}
\end{figure}
What is being referred to \textit{the program} for the entirety of this document actually refers a two-part software suite consisting of:
The software developed in this project consists of two separate but tightly interconnected parts, namely:
\begin{itemize}
\item \textbf{FlowPi:} The local processing software that runs on the Raspberry Pi, and
\item \textbf{FlowRemote: } The remote control software that is meant to run on an external PC for configuration purposes
\end{itemize}
\subsection{Development Language Choice}
The program is written in \cpp\ for compatibility and performance reasons. All the device drivers provide libraries in either \clang\ or \cpp, while some drivers such as the CIFX library for the netHAT are only provided in \clang.
The software is written in \cpp\ for compatibility and performance reasons. All the device drivers provide libraries in either \clang\ or \cpp, while some drivers such as the CIFX library for the netHAT are only provided in \clang.
The topic of performance between languages and systems are a topic of much heated debate, however \cpp\ was chosen for this project do to the ability to program comfortably in a higher-level language, while having the ability to \textit{\enquote{drop-down}} into \clang. The \clang\ Programming Language is often the benchmark for higher-level programming languages when programming for Real-Time Systems due its predictability and the ability to run operations with few layers of abstraction on memory directly\cite{pizlo2010}.
The topic of performance between languages and systems is one of much-heated debate, however \cpp\ was chosen for this project due to the ability to program comfortably in a higher-level language, while having the ability to \textit{\enquote{drop down}} into \clang. The \clang\ Programming Language is often the benchmark for higher-level programming languages when programming for Real-Time Systems due to its predictability and the ability to run operations with few layers of abstraction on memory directly\cite{pizlo2010}.
Furthermore, since the scale of the processing unit of the program is relatively small, the benefits that come from using a higher-level programming language---such as increased productivity, organization, and re-usability\cite{pizlo2010}---are not strictly necessary.
\begin{figure}[H]
\begin{figure}[h]
\centering
\includegraphics[width=0.8\textwidth]{./design/ProcessingLibrary}
\caption{Representation of the how the processing unit is called by different components of the program.}
\label{fig:processinglib}
\end{figure}
As shown in \autoref{fig:processinglib}, the main functionality of the processing unit which includes:
As shown in \autoref{fig:processinglib}, the main functionality of the processing unit includes:
\begin{itemize}
\item Image Pre-Processing i.e. rotation, skew, cropping
\item Image Pre-Processing i.e.\ rotation, skew, cropping
\item Curve-Fitting
\item Cross-Correlation
\end{itemize}
are implemented in \clang\ as much as possible. This is then encapsulated by a \cpp\ wrapper. This provides ease-of-use on the remote side, where processing is not real-time critical, while still allowing the local side to directly call the \clang\ processing functions.
These are implemented in \clang\ as much as possible. This is then encapsulated by a \cpp\ wrapper. This provides ease-of-use on the remote side, where processing is not real-time critical, while still allowing the local side to directly call the \clang\ processing functions.
\subsection{FlowRemote -- Remote Control GUI}
@ -145,16 +344,32 @@ are implemented in \clang\ as much as possible. This is then encapsulated by a \
\label{fig:flowremote}
\end{figure}
The FlowRemote part of the program is designed in order to allow easier configuration and calibration of the setup, as while as providing enabling the engineer to do so remotely. The idea being that --- once the Raspberry Pi and LIDAR sensor have been installed over a conveyor system and a network connection --- the engineer no longer requires a direct connection to the Raspberry Pi in order to configure and calibrate the system.
\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{./flowremote}
\caption{Design of the FlowRemote GUI.}
\label{fig:flowremotegui}
\end{figure}
FlowRemote is designed in order to allow easier configuration and calibration of the setup, as well as enabling the engineer to do so remotely. The idea being that---once the Raspberry Pi and LIDAR sensor have been installed over a conveyor system and a network connection---the engineer no longer requires a direct physical connection to the Raspberry Pi in order to configure and calibrate the system.
As described in \autoref{fig:flowremote}, FlowRemote allows the engineer to remotely preview the raw sensor data, run pre-processing on it, configure the processing parameters and deliver those back to the local processor running on the Raspberry Pi.
\section{Data Processing and Outputs}\label{sec:dataproc}
rotation algorithm, skew algorithm, curve fitting library, cross-correlation algorithm...
transmission to Profinet, output formats (float)
%\section{Data Processing and Outputs}\label{sec:dataproc}
%rotation algorithm, skew algorithm, curve fitting library, cross-correlation algorithm...
%
%transmission to Profinet, output formats (float)\todo{complete section}
\section{Housing}
Prototype housing, ideal housing.
\begin{figure}[H]
\centering
\includegraphics[width=\textwidth]{housing}
\caption{Isometric view of the underside (left) and topside (right) of the prototype housing.}
\end{figure}
For the purposes of field-testing the project, a rudimentary housing was designed in CAD and 3D printed. The housing provided a small amount of protection from the environment for the otherwise bare Raspberry Pi.
The housing was constructed around the standard Raspberry Pi 4 Model B with the netHAT modules attached, allowing for the extra ports to be accessible through the housing as well.
This housing is naturally unsuitable for production use, as it lacks adequate weather and shock-proofing.

View File

@ -1 +1,140 @@
\chapter{Validation}\label{chap:validation}
\section{Sandbox Stage}
\begin{figure}[h]
\centering
\includegraphics[width=0.75\textwidth]{prototype/mug}
\caption{Visual representation of the sensor data plotted as a color-graph.}
\end{figure}
The fundamental objective of the sandbox stage of development was to investigate the suitability of the Intel RealSense L515 LIDAR sensor.
In this stage, the testing was mainly to determine
\begin{enumerate}
\item if a connection to the sensor can be established
\item if the data received can be visually represented and manipulated
\item if the accuracy of the data was within a tolerable range
\end{enumerate}
In order to accomplish this, a precursor to the FlowDAR software was developed that was connected to the sensor directly over USB. The aim of the software was to process the raw sensor data in order to determine the cross-sectional area of an object upon a flat plane. In this case, a small cardboard box was placed against a wall.
As represented in \autoref{fig:prototype_program}, the software firstly calibrates itself to the flat plane---the wall---using linear regression to generate a straight-line. Then upon placing the object on the plane, using the techniques discussed in \autoref{chap:design}, the cross-sectional area of the object could be measured.
An object with the cross-sectional area of \SI{3150}{\milli\meter\squared} was used in this validation. The software measured \SI{3288}{\milli\meter\squared}, yielding an error of \SI{4}{\percent}.
\begin{figure}[h]
\centering
\begin{subfigure}[t]{0.45\textwidth}
\includegraphics[width=\textwidth]{prototype/fullrange.png}
\caption{Full scanning range of the LIDAR sensor, recording the geometry of
a wall and bookshelf.}
\label{fig:fullrange}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.45\textwidth}
\includegraphics[width=\textwidth]{prototype/wallpreview}
\caption{A zoomed in selection of just the straight section of wall.}
\label{fig:wallpreview}
\end{subfigure}
\medskip
\begin{subfigure}[t]{0.45\textwidth}
\includegraphics[width=\textwidth]{prototype/linearregress}
\caption{The selection is then used to run a regression algorithm, to
produce a straight line that should represent the wall's surface.}
\label{fig:linearregress}
\end{subfigure}
\hfill
\begin{subfigure}[t]{0.45\textwidth}
\includegraphics[width=\textwidth]{prototype/calib}
\caption{Calibrating the sensor using an object of known length.}
\label{fig:calib}
\end{subfigure}
\medskip
\caption{Operation of the prototype software.}
\label{fig:prototype_program}
\end{figure}
\section{Laboratory Stage}
The development of the fundamental features of this project was done in an iterative process of rapid prototyping and testing. In order to accomplish this, a controlled environment that can be easily accessed and modified must be established. This setup was realized in the Telelaboratory\footnote{Laborator for the development of remote systems at the Faculty of Electrical Engineering, University of Applied Sciences Düsseldorf}.
The setup consisted of miniature looped conveyor belt system. The looped nature of this conveyor system was advantageous, as it could be loaded with material that would continuously circulate. This allowed development to be carry on uninterrupted and even remotely if necessary. The objects used to simulate material on the belt were miniature cars that were chosen simply for their availability and simple geometry.
The LIDAR sensor was mounted using its ISO 1222 tripod mounting point on a regular camera tripod and positioned over the conveyor belt. The Raspberry Pi was connected to the laboratory network which allowed for configuration and testing to be done over the network. Using a VPN tunnel, further configuration and testing could also be done remotely from outside the laboratory network.
\subsection{Cross-Sectional Area}
The development and testing of operations to measure Cross-Sectional Area were straightforward as described in \autoref{chap:design}.
\begin{table}[h]
\centering
\begin{tabular}{| c | c |}
\hline
Object Cross-Sectional Area & Uncertainty \\ \hline
\SI{20}{\milli\meter\squared} & \SI{10}{\percent} \\
\SI{120}{\milli\meter\squared} & \SI{4}{\percent} \\ \hline
\end{tabular}
\caption{Uncertainty of Cross-Sectional Area measurement for different sized objects}\label{table:cross_uncertainty}
\end{table}
As shown in \autoref{table:cross_uncertainty}, measurements of the miniature cars---with cross-sectional areas of \SI{20}{\milli\meter\squared}---had a relatively high uncertainty of around \SI{10}{\percent}. The uncertainty was reduced to \SI{4}{\percent} when using a cardboard box of a larger size. This however, is to be expected according to the specified uncertainty of the LIDAR sensor at \SI{1}{\meter}.
\subsection{Belt Velocity}
In order to determine the accuracy and reliability of the cross-correlation algorithms, they were compared to the known velocity of the belt. This was determined simply by recording the time taken for an object to travel a known length of the belt and was determined to be \SI{11}{\centi\meter\per\second}.
While the algorithm did return a value of \SI[separate-uncertainty = true]{11(1)}{\centi\meter\per\second} while the object was in the center of the area-of-interest, the error varied up \SI{100}{\percent} while the object was near the edges of the area-of-interest. This rendered the results of the tests inconclusive. One reason could be due to the small size of the objects---height up to \SI{5}{\milli\meter}---causing strong deviations near the edges, where the sensor uncertainty is usually at its highest.
Since this error may be caused simply by the small-scale laboratory conditions, the algorithm was brought forward to be tested in field-conditions with little change.
\subsection{PLC Test}
Once the development of the Profinet interface was complete, a simple test project involving a PLC was designed in order to test the interface's functionality. The existing setup was connected via the netHAT's Ethernet interface to a PhoenixContact PLCNext controller. The PLCNext controller was wired to an I/O kit that provided various actuators and LED outputs for prototyping purposes.
The values sent to the controller by the FlowPi over the Profinet interface were the following:
\begin{itemize}
\item Cross-Sectional Area
\item Band Velocity
\item Volume Flow
\end{itemize}
A simple PLC program was written to activate an output---in this case, turning on an LED---whenever the Cross-Sectional Area was over a certain threshold value.
The FlowPi software as well as the Profinet interface were shown to be functioning as the LEDs lit up in a robust manner whenever a miniature car passed under the scanning area of the LIDAR sensor. A rigorous measurement of the latency was not carried out, however the latency was deemed to be under a second.
\subsection{Linux RT-Patch}
In order to test the effect of the Linux RT-Patch, a simple test comparing the jitter values of Profinet-IO communications was conducted.
The system was connected over Profinet to a Virtual PLC running on Codesys, and the maximum jitter values as reported by Codesys were recorded. During the \SI{30}{\second} duration of the test, the cross-section area was processed and delivered.
The results show that the RT-Patched kernel had a maximum jitter of \SI{2166}{\micro\second}, which was \SI{26}{\percent} lower than the normal kernel. This lower jitter may be indicative of higher-determinism of the system.
\section{Field-Testing Stage}
The field-testing stage was carried out at the Siep Gravel Quarry\footnote{Siep Kieswerk GmbH \& Co. KG in Jülich. See \nameref{chap:ack}.}. There, a bucket loader was being used to excavate gravel into a hopper. The hopper first filtered out larger rocks and boulders through a set of evenly spaced rods. Acting as a buffer, the hopper would continuously load a conveyor belt with gravel.
The quarry currently uses a conventional belt scale system that was placed under the conveyor belt. This simultaneously measured both belt velocity and the material mass flow---in tonnes per hour---delivering the values to a PLC in a nearby control box.
\begin{figure}[h]
\centering
\includegraphics[width=0.75\textwidth]{photographs/overview}
\caption{Siep Kieswerk GmbH \& Co. KG in Jülich where the field testing was carried out.}
\end{figure}
\begin{figure}[h]
\centering
\includegraphics[width=0.75\textwidth]{photographs/beltview}
\caption{The view of the conveyor belt and material as seen by the sensor.}
\end{figure}
\subsection{Setup and Testing}
The LIDAR sensor was attached to a walkway that went over the conveyor belt. The sensor must be placed at a minimum distance of \SI{0.5}{\meter} from the belt, in addition to clearance accounting for the height of the gravel on the belt as well. In this case, the sensor was placed at a height of \SI{1}{\meter} from the belt. The housed Raspberry Pi and various connections were also attached to the walkway.
A standard home-grade wireless access point was used to provide a local network, through which the configuration of the system could take place.
Once all the devices were connected and turned on, the pre-configured Raspberry Pi connected itself to the wireless access point that was reachable by the engineering laptop. A connection between the FlowRemote configuration software and the FlowPi processing software could be established and configuration could begin.
Configuration took place in the regular manner that was refined during the laboratory testing.
\subsection{Issues}
Upon the establishment of the connection and the preview of the sensor's data, it was immediately apparent that parts of the sensor image that contained the distance of the conveyor belt was zero. Gravel and other objects placed on the belt had regular and non-zero depth values. This meant that the conveyor belt not being ``seen'' by the sensor. In other words, the reflectivity of the conveyor belt near the wavelength of the sensor---\SI{860}{\nano\meter}---was too low to consistently and accurately calculate depth.
\subsection{Solutions}
This issue meant that the fundamental principles in which the operation of the measurement software depended on, was unusable. A new approach must be investigated by finding a method to obtain the geometry of the conveyor belt, and using a modified algorithm to calculate its volume without continuous access to the conveyor belt's geometry. In essence, the gravel will appear to be ``floating'' in the sensor image. Such an algorithm may use more precise measurements of the conveyor belt during the configuration and calibration phase, in order to make estimates of the conveyor belt geometry during live processing.
Ultimately however, the implementation of a solution to this issue requires another iteration of development that is not within the scope of this project.

View File

@ -1,9 +1,41 @@
\chapter{Conclusion and Outlook}\label{chap:sum}
\section{Final State of the Project}
The state of this project upon completion can be analyzed by recalling the research question and requirements set out in \autoref{chap:intro}. The research question being: \textit{How can a cheaper and easier to install measurement system for bulk material flow on a conveyor belt be designed?}
\section{Remaining Work}
A breakdown of the various factors that determine the suitability of the implementation presented in this project:
\begin{description}
\section{Challenges and Obstacles}
\item[Sensor Suitability] \hfill \\ The wavelength of the infrared laser used in this project of \SI{860}{\nano\meter} was shown to be unsuitable for use with the conveyor belt during the on-site testing. This is most likely due to the absorption spectrum of the belt material that had very flow reflectivity at this infrared wavelength. The similarly black colored belt used in laboratory testing however was visible to the LIDAR sensor. A further study of belt materials commonly deployed in the field is necessary.
\section{Feasibility as Commercial Product}
\item[Temperature Suitability] \hfill \\ On the higher end of the temperature range, the LIDAR sensor used in this project is the limiting factor. The maximum temperature of \SI{30}{\celsius} is easily exceeded in particularly hot weather or even in direct sunlight. Design of the housing must account for adequate cooling, as well as reflectivity, should the system be deployed in view of direct sunlight.
\item[Hardware Suitability] \hfill \\ The Raspberry Pi provided sufficient processing power in order to develop, test and deploy the prototype software. The flexibility of the Linux platform also grants sufficient flexibility in order to easily add further functionality---i.e. a web server or other interface---or modify existing functionality.
The netHAT was also shown to be performant and stable during testing. Combined with the Raspberry Pi, it provides a low cost platform to bring IoT to Industrial Networking.
\item[Process Suitability] \hfill \\ The process flow which was developed with ease-of-use in mind was shown to be beneficial during both laboratory and field-testing. Once the sensor and Pi units were set up on the belt, the engineer could continue working on the configuration of the system remotely---or even externally through the use of a VPN.
\item[Software Suitability] \hfill \\ The software architecture as laid-out in \autoref{chap:design} was shown to fulfill the requirements of the process. The individual software elements and libraries such as ZeroMQ and Qt were shown to be robust enough to carry out the configuration process. The software was shown to successfully combine the separate process elements into a single workflow which simplified the configuration process.
\item[Cost Suitability] \hfill \\ At a development cost of just under €600---even at a profit margin of \SI{500}{\percent}---the system is still able to remain competitive with conventional systems in use in the industry today\footnote{See \autoref{table:cost}}.
\item[Housing Suitability] \hfill \\ The housing designed for the field-testing stage of this project is only suitable as a prototype. A more robust housing must be developed out of more durable materials, and account for weather and vibration.
\end{description}
\section{Project Status and Feasibility}
Although a commercially viable product was not realized during the duration of this project, great strides were nevertheless made towards this goal.
This work has shown that commercially available products do have the necessary performance to carry out the operations required to deliver the intended results.
It has also shown, that the software development methods used, methods that are more common in commercial software development rather than industrial development, are highly flexible and powerful. This was naturally enabled by the availability of the Linux kernel on smaller and more performant platforms. This work shows the strong potential of merging the industrial world with that of more conventional software development, also known Industrial IoT.
Discounting the setbacks faced during field-testing due to sensor and material issues, laboratory testing has shown that a fully-functioning result of this project is in theory, feasible.
\section{Work Remaining}
One or two more iterations of development are required in order to fully realize this project. The fundamental operations have already been developed and tested, namely the analysis of the cross-sectional area and belt velocity.
The issues at this stage are only that of signal acquisition and signal pre-processing. The field-testing has shown that the expectation of the signal was slightly different from reality due to the optical properties of the conveyor belt. New methods and operations need to be developed to circumvent these issues.
Once these signal issues have been overcome, all that remains is testing the system for accuracy, stability and robustness. Future work must deal with the questions of environment-proofing and housing.
In order to study the commercial viability of this product to its end, future work must also investigate the potential sourcing and supply chains of the hardware used. As mentioned earlier in this work, the RealSense L515 has been discontinued, and other suitable hardware must be sourced and integrated.

View File

@ -1,11 +0,0 @@
\chapter{Acknowledgments}
I would like to give special thanks to Prof. Dr.-Ing. Michael Protogerakis for his attentive supervision of my Master Project and this thesis.
Mr. N. Stuhrmann and Mr. M. Meilchen too have my gratitude for their tireless assistance in the laboratory.
Thank you to Prof. Dr.-Ing. Ralf Beck for offering to be the second examiner of this thesis.
Mr. M. Viehöfer from Siep Kieswerk GmbH \& Co. KG has my deepest appreciation for their generous support, allowing me to test my prototypes on their site.
Finally I would like to thank XX\todo{fill in proofreader} for their proofreading of this work, and my partner I. Gvazdaityte whose everlasting support made this work possible.

View File

@ -1,10 +0,0 @@
\cleardoublepage
\addcontentsline{toc}{chapter}{Abstract}
\vspace*{50pt}
\begin{Huge}
\textbf{Abstract}
\end{Huge}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Diam phasellus vestibulum lorem sed risus ultricies tristique nulla. Sagittis eu volutpat odio facilisis mauris sit amet massa. Duis ultricies lacus sed turpis tincidunt id aliquet. Diam vulputate ut pharetra sit amet aliquam id. Sapien eget mi proin sed. Amet nisl purus in mollis nunc sed id semper. Sapien et ligula ullamcorper malesuada. Cras tincidunt lobortis feugiat vivamus at. Cras tincidunt lobortis feugiat vivamus at augue eget. Nibh nisl condimentum id venenatis a condimentum. Consequat semper viverra nam libero justo. Turpis egestas pretium aenean pharetra magna ac. Pellentesque massa placerat duis ultricies lacus sed turpis tincidunt id. Nibh ipsum consequat nisl vel pretium lectus quam. Fusce id velit ut tortor pretium viverra suspendisse potenti nullam.
Mauris augue neque gravida in fermentum et sollicitudin ac orci. Maecenas accumsan lacus vel facilisis volutpat est velit. Nunc sed velit dignissim sodales ut. At erat pellentesque adipiscing commodo elit at imperdiet. Sollicitudin ac orci phasellus egestas tellus. Tellus cras adipiscing enim eu turpis egestas. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. Vitae purus faucibus ornare suspendisse sed nisi. Viverra adipiscing at in tellus integer feugiat scelerisque varius. Ut etiam sit amet nisl purus in mollis nunc sed. Vitae auctor eu augue ut. Enim nunc faucibus a pellentesque sit amet porttitor. Sit amet consectetur adipiscing elit ut. Egestas quis ipsum suspendisse ultrices gravida. Volutpat blandit aliquam etiam erat velit scelerisque in dictum. Lacus vel facilisis volutpat est velit egestas dui id. Porta nibh venenatis cras sed felis eget velit.

2
I-Abstract/Abstract.tex Normal file
View File

@ -0,0 +1,2 @@
\chapter{Abstract}
The availability of powerful commercial hardware in recent years has enabled not only the potential to reduce costs, but also allow the integration of conventional software development methods of Industrial IoT. In order to test the viability of these products and methods, this project concerns itself with developing a cheaper and easier-to-install alternative to the conventional belt scales used for measuring the volume of bulk material on industrial conveyor belts. Previous research has shown that optical and laser-based methods for measuring bulk material are indeed possible, however only through to use of research-grade or industrial equipment. This work demonstrates---through the development of a prototype with the accompanying software---that a system using the Intel RealSense L515 and a Raspberry Pi has the required performance to run the required analysis, and deliver those results over Industrial Ethernet to conventional industrial PLCs. Although a fully-functional product was not able to be realized due to the unsuitable optical properties of the tested conveyor belt, the system is capable enough to deliver results in a laboratory setting. More work is required to further fine-tune the signal pre-processing issues in the field.

View File

@ -1,10 +0,0 @@
\chapter{Abkürzungsverzeichnis}
\begin{tabular}{l c l}
\acrom{KLM}{\textit{\textbf{K}err-\textbf{L}ens \textbf{M}ode Locking}}{Kerr-Linsen-Modenkopplung}
\acrom{CW}{\textit{\textbf{C}ontinuous \textbf{W}ave}}{kontinuierlicher Betrieb}
\acrom{KL}{\textit{\textbf{K}err \textbf{L}ens}}{Kerr-Linse}
\acrom{ML}{\textit{\textbf{M}ode \textbf{L}ocked}}{modengekoppelt}
\acrom{CAV000}{\textit{Con\textbf{cav}e}}{konkaver Spiegel mit einem Radius $R = 000 \text{mm}$}
\acrom{VEX000}{\textit{Con\textbf{vex}}}{konvexer Spiegel mit einem Radius $R = 000 \text{mm}$}
\acrom{TFP}{\textit{\textbf{T}hin \textbf{F}ilm \textbf{P}olarizer}}{Dünnschichtpolarisatoren}
\end{tabular}

19
II-Thanks/Thanks.tex Normal file
View File

@ -0,0 +1,19 @@
\chapter{Acknowledgments}\label{chap:ack}
I would like to give special thanks to Prof. Dr.-Ing. Michael Protogerakis for his attentive supervision of my Master Project and this thesis.
N. Stuhrmann and M. Meilchen too have my gratitude for their tireless assistance in the laboratory.
Thank you to Prof. Dr.-Ing. Ralf Beck for offering to be the second examiner of this thesis.
M. Viehöfer from Siep Kieswerk GmbH \& Co. KG has my deepest appreciation for their generous support, allowing me to test my prototypes on their site.
Finally, I would like to thank S. Nagappan and D. Rashid for their proofreading of this work, and my partner I. Gvazdaityte whose everlasting support made this work possible.
\vfill
\begin{small}
Document produced with \LaTeX\\
12pt Computer Modern\\
Last updated: \today
\end{small}

View File

@ -1,5 +1,5 @@
\chapter{Declaration of Academic Integrity --- Eidesstattliche Erklärung}
I have written this thesis independently and I have not used any other sources or aids other than the ones stated.
I have written this thesis independently, and I have not used any other sources or aids other than the ones stated.
Düsseldorf, February 2022

View File

@ -1,12 +1,10 @@
\documentclass[12pt,twoside,openright]{scrbook}
\usepackage[utf8]{inputenc}
%\usepackage{pdfpages}
\usepackage{amsfonts}
\usepackage{amssymb}
%\usepackage{natbib}
\usepackage{biblatex}
\usepackage[defernumbers=true]{biblatex}
\addbibresource{literatur.bib}
\usepackage{subcaption}
@ -16,7 +14,7 @@
\usepackage{siunitx}
\sisetup{locale = DE}
\usepackage{enumitem}
\usepackage[inline]{enumitem}
\setlist{itemsep=3pt}
\usepackage[font={small,it}]{caption}
@ -37,13 +35,18 @@
\usepackage{wrapfig}
%\usepackage[nottoc,numbib]{tocbibind}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{tablefootnote}
\usepackage{siunitx}
%\usepackage{palatino}
\usepackage{geometry}
\geometry{
a4paper,
total={170mm,257mm},
inner=35mm,
inner=30mm,
top=15mm,
bottom=25mm,
outer=25mm
@ -75,6 +78,8 @@ pdfauthor={Nareshkumar Rao},
pdfkeywords={LIDAR, conveyor belt}
}
\raggedbottom
\begin{document}
\pagestyle{plain}
\emergencystretch 1.5em
@ -85,11 +90,10 @@ pdfkeywords={LIDAR, conveyor belt}
\include{./0-Cover/Cover}
\include{Abstract}
\include{./6-Thanks/Thanks}
\include{./I-Eides/Eides}
%\include{./II-Abkuerzungen/Abkuerzungen}
\include{./I-Abstract/Abstract}
\include{./II-Thanks/Thanks}
\include{./III-Eides/Eides}
%\include{./II-Glossary/Glossary}
\setcounter{secnumdepth}{2}
\setcounter{tocdepth}{1}
@ -109,7 +113,10 @@ pdfkeywords={LIDAR, conveyor belt}
%\bibliographystyle{plain}
%\bibliography{literatur}
\printbibliography
\printbibheading[heading=bibintoc]
\printbibliography[notkeyword=online,title=Academic References,heading=subbibintoc]
\printbibliography[keyword=online,title=Online References,heading=subbibintoc]
%\listoftodos
\end{document}

10
dict.txt Normal file
View File

@ -0,0 +1,10 @@
RealSense
ZeroMQ
netHAT
Profinet
FlowRemote
FlowPi
CIFX
PhoenixContact
PLCNext

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

View File

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 26.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 742.2066 748.90112"
xml:space="preserve"
sodipodi:docname="conveyor_top.svg"
width="742.2066"
height="748.90112"
inkscape:version="1.1.1 (1:1.1+202109281949+c3084ef5ed)"
inkscape:export-filename="/home/naresh/Documents/College/Thesis/Masterarbeit/graphics/design/conveyor_top.png"
inkscape:export-xdpi="190"
inkscape:export-ydpi="190"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs57"><marker
style="overflow:visible"
id="Arrow1Mend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true"><path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path8475" /></marker><marker
style="overflow:visible"
id="Arrow1Lend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:isstock="true"><path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path8469" /></marker><marker
style="overflow:visible"
id="Arrow1Mend-3"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true"><path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path8475-6" /></marker></defs><sodipodi:namedview
id="namedview55"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="0.65625"
inkscape:cx="211.04762"
inkscape:cy="415.2381"
inkscape:window-width="1920"
inkscape:window-height="956"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<style
type="text/css"
id="style2">
.st0{fill:#E1E1E1;}
.st1{fill:none;stroke:#8E8E8E;stroke-miterlimit:10;}
.st2{fill:none;}
.st3{fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;}
.st4{fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;stroke-dasharray:11.766,11.766;}
.st5{fill:none;stroke:#000000;stroke-miterlimit:10;}
.st6{fill:#E1E1E1;stroke:#000000;stroke-miterlimit:10;}
</style>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
transform="translate(-116.01962,-144.63736)"
sodipodi:insensitive="true"><rect
style="fill:#ffffff;stroke-width:3.49444;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect33205"
width="742.2066"
height="748.90112"
x="116.01962"
y="144.63736" /></g><g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
transform="translate(-116.01962,-144.63736)"><polygon
class="st0"
points="624.62,716.44 605.46,843 378.22,843 400.2,705.76 354.24,566.2 399.43,383.18 347.01,220.47 601.5,220.47 629.99,394.62 593.22,575.74 "
id="polygon4"
style="fill:#e1e1e1"
transform="matrix(1,0,0,1.0039677,0,-1.4347766)" /><path
class="st2"
d="M 771,844 H 206 V 219 c 54.37,0 108.74,0 163.1,0 133.97,0 267.93,0 401.9,0 0,208.33 0,416.67 0,625 z"
id="path8"
style="fill:none" /><line
class="st3"
x1="298.75"
y1="219"
x2="298.75"
y2="844"
id="line10"
style="fill:none;stroke:#000000;stroke-width:3.77953;stroke-miterlimit:10;stroke-dasharray:none" /><line
class="st3"
x1="682.10999"
y1="219.91"
x2="682.10999"
y2="844.90997"
id="line12"
style="fill:none;stroke:#000000;stroke-width:3.77953;stroke-miterlimit:10;stroke-dasharray:none" /><path
style="fill:none;stroke:#000000;stroke-width:3.77953;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:22.6772, 3.77953;stroke-dashoffset:0;stroke-opacity:1"
d="M 240.24265,532.40999 H 740.61733"
id="path1005" /><text
xml:space="preserve"
style="font-size:26.6667px;line-height:1.25;font-family:Fut;-inkscape-font-specification:Fut;stroke-width:0.781658"
x="449.03024"
y="800.29651"
id="text4133"><tspan
sodipodi:role="line"
id="tspan4131"
x="449.03024"
y="800.29651"
style="font-size:26.6667px;stroke-width:0.781658">gravel</tspan></text><text
xml:space="preserve"
style="font-size:26.6667px;line-height:1.25;font-family:Fut;-inkscape-font-specification:Fut"
x="749.66528"
y="542.35138"
id="text6247"><tspan
sodipodi:role="line"
id="tspan6245"
x="749.66528"
y="542.35138">slice</tspan></text><path
style="fill:none;stroke:#000000;stroke-width:3.77953;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend-3)"
d="M 201.86139,326.1958 V 736.8042"
id="path8366" /><text
xml:space="preserve"
style="font-size:26.6667px;line-height:1.25;font-family:Fut;-inkscape-font-specification:Fut"
x="-653.14728"
y="180.79147"
id="text9888"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan9886"
x="-653.14728"
y="180.79147">direction of travel</tspan></text><text
xml:space="preserve"
style="font-size:26.6667px;line-height:1.25;font-family:Fut;-inkscape-font-specification:Fut"
x="394.14648"
y="200.00699"
id="text26176"><tspan
sodipodi:role="line"
id="tspan26174"
x="394.14648"
y="200.00699"
style="font-size:26.6667px">conveyor belt</tspan></text></g></svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -0,0 +1,225 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 26.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 861.8521 748.90112"
xml:space="preserve"
sodipodi:docname="conveyor_xcorr.svg"
width="861.85211"
height="748.90112"
inkscape:version="1.1.1 (1:1.1+202109281949+c3084ef5ed)"
inkscape:export-filename="/home/naresh/Documents/College/Thesis/Masterarbeit/graphics/design/conveyor_xcorr.png"
inkscape:export-xdpi="190"
inkscape:export-ydpi="190"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs57"><marker
style="overflow:visible"
id="Arrow1Mend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true"><path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path8475" /></marker><marker
style="overflow:visible"
id="Arrow1Lend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:isstock="true"><path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path8469" /></marker><marker
style="overflow:visible"
id="Arrow1Mend-3"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true"><path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path8475-6" /></marker><marker
style="overflow:visible"
id="Arrow1Mend-3-5"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true"><path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path8475-6-3" /></marker></defs><sodipodi:namedview
id="namedview55"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="0.65625"
inkscape:cx="706.28571"
inkscape:cy="302.47619"
inkscape:window-width="1920"
inkscape:window-height="956"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer2" />
<style
type="text/css"
id="style2">
.st0{fill:#E1E1E1;}
.st1{fill:none;stroke:#8E8E8E;stroke-miterlimit:10;}
.st2{fill:none;}
.st3{fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;}
.st4{fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;stroke-dasharray:11.766,11.766;}
.st5{fill:none;stroke:#000000;stroke-miterlimit:10;}
.st6{fill:#E1E1E1;stroke:#000000;stroke-miterlimit:10;}
</style>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
transform="translate(-116.01962,-144.63736)"
style="display:inline"><rect
style="fill:#ffffff;stroke-width:3.76557;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
id="rect33205"
width="861.85211"
height="748.90112"
x="116.01962"
y="144.63736" /></g><g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="Layer 1"
transform="translate(-116.01962,-144.63736)"
sodipodi:insensitive="true"><polygon
class="st0"
points="624.62,716.44 605.46,843 378.22,843 400.2,705.76 354.24,566.2 399.43,383.18 347.01,220.47 601.5,220.47 629.99,394.62 593.22,575.74 "
id="polygon4"
style="fill:#e1e1e1"
transform="matrix(1,0,0,1.0039677,0,-1.4347766)" /><path
class="st2"
d="M 771,844 H 206 V 219 c 54.37,0 108.74,0 163.1,0 133.97,0 267.93,0 401.9,0 0,208.33 0,416.67 0,625 z"
id="path8"
style="fill:none" /><line
class="st3"
x1="298.75"
y1="219"
x2="298.75"
y2="844"
id="line10"
style="fill:none;stroke:#000000;stroke-width:3.77953;stroke-miterlimit:10;stroke-dasharray:none" /><line
class="st3"
x1="682.10999"
y1="219.91"
x2="682.10999"
y2="844.90997"
id="line12"
style="fill:none;stroke:#000000;stroke-width:3.77953;stroke-miterlimit:10;stroke-dasharray:none" /><text
xml:space="preserve"
style="font-size:26.6667px;line-height:1.25;font-family:Fut;-inkscape-font-specification:Fut;stroke-width:0.781658"
x="449.03021"
y="870.59503"
id="text4133"><tspan
sodipodi:role="line"
id="tspan4131"
x="449.03021"
y="870.59503"
style="font-size:26.6667px;stroke-width:0.781658">gravel</tspan></text><path
style="fill:none;stroke:#000000;stroke-width:3.77953;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend-3)"
d="M 201.86139,326.1958 V 736.8042"
id="path8366" /><text
xml:space="preserve"
style="font-size:26.6667px;line-height:1.25;font-family:Fut;-inkscape-font-specification:Fut"
x="-653.14728"
y="180.79147"
id="text9888"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan9886"
x="-653.14728"
y="180.79147">direction of travel</tspan></text><text
xml:space="preserve"
style="font-size:26.6667px;line-height:1.25;font-family:Fut;-inkscape-font-specification:Fut"
x="398.61346"
y="200.00699"
id="text26176"><tspan
sodipodi:role="line"
id="tspan26174"
x="398.61346"
y="200.00699"
style="font-size:26.6667px">conveyor belt</tspan></text><rect
style="fill:#000000;fill-opacity:0.115125;stroke:#000000;stroke-width:5.66929;stroke-miterlimit:4;stroke-dasharray:34.0157, 34.0157;stroke-dashoffset:0;stroke-opacity:1"
id="rect1174"
width="158.6759"
height="608.72565"
x="416.29861"
y="228.56915" /><path
style="fill:none;stroke:#000000;stroke-width:3.77953;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend-3)"
d="M 728.80467,494.44842 H 590.73354"
id="path1958"
sodipodi:nodetypes="cc" /><path
style="fill:none;stroke:#000000;stroke-width:3.77953;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend-3-5)"
d="M 728.80467,605.65009 H 509.77076"
id="path1958-5" /><text
xml:space="preserve"
style="font-size:26.6667px;line-height:1.25;font-family:Fut;-inkscape-font-specification:Fut"
x="733.09143"
y="504.1077"
id="text3120"><tspan
sodipodi:role="line"
id="tspan3118"
x="733.09143"
y="504.1077"
style="font-size:26.6667px">area of interest</tspan></text><path
style="fill:none;stroke:#000000;stroke-width:1.88976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.66929, 5.66929;stroke-dashoffset:0;stroke-opacity:1"
d="M 459.98682,838.32549 V 227.55484"
id="path8139" /><path
style="fill:none;stroke:#000000;stroke-width:1.88976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.66929, 5.66929;stroke-dashoffset:0;stroke-opacity:1"
d="M 499.98682,838.32549 V 227.55484"
id="path8139-6" /><path
style="fill:none;stroke:#000000;stroke-width:1.88976;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.66929, 5.66929;stroke-dashoffset:0;stroke-opacity:1"
d="M 539.98682,838.32549 V 227.55484"
id="path8139-6-7" /><text
xml:space="preserve"
style="font-size:26.6667px;line-height:1.25;font-family:Fut;-inkscape-font-specification:Fut"
x="733.89874"
y="614.26465"
id="text10739"><tspan
sodipodi:role="line"
id="tspan10737"
x="733.89874"
y="614.26465"
style="font-size:26.6667px">vertical strips</tspan></text></g></svg>

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 144 KiB

BIN
graphics/flowremote.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 KiB

BIN
graphics/housing.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

2313
graphics/housing.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 581 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 KiB

BIN
graphics/prototype/calib.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
graphics/prototype/crosssec.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
graphics/prototype/fullrange.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

698
graphics/prototype/fullrange.svg Executable file
View File

@ -0,0 +1,698 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="162.56001mm"
height="121.92mm"
viewBox="0 0 162.56001 121.92"
version="1.1"
id="svg8"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
sodipodi:docname="fullrange.svg"
inkscape:export-filename="\\192.168.56.101\sambashare\Work\AutoProjekt\PyProjekt\docs\graphics\prototype\fullrange.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2">
<marker
style="overflow:visible;"
id="marker1134"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path1132" />
</marker>
<marker
style="overflow:visible;"
id="Arrow1Mend"
refX="0.0"
refY="0.0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="scale(0.4) rotate(180) translate(10,0)"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
id="path859" />
</marker>
<marker
style="overflow:visible"
id="marker1134-0"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:isstock="true">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path1132-8" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="300.93009"
inkscape:cy="224.26162"
inkscape:document-units="mm"
inkscape:current-layer="layer2"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-10.190218,-33.534046)"
sodipodi:insensitive="true">
<image
width="162.56001"
height="121.92"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
QmCC
"
id="image843"
x="10.190218"
y="33.534046" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2">
<path
style="fill:none;stroke:#000000;stroke-width:1.05833333;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
d="M 36.096725,73.894343 54.995534,36.285715"
id="path848" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.90635px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.172659"
x="27.568451"
y="80.550125"
id="text1128"><tspan
sodipodi:role="line"
id="tspan1126"
x="27.568451"
y="80.550125"
style="stroke-width:0.172659">Wall</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:6.90634px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.172659"
x="71.942307"
y="89.127876"
id="text1128-6"><tspan
sodipodi:role="line"
x="71.942307"
y="89.127876"
style="stroke-width:0.172659"
id="tspan1172">Bookshelf</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1.05833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1134-0)"
d="m 92.0372,82.965772 8.69345,-22.489583"
id="path1130"
sodipodi:nodetypes="cc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
graphics/prototype/mug.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -1,17 +1,59 @@
@article{minDesignExperimentDynamic2020,
@inproceedings{fojtik2014,
title = {Measurement of the Volume of Material on the {{Conveyor Belt}} Measuring of the Volume of Wood Chips during Transport on the {{Conveyor Belt}} Using a Laser Scanning},
booktitle = {Proceedings of the 2014 15th {{International Carpathian Control Conference}} ({{ICCC}})},
author = {Fojtík, David},
date = {2014-05},
pages = {121--124},
doi = {10.1109/CarpathianCC.2014.6843581},
abstract = {This article describe a mathematical background of calculating volume of Wood Chips that is measured by a laser scanning method during transport on Conveyor Belt. This method is realized in company Biocel Paskov a. s.},
file = {/home/naresh/Zotero/storage/KAN8TYN3/Fojtík - 2014 - Measurement of the volume of material on the Conve.pdf;/home/naresh/Zotero/storage/D4YWDFB5/6843581.html}
}
@article{green1997,
title = {Velocity and Mass Flow Rate Profiles of Dry Powders in a Gravity Drop Conveyor Using an Electrodynamic Tomography System},
author = {Green, R. G. and Rahmat, M. F. and Dutton, K. and Evans, K. and Goude, A. and Henry, M.},
date = {1997-04},
journaltitle = {Measurement Science and Technology},
shortjournal = {Meas. Sci. Technol.},
volume = {8},
number = {4},
pages = {429--436},
publisher = {{IOP Publishing}},
issn = {0957-0233},
doi = {10.1088/0957-0233/8/4/010},
abstract = {This paper describes measurements made on a gravity drop conveyor using two arrays of axially spaced electrodynamic sensors to measure axial velocities close to the wall of the conveyor and velocity profiles both of flowing sand and of plastic beads. The level of correlation obtained using pixels is investigated. The velocity profile is combined with a tomographic concentration profile to estimate the mass flow profile, which is summed over the measurement cross section to estimate the mass flow rate. A calibration of the tomographically determined mass flow rate versus the actual mass flow rate is presented.},
langid = {english},
file = {/home/naresh/Zotero/storage/YXA77VII/Green et al. - 1997 - Velocity and mass flow rate profiles of dry powder.pdf}
}
@article{min2020,
title = {Design and {{Experiment}} of {{Dynamic Measurement Method}} for {{Bulk Material}} of {{Large Volume Belt Conveyor Based}} on {{Laser Triangulation Method}}},
author = {Min, Fusong and Lou, Andong and Wei, Qun},
date = {2020-01-17},
date = {2020-01},
journaltitle = {IOP Conference Series: Materials Science and Engineering},
shortjournal = {IOP Conf. Ser.: Mater. Sci. Eng.},
volume = {735},
number = {1},
pages = {012029},
publisher = {{IOP Publishing}},
issn = {1757-899X},
doi = {10.1088/1757-899X/735/1/012029},
url = {https://iopscience.iop.org/article/10.1088/1757-899X/735/1/012029},
urldate = {2021-11-05},
file = {/home/naresh/Zotero/storage/L4QCBM6Z/Min et al. - 2020 - Design and Experiment of Dynamic Measurement Metho.pdf}
abstract = {In order to improve the measurement accuracy and efficiency of bulk material transported by large-capacity belt conveyor, an online dynamic non-contact metering system based on laser triangulation is designed on the belt conveyor platform. The system includes: laser Scanners, industrial camera, signal processing software, mechanical assemblies. High-precision basic measurement data is an important guarantee for the accuracy of bulk flow measurement. The laser scanner is used as a line source, and the scanning frequency is set to 300HZ, which is installed on the belt conveyor. Industrial camera accepts images produced by a line source projected onto the bulk surface. The signal processing software system analyzes the images, and uses the triangulation method directly calculate the three-dimensional contour information and volume flow of the bulk material. The flow filtering algorithm filters the instantaneous flow, smoothing the fluctuation of the flow data to reflect the real changes of the dry and wet degree of the bulk material on the belt, the degrees of surface cracking and shapes. Establish a mathematical model based on neural network and apply the belt shaking elimination algorithm to correct the previously calculated flow data to reduce the measurement error. In order to restore the actual belt conveyor bulk transportation conditions, a test belt with length 20m and speed 2m/s was produced according to the actual size. The physical simulation test of bulk material for potassium salt was carried out, the results show that the on-line measurement method based on laser triangular method has high efficiency and stable operation, and eliminates the influence of bulk density. The measurement error is ≤3.},
langid = {english},
file = {/home/naresh/Zotero/storage/T7EPJ6J5/Min et al. - 2020 - Design and Experiment of Dynamic Measurement Metho.pdf}
}
@online{nethatHilscher,
title = {{{netHAT}}},
date = {2017-08-16T10:08:41+01:00},
url = {https://www.hilscher.com},
urldate = {2022-01-20},
abstract = {The netHAT module upgrades a Raspberry Pi® to a Real-Time Ethernet capable slave device allowing the exchange of cyclic process data between a Pi application and a Real-Time Ethernet network.},
langid = {english},
organization = {{Hilscher Gesellschaft für Systemautomation mbH}},
keywords = {online},
file = {/home/naresh/Zotero/storage/ZCRJXLMW/nethat.html}
}
@inproceedings{pizlo2010,
@ -26,16 +68,39 @@
doi = {10.1145/1755913.1755922},
abstract = {While managed languages such as C\# and Java have become quite popular in enterprise computing, they are still considered unsuitable for hard real-time systems. In particular, the presence of garbage collection has been a sore point for their acceptance for low-level system programming tasks. Real-time extensions to these languages have the dubious distinction of, at the same time, eschewing the benefits of high-level programming and failing to offer competitive performance. The goal of our research is to explore the limitations of high-level managed languages for real-time systems programming. To this end we target a real-world embedded platform, the LEON3 architecture running the RTEMS real-time operating system, and demonstrate the feasibility of writing garbage collected code in critical parts of embedded systems. We show that Java with a concurrent, real-time garbage collector, can have throughput close to that of C programs and comes within 10\% in the worst observed case on realistic benchmark. We provide a detailed breakdown of the costs of Java features and their execution times and compare to real-time and throughput-optimized commercial Java virtual machines.},
isbn = {978-1-60558-577-2},
keywords = {java virtual machine,memory management,real-time systems},
file = {/home/naresh/Zotero/storage/JQHSRQ3V/Pizlo et al. - 2010 - High-level programming of embedded hard real-time .pdf}
}
@misc{protogerakisInterview2022,
title = {A Discussion on the Opportunities and Implementation of {{LIDAR-based}} Volumetric Analysis for Industrial Applications},
year = {Wintersemester 2021/22},
editora = {Protogerakis, Michael},
editoratype = {collaborator},
annotation = {Interviewees: \_:n41}
}
@article{qiao2022,
title = {Dual-Field Measurement System for Real-Time Material Flow on Conveyor Belt},
author = {Qiao, Wei and Lan, Yuan and Dong, Huijie and Xiong, Xiaoyan and Qiao, Tiezhu},
date = {2022-03-01},
journaltitle = {Flow Measurement and Instrumentation},
shortjournal = {Flow Measurement and Instrumentation},
volume = {83},
pages = {102082},
issn = {0955-5986},
doi = {10.1016/j.flowmeasinst.2021.102082},
abstract = {In this paper, an innovative dual-field measurement system is proposed for measuring the real-time material flow on the conveyor belt. The system consists of two light sources to illuminate the upper and the lower surface of the conveyor belt, respectively, and two binocular cameras to capture the dual-field contour images. The contour curves are extracted from the images by the contour acquisition algorithm and fitted with linear interpolation functions for the calculation of instantaneous cross-sectional area of material flow. Then the real-time volume of material flow is obtained according to the belt speed. Compared with conventional visual methods, the proposed method is no need to preliminarily acquire the data of the empty belt as well as hardly affected by belt deformation. Some measured objects are prepared for both sectional area and volume measurement. The results show that the accuracy of the proposed system can achieve up to 96.3\% and 96.05\% for the volume measurement of regular materials and coals, respectively, which is superior to the conventional visual method. The proposed measurement method has strong robustness and low construction cost, which is expected to generalize and apply in the bulk material transport field.},
langid = {english},
file = {/home/naresh/Zotero/storage/CF3FGGIS/Qiao et al. - 2022 - Dual-field measurement system for real-time materi.pdf;/home/naresh/Zotero/storage/HBY4G8LX/S0955598621001837.html}
}
@online{qtWebsite,
title = {Qt | {{Cross-platform}} Software Development for Embedded \& Desktop},
url = {https://www.qt.io},
urldate = {2022-01-14},
abstract = {Qt is the faster, smarter way to create innovative devices, modern UIs \& applications for multiple screens. Cross-platform software development at its best.},
langid = {english},
keywords = {online},
file = {/home/naresh/Zotero/storage/XXBWBBYM/www.qt.io.html}
}
@ -48,16 +113,68 @@
urldate = {2022-01-06},
abstract = {Intel® RealSense™ SDK},
organization = {{Intel® RealSense™}},
keywords = {camera-api,computer-vision,developer-kits,hardware,library,librealsense,sdk}
keywords = {online}
}
@misc{realsenseDatasheet,
title = {Intel {{RealSense LiDAR Camera L515 Datasheet}}},
date = {2021-01},
keywords = {online}
}
@online{rpiSpecs,
title = {Raspberry {{Pi}} 4 {{Model B}} Specifications},
author = {Ltd, Raspberry Pi},
url = {https://www.raspberrypi.com/products/raspberry-pi-4-model-b/},
urldate = {2022-01-19},
abstract = {Your tiny, dual-display, desktop~computer …and robot brains, smart home hub, media centre, networked AI core, factory controller, and much more.},
langid = {british},
organization = {{Raspberry Pi}},
keywords = {online},
file = {/home/naresh/Zotero/storage/5MZGKNTH/specifications.html}
}
@online{rtwiki,
title = {Real-{{Time Linux Wiki}}},
url = {https://rt.wiki.kernel.org/index.php/Main_Page},
urldate = {2022-01-06},
keywords = {online},
file = {/home/naresh/Zotero/storage/QVWI8QGE/Main_Page.html}
}
@article{tomobe2006,
title = {Continuous {{Mass Measurement}} on {{Conveyor Belt}}},
author = {Tomobe, Yuki and Tasaki, Ryosuke and Yamazaki, Takanori and Ohnishi, Hideo and Kobayashi, Masaaki and Kurosu, Shigeru},
date = {2006-01-01},
journaltitle = {IEEJ Transactions on Electronics, Information and Systems},
volume = {126},
pages = {264--269},
issn = {0385-4221},
doi = {10.1541/ieejeiss.126.264},
abstract = {The continuous mass measurement of packages on a conveyor belt will become greatly important. In the mass measurement, the sequence of products is generally random. An interesting possibility of raising throughput of the conveyor line without increasing the conveyor belt speed is offered by the use of two or three conveyor belt scales (called a multi-stage conveyor belt scale). The multi-stage conveyor belt scale can be created which will adjust the conveyor belt length to the product length. The conveyor belt scale usually has maximum capacities of less than 80kg and 140cm, and achieves measuring rates of more than 150 packages per minute and more. The output signals from the conveyor belt scale are always contaminated with noises due to vibrations of the conveyor and the product to be measured in motion. In this paper an employed digital filter is of Finite Impulse Response (FIR) type designed under the consideration on the dynamics of the conveyor system. The experimental results on the conveyor belt scale suggest that the filtering algorithms are effective enough to practical applications to some extent.},
keywords = {digital filter,mass measurement,multi-stage conveyor belt scale},
annotation = {ADS Bibcode: 2006ITEIS.126..264T},
file = {/home/naresh/Zotero/storage/P628FS3A/Tomobe et al. - 2006 - Continuous Mass Measurement on Conveyor Belt.pdf}
}
@article{zeng2015,
title = {Measurement of Bulk Material Flow Based on Laser Scanning Technology for the Energy Efficiency Improvement of Belt Conveyors},
author = {Zeng, Fei and Wu, Qing and Chu, Xiuming and Yue, Zhangsi},
date = {2015-11-01},
journaltitle = {Measurement},
shortjournal = {Measurement},
volume = {75},
pages = {230--243},
issn = {0263-2241},
doi = {10.1016/j.measurement.2015.05.041},
url = {https://www.sciencedirect.com/science/article/pii/S0263224115003061},
urldate = {2022-01-27},
abstract = {Bulk material flow is the key variable of speed control technology and is responsible for the improving energy efficiency in belt conveyors. This paper presents the design and verification of a mathematical model intended for the measurement of bulk material flow on belt conveyor using laser scanning technology. This problem is solved using the method of non-contact measurement, which can acquire the surface profile of bulk materials moving on a belt conveyor in real-time using a laser scanner and a belt speed monitor. A contour extraction solution is proposed in accordance with the spaces morphological characteristics and the material flow outline in one frame. By integrating the element areas of the bulk material cross section, a mathematical model to calculate the flow rate of bulk materials on moving belt is established. The main advantage of these models is that the measure accuracy is less affected that previous model by the uneven distribution and intermittence of bulk materials. The concept of the experimental rig at Wuhan University of Technology of China is designed so that it represents a 3.5m long belt conveyor system on which bulk material flow detecting experiments can be conducted. When the belt operates at speed of 0.5m/s, 1.0m/s and 1.5m/s, the repeatability, the correlation and the variation coefficient of the measurement value are more than 98\%. The experimental results prove the excellent characteristics of the new device for real practice because the characteristics correspond to real operational conditions. The obtained results are useful for analysing belt mechanical properties under real operational conditions and for optimising operating procedures of belt conveyor systems.},
langid = {english},
keywords = {Belt conveyor,Bulk material flow,Energy efficiency improvement,Laser scanning,Non-contact measurement},
file = {/home/naresh/Zotero/storage/8I8VNNBU/Zeng et al. - 2015 - Measurement of bulk material flow based on laser s.pdf}
}
@software{zeromq_git,
title = {{{ZeroMQ}}},
shorttitle = {Zeromq},
@ -67,7 +184,7 @@
urldate = {2022-01-06},
abstract = {ZeroMQ core engine in C++, implements ZMTP/3.1},
organization = {{The ZeroMQ project}},
keywords = {concurrency,libzmq,messaging,network,networking,pubsub,pushpull,stream,zeromq,zmq,zmtp}
keywords = {online}
}