PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hexabot "sphaera"



Sokapex
25.05.2013, 00:17
Hallo!

Ich bin zwahr noch recht neu in dieser Community, ich habe mich aber schon ein wenig eingelesen. Ich bin CNC Techniker und habe vor einiger Zeit mit dem programmieren in C begonnen. Da ich mir immer gerne Ziele setze die ich mir dann langsam erarbeiten kann, habe ich mich für einen Hexabot entschieden.

So, nun zu meinem Projekt.
Mit der Mechanik werde ich warscheinlich eher weniger Probleme haben. Wie hier im Forum empfolen, habe ich erstmal ein Bein mit kleinen billigen Servos aufgebaut um das programmieren zu üben. Dieser aufbau entspricht dem Zielaufbau in verkleinerter Form. Warscheinlich werde ich diesen Bot auch ganz aufbauen um das programmierte direkt testen zu können.
Hier mal ein paar Bilder von diesem ersten Aufbau.

http://www.imgbox.de/users/public/thumbnails/y3Pq0eB9oP_t.gif (http://www.imgbox.de/show/img/y3Pq0eB9oP.JPG)
Im eingeklapptten Zustand.

http://www.imgbox.de/users/public/thumbnails/0sL05jdOhL_t.gif (http://www.imgbox.de/show/img/0sL05jdOhL.JPG)
Im ausgeklappten Zustand.

http://www.imgbox.de/users/public/thumbnails/2sxgAutrcz_t.gif (http://www.imgbox.de/show/img/2sxgAutrcz.JPG)
Das Gelenk. Das Teil war recht knackig in der Herstellung... 8Teile, die gleichzeitig geklebt werden müssen... XP

Die gesamten Elemente sind aus PMMA gefertigt. Leider sieht man sie deshalb etwas schlecht. XD
Der Bot soll später im Standbyzustand wie eine Kugel aussehen die sich dann in sechs Segmente teilt.

Wegen des Microcontrollers bin ich noch am Überlegen, und da würde ich auch gerne jeden Rat entgegen nehmen.
Ich schwanke immoment zwischen mehreren Lösungen.
Erstens: Ein Arduino basiertes System. Also zum Beispiel einen Arduino Mega 2560 oder einen kleineren Arduino der per TTL mit einem Servocontroller (Mini Maestro 18 ) seine fehlenden Ports erweitert und sich entlastet.
Zweitens: Ein ARC 32. Das ist warscheinlich die sauberste Lösung da dort alles auf einer Platine untergebracht ist und er bringt genügend Rechenleistung für eine hohe Servoauflösung und saubere Bewegungen mit.
Drittens: Ich würde das System gerne fernsteuern. Ist es möglich, die rechenarbeit in der Fernsteuerung zu erledigen, und nurnoch Stellbefehle an den Bot zu übertragen, die dort dann von einem Servocontroller (Mini Maestro 18 ) ausgeführt werden?

Softwaretechnisch würde ich mich dann auf dem entsprechenden System einarbeiten. Wobei ich da auch noch ziemlich grün hinter den Ohren bin ;)

Ich würde mich über ein paar konstruktive Ratschläge freuen.

MlG Sokapex

HeXPloreR
25.05.2013, 10:56
Hallo Sokapex,

das sieht alles "sehr klar" aus ;)

Mein Tipp ist den Hüftservo umzudrehen - also die Achse nicht hinten zu haben, sondern weiter vorne.Am besten in einer Linie mit dem Fußpunkt.

Sind das Titanschrauben? - sind bestimmt nicht schlecht weil schön leicht, aber Senkkopfschraben am Servo drücken die Aufnahme kaputt. Dort sollten flachaufliegende eingestzt werden oder eine Scheibe mit dazu.

Wegen der Servoauflösung würde ich mir nochmal Gedanken machen. Denn es bringt Dir nichts wenn Du auf 1/10° berechnen kannst, es dann auf eine Ganzzahl umgerechnet werden muss - wodurch man nochmal ungenauer wird - und die Servos aber die sogenannte "Dead Band Width" nicht auf jedes Änderung des PWM von z.B. 1500µsec auf 1502µsec reagieren.

PMMA (bzw transparenter Kunststoff) bietet sich ja immer an LED mit einzubauen... https://www.roboternetz.de/phpBB2/images/smiles/icon_wink.gif

erik_wolfram
25.05.2013, 11:13
Hallo,
Ich habe ja gerade meinen Quadruped in ähnblicher Bauweise fertig gestellt.

Bei der externen Berechnung habe ich die Erfahrung gemacht, dass der Roboter dadurch deutlich langsamer wird - zu mindest bei WLAN/Bluetooth wenn er die Befehle zeitlich versetzt bekommt. Rechentechnisch sollte das auf einem 16 MHz Atmega kein Problem sein. Schwerer wird da die Servoansteuerung über einen Atmega, obwohl hier im Forum auch Lösungen dafür kursieren....
Wenn du das ganze in Zyklen programmierst, also jede Bewegungsart einzeln (links, rechts, vorwärts, rückwärts) , solltest du auf genügen Speicher achten, damit alles in den Microcontroller passt.

Ich wünsche dir viel Erfolg mit dem Projekt - ich werde das auf jeden Fall weiter verfolgen

Gruß Erik

HannoHupmann
25.05.2013, 12:56
Die Länge der Fußelemente wird vermutlich zu einer Torsion führen bzw. das kommt auf das Material an. Bei meinem Phoenix² hatte ich dieses Problem. Daher empfehle ich jetzt einen doppelten Auslegung oder eben gleich eine 3D Geometrie.

oberallgeier
25.05.2013, 13:09
... Wegen der Servoauflösung ... Gedanken machen ... bringt Dir nichts wenn Du auf 1/10° ...Du hast natürlich recht, im Prinzip. Wenn Du Dich aber nicht mit den üblichen, festen Geschwindigkeitsverläufen des Servos abfinden willst, dann ist hohe bis sehr hohe Auflösung schon sinnvoll. Ich habe zwar keinen Hexa, aber bei meinen Servos eine sehr hohe Auflösung beim Kommandopuls - anfangs dachte ich eine total unsinnig hohe Auflösung: viertausend Ticks für 150°. ZUSÄTZLICH natürlich die Spezialität, dass ich bei Bewegung bei JEDEM Puls ein Schäufelchen drauflege, egal wie klein das ist. Vorteil ist eine so glatte Fahrt, wie sie der aktuelle Servo gerade eben schafft. (Beispiel).

(https://www.roboternetz.de/community/threads/61379-Kopfsache-und-ein-m1284-etliche-Servos-viel-Alu?p=577672&viewfull=1#post577672)

Sokapex
25.05.2013, 14:31
Hatte leider gerade keine anderen m3er Schrauben in entsprechender Länge da. Nur diese doofen NiRo Senkkopf. Diese werden noch durch Zylinderkopfschrauben ersetzt. XD
Das mit dem Hüftgelenk habe ich noch nicht so ganz verstanden.... ich habe den Servo schon etwas asymetrisch aufgehängt.
Das Bein ist quasi torsionsfrei wenn ich daran rumbiege.... aber ich werde mir den Rat mal zu Herzen nehmen und die beiden Elemente gegeneinander verstärken.

http://www.imgbox.de/users/public/thumbnails/dj80asUsvr_t.gif (http://www.imgbox.de/show/img/dj80asUsvr.JPG)

Mein Ziel ist ein Hexapod der sich sehr weich bewegt... organisch. Auf die Geschwindigkeit kommt es mir nicht so an.
Wenn der Übertragungsweg so viel Zeit raubt werde ich das mit der rechnenden Fernsteuerung eher lassen.
Der ARC32 hat 56k Programmspeicher, reicht das für einen standard Hexabot?
Hab den Morphex gesehen, der mit diesem Board leuft und das sehr sauber.

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

Und dieser hat meiner Meinung nach einen wunderbaren Bewegungsablauf, und schnell genug ist der auch.... XD
Ich denke diese Bewegungen sind das Ziel dass ich mir gerne setzen würde.
Gibt es zum Programmieren der IK in C irgendwelche Leitfäden in die man sich auch ohne Studium einarbeiten kann?
Ich hab mir ein Paar angeschaut und bin noch ein bisschen baff von der Komplexizität der Berechnungen.

HeXPloreR
26.05.2013, 16:24
... Das mit dem Hüftgelenk habe ich noch nicht so ganz verstanden....

äh, ja mein Fehler - habs nicht so richtig gesehen - Hüftservo passt schon. Dennoch kann ich jetzt empfehlen den Unterschenkelservo genauso einzubauen wie den Oberschenkelservo.

Ja der MorpHex ist schon klasse gemacht. Hast Du denn auch geplant die sechs Segmente nochmal zu teilen?

Das mit de Erhöhung der "Ticks", das habe ich bisher so nur teilweise (unbestätigt) bei einem 20MHz Baby-Orangutan beobachtet. Aber auch ich werde dazu mal was versuchen ;)

Sokapex
26.05.2013, 17:51
Also quasi so, dass beide Servos mit der Achse an dem selben Element hängen, und die Gegenlager an dem anderen. Mmmh ok ... probier ich mal aus.
Zur Form bin ich mir noch nicht so sicher. Entweder soll das ganze wie ein aufgeschittener Apfel aussehen, aber dabei werden durch die langen Beine die Servos sehr belastet. Oder quasi wie der Morphex nur ohne eine Möglichkeit die oberen Segmente zu bewegen... finde das sieht irgendwie niedlich aus XD
Das mit der Steuerung hab ich mir nun so überlegt: Einen Arduino Mega 2560 den ich hier noch liegen habe, und das ganze erweitert mit einem Orion Servo Shield. Das Orion übernimmt die Flieskommaberechnungen für die Servowinkel, da es über einen 32bit Prozessor verfügt. Der Arduino empfängt die Steuerbefehle und gibt quasi nur die Koordinaten vor.
Villeicht kann ich dadurch auf eine Schrittgenauigkeit von 1/3 oder sogar 1/5grad kommen. = Weichere Bewegungen.
der ARC 32 ist mit 89dollar und 25dollar Versand leider etwas sehr teuer.
Ich habe mir mal den Phoenix Code runtergeladen, kann man diesen irgendwie verwenden? oder zumindest als Leitfaden zu einem eigenen Code verwenden?