Inhaltsverzeichnis:

Arduino-gesteuerter Roboter-Biped - Gunook
Arduino-gesteuerter Roboter-Biped - Gunook

Video: Arduino-gesteuerter Roboter-Biped - Gunook

Video: Arduino-gesteuerter Roboter-Biped - Gunook
Video: Otto DIY "Ninja" the most versatile STEM+A Robot for you to become the Master of programming! 2024, Dezember
Anonim
Image
Image
Arduino-gesteuerter Roboter-Zweibeiner
Arduino-gesteuerter Roboter-Zweibeiner
Arduino-gesteuerter Roboter-Zweibeiner
Arduino-gesteuerter Roboter-Zweibeiner

Fusion 360-Projekte »

Roboter haben mich schon immer fasziniert, insbesondere solche, die versuchen, menschliche Handlungen nachzuahmen. Dieses Interesse führte mich zu dem Versuch, einen Roboter-Zweibeiner zu entwerfen und zu entwickeln, der das menschliche Gehen und Laufen imitieren könnte. In diesem Instructable zeige ich Ihnen das Design und die Montage des Roboter-Bipeds.

Das Hauptziel beim Aufbau dieses Projekts war es, das System so robust wie möglich zu machen, so dass ich beim Experimentieren mit verschiedenen Geh- und Laufgangarten nicht ständig Angst haben muss, dass die Hardware ausfällt. Dadurch konnte ich die Hardware an ihre Grenzen bringen. Ein zweites Ziel war es, den Zweibeiner mit leicht verfügbaren Hobbyteilen und 3D-Druck relativ kostengünstig zu machen, um Platz für weitere Upgrades und Erweiterungen zu schaffen. Die Kombination dieser beiden Ziele bietet eine solide Grundlage für die Durchführung verschiedener Experimente, die es ermöglichen, den Biped für spezifischere Anforderungen zu entwickeln.

Folgen Sie der Erstellung Ihres eigenen Arduino-gesteuerten Robotic Biped und geben Sie eine Stimme im "Arduino Contest" ab, wenn Ihnen das Projekt gefallen hat.

Schritt 1: Designprozess

Designprozess
Designprozess
Designprozess
Designprozess
Designprozess
Designprozess

Die humanoiden Beine wurden in der kostenlosen 3D-Modellierungssoftware Fusion 360 von Autodesk entworfen. Ich begann mit dem Importieren der Servomotoren in das Design und baute die Beine um sie herum. Ich habe Halterungen für den Servomotor entworfen, die einen zweiten Drehpunkt diametral gegenüber der Welle des Servomotors bieten. Die Doppelwellen an beiden Enden des Motors verleihen dem Design strukturelle Stabilität und verhindern jegliches Verkanten, das auftreten kann, wenn die Beine etwas belastet werden. Die Glieder wurden entwickelt, um ein Lager zu halten, während die Halterungen eine Schraube für die Welle verwendeten. Sobald die Glieder mit einer Mutter an den Wellen befestigt waren, würde das Lager einen glatten und robusten Drehpunkt auf der gegenüberliegenden Seite der Servomotorwelle bieten.

Ein weiteres Ziel bei der Entwicklung des Zweibeiners war es, das Modell so kompakt wie möglich zu halten, um das Drehmoment der Servomotoren maximal auszunutzen. Die Abmessungen der Glieder wurden so gestaltet, dass eine große Bewegungsfreiheit bei gleichzeitiger Minimierung der Gesamtlänge erreicht wird. Wenn sie zu kurz wären, würden die Halterungen kollidieren, was den Bewegungsbereich verringerte, und eine zu lange würde ein unnötiges Drehmoment auf die Aktuatoren ausüben. Schließlich entwarf ich den Körper des Roboters, auf dem das Arduino und andere elektronische Komponenten montiert werden würden.

Hinweis: Die Teile sind in einem der folgenden Schritte enthalten.

Schritt 2: Die Rolle des Arduino

Die Rolle des Arduino
Die Rolle des Arduino

In diesem Projekt wurde ein Arduino Uno verwendet. Der Arduino war für die Berechnung der Bewegungspfade der verschiedenen getesteten Gangarten verantwortlich und wies die Aktuatoren an, sich mit präzisen Geschwindigkeiten in präzise Winkel zu bewegen, um eine reibungslose Gehbewegung zu erzeugen. Ein Arduino ist aufgrund seiner Vielseitigkeit eine gute Wahl für die Entwicklung von Projekten. Es bietet eine Reihe von IO-Pins und bietet auch Schnittstellen wie seriell, I2C und SPI, um mit anderen Mikrocontrollern und Sensoren zu kommunizieren. Der Arduino bietet auch eine großartige Plattform für Rapid Prototyping und Testing und bietet Entwicklern Raum für Verbesserungen und Erweiterbarkeit. In diesem Projekt werden weitere Versionen eine Inertial Measurement Unit zur Bewegungsverarbeitung wie Sturzerkennung und dynamische Fortbewegung in unebenem Gelände sowie einen Distanzmesssensor zur Umgehung von Hindernissen beinhalten.

Für dieses Projekt wurde die Arduino-IDE verwendet. (Arduino bietet auch eine webbasierte IDE)

Hinweis: Die Programme für den Roboter können über einen der folgenden Schritte heruntergeladen werden.

Schritt 3: Benötigte Materialien

Benötigte Materialien
Benötigte Materialien
Benötigte Materialien
Benötigte Materialien
Benötigte Materialien
Benötigte Materialien
Benötigte Materialien
Benötigte Materialien

Hier ist die Liste aller Komponenten und Teile, die Sie benötigen, um Ihren eigenen Arduino-betriebenen Bipedal-Roboter zu bauen. Alle Teile sollten allgemein verfügbar und leicht zu finden sein.

ELEKTRONIK:

Arduino Uno x 1

Towerpro MG995 Servomotor x 6

Perfboard (ähnliche Größe wie beim Arduino)

Stift- und Buchsenleistenstifte (jeweils ca. 20)

Überbrückungsdrähte (10 Stück)

MPU6050-IMU (optional)

Ultraschallsensor (optional)

HARDWARE:

Skateboardlager (8x19x7mm)

M4 Muttern und Schrauben

3D-Drucker-Filament (falls Sie keinen 3D-Drucker besitzen, sollte es einen 3D-Drucker in einem lokalen Arbeitsbereich geben oder die Drucke können recht günstig online durchgeführt werden)

Ohne Arduino und 3D-Drucker betragen die Gesamtkosten dieses Projekts 20 $.

Schritt 4: 3D-gedruckte Teile

3D-gedruckte Teile
3D-gedruckte Teile
3D-gedruckte Teile
3D-gedruckte Teile
3D-gedruckte Teile
3D-gedruckte Teile
3D-gedruckte Teile
3D-gedruckte Teile

Die für dieses Projekt benötigten Teile mussten individuell gestaltet werden, daher wurde ein 3D-Drucker verwendet, um sie auszudrucken. Die Drucke wurden mit 40% Füllung, 2 Perimetern, 0,4 mm Düse und einer Schichthöhe von 0,1 mm mit PLA, Farbe Ihrer Wahl, hergestellt. Unten finden Sie die vollständige Liste der Teile und die STLs, um Ihre eigene Version zu drucken.

Hinweis: Ab hier werden die Teile mit den Namen in der Liste bezeichnet.

  • Fußservohalter x 1
  • Fußservohalter Spiegel x 1
  • Knieservohalter x 1
  • Knieservohalter Spiegel x 1
  • Fußservohalter x 1
  • Fußservohalter Spiegel x 1
  • Lagerglied x 2
  • Servohornverbindung x 2
  • Fußverbindung x 2
  • Brücke x 1
  • Elektronikhalterung x 1
  • Elektronik-Abstandshalter x 8 (optional)
  • Servohornraum x 12 (optional)

Insgesamt, ohne die Abstandshalter, sind es 14 Teile. Die Gesamtdruckzeit beträgt ca. 20 Stunden.

Schritt 5: Vorbereiten der Servohalterungen

Vorbereiten der Servohalterungen
Vorbereiten der Servohalterungen
Vorbereiten der Servohalterungen
Vorbereiten der Servohalterungen
Vorbereiten der Servohalterungen
Vorbereiten der Servohalterungen

Sobald alle Teile gedruckt sind, können Sie mit dem Einrichten der Servos und der Servohalterungen beginnen. Schieben Sie zuerst ein Lager in den Knieservohalter ein. Die Passung sollte eng anliegen, aber ich würde empfehlen, die Innenfläche des Lochs ein wenig zu schleifen, anstatt das Lager zu zwingen, wodurch das Teil brechen kann. Führen Sie dann eine M4-Schraube durch das Loch und ziehen Sie sie mit einer Mutter fest. Als nächstes greifen Sie das Fußglied und befestigen ein kreisförmiges Servohorn mit den mitgelieferten Schrauben daran. Befestigen Sie die Fußverbindung am Knieservohalter mit den Schrauben, mit denen Sie auch den Servomotor befestigen. Achten Sie darauf, den Motor so auszurichten, dass sich die Welle auf der gleichen Seite der Schraube befindet, die Sie zuvor angebracht haben. Sichern Sie schließlich das Servo mit den restlichen Muttern und Schrauben.

Machen Sie dasselbe mit dem Hüftservohalter und dem Fußservohalter. Damit sollten Sie drei Servomotoren und die entsprechenden Halterungen haben.

Hinweis: Ich gebe eine Anleitung zum Bauen eines Beines, das andere ist einfach gespiegelt.

Schritt 6: Herstellen der Verbindungsstücke

Herstellung der Verbindungsstücke
Herstellung der Verbindungsstücke
Herstellung der Verbindungsstücke
Herstellung der Verbindungsstücke
Herstellung der Verbindungsstücke
Herstellung der Verbindungsstücke

Sobald die Klammern zusammengebaut sind, beginnen Sie mit der Herstellung der Verbindungen. Um das Lagerglied herzustellen, schleifen Sie die Innenfläche der Löcher für das Lager noch einmal leicht an und schieben Sie dann das Lager auf beiden Seiten in das Loch. Achten Sie darauf, das Lager hineinzudrücken, bis eine Seite bündig ist. Um die Servohornverbindung zu bauen, greifen Sie zwei kreisförmige Servohörner und die mitgelieferten Schrauben. Legen Sie die Hörner auf den 3D-Druck und richten Sie die Löcher aus, schrauben Sie als nächstes das Horn auf den 3D-Druck, indem Sie die Schraube von der 3D-Druckseite anbringen. Ich empfehle die Verwendung eines 3D-gedruckten Servohorn-Abstandshalters für diese Schrauben. Sobald die Verbindungen aufgebaut sind, können Sie mit der Montage des Beins beginnen.

Schritt 7: Montage der Beine

Montage der Beine
Montage der Beine
Montage der Beine
Montage der Beine
Montage der Beine
Montage der Beine
Montage der Beine
Montage der Beine

Sobald die Glieder und Halterungen zusammengebaut sind, können Sie sie kombinieren, um das Bein des Roboters zu bauen. Verwenden Sie zuerst die Servohornverbindung, um die Hüftservohalterung und die Knieservohalterung zusammen zu befestigen. Hinweis: Schrauben Sie das Horn noch nicht an das Servo, da es in der folgenden Phase einen Setup-Schritt gibt und es umständlich wird, wenn das Horn auf den Servomotor geschraubt wird.

Auf der gegenüberliegenden Seite das Traggelenk mit Muttern auf die hervorstehenden Bolzen montieren. Befestigen Sie zuletzt die Fußservohalterung, indem Sie die hervorstehende Schraube durch das Lager am Knieservohalter stecken. Und befestigen Sie die Servowelle am Servohorn, das mit dem Knieservohalter auf der anderen Seite verbunden ist. Dies kann eine knifflige Aufgabe sein und ich würde dafür ein zweites Paar Hände empfehlen.

Wiederholen Sie die Schritte für das andere Bein. Verwenden Sie die Bilder, die jedem Schritt beigefügt sind, als Referenz.

Schritt 8: Benutzerdefinierte Leiterplatte und Verdrahtung

Kundenspezifische Leiterplatte und Verdrahtung
Kundenspezifische Leiterplatte und Verdrahtung
Kundenspezifische Leiterplatte und Verdrahtung
Kundenspezifische Leiterplatte und Verdrahtung
Kundenspezifische Leiterplatte und Verdrahtung
Kundenspezifische Leiterplatte und Verdrahtung

Dies ist ein optionaler Schritt. Um die Verdrahtung ordentlicher zu machen, beschloss ich, eine benutzerdefinierte Leiterplatte mit Perfboard und Header-Pins zu machen. Die Platine enthält Anschlüsse zum direkten Anschluss der Servomotorkabel. Darüber hinaus habe ich auch zusätzliche Anschlüsse gelassen, falls ich erweitern und andere Sensoren wie Inertial Measurement Units oder Ultraschall-Distanzsensoren hinzufügen möchte. Es enthält auch einen Anschluss für die externe Stromquelle, die zum Antrieb der Servomotoren erforderlich ist. Eine Jumper-Verbindung wird verwendet, um zwischen USB und externer Stromversorgung für den Arduino umzuschalten. Montieren Sie das Arduino und die Platine mit Schrauben und den 3D-gedruckten Abstandshaltern auf beiden Seiten der Elektronikhalterung.

Hinweis: Stellen Sie sicher, dass Sie den Jumper abziehen, bevor Sie das Arduino über USB an Ihren Computer anschließen. Wenn Sie dies nicht tun, kann dies zu einer Beschädigung des Arduino führen.

Wenn Sie sich entscheiden, die Platine nicht zu verwenden und stattdessen ein Steckbrett zu verwenden, sind hier die Servoanschlüsse:

  • Linke Hüfte >> Stift 9
  • Rechte Hüfte >> Stift 8
  • Linkes Knie >> Stift 7
  • Rechtes Knie >> Stift 6
  • Linker Fuß >> Stift 5
  • Rechter Fuß >> Stift 4

Wenn Sie sich entscheiden, die Leiterplatte herzustellen, folgen Sie der gleichen Reihenfolge wie oben, indem Sie die Anschlüsse auf der Leiterplatte von rechts nach links verwenden, wobei der IMU-Anschluss nach oben zeigt. Und verwenden Sie normale Stecker-zu-Buchse-Überbrückungsdrähte, um die Platine mit den oben genannten Pinnummern mit dem Arduino zu verbinden. Stellen Sie sicher, dass Sie auch den Erdungsstift anschließen und das gleiche Erdungspotenzial und den gleichen Vin-Pin erstellen, wenn Sie sich entscheiden, ihn ohne USB-Strom zu betreiben.

Schritt 9: Zusammenbau des Körpers

Zusammenbau des Körpers
Zusammenbau des Körpers
Zusammenbau des Körpers
Zusammenbau des Körpers
Zusammenbau des Körpers
Zusammenbau des Körpers

Sobald die beiden Beine und die Elektronik zusammengebaut sind, kombinieren Sie sie, um den Roboterkörper zu bauen. Verwenden Sie das Brückenstück, um die beiden Beine miteinander zu verbinden. Verwenden Sie die gleichen Befestigungslöcher am Hüftservohalter und die gleichen Muttern und Schrauben, die den Servomotor halten. Schließlich verbinden Sie die Elektronikhalterung mit der Brücke. Richten Sie die Löcher an der Brücke und der Elektronikhalterung aus und verwenden Sie M4-Muttern und -Schrauben, um die Verbindung herzustellen.

Hilfe finden Sie in den beigefügten Bildern. Damit haben Sie den Hardware-Build des Roboters abgeschlossen. Als nächstes springen wir in die Software und erwecken den Roboter zum Leben.

Schritt 10: Ersteinrichtung

Ersteinrichtung
Ersteinrichtung
Ersteinrichtung
Ersteinrichtung
Ersteinrichtung
Ersteinrichtung

Was mir beim Aufbau dieses Projekts aufgefallen ist, ist, dass die Servomotoren und die Hörner nicht perfekt ausgerichtet sein müssen, um relativ parallel zu bleiben. Aus diesem Grund muss die "Mittelposition" jedes Servomotors manuell eingestellt werden, um sie mit den Beinen auszurichten. Um dies zu erreichen, entfernen Sie die Servohörner von jedem Servo und führen Sie die Skizze initial_setup.ino aus. Sobald sich die Motoren in ihrer Mittelposition eingependelt haben, bringen Sie die Hörner wieder so an, dass die Beine perfekt gestreckt sind und der Fuß perfekt parallel zum Boden steht. Wenn dies der Fall ist, haben Sie Glück. Wenn nicht, öffnen Sie die Datei constants.h auf der nebenstehenden Registerkarte und ändern Sie die Servo-Offset-Werte (Zeile 1-6), bis die Beine perfekt ausgerichtet sind und der Fuß flach ist. Spielen Sie mit den Werten herum und Sie bekommen eine Vorstellung davon, was in Ihrem Fall notwendig ist.

Nachdem die Konstanten eingestellt wurden, notieren Sie sich diese Werte, da sie später benötigt werden.

Sehen Sie sich die Bilder an, um Hilfe zu erhalten.

Schritt 11: Ein bisschen über die Kinematik

Ein bisschen über die Kinematik
Ein bisschen über die Kinematik
Ein bisschen über die Kinematik
Ein bisschen über die Kinematik
Ein bisschen über die Kinematik
Ein bisschen über die Kinematik

Damit der Biped nützliche Aktionen wie Laufen und Gehen ausführen kann, müssen die verschiedenen Gangarten in Form von Bewegungspfaden programmiert werden. Bewegungspfade sind Pfade, entlang derer sich der Endeffektor (in diesem Fall die Füße) bewegt. Es gibt zwei Möglichkeiten, dies zu erreichen:

  1. Ein Ansatz wäre, die Gelenkwinkel der verschiedenen Motoren auf rohe Weise zu speisen. Dieser Ansatz kann zeitaufwendig, mühsam und auch mit Fehlern gefüllt sein, da die Beurteilung rein visuell erfolgt. Stattdessen gibt es einen intelligenteren Weg, um die gewünschten Ergebnisse zu erzielen.
  2. Der zweite Ansatz dreht sich um die Eingabe der Koordinaten des Endeffektors anstelle aller Gelenkwinkel. Dies ist die sogenannte inverse Kinematik. Der Benutzer gibt Koordinaten ein und die Gelenkwinkel werden angepasst, um den Endeffektor an den angegebenen Koordinaten zu positionieren. Diese Methode kann als Blackbox betrachtet werden, die als Eingabe eine Koordinate verwendet und die Gelenkwinkel ausgibt. Wer sich dafür interessiert, wie die trigonometrischen Gleichungen dieser Blackbox entwickelt wurden, kann sich das obige Diagramm ansehen. Für diejenigen, die es nicht interessiert, sind die Gleichungen bereits programmiert und können mit der pos-Funktion verwendet werden, die als Eingabe x, z nimmt und drei den Motoren entsprechende Winkel ausgibt.

Das Programm mit diesen Funktionen finden Sie im nächsten Schritt.

Schritt 12: Programmierung des Arduino

Programmierung des Arduino
Programmierung des Arduino
Programmierung des Arduino
Programmierung des Arduino

Vor der Programmierung des Arduino müssen geringfügige Änderungen an der Datei vorgenommen werden. Erinnern Sie sich an die Konstanten, von denen ich Sie gebeten hatte, sich eine Notiz zu machen? Ändern Sie dieselben Konstanten auf die Werte, die Sie in der Datei constants.h festgelegt haben.

Hinweis: Wenn Sie die in diesem Instructable bereitgestellten Designs verwendet haben, müssen Sie nichts ändern. Falls einige von Ihnen eigene Designs erstellt haben, müssen Sie neben den Offsets noch einige weitere Werte ändern. Die Konstante l1 misst den Abstand zwischen Hüftgelenk und Kniegelenk. Die Konstante l2 misst den Abstand zwischen Kniegelenk und Knöchelgelenk. Wenn Sie also Ihr eigenes Modell entworfen haben, messen Sie diese Längen und ändern Sie die Konstanten. Die letzten beiden Konstanten werden für die Gangarten verwendet. Die Konstante stepClearance misst, wie hoch der Fuß beim Vorwärtskommen nach einem Schritt angehoben wird, und die Konstante stepHeight misst die Höhe vom Boden bis zur Hüfte, während er Schritte macht.

Sobald alle Konstanten nach Ihren Wünschen geändert wurden, können Sie das Hauptprogramm hochladen. Das Hauptprogramm initialisiert den Roboter einfach in eine Gehposition und beginnt, Schritte nach vorne zu machen. Die Funktionen können nach Bedarf modifiziert werden, um die verschiedenen Gangarten, Geschwindigkeiten und Schrittlängen zu erkunden, um zu sehen, was am besten funktioniert.

Schritt 13: Endergebnisse: Zeit zum Experimentieren

Endergebnisse: Zeit zum Experimentieren
Endergebnisse: Zeit zum Experimentieren
Endergebnisse: Zeit zum Experimentieren
Endergebnisse: Zeit zum Experimentieren
Endergebnisse: Zeit zum Experimentieren
Endergebnisse: Zeit zum Experimentieren

Der Zweibeiner kann Schritte von 10 bis 2 cm Länge ausführen, ohne umzukippen. Auch die Geschwindigkeit kann variiert werden, während die Gangart ausgeglichen bleibt. Dieser Zweibeiner in Kombination mit der Kraft des Arduino bietet eine robuste Plattform, um mit verschiedenen anderen Gangarten und anderen Zielen wie Springen oder Balancieren beim Treten eines Balls zu experimentieren. Ich würde Ihnen empfehlen, zu versuchen, die Bewegungspfade der Beine zu ändern, um Ihre eigenen Gangarten zu erstellen und herauszufinden, wie sich verschiedene Gangarten auf die Leistung des Roboters auswirken. Sensoren wie eine IMU und ein Distanzsensor können dem System hinzugefügt werden, um seine Funktionalität zu erweitern, während Kraftsensoren an den Beinen hinzugefügt werden können, um mit der dynamischen Fortbewegung auf unebenen Oberflächen zu experimentieren.

Hoffe, Sie haben dieses Instructable genossen und ist genug Inspiration, um Ihre eigenen zu bauen. Wenn Ihnen das Projekt gefallen hat, unterstützen Sie es, indem Sie eine Stimme im "Arduino Contest" abgeben.

Viel Spaß beim Machen!

Arduino-Wettbewerb 2020
Arduino-Wettbewerb 2020
Arduino-Wettbewerb 2020
Arduino-Wettbewerb 2020

Erster Preis beim Arduino-Wettbewerb 2020

Empfohlen: