PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lowcost Hexabot



churchi
13.09.2009, 19:32
Hallo Leute!

Nach langer (unfreiwilliger) Abstinenz von diesem Forum möcht ich nun endlich meinen Hexabot vorstellen.
Ich hab vor 2 Jahren begonnen, aber musste dann lange pausieren weil ich keine Zeit dafür hatte...
Aber jetzt is er fertig - naja Erweiterungen sind geplant ;)

Hier mal Bilder:
https://www.roboternetz.de/phpBB2/files/img_0108.jpg

https://www.roboternetz.de/phpBB2/files/img_0107.jpg

https://www.roboternetz.de/phpBB2/files/img_0106.jpg

https://www.roboternetz.de/phpBB2/files/img_0105.jpg

Videos folgen...


Ok er is jetzt vom anschaun her nicht so der Brüller :D
Aber mir kams mehr auf die Realisierung und die Programmierung an. ;)

Inverse Kindematik
Den Endpunkt jeden Fusses kann ich genau auf bestimmte Positionen im Raum setzen.
Ich möchte da auch mal einen Stift auf den Fuss montieren und damit dann auf einem Papier zeichnen - die Software ist bereit dafür :)
Der ATMega128 (siehe weiter unten) sendet den Servocontrollerboards wo genau das Ende des Fusses sein soll (Angabe in mm).

Fortbewegung
Der Hexabot kann vorwärts, rückwärts und seitwerts gehen.
Er entscheidet selbständig welchen Fuss er nun umsetzen soll.
--> Es ist kein fester Bewegungsablauf programmiert

Steuerung
Er wird über einen wireless Nunchuk gesteuert, aber leider ist mir das Teil kaputt gegangen und ich warte noch auf Ersatz.

Stromversorgung
Zum Testen und Programmieren hab ich einfach NiMh Akkus genommen - die sind auch in den Bildern zu sehen.
Ich denke bei denen wirds auch bleiben, aber ich werd sie noch schöner verbauen.

Mikrocontroller
Pro Fußpaar hab ich einen ATMega88 - der übernimmt die Berechnung der inversen Kinematik und die Ansteuerung der Servos
Der Hauptcontroller derzeit ist ein ATMega128 - der berechnet das Gehen.
Was da noch alles kommt ist noch offen
Display usw. is natürlich geplant ;)

Sensoren
Derzeit hab ich noch keine Sensoren verbaut.
Er läuft also theoretisch gegen die Wand...
Ich möcht noch Ultraschallsensoren einbauen die das dann verhindern.

Mechanik
Die Mechanik ist komplett eigenbau aus günstigen Aluprofilen.
Die Servos sind das billigste was ich finden konnte - ich weiß nicht welche Daten sie haben, aber es sind keine Guten...
Darum ist auch die Maximalgeschwindigkeit und die Genauigkeit nicht berauschend.
Aber für 5€ pro Stück war es das günstigste was ich finden konnte.
Mehr wollte ich nicht an Geld reinstecken.
Ich hab schon sehr lustige Momente mit den Servos erlebt - die tun ganz seltsame Dinge :D
Kein Vergleich zu den Servos um 70€ und mehr in meinem Brushless 1:8 Truggy...[/img]

Ich würde meinem Hexabot noch gerne drehen um die eigene Achse beibringen, aber momentan weiß ich noch nicht wie ich die Berechnungen machen soll - wenn mir da jemand Tips geben könnte wär ich sehr Dankbar :)

Jetzt bin ich auf eure Kommentare gespannt :)

churchi
13.09.2009, 20:09
Hier noch ein Video: http://www.myvideo.at/watch/6917362

Das ist die langsamste Stufe.
Je schneller er gehen soll desto mehr merkt man, dass es billige Servos sind.
Die Servos sind zu langsam und nicht so stark wie sie sein sollten.

Besserwessi
13.09.2009, 20:22
So schlecht können die Servos gar nicht sein. Immerhin halten die Servos direkt am Grundgestell noch. Die Belastung auf die Lager sollte da schon ganz schön hoch sein.

Die ganzart sieht schön nach Tausendfüßler aus. Sollte immerhin die mechanische Belastung für die Servos klein halten.

churchi
13.09.2009, 20:51
Ja in diesem Langsamen Modus gehts noch einigermaßen.
Aber wenn ich das auf das 3 fache erhöhe, dann hinkt er schon sehr stark.

Leider ist auch die Auflösung der Servos sehr miserabel.
Es sind 8bit Servos - da ist der kleinste Schritt schon relativ groß am Fussende...
Das schränkt mich in meinen Möglichkeiten schon ziemlich ein.

Hin und wieder fängt auch mal ein Servo selbstständig ohne Last zu zittern an.
Dann gibts Servos die extrem zittern wenn ich sie anstoße.
Also dürfte die Genauigkeit der Mechanik auch nicht so toll sein und relativ viel Spiel haben.

Aber ich wusste ja schon am Anfang, dass billige Servos nicht das können, was Teure können ;)

021aet04
13.09.2009, 22:24
Sieht doch recht gut aus. Die Servos können wirklich nicht so schlecht sein.

recycle
14.09.2009, 01:40
Finde ich gut. Zeiht auf jeden Fall schon mal, dass man einen Hexabot auch ohne aufwendig gefräste Teile aus teuersten Materialien auf die Beine bekommt.
Bei 18 Servos finde ich es ziemlich vernünftig erst mal mit illigen anzufangen. Täte ja schon weh, wenn man auf 18 teuren Servos für 50€ oder mehr sitzen bleibt, weil man feststellt, dass man sich verplant hat oder wie dir ja auch passiert ist plötzlich keine Zeit mehr hat.

Wemmn die Servos für die weiter geplanten Sachen nicht gut genug sind, reicht es ja vielleicht auch erst mal nur die, die am stärksten belastet werden gegen bessere auszutauschen und von den restlichen 5Euro Servos die besten weiterzuverwenden.

oberallgeier
14.09.2009, 08:10
Hi churchi,

feine Lösung für ein solches Projekt. Hier ist ja die Betonung eindeutig auf die eher elektronisch+IT-Seite gelegt als auf futuristisch geschwungene Frästeile. Find ich gut!


... die Auflösung der Servos (ist) sehr miserabel. Es sind 8bit Servos ...Woran erkennst Du, dass die Ser vos ihre Elektrik mit nur 8 Bit ansteuern - kann ich das irgendwo messen?? Hast Du die Elektronik auseinandergenommen? Steht das im Datenblatt? Diese Frage nach der Auflösung der Servoelektronik hatte mich auch schon beschäftigt, aber leider ohne Ergebnis.


... ich wusste ja schon am Anfang, dass billige Servos nicht das können, was Teure können ;)Wie immer; it depends ... Ich fahre meine kleinen Roboterchen mit Getrie bemot oren=ServosohneElektronik (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=437282&sid=097529f2e1ce29f0fee21bba12b1f03d#437282) - Betriebsdauer mittlerweile im Stundenbereich *ggg*. Klar, die Lagerung ist dürftig. Aber sonst bin ich mit meinen 5€-Teilen sehr zufrieden.

ikarus_177
14.09.2009, 09:46
Hi churchi,

dein Hexapod sieht doch toll aus!
Wie hast du denn die Kommunikation zwischen den Controllern gemacht?

Viele Grüße
ikarus_177

Hugo1281
14.09.2009, 13:35
Hi,

Du nenst dienen Hexa "lowcost"ist er wirklich so billig oder hatest du schon so viele Teile schon abgesehen von den Servos...

churchi
14.09.2009, 18:16
Danke für die Blumen :)


Woran erkennst Du, dass die Ser vos ihre Elektrik mit nur 8 Bit ansteuern - kann ich das irgendwo messen?? Hast Du die Elektronik auseinandergenommen? Steht das im Datenblatt? Diese Frage nach der Auflösung der Servoelektronik hatte mich auch schon beschäftigt, aber leider ohne Ergebnis.
Naja so 100%ig weiß ich das nicht, aber zu 99%.
Normalerweise sind nur höherwertige Servos mit mehr als 8bit ausgestattet.
Außerdem sehe ich, dass der kleinste Schritt den das 5€ Servo macht größer ist, als der kleinste Schritt von meinen 50€ und 70€ Servos.


Wie hast du denn die Kommunikation zwischen den Controllern gemacht?
Es ist ein single wire UART.
Ich hab die RX und TX Leitungen von jedem Controller zusammengeklemmt und ein Master-Slave System aufgebaut.
Natürlich noch mit Schutzbeschaltung...
I2C und SPI brauch ich für andere Zwecke.


Du nenst dienen Hexa "lowcost"ist er wirklich so billig oder hatest du schon so viele Teile schon abgesehen von den Servos...
Lowcost ist er, weil ich die billigsten Servos genommen hab die ich finden konnte und ich die komplette Mechanik aus günstigen Alustangen gemacht hab.
Die kleinen Boards für die Servos kosten nicht viel - das ist zu vernachlässigen.
Das Controllerboard auf dem Mainboard ist steckbar und ich kanns jederzeit für andere Sachen verwenden wenn ich will.
Ich kanns aber jetzt garnicht sagen was ich gesamt für alles gezahlt hab.
Kann auch sein, dass ich 7 oder 8€ pro Servo gezahlt hab - ich weiß es nicht mehr - aber billig waren sie ;)



Heute hab ich noch ein paar Kalibrationen durchgeführt.
Leider ging nicht geradeaus, sondern hat immer eine lange Kurve gemacht - das ist jetzt vorbei.

Wenn dann endlich mein Nunchuk kommt werd ich ihn endlich auch mal richtig steuern können.
Und irgendwann mal sollte er sich auch drehen können... :-b


Jetzt steht noch offen was ich damit nun noch weiter machen soll und welche Funktionen er erhalten soll.

micky_ficky
14.09.2009, 18:33
Hi,
sehr schönes Projekt.
Hast du dein Video zufällig auch bei youtube? MyVideo bringt mir leider hier unter Linux nur ein augencancerogenes schwarz-grün-Stroboskop. Unter Win gings früher, aber ich weiß einfach nicht welcher Codec fehlt...

Würde es gerne sehen, da mich interessiert was genau du beim Punkt "Inverse Kinematik" gemeint hast. Das klingt zwar toll, aber wenn er sich letztendlich tatsächlich im Wave-Gait wie ein Tausendfüßler bewegt ist das nicht so schwierig oder?

MfG
Daniel

radbruch
14.09.2009, 18:43
Hallo

Hübsche Konstruktion, allerdings (ich nörgle gerne;) scheint mir die Spannweite der Beine zu groß. Aber zum Testen und Lernen ist diese günstige Lösung aber sicher geeignet.

Die billigsten (2,95€) regulär bestellbaren Servos die ich kenne gibt es hier:
http://conrad.de/got.php?artikel=227726

Damit sah mein LowCost-Krabbler so aus:
http://i1.ytimg.com/vi/tyrWcdcTarI/2.jpg (http://www.youtube.com/watch?v=tyrWcdcTarI)
http://www.youtube.com/watch?v=tyrWcdcTarI
(Aus: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=42029)

Das sind zwar nur vier 2DOH-Beine und inzwischen ist das Teil auch wieder zerlegt. Aber die Idee ist noch nicht gestorben und wird wohl irgendwann als 6-Beiner wiederbelebt:)

Gruß

mic

churchi
14.09.2009, 18:47
Ich habs schon probiert das Video auf Youtube hochzuladen.
Eigentlich wär mir Youtube lieber gewesen, weil ichs dann auch aufm Handy hätte sehn können.
Leider funktioniert das irgendwie nicht - ich kanns zwar hochladen, aber er wird nie fertig damit...

Inverse Kinematik heißt nix anderes, als das ich bestimmen kann bei welchen Koordinaten der Fußendpunkt sein soll.
--> Ich berechne die Stellungen der einzelnen Servos nur durch die Zielposition des Fußes.
Eigentlich ist es nicht notwendig für einen Hexabot die Inverse Kinematik zu implementieren.
Das war eher "zum Spaß" - eine Herausforderung :)

Das der Hexabot geht ist wirklich keine Hexerei.
Die Inverse Kinematik eigentlich auch nicht wenn man die Formeln gefunden hat.
Die meiste Zeit hab ich mit dem Nunchuk verschwendet - schade drum...

churchi
14.09.2009, 18:56
...scheint mir die Spannweite der Beine zu groß...
Ja klein ist sie wirklich nicht gerade, aber sonst könnte ich nur noch kleinere Schritte machen...

Ich hab vorher sicher 3 Versionen in 3D gezeichnet um die optimale Größe für mich zu finden.
Die Größe die es dann geworden ist fand ich für mich am besten.

micky_ficky
14.09.2009, 19:11
Wärst du geneigt mal näher drauf einzugehen wie deine Berechnungen bez. der Inversen Kinematik aussehen? Ist ein recht interessantes Gebiet, aber ich steh immer vor dem Problem der uneindeutigen Lösung. Im Prinzip hast du ja bei deinen 3 Servos pro Bein ne unendliche (letztendlich nicht wirklich, da die Servos ja nicht jeden Winkel erreichen) Anzahl an Lösungen. Bestimmst du da irgendwie ne optimale, oder hast im vorraus heuristisch ne robuste Lösung ausgewählt, die dann einfach nur noch nach den Anforderungen skaliert wird?

MfG
Daniel

churchi
14.09.2009, 19:30
Theoretisch gibt es wirklich viele Möglichkeiten wie die Position erreicht werden kann.
Viele Möglichkeiten gehen schon weg, wenn man durch die Servos auf bestimmte Winkel begrenzt wird.
Weiters verhindert die restliche Mechanik schon viele Möglichkeiten.
Im Endeffekt kommen nur 2 Möglichkeiten bei mir raus wenn ich mich nicht irre.

Aber praktisch gibts bei mir immer nur eine :)
Ich hab mir den Fuss auf ein Blatt Papier gezeichnet und anschließend die einzelnen Winkel über Sinus, Cosinus und Tangens berechnet.
Das Programm rechnet alle Winkel der Reihe nach aus.

micky_ficky
14.09.2009, 21:21
Achso, du hast praktisch nur die Anfangsstellung der Servos, berechnest dann die Endstellung und der Weg dazwischen "passiert".

Ich dachte du berechnest nicht nur die Servo-Endstellungen, sondern auch die optimalen Übergänge vom Ist- in den Sollzustand.

MfG
Daniel

micky_ficky
14.09.2009, 22:09
So, hab mir jetzt mal das Video angeschaut.
Wie entscheiden die Beine denn selbstständig wann sie sich zu bewegen haben?

Im Video siehts so aus als ob z.B. das Beinpaar in der Mitte immer gleichzeitig nach vorn geht und (wenn sie stillstehen) die anderen 4 Beine stabilisiert, während diese einen Trab-artigen Gang durchführen. Wären die Servos etwas schneller bräuchtest das mittlere Beinpaar wahrscheinlich gar nicht, da der Trab zumindest dynamisch stabil ist.

Wenn du feste Gangtechniken einprogrammierst, aus denen dann abhängig vom Bewegungsablauf die Beste gewählt wird (und entsprechend angepasst auf Kurven und dergleichen) könntest wahrscheinlich ne höhere Genauigkeit erreichen.
Beim Hexapod drängt sich zum Beispiel ein Gang wie im Video hier auf:
http://www.youtube.com/watch?v=O4rff7KnkeA

Ist natürlich schön wenn jedes Bein für sich das Beste wählt, die Frage ist dann aber ob das insgesamt optimal ist. Die von dir gewählte Technik hierfür wäre interessant :)

MfG
Daniel

churchi
15.09.2009, 17:42
Achso, du hast praktisch nur die Anfangsstellung der Servos, berechnest dann die Endstellung und der Weg dazwischen "passiert".
Jein - im Prinzip aber ja *gg*


Ich dachte du berechnest nicht nur die Servo-Endstellungen, sondern auch die optimalen Übergänge vom Ist- in den Sollzustand.
Der Mikrocontroller am Mainboard der das ganze steuert fordert immer nur ganz kleine Schritte an. Die Schritte sind so klein, dass automatisch immer der optimale Übergang verwendet wird.


Wie entscheiden die Beine denn selbstständig wann sie sich zu bewegen haben?
Wenn sie zu weit von ihrer optimalen Position weg sind...


Ist natürlich schön wenn jedes Bein für sich das Beste wählt, die Frage ist dann aber ob das insgesamt optimal ist. Die von dir gewählte Technik hierfür wäre interessant
Da hab ich mich vielleicht ein wenig falsch ausgedrückt.
Es entscheidet nicht der Mikrocontroller der die Servos steuert, sondern der Hauptmikrocontroller.
Der Hauptmikrocontroller sagt dem Bein wo es hin soll. Wenn es zu weit weg von der Optimalposition ist, dann wird dem Bein befohlen sich zu heben, zurück zu fahren und dann wieder zu senken.
(Auch wieder viele kleine Änderungen der Zielposition des Fußendes)


Verschiedene Gangarten wollte ich nicht fix einprogrammieren weil mir das zu aufwändig war :P

Durch umstellen von ein paar Parametern könnte ich sofort die von dir im Video angesprochene Gangart realisieren - aber dann sind die Servos zu schwach.
Dann müsste nämlich 1 Servo das halbe Gewicht des Hexabots tragen und das schafft es nicht.
Ich habe auch schon eine andere Gangart ausprobiert wo immer nur 1 Fuß in der Höhe ist - aber dann wirds viel zu langsam das ganze.

Waldichecker
15.09.2009, 19:05
Sieht echt gut aus!

Bluesmash
18.09.2009, 15:19
Schönes Projekt!

Du hast geschrieben das du einen Wireless Nunchuk für die Steuerung verwendest. Ich habe auch einen Hexa und verwende das Nunchuk für die Steuerung. Das normale Nunchuk mit kabel kann ich auslesen. Ich habe auch ein wireless nunchuk gekauft dieses konnte ich bis jetzt aber nicht auslesen... :( irgendwie ist da was anders als beim normalen Nunchuk.
könntest du eventuell mal den Codeteil vom Nunchuk online stellen? würde mich sehr freuen!

Gruss Bluesmash

churchi
19.09.2009, 11:05
Ich hab leider letztens meinen Mikrocontroller geschrottet und dabei dürfte auch mein Wireless Nunchuk draufgegangen sein. (Ich konnte ihn vorher auslesen, aber danach nicht mehr)

Leider weiß ich nun momentan nicht ob der Code so wie er da drin steht OK ist und drum wärs wohl auch nicht gut den weiter zu geben...
Ich hab mich aber danach gehalten: http://www.windmeadow.com/node/42

Nächste oder Übernächste Woche sollte der neue Wireless Nunchuk kommen - wenn der dann funktioniert kann ich den Code gern online stellen.

Waldichecker
22.09.2009, 17:50
Das würde mich auch interressieren!!!

High Light
26.09.2009, 13:53
Wie kommunizieren deine Slaves mit dem Master?
Und wie schwer ist dein Hexapod?

Gruß High Light

churchi
29.09.2009, 21:18
hmpf - sry für die späte Antwort - ich hab nicht gesehn, dass wer was geschrieben hat...

Also die Slaves kommunizieren derzeit nicht mit dem Master.
Es wäre möglich von der Hardware her (siehe weiter vorne im Thread), aber in Software hab ich es nicht ausprogrammiert. Ich wüsste derzeit nicht was die Slaves dem Master mitteilen könnten.

Das Gewicht kenne ich nicht. Hat mich bisher noch nicht so interessiert und ich hab auch nichts womit ich es einigermaßen genau messen könnte.
Ich möchte mir eventuell für das Tricopter Projekt eine passende Waage kaufen - dann könnte ich auch das Gewicht vom Hexabot messen.

churchi
29.09.2009, 21:26
Heute ist endlich der neue Wireless Nunchuk gekommen.
Ich hoffe ich habe morgen Zeit ihn in Betrieb zu nehmen und die restliche Hardware und Software drumherum fertig zu machen.

churchi
30.09.2009, 20:35
Der wireless Nunchuk ist nun gekommen.

Ich kann auch schon mit ihm reden, aber noch nicht geziehlt mit ihm quatschen...
Irgendwie funktioniert das nicht :(
Ich erhalte andauernd andere Werte. Hin und wieder wiederholen sich welche.

churchi
01.10.2009, 18:11
Heute ist sind die Teile für mein neues Projekt gekommen.

Ich werde nun keine Zeit mehr haben den Nunchuk zu programmieren.
Wer möchte dem geb ich den Nunchuk für 15€ (10€ + 5€ Versand).
Er funktioniert, jedoch hab ich die SW noch nicht hinbekommen.
Aber ich hab auch grad mal 2 Stunden bis jetz versucht den auszulesen...