PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Idee: Sensoranordnung für Linienverfolgung



Maniax
23.09.2008, 12:59
Hi,
ich arbeite mit zwei Freunden an einem Maturaprojekt und wir müssen einen Roboter bauen, der eine Linie verfolgen und Hindernissen ausweichen kann.
Zum Thema Sensorik für die Linienverfolgung:
Wir haben uns ein konzept überlegt zu dem wir gern die Meinung von ein paar Experten hören möchten

Die vorderen vier Sensoren dienen hauptsächlich der Kurvenerkennung und die hinteren drei der Linienhaltung.
Hierbei geht es nur um die grundsätzliche Idee vorne vier und hinten drei Sensoren zu benutzen; die Positionen sind noch nicht endgültig!!!

Danke im Voraus für die vielen Antworten ;)

Panzer4000
23.09.2008, 13:36
Hallo!

habe schon einige Linienverfolger gebaut. Aber ich komme mit der Idee nicht klar. 4 vorn Kurvenerkenner und hinten 3 Linienhalter ?

Was macht wer, wenn von vorn erkannt wird, dass nehmen wir an eine rechts Kurve kommt. Also Signal an Motor rechts langsam. Nun ist Sensor hinten links weg von Linie obwohl die noch geradeaus geht und er gibt an Motor links langsam. Spiel geht bis Robo steht.
Aber eure Idee würde mich interessieren.

Gruß

Lemonsquash
23.09.2008, 13:49
Kannst ja bei erkennen einer Kurve die linienhaltefunktion deaktivieren bis die Kurve vorbei ist....

jeffrey
23.09.2008, 13:51
Kannst ja bei erkennen einer Kurve die linienhaltefunktion deaktivieren bis die Kurve vorbei ist....
hi, dann fährst du aber praktisch immer nur mit den vorderen und du kannst dir die hinteren glech sparen.

Maniax
23.09.2008, 14:24
Hi

meine idee war es eigentlich den vorderen sensoren eine höhere priorität zu geben... dadurch lenkt er hinten solange einer der vorderen sensoren anspricht nicht nach
wenn er dabei die linie verliert dachte ich an eine programmpassage bei der er geradeaus weiterfährt => er findet an den hinteren sensoren die linie wieder und lenkt ein

sollte die idee doch zu weit hergeholt sein ... was würdest du anders machen?

mfg

Maniax
23.09.2008, 14:26
@jeffrey: die hinteren sensoren dienen hauptsächlich dazu auf einer geraden linie nicht vom kurs abzukommen...wenn ich da nur die vorderen hätte würde er das zwar auch schaffen aber warscheinlich hin und her hüpfen und dadurch nie mit voller geschwindigkeit fahren

jeffrey
23.09.2008, 14:39
hoi,
ded macht lkeinen unterschied, ob du mit den vorderen oder den hinteren lenkst. die hinteren sind sogar eher schlechter. weil du da nen kleinenren hebel hast, also ne größere korrekturbewegung machen musst. das ganze ändert eigentlich nur den verstärkungsfaktor der bewegung. das kannst du aber auch einfach direkt im regler ändern. das einzigste was unterschiedlich ist, ist die auflösung, weil die vorderen weiter auseinander sidn. dann iost es imho ebr besser die hinteren einfach zwischen ie vorderen zu stzen. so brauchst du keine umschaltung zwischen den reglern. und hast auf der linie trotzdem ne gute auflösung.
mfg jeffrey

Maniax
23.09.2008, 14:58
meinst du das ich einfach nur die vier vorderen sensoren benutzen soll und wenn keiner anspricht der robo einfach nur mit vollgas vorwärts fährt?

aber die frage ist wenn ich als zusatz eine funktion schreiben muss bei der der roboter sich die linie selbst suchen muss und ihr dann folgt (was durchaus sein kann) brauche ich zumindest einen in der mitte der mir die daten liefert das eine linie vorhanden ist....

jeffrey
23.09.2008, 16:47
hoi,
ich hab doch gesagt, du sollst die hinteren 3 einfach zwischen den 2 mittleren vorderen platzieren. dann hast du dort ne gute auflösung, und kannst die linie finden.
mfg jeffrey

Ceos
23.09.2008, 18:29
mal ganz ehrlich wieso sollte er nicht zum vollen tempo kommen, cih habe schonmal iwo im forum nen projekt vorgetsellt, da haben meine kollegen und ich Asuros verwendet und die haben nur 2 sensoren, wenn du relativ schnell fährst, und merkst dass die helligkeitswerte auf einer seite anfangen zu sinken, regelst du einfach kontrolliert den rechten motor ein klein wenig nach unten und den linken ein klein wenig nach oben, so korrigierst du den kurz ohne großartig an fahrt zu verlieren,
wobei du bei einfachen phototransistoren eine differentielle messung machen solltest, also ne diode die den boden beleuchtet die du dann für eine messung anschaltest und dann für die 2te messung wieder ausschaltest, anschliessend subtrahierst du die beiden werte und hast ein sehr präzisen "fast" einstreulicht unabhängigen wert
sogar sehr fein aufgelöst, du brauchst also keinen schwellwert sondern regelst einfach die motoren-stärke nach dem helligkeitsunterschied!

kleiner tip dabei benutze den interrupt für ADC complete um die messungen zu verrechnen ohne dass euer programm stoppen muss