lehrkraefte:blc:informatik:glf22:robotik-mit-svcode:fahrwerk-ausmessen

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:informatik:glf22:robotik-mit-svcode:fahrwerk-ausmessen [2023/01/28 08:12]
Ivo Blöchliger created
lehrkraefte:blc:informatik:glf22:robotik-mit-svcode:fahrwerk-ausmessen [2023/06/12 22:59] (current)
Olaf Schnürer [Radumfang und Umrechnungskonstanten]
Line 1: Line 1:
 ====== Ausmessen des Fahrwerks ====== ====== Ausmessen des Fahrwerks ======
-Die Position der Motoren kann als Winkel in Grad ausgelesen und auch angesteuert werden. Geschwindigkeiten werden in Grad/s angegeben. Ist daher wichtig, den Umfang der Räder zu messen, um Winkel in Distanz umzurechnen.+Die Position der Motoren des Roboters kann als Winkel in Grad ausgelesen und auch angesteuert werden. Geschwindigkeiten werden in $\frac{\text{Grad}}{\text{s}}$ (also Grad pro Sekunde) angegeben. Daher ist es wichtig, den Umfang der Räder zu messen, um Winkel in Distanz umzurechnen.
  
 ===== Radumfang und Umrechnungskonstanten ===== ===== Radumfang und Umrechnungskonstanten =====
Line 6: Line 6:
   * Bestimmen Sie den Radumfang durch Messen und Rechnen.   * Bestimmen Sie den Radumfang durch Messen und Rechnen.
   * Errechnen Sie daraus die Konstanten ''cm_pro_grad'' und ''grad_pro_cm'', mit denen dann zwischen cm und Grad umgerechnet werden kann. Dabei soll nur eine der beiden Konstanten im Code festgelegt werden, die andere wird daraus berechnet.   * Errechnen Sie daraus die Konstanten ''cm_pro_grad'' und ''grad_pro_cm'', mit denen dann zwischen cm und Grad umgerechnet werden kann. Dabei soll nur eine der beiden Konstanten im Code festgelegt werden, die andere wird daraus berechnet.
-  * Lassen Sie dann den Roboter genau 1m geradeaus fahren. Messen Sie die Distanz und berechnen Sie genau, wie der Wert der festegelegten Konstante anzupassen ist. Sie können dazu den folgende Code anpassen.+  * Lassen Sie dann den Roboter genau 1m geradeaus fahren. Messen Sie die Distanz und berechnen Sie genau, wie der Wert der festgelegten Konstante anzupassen ist. Sie können dazu den folgende Code anpassen.
   * Verpacken Sie danach den Code zum Geradeausfahren in eine Funktion ''def geradeAus(distanz):''   * Verpacken Sie danach den Code zum Geradeausfahren in eine Funktion ''def geradeAus(distanz):''
  
Line 36: Line 36:
   * Messen Sie den Radabstand in cm (von Radmitte zu Radmitte).   * Messen Sie den Radabstand in cm (von Radmitte zu Radmitte).
   * Fügen Sie den Radabstand als Variable ''radabstand'' ihrem Code hinzu.   * Fügen Sie den Radabstand als Variable ''radabstand'' ihrem Code hinzu.
-  * Berechnen Sie daraus, wie viele cm das linke Rad zurücklegen muss (während das rechte stillsteht), damit sich der Roboter um genau 360° dreht. +  * Berechnen Sie daraus eine Variable ''rotation_pro_grad''die angibt, um wie viele Grad sich der Roboter um die eigene Achse dreht, pro Grad Radumdrehung eines Rads (wenn das andere stillsteht). 
-  * Schreiben Sie eine Funktion ''drehen(motor, grad):'', die bewirkt, dass sich der Roboter mit dem gegebenen Motor um die eigene Achse um ebensoviele Grad ausführt. Aufgerufen wird die Funktion dann mit ''drehen(links, 360)''+  * Berechnen Sie dann daraus um wie viele Grad sich das linke Rad zurücklegen muss (während das rechte stillsteht), damit sich der Roboter um genau 360° dreht. 
-  * Schätzen Sie möglichst genau den Fehler in der Drehung ab, und passen die den Radabstand entsprechend an und testen erneut.+  * Schreiben Sie eine Funktion ''drehen(motor, winkel):'', die bewirkt, dass sich der Roboter mit dem gegebenen Motor um die eigene Achse um den ''winkel'' dreht. Aufgerufen wird die Funktion dann z.B. mit ''drehen(links, 360)''
 +  * Schätzen Sie möglichst genau den Fehler in der Drehung ab, und passen die den Radabstand entsprechend an und testen Sie erneut.
 </WRAP> </WRAP>
  
 +<WRAP todo>
 +Mit diesen Daten programmieren Sie eine Funktion ''kreis_fahren_links(radius, winkel, geschwindigkeit)'', mit der der Roboter(-mittelpunkt) auf einem Kreis mit gegebenem Radius um einen gegebenen Winkel fährt, mit der Durchschnittsgeschwindigkeit ''geschwindigkeit''. D.h. ''kreis_fahren_links(50, 360, 100)'' fährt einen Vollkreis auf einem Kreis mit 1m Durchmesser und einer Durchschnitts-Rad-Geschwindigkeit von 100Grad/s.
 +  * Überlegen Sie sich erst, wie lange die Kreislinie ist und wie lange es dauert, diese mit der gewünschten Geschwindigkeit zurückzulegen.
 +  * Überlegen Sie sich dann, wie lange die beiden Kreislinien sind, auf denen sich die Räder bewegen.
 +  * Berechnen Sie dann die Drehgeschwindigkeiten für beide Räder, sowie die Winkel, die jedes Rad zurücklegen muss.
 +</WRAP>
 +
 +<WRAP todo>
 +Der <del>Lichtsensor vom</del> Roboter startet auf einem Punkt, der 1 m von Zentrum eines Drehstuhls entfernt ist. Der Roboter muss den Stuhl umrunden und möglichst genau den Startpunkt wieder anfahren. 
 +
 +Aus der benötigten Zeit $t$ und der Entfernung $d$ in cm vom Startpunkt wird wie folgt ein Score berechnet: $t + 2d$. Das kleinste Score gewinnt.
 +</WRAP>
  • lehrkraefte/blc/informatik/glf22/robotik-mit-svcode/fahrwerk-ausmessen.1674889974.txt.gz
  • Last modified: 2023/01/28 08:12
  • by Ivo Blöchliger