malthy
07.06.2010, 21:06
Hallo zusammen!
Sechsbeinige Roboter erfreuen sich ja verständlicher Weise einer enormen Beliebtheit. Und auch ich war immer extrem fasziniert von dem Anblick einer solchen laufenden Maschine. Deshalb habe ich mich daran gemacht, selbst einen Hexapoden zu konstruieren. Auch wenn ich das Projekt noch längst nicht als abgeschlossen betrachte, habe ich es vor einigen Tagen immerhin soweit gebracht, dass mein Roboter ordentlich läuft. Deshalb möchte ich diesen Teilerfolg hier mal präsentieren.
Um nicht lange um den heißen Brei herumzureden hier erstmal ein paar Bilder:
http://www.mtahlers.de/images/stories/content/hexa_mechanik/bild%20192_sc.jpg
http://www.mtahlers.de/images/stories/content/hexa_mechanik/bild%20199_sc.jpg
http://www.mtahlers.de/images/stories/content/hexa_mechanik/bild%20210_sc.jpg
Und da -> http://www.youtube.com/watch?v=cV995qrkcao gibt's ein kleines Video von den ersten Lauf- und Drehbewegungen des Roboters.
Wie man schon auf den Bildern erkennen mag, sind einige Aspekte der Konstruktion vielleicht etwas ungewöhnlich. Z. B. habe ich versucht, auf "flächige" tragende Teile zu verzichten und statt dessen wo es ging Aluminiumrohre verwendet - das ist natürlich die Idee eines Skelettes (oder auch nur dessen blasser Abklatsch...). Auf jeden Fall ist somit eine recht stabile und dabei leichte Struktur entstanden.
Ein anderer, vielleicht erwähnenswert Aspekt ist, dass ich die "goldene Regel" aller Hexapodenbauer gebrochen habe, die ja lautet: "niemals Billigservos verwenden" - nun ja, ich hab's doch getan. Allerdings nicht die üblen Teile von Conrad, sondern diese hier -> http://www.servodatabase.com/servo/hextronik/hx5010
Ich kann in dieser Sache natürlich nur ein vorläufiges Urteil abgeben, aber bisher habe ich noch absolut keine Probleme mit diesen Servos gehabt - obwohl ich sie schon ordentlich gequält habe. Ich muss allerdings einräumen, dass ich die Servos mechanisch modifiziert habe, indem ich in die Ausgangsachse eine Schraube eingesetzt habe, die natürlich eine wesentlich bessere Kraftübertragung an die Beine gewährleistet. Zu sehen hier:
http://www.mtahlers.de/images/stories/content/hexa_mechanik/p1000809_.jpg
Die Elektronik sieht auf den ersten Blick natürlich sehr nach "overkill" aus, denn jedes Bein hat seinen eigenen AVR M32 Controller. Ich hab in dieser Sache länger hin- und herüberlegt und fand diese Lösung im Endeffekt am schönsten. Jetzt ist es nämlich so, dass jedes Bein für sich seine eigene inverse Kinematik rechnet. Ein zentraler Controller (der bisher nur improvisiert ist) teilt somit jedem Bein einfach nur mit, welche Position es in Bezug auf die Robotermitte einnehmen soll, dass Bein rechnet dann aus, ob diese Position möglich ist und welche Gelenkstellungen dazu nötig sind. Die ganze Kommunikation findet einfach über I2C statt. Hier ein Bild eines Beincontrollers - jedes Bein verfügt über eine identische Baustufe.
http://www.mtahlers.de/images/stories/content/hexa_mechanik/bild%20180_sc.jpg
Jedes Bein verfügt außerdem über ein wenig Sensorik. Zum einen werden ständig die Servoströme registriert, zum anderen gibt es einen Kraftsensor im Fuß, hier zu sehen:
http://www.mtahlers.de/images/stories/bild%20133_sc.jpg
Damit kann ich den Andruck des Fußes an den Boden messen. Die Sensorik funktioniert technisch zwar einwandfrei, ich verwende die gewonnen Informationen allerdings bisher nicht.
Programmiert habe ich das ganze System in Bascom. Ich muss den Quellcode allerdings noch deutlilch aufräumen, bevor ich ihn veröffentliche. Ich gebe hier Bescheid, wenn es sowiet ist.
Natürlich gäbe es noch ein ganze Menge mehr zu berichten, ich belasse es erstmal hierbei mit dem Hinweis, dass ich natürlich gerne alle Fragen beantworten werde. Außerdem habe ich das Projekt auf meiner niegelnagelneuen Homepage (siehe Signatur) ausführlicher beschrieben, dort gibt es auch noch mehr Fotos. Wer mag, kann sich parallel auch dort nochmal umsehen.
Gruß
Malte
Sechsbeinige Roboter erfreuen sich ja verständlicher Weise einer enormen Beliebtheit. Und auch ich war immer extrem fasziniert von dem Anblick einer solchen laufenden Maschine. Deshalb habe ich mich daran gemacht, selbst einen Hexapoden zu konstruieren. Auch wenn ich das Projekt noch längst nicht als abgeschlossen betrachte, habe ich es vor einigen Tagen immerhin soweit gebracht, dass mein Roboter ordentlich läuft. Deshalb möchte ich diesen Teilerfolg hier mal präsentieren.
Um nicht lange um den heißen Brei herumzureden hier erstmal ein paar Bilder:
http://www.mtahlers.de/images/stories/content/hexa_mechanik/bild%20192_sc.jpg
http://www.mtahlers.de/images/stories/content/hexa_mechanik/bild%20199_sc.jpg
http://www.mtahlers.de/images/stories/content/hexa_mechanik/bild%20210_sc.jpg
Und da -> http://www.youtube.com/watch?v=cV995qrkcao gibt's ein kleines Video von den ersten Lauf- und Drehbewegungen des Roboters.
Wie man schon auf den Bildern erkennen mag, sind einige Aspekte der Konstruktion vielleicht etwas ungewöhnlich. Z. B. habe ich versucht, auf "flächige" tragende Teile zu verzichten und statt dessen wo es ging Aluminiumrohre verwendet - das ist natürlich die Idee eines Skelettes (oder auch nur dessen blasser Abklatsch...). Auf jeden Fall ist somit eine recht stabile und dabei leichte Struktur entstanden.
Ein anderer, vielleicht erwähnenswert Aspekt ist, dass ich die "goldene Regel" aller Hexapodenbauer gebrochen habe, die ja lautet: "niemals Billigservos verwenden" - nun ja, ich hab's doch getan. Allerdings nicht die üblen Teile von Conrad, sondern diese hier -> http://www.servodatabase.com/servo/hextronik/hx5010
Ich kann in dieser Sache natürlich nur ein vorläufiges Urteil abgeben, aber bisher habe ich noch absolut keine Probleme mit diesen Servos gehabt - obwohl ich sie schon ordentlich gequält habe. Ich muss allerdings einräumen, dass ich die Servos mechanisch modifiziert habe, indem ich in die Ausgangsachse eine Schraube eingesetzt habe, die natürlich eine wesentlich bessere Kraftübertragung an die Beine gewährleistet. Zu sehen hier:
http://www.mtahlers.de/images/stories/content/hexa_mechanik/p1000809_.jpg
Die Elektronik sieht auf den ersten Blick natürlich sehr nach "overkill" aus, denn jedes Bein hat seinen eigenen AVR M32 Controller. Ich hab in dieser Sache länger hin- und herüberlegt und fand diese Lösung im Endeffekt am schönsten. Jetzt ist es nämlich so, dass jedes Bein für sich seine eigene inverse Kinematik rechnet. Ein zentraler Controller (der bisher nur improvisiert ist) teilt somit jedem Bein einfach nur mit, welche Position es in Bezug auf die Robotermitte einnehmen soll, dass Bein rechnet dann aus, ob diese Position möglich ist und welche Gelenkstellungen dazu nötig sind. Die ganze Kommunikation findet einfach über I2C statt. Hier ein Bild eines Beincontrollers - jedes Bein verfügt über eine identische Baustufe.
http://www.mtahlers.de/images/stories/content/hexa_mechanik/bild%20180_sc.jpg
Jedes Bein verfügt außerdem über ein wenig Sensorik. Zum einen werden ständig die Servoströme registriert, zum anderen gibt es einen Kraftsensor im Fuß, hier zu sehen:
http://www.mtahlers.de/images/stories/bild%20133_sc.jpg
Damit kann ich den Andruck des Fußes an den Boden messen. Die Sensorik funktioniert technisch zwar einwandfrei, ich verwende die gewonnen Informationen allerdings bisher nicht.
Programmiert habe ich das ganze System in Bascom. Ich muss den Quellcode allerdings noch deutlilch aufräumen, bevor ich ihn veröffentliche. Ich gebe hier Bescheid, wenn es sowiet ist.
Natürlich gäbe es noch ein ganze Menge mehr zu berichten, ich belasse es erstmal hierbei mit dem Hinweis, dass ich natürlich gerne alle Fragen beantworten werde. Außerdem habe ich das Projekt auf meiner niegelnagelneuen Homepage (siehe Signatur) ausführlicher beschrieben, dort gibt es auch noch mehr Fotos. Wer mag, kann sich parallel auch dort nochmal umsehen.
Gruß
Malte