<commit_before>% !TEX root = Projektstudie.tex
% Mathematik


\section{Mathematische Modellierung}
\label{sec:Mathematische Modellierung}
%\Delta
\begin{figure}
    \centering
    \includegraphics[width=.8\textwidth]{Abbildungen/Koordinaten}
    \caption{Einführung der verwendeten Koordinatensysteme, der Position des Arms sowie der Radnummerierung.}
\end{figure}
Dieses Kapitel beschreibt die Mathematik hinter der Kinematik und Dynamik des Mecanum-Roboters.
Jede Bewegung setzt sich aus einer translatorischen und einer rotatorischen Teilbewegung zusammen. Abbildung\ref{fig:Drehrichtung} zeigt die Raddrehrichtungen und die daraus resultierenden Roboterbewegungen.

\begin{figure}[H]
    \centering
    \includegraphics[width=.8\textwidth]{Abbildungen/Drehrichtung}
    \caption{Darstellung der Raddrehrichtungen und der resultierenden Bewegungen.}
    \label{fig:Drehrichtung}
\end{figure}

\subsection{Translation}
\label{sec:Translation}
Um eine translatorische Bewegung auszuführen, werden die Räder paarweise (1+3, 2+4) mit gleicher Drehrichtung und Drehgeschwindigkeit angetrieben.
Die resultierende Gesamtkraft bestimmt die Richtung der Fahrt.
Die folgenden Rechnungen behandeln die Ermittlung der einzelnen Soll-Radgeschwindigkeiten aus einem vorgegebenen Geschwindigkeitsvektor.

\begin{figure}[H]
    \centering
    \includegraphics[width=.6\textwidth]{Abbildungen/Kraefte-am-Rad}
    \caption{Kräftegleichgewicht an einem Mecanum-Rad.}
\end{figure}

Die Leistung einer vektoriellen Kraft berechnet sich nach : 
$$ P_F = F_T \cdot v_F $$

Wirken Kraft und Geschwindigkeit entlang einer Koordinatenachse, haben beide Vektoren die gleiche Komponente ungleich null und ihr Skalarprodukt kann vereinfacht als Produkt der skalaren Größen betrachtet werden.

Die Kraftvektor in $x$- und $y$-Richtung setzt sich zusammen als die Summe der einzelnen $x$- und $y$-Vektoren der vier Räder:
\begin{align*}
    \sum_{i=1}^4 F_{ix} &= \sum_{i=1}^4 F_i \cos \alpha \\
    &= \sum_{i=1}^4 (-1)^i SIG \cdot K_i F_{Ti} \sin \alpha \cos \alpha \\
    &= \sum_{i=1}^4 (-1)^i SIG \cdot \frac{1}{2} K_i F_{Ti}
\end{align*}
\begin{align*}
    \sum_{i=1}^4 F_{iy} &= \sum_{i=1}^4 F_i \sin \alpha \\
    &= \sum_{i=1}^4 SIG \cdot K_i F_{Ti} \sin^2 \alpha \\
    &= \sum_{i=1}^4 SIG \cdot \frac{1}{2} K_i F_{Ti}
\end{align*}

SIG sei die Vorzeichenkonventionen für die Drehrichtung der Räder.
Diese wird in der Steuerung direkt implementiert und wird daher bei den folgenden Rechnungen nicht weiter betrachtet.

Der Winkel $ \alpha $ beschreibt den Winkel, in dem die Rollen auf dem Mecanum-Rad angebracht sind.
In den meisten Fällen gilt $\alpha = 45^\circ$.

Für eine translatorische Bewegung müssen die Radpaare mit gleicher Geschwindigkeit drehen.
Entsprechend müssen ihre Kraftvektoren $F_{T1, 3} / F_{T2, 4}$ gleich groß sein.
Durch Auflösen der Summenzeichen erhält man ein Gleichungssystem:
\begin{align*}
    F_x &= - K_i F_{T1, 3} + K_i F_{T2, 4} \\
    F_y &= K_i F_{T1, 3}   + K_i F_{T2, 4}
\end{align*}

Nach dem Umstellen erhält man $F_{T1, 3}$ und $F_{T2, 4}$ und kann somit auch direkt die Geschwindigkeiten berechnen:
\begin{align*}
    F_{T1, 3} &= \frac{F_y + F_x}{K_i} &\Rightarrow v_{T1, 3} &= \frac{v_y + v_x}{K_i} \\
    F_{T2, 4} &= \frac{F_y - F_x}{K_i} &\Rightarrow v_{T2, 4} &= \frac{v_y - v_x}{K_i} \\
\end{align*}

Der Faktor $K_i$ setzt sich aus unterschiedlichen Einzelfaktoren zusammen, welche die durch das Motormoment erzeugten treibenden Kräfte beeinflussen. $K_i$ wird für den Boden der Werkstatt empirisch ermittelt. Die Beschreibung der durchgeführten Versuchsreihe folgt in Kapitel~\ref{sec:k-faktor}.


\subsection{Rotation}
\label{sec:Rotation}
Die Rotation des Mecanum-Roboters um sein Zentrum müssen alle Räder mit gleicher Geschwindigkeit drehen, lediglich die Richtung unterscheidet sich.
Für eine Drehung im Uhrzeigersinn drehen beispielsweise Rad 1 und 2 rückwärts, Rad 3 und 4 vorwärts. Allgemein gilt:
\begin{align*}
    v_{ref} &= K_i \cdot r \cdot \omega \\
    v_1 = v_4 &= - v_{ref} \\
    v_2 = v_3 &= + v_{ref}
\end{align*}

\subsection{Betrachtung $K_i$}
\label{sec:k-faktor}

Der Faktor $K_i$ hat einen großen Einfluss auf die Bewegung des Mecanum-Roboters. Er setzt sich aus unterschiedlichen Einzelfaktoren zusammen, welche die durch das Motormoment erzeugten treibenden Kräfte beeinflussen. Zu den Einflussfaktoren zählen unter anderem die verschiedenen Reibungsfaktoren und die Flächenträgheitsmomente. 

Da eine Bestimmung der einzelnen Faktoren sehr aufwendig ist und die Varianzen der Fehleranteile  bei der Multiplikation zu $K_i$ ebenfalls multipliziert werden müssen, ist eine direkte Bestimmung von $K_i$ zu empfehlen. Die Bestimmung von  $K_i$ muss zudem explizit für den Untergrund auf dem der Roboter fahren soll erfolgen. Der Einfluss weiterer Einflussfaktoren (Feuchtigkeit, Staub, etc.) sollte durch definierte Randbedingungen möglichst gering gehalten werden. 
Da die Reibung auch von der Auflagefläche der Rollen abhängig ist und diese je nach Fahrtrichtung (siehe Abbilung \ref{fig:himmel}) variiert, wird ein zusätzlicher Einfluss der Fahrtrichtung auf  $K_i$ vermutet. 
<commit_msg>Verweis auf versuche entfernt<commit_after>% !TEX root = Projektstudie.tex
% Mathematik


\section{Mathematische Modellierung}
\label{sec:Mathematische Modellierung}
%\Delta
\begin{figure}
    \centering
    \includegraphics[width=.8\textwidth]{Abbildungen/Koordinaten}
    \caption{Einführung der verwendeten Koordinatensysteme, der Position des Arms sowie der Radnummerierung.}
\end{figure}
Dieses Kapitel beschreibt die Mathematik hinter der Kinematik und Dynamik des Mecanum-Roboters.
Jede Bewegung setzt sich aus einer translatorischen und einer rotatorischen Teilbewegung zusammen. Abbildung\ref{fig:Drehrichtung} zeigt die Raddrehrichtungen und die daraus resultierenden Roboterbewegungen.

\begin{figure}[H]
    \centering
    \includegraphics[width=.8\textwidth]{Abbildungen/Drehrichtung}
    \caption{Darstellung der Raddrehrichtungen und der resultierenden Bewegungen.}
    \label{fig:Drehrichtung}
\end{figure}

\subsection{Translation}
\label{sec:Translation}
Um eine translatorische Bewegung auszuführen, werden die Räder paarweise (1+3, 2+4) mit gleicher Drehrichtung und Drehgeschwindigkeit angetrieben.
Die resultierende Gesamtkraft bestimmt die Richtung der Fahrt.
Die folgenden Rechnungen behandeln die Ermittlung der einzelnen Soll-Radgeschwindigkeiten aus einem vorgegebenen Geschwindigkeitsvektor.

\begin{figure}[H]
    \centering
    \includegraphics[width=.6\textwidth]{Abbildungen/Kraefte-am-Rad}
    \caption{Kräftegleichgewicht an einem Mecanum-Rad.}
\end{figure}

Die Leistung einer vektoriellen Kraft berechnet sich nach : 
$$ P_F = F_T \cdot v_F $$

Wirken Kraft und Geschwindigkeit entlang einer Koordinatenachse, haben beide Vektoren die gleiche Komponente ungleich null und ihr Skalarprodukt kann vereinfacht als Produkt der skalaren Größen betrachtet werden.

Die Kraftvektor in $x$- und $y$-Richtung setzt sich zusammen als die Summe der einzelnen $x$- und $y$-Vektoren der vier Räder:
\begin{align*}
    \sum_{i=1}^4 F_{ix} &= \sum_{i=1}^4 F_i \cos \alpha \\
    &= \sum_{i=1}^4 (-1)^i SIG \cdot K_i F_{Ti} \sin \alpha \cos \alpha \\
    &= \sum_{i=1}^4 (-1)^i SIG \cdot \frac{1}{2} K_i F_{Ti}
\end{align*}
\begin{align*}
    \sum_{i=1}^4 F_{iy} &= \sum_{i=1}^4 F_i \sin \alpha \\
    &= \sum_{i=1}^4 SIG \cdot K_i F_{Ti} \sin^2 \alpha \\
    &= \sum_{i=1}^4 SIG \cdot \frac{1}{2} K_i F_{Ti}
\end{align*}

SIG sei die Vorzeichenkonventionen für die Drehrichtung der Räder.
Diese wird in der Steuerung direkt implementiert und wird daher bei den folgenden Rechnungen nicht weiter betrachtet.

Der Winkel $ \alpha $ beschreibt den Winkel, in dem die Rollen auf dem Mecanum-Rad angebracht sind.
In den meisten Fällen gilt $\alpha = 45^\circ$.

Für eine translatorische Bewegung müssen die Radpaare mit gleicher Geschwindigkeit drehen.
Entsprechend müssen ihre Kraftvektoren $F_{T1, 3} / F_{T2, 4}$ gleich groß sein.
Durch Auflösen der Summenzeichen erhält man ein Gleichungssystem:
\begin{align*}
    F_x &= - K_i F_{T1, 3} + K_i F_{T2, 4} \\
    F_y &= K_i F_{T1, 3}   + K_i F_{T2, 4}
\end{align*}

Nach dem Umstellen erhält man $F_{T1, 3}$ und $F_{T2, 4}$ und kann somit auch direkt die Geschwindigkeiten berechnen:
\begin{align*}
    F_{T1, 3} &= \frac{F_y + F_x}{K_i} &\Rightarrow v_{T1, 3} &= \frac{v_y + v_x}{K_i} \\
    F_{T2, 4} &= \frac{F_y - F_x}{K_i} &\Rightarrow v_{T2, 4} &= \frac{v_y - v_x}{K_i} \\
\end{align*}

Der Faktor $K_i$ setzt sich aus unterschiedlichen Einzelfaktoren zusammen, welche die durch das Motormoment erzeugten treibenden Kräfte beeinflussen. $K_i$ wird für den Boden der Werkstatt empirisch ermittelt.


\subsection{Rotation}
\label{sec:Rotation}
Die Rotation des Mecanum-Roboters um sein Zentrum müssen alle Räder mit gleicher Geschwindigkeit drehen, lediglich die Richtung unterscheidet sich.
Für eine Drehung im Uhrzeigersinn drehen beispielsweise Rad 1 und 2 rückwärts, Rad 3 und 4 vorwärts. Allgemein gilt:
\begin{align*}
    v_{ref} &= K_i \cdot r \cdot \omega \\
    v_1 = v_4 &= - v_{ref} \\
    v_2 = v_3 &= + v_{ref}
\end{align*}

\subsection{Betrachtung $K_i$}
\label{sec:k-faktor}

Der Faktor $K_i$ hat einen großen Einfluss auf die Bewegung des Mecanum-Roboters. Er setzt sich aus unterschiedlichen Einzelfaktoren zusammen, welche die durch das Motormoment erzeugten treibenden Kräfte beeinflussen. Zu den Einflussfaktoren zählen unter anderem die verschiedenen Reibungsfaktoren und die Flächenträgheitsmomente. 

Da eine Bestimmung der einzelnen Faktoren sehr aufwendig ist und die Varianzen der Fehleranteile  bei der Multiplikation zu $K_i$ ebenfalls multipliziert werden müssen, ist eine direkte Bestimmung von $K_i$ zu empfehlen. Die Bestimmung von  $K_i$ muss zudem explizit für den Untergrund auf dem der Roboter fahren soll erfolgen. Der Einfluss weiterer Einflussfaktoren (Feuchtigkeit, Staub, etc.) sollte durch definierte Randbedingungen möglichst gering gehalten werden. 
Da die Reibung auch von der Auflagefläche der Rollen abhängig ist und diese je nach Fahrtrichtung (siehe Abbilung \ref{fig:himmel}) variiert, wird ein zusätzlicher Einfluss der Fahrtrichtung auf  $K_i$ vermutet. 

{'fraction_non_alphanumeric': 0.09394857757356535, 'fraction_numerical': 0.012513442174210578, 'mean_word_length': 4.73109243697479, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2638337', 'n_tokens_mistral': 3810, 'n_tokens_neox': 3887, 'n_words': 1153}