PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hexapod fertig! [JIM]



TheUltimate
24.11.2006, 13:45
Hallo allen hier im Forum!

Dies ist mein erster Post und umso überraschender gleich eine "fertigmeldung".

Ich habe jetzt ca. 1 Jahr am Projekt gearbeitet und inzwischen alle Grundfunktionen fertiggestellt. Bilder und ein geh-Video, sowie viele Infos und Schaltpläne gibts auf meiner Homepage:

http://www.users.fh-sbg.ac.at/~fhs14723/


Ich freu mich über Posts!

HannoHupmann
24.11.2006, 15:04
Sauberes Video, schaut etwas Massiv aus die Konstruktion. Immerhin ist alles Alu, wie schwer ist das System den?

Nochwas zum Algorithmus (bin ein bischen zu faul den jetzt komplett durchzulesen) auf deiner Seite steht du hast es mit einer Parabel gelöst.

Mich würde interessieren wie du die Beine (bzw. Fussspitzen) so ansteuerst dass diese immer auf einer Geraden laufen.
Bei meinem (siehe HP bzw. Signatur) hab ich bisher nämlich nur 6 Positionen und die entsprechenden Werte für diese 6 Positionen gespeichert.

Jon
24.11.2006, 17:06
Bei mir kommt bei dem Video nur ein Geräusch, dass sich nach den Beinen des Bots anhört und noch irgendetwas undefinierbares. Nur Ton, kein Bild.

Aber sonst sieht der Bot sehr gelungen aus.
Großes Lob!!!
Wieviel kg kann der denn Tragen?

jon

TheUltimate
24.11.2006, 17:06
Ahh.. ja, das ist ein bischen triky...

Also: Die Servopulse reichen von 0 bis 7000 prozessorclocks - (ertrempunkte..ich hab das vorher ausgemessen) und übergebe so die Servopositionen.

SCHRITT1: (Hüfte)
Die Hip(Hüfte)-Variable zählt hoch, das Bein bewegt sich nach vorne.
Danach nehme ich diesen Wert, und schicke ihn in in eine quadratische Funktion. In meinem fall ...

//---FUNKTION Quad_X----
int Quad_X (int x)
{
return (100*(((x/100)*(x/100)*-0.042)+((x/100)*3)));
//Eine Quatratische Funktion errechnet den Stellgrad für den Knee-Servo.
}
//---FUNKTION Quad_X abgeschlossen---

was f(x)=x²-0,042+3 entspricht.

Die divisionen durch 100 mache ich, damit die Berechnung im Byte-bereich gemacht werden kann, das ist schneller und genau genug.

SCHRITT2: (Knie)
Das Ergebnis geht dann an den Knee-Servo. Bei 3500 wird der scheitel erreicht (höchster punkt), bei 0 und 7000 die tiefsten punkte (bodenkontakt).

SCHRITT3:(Fuß)
Um den Fuß senkrecht zu halten ziehe ich immer 3500 vom Knee-Servo-wert ab. Das ist dann zb. am höchsten punkt (Knee=3500) : 3500-3500=0=Foot-Servo. Der Fuß steht 90° zum Knee.

Bei (Knee=0):
3500-0=3500=FootServo. Der Fuß steht senkrecht, also 0°zum Knee.


Ganz linear also :)

Der Roboter ist zzt. ca. 2Kg schwer, mehr solltens mit den Conrad-Servos auch nicht werden.

Jon
24.11.2006, 17:17
Und was ist mit dem Video???

jon

TheUltimate
24.11.2006, 17:21
@Jon: Ist ja schon da!

Ich habs nochmal in WMV konvertiert. Das müsste bei jedem laufen.

HannoHupmann
24.11.2006, 17:30
ah das heisst aber du machst keine Nachjustierung was die Bewegung auf dem Boden angeht.

Also um es zu verdeutlichen dein Hip dreht den Fuss ja um einen Winkel Alpha. Daraus folgt, dass der Fuss an der Spitze auch diesen Kreisbogen macht.
Soll der Roboter aber gerade aus laufen, dann müssen alle Fussspitzen auf einer imaginären Geraden liegen und diese abfahren. Dadurch wird die Bewegung in nach vorn linear. Das gilt für den optimalen Fall.

Konkret muss also für die beiden Extremstellungen (der Hüfte) der Fuss weiter ausgeklappt sein als in der Mitte, welches der Minimalstellung entspricht.

EDIT: ich glaub jetzt hab ich dasmit der Parabelbewegung verstanden. Die sollte dir ja eigentlich das oben genannte Problem lösen oder lieg ich da falsch und diese gerade Fussspitzen bewegung ist noch gar nicht implementiert bei dir.

Jon
24.11.2006, 17:30
Danke!!
Jetzt gehts.
Bei der AVI-Datei konnte er nur nicht das Bild anzeigen. Warum weß ich nicht.
Wenn er sich bewegt sieht es nur etwas wie ein Pinguin auf vier Beinen aus. (Sorry, aber das musste jetzt mal sein. Ich habe mich nur ganz direkt ausgedrückt ;) )

jon

jo_robot
24.11.2006, 17:31
Nicht schlecht!

TheUltimate
24.11.2006, 17:57
Hihi, Pinguin... wär aber eine idee für einen außergewöhnlichen bot :)

Das Video ist nicht mehr gaaanz aktuell, inzwischen habe ich die Schrittbreite vergrößert und alles besser abgestimmt. Das Video ist direkt nach der Umsetzung des gangalgorithmus entstanden. Bei gelegenheit lad ich noch weitere Vid´s hoch.

@HannoH.

Ja! Stimmt!... hmmm.. du hast absolut recht. Bisher ist mir das nicht aufgefallen, weil der Bogen den er bei einem Schritt macht bei mir recht klein ist, bzw. der Gang sehr "hoch" angelegt ist, damit´s den Servos nicht zu viel wird.

edit: --> Die Parabel regelt die Höhe des Schrittes, nicht den kreisbogen am boden.

Super dein Bot übrigens! Sieht leichter aus als meiner *hihi*

tucow
24.11.2006, 18:58
Schaut gut aus, er geht auch ganz gut aber das Video könnte etwas länger sein *g*

TheUltimate
26.11.2006, 17:39
Zurzeit besitz ich keine ordendliche Digicam (-> Robot so teuer :)) mit der ich längere und bessere Videos machen kann. Alles was auf der Homepage ist, wurde mit dem Fotohandy gemacht. Längere Vid´s werden also noch dauern, aber es kommen mehr.

HannoHupmann
26.11.2006, 18:18
@TheUltimate, also mit Akkus und schnickschnack (Greifer, Sensoren etc) wiegt er ziemlich genau 2000g. Geht also.
Dein Bein heben senken ist durchaus brauchbar und schaut gut aus. Muss ich mal schauen ob ich es bei mir auch so hin bekomme. Leider kann meiner aufgrund seines Gewichts nur 2 Beine gleichzeitig bewegen.

Wir können ja zusammen mal ein bischen Brainstormen wie die Funktion für die Kreisbewegung aussehen muss damit die Fussspitze immer auf einer (nahezu) geraden liegt. Sollte sich ja mathematisch beschreiben lassen.

Im Prinzip ändert sich ja nur der Abstand (nenne wir ihn mal d) von der Drehachse zur Geraden (g) auf welcher die Fussspitze sich später bewegen soll. Diese Änderung der Länge d muss dann über das Kniegelenk und das Hüftgelenk erzeugt werden. Ausserdem hängt d direkt vom Winkel alpha ab (das ist der Winkel um den sich der Fuss dreht).
Wir müssen eigentlich nur zwei Funktionen finden. Eine Funktion die d aus alpha bestimmt und eine die aus d die winkel für Hüfte und Knie definiert. Oder eben eine Formel die aus alpha die Winkel für Knie und Hüfte bestimmt.

Um die Beine dann wieder in die Ausgangsstellung zu bringen können wir auf deine Prabelform zurückgreifen.

mfg Hanno

PS: Bisher hab ich die Gerade auf der sich die Fussspitze bewegen soll über 6 Positionen gelöst. Sprich schritt 1 Pos 1 Schritt 2 Pos 2 usw. Nur ist das nicht optimal.

TheUltimate
29.11.2006, 13:35
Das Gewichtsproblem habe ich auch, bei mir kann ich erst ab einer gewissen Ganghöhe (Fuß eher gerade) 3 Beine gleichzeitig heben.

Um das kreisbogenproblem zu lösen, müßte wie du gesagt hast, das Fußgelenk einen gegenbogen machen, und der Höhenunterschied vom Knie ausgeglichen werden. Gar nicht so ohne das Problem...

Zurzeit hab ich einige zwischenklausuren, aber danach werd ich mir auch mal den Kopf zerbrechen. Mit Mathe anstelle von fixpunkten sollte das Ganze dann "smoother" aussehn.

Schöne Grüße!