PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfängerfrage: Radencoder



sabine17309
31.08.2012, 22:17
Hallo zusammen,

ich habe zwar schon fleißig über die Suchoption geschaut, aber noch nichts gefunden, was bei mir ein Licht aufgehen lässt.:(

Ich versuche gerade rauszufinden, wie genau Radencoder (Qfix) funktionieren.
Das allgemeine Prinzip mit dem inkrementellen Auslesen ist mir halbwegs klar.

Aaaber... Ich habe versucht den Roboter mal geradeausfahren zu lassen und ihn z.B. nach "40-mal-schwarz-Signal" zu stoppen.... Das Problem: Das Ding steht total schief, weil sich die Räder ja nicht 100%ig gleich schnell drehen... Sprich links wird die 40-Marke schneller erreicht als auf der anderen Seite.

Was kann ich machen, um die Encoder korrekt zu nutzen?

Danke :confused:

radbruch
31.08.2012, 22:29
while((encoder_links+encoder_rechts) < 80)...

... ist der einfache Ansatz. Besser, und deutlich komplizierter, wäre eine Drehzahlregelung.

oberallgeier
31.08.2012, 22:42
... wie genau Radencoder (Qfix) funktionieren ... die Räder ja nicht 100%ig gleich schnell ...Tja - das ist ja genau das Problem, warum wir überhaupt Radencoder verwenden.

A) Vermutlich hast Du einen "Zweirädrer" - so ne Art asuro oder ähnlich - und steuerst die Motoren z.B. mit PWM an : setPWMlinks (200); setPWMrechts (200);
Und dann machen die Motoren etwas.
B) Vermutlich wertest Du Dein(n) Radencoder auch aus. Und vermutlich tust Du nicht mehr.
C) Vorläufiges Fazit (wenns bis hier stimmt): Du steuerst die Motoren, Du REGELST sie nicht.

Weil - steuern heißt: dem Motor eine bestimmte Strommenge zur Verfügung stellen, in der Hoffnung darauf, dass er die gewünschte Geschwindigkeit fährt.
Und - regeln heißt: dem Motor eine bestimmte Strommenge zur Verfügung stellen, nachsehen ob er die gewünschte Geschwindigkeit fährt und wenn nicht - die Strommenge erhöhen oder erniedrigen. Je nachdem, ob die Ergebnisses der Encoderauswertung Dir zeigen, dass die gewünschte Geschwindigkeit errreicht, über- oder unterschritten wird.

Geht - im Prinzip ganz einfach.

1) Du liest Dir dazu im RNWissen die Regelungs technik durch (klick). (http://www.rn-wissen.de/index.php/Regelungstechnik)
2) Du bestimmst Dir die Sprungantwort Deines Fahrzeugs >im System< - sprich - den ganzen Aufbau messen - und die Messwerte auswerten. Beispiel siehe hier (klick wieder). (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=427784&viewfull=1#post427784)
3) Gemäß den Einstellregeln für den Regler (schon wieder klicken) (http://www.rn-wissen.de/index.php/Regelungstechnik#Dimensionierung_nach_Einstellrege ln)suchst Du Dir die richtigen Parameter für Deine Motoren raus.

HMmmmmm - jetzt könnte ich sagen - das wars. Aber meist dauert es ne ganze Weile bis man oder frau sich da durchgebissen hat. Hilfreich ist es, sich für die Regelungsroutine eine Skizze zu machen (ähhh - klick *gg*) (https://www.roboternetz.de/community/threads/37518-Linie-Folgen?p=357670&viewfull=1#post357670) - hatte ich jedenfalls gemacht. Und in dieses Regelungsschema hatte ich alle wesentlichen Daten reingeschrieben - wenn ich sie schon hatte. Das macht die Sache etwas durchsichtiger.

Viel ERfolg - und wenns noch undurchsichtig ist - einfach in die Tasten hauen.

RoboHolIC
31.08.2012, 23:00
while((encoder_links+encoder_rechts) < 80)...
Das hilft aber noch garnichts; es bevorzugt sogar die schnellere zu Lasten der langsameren Seite.

Das Minimum wäre m.E., dass jede Seite für sich die besagten 40 Inkremente abliefern muss. Damit wird im Ziel trotz seitlichem Versatz die anfängliche Ausrichtung des Fahrzeugs in etwa wieder erreicht (, solange die Motoren nicht krass unterschiedlich sind). Es ist eine Art Schleuderspur zu erwarten wegen der Asymmetrie der Antriebspartner: Zunächst vermutlich ein Bogen mit großem Radius (kleine Differenz der Drehzahlen), bis der schnellere Antrieb fertig hat, danach eine schärfere Gegenkurve, bei der nur der langsamere Antrieb seinen Restweg fährt.
In der nächsten Stufe kann dann eine Drehzahlregelung die beschriebenen Fahrabweichungen durch Angleichung der beiden Motordrehzahlen minimieren.

sabine17309
31.08.2012, 23:49
Zweiräder... richtig.... (Crash Bobby)
Nicht regeln... auch richtig... :-\

Ui... da hab ich erst mal was zu lesen.
Danke für die Links. Die Fragen kommen garantiert :-)

i_make_it
01.09.2012, 09:32
1234567890

oberallgeier
01.09.2012, 09:36
... wie genau Radencoder (Qfix) funktionieren ... (Crash Bobby) ...Man lernt ja nie aus. Ich kannte weder die Firma (noch dazu wo ich in der Nähe von Senden wohne), noch dieses Modell. Ziemlich hochpreisig !?! Da würden mich ein paar Informationen interessieren - die Qfix-page gibt ja nun wirklich NIX her *schnief*. Insbesondere interessiert mich Dein Radencoder. Könntest Du dazu ein Foto machen (ein gutes *gg*).

Und Du programmierst in C++? Bist Du da sicher? Was ist Deine Programmierumgebung - hier im Forum benutzen viele AVRStudio. Gibts kostenlos. Ich habe auf dem Thrash ... sorry (war böse, ich weiß), dem Crash Bobby keinen Programmierstecker (ISP) gesehen . . .

Übrigens: die "horizontale" Ausrichtung der GP2D120er ist suboptimal. So funktioniert die Kantenerkennung nicht besonderst gut - darüber vielleicht später (wenn Du willst). Dafür sieht die Befestigung richtig offroad-mässig aus - die übersteht jeden Tsunami (gibts Tsunamis in Hessen?). Nur die Elektrik/Elektronik wird nass - aber das passiert ja auch mit Kernkraftwerken (bei Tsunamis).

sabine17309
01.09.2012, 12:02
Ja, c++ :) Und der Compiler heißt avr-c++

Foto? Kann ich machen... aus welcher Perspektive hättest dus denn gerne? :D

Großer Gott... das klingt irgendwie alles kompliziert :shock:

Aber da heute irgendwie gar nix mehr geht (siehe Forum Elektrik, Fehlermeldung).... grrrrr

021aet04
01.09.2012, 12:16
Was für eine Programmierumgebung (IDE) verwendest du um den Code zu erstellen? Verwendeset du c oder c++ als Programmiersprache (normalerweise verwendet man für µC die Sprache c und nicht c++)?
avr-gcc bzw avr-c++ ist der Compiler, dieser erstellt aus dem Programm (erstellt mit der IDE) den Maschinencode (den der µC versteht).

MfG Hannes

sabine17309
01.09.2012, 13:43
ich weiß schon, was ein compiler ist... und es ist definitiv c++... hab meinen mann nochmal gefragt ;)

Ich schreibe die Programme mit dem Programmers Notepad 2, da sind 2 Batch-Dateien hinterlegt. Die eine ruft den avr-c++ Compiler auf und die andere den avrdude um die compilierte Datei auf den Controller zu übertragen.

oberallgeier
01.09.2012, 17:20
... Großer Gott... das klingt irgendwie alles kompliziert ...Das ist gewollt *gg* ...


... Anfängerfrage: Radencoder ...... um 'Anfänger(innen) abzuschrecken. Wenn man da mal durch ist - klingt es eher easy. Na ja, so ein bisschen leichter dann schon.

Nur Mut - wird schon. Schönes Wochenende und viel Erfolg

i_make_it
02.09.2012, 22:02
1234567890

oberallgeier
02.09.2012, 22:23
... Odometriesensoren werden gar nicht mitgeliefert ...Jetzt bin ich froh, dass ich unser neues Forumsmitglied um ein Foto von den Radencodern gebeten hatte (01.09.2012, 10:36). Denn ich hatte in der Dokumentation - soweit auf der Lieferantenseite offengelegt - nix gefunden, das nach Odometrie riechtklingtaussieht. Nur auf dem Produktflyer (dem da) (http://qfix-shop.de/downloads/Flyer-CrashBobby.pdf) ist vorn ein Bild, bei dem "untenrum" ein paar Kabel liegen, die für Radencoder sein KÖNNTEN.


... versuche gerade rauszufinden, wie ... Radencoder (Qfix) funktionieren ...Diese Frage hatte ich so verstanden, dass auch wirklich welche an diesem Teil dran wären . . .

Ich grins mich eins, diesen Bobby gibts sogar bei Am azon . . . immerhin scheinen die Leute ein ziemlich ausgefuchstes Marketingkonzept zu haben.

i_make_it
02.09.2012, 22:33
1234567890

RoboHolIC
02.09.2012, 23:59
NACHTRAG
qfix bietet einzeln noch ein Encoder Set mit 120er Teilung für 40,- an.
Das ist dann wohl verbaut

In der Grundausstattung wohl eher nicht, vgl. den von oberallgeier verlinkten Flyer, 2. Seite Mitte. Rafiniertes Marketing, in der Tat!

i_make_it
05.09.2012, 05:56
1234567890