-         

Ergebnis 1 bis 6 von 6

Thema: Mein Asuro kann einfach nicht alles gleichzeitig ... Ideen?

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    29
    Beiträge
    826

    Mein Asuro kann einfach nicht alles gleichzeitig ... Ideen?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi

    Ich überforde meinen Kleinen schon wieder... Es hat mich heute über 2h gekostet bis ich drauf kam, dass er überfordert ist und ich ihm nicht eine blöde Aufgaben stelle.

    Die Idee: Fahre gerade aus bis ich ne Taste drücke und gib mir dann die gefahrene Strecke anhand der Odometrie Werte aus.

    Der Code sa in etwa so aus:
    Code:
    EncoderInit()
    fahre!
    while(1)
      taster=Pollswitch;
      if(taster) break;
    bremse!
    Gib encoder[0] aus
    Ja, eigentlcih ja ein ziemlich idiotensicheres Programm, aber nach 2m fahren kamen Werte von etwa 10 bis 15 heraus und damit ist eine vernünftige Korrektion der Fahreigenschaften nicht machbar.

    Es hat mich 2h gekostet mit vielen kleinen Nebenversuchen drauf zu kommen, dass ich ja mit den ständigen Aufrufen von PollSwitch den ADC-Konverter blockiere und die eigentliche selbstständig im FreeRun Modus laufenden Konvertierungen unterdrücke.

    Problem klar?

    Des Problems kurze Lösung: Ich lass mir die Encoder-Werte nach 2,5s ausgeben. -> Werte um 480 für encoder[0] bei Tempo 200 in der Luft frei drehend.

    Problem langfristig: Ich hab das ganze gebraucht, da ich meinen Asuro einen Parcour nach oben schicke, auf welchem er manchmal anecken kann. Per Tastendruck hab ich das schon abgefangen, aber leider kommt es immer wieder vor, dass er sich so verhakt, dass er sich nicht mehr bewegt, aber auch kein Taster gedrückt ist.
    Idee -> Da auch meistens ein Rad dabei blockiert, lässt sich das über die Odometrie erkennen.

    Ja, und wie werte ich nun die Odometrie aus während ich ständig auf die Tasten schaue? Hier kommt ihr ins Spiel!!!

    Meine Überlegung:
    Ich baue in die while(1) eine weitere if(Gettime()>zeit+xyz) ein, so dass ich bei yxz Millisekunden schaue ob eine Taste gedrückt wurde. Dann wird wieder zeit = Gettime() gesetzt und die Schleife läuft weiter.

    Sonst läuft er ohne was zu tun durch die while-Schleife durch und darf encoden für die Odometrie.

    Irgendwie ist mir nicht sooo wohl bei dem Gedanken, dass der Ausro irgendwas rammt und es erst ein paar Schleifendurchläuft später merkt. Oder meint ihr, dass das "harte" Erkennen von Hindernissen durch die Taster dann eh schon seinen Schaden angerichtet hat und der Asuro steht?

    Was habt ihr für Vorschläge für dieses Problem? Wie kann der Asuro alles gleichzeitig schaffen?

    Danke

    Andun

    --- Da ich selbst nicht's passendes über die SuFu gefunden hab, hier mal ein paar Tags, damit man diesen Thread später vielleicht mal besser findet:
    Asuro gleichzeitig Odometrie Autoencode encode Tasten PollSwitch[/code]
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo Andun

    Mit der aktuellen Lib und ihren Funktionen kenne ich mich nicht aus, weil ich sie nicht verwende.

    Aber die Kollisionserkennung über die Räder kenne ich, und wenn ich zufällig die Nadel im Threadhaufen gefunden habe, ist es dies hier:
    http://www.roboternetz.de/phpBB2/zei...ag.php?t=23163

    Noch aus vor 2.7er-Lib-Zeiten. Sehr genial was der hochverehrte stochri da abgeliefert hat.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.062
    Blog-Einträge
    2
    Hallo radbruch,

    Sehr genial was der hochverehrte stochri da abgeliefert hat.
    Sehr vielen Dank für die Lorbeeren

    Du hast recht, in diesem Thread habe ich die Methode verwendet. Es hat mich gewundert, dass niemand später das Verfahren mal eingesetzt hat. Im ASURO-Forum taucht ja immer wieder mal die Frage nach einem Kollisionserkennungsprogramm auf und jeder trifft auf das Problem mit den Tastern.

    Gruß,
    stochri

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo stochri

    Sehr vielen Dank für die Lorbeeren
    Als ich vor einem Jahr auch asuro-Neuling war, habt ihr mir u.a. in diesem Thread gezeigt, was der Kleine so alles kann. Das hat mich schwer beeindruckt, ich bin deshalb schon lange dein "Fan":
    http://www.roboternetz.de/phpBB2/zei...=246982#246982

    Viele gute Ideen und interessante Lösungsansätze gehen einfach in der Flut der Beiträge verloren. Wenn nicht ab und zu jemand daran erinnert (und es auch wiederfindet) würde das alles im großen RN-Nirwana verschwinden.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    29
    Beiträge
    826
    Hi

    Um nochmal kurz zu meinem Problem zurück zu kommen....

    Die verlinkten Threads sind gut, speziell der mit dem "geheimen" Programm von stochri. So etwas will ja genau auch realisieren.

    Die Frage ist nun ja aber: Wie kann ich trotzdem noch sinnvoll die Taster abfragen? Es kommt mir ja auch gar nicht darauf an, fest zustellen welcher Taster gedrückt wurde, sondern erstmal ob überhaupt.

    Vielleicht einfach nur den Zustand des Ports pollen?

    Was meint ihr?

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

  6. #6
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.913
    das kannst du machen. oder du nutzt die interruptsfunktionen der neuen lib. oder du pollst mit pollswitch halt mehrfach...

    auch hardware modifikationen haben sich bewährt. meine werte sind zu 99.99% passend, seit ich den kondensator dort weggelassen habe (C6? C7? ich glaube C6).
    kleinschreibung ist cool!

Berechtigungen

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