PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Projekt Marvin - Mein Hexabot zu 30-40 % fertig



MeckPommER
19.07.2007, 21:37
Hallo liebe Robotergemeinde :-)

Nachdem ich bisher nur ab und an mal als Gast hier war, habe ich mich heute registriert und möchte zuerst einmal mein Projekt Marvin vorstellen.

Marvin kann zwar schon eine Menge, aber ist erst - an meinen Zielen gemessen - zu 30-40% fertig. Marvin ist ein Hexabot, hat somit sechs Beine mit 3DOF und verfügt über ein kompletten IK-System (IK = inverse Kinematik) das auch die Steuerung der beiden Köpfe beinhaltet.

Die technischen Daten in Kürze:

- 22 Servos, davon 18 * billig MGBB und 4 * 8g Servos für die beiden Köpfe
- 9 ATMEGA Controller die parallel alle anfallenden Aufgaben erledigen
- derzeit noch ferngesteuert über eine ALDI-IR-Fernbedienung mit ca. 70 Funktionen
- Gewicht ca. 1700g, wird (muss!) noch leichter werden

Ich hoffe, ich komme am WE dazu, mal ein aktuelles Video zu machen.

Gruß MeckPommER

P.S.: das Schlimmste an einem Projekt ist der Moment, an dem man feststellt, das man fertig ist ;-)

progon
19.07.2007, 22:45
Hallo!

Sieht ziehmlich gut aus! Auch die Idee mit den vertikal gesteckten Karten auf dem Board find ich nicht schlecht. Bin schon gespannt auf das Video.

Evtl. würde ich noch etwas Gummi an den Beine befestigen um auch auf glatten Oberflächen gute Bodenhaftung zu haben.

Ansonsten weiter so!

P.S.: Ist das eigentlich dein erstes Projekt?

MeckPommER
20.07.2007, 08:16
Hallo progon!

Gummi soll noch kommen, allergings sollen zuvor noch Taster an die Beine um dem Roboter zu signalisieren, das ein Bein auch wirklich aufgesetzt hat.
Jupp ist mein erstes Roboterprojekt, vorher nur ein wenig rumgebastelt nach dem Motto "LED aus, LED an" ;-)

HannoHupmann
20.07.2007, 08:32
Erzähl mal was zu der Inversen Kinematik, was verwendest da, welche Gleichungsysteme und wie soll die funktioniern. Das würde mich mal interessieren.

MeckPommER
20.07.2007, 08:54
Hallo HannoHupmann,

ich habe mich zu Anfang auch mit dem beschäftigt, was so an heftigen mathematischen Konstrukten im Web kursiert, dann aber festgestellt, das man das eigentlich nicht braucht, da jede unserer Achsen am Hexabotbein nur einen Freiheitsgrad hat.

Mein Hexapod bewegt sich in einem 3D-Koordinatensystem (logisch) jedes Bein weiß, wo Marvin ist, in wo es selber in Relation zu Marvins Mittelpunkt ist. Zudem weiß jedes Bein, wo am Boden es hinzielen soll. Nun geht es in einfachen Schritten los mit der Berechnung der Servowinkel:

1.) Hüftservo: ganz einfacher arcustangens um die Vorne/Hinten-Richtung des Bodenpunktes im Verhältnis zum Bein zu bestimmen
2.) Distanz zwischen dem Ende der Hüfte zum Bodenpunkt berechnen. Danach richtet sich der Fußservo, der ja sozusagen mit den beiden unteren Beinsegmenten das Dreieck aufspannt zwischen Hüftende und Bodenpunkt. Das geht per Cosinussatz.
3.) Um den Schulterservo zu berechnen nun den Winkel "Hüftende/Bodenpunkt" mit dem gefundenen Winkel des Fußservos verknüpfen.

Damit steht Marvin, geht aber noch nicht. Dazu bekommen die drei Beincontroller ATMEGA32 (je einer zuständig für 2 Beine) in einem bestimmten Rhythmus ein Signal vom Hauptcontroller, die Bodenpunkte anhand ihrer aktuellen Position neu zu berechnen.
Der Hauptcontroller (ATMEGA644) schickt den Beincontrollern ständig Marvins aktuelle (gewünschte) Position und seinen Winkel im Raum, sowie die Beinhubsignale. Den Rest machen die Beincontroller, was sehr angenehm ist, da dem Hauptcontroller so einiges an Zeit bleibt, um sich anderen Aufgaben zu widmen.

Ich hoffe, das war wenigstens ansatzweise verständlich ;-)

Edit: gibt ja noch die Köpfe ...

Die Köpfe "blicken" auf eine Position im Raum (xyz), die sie vom Hauptcontroller mitgeteilt bekommen. Kommen keine Änderungen vom Hauptcontroller, gleichen sie alle Bewegungen von Marvin aus, und bleiben auf den selben Punkt gerichtet. Marvins Position und Winkel bekommen sie genau so mitgeteilt, wie auch die Beincontroller.

Das Praktische an der ganzen Sache ist nicht nur die bessere Manövrierbarkeit des Hexapods da er viel genauer, sondern einfach die Tatsache, das die Beincontroller so "selbstständig" sind. Der Hauptcontroller braucht nurnoch anzugeben, wo Marvin hin soll und wo er hingucken soll - den Rest macht die IK :)

Ach ja, fast vergessen ... zuerst wackelte Marvin arg beim Laufen, bis mir dann mal das Lichtlein aufging, das immer zwei Beine gleichzeitig nen Hubsignal kriegen müssen, und zwar immer zwei gegenüberliegende Beine (vom Mittelpunkt aus gesehen), damit sich der Bot bei seinen Bewegungen nicht aufschaukelt.

HannoHupmann
20.07.2007, 10:32
Bist du in deinem Mathematischen Modell in der Lage alle Raumrichtungen und Kurfen sowie schäg und seitwertslaufen zu realisieren?

(Die Idee hab ich schon verstanden wollte es ähnlich machen nur etwas komplizierter um oben genannte Bedinungen auch realisieren zu können)

kannst du wärend des laufens auch die Stellung des Körpers ändern also leicht gedreht oder höher über dem Boden oder geduckt oder oder oder?

MeckPommER
20.07.2007, 10:48
Wie er laufen soll und ob er dabei vorne hoch, gedreht oder sonstwas laufen soll, ist nur eine frage der x,y,z raumkoordinaten und der a,b,c winkel, die der hauptcontroller an die beincontroller übergibt.
seitlich nach rechts laufen geht einfach, indem der x-wert einfach erhöht wird, der übergeben wird. (das ist etwas vereinfacht, da es nur für den fall gilt, das marvin im koordinatensystem nach vorne schaut. seitlich bedeutet ja immer: seitlich für IHN und das bedeutet halt das drehen des "bewegungsvektors" um die hochachse, um die gewünschten x und z werte zu erhalten)

ich mach am besten mal nen video heute abend. muss nur hoffen, das meine damen (zwillinge, 14 monate alt) sanft schlummern :)

Draic-Kin
20.07.2007, 13:37
Hi MeckPommER,

dein Hexapod gefällt mir zwar optisch (rein subjektiv) nicht so richtig, aber Nichtsdestotrotz saubere Arbeit und sehr gut umgesetzt.


Am Anfang fragte ich mich wozu du oben so viele vertikal gesteckte Platinen verwendet hast, aber die Beschreibung deines Bewegungsalgorithmus erklärt das natürlich :D


Den Bewegungsalgorithmus finde ich übrigens sehr interessant und ein Video dazu würde mich auch brennend interessieren.




Ich Plane momentan selbst einen Hexapod und fange nächste Woche mit der Arbeit an.



Ich hab gesehen du hast Plastikschrauben verwendet, darüber hatte ich auch mal kurz nachgedacht, allerdings wieder verworfen aus Sorge über die Stabilität und Steifheit.

Kannst du da eventuell mal sagen wie deine Erfahrungen mit diesen Plastikschrauben/Plastikmuttern sind?

Und wo hast du die bezogen, eventuell ein Link?

Warum hast du am Oberschenkel keine Plastikschrauben verwendet?


Gruß, Draic-Kin

MeckPommER
20.07.2007, 14:15
Also über die Optik meines Hexaschrecks brauchen wir nicht zu diskutieren ... die ist DEFINITIV fürchterlich ^^
Abhilfe (auch wegen des Gewichts) kommt demnächst in Form eines Acrylglas-Bodys. Das wird natürlich absolut schick und bekommt nächstes Jahr den Titel "Germanys Next Top Hoppel" ;-) Ebenfalls werden demnächst neue, kleinere Controllerplatinen zusammengebrutzelt. Zum einen wegen der Optik, aber in erster Linie, um Gewicht zu sparen und den Massenmittelpunkt etwas näher gen Boden zu bringen.

Die Plastikschrauben sind ganz normale M3 Kunststoff Schrauben von Obi. Ich hatte zuerst auch Zweifel, aber die Dinger halten echt gut. Haben auch den Vorteil (weiss ich noch aus dem Ufo-Bau) das sie im Falle eines Sturzes/Crashs einiges an kinetischer Energie abfangen. Die Schrauben sind schnell erneuert im Gegensatz zu einem Bein, z.B.
Am Oberschenkel am Servorad hab ich kleine M2 Messingschrauben benutzt, da ich die Servoscheiben nicht so weit aufbohren wollte. In M2 Größe traue ich Kunststoff dann doch nicht so. Ausserdem sind die M2 Schrauben so leicht, das ein Austausch gegen Kunststoff wohl nicht viel bringen würde.

Gruß MeckPommER

Draic-Kin
20.07.2007, 14:27
Vom OBI? Wusste garnicht das die sowas haben, danke für den Tipp.

Die Optik ist ja nicht alles, beim Hexapod kommt es ja hauptsächlich auf den Bewegungsalgorithmus an. Und deine Methode hört sich ganz interessant an.

"Germanys Next Top Hoppel" kannst du leider nicht gewinnen, denn den gewinnt meine Spinne schon =P~


Nimm aber kein Acrylglas, nimm Polycarbonat, also Lexan oder Makrolon, ist stabieler, bricht nicht und wiegt sehr wenig, bekommst du günstig hier:
http://stores.ebay.de/hbholzmaus-Kunststoffplatten



Was hast du eigendlich noch vor, da du schreibst es währen nur 30 - 40 % fertig???

MeckPommER
20.07.2007, 14:52
Also bisher habe ich noch keine schlechten Erfahrungen gemacht mit dem Acrylglas *koppkratz* Na ja, hab das Material schon zuhause ... einen Body mehr bauen steigert die Erfahrung und ausserdem wird jeder Body besser als sein Vorgänger nach dem Motto: man kann nicht alles 3D-Planen, einiges zeigt eben nur die Erfahrung.

Also, was noch kommen soll ist die ganze Sensorik ... Fotodioden, Taster an den Beinen, Ultraschall und vielleicht noch ne SW-Kamera.
Dann soll (irgendwann) die Möglichkeit bestehen, das der Hexapod Daten drahtlos mit nem PC austauschen kann.
Und bis dahin ist noch ein Haufen Hardware zu basteln, zu verbessern (kleinere Controllermodule um Gewicht zu sparen ... kostet ja nicht die Welt, sowas zu erneuern, das einzige sind die Atmegas, und die können ja weiterverwendet werden) und ein Haufen Software zu schreiben.
Ausserdem kann man sich bei so einem Projekt ja auch dumm und dusselig optimieren :)

Du baust ne Spinne? Wo sind denn Bein Nr. 7 & 8 ? ;-)

Draic-Kin
20.07.2007, 15:00
Ja, ich wollte ne verletzte Spinne bauen, die 2 Beine verloren hat...






...außerdem ist es günstiger und 6 Beine reichen ja.

MeckPommER
20.07.2007, 15:12
Japp, 6 Beine reichen und 18 Servos sind teuer genug ...

... und wenn ich mir deine Planung ansehe, dann wird dein Bot mit Sicherheit nicht häßlicher als meiner. Wir können ja jeden Monat Bilanz ziehen, welcher Bot eleganter geworden ist ;-)
Aber das führt dann dazu, das wir beide in einem Jahr chromglänzende, absolut edle, glitzernde und blinkende HexaPods haben ... die allerdings nicht mehr laufen können ;-)
Ach so noch kleiner Tipp am Rande: versuche nicht nur dem Rahmen leicht, sondern auch die ganze Elektronik stromsparend zu gestalten. Selbst nen paar lumpige normale LEDs zuviel (ich nehme nurnoch 2mA low current) bringen nen Spannungswandler - falls geplant - unnötig ins Schwitzen. Und Kühlkörper sind schwer und brauchen Platz.

HannoHupmann
20.07.2007, 17:58
Also Stromprobleme hab ich bisher keine und ich würd mich wundern wenn sich das viel ändern, gut mein neuer Roboter hat ein paar Gimmiks die nicht unbedingt versorgt werden müssen, aber die will ich einfach haben.

Ich hab meinen Roboter beim RN Treffen zum ersten voll ausgereizt vorher hat der sich nie besonders lang bewegen sollen. Wenn ich also wirklich mehr Power brauch nehm ich nen besseren Akku da ist nach oben hin noch ziemlich viel Luft.

Statt Spannungswandlern kann man ja auch DC/DC wandler verwenden die sind wohl besser als Spannungswandler.

MeckPommER
20.07.2007, 22:30
@HannoHupmann

jupp, ich hatte zuerst einen 78S05 auf der Platine der wurde ordentlich warm - habe ihn dann durch einen LT1085-CT5 ersetzt, der bleibt merklich cooler. Was den Stromverbrauch angeht, ists bei mir halt etwas kritischer, da ich derzeit 9 Atmegas auf der Platine hab.

Hier nun aber das Video http://www.vreal.de/downloads/marvin04.wmv

Keine filmische Meisterleistung, aber ich hoffe, man sieht, worauf es ankommt :)

m_priester
21.07.2007, 03:23
dicken Daumen! gefällt!

NumberFive
21.07.2007, 08:34
Meine Hoch Achtung !

HannoHupmann
21.07.2007, 11:14
@MeckPommER

Japp sieht man sehr gut, so hatte ich mir das für meinen Phoenix² auch vorgestellst. Hab dir ne PN geschrieben.

Seh übrigens die LEDs vorn sind sicher auch nur ein wenig Spielerei und ganz ehrlich ich find sowas wichtig. Schliesslich bekommt der Roboter dadurch eine persönliche Note und sieht nicht nur aus wie einer aus dem Labor.

steveLB
21.07.2007, 11:32
ich finds auch super , vor allem die ganzen bewegungsmöglichkeiten, er lief zwar net weit, aber das kippen seitlich und nach oben sah gut aus

MeckPommER
21.07.2007, 12:11
@HannoHupmann

Deine PN habe ich erhalten, hab nur momentan keine Zeit um ausführlich zu antworten, das folgt am Abend. Vielleicht wäre es keine schlechte Idee, die IK-Sache mal in nem eigenen Thread für alle breitzukauen.

Was die LEDs angeht, die sind keinesfalls als Spielerei gedacht. Auf die Köpfe kommen noch Fototransistoren die es dann zusammen mit den verschiedenfarbigen LEDs ermöglichen sollen, Hindernisse zu triangulieren. Abwechselnd sendet ein Kopf licht mit z.B. 1KHz und der Fototransistore auf dem anderen Kopf sucht den gepulsten Lichtschein. Aus der Stellung der Köpfe läßt sich dann (sicherlich nicht genau, aber in etwa) die Position des Hindernisses ermitteln.

HannoHupmann
21.07.2007, 13:33
@MeckPommER haben wir schon mal versucht mit dem für alle Breittreten, das hat auch zu mehr oder minder guten Ergebnissen geführt, ich hab auch selber gerade nochmal ein paar Gleichungen aufgestellt.

Das Problem ist leider wenn man es im Thread macht, dass meistens soviele mitreden mit so unterschiedlichen Wissenstand, dass man schnell gar nichts mehr versteht und es zu unübersichtlich wird.

Abgesehen davon, ist das Forum nur sehr schlecht geeignet um Mathematik zu Diskutieren, da bräuchte man schon nen Tafel um es vernünftig machen zu können.

Ich versuch gerade Gleichungen zu finden nach denen der Winkel der Servos in Abhängigkeit von z und x koordninate (von der Fussspitze) ist mit dem Hüftgelenkt wären damit alle 3 Kordninaten im Raum bestimmt. Nur ein wenig Probleme hab ich noch wie man den Körper in seinen 6 Freiheitsgraden mathematisch beschreibt.

[EDIT] Alles wieder weg ich denk erst mal nach bevor ich was sag.

[EDIT2] Hab jetzt ein mathematische Modell wo die Winkel der Servos von den x,y,z Koordinaten im Raum abhängen

MeckPommER
21.07.2007, 21:23
Das mit dem mathematischen Modell ist so eine Sache und hat einige Tücken.

Als erstes müssen wir unser Koordinatensystem festlegen und Vereinbarungen treffen.
Der Hexabot bewegt sich in einem 3D Koordinatensystem.+-X ist rechts/links, +-Y ist oben/unten, +-Z ist hinten/vorne. Der ebene Boden hat den Y-Wert Null. Der Hexapod hat einen zu definierenden Mittelpunkt, der seine Position angibt und um den er sich dreht, kippt und neigt. Die seche Beine haben eine relative Position dX,dY und dZ zu diesem Mittelpunkt. Beim Programmstart wird der Mittelpunkt festgelegt, z.b. mit XYZ = (0,6,0), denn der Hexapod muss ja schon eine gewisse Höhe haben und kann nicht in der Tischplatte versinken. Ebenso werden beim Programmstart die Bodenpunkte der einzelnen Beine berechnet. Ich habe es so gemacht, das diese etwa 8 cm seitlich, des jeweiligen Hüftservos liegen, auf selbigem Z-wert und logischer Weise am Boden sind, also Y=0.

Die einige Aufgabe der Beine ist nun, den Achspunkte der Hüftservos mit den Bodenpunkten zu verbinden.

Ich habe festgestellt, das man sich der Sache am besten Stück für Stück, also Servo für Servo nähert. Nehmen wir mal den Hüftservo:
Zu wissen, welche 2 Raumwinkel vom Hüftservo in Richtung Bodenpunkt zeigen ist schon 50% zuviel gerechnet. Der Hüftservo stellt sowieso das Bein nur nach hinten oder vorne. Also recht es, den Winkel auszurechnen, der sich ergibt, wenn man von oben auf den Hexabot schaut (dumm ausgedrückt, aber ich hoffe, verständlich).
Das gemeine ist nun, das wir jetzt einen anderen Punkt im Raum für die weiteren Berechnungen nehmen müssen, nämlich nicht mehr den Drehpunkt des Hüftservos, sondern den Drehpunkt des nächsten Servos: des Knieservos.
Der errechnet sich aus der Position des Hüftservos, der Strecke zwischen Hüftservo und Knieservo (also der Länge des Oberschenkels) und des gefundenen Winkels.
Sich jetzt den Winkel des Knieservos auszurechnen ist nur was für starke Männer und leistungsfähigere Controller, weil wir den Servo so stellen müssen, das das Ende des Unterschenkels genau so weit vom Bodenpunkt ist, wie das Fusssegment lang ist. Erstens ist das ne fiese Rechnerei und zweitens bekommt man unter Umständen zwei Ergebnisse :-/
Also gehen wir nen anderen Weg, der viel einfacher und schneller ist. Wie wissen, wie lang der Unterschenkel ist, wir wissen, wie lang das Fusssegment ist, und wir wissen, wie weit es vom Drehpunkt des Knieservos bis zum Bodenpunkt ist. Diese drei Strecken bilden ein Dreieck, und da wir alle drei Längen kennen, können wir auch den Winkel berechnen, den der Fussservo haben muss (Cosinussatz). Der Fussservo ist es nämlich, der dann sozusagen das Dreieck aus Fusssegment und Unterschenkel so weit aufspannt, das der Fuss genau am Bodenpunkt ankommt.
Als letztes muss der Winkel für den Knieservo berechnet werden. Der ergibt sich aus dem Winkel vom Knieservo zum Boden und dem Winkel des Fussservos. Voila :)

Das Gehen erfolgt dann durch einen Impuls der auslöst, das für einen kurzen Moment der Controller statt der realen Bodenposition eine Position + 4cm Y bekommt, dann hebt er artig das Bein. Währenddessen wird dann eine neue Bodenposition berechnet.

Was wir an Programmtechnisch an Funkionen brauchen sind Sinus- und Cosinussatz, sowie Funktionen, die uns Punkte im Raum drehen und verschieben können. Denn wenn der Hexapod sich bewegt, bewegt sich sozusagen mathematisch die Welt unter ihm weg. Wenn ich will, das er sich dreht, kann ich nicht einfach seine Koordinaten drehen, sondern muss seinen Mittelpunkt erst auf den Mittelpunkt des allgemeinen Koordinatensystems schieben, dann kann ich drehen, und dann schiebe ich wieder zurück.
Das Hin- und Herschieben ist eine unproblematische Sache. Aufpassen muss man beim Hin- und Herdrehen! Wenn ich z.B. irgendeinen Punkt im Raum nehme, und drehe ihn um den Ursprung in allen drei Achsen erst um a Grad um die X-Achse, dann um b Grad um die Y Achse und dann um c Grad um die Z Achse und drehe ihn danach wieder zurück um -a Grad X, -b Grad Y und -c Grad Z, dann mach ich dicke Backen, weil der Punkt irgendwo ist, aber nicht am Punkt von vorher. Grund dafür ist, das es beim Drehen auf die Reihenfolge ankommt. Ich muss also aufpassen, das ich beim zurückdrehen auch die Reihenfolge umkehre. Es muss also zuerst -c Grad Z, dann -b Grad Y und dann -a Grad X gedreht werden.

Was braucht man für nen Controller?

Ich habe einen Atmega32 Controller für je zwei Beine. Das ist etwas überdinemsioniert, aber ich möchte mir Power und Platz in Reserve halten um noch weiter feilen zu können. Wenn man die Erzeugung der Servoimpulse auslagert, alles feinstens optimiert und z.B. die Trigonmetrischen Funktionen als Tabelle speichert anstatt sie zu errechnen, dann mag man mit einem Controller auch alle 6 Beine berechnet bekommen. Allerdings wird das so eng, das ich es nicht versucht habe. Ich möchte noch Platz dafür haben, das der Hexapod Taster an die Beine bekommt, und reagieren kann, wenn ein Bein beim Aufsetzen mal ins Leere tappt oder zu früh Kontakt mit irgendwas hat.
Ein Atmega 8 ist aber definitiv zu klein dafür, sowohl an Rechenpower als auch an RAM und Programmspeicher. Um ein flüssiges Gehen zu ermöglichen, sollte die komplette Beinberechnung schon mindestens 50 Mal pro Sekunde erfolgen, damit der Hexabot nicht tackert in den Bewegungen.
Auch sollte man den Servo nicht mit den z.B. in Bascom existierenden Servobefehlen ansprechen, da der Servowert dort ein 8-Bit Wert ist. Selber eine Interrupt-Routine mit einem 16-Bit Timer ist viel eleganter und genauer.

HannoHupmann
21.07.2007, 21:45
Ok zu deinem letzten Satz noch ein paar Worte (mathematisch hab ichs begriffen und muss es nur noch entsprechend umsetzen). Theoretisch könnte man ja den ganzen Rechenschmarn von einem Leistungsfähigen Controller übernehmen lassen (ka was genau geeignet ist) und dann die Errechneten Werte über I²C an das Servoboard übermitteln. Dieses muss dann nur noch ausführen und die Werte an die richtigen Servos übergeben.

Die Trigonmetrie würde ich tatsächlich in eine Tabelle speichern bzw. nur dann live berechnen, wenn wirklich genügend Rechenkapazität frei ist. Erweitern kann man das ganze System immernoch indem man zusätzlich µC die Vorauswahl bei der Sensorverarbeitung treffen lässt.

Fragt sich nur welcher µC wirklich Leistungsfähig genug ist um 6x komplett alle Beine und dann noch in 50Hz zu berechnen.

MeckPommER
21.07.2007, 21:58
Gute Frage, die ich dir nicht beantworten kann. Ich würde es einfach mal mit nem Atmega 16 versuchen. Sollte der nicht ausreichen vom Platz her, kannst du immernoch auf einen Pinkompatiblen 32 oder 64 ausweichen.
Bei einer Tabelle ist auch immernoch die Frage, wie genau man die anlegt mit wievielen Werten *kopfkratz*. Auch soll das Heraussuchen der Daten ja nicht länger dauern als die live-berechnung.
Wenn ich nicht irre, hab ich mal nen Sinus Benchmark gemacht, bei dem herauskam, das der atmega32 bei 16MHz so ca. 8000 Sin pro Sekunde schafft. Gibt ja tausend Ecken, an denen man speedmäßig feilen kann.

Das alles ist auch der Grund, warum ich mein ganzes System modular aufgebaut habe. Ich kann ohne Probleme einfach z.B. einen neuen Beincontroller für 6 Beine entwerfen, nehme die 3 alten Controllerboards runter und stecke das Neue auf - ich haben fertig. Da innerhalb der Entwicklung ja auch immer neue Ideen kommen, kann ich mich so ganz flexibel dem Endziel nähern ... was ohne Zweifel auch wesentlich hübscher sein soll, als es jetzt aussieht ;-)

HannoHupmann
21.07.2007, 22:13
Ich weis schon wen ich da mal anhauen werde bezüglich Controller, da gibt es ein paar Informatiker bei mir an der FH (und ein paar Profs) die mich davon überzeugen wollen, dass ihre Atmega ganz toll sind. Daher muss ich die mal fragen oder meine Systemprofessorin die hat auch immer gute Ideen.

Nun so gesehen dürfte jedes Bein damit 20 Trigonometrische Funktionen haben um die geforderten 50Hz einzuhalten und man davon ausgeht dass alle Trogonometrischen Funktionen gleich lange brauchen.

Bei mir wird es auch Modular allerdings nicht ganz so viele Module sondern eben nur 2-3 Controller Module.
1 Main, 1 Servos, 1 Sensor und damit dann hoffentlich alles Kontrollieren und ansteuern.

Die Idee mit den Tastern hatte ich auch schon mal (und bei Phoenix 2 sogar schon angelegt), allerdings werd ich eher auf Neigungssensoren umsteigen um den Roboter immer in der geraden halten zu können.


4 Trigonometische

MeckPommER
21.07.2007, 22:20
Nun, das mit den 20 Trigs wird etwas eng (eine Drehung eines Punktes um alle Achsen braucht ja schon 3*sin+3*cos), zumal die ja nicht alles sind. Da kommen ja noch Fliesskommaberechnungen ... *koppkratz* ... nun, es ist auf jeden Fall einen Versuch wert! Hat ja auch seinen Reiz, zumal das geringe resultierende Gewicht auch ein schöner Lohn ist!
Drei Piezo-Gyros liegen auch bei mir und warten auf ihren Einsatz. Sind damals übrig geblieben von meinem Ufo-Bau. Obwohl ... eigentlich braucht ein Hexapod ja nur zwei Gyros, die Drehung um die Y-Achse kommt ja nicht von unebenen Boden und braucht ja auch nicht ausgeglichen zu werden.

Unebenen Boden/Löcher ausgleichen, Gyroskope, Terrainwiedererkennung, KI, dütt und datt ... ist es nicht herrlich, das man an so einem Teil bis zur Rente wurschteln kann ^^

Vielleicht bist du ja auch mit einem arm7 oder so besser bedient, der um einiges flotter ist?

BeautyofBaud
02.08.2007, 06:56
Sehr schöne Sache =) der rockt der Bot....

Leider werd ich wohl so´n Ding eher nicht bauen können nachdem was ich da an Sachen gelesen hab....

Wie ich Mathe hasse *g*
... Ich glaub soviel rechnen würd ich nich überstehen ;)

aber RESPEKT

greEtz Baud

MeckPommER
02.08.2007, 07:15
Siehste ich mag auch nicht rechnen ... darum überlege ich mir nur, wie es theoretisch gemacht werden müßte und das Rechnen übernehmen dann die Mikrocontroller :-)

Gruß MeckPommER

BeautyofBaud
02.08.2007, 07:47
hehe ... Naja aber die ganze Theorie ist böse... ich neige dazu mich bei sowas zu langweilen ... naja dann ist die Leistung schonmal um ööhm 99,9999999999... % herrabgesetzt...


Allerdings durfte ich mir da schon Einiges zu anhöhren - vorallem wenn ich wegen ner Veranstalltung an einer Uni war oderso, frei nach: "Was du programmierrst usw.... aber magst kein Mathe ... das Geht?"

Vielleicht liegts auch nur an meinem derzeitigen Lehrer...

Aber das Ding ist echt der Hammer... Ich bin froh, wenn ich überhaupt meine Bilderkennung auf die Reihe kriege... andere Geschichte...

Hat eigentlich mal jemmand von euch den Hexa von der Uni-Lübeck gesehen? Hab letztes Jahr die erste Schulwoche "geschwänzt" und da ne Art Praktikum gemacht.

Das Ding ist ziemlich lustig... Die haben dem ein Paar "Regeln" übergeben und dann überlegt sich das Viech, wie es die Beine bewegen muss um nicht hinzufallen.

Asurokiller
05.08.2007, 21:45
Wie steuerst du den Bot?
Per Funk
Oder
mit Kabel

MeckPommER
05.08.2007, 22:10
Weder noch. Ich steuere ihn über infrarot mit ner simplen 10 Euro Universalfernbedienung von ALDI :)
So kann ich zig Funktionen steuern, was mit Funk nicht zu realisieren wäre.

Asurokiller
05.08.2007, 22:13
welchen empfänger verwendest du da?

MeckPommER
05.08.2007, 22:29
TSOP1736 nennt sich das Bauteil, wenn ich das richtig im Kopf hab. Einfachste Beschaltung an einem Atmega16 (3 Nummern zu groß dafür).

HannoHupmann
22.08.2007, 10:46
Schöne Seite übrigens die du da hast für dein Projekt. Hab sie zwar nur überfolgen aber scheint recht ausführlich dokumentiert zu sein.

Btw. wie wäre es mit Bannertausch für die Webseiten?

squelver
22.08.2007, 10:54
Schöne Seite übrigens die du da hast für dein Projekt. Hab sie zwar nur überfolgen aber scheint recht ausführlich dokumentiert zu sein.

Btw. wie wäre es mit Bannertausch für die Webseiten?

Da schliesse ich mich gleich mal mit an, bin auch begeistert, vor allem von deinem Roboter \:D/

War vor ner Woche mal auf deiner Seite, hab aber leider kein GB gefunden ;)

Andreas

MeckPommER
22.08.2007, 11:48
Ich hab irgendwie ne Allergie gegen Banner-Tausch-Aktionen ...

... aber eure Projekte stehen nun bei mir auf der Seite unter "Links" ... und ein Gästebuch habe ich eben nachgerüstet :)

Gruß MeckPommER

squelver
22.08.2007, 12:52
Ich hab irgendwie ne Allergie gegen Banner-Tausch-Aktionen ...

... aber eure Projekte stehen nun bei mir auf der Seite unter "Links" ... und ein Gästebuch habe ich eben nachgerüstet :)

Gruß MeckPommER

Hab mich gleich mal eingetragen \:D/

Deinen Link setze ich natürlich auch bei mir ;)

HannoHupmann
22.08.2007, 13:04
Werd dich bei mir eintragen, wenn ich wieder zuhause bin und meine Webseite bearbeite.

MeckPommER
30.08.2007, 08:48
Der Body und die dazugehörige Software wurden überarbeitet.

http://www.youtube.com/watch?v=deJ4zgEL-Is

Durch die Spreizung der Beinstellung geht Marvin nun noch etwas besser. So langsam steht dann auch das Thema "Sensoren" auf meiner todo-Liste.

Gruß MeckPommER

HannoHupmann
30.08.2007, 09:39
Hi MeckPommER schaut aufjedenfall besser aus als die erste Version. Auch die Körperbewegungen hast du ganz gut im Griff nur irgendwie mit den laufen, das wirkt noch etwas sehr langsam und unbeweglichj.

Mein Tipp versuch mal 3x3 laufen, sprich 3 Beine Boden und 3 in der Luft, wenn das die Servos schaffen.

Ansonsten bei der 4x2 Version bewegest du
(A B C
D E F (Beine von Oben gesehen)

A und F, B und E und C und D immer paarweise. Versuch doch mal A und E, B und F und C und D das müsste etwas schneller sein.

Mehr Geschwindigkeit könnte man auch z.B. durch grössere Drehbewegungen erhalten.

MeckPommER
30.08.2007, 09:51
Hi HannoHupmann,

Marvin kann auch schneller laufen, kann ich an meiner ALDI-IR einstellen :) Ich gebe in der Software nur Marvins Sollgeschwindigkeit vor, und daraufhin machen die Servos automatisch größere Drehbewegungen.

Problem ist, das Marvin um die 2Kg wiegt, und meine Servos grade mal 35Ncm schaffen. Die sind schon jetzt am Limit.

Größere Drehbewegungen erfordern auch ein längeres Strecken der Beine, und dabei mache meine Servos dann die Grätsche :-/

Wie im Video zu sehen, läuft Marvin momentan wahlweise im 5/1 und 4/2-Modus. 3/3 implementiere ich wenn ich stärkere Servos habe (erst Oktober *seufz*) was dann natürlich etwas flotter geht.

Öhm ... warum sollte die von dir angesprochene Schrittfolge schneller sein, das ist mir nicht so ganz klar.
Problem sehe ich ferner in der Unsymmetrie der Beinbewegungen, was bei schnelleren Bewegungen zum Aufschaukeln des Roboters führen könnte.

Gruß MeckPommER

HannoHupmann
30.08.2007, 10:02
Schneller nicht direkt aber meiner Meinung nach günstiger, das mag aber vom Schwerpunkt des Roboters abhängen. Bei meinem ist er damit besser gelaufen.

Ok 35Ncm ist natürlich untergrenze, da geht tatsächlich nimmer viel. Ich hab jetzt durchgängig an allen Beinservos HS-475HB verbaut (ja auch in der Schulter) aber bisher noch nicht getestet ob das ganze jetzt besser ist, da ich noch kein Strom auf meinem Roboter hab.

Welche Servos hast für Oktober geplant?

MeckPommER
30.08.2007, 10:24
Ich liebäugel für Knie- und Fussservos mit:

Bluebird BMS-620 MG

Metallgetriebe
doppelt Kugelgelagert
Gewicht: 50g
4,8V = 91Ncm, 0.15Sec/60°
6,0V = 105Ncm, 0.13Sec/60°
Kostenpuntk: 26,95 beim blauen C ab 4 Stk.

damit wären diese Servos 5g leichter und dreimal so stark wie meine jetzigen.
Mit diesen Servos werden natürlich dann die Beine nochmals etwas verlängert und verstärkt und Marvin damit aktiver ... wäre doch gelacht, wenn wir es nicht schaffen sollten, einem Hexapod nicht nur das Gehen sondern auch das Laufen beizubringen ;-)

Wird Zeit, das Strom durch deinen Bot fliesst, ich bin gespannt! :-)

HannoHupmann
30.08.2007, 13:05
Ich würde ja keine Servos beim Conrad kaufen, da die zwar schöne Werte haben, aber keine Markenservos sind. Abgesehen davon gehen die Dinger ganz schön ins Geld. Aber das hängt auch immer davon ab wieviel Geld man für sein Hobby zur Verfügung hat.

MeckPommER
30.08.2007, 14:24
Joah, C hat nicht grade den besten Ruf, was die Servos angeht, aber ich denke, es kommt auch immer auf den Preis an. Wenn man sich beim C nen Servo für 3,95 Euro holt, darf man sich nicht wundern, das die Qualität nicht die Beste ist.
Meine bisherigen Servos sind auch vom C. 9,95 Euro für MG BB 35 Ncm, und ich bin immer recht zufrieden mit denen gewesen.

Servos über 60Ncm sollten es schon sein, da Marvin sicherlich eher schwerer als leichter wird mit dem was da noch alles "angebastelt" werden soll. Ausserdem wären mir Metallgetriebe und Kugellager schon auch wichtig.

Da spare ich dann lieber etwas länger und hole mir dann Servos (nach und nach) mit denen ich dann auch das realisieren kann, was mir im Kopf herumschwebt.

Ich spare mir die Servos nicht vom Munde, sondern von der Leber ab ^^

HannoHupmann
30.08.2007, 15:27
Ich hab noch mindestens 20 Conrad Servos für 5€ rumliegen und weis nicht was ich damit machen soll. Im Verkauf würden sie einfach nimmer den Preis bringen, außerdem sind viele schon am Gehäuse beschädigt oder das Kabel nimmer orginal. Also würd ich dafür noch weniger bekommen. Jetzt liegen sie halt in der Bastelkiste und werde da auch bleiben fürcht ich.

Klar ich träum ja immernoch von einem Hexa mit den 60€ HiTec Servos aus dem RoboNova und eloxiertem Aluminium als Material für den Körper nur würde der Roboter dann wohl locker 3000-4000€ kosten.

MeckPommER
30.08.2007, 15:45
Ich hab auch 2 von den 5 € Servos von Conrad. Die sind zum Testen ok, für den Einbau in irgendwas taugen die absolut nüscht.

Knapp 30€ sind nen Haufen Geld für nen Servo, aber erstmal 6 Stück fürs Knie und später (wenn die sich als brauchbar erweisen sollten) nochmals 6 für die Füße.

Klar, wenn das Geld nicht zählen würde, dann starke Jumbo-Digital-Tüdelüt-Servos und zwei Beine mehr an den Bot und 2 Funkkameras oder den Bot 4 Nummern größer mit nem Notebook im Leib und ...

Was für HiTec-Servos hast du? Preis? Daten? Hitec ist ja als Marke nicht das Schlechteste, aber als ich mal geguckt hatte, war alles was Metall & Kugellager & Stärkemäßig hinkam für mich unbezahlbar.

samawi
23.09.2007, 01:41
Hallo Meckpommer

In welche sprache hast du das ganze Programmiert?

HannoHupmann
23.09.2007, 18:35
Ich hab die "Standart" HS-475HB für 16€ das Stück genommen. Die sollten für mich reichen (zuminderst hat es das schon beim Vorgänger (im Knie) und jetzt sind es durchgängig diese). Leider bin ich haber noch nicht dazu gekommen alle Servos gleichzeitig zu testen und daher kann ich noch keine Erfahrungswerte posten.
Von den 5€ dingern hab ich jetzt 20 rumliegen die ich nimmer brauch aber auch nicht verkaufen kann, zum Wegwerfen sind sie aber zu schad.

An den Servos kann man sich wirklich tot zahlen und wenn man dann noch Digitale will noch mehr. Da denk ich eher darüber nach die bestehend mit der OpenServo Anleitung umzubauen.

hosti
23.09.2007, 21:17
OpenServo Anleitung? was ist den das? :-k

MeckPommER
23.09.2007, 21:29
Habe ich auch grade das erste Mal gesehen. Sieht ja echt nicht schlecht aus, ist mir aber heftigst zu Aufwändig bei 18 Servos eines Hexapods und noch komme ich ohne die allerdings seeeehr schönen Extra-Features aus.

@samawi: Marvin läuft unter Bascom, wobei ich allerdings dabei bin, einige Teile der Software in Assembler machen. Bei der Kommunikation der Mikrocontroller untereinander geht einfach in Bascom zu viel Zeit verloren

@HannoHupmann: so kann man sich täuschen. Von den reinen Werten her hätte ich gedacht, das diese Servos nicht stark genug und nicht schnell genug sind. Aber so kann man sich täuschen. Hast du auch keine negativen Erfahrungen mit Plastikgetriebe und "nur" einem Kugellager gemacht?
Ich habe bisher immer nach Servos geschaut, die Metallgetriebe haben und doppelt kugelgelagert sind. Wäre die Anschaffung für mich rausgeschmissenes Geld? Ich bin noch am überlegen, denn der preisliche Unterschied ist nicht grade gering.

HannoHupmann
24.09.2007, 09:35
Also bei der Version Phoenix ist mir keiner der HS-475HB kaputt gegangen. Abgesehen davon hab ich es mir mal mit denen durchgerechnet bzg. Gewicht und Drehmoment und das hat eigentlich gereicht. Mit MG und doppelt Kugelgelagert ist es natürlich besser, aber ich denke, dass bis zu einem bestimmten Gewicht (2-3kg) und den entsprechenden Abmessungen (Oberschenkel etwa 10cm) schon die 475HB reichen.
Was für die Servos von mir noch spricht ist, dass man bei den einschlägigen Händlern für Hexas (lynxmotion) diese auch mitgeliefert bekommt. Lynxmotion bietet zwar auch ein Update auf stärkere Servos (HS-5645) an, allerdings weis ich nicht ob das unbedingt notwendig ist.

Leider kann ich noch nicht sicher sagen, ob es bei mir jetzt reicht, da ich noch nicht alle Beine gleichzeitig ansteuern kann. Das wird auch erst in ein paar Wochen was fürchte ich.

MeckPommER
08.10.2007, 15:56
Mal wieder einiges Neues in Marvins Bauch ...

- SD-Card Modul als Datenlogger
- Sprachsynthese auf nem 644-20
- neue (bisher nur schmückende) Beleuchtung

und natürlich das obligatorische Video :)

http://www.youtube.com/watch?v=tMiN6oXnASY

Beim Basteln des SD-Card Moduls kam mir auch die Idee, das ja nicht nur Text-Daten geschrieben werden können, sondern z.b. auch eine Bitmap generiert werden könnte, auf der der bisherige "Weg" des Bots eingezeichnet wird ... kommt wohl auch noch auf meine "ToDo"-Liste :)

Dann könnte man den Bot auch dazu benutzen, das er abends zu den Kids ins Kinderzimmer krabbelt und ihnen ein Märchen-Hörspiel von der SD-Card vorspielt ... brave new world ;-)

Abgesehen von diesen Neuerungen bin ich immernoch traurig, das ich nicht zum Robotiktreff kommen konnte! Ich hoffe aber auf viele Bilder und Videos von diesem sicherlich lohnenswerten Treffen *schnief*

Klingon77
08.10.2007, 19:52
hi,

bin einfach nur begeistert! :mrgreen:

Das Licht-System sieht ja wirklich gut aus - und das Ganze auch noch schwenkbar!

Allerdings liegt da auch die Gefahr...

Falls es jemals zu einer "Begegnung der dritten Art" wie im Spielfilm kommt erhalten die Außerirdischen einen komplett falschen Eindruck von der herrschenden Spezies auf unserem Planeten. ](*,) :-b :oops:

Was macht die "Sprachsynthese auf nem 644-20" ?

Befehle durch Spracheingabe?

Weiter so und immer posten!

Gruß, Klingon77

MeckPommER
08.10.2007, 20:30
Hi :)

Das mit der Sprachsynthese war eigentlich zuerst nur ne Idee um Samples abspielen zu können. Ich wollte Picards "Energie" und Spocks "Faszinierend" als Gag abspielbar machen. Hab die wav-Dateien im Computer bearbeitet und dann als Datas in den Flash-Speicher gepackt, weil Ram und eeprom zu klein sind.
Dann hab ich mir überlegt, ob es nicht funktionieren könnte, einzelne Laute ebenso abzuspeichern und daraus dann beliebige Worte zu formen.
Haut auch mittlerweile nach langem Probieren recht gut hin, allerdings muss ich die Qualität der einzelnen Laut-Samples noch verbessern. Die Laute werden nacheinander abgespielt und die Lautübergänge miteinander gemischt.
Nun übergibt der Mastercontroller dem Ton-Modul einfach einen String mit den Lauten und der plappert es dann lustig vor sich hin. Platz für Picard und Spock war auch noch drauf ;-)

Ach ja ... und die Tonfolge von "Unheimliche Begegnung der 3. Art" kommt sicherlich demnächst auch noch :-D

Gruß MeckPommER

Klingon77
08.10.2007, 22:52
hi,

ich denke, ich darf das so sagen:

"FASZINIEREND" ! \:D/

mit klingonischem Gruß,

Klingon77

PS:
Wie wäre es mit dem 2001-Thema: "Also sprach Zarathustra"?
Oder ist es zu lang?

Otti20vt
10.10.2007, 12:52
echt Stark!!!!!!!! =P~

MeckPommER
10.10.2007, 13:25
@klingon77,

das 2001-Thema ist ein weeeenig länger als 5 Sekunden ;-)

Aber ich arbeite momentan auch daran, auf der SD-Card normale WAV-Dateien ablegen zu können und die dann abspielbar zu machen. Flaschenhals der ganzen Sache wird aber wahrscheinlich Marvins Datenbus über den die ganze Kommunikation der einzelnen Module läuft.
11KB/Sek lesen von der SD-Karte, die 11KB vom Mastercontroller abrufen und weiterleiten aufs Sound-Modul ... ich glaube, dafür muss ich noch ein wenig Hirnschmalz in die Protokolle investieren. Aber man tüftelt ja gern :)

Von der Wichtigkeit her stehen aber nach wie vor Servos an oberster Stelle. Marvin kann mehr und mehr, aber das Gehen sieht bei zunehmendem Gewicht immer mehr nach Dauergrätsche aus und ich habe wenig Lust, die Beine wieder zu verkürzen :-(

Klingon77
10.10.2007, 16:53
hi,

wie wäre es, wenn Du ein separates "Voice-Modul" verwendest?

Die lassen sich einfach digital ansteuern und Du kannst verschiedene Sound´s ablegen.

Habe ich mal mit meinem Waschbecken so gemacht. Es wahr wohl Deutschlands einziges Waschbecken, daß mit dem Benutzer gesprochen hat.

Gruß, Klingon77

MeckPommER
21.01.2008, 12:42
Holla, ich war ja lange nicht mehr da *schäm*. Hier mal kurz nachgereicht zwei Neuerungen von Marvin :)

- Ich habe mich an die Tower Pro MG-995 Servos gewagt und längere Beine (mit Gegenlager) gebaut.
- Marvin hat an der Frontseite eine Stereo-Kamera (aus zwei Game Boy Kameras)

Gruß MeckPommER

HannoHupmann
21.01.2008, 13:11
Hi MeckPommER die Servos sehen fast ein bischen besser als die HITEC HS-475HB aus. Wie Stabil ist dein System jetzt geworden. Also um wieviel mm oder cm kannst du ein Bein an der Spitze vor und zurück bewegen bei festgehaltenem Hüftgelenk. Durch meine gebogenen Beine komm ich da leider auf sehr unschöne Werte, bzw. fürchte ich, dass es einfach an der Konstruktion liegt. Die Kameras sind super ich hab ja bei meinem auch eine dran, nur fürchte ich, dass mein Roboter zuviel wackelt um damit vernünftig messen zu können wärend dem laufen. Alternativ könnte man stehen bleiben, kucken, laufen usw.

Aber sonst schon mal gut. Hast du schon nen vernünftigen Algo geschrieben um dich im Raum zu bewegen, sprich laufen, seitwärts, rückwärts, vorwärts, drehen etc.

MeckPommER
21.01.2008, 14:44
Hi HannoHupmann,

genau gemessen habe ich es noch nicht, aber es ist sehr stabil (und schwer - 3mm Alu). Ich hab noch keine Servokalibrierung gemacht, danach wird es noch stabiler und ich mache nen Video.

Wie funktioniert bei dir eigentlich eine Servokalibrierung? Bei mir geht das wie folgt:
Aus den Berechnungen für die Beine kommen stets Werte für Winkel heraus im Bereich -pi/2 bis pi/2 die auf eine Servostellung umgerechnet werden müssen.
In der Kalibrierung kann ich die Servos einzeln jeweils auf drei bestimmte Punkte anfahren und einstellen (-45°,0,+45°) worauf sich der Beincontroller die Werte im EEProm abspeichert. Mit diesen drei Angaben werden nun alle anderen Servopositionen interpoliert.
Das haut ganz gut hin.

Der Algo zum Laufen ist immernoch der selbige wie vorher. Ich musste nur die Werte für die Beinlängen korrigieren, das war alles. Bei der Montage lief Marvin sogar korrekt mit 3 kurzen und drei langen Beinen. Das sah heftigst blöd aus ^^
Ich glaube auch das in der Bewegung die Kameras nicht zu benutzen sind, dafür sind die einfach nicht schnell/lichtempfindlich genug. Aber ich bin schonmal froh, das die überhaupt funktionieren - bei dem Preis :)

Die Servos haben aber einen bedeutenden Nachteil gegenüber den HITEC: der Stromhunger. Bei 12 MG-995 sind meine Akkus (30A Hochstrom-Akkus von GP) schon am Ende. Ich muss bei Marvin jetzt erstmal die Stromversorgung zu den Servos erneuern und für die Menge "Saft" auslegen. Dickere Leitungen und nen Berg Kondensatoren ;-)

LiPos würde ich ungerne nehmen, da ich ja auch noch Servos für Augen, Hüften und US-Sensor in Betrieb habe, die keine 7,4-8,4V vertragen.

HannoHupmann
21.01.2008, 18:29
@Marvin, mach ne doppelt Stromversorgnung, hab ich bei meinem jetzt auch. Auf der einen Seite die 5V Logic und die 8,4V für die Servos. Wobei ich auch ein paar Servos habe die bei 5V nur laufen. Aber zwei verschiedene Akkus. Damit verhindert man, dass Servos die Logikspannung ärgern können. Achja wenn du RC-LiPos nimmst dann können die locker 50A Spitze vertragen soviel zieht ein RC Auto auch beim Anfahren. Bei mir ist kein einziger Kondensator drin und es funktioniert gut :-)

Kalibriert hab ich meine Servos nur ein und das manuell, die Werte passen jetzt alle da hab ich keine Probleme. Leider ist meine Konstruktion etwas zu windig wie es scheint. Außerdem haben die Hitec Dinger nur ein Plastikservohorn damit lässt sich leider nix präzises bauen.

Würde gerne noch ein paar Details von deiner Gegenlagern und Beinen sehen. Damit ich kucken kann warum das bei mir so mies ist (mies bedeutet mies in meinen Parametern).

Wegen der Kamera bin ich die ganze Zeit am überlegen ob ich die überhaupt drauf lasse, aber irgendwas muss der Hexa ja eigentlich noch tun, nachdem er schon laufen kann.

MeckPommER
22.01.2008, 09:13
@HannoHupmann ... so intelligent ist Marvon noch nicht, das du ihn direkt ansprechen könntest, aber ich arbeite daran ;-)

Eine doppelte Stronversorgung habe ich schon. 2 parallele 9V Blockakkus über nen Spannungswandler -> 5V für die Elektronik, wobei die 9V auch für den US-Sender gebraucht werden, und die Hochstromakkus für die Servos.
Ich möchte aber nicht die 6 Hüftservos, 4 KopfServos und den US-Servo an den Spannungswandler hängen, und eine dritte Spannungsquelle würde ich gerne vermeiden, da sonst Marvin irgendwann nurnoch aus Akkus besteht ;-)
Die nötige Steife der Konstruktion habe ich auch unterschätzt. Aber sie ist ein Grund, warum ich von dem ganzen Kunststoff weg bin. Da hat es zwar in den Beinen und im Torso auch hier und da nur einen Millimeter gegeben um den sich das Ganze bog, aber das reichte schon aus, alles schwammig werden zu lassen.
Die Gegenlager sind ganz einfach Hohlnieten die durch einen Plastikaufsatz ragen, der auf die Servorückseiten geklebt ist. Das hält bis jetzt recht gut, da die Gegenplatte diese Plastikteile zusätzlich zum klebenden Spiegelband festhält.
Ein etwas wackeliger Gang kommt auch dadurch zustande, das die Beine nicht absolut korrekt kalibriert sind und leicht unterschiedliche Bodenhöhen anfahren. Damit es beim Hochheben und Absetzen der Beine nicht wackelt, sollte das schon auf den Millimeter stimmen. Hab auch gemerkt das das immer schwieriger wird, je länger die Beine sind :-/

Die Kameras werde ich drauf lassen und neben einer Standaufnahme auf jeden Fall einen Überwachungsmodus programmieren, bei dem von jeder Kamera nur ein 16*16 Pixel großes Bild aufgenommen und gespeichert wird um Bewegungen wenigstens grob erkennen zu können. 256 Bytes pro Bild kann man ja wenigstens noch im RAM verwurschteln.

HannoHupmann
22.01.2008, 13:56
@MeckPommER Hehe nun ja so weit muss es nicht gehen, mit Ansprechen ist natürlich die Softwareseite gemeint.

Mhm ich würde dann einen ordentlichen 9V Block nehmen und die US und Logic damit speisen und mit dem anderen Akku alle Servos soweit sie nicht auch bei 5V laufen.
So hab ich es bei meinem gelöst. Damit sind die ganzen Beinservos vom Rest weitgehend entkoppelt.

Bei mir ist es leider auch ziemlich schwammig, aber das meiste machen die Plastikservohörner aus und an denen kann ich nix mehr ändern. Ich hab meine Hohlnieten einfach durch die Unterseite des Servos gesteckt (Loch rein durchstecken einkleben). Hält ziemlich gut und ist auch genau genug.

MeckPommER
22.01.2008, 14:25
@HannoHupmann: Also Plastikservohörner bzw. -scheiben nutze ich auch, aber die machen sich bei mir nicht negativ bemerkbar. Das sitzt trotzdem alles schön fest. Die Servoscheiben sind bei mir mit jeweils 4 M2-Schrauben befestigt.
Vielleicht hast du mich nicht richtig verstanden, aber ich nutze bereits 2 verschiedene Spannungsquellen. Wenn ich nun einen "dickeren" 9V-Block nehme und die 12 MG-995 über einen LiPo-Akku laufen lasse, dann habe ich immernoch 11 Servos, die über Spannungswandler auf den 9V sitzen müssten und das gibt nen Haufen Spannungswandler und Wärmeprobleme und wieder Störungen auf der 5V-Schiene.

Am einfachsten wäre sicherlich, diese 11 Servos auch noch mit 8,4V-festen Servos zu bestücken, um durchweg LiPos verwenden zu können, aber das haut wieder ordentlich in die Kasse *knirsch*

Derzeit lege ich erstmal dicke Leitungen und verstärke die Leiterbahnen, kurzum: ich mache die ganze Stromgeschichte etwas niederohmiger. Da ist auch noch der eine oder andere Schalter/Buchse, der wegfallen kann.
Ich denke mal, es ist derzeit noch nicht so optimal, wenn durch nen kleines Drähtchen 6V und z.B. 8A fliessen. Zudem kommen auch noch doppelte Steckkontakte für die Module ...

Es ist noch einiges zu optimieren, vor Marvins erster Tango-Stunde ;-)
Aber so ist das mit Servos und der ganzen Planung ... wenn man etwas macht, um ein Problem zu lösen, dann ergeben sich daraus wieder neue Probleme ...

Ich wollte meine Servos nicht anbohren, weil ich ein wenig allergisch dagegen bin, etwas zu tun, was die Wiederverwendbarkeit einschränken könnte. Eleganter und von der Optik ist es aber sicherlich besser als meine Lösung.
Vielleicht beklebe ich später mal den ganzen Bot mit GFK-Folie ^^

Aber momentan bin ich auch schon wieder am überlegen, wie ich den Rumpf noch steifer bekomme. Momentan ist das ja so eine Art Hohlrahmen der nicht sonderlich verwindungssteif ist :-/
Mir schwebt da eine solidere Konstruktion vor, aber dafür müßte ich bei der Elektronik noch einiges an Platz sparen, was nicht so einfach ist, da ich ja modular weiterarbeiten möchte *grübel*

Na ja, ein Jahr arbeite ich nun an Marvin, ich denke und hoffe, das da noch viele Jahre kommen :) Das Projekt nähert sich dann seinem Ende, wenn Marvin sich hier selber anmeldet udn eigene Beiträge schreibt ^^

dehnelement
27.01.2008, 15:10
Hallo MeckPommER,
Es begeistert mich wie man mit wenig Werzeug so ein tolles Teil auf die 6 Beine Stellen kann. Das gibt mir den Mut mich auch einmal mit so einem Gerät zu beschäftigen. Den modularen Aufbau finde ich auch genial. Aber erst wird mal alles ein wenig durchdacht. Auf deiner Hompage schreibst du bei "Marvins interner Datenverkehr" dass du zwei Busse verwendest ( je 8 Bit breit).Das verstehe ich nicht. Benutzt du nicht TWI? Braucht der nicht nur 3 Leitungen?

MeckPommER
27.01.2008, 15:36
Hallo dehnelement,

ich benutze kein TWI, sondern zwei komplette Ports der Controller für den Datenverkehr. So kann ich mit kleinen LEDs sehen, was sich an Kommunikation auf den Leitungen tummelt, wenn plötzlich mal nichts mehr geht und nachschauen, welches Modul, grade was senden wollte.

Ferner ist die Kommunikation über die normalen Ports noch ein wenig schneller als TWI und ich benötige dafür keine Interrupts.

TWI hat sicherlich auch seine Vorzüge, aber ich habe es halt so "per Hand" gestrickt :-)

sloti
27.01.2008, 21:31
Ich hätte auch eher zum I²C Bus tendiert. Der kommt ja mit nur 2 Leitungen aus und soweit ich weiß kann man komplette register zum lesen und schreiben bereitstellen. Hast du schonmal was genaueres über deine Kommunikationstechnik geschrieben. Auf deiner HP hab ich mir alles dazu durchgelesen und versteh auch noch nicht genau wie du das hinbekommst. Kannste das vielleicht noch etwas genauer drauf eingehen oder ist das "Betreibs geheimnis" ;) . Danke schonmal in voraus.

mfg
Erik

MeckPommER
27.01.2008, 21:36
Betriebsgeheimnis ist es sicherlich nicht, aber doch so komplex, das ich dafor zurückschrecke, das alles aufzuschreiben ;-)
Bei Gelegenheit werde ich das alles noch ein wenig ausführlicher dokumentieren!

sloti
27.01.2008, 21:38
Ok das wär nett.

dehnelement
28.01.2008, 09:53
Hallo MeckPommER,
danke für die schnelle Antwort. Also ist der Masterport auf Ausgabe und die SLAVES auf Eingang eingestellt und schauen dann immer mal nach ob etwas für sie auf dem Bus anliegt? Für dir Richtung MASTER-SLAVES ( 1 MASTER mehrere SLAVES ) ist das verstanden, aber umgekehrt liegen die SLAVE-Ausgänge doch alle paralell auf Ausgang am gleiche Bus und das würde doch Huddel geben, oder sorgst du dafür das nur der antwortende SLAVE sein Port kurz auf Ausgang schaltet dann wieder auf Eingang?
Nochmal, vielen Dank für die Mühe.

MeckPommER
30.01.2008, 12:56
Hallo dehnelement,

wenn alle Slave-Ausgänge direkt parallel an den Mastereingang gehen würden, dann gäbe es - da hast du Recht - im Falle eines Signals von einem Slave sofort einen prima Kurzschluss!
Um das zu vermeiden befinden sich an den Ausgangsports der Slaves Dioden.

dehnelement
30.01.2008, 21:43
Hallo MeckPommER,
an diese Möglichkeit habe ich nicht gedacht, hört sich gut an.Werde also das Layout noch um die 8 Diode erweitern müssen.
mfg
Dehnelement

MeckPommER
15.04.2008, 09:16
Hier ein neues, kleines Video von Marvin. Die Kinder sehen den Bot eher als normales Haustier an ^^

http://www.youtube.com/watch?v=etgMZie0jEw

Ich wollte ja mal so ein richtig schönes, erklärendes Video machen ... aber irgendwie fehlt es dafür an Zeit :-/

Und so ganz nebenbei drängelt sich auch so langsam ein kompletter Neubau von Marvin auf. Er wiegt mittlerweile mehr als 4,5kg und das bringt Probleme mit sich. Er müßte steifer sein, was wieder Gewicht bedeutet, was dann wieder mehr Energie schluckt wobei es dann an den Beinen/Hebeln kritisch wird.
Ich warte aber erstmal auf die XMegas ... und dann gibts neue Platinen komplett in SMD. Mir gruselt es nur schon davor, Platinen selber zu machen =:-|

Gruß MeckPommER

HannoHupmann
15.04.2008, 09:38
@MeckPommER lass dir die Platinen doch ätzen. Es gibt genügend hier im Forum die, die Möglichkeit haben Platinen herzustellen. Die meisten sehen sogar sehr gut aus oder sind von industriequalität. Ich hab bei mir auch nicht damit angefangen Platinen selber zu kochen sondern einmal lieb im Forum gefragt.

Wow die erste Gerneration die direkt mit Robotern aufwächst. Marvin wirkt gleich nochmal ein Stück größer wenn die Kleinen daneben stehen :-). Eins ist sicher, deine Mädels werden wohl nie Angst vor Technik haben und sich vielleicht sogar dafür begeistern lassen (musst sie halt irgendwann mitbasteln lassen, dann wird das schon :-) ).

MeckPommER
15.04.2008, 10:06
Bei dem Wort "mitbasteln" stellen sich mir die Hackenhaare hoch, das würden die am liebsten jetzt schon machen! :-D

Was die Platinen angeht, so würde es gegen meine "Bastlerehre" gehen, die Platinen von jemand anderem anfertigen zu lassen ;-)
Ich habe von der Platinenerstellung absolut keine Ahnung, stelle mir aber vor, das es ein Haufen Arbeit ist, 16 unterschiedliche Platinen selber zu machen, bzw. arg teuer wird, diese 16 Einzelstücke in Auftrag zu geben.

Öhm ... platinentechnisch könnte man sicherlich einige so modifizieren, das man sie je nach Bestückung für unterschiedliche Module verwendet, aber so 10 verschiedene Layouts wären es bestimmt :-/

Habe mir die Tage schonmal für 15 Minuten Eagle angeschaut und mich dumm und dösig nach Bauteilen gesucht, z.B. 644-20 in SMD.

HannoHupmann
15.04.2008, 10:44
@MeckPommER ich kann dich beruhigen, in EAGLE muss man sich erst mal einarbeiten, danach ist es auch nicht komplizierter als Programmieren. Wenn man mal alle Bauteile gefunden hat weis man wies geht.

Ne nicht in Auftrag geben, Layout für alle Platinen machen und dann die an einen Bastler hier im Forum schicken. Der ätzt die dann einfach mit und meisten zahlt man nur das Material. Ist vermutlich billiger als sich selbst in die Platinenfertigung einzuarbeiten.

MeckPommER
19.05.2008, 09:45
Marvin geht nun in die nächste Runde (Version 3). Einige der Einzelmodule werden nun auf größeren Modulen zusammengefasst.

Die komplette Servosteuerung kommt auf ein Modul.
Das Mastermodul bekommt die RTC, LED, IR, RFM12 und LCD-Ansteuerung onboard
Das Speichermodul beinhaltet nun 512KB SRAM, SD-Karte und Soundausgabe

Die Atmega128 liessen sich dank günstiger Adapterplatinen (von tme *g*) recht einfach auf Lochrasterplatine bringen.

Klingon77
19.05.2008, 14:53
hi,

wie immer sehr sauber gearbeitet und durchgeplant.
Bin schlichtweg fasziniert!

Gibt es nochmal ein Video; evtl. mit dem Soundmodul / Sprachausgabe?


Weiß nicht ob ich schon mal fragte:
Gibt es (schon) eine konkrete Anwendung für Marvin?

liebe Grüße,

Klingon77 (der jeden Tag nach einem neuen Post von Dir schaut)

MeckPommER
19.05.2008, 15:52
Hi,

also dieses Lob geht ja runter wie Öl :-D

Durchgeplant sind die Module nur dahingehend, welche Funktionen mir am sinnvollsten zusammenzulegen seien, um den Datenverkehr zwischen den Modulen zu minimieren.

Die Beine riefen bisher zuviel Datenverkehr hervor, da der Master die Aktuelle Botposition&Winkel an alle 3 (4 inkl. Kopf) Beinmodule sendete. Diese sendeten die Beinposition zurück an den Master, damit dieser dann entscheiden konnte, ob und welches als nächstes bewegt wird, und das 50 mal pro Sekunde. Deshalb nun ein Modul, welches alle Beine steuern soll. Das verringert die Datenmenge enorm, da nun die Beine selber entscheiden, welches am besten nun als nächstes bewegt wird und dies nicht mehr vom Master erledigt werden muss.

Die Zusammenlegung von Speicher (SRAM & SD) und Sound verringert auch den Datenverkehr beträchtlich. Abzuspielende Samples brauchen nun nichtmehr über den Bus übertragen zu werden, sondern werden direkt auf dem Modul verarbeitet. Sprachdaten waren ja eh schon als Phoneme gespeichert und werden nur vom Controller zusammengemischt.
Eine Zusammenlegung von SRAM und SD-Card war auch überfällig, da nun SRAM-Inhalte schnell gesichert werden können, ohne das der Bot ruht, weil der Datenbus von den 512KB verstopft ist.

Das Mastermodul habe ich um Funktionen erweitert, die vorher nicht mit auf das Mastermodul passten, weil es mir an I/O-Leitungen am 644 mangelte. Die Echtzeituhr braucht ja nur 2-3 Leitungen, dafür muss man kein extra Modul haben, wie ich es vorher hatte. Ebenso erfolgt die Spannungs- Licht- und Temperaturüberwachung nun vom Master und auch die LED-Steuerung per PWM. Ein IR-Empfänger sitzt ebenfalls auf dem Master. Zuerst hatte ich bedenken, das die Überwachung des IR-Sensors zuviel Rechenzeit erfordern würde, aber eine Assembler-Routine per IRQ macht sich nicht groß bemerkbar.

Die Module selber sind eher Arbeiten aus dem Bauch. Ich platziere die IC-Fassungen und starre dann erstmal 10 Minuten etwas geistesabwesend auf die Platine und stelle mir den ganzen Kabelsalat vor und wie ich den überschaubar halte.

Für das Soundmodul mit Sprachausgabe mache ich nochmal ein extra Video, wenn die Module fertig sind. Ich bastel momentan einen besseren Verstärker ... schliesslich soll Marvin sich auch mal verbal durchsetzen können, wenn meine Kinder ihn vollschnattern ^^

Eine konkrete Anwendung für Marvin? Öhm ... jein :-)

Seine Hauptaufgabe ist, mir bei der Entwicklung Freude zu bereiten. Er wird wohl auch nie in dem Sinne "fertig" sein, höchstens dann, wenn er mir mitteilt, das ihm Ideen für Hardwareaktualisierungen an seinem Erbauer gekommen sind :)
Was er - auf dem Wege dahin - irgendwann mal können soll, ist sich im Haus zurechtzufinden, Treppen steigen, den Kindern eine Gutenachtgeschichte vortragen, alle Aktivitäten mitloggen, über Funk mit PCs kommunizieren, etc.

Gruß MeckPommER

Ach ja ... ich habe mir nun ein hochmodernes Messgerät zugelegt. Ein Oszilloskop Typ EO211 aus dem Volkseigenen Betrieb (VEB) Radio und Fernsehen Karl-Marx-Stadt :-)

ikarus_177
19.05.2008, 15:56
Hi,

auch ich möchte dir meinen Respekt aussprechen...
Du hast mich mit deinem Projekt inspiriert, auch etwas in dieser Richtung zu machen...
Dann hab ich in den Sommerferien wenigstens was zu tun^^


eine Frage: wie gut hält die Platine in der Buchsenleiste, ich meine, ob sie sich bei den "ruckartigen" auf - und - ab - Bewegungen des Bots lockert?

Ist das mit dem vielen Datenverkehr schlecht? Ich meine, wird der Bus überhaupt ganz ausgelastet, soweit ich weiß, sind die Übertragungsraten beim I²C-Bus auf 3,4 MBit/s angehoben worden.

Viele Grüße
ikarus_177

Baunix
19.05.2008, 16:02
Hi

Marvin ist echt toll habe mir gerade das video angeschaut

Wie hast du es hin bekommen das der Bot auf das schnippsen hört und dann in die richtung sein kopf bewegt ???

MeckPommER
19.05.2008, 16:31
@ikarus_177

die buchsenleisten gibts bei reichelt und co immer in 2 verschiedenen qualitäten (und preisen). für die platinen nehme ich immer die etwas besseren und dann auch nicht nur einreihig sondern zweireihig. das hällt schon ganz gut.
Der viele Datenverkehr ist schlecht, weil ich kein I2C sondern was selbstgestricktes nutze und der Transport der Daten ja nicht alles ist, sondern diese Daten auch noch vor- bzw. nachbereitet werden müssen.

@Baunix

Marvin hat zwei Mikrofone über Vorverstärker an seinen Analogeingängen. Aus der Laufzeitverzögerung kann er somit auf die grobe Richtung schliessen.

ikarus_177
19.05.2008, 16:53
Ok, also ich wollte eigentlich bei meinem Bot für jedes Bein einen Controller verwenden...

ist es rein theoretisch möglich, ein zweites Bussystem nur für die Beine zu installieren, wieder mit einem eigenen Master, der die Befehle des "Hauptmasters", also vorwärts, rechts usw. entgegennimmt und sich danach in dem abgeschlossenen Bus mit den Beincontrollern beschäftigt und die Beine stellt. Das würde den Hauptbus nicht weiter auslasten.

Bloß wie verbindet man die beiden systeme...

Viele Grüße
ikarus_177

Klingon77
19.05.2008, 17:38
...
Seine Hauptaufgabe ist, mir bei der Entwicklung Freude zu bereiten. Er wird wohl auch nie in dem Sinne "fertig" sein, höchstens dann, wenn er mir mitteilt, das ihm Ideen für Hardwareaktualisierungen an seinem Erbauer gekommen sind :)
...
Ein Oszilloskop Typ EO211 aus dem Volkseigenen Betrieb (VEB) Radio und Fernsehen Karl-Marx-Stadt :-)
...


hi,

mal Danke für die ausführliche Erklärung, die sogar ich verstehen kann.

Die geschilderte Aufgabe ist wohl die sinnvollste :idea:


Wenn er anfängt Dich zu verändern...
...erinnere ich an Terminator 1 :-k
Eine Schrottpresse findet sich fast in jeder Stadt.

Freue mich auf das Video!

liebe Grüße,

Klingon77