From cbb2136e7fc154fc58a39ddb64fa33061910382f Mon Sep 17 00:00:00 2001 From: Matteo Anedda <matteo.anedda@mailbox.tu-dresden.de> Date: Tue, 14 Sep 2021 00:04:34 +0200 Subject: [PATCH] =?UTF-8?q?kleine=20=C3=84nderungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sections/einleitung.tex | 6 +++--- sections/grundlagen.tex | 46 +++++++++++++++++++++++++---------------- thesis.tex | 2 +- 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/sections/einleitung.tex b/sections/einleitung.tex index d734417..89b77b6 100644 --- a/sections/einleitung.tex +++ b/sections/einleitung.tex @@ -1,8 +1,8 @@ \chapter{Einleitung}\label{ch:introduction} -'Collaborate Multi-Robot Work-Cells' beschreibt ein Gebiet der Robotik, dessen Inhalt die Kooperation mehrerer Roboter hinsichtlich der Lösung einer spezifischen Aufgabe ist. Zugrundeliegende Algorithmen ermöglichen dabei die Bewältigung der Aufgaben ohne Kollisionen untereinander, sowie mit Hindernissen in der Umgebung. \par -Die Planung der Abläufe ist abhängig von der Beschaffenheit des Roboters, denn die Basis eines Roboters kann beweglich oder fest sein. Beispielsweise sind Roboterarme fest auf einer Platte montiert und somit fester Bestandteil der Umgebung. Ein Wechsel der ihrer Position würde bedeuten, eine andere Stelle auf der Platte für die Montage zu präparieren, den Roboterarm zu demontieren und an anderer Stelle zu platzieren, was sich als aufwändig gestalten kann. Daraus ist ersichtlich, dass die Positionierung unflexibler Roboter ein Problem darstellt, dessen Lösung direkten Einfluss auf die Bewältigung der spezifischen Aufgabe hat. Die Absolvierung der spezifischen Aufgabe wird demzufolge durch effizientere Nutzung der Arbeitsumgebung besser umgesetzt, aufwändige Montagearbeiten während der Bearbeitung werden reduziert und der dadurch erschlossene Raum sowie die resultierende Zeit kann gewinnbringender genutzt werden. Im Anbetracht der stetig wachsenden Industrie und der sich daraus ergebenden Nachfrage nach effizienten automatisierten Produktionsverfahren, die den limitierten Arbeitsraum einer Produktionsstätte optimal nutzen, ist die Platzierung der Roboter ein entscheidender erster Schritt zur Optimierung des gesamten Arbeitsprozesses. +'Collaborative Multi-Robot Work-Cells' beschreibt ein Gebiet der Robotik, dessen Inhalt die Kooperation mehrerer Roboter hinsichtlich der Lösung einer spezifischen Aufgabe ist. Zugrundeliegende Algorithmen ermöglichen dabei die Bewältigung der Aufgaben ohne Kollisionen untereinander, sowie mit Hindernissen in der Umgebung. \par +Die Planung der Abläufe ist abhängig von der Beschaffenheit des Roboters, denn die Basis eines Roboters kann beweglich oder fest sein. Beispielsweise sind Roboterarme fest auf einer Platte montiert und somit fester Bestandteil der Umgebung. Ein Wechsel ihrer Position würde bedeuten, eine andere Stelle auf der Platte für die Montage zu präparieren, den Roboterarm zu demontieren und an anderer Stelle zu platzieren, was aufwändig ist. Daraus ist ersichtlich, dass die Positionierung unflexibler Roboter ein Problem darstellt, dessen Lösung direkten Einfluss auf die Bewältigung der spezifischen Aufgabe hat. Die Absolvierung dieser Aufgabe wird demzufolge durch effizientere Nutzung der Arbeitsumgebung besser umgesetzt, aufwändige Montagearbeiten während der Bearbeitung werden reduziert und der dadurch erschlossene Raum sowie die resultierende Zeit kann gewinnbringender genutzt werden. Im Anbetracht der stetig wachsenden Industrie und der sich daraus ergebenden Nachfrage nach effizienten automatisierten Produktionsverfahren, die den limitierten Arbeitsraum einer Produktionsstätte optimal nutzen, ist die Platzierung der Roboter ein entscheidender erster Schritt zur Optimierung des gesamten Arbeitsprozesses. -\paragraph{Ziel der Arbeit:} Ziel ist es, basierend auf der Analyse des Arbeitsraums eines Roboterarms, des gegebenen Umfelds sowie der spezifischen Aufgabe, die optimale Positionierung dessen Basis zu bestimmen. Im folgenden wird diese Funktion erweitert und auf Multi- Roboter-Systeme angewendet.\par +\paragraph{Ziel der Arbeit:} Ziel ist es, basierend auf der Analyse des Arbeitsraums eines Roboterarms, des gegebenen Umfelds sowie der spezifischen Aufgabe, die optimale Positionierung dessen Basis zu bestimmen. Im folgenden wird diese Funktion erweitert und auf Multi-Roboter-Systeme angewendet.\par \section{Ablauf} Bezüglich der Problemstellung und des Ziels der Bachelorarbeit, ergeben sich mehrere Teilziele mit eigenen Prototypen, die in dieser Arbeit betrachtet werden. diff --git a/sections/grundlagen.tex b/sections/grundlagen.tex index 5842f8e..2590d21 100644 --- a/sections/grundlagen.tex +++ b/sections/grundlagen.tex @@ -1,27 +1,27 @@ \chapter{Grundlagen}\label{ch:basics} -Wesentliche Konzepte dieser Bachelorarbeit fundieren auf verschiedenen wissenschaftlichen Publikationen, die Aspekte der Problematik aufgreifen und näher erläutern. Dabei werden beispielsweise Begriffe mehrdeutig verwendet, weil keine offizielle Definition existiert oder sich deren Bedeutungen überschneiden. Ebenfalls grundieren die Ansätze auf mathematischen Konzepten, die zwar genannt aber nicht ausreichend erklärt werden. Zum näheren und besseren Verständnis der Ideen und Konzepte, die Bestandteil dieser wissenschaftlichen Arbeit sind, werden diese zugrundeliegenden Strukturen zusätzlich erklärt und gegebenenfalls für dieses Dokument definiert. +Wesentliche Konzepte dieser Bachelorarbeit fundieren auf verschiedenen wissenschaftlichen Publikationen, die Aspekte der Problematik aufgreifen und näher erläutern. Dabei werden beispielsweise Begriffe mehrdeutig verwendet, weil keine offizielle Definition existiert oder sich deren Bedeutungen überschneiden. Ebenfalls basieren die Ansätze auf mathematischen Konzepten, die zwar genannt aber nicht ausreichend erklärt werden. Zum näheren und besseren Verständnis der Ideen und Konzepte, die Bestandteil dieser wissenschaftlichen Arbeit sind, werden diese zugrundeliegenden Strukturen zusätzlich erklärt und gegebenenfalls für dieses Dokument definiert. \section{Räumliche Partitionierung} -Räumliche Partitionierung beschreibt das Unterteilen eines kartesischen Raumes in kleinere, disjunkte Teilräume und deren Indexierung und Speicherung in entsprechenden Datenstrukturen. Die Implementierung einer solcher Datenstruktur ist oft eine Baumstruktur mit speziellen Eigenschaften, die dessen Einsatz im 3 dimensionalen Raum begünstigen. Beispielsweise sind solche Bäume aufgrund dessen Kompaktheit für die Aufbewahrung großer Datenmengen geeignet oder ermöglichen eine schnelle Suche unter dessen Blättern durch ihre Implementierung. In der Literatur wird die Unterteilung eines quadratischen Raumes in Würfel fester Größe 'Voxelisierung' genannt, wobei ein Voxel ein Pixel im 3 dimensionalen Raum darstellt. Fortan werden Teilräume eines kartesischen Raums 'Voxel' genannt. +Räumliche Partitionierung beschreibt das Unterteilen eines kartesischen Raumes in kleinere, disjunkte Teilräume und deren Indexierung und Speicherung in entsprechenden Datenstrukturen. Die Implementierung einer solcher Datenstruktur ist oft eine erweiterte Baumstruktur mit speziellen Eigenschaften, die dessen Einsatz im 3 dimensionalen Raum begünstigen. Beispielsweise sind solche Bäume aufgrund dessen Kompaktheit für die Aufbewahrung großer Datenmengen geeignet oder ermöglichen eine schnelle Suche unter dessen Blättern durch ihre Implementierung. In der Literatur wird die Unterteilung eines quadratischen Raumes in Würfel fester Größe 'Voxelisierung' genannt, wobei ein Voxel ein Pixel im 3-dimensionalen Raum darstellt. Fortan werden Teilräume eines kartesischen Raums 'Voxel' genannt. \section{Diskretisierung} -Diskretisierung ist ein Prozess der Zerlegung eine kontinuierliche Oberfläche durch Abtastung in ihre diskreten Teilbereiche oder Punkte. Anwendung findet dieses Verfahren Beispielsweise im Gebiet der Netzwerktechnologie, in der ein analoges Signal durch Diskretisierung in ein digitales Signal überführt wird. Angewendet auf 3 dimensionale Objekte entsteht durch Diskretisierung ein Gitter aus Punkten, welche das zugrundeliegende Objekt approximieren. +Diskretisierung ist ein Prozess der Zerlegung einer kontinuierliche Oberfläche durch Abtastung in ihre diskreten Teilbereiche oder Punkte. Anwendung findet dieses Verfahren Beispielsweise im Gebiet der Netzwerktechnologie, in der ein analoges Signal durch Diskretisierung in ein digitales Signal überführt wird. Angewendet auf 3-dimensionale Objekte entsteht durch Diskretisierung ein Gitter aus Punkten, welche das zugrundeliegende Objekt approximieren. \section{Roboter} -Robotische Systeme setzen sich aus einer Menge an Festkörpern deren Verknüpfungen durch verschiedene Gelenktypen zusammen. Ein solches System kann geschlossen sein, indem die Verknüpfungen aus Festkörpern einen Kreis bilden, oder ein offenes System sein. Ein offenes robotisches System bildet eine offene kinematische Kette, dessen letzte Glied als Endeffektor deklariert ist, während der erste Festkörper die Basis darstellst. Roboterarme sind Beispiele für offene robotische Systeme mit offener kinematischer Kette und Bezugspunkt dieser wissenschaftlichen Arbeit. Nähere Informationen über die Kopplung spezifischer Bestandteile werden in der zugehörigen URDF Datei des Roboters dokumentiert. Diese Dateien sind XML Erweiterungen und bieten als solche einen entsprechenden erweiterten Funktionsumfang. Demzufolge können anhand zusätzlicher Informationen in Form von $tags$ Limitierungen bezüglicher der Achsen, Verweise auf andere URDF Dateien und 3d Model Dateien festgelegt werden. Neben der Möglichkeit, einen eigenen Roboter mittels URDF zu konstruieren, werden fertige Roboter von offizieller Seite bereitgestellt, wodurch ein Einblick in umfangreichere URDF Dateien ermöglicht wird und der Aufwand entfällt. +Robotische Systeme setzen sich aus einer Menge an Festkörpern deren Verknüpfungen durch verschiedene Gelenktypen zusammen. Ein solches System kann geschlossen sein, indem die Verknüpfungen aus Festkörpern einen Kreis bilden, oder ein offenes System sein. Ein offenes robotisches System bildet eine offene kinematische Kette, dessen letztes Glied als Endeffektor deklariert ist, während der erste Festkörper die Basis darstellst. Roboterarme sind Beispiele für offene robotische Systeme mit offener kinematischer Kette und Bezugspunkt dieser wissenschaftlichen Arbeit. Nähere Informationen über die Kopplung spezifischer Bestandteile werden in der zugehörigen URDF Datei des Roboters dokumentiert. Diese Dateien sind XML Erweiterungen und bieten als solche einen entsprechenden erweiterten Funktionsumfang. Demzufolge können anhand zusätzlicher Informationen in Form von $tags$ Limitierungen bezüglicher der Achsen, Verweise auf andere URDF-Dateien und 3-D Model Dateien festgelegt werden. Neben der Möglichkeit, einen eigenen Roboter mittels URDF zu konstruieren, werden fertige Roboter von offizieller Seite bereitgestellt, wodurch ein Einblick in umfangreichere URDF-Dateien ermöglicht wird und der Aufwand der Erstellung entfällt. \section{Kinematik} -Angewendete Methoden dieser wissenschaftlichen Arbeit fundieren auf Annahmen der Kinematik. Die Kinematik ist ein Teilbereich der Physik, welches die Bewegung von Festkörpern in robotischen Systemen, abstrahierend von den daraus resultierenden Kräften und Momenten, umfasst. Ein wesentlicher Aspekt ist die Repräsentation der Position und Orientierung von Körpern im Raum und deren Relation, sowie der Geometrie robotischer Mechanismen. Terminologien wie Pose und Referenzkorrdinatensystem (Frame) dienen zum Verständnis folgender, komplizierterer Prinzipien und werden daher näher beschrieben. \par +Angewendete Methoden dieser wissenschaftlichen Arbeit fundieren auf Konzepten der Kinematik. Die Kinematik ist ein Teilbereich der Physik, welcher die Bewegung von Festkörpern in robotischen Systemen, abstrahierend von den daraus resultierenden Kräften und Momenten, umfasst. Ein wesentlicher Aspekt ist die Repräsentation der Position und Orientierung von Körpern im Raum und deren Relation, sowie der Geometrie robotischer Mechanismen. Terminologien wie Pose und Referenzkoordinatensystem (Frame) dienen zum Verständnis folgender, komplizierterer Prinzipien und werden daher näher beschrieben. \par \subsection{Pose, Position und Orientierung} -Die Kombination aus Position und Orientierung eines Festkörpers relativ zu einem Frame definiert eine speziefische Pose, d.h. die Koordinaten ihrer Position wechseln relativ zum betrachteten Frame bzw. kann unter verschiedenen Frames repräsentiert werden. -Jeder Festkörper definiert durch 3 orthogonalen Basisvektoren und einem Koordinatenursprung $ p_i \in O_i$ dessen Frame. +Die Kombination aus Position und Orientierung eines Festkörpers relativ zu einem Frame definiert eine bestimmte Pose, das heißt die Koordinaten ihrer Position werden relativ zum betrachteten Frame repräsentiert. +Jeder Festkörper definiert durch 3 orthogonale Basisvektoren und einen Koordinatenursprung $ p_i \in O_i$ dessen Frame. Posen, Verschiebungen und Rotationen fester Körpers werden mittels zugehöriger Frames definiert. \subsubsection{Position} -Der Koordinatenursprung eines Frames $i$ relativ zum Frame $j$ wird durch Vektor $^{j}p_{i} \in \R^{3}$ gekennzeichnet. +Der Koordinatenursprung eines Frames $i$ relativ zum Frame $j$ wird durch den Vektor $^{j}p_{i} \in \R^{3}$ gekennzeichnet. \begin{equation} ^{j}p_{i} = \begin{pmatrix} ^{j}p_{i}^{x} \\ @@ -34,32 +34,42 @@ Die Elemente des Vektors $^{j}p_{i}$ sind kartesische Koordinaten aus $O_i$ rela die auf die jeweilige Achse projiziert werden. \subsubsection{Orientierung} -Eine Orientierung wird durch Rotationen $R$ dargestellt, die auf einen Körper angewendet werden können. In der Robotik existieren mehrere Ansätze zur mathematischen Beschreibung von Rotationen, welche bezüglich ...hier.... Beispielsweise stellen Quaternionen Rotationen dar, dessen geringe Anzahl an Berechnungen einen Vorteil -bezüglich des Rechenaufwands aufweisen. Wohingegen sich die Nullzeilen in Rotationsmatrizen und die sich daraus resultierenden Multiplikationen negativ auf den Rechenaufwand auswirken. -Die Menge aller Rotationen R bilden mit der Matrixmultiplikation eine nicht kommutative Gruppe $SO(3) \subset \R^{3\times3}$. Die Komposition aus Rotationen $R$ ist demnach ebenfalls $\in SO(3)$ und die Rotation zwischen verschiedenen Frames kann mit $^{k}R_{i}$ = $^{k}R_{j} \times ^{j}R_{i}$ realisiert werden, wobei die Reihenfolge der Multiplikation nicht beliebig ist. +Eine Orientierung wird durch Rotationen $R$ dargestellt, die auf einen Körper angewendet werden können. In der Robotik existieren mehrere Ansätze zur mathematischen Beschreibung von Rotationen, welche sich konzeptuell unterscheiden. Beispielsweise kann eine Rotation durch Kompositionen aus Rotations-Matrizen oder der Anwendung von komplexen Zahlen realisiert werden. +Die Menge aller Rotations-Matrizen $R$ bilden mit der Matrixmultiplikation eine nicht kommutative Gruppe $SO(3) \subset \R^{3\times3}$. Die Komposition aus Rotationen $R$ ist demnach ebenfalls $\in SO(3)$ und die Rotation zwischen verschiedenen Frames kann mit $^{k}R_{i}$ = $^{k}R_{j} \times ^{j}R_{i}$ realisiert werden, wobei die Reihenfolge der Multiplikation nicht beliebig ist. \subsection{homogene Transformation} -Eine homogene Transformationsmatrix {T} ist eine $4\times4$ Matrix, bestehend aus Rotationsmatrix $R \in SO(3)$ und einem Translationsvektor $p \in \R ^{3}$. Homogene Transformationsmatrizen bilden mit der -Matrixmultiplikation eine nicht kommutative Gruppe $SE(3)$. Sie ermöglicht die synchrone Ausführung von Translation und Rotation, wobei eine Translation die Verschiebung eines beliebigen Vektors $u \in {R}^3$ -an eine andere Position beschreibt, ohne sich auf dessen Orientierung auszuwirken. Aus Frame Rotationen $^{j}R_{i}$ und Koordinatenursprüngen $^{j}p_{i}$ bestehende Transformationsmatrizen $^{j}T_{i}$ beschreiben die Transformation eines Vektors $u^{i}$ in den Vektor $v^{j}$. +Eine Transformationsmatrix {T} ist eine $4\times4$ Matrix, bestehend aus Rotationsmatrix $R \in SO(3)$ und einem Translationsvektor $p \in \R ^{3}$. Sie ermöglicht die synchrone Ausführung von Translation und Rotation, wobei eine Translation die Verschiebung eines beliebigen Vektors $u \in {R}^3$ an eine andere Position beschreibt, ohne sich auf dessen Orientierung auszuwirken. Transformationsmatrizen bilden mit der Matrixmultiplikation eine nicht kommutative Gruppe $SE(3)$. Aus Frame Rotationen $^{j}R_{i}$ und Koordinatenursprüngen $^{j}p_{i}$ bestehende Transformationsmatrizen $^{j}T_{i}$ beschreiben die Transformation eines Vektors $^{i}u$ in den Vektor $^{j}u$. \begin{equation} -T = \begin{pmatrix} +\label{trNormal} +T = \begin{pmatrix} R & p \\ 0 & 1 \\ \end{pmatrix} \end{equation} \begin{equation} -\label{tr::Transform} +\label{trFrames} ^{j}T_{i} = \begin{pmatrix} ^{j}R_{i} & ^{j}p_{i} \\ 0 & 1 \\ \end{pmatrix} \end{equation} -Die dadurch entstehende Transformation $^{j}T_{i}$ stellt eine Transformation von Frame i nach Frame j durch Translation $^{j}p_{i}$ und Rotation $^{j}R_{i}$ da. -Die Komposition aus Transformationen $ T \in SE(3)$ ermöglicht Transformationen zwischen mehreren Frames $^{k}T_{i}$ = $^{k}T_{j} \times ^{j}T_{i}$, wobei die Reihenfolge Analog zu ... nicht beliebig ist. +\begin{equation} +\label{trPoint} +\begin{pmatrix} + ^{j}u \\ + 1 \\ +\end{pmatrix} += ^{j}T_{i} \times \begin{pmatrix} + ^{i}u \\ + 1 \\ + \end{pmatrix} +\end{equation} + +Die dadurch entstehende Transformation $^{j}T_{i}$ stellt eine Transformation von Frame $i$ nach Frame $j$ durch Translation $^{j}p_{i}$ und Rotation $^{j}R_{i}$ da. +Die Komposition aus Transformationen $ T \in SE(3)$ ermöglicht Transformationen zwischen mehreren Frames $^{k}T_{i}$ = $^{k}T_{j} \times ^{j}T_{i}$, wobei die Reihenfolge Analog zu Rotation nicht beliebig ist. \section{Arbeitsbereich eines Roboters} Der Arbeitsbereich, auch 'Workspace' genannt, eines Roboters beschreibt, welche Bereiche im Umfeld des Roboters erreichbar sind. Die Darstellung des Arbeitsbereiches erfolgt durch 'reachability maps' oder 'capability maps', wobei capability maps die reachability maps um qualitative Merkmale erweitern. diff --git a/thesis.tex b/thesis.tex index 056ca47..5a7d8a1 100644 --- a/thesis.tex +++ b/thesis.tex @@ -110,7 +110,7 @@ \placeofbirth{Riesa} %\discipline{Distributed Systems Engineering} -\course{Distributed Systems Engineering} +\course{Bachelor Informatik} \supervisor{% Dipl.-Inf. Sebastian Ebert -- GitLab