PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein Humanoide



tucow
02.05.2012, 23:17
Hallo zusammen,

ich habe mir überlegt meine mikroelektronische Entwicklungsaufgabe (Studienprojekt) hier vorzustellen.
Das ganze ist ein Humanoide bei dem ich alles von Grund auf entwickelt habe.


Angefangen beim Skelett:
222862228722288

Es beinhaltet noch Fehler in 3 Maßangaben des Rücken und Nacken, was auf dem Lasercutter direkt geändert wurde. Das komplette Skelett wurde aus 1.5mm dickem Alu mit dem Laser geschnitten und hinterher von Hand abgekantet.

22289


Am vergangenen Montag folgte dann die Montage:
22290


(weiter gehts im nächsten Beitrag, maximal 5 Bilder pro Beitrag.)

tucow
02.05.2012, 23:30
(Hier gehts weiter)

Heute durfte er das erste Mal von alleine stehen:
2229122292


Die Mechanik steht soweit, ich überlege noch die Servohörner zu tauschen da die mitgelieferten, aus Plastik, doch recht labil wirken. Da werden wohl irgendwann noch welche aus alu folgen.
Als Servos habe ich von Toward Pro die MG996R eingesetzt, insgesamt sind es 17 Stück:

5 pro Bein
3 pro Arm
1 Kopf



Die Elektronik wird diese woche noch fertig, heute hat das Ätzen endlich geklappt nachdem wir die FeCl3 Lösung aus der Schaumätzanlage getauscht haben und die Belichtungszeit angepasst haben, morgen gehen die fertigen Platinen ins verzinnungsbad und dann zur Bestückung in den Reflowofen.

Die Servos betreibe ich mit 4 extra Controllern die ich speziell dazu entworfen habe, jede Extremität bekommt einen, alle haben jeweils einen ATmega16-TQFP und laufen mit 8.00000 MHz, verbunden sind alle per SPI, die Kommunikation übernimmt ein ATxmega128A1 (Hier nutze ich das Xplaind Board von Atmel).

Zur Lageerkennung benutze ich ein ADXL345 das mir von AD großzügigerweise zur Verfügung gestellt wurde, dieser wird ebenfalls per SPI angebunden, zur Erkennung von Hindernissen benutze ich einen SRF05.

Die Kommunikation mit dem Bot erfolgt über Bluetooth, dazu kommt ein BTM-222 zum einsatz.


Im nächsten Post folgen die Layouts der Boards.

tucow
02.05.2012, 23:40
(Hier gehts nochmal weiter)

Das BT Modul:
22293

Wie man sieht benutze ich recht wenige der I/O Pins des BTM-222, für den Bot benörige ich lediglich eine UART Kommunikation und ein paar LED damit es auch schön bunt blinkt ;)
Eine blaue LED ist für die Verbindungsanzeige vorgesehen, eine rote LED zur Anzeige des Datenverkehrs und eine grüne LED für die Spannungsversorgung.



Das ADXL345 Modul:
22294

Wie man beim ADXL345 sieht weiche ich von der empfohlenen Beschaltung (von AD) ab, der Grund dafür ist das kleine Maß des Moduls und der Erfahrungswerte das es auch so stabil funktioniert.



Und die Servo Controller:
22295

Neden dem Mainboard mit dem ATxmega128A1 könnte man die Servo Controller als die Herzstücke des Ganzen bezeichnen, sie lösen alle Zeitprobleme und sorgen dafür das die Servos ihre Position halten auch wenn das Mainboard keine neuen Daten liefert.



Viel mehr gibt es zum jetzigen Zeitpunkt nicht zu sagen.
Ich bin auf Eure Kommentare gespannt.



Gruß
tucow

Geistesblitz
03.05.2012, 08:16
Mir sehen die Aluwinkel ganz schön wackelig aus. Servohörner tauschen muss garnichtmal viel bringen, ich hätte eher von Anfang an Gegenlager eingeplant. Damit werden Servogelenke wesentlich stabiler, hab ich selbst feststellen dürfen^^
Bei anderen Humanoiden ist das fast immer auch so gebaut, und das nicht ohne Grund. So, wie es bei dir ist, dürfte das Bein übermäßig wackeln und die Servos mögen die Biegebelastung am Abtrieb auch nicht so gerne.

tucow
03.05.2012, 10:27
Die Aluprofile sind absolut nicht wackelig, die sind robust.
Was die Gegenlager angeht, daran dachte ich auch, habe es aber für den Prototypen verworfen. Besser wäre es schon, da gebe ich Dir Recht, vielleicht für eine spätere Version.


..So, wie es bei dir ist, dürfte das Bein übermäßig wackeln..
Es wackelt wesentlich weniger als man denken mag ;)

Geistesblitz
03.05.2012, 10:32
Nagut, die Aluprovile an sich sind wahrscheinlich nicht wackelig, aber dafür die einseitige Anbindung am Servo. Die quer- und Normalkräfte, die darauf wirken, sind nicht so schlimm, aber die Biegemomente können dem Servo zu schaffen machen. Die Nachgiebigkeit der Plastehörner dämpft das ein wenig, wenn du da Aluhörner einbaust wird das Ganze zwar steifer, aber dafür werden auch sämtliche Erschütterungen ungebremst auf den Servoabtrieb übertragen. Ein Gegenlager verhindert, dass die Biegemomente am Abtrieb zu stark werden. Ist auf jedenfall gut für die Lebensdauer der Servos ;)

tucow
06.05.2012, 19:48
So, das erste Modul (Bluetooth) ist fertig.
22320
Es hat eine grüne LED für die Spannungsversorgung, eine blaue für die Anzeige von Aktivität über eine bestehende BT Verbindung und eine rote für die Datenaktivität am UART.
Nur die Antenne fehlt noch, aber bisher ist die Verbindung auch ohne recht stabil, wie man sieht musste ich im Flachbandkabel 2 Leitungen (Vcc und GND) kreuzen, kleiner Fehler im Design.

debegr92
06.05.2012, 21:29
Hallo tucow,

wirklich nettes Projekt hast du da! Sehr interessant das ganze.
Wie hast du denn deine doppelseitigen Platinen geätzt und durchkontaktiert? Würde mich ziemlich interessieren.
Was für einen Studiengang belegst du denn wenn ich fragen darf? Das ganze klingt schon ziemlich cool. Will ab dem Wintersemester auch in diese Richtung der Elektronik und hab mich schon ziemlich gut informiert.

Grüße
Dennis

tucow
06.05.2012, 22:52
Hallo tucow,

wirklich nettes Projekt hast du da! Sehr interessant das ganze.
Wie hast du denn deine doppelseitigen Platinen geätzt und durchkontaktiert? Würde mich ziemlich interessieren.
Was für einen Studiengang belegst du denn wenn ich fragen darf? Das ganze klingt schon ziemlich cool. Will ab dem Wintersemester auch in diese Richtung der Elektronik und hab mich schon ziemlich gut informiert.

Grüße
Dennis

Hallo Dennis,

danke! Die Platinen ätze ich bei uns, in der FH, im Reinraum mit einer FeCl3 (Eisen(III)-chlorid) Schaumätzanlage. Danach strippe ich sie noch, befreie sie vom Lack und dann kommen sie noch für 30 Minuten in ein Verzinnungsbad. Die Durchkontaktierungen mache ich entweder manuell (bohren und dann Kupferdraht verlöten) oder mit einer Stanze (sind ja eigentlich auch nur Nieten).

Mein Studiengang ist die Mikroelektronik, also die Herstellung von Halbleitern/ICs. Dazu kann ich unsere FH (Düsseldorf) wärmstens empfehlen, wir sind neine der wenigen Hochschulen die über das entsprechende Equipment verfügt.


Gruß
Andreas

debegr92
07.05.2012, 09:45
Hallo Andreas,

werde mir auf jeden Fall den Studiengang einmal näher anseehen!
Wünsch dir noch viel Erfolg mit deinem Humanoiden.

Kampi
07.05.2012, 15:30
Hallo Dennis,

danke! Die Platinen ätze ich bei uns, in der FH, im Reinraum mit einer FeCl3 (Eisen(III)-chlorid) Schaumätzanlage. Danach strippe ich sie noch, befreie sie vom Lack und dann kommen sie noch für 30 Minuten in ein Verzinnungsbad. Die Durchkontaktierungen mache ich entweder manuell (bohren und dann Kupferdraht verlöten) oder mit einer Stanze (sind ja eigentlich auch nur Nieten).

Mein Studiengang ist die Mikroelektronik, also die Herstellung von Halbleitern/ICs. Dazu kann ich unsere FH (Düsseldorf) wärmstens empfehlen, wir sind neine der wenigen Hochschulen die über das entsprechende Equipment verfügt.


Gruß
Andreas

Hallo Andreas,

das ist aber ein Vollzeitstudium oder ist das ein Abendstudium?

tucow
08.05.2012, 19:02
Hallo Daniel,

es ist ein Vollzeitstudium, kam auch gerade erst Heim :cool:


------------------------


Habe heute das BT Modul zum Laufen gebracht, es lief zwar schon und ließ sich programmieren aber der USART wollte nicht so ganz.
Das XPlained 128A1, welches ich als Mainboard nutze, hat einen internen USB <-> RS232/USART Umsetzer eingebaut, dieser nimmt dem xmega allerdings die Möglichkeit die beiden herausgeführten USARTs anderweitig zu nutzen. Ich konnte über BT Ausgaben des xmega empfangen aber nichts senden, da hat der Umsetzer nicht mitgespielt. Kurzum habe ich ein USB Kabel misshandelt, die Datenleitungen entfernt und nur die Spannungsversorgung für das Board geliefert und siehe da: es klappt!

Danach folgte der zweite Streich, das SRF05 anklemmen und Daten über BT senden: klappt!

Jetzt zum schwierigen Teil, ich habe die ADXL345 (2 Stück) im LGA Package auf die Breakoutboards gelötet. Es war etwas knifflig, zuerst kam die CR44 Lotpaste zum Einsatz, dann den Chip ausgerichtet und mit einer Kreuzpinzette dort gehalten wo er hin soll, Mit dem Kolben die Lotpaste erhitzt, unterm Chip natürlich Masseschlüsse erzeugt. Also, was tun? Ne große Menge Fluxi aufgetragen, mit dem Heißluftgerät alles auf Temperaturgefahren und das überschüssige Lot mit Entlötlitze von den Leiterbahnen geholt.
-> Keine Masseschlüsse mehr und alles ist wie es soll, alles in allem waren das gerade mal 15 Minuten Arbeit.

Morgen geht es dann daran die ADXL345 per SPI auszuwerten und die Servo Controller zu bohren, durchkontaktieren und zu bestücken.


Gruß
Andreas

rolber
08.05.2012, 20:31
Hallo tucow!

Habe auch mal über ein ähnliches Projekt nachgedacht.
Wurde aber von mir wegen der Komplexität verworfen.
Mir erscheinen die Servos etwas unterdimensioniert, aber vielleicht ist das Gesamtgewicht deines Bot doch geringer als ich denke.
Gegenlager hätte ich auch eingeplant, aber wenn deine Profile ausreichend Festigkeit bringen, Naja.
Habe dabei immer Bauchschmerzen, da die ganzen Kräfte voll in die Servoköpfe rein gehen.
Trotzdem viel Erfolg bei deinem Projekt und von der Elektronik her ist es ja auch nicht gerade Anspruchslos!!

MfG

Roland

Kampi
08.05.2012, 22:32
Hallo Daniel,

es ist ein Vollzeitstudium, kam auch gerade erst Heim :cool:



Das mit dem spät Heim kommen kenne ich....bin an Schultagen auch von 7 Uhr morgens bis halb 12 abends weg *hust*
Aber das es ein Vollstudium ist habe ich (nachdem ich die Frage gestellt habe) auch feststellen müssen. Bei einem Abendstudium gibt es diese "Spezialisierungen" wie du sie hast (sprich Mikroelektronik) nicht, soweit ich es richtig verstanden habe.
An für sich ist dieser Studiengang durchaus interessant. Würde ich auch sofort machen, wenn ich eine Möglichkeit habe meine Wohnung und mein Leben + Studium zu bezahlen (wobei mir dann das praktische Arbeiten während dem Studium wahrscheinlich fehlen würde :D )
Aber naja muss halt das "normale" Abendstudium neben der Arbeit her. Eventuell kann man ja später vlt sowas wie ne Spezialisierung anhängen (kenne mich da nicht so aus).
Aber ansonsten schönes Projekt. Gefällt mir richtig gut :D
Erinnert mich so ein bischen an den hier :D

http://www.golem.de/1111/87620.html

Sobald der so aussiehst sagste bitte eben Bescheid. Dann fahre ich fix nach Düsseldorf und mach ein Foto mit mir und dem :D

tucow
09.05.2012, 21:00
Hallo tucow!

Habe auch mal über ein ähnliches Projekt nachgedacht.
Wurde aber von mir wegen der Komplexität verworfen.
Mir erscheinen die Servos etwas unterdimensioniert, aber vielleicht ist das Gesamtgewicht deines Bot doch geringer als ich denke.
Gegenlager hätte ich auch eingeplant, aber wenn deine Profile ausreichend Festigkeit bringen, Naja.
Habe dabei immer Bauchschmerzen, da die ganzen Kräfte voll in die Servoköpfe rein gehen.
Trotzdem viel Erfolg bei deinem Projekt und von der Elektronik her ist es ja auch nicht gerade Anspruchslos!!

MfG

Roland

Hallo Roland,

von der Kraft her sind die Servos definitiv nicht unterdimensioniert, allerdings gebe ich Dir Recht das sie doch sehr stark beansprucht werden. Ich denke auch darüber nach ob ich noch Gegenlager (wenigstens an den Beinen) einbaue.






Das mit dem spät Heim kommen kenne ich....bin an Schultagen auch von 7 Uhr morgens bis halb 12 abends weg *hust*
Aber das es ein Vollstudium ist habe ich (nachdem ich die Frage gestellt habe) auch feststellen müssen. Bei einem Abendstudium gibt es diese "Spezialisierungen" wie du sie hast (sprich Mikroelektronik) nicht, soweit ich es richtig verstanden habe.
An für sich ist dieser Studiengang durchaus interessant. Würde ich auch sofort machen, wenn ich eine Möglichkeit habe meine Wohnung und mein Leben + Studium zu bezahlen (wobei mir dann das praktische Arbeiten während dem Studium wahrscheinlich fehlen würde :-) )
Aber naja muss halt das "normale" Abendstudium neben der Arbeit her. Eventuell kann man ja später vlt sowas wie ne Spezialisierung anhängen (kenne mich da nicht so aus).
Aber ansonsten schönes Projekt. Gefällt mir richtig gut :-)
Erinnert mich so ein bischen an den hier :-)

http://www.golem.de/1111/87620.html

Sobald der so aussiehst sagste bitte eben Bescheid. Dann fahre ich fix nach Düsseldorf und mach ein Foto mit mir und dem :-)

Hallo Daniel,

alles zu bezahlen ist nicht schwer, wir haben genügend offene Stellen für Hilfskräfte und Tutoren übrig ;) und praktisch ausgelegt ist das Ganze auch.

Naja, wie Asimo soll er gar nicht aussehen, ehr wie Optimus Prime ;)


Gruß
Andreas

Kampi
09.05.2012, 21:02
Hallo Daniel,

alles zu bezahlen ist nicht schwer, wir haben genügend offene Stellen für Hilfskräfte und Tutoren übrig ;) und praktisch ausgelegt ist das Ganze auch.

Naja, wie Asimo soll er gar nicht aussehen, ehr wie Optimus Prime ;)


Gruß
Andreas


Naja ist jetzt leider eh schon zu spät :(
Hab meinen Studienplatz in Essen schon sicher :D
Bekommt der dann auch ein Schwert :)?

tucow
09.05.2012, 22:59
Schade, in Essen kann ich Dich ja gar nicht quälen ;)
Obwohl ich dort auch des öfteren unterwegs bin. Nette City und alles nah zusammen, Sausalitos etc.

Nee kein Schwert, aber ich schnalle ihm unseren 1W Laser auf die Schulter, wie bei Nr. 5 lebt :D

tucow
11.05.2012, 20:16
Habe heute mal begonnen die Servo Controller Platinen zu bohren, 2 sind komplett fertig bei den anderen 2 hatte ich dann keine Lust mehr auf die Löcher für die Stiftleisten.

22339

Am Montag wird dann durchkontaktiert und bestückt.

tucow
14.05.2012, 20:09
Aktuell bin ich dabei die ADXL345 auszulesen, es scheint als wäre ich auf dem richtigen Weg. Leider hat mir heute meine UART/BT Kommunikation einen Strich durch die Rechnung gemacht.. sobald ich die x/y/z Variablen ausgeben will schießt sich der xmega eigenständig ins Nirvana. Nachdem ich dann den Fehler fand (Konflikte in der Übergabe der versch. Variablen) hatte ich keine Lust mehr im Labor zu hängen -> morgen gehts weiter.

Gleichzeitig arbeite ich an den Durchkontaktierungen für die Servo Controller, nervig, die werden wohl morgen auch fertig und dann gehts ans Bestücken.

tucow
08.06.2012, 18:16
Aktueller Status: Servo Controller sind fertig, die Kommunikation via SPI funktioniert auch nach einem kurzen Rückschlag.
Änderung: Ich bin vom Atmel Xplained abgesprungen.. es hat einfach zuviele Fehler die es untragbar machen das board bei meinem Projekt weiterhin zu verwenden, ich bin jetzt auf ein Arduino UNO R2 umgestiegen (Eigentlich bin ich ein strikter Arduino-Verweigerer aber weil es gerade bei uns im Labor ungenutzt rumlag hab ichs mir gegriffen).

Zum Rückschlag: Die SPI Kommunikation läuft mit dem Xplained _nicht_, egal was ich versucht habe.. bin dann zum UNO gekommen und es lief. Leider traten ziemlich krasse Brummspannungen auf die sich später als induzierte spannungen durch die Clock (4MHz) zu erkennen gaben, dies führte soweit das die Clock durch die induzierten Spannungen die Servo Controller sourcen konnte. Die SC haben keine externe Spannungsversorgung mehr gebraucht. Nachdem ich die clock dann auf 125kHz senkte hat sich alles normalisiert (der Testaufbau war schuld). Jetzt bin ich dabei ein Shield für den UNO zu layouten, um von dem ganzen Kabelgewirr Abstand nehmen zu können.


Fazit: induzierte Spannungen sind nicht nur für Ampeln, Teslaspulen usw. nützlich ;)



Gruß
Andreas

PS: Die induzierten Spannungen haben weniger gestört als man denkt!

tucow
18.06.2012, 18:21
So, die Bedenken mit den Servohörnern aus Plastik haben sich bewahrheitet, habe sie gegen welche aus blau eloxiertem Alu getauscht (die unterschiedlichen Bauformen kommen daher dass das große C kaum noch passende vorrätig hatte und ich keine 3 wochen auf neue wartehn kann).

Momentan laufen die Servos mit 5.54V und benötigen gerade mal ~100mA wenn der Bot einfach nur steht.

Die Steuerung per SPI funktioniert Interrupt gesteuert und beeinträchtigt die anderen Funktionen nicht. Aktuell dreht die SPI nur den Kopf (für den Ultraschall Sensor) von der Mitte nach links, rechts und zurück in die Mitte, später wird der SRF05 Werte für links sowie rechts nehmen und evaluieren in welcher Richtung mehr Platz ist.

Das Arduino Shield funktioniert perfekt, alles wie gedacht. BT macht keine Probleme, der ADXL345 läuft auch gut.

Alles in allem kann ich sagen: Alles super, bisher.


Mit der Programmierung von einfachen Bewegungen geht es morgen weiter, achja ein Unfall hat sich leider ereignet.. ein Servo Controller ist abgeraucht, kA wieso.. vor dem WE lief er noch, mehrfaches checken half nicht. Wird erneut geätzt und bestückt.

https://dl.dropbox.com/u/5841140/IMG_1166.jpg
https://dl.dropbox.com/u/5841140/IMG_1167.jpg

Kampi
18.06.2012, 19:00
Der Arbeitsplatz sieht so geil aus >.<
Der Robo natürlich auch :D

tucow
22.06.2012, 00:41
Hehe, danke danke ;)
Musst ihn Dir bei Gelegenheit mal real anschauen :cool:

Aktuell habe ich die Registermap fertig über die das Mainboard dann die einzelnen Controller bzw auch Servos ansteuern kann, die ganze Sache ist so gedacht dass das Mainboard z.B. 0x00 an die Controller sendet um diese in ihre jeweilige ausgangs Position zu bringen, dann gibt es noch Register die jedem Controller sagen wofür er eingesetzt wird. Sende ich z.B. 0xE1 wird der Controller wissen das er für das linke Bein verantwortlich ist, wichtig ist das Ganze da ich in jeden Controller das selbe Programm flashe (JTAG Daisy Chain) um das nervige flashen und auch anpassen des Programms an den jeweiligen controller zu vermeiden.

Bei dem Mainboard bin ich dran das ich es ggf per BT flashen kann (Arduino Bootloader der die hex File via RS232 empfängt).

debegr92
22.06.2012, 05:32
Hmm so wie du es hier schreibst hast du viele Servo Controller. Das könnte nacher dein Flaschenhals sein, da du an jeden Daten seperat schreiben musst um eine Bewegung durchzuführen. Ganz besonders wenn du quasi live auf Bewegungen reagieren musst (ADXL).
Aber sonst sieht dein Roboter wirklich toll aus, aber das hab ich dir ja schon gesagt.

Kampi
22.06.2012, 05:34
Hehe, danke danke ;)
Musst ihn Dir bei Gelegenheit mal real anschauen :cool:

Aktuell habe ich die Registermap fertig über die das Mainboard dann die einzelnen Controller bzw auch Servos ansteuern kann, die ganze Sache ist so gedacht dass das Mainboard z.B. 0x00 an die Controller sendet um diese in ihre jeweilige ausgangs Position zu bringen, dann gibt es noch Register die jedem Controller sagen wofür er eingesetzt wird. Sende ich z.B. 0xE1 wird der Controller wissen das er für das linke Bein verantwortlich ist, wichtig ist das Ganze da ich in jeden Controller das selbe Programm flashe (JTAG Daisy Chain) um das nervige flashen und auch anpassen des Programms an den jeweiligen controller zu vermeiden.

Bei dem Mainboard bin ich dran das ich es ggf per BT flashen kann (Arduino Bootloader der die hex File via RS232 empfängt).

Anschauen wäre cool ;)
Vielleicht auch paar Fotos machen. Musst mir nur sagen wann du wie lange da bist, damit ich das mit meiner Arbeit abstimmen kann ^.^
Nen Mikrocontroller per Wireless flashen hatte ich auch schon mal überlegt. Und zwar wollte ich mein RN-Control mittels XBee über Funk programmieren. Das RN-Control hat ja auch einen UART Bootloader der auch nur Rx und Tx benötigt......allerdings hat es beim erstem mal nicht direkt geklappt und dann habe ich es liegen gelassen :P

Kampi
22.06.2012, 05:56
Hmm so wie du es hier schreibst hast du viele Servo Controller. Das könnte nacher dein Flaschenhals sein, da du an jeden Daten seperat schreiben musst um eine Bewegung durchzuführen. Ganz besonders wenn du quasi live auf Bewegungen reagieren musst (ADXL).
Aber sonst sieht dein Roboter wirklich toll aus, aber das hab ich dir ja schon gesagt.

Naja das Problem kann er umgehen, indem er die Servocontroller priorisiert ähnlich dem Prinzip bei einem CAN-Bus. Wenn er zum Beispiel sagt, das die Servocontroller mit der niedrigsten Adresse die höchste Prioritöt haben, weil die für das Laufen zuständig sind und das nunmal wichtiger ist als mit dem Kopf wackeln, dürfte sich das Problem damit erledigen.
Jetzt weiß ich natürlich nicht in wie weit das Hardwarebedingt machbar ist bzw. ob das bereits mit eingeplant wurde :D

tucow
26.06.2012, 20:51
Hmm so wie du es hier schreibst hast du viele Servo Controller. Das könnte nacher dein Flaschenhals sein, da du an jeden Daten seperat schreiben musst um eine Bewegung durchzuführen. Ganz besonders wenn du quasi live auf Bewegungen reagieren musst (ADXL).
Aber sonst sieht dein Roboter wirklich toll aus, aber das hab ich dir ja schon gesagt.

Hey,

das wird kein Problem da das Mainboard nur Befehle an die einzelnen Controller schickt und keine komplexen Bewegungsabläufe, die sind alle in den Controllern hinterlegt. Zum Beispiel bringt die Adresse 0x50 den linken Arm in Mittelstellung (zur Seite gestreckt) und 0xF2 lässt den Bot den linken Arm über dem Kopf beugen und den Kopf nach links drehen.


Das Video demonstriert genau diese Bewegungen:


http://www.youtube.com/watch?v=14NPddn745A
(Vor einem Kommentar a la "man ist der wackelig" bitte meine Beschreibung auf YouTube dazu lesen!)

tucow
26.06.2012, 20:54
Anschauen wäre cool ;)
Vielleicht auch paar Fotos machen. Musst mir nur sagen wann du wie lange da bist, damit ich das mit meiner Arbeit abstimmen kann ^.^
Nen Mikrocontroller per Wireless flashen hatte ich auch schon mal überlegt. Und zwar wollte ich mein RN-Control mittels XBee über Funk programmieren. Das RN-Control hat ja auch einen UART Bootloader der auch nur Rx und Tx benötigt......allerdings hat es beim erstem mal nicht direkt geklappt und dann habe ich es liegen gelassen :P

Das flashen per BT hängt erstmal am Nagel, klappt nicht so ohne weiteres.. -.-
Also da bin ich eigentlich jeden Tag, jedenfalls bis zum 5.7. denn dann ist die Demo vom Bot, danach ist akutes lernen angesagt für die Klausurphase. Am 5.7. soll er auch schon die Beine bewegen und gehen, ob es bis dahin nur seitwärts geht oder auch schon vor und zurück weiss ich noch nicht.

Kampi
26.06.2012, 21:42
Cool. Sag mir mal die Adresse der Schule bzw. wie ich da am einfachsten mit öffentlichen Verkehrsmitteln hinkommen kann :D
Dann komme ich (denk ich mal) diese Woche noch vorbei :D

tucow
01.07.2012, 18:49
Sooo, die Fortbewegung klappt!

Er kann zwar nur zur Seite gehen, aber es ist eine Fortbewegung aus dem Stand heraus und er fällt dabei nicht um *g*
Einziges Manko: der Stromverbrauch ist für mein Labornetzteil daheim etwas zu hoch, es schafft nur 5A und geht dann in die Strombegrenzung was ihn etwas zappeln lässt, trotzdem bewegt er sich :)

Morgen werde ich ihn im Labor, in der Uni, an leistungsfähigere Netzgeräte anschließen und mal schauen wie er sich dann verhält, wenn mir das Ergebnis gefällt gibts wieder ein Video und dann gehts daran eine Abfolge für die Demo am Donnerstag zu entwerfen.


Gruß
Andreas

tucow
05.07.2012, 02:19
Seit Kampi am Montag da war hat sich einiges getan, aber seht selbst:

http://www.youtube.com/watch?v=4l-ErlbHWCA

Es scheint als komme das Aufschaukeln von den Fußplatten sowie sich lösenden Schrauben, muss sie mal mit Schraubensicherung versehen um dies auszuschließen. Und natürlich gibt das Alu durch die einseitige Lagerung doch erheblich mehr nach als ich dachte. Für den nächsten Prototypen werde ich die beine überarbeiten, mit Gegenlagern.


Gruß
Andreas

Kampi
05.07.2012, 05:23
Das sieht ja schonmal sehr viel besser aus als Montag :D
Der wackelt wenigstens nicht mehr so stark das man Angst haben muss das er jeden Moment umfällt :)

021aet04
05.07.2012, 18:49
Der sieht sehr gut aus. Das wackeln wirst du schon lösen können. Eventuell mit etwas Gewicht an den Füßen, damit der Schwerpunkt etwas niedriger wird.
Warte auf weitere Videos.

MfG Hannes

robots4-ever
05.07.2012, 19:08
Also nur mal so eine Idee von mir wie wäre es wenn du ein Gleichgewichtsensor einbaust und dann die Software so anpasst das der Roboter automatisch je nach dem was der Sensor "sagt" ausgleicht. Wenn du das nicht schon eingebaut hast.

robo_tom_24
05.07.2012, 19:26
Es ist ein Lagesensor eingebaut, hat er sogar im Video gezeigt, nur erfordert das denk ich mal so viel Rechenleistung, da man permanent Ist und Soll-Werte vergleichen und danach handeln muss...
Ausserdem ist das ein Prototyp...

Die Gegenlager sind denk ich wirklich die beste Lösung ;)

Kampi
05.07.2012, 19:30
Es ist ein Lagesensor eingebaut, hat er sogar im Video gezeigt, nur erfordert das denk ich mal so viel Rechenleistung, da man permanent Ist und Soll-Werte vergleichen und danach handeln muss...
Ausserdem ist das ein Prototyp...

Die Gegenlager sind denk ich wirklich die beste Lösung ;)

Mein letzter Stand von Montag war das der in der Software noch nicht implementiert war :D
Aber wenn man das Kerlchen mal live sieht, sieht es gleich dreimal beeindruckender aus als in dem Video.

Btw...was macht das Ambilight von deinem Kollegen? Habt ihr das "Problem" mit dem FTDI-Chip lösen können?

robo_tom_24
06.07.2012, 00:27
Aber wär das nicht zu viel "Verbrauch" an Rechenleistung?
Da muss wirklich oft gemessen und verglichen werden....

Kampi
06.07.2012, 05:32
Aber wär das nicht zu viel "Verbrauch" an Rechenleistung?
Da muss wirklich oft gemessen und verglichen werden....

Denke ich nicht. Die Controller können schon einiges ausführen bevor die überfordert sind. Und du musst ja auch nicht jede µs messen. Es reicht ja wenn du in Zeiträumen von 1ms o.ä. misst.

robo_tom_24
06.07.2012, 11:14
Ja, da hast du recht, 1000x pro Sekunde ist sicher oft genug ;)
und 1ms sind für einen µC sowieso schon eine halbe ewigkeit....

tucow
07.07.2012, 21:23
Wow, auf soviel Feedback war ich gar nicht eingestellt, dann fange ich mal an die antworten "abzuarbeiten" :mrgreen:





Also nur mal so eine Idee von mir wie wäre es wenn du ein Gleichgewichtsensor einbaust und dann die Software so anpasst das der Roboter automatisch je nach dem was der Sensor "sagt" ausgleicht. Wenn du das nicht schon eingebaut hast.
Es ist ein ADXL345 verbaut, allerdings wird er bisher nur ausgelesen und noch nicht verarbeitet. Es war erstmal nur wichtig ihm irgend eine Art von fortbewegung und Demo-Pose zu verpassen damit er am Tag der Demo (letzter Donnerstag) auch etwas kann. Die Daten vom ADXL345 werden auf jeden Fall noch verarbeitet werden.




Es ist ein Lagesensor eingebaut, hat er sogar im Video gezeigt, nur erfordert das denk ich mal so viel Rechenleistung, da man permanent Ist und Soll-Werte vergleichen und danach handeln muss...
Ausserdem ist das ein Prototyp...

Die Gegenlager sind denk ich wirklich die beste Lösung :wink:
Die Rechenleistung spreche ich gleich bei Kampi's Post an ;)
Es wird auf neue Beine mit Gegenlagern hinauslaufen, wir bekommen in nächster Zeit eine CNC ins Labor und da kann ich mich dann austoben (werde auch statt AlMg3 beim nächsten AlMgSi1 benutzen).




Mein letzter Stand von Montag war das der in der Software noch nicht implementiert war :-)
Aber wenn man das Kerlchen mal live sieht, sieht es gleich dreimal beeindruckender aus als in dem Video.

Btw...was macht das Ambilight von deinem Kollegen? Habt ihr das "Problem" mit dem FTDI-Chip lösen können?
Genau, noch nicht implementiert ;) Das Amilight läuft ziemlich gut nun, was genau die Beiden nun gemacht haben weiss ich nicht.




Aber wär das nicht zu viel "Verbrauch" an Rechenleistung?
Da muss wirklich oft gemessen und verglichen werden....

Denke ich nicht. Die Controller können schon einiges ausführen bevor die überfordert sind. Und du musst ja auch nicht jede µs messen. Es reicht ja wenn du in Zeiträumen von 1ms o.ä. misst.
Also das Mainboard (Arduino UNO) wird das nicht überfordern, es ist eigentlich nur dafür da die Daten der Sensoren zu verarbeiten und über SPI die Register der einzelnen Servo Controller anzusprechen um die benötigten/gewünschten Bewegungen auszuführen. Sollte er mal ausfallen haben die einzelnen Gliedmaßen noch immer ihre "Eigenintelligenz" und sorgen dafür das der Bot, bis das Mainboard wieder bereit ist, in seiner letzten Position verharrt. Würden darüberhinaus (worst case) die einzelnen controller zeitweise ausfallen, kehren sie bei Reaktivierung in ihre Ursprungsposition zurück.
Okay ich bin genug abgeschweift, um es auf den Punkt zu bringen: ein Servozyklus umfasst 20ms, und das sind für das Mainboard mit ATmega32 und 16MHz eine Ewigkeit.

Kampi
07.07.2012, 22:41
Also das Mainboard (Arduino UNO) wird das nicht überfordern, es ist eigentlich nur dafür da die Daten der Sensoren zu verarbeiten und über SPI die Register der einzelnen Servo Controller anzusprechen um die benötigten/gewünschten Bewegungen auszuführen. Sollte er mal ausfallen haben die einzelnen Gliedmaßen noch immer ihre "Eigenintelligenz" und sorgen dafür das der Bot, bis das Mainboard wieder bereit ist, in seiner letzten Position verharrt. Würden darüberhinaus (worst case) die einzelnen controller zeitweise ausfallen, kehren sie bei Reaktivierung in ihre Ursprungsposition zurück.
Okay ich bin genug abgeschweift, um es auf den Punkt zu bringen: ein Servozyklus umfasst 20ms, und das sind für das Mainboard mit ATmega32 und 16MHz eine Ewigkeit.

Das erste was du implementieren solltest wenn der Beschleunigungssensor arbeitet, ist eine Routine womit sich der Bot abstützt wenn er nach vorne kippt :D
Mit Servozyklus meinst du die komplette Abarbeitung aller Servos?

tucow
07.07.2012, 23:32
Mit einem Servozyklus meine ich die Zeit die zwischen der Anwahl der Position und der endgültigen Stellung liegt, d.h.: 20ms + 0.16sec/60degree

Kampi
07.07.2012, 23:38
Mit einem Servozyklus meine ich die Zeit die zwischen der Anwahl der Position und der endgültigen Stellung liegt, d.h.: 20ms + 0.16sec/60degree

Ah ok :)
Aber auch ne gute Zeit ^.^

tucow
08.07.2012, 00:47
Reicht für etwaige Berechnungen völlig aus :cool:
Das Mainboard ist ja nach dem Ansprechen der Register völlig frei und idlet so vor sich hin.

tucow
06.01.2013, 00:41
Ich habe ein Update zu melden!



Der Arduino Uno fliegt endgültig raus und auf ein Raspberry Pi und damit Linux umgestellt. (erledigt)
Die 4 einzelnen Servo Controller werden durch einen auf Basis des PCA9685 von NXP ersetzt. (in Arbeit)
Die Programmierung wird in Zukunft ausschließlich per Python erfolgen. (in Arbeit)
Bluetooth fällt weg (erledigt)
Wifi kommt hinzu (erledigt)
Julius Spracherkennung wird eingeführt (in Arbeit)
Der SRF05 wird durch eine Bilderkennung ersetzt (geplant)
Das Skelett wird grundlegend überdacht und überarbeitet! (in Arbeit)
Der ADXL345 wird das Verhalten dynamisch beeinflussen können (in Arbeit)



Die höchste Priorität haben zur Zeit 3 Sachen: Umstellung auf Python, das neue Servoboard und das Skelett.
Aus Zeitmangel kann ich im Moment nicht viel daran arbeiten, aber es geht voran, ab mitte März ist dann wieder mehr Zeit vorhanden und es geht mit Vollgas weiter!

Durch die ganzen Umstellungen werden ab dem 30.1. einige Teile überflüssig sein (Bluetooth Modul, Servo Controller, Arduino Breakout-Shield), falls Interesse besteht können diese fertig bestückt den Besitzer wechseln, ich werde dazu aber dann im richtigen Bereich des Forums Beiträge erstellen ;)

HeXPloreR
06.01.2013, 09:06
Hallo,

also ich hätte schon mal interesse an dem Blueooth Modul (BTM-222?) :)

Viele Grüße

tucow
06.01.2013, 10:15
Hey HeXPloreR,

das machen wir dann lieber per PN, hier ist ja nicht das Forum zum Verkaufen. Nachher meckert noch jemand ;)


Gruß

HannoHupmann
06.01.2013, 13:42
Die fiesen Moderatoren kreisen schon mit argus Augen über dem Thread, um sich mit mahnendem Zeigefinger zu Wort zu melden.... :-D

Spass beiseite ich wollte auch immer einen Roboter mit Python programmieren, da ich diese Programmiersprache so schön intuitiv fand (wärend C auf Hardwareebene etwas sperrig sein kann). Doch leider ist es bei mir immer an den mangelnden Linux Kenntnisse gescheitert über Python ordentlich die Hardware anzusprechen, dabei hab ich meinem damaligen Prof auf die Weise sogar zu einem eigenen Embedded Board für Hobbybastler animiert. Leider wurde wärend meiner Studienzeit nichts mehr daraus und jetzt ist es glaub ich wieder in der Versenkung verschwunden.

Bin daher gespannt wie gut das bei dir funktioniert.

tucow
08.01.2013, 14:41
Ich sollte zwar eigentlich was anderes machen, aber ich bin gerade dabei den ADXL345 über das RPi per i2c auszulesen, erkannt wird er schonmal nun ist das Python script dran. Wird mein erstes "komplexeres" py script.

Sobald es klappt stelle ich das script mal ein.

tucow
23.01.2013, 22:31
So, die bisherigen Modifikationen sind nun soweit das der Bot nun mit einem Akku betrieben wird, eine Ladung sollte circa 2 Stunden halten.

Das Raspberry Pi steuert nun alles per Python, Servos/ADXL345/etc. (Den Python Code veröffentliche ich in ein paar Tagen.)

Der SRF05 ist leider defekt (lief plötzlich nicht mehr).. hat da vielleicht jemand eine Idee was da passiert sein kann? Klar, Ferndiagnosen ohne Infos sind schwierig bis unmöglich aber evtl. hat schon jemand solche Erfahrungen gemacht? Nachdem er einige Wochen rumlag geht nun nichts mehr.. er sendet nicht nur keinen US mehr aus, nein, auch die Betriebsanzeige (LED) geht nicht mehr.


Zu dem RPi muss ich noch sagen: passt bloß auf wenn ein Spannungswandler das Board über die GPIO Pins versorgt, ich habe bisher 2 unschöne Beobachtungen gemacht.. zum Einen himmelt die 2. Revision des Modell B das Image der SD Karte schon bei geringer Überspannung und zum Anderen wird das Image gehimmelt wenn der Schaltregler beschließt das er zuwenig U_in bekommt, abschaltet und kurz drauf wieder anspringt weil der Akku wieder genügend U_in liefert.. das hat mir vorhin die Datenpartition gekillt ;) Jetzt habe ich ein eigenes Image der Karte, nun kann es so oft himmeln wie es will.. morgen ändere ich noch etwas an der Spannungswandler Platine und dann sollte das ganze stabil laufen.


@Kampi: Seit der Akku drin ist hat sich der Schwerpunkt so gut verlagert, das die Bewegungen den Bot kaum noch zum Wanken bringen, das Skelett wird aber trotzdem nochmals überarbeitet ;)