PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sehr interessiert, aber mangelndes Wissen!



HULLAC
19.09.2008, 12:31
Liebe Roboterkonstrukteuere!

Ich bin nun schon seit einiger Zeit hier auf roboternetz.de angemeldet und habe sehr interessiert im Forum und im RN Wissens Bereich gestöbert. Je mehr ich darüber lese um so interessanter wird für mich der gesamte Stoff. Leider hatte ich bisher mit der Konstruktion von Robotern nicht`s zu tun weshalb ich mich da auch nicht auskenne. Ebenso beim Programmieren. Ich weiß es ist vielleicht lästig immer wieder für euch doch so einfache Abfolgen immer wieder erklären zu müssen, aber mir brennen ein paar Fragen auf der Zunge die ich mir selber nicht beantworten kann.

Besonders fasziniert war ich von den Hexapod Bauprojekten. Nicht, dass ich vorhätte mir auch einen zu bauen, denn daran mangelt es an Erfahrung und vor allem an Wissen um an ein solches Projekt überhaupt denken zu können. Trotzdem beziehen sich meine Fragen speziell auf dieses Gebiet hin.
Besonders nachdenklich wurde ich beim Projekt von "Copious" für den "Skorpion". Deshalb nun hier meine Fragen (Bitte korrigiert mich, wenn ich etwas falsch verstanden habe):

Wie dort beschrieben besteht ein Bein vorerst aus zwei Modulen. Das bedeutet, dass für die Steuerung eines Beines drei Motoren verwendet werden. Dazu braucht man dann zwei Motortreiber L293D mit jeweils zwei verbauten H-Brücken (also kann man mit zwei Treibern vier Motoren ansteuern). Als Controller findet pro Bein ein Mega168 Anwendung, also sechs insgesamt. Dies ist dann so zu verstehen, dass ein Controller zwei H-Brücken, somit vier Motoren ansteuert und gleichzeitig die verbauten Sensoren(Drucksensoren, Drehgeber...)aus den Beinen auswertet? Werden die sechs Controller alle dann von einem übergeordneten Controller verwaltet, wenn ja, wie funktioniert das? Werden die Controller alle einzeln vorprogrammiert oder kann man über den Zentralen Controller auf diese noch zugreifen?
Wie funktioniert das eigentlich genau, wenn ein Sensor Daten auswertet, diese an den Controller sendet und dann die Motoren entsprechend ansteuert (als Beispiel die Bewegung eines Beines bis das Bein aufsetzt und der Sensor den Kontakt meldet)? Wie wird eigentlich ein Laufrhythmus für einen Hexapod generell Programmiert damit alle Beine miteinander Koordiniert werden? Aufgrund der Sensorauswertung muss ja jedes Bein im Stande sein unabhängig von den Anderen eine Ausweichbewegung bei Hindernissen zu machen. Wie programmiere ich dies in den Controller damit dieser weiß was zu tun ist?

Wie ihr seht habe ich Fragen über Fragen. Womöglich liegen die Ergebnisse direkt vor meinen Augen und ich sehe sie einfach nicht. Aber da mich die Materie sehr beschäftigt und ich gerne in diesen Sektor einsteigen möchte würde ich gerne im Voraus wissen worauf genau ich mich da einlasse. Als Einstieg für mich selber werde ich wie im RN Wissens Bereich "AVR Einstieg leicht gemacht" beschrieben erst mal versuchen einen Controller ATMega32 dazu zu bringen über die dort ausführlich beschriebene Beschaltung auf einem Steckbrett eine LED zum Blinken zu bringen. Wenn das funktioniert werde ich weiter machen und versuchen immer schwierigere Schaltungen zu versuchen um dann irgendwann mal einen Roboter selber bauen und programmieren zu können.

Deshalb danke ich euch allen die ihr mir auf meine Fragen antwortet schon mal im Voraus und hoffe durch eure mithilfe und euer Fachwissen dann ein Projekt in Angriff nehmen zu können.

Herzlichen Dank


HULLAC

HannoHupmann
19.09.2008, 13:07
@HULLAC ich will versuchen ein paar der Fragen zu beantworten. Prinzipell werden alle Controller vorprogrammiert und über eine Schnittstelle (I²C UART, oder einfach nur ein paar I/O Leitungen) können diese Daten austauschen. Z.B. sendet der Chef an seine Beincontroller vorwärts laufen (als Datenstrom z.B. 1111) und die Controller führen dann ein eintsprechendes Programm aus.

Jetzt zur Beinsteuerung: Bei den meisten Hexas handelt es sich um dumme Kreaturen. D.h. sie wissen nie wann ihr Bein auf dem Boden steht. Es wird angenommen vom Programmierer, dass ein Bein bei einem Winkelwert von sagen wir 45° auf dem Boden stet. Befindet sich jetzt ein Loch oder ein Hügel an der Stelle bekommt es der Roboter nicht mit, sondern kippt, im ungünstigen Fall, einfach um. Auch können die Beine keine Hindernisse erkennen an denen sie hängen bleiben. Der Motor dreht weiter bis er entweder die Position erreicht oder durchbrennt.

Um diesen Blindflug zu vermeiden gibt es ein paar ganz wenig Hexas deren Beine Rückmeldungen geben. D.h. die melden wenn der Motorstrom zu stark wird (=hängen geblieben) kein Kontakt mit dem Boden stattfindet (= Loch) oder eben der Kontakt früher auftritt als erwartet (=Berg). Da ein Bein mit soviel Intelligenz sehr teuer ist, können sich sowas meisten nur Forschungsinstitute leisten (das DLR baut gerade einen entsprechenden Hexa der sich an den Untergrund anpassen kann).
Privat einen Hexa zu bauen der sich an den Untergrund anpasst ist fast unmöglich.

Allgemein ist es bei Roboter immer so, dass selbst die einfachsten Aufgaben für den Mensch ein sehr großes Problem für eine Maschine sind.

viele Grüße
Hanno

Roboman93
19.09.2008, 22:44
nochmal zur vernetzung der controller: die beincontroller rechnen auch schon ver dem senden an den haubtcontroller bestimmte daten wie winkel aus, um den haubtcontroller zu entlasten und zeit bei der übertragung zu sparen.

mfg roboman

johns
20.09.2008, 17:02
hallo,


Da ein Bein mit soviel Intelligenz sehr teuer ist, können sich sowas meisten nur Forschungsinstitute leisten

vorweg, ich habe mich noch nie explizit mit hexapods auseinandergesetzt, doch bzw daher meine ich dass taktiles feedback doch relativ leicht und günstig zu realisieren sei. ich denke dabei an messung des stroms der motoren mittels interner ADCs der beincontroller, dazu noch pro fuss ein IS471F oder als luxusvariante sharp GP2Dirgendwas (die mit 3-40cm), als sparvariante einfache taster. überschlagsmässig ergeben sich material(mehr)kosten von ca 30euro aufwärts...

lg

squelver
23.09.2008, 09:54
Hallo HULLAC \:D/

ich habe den Thread zufällig gesehen. Bin zwar oft auf der Seite, schaue mir aber nicht jeden Thread an. Hättest du in meinem Projekt-Thread geschrieben bzw. gefragt, dann wäre ich eher drauf aufmerksam geworden ;)

Ich habe genau das vor. Ich will einen Mega168 pro Bein verwenden über den ich zwei L293D Motortreiber steuere und zusätzlich Sensorwerte unter anderem auch für Bodenkontakt auswerte und verarbeite.

Alle Controller von jedem Bein werden, ich bin noch nicht sicher welcher es sein wird, von einem großen (Brain) verwaltet. Ich stelle mir das ungefair so vor, dass jeder Beincontroller sein Bein kennt und nur noch Befehle entgegen nimmt bzw. den Zustand von sich und seinen Sensoren zurück gibt :)

@HannoHupmann
Wie kommst du darauf bzw. woher kommt deine Meinung, dass es teuer werden würde, wenn man Fusssensoren einsetzten will?

MeckPommER
23.09.2008, 12:53
Das mit den "intelligenten" Beinen beschäftigt mich derzeit auch. Das Schwierige ist, eine geeignete Sensorart zu finden.
Derzeit sind unbeschaltete Taster in den Beinen meines Bots, aber ich denke, das die irgendwann entfernt werden um Besserem Platz zu machen.
Ein Tasterm "merkt" nur das Aufsetzen des Beines - schon mal nicht schlecht. Ein Distanzsensor müßte schon zwischen 0 und vielleicht 2cm arbeiten und die Entfernung zum Boden sehr exakt bestimmen können. Es bringt ja nicht viel, wenn ein Bein meldet, das der Untergrund dichter als 3cm von der Fußspitze entfernt ist.
Problematisch ist aber, das das Bein nicht eigenständig einem Hindernis aus dem Weg gehen darf. Dem Hindernis aus dem Weg gehen bedeutet, das es zunächst nicht aufsetzt und den Bot nicht trägt. Das darf es auf keinen Fall machen ohne (über einen Master) abzufragen, ob der Bot diese Ausweichbewegung "verkraftet".
Doch Hindernisse können nicht nur auf dem Beinweg nach unten, sondern auch auf dem Beinweg nach vorne oder hinten sein. Hier nützt einem kein Taster, sondern nur (per Strommessung) die Kraftmessung an den Servos.

Fließt ein Strom über einer bestimmten Größe, haut das Bein grade irgendwo gegen. Nette Idee, aber so wird das nichts, befürchte ich, denn folgende Schwierigkeiten kommen mir in den Sinn.
- Fließt ein unerwartet großer Strom durch das Schulterservo, ergibt dies noch keine genaue Aussage, wo sich das Hindernis befindet. Es ist irgendwo auf der gesamten Länge des Beines.
- Wo liegt die Stromgrenze, bei der ein Hindernis detektiert wird? Je nach Schrittart des Bots (5 Beine in der Luft, 1 bewegt sich / 4,2 / 3,3) treten ganz andere Stromstärken auf.
- Drückt man von oben auf einen stehenden Bot - detektieren dann alle Beine aufgrund des höheren Stroms, ein Hindernis?

Die Schwierigkeit liegt nicht direkt in den Kosten der Fußsensoren, sondern eher im nötigen Hirnschmalz und dem Zeitaufwand.
Höhere Kosten könnte ich mir nur insofern vorstellen, das die ganze Elektronik, Sensorik, etc. den Bot irgendwann so schwer machen, das die Botgröße und die damit nötigen Servos/Akkus etc. die Kosten in die Höhe treiben.

radbruch
23.09.2008, 17:34
Hallo


Hier nützt einem kein Taster, sondern nur ... die Kraftmessung an den Servos.
Die Kraftmessung an einem Servo habe ich hier mal getestet:

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=37927

Ich habe das noch nicht weiter verfolgt weil ich kein Oszi habe/nur Billigservos besitze/ keinen Hexapod bauen will/zur Zeit immer noch allgemeine Grundlagenforschung betreibe...

Vielleicht mag das mal jemand aufgreifen und nachbauen. Mich würde interessieren ob auch andere Servos diesen Effekt zeigen und ob man das auch mit dem Oszi sehen kann.

Gruß

mic

hexabotix
23.09.2008, 19:21
... die melden wenn der Motorstrom zu stark wird (=hängen geblieben) kein Kontakt mit dem Boden stattfindet (= Loch) oder eben der Kontakt früher auftritt als erwartet (=Berg). Da ein Bein mit soviel Intelligenz sehr teuer ist, können sich sowas meisten nur Forschungsinstitute leisten

Kurze Wortmeldung dazu: Es gibt intelligente Servos auf dem Markt, die unter anderem den Stromverbrauch bzw. davon abhängige Schwellenwerte rückmelden können und die man deshalb in tastenden Extremitäten verwenden kann. Diese kann man sich auch als Nichtforschungsinstitut (vielleicht gerade noch) leisten. Stichwort "ax-12 robotis". Preis ca. 40 Eurons/Stück.

Hier z.B. http://ro-botica.com/bioloid-servo-AX12.asp
oder hier http://robosavvy.com/store/product_info.php/manufacturers_id/15/products_id/137?