Legged Locomotion of Robots + Laborprojekt - Exam
Aufgabe 1)
Kinematik und Dynamik von robotischen BeinenUntersucht Bewegungen und Kräfte in robotischen Beinen, Fokus auf Bewegungssteuerung und Stabilität.
- Kinematik: Analyse der Gelenkwinkel und Positionen.
- Dynamik: Betrachtung der Kräfte und Momente.
- D-Gleichung: \(M(\theta)\ddot{\theta} + C(\theta,\dot{\theta})\dot{\theta} + G(\theta) = \tau\)
- Vorwärts-/Rückwärtskinematik: Zur Bewegungsplanung.
- Stabilitätskriterien: ZMP, CoM.
- Simulationsmodelle: Und Echtzeitanwendungen.
- PID-Regelung: Zur positionsbasierten Steuerung.
a)
Beschreibe die vollständige Vorwärtskinematik eines 3-DOF robotischen Beins. Die Maße des Beins sind gegeben: Oberschenkel (l1) = 0.3 m, Unterschenkel (l2) = 0.3 m und Fuß (l3) = 0.1 m. Bestimme die Position des Endpunktes (Fußspitze) relativ zum Hüftgelenk unter der Annahme, dass die Gelenkwinkel θ1, θ2 und θ3 bekannt sind.
Lösung:
Kinematik und Dynamik von robotischen BeinenUntersucht Bewegungen und Kräfte in robotischen Beinen, Fokus auf Bewegungssteuerung und Stabilität.
- Kinematik: Analyse der Gelenkwinkel und Positionen.
- Dynamik: Betrachtung der Kräfte und Momente.
- D-Gleichung: \(M(\theta)\ddot{\theta} + C(\theta,\dot{\theta})\dot{\theta} + G(\theta) = \tau\)
- Vorwärts-/Rückwärtskinematik: Zur Bewegungsplanung.
- Stabilitätskriterien: ZMP, CoM.
- Simulationsmodelle: Und Echtzeitanwendungen.
- PID-Regelung: Zur positionsbasierten Steuerung.
Subexercise:- Beschreibe die vollständige Vorwärtskinematik eines 3-DOF robotischen Beins. Die Maße des Beins sind gegeben: Oberschenkel (\(l_1\)) = 0.3 m, Unterschenkel (\(l_2\)) = 0.3 m und Fuß (\(l_3\)) = 0.1 m. Bestimme die Position des Endpunktes (Fußspitze) relativ zum Hüftgelenk unter der Annahme, dass die Gelenkwinkel \(\theta_1\), \(\theta_2\) und \(\theta_3\) bekannt sind.
Lösung:- Um die Position der Fußspitze relativ zum Hüftgelenk zu berechnen, verwenden wir die Vorwärtskinematik. Dies beinhaltet die Berechnung der Positionen der einzelnen Segmente basierend auf den Gelenkwinkeln und Längen der Segmente.
- Gegeben:
- Oberschenkel (\(l_1\)) = 0.3 m
- Unterschenkel (\(l_2\)) = 0.3 m
- Fuss (\(l_3\)) = 0.1 m
- Gelenkwinkel: \(\theta_1\), \(\theta_2\), \(\theta_3\)
- Die Positionen der einzelnen Segmente können durch folgende Schritte bestimmt werden:
- Schritt 1: Berechne die Position des Knies:
- \(\begin{aligned} x_1 & = l_1 \cos\left(\theta_1\right) \ y_1 & = l_1 \sin\left(\theta_1\right) \end{aligned}\)
- Schritt 2: Berechne die Position des Fußgelenks:
- \(\begin{aligned} x_2 & = x_1 + l_2 \cos\left(\theta_1 + \theta_2\right) \ y_2 & = y_1 + l_2 \sin\left(\theta_1 + \theta_2\right) \end{aligned}\)
- Schritt 3: Berechne die Position der Fußspitze:
- \(\begin{aligned} x_3 & = x_2 + l_3 \cos\left(\theta_1 + \theta_2 + \theta_3\right) \ y_3 & = y_2 + l_3 \sin\left(\theta_1 + \theta_2 + \theta_3\right) \end{aligned}\)
- Insgesamt ergibt sich:
- \(x_3 = l_1 \cos\left(\theta_1\right) + l_2 \cos\left(\theta_1 + \theta_2\right) + l_3 \cos\left(\theta_1 + \theta_2 + \theta_3\right)\)
- \(y_3 = l_1 \sin\left(\theta_1\right) + l_2 \sin\left(\theta_1 + \theta_2\right) + l_3 \sin\left(\theta_1 + \theta_2 + \theta_3\right)\)
Daher ist die Position der Fußspitze relativ zum Hüftgelenk:- \(x_3 = l_1 \cos\left(\theta_1\right) + l_2 \cos\left(\theta_1 + \theta_2\right) + l_3 \cos\left(\theta_1 + \theta_2 + \theta_3\right)\)
- \(y_3 = l_1 \sin\left(\theta_1\right) + l_2 \sin\left(\theta_1 + \theta_2\right) + l_3 \sin\left(\theta_1 + \theta_2 + \theta_3\right)\)
b)
Nutze die D-Gleichung, um die Dynamik eines 2-DOF robotischen Beins zu analysieren. Die Gelenkwinkel des Oberschenkels und Unterschenkels sind θ1 und θ2. Die Matrizen \(M(\theta)\), \(C(\theta,\dot{\theta})\) und \(G(\theta)\) für das System sind gegeben als:\[M(θ) = \begin{pmatrix} m_{11} & m_{12} \ m_{21} & m_{22} \end{pmatrix}, \ C(θ,\dot{θ}) = \begin{pmatrix} c_{11} & c_{12} \ c_{21} & c_{22} \end{pmatrix}\begin{pmatrix} \dot{θ_1} \ \dot{θ_2} \end{pmatrix}, \ G(θ) = \begin{pmatrix} g_{1} \ g_{2} \end{pmatrix}\]Berechne die Momente \(τ_1\) und \(τ_2\) an den Gelenken für gegebene Positionen \(θ_1, θ_2\), Winkelgeschwindigkeiten \(\dot{θ_1}, \dot{θ_2}\) und Winkelbeschleunigungen \(\ddot{θ_1}, \ddot{θ_2}\).
Lösung:
Kinematik und Dynamik von robotischen BeinenUntersucht Bewegungen und Kräfte in robotischen Beinen, Fokus auf Bewegungssteuerung und Stabilität.
- Kinematik: Analyse der Gelenkwinkel und Positionen.
- Dynamik: Betrachtung der Kräfte und Momente.
- D-Gleichung: \(M(\theta)\ddot{\theta} + C(\theta,\dot{\theta})\dot{\theta} + G(\theta) = \tau\)
- Vorwärts-/Rückwärtskinematik: Zur Bewegungsplanung.
- Stabilitätskriterien: ZMP, CoM.
- Simulationsmodelle: Und Echtzeitanwendungen.
- PID-Regelung: Zur positionsbasierten Steuerung.
Subexercise:Nutze die D-Gleichung, um die Dynamik eines 2-DOF robotischen Beins zu analysieren. Die Gelenkwinkel des Oberschenkels und Unterschenkels sind \(\theta_1\) und \(\theta_2\). Die Matrizen \(M(\theta)\), \(C(\theta,\dot{\theta})\) und \(G(\theta)\) für das System sind gegeben als:\[M(\theta) = \begin{pmatrix} m_{11} & m_{12} \ m_{21} & m_{22} \end{pmatrix}, \ C(\theta,\dot{\theta}) = \begin{pmatrix} c_{11} & c_{12} \ c_{21} & c_{22} \end{pmatrix} \begin{pmatrix} \dot{\theta_1} \ \dot{\theta_2} \end{pmatrix}, \ G(\theta) = \begin{pmatrix} g_{1} \ g_{2} \end{pmatrix}\]Berechne die Momente \(\tau_1\) und \(\tau_2\) an den Gelenken für gegebene Positionen \(\theta_1, \theta_2\), Winkelgeschwindigkeiten \(\dot{\theta_1}, \dot{\theta_2}\) und Winkelbeschleunigungen \(\ddot{\theta_1}, \ddot{\theta_2}\).
Lösung:\[\begin{pmatrix} \tau_1 \ \tau_2 \end{pmatrix} = M(\theta) \begin{pmatrix} \ddot{\theta_1} \ \ddot{\theta_2} \end{pmatrix} + C(\theta,\dot{\theta}) \begin{pmatrix} \dot{\theta_1} \ \dot{\theta_2} \end{pmatrix} + G(\theta)\]
- Setze die gegebenen Matrizen ein:
- \[\begin{pmatrix} \tau_1 \ \tau_2 \end{pmatrix} = \begin{pmatrix} m_{11} & m_{12} \ m_{21} & m_{22} \end{pmatrix} \begin{pmatrix} \ddot{\theta_1} \ \ddot{\theta_2} \end{pmatrix} + \begin{pmatrix} c_{11} & c_{12} \ c_{21} & c_{22} \end{pmatrix} \begin{pmatrix} \dot{\theta_1} \ \dot{\theta_2} \end{pmatrix} + \begin{pmatrix} g_{1} \ g_{2} \end{pmatrix}\]
- Multipliziere die Matrizen:
- Erster Term
- \[\begin{pmatrix} m_{11} & m_{12} \ m_{21} & m_{22} \end{pmatrix} \begin{pmatrix} \ddot{\theta_1} \ \ddot{\theta_2} \end{pmatrix} = \begin{pmatrix} m_{11}\ddot{\theta_1} + m_{12}\ddot{\theta_2} \ m_{21}\ddot{\theta_1} + m_{22}\ddot{\theta_2} \end{pmatrix}\]
- Zweiter Term
- \[\begin{pmatrix} c_{11} & c_{12} \ c_{21} & c_{22} \end{pmatrix} \begin{pmatrix} \dot{\theta_1} \ \dot{\theta_2} \end{pmatrix} = \begin{pmatrix} c_{11}\dot{\theta_1} + c_{12}\dot{\theta_2} \ c_{21}\dot{\theta_1} + c_{22}\dot{\theta_2} \end{pmatrix}\]
- Dritter Term
- \[\begin{pmatrix} g_{1} \ g_{2} \end{pmatrix}\]
- Füge die Terme zusammen:
- \[\begin{pmatrix} \tau_1 \ \tau_2 \end{pmatrix} = \begin{pmatrix} m_{11}\ddot{\theta_1} + m_{12}\ddot{\theta_2} \ m_{21}\ddot{\theta_1} + m_{22}\ddot{\theta_2} \end{pmatrix} + \begin{pmatrix} c_{11}\dot{\theta_1} + c_{12}\dot{\theta_2} \ c_{21}\dot{\theta_1} + c_{22}\dot{\theta_2} \end{pmatrix} + \begin{pmatrix} g_{1} \ g_{2} \end{pmatrix}\]
- Dies ergibt die finalen Momente an den Gelenken:\
- \(\tau_1 = m_{11}\ddot{\theta_1} + m_{12}\ddot{\theta_2} + c_{11}\dot{\theta_1} + c_{12}\dot{\theta_2} + g_{1}\)
- \(\tau_2 = m_{21}\ddot{\theta_1} + m_{22}\ddot{\theta_2} + c_{21}\dot{\theta_1} + c_{22}\dot{\theta_2} + g_{2}\)
c)
Erkläre die Bedeutung des Zero Moment Points (ZMP) in der Stabilitätsanalyse von robotischen Beinen. Beschreibe, wie der ZMP-Ansatz verwendet wird, um die Stabilität eines gehenden Roboters während des Gehens zu analysieren. Wie würde man den ZMP für ein typisches Szenario berechnen, in dem der Roboter einen Schritt nach vorne macht?
Lösung:
Kinematik und Dynamik von robotischen BeinenUntersucht Bewegungen und Kräfte in robotischen Beinen, Fokus auf Bewegungssteuerung und Stabilität.
- Kinematik: Analyse der Gelenkwinkel und Positionen.
- Dynamik: Betrachtung der Kräfte und Momente.
- D-Gleichung: \(M(\theta)\ddot{\theta} + C(\theta,\dot{\theta})\dot{\theta} + G(\theta) = \tau\)
- Vorwärts-/Rückwärtskinematik: Zur Bewegungsplanung.
- Stabilitätskriterien: ZMP, CoM.
- Simulationsmodelle: Und Echtzeitanwendungen.
- PID-Regelung: Zur positionsbasierten Steuerung.
Subexercise:Erkläre die Bedeutung des Zero Moment Points (ZMP) in der Stabilitätsanalyse von robotischen Beinen. Beschreibe, wie der ZMP-Ansatz verwendet wird, um die Stabilität eines gehenden Roboters während des Gehens zu analysieren. Wie würde man den ZMP für ein typisches Szenario berechnen, in dem der Roboter einen Schritt nach vorne macht?
Lösung:- Bedeutung des Zero Moment Points (ZMP):
- Der Zero Moment Point (ZMP) ist ein wichtiges Stabilitätskriterium in der Robotertechnik, insbesondere für gehende Roboter.
- Der ZMP ist der Punkt auf der Bodenebene, an dem die resultierenden Bodenreaktionskräfte keine kippenden Momente um die horizontalen Achsen erzeugen.
- Wenn sich der ZMP innerhalb der Unterstützungsfläche des Roboters befindet, bleibt der Roboter stabil und kippt nicht um.
- Verwendung des ZMP-Ansatzes zur Stabilitätsanalyse:
- Bei der Stabilitätsanalyse eines gehenden Roboters wird der ZMP kontinuierlich berechnet.
- Der Bewegungsplan und die Steuerungsstrategien müssen so gestaltet sein, dass der ZMP immer innerhalb der Unterstützungsfläche bleibt.
- Dies ermöglicht dem Roboter, seine Haltung zu kontrollieren und kippt nicht während der Bewegung.
- Berechnung des ZMP:
- Die Berechnung des ZMP basiert auf den Kräften und Momenten, die durch das Gewicht und die Bewegung des Roboters verursacht werden.
- Der ZMP \(x_{ZMP}\) in der X-Richtung kann durch die folgende Gleichung berechnet werden:\[x_{ZMP} = \frac{\sum{(m_i x_i \ddot{z_i} - m_i g z_i)}}{\sum{(m_i \ddot{z_i} - m_i g)}}\]Dabei sind:\(m_i\) die Masse des i-ten Segments,\(x_i\) die X-Koordinate des Schwerpunkts des i-ten Segments,\(\ddot{z_i}\) die Beschleunigung des Schwerpunkts des i-ten Segments in Z-Richtung,\(z_i\) die Z-Koordinate des Schwerpunkts des i-ten Segments,\(g\) die Gravitationskonstante.
- In der Y-Richtung wird der ZMP \(y_{ZMP}\) ähnlich berechnet:\[y_{ZMP} = \frac{\sum{(m_i y_i \ddot{z_i} - m_i g z_i)}}{\sum{(m_i \ddot{z_i} - m_i g)}}\]Dabei sind:\(y_i\) die Y-Koordinate des Schwerpunkts des i-ten Segments.
- Typisches Szenario: Schritt nach vorne:
- Stellen wir uns vor, ein Roboter macht einen Schritt nach vorne.
- Während der Schrittphase verlagert sich das Gewicht des Roboters, somit ändern sich die Kräfte und Momente, die auf den ZMP einwirken.
- Um die Stabilität zu gewährleisten, muss der Bewegungsplan so gestaltet sein, dass der ZMP immer innerhalb der Unterstützungsfläche bleibt.
- Wenn der Roboter den Schritt macht, wird der ZMP vorwärts in Richtung des fußtrages Beins wandern.
- Die dynamische Berechnung des ZMP während des Schritts ist entscheidend, um die Stabilität zu kontrollieren und zu erhalten.
Zusammenfassung:- Der Zero Moment Point (ZMP) ist ein entscheidendes Kriterium für die Stabilität von gehenden Robotern.
- Durch die kontinuierliche Überwachung und Anpassung des ZMP kann die Stabilität während der Bewegung gewährleistet werden.
- Die Berechnung des ZMP basiert auf den Kräften und Momenten, die durch das Gewicht und die Bewegung des Roboters verursacht werden.
- In einem typischen Szenario, wie dem Machen eines Schrittes nach vorne, muss der ZMP immer innerhalb der Unterstützungsfläche bleiben, um die Stabilität zu gewährleisten.
d)
Beschreibe den Prozess der Implementierung eines PID-Regelungssystems für ein robotisches Bein zur Positionssteuerung. Angenommen, das robotische Bein soll seine Fußspitze zu einer gewünschten Position (x_d, y_d) bewegen. Lege die Regelparameter P, I und D fest und zeige die Umsetzung des Regelkreises in einem Python-Skript. Nutze den folgenden Beispielcode als Ausgangspunkt:
import numpy as np class PID: def __init__(self, P, I, D, setpoint=0): self.Kp = P self.Ki = I self.Kd = D self.setpoint = setpoint self.integral = 0 self.previous_error = 0 def update(self, measurement): error = self.setpoint - measurement self.integral += error derivative = error - self.previous_error output = self.Kp*error + self.Ki*self.integral + self.Kd*derivative self.previous_error = error return output# Beispielinitialisierung des PID-Reglerspid = PID(P=1.0, I=0.1, D=0.05, setpoint=desired_position)
Lösung:
Kinematik und Dynamik von robotischen BeinenUntersucht Bewegungen und Kräfte in robotischen Beinen, Fokus auf Bewegungssteuerung und Stabilität.
- Kinematik: Analyse der Gelenkwinkel und Positionen.
- Dynamik: Betrachtung der Kräfte und Momente.
- D-Gleichung: \(M(\theta)\ddot{\theta} + C(\theta,\dot{\theta})\dot{\theta} + G(\theta) = \tau\)
- Vorwärts-/Rückwärtskinematik: Zur Bewegungsplanung.
- Stabilitätskriterien: ZMP, CoM.
- Simulationsmodelle: Und Echtzeitanwendungen.
- PID-Regelung: Zur positionsbasierten Steuerung.
Subexercise:Beschreibe den Prozess der Implementierung eines PID-Regelungssystems für ein robotisches Bein zur Positionssteuerung. Angenommen, das robotische Bein soll seine Fußspitze zu einer gewünschten Position (\(x_d\), \(y_d\)) bewegen. Lege die Regelparameter P, I und D fest und zeige die Umsetzung des Regelkreises in einem Python-Skript. Nutze den folgenden Beispielcode als Ausgangspunkt:
import numpy as np class PID: def __init__(self, P, I, D, setpoint=0): self.Kp = P self.Ki = I self.Kd = D self.setpoint = setpoint self.integral = 0 self.previous_error = 0 def update(self, measurement): error = self.setpoint - measurement self.integral += error derivative = error - self.previous_error output = self.Kp*error + self.Ki*self.integral + self.Kd*derivative self.previous_error = error return output# Beispielinitialisierung des PID-Reglerspid = PID(P=1.0, I=0.1, D=0.05, setpoint=desired_position)
Lösung:- Implementierung eines PID-Regelungssystems:
- Ein PID-Regler (Proportional-Integral-Derivative) ist ein weit verbreiteter Regelalgorithmus, der in verschiedenen Steuerungssystemen verwendet wird, um eine Prozessvariable (z. B. die Position eines robotischen Beins) auf einen gewünschten Sollwert zu bringen.
- Die Regelparameter sind P (Proportional), I (Integral) und D (Derivat). Diese Parameter müssen für das spezifische System richtig abgestimmt werden:
- P (Proportional): Bestimmt die Reaktion auf den aktuellen Fehler. Ein höherer Wert führt zu einer stärker reagierenden Regelung.
- I (Integral): Berücksichtigt die Summe der vergangenen Fehler. Ein höherer Wert hilft, Fehler über die Zeit zu reduzieren, kann aber auch zu Überschwingungen führen.
- D (Derivate): Reagiert auf die Änderung des Fehlers. Ein höherer Wert kann helfen, Überschwingungen zu reduzieren.
- Implementierung in Python:Hier ist ein Beispiel, wie der Regelkreis in einem Python-Skript umgesetzt werden kann.
import numpy as npclass PID: def __init__(self, P, I, D, setpoint=0): self.Kp = P self.Ki = I self.Kd = D self.setpoint = setpoint self.integral = 0 self.previous_error = 0 def update(self, measurement): error = self.setpoint - measurement self.integral += error derivative = error - self.previous_error output = self.Kp * error + self.Ki * self.integral + self.Kd * derivative self.previous_error = error return output# Beispielinitialisierung des PID-Reglers für x- und y-Positionpid_x = PID(P=1.0, I=0.1, D=0.05, setpoint=desired_x)pid_y = PID(P=1.0, I=0.1, D=0.05, setpoint=desired_y)# Simulation der Bewegung des robotischen Beinscurrent_x = 0 # Anfangsposition xcurrent_y = 0 # Anfangsposition yfor t in range(100): # Simuliere 100 Takte control_signal_x = pid_x.update(current_x) control_signal_y = pid_y.update(current_y) # Aktualisiere die aktuelle Position (dies ist eine einfache Simulation) current_x += control_signal_x * 0.1 # Die Konstante 0.1 stellt die Systemdynamik dar current_y += control_signal_y * 0.1 print(f'At time {t}: x = {current_x}, y = {current_y}') if abs(current_x - pid_x.setpoint) < 0.01 and abs(current_y - pid_y.setpoint) < 0.01: print('Desired position reached!') break
- Erklärung des Codes:
- Die
PID
-Klasse implementiert die grundlegende PID-Regelung. Der update
-Methode wird die aktuelle Position übergeben und sie berechnet den Kontrollausgang basierend auf den Regelparametern P, I und D. - Die Instanzen
pid_x
und pid_y
steuern die x- und y-Position der Fußspitze des robotischen Beins. - Die Schleife simuliert die Bewegung des robotischen Beins über 100 Zeitschritte.
- Die aktuelle Position wird kontinuierlich mithilfe der PID-Regler aktualisiert.
- Die Simulation stoppt, wenn die gewünschte Position mit einer Genauigkeit von 0.01 erreicht ist.
Aufgabe 2)
Verwendung von künstlichen neuronalen Netzen zur Steuerung der Bewegung von Robotern mit Beinen Legged robots often employ artificial neural networks (ANNs) to achieve complex locomotion tasks. These systems utilize reinforcement learning to adapt and optimize movements in unstructured environments. Inputs to the ANN are typically sensor data such as gyroscope and accelerometer readings, while outputs are control signals sent to joint actuators. During the training phase, the network adjusts its parameters based on reward functions to improve performance over time.
a)
Erkläre detailliert, wie ein künstliches neuronales Netz zur Steuerung der Bewegung eines vierbeinigen Roboters aus den gegebenen Sensordaten aufgebaut ist. Gehe dabei insbesondere auf die Eingabe- und Ausgabeschnittstellen des Netzes ein. Welche Rolle spielen die Belohnungsfunktionen im Trainingsprozess?
Lösung:
- Eingabeschnittstelle des neuronalen Netzes: Die Eingabeschnittstelle eines künstlichen neuronalen Netzes (ANN) für die Steuerung eines vierbeinigen Roboters ist entscheidend, um die benötigten Sensordaten korrekt zu verarbeiten. Typische Eingabedaten umfassen:
- Beschleunigungssensor-Daten: Diese Daten geben Aufschluss über die Beschleunigung des Roboters in verschiedenen Richtungen.
- Gyroskop-Daten: Diese Daten liefern Informationen über die Drehbewegungen und die Orientierung des Roboters.
- Beinposiotionsdaten: Positionsdaten der Beine helfen dem ANN zu verstehen, wie die Beine des Roboters derzeit positioniert sind.
- Kontaktinformationen: Sensoren in den Füßen melden, ob und wie fest der Bodenkontakt besteht.
- Aufbau und Struktur des neuronalen Netzes: Das neuronale Netz besteht aus mehreren Schichten, einschließlich einer Eingabeschicht, mehrerer versteckter Schichten und einer Ausgabeschicht:
- Eingabeschicht: Diese Schicht nimmt die Sensordaten entgegen und leitet sie an die versteckten Schichten weiter.
- Versteckte Schichten: Diese Schichten bestehen aus mehreren Neuronen, die miteinander vernetzt sind. Sie verarbeiten die Sensordaten, erkennen Muster und treffen Entscheidung, wie die Bewegungen gesteuert werden sollen.
- Ausgabeschicht: Diese Schicht erzeugt die Steuerungssignale, die an die Gelenkaktuatoren des Roboters gesendet werden.
- Ausgabeschnittstelle des neuronalen Netzes: Die Ausgabeschnittstelle des ANN ist dafür zuständig, die berechneten Steuerungssignale umzusetzen und an die Aktuatoren zu senden. Diese Signale steuern:
- Die Bewegung und die Position der einzelnen Beine.
- Die Geschwindigkeit und Richtung der Bewegung.
- Die Koordination zwischen den Beinen, um eine reibungslose und stabile Bewegung zu gewährleisten.
- Rolle der Belohnungsfunktion: Die Belohnungsfunktion spielt eine zentrale Rolle im Trainingsprozess des ANN:
- Belohnungsmechanismus: Während des Trainings erhält das ANN Rückmeldungen in Form von Belohnungen oder Bestrafungen basierend auf der Leistung.
- Optimierung: Das ANN passt seine Parameter an, um die erhaltenen Belohnungen zu maximieren. Beispielsweise könnten hohe Belohnungen vergeben werden, wenn der Roboter stabil läuft, und niedrige oder negative Belohnungen, wenn der Roboter stürzt oder unsicher läuft.
- Verstärkungslernen: Der Roboter verwendet Verstärkungslernen, um kontinuierlich zu lernen und seine Bewegung anzupassen. Dies geschieht durch einen ständigen Prozess von Versuch und Irrtum, der durch die Belohnungsfunktion gelenkt wird.
b)
Mathematisches Modell: Betrachte ein einfaches neuronales Netz mit einer einzelnen versteckten Schicht zur Steuerung eines Gelenks eines Roboters. Die Eingabe des Netzes sind die Sensordaten \(x_1, x_2, ..., x_n\) und die Ausgabe ist der Steuerbefehl für das Gelenk \(y\). Das Netz ist durch die Gewichte \(w_{ij}\) und \(v_j\) definiert. Schreibe die Gleichungen auf, die den Zusammenhang zwischen der Eingabe und der Ausgabe des Netzes beschreiben und erkläre, wie das Backpropagation-Verfahren verwendet wird, um die Netzgewichte zu optimieren.
Lösung:
- Mathematisches Modell eines einfachen neuronalen Netzes: Wir betrachten ein neuronales Netz mit einer einzelnen versteckten Schicht. Dieses Netz besteht aus den Eingaben \(x_1, x_2, \, ..., \, x_n\), den Gewichten \(w_{ij}\) und \(v_j\), sowie der Ausgabe \(y\).
- Gleichungen zur Beschreibung des Netzwerks:
- Aktivierungen der versteckten Schicht: Zunächst berechnen wir die Aktivierungen \(z_j\) der Neuronen in der versteckten Schicht. Diese werden aus den Eingaben und den Gewichten \(w_{ij}\) berechnet:\[z_j = \sigma\left(\theta_j + \sum_{i=1}^n w_{ij} x_i\right)\] Dabei ist \(\theta_j\) der Bias-Term des Neurons \(j\) und \(\sigma\) die Aktivierungsfunktion, z.B. die Sigmoidfunktion.
- Ausgabe des Netzwerks: Die Ausgabe \(y\) des Netzwerks wird durch eine gewichtete Summe der Aktivierungen der versteckten Schicht berechnet:\[y = \theta_o + \sum_{j=1}^m v_j z_j\] Dabei ist \(\theta_o\) der Bias-Term des Ausgabeneurons und \(y\) der Steuerbefehl für das Gelenk.
- Verwendung des Backpropagation-Verfahrens zur Optimierung der Netzgewichte: Das Backpropagation-Verfahren dient zur Optimierung der Gewichte \(w_{ij}\) und \(v_j\). Es besteht aus folgenden Schritten:
- 1. Vorwärtsdurchlauf: Die Eingabedaten \(x_1, x_2, \dots, x_n\) werden durch das Netzwerk geleitet, um die Ausgabe \(y\) zu berechnen.
- 2. Fehlerberechnung: Der Fehler \(E\) wird zwischen der berechneten Ausgabe \(y\) und der Zielausgabe \(t\) wie folgt berechnet:\[E = \frac{1}{2}(t - y)^2\]
- 3. Rückwärtsdurchlauf: Der Fehler wird durch das Netzwerk zurückpropagiert, um die Gradienten der Fehlerfunktion bzgl. der Gewichte zu berechnen.
- Für die Ausgabeneuronen:\[ \frac{\partial E}{\partial v_j} = -(t - y)z_j \]
- Für die versteckten Neuronen:\[ \frac{\partial E}{\partial w_{ij}} = -(t - y) v_j z_j (1 - z_j)x_i \]
- 4. Gewichtsanpassung: Die Gewichte werden in Richtung des negativen Gradienten angepasst, um die Fehler zu minimieren:\[ w_{ij} \leftarrow w_{ij} - \eta \frac{\partial E}{\partial w_{ij}} \]\[ v_j \leftarrow v_j - \eta \frac{\partial E}{\partial v_j} \] Dabei steht \(\eta\) für die Lernrate des Netzwerks.
Aufgabe 3)
Model Predictive Control (MPC) ist eine fortschrittliche Methode zur Regelung komplexer Systeme, die insbesondere in der Beinrobotik zur Anwendung kommt. Mithilfe eines Modells des Roboters wird eine Vorhersage zukünftiger Zustände gemacht, um optimale Steuersignale in Echtzeit zu berechnen. Ziel ist es, die zugehörige Kostenfunktion zu minimieren, während gleichzeitig Beschränkungen für Zustände und Eingangsgrößen berücksichtigt werden. Die formale Darstellung der Zielfunktion lautet
a)
d. Implementiere eine einfache Optimierungsroutine in Python, um das Optimierungsproblem des MPC zu lösen. Gegeben seien die Matrizen ... not complete
Lösung:
Hier ist eine einfache Python-Implementierung zur Lösung des Optimierungsproblems des MPC. Wir verwenden die scipy.optimize
-Bibliothek, um die Optimierung durchzuführen:
import numpy as npfrom scipy.optimize import minimize# Beispielwerte für die Matrizen (ersetze diese durch die tatsächlichen Werte)A = np.array([[1, 0], [0, 1]])B = np.array([[1], [0]])Q = np.eye(2)R = np.eye(1)# Beispielwerte für den initialen Zustand und den gewünschten Endzustandx0 = np.array([1, 1])x_des = np.array([0, 0])# Der PlanungshorizontN = 10# Kostenfunktion, die minimiert werden solldef cost_function(u): x = x0 total_cost = 0 for k in range(N): x = A @ x + B @ u[k] state_cost = (x - x_des).T @ Q @ (x - x_des) control_cost = u[k].T @ R @ u[k] total_cost += state_cost + control_cost return total_cost# Anfangsrat für uu0 = np.zeros((N, 1))# Grenzen für ubounds = [(-1, 1)] * N# Optimierung durchführenresult = minimize(cost_function, u0, bounds=bounds)# Optimale Eingangsgrößenoptimal_u = result.xprint('Optimale Eingangsgrößen:', optimal_u)
- Initialisierung: Definiere die Matrizen A, B, Q und R, sowie den anfänglichen Zustand
x0
und den gewünschten Endzustand x_des
. - Kostenfunktion: Die Funktion
cost_function
berechnet die Gesamtkosten über einen Planungshorizont von N Schritten. - Initialer Rate und Grenzen: Definiere einen Startwert
u0
und die Eingangsgrößenbeschränkungen bounds
. - Optimierung: Führe die Optimierung mit der Funktion
minimize
durch und erhalte die optimalen Eingangsgrößen.
Diese Methode ist sehr einfach und soll als Ausgangspunkt dienen. Tatsächlich können komplexere Modelle und Constraints benötigt werden, die mithilfe spezialisierter MPC-Bibliotheken wie cvxpy
besser behandelt werden können.
Aufgabe 4)
Analyse biologischer Bewegungen als VorbildBasierend auf der Untersuchung und Nachahmung biologischer Bewegungsmuster, analysiere die Mechanismen, die zur Optimierung der Energieeffizienz und Stabilität bei Robotern führen. Berücksichtige dabei die Analyse von Muskel- und Gelenkbewegungen bei Lebewesen, die Anwendung von Erkenntnissen aus der Biomechanik, die mathematische Modellierung von Bewegungsabläufen, sowie die Simulation und Implementierung in robotische Systeme. Schließlich sind auch Sensor- und Steuerungstechniken für die Realisierung dieser Bewegungsmuster zu berücksichtigen.
a)
Erkläre, wie die Analyse von Muskel- und Gelenkbewegungen bei Lebewesen zur Optimierung der Energieeffizienz bei robotischen Systemen beitragen kann. Betrachte spezifische Beispiele aus der Natur und diskutiere, welche Eigenschaften auf Robotersysteme übertragen werden können. Beziehe Dich dabei auf mindestens zwei verschiedene Tiere und die prinzipielle Funktion ihrer Bewegungsmechanismen.
Lösung:
Analyse von Muskel- und Gelenkbewegungen bei Lebewesen zur Optimierung der Energieeffizienz bei robotischen SystemenDie Untersuchung der Muskel- und Gelenkbewegungen bei Tieren kann wesentlich dazu beitragen, die Energieeffizienz von robotischen Systemen zu verbessern. Im Folgenden werden wir zwei verschiedene Tiere betrachten und deren Bewegungsmechanismen analysieren. Daraus leiten wir ab, welche Eigenschaften auf Robotersysteme übertragen werden können:
- Känguru: Kängurus nutzen eine spezielle Form der Fortbewegung, das sogenannte Springen. Wesentlich für ihre Effizienz sind: - Elastische Sehnen: Bei jedem Sprung dehnen sich die Sehnen und speichern Energie, die beim nächsten Sprung freigesetzt wird. Diese Mechanik minimiert den Energiebedarf. - Gelenkstruktur und Muskeln: Die Muskeln und Gelenke der Hinterbeine sind darauf ausgelegt, große Kräfte zu erzeugen und zu übertragen, was zu einer äußerst effizienten Bewegung führt. Übertragbare Eigenschaften auf Robotersysteme: Elastische Elemente in den „Beinen“ von Robotern können ebenfalls Energie speichern und freisetzen und so den Energieverbrauch reduzieren. Eine angepasste Gelenkstruktur, die große Kräfte effizient überträgt, könnte ebenfalls zu einer höheren Effizienz führen.
- Vögel: Vögel, insbesondere Segelflieger wie Albatrosse, nutzen aerodynamische Prinzipien und Muskelbewegungen, um stromlinienförmig und energiesparend zu fliegen: - Flügelform und Federstruktur: Die Flügel sind darauf ausgelegt, den Auftrieb zu maximieren und den Luftwiderstand zu minimieren. Die flexible Struktur der Federn ermöglicht es, Turbulenzen zu reduzieren. - Effiziente Muskelarbeit: Die Flügelmuskulatur arbeitet sehr effizient und nutzt den gesamten Bewegungsumfang, um den Energieverbrauch zu minimieren. Übertragbare Eigenschaften auf Robotersysteme: Roboter mit flügelförmigen Strukturen könnten ähnliche aerodynamische Vorteile erzielen. Elastische und flexible Elemente könnten in die Gestaltung von Flügeln oder Armen integriert werden, um den Energieverbrauch zu senken und die Effizienz zu steigern. Effiziente Nutzung der Bewegungsspielräume der Gelenke kann ebenfalls adaptiert werden.
Zusammenfassend kann die Analyse der Muskel- und Gelenkbewegungen bei Lebewesen viele wertvolle Erkenntnisse liefern, die auf die Robotertechnik übertragen werden können. Indem wir die natürlichen Bewegungsmechanismen nachahmen, können wir die Energieeffizienz und die allgemeine Leistungsfähigkeit unserer robotischen Systeme erheblich verbessern.
b)
Erstelle ein mathematisches Modell, das die Bewegung eines gelenkigen Beins eines Roboters beschreibt. Orientiere Dich dabei an biologischen Vorbildern, wie z.B. dem Bein einer Katze. Formuliere die Bewegungsgleichungen für das System und löse diese für eine vorgegebene Anfangsbedingung. Die Gleichungen sollten die Kräfte und Momente berücksichtigen, die auf die Gelenke einwirken. Zeige dabei Schritt für Schritt den Lösungsprozess.
Lösung:
Mathematisches Modell der Bewegung eines gelenkigen Beins eines Roboters basierend auf dem Bein einer KatzeUm die Bewegung eines gelenkigen Beins eines Roboters zu modellieren, orientieren wir uns am Bein einer Katze. Wir werden dabei die wesentlichen Gelenke und Segmente berücksichtigen. Das Modell besteht aus dem Hüftgelenk (H), dem Kniegelenk (K) und dem Fußgelenk (F). Jeder Abschnitt des Beins, der Oberschenkel und der Unterschenkel, wird als starrer Körper betrachtet.1. Definition der Segmente und Gelenke:
- Oberschenkel: Länge \(l_1\), Masse \(m_1\)
- Unterschenkel: Länge \(l_2\), Masse \(m_2\)
- Hüftgelenk (H)
- Kniegelenk (K)
- Fußgelenk (F)
2. Kinematische Beschreibung der Beinbewegung:Die Bewegung des Beins kann durch die Winkeländerungen in den Gelenken beschrieben werden:
- Winkel im Hüftgelenk: \(\theta_1\)
- Winkel im Kniegelenk: \(\theta_2\)
3. Dynamische Modellierung:Die Bewegungsgleichungen werden durch die Lagrange-Gleichungen zweiter Art beschrieben. Wir müssen die kinetische Energie (T), die potentielle Energie (V) und die Lagrange-Funktion (L) bestimmen:
\[T = \frac{1}{2} m_1 (\dot{x}_1^2 + \dot{y}_1^2) + \frac{1}{2} I_1 \dot{\theta}_1^2 + \frac{1}{2} m_2 (\dot{x}_2^2 + \dot{y}_2^2) + \frac{1}{2} I_2 \dot{\theta}_2^2 \]
\[V = m_1 g y_1 + m_2 g y_2 \]Mit:\[x_1 = l_1 \cos \theta_1 , \quad y_1 = l_1 \sin \theta_1 \]\[x_2 = l_1 \cos \theta_1 + l_2 \cos(\theta_1 + \theta_2), \quad y_2 = l_1 \sin \theta_1 + l_2 \sin(\theta_1 + \theta_2) \]\[I_1 \text{und} I_2 \text{ sind die Trägheitsmomente der Segmente.}\]\[\text{Lagrange-Funktion: } L = T - V\]
4. Bewegungsgleichungen:Die Lagrange-Gleichungen für den Winkel \(\theta_1\) und \(\theta_2\) sind:\[\frac{d}{dt} \left(\frac{\partial L}{\partial \dot{\theta}_1}\right) - \frac{\partial L}{\partial \theta_1} = 0\]\[\frac{d}{dt} \left(\frac{\partial L}{\partial \dot{\theta}_2}\right) - \frac{\partial L}{\partial \theta_2} = 0\]Indem wir diese Lagrange-Gleichungen lösen, erhalten wir die Bewegungsgleichungen:
\begin{align*}\frac{d}{dt}\left(\frac{\partial L}{\partial \dot{\theta}_1}\right) - \frac{\partial L}{\partial \theta_1} &= 0 \frac{d}{dt}\left(\frac{\partial L}{\partial \dot{\theta}_2}\right) - \frac{\partial L}{\partial \theta_2} &= 0\end{align*}
5. Lösung der Bewegungsgleichungen:Wir setzen eine Anfangsbedingung, z.B. \(\theta_1(0) = \theta_{10}\), \(\theta_2(0) = \theta_{20}\), \(\dot{\theta}_1(0) = 0\), \(\dot{\theta}_2(0) = 0\). Durch numerische Integration der Bewegungsgleichungen mit diesen Anfangsbedingungen können wir die zeitlichen Verläufe von \(\theta_1(t)\) und \(\theta_2(t)\) bestimmen.Zusammenfassend zeigt dieser Schritt-für-Schritt-Prozess, wie das mathematische Modell eines gelenkigen Beins eines Roboters basierend auf dem Bein einer Katze aufgebaut und gelöst wird. Indem die Kräfte und Momente auf die Gelenke berücksichtigt werden, kann die effiziente und stabile Bewegung des robotischen Beins simuliert und analysiert werden.
c)
Diskutiere die Anwendung von Sensortechniken zur Steuerung der robotischen Bewegungen. Welche Arten von Sensoren sind für die Erfassung der Gelenkzustände und Muskelaktivitäten notwendig und wie können diese Daten zur Verbesserung der Stabilität und Effizienz des Roboters genutzt werden? Erwäge dabei auch die Implementierung der gewonnenen Daten in ein Steuerungssystem für den Roboter.
Lösung:
Anwendung von Sensortechniken zur Steuerung der robotischen BewegungenUm die Bewegungen eines Roboters effizient und stabil zu steuern, ist der Einsatz verschiedener Arten von Sensoren notwendig. Diese Sensoren ermöglichen es, detaillierte Informationen über die Gelenkzustände und Muskelaktivitäten des Roboters zu erfassen. Im Folgenden werden wichtige Sensortypen und ihre Anwendung zur Verbesserung der Stabilität und Effizienz des Roboters beschrieben:
- Winkel- und Positionssensoren: Diese Sensoren messen die Winkelpositionen und Drehbewegungen der Gelenke. Beispiele sind Potentiometer, Inkrementalgeber und Absolutwertgeber.
- Anwendung: Die erfassten Daten über Gelenkwinkel werden in Echtzeit an das Steuerungssystem übermittelt, welches die Positionen der einzelnen Segmente des Roboters überprüft und anpasst, um gewünschte Bewegungen zu erreichen.
- Dehnungsmessstreifen: Diese Sensoren messen die Dehnung und somit die einwirkenden Kräfte in den „Muskeln“ oder Aktuatoren des Roboters.
- Anwendung: Die Daten von Dehnungsmessstreifen geben Aufschluss über die einwirkenden Kräfte und helfen, die Muskelaktivitäten zu steuern. Dies optimiert den Kraftaufwand und trägt zur Energieeffizienz bei.
- Kraft-Momenten-Sensoren: Diese Sensoren messen die Kräfte und Momente, die auf die Gelenke einwirken.
- Anwendung: Mit diesen Sensoren wird sichergestellt, dass die Kräfte und Momente innerhalb sicherer Grenzen bleiben und dass sie gleichmäßig verteilt sind, was zur Stabilität des Roboters beiträgt.
- Beschleunigungssensoren und Gyroskope: Diese Sensoren messen die Beschleunigung und Rotationen des Roboters.
- Anwendung: Diese Daten werden genutzt, um die dynamische Stabilität des Roboters zu überwachen und notwendige Anpassungen in der Haltung und Bewegung vorzunehmen.
- Oberflächen-Elektromyographie (sEMG): Diese Technik erfasst elektrische Aktivitäten, ähnlich der Muskelaktivität beim Menschen, und kann zur Steuerung künstlicher Muskeln verwendet werden.
- Anwendung: sEMG-Signale können zur Steuerung von Aktuatoren genutzt werden, wodurch der Roboter Bewegungen fließender und natürlicher ausführen kann.
Implementierung der Sensordaten in ein Steuerungssystem:Um die Sensordaten effektiv zu nutzen und die Bewegungen des Roboters zu steuern, sind folgende Schritte wichtig:
- Datenerfassung und Echtzeitverarbeitung: Alle Sensordaten müssen in Echtzeit erfasst und verarbeitet werden. Ein zentraler Mikrocontroller oder ein eingebettetes System wird dafür verwendet.
- Algorithmen zur Bewegungssteuerung: Mithilfe der Sensordaten werden Algorithmen angewendet, die die Positionen, Kräfte und Momente auf die Gelenke sowie die Muskelaktivitäten steuern. Diese Algorithmen können auf Methoden der künstlichen Intelligenz (KI) wie maschinelles Lernen (ML) und neuronale Netze (NN) basieren, um präzise Anpassungen und Optimierungen durchzuführen.
- Feedback-Schleife: Eine geschlossene Regelungsschleife, die kontinuierliches Feedback von den Sensoren verwendet, um Anpassungen an den Steuerbefehlen vorzunehmen. Dies stellt sicher, dass der Roboter stabil und effizient arbeitet, selbst bei unvorhergesehenen Änderungen oder Störungen.
Durch die Kombination dieser Sensortechniken und Steuerungsstrategien können robotische Systeme optimiert werden, sodass sie biologischen Bewegungsmustern effizient und stabil nacheifern.