mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit mobilem Roboter


Autor: high-side (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen sehr einfachen Roboter mit:
- Odometrie Sensoren an den Rädern (schwarz-weiß übergang erkennung)
- Fotodioden und eine Leuchtdiode an der Front
(0 - dunkel --> 1023 maximal hell)
- und Berührungstastern an der Front
- 2 elektromotoren für 2 räder (links/rechts)

nun möchte ich meinen roboter alleine über den tisch fahren lassen, 
sobald nun die tischkante erkannt wird soll er eine Kehrtwendung 
einlegen.

Realisiert habe ich das so:
Meldet eine der Fotodioden einen Wert unter einen bestimmten Schwelle 
(aufgrund des nicht mehr reflektierten Lichts) dann wird angenommen, 
dass die Front die Tischkante erreicht hat.

So weit so gut. Das funktioniert auch soweit. Das Problem sind Schatten 
bzw. verschiedene Lichtverhältnisse auf dem Tisch.

Idee 1:
Ich merke mir den letzten Wert i[k-1] und nehme davon 75 % ist der neue 
Wert i[k] nun kleiner als der Schwellwert, wird angenommen, dass die 
Kante erreicht wurde - wegen der plötzlichen Verdunkelung.

Problem:
Ein etwas dunklerer Schatten auf dem Tisch führt auch schon zu einer 
Kehrtwendung ...

Idee 2:
Langsam fahren um so besser auf einen plötzlichen Lichtwechsel reagieren 
zu können

Problem:
Wenn die Motoren unter einer gewissen PWM Frequenz betrieben werden ist 
der Getriebewiderstand zu groß und die Steuerung funktioniert nicht mehr 
richtig...

Idee 3:
Etwas schneller fahren... damit der Getriebewiderstand überwunden 
wird... Roboter erkennt zwar den plötzlichen Lichtwechsel aber kann 
nicht mehr rechtzeitig "bremsen".. auch wenn ich mit "vollgas" den 
rückwärtsgang einlege haut es ihn vom Tisch... ;-)

Irgendwie seh ich noch nicht den golgenden Mittelweg ;-)
Hat jemand von euch eine Idee, wie ich meinen Roboter über den Tisch 
fahren lassen kann ohne stark von Lichtverhältnissen abhängig zu sein?

Ciao

Autor: sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi ich würde so einen art rollen endschalter nehmen sodass sobald dieser 
auslöst der roboter kehrt macht

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Tisch zusätzlich anstrahlen, so dass der Fotosensor vom 
Umgebungslicht und dessen Schatten unabhängig wird?

Wenn sichtbares Licht stört, dann zur Beleuchtung eine IR-LED und IR 
empfindliche Fotodiode nehmen.

Ich verstehe aber nicht, wieso Idee 1 (Angst vorm Schatten) nicht die 
gleichen Probleme wie Idee 3 (Bremsweg) hat.

Autor: high-side (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@sepp:
Ich wollte das Problem erstmal mit meinen Lichtsensoren lösen, wenn das 
total scheitert, werde ich mir wohl was anderes einfallen lassen müssen.

@Stefan:
In der mitte habe ich eine rote led und links und rechts davon eine 
Fotodiode. Die Idee dahinter ist eigentlich damit eine Linienverfolgung 
zu realisieren. Aber ich wollte das ganze zur Tischkantenerkennung 
"missbrauchen".. weil es ja vom Prinzip auch nur eine Erkennung von 
"hell" nach "dunkel" ist, wobei die schwellwerte für hell und dunkel 
hier variabel sind - wegen der unterschiedlichen Lichtverhältnissen.

Was ich bräuchte wäre eine sich schnell adaptierende Hell/Dunkel 
Erkennung. Aber meine momentane Lösung funktioniert nicht so toll bzw. 
ist zu sensibel:
[c]
schwellwert = sensor_alt - (sensor_alt >> 2); // sensor - (sensor / 4) = 
75 % von sensor

if (sensor_neu < schwellwert){
    // Kehrtwendung
}


ciao :)

Autor: Sensorist (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Helligkeit ist einfach das falsche Maß um die Tischkante zu erkennen. 
Eindeutig wäre der Abstand zur Oberfläche. Ist der größer als die Höhe 
von der Tischplatte zum Sensor, hängst du eindeutig über einem 
Abgrund...

Autor: ajkaner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuche es mit dem IR-Dedektor IS471F-SH als Reflektionslichtschranke 
hat auch auf Glastischen gute Dienste geleistet

Autor: Alex Bürgel (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Montier doch den Lichtsensor so nah an der Tischplatte das kein 
Streulicht mehr von der Umgebung dein Meßergebnis verfälschen kann. Dann 
brauchst du natürlich eine eigene Lichtquelle (LED) die du neben dem 
Sensor auf den Tisch leuchten läßt. Kommt das Licht der LED nicht mehr 
zurück (weil sie die Tischkannte runter leuchtet) hast du die Kante 
erreicht...

Autor: space (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

bei industriellen Reflexionslichtschranken und Lichttastern wird
das Licht des Senders gepulst. Der Empfänger "sieht" den Puls, der mit
dem Fremdlicht überlagert ist. Nun muss nur noch das Störsignal des
Fremdlichts ausgefiltert werden.
Viel Spass
Stefan

Autor: sunday morning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem gepulsten Licht ist auch ein interessanter Ansatz:

Also ich pulse die LED z.B. mit einer PWM von 100 Hz und 50 % ...

das rausfiltern.. meinst du das jetzt analog oder in software mit einem 
digitalen TP oder HP oder sowas?

LG

Autor: Malte __ (malte) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vermute er meint in Software. So würde ich es jeden falls lösen. 
Wenn das Einschalten der LED gegenüber dem vorherigem Wert etwas ändert 
-> Tisch, wenn sich fast nichts ändert -> kein Tisch.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.