PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Der Roboter schwenkt...



lucabert
31.12.2007, 15:32
Hallo, Leute!

Ich baue einen Roboter, mit ein paar andere Freunden. Der Roboter kann zZ "rollen" (hat also vorne zwei Räder mit zwei unabhängigen Motoren und hinten einen kleinen freien Rad um den Roboter zu stützen).
Es "rollt" ziemlich gut, aber ab und zu "schwenkt".

Sicher das Problem kommt von dem Rad hinten und kann problemlos korrigiert werden.
Das Problem ist dann nur zu wissen in welche Richtung und wie viel der Roboter schwenkt.

Ich habe probiert mit einem Kompass (CMP03), geht aber nicht (zuerst ist nicht genug präzis, und danach die ganze Metallstruktur stört dem Kompass).

Kann jemand mir was empfehlen, um mein Problem zu lösen? Am bestens, sollte dieses "Ding" I2C sprechen, so daß ich mit dem µC (ATMega 128) es lesen kann.

Vielen Dank für eure Vorschläge und einen guten Rutsch!
Luca Bertoncello

PicNick
31.12.2007, 17:05
Gibt's irgendwelche "Odometrie" (Radencoder) ? Ohne sowas wird eine halbwegs präzise Steuerung sowieso problematisch.

lucabert
31.12.2007, 17:10
Gibt's irgendwelche "Odometrie" (Radencoder) ? Ohne sowas wird eine halbwegs präzise Steuerung sowieso problematisch.

Ich habe vergessen zu schreiben...
Die Motoren sind Schrittmotoren, also ich kann 100% sicher sein, daß die beide "synchron" sich bewegen.

Wie gesagt, ich muß nur ein System finden, um zu wissen daß der Roboter schwenkt.

Ich bin für eure Vorschläge dankbar!
Luca Bertoncello

Dirk
31.12.2007, 17:33
Hallo lucabert,

ich kann mir unter "schwenkt" nichts rechtes vorstellen!

Also Frage: Wie soll er sich bewgen? Wie bewegt er sich stattdessen?

Gruß Dirk

PicNick
31.12.2007, 17:44
..ich kann 100% sicher
Na, offenbar nicht, sonst würde er ja nicht abbiegen. :-)

Schrittmotor: Wenn die Räder nicht rutschen, sollte das Heckrad da eigentlich keine Chance haben.

SOllte man abklären, ob dir nicht irgendwo mal ein paar schritte verloren gehen (SOftware ?)

Ansonsten:-->
https://www.roboternetz.de/wissen/index.php/Sensorarten#Beschleunigung

pongi
31.12.2007, 17:48
Ich tippe darauf, dass sich die Räder durchdrehen. Und das ist dann ziemlich schwer nachzuweisen.

lucabert
31.12.2007, 17:48
Hallo lucabert,

ich kann mir unter "schwenkt" nichts rechtes vorstellen!

Also Frage: Wie soll er sich bewgen? Wie bewegt er sich stattdessen?

Gruß Dirk

Mmmm... mein Deutsch kann sich noch verbessern... :)

Also, meine Hoffnung war, daß wenn ich dem Roboter sage: "gehe geradeaus für Xcm", es bewegt sich geradeaus für diese X cm.
Aber es ist nicht so... Je nach wie der hintere Rad am Anfang "gedreht" war, es "zieht" nach Links oder nach Rechts und es bewegt sich selten wirklich geradeaus...

Deswegen dachte ich, daß ich mit einem Kompass wissen konnte ob der Roboter nach Links oder nach Rechts geht und diese unerwünschte Bewegung korrigieren.
Es geht aber leider nicht, weil der Kompass nicht genug präzis ist, und das Metall und die Motoren des Roboters generieren zu große magnetische Felder.

Habe ich das Problem besser erklärt?

Kann jemand mir eine Lösung vorschlagen?

Ich danke euch!
Luca Bertoncello

lucabert
31.12.2007, 17:53
..ich kann 100% sicher
Na, offenbar nicht, sonst würde er ja nicht abbiegen. :-)

Schrittmotor: Wenn die Räder nicht rutschen, sollte das Heckrad da eigentlich keine Chance haben.

SOllte man abklären, ob dir nicht irgendwo mal ein paar schritte verloren gehen (SOftware ?)

Ansonsten:-->
https://www.roboternetz.de/wissen/index.php/Sensorarten#Beschleunigung

OK! Also, ich kann nur sicher sein, daß die Motoren gleichmäßig sich bewegen. d.h.: die Räder rutschen.

Meinst du, daß ich mit einer Beschleunigungs-, bzw. Drehungssensor mein Problem lösen kann?
Kannst du mir ein Sensor dieser Art empfehlen?

Danke
Luca Bertoncello

PicNick
31.12.2007, 17:56
Na, dann shau dir das mit der Beschleunigung und Drehratensensor an.

Is aber aufwendig, bauliche Unstimmigkeiten damit abzufackeln

lucabert
31.12.2007, 17:59
Na, dann shau dir das mit der Beschleunigung und Drehratensensor an.

Is aber aufwendig, bauliche Unstimmigkeiten damit abzufackeln

Danke für deine Antwort...
Aber meine Frage war eigentlich "wie kann ich mein Problem lösen"...

Einfach wissen, daß ich solches ein Sensor benutzen soll ist schon was, mir würde aber mehr helfen, wenn ich wissen würde wie ich es benutzen soll... :)
Und danach auch die Frage: kannst du mir ein Sensor (Name, Modell) empfehlen?

Danke
Luca Bertoncello

Dirk
31.12.2007, 18:01
Hallo lucabert,

wenn man das 'mal nicht von der Softwareseite, sondern von der Konstruktion her aufrollt:
Das Bug- oder Heckrad sollte sehr leicht drehbar sein und nicht zu viel Gewicht tragen müssen. Wenn es zu viel Gewicht tragen muss, können die beiden Antriebsräder ins Rutschen kommen.

Evtl. könntest du die Antriebsräder näher an den Schwerpunkt des Roboters verlagern, das bringt manchmal Wunder.

Gruß Dirk

lucabert
31.12.2007, 18:06
Hallo lucabert,

wenn man das 'mal nicht von der Softwareseite, sondern von der Konstruktion her aufrollt:
Das Bug- oder Heckrad sollte sehr leicht drehbar sein und nicht zu viel Gewicht tragen müssen. Wenn es zu viel Gewicht tragen muss, können die beiden Antriebsräder ins Rutschen kommen.

Evtl. könntest du die Antriebsräder näher an den Schwerpunkt des Roboters verlagern, das bringt manchmal Wunder.

Gruß Dirk

Danke für deine Antwort.
Ich habe eigentlich nicht gemessen, aber der Rad hinten sollte nicht viel tragen sollen.
Leider (aus Kostengründen...) kann ich nicht viel an der Struktur ändern und die Räder verschieben.

Deswegen suche ich ein System um die Bewegung zu "messen" und korrigieren...

Danke
Luca Bertoncello

radbruch
31.12.2007, 18:31
Hallo

Hat das dritte Rad einen Nachlauf wie bei einem Teewagen? Wenn ja, könnte man es durch eine Kugelrolle ersetzen?

http://tbn0.google.com/images?q=tbn:5nLn_lLb71m9DM:http://images.mercateo.com/images/products/BBL/gr_p0000588.jpg (http://images.mercateo.com/images/products/BBL/gr_p0000588.jpg)
(Quelle: mercateo.com (http://www.mercateo.com/p/135-104684/Kugelrolle_Tragl_50kg.html))

Gruß

mic

lucabert
31.12.2007, 18:35
Hallo

Hat das dritte Rad einen Nachlauf wie bei einem Teewagen? Wenn ja, könnte man es durch eine Kugelrolle ersetzen?

http://tbn0.google.com/images?q=tbn:5nLn_lLb71m9DM:http://images.mercateo.com/images/products/BBL/gr_p0000588.jpg (http://images.mercateo.com/images/products/BBL/gr_p0000588.jpg)
(Quelle: mercateo.com (http://www.mercateo.com/p/135-104684/Kugelrolle_Tragl_50kg.html))

Gruß

mic

Nein, es ist ein Rad wie die, die man unten einen Stuhl finden kann (Scheißalzheimer! Ich kann mir den Namen nicht erinnern!).
Ich habe aber ursprünglich einen Kugelrolle benutzt, es war noch schlimmer als jetzt... :(

Grüße
Luca Bertoncello

vohopri
31.12.2007, 19:01
Hallo Luca,

ich würde mal eine Diagnose machen, wo der Schlupf herkommt.

Markiere die Räder, und lasse das Fahrzeug eine Strecke vom dreifachen Radumfang fahren. Wenn er geschwenkt hat und die Räder gleich gedreht haben, dann liegt es an der mangelnden Bodenhaftung der Räder. Wenn die Räder ungleich gedreht haben, dann liegt es an etwas anderem und du kannst weiter testen.

Zum weiter testen markiere die Motorachsen und mache den selben Test. Wenn das Fahrzeug schwenkt und die beiden Achsen drehen geich und die beiden Räder drehen ungleich, dann sind die Räder mit den Motorachsen nicht ausreichend fest verbunden. Wenn die Motorachsen nicht gleich gedreht haben, dann sind Schritte verloren worden oder das Steuerprgramm hat einen Fehler.

Zum weiter testen bocke dann das Fahrzeug auf und lasse die Räder in der Luft drehen. Wenn dann noch ungleiche Umdrehungen zustande Kommen, dann ist es das Programm. Teste auch mit unterschiedlichen Geschwindigkeiten.

Poste bitte genau deine Testergebnisse. Wenn du uns gute Fotos von deinem Aufbau zeigst, können wir bei der Fehlersuche noch weiter helfen.

ciao,
Hannes

Blaner
31.12.2007, 20:51
Hi

Genau das beschriebene Problem scheint mein kleiner Robo auch zu haben.
Das Problem liegt aber glaube ich weniger am Schlupf sondern an
der nicht synchronen Drehgeschwindigkeit der Schrittmotoren.
Man hört richtig dass einer der Motoren kurzzeitig schneller dreht.

Oft drehen die Schrittmotoren nach einem Reset des Controlers
leicht unterschiedliche Geschwindigkeit und ein ständiges Kalibrieren
ist nötig.

Dazu hätte ich es ebenfalls mit dem Kompass (CMP03) versucht.
Das Problem mit den Magnetfeldern ist mir bekannt und werde das
Problem mit einem feinmaschigem Drahtnetz zu lösen versuchen,
das ich großflächig über den Controler spanne und darauf ab-
geschirmt den Kompass plaziere. Dieser kalibriert dann immer bei
geradeausfahrt die Synchronität der Schrittmotoren.

Vieleicht hätte ich auch zu aller erst die Eingangsströme zu den
Schrittmotoren vergleichen sollen ... ein Lichtlein brennt :)

Ich möchte wenn es geht auf Radencoder völlig verzichten.
Es gibt immer einen Schlupf der sich ständig aufsummiert.

Blaner
31.12.2007, 20:57
Sollte das nicht funktionieren, werde ich die Synchronität der
optischen Maus überlassen die ich dann, gezwungener Maßen,
weit ab vom Drehpunkt setzen werde.

vohopri
31.12.2007, 21:03
Es hat nicht viel Sinn, so viele Vermutungen an zu stellen. Test mal genau und du wirst die GENAUE und TATSÄCHLICHE Ursache herausfinden. Dann kannst du die Probleme auch SCHNELL, GEZIELT und WIRKUNGSVOLL beheben.

vohopri

Ceos
31.12.2007, 21:54
du sagtest schrittmotoren ?! ich meine mal von unserem Prof. gehört zu haben, das bei schrittmotoren die maximale drehzahl/frequenz (jeder schrittmotor hat ne spezifikation dazu) zu niedrig sein kann oder die belastung zu hoch, sodass der motor hinter der schrittfolge nicht richtig hinterherkommt und dann anfängt vorwärts oder rückwärts zu laufen bis der motor wieder halbwegs synchron mit dem takt ist ... versuchs wirklich mal wie oben beschrieben markier deine räder und lass die motoren mal 3 drehungen fahren ... mal in der luft hängend und mal auf dem boden ... eventuell war der rollwiderstand bei der kugelrolle schon zu gross und deshalb hattest du probleme ?!

Guten rutsch euch allen .... konnts mir net verkneifen so kurz vorm neuen jahr nochmal ins forum zu schauen XD

recycle
01.01.2008, 05:04
Genau das beschriebene Problem scheint mein kleiner Robo auch zu haben.
Das Problem liegt aber glaube ich weniger am Schlupf sondern an
der nicht synchronen Drehgeschwindigkeit der Schrittmotoren.
Man hört richtig dass einer der Motoren kurzzeitig schneller dreht.

Wenn die Schrittmotoren nicht synchron laufen, kann das eigentlich nur 2 Ursachen haben:
a) du steuerst sie nicht synchron an
b) sie verlieren Schritte

Bei a) läge der Fehler irgendwo in deiner Software und sollte da behoben werden

Bei b) sind die Motoren entweder zu schwach, oder sie werden nicht optimal mit Strom versorgt, oder sie werden zu schnell angesteuert.

Wenn die Motoren zu schwach sind, könnte man eventuell ein Getriebe einsetzen. Das ist allerdings nicht ganz einfach und der Roboter wird dadurch langsamer.
In den Spulen von Schrittmotoren baut sich eine Spannung auf, die der Versorgungsspannung entgegenwirkt.
D.h. wenn man einen Schrittmotor z.B. mit 12V versorgt und dann schnell drehen lässt, bekommt er die 12 V nicht mehr.
Um das zu vermeiden kann man den Motor mit einer höheren Spannung versorgen, muss dann allerdings mit einer Strombegrenzung dafür sorgen, dass er nicht durch zu hohen Strom zerstört wird. Eine Schaltungen dafür gibts hier im Wiki.

Selbst wenn man die Gegenspannung die bei schneller Ansteuerung auftritt wie oben beschreiben kompensiert, kann man einen Schrittmotor nicht beliebig schnell ansteuern. Mit steigernder Gechwndigkeit verliert er irgendwann Schritte. Daher würde ich auf jeden Fall mal testen, ob die Probleme weiterhin auftreten, wenn die Motoren langsamer angesteuert werden.

lucabert
01.01.2008, 09:21
Hallo und schönes 2008 an allen!

Also, ich habe den Test gemacht und die Räder "markiert".
Leider scheint wirklich daß sie gleichmäßig sich drehen, also es ist definitiv so, daß sie ab und zu rutschen.

Das ändert aber mein Problem nicht. Wie kann ich merken, daß der Roboter nicht geradeaus fährt und selbstverständlich die Bewegung korrigieren?

Danke
Luca Bertoncello

vohopri
01.01.2008, 10:19
Hallo,

dann wissen wir also mehr.

Ich würde noch gerne wissen, welche Reifen die Räder haben und auf welchem Untergrund du fährst. Wie gross ist der Radstand, und wo befindet sich der Schwerpunkt. Wie gross ist die Reibung beim Drehen des Nachlaufenden Rades? Sesselrollen haben im Allgemeinen eine viel zu hohe Reibung.

Ich will dir dein Vorhaben, eine Rückkopplung mit Sensor in die Navigation einzubauen ja nicht ausreden, das ist schon in Ordnung. Aber vorher solltest du die Fehlkonstruktionen im Fahrwerk bereinigen. Andernfalls wird die Navigation zu aufwändig.

Die Frage stellt sich, ob die Bereifung oder das Nachlaufrad zu verbessern ist. Beschreibe bitte beides ausführlich. Fotos wären hilfreich.

Für die Bereifung gibt es im Modellbau und manchmal auch im Spielzeughandel gute, griffige Ausführungen zu einem vernüngtigen Preis.

Für das Nachlaufrad gibt es die Möglichkeiten, ein Omniwheel zu montieren. Das braucht sich nicht ausrichten. Und es gibt die Möglichkeit, die senkrechte Verdrehachse des Nachlaufrades richtig zu lagern.

Für die Naviagtion gbt es dann sehr viele Möglichkeiten zu Korrektur.

grüsse,
Hannes

HannoHupmann
01.01.2008, 15:10
Jedes Rad bekommt eine Odometrie z.B. mit ner Gabellichtschranke. Dann kann man sofort erkennen ob ein Rad sich mehr gedreht hat oder nicht. Auf diese kann man dann beide Motoren regeln und damit lässt es sich dann gerade aus fahren. Funktioniert z.B. beim Asuro sehr gut.
Ich würde wirklich diese Lösung favorisieren, da sie am einfachsten ist.

Alternativ könnte man auch den Einschlagwinkel des Nachlaufrads messen und auf dieses Regeln. Dazu bräuchte man dann wohl eine fein genuge Auflösung bei diesem und einen Absolutfertgeber. Ein Potentiometer wird vermutlich nicht genau genug sein (Auflösung sollte schon etwa 1° sein).