Um Kunden davon zu überzeugen den integrierten M4-Kern in den Prozessoren, welche für die System on
Modules verwendet werden, anstatt einem zusätzlichen Mikrocontroller zu verwenden, möchte Toradex das
Feature anhand eines Demonstrators simpel vorführen können. Dafür soll in der vorliegenden Bachelor-
Thesis eine Anwendung entwickelt werden, welche für eine typische Echtzeit-Aufgabe den Microcontroller
(ARM Cortex M) verwendet. Dabei soll der Microprozessor (ARM Cortex A) die Echtzeit-Anwendung über
eine Benutzeroberfläche steuern. Zuerst wurden die Grundlagen, wie zum Beispiel RPMsg, welche die
vorgegebene Technologie für die Kommunikation zwischen dem Microprozessor und Microcontroller ist,
erarbeitet. Für die Umsetzung der Anwendung wurde eine Firmware für den Microcontroller und eine
Software für die Benutzeroberfläche entwickelt. Zusätzlich wurde ein Prototyp des Aufbaus für den
Demonstrator entwickelt und zusammengebaut. Mit dieser Arbeit wurde die Grundlage für einen
Demonstrator geschaffen, welcher den Kunden gezeigt werden kann. Ausserdem konnten Erkenntnisse
gewonnen werden, welche den Kunden die Entwicklung vereinfachen.
In order to convince customers to use the integrated M4 core in the processors used for the System
on Modules instead of an additional microcontroller, Toradex would like to be able to demonstrate the
feature in a simple way using a demonstrator. To this end, an application is to be developed in this
Bachelor's thesis that uses the microcontroller (ARM Cortex M) for a typical real-time task. The
microprocessor (ARM Cortex A) is to control the real-time application via a user interface. First, the
basics, such as RPMsg, which is the specified technology for communication between the
microprocessor and microcontroller, were developed. The firmware for the microcontroller and the
software for the user interface were developed for the realisation of the application. In addition, a
prototype of the structure for the demonstrator was developed and assembled. This work created the
basis for a demonstrator that can be shown to customers. Furthermore, insights were gained that
simplify development for customers.
Die Arbeit befasst sich mit der akustischen Erkennung von Aktivitäten in einem Haushalt mit dem Ziel, eine
Aktivierung von Assistenztechnologien in Smart Homes zu ermöglichen. Der Fokus lag dabei auf der
Erarbeitung von algorithmischen Grundlagen zur akustischen Erkennung von «Activities of Daily Living»
(ADL). ADL sind definierte Tätigkeiten, welche ein selbständiges Leben ermöglichen. Ziel war es
algorithmische Ansätze zur akustischen Erkennung von ADL zu recherchieren und für zwei spezifische ADL
zuverlässigen Algorithmen zur Erkennung zu erarbeiten und validieren. In Folge der Arbeiten wurde für die
ADL Toileting und Personal Hygiene Algorithmen entwickelt. Für die akustische Erkennung von Toileting
wurde das Geräusch der Spülung als charakteristisch gewählt und für Personal Hygiene wurde das Geräusch
der Dusche gewählt. Da es sich bei beiden Geräuschquellen um ortsgebundene Tätigkeiten handelt, die von
allen Menschen in einem vergleichbaren Rahmen getätigt werden. Als algorithmischer Ansatz für die
Erkennung wurden Convolutional Neural Network (CNN) trainiert.
This work deals with the acoustic recognition of activities in a household with the aim of enabling the
activation of assistive technologies in smart homes. The focus was on developing algorithmic foundations for
the acoustic recognition of "Activities of Daily Living" (ADL), which describe defined activities that enable
independent living. The goal was to research algorithmic approaches for the acoustic recognition of ADL and
to develop and validate reliable algorithms for two specific ADLs. As a result of the work, algorithms were
developed for ADLs related to toileting and personal hygiene. For the acoustic recognition of toileting, the
sound of flushing was chosen as characteristic, and for personal hygiene, the sound of the shower was
chosen. Since both sound sources involve location-based activities that are performed by all individuals in a
comparable context, Convolutional Neural Networks (CNNs) were trained as the algorithmic approach for
detection.
Die Arbeit befasst sich mit der akustischen Erkennung von Aktivitäten in einem Haushalt mit dem Ziel, eine
Aktivierung von Assistenztechnologien in Smart Homes zu ermöglichen. Der Fokus lag dabei auf der
Erarbeitung von algorithmischen Grundlagen zur akustischen Erkennung von «Activities of Daily Living»
(ADL). ADL sind definierte Tätigkeiten, welche ein selbständiges Leben ermöglichen. Ziel war es
algorithmische Ansätze zur akustischen Erkennung von ADL zu recherchieren und für zwei spezifische ADL
zuverlässigen Algorithmen zur Erkennung zu erarbeiten und validieren. In Folge der Arbeiten wurde für die
ADL Toileting und Personal Hygiene Algorithmen entwickelt. Für die akustische Erkennung von Toileting
wurde das Geräusch der Spülung als charakteristisch gewählt und für Personal Hygiene wurde das Geräusch
der Dusche gewählt. Da es sich bei beiden Geräuschquellen um ortsgebundene Tätigkeiten handelt, die von
allen Menschen in einem vergleichbaren Rahmen getätigt werden. Als algorithmischer Ansatz für die
Erkennung wurden Convolutional Neural Network (CNN) trainiert.
This work deals with the acoustic recognition of activities in a household with the aim of enabling the
activation of assistive technologies in smart homes. The focus was on developing algorithmic foundations for
the acoustic recognition of "Activities of Daily Living" (ADL), which describe defined activities that enable
independent living. The goal was to research algorithmic approaches for the acoustic recognition of ADL and
to develop and validate reliable algorithms for two specific ADLs. As a result of the work, algorithms were
developed for ADLs related to toileting and personal hygiene. For the acoustic recognition of toileting, the
sound of flushing was chosen as characteristic, and for personal hygiene, the sound of the shower was
chosen. Since both sound sources involve location-based activities that are performed by all individuals in a
comparable context, Convolutional Neural Networks (CNNs) were trained as the algorithmic approach for
detection.
In dieser Thesis wird ein Konzept und eine Software zur Generierung von Linux Devicetrees für den
von Toradex hergestellten iMX8MP entwickelt. Die Relevanz dieses Projekts ergibt sich aus der
Notwendigkeit, mit konkurrierenden Unternehmen mit vergleichbaren Softwarelösungen Schritt zu
halten und den Arbeitsaufwand der Kunden zu minimieren. Die Forschungsgrundlagen des
Devicetrees wurden untersucht, um eine Konfiguration von I2C-, SPI- und PWM-Geräten mit dem
vorhandenen Pinout-Generator zu ermöglichen. Das Ziel besteht darin, einen kompilierbaren und
bootfähigen Devicetree mit den genannten Geräten zu erstellen. Dazu wurde zunächst ein
Grundgerüst des Devicetrees entwickelt, gefolgt von der Erstellung und Integration von Codeblöcken
für Nodes und Pincontrols. Der resultierende Devicetree wurde kompiliert und getestet, wobei die
erfolgreiche Konfiguration von PWM-Geräten erzielt wurde. Allerdings sind noch Fehler bei der
Generierung von I2C- und SPI-Geräten vorhanden. Die Schlussfolgerung des Projekts bietet eine
solide Grundlage für die Entwicklung eines universellen Toradex Devicetree Generators. Zukünftige
Arbeiten könnten sich darauf konzentrieren, Fehler bei der Generierung von I2C- und SPI-Peripherien
zu beheben und den Generator weiter zu verbessern.
This thesis contains a concept and software for generating Linux Devicetrees for the iMX8MP
manufactured by Toradex. The relevance of this project arises from the need to keep pace with
competing companies with comparable software solutions and reduce a customers effort. The
research foundations of the Devicetree were investigated to enable configuration of I2C, SPI and
PWM devices with the existing pinout generator. The aim is to create a compilable and bootable
Devicetree with the previously mentioned devices. To this end, a basic framework of the Devicetree
was first developed, followed by the creation and integration of code blocks for nodes and
pincontrols. The resulting Devicetree was compiled and tested, whereby the successful configuration
of PWM devices was achieved. However, there are still errors in the generation of I2C and SPI
devices. The conclusion of the project provides a solid foundation for the development of a universal
Toradex Devicetree Generator. Future work could focus on fixing bugs in the generation of I2C and
SPI peripherals and further improving the generator.
Die vorliegende Bachelorarbeit analysiert die Performanz von Software-Containern, die auf dem Torizon-Betriebssystem laufen. Es wird das Torizon OS mit dem Board Support Package (BSP) in den Punkten Schreibgeschwindigkeit und Arbeitsspeicherauslastung verglichen. Die Resultate wurden über Testprogramme ermittelt, die sich nach einem realen Use Case orientieren. Torizon OS zeigt eine kleinere Schreibgeschwindigkeit im Vergleich zum BSP. Dabei ist der Unterschied bei kleinen Datengrössen höher als bei Grossen. Die Arbeitsspeicherauslastung eines Programms ist bei beiden Betriebssystemen identisch. Jedoch zeigt das System ohne Container eine kleinere Leerlaufauslastung. Da nebenläufige Prozesse die Schreibgeschwindigkeit negativ beeinflussen, kann der Einfluss des Containers nicht exakt bestimmt werden.
This bachelor thesis analyses the performance of software containers running on the Torizon operating system. The Torizon OS is compared with the Board Support Package (BSP) in terms of write speed and memory utilisation. The results were determined using test programmes based on a real use case. Torizon OS shows a lower write speed compared to the BSP. The difference is greater for small data sizes than for large ones. The memory utilisation of a program is identical for both operating systems. However, the system without containers shows a lower idle utilisation. As parallel processes have a negative impact on the write speed, the influence of the container cannot be determined exactly.
Um Langzeittests mit Embedded Computern in einer Klimakammer durchzuführen, ist eine überarbeitete Version des Climate Chamber Controllers erforderlich. Der neue Climate Chamber Controller verügt über einen Mikrocontroller, auch Test and Measurement Controller genannt, der über Ethernet mittels MQTT mit dem Bediensystem kommuniziert. Der Test and Measurement Controller nimmt Befehle vom Bediensystem entgegen und steuert das Device Under Test. Gleichzeitig sammelt dieser Messdaten über Schnitttellen wie GPIO, UART, ADC und I2C und übermittelt diese an das Bediensystem. Im Umfang dieser Bachelorthesis wurde das Auslesen und die Verarbeitung der Daten der UART-Schnittstelle konzipiert und realisiert. Für die Umsetzung wurde die Firmware durch FreeRTOS Tasks mit den neuen Funktionen erweitert. Die ergänzten Funktionalitäten wurden durch ausführliche Tests auf ihre Funktionsfähigkeit überprüft. Im Rahmen der Arbeit konnte eine Firmware entwickelt werden, welche die Daten der UART-Schnittstelle ausliest und zuverlässig über MQTT an das Bediensystem übermittelt.
A revised version of the climate chamber controller is required to carry out long-term tests on embedded computers in a climate chamber. The new climate chamber controller has a microcontroller, also known as a test and measurement controller, which communicates with the operating system via Ethernet using MQTT. The test and measurement controller receives commands from the operating system and controls the device to be tested. At the same time, it collects measurement data via interfaces such as GPIO, UART, ADC and I2C and transmits it to the operating system. As part of this bachelor's thesis, the reading and processing of data from the UART interface was designed and implemented. For the implementation, the firmware was extended with the new functions using FreeRTOS tasks. Extensive tests were carried out to check the functionality of the added functions. As part of the work, a firmware was developed that reads the data from the UART interface and reliably forwards it to the operating system via MQTT.
In der vorliegenden Arbeit werden mehrere machinelearning Modelle mit unterschiedlichen
Konfigurationen trainiert und ausgewertet. Zweck ist es einen Überblick in die Technologie zu zu
geben und die Transformerarchitektur zu erklären. Als Grundlage dieser Arbeit dient das Paper
''Attention Is All You Need'' aus 2017. Die Modelle werden mit Pytorch entwickelt. Als Grundlage für
die Software wird ein Tutorial von Pytorch verwendet und angepasst. Zuerst wurde ein Modell mit
dem Wikitext2 Datensatz trainiert. Es werden Texte generiert und untersucht. Nach nicht
zufriedenstellenden Resultaten mit diesem Datensatz, mit einer Perplexity im Testsplit von 170.28
werden weitere Modelle mit Büchern von Karl May trainiert. Diese Erreichen bessere Ergebnisse in
Perplexity und im generieren von natürlicher Sprache. Die Perplexity des besten Modells mit dem
Karl May Datensatz erreicht eine Perplexity von 59.99. Zusätzlich werden Self-Attention Matrizen
visualisiert und der Unterschied zwei Modellen genauer aufgezeigt.
In this paper, several machinelearning models with different configurations are trained and analysed.
The purpose is to provide an overview of the technology and explain the transformer architecture.
The paper ''Attention Is All You Need'' from 2017 serves as the basis for this work. The models are
developed with Pytorch. A tutorial from Pytorch is used and adapted as the basis for the software.
First, a model was trained with the Wikitext2 data set. Texts are generated and analysed. After
unsatisfactory results with this data set, with a perplexity in the test split of 170.28, further models
are trained with books by Karl May. These achieve better results in perplexity and in generating
natural language. The perplexity of the best model with the Karl May data set achieves a perplexity
of 59.99. In addition, self-attention matrices are visualised and the difference between the two
models is shown in more detail.
Diese Bachelor-Thesis untersucht den Einsatz von Reinforcement Learning unter Verwendung von
Stable Baselines3. Reinforcement Learning dient als Methode zur Regelung von Systemen mit
unbekannten Zustandsübergängen, insbesondere wenn ein zugrundeliegendes Modell fehlt und nur
eine Zielfunktion gegeben ist. Die Arbeit nutzt die Reinforcement-Learning-Algorithmen DQN, A2C
und PPO, um virtuelle Systeme wie z.B. das inverse Pendel zu steuern. Das angewendete Werkzeug
Stable Baselines3 basiert auf Python und bietet vorimplementierte Algorithmen und
Simulationsumgebungen. Die Arbeit konzentriert sich darauf, die Fähigkeit von Reinforcement
Learning zu untersuchen und stabile Regelungssysteme ohne bekanntes Modell einzulernen. Die
Ergebnisse zeigen, dass DQN, A2C und PPO mehrheitlich stabile Regelungen ermöglichen, wobei
Optimierungsmöglichkeiten mit längeren Einlernprozessen bestehen. Die Nutzung von Stable
Baselines3 für benutzerdefinierte Umgebungen wird ebenfalls untersucht und mit den Ergebnissen
der vorimplementierten Umgebungen verglichen. Die Arbeit schliesst mit der Erkenntnis, dass Stable
Baselines3 ein leistungsfähiges Werkzeug für Reinforcement-Learning-Anwendungen ist, betont
jedoch die Notwendigkeit einer umfangreichen Einarbeitung aufgrund anfänglicher Komplexität.
This bachelor thesis investigates the use of reinforcement learning using stable baselines3.
Reinforcement learning is used as a method to control systems with unknown state transitions,
especially when an underlying model is missing and only one objective function is given. The work
uses the reinforcement learning algorithms DQN, A2C and PPO to control virtual systems such as the
inverse pendulum. The applied tool Stable Baselines3 is based on Python and provides preimplemented
algorithms and simulation environments. The work focuses on investigating the ability
of reinforcement learning to learn stable control systems without a known model. The results show
that DQN, A2C and PPO provide mostly stable control, with optimization opportunities with longer
learning processes. The use of stable baselines3 for user-defined environments is also investigated
and compared with the results of the pre-implemented environments. The paper concludes that
Stable Baselines3 is a powerful tool for reinforcement learning applications, but emphasizes the need
for extensive training due to initial complexity.
Diese Arbeit befasst sich mit der Analyse und Entwicklung eines Pulsinduktionsmesssystems, welches
unterschiedliche Metalle voneinander unterscheiden kann. Die Detektion und Klassifizierung von
Metallen wird in Recyclinganlagen benötigt aber auch für die Minensuche werden Metalldetektoren
verwendet. Pulsinduktionsmessgeräte haben im Vergleich zu anderen Induktionsmessverfahren eine
grosse Messtiefe. Zudem arbeiten sie auch auf mineralisiertem oder salzhaltigem Boden zuverlässig.
Mit einem zweiteiligen Aufbau aus Sendespule und Empfangsspule wird in dieser Arbeit ein
physikalisches Modell aufgezeigt, welches das Pulsinduktionsmesssystem beschreibt. Anhand von
Messungen mit Metallobjekten wird das Modell verifiziert und optimiert. Die Messungen zeigen, dass
die Messobjekte mit Frequenzen im kHz Bereich am besten unterschieden werden können. Weiter
zeigen Messungen mit einer doppelt beschichteten 34um dicken Kupferfolie, dass solch dünne
Objekte ähnliche Messkurven wie Eisenobjekte generieren. Weiter wird eine Schaltung vorgestellt,
welche die Sendespule ansteuert.
This paper analyses a pulse induction measurement system which classifies different metals. The
classification of metals is used in recycling plants but also for the search of landmines. Pulse
induction measurement systems have a larger sensitivity range compared to other induction
measurement systems. Furthermore the systems also work on mineralised and salined soil. This
paper shows a physical model for a two-parted measuring system consisting of a separated measure
coil and a sending coil. This model is verified and optimized with several measurements with different
metallic objects. The measurements show that metals are better differentiated by frequencies in the
low kHz spectrum. Measurements with a 34um thick copper plated disc show that such thin copper
layers generate similar measuring curves as iron objects. Finally, an electrical circuit is presented
which controls the sending coil.
Die Firma Sick beauftragte die Hochschule Luzern damit, ein vision-basiertes Verfahren für die
Klassifikation von Fahrzeugen zu untersuchen. Dies soll eine Alternative für die gegenwärtig
eingesetzten Lasermesssysteme bieten, die für die Bestimmung von Mautgebühren, die Detektion
von überhohen Fahrzeugen und die allgemeine Datenakquise des Verkehrs eingesetzt werden.
Bisherige Tests waren vielversprechend, basierten aber auf einem kleinen Datensatz. In diesem
Projekt wurde die Genauigkeit des bisherigen Modells zur Klassifizierung von open-source Daten
untersucht, mehr Daten akquiriert und damit ein neues Modell trainiert, wobei die Anzahl falscher
Klassifizierungen um den Faktor 2.9 gesenkt werden konnte. Es braucht noch mehr Daten von den
seltenen Fahrzeugkategorien, um auch diese mit hoher Sicherheit richtig zu klassifizieren. Ein Modell
zur Erkennung von Fahrzeugteilen wurde eingebaut, das in Nachfolgeprojekten verwendet werden
kann.
The company Sick commissioned the Lucerne University of Applied Sciences to investigate whether
vision-based systems can replace the currently used laser measurement systems to classify vehicles
for the road toll system, overheight detection, and general traffic data collection. Previous tests
showed promising results but were based on a small dataset. In this project, the performance of the
existing classification model on open-source data was evaluated, more training data was acquired
and using that, a new and better performing model was trained, reducing the number of false
classifications by a factor of 2.9. More corrected data of the scarce vehicle types is required to
confidently classify those vehicles. A vehicle-parts detection model was implemented for the use in
subsequent projects.
Diese Arbeit befasst sich mit der Entwicklung eines Stroboskops, welches höhere Blitzraten erreicht
als kommerzielle Standardprodukte. Es soll das veraltete Exemplar der Physik-Vorlesung ersetzen
und zur Betrachtung von schnellen Bewegungen in Forschungsprojekten der Hochschule Luzern
dienen. Mit Messungen wird eine Hochleistungs-LED mit kurzer Reaktionszeit evaluiert und eine
schnelle analoge Steuerung entwickelt. Die Eingabe von Parametern wie Blitzfrequenz oder Intensität
erfolgt über eine Bedieneinheit. Ein SoC-FPGA steuert das System. Die Software interpretiert die
User-Einstellungen und evaluiert die gültigen Parameter, während die digitale Hardware taktgenaue
Signale zur Ansteuerung der Lichtquelle generiert. Testversuche zeigen, dass das Stroboskop
Lichtblitze mit minimaler Dauer von 1μs und Frequenzen bis zu 500kHz erzeugen kann. Die
Validierung belegt, dass das Stroboskop periodische Vorgänge visualisieren kann, die von blossem
Auge nicht sichtbar sind. Dank der Synchronisations-Funktionalität kann der Stroboskop-Takt mit
externen Geräten abgestimmt werden. Dies ist insbesondere bei der kombinierten Verwendung von
Stroboskop und Highspeed-Kamera zur Ablichtung von sehr schnellen Bewegungen von Interesse.
This thesis deals with the development of a stroboscope that achieves higher flash rates than
commercial standard products. It is intended to replace the outdated specimen used in the physics
lecture and to be used for the observation of fast movements in research projects at the Lucerne
University of Applied Sciences and Arts. Measurements are used to evaluate a high power LED with a
short response time and to develop a fast analog control system. Parameters such as flash frequency
or intensity are entered via a user control unit. An SoC FPGA controls the system. The software
interprets the user settings and evaluates the valid parameters, while the digital hardware generates
clock-accurate signals to drive the light source. Test experiments show that the stroboscope can
generate light flashes with minimum durations of 1μs and frequencies up to 500kHz. Validation
proves that the stroboscope can visualize periodic processes that are not visible to the naked eye.
Due to the synchronization functionality, the stroboscope clock can be coordinated with external
devices. This is of particular interest for the combined use of the stroboscope and a high-speed
camera for imaging very fast movements.
Die vorliegende Arbeit befasst sich mit dem Parallelisierungskonzept des ressourceneffizienten
Hardwarebeschleunigers BinArray. BinArray ist für die Berechnung der Convolutional Layer
zuständig und basiert auf der binären Approximation der Gewichte. Aktuell ist BinArray mit
dem Parallelisierungkonzept Output-Channel-Parallelisation (OCP) realisiert. Dieses Konzept
reicht jedoch nicht aus, um die erforderliche Framerate f¨ur alle Szenarien zu erreichen.
Das existierende Konzept soll deshalb um die Input-Channel-Parallelisierung (ICP) erweitert
werden. In einem ersten Schritt soll die Architektur der zuständigen Berechnungseinheit angepasst
und verifiziert werden. Anschliessend können die Interfaces der Buffer angepasst werden,
welche die Daten für die Berechnungen liefern. Da durch das neue Parallelisierungskonzept die
Daten in den Buffern anders angeordnet sind, muss die Berechnung der Adressen der Lese- und
Schreibzugriffe geändert werden.
Das Design f¨ur ICP ist f¨ur die Beschleunigungs- resp. Parallelisierungsfaktoren 1,2,4 und 8 synthetisierbar.
Zusätzlich konnte für die Faktoren 1 und 4 anhand eines Beispiel-Netzwerks die
korrekte Funktion verifiziert werden. Die Taktrate kann mit dem neuen Design auf demselben
Niveau gehalten werden wie für OCP. Damit kann die erwartete Beschleunigung entsprechend
dem ICP Faktor erzielt werden.
This paper deals with the parallelisation concept of the resource-efficient hardware accelerator
BinArray. BinArray is responsible for the calculation of the convolutional layer and is based on
the binary approximation of the weights. Currently, BinArray is realised with the parallelisation
concept Output Channel Parallelisation (OCP). However, this concept is not sufficient to achieve
the required rate for all scenarios.
Therefore, the existing concept is to be extended by input channel parallelisation (ICP). The
first step is to adapt and verify the architecture of the relevant calculation unit. Since the data
in the buffers is arranged differently due to the new parallelisation concept, the calculation of
the addresses of the read and write accesses must be changed.