- HEMS Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 17

Thema: Hexapod

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.04.2014
    Beiträge
    10
    So, erst mal zur Ansteuerung...hab mir folgendes Überlegt:

    Aktuell sieht die Befehlstruktur so aus:

    1. CommandForward wird aufgerufen
    2. neue Position wird per IK aus der aktuellen Position berechnet
    3. Laufalgorithmus startet
    4. bei fertigstellung des kompletten wird auf den nächsten Befehl gewartet.


    Vorteil: einfach implementiertung
    Nachteil: Feedback der Servos kann nicht verarbeitet werden, neue Befehle werden erst nach Abschluss des Algos neu verarbeitet-->sehr langsame Reaktionszeit


    Neuer Ansatz:

    1. CommandForward wird aufgerufen
    2. neue Position wird per IK aus der aktuellen Position berechnet
    3. befehl für Fuß1 wird geschickt
    4. es wird auf fertigstellung per Polling gewartet(in unserem Fall bekommen wir die Winkel zurück)
    5. die IST-Position wird mit der SOLL-Position verglichen,
    6. falls unterschiedlich oder neue wir bekommen einen neuen Befehl(z.b richtungsänderung) wird die Position neu berechnet,
    7. ansonsten wird der Laufalgorithmus abgearbeitet-->befehl für Fuß2 wird geschickt

    Vorteil: Nach jedem Schritt kann reagiert werden, ob nun auf Unebenheiten, Blockierungen oder neue Befehle.
    Nachteil: Es kann immer nur ein Fuß bewegt werden-->Geschwindikeits defizit


    Kompromiss[beste Lösung?]

    1. CommandForward wird aufgerufen
    2. neue Position wird per IK aus der aktuellen Position berechnet
    3. Befehl für Fuß1, Fuß3, und Fuß6 werden geschickt, abhängig vom Laufalgorithmus können sowieso nur eine gewisse Anzahl an Füßen in Bewegung sein(dirty bit)-->kein Zeitverlust
    4. Polling auf Fuß1, Fuß2 und Fuß3 für Rückmeldung
    5. Sobald 1 Fuß rückmeldung gibt, wird die IST-Position wird mit der SOLL-Position verglichen,
    6. falls unterschiedlich oder wir bekommen einen neuen Befehl(z.b richtungsänderung) wird die Position neu berechnet,
    7. ansonsten wird der Laufalgorithmus abgearbeitet


    Vorteil: keine Leerzeit, Feedback/Reaktionsfähigkeit sehr hoch
    Nachteil: kompliziertere Implementierung?

  2. #2
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    42
    Beiträge
    4.534
    Blog-Einträge
    1
    Klassischerweise wird für Roboter die Steuerung durch mehre Ebenen gegliedert. Im Thread zu meinem Vinculum habe ich ausführlich beschrieben wie sowas bei einem Hexabot aussieht. Die meisten Projekte hier im Forum sind ähnlich aufgebaut, wenn auch vielleicht nicht ganz so klar differenziert. Deine Vorschläge sehen mir ehrlich gesagt etwas zu umständlich aus.
    Mit einer Rückgabe der tatsächlichen Winkelposition baut der Fachmann einen Regelkreis auf und lässt diesen parallel zur Berechnung laufen.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    23.04.2014
    Beiträge
    10
    Zitat Zitat von HannoHupmann Beitrag anzeigen
    Mit einer Rückgabe der tatsächlichen Winkelposition baut der Fachmann einen Regelkreis auf und lässt diesen parallel zur Berechnung laufen.
    Regelkreis funktioniert in diesem Fall glaub ich nicht, weil wirs ja entkoppelt haben und mit I2C ansteuern. Aber die 2te/3te Steuerungsmethode sollte auf eine ähnliche funktionalität hinauslaufen

  4. #4
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    42
    Beiträge
    4.534
    Blog-Einträge
    1
    Regelkreis funktioniert immer, wenn man ihn richtig implementiert! Der wird schon auf den µC pro Bein untergebracht, alles andere macht keinen Sinn. Das hat mit der Vorgabe über I2C gar nichts zu tun, von dort kommt der Soll-Wert, der wirt mit dem Ist-Wert verglichen und der µC Regelt auf den Soll-Wert. Ein wunderbar geschlossenes System, welches sich ganz wunderbar modular aufbauen lässt, wenn es schon dabei bleiben soll.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    23.04.2014
    Beiträge
    10
    Zitat Zitat von HannoHupmann Beitrag anzeigen
    Regelkreis funktioniert immer, wenn man ihn richtig implementiert! Der wird schon auf den µC pro Bein untergebracht, alles andere macht keinen Sinn. Das hat mit der Vorgabe über I2C gar nichts zu tun, von dort kommt der Soll-Wert, der wirt mit dem Ist-Wert verglichen und der µC Regelt auf den Soll-Wert. Ein wunderbar geschlossenes System, welches sich ganz wunderbar modular aufbauen lässt, wenn es schon dabei bleiben soll.

    und der fuß irgendwo blockiert? bzw. auf etwas draufgetreten ist? dann kann er doch gar nicht auf den SOLL wert, dann muss mit dem aktuell IST wert weitergerechnet werden-->der Wert wird bei der IK benötigt.

    oder nicht?

  6. #6
    Moderator Robotik Einstein Avatar von HannoHupmann
    Registriert seit
    19.11.2005
    Ort
    München
    Alter
    42
    Beiträge
    4.534
    Blog-Einträge
    1
    Doch natürlich, kommt eben darauf an was man macht! Wird das Poti abgefragt, dann kann man darüber einen Regelkreis aufbauen aus Soll und Ist-Wert. Wird der Strom an Servo abgefragt, kann man diesen überwachen.

    Aus beiden Sensorwerten allein lässt sich aber nicht einfach erkennen, dass der Roboter irgendwo hängen bleibt.

    Möglich ist es mit der Kombination: Der Positionsregelkreis meldet, dass die Sollposition nicht erreicht wird und gleichzeitig meldet der Stromsensor einen Anstieg im Stromverbrauch. Nun könnte man annehmen, dass das Bein irgendwo hängen geblieben ist! Alternativ kann es aber auch einfach sein, dass der Roboter sich gerade "hochdrückt" und daher mehr Strom verbraucht und die Sollposition noch nicht erreicht.

    Mit Kontaktsensoren am Bein (unten und seitlich) könnte man deutlich besser erkennen ob der Hexa "hängen bleibt"

    Einfach mal als Hausaufgabe überlegen: Wie sehen die Sensorsignale (Poti und Stromverbrauch) bei "Bein bleibt hängen" von "Bein bewegt sich wie gewünscht" aus und worin müssten sie sich unterscheiden.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    23.04.2014
    Beiträge
    10
    bei bewgung des fußes:
    Wenn er wo hängenbleibt bekommen wir einen erhöhten stromverbrauch bei einem wert von servo 1, 2 und 3 die nicht SOLL ist.(zusätzlich könnte überprüft werden welcher servo a meisten strom benötigt, um die belastungsart zu erkennen)

    bei bewegung des körpers:
    belastung passiert haupsächlich bei servo 2 und 3 da diese heben und servo 1 haupsächlich nach vorne schiebt?
    blockiert dann, wenn servo 1 nicht bei der SOLL position ankommt


    also geht es im endeffekt um die unterscheidung von bein bewegen, und körper bewegen
    mit modular meinst du trennung von laufalgrithmus und regelung, was in unserem fall auf dem raspberry einfach 2 thread bedeuten würde(1 für die berechnung/ steuerung, 2 für den regelkreis)

    hört sich zumindest in meinen ohren ganz sinnvoll an

Ähnliche Themen

  1. 3-Servo-Hexapod
    Von erik_wolfram im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 7
    Letzter Beitrag: 29.03.2010, 19:35
  2. Newbie Hexapod
    Von Hummer im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 27
    Letzter Beitrag: 19.08.2008, 09:35
  3. Hexapod extrem?
    Von Skull im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 6
    Letzter Beitrag: 11.02.2008, 21:06
  4. Hexapod
    Von . . . . . im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 3
    Letzter Beitrag: 08.07.2007, 18:40
  5. Hexapod
    Von unathome im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 5
    Letzter Beitrag: 30.09.2006, 16:11

Berechtigungen

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

LiFePO4 Speicher Test