Inhaltsverzeichnis:
- Schritt 1: Tutorial-Speicherort geändert
- Schritt 2: Bauen Sie den SnappyXO Differential Drive Robot
- Schritt 3: Schließen Sie die Elektronik an
- Schritt 4: Installieren Sie die PreciseMovement Arduino-Bibliothek
- Schritt 5: Code
- Schritt 6: Wie es funktioniert
Video: Precise Mover Roboter SnappyXO - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Lassen Sie Ihren Arduino-Roboter mit der Arduino-Bibliothek PreciseMovement eine bestimmte Entfernung geradeaus fahren oder in einen bestimmten Winkel drehen.
Der Roboter benötigt eine rollende Kugelrolle oder ähnliches, um die Reibung beim Verdrehen zu minimieren.
www.pololu.com/product/954
Sie können dem Roboter sagen, dass er bis zu einer bestimmten Entfernung vorwärts gehen oder sich in einem bestimmten Winkel drehen soll. Das Programm bestimmt seine Position mittels Koppelnavigation. Da die Positionsschätzungen nur auf der Radgeschwindigkeit beruhen, führt der Schlupf zu einem beträchtlichen Fehler. Der Konstrukteur des Roboters sollte darauf achten, das Rutschrisiko zu minimieren.
Dies wurde getestet, um mit dem SnappyXO-Roboter zu funktionieren.
Schritt 1: Tutorial-Speicherort geändert
Das Tutorial wurde auf die folgende Seite verschoben. Dieses Tutorial wird nicht mehr gepflegt.
sites.google.com/stonybrook.edu/premo
Schritt 2: Bauen Sie den SnappyXO Differential Drive Robot
Die PreciseMovement-Bibliothek, die wir verwenden werden, ist nur mit Robotern mit Differentialantrieb kompatibel. Sie können auch andere 2-Rad-Roboter verwenden.
Schritt 3: Schließen Sie die Elektronik an
Für den standardmäßigen optischen SnappyXO-Encoder:
D0 (Encoder-Ausgang) -> Arduino Digital Pin
VCC -> Arduino 5V
GND -> GND
Motor- und Arduino-Power:
Die Motorstromquelle sollte für die von Ihnen verwendeten Motoren ausreichend sein. Für das SnappyXO-Kit werden 4AA-Batterien für die Motorleistung und 9V-Batterien für die Arduino-Leistung verwendet. Stellen Sie sicher, dass sie alle einen gemeinsamen GND haben.
Schritt 4: Installieren Sie die PreciseMovement Arduino-Bibliothek
Herunterladen:
github.com/jaean123/PreciseMovement-library/releases
So installieren Sie die Arduino-Bibliothek:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Schritt 5: Code
Arduino-Code:
create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Diese Parameter müssen angepasst werden. Andere Parameter, die im Code als empfohlen gekennzeichnet sind, können für eine bessere Leistung angepasst werden.
- Prüfen und setzen Sie die Motorpins unter ARDUINO PINS.
-
Stellen Sie LÄNGE und RADIUS ein.
- LENGTH ist der Abstand vom linken Rad zum rechten Rad.
- RADIUS ist der Radius des Rades.
-
Stellen Sie PULSES_PER_REV ein, die Anzahl der Impulse, die der Encoder für eine Radumdrehung ausgibt.
- Beachten Sie, dass sich dies von der Anzahl der Impulse unterscheidet, die der Encoder für eine Motorwellenumdrehung ausgibt, es sei denn, die Encoder sind angeschlossen, um direkt von der Radwelle zu lesen.
- PULSES_PER_REV = (Impulse pro Umdrehung der Motorwelle) x (Getriebeverhältnis)
-
Setzen Sie STOP_LENGTH, wenn Sie sehen, dass der Roboter nach der Vorwärtsbewegung überschwingt.
Der Roboter stoppt, sobald die geschätzte Position STOP_LENGTH vom Ziel entfernt ist. Somit ist STOP_LENGTH die ungefähre Entfernung, die der Roboter benötigt, um anzuhalten
-
PID-Parameter
KP_FW: Dies ist der proportionale Anteil der Vorwärtsbewegung. Erhöhen Sie diese, bis der Roboter geradeaus fährt. Wenn Sie dies durch Tuning nicht direkt zum Laufen bringen, ist wahrscheinlich die Hardware schuld. (z. B. Radversatz usw.)
KP_TW: Dies ist die proportionale Komponente der Verdrehbewegung PID. Starten Sie einfach mit einem niedrigen Wert und erhöhen Sie diesen, bis die Verdrehgeschwindigkeit bzw. die Winkelgeschwindigkeit des Roboters beim Verdrehen schnell genug ist, aber kein Überschwingen verursacht. Um Beobachtungen zu machen, können Sie den Roboter von 0 auf 90 und zurück wechseln lassen, indem Sie Folgendes in die Schleifenfunktion einfügen
Platzieren Sie dies in einer Schleife, um KP_FW abzustimmen:
mover.forward(99999);
Platzieren Sie dies in einer Schleife, um von 0 bis 90 zu wechseln, um KP_TW abzustimmen:
mover.twist(90); // Drehung 90 CW
Verzögerung (2000);
mover.twist(-90) // Twist 90 CCW
Verzögerung (2000);
Beachten Sie, dass KI_TW auch abgestimmt werden muss, um die Winkelgeschwindigkeit bei TARGET_TWIST_OMEGA tatsächlich zu verdrehen, da ein Proportionalregler niemals auf das genaue Ziel einschwingt. Es ist jedoch nicht notwendig, sich genau mit dieser Winkelgeschwindigkeit zu verdrehen. Die Winkelgeschwindigkeit muss nur langsam genug sein.
Schritt 6: Wie es funktioniert
Wenn Sie neugierig sind, wie es funktioniert, lesen Sie weiter.
Die Vorwärtsbewegung wird mit dem reinen Verfolgungsalgorithmus auf einem geraden Weg gerade gehalten. Mehr zu Pure Pursuit:
Der Twist-PID-Regler versucht, die Twist-Winkelgeschwindigkeit bei TARGET_TWIST_OMEGA zu halten. Beachten Sie, dass diese Winkelgeschwindigkeit die Winkelgeschwindigkeit des gesamten Roboters ist, nicht der Räder. Es wird nur ein PID-Regler verwendet und die Ausgabe ist die PWM-Schreibgeschwindigkeit des linken und des rechten Motors. Zur Berechnung des Winkels wird eine Koppelnavigation durchgeführt. Sobald der Winkel die Fehlerschwelle erreicht, stoppt der Roboter.
Empfohlen:
Einen Roboter zur Hindernisvermeidung bauen – wikiHow
Wie man einen Hindernisvermeidungsroboter macht: Der Hindernisvermeidungsroboter ist ein einfacher Roboter, der von einem Arduino betrieben wird und was er tut, ist, dass er nur herumstreift und Hindernissen ausweicht. Er erkennt die Hindernisse mit einem HC-SR04 Ultraschallsensor, d. h. wenn der Roboter ein Objekt in der Nähe von
Einen intelligenten Roboter mit Arduino bauen – wikiHow
Wie man einen intelligenten Roboter mit Arduino macht: Hallo, ich bin Arduino-Hersteller und in diesem Tutorial werde ich Ihnen zeigen, wie man einen intelligenten Roboter mit Arduino macht, wenn Ihnen mein Tutorial gefallen hat, dann überlegen Sie, meinen Youtube-Kanal namens Arduino-Hersteller zu unterstützen
Einen humanoiden Roboter bauen – wikiHow
Wie man einen humanoiden Roboter baut: Hey Leute! Ich hoffe, Sie haben bereits meine vorherige anweisbare "Online-Wetterstation (NodeMCU)" und Sie sind bereit für einen neuen. Nach dem SMARS-Modellroboter, den wir beim letzten Mal zusammengebaut haben, geht es beim heutigen Projekt auch um das Lernen von Robotern und w
Roboter-Buggy bauen – wikiHow
Wie man einen Roboter-Buggy macht: Hallo !! In der heutigen Anleitung werde ich Ihnen beibringen, wie Sie Ihren eigenen Roboter-Buggy herstellen. Bevor wir auf die Spezifikationen und Dinge eingehen, die Sie dafür benötigen, ist ein Roboter-Buggy im Grunde ein programmierbares 3-Rad-Auto, das Sie steuern können
[Arduino-Roboter] Wie erstelle ich einen Motion-Capture-Roboter - Daumen Roboter - Servomotor - Quellcode: 26 Schritte (mit Bildern)
[Arduino-Roboter] Wie erstelle ich einen Motion-Capture-Roboter | Daumen Roboter | Servomotor | Quellcode: Thumbs Robot. Verwendet ein Potentiometer des Servomotors MG90S. Es macht sehr viel Spaß und ist einfach! Der Code ist sehr einfach. Es sind nur etwa 30 Zeilen. Es sieht aus wie ein Motion-Capture.Bitte hinterlassen Sie Fragen oder Feedback![Anleitung] Quellcode https://github.c