- SF800 Solar Speicher Tutorial         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 34

Thema: ASURO: Linienverfolgung

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    19.07.2005
    Ort
    Nürnberg
    Alter
    45
    Beiträge
    54
    Anzeige

    Powerstation Test
    So, hier etz zwei Bilder:

    Erstens die schön regelmäsige Ausleuchtung der Fläche und zweitens die abgeschmirgelte LED + die beiden Schrumpfschläuche (nicht geschrumpft).

    Gruß pay.c
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken imgp2474.jpg   imgp2475.jpg  

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    826
    Stimmt. Du hast es wirklcih etwas elleganter gelöst als ich.

    Ich werde mir noch überlegen, wie ich das jetzt bei mir noch weiter mache, weil mich stört halt vorallem, dass je nach Licht eine Dunkle Linie einen anderen Wert hat. Mein Endziel ist eigenlich, dass ich bei einem bestimmten Wert immer genau sagen kann, ob weiß oder schwarz. Egal ob viel Umgebungslicht oder keins.

    Aber dafür muss ich glaub ich noch ne Menge tun.

    So long

    Andun
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    03.08.2005
    Ort
    Triengen
    Alter
    53
    Beiträge
    30
    Irgendwie klappt das mit den beiden Bildern bei mir nicht. Liegt das an meinem Browser oder sind die Bilder tatsächlich nicht verfügbar??

    Nachtrag: Sorry, nun klappt es *fg*

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.05.2005
    Beiträge
    734
    Übrigens, das Umgebungslicht kann man auch per Software unterdrücken. Ich mach das folgendermassen:
    Zuerst das Umgebungslicht mit ausgeschalteter FrontLED messen und merken, dann mit eingeschalteter FrontLED nochmal messen und von diesem Signal die erste Messung (nur Umgebungslicht) abziehen.
    Von der normalen Messung wird also der durch das Umgebungslicht verursachte Wert abgezogen und damit kompensiert. Im Prinzip ist es dasselbe wie bei den IR-Detektoren, die mit 36 kHz takten.
    Ein Beispielcode ist hier:
    Code:
    int i, don, doff;
    
    	FrontLED(OFF);
    	LineData(lineData);
    	doff = (lineData[0] - lineData[1]);
    	FrontLED(ON);
    	LineData(lineData);
    	don = (lineData[0] - lineData[1]);
    	i = don - doff;
    Ohne diese Kompensation hatte ich sehr stark vom Umgebungslicht abhängige Werte. Je nach Stärke des Umgebungslichts waren die Werte bis zu 5mal höher als im Dunkeln. Jetzt bleiben die Werte auch mit Umgebungslicht auf dem Level wie im Dunkeln. Bei mir ist die Differenz zwischen schwarz und weiss jetzt ziemlich konstant und liegt bei etwa 60. Insbesondere im Betrieb mit einer Regelschleife hat das den Vorteil, dass die Verstärkung nicht mehr schwankt.

    Bei zuviel Umgebungslicht versagt auch diese Methode, da hilft nur abschatten.

    Probiert es mal aus, vielleicht erspart es einen Umbau.

    Gruss Waste

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    826
    Oh man! Bin ich blöd! DIe Idee ist ja wohl sowas von simpel. Nur daruf kommt ja immer nicht. Das regt mich jetzt wirklich auf.

    Ich werde deine Methode bei mir mal implementieren.
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo waste,
    hier muss ich leider nachfragen was für einen Zweck dein Programausschnitt hat.
    Als Ergebniss scheint ja i wichtig zu sein. Meiner Meinung nach sollte das aber immer 0 sein. (Unter der Bedingung, dass die Sensoren identisch sind.)

    Meine Idee ist folgende:
    - Asuro steht auf heller Fläche:
    Licht AUS
    messen
    doff = Sensor links - Sensor rechts ---> Ergibt 0 bei identischen Sensoren auf unifarbigen Untergrund
    - Asuro steht auf dunkler Fläche:
    Licht AN
    messen
    don = Sensor links - Sensor rechts ---> Ergibt 0 bei identischen Sensoren auf unifarbigen Untergrund

    Somit wird i bei don - doff auch immer 0!

    Schöne Grüße von Sternthaler

  7. #17
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.05.2005
    Beiträge
    734
    Hallo Sternthaler,

    in dem Fall soll auch 0 heraus kommen.

    Zum Tragen kommt das erst wenn der Sensor nicht mehr mittig auf der Linie ist. Am besten verständlich ist es wenn du die Werte doff, don und i ausliest und dabei mit der Linie und dem Umgebungslicht variierst und auch einseitigen Schattenwurf austestest.

    Gruss Waste.

  8. #18
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo nochmals
    Wenn ich Andun richtig verstanden habe, dann möchte er (ich kann das auch gebrauchen) einfach erkennen was Schwarz ist und nicht ob er mittig auf einer Linie steht die eine andere Helligkeit hat als die Linienumgebung.
    Aus diesem Grund hatte ich oben die Idee mit dem Asuro auf heller bzw. dunkler Fläche. Ob da jetzt noch Umgebungslicht hinzukommt sollte eigendlich für diese Fragestellung egal sein, da dann die dunkle Fläche etwas heller und die helle Fläche halt noch heller wird. Aber ganau das soll ja die Software 'irgendwie' wegrechnen.

    @Andun
    Vielleicht nochmal die Frage:
    Willst du erkennen was hell bzw. dunkel ist wenn du den Asuro auf eine FLÄCHE stellst, oder soll er wie ja der Titel deines Eintrags lautet eine Linie verfolgen können?

    Mir hat die Hardwarelösung von payce jedenfalls bei der Frage nach schwarz oder weiss besser geholfen.


    Schöne Grüße von Sternthaler

  9. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    826
    Moin

    Also als erstes wollte ich natürlich nur der Linie verfolgen. Das finde ich aber nicht sehr zufrieden stellend, da ich dem Bot, dann nciht einfach sagen kann, fahr solange bis du ne Schwarze Linie findest. Im normalen Zustand müsste ich ihm also sagen, fahr bis du einen Helligkeitsunterschied von z.b. 50 feststellst.
    Jetzt kommt aber das Problem:
    - Licht/Schatten verfälschen das Ergebnis
    - Was ist wenn cih schon auf schwarzt starte???

    Also wollte ich möglichst den ersten Faktor ausschalten indem ich die Sensoren abschirme.

    Ich will dann nämlich sagen können, fahre bis du einen Helligkeit von xyz findest und dann weißt du dass du auf schwarz stehst und nciht nur, dass es vielleicht Schatten ist, oder sonst was.

    (War das jetzt verständlich???)

    Andun

    P.S.: Ich kann im Moment leider nciht weiter machen am Asuro da meine alte Kiste mit 800 Mhz sich anhört als ob der Lesekopf gegen die Festplatten wand schlägt. Den lass ich lieber solange aus, bis ich ne gute Möglichkeit (und Zeit) habe, ihn back zu uppen. ( ) Dann kann ich wohl erst weiter machen. Jetzt hock ich nämlich am PC von meinem Bruder.

    Andun
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

  10. #20
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    @Andun
    OK, Fragestellung habe ich jetzt so verstanden, dass du den xyz-Helligkeitwert kennen willst, der dir ohne wenn und aber eine dunkle Fläche mitteilen soll. (Bzw. Der Wert ist noch 'dunkler')

    Dies geht so nicht. (Ich habe da zumindest keine Idee)

    Wenn du aber den Asuro auf die Suche nach einer dunklen Linie schicken möchtest, dann hätte ich folgenden Vorschlag:

    Merker-Flag auf FALSE setzen. /* wird im Ablauf klar */
    Helligkeit messen und merken in Variable 'neu'
    LOOP
    --Asuro fahren lassen
    --Wert aus 'neu' umkopieren nach 'alt'
    --Helligkeit messen und merken in Variable 'neu'

    --IF Merker-Flag ist FALSE UND 'neu' ist (sagen wir mal) 50 dunkler als 'alt'
    ----/* Hier haben wir etwas gefunden, was definitiv dunkler ist */
    ----Merker-Flag TRUE setzen
    ----Weg-Zaehler auf 0 setzen.
    --ENDIF

    --IF Merker-Flag ist TRUE
    ----/* nun den zurueckgelegten Weg über die Odometrie messen */
    ----Weg-Zaehler wird jetzt größer
    --ENDIF

    --IF Merker-Flag ist TRUE UND 'neu' ist (sagen wir mal) 50 HELLER als 'alt'
    ----/* Hier haben wir jetzt das Ende von Dunkel gefunden.*/
    ----Merker-Flag FALSE setzen
    ----IF Weg-Zaehler > irgendetwas-1 UND Weg-Zaehler < irgendetwas-2
    ------/* Hurra, wir haben wahrscheinlich eine schwarze Linie gefunden */
    ------/* irgendetwas-1 und irgendetwas-2 müssen die Breite deiner zu
    --------suchenden Linie darstellen.
    --------Wenn die Linie also 1 cm breit ist und wir für diesen cm sagen wir
    --------mal 20 Takte an der Odometrie benötigen, dann sollte
    --------irgendetwas-1 etwas kleiner als 20 sein und irgendetwas-2 sollte
    --------eine Ecke mehr als 20 haben (vielleicht 40), da wir die Linie ja auch
    --------diagonal schneiden können und sie damit breiter aussieht.
    --------(wie groß irgendetwas-1 und irgendetwas-2 tatsächlich seinen
    ----------müssen, weiss ich nicht, da ich mich noch nicht um Wege
    ----------gekümmert habe.)
    ------*/
    ------/* Nun musst du aber ein Stück zurückfahren, da u die Linie ja gerade
    --------verlassen hast. Ausserdem musst du den Asuro 'nur noch' auf die
    --------Linie drehen. Da habe ich schon wieder keine Idee.
    ------*/
    ----ELSE
    ------/* Hier war unser dunkler Bereich entweder zu schmal oder zu breit.
    --------Wir aber, wissen, dass wir wieder auf etwas hellem stehen.
    ------*/
    ----ENDIF
    --ENDIF
    ENDLOOP


    T'schuldigung, ich habe keine Ahnung wie man formatieren kann


    Was hier noch fehlt, ist dass du den Asuro auf eine dunkle Stelle gesetzt hast. Bis jetzt wurde nur nach einem HELL-DUNKEL-Übergang gesucht.
    Zur Lösung benötigst du einen weiteren Merker, der dir überhaupt erst mal mitteilt, dass ein relevanter Helligkeitswechsel stattgefunden hat. (Egal ob von hell nach dunkel, oder anderherrum)
    Wenn der Wechsel von hell nach dunkel da war kannst du wie oben beschrieben vorgehen. So zumindest die Idee.
    Wenn der Wechsel von dunkel nach hell als erstes erfolgte, kannst du ja erst mal ein Stück rückwärts fahren, wieder ab dem zwingend kommenden hell-dunkel-Übergang, wieder den Weg messen, und hoffen, dass jetzt ein dunkel-hell-Übergang in der erwarteten Strichstärke da ist. Nun würdest du aber den Strich in Fahrtrichtung vor dir haben un müsstest beim drehen auf den Strich dies berücksichtigen.
    Wenn aber der erwartete dunkel-hell-Übergang nicht nach der erwarteten Weglänge gekommen ist, weisst du, dass du auf DUNKEL stehst.
    Jetzt solltest die den Asuro ein bisschen drehen, wieder nach vorne fahren und das Spiel von vorne beginnen.

    Viel Glück dabei. Ich werde dein (hoffentlich erfolgreiches) Ergebnis natürlich kopieren.


    Schöne Grüße von Sternthaler

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests