PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CFK Hexabot



MichaF
16.08.2010, 16:39
Hallo zusammen,

nun bin ich ja definitiv nicht der erste, der sich an den Bau eines Sechsbeiners gewagt hat. Das Projekt ist jedoch zwischenzeitlich so weit fortgeschritten, das es für den ein oder anderen durchaus interessant sein könnte. Da es schwer ist ein so umfangreiches Projekt in einem Forenpost zu beschreiben möchte ich mich hier sehr kurz fassen, und lediglich ein paar Bilder vorweg zeigen.

Falls dann weiteres Interesse besteht, so ist auf meiner Homepage ausführlicheres Material einsehbar, inkl. Videos versteht sich :)

http://www.michael-fauth.de/

Über konkrete Fragen, und insbesondere über Verbesserungsvorschläge würde ich mich natürlich sehr freuen.

Nun aber ein kleiner Vorgeschmack:

CAD Zeichnung der Mechanik
http://www.michael-fauth.de/images/stories/Hexabot/hexabot_v03.jpg

Montierte Mechanik
http://www.michael-fauth.de/images/stories/Hexabot/hexabot_mechanik_gesamt.jpg

Steuerplatine für (momentan) 18 Servos, inkl. Strommessung auf jedem Kanal (wobei von dieser Möglichkeit noch kein gebrauch gemacht wird)
http://www.michael-fauth.de/images/stories/Hexabot/servo_board_v2.jpg

Der Stand der Dinge (Mit Display - so aktuell ist nicht mal die Homepage ;) )
http://www.michael-fauth.de/images/stories/Hexabot/hexa_aktuell.jpg

HannoHupmann
16.08.2010, 22:29
Hast du mal geprüft wieviel Spiel deine Beine haben? Würde mich interessieren da ich bei der Konstruktion doch relativ viel querbewegung hatte die ich nur konstruktiv rausbekommen konnte.

MichaF
16.08.2010, 22:43
Spiel in welche Richtung?

Also die Mechanische Konstruktion weist eigentlich kein Spiel auf und ist für das momentane Lebendgewicht von 2,4kg auch mehr als ausreichend verwindungssteif. Einzig die Getriebespiele der Servos, die im übrigen ziemlich schwanken von Servo zu Servo, machen mir hier einen Strich durch die Rechnung. Wobei die Servos das noch etwas verschlimmbessern... Die Nehmerpotis sitzen bei den HS645 direkt am Abtrieb, daher wird zumindest ein Teil des Getriebespiels ausgeregelt.

HannoHupmann
17.08.2010, 12:33
Ich hatte erwartet, dass die Oberschenkel in sich verwunden werden können. Damit auch die Spitze am Fuss in ihrer Lage Spiel hat.

Jacob2
17.08.2010, 15:01
Sieht schön aus!
Mit welchem Programm hast du die CAD Zeichnung gemacht?

MichaF
17.08.2010, 15:51
Danke für die Blumen :)

Das war "TurboCAD 14 Deluxe". Da ich eigentlich nicht so der Mechanikus bin, war das mein erster ernsthafter Kontakt mit der Materie.

Buzzwang
18.08.2010, 22:08
Ist es möglich die Istposition der Gelenke/Servo zurücklesen ? Das ist mir leider nicht ganz klar geworden und die Servo sehen noch ziemlich "unmodifiziert" aus.

Kannst Du was über die Kosten schreiben. Besonderns würde mich die Preise für die 3 Sensoren(Inertial Measure Unit) interessieren.

MichaF
19.08.2010, 09:50
Ist es möglich die Istposition der Gelenke/Servo zurücklesen ? Das ist mir leider nicht ganz klar geworden und die Servo sehen noch ziemlich "unmodifiziert" aus.
Da hast du Recht, sie sind unmodifiziert. Daher ist ein Positionsrückmeldung auch nicht möglich. Mir würde momentan auch kein wirklicher Vorteil einfallen den man durch eine Rückmeldung erhgalten könnte. Ob ein Servo blockiert ist oder nicht lässt sich sehr zuverlässig über seine Stromaufnahme ermitteln. Diese Möglichkeit besteht und funktioniert. Lediglich die IK reagiert noch nicht darauf. Es gibt momentan einfach noch wichtigere Dinge um die ich mich zuerst kümmern möchte. Ganz oben auf dieser Liste stehht die IMU, dicht gefolgt von einer automatische Geländeanpassung mit Hilfe der Schalter an jedem Bein :)



Kannst Du was über die Kosten schreiben. Besonderns würde mich die Preise für die 3 Sensoren(Inertial Measure Unit) interessieren.
Die Kosten. Ja. :D

Mal ein Versuch das zu überschlagen:

- Servos 480€
- Fräsen aller CFK Teile inkl. Material 200€
- Andere kleinteile die ich zur Mechanik zähle (Kugellager, Schrauben, Servohörner, Alu Halbzeuge) 100€
- Das IGEPv2 150€
- Materialkosten der selbstentwickelten Platinen (ohne Prototypen) 100€
- Lipo Akku + Spannungsregler der Servostromversorgung 150€
----------------------------------------------------------------
Summe: 1180€

Ich schätze das dürfte eine ganz gute Näherung sein. Tendenziell eher mehr.

Nur die 3 Sensoren haben mich insgesamt etwa 35€ gekostet.

AXDL345 10€
HMC5843 15€
LPR530AL 10€

Die genauen Preise habe ich gerade nicht mehr im Kopf. Der Schaltplan für die 3 ist so gut wie fertig. Wenn nichts dazwischen kommt, kann ich nächste Woche von den ersten Ergebnisen (bzw. den ersten Misserfolgen) berichten.

filth
19.08.2010, 12:56
Hallo,

das IGEPv2 board hat mein Interesse geweckt - mir ist aus der Beschreibung nicht ganz klar geworden, welche PinOuts das hat, also um beispielsweise die Servos anzuschließen.
Wenn auf dem Board Ubuntu läuft, sollte es doch auch möglich sein in Java zu programmieren, oder?

Danke!

Buzzwang
19.08.2010, 13:15
danke, für die Antwort.

>> IMU
Gyros hatte ich auch mal gesucht. Das letzte mal als ich welche gesucht habe, konnte ich nur 3-Achs-Gyro-Module für um die 200€ finden.
Gut zu wissen, dass die jetzt auch erschwinglich sind.

>>wirklicher Vorteil einfallen den man durch eine Positionsrückmeldung
1. Ich wollte den Bot im ausgeschalteten Zustand auf den Boden legen. Nach dem Einschalten sollte dieser dann selbständig aufstehen.
Das geht nur mit Positionsrückmeldung

2. Wenn Du die Servos beschleunigst bzw abbremst bekommst Du ebenfalls einen Leistungsanstieg. Dies vom einem blockierten Servo zu
unterscheiden, wird nicht leicht sein.

Info: www.openservo.com


>>automatische Geländeanpassung
Daran habe ich mich auch schon probiert. Bei mir hieß das aber Gleichgewichtsanpassung :). Dazu hatte ich auch nur Taster wie Du.
Musste dann aber aufgeben, weil mit Taster alleine hatte das bei mir nicht geklappt.
Gründe:
1. Eine Regelung mittels Taster ist schwierig. Das Rückgabewert ist 0% oder 100%, d.h. dein Regler macht garnicht oder 100%. Das schwingt sich dann auf.
2. Mech. Taster: Wenn die Kraft in der Nähe des Umschaltpunktes ist, dann Toggelt der Taster. Dann freut sich dein Regler ;). Eine Ebene ist stabil mit 3 Punkten, d.h. bei 6 Beinen haben 3 Beine "mehr" Kontakt, die anderen Beine "weniger". Dann kannst Du davon ausgehen das 1-2 Taster ins Toggeln kommen. Etwas reduzieren kann man dass durch die Verwendung von Dämpfern oder Tastern mit Hysterse.

MichaF
19.08.2010, 13:19
Mit dem IGEPv2 alleine kann man eher keine Servos ansteuern. Im Prinzip handelt es sich dabei um eine Plattform ähnlich der in einem modernen Handy. Der Cortex A8, der hier werkelt ist wie die Bezeichnung A schon sagt, ein Aplikationsprozessor, also für den Betrieb mit Betriebssystem vorgesehen. Harte Echtzeitanforderungen wie sie eine Servoansteuerng stellt, kann man damit nicht ohne weiteres erfüllen.

Daher habe ich dem Board eine kleine Platine zur Seite gestellt, welche von RS232 auf CAN wandelt (mit eigenem Protokoll etc.). Am CAN hängt dan wiederum eine eigene Platine die such um die Erzeugung der Servosignale kümmert.

Java entwicklung sollte möglich sein, sofern geeignete Compiler zur Verfügung stehen. Es handelt sich nicht um eine x86 Platform, auch wenn die Leistung durchaus mit einem Atom o.ä. vergleichbar ist. Ein spezieller Compiler ist daher Pflicht.

Bei weiteren Fragen zu dem Teil helfe ich gerne weiter, die Community ist noch sehr klein. Man muss sich viele Dinge selber zusammen suchen. Das kann viel Zeit und Geduld kosten :)

Noch was zum Thema Ubuntu: Ein richtiges, aktuelles Ubuntu (also inkl. Gnome) würde ich dem Board lieber nicht antun wollen. Bei mir läuft ein minimalistisches "Ubuntu" 8.04 mit LXDE Desktop.

filth
19.08.2010, 13:24
Hallo Micha,

danke für Deine Antwort.
Wie genau muss man sich das vorstellen? Werden die Berechnungen für die Servos auf dem IGEPv2 durchgeführt und dann an die Steuerplatine weitergegeben? Wie geschieht das? Über RS232?

Ist das WiFi-Modul nutzbar?

Welche Compiler gibt es denn für das Board? C? C++?

Danke Dir vielmals für die Infos!

MichaF
19.08.2010, 13:40
>> IMU
Gyros hatte ich auch mal gesucht. Das letzte mal als ich welche gesucht habe, konnte ich nur 3-Achs-Gyro-Module für um die 200€ finden.
Gut zu wissen, dass die jetzt auch erschwinglich sind.

Mein gyro hat nur 2 Achsen. Die 3. werde ich hoffentlich über den Kompass zuverlässig stabilisieren könne. Bezogen habe ich die Sensoren übrigens über http://www.watterott.com/


>>wirklicher Vorteil einfallen den man durch eine Positionsrückmeldung
1. Ich wollte den Bot im ausgeschalteten Zustand auf den Boden legen. Nach dem Einschalten sollte dieser dann selbständig aufstehen.
Das geht nur mit Positionsrückmeldung

Da hast Du natürlich Recht :)


2. Wenn Du die Servos beschleunigst bzw abbremst bekommst Du ebenfalls einen Leistungsanstieg. Dies vom einem blockierten Servo zu
unterscheiden, wird nicht leicht sein.

Wie gesagt, ich hab das noch nicht vollständig getestet. Aber in Experimenten konnte sehr zuverlässig feststellen ob ein Servo tatsächlich blockiert, oder nur unter normaler Last anläuft bzw. gegenregelt. Die Ansprechschwelle war gut anpassbar. Durch Tiefpassfilterung in Hardware werden die sehr kurzen Stromstöße beim Anlaufen sowieso so gut wie ignoriert. Eine Ansprechzeit von ~100ms sollte sich denke ich erreichen lassen. Nicht so schnell wie die Winkelrückmeldung, aber hoffentlich ausreichend. Möglicherweise stelle ich mir das aber auch nur mal wieder zu einfach vor ;)



>>automatische Geländeanpassung
Daran habe ich mich auch schon probiert. Bei mir hieß das aber Gleichgewichtsanpassung :). Dazu hatte ich auch nur Taster wie Du.
Musste dann aber aufgeben, weil mit Taster alleine hatte das bei mir nicht geklappt.
Gründe:
1. Eine Regelung mittels Taster ist schwierig. Das Rückgabewert ist 0% oder 100%, d.h. dein Regler macht garnicht oder 100%. Das schwingt sich dann auf.

Ich habe nicht vor eine echte Regelung einzusetzen. Meine Idee geht eher in die Richtung:

- Bein bewegt sich nach oben (bei mir Z-Richtung) und wird in X- und Y- Richtung über dem neuen Bodenpunkt ausgerichtet.

- Anschließen bewege ich dieses Bein so lange in Richtung Boden, bis die Taster anschlagen -> ich habe Bodenkontakt.

- Somit kenne ich auch wieder die vollständigen Koordinaten an denen ein Bein den Boden berührt und kann damit weiter rechnen.


2. Mech. Taster: Wenn die Kraft in der Nähe des Umschaltpunktes ist, dann Toggelt der Taster. Dann freut sich dein Regler ;). Eine Ebene ist stabil mit 3 Punkten, d.h. bei 6 Beinen haben 3 Beine "mehr" Kontakt, die anderen Beine "weniger". Dann kannst Du davon ausgehen das 1-2 Taster ins Toggeln kommen. Etwas reduzieren kann man dass durch die Verwendung von Dämpfern oder Tastern mit Hysterse.

Die bisherigen Tests zeigten, das ein Prellen eigentlich nur dann vorkommt, wenn ich das Bein gerade anhebe oder absenke. In den "endgültigen" Positionen habe ich das bislang nicht beobachtet.

Verstehe ich das richtig... Bei deinem System hat der Bot auch das Gelände ausgeglichen, wenn es sich "unter ihm" bewegt hätte, also jederzeit, und nicht wie bei mir nur bei jedem Schritt? Gibt es dazu Videos oder ander Dokumentation?

MichaF
19.08.2010, 14:02
danke für Deine Antwort.
Gerne ;)

Wie genau muss man sich das vorstellen? Werden die Berechnungen für die Servos auf dem IGEPv2 durchgeführt und dann an die Steuerplatine weitergegeben?
Genau.

Wie geschieht das? Über RS232?
Jain. Alle Module des Bots kommunizieren über CAN. Das IGEPv2 hat leider keinen CAN Controller. Daher haben ich einen Adapter gebastelt, der mir eine Umsetzung zwischen CAN <-> RS232 macht. Somit kann auch das IGEP über CAN kommunizieren.

Ist das WiFi-Modul nutzbar?
Für den WLAN Teil kann ich das eindeutig bestätigen. Es handelt sich um ein Marvell SD8686, die Treiber sind frei verfügbar und simpel zu integrieren. Bluetooth habe ich noch nicht getestet.

Welche Compiler gibt es denn für das Board? C? C++?
Es muss nicht direkt ein Compiler für das Board sein, für ARM sollte eigentlich ausreichen. Es gibt auch ein fertige VM von ISEE (Hersteller des Boards) mit der man Software "Cross kompilieren" kann. Verfügbar unter http://www.igep-platform.com nach Registrierung. Genutzt habe ich das noch nicht. Ich habe mir direkt auf dem Board CodeBlocks installiert, kompiliert wird mit dem GCC. Ich habe bisher alles in C geschrieben.

Allerdings lässt sich dadurch nur der Cortex A8 des Boards nutzen. Es steht auch noch ein leistungsfähiger DSP und ein Grafikkern zur Verfügung. Damit habe ich mich aber noch nicht beschäftigt, es gibt aber auch dafür Toolchains.

Buzzwang
19.08.2010, 23:03
Hallo, den Bot habe ich schon vor einigen Jahren in die Kiste verfrachet. Seit dem benutzte ich nur noch die Simu. Aber da habe ich auch schon lange nichts mehr dran gemacht. Deshalb weiß ich auch nicht welchen Stand die hat.

Wie man Videos aufnimmt, habe ich mich auch noch nicht darum gekümmert.

Auf dem 1. Bild(Lama10) siehst Du das von mir beschriebene Problem. Alle 6 Beine am Boden aber eins "hängt" in der Luft.
(Rote Beine haben Bodenkontakt)

Auf dem 2. Bild(Lama20) siehst Du ein Szenario für den Geländetest.

Wie man auf den Bilder sieht, benutze ich ein Tutorial von der Newton Game Engine. Diese habe ich dann lediglich auf die Proportionen meines Bot angepasst. Kann man kostenlos holen. Dann den Laufalgo rumgebastelt.


http://www.youtube.com/watch?v=FUjLx5DAb5k&feature=player_embedded

http://newtondynamics.com

Ich benutze noch die 1.53. In Zwischenzeit gibt es eine neuere Version