Hi, PRobot,

ich hatte schon gefürchtet, wir hätten Dich vergrault . Bei der Maus, mit der ich herumexperimentiere, kann ich dummerweise den Sleep-modus nicht abschalten. Ich werde mir wohl direkt einen Agilent Sensor kaufen. Bei Segor habe ich einen für ca. 3 EUR gesehen. - Bei mir krabbelt die Maus auch nicht mehr auf dem Untergrund umher: Seit ich ihr eine Brille verpasst habe, schwebt sie so 3-4 cm über dem Boden. Wichtig ist dabei, dass die LED den Messfleck unter einem möglichst flachen Winkel ausleuchtet. Im Internet stellt ein Maus-Hacker eine Lösung vor, bei der er die LED am Ende eines knickbarenTrinkhalms (mit so 'ner Ziehharmonika drin) knapp über dem Boden montiert hat. Wenn Dich die Sache interessiert, können wir gern noch ein bisschen über das Thema fachsimpeln.

@jeffrey,
Deine Erklärungen bezüglich der Stückelung der Fahrdistanz sind vollkommen richtig. Mir ist beim Durchsehen des Algorithmus aufgefallen, dass Geschwindigkeit und Zeit immer als Produkt in die Formeln eingehen. Das bedeutet, dass man genausogut direkt die Wegstrecken einsetzen kann. Nachdem mir dieser Seifensieder aufgegangen ist, habe ich den Algorithmus nochmal überarbeitet. Ist aber noch nicht veröffentlicht.

@SternThaler:
bist mir also doch wieder auf die Schliche gekommen ! Bei Deinen Fragen bezüglich der Mausabfrage beziehst Du Dich auf eine Maus mit PS/2-Bus. Probot fragt den Chip direkt ab, indem er einzelne Register adressiert und ausliest. Im Anhang ist eine ganz gute Beschreibung der Datenfelder der PS/2-Mausprotokolls. Bei den PS/2-Mäusen werden für x und y immer dieselben Masseinheiten verwendet; das kann bei Probots Maus aber anders sein. Deine Überlegungen (inch/mm) zum Wert von alpha sind vermutlich richtig.

Inzwischen habe ich auch verstanden, warum Probot die x- und y-Werte aufaddiert: So macht man das nämlich, wenn man die Bewegung des Mauszeigers auf dem Bildschirm darstellt. Dabei spielt es keine Rolle, wie die Maus gedreht wird – und deshalb kann man diese Methode nicht auf den Roboter übertragen.

Deinen interessanten Pythagoras-Ansatz muss ich noch weiter ausprobieren. Im Grunde ordnet der Algorithmus die gefahrene Bahnlänge der e_p-Richtung zu und die Drehungen der e_q-Richtung. Die Bahnlänge s kann man aus der Ableitung der Bahnkurve berechnen:

s = integral (wurzel(1 + (dy/dx)^2) dx )

Da linst Dein Pythagoras wieder um die Ecke! Leider ist es unwahrscheinlich haarig, dieses Integral für beliebige Bahnkurven zu lösen. Deshalb ist es auch so schwer auszurechnen, wie man die Räder steuern muss, um eine bestimmte Bahnkurve zu fahren; beim Kreis geht’s noch ganz gut, aber schon an der Ellipse habe ich mir die Finger wundgerechnet.

Ich lass' von mir hören, wenn ich Deinen Vorschlag besser überblicke.

Ciao,

mare_crisium

Edit: Anhang gelöscht wg. Upload-Quota