-         

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

Thema: Odemetrie Asuro verbessern

  1. #1

    Odemetrie Asuro verbessern

    Anzeige

    Die Asuro Odemetrie


    Ich habe mich wie wahrscheinlich schon etliche vor mir mit der Odemetrie der des Asuros beschäftigt. Das Ziel was ich dabei verfolge ist etwas hochgegriffen. Der Asuro soll sich frei in einem Raum bewegen. In diesem Raum sind diverse Hindernisse platziert, welcher der Asuro erkennen soll und sich die Position des Hindernisses merken soll, so dass er beim nächsten mal wenn er Kurs auf das Hindernis nimmt dieses souverän umfahren soll. Später sollen dem Asuro beliebige Ziele im Raum mitgeteilt werden welche er ansteuern soll. Soviel zur Zielsetzung.

    Schnell habe ich festgestellt dass die Odemetriedaten des Asuros nicht viel Taugen. Das fängt schon dabei an das meines Erachtens die Hell und Dunkel unterschiede über den AD-Wandler erkannt werden soll. Dazu kommt das die Zahnräder auf der Achse sehr viel spiel haben und dadurch sich die Amplitude des erfassten Signals sehr variiert. Zudem muss ich gestehen dass ich dieses Verfahren als ziemlich kompliziert halte, und auch nicht so recht verstanden habe.

    Ich habe mir nun den Schaltplan des Asuros genauer betrachtet und festgestellt, dass die Eingänge des Atmels auf denen die Fototransistoren liegen auch sekundär als PinChange Interrupts verwendet werden können. Ich habe ein kleines Programm geschrieben in dem diese Methode getestet werden sollte. Es funktionierte nur leider nicht sehr zuverlässig was bei diesem Signal auch kein Wunder war.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Odometrieroh.jpg
Hits:	27
Größe:	41,2 KB
ID:	21279
    Signal des Fototransistors

    Wenn jetzt bei diesem Signal noch ein Flatterndes Zahnrad Fremd licht Einwirkung dazu kommt ist schnell klar dass nicht jede Signaländerung erkannt werden kann.
    Nun war ich erst mal etwas enttäuscht von meinem Asuro.
    Ich schaute bei Google na „Odemetrie Asuro“ um zugucken was für Probleme es alles gibt. Und ob es vielleicht auch eine Lösung für mein Problem gibt. Außer Lösungen die mit dem AD-Wandler liefen habe ich leider nichts gefunden. Da ich jetzt aber so auf eine Lösung mit Einer Interrupt Routine versteift war, in dem ich die Impulse einfach nur zählen brauch, kam ich auf die Idee den Asuro ein wenig umzubauen. Und zwar wollte ich jetzt einen Einstellbaren Schmitt-Trigger zwischen Fototransistor und Mikrocontroller bauen.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Schmitt_trigger.JPG
Hits:	40
Größe:	23,6 KB
ID:	21280

    Diese Schaltung sollte jetzt nun wie folgt in den Asuro eingebaut werden.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Schmitt_trigger.JPG
Hits:	40
Größe:	23,6 KB
ID:	21280Klicke auf die Grafik für eine größere Ansicht

Name:	Asuro.jpg
Hits:	33
Größe:	41,0 KB
ID:	21281





















    Nun kann man mit den Potis die Schwellspannung einstellen.
    Klicke auf die Grafik für eine größere Ansicht

Name:	schwellSpannung.jpg
Hits:	16
Größe:	42,9 KB
ID:	21282


    Die blaue Linie ist die Schwellspannung des Schmitt-Triggers.
    Am Ausgang erhält man dann ein relativ sauberes Rechteckt Signal:
    Klicke auf die Grafik für eine größere Ansicht

Name:	outpuschmitt.jpg
Hits:	26
Größe:	42,5 KB
ID:	21283

    Nun hat man einen sehr guten und zuverlässigen Odemetriesignal, dessen Impulse man in einer Interrupt Routine zählen und auswerten kann.

    Ob ich schaffe mein eigentliches Ziel erreichen werde kann ich bis jetzt noch nicht sagen. Aber ich dachte mir dass es eine gute Idee wäre meine bis jetzt gesammelten Erkenntnisse zu veröffentlichen da ich solch eine Methode im Netz noch nicht gefunden habe. Ich hoffe ich konnte einigen hiermit helfen.

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.557
    Zitat Zitat von mitch0815 Beitrag anzeigen
    ... dieses Verfahren ... kompliziert ... nicht so recht verstanden habe.
    ... Google na „Odemetrie Asuro“ ... Außer Lösungen die mit dem AD-Wandler liefen habe ich leider nichts gefunden ...
    Im asuro-Wiki gibts dazu ne Lösungshinweise., vielleicht hätte Google gern, dass Du Odometrie richtig schreibst - und nicht Odeme... - letzteres klingt ja eher nach Ödemen.

    Die Beilagscheibe an der Odometrieachse (eingeführt wohl 2005 von Weja - klick) - evtl. noch die Abdeckung drauf - und schon gibts diese guten und eindeutigen Signalgänge:

    ......

    siehe dieser Thread (klick).

    Mal gespannt was Deine Lösung(en) so bringen.
    Ciao sagt der JoeamBerg

  3. #3
    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

    Wie fast alle Funktionen des asuro ist auch die Odometry minimalistisch aufgebaut. Gegen verschobene Ritzel hilft die U-Scheibe, gegen Fremdlicht eine Abdeckung:


    (Aus: http://www.roboternetz.de/phpBB2/zei...rag.php?t=8153)


    Erstaunlich finde ich, dass beim nahezu baugleichen probot die Odometriy ohne ADC funktioniert:

    http://www.roboternetz.de/community/...l=1#post486267
    http://www.roboternetz.de/community/...l=1#post486857

    Der ProBot hat einen kleineren Vorwiderstand vor den LEDs (probot: R5 mit 220 Ohm, asuro: R22 mit 470 Ohm)), Empfänger ist identisch. Ist das der entscheidende Unterschied?

    Gruß

    mic
    Geändert von radbruch (22.01.2012 um 17:50 Uhr) Grund: Mega8 hat kein Pinchange-Interrupt

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

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    29
    Beiträge
    1.221
    Zitat Zitat von mitch0815 Beitrag anzeigen
    Schnell habe ich festgestellt dass die Odemetriedaten des Asuros nicht viel Taugen.
    Kann ich so nicht nachvollziehen. Meine Odometrie-Routinen haben bisher immer sehr zuverlässig gearbeitet, ich habe als Modifikation die Fototransistoren abgedeckt, die Zahnräder mit schwarzem Tonkarton ebenfalls lichtdicht gemacht und über Klemmringe das Spiel des Zahnrads eliminiert. Die Ungenauigkeit der Odometrie wird durch den Schlupf der Räder verursacht. Wenn du ganz langsam fährst, kannst du mit der Odometrie relativ genau Navigieren, aber das hängt auch immer vom Untergrund ab ... Beschleunigungs- und Bremsrampen helfen übrigens auch.

    Das was du mit zusätzlicher Hardware "erschlägst", kann mit etwas Hirnschmalz auch die Software realisieren ...

    Ach ja: Wie kommt dein ASURO zu Pin Change Interrupts? Die gibts doch erst bei neueren AVRs, mein ASURO ist mit einem Mega8 ausgerüstet - Und der hat definitiv keine PCINTs sondern nur zwei externe Interrupts, von denen einer für die Taster verwendet wird.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  5. #5
    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

    Tja, der Mega8 hat tatsächlich keinen interruptfähigen Pinchange-Eingang an Pin 23/24. Es ist einfach immer doof, wenn man ungeprüfte Aussagen nachplappert. Entschuldigung.

    Gruß

    mic

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

  6. #6
    Erstmal sorry das ich Odemetrie gechschrieben habe und nicht odometrie. Ich verwende keinen Mega 8 sondern einen Mega 168 hätte ich sagen sollen hatte ich nur vergessen das ich diesen schon Lage drauf habe. Dachte er wäre 100% pin gleich.

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    29
    Beiträge
    1.221
    Beim Mega168 gibt es zwei wesentliche Unterschiede: 1. Er kann mehr und 2. Er verwendet als Referenzspannung für ADC/Komparator 1,1V statt 2,56V. Kompatibilität bedeutet ja nicht, dass der Neue nicht leistungstärker sein darf

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    09.05.2007
    Beiträge
    99
    Hallo,
    ich bin eher der Typ "Software". Deshalb stimme ich @markusj zu und sage, dass auch Software weiter hilft. Hier http://www.roboternetz.de/community/...l=1#post337746 habe ich gezeigt, dass selbst bei sehr schlechten AD-Wandler Signalen kein Tick verloren geht. Diese Lösung ist unabhängig von der Amplitude (solange keine near-flatline vorliegt). Insbesondere ist sie unabhängig von irgendwelchen Thresholds die man vorher ermitteln und dann konstant einstellen muss.

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    29
    Beiträge
    1.221
    In der TinyASUROLib habe ich noch einen dritten Weg implementiert: Eine Flankenerkennung. Solange man nicht mit einem Blitzlicht auf den ASURO losgeht ist diese Option sehr zuverlässig und erforderte keine Kalibrierung, die Schwellenwerte sind nach meiner Erfahrung unproblematisch.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.557
    Zitat Zitat von mitch0815 Beitrag anzeigen
    ... Ich verwende keinen Mega 8 sondern ... 168 ... Dachte er wäre 100% pin gleich.
    Na ja, der 168er ist sozusagen pingleich. ABER der 168 ist innen NICHT immer vergleichbar - z.B. die Timer sind etwas anders, auch manche Register . . . deshalb sind die beiden Controller nicht (nicht immer) codekompatibel, von der internen Spannungsreferenz steht schon etwas hier usf.

    Ich hatte meine Messungen oben mit dem ADC von einem mega8 gemacht - originaler asurocontroller - aber vergleichbare Ergebnisse mit dem mega168 auch erhalten. Beim 168er hatte ich für eine gute Spannungsstabilität von Vcc gesorgt und die Vcc am AREF als Referenzspannung genommen. Das ist aber nur eine von mehreren Möglichkeiten, die interne Referenz ist eine andere Möglichkeit.
    Ciao sagt der JoeamBerg

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Asuro erweitern / verbessern
    Von DjEvolver im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 31.03.2009, 11:24
  2. Antworten: 1
    Letzter Beitrag: 10.03.2009, 10:48
  3. Linienverfolgung verbessern
    Von janoschandre im Forum Asuro
    Antworten: 0
    Letzter Beitrag: 24.08.2006, 10:30
  4. [asuro] Linienverfolgung verbessern & Ausgabe d. Sensorw
    Von pult im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 12.06.2006, 21:54
  5. ACS verbessern
    Von michele4711 im Forum Robby CCRP5
    Antworten: 4
    Letzter Beitrag: 24.12.2004, 20:46

Berechtigungen

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