@@ -3,34 +3,36 @@ Einige der wesentlichen Begriffe dieser Arbeit besitzen keine eindeutige Definit
\section{Roboter}
Das Cambridge Dictionary definiert einen Roboter im Allgemeinen als \glqq eine von einem Computer gesteuerte Maschine, die zur automatischen Ausführung von Aufgaben genutzt wird\grqq{}\cite{noauthor_robot_nodate}.
Das Cambridge Dictionary definiert einen Roboter im Allgemeinen als \glqq eine von einem Computer gesteuerte Maschine, die zur automatischen Ausführung von Aufgaben genutzt wird\grqq{}~\cite{noauthor_robot_nodate}.
Diese Arbeit bezieht sich in erster Linie auf industrielle Roboter oder auch industrielle Manipulatoren. Die Bezeichnungen Roboter und Manipulator werden daher in dieser Arbeit synonym verwendet. Mechanisch sind sie als serielle Kette zu beschreiben, in der jedes Glied, bis auf das erste und letzte, mit einem anderen Glied über ein Gelenk verbunden ist\cite{siciliano_springer_2008}. Typischer Weise besitzen solche Manipulatoren einen Endeffektor, der zur Handhabung, Montage und Bearbeitung von Werkstücken konzipiert ist und entsprechend der zu erledigenden Aufgabe zu wählen ist.
Diese Arbeit bezieht sich in erster Linie auf industrielle Roboter oder auch industrielle Manipulatoren. Die Bezeichnungen Roboter und Manipulator werden daher in dieser Arbeit synonym verwendet. Mechanisch sind sie als serielle Kette zu beschreiben, in der jedes Glied, bis auf das erste und letzte, mit einem anderen Glied über ein Gelenk verbunden ist~\cite{siciliano_springer_2008}. Typischer Weise besitzen solche Manipulatoren einen Endeffektor, der zur Handhabung, Montage und Bearbeitung von Werkstücken konzipiert ist und entsprechend der zu erledigenden Aufgabe zu wählen ist.
\section{Cobots}
Roboter sind dem Menschen in vielen Bereichen deutlich überlegen. Sie sind durchgängig einsetzbar und arbeiten weitaus genauer. Die Überwachung und Entscheidungsfindung obliegt jedoch weiterhin dem Menschen. Gerade in Bereichen, die ein hohes Maß an individualisierten Arbeitsschritten enthalten, ist heute noch nicht praktikabel menschliche Arbeiter vollständig zu ersetzen. Um trotzdem auch die Vorteile des Einsatzes von Robotern auszunutzen, ist es wichtig eine Umgebung zu schaffen, in der Roboter und Menschen sich einen gemeinsamen Arbeitsbereich teilen\cite{siciliano_springer_2008}.
Roboter sind dem Menschen in vielen Bereichen deutlich überlegen. Sie sind durchgängig einsetzbar und arbeiten weitaus genauer. Die Überwachung und Entscheidungsfindung obliegt jedoch weiterhin dem Menschen. Gerade in Bereichen, die ein hohes Maß an individualisierten Arbeitsschritten enthalten, ist heute noch nicht praktikabel menschliche Arbeiter vollständig zu ersetzen. Um trotzdem auch die Vorteile des Einsatzes von Robotern auszunutzen, ist es wichtig eine Umgebung zu schaffen, in der Roboter und Menschen sich einen gemeinsamen Arbeitsbereich teilen~\cite{siciliano_springer_2008}.
In solchen kollaborativen Zellen ist es notwendig, dass der Roboter eine Reihe von Sicherheitsbestimmungen gerecht wird [\_\_\_ISO 15066] und in der Lage ist auf unerwartetes Verhalten des Menschen zu reagieren und sein eigenes Verhalten automatisch anzupassen~\cite{fitzek_li_speidel_strufe_simsek_reisslein}, um Verletzungen zu verhindern und stets eine sichere Arbeitsumgebung zu gewährleisten. Erfüllt ein Roboter diese Vorgaben und kann für kollaborative Arbeiten mit Menschen eingesetzt werden, spricht man von einem Cobot.
\section{Pose}
Die Pose eines Roboters beschreibt seine Position und Orientierung im Raum\cite{siciliano_springer_2008}. Die Pose eines Manipulators kann durch die Rotation der einzelnen Gelenke eindeutig definiert werden.
Die Pose eines Roboters beschreibt seine Position und Orientierung im Raum~\cite{siciliano_springer_2008}. Die Pose eines Manipulators kann durch die Rotation der einzelnen Gelenke eindeutig definiert werden.
\section{Pfad und Trajektorie}
Der Pfad und die Trajektorie beschreiben eine Folge von Posen im Raum, die vom Roboter eingenommen werden sollen. Die Trajektorie enthält darüber hinaus auch Zeitabhängigkeiten und damit auch Informationen über Geschwindigkeit und Beschleunigung. Die Pfadplanung geht der Trajektorienplanung daher stets voraus, auch wenn beide Schritte nicht zwangsläufig separat erfolgen müssen\cite{carbone_path_2015}.
Der Pfad und die Trajektorie beschreiben eine Folge von Posen im Raum, die vom Roboter eingenommen werden sollen. Die Trajektorie enthält darüber hinaus auch Zeitabhängigkeiten und damit auch Informationen über Geschwindigkeit und Beschleunigung. Die Pfadplanung geht der Trajektorienplanung daher stets voraus, auch wenn beide Schritte nicht zwangsläufig separat erfolgen müssen~\cite{carbone_path_2015}.
\section{Motion Planning}
Motion Planning beschreibt die Aufgabe eine kontinuierliche und kollisionsfreie Trajektorie von einem gegebenen Startzustand zu einem Zielzustand zu finden\cite{siciliano_springer_2008}\cite{sucan_open_2012}.
Motion Planning beschreibt die Aufgabe eine kontinuierliche und kollisionsfreie Trajektorie von einem gegebenen Startzustand zu einem Zielzustand zu finden~\cite{siciliano_springer_2008}\cite{sucan_open_2012}.
Zum Lösen dieser Aufgabe, muss der Roboter in der Lage sein die Position und die Orientierung seiner Elemente anhand der vorangegangenen Gelenkwerte zu berechnen. Diese Berechnung wird Vorwärtstransformation oder auch Vorwärtskinematik genannt und häufig dazu verwendet die Position und Orientierung des Endeffektors relativ zu Sockel des Manipulators zu bestimmen\cite{siciliano_springer_2008}.
Zum Lösen dieser Aufgabe, muss der Roboter in der Lage sein die Position und die Orientierung seiner Elemente anhand der vorangegangenen Gelenkwerte zu berechnen. Diese Berechnung wird Vorwärtstransformation oder auch Vorwärtskinematik genannt und häufig dazu verwendet die Position und Orientierung des Endeffektors relativ zu Sockel des Manipulators zu bestimmen~\cite{siciliano_springer_2008}.
Ist der Zielzustand als Pose des Endeffektors definiert, muss eine Konfiguration der Gelenkwerte gefunden werden, die in dieser Pose des Endeffektors resultiert. Die Berechnung der Konfiguration wird Rückwärtstransformation oder Inverskinematik genannt. Damit eine Lösung gefunden werden kann, muss der Zielzustand innerhalb des Arbeitsbereichs des Roboters liegen. Aber auch dann kann es sowohl keine als auch mehrere Lösungen geben\cite{siciliano_springer_2008}.
Ist der Zielzustand als Pose des Endeffektors definiert, muss eine Konfiguration der Gelenkwerte gefunden werden, die in dieser Pose des Endeffektors resultiert. Die Berechnung der Konfiguration wird Rückwärtstransformation oder Inverskinematik genannt. Damit eine Lösung gefunden werden kann, muss der Zielzustand innerhalb des Arbeitsbereichs des Roboters liegen. Aber auch dann kann es sowohl keine als auch mehrere Lösungen geben~\cite{siciliano_springer_2008}.
Im Raum definiert werden kann eine Pose im \glqq Joint Space\grqq{} und im \glqq Cartesian Space \grqq{}. Eine Definition im \glqq Joint Space\grqq{} ist vollständig, da in ihr der Wert jedes Gelenks definiert ist. Eine Beschreibung im \glqq Cartesian Space \grqq{} hingegen ist nicht vollständig, da hier lediglich die Pose des Endeffektors, in Form von kartesischen Koordinaten, definiert ist. Für eine vollständige Beschreibung muss daher noch eine Rückwärtstransformation berechnet werden.
Das Finden einer optimalen Trajektorie ist PSPACE-vollständig und daher schwer zu implementieren und rechnerisch zu lösen. In der Praxis hat sich daher für die meisten Anwendungsfälle ein alternativer Ansatz des Sampling-Based Planning durchgesetzt\cite{siciliano_springer_2008}. Dieser ist einfacher zu implementieren, bietet aber keinen \glqq vollständigen\grqq{} Algorithmus. Existiert eine Lösung, wird diese in unbestimmter Zeit auch gefunden, jedoch kann die Nicht-Existenz einer Lösung nicht festgestellt werden\cite{sucan_open_2012}.
Das Finden einer optimalen Trajektorie ist PSPACE-vollständig und daher schwer zu implementieren und rechnerisch zu lösen. In der Praxis hat sich daher für die meisten Anwendungsfälle ein alternativer Ansatz des Sampling-Based Planning durchgesetzt~\cite{siciliano_springer_2008}. Dieser ist einfacher zu implementieren, bietet aber keinen \glqq vollständigen\grqq{} Algorithmus. Existiert eine Lösung, wird diese in unbestimmter Zeit auch gefunden, jedoch kann die Nicht-Existenz einer Lösung nicht festgestellt werden~\cite{sucan_open_2012}.
\section{Constraints}
Neben der Beschränkung des Motion Plannings auf einen kollisionsfreien Pfad, können dem Planer noch weitere Beschränkungen (Constraints) auferlegt werden. Dadurch ist es möglich das Verhalten und die Bewegung des Roboters den den aufgabenspezifischen Anforderungen anzupassen, die anspruchsvolle Aufgabe des Motion Plannings aber weiterhin einem Algorithmus zu überlassen.
Häufig wird bei Constraints zwischen \glqq holonomic\grqq{} und \glqq nonholonomic\grqq{} Constraints unterschieden. Erstere können mathematisch alleine durch Gleichungen beschrieben werden, die lediglich von der Position abhängig sind. Für letztere ist mindestens eine Variable neben der Position auch von der zeitlichen Ableitung abhängig \cite{siciliano_springer_2008}. Das Constraint der Kollisionsfreiheit beispielsweise ist nach dieser Definition ein \glqq nonholonomic\grqq{} Constraint \cite{berenson_constrained_nodate}.
\textcolor{blue}{[Erweitern]}
Die physischen Eigenschaften des Roboters, resultieren in der realen Welt automatisch in Einschränkungen (Constraints) für seine Bewegung. Diese lassen sich in globale und lokale Constraint unterteilen. Während globale Constraints sich aus den Hindernissen in der Welt und möglichen Gelenklimits der Roboters ergeben, limitieren lokale Constraints die Geschwindigkeit und Beschleunigung, aufgrund der kinematischen Eigenschaften und der dynamischen Eigenschaften, wie die Erhaltung von Drehimpulsen~\cite{siciliano_springer_2008}.
Neben den natürlich gegebenen Constraints, können dem Planer noch weitere Beschränkungen auferlegt werden. Dadurch ist es möglich das Verhalten und die Bewegung des Roboters an die aufgabenspezifischen Anforderungen anzupassen, die Aufgabe des Motion Plannings aber weiterhin einem Algorithmus zu überlassen.
Häufig wird bei Constraints zwischen \glqq holonomic\grqq{} und \glqq nonholonomic\grqq{} Constraints unterschieden. Erstere können mathematisch alleine durch Gleichungen beschrieben werden, die lediglich von der Position abhängig sind. Für letztere ist mindestens eine Variable neben der Position auch von der zeitlichen Ableitung abhängig~\cite{siciliano_springer_2008}. Das Constraint der Kollisionsfreiheit beispielsweise ist nach dieser Definition \glqq nonholonomic\grqq{}~\cite{berenson_constrained_nodate}.