-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 29

Thema: Quadruped - und er läuft...

  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von erik_wolfram
    Registriert seit
    02.12.2009
    Ort
    Berlin
    Beiträge
    406

    Quadruped - und er läuft...

    Anzeige

    Hallo,

    ich, möchte hier mal ein (fast) fertiges Projekt von mir vorstellen.
    Die Hexapods hier im Forum haben mich angeregt mich selbst zu versuchen, allerdings mit 2 Beinen weniger. Zielsetzung war/ist zunächst nur das selbstständige, flüssige Laufen. Sensoren sind zunächst nicht vorgesehen, da ich mich als Nächstes mit der drahtlosen Steuerung beschäftigen möchte.

    Doch nun zum Roboter:

    Die Planung erfolgte mit MegaCad und QCad. So habe ich zunächst fleißig gezeichnet und gerechnet damit die Servomotoren auch fähig sind den Roboter zu bewegen - bei zu langen Beinen kommt man da schnell an die Grenzen...
    Zu den Berechnungen ist zu sagen, dass der Roboter auch für eine interne Spannungsversorgung über einen LiPo ausgelegt ist.

    Die komplette Mechanik ist aus 5 mm Acrylglas-Resten aus dem Baumarkt angefertigt. Die Teile habe ich auf meiner kleinen CNC gefräst und gebohrt. Angetrieben wird die Mechanik von 12 Miniatur-Servomotoren.

    Die Steuerung in Form eines Atmegas 168 wurde auf einer selbstgeätzten Platine aufgebaut. Die Spannungsversorgung für den Atmega (5 V) und die Servomotoren (5-6 V) ist getrennt ausgelegt. Der Atmega wird mit externen 16 MHz getaktet.
    Leider ist mir der Fehler passiert, die Reset-Leitung zu nahe an den Motorleitungen zu platzieren. Bei steigenden Strom der Motoren neigte der Atmega dann zum Reseten. (Die Fehlersuche hat ewig gedauert weil ich den Fehler zunächst im Programm gesucht habe)

    Die Programmierung erfolgte im AVR Studio 6 und einem AVR Dragon-Programmer. Der momentane Code belegt 75 % des Speichers - ist aber auch noch nicht ganz sauber geschrieben. Die Steuerung der 12 Servomotoren ist dank der Hilfe hier im Forum sehr kompakt geworden, am Längsten dauert die Impulslängenberechnung der Motoren. So dauert die Berechnung alles Servomotoren knappe 5 ms. Da die Servos in Abständen von 20 ms angesprochen werden passt das und es sind noch 15 ms für andere Aufgaben zur Verfügung.

    Wie man auf den Fotos erkennen kann besitzt der Roboter noch keine eigene Spannungsversorgung - momentan hängt er noch an einem externen Labornetzteil mit 5 V. Im Betrieb ziehen die Motoren einen Gesamtstrom im Bereich von 1-1,5 A.

    Laufen tut er jetzt bereits, aber ein kleines Defizit ist der mangelnde Gewichtsausgleich. Der Roboter neigt dazu, in Richtung der angehobenen Beine zu kippen. Als Lösung Suche ich noch nach einer schönen Grafischen Analyse-Methode am Rechner. (so, dass ich den Schwerpunkt abhängig von der Bewegungsposition zur Zeit sehen und optimieren kann)

    Ich war aber erstaunt, dass er trotz der schwachen Motoren relativ flink laufen kann - aber da lässt sich auch noch viel optimieren

    Hier noch 2 Bilder:
    Klicke auf die Grafik für eine größere Ansicht

Name:	Quad4.jpg
Hits:	206
Größe:	47,3 KB
ID:	24325Klicke auf die Grafik für eine größere Ansicht

Name:	Quad2.jpg
Hits:	128
Größe:	49,8 KB
ID:	24326
    (provisorisch mit der RN Mini-Control)

    Und ein Video gibt es hier zu sehen: http://www.youtube.com/watch?v=-oMwj...8qQyZw&index=1
    (Das Video ist sehr spät entstanden - man verzeihe mir die Schreibfehler)

    Gruß Erik
    Meine Projekte auf Youtube

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Ripper121
    Registriert seit
    27.10.2009
    Beiträge
    206
    Könntest du mir mal erklären welche einzelnen schritte ich machen muss mit den Beinen beim vorwärts gehen und beim drehen?
    Könntest du das mal aufmalen?
    Bin auch grade am bauen eines Quadrupeden http://www.roboternetz.de/community/...d-by-Ripper121

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von erik_wolfram
    Registriert seit
    02.12.2009
    Ort
    Berlin
    Beiträge
    406
    Also zeichnen lässt sich das schwer, aber ich versuche das mal anhand des Codes zu erklären.
    Hier mal der Auszug für 2 nacheinander folgende Beine:
    Code:
    // 100 entspricht einer vollen Beinbewegung
    // pro Bewegung legt ein Bein 40 mm zurück
    // pro Bewegung werden 3/4 der Zeit für die Vorwärtsbewegung genutzt (Bewegung vorwärts = 100 * 0,533 * 0,75)
    // und 1/4 für das Zurücksetzen (Zurücksetzten = [100 * 0,533 - 40] * 3)
    
    // hier wird die aktuelle Zyklusposition ermittelt - die 1. "100" entspricht dem Offset für jedes Bein
    weg = (i+100)%100 * 0.533;        
    
    // Abfrage: wo im Zyklus sind wir: weg < 40 entspricht der Vorwärtsbewegung
    if (weg > 41)
    {
        // Zurücksetzten
        x = 50.0 + (weg-40.0) * 3.0;
        // und das Bein anheben
        z = 60.0;
    }else{
        // Vorwärtsbewegung
        x = 90.0 - weg;
        // und das Bein ist unten
        z = 70.0;
    }
    
    // die Y-Kooardinate bleibt immer gleich
    y = -70.0;
    
    // diese Funktion berechnet die Winkel für die geforderte Beinposition; die erste Ziffer "0" ist die Angabe des Beins
    move (0, x, y, -z);        // Bein_vr = 0
    
    
    // das 2. Bein hat einen Zyklusversatz von 25% = 125
    weg = (i+125)%100 * 0.533;
    if (weg > 41)
    {
        x = 50.0 + (weg-40.0) * 3.0;
        z = 60.0;
    }else{
        x = 90.0 - weg;
        z = 70.0;
    }
    
    y = 70.0;
    
    move (1, x, y, -z);        // Bein_vl = 1
    
    // optional:
    // wait 20 ms - Rechenzeit (ca. 5 ms)
    
    // und weiter gehts im Zyklus
    i ++;
    Also im Prinzip bewegen sich zunächst alle Bein nach hinten um den Roboter nach vorne zu bewegen. Alle Beine sind in ihrem Zyklus um 25 % versetzt - bei 100 % haben alle 4 Beine eine vollständige Bewegung vollzogen (also Vorwärtsbewegung und Zurücksetzten).
    Während der Bewegung haben die Beine bei 75 % ihren vollständigen Hub nach hinten erledigt, die restlichen 25 % des Zyklus wird das Bein angehoben und mit der 3-fachen Geschwindigkeit zurückgesetzt.
    Das Drehen erfolgt im gleichen Prinzip. (Die Beine bewegen sich auf einem Stück einer Kreisbahn)

    Leider ist mein Vorgehen noch nicht optimal - wie geschrieben neigt der Roboter noch zum kippen. Aber das Austarrieren würde ich im Prinzip nur auf die oben beschriebene Bewegung herauf-modulieren. Die Grundbewegung würde so bleiben.

    Für dieses Ausgleichen muss ich mir noch einen schönen Code zusammenbasteln/ausdenken. Ich denke zur Zeit daran, den Korpus vom anzuhebenden Bein weg-zudrehen so, dass der Korpus im Prinzip um seine eigene Achse taumelt.

    Eine Kombination von mehreren Bewegungen (Drehen, Laufen, "taumeln") habe ich noch nicht vorgesehen - soll aber auch irgendwann realisiert werden...

    Ich habe leider grade viel zu tun, aber sobald ich wieder Zeit habe, werde ich mal gucken wie man die Bewegung optimieren kann.

    Ich hoffe trotzdem, dass ich dir ein bisschen weiterhelfen konnte?!

    Gruß Erik
    Meine Projekte auf Youtube

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von Ripper121
    Registriert seit
    27.10.2009
    Beiträge
    206
    ok danke

    - - - Aktualisiert - - -

    wollte mir den Bewegungsablauf von diesem abschauen
    http://www.youtube.com/watch?v=490iCZIGy3k

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von erik_wolfram
    Registriert seit
    02.12.2009
    Ort
    Berlin
    Beiträge
    406
    Ein sehr schönes Video, leider viel zu schnell um die Bewegung genau analysieren zu können....

    Ich bin jetzt noch darauf gestoßen, dass es üblich ist, die Beine nicht im Kreis sondern über Kreuz vorzusetzten.
    Das hatte ich auch schon probiert, der Gang verschlechtert sich dabei nicht, aber ich hatte befürchtet, dass der Gewichtsausgleich dann komplexer ist...
    In dem Beispiel_Code von oben hieße das im Prinzip, dass man den Offset der Beine 2 (125=>150) und 3 (150=>125) vertauscht. (also recht schnell)

    Ich Suche aber nach einer Möglichkeit, das ganze grafisch in Echtzeit zu analysieren (simulieren) damit ich zu jedem Zeitpunkt erkennen kann, wo der Schwerpunkt liegt. Mit Excel-Funktionen und Diagrammen komme ich da leider nicht weit...

    Vielleicht hätte jemand einen Tip für mich, wie ich das am Elegantesten anstellen kann? Vor C und C++ schrecke ich auch nicht zurück...
    Meine Projekte auf Youtube

  6. #6
    Erfahrener Benutzer Begeisterter Techniker Avatar von Ripper121
    Registriert seit
    27.10.2009
    Beiträge
    206
    Von was der name?

  7. #7
    Erfahrener Benutzer Begeisterter Techniker Avatar von Ripper121
    Registriert seit
    27.10.2009
    Beiträge
    206
    Hier habe ich mal ein video in Frames zerlegt kann man sich jedes Bild einzeln ansehen vom bewegungsablauf hoffe es hilft dir weiter
    https://docs.google.com/file/d/0B8Cn...pPS0kwTjQ/edit

  8. #8
    Erfahrener Benutzer Begeisterter Techniker Avatar von Ripper121
    Registriert seit
    27.10.2009
    Beiträge
    206
    Hast du die Servos direkt an dem akku? Weil habe Servos die von 4,8-7,2V gehen und einen 7,2V (3Ah) NiMH akku und weis ne ob ich die direkt dran klemmen kann

  9. #9
    Erfahrener Benutzer Roboter-Spezialist Avatar von erik_wolfram
    Registriert seit
    02.12.2009
    Ort
    Berlin
    Beiträge
    406
    Die Servos sind bei mir noch nicht am Akku. Ich verwende stattdessein ein Labornetzteil mit 5 V. Bei 6 V ist mir schonmal einer der Servos durchgebraten...
    Bei C**** wird der Servo bis 7,2 V angegeben - auch wenn sie günstig sind würde ich das nicht riskieren.

    Außerdem läuft er ja mit den 5 V! (bei einer kurzzeitigen Erhöhung auf 6 V ist keine Verbesserung erkenntlich)

    Bei guten Servomotoren sollte das Datenblatt weiterhelfen (soweit vorhanden).
    Meine Projekte auf Youtube

  10. #10
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    35
    Beiträge
    4.528
    Blog-Einträge
    1
    Bei HiTec Servos habe ich ohne Problem 7,2 bzw. einen 7,2V Akku angeschlossen. Die Servos werden nicht mal warm. Bei BlueBirds sind mir hingegen schon einige elektrisch gestorben wenn sie über 6V betrieben werden. Es gibt genug Spannungswandler für den Modellbau die aus 7,2...8,4V eine vernünftige 6V Versorgung generieren mit entsprechender Leistung.

    Weiter hilft es die Versorgung mit einer kleinen Kondensatorbank zu puffern (100nF+1µF+4,7µF irgendwie sowas), damit lassen sich lange und kurze Spitzen sehr gut einfachen.

    Achja und bei Hexas, Quadros oder sonstigen Robotern mit beinen würde ich keine NiMH Akkus verwenden sondern die deutlich effizienteren Lithium Polymer Akkus. Die haben bei gleicher Leistung ein deutlich geringeres Gewicht und kleinere Abmessungen.

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. Quadruped
    Von RoninShooter im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 17.07.2012, 08:58
  2. Suche Bausatz Quatropode / Quadruped
    Von Typer im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 0
    Letzter Beitrag: 03.12.2010, 17:15
  3. start mit AVR Studio und GCC ==>> LÄUFT!
    Von The Man im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 09.01.2009, 10:38
  4. [läuft+Code] Servotest an ATtiny13 läuft nicht
    Von oberallgeier im Forum Motoren
    Antworten: 4
    Letzter Beitrag: 18.10.2007, 17:49
  5. Antworten: 3
    Letzter Beitrag: 15.08.2005, 17:41

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •