PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 4-Beiniger Roboter



robin
24.11.2007, 15:50
Hi,

ich bin gerade dabei, meinen ersten Roboter zu bauen, geplant habe ich ihn schon, er soll 4 Beine haben und an jedem Bein 3 Servos (wegen Geländetauglichkeiten).

http://img514.imageshack.us/img514/4674/roboter1ih3.th.jpg (http://img514.imageshack.us/my.php?image=roboter1ih3.jpg)

Die maße stimmen noch nicht so ganz in dem Bild, aber ich denke, es ist daran gut zu sehen, wie er später aussehen soll.

Eine Rechnung habe ich auch schon aufgestellt (zur Zeit nur für das gerade auslaufen), die der µC eigentlich rechnen soll, was ich mir aber nicht vorstellen kann.

Hier die Rechnungen:
Servo1=(ARCTAN((x/cos(a)-4)/6,5))+(90-ARCSIN((WURZEL((x/cos(a)-4)*(x/cos(a)-4)+6,5*6,5)/20))
Servo2=ARCSIN((WURZEL((x/cos(a)-4)*(x/cos(a)-4)+6,5*6,5)/20)
Die ist in Excel geschrieben, deswegen die "WURZEL" und so, aber egal, ich denke, man kann erkennen, dass das viel zu viel für einen µC sein wird.

Eine Alternative dazu wäre dann diese hier:
Servo1=0,012649384170223*X²+0,00054555723265*x+101 ,81728914414
Servo2=-0,012555937621378*x²-0,00128781180245*x+78,18048400542

X ist in dieser Rechnung die Schrittbreite.

ein bisschen gerundet, dann wäre das wohl eher machbar.^^

Zur Steuerung habe ich mir überlegt, einen Mega 168 für die Servos zu nehmen und einen Mega168 zur abfrage (I²C) und Auswertung der Sensor daten.

Programmieren werde ich das ganz in BASCOM und eventuell auch mit Assembler, zumindest den Servo Controller, da ich so genauere Abläufe berechnen kann und auch die Waitschleifen für die Servo-Ansteuerung ausnutzen kann um etwas zu berechnen.

HannoHupmann
24.11.2007, 16:29
Hi

Hast du dir schon Gedanken über Gewicht des Roboter und Servos gemacht?

fey
24.11.2007, 16:39
Ja ich würde auch eher nen Hexapod bauen, ist auch standfester (immer 3 Beine am Boden)

Murdoc_mm
24.11.2007, 18:22
Hi,

hier ne gut dokumentierte Seite eines Vierbeiners:

http://www.kreatives-chaos.com/artikel/ein-vierbeiniger-laufroboter

Gruß

robin
24.11.2007, 19:31
@HannoHupmann

Servos habe ich, Standard Servos con Conrad, an die muss ich dann das Gewicht anpassen, ich denke so ca. 1,5Kg mit Akku und Elektronik.

@fey

Hexapod habe ich mir auch erst überlegt, allerdings habe ich dafür nicht genug Ports an meinem µC und die Rechenleistung wird auch etwas zu hoch, die benötigt wird.
3 Servos pro Bein--> 18 Servos = 18 Ports, + 1 Taster pro Bein, der angibt ob das Bein den Boden berührt, macht 24 Ports und der Mega 168 hat nur 23. Also müsste ich noch einen µC nehmen, oder einen anderen.
bei 2 µC für die Beine wäre die Kommunikation zu kompliziert und zu Zeitaufwendig.
Bei einem größeren Controller müsste ich die ganzen Servoleitungen über die ganze Platine verlegen, was zu viel platz verbraucht. also auch nicht so genial.

der Einzige Vorteil bei einem Hexapod wäre, dass ich bei gleicher Geschwindigkeit das Gewicht erhöhen könnte, oder bei gleichem gewicht die Geschwindigkeit erhöhen.

@Murdoc_mm

dank für den Link sieht recht interessant aus, vielleicht bekomme ich da auch noch ein paar Ideen her

radbruch
24.11.2007, 19:58
Hallo


+ 1 Taster pro Bein
Meine Servos sind über einen 2,2k-Widerstand an den Ports angeschlossen. Ich plane zwischen dem Widerstand und dem Servo einen Taster gegen GND anzuschliessen und in den Nichtimpulszeiten den Port auf Eingang mit PullUp zu schalten. Dann habe ich bei nicht gedrücktem Taster ein High über den PullUp und bei gedrücktem Taster einen Spannungsteiler zwischen PullUp und 2,2K und vermutlich ein Low am Pin. Gegebenenfalls muss ich die 2,2ks verkleinern, aber ich denke, das wird funktionieren. Blöderweise kann man aber bei gedrücktem Taster den Servo nicht mehr ansteuern, was möglicherweise als Endschaltfunktion nützlich wäre. Es würde bei sechs Beinen locker sechs Port sparen...

mic

robin
24.11.2007, 20:22
was bringt des, wenn du das bein nach einem Schritt nicht mehr bewegen kannst?

6ports gespart, aber der roboter kann nicht laufen juhu^^

radbruch
24.11.2007, 20:57
Wie geschrieben, ich habs noch nicht versucht. Ich stell mir das mit einer Feder am Taster vor. Wenn der Taster gedrückt ist, wird das Bein schlaff und der Druck geht zurück. Die Feder entlastet den Schalter, Port ist wieder frei fürs Servo und das Bein drückt mit Federkraft gegen den Boden. Nun kann man entweder den Servowinkel um den Schaltweg des Tasters zurücknehmen oder man drückt weiter und das Spiel wiederholt sich. Die Summe der Federkäfte an allen Beinen muss natürlich größer sein als die Gewichtskraft des Roboters, sonst gibts ein patt.

Ach, und man könnte auch ein Schulterservo lahmlegen, das stört dann nicht weiter.

mic

Murdoc_mm
24.11.2007, 22:35
@Murdoc_mm

dank für den Link sieht recht interessant aus, vielleicht bekomme ich da auch noch ein paar Ideen her

Keine Ursache.

Ich glaube die Hauptaussage in dem PDF ist, das man nur immer ein Bein bewegen kann, da:

1. wenn man 2 (oder mehr) Beine bewegt steht der Bot nur noch auf 2 (oder weniger) Beinen und fällt (höchstwahrscheinlich) um

2. das Gewicht (der Schwerpunkt) immer in dem Dreieck sein muss, das aus den 3 Beinauflagepunkten betsteht

Dadurch das man aber immer ein Bein nach dem anderen bewegen und zwischendurch noch den Körper in die richtige Position bewegen muss (Stichpunkt Schwerpunkt in Dreieck) ist natürlich keine sehr große Geschwindigkeit möglich. Dat hat auch der Autor festgestellt und als Lösung einen Hexabot genannt.

Aber an sich sollte ein Vierbeiner ganz gut machen sein.

Gruß

HannoHupmann
25.11.2007, 09:18
@robin den Standart Servo für 5€? (*schonmalhändeüberdenkopfzusammenschlag) Ok der hat 32Ncm wenn ich das richtig sehe.
Damit darf dein Fusspitze maximal 6,4 cm vom Körper weg sein oder besser kürzer sonst gibts noch mehr Probleme (für Laufen mit 3 Beinen am Boden von 4)

Ich hab bei meinem Hexa aus Kostengründen auch mit den 5€ Dingern angefangen aber jetzt bin ich bei 18 (!)x 16€

robin
25.11.2007, 10:05
@radbruch
ich kann mir des halt nicht richtig vorstellen wie du des gemeint hast, jetzt wird mir das schon etwas klarer, aber welchen servo sollte ich da genau nehmen?
die beiden "schulterservos" brauche ich um den roboter vorwärts zu bewegen, und der am"Ellbogen" wird eventuell gebraucht, wenn ich den Bot seitwärts laufen lasse. d.H. einen Hexapod, der nicht Seitwärtslaufen kann(wäre zu verkraften).
zu deinem Vorschlag mit er Feder, wo bekomnm ich so eine her?

@Murdoc_mm
ich weiß dass ich immer nur ein Bein in die Luft heben kann, was natürlich ein klarer vorteil bei einem Hexapod wäre, aber wenn ich den Hexapod immer auf 3 Beinen stehen lasse, wenn sich die anderen 3 Bewegen, brauche ich neue Servos, und ich habe schon welche.

ja es sind die 5€ Servos von Conrad, aber warum nur 6,4 cm, scheint mir ein bisschen wenig, ich habe eigentlich mit 10cm pro Beinglied gerechnet und bin dabei dann auch etwa 18N gekommen, also 1,8 Kg des Roboters, die nicht überschritten werden dürfen. und zur not habe ich mir überlegt die Servos mit Federn zu verstärken, wenn ich wüsste woher ich welche bekomme^^.

MeckPommER
25.11.2007, 11:34
Bei 10cm pro Beinglied hast du als Power am max 20cm langen Hebel noch 1,6N - dafür dürfte dein Bot nur ca. 480gr. wiegen.

radbruch
25.11.2007, 12:06
Hallo


ich kann mir des halt nicht richtig vorstellen wie du des gemeint hast
So richtig fertig gedacht habe ich das auch noch nicht, nur eben mal mit dem Gedanken gespielt. Es wäre schon praktisch wenn man das Aufsetzen des Beines erkennen könnte, aber extra einen Port pro Bein würde ich dafür nicht opfern. Alternativ kann man auch mehrere Taster mittels einer Widerstandsmatrix (http://www.avr-asm-tutorial.net/avr_de/keypad/keyboard.html#adc) mit nur einem (ADC-)Port auswerten.

Ich verwende aus Kostengründen auch die 5€-Servos, aber ich baue ja auch noch keinen echten Roboter. Ich spiele nur mit den Möglichkeiten, aber vermutlich werde ich später mal ein Fahrwerk auf Räder- oder Raupen-/Kettenbasis verwenden. Bei Spinnenbeinigen würde ich mindestens 6 Beine planen, alles darunter ist beim Gehen nur hinderlich, weil man immer den Schwerpunkt beachten muss.

Anstelle von Federn könnte man auch dichten Schaumstoff neben dem Fusstaster anbringen oder irgendetwas anders was sich zusammendrücken läßt.

Um die Kraft der Servos zu erhöhen könnte man in Druckrichtung des Beins einen (oder mehrere) Gummiring anbringen der zusammen mit dem Servo das Bein gegen den Boden drückt. Beim Anheben des Beins wäre dann das Gewicht des Roboters weg und das Servo müßte nur gegen die Spannung des Gummis drücken. Wenn dann (im Idealfall) die Kraft des Gummis so groß wie die des Servos ist, kann man das Bein gerade noch heben und beim Aufsetzen würden sich die Kräfte addieren. Bei ausgeschaltetem Roboter würden die Gummis den Roboter über dem Boden halten:

http://radbruch.roboterbastler.de/monoleg/pics3/beinmitgummi_klein.jpg (http://radbruch.roboterbastler.de/monoleg/pics3/beinmitgummi.jpg)
Nochmal der Hinweis: Das habe ich noch nicht versucht, ist nur ein Gedankenspiel.

Gruß

mic

[Edit]
Oder vielleicht so:
http://radbruch.roboterbastler.de/monoleg/pics3/beinmitgummi2_klein.jpg (http://radbruch.roboterbastler.de/monoleg/pics3/beinmitgummi2.jpg)

sigo
25.11.2007, 14:21
Hallo Robin,

evtl. kann man das grundsätzliche Schwerpunktproblem des 4-Beiners dadurch vereinfachen/entschärfen, dass du ein Gewicht (den Akku?) exzentrisch an ein Servo unter den Bot montierst, und es immer diagnonal gegenüber dem zu hebenden Bein bewegst.

Just a thought,

Sigo

robin
25.11.2007, 19:03
So sollen die Maße am Bein sein:
http://img64.imageshack.us/my.php?image=beincg7.png

@MeckPommER

die 1,6 N sind aber nur wenn das Bein auf max länge ausgefahren ist, oder nicht? und das dass der Fall ist, habe ich ja nie behauptet.

Bitte korrigiert mich, wenn ich falsch liege.

zu Berechnung muss ich beide Beinglieder gleichlang haben. und ich habe mir auch vorgestellt, dass der Bot später auch Treppen steigen soll, weshalb ich die Beinlänge für angemessen halte.

@radbruch
ob Gummiband oder Feder ist ja egal, entlastet beides den Servo und des mit dem Schalter, mal schaun, hab ja noch ein bisschen Zeit, muss erstmal die Chassis fertig zusammenbauen. Hexabot ist vielleicht doch drin, mal schaun, als erstes bau ich mir einen 4Beinigen Bot und häng dann ein Modul mit 2 weiteren Beinen hintendran.

@sigo
Das mim Schwerpunkt ist mir schon klar, aber da hab ich auch noch Zeit, zuerst muss er mal in der Luft laufen, befor ich ihn auf den Boden stell, und um zu laufen muss er erst mal richtig aufgebaut sein^^.

Murdoc_mm
25.11.2007, 20:30
zu Berechnung muss ich beide Beinglieder gleichlang haben. und ich habe mir auch vorgestellt, dass der Bot später auch Treppen steigen soll, weshalb ich die Beinlänge für angemessen halte.


Ich kann zwar das Bild nicht ansehen ( :-s liegt das an meinem PC oder weil robin wat verkehrt gemacht hat?) aber Treppen zu steigen wird mit diesen Servos fast unmöglich sein.

Wenn du die Beine nie voll ausfährst kommst du nicht hoch genug (min. 15cm!!! eher 20) um Treppen zu steigen. Wenn du aber voll ausfährst brauchst du stärkere Servos.

Gruß

HannoHupmann
26.11.2007, 08:11
@robin. Deiner Zeichnung nach sollen Oberschenkel und Füsse 10cm lang werden. Eine Treppenstufe hat 21cm Höhe. Der Roboter könnte sich bei vollausgestrecken Beinen auf etwas unter 20cm hochheben. Dazu später mehr aber realistisch ist das nicht.
Die Länge von der wir (MeckPommER und ich) immer reden ist von der gestrichelten roten Linie bis zur Fussspitze am Boden. Die entscheidet darüber wie viel Gewicht der Roboter haben darf.
Also entweder der Roboter nur 480gr bei 10cm Länge oder nur 6,4cm und 1,5kg. Aus eigener Erfahrung weis ich, dass Hexas im Regelfall um die 2kg wiegen und nie recht viel leichter werden (außer vielleicht bei CFK). Zur Berechnung gibt es einen Thread über Spinnenbeine in unserer Wiki.
Aus eigener Erfahrung weis ich genau, dass es mit 5€ Servos vom Conrad nicht geht einen Hexa(!) geschweige den einen Quadro zu bauen. Die Dinger gehen dabei kaputt wie Fliegen und schaffen es gerade mal im Stand den Hexa hochzuheben.
Welche Servos du verwendest rechnest du dir am besten selber aus. Aber ich denke 16€ und mehr pro Servo ist zu investieren oder das ganze ist ein Schuss in den Ofen.

@radbruch Die Idee mit dem Gummi oder einer Feder zur Unterstützung der Servos kursiert immer wieder und wird meistens von Personen gebracht die selbst noch keinen Hexa gebaut haben. Umgesetzt wurde die Idee noch nie, was mich aber auch nicht wundert denn durch die Federn erkauft man sich einen Nachteil. Der Hexa/Quad ist nicht mehr in der Lage zwischenstufen anzufahren sondern nur ganz hoch oder ganz runter. Der Bereich dazwischen wird mit der Feder ungenau und komplizierter als ohne. Ich persönlich halte einfach nicht viel davon und würde das Geld eher in gute Servos investieren.


Zum Treppensteigen:
Um sinnvoll eine normale Treppe hochlaufen zu können müsste ein Hexa auf drei Stufen gleichzeitig stehen können. Ein Quadro auf 2. Abgesehen davon, dass es ein ziemlich komplizierter Algo ist einen Roboter in so einer Position (45° Neigung bzw. mehr) stabil zu halten und dann noch hoch zu steigen ist es glaub ich bei 20cm maximale Höhe des Roboters gar nicht möglich.
Der Roboter tritt an die unterste Stufe heran. Drückt sich vorn soweit hoch wie es geht (kommt auf 20cm) stellt nun das eine Bein auf die erste Stufe (so und nun muss er erst mal stabil stehen). Dann kann er das zweite Vorderbein auf die erste Stufe stellen, wird aber nie mehr mit den hinteren Beinen hoch kommen, Die Stufen sind einfach nicht breit genug, außerdem kann der Schwerpunkt nicht über die Kante geschoben werden. Bei diesen Abmessungen einfach nicht drin.
Ich werd demnächst die Katze im Haus noch mal genau beobachten wie die Treppen läuft, aber deren Beingeometrie ist gänzlich anders als die eines Quads oder Hexas. Persönlich würde ich sagen 50cm Beinlängegesamt und 1m Hexa und Treppensteigen ist drin mit genügen Motorpower.

Murdoc_mm
26.11.2007, 18:21
Persönlich würde ich sagen 50cm Beinlängegesamt und 1m Hexa und Treppensteigen ist drin mit genügen Motorpower.

Den Hexa will ich sehen! (Persönlich! \:D/ )

robin
26.11.2007, 18:28
misst, ich habe die kraft von beiden Servos genommen hab ich irgentwie falsch gedacht ](*,)

und des mit dem Treppensteigen, war auch nur ne Idee.

und die Servos, muss ich mir wohl oder übel neue holen.

sigo
26.11.2007, 19:45
Persönlich würde ich sagen 50cm Beinlängegesamt und 1m Hexa und Treppensteigen ist drin mit genügen Motorpower.

Den Hexa will ich sehen! (Persönlich! \:D/ )

Die Kräfte wären mit DC- oder BLDC-Servomotoren mit Harmonic-Drive-Getriebe kein Problem.

Sigo

HannoHupmann
27.11.2007, 09:00
So ein Harmonic Drive der passenden Grösse kostet nur 800€ hab ich beim DLR gesehen (Lieferzeit 6 Monate bis 1 Jahr die werden erst ab Bestellung gefertigt).

Wenn ich genügend Geld hätte würde ich entsprechend grossen Hexa bauen.

Hatte mir fast gedacht mit den Servos, darüber stolpert jeder Anfänger.