Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf22:robotik-mit-svcode:fahrwerk-ausmessen [2023/01/28 18:41] – [Radumfang und Umrechnungskonstanten] Ivo Blöchliger | lehrkraefte:blc:informatik:glf22:robotik-mit-svcode:fahrwerk-ausmessen [2023/06/12 20:59] (current) – [Radumfang und Umrechnungskonstanten] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Ausmessen des Fahrwerks ====== | ||
| + | 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 ===== | ||
| + | <WRAP todo> | ||
| + | * Bestimmen Sie den Radumfang durch Messen und Rechnen. | ||
| + | * Errechnen Sie daraus die Konstanten '' | ||
| + | * 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 '' | ||
| + | |||
| + | <code python> | ||
| + | # imports fehlen hier, siehe https:// | ||
| + | from math import pi # Wert pi importieren | ||
| + | # Initialisierungen fehlen hier | ||
| + | |||
| + | raddurchmesser = 5 # Phantasiewert! Bitte ersetzen | ||
| + | radumfang = 23 # Hier Formel mit pi einsetzen | ||
| + | grad_pro_cm = 42.0 # Phantasiewert, | ||
| + | |||
| + | cm_pro_grad = 1.0/ | ||
| + | |||
| + | distanz = 100 # 100 cm soll der Roboter fahren | ||
| + | |||
| + | links.run_angle(120, | ||
| + | rechts.run_angle(120, | ||
| + | |||
| + | links.stop() | ||
| + | rechts.stop() | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Wenn der Radumfang einmal korrekt kalibriert ist, muss der Radabstand kalibriert werden, damit korrekt um die eigene Achse gedreht werden kann. | ||
| + | Wo genau der Drehpunkt der Räder ist, hängt vom Untergrund und der genauen Geometrie der Radaufhängung ab (die Achsen sind nämlich nicht exakt auf derselben Geraden, sondern vom Eigengewicht des Roboters leicht nach oben geneigt). | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Messen Sie den Radabstand in cm (von Radmitte zu Radmitte). | ||
| + | * Fügen Sie den Radabstand als Variable '' | ||
| + | * Berechnen Sie daraus eine Variable '' | ||
| + | * Berechnen Sie dann daraus um wie viele Grad sich das linke Rad zurücklegen muss (während das rechte stillsteht), | ||
| + | * Schreiben Sie eine Funktion '' | ||
| + | * Schätzen Sie möglichst genau den Fehler in der Drehung ab, und passen die den Radabstand entsprechend an und testen Sie erneut. | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | Mit diesen Daten programmieren Sie eine Funktion '' | ||
| + | * Ü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 todo> | ||
| + | Der < | ||
| + | |||
| + | 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. | ||
| + | </ | ||