Spur finden und folgen
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Spur finden und folgen
Hallo zusammen,
ich hätte mal eine Frage.
Mein Roboter soll eine Spur finden und der dann auch folgen.
Wenn er die Spur gefunden hat, aber fast in eiem Rechtemwinkel zu ihr steht,
fährt er einfach über sie hinweg.
Ich habe schon probiert das Programm zu ändern, aber es funktioniert nicht.
Vieleicht könnte man auch etwas an der Spur ändern.
Könntet ihr mir bitte helfen, da ich keine Ahnung habe, wie ich das Problem lösen kann.
Mit freundlichen Grüßen
stupsi100
ich hätte mal eine Frage.
Mein Roboter soll eine Spur finden und der dann auch folgen.
Wenn er die Spur gefunden hat, aber fast in eiem Rechtemwinkel zu ihr steht,
fährt er einfach über sie hinweg.
Ich habe schon probiert das Programm zu ändern, aber es funktioniert nicht.
Vieleicht könnte man auch etwas an der Spur ändern.
Könntet ihr mir bitte helfen, da ich keine Ahnung habe, wie ich das Problem lösen kann.
Mit freundlichen Grüßen
stupsi100
Re: Spur finden und folgen
Hallo
versuch mal die Geschwindigkeit zu verringern.
versuch mal die Geschwindigkeit zu verringern.
Viele Grüße,
Manuel Neumann
Manuel Neumann
Re: Spur finden und folgen
Hallo
Wenn ich die Geschwindigkeit verringere, dann fährt er trotzem über die Linie hinaus.
Er müsste sich immmer so rechts drehen, damit er parallel zur Linie steht.
Grüße stupsi100
Wenn ich die Geschwindigkeit verringere, dann fährt er trotzem über die Linie hinaus.
Er müsste sich immmer so rechts drehen, damit er parallel zur Linie steht.
Grüße stupsi100
Re: Spur finden und folgen
Hallo,
das Problem daran ist, dass der Roboter nicht unterscheiden kann, ob er direkt gerade auf der Linie steht, oder genau im 90° Winkel dazu, denn beide Male liefern beide Fototransistoren den Wert 0, was soviel heißt wie 'Spur vorhanden'. Daher fährt er auch einfach weiter. Also müsste man sozusagen im Unterprogramm Spursuche immer abfragen, falls er auf einer Spur steht, wie lange diese ist, bzw. wie lange er benötigt, dass keiner der beiden Fototransistoren mehr eine Spur erkennt. Wenn es zu kurz dauert, soll er sich nach links bzw. rechts drehen, bis er eine Spur gefunden hat.
MfG McDoofi
das Problem daran ist, dass der Roboter nicht unterscheiden kann, ob er direkt gerade auf der Linie steht, oder genau im 90° Winkel dazu, denn beide Male liefern beide Fototransistoren den Wert 0, was soviel heißt wie 'Spur vorhanden'. Daher fährt er auch einfach weiter. Also müsste man sozusagen im Unterprogramm Spursuche immer abfragen, falls er auf einer Spur steht, wie lange diese ist, bzw. wie lange er benötigt, dass keiner der beiden Fototransistoren mehr eine Spur erkennt. Wenn es zu kurz dauert, soll er sich nach links bzw. rechts drehen, bis er eine Spur gefunden hat.
MfG McDoofi
- Dirk Fox
- ft:pedia-Herausgeber
- Beiträge: 1833
- Registriert: 01 Nov 2010, 00:49
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Spur finden und folgen
Hallo stupsi100,
am besten löst man ein solches Problem mit einem Zustandsübergangsdiagramm. Dazu schreibst Du die möglichen Zustände, in denen sich Dein Roboter befinden kann, auf ein Blatt Papier und malst um jeden Zustand einen Kreis. Der Übergang von einem Zustand in einen anderen hängt nun von den Werten ab, die Deine Sensoren liefern; im Diagramm zeichnest Du dazu einen Pfeil vom Ausgangszustand zum Folgezustand, den Du mit dem Sensorergebnis kennzeichnest. Aus dem Diagramm kannst Du dann leicht das Programm ableiten.
Beispiel: Der Anfangszustand Deines Roboters ist "keine Spur bekannt". Solange die Sensoren "weiß" melden, bleibt der Roboter in diesem Zustand (und fährt wahrscheinlich einfach geradeaus). Meldet einer der Sensoren "schwarz", ist eine Spur gefunden, und abhängig vom Sensor, der "schwarz" meldet, geht der Roboter in den Zustand "links von der Spur" oder "rechts von der Spur" über, und dreht dabei ein paar Grad nach rechts oder links, bevor er weiterfährt. Melden beide Sensoren "schwarz", dann sollte der Roboter in den Zustand "auf der Spur" übergehen, und sich um 90° drehen, bevor er weiterfährt. Aus jedem Zustand in Deinem Zustandsübergangsdiagramm muss für jede mögliche Sensormeldung ein Pfeil abgehen, der entweder in einen der anderen Zustände führt, oder in denselben Zustand zurück.
Gruß, Dirk
am besten löst man ein solches Problem mit einem Zustandsübergangsdiagramm. Dazu schreibst Du die möglichen Zustände, in denen sich Dein Roboter befinden kann, auf ein Blatt Papier und malst um jeden Zustand einen Kreis. Der Übergang von einem Zustand in einen anderen hängt nun von den Werten ab, die Deine Sensoren liefern; im Diagramm zeichnest Du dazu einen Pfeil vom Ausgangszustand zum Folgezustand, den Du mit dem Sensorergebnis kennzeichnest. Aus dem Diagramm kannst Du dann leicht das Programm ableiten.
Beispiel: Der Anfangszustand Deines Roboters ist "keine Spur bekannt". Solange die Sensoren "weiß" melden, bleibt der Roboter in diesem Zustand (und fährt wahrscheinlich einfach geradeaus). Meldet einer der Sensoren "schwarz", ist eine Spur gefunden, und abhängig vom Sensor, der "schwarz" meldet, geht der Roboter in den Zustand "links von der Spur" oder "rechts von der Spur" über, und dreht dabei ein paar Grad nach rechts oder links, bevor er weiterfährt. Melden beide Sensoren "schwarz", dann sollte der Roboter in den Zustand "auf der Spur" übergehen, und sich um 90° drehen, bevor er weiterfährt. Aus jedem Zustand in Deinem Zustandsübergangsdiagramm muss für jede mögliche Sensormeldung ein Pfeil abgehen, der entweder in einen der anderen Zustände führt, oder in denselben Zustand zurück.
Gruß, Dirk
Re: Spur finden und folgen
Hallo,
Danke für euere Antworten. Ginge es vielleicht auch so:
------------------------------------------------------------------------------------------------- Obere Spur
-------------------------------------------------------------------------------------------------
// // // // // // // // // // // // // // // // // // // // //
// // // // // // // // // // // // // // // // // // // // // Mittlere Spur
____________________________________________________________________
----------------------------------------------------------------------------------------------- Untere Spur
Der Roboter erkennt die untere Spur, folgt dann der mittleren Spur,
die einen kleinen Abstand untereinander haben und wird so auf die obere Spur geleitet,
auf der er weiter fahren kann.
Vielen Dank im Vorraus
stupsi100
Danke für euere Antworten. Ginge es vielleicht auch so:
------------------------------------------------------------------------------------------------- Obere Spur
-------------------------------------------------------------------------------------------------
// // // // // // // // // // // // // // // // // // // // //
// // // // // // // // // // // // // // // // // // // // // Mittlere Spur
____________________________________________________________________
----------------------------------------------------------------------------------------------- Untere Spur
Der Roboter erkennt die untere Spur, folgt dann der mittleren Spur,
die einen kleinen Abstand untereinander haben und wird so auf die obere Spur geleitet,
auf der er weiter fahren kann.
Vielen Dank im Vorraus
stupsi100
Re: Spur finden und folgen
See the description of the state machine for the 2 binary sensors. http://forum.ftcommunity.de/viewforum.php?f=33
The FtTxService (MS-RDS) for the TX=C contains an additional service that contains the full implementation of this state machine.
See also the example in the fischertechnik FtBot2012
Back to the problem.
The polling of the sensor is not continuous but every only every 10 ms (USB) 15-25 ms (BT).
In case the changes are going too fast, the system will miss the details.
The will be the case when the angle between the sensor and the line will be close to zero (crossing the line).
This is a mathematical problem and in terms of control engineering this calls system instability.
This means that your control system exceeds the limitations of the hardware.
How to solve this problem:
*) Buying better (professional) hardware (expensive; see for example the interface of National Instruments).
*) Take 2 trail sensors (4 binary sensors in a square) and develop a more complex state machine.
*) Develop a more complex algorithm to find back a line in case of the state transition “both on line=> both off line”
The FtTxService (MS-RDS) for the TX=C contains an additional service that contains the full implementation of this state machine.
See also the example in the fischertechnik FtBot2012
Back to the problem.
The polling of the sensor is not continuous but every only every 10 ms (USB) 15-25 ms (BT).
In case the changes are going too fast, the system will miss the details.
The will be the case when the angle between the sensor and the line will be close to zero (crossing the line).
This is a mathematical problem and in terms of control engineering this calls system instability.
This means that your control system exceeds the limitations of the hardware.
How to solve this problem:
*) Buying better (professional) hardware (expensive; see for example the interface of National Instruments).
*) Take 2 trail sensors (4 binary sensors in a square) and develop a more complex state machine.
*) Develop a more complex algorithm to find back a line in case of the state transition “both on line=> both off line”
Re: Spur finden und folgen
Hallo zusammen
ich habe mir auf mein Roboter eines der Beispielprogramme heruntergeladen.
Der Roboter des Programmes soll der Spur folgen, anhalten wenn die Spur aus ist und die Farbe des Feldes erkennen.
Ich habe für meinen Roboter zwei Encodermotoren, ein Spurensensor und einen Farbsensor verwendet.
Doch mein Roboter hält nicht an, wenn er anhalten soll.
Könnt ihr mir bitte sagen was ich falsch gemacht habe!!!
Vielen Dank im Vorraus
stupsi100
ich habe mir auf mein Roboter eines der Beispielprogramme heruntergeladen.
Der Roboter des Programmes soll der Spur folgen, anhalten wenn die Spur aus ist und die Farbe des Feldes erkennen.
Ich habe für meinen Roboter zwei Encodermotoren, ein Spurensensor und einen Farbsensor verwendet.
Doch mein Roboter hält nicht an, wenn er anhalten soll.
Könnt ihr mir bitte sagen was ich falsch gemacht habe!!!
Vielen Dank im Vorraus
stupsi100