oh, danke für die hinweise, ich denke ein diskettenlaufwerk hab ich noch über...
Druckbare Version
oh, danke für die hinweise, ich denke ein diskettenlaufwerk hab ich noch über...
na aber hallo... das sind ja wohl sehr gute werte. alufolie ist also fein. was sind die weissen punkte auf dem ersten bild? so ne art möbelfüße? gleitet der asuro darauf?
Hallo Radbruch,
bei der Messung wäre es aber sinnvoll, wenn die X-Achse die Einheit "mm" hätte. Dann könnte man wirklich sehen, wie groß der Fangbreich ist.
Gruss,
stochri
Würden die werte noch besser wenn man jetzt noch eine Lupe drunter machen würde so wie bei einer optichen Maus???Zitat:
Zitat von radbruch
Ja, es sind Möbelgleiter, weil der TT-Ball beim Fugenfolgen immer in der Rille fuhr und den Regler austrickste.
mm-Angaben kann ich nicht machen, weil der asuro ja aus eigener Kraft (MotorDir(FWD,RWD)) zirkelt und ich nicht weis, wann er welchen Wert speichert. Das alles erscheint mir auch etwas ungenau. Die Transistoren werden kreisförmig über die Linie geführt, der Radius zum Drehpunkt beträgt 7,5cm.
Wenn ich als Schwelle fürs Erkennen 400 ansetze und die Stepps immer gleich groß sind, beginnt der Strich für den rechten Transistor bei 10 und endet bei 31, für den Linken beginnt er bei 17 und endet bei 38. Daraus ergibt sich ein Abstand der Transistoren von 7 Steps (17-10 bzw 38-31) und eine Breite der Linie von 21 Steps (31-10 bzw 38-17). Der (Mitte-)Bereich, in dem beide Transistoren die Linie erkennen, hat 14 Steps (31-17). Der "Fangbereich" wäre demnach 28 Steps (38-10).
Da ich kein großer Mathematiker bin, beachte ich die Kreisbahn mal nicht und berechne die Stepgröße als gerade Bewegung. Von Links nach rechts verschiebt sich die Platine des asuros um 70 mm, also hat ein Step 70mm/50 = 1,4mm pro Step. Damit ergäbe sich für den Fangbereich 28*1,4mm = 39,2mm.
Ok, letzter Test für heute:
Bild hier Bild hier Bild hier
Die "Linse" ist ein halbrundes 5mm-Plexglas (Reststück von meinen IR-Abstandsmessversuchen) und bringt so keine Verbesserung.
Hier noch das Filmchen der letzten Messung:
Bild hier
Das Erstellen der Diagramme und vor allem das Einstellen hier ins Forum sollte mir mal jemand erklären. 8-[
Gruß
mic
Hallo,
jetzt habe ich auch mal die Messkurven erstellt, um zu zeigen, was ich unter Vollausschlag verstehe.
Ich war selbst überrascht, daß die Schürze unter myIrAsuro jetzt 5mm über dem Untergrund war -- das kam wohl daher, daß ich auf der RobotChallenge nicht hängenbleiben wollte :)
Bild hier
Hier nun meine Messungen, die trotz der 5mm Höhe der weißen Schürze über dem Boden fast keinen Außenlichteinfluß zulassen!
<table border=1><tr><td>Untergrund</td><td>hell</td><td>dunkel</td></tr><tr><td>weiß</td><td>1957</td><td>1954</td></tr><tr><td>schwarz</td><td>497</td><td>496</td></tr></table>
Die dunklen Bilder rechts kann man verifizieren, indem man sehr viel Kontrast rausnimmt ...
Bild hier Bild hier
Bild hier Bild hier
Hier das Messprogramm (SPEED: myAsuro hat Untersetzung 1:12.5)Das linke Rad dreht nicht mit, da ich meine Motorbrücke immer noch nicht repariert habe ...Code:#include <asuro.h>
#define SPEED 0x90
#define LOW 600
#define HIGH 1900
int main(void)
{
unsigned int data[2],cnt,sum,mode;
Init();
StatusLED(OFF);
FrontLED(ON);
MotorDir(OFF,FWD);
MotorSpeed(0,SPEED);
cnt=0;
mode=0;
for(;;) {
LineData(data);
sum=data[LEFT]+data[RIGHT];
++cnt;
if ((mode==0) && (sum<LOW))
mode=1;
if ((mode==1) && (sum>HIGH))
break;
PrintInt(data[LEFT]);
SerPrint(";");
PrintInt(data[RIGHT]);
SerPrint("\r\n");
MotorSpeed(0,255);
Msleep(12);
MotorSpeed(0,0);
}
MotorSpeed(0,0);
PrintInt(cnt);
SerPrint("\r\n");
while (1);
return 0;
}
Und hier das Messvideo (3gp / mpeg).
Hier die Meßwerte zum selber Auswerten:Und hier das Diagramm der Summe und Differenz der Meßwerte des linken und rechten Fototransistors bei IR-FrontLED:Code:990;968
984;968
985;962
981;966
985;968
976;963
984;966
985;962
981;967
985;968
976;965
984;967
984;960
980;965
983;952
976;956
980;959
979;942
976;950
971;944
868;924
744;914
643;901
522;866
458;835
392;785
362;755
331;710
307;657
299;622
275;566
275;514
262;393
271;289
281;235
287;205
343;183
450;178
543;183
675;185
748;179
848;183
944;186
973;202
972;213
980;250
972;283
980;326
983;353
980;403
984;460
984;555
982;644
984;734
984;772
982;820
985;822
972;860
984;883
985;896
Bild hier
Die Asymmetrie der Differenzen kann ich nicht direkt erklären (unterschiedliche Anbringung der Fototransistoren?), aber der Wertebereich von 500 bis über 1950 ist doch Klasse, oder?
Das mag für einen ganz normalen PID-Regler gelten, aber:Zitat:
Zitat von stochri
Ich bin zwar erst am Anfang des Verstehens der Regelungstechnik, und ich finde den Artikel in RN-Wissen (hier) sehr informativ!
Im Thread RobotChallenge-Linienfolgeprogramm von "myIrAsuro" habe ich einen Linienfolger mit einem ganz anderen Funktionsprinzip vorgestellt (state machine).
Wenn man jetzt einen Hybridalgorithmus aus PID-Regler und state (ON_LINE / OFF_LEFT / OFF_RIGHT) konstruiert, dann kann die Linie auch außerhalb des Fangbereichs wiedergefunden werden, oder nicht?
Hallo
Bin grad im Stress, deshalb im Telegrammstil:
Werte klasse - Asymetrie der Werte vermutlich wegen Rad als Drehpunkt ergibt unterschiedliche Radien der Transistorwege - wenn man weis, auf welcher Seite die Linie verlassen wurde kann man sie auch wiederfinden.
Gruß
mic
Die Asymmetrie kann man durch Trimmen (zurecht biegen der LED und Fototransistoren) beseitigen. Der Wertebereich ist nicht schlecht, aber ich würde den von stochri bevorzugen. Der hat mehr Reserven bis zur Begrenzung und hat auch ein größeres Verhältnis von max/min. Aber mit deiner Abschirmung ist die Reserve wegen Umgebungslicht kein Problem, das kannst du so lassen. Außerdem ist ein 2-Punkt-Regler da unkritisch.Zitat:
Zitat von HermannSW
Man kann einen klassischen PID-Regler auch mit anderen Varianten kombinieren oder umschalten. Z.B. eine Abfrage ob die Linie ganz verlassen wurde, dann den PID-Regler abschalten und mit Vollgas auf einem Rad zurück auf die Linie. Innerhalb des Fangbereichs wieder auf den PID-Regler umschalten.Zitat:
Wenn man jetzt einen Hybridalgorithmus aus PID-Regler und state (ON_LINE / OFF_LEFT / OFF_RIGHT) konstruiert, dann kann die Linie auch außerhalb des Fangbereichs wiedergefunden werden, oder nicht?
Ich habe vor einiger Zeit eine neue Auswertung (Funktion) des Liniensensors gemacht. Da hat die Kennlinie weit ab von der Linie immer Vollausschlag, da findet er auch mit meinem alten PD-Regler immer zurück auf die Linie. Hat sozusagen ein Gedächtnis auf welcher Seite er die Linie verloren hat. Bei Gelegenheit (wenn ich Zeit finde) stell ich das hier rein.
Waste