Interesse an Informationsaustausch?


#8

Hallo,

ich habe gestern einen Drucksensor an mein Entwicklerboard angeschlossen und per PCI abgefragt. Selbst bei der kleinsten Berührung hat dieser angeschlagen. Sieht also gut aus. Wie man diese dann am Hexi befestigt kann ich erst testen wenn er da ist. An deiner Stelle würde ich mir erst 2 besorgen, für die vorderen 2 Beine. Das sollte für den Anfang reichen.

Zu der Ansteuerung der Servos habe ich mir auch schon Gedanken gemacht. Diese müssten parallel angesprochen werden und nicht nacheinander da hier sonst Probleme entstehen. Hier die Spezifikationen der Servos:
servodatabase.com/servo/hextronik/hxt900
Hier die allgemeinen Spezifikationen wie ein Servo angesprochen wird:
rn-wissen.de/index.php/Servos

Wir haben also einen Pulse Cycle von 20 Millisekunden. Je weiter man dieses Cycle überschreitet, desto schwächer wird der Servo. Ein kürzerer Cycle ist nach meinen Tests möglich (habe mir mal 3 Servos gekauft und getestet).

Wenn du sie nacheinander ansprechen willst ergeben sich bei vollem Ausschlag (2450 µs = 2,45 Millisekunden) bei 18 Servos eine Zeit von 44,1 Millisekunden. Und das ist weit über den 20 Millisekunden die normal sind.

Darum sollte man sie parallel ansprechen, was die Sache nicht einfacher macht. Des Weitern musst du dann die ganze Steuerung dann noch über die Schieberegister an die Servos schicken.

Ich hoffe ich habe hier richtig gerechnet und lasse mich gerne vom Gegenteil überzeugen. Wenn du Lust hast können wir uns gerne mal über ICQ (82075435) über das Thema unterhalten und vielleicht zusammen eine Lösung entwickeln.

Grüße, Arcanix


#9

Hallo zusammen,

nach unzähligen Flüchen und des gespannten schauens in den Brierfkasten, ist nun schlussendlich mein Hexy angekommen, Nach einer Einfuhrgebühr von 39 Euro ( deklariert als Modellbau Ersatzteile) hatte ich ihn endlich in der Hand.

Grüße, Arcanix


#10

Na dann herzlichen Glückwunsch :wink:

Ich habe leider immer noch nicht mal eine Versandbestätigung, wenn das danach auch noch einen Monat brauchen sollte… hab gestern mal an Arcbotics geschrieben.

Hattest du mit dem parallelen Ansprechen der Schieberegister schon Erfolg? Ich hab mir da auch mal ein paar Gedanken gemacht. Das mit dem Problem, dass man sonst über 20ms kommen kann war mir auch schon eingefallen. Wenn man alle 4 Schieberegister des Servotors parallel benutzt, dürfte man ja aber kein Problem mehr haben. Im Prinzip muss man sich zu jedem Timer-Interrupt ja bloß abspeichern, welche® der 4 Schieberegister weitergeschoben werden müssen. Ich stelle mir das nicht so kompliziert vor.

Und nach Drucksensoren hab ich mich auch mal umgeschaut. Ich werde da wohl erst mal einen einzelnen günstigen in einer Conradfiale hier kaufen. Dort gibts schon welche ab unter 10€, hab ich gesehen. Da wäre ich mal gespannt, was die im Vergleich zu deinen FlexiForce-Sensoren taugen.

Ich kann auch wieder ICQ anschmeißen, dann kann man sich darüber weiter unterhalten.


#11

Hallo diciani,

hast du auch schon mal in deinem Spam Ordner geschaut. Vielleicht ist die Mail zufällig da gelandet.

Ich habe gesten den Hexy zusammen gebaut (ca. 8h) und auch gleich die Software installiert. Neuste Firmware auf den Hexi geladen und das Testprogramm gestartet.

Die Testmoves funktionieren alle so wie sie sein sollten. Leide musste ich jedoch feststellen dass ich das im Forum schon beschrieben “Zitterproblem” habe. Soll heißen dass die Servos keine geradlinige Bewegung zu ihrem Ausgangspunkt machen sonder in der Bewegung etwas vor und zurück zittern. Ich werde mich die Tage mal an das englische Forum wenden wenn ich keine Lösung dafür finde.

Ich drück dir die Daume dass dein Hexy auch bald kommt :slight_smile:

Grüße, Arcanix
p.s.: Bin abends immer mal in ICQ zu finden.


#12

Hallo,

ich habe hier etwas gefunden, was wir vielleicht auf den Hexy portieren können. Das Walknet erlaubt eine breite Palette von Bewegungen unter Einbeziehung der Umgebung. Habe mir die Details aber noch nicht durchgelesen.

Edit: Ok, man sollte doch lieber auf die in den Quellen angegeben Arbeit von T. Kindermann zurückgreifen. :wink:


#13

Soooo, viel zu tun gehabt, Klausuren und Urlaub. Hoffe jetzt auch mehr Zeit in Hexy stecken zu können.
Btw, bin auch aus Berlin. Mache meinen Bachelor in Mechatronik gerade an der Beuth.

Habt ihr bereits gute Akkus oder ein Netzteil gefunden, welches ihr empfehlen könnt ?
Mit meinen Batterien bekomme ich ihn mittlerweile nicht mehr zu laufen nach dem letzten Servotor update.
Nach einer anfänglichen Bewegung, macht er nur noch das spider curling, also die Beine verkrampfen sich komplett.

Werde schauen, dass ich die nächsten Tage mal wieder das Board durchstöbere, ist ziemlich viel passiert die letzten 3 Wochen wie ich sehe.

Grüße

Frank


#14

Hallo FrankH,

ich habe mir ein paar Testberichte durchgelesen und bin dann mit einer Liste der besten Akkus zum Me… Ma… gegangen und habe mir diese besorgt:
http://www.testeo.de/produkt_test/sanyo-hr-3u-2700-mah-667241.html

Da ich gerade viel rumprobiere und dabei nicht auf Akkus zurückgreifen will habe ich ein Netzteil aus “good old China” angeschlossen. Schau mal in Ebay nach: 15W 5V 3A DC Schaltnetzteil Netzgeräte
Besorge dir aber lieber ein vergleichbares aus Deutschland. Die Lieferzeit aus China beträgt ca. 1 Monat und der Preis ist um mehr als das doppelte gestiegen. Meines hat noch 6,84 Euro gekostet. Es gibt hier aber auch einen Thread über dieses Thema.

Ich hatte auch das Problem dass die Beine gewackelt habe. Daraufhin habe ich nun meine eigene Assembler Routine für seine Beinchen geschrieben. Aktuell hadere ich noch damit rum, wie ich diese Routine in einen C Code (nicht als inline ASM) implementiere. Wenn du damit Erfahrung hast kannst du dich gerne mal bei mir über ICQ (82075435) melden. Sollte das geschafft sein werde ich mir auch mal die Laufalgorithmen von Yggdrasil zu Gemüte führen.

Ich wünsch dir schon mal viel Spaß mit dem Hexy.

Grüße, Arcanix


#15

Mein Hexy ist immernoch nicht da, das ist auch der Grund warum ich lange nichts gepostet habe. Langsam nervt es jeden Tag auf den Postmann zu hoffen :frowning:

Ich hatte mir vor einem Monat auch schon Sanyo Akkus gekauft, allerdings die HR-3UTGB. Die werden auch unter der Marke Eneloop verkauft und sollen eine sehr geringe Selbstentladung haben. Wenn man die auch noch für andere Geräte im Haushalt verwenden möchte, ist das vielleicht gar nicht so schlecht.

@Arcanix: Hast du eine komplett neue Steuerroutine geschrieben, oder den vorhandenen Code angepasst? Wenn ja, welche Stelle im Code war denn für das Wackeln verantwortlich? Weil das ist ja schon sehr doof. Wenn man das in C implementieren könnte wäre das schon super, ich würde mich auch gerne opfern ^^


#16

Hallo diciani,

ich habe ine komplette neue Steuerungsroutine in Assembler geschrieben, den vorhandenen Code habe ich mir noch nicht mal angeschaut :slight_smile: Aktuell kannst du jeden der 32 Servoausgänge mit einem Befehl in c ansteuern (z.B. Servo[16] = 20;). Dadurch kann man durch Funktionen z.B. eine komplette Laufroutine erstellen:

int main()
{
move(20);
return 0;
}

void move (int steps)
{
for (int i=0; i < steps; i++)
{
Servo[16] = 20;
Servo[18] = 15;
Servo[32] = 33;
.
.
.
}
}

Leider hat das Programm noch 2 Schwachstellen. Die Ansteuerung der Servos geht nur in einem Winkel von 6 Grad und die Servos lassen sich nicht zueinander ausrichten.

Ich bin gerade dabei die Routine um/neu zuschreiben um die Schwachstellen auszumerzen. Das kann aber noch etwas dauern.

Was du unbedingt brauchst ist das kostenlose downloadbare Atmel Studio 6 ( atmel.com/microsite/atmel_studio6 / ) und einen Programmer. Hierbei würde ich dir einen original Atmel Programmer empfehlen da dieser keine zicken macht und nicht extra eingerichtet werden muss. Dieser ist zwar etwas teurer aber du kannst sicher sein dass, wenn etwas nicht klappt, es nicht am Programmer liegen kann. Ich benutze diesen hier:
reichelt.de/Programmer-Entwi … AT+AVR+ISP

Ich hoffe du muss jetzt nicht mehr lange warten. Das dauert ja echt schon sehr lange bei dir :confused:

Grüße, Arcanix


#17

Heute ist endlich mein Hexy angekommen. Hat ja nun auch lange genug gedauert. Dafür musste ich überhaupt keinen Zoll oder sonstwas bezahlen. Ich vermute, weil auf der Packung ein Warenwert von 40US-$ angegeben ist und das ganze als Geschenk deklariert ist. War das bei euch auch so?

Bis zum Wochenende bin ich hoffentlich so weit, dass Hexy fertig ist und ich mich um die Software kümmern kann.

Das “Rüttelproblem” bereitet mir jetzt schon Gedanken. Was ich bei deinem Code noch nicht verstanden habe ist, was du mit “zueinander ausrichten” meinst und warum die Ansteuerung auf 6° beschränkt ist? Das lässt sich doch bestimmt ändern, wenn man möchte, oder?

Atmel Studio hab ich bis jetzt noch nicht installiert. Ich verwende bisher “avr-gcc” zusammen mit “avrdude”. Das klappt ganz gut. Einen Programmer habe ich auch bereits, “mySmartUSB light” nennt sich der. Funktionierte bisher problemlos.

Der müsste ja auch mit Atmel Studio zusammen arbeiten, wenn das nötig wird. Habs mangels Bedarf einfach noch nicht ausprobiert ^^

Jetzt wird ohnehin erstmal an Hexy gebastelt :smiley:


#18

Hallo zusammen,

sorry für die späte Antwort aber ich bin gerade etwas faul. Erst mal Gratulation zu deinem Hexy! Glück gehabt dass du bei Zoll vorbei gekommen bist :slight_smile:

Hier die Antworten auf deine Fragen:

Rüttelproblem: Soweit ich es aus dem englischem Forum herausgelesen habe, tritt das nur auf wenn du deinen Hexy via USB-Kabel steuerst. Scheinbar wird hierbei der Interrupt zur Beinsteuerung gestört und alles wackelt. Genaueres kann ich darüber nicht sagen. Mit dem mitgeliefertem Bluetooth-Modul soll es aber keine Probleme mehr damit geben. Das habe ich aber nicht getestet.

zueinander ausrichten: Wenn du den Hexy aufbaust kann es sein dass die Beine nicht alle die gleiche Ausrichtung haben. Wenn du ihn auf den Boden stellst kann es also sein, dass vielleicht 4 Beine den Boden berühren und 2 in der Luft hängen. Das muss man dann durch die Software ausgleichen.

6° Ansteuerung: Das Problem besteht darin dass ich die Länge der Impulse in Echtzeit berechne. Das “verschlingt” so viel Rechenzeit dass jeder Servoimpuls nur alle 60 Mikrosekunden ausgeschaltet werden kann. In diesen 60 Mikrosekunden legt der Servo einen Weg von ca. 6° zurück. Ich muss die Berechnung der Impuslzeiten also vorab erledigen und die Berechneten Daten in das SRAM schreiben. Das verbraucht zwar anständig Speicher, ich hoffe jedoch somit die Servos auf maximal 2° ansteuern zu können.

mySmartUSB light: Das müsstest du wirklich mal testen ob Atmel den Programmer erkennt. Mit der Version 4 funktionierten noch einige ohne Probleme die mit der Version 6 nicht so einfach mehr erkannt werden.

Grüße, Arcanix


#19

Hallo!

Schön zu sehen, dass noch weitere Hexys nach Deutland gekommen sind. Ich hab meinen bereits zusammen gebaut und in die Cloud verbunden. Nun wird es Zeit, dass er langsam mal was tut. Mein ziel ist es, dass er irgendwann mal selbstständig durch die Wohn rennt und mir Bier holt :smiley:

Mit dem Chat per ICQ ist ne tolle Idee, ich das wieder mal installieren.

Vg


#20

Ich bin auch gerade nicht sehr schnell mit dem Antworten, wie vielleicht zu merken ist. Vollständig aufgebaut ist mein Hexy auch noch nicht. Ich wollte erst noch ein paar Moosgummiplatten besorgen. Das hat bei Arcanix wohl auch geholfen. Sonst ist doch etwas viel Spiel in manchen Teilen für meinen Geschmack. Das muss nicht sein.

@NeuralHexy:
Ich hab dir mal eine PN mit meiner ICQ-Nummer geschickt. Mit dem Bier holen hast du dir ja was vorgenommen, aber hey, hauptsache man hat ein Ziel und ist motiviert ^^

@Arcanix:
Zu dem Ausrichten. Ahh, nun hab ichs verstanden :smiley: Die Füße sollen natürlich schön auf dem Boden stehen, das ist klar. Da wäre die eleganteste Lösung ja ohnehin das über solche Drucksensoren zu regeln, von denen du mal geschrieben hattest. Ich hatte aber auch noch keine gute Idee, wie man die am besten am Fuß anbringen könnte.

Wobei es dann doch ziemlich knifflig werden wird, all das in Echtzeit auf einem AVR zu verarbeiten. Ich hab mich deswegen dazu entschieden gar nicht auf dem Weg weiter zu probieren und gleich alles darauf zu setzen die Berechnungen auszulagern. Aber nicht an einen PC mit Python und PoMoCo. Ich möchte weder von Bluetooth abhängig sein, noch will ich Hexy immer an einer Strippe zu nem PC halten müssen, sondern ich hab mir jetzt zwei Raspberry-Pi Minicomputer schicken lassen. Den einen (Model-A) bekommt Hexy huckepack. Und den anderen (ein Model-B mit LAN) kann ich mit dem PC verbunden lassen und darauf den Code entwickeln und vllt. im Hexenstein testen. Wenn alles klappt, muss im Zweifel nur noch die SD-Karte umgesteckt werden. Sofern ich nicht sowieso noch WLAN/Bluetooth/anderen Funk hinzugebastelt habe bis dahin.

Ich versuche deshalb aktuell den Servotor32 per UART mit dem Raspberry zu verbinden. Dann bin ich diese doofe USB-Verbindung mit ihren hohen Latenzen los. Ich hoffe, dass du recht hast und das Rütteln damit auch verschwindet. Das ist ja wirklich furchtbar und total unbenutzbar sonst. Getestet hab ichs auch noch nicht, aber klingt plausibel, dass es an USB liegen könnte. Daneben würde ich den (einzigen) USB-Anschluss des Raspberry gerne für eine Kamera später offen lassen. Mal sehen, ob das so klappt.

Was denkst denn du darüber, die Berechnungen auszulagern? Auf so einen ARM-basierten mini-Computer wie dem Raspberry zB? Weil du bisher ja ausschließlich den Mikroconroller bei dir verwendest. Dann sind auch solche 6-Grad Schwierigkeiten vorbei.

Macht die Sache irgendwie schon etwas bequemer, wenn man so viel RAM und Rechenleistung zur Verfügung hat, finde ich. Und der AVR kann sich dann voll auf die Servos und Drucksensoren und deren AD-Wandlung und sowas “konzentrieren”. So ein Raspberry Model-A braucht unter 1 Watt und kostet ca. 30€ mit Versand. Ich finde, das passt gut zu Hexy. Ansonsten gibts heute ja auch nen ganzen Zoo an ARM-Entwicklerboards zur Auswahl :wink:


#21

Hallo zusammen,

das Ausrichten der Servos wird in c gemacht. Hier gibt es dann die Variable Servokorr[1] = 5. Damit stellt man den Servo 1 grundsätzlich um 5 Grad weiter als die anderen Servos. Mit Servopos [1]=84 kannst du dann den Servo inkl. schon eingerechneter Korrektur auf eine gewisse Position fahren lassen. Dies kann man dann mit allen 32 Servoausgängen machen. So ist es zumindest geplant :slight_smile:

Die Berechnung der Servoansteuerung währen der Servo sich bewegt kann man leider wirklich vergessen. Hier bin ich nicht unter die schon geschriebenen 6 Grad gekommen. Er gibt aber die Möglichkeit die Daten vorauszuberechnen. Kurze und grobe Erklärung:
Der Servo bekommt alle 20 Millisekunden einen Impuls von 1-2 Millisekunden. Nach dem 1-2 Millisekundenimpuls passiert also ca. 18 Millisekunden nichts mehr. In dieser Zeit kann man die Servodaten vorausberechnen. Die Zeit des “Vorausberechnens” fällt dann in der Zeit in dem sich der Servo bewegt also weg und man kann diese schneller ansteuern.

Mit dem Raspberry-Pi habe ich mich noch nicht beschäftigt bin aber daran stark interessiert. Leider wüsste ich noch nicht mal wie und in welcher Sprache man das Ding programmieren kann. Ich denke das ist zwar wie mit Kanonen auf Spatzen schießen, aber die Idee finde ich gut. Da kannst du mich gerne etwas auf dem Laufenden halten.

Aktuell hakt es noch hier und da bei meiner ASM Routine, Land ist aber Sicht. Ich hoffe dass ich in ca. 2 Wochen fertig bin wenn mich nicht wieder das “Faultier” erwischt :slight_smile:

Grüße, Arcanix


#22

Hallo zusammen,

nach ein paar Rückschlägen und lauten Fluchen (meine Nachbarn mögen mir verzeihen) steht die Routine. Aktuell komme ich auf einen 3 Grad Winkel zum ansteuern der Servos. Alle 32 Anschlüsse auf dem Board sind einzeln über C auszurichten und anzusteuern. Auch alle weiteren Berechnungen kann man in C machen und direkt an die einzelnen Servos ausgeben. Die Assembler Routine ist nur zur Steuerung der Servos da uns muss nicht beachtet oder verändert werden.

Hier mein erstes Testvideo:

youtu.be/vxnyXgjHjtk

Wie man sieht ist es durch eine kleine Verzögerung möglich die Servos langsamer laufen zu lassen. Im Hintergrund seht ihr das Oszi mit dem Signal.

Wer daran interessiert ist kann sich gerne melden. Ich gebe dann auch Hilfestellung für die ersten Schritte.

Was hat sich bei euch so getan? Gibt es z.B. schon neues über das Rasberry PI? Ich habe mir mal eines bestellt. Mal schauen ob ich damit zurecht komme. Nehme gerne jede Hilfe dazu an :slight_smile:

Grüße, Arcanix


#23

Hallo Arcanix,

das sieht doch sehr schön aus, wunderbar. Interessiert mich auf jeden Fall. Vielleicht müssen wir mal wieder per ICQ chatten, hätte schon Lust das mal aus zu probieren :wink:

Bei mir war Hexy zuletzt etwas liegen geblieben, mangels Zeit. Ich hab es allerdings inzwischen geschafft, den Raspberry per UART mit dem Servotor zu verbinden (da reichen 2 Widerstände). Ich kann nun alles direkt vom Raspberry aus steuern. Das klappt wirklich 1A :smiley:

Programmieren kann man für den Raspberry (wie für jeden ausgewachsenen Computer) in welcher Sprache auch immer man möchte. Solange es einen Compiler oder eine Laufzeitumgebung gibt natürlich nur. Fast alles, was heutzutage verbreitet ist, sollte klappen. Assembler geht natürlich sowieso. Ich bevorzuge aber C++.

Etwas Steuersoftware hab ich auch schon geschrieben. Nur ist die noch nicht fertig. Außerdem wollte ich Hexy + Raspberry gerne noch beide per Modellbau-UBEC aus einem LiPo versorgen und auf dem Raspberry einen Echtzeitkernel gebootet kriegen. Soweit meine aktuelle Planung.

Ich melde mich aber auf jeden Fall sobald es was neues gibt.

Und ich hab wirklich Lust wieder etwas mehr an Hexy zu basteln. Also bis dann.

Viele Grüße,
diciani


#24

Guten Tag alle zusammen

habe vor mir einen Hexy zu kaufen. Das ich mir den aus den USA bestellen muss, empfinde ich als etwas gruselig. Deswegen wollte ich fragen wo und wie ihr euren bekommen habt und was ich vllt bei der Bestellung beachten sollte. Ich würde mich auch freuen wenn mann mich bei facebook adden könnte, zum betanworten weiterer Fragen, damit ich das forum nicht zuspame :3

habe vor an der TU in Berlin Technische Informatik zu studieren und dachte mir, dass das ein nettes Projekt wäre mich ins kalte Wasser zu schmeißen oder haltet ihr das für zu viel für den Anfang ? Einige Grundkenntnisse im Programieren und zusammen basteln von technischen Geräten besitze ich allerdings bereits.

Bitte entschuldigt meine Rechtschreibfehler als legastheniker fällt mir das schreiben von lesbaren Texten sehr schwer :open_mouth:


#25

Hallo t3ik.

Wir haben unsere alle aus den USA bekommen, da es ursprünglich keine andere Möglichkeit gab.

Inzwischen wird Hexy auch von (einigen?) externen Shops vertrieben. Unter anderem vom “Robotshop”, der auch eine Zweigstelle in Frankreich hat. Wenn du dort bestellst, dann kannst du in Euro bezahlen, hast keine Probleme mit dem Zoll und es sollte schneller geliefert werden. Denke ich mir jedenfalls…

robotshop.com/eu/hexapod-dev … forms.html

Ich persönlich habe keinen Facebook-Account, nur einen ICQ-Account. Das Forum wirst du alleine aber auch nicht zugespamt kriegen, außerdem ist es genau dafür ja da. Also frage nur ruhig alle deine Fragen :wink:

Das mit dem kalten Wasser haben übrigens alle hier mehr oder weniger gemacht. Du bekommst eben ne Kiste voll mit Plastikteilen, eine tolle fertige Steuerplatine, einen Ultraschallsensor und 20 Servos geliefert, evtl. Bluetooth-Modul noch. Mehr nicht! Aufbauanleitung in Englisch gibts zum Runterladen.

Die Firmware für die mitgelieferte Platine und eine kleine Software für den PC gibts ebenfalls zum Runterladen (jeweils OpenSource). Die PC-Software ist aber wirklich nur sehr rudimentär, ich hab die sofort weggeschmissen und es gleich neu gemacht. Arcanix zB. hat die PC-Steuerung gleich sein gelassen und alles auf dem Mikrocontroller neu programmiert. Es gibt auch einen kleinen Emulator, den kannst du dir vor dem Kauf ja mal anschauen.
Wenn man mehr will als ein paar vorgefertigte Bewegungen muss man das selber machen. Aber das (englische) Forum ist inzwischen ja schon voll mit Ideen und Tipps :wink:

Wenn du schon etwas programmieren kannst und nichts dagegen hast, dir ein paar Grundkenntnisse über Mikrocontroller an zu eignen, dann ist so ein Hexapod ideal. Und Hexy ist eben ziemlich das günstigste was es zu kaufen gibt, auch wenn die Qualität von den Teilen und vor allem den Servos nicht gerade perfekt ist. Eben was bei dem Preis so geht.

Also kurz: Wenn man am Programmieren und Basteln Spaß hat ist Hexy genial, macht fast süchtig eine Zeit lang. Aber wenn nicht, dann wird es wahrscheinlich schnell langweilig und landet in der Ecke. Es ist halt nen Roboter, die Teile machen nur Sinn mit der “richtigen” Programmierung und Idee, was man damit gerne machen möchte :smiley:

Auf jeden Fall kann man sehr viel lernen.


#26

Vielen Dank für die schnelle, freundliche und hilfreiche Antwort, hat mich sehr gefreut und der link scheint ne geniale Möglichkeit zu sein.

danke :slight_smile:


#27

Hello,
Darum sollte man sie parallel ansprechen, was die Sache nicht einfacher macht. Des Weitern musst du dann die ganze Steuerung dann noch über die Schieberegister an die Servos schicken.