-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: NIBObee Video, Odometrie, Probleme mit unsymmetrischer Motor

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.03.2010
    Beiträge
    161

    NIBObee Video, Odometrie, Probleme mit unsymmetrischer Motor

    Anzeige

    Hallo leute,
    meine Motorsteuerung mittels Odometrie klappt schon ganz gut, und weil ich die Freude mit euch teilen möchte, ist hier ein Video davon:

    http://www.youtube.com/watch?v=9EFK7XmfD08

    Für das Video brauchte ich mehrere Versuche, denn ganz so gut läuft es nicht immer ab. Ich kämpfe noch ein bischen mit der unterschiedlichen Motor-Performance.

    Erstens hängt sie offensichtlich von der Drehrichtung ab: Der Roboter neigt bei beiden Fahrtrichtungen zum Links-Drall, weil die Motoren offensichtlich ein eine Richtung performanter sind, als in die andere und blöderweise beide Motoren nicht gleich herum eingebaut sind.

    Dazu kommt, daß die Motoren auch bei gleicher Laufrichtung nicht die gleiche Performance bieten.

    Zwar gleicht der Roboter Abweichungen durch integrales und propertionales Gegenlenken aus, aber im Moment des Anfahrens nützt das nichts.

    Deswegen habe ich vor, zwei weitere Konfigurationsparameter für diese beiden Leistungsverhältnisse einzufügen. Ich hoffe, daß er dann exakt geradeaus fährt und daß Radius und Länge von links/rechts Kurven identisch sind.

    Als nächster Schritt kommt dann das Fahren auf Teppichboden. Ich stelle mir vor, daß der Roboter mit einem einzigen Programm sowohl auf Laminat als auch auf Teppichboden das gleiche Muster fahren können soll. Das wird noch spannend, muss erstmal in den Baumarkt einen Teppich kaufen

    Den Source Code von dem Programm möchte ich nicht veröffentlichen. Wenn ich nämlich wie bisher weiter mache, mülle ich das Forum noch zu, und eigentlich ist es doch Sinn der Sache, daß jeder diese Probleme selbst erforscht und löst - natürlich mit Hilfe der netten Helfer hier und der Wissens-Sammlung des RoboterNetz.

    Wenn ich mit meiner Motorsteuerung völlig zufrieden bin (falls ich es überhaupt soweit schaffe), kann ich ja gerne mal die aufgetretenen Probleme und die angewendete Regelunsgtechnik zusammenfassend beschrieben.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    12.01.2010
    Beiträge
    53

    Re: NIBObee Video, Odometrie, Probleme mit unsymmetrischer M

    Hallo,

    ich kann mir zur Zeit das Video noch nicht ansehen - erst heute abend...

    Zitat Zitat von s.frings
    Für das Video brauchte ich mehrere Versuche, denn ganz so gut läuft es nicht immer ab. Ich kämpfe noch ein bischen mit der unterschiedlichen Motor-Performance.

    [...]

    Zwar gleicht der Roboter Abweichungen durch integrales und propertionales Gegenlenken aus, aber im Moment des Anfahrens nützt das nichts.
    Ich frage mich, welche Genauigkeit Du erwartest? Meine Regelung "krank" auch daran, trotzdem fährt die Biene auf Teppichboden relativ gerade. Nicht exakt, die äußeren Einflüsse sind einfach ziemlich groß. Wenn ich einen Kreis fahren lasse, klappt das auch ziemlich gut, der Kreis wird schon viele Runden lang eingehalten.

    Ich habe bei mir erstmal weitere Arbeiten an der Motorregelung eingestellt, weil ich erstmal mit dem RC5-Empfänger und dem Liniensensor weiter machen will. Wenn das ganze läuft, baue ich vielleicht noch einen echten PID-Regler ein. Mal sehen, wie viel besser der ist.

    Abgesehen davon habe ich meine Library gerade zum hosten eingereicht. Wenn das Projekt freigegeben ist, werde ich es posten - da können wir dann alle dran rum wurschteln

    Ciao bantyy

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.557

    Re: NIBObee Video, Odometrie, Probleme mit unsymmetrischer M

    Zitat Zitat von s.frings
    ... aber im Moment des Anfahrens nützt das nichts ...
    Genau das ist eines der Regelungsprobleme. Ich hatte das so gelöst, dass ich möglichst erst mit dem PWM-Wert anfahre, der beide Motore zum Laufen bewegen kann.
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.245
    Ich würde sagen, das kommt echt drauf an, was man vor hat.
    Die Biene _hat_ nunmal eine recht gute Odometrie, wieso also sollte man die nicht nutzen?
    Sie ein bisschen herumfahren lassen ist langweilig, das kann mein RC-Monstertruck bedeutend eindrucksvoller.
    Wenn man aber die (ja nunmal vorhandene) Odometrie auch nutzen will, dann sollte man schon versuchen, das maximal mögliche herauszuholen, sehe ich genauso.
    Zumindest gehe ich davon aus, dass die Biene durchaus im Stande ist, ein Viertelstündchen herumzufahren und dann wieder heimzufinden.
    Inklusive Brems-Richtungsänderungs- und Umkehrmanöver.
    Und ich halte es durchaus für möglich, immerhin (ich selber bastele erstmal an einem Motoren-Getriebe-Diagnoseprogramm
    ) zeigen ja euere Versuche, dass da so einiges geht, also hat die Biene es drauf.
    Radschlupf? Kann man nahezu eliminieren, wieso denn nicht? Geht mit nem Auto auf Glatteis doch auch.
    Unterschiedliche Motorleistung? Auch kompensierbar.
    Einzig der vorhandene Speicher schränkt die Geschichte _irgendwann_ ein, aber selbst der ist recht preiswert aufrüstbar, also, wieso nicht..

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.03.2010
    Beiträge
    161
    Bein Anfahren bricht der Roboter oft zu einer Seite hin aus.

    Manchmal starten die Motoren nicht zum gleichen Zeitpunkt, das kann man durch Gegenlenken dank der Odometrie ausgleichen. Aber: Wenn der Roboter statt geradeaus mit einer Linkskurve beginnt, und ich dann nach rechts ausgleiche, und dann mit Glück exakt geradeaus zurück fahre, dann kommt ich nicht zum Ausgangspunkt zurück, sondern links daneben.

    Meine Rechtskurve zum Ausgleich müsste also noch größer sein, als die ungewollte Linkskurve und dann muß ich nochmal nach links lenken, um wieder gerade zu stehen. Ich bezweifle, daß diese komplexen Lenkmanöver auf eine Strecke unter 1 Meter zuverlässig klappen.

    Ein anderes Problem ist, daß immer wieder Räder durchrutschen, vor allem wegen Staub und Sandkörner auf dem Bodem. Richtig blöd ist, wenn der Roboter über ein Sandkorn fährt, und das dann auf der Radoberfläche kleben bleibt. Dann ist nämlich die ganze Odometrie für die Tonne.

    Wenn ich mir diverse Videos bei Youtube anschaue, hab' ich vermutlich bereits die grenzen des Machbaren erreicht. Ich habe nämlich keinen anderen Roboter mit gleichem Antriebs-Prinzip dort gesehen, der gerader fährt und sauberer anfährt.

    Ich habe auch im Internet keinen einzigen Industrieroboter gefunden, der autark durch die Gegend fährt, ohne sich an irgendwelchen Markierungen zu orientieren.

    Odometrie ist schön und gut, aber trotz der ganzen Mathematik bin ich nun sicher, daß ein zuverlässiges Einhalten der programmierten Strecke anhand der Odometrie Sensoren alleine nicht möglich sein wird.

    Momentan fährt mein Roboter eine Strecke von etwa 10 Meter, wobei er mehrmals die Fahrtrichtung wechselt, sich auf der Stelle dreht, zwei achten fährt und dann +/-20cm wieder zum Ausgangspunkt zurück kehrt - wenn der Boden sauber ist.

    Auf Teppich klappt es gar nicht mehr so gut, da weicht die tatsächlich gefahrene Strecke deutlich mehr von der gemessenen Strecke der Sensoren ab. Geradeaus fahren geht auf Teppich auch gut, aber die Distanz stimmt nicht und Kurven werden in ganz anderen Radien gefahren, als aus Laminat (bei gleicher Programmierung).

    Rabenauge: Wie willst Du denn bei der NIBObee den Radschlupf eliminieren? Er kann ja nicht einmal erkannt werden. Ein Auto auf Glatteis zu steuern ist auch nur möglich, weil der Fahrer die Umgebung wahrnimmt und sich daran orientiert. Wenn Du die Scheiben undurchsichtig machst, und der Fahrer dann nur anhand von Tacho und Lenkrad-Position fahren soll, dann kann er das auch nicht mehr.

    Vieleicht wäre das mal eine Iddee für "Wetten dass...", falls es doch jemand schafft.

    Um auf das Glatteis-Auto zurück zu kommen: In der Landwirtschaft gibt es schon autarke Mascinen, die Felder bestellen. Sie orientieren sich je nach Bauart an optischen Markierungen oder mit GPS. Die GPS Variante wird im Wohnzimmer nicht klappen, und wenn ich die ganze Wohnung mit bunten Klebestreifen versehe, wird meine Frau rebellieren. Außerdem habe ich Katzen und zwei Kinder, die die Markierungen sabottieren werden.

    Vor zwei Wochen field mir dies ein: Ich könnten unter der Decke an den zwei Ecken einer Wand Schnüre (Nähgarn) befestigen, die zum Roboter verlaufen. Der hat oben drauf zwei Rollen, welche per Motor so angetrieben werden, daß die Schnüre immer leicht gespannt sind. Anhand der Rotation der Nähgarnrollen erfasse ich Länge der Schnüre von der Decke bis zum Roboter, und anhand der Differenz beider Längen ergibt sich die Position des Roboters.

    Das geht natürlich nur in einem Raum und funktioniert nicht, wenn der Roboter unter das Bett fährt. Also auch irgendwie doof.

    Aber ich Suche noch nach einer praktikablen Alternative, mir wird schon noch etwas einfallen.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.05.2007
    Ort
    Stolberg
    Beiträge
    111
    Das Odometrieproblem hatten wir damals auch bei unseren Fussballrobotern (AllemaniACs, MSL), die Lösung heisst Lokalisation!

    Die Odometrie gibt eine kurzzeitige präzise Ortsänderungsinformation und die Lokalisation eine ungefähre, aber absolute Position. Das bedeutet wenn man weiss wo man ist, kann man mit Hilfe der Odometrie feststellen wohin man fährt. Diese Information ist wiederum für die Lokalisation sehr nützlich, mit der man den Fehler der Odometrie wiederum korrigieren kann.

    Man benötigt für das Verfahren jedoch eine zusätzliche Informationsquelle über die Umgebung, zum Beispiel einen Laserscanner, oder einen Distanzsensor auf einem Servo.
    Die Schwierigkeit liegt bei der Verknüpfung der Odometrie und der Scanner Daten....

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    12.01.2010
    Beiträge
    53
    Hallo,

    Zitat Zitat von oberallgeier
    Ich hatte das so gelöst, dass ich möglichst erst mit dem PWM-Wert anfahre, der beide Motore zum Laufen bewegen kann.
    Meine Regelung kennt die Werte 0 - 100, wobei 0 = Motor Stopp, 1 = minimale Geschwindigkeit ( = 1 Radsensortick / 125 ms) bis 100 ( = 1 Radsensortick / 12,5 ms). Ich starte mit den PWM-Werten, die rechnerisch diese Geschwindigkeiten erreichen sollten, die minimale Anfahrgeschwindigkeit ist höher als die minimale Fahrgeschwindigkeit.

    Zitat Zitat von Rabenauge
    Die Biene _hat_ nunmal eine recht gute Odometrie, wieso also sollte man die nicht nutzen?
    Die Odometrie ist tatsächlich gut, wie ich meine, und es ist auch sehr sinnvoll, sie zu nutzen. Die Frage ist nur, was erwartet ihr von einer Regelung mittels Odometrie? Beispiel: Meine Biene hat ohne Regelung bei gleichen PWM-Werten nach ca. 2 m eine Abweichung von 2 m nach rechts gefahren. Mit Regelung fährt sie auf 5 m ca. 10 cm falsch - mal nach rechts, mal nach links, je nach Bodenbeschaffenheit. Ich finde das durchaus ein beeindruckendes Ergebnis - scheinbar erwartet ihr hier etwas anderes.

    Zumindest gehe ich davon aus, dass die Biene durchaus im Stande ist, ein Viertelstündchen herumzufahren und dann wieder heimzufinden.
    Das glaube ich auch, die Frage ist nur, _wie_ sie das anstellt. Und mit Odometrie allein weiss ich nicht, ob dass erreichbar ist.

    Radschlupf? Kann man nahezu eliminieren, wieso denn nicht? Geht mit nem Auto auf Glatteis doch auch.
    Moment mal, den Radschlupf auf Glatteis kann man auch beim Auto nicht verhindern. Fahr doch mal mit Sommerreifen auf Glatteis - da wird das ESR dafür Sorgen, dass Dein Auto stehen bleibt. OK, dann gibts auch keinen Schlupf mehr

    Und bei der Biene hast Du ja kaum eine Chance, Schlupf zu erkennen. Beim Auto wird ja auch nur _unterschiedlicher_ Schlupf an den Rädern erkannt - und ein Auto hat immerhin vier davon. Die Biene nur zwei und das halte ich schon für problematisch, dazu kommt, dass ein Auto nur gesteuert und nicht geregelt wird.

    Zitat Zitat von s.frings
    Bein Anfahren bricht der Roboter oft zu einer Seite hin aus.

    Manchmal starten die Motoren nicht zum gleichen Zeitpunkt, das kann man durch Gegenlenken dank der Odometrie ausgleichen.
    Huch? Ist das denn bei Dir gravierend? Bei mir ist das kein Problem, die Motoren starten bei mir schon immer gleichzeitig, nur mit ganz leicht unterschiedlichen Geschwindigkeiten. Das wird aber so schnell ausgeglichen, dass dieser Unterschied nicht zu einem "schräg fahren" führt.

    Momentan fährt mein Roboter eine Strecke von etwa 10 Meter, wobei er mehrmals die Fahrtrichtung wechselt, sich auf der Stelle dreht, zwei achten fährt und dann +/-20cm wieder zum Ausgangspunkt zurück kehrt - wenn der Boden sauber ist.
    Genau das meine ich: Was erwartet ihr denn? Das der Roboter nach so einer Aktion tatsächlich auf den Milimeter an der gleichen Stelle ankommt? Wenn ja, gebe ich einen Tipp: Macht Markierungen auf den Boden und lasst den Liniensensor diese Markierungen erfassen. Muss ja keine Linie sein, es reichen ja ein paar Punkte, an denen der Roboter auf jeden Fall vorbei kommt. An diesen Stellen kann der Roboter sich neu justieren und fährt ab so einem Punkt wieder mit präzisen Werten los.

    Zitat Zitat von workwind
    Die Odometrie gibt eine kurzzeitige präzise Ortsänderungsinformation und die Lokalisation eine ungefähre, aber absolute Position. Das bedeutet wenn man weiss wo man ist, kann man mit Hilfe der Odometrie feststellen wohin man fährt. Diese Information ist wiederum für die Lokalisation sehr nützlich, mit der man den Fehler der Odometrie wiederum korrigieren kann.
    Genau so sieht es aus.

    Man benötigt für das Verfahren jedoch eine zusätzliche Informationsquelle über die Umgebung, zum Beispiel einen Laserscanner, oder einen Distanzsensor auf einem Servo.
    Die Schwierigkeit liegt bei der Verknüpfung der Odometrie und der Scanner Daten....
    Oder - man nutzt markante Punkte, die mit dem Liniensensor erfasst werden können. Siehe oben Der Phantasie ist da vermutlich keine Grenzen gesetzt.

    Irgendjemand hier hatte doch einen Distanzsensor an einen Servo angeschlossen und das ganze auf die Biene gebaut. Das sah durchaus interessant aus Außerdem hab ich hier noch ein Bit-Banging-Display und den ATmega16 aus der Biene rumfliegen (meine fährt mit nem ATmega644) - also Ideen, die Biene zu erweitern gibts genug...

    Happy Engineering
    Ciao bantyy

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.03.2010
    Beiträge
    161
    Ich hatte wirklich perfekte Regelung angestrebt. Zu dumm, dass die Odometrie Sensoren nur die Rotation der Räder erfassen, und nicht die tatsächliche Fortbewegung. Da ist es einleuchtend, dass Abweichungen zwangsläufig vorkommen.

    Ganz besonders bei Kurvenfahrten weicht die tatsächliche Bewegung stark von der gemessenen ab (was bei den breiten Reifen auch kein Wunder ist). Beim Vergleich Laminat/Teppich sieht man das besonders deutlich. Nun ist ja jeder Teppich wiederum anders beschaffen. Ich denke, es war gut und lehrreich, mich mit diesem Thema auseinander zu setzen. In künftigen Programmen werde ich aber nicht mehr versuchen, exakte Kurven und Drehungen hin zu bekommen. Das geht sowieso nicht, jedenfalls nicht, wenn der Bodenbelag wechselt.

    Praktikabel scheint mir eine ungefähre Geschwindigkeitsregelung der Motoren, sowie ein Geradeaus-Lauf. Und das bekomme ich sicher auch ohne Fließkomma-Zahlen hin, was mir ganz recht ist, denn die "math" Library kostet viel Programmspeicher und Zeit. Wenn die Regelung einfach genug ist, kann ich sie in der Interrupt-Routine vom PWM-Counter unterbringen. Ich denke, das werde ich jetzt mal versuchen.

    Wie dem auch sei: Ich würde jedem Bastler hier empfehlen, das exakte Fahren von Kurven, Achten und Geraden mal zu versuchen. Man kann dabei viel lernen, z.B. welche Fortschritte mit einfachen Mittels zu erreichen sind, und welche schwieriger sind. Man kann auch lernen, sich mit 95% zufrieden zu geben (siehe http://de.wikipedia.org/wiki/Paretoprinzip).

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.245
    Präziser als nötig will ich auch nicht.
    Aber mir fällt da ein Beispiel ein, an dem ich (habe ich als überüber....nächstes vor) schon ein Weilchen herum denke:
    Bienchen bekommt eine Ladestation.
    Nun soll sie, wenn es nötig ist, diese anfahren, sich voll futtern und dann -womitauchimmer- weitermachen.
    Sicher, man kann auch der Ladestation eine gewisse Intelligenz spendieren (darauf läuft mein Plan sowieso hinaus, weil doch etwas komplexere Dinge erledigt werden müssten, wie Bienchen ab- und wieder anschalten, Lösung hab ich im Kopf dafür), auch sollte sie vielleicht besser _nicht_ die Katze aufladen.
    Dennoch muss die Biene sich dazu einigermassen gut orientieren können, meine _kann_ allemal zwei Stunden in der Bude herum wuseln.
    Danach sollte sie mindestens noch wissen, ob die Ladestation vorne oder hinten ist, auch _wenn_ selbige ne Rundumleuchte hat.

    Das Problem der Odometrie ist, dass sich Abweichungen aufaddieren, wenn ich also auf nen Meter geradeaus lausige 5mm Abweichung habe, ist das nix, fahre ich die Strecke aber 20x, werd ich anschliessend die Ladestation nicht mehr finden.
    Es sollte als schon so genau wie _möglich_ funktionieren.
    Darum reite ich so drauf herum.
    Klar ist, dass da Grenzen sind, aber sind die wirklich schon erreicht?

    Thema Radschlupf: richtig, Bienchen kriegt nicht mit, wenn die Räder durchdrehen.
    Trotzdem kann man da mit sanftem beschleunigen und abbremsen sicherlich noch _einiges_ rausholen.
    Sowie mein Motor-Diagnoseprogramm (es wird die Motoren mit festgelegten Fahrstufen eine Weile laufen lassen, und dann Fahrstrecke, Drehzahlen und einige andere interessante Dinge ausspucken, somit kann ich auf verschiedenen Untergründen und mit beliebigen Drehzahlen herumtesten) fertig ist, mache ich mit genau diesem Problem weiter- ohne Bremse fährt die Biene grundsätzlich zu weit.

    @s.frings: es gibt bei der Biene (und bei jedem, ähnlich aufgebauten Fahrzeug) ein wichtiges Problem: Der Radabstand zum Drehpunkt!
    Man kann nämlich die Räder der Biene auch unterschiedlich weit auf die Achsen stecken, somit wird sie, bei ansonsten gleichen Bedingungen, nie rechts und links gleich kurven (und Geradeausfahrt korrigieren ist auch kurven!).
    Ich hatte neulich ein kleines Spielzeugmotorrad in der Hand (Standmodell), dessen Räder hatten ziemlich die richtige Grösse fürs Bienchen, wollte schon spontan zwei der Dinger mitnehmen, weil sie hübsch aussahen und eben schön schmal sind, aber leider hatten sie Plastikreifen.
    Aber in der Richtung schaue ich mal weiter, solche Modelle kosten nicht viel.

    Ein Entfernungssensor ist bei mir ohnehin geplant (ich mag diese Fühler nicht, auch wenn sie ihren Dienst gut tun, einfach zu sperrig alles), ausserdem halte ich es für suboptimal, erst gegen eine Wand zu fahren, um festzustellen dass da eine Wand ist. Also ganz im Sinne der Erfinder: Bienchen ausbauen.
    Passt noch etliches rein, in die Kleine.

  10. #10
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo

    Hier hat Pinsel eine IR-Abstandsmessung vorgestellt und entwickelt:
    http://www.roboternetz.de/phpBB2/zei...ag.php?t=52115

    Eure Grundlagenforschung finde ich echt spannend. Nahezu genial scheint mir das "Lenkradmodel" und die Umsetzung dazu im Video. Echt beeindruckend. Mit der Loch-Odometry ist die Biene Klassenbeste

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •