Forum: Mikrocontroller und Digitale Elektronik Optische erfassung einer Linie


von Niko (Gast)


Lesenswert?

Hallo

Folgendes ich habe die idee mir eine art Carrerabahn selbst zu bauen.
die Idee: Fahrzeuge auf einer Fahrbahn mit weiser linie und schwarzem
untergrund fahren lassen ohne selbst lenken zu müssen, also den
kontrast erfassen berechnen mit µC etc. hat jemand eine Idee wie man
eine solche erfassung umsetzen kann??? das ganze muss natürlich auch
sehr schnell ermittelt werden können.

für tips bin ich Dankbar

von Markus (Gast)


Lesenswert?

Sowas macht man z.B. mit Reflexlichtschranken. Links und rechts von der
Spur ein Sensor und dann merkst Du sofort, wenn Du von der Spur
abgekommen bist.

Markus

von Niko (Gast)


Lesenswert?

Danke erstmal für den Tipp
ich habe mal geschaut CNY70 wäre z.B. eine Reflexionslichtschranke nun
ist nur die frage wie berechne ich sowas bzw. was baruche ich für daten
um eine berechnung durchführen zu können. oder ist es sinnvoller es
einfach durch learning by doing herauszufinden???

von Matthias Beitz (Gast)


Lesenswert?

Ich habe eigentlich keine ahnung von so etwas aber ich würde es so
angehen...

Wenn rechts und links jeweils ein Sensor angebracht ist setzt du das
Fahrzeug so auf die strecke das kein Sensor den strich sehen kann.
Kommt nun der rechte Sensor auf die weise Linie sendet er dir eine 1
und du musst dein Fahrzeug nach rechts steuern bis der Sensor wieder
eine 0 ausgibt. Das selbe mit dem dem linken Sensor. Dann musst du das
ganze nur noch so ausbalancieren das es nicht ins schwingen gerät. Am
Start währe es vieleicht noch sinvoll einen dritten Sensor in der mitte
zu haben dann kannst du die Abweichungen vermutlich noch schneller
erkennen. Auch bei rechten Winkeln kann dir der dritte sensor gut
helfen bei zwei würde da ausser im schneckentempo dein Auto garantiert
nicht mehr auf die Strecke finden.

So würde ich das jedenfalls mal versuchen ob es Funktioniert ist eine
andere sache.

Ich würde jedoch einen draht unter die Fahrbahn geben und diesen dann
abtasten, so wird es auch bei Modelbahnen gemacht, dies geht natürlich
nur bei feste vorgegebenen Strecken, Weichen sind auch möglich. Aber
wenn du die Strecke zB auf den Fussboden zeichen möchtest ist das mit
den Reflex Sensoren besser...

von Niko (Gast)


Lesenswert?

Gut die steuerung Programm anordnung der sensoren usw. ist nicht mein
problem sondern die erfassung der linie also ich brauche eine schaltung
die es mir ermöglicht zwischen ws und sw zu unterscheiden und die mir
dies am besten mit 1 und 0 in den µC schmeist.
die idee mit der reflexlichtschranke ist gut nur die frage kann man
eine solche lichtschranke berechnen sprich verstärkungsfaktor bei x
helligkeit und y abstand ect damit ich zumindest bei der auswahl der
lichtschranken grobe anhaltswerte habe und den rest dan experimentell
ermitteln kann.

von Daniel Widmann (Gast)


Lesenswert?

Hallo
am einfachsten überwachst du mit einer Reflexlichtschranke einen
Schwarz  Weiss übergang. Mach zum beispiel die rechte Fahrbahnhälfe
Weiss, die Linke Schwarz. Der Vorteil ist, das an dem Schwarz Weiss
übergang ein Mischbereich entsteht, da eine Reflexlichtschranke eine
relativ große Fläche bestrahlt. So kannst du ungefähr sagen wie weit du
von dem übergang entfernt bis. Man könnte das sogar mit einer analogen
Regelschaltug aufbauen. Mit einer ein Ein- Aus Lösung bekommst du vor
allem in engen Kurven Starke Probleme. Vor allem mit hin und
herschwanken.

von Christof Krüger (Gast)


Angehängte Dateien:

Lesenswert?

Aua... >600KB für ein homogenes Bild im JPEG-Format...

Hier mal für die Modemer und Bandbreitesparer ^^

@Niko: JPG ist für Fotos, für Bilder mit grossen homogenen Flächen GIF
oder noch besser PNG (650KB <-> 5KB)

von Christof Krüger (Gast)


Lesenswert?

Hmm... sehe gerade, dass es ein umbenanntes BMP ist... noch schöner ;)

von Hagen (Gast)


Lesenswert?

http://www.google.de/search?hl=de&q=line%2Bfollower%2Brobot&btnG=Suche

du kannst einige WEB Sites dazu finden, besonders interessant dabei
dürften für dich die Testumgebungen bei den Competitions sein.
Die meisten Line Follower Robots arbeiten mit mehr als 3 Sensoren.

http://www.robotgames.net/RobotGames/Event_Rules/2002_line_follower.htm
http://home.new.rr.com/mdavey/SM_Folder/LFAdvanced.jpg
http://home.new.rr.com/mdavey/SM_Folder/SM.html
http://www.james.vroman.com/javabot.jpg
http://elm-chan.org/works/ltc/report.html

Nur mal so auf der ersten Seite der google Suche.

Gruß Hagen

von Tipper (Gast)


Lesenswert?

Die hier diskutierten Vorschläge reichen für langsame Fahrt aus.
Der Spass bei Carrera ist jedoch die rasante Kurvenfahrt. Dazu ist eine
Vorausschauende Elektronik nötig, die vor den Kurven das Car verzögert
und ausgangs der Kurven beschleunigt.


Tipper

von Hagen (Gast)


Lesenswert?

Das liese sich doch machen indem man live die Fehlerabweichung von der
Idealline dazu benutzt die Geschwindigkeit zu regulieren. In diesem
Moment würde automatisch die Geschwindigkeit gedrosselt wenn man in
eine Kurve fährt. Klar dazu benötigt man wohl mehr als nur einen
Sensor.


Gruß Hagen

von Niko (Gast)


Angehängte Dateien:

Lesenswert?

Also erstmal bedanke ich mich für euren zahlreichen beiträge.
ich habe mir mal die ganzen möglichkeiten durchgespielt und bin auf
eine lösung gekommen bei der ich denke ist es möglich die linie gut
erfassen zu können und den winkel der kurve möglichst genau zu
bestimmen (im verhältniss zum aufwand natürlich).
wenn ihr noch ein evtl. auftretendes problem bei meiner lösung seht
immer her damit.
Mein vorschlag liegt als jpg bei (und dies mal nicht so gross :)))

von Michael (ein anderer) (Gast)


Lesenswert?

@Niko:

Problem: Was machst Du, wenn der hintere Sensor nicht mehr auf der
Linie ist?

Lösungsvorschlag: Mach anstatt des hinteren einzelnen Sensors auch eine
Reihe aus 5 solcher Sensoren. Dann kannst Du zu jederzeit einigermassen
genau feststellen, von wo nach wo momentan Deine schwarze Linie
verläuft, egal ob das Fahrzeug genau mittig auf der Linie steht. Denn
exakt mittig wirst Du es eh nicht halten können.

von juergen klauck (Gast)


Lesenswert?

hi
erinnert mich irgentwie an ne schweissnaht -erkennung -verfolgung
gruss juergen .-}

von Rahul (Gast)


Lesenswert?

mich erinnert das an eine Diplomarbeit hier an der FH.
Da hat jemand versucht (Ob es endgültig geklappt hat, weiß ich nicht),
ein ferngesteuertes Fahrzeug über eine Linie aus Kreppband fahren zu
lassen.
Über die Fernsteuerung wurde nur die Geschwindigkeit geregelt.
War eine schöne Regelungstechnik-Aufgabe. Regler arbeitet mit
Fuzzy-Logik. Je nach Geschwindigkeit wurde die stärke des
Lenkeinschlages reguliert.

Im Moment stelle ich es mir schwierig vor, den Roboter im Winkel von
90° zu bewegen, da dabei möglicherweise gar keine Erkennung oder
mehrfache Erkennung der Linie möglich ist.
Ausserdem fahren Carrera-Autos bei ner 90°-Kurve meistens nicht mehr
auf der Bahn...

Bis zu einer bestimmten Geschwindigkeit und einem bestimmten
Kurvenradius sollte das kein Problem sein. (Gottfried Daimler hat auch
nicht gleich mit der Formel 1 angefangen...)

Gruß
Rahul

von juergen klauck (Gast)


Lesenswert?

hallo
ja mit 2 sensoren nen dynamisches system zu steuern bzw. regeln wird
wohl nich ganz einfach werden
beim robo fussball ham se soweit ich weiss, ne zentrale kamera mit der
die position(en) erfragt werden koenne
aber auf jeden fall ein interessantes gebiet
gruss juergen

von Niko (Gast)


Angehängte Dateien:

Lesenswert?

Den vorschlag von michael habe ich angenohmen den hinteren sensor habe
ich durch 2 ersetzt ich denke aber das bei einer fahrt auf eine 90°
kurve alle sensoren auf der seite der kurve reagieren und dann voll
eingelengt werden kann. selbst eine wendung an einem kleinen punkt
halte ich für denkbar habe diese möglichkeit auch nochmal mit
aufgezeichnet. die lenkung habe ich vor über zwei pwm gesteuerte
motoren zu machen, die halt unterschiedlich schnell angesteuert werden
damit ich die kurven hin bekomme, und dann sollte selbst das wenden auf
einem punkt machbar sein.

mich würde noch interesieren was ihr zu der Reflexlichtschranke cny70
sagt, ob vileicht sogar schon mal jemand erfahrung hiermit gemacht
hat.
http://personal.telefonica.terra.es/web/xrobotics/downloads/datasheets/cny70.pdf

von Niko (Gast)


Lesenswert?

ups habe gerade bemerkt das der link nicht funzt
hier nocheinmal


http://personal.telefonica.terra.es/web/x-robotics/downloads/datasheets/cny70.pdf

von PeterL (Gast)


Lesenswert?

hallo

als Sensor wäre eine optische Maus sicher gut geeignet

von Hagen (Gast)


Lesenswert?

hast du mal ins Datenblatt geschaut ?
Gleich auf der ersten Seite steht: Sensing Distance 0,3mm, das sind 3
Hunderstel Millimeter Abstand vom Boden ?

Gruß Hagen

von Michael (ein anderer) (Gast)


Lesenswert?

@Hagen:

Na, na, na. Nicht immer so übertreiben... 0,3mm sind 3/10 mm, und das
sind 30/100 Millimeter und dies sind wiederrum 300um was auch als
300.000nm ausgedrückt werden kann und wenn man möchte kann man das auch
als 300.000.000pm angeben.

Aber das ist alles egal, der Abstand bleibt immer der gleiche, mämlich
0,3mm, auch wenn Du den Abstand in Lichtjahre umrechnen würdest...

Ist so ähnlich wie: Was ist schwerer, 1000 Gramm oder 1 Kilogramm?

von Hagen (Gast)


Lesenswert?

;) ähm stimmt natürlich. Ich wollte ihm eigentlich nur diesen Punkt
deutlich machen, bevor er das noch übersieht. 0.3mm Abstand halte ich
schon für wenig.

Gruß Hagen

von Reinhard Tarnick (Gast)


Lesenswert?

Hallo Niko,

warum setzt Du nicht statt der vielen Reflexlichtschranken eine CCD
Zeile ein. Da hast Du wirklich einen genauen Wert, wie groß die
Abweichung ist.

Gruß Reinhard

von Niko (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe das mit den 0,3 mm schon gesehen aber unten bei den Diagrammen
ist eins dabei abstand zu Coletorstrom und dann hätte ich bei 2-4mm
abstand noch genügend strom um es auswerten zu können.

Aber die geschichte hat sich erledigt, denn ich habe heute mal ein
wenig experimentiert und habe zwei LDR´s und 4 LED´s genommen die wie
im Anhang beschaltet und angeordnet sind.
Dardurch bekomme ich über beiden LDR´s einen Spannungswert der mir
aussagen kann ob ich mich auf der Linie befinnde oder nicht und über
einem LDR gemessen erhalte ich einen spannungswert der mir aussagen
kann in welche richtung ich die linie verlasse.
Wie gesagt ich habe es probiert die spannung über einem LDR zur
richtungsermittlung hatte ich eine spannungsänderung von ca. +/- 500mV
und über beide LDR´s zur erfassung der Farbe (also der linie)
hatte ich änderungen von ca. 1V bei Farbwechsel.

ich denke diese werte sollten ausreichen um das ganze analog auswerten
zu können.

Für weitere Tips bin ich immer Dankbar

von Hagen (Gast)


Lesenswert?

Ich hätte vesucht die Sende LEDs, infrarot, in einer spezifischen
Frequenz zu pulsen. Als Empfänger IR Transistoren mit nachgeschaltetem
Bandpassfilter. Damit würden eventuelle Störstrahlungen ausgefiltert.

Aber das geht ja bei deiner Schaltng auch. Zuerst misst du mit
ausgeschalteten Sende-LEDs und dann nochmal mit eingeschalteten LEDs.
Die Differenz dürfte sich dann ziemlich exakt auf deine Linie
beziehen.

Gruß Hagen

von Reinhard Biegel (Gast)


Lesenswert?

Hallo!

@Niko:

Funktioniert das mit den LDRs auch noch bei höheren Geschwindigkeiten?
Sind ja meistens ziemlich träge, oder?

mfg
Reinhard

von Niko (Gast)


Lesenswert?

Dazu kann ich leider noch nichts sagen, da mir noch das fahrzeug fehlt,
aber ich denke die idee von hagen sollte nach dem selben prinzip
funktionieren können und da sollte es mit der geschwindigkeit auch
nicht mehr das problem sein.
Ich denke ich fang jetzt an die möglichkeiten durchzuspielen, da ich
das gefühl habe das es bei jeder version ein pro und contra gibt.
Ich denke hierbei muss ich einfach die beste lösung experimentell
ermitteln.

Wenn noch jemand eine neue idee hat, ich bin offen für alles :-)
aber ich denke ich habe erstmal genug infos um anfangen zu können.

von Reinhard Biegel (Gast)


Lesenswert?

Neue Idee:
Optische Abtastung wie bei einer Maus :-)

Aber ich glaub, jetzt wirds zu viel....ich geh besser schalfen.

mfg
Reinhard

von Hagen (Gast)


Lesenswert?

> Wenn noch jemand eine neue idee hat, ich bin offen für alles :-)
> aber ich denke ich habe erstmal genug infos um anfangen zu können.

Nachdem der Sensorcode funktioniert ist es wichtig was für einen
Regelkreis du zur Ansteurerung der Motoren benutzt. Dieser Regelkreis
sollte per Feedback die Trägheiten der Motoren berücksichtigen und die
zeitlichen Regelverzögerungen betrachten. Ich versuche mal auf einfache
Weise zu erklären was ich meine: Also du weist das die Sensoren
rechts/links 10 mm Abstand zueinander haben. Du weist das zum aktuellen
Zeitpunkt des Auslesens und Nachregeln der Motoren schon X Millisekunden
vergangen sind, d.h. also das du schon seit X Millisekunen eine
Rechtskurve mit Geschindigkeit Y fährst. Nun werden die Sensoren
ausgelesen und du stellst fest das Sensor Links anschlägt, also nach
Links gefahren werden muß. Nun solltest du die Motoren eben NICHT in
voller Gegenrichtung ansteuern denn das würde ein Schwingen des Autos
um die Linie herum bewirken. Stattdessen wird die Geschwindigkeit des
Autos + die aktuell gelenkte Richtung des Autos mit in den Regelkreis
einbezogen. Je nach gefahrener Geschwindigkeit und Richtung wird also
beim aktuellen Neueinregeln der Motoren die Gegensteuerung in die neue
Richtung berücksichtigt. Je höher die Geschwindigkeit und je stärker in
Gegenrichtung gelenkt wurde desto schneller und stärker müsste man
Gegensteuern. Nachdem nunGegengesteuert wurde sollte beim nächsten
Einregeln die Stärke der Gegensteuerung nicht linear reduziert werden.
Bildlich gesehen haben wie eben gerade die Linie Links erwischt und bei
hoher Geschwindigkeit des Auto auch stärker nach Links gelenkt.Nun
sollte dieses Einlenken automatisch so reduziert werden das das Auto
als Ziel eine Gerade über die Linie genau mittig zwischen den Sensoren
fährt. Dazu muß also succesive die Geschwindigkeiten der beiden Motoren
aufeinander angepasst werden so daß zur aktuellen Geschindigkeit des
Autos die Motoren nach X Millisekunden mit gleichem Speed eingeregelt
werden.

Ich hoffe mal das meine Ausführungen nicht zu kompliziert sind.
Was ich damit meine ist simpel gesagt das es nicht ausreichen wird sich
nur auf die Sensoren zu verlassen, sondern das man die physikalischen
Gesetzmäßigkeiten und technischen Parameter der Motoren mit in den
Regelkreis einbeziehen sollte.

Gruß Hagen

von Jens123 (Gast)


Lesenswert?

da ist was dren =)

das wird sicher nicht einfach sein denke mal auch, das es nicht
verkehrt ist irgendwie ein analoges signal aus den sensoren zu
bekommen
sprich wenn es eine scharfe linkskurve ist, dass mehr gebremst und mehr
gelenkt wird.. wobei bei einer geraden das auto nur ein wenig nachlenken
muss
es ist sicher einfacher soetwas mittels Induktion zu erziehlen
also eine Spule, die dann einem Drath nachfaehrt.

Es gibt Gabelstablernetze, di voellig allein fahren, da liegt im Boden
ein Kabel mit einer bestimten Frequenz und diese Freqzenz sagt dem
Stabler, wo er sich gerade befindet und an welcher Stelle er abbiegen
muss.

Gruss Jens

von Hagen (Gast)


Lesenswert?

> das wird sicher nicht einfach sein denke mal auch, das es nicht
> verkehrt ist irgendwie ein analoges signal aus den sensoren zu
> bekommen

das sehe ich nicht so. Denn das analoge Signal ist nur zur
Unterscheidung der Helligkeiten zwischen Untergrund und aufgemalter
Linie entscheidend. Der Regelkreis wertet pro Sensor aber ein Digitales
Signal aus. D.h. ist Sensor auf Linie oder daneben. Will man den
Regelkreis exakter gestalten dann benötigt man mehrere Sensoren pro
Seite. Zb. bei 6 Sensoren, jeweils 3 Rechts und 3 Links wird es nun
möglich ein "analoges" Signal der Entfernung von der Ideallinie zu
erzeugen. Sprich -3, -2, -1, 0, +1, +2, +3.  -3 == Sensor Links ausssen
ist auf Linie, -2 == Sensor Links Mitte ist auf Linie, -1 == Sensor Link
innen ist auf Linie usw.
Das könnte man dann so erweitern das als Zwischenstufen zB. -2.5 die
Linie zwischen den Linken Sensoren liegt. Dafür bräuchte man dann eine
analoge Auswertung der Sensoren.


Gruß Hagen

von Jens123 (Gast)


Lesenswert?

oder so..

Wie egsagt es gibt Gabelstabler, die sowas induktiv machen und danach
fahren...

wenn das alles so einfach ist ueber Farben denke ich weniger, dass im
automotiv bereich noch nichts in der hinsicht entwickelt wurde

Gruss Jens

von Max Müller (Gast)


Lesenswert?

Nett, all die Ideen zu lesen, die die Leute haben.

Das was Rahul gesehen hat funktioniert.
Ich kann euch auch sagen, wie es genau funktioniert :-)

Also 1. Trick:
Da Klebeband sollte nicht weis sein, sondern Schwarz.
Das kommt daher, das optimalerweise im IR Bereich abgetastet wird, und
da ist der Unterschied von Grau zu Schwarz wesentlich besser als weis
zu grau. (Für künstliche beleuchtung via paar IR LEDs sorgen.

2. Trick man nimmt einen sogenannten Linearzeile. Das ist in
Zeilenkameras verbaut.
Da gibt es teuere, aber auch billiger.
Die gibt es von verschiedenen Herstellern. Früher war mal die TSL21x
von Texas Instrumens ganz gut.
Dieser Typ ist aber nicht mehr erhältlich.
Sucht mal nach Zeilenkamera bausteine. Die sind auch in alten
Handscannern verbaut.

3. Jetzt könnt ich mittels Komperator oder A/D Wandler die Line quer
einlesen.
Nun müsst ihr mittels Rechner nur noch die Position im verhältnis zum
wagen bestimmen und dann mittels Regelalgorythmus einen Positionsfehler
ausgleichen.

4.Ach ja der FuzzyRegler, von dem Rahul gesprochen hat, war ein
gewöhnlicher 2 stufiger Schwellwertkomperator, der die Abweichung
mittels 2 Fahrstufen ausgeglichen hat.

5. Ihr könnt auch noch die Zeile in die 2 Dimension auswerten und dann
zusätzlich einen Barcode an der Seite der Line einlesen, mit dem Ihr
dann die Geschwindigkeit regeln könnt.

Das sollte an Information genügen :-)
So machen es manche fahrerlosen Transportgeräte.

von Rahul (Gast)


Lesenswert?

Nabend!
Bei den heutigen Weihnachtseinkäufen bin ich mal wieder über
Fischertechnik gestolpert:
Da gibt es einen Computing-Anfangskasten mit dem
Intelligent-Interface.
Eins der Fahrzeuge folgt einer Taschenlampe und ein anderes folgt einer
Linie auf dem Boden.
So wie ich das Bild auf der Packung interpretiere, besitzt der
Linienverfolger zwei Sensoren.
Ich gehe aber davon aus, dass das FT-Fahrzeuges die typische geringe
FT-Geschwindigkeit besitzt.

Die autonomen Fahrzeuge, die einer metallischen Leitung folgen arbeiten
vermutlich nach einem ähnlichen System. Man benutzt die "Schiene"
einfach deswegen, weil sie nicht so leicht verschmutzt (Halle 52 von
VW).

Gruß Rahul

von Max Müller (Gast)


Lesenswert?

Da siest du mal.

Porsche und MB machen es teilweise mit Leitdraht (Die großen Teil, wo
ganze Autos transportiert werden).

Und teilweise mit aufgeklebter Bahn, für die kleineren Teile bus
Paletten größe, oder Motoren.

Gruß

Max
.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.