Commit f2eeac62 authored by s_mara's avatar s_mara
Browse files

Robotik hinzugefügt. Erste Schritte

parent 550aceaf
.log
.gz
.aux
.out
.toc
No preview for this file type
......@@ -12,6 +12,7 @@
\usepackage{subfigure}
\usepackage{wrapfig}
\usepackage{amsmath}
\usepackage{amsfonts}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
......@@ -32,6 +33,7 @@
\author{Julind Mara}
\maketitle
\tableofcontents
\include{telematik}
%\include{telematik}
\include{robotik}
\end{document}
\ No newline at end of file
\fontsize{12}{12}\selectfont
\chapter{Robotik}
\section{Mathematische Grundlagen}
%\subsection{Kinematik}
%Kinematikist die reine geometrische Beschreibung von Bewegungvon eines Manipulators oder Roboters. Das essentielle Konzept ist die Position. Eine Kinematische Kette ist ein Satz an Gliedern die durch Gelenke verbunden sind. Die können auch durch eine Graph repräsentiert werden. Kanten repräsentieren Glieder, Knoten repräsentieren Gelenke.\par
%Freiheitsgrade \textit{(weniger formale Definition)} ist die Anzahl unabhängiger Parameter, die zur kompletten Spezifikation der Position eines Mechanismus/Objekts benötigt werden. Beispiele: ein Punkt auf einer Ebene hat 2 DoF, ein Punkt im 3D Raum hat 3 DoF, ein Starrkörper in 2D Raum (z.B. auf einer Ebene) hat 3 DoF, ein Starrkörper im 3D Raum hat 6 DoF. \par
\subsection{Koordinatensysteme}
\begin{itemize}
\item Es wird per Basis eine \textbf{Rechtsdrehendes Koordinatensystem}
\item Es wird die Rechte-Hand-Regel für rechtsdrehende Koordinatensysteme benutzt
\item \begin{itemize}
\item BKS: Basiskoordinatensystem als initiales Bezugssystem
\item OKS: Objektkoordinatensystem
\item EKS: Endeffektorkoordinatensystem
\end{itemize}
\end{itemize}
\subsection{Rotationen Mittels $SO(3)$}
Mittels die Multiplikation mit der unten gegebene Matrizen, kann man Rotationen in 3D anhand eine bestimmte Rotationstaxis, und eine gegebene Rotationswinkel $\alpha$ durchführen. Die gehören zu der $SO(3)$ Gruppe:
\begin{itemize}
\item
$R_{z,\alpha} = \left( \begin{array}{rrr}
\cos\alpha & -\sin\alpha & 0 \\
\sin\alpha & \cos\alpha & 0 \\
0 & 0 & 1 \\
\end{array} \right)$
\item
$R_{x,\alpha} = \left( \begin{array}{rrr}
1 & 0 & 0 \\
0 & \cos\alpha & -\sin\alpha \\
0 & \sin\alpha & \cos\alpha \\
\end{array} \right)$
\item
$R_{z,\alpha} = \left( \begin{array}{rrr}
\cos\alpha & 0 &\sin\alpha \\
0 & 1 & 0 \\
-\sin\alpha & 0 & \cos\alpha \\
\end{array} \right)$
\end{itemize}
\subsubsection{Verkettung von Rotationen}
Zu eine gegebene Vektor $a \in \mathbb{R}^3$ und eine Rotation $\phi_{z,\theta_{3}}\left(\phi_{y,\theta_{2}}\left(\phi_{x,\theta_{1}}\left(a\right)\right)\right)$, ergeben sich zwei Möglichkeiten diese Verkettung als Matrixprodukt zu interpretieren:
\begin{itemize}
\item Um lokale Achsen, wobei die $'$ die erste, $''$ zweite, usw neue lokale Achse nach der Rotation bevor beschreibt \par
$\left(\left(R_{z,\theta_{3}} \cdot R_{y',\theta_{2}}\right) \cdot R_{x'',\theta_{1}}\right) \cdot a = R_{z,\theta_{3}} \cdot R_{y',\theta_{2}} \cdot R_{x',\theta_{1}} \cdot a $
\item Um globale Achsen (heißt, die selbe ursprüngliche Achsen) \par
$R_{z,\theta_{3}} \cdot \left(R_{y,\theta_{2}} \cdot \left(R_{x,\theta_{1}} \cdot a \right) \right)= R_{z,\theta_{3}} \cdot R_{y,\theta_{2}} \cdot R_{x,\theta_{1}} \cdot a $
\end{itemize}
Rotationsmatrizen haben mehrere Nachteile. Die sind redundant (neun Werte für eine Rotationsmatrix) und im Bereich des maschinellen Lernens ungeeignet.
\subsection{Eulerwinkel}
Es ist möglich, jede Rotation durch drei Rotationen um drei Koordinatenachsen darzustellen. Die Achsen können willkürlich gewählt werden, aber aus historischen Gründen wird oft die sogenannte Euler-Konvention $z,x',z''$ verwendet. Die Winkel $\alpha, \beta$ und $\gamma$ sind die Eulerwinkel. Sie beschreiben die Rotationsmatrix $R_s = R_{z,\alpha}R_{x',\beta}R{z'',\gamma}$. Es ist eine Rotationsverkettung mit eine lokaler Achsen Interpretation.
\subsection{RPY}
Eine andere Konvention ist die Euler-Konvention $x, y, z$. Diese speziellen Eulerwinkel werden \textit{Roll, Pitch, Yaw} genannt. Abfolge der Rotationen:
\begin{itemize}
\item $x$ Achse des BKS um $\alpha$(Roll)
\item $y$ Achse des BKS um $\beta$(Pitch)
\item $z$ Achse des BKS um $\gamma$(Yaw)
\end{itemize}
Eulerwinkel Rotationen leiden von Gimbal-Lock, sind nicht eindeutig und nicht kontinuierlich, daher eine Interpolation an bestimme Stellen ist unmöglich. Aber die sind kompakter und Aussagekräftiger als Rotationsmatrizen.
\subsection{Affine Transformationen}
Ziel hier ist eine geschlossene Darstellungvon Rotation und Translation gepackt in einer Matrix. Daher werden Homogene 4x4 Matrizen benutzt. Der Allgemeine Form eine solche Transformations Matrix ist:
\begin{align*}
T = \left(\begin{array}{rr} R_{a, \theta} & t \\ 0 & 1 \\ \end{array} \right)
\end{align*}
wobei $R_{a, \theta}$ eine 3x3 Rotationsmatrix ist und $t \in \mathbb{R}^3$ eine Translation (Übliche Vektor) ist.
\subsection{Lagebeschreibung}
Man kann jetzt damit eine Punkt in 2 Unterschiedliche Koordinatensysteme überführen mit der sogennante Lagebeschreibung Transformation
\begin{align*}
{}^{A}H_{B}: {}^{B}P \rightarrow {}^{A}P
\end{align*}
In diesem Fall, die Lagebeschreibung des Objekts $B$ bezogen auf das OKS von $A$, ist eine Affine Transformation von Punkt $P$ bzgl. der lokale Koordinaten in B auf lokale Koordinaten in A). Man kann somit auch Verkettete Lagebeschreibungen bauen und es auf einem einzige Lagebeschreibung Transformationsatrix zusammenfassen:
\begin{align*}
{}^{A}H_{C} = {}^{A}H_{B} {}^{B}H_{C}
\end{align*}
\subsection{Quaternionen}
Quaternionen sind dafür um die Nachteile von Rotationsmatrizen und Eulerwinkel Repräsentationen zu lösen.
\subsubsection{Quaternionen Grundlagen}
Die Menge der Quaternionen $\mathbb{H}$ ist durch die Folgende Eigenschaften definiert:
\begin{align*}
\mathbb{H} = \mathbb{C} + \mathbb{C}j \\
j^2 = -1, ij = -ji
\end{align*}
Ein Element $q \in \mathbb{H}$ hat die Form:
\begin{align*}
q = \left(a, u\right)^T \Leftrightarrow a + u_1i + u_2j + u_3k \\
a \in \mathbb{R}, u \in \mathbb{R}^3, k = ij
\end{align*}
$a$ wird als Realteil bezeichnet und $u$ als Imaginärteil.
Zu ein Quaternion $q=\left(a,u \right)^T$ gilt:
\begin{itemize}
\item Konjugierte Quaternion: $q^* = \left(a,-u \right)^T$
\item Norm: $\vert q \vert = \sqrt{qq^*} = \sqrt{a^2 + u_1^2 + u_2^2 + u_3^2}$
\item Inverse: $q^{-1} = \frac{q^*}{{\vert q \vert}^2}$
\end{itemize}
Zu $2$ gegbene Quaternionen $q=\left(a,u\right)^T, r=\left(b,v \right)^T$:
\begin{itemize}
\item Addition: $q+r=\left(a+b, u+v \right)^T$
\item Skalarprodukt: $\langle q \vert r \rangle = ab + \langle v \vert u \rangle$
\item Multiplikation (Nicht kommutativ): $qr = \left(a + u_1i + u_2j + u_3k\right) \cdot \left(b + v_1i + v_2j + v_3k\right)$
\end{itemize}
Zu ein Vektor $p$ man kann eine Quaternion $q$ so definieren
\begin{align*}
p = \left(x,y,z \right)^T \Rightarrow q = \left(0, p\right)^T
\end{align*}
und eine Skalar $s$ als $q = \left(s, 0\right)^T$
Zu Einheitsquaternionen gilt zusätzlich $q^{-1} = q^*$
\subsubsection{Rotationen mittels Quaternionen}
Es existiert eine Einbettung von $SO(3) \rightarrow \mathbb{H}$. Diese Rotationsquaternionen werden durch Einheitsquaternionen $\mathbb{S}^3$ aufgebaut. \par
Zu eine Achse $a, \vert\vert a \vert\vert = 1$ und Drehwinkel $\theta$ lässt sich eine Rotation als Quaternion q darstellen:
\begin{align*}
q = \left(\cos\frac{\theta}{2}, a\sin\frac{\theta}{2}\right)
\end{align*}
Eine Rotation von Punkt $v'$ mit diese Rotationsquaternion $q$ wäre:
\begin{align*}
v''=qv'q^*
\end{align*}
Im Wesentlichen, ist $v'$ eine Quaternionsvektor die aus eine Vektor $v \in \mathbb{R}^3$ enstand. Wichtig für die Aufgaben denn die Punkten, den man Rotieren soll, werden als übliche $\mathbb{R}^3$ Vektoren gegeben.
Konkatenation zweier Rotationen eines Vektors $v$ mit zwei Rotationsquaternionen $q$ und $r$, entspricht gerade der Rotation mit dem Quaternion $p = q \cdot r$.
\subsection{Duale Quaternionen}
Reelle Quaternionen eignen sich für die Beschreibung der Orientierung, nicht aber zur Beschreibung der Lage eines Objektes (Translation fehlt). Idee hier ist die Ersetzung der 4 reellen Werte eines Quaternion durch Dualzahlen.
\section{Kinematik}
Das kinematische Modell eines Roboters beschreibt die Zusammenhänge zwischen dem Raum der Gelenkwinkel (Roboterkoordinaten, Konfigurationsraum) und dem Raum der Lage des Endeffektors in Weltkoordinaten (Arbeitsraum, Kartesischer Raum). Es teilt sich in 2 Arten von Kinematiken.
\subsubsection{Vorwärtskinematik}
Bestimmung der Lage des Endeffektors aus den Gelenkwinkelstellungen des Roboters. \par
Als Beispiel, aus einem Konfiguration
\begin{align*}
c = \left(\theta_1, ... \theta_n \right) \in C \subseteq \mathbb{R}^n
\end{align*}
wobei $C$ die Konfigurationsraum mit eine $n$-te die Bewegungsfreiheitsgrade bezeichne und wo $\theta_i$ eine Gelenkwinkel $i$-ter Gelenk ist, und aus einem Endeffektor Lage $x \in \mathbb{R}^m$, wobei und $m$ die Freiheitsgrade entspricht, ist die direkte Kinematische Transformation ein Funktion
\begin{align*}
f: C \rightarrow \mathbb{R}^m, f(c) = x
\end{align*}
\subsubsection{Inverse Kinematik}
Bestimmung der Gelenkwinkelstellungen zu einer gewünschten Lage des Endeffektors. \par
Aus die oben gegebene Definition von $c$ und $X$, eine inverse Transformation ist die inverse von der direkte Transformation, nämlich:
\begin{align*}
f^{-1}:\mathbb{R}^{m} \rightarrow C, f(x) = c
\end{align*}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment