PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schritte synchronisieren



Matei
20.10.2004, 07:35
Hallo zusammen,

ich habe ein mittelschweres Problem und hoffe auf Hilfe. Für ein Schulprojekt sollten wir einen sechbeinigen Laufroboter entwickeln, mit den Vorgaben links/rechts steuerbar, vor/zurück, v=9cm/s.
Soweit so gut, nur mit dem links/rechts gibts Probleme. Wir haben für jede Seite einen Motor verbaut und wollten die Drehzahl durch Potis in einer Kabelsteuerung regeln so das eben eine Seite langsamer läuft als die andere und der Roboter damit eine Kurve fährt. Nur durch unser Konzept (siehe Anhang) bekommen wir das Problem das die Beine links/rechts jeweils um 180° versetzt auf den Zahnrädern sitzen müssen, und wenn eine Seite langsamer läuft eben die 180° nicht mehr gegeben sind sondern im dümmsten Fall die Füße links und rechts gleichstehen.
Gibt´s ne Möglichkeit das ganze irgendwie elektronisch zu regeln mit Sensoren oder so das die 180° Versatz eingehalten werden. Dass meinetwegen bei einer Kurve die eine Seite stehen bleibt und ein Geradeauslauf erst wieder möglich ist, wenn die 180° wieder erreicht worden sind?!



Schon mal vielen Dank im voraus...

RCO
20.10.2004, 10:10
Also an einem Umbau kommt ihr da wohl nciht vorbei, schließlich bietet das System ja keine Möglichkeit der Felxibilität.
Man müsst halt versuchen, das Ding so zu konstruieren, dass man alle dre zueinander gehörenden Beine, also das vordere und hintere der einen Seite und das mittlere der anderen Seite über Querstangen oder so zusammen kirget, so, dass sie unabhängig vvon den anderen 3 zusammenhängenden Beinen bewegt werden. Dann könnte man halt über die Drehzahl der beiden Motoren die Richtung bestimmmen.

MFG moritz

RCO
20.10.2004, 10:52
Hm. ist wohl etwas schwieriger, schaut euch mal das Video an:

http://www.frank-popp.de/HEXABOT/hexabot.html

Involut
20.10.2004, 13:26
Hi,
also nix für ungut aber ich halte von der Konstruktion nicht viel.
Oder anders gesagt habt ihr schon einen Protoypen gebaut der vernünftig geradeausläuft?
Wenn ja habt ihr meinen Respekt.Ehrlich!
Wie RCO schon gesagt hat kommt man an einer einzelnen Steuerung für jedes Bein nur Vorbei wenn man jeweils Drei Beine zu einer Mechanischen Einheit zusammen fügt.
Dabei nimmt man:Erstes Bein=(Vorne Links+Mitte Rechts und Hinten links)
und fürs Rechte umgekehrt.
Dadurch Steht der Robo immer auf einem Relativ stabilem 3ECK.
2*(Bein hoch,runter) 2*(Bein vor zurück) = 4 Motoren.
Meiner Meinung nach ist es günstiger/einfacher nicht zu machen.
Ich lass mich aber gerne eines Besseren belehren.

mfg

PS Nur Interese halber, was ist das für eine Schule/Projekt?

RCO
20.10.2004, 13:31
Also ich fürchte auch, dass es beim wenden nicht ausreicht, die drei Beine einfach nur gegeneinander laufen zu lassen. IM Video sieht man ja, dass da auch anders gesteuert wird. Ich lasse mich natürlich gerne eines besseren belehren.

Matei
21.10.2004, 07:21
Zuerst mal danke für die Mühe. Aber wenn ich jeweils 3 Füße mechanisch verbinde löst das das Problem auch nicht.

Ist für ne Technikerabendschule, ist daher auch fraglich ob er jemals gebaut wird. Das Konzept wie wir es haben gibt es schon (hab ich irgendwo aus dem Internet gefummelt, wir haben das Rad nicht neu erfunden), sollte also funtionieren - nur war dieser Roboter nicht rechts/links steuerbar, diese Auflage hat uns unser Dozent erst später reingedrückt, und jetzt suchen wir natürlich nach einer Lösung damit nicht alles bis jetzt für´n A.... war.

Unsere Idee: Die vor/zurück Steuerung mit Öffnern versehen dass sobald links/rechts gesteuert wird der geradeauslauf unterbrochen wird und er sich dreht. Und die links/rechts Steuerung mit Selbsthaltung und Sensoren (Näherungsensoren an die Zahnräder) das die links/rechts Bewegung gestoppt wird und der Stromkreis für den geradeauslauf wieder geschlossen wird wenn die Sensoren das Signal geben das die 180° erreicht sind. Macht ihn zwar nicht frei steuerbar sondern nur jeweils um eine bestimmte Gradzahl, aber man kann nicht alles haben.

Irgendwas wird uns schon einfallen, trotzdem danke.

RCO
21.10.2004, 09:45
Ja, hab ich ja schon zugegeben:


Also ich fürchte auch, dass es beim wenden nicht ausreicht, die drei Beine einfach nur gegeneinander laufen zu lassen

Allerdings verstehe ich eure geradeauslauf-Stopp mehtode nicht, wie willst du die Beine setzen, damit er sich drhet. Bzw. viel wichtiger, welche beine hängen bei der 'Idee' zusammen?

MFG Moritz

Matei
21.10.2004, 11:50
Die Beine wie gehabt (links vorne, rechts mitte, links hinten Bodenkontakt im Gegenzug rechts vorne, links mitte, rechts hinten in der Luft am höchsten Punkt). Also die Beine an den Exzentern (hier ja die Zahnräder) um 180° versetzt. Jetzt bewegt er sich nach vorne, wird dann nach meinetwegen rechts gesteuert läuft er soweit bis über zwei Blechstreifen an den getriebenen Zahnrädern 2 Näherungssensoren den Vorwärtlauf stoppen. Dann dreht er sich nach rechts, d.h. die linke Seite bewegt sich und zwar soweit bis der Näherungssensor auf der linken Seite wieder anspricht (eine Umdrehung) und die Drehbewegung wieder gestoppt wird. Dann hat man die 180° Versatz wieder erreicht und der Stromkreis für vor/zurück wird wieder geschlossen. Sollte klappen. Der Haken ist halt entweder geht´s vor zurück ODER li/re und das nur um eine bestimmte Gradzahl. Klingt kompliziert und komisch - isses auch, aber wie gesagt, ich hab am Wochenende noch was anderes zu tun wie den ganzen Schmarrn wieder umzubauen....

RCO
21.10.2004, 12:24
Also du meinst, es würde ausreichen die drei zusammenhängenden Beine gegeneinander laufen zu lassen? da hab ich zu erst auch gedacht, aber wenn man mal drüber nachdenkt bringts rein garnix. Es sei denn, man will den Effekt ausnutzen, dass die 2 Beine auf der einen Seite mehr Bodenhaftun haben, als das eine auf der anderen, ich glaube aber, dass dieser effekt relativ gering ist. Beim drehen, müsstest du optimaler weise die Beine in der Mitte ebenfalls steuern können, damit wirklich die ein Seite vorwärts und die andere Rückwärts gehen kann. Bei eurer Methode vertehe ich nciht ganz, wie die Beine Links und rechts zueinander stehen sollen, damit er sich dreht.
Nein eure Methode, funktioniert, wenn ich sie richtig verstanden habe, garnicht. Da die Drei zusammenhängenden Beine den Roboter komplett anheben, kann keine Drehung entstehen, da kein Grif auf der anderen Seite erzeugt wird. Verstanden?

MFG Moritz

Matei
22.10.2004, 07:17
Die 3 zusammenhängenden Beine (vorne links, hinten links gesteuert über einen Motor und der rechts mitte gesteuert über den anderen Motor) arbeiten nur beim geradeauslauf zusammen so erhält man einen stabilen "Dreipunktgang", wenn ein Kurve gelaufen werden soll wird eine Seite stromlos und die 3 Beine seitlich arbeiten dann zusammen. Wie bei einem Panzer oder Pistenraupe.

RCO
22.10.2004, 09:25
So hab ich mir das auch vorgestellt, erfordert also 4 Motoren!

Matei
22.10.2004, 12:59
Nö, aber auf jeden Motor liegen 2 Stromkreise die zu jederzeit getrennt sind.

RCO
22.10.2004, 13:07
Verteh ich nicht, dein Bild...
Aber beim drehen müssen die 2 x 3 Beine doch unabhängig voneinander arbeiten da bringts nix, wenn die 3 immer zusammen das geliche machen.
???

MFG Moritz

25.10.2004, 07:11
Eine Seite bleibt stehen, die andere läuft weiter und dann dreht er sich doch.

Joerg
25.10.2004, 08:08
Eine Seite bleibt stehen, die andere läuft weiter und dann dreht er sich doch.

nein bei einem Walker eben nicht. Er wird sich je nach Geschwindigkeit etwas "schütteln", mehr nicht.

Um einen Hexapoden zu drehen würde man zwar theoretisch mit 4 Motoren auskommen, da die Bewegung der vorderen und hinteren Beine auf einer Seite gleich ist, jedoch ist der Synchronisationsaufwand wohl höher als wenn man gleich 6 Antriebe nehmen würde.

Viele Grüße
Jörg

RCO
25.10.2004, 09:29
Genau das meine ich! Da der Roboter auf 3 Beiden vollkommen unabhängig steht, wird er sich nur ein Stück vor bewegen, wenn er auf den einen drei beinen steht, und sich dann zurückbewegen, wenn er auf den anderen steht, bzw. wie gesagt schütteln. Das Problem ist, dass er durch diese 2x3-Bein-Konstruktion nciht wie die 2 motorigen Roboter nur auf einer seite unabhängig von der anderen Seite Schub 'entwickelt', sondern eben immer synchron auf beiden!
Allerdings denke ich nicht, dass der Synchronisationsaufwand soviel höher ist, wenn man einen mechanischen Weg findet zumindest die drehung des jeweils vorderen und hinteren beines gleich zu halten, vielleicht durch eine Kette.

Aber das hängt ja alles von der Bauweise ab...

MFg Moritz

Joerg
25.10.2004, 10:18
Um das nochmal zu verdeutlichen, habe ich meinen Hexapoden schnell mal so programmiert, das eine Seite steht und die andere läuft.
Das Ergebnis kann man sich in einem Videoausschnitt betrachten.
MPEG1 (775K): http://www.roboter-teile.de/download/h2oneside.mpg
DIVX (1,4M): http://www.roboter-teile.de/download/h2oneside.avi


Allerdings denke ich nicht, dass der Synchronisationsaufwand soviel höher ist, wenn man einen mechanischen Weg findet zumindest die drehung des jeweils vorderen und hinteren beines gleich zu halten, vielleicht durch eine Kette.

Ich meinte nicht die Kopplung von Vorder und Hinterbein, ich meinte die Abstimmung der verschiedenen Vor- und Rückwärtsbewegungen bei einer Drehung. Zumindest wenn man's halbwegs ordentlich machen will.

Viele Grüße
Jörg

RCO
25.10.2004, 10:34
Super, dass du auf die schnelle mal nen Video gezaubert hast, aber ich gelaube, dass das anders gemeint war.
Gemeint war glaube ich, dass Bein 1, 3 und 5 zusammenhängen und vorwärts gehen, während Bein 2, 4 und 6 zusammenhängen und rückwerts gehen, also auch mit Anheben und so. Ist vermutlich etwas aufwenider, aber ich würde gerne mal sehen, ob man da vielleicht durch die Reibung tatsächlich eine Drehung, wenn auch sehr unkontrolliert erreichen kann.

Übrigens geiler Bot, woher? ;-)

MFg Moritz

Joerg
25.10.2004, 11:10
Hallo Moritz,

hab's auch schnell mal ausprobiert, also bei einer Vorwärtsbewegung ein Dreieck um 180° phasenverschoben.
Das entspricht bei einer Kopplung der Beine im Dreieck ein Motor vorwärts und ein Motor zurück bzw. ein Motor wird genau um einen halben Zyklus später gestartet und läuft dann mit gleicher Geschwindigkeit.
Das Ergebnis ist aber auch eher schlecht, er dreht sich zwar ganz langsam, aber im großen und ganzen ist es ein hin- und herschütteln auf der Stelle.
Die Drehung scheint mir eher durch parasitäre Effekte (Übertragung und damit Start der Servopositionierung erfolgt ja sequentiell und zwischen erstem und sechstem Servo vergeht eine kurze Zeit) zu entstehen.

Ich habe mal davon unabhängig noch ein Video gemacht für eine ordentliche Drehung, falls jemand Interesse hat:
MPEG1 (1,2M): http://www.roboter-teile.de/download/h2rotate.mpg
DIVX (2,2M): http://www.roboter-teile.de/download/h2rotate.avi


Übrigens geiler Bot, woher?

Danke, aber schau mal in meinen Webshop ;)
Das Teil ist der Extreme-Hexapod2-Bausatz von Lynxmotion, ergänzt um ein paar Komponenten zu einem Komplettbausatz, aber auch pur ohne Elektronik (Mechanik+Servos) erhältlich.

Übrigens gibts von dem Teil auch ein paar Videos im Netz, habe das auf der RobotLiga ein wenig herumkrabbeln lassen.

Viele Grüße
Jörg

RCO
25.10.2004, 11:20
Das das eben nciht gut läuft, habe ich mir gedacht...
Aber da du ja die Beine 1 und 3; 4 und 6 immer zusammen bewegst, war meine Idee, sie eben mechanisch zu verbinden, die Bewegung auf horizontaler ebene könnte man ja mit einer Kette erledigen etc.

Wo gibts denn ncoh Videos dazu? Das ganze Ding wirkt irgendwie nicht so behäbig wie manch andere dieser Art. Haben solche 6-Beiner eigentlich einen richtigen (offiziellen) namen, außer 6-Beiner/Hexabot?

MFg Moritz

Joerg
25.10.2004, 11:42
Hallo Moritz,


Wo gibts denn ncoh Videos dazu?

Gerhard hat auf seinen Seiten unter Rückblick RobotLiga http://www.gs-roboter.de/RL2004/rl2004_nachher.htm und Videos | Spider z.B. ein kurzes Video.
Weiterhin ist im Wiki von Markus http://www.elektronik-projekt.de/wiki/index.php/RobotLiga2004 auch ein längeres Video von dem Teil zu finden. Blöderweise war durch schon längeres Herumkrabbeln im Vorfeld der Akku schon ganz schön runter, was den Bot am Ende etwas zur Jagd auf Hindernisse bewegt hat.

BTW, von Behäbigkeit kann keine Rede sein, oder? Wenn man mit den Teilen jedoch klettern möchte ist es jedoch ratsam, das Tempo etwas herunterzudrehen.

Viele Grüße
Jörg

Matei
25.10.2004, 12:17
Mist. So wie auf dem ersten Video wars eigentlich gedacht, hätte gemeint das er sich um die Kurve "rumschiebt". Jetzt gibt´s noch die Lösung das eine Kurve nur eingeleitet wird wenn die eine Seite auf dem mittleren Bein stehen bleibt, dadurch hätte man einen sauberen Drehpunkt. Müsste man halt wieder mit Sensoren irgendwie regeln.

Ansonsten muß der Notfallplan greifen. Das die Fußführung in der sich der Fuß rauf- und runterbewegt und die schwenkbar ist durch Motoren rauf- und runtergefahren wird, dadurch werden die Schritte auf der Kurveninneren Seite kleiner und auf der Kurveäusseren Seite größer.

Is jetzt die Frage was mehr Aufwand ist. Wahrscheinlich wird die 2. Lösung zum Einsatz kommen, ist auch etwas eleganter.

P.S.: Prima Video!!

Joerg
25.10.2004, 13:11
Hallo Matei,

gute Nachricht, ich habe mir deine Zeichnung vorher nicht angesehen (hab hier kein Word auf dem Rechner), durch die Excenterlösung hat eure Konstruktion natürlich andere mechanische Eigenschaften, wie der von mir eingesetzte Hexabot mit 2 DOF. Auch habe ich die Beine auf einer Seite gleich angesteuert, was ja auf Grund der Zeichnung anders gelöst ist.

Eine Vorwärtsbewegung kann immer nur stattfinden, wenn der Bot irgendwo aufliegt (von einem Teil der Beine getragen wird) und sich der Rest vorwärts bewegen kann. Ansonsten geht's halt immer hin und her (siehe erstes Video).
Durch die starre Kopplung, entweder ist das mittlere oder die beiden äußeren Beine unten, ist das aber gewährleistet. Das heißt es funktioniert, aber nicht besonders schön. Aber das dürfte jetzt wohl nicht das Problem sein.
Hab jetzt dazu noch ein Video gemacht (das letzte für heute ;) )
MPEG1 (1,8M): http://www.roboter-teile.de/download/h2onesidespecial.mpg
DIVX (2,9M): http://www.roboter-teile.de/download/h2onesidespecial.avi

Den Drehpunkt kann man noch verbessern, indem man den Bot beim Drehen auf den mittleren Fuß stellt, aber das braucht man nicht unbedingt.

Viele Grüße
Jörg

RCO
25.10.2004, 13:28
Ja wenns so ist, dann funktioniert die erste Methode (also die Originalidee) ja (Warum haben wir dann solange überlegt?), man könnte halt noch die Beine auf der anderen Seite in die andere Richung laufen lassen, muss nur daruaf achten, dass er auf der einen Seite immer auf 2 beinen steht.

25.10.2004, 13:53
Ich tät sagen, um nach z.B. nach links zu drehen, muß 1-5-3 stehen bleiben (höher als die Tiefstellung), und 2 wird verhalten, sich ausschließlich auf und ab zu bewegen. Ist also 6-2-4 dran, bildet 2 den Drehpunkt und 6-4 drehen das Werkel.
Man kann also sagen, der horizontale Auschlag der Mittelhaxen macht die Drehung. gruß

26.10.2004, 07:05
Jaaa - das ich doch was für Papas Jüngsten!! Super, das es doch klappt, und wir um nen aufwendigen Umbau herumkommen. Aber ohne programmierbaren Robotor hätten wir das wohl nicht rausgefunden.

Vielen Dank für die Hilfe.

RCO
26.10.2004, 09:02
Am besten wäre es halt, wenn bei einer drehung die eine Seite vorwärts und die andere Rückwärtläuft und zwar so, dass er auf 3 Beinen steht. Dazu muss man halt die Schritte Synchronisieren REchts und Links um 180° gedreht. Dann bekommt man eine saubere Drehung hin!

MFg Moritz

Joerg
26.10.2004, 10:14
Ja Moritz du hast fast Recht.

Wenn man es genauso macht, immer 3 Beine unten, Bewegung entgegengesetzt, ist man bei einer Anordnung, wie ich sie gestern bereits erfolglos beschrieben und getestet hatte (die Variante ohne Video).

Für die Basis-Routinen (Drehung usw.) meines Bots habe ich bereits fertige Funktionen genutzt und mir um die Herleitung keinen allzu großen Kopf gemacht.

In diesen Dreh-Routinen sieht es ja so aus, dass man keine Dreiecke mehr hat (wie beim Geradeausgehen) sondern ein äußeres Quadrat 1,6,3,4 (ich bleib mal bei deiner Numerierung) und die beiden mittleren Beine 2,5.
Bei einer Drehung sind die vier Beine unten (Quadrat) oder die beiden mittleren. Und immer erfolgt die Längsbewegung entgegengesetzt.

Die Herleitung davon ist aber überhaupt nicht kompliziert, wie ich immer angenommen habe, sondern eigentlich ganz einfach:
Man hat die Beine einer Seite so wie im Ausgangsbild verbunden und startet den Zyklus um 180° phasenverschoben das heißt die vier äußeren Beine sind unten.
Für eine Rechtsdrehung müssen jetzt bei verbundenen Beinen die rechte Seite zurück und die linke mit gleicher Geschwindigkeit vorlaufen.
Irgendwann übernehmen dann die mittleren Beine das Gewicht und die äußeren gehen auf die entgegengesetzte Position zurück, dann kommen diese wieder und halten den Bot und so weiter.

Das ist dann hundertprozentig der gleiche Vorgang wie programmgesteuert im 2. Video gezeigt. Bin nur nicht auf die Idee gekommen, dass dieser recht komplizierte Ablauf zwangsläufig unter den gegebenen Umständen entsteht.

Was heißt das jetzt für die Ausgangsfragestellung von Matei.

Um von einer Geradeausbewegung in eine Rechtsdrehung überzugehen, muss die rechte Seite so anhalten wie oben beschrieben (beide rechten äußeren Beine stehen mittig unten). Die linke Seite läuft jetzt noch einen halben Zyklus weiter (beide linken äußeren Beine stehen mittig unten).
Jetzt kann die Drehung (linke Seite vor, rechte Seite zurück) erfolgen, nach Möglichkeit wieder mit definiertem Abbruch. Um dann wieder in den GeradeausModus zu kommen, muss eine Seite weiterlaufen, bis die Ausgangsstellung (links: Mitte unten, rechts: Äußere Beine unten) wieder erreicht ist. Dann kanns geradeaus weitergehen.

Viele Grüße
Jörg

RCO
26.10.2004, 10:31
Was heißt denn Basisroutinen? Wie sind die Roboter denn angesteuert? Ist ein extra-uC nur damit befasst?

MFg MOritz

Joerg
26.10.2004, 10:47
Was heißt denn Basisroutinen? Wie sind die Roboter denn angesteuert? Ist ein extra-uC nur damit befasst?

das Teil arbeitet mit einem SD21 als Servo-Controller und darauf ist ein PICAXE-18X fürs Programm gesteckt.
Basisroutinen sind für mich die Funktionen für Vorwärts, Rückwärts, Drehen uw. die dann entsprechend der Aufgabe vom Programm aufgerufen werden.

Viele Grüße
Jörg