-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Odometrie in microcontroller packen?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    14.05.2005
    Beiträge
    58

    Odometrie in microcontroller packen?

    Anzeige

    Grüße an alle fleißigen Programmierer!
    Kann mir jemand verständlich erklären, wie man einen Roboter Karten anlegen läßt, bzw irgendwelche guten Links dazu?
    Muß ich dafür Differentialgleichungen lernen, ableiten, und vorallem wie soll man so einen Algorithmus mit Multiplikationen divisionen und Cos und Sin Funktionen in einen Pic-Controller integrieren, wen der diese Rechenoperationen gar nicht kennt?

    Bin für Tips, Tricks, Links, Anleitungen wirklich dankbar, um dieses Spannende Gebiet möglichst schmerzfrei zu lernen!
    Danke schon mal !

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    Eine Möglichkeit Karten anzulegen ist, dass der Roboter einfach immer am Rand entlang fährt und dabei jede Kurve, Distanzen etc speichert. Aus diesen Daten kann man dann am PC eine Karte errechnen.

    Multiplikationen kann man durch eine Schleife um eine Addition machen, oder die shift befehle bewirken glaub immer /2 und *2. Die müsste es bei Pic auch geben, bei AVR gibt es sie sicher.
    Trigonometrische Funktionen sind glaub net so einfach machbar. Aber da kann sich ja sicher noch ein Mathematiker zu Wort melden

    lg binaer

  3. #3
    Gast
    Danke schon mal binaer! Ist nicht schlecht, aber ich will ja schließlich auch erkannte Objekte eintragen, und direkt umsetzen, nicht erst am Pc errechnen.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    http://www.avr-asm-tutorial.net/avr_...nen/index.html

    Da ist das binäre Multiplizieren / Dividieren erklärt.
    Zwar für einen AVR ausgelegt, das Prinzip müsste aber auch für einen Pic gelten.

    lg binaer

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    14.05.2005
    Beiträge
    58
    Danke war vorhin nicht eingeloggt! Das ist ja schonmal was!
    Ich hab schon formeln gesehen, die ohne Trigonometrie auskommen. dafür ist mul,div,add,sub genug glaub ich! Die ensprechenden Befehle nachzubilden frisst aber sicher auch genug leistung!(lässt sich halt nicht vermeiden!

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    ja, aber bei z.B. 10MIPS hat man doch genügend zeit für eine schleife um eine Multiplikation auszführen. So schnell wird der Roboter auch wieder net unterwegs sein

    lg binaer

  7. #7
    Gast
    hast recht! Eine Multi zwingt den controller nicht in die Kinie! Aber das was ich vorhabe bestimmt! [-o< Denke über einen Robo nach, der mit einem Algo progrmmiert ist, von dem ich mal irgendas gelesen hab! Er soll sich selbstständig eine karte der umgebung machen, und Objekte damit vor deren erkennung umfahren. Noch nichts welbewegendes, aber der Trick: Er soll objekte, die mehrmals erkannt wurden höhere Prioritäten zuordnen, und andere, die in seinem Terrain nur einmal erkannt wurden, nach einer Zeit wieder vergessen. Eine Art künstliches Gedächtniss also...
    Dadurch soll Rechenleistung im endeffekt gespart werden, da ja stationäre Obekte Bekannt sind!
    Ob sich das mit ein paar Pic hinkriegen lässt, bin ich grad am ausarbeiten! Ich will jeder speziellen Aufgabe ein eigenes Gehirn geben, und die Pics untereinander Vernetzten über eine der Schnittstellen. Ganz oben steht dann nur mehr der hauptprozessor (warscheinlich 16f876) der alles koordiniert und sich um die Steuerung kümmert!
    ich weiß ich hab mir viel vorgenommen für mein zweites Roboprojekt, aber wenn schon dann ordentlich!!!!!

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    23.03.2004
    Ort
    Hamburg
    Beiträge
    69
    Hi bexter,
    ich habe mit meinem Marvin I ähnliche Pläne, auch er soll eine Karte erstellen und sich daran orientieren, allerdings werde ich ihm dafür ein Funkmodul verpassen und den Hauptteil der "KI" in den PC verlagern, einfach wegen der ungleich größeren Rechenleistung die mir damit zur Verfügung steht.
    Auch ich möchte die Karte flexibel gestalten, d.h. für jedes Feld der Karte wird eine Wahrscheinlichkeit eingetragen mit der sich an dieser Stelle ein Objekt befindet.
    Anfangs ist die Karte natürlich leer und jedesmal wenn Marvin ein Hinderniss ortet, wird die Wahrscheinlichkeit für diese Feld erhöht. (Ich habe pro Feld 8 Bit also 256 Wahrscheinlichkeitstufen geplant). In gewissen Zeitabständen werden alle Felder deren Wahrscheinlichkeit unterhalb eines Schwellwertes liegen erniedrigt, so verschwinden Objekte die nicht wiedergesehen werden mit der Zeit von der Karte. Objekte die so oft gesehen wurden, dass der Schwellwert überschritten wurde werden als permanent angenommen und nicht erniedrigt, damit Marvin z.B. nicht vergisst wo die Wände sind.
    Mal sehen ob's klappt, wird einige Zeit dauern bis das soweit ist.

    Grüsse
    Marvin
    2B or not 2B = FF

    Wenn etwas klemmt, wende keine Gewalt an,
    nimm einfach nen größeren Hammer.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    29
    Beiträge
    2.624
    Guten morgen!
    Wie habt ihr vor die Positionen der Gegenstände zu speichern?
    Mit der Odometrie erhaltet ihr ja nur ungefähre Positionen, also müssen diese sehr genau sein, aber wie wollt ihr mit ihnen die Position vom Roboter bestimmen und dementsprechend auch von den Gegenständen?

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.03.2005
    Alter
    32
    Beiträge
    117
    [quote="bexter"]
    Dadurch soll Rechenleistung im endeffekt gespart werden, da ja stationäre Obekte Bekannt sind!
    [quote]
    Dass Rechenleistung gespart wird, glaub ich eher net, bei dem Rechenaufwand für die Karte
    Aber trozdem interessant.

    Das Problem das Florian anspricht, dürfte auch noch knifflig werden. Denn der Fehler zwischen Messung und tatsächlicher Bewegung vervielfacht sich bei jeder Kurve.
    evt könnte man den Roboter durch mehrere Bakes mit verschiedener Frequenz genauer positionieren. Man könnte sicher kontrollieren, wie der Roboter im Raum steht. Geht es allerdings um komplexere Gebäude, kann man das vergessen. KA, wie man das dann machen soll.

    lg binaer

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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