- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 50

Thema: GeneralKeys Lasermaus als Sensor für die Odometrie

  1. #21
    Anzeige

    Praxistest und DIY Projekte
    Hallo mare_crisium,

    lt. Datenblatt hat die Laser-Diode keine Optik. Optik ist also 1:1. Ich glaube also nicht daran, dass er Abstand hier ausschlaggebend ist. Ausserdem habe ich die Maus auch beim Originalabstand gestestet. Das Ergebnis war nach wie vor schlecht. Aber wenn Du Dir das Testergebnis von Gamestar Dir mal anschaust: http://www.gamestar.de/hardware/test...gitech_g5.html , dann bestätigt sich meine These.

  2. #22
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    Correia,

    schau' Dir mal diese Application Note an.

    http://cp.literature.agilent.com/lit...989-3122EN.pdf

    Sie ist zwar von Agilent, betrifft aber ebenfalls einen Maus-Sensor mit einer Laserdiode als Lichtquelle. Wie Du siehst, ist zwischen der Laserdiode und Unterlage wirklich keine Linse erforderlich. Die braucht man nur bei einer LED-Lichtquelle, weil die nicht so intensives Licht liefert wie eine Laserdiode. Aber zwischen dem Bildaufnehmer und der Unterlage muss eine Linse eingebaut sein.

    Das ist völlig unabhängig davon, ob das Licht von einem Laser oder einer LED stammt. Der Sensor misst ja die Verschiebungen zwischen je zwei aufeinanderfolgenden Bildern, die er von der Unterlage gemacht hat. Und ohne Linse gibt's nun mal kein Bild! Schraub' mal das Objektiv aus Deiner Spiegelreflex-Kamera und schau' Dir an, was herauskommt, wenn Du ohne Objektiv eine Aufnahme machst.

    Den besten Überblick über die diversen Maussensor-Typen und das Messprinzip findest Du übrigens hier:

    http://www.mstarmetro.net/~rlowens/OpticalMouse/

    mare_crisium

  3. #23
    Benutzer Stammmitglied
    Registriert seit
    21.06.2005
    Beiträge
    41
    @mare_crisium,
    hallo, ich vermute schon auch, dass vor dem Maussensor eine Linse ist und über deren Brennweite der Abstand festgelegt ist, bei dem der Sensor am "besten" sieht. Ich verstehe nur nicht ganz, warum der Sensor bei dieser Maus zwischen praktisch 0mm und 25mm funktioniert... Vielleicht ist diese Maus ja auch eine neuere Inkarnation einer "camera obscura" http://de.wikipedia.org/wiki/Camera_obscura

    grüsse

  4. #24
    Hallo,

    ich habe inzwischen auch den PAN301 Chip ansteuern können, habe aber ähnliche Probleme wie Correia.

    1. Bei der General Key Mouse ist keine Linse verbaut... wie die Genauigkeit im Originalzustand war, kann ich momentan leider nicht messen.

    2. Bei mir ist die Genauigkeit auch eher schlecht als recht. Allerdings vermute ich, das ich bei mir noch ein kleinen Programmfehler habe.

    Wo kriegt man denn geeignete Linsen her? Ich bräuchte eine Bodenfreiheit von ca. 5 cm.
    Desweiteren scheint mir die General Keys Lasermouse keine wirkliche Lasermouse zu sein. Sie besitzt zwar eine Laserdiode, aber der Chip (PAN301A-20 ist von einer ganz gewöhnlichen optischen Maus. Es wird auch immer von LED als Lichtquelle gesprochen... Die einzigen mir bekannten Lasersensorchips sind doch die von ADNS-60xx und ADN-70xx

    Mein PAN301A fokussiert jetzt von 50-70 mm, indem ich die Laserdiode etwas nach aussen gebogen habe... mit der gleichen fehlerstaerke....
    und es existiert KEINE Linse... Das Loch im Chip ist frei...


    Welche alternativen gibt es oder welcher preiswerte Maussensor funktioniert gut bis sehr gut bei einer Entfernung von ca. 5 cm?



    Danke

  5. #25
    Benutzer Stammmitglied
    Registriert seit
    21.06.2005
    Beiträge
    41
    nur als Anmerkung:
    Eine Möglichkeit zum Testen einer (vollständigen) Maus ist, von Microsoft das DirectX-SDK herunterzuladen. Dort ist ein Beispielprogramm enthalten, mit dem man die x- und y-Werte, die eine Maus liefert, direkt angezeigt bekommt.

  6. #26
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    @rscheubr,

    die Lösung als Lochkamera hätte sogar noch den Vorteil "unendlich" grosser Schärfentiefe! Nachteil ist die Lochgrösse: Wenn sie viel grösser ist als ein Pixel, dann ist die Abbildung zu unscharf, ist sie so gross wie ein Pixel (und das Pixel ist ca. 50x50Mikrometer), dann ist die Lichtstärke schlecht und die Schärfe wird durch die Beugung beeinträchtigt. - Ich war der Meinung, dass die Pixel für eine Camera obscura viel zu klein seien. -

    @schregge,
    solange der Bildaufnehmer nicht Interferenzmuster auswertet, ist es völlig wurscht, ob das Licht von einer LED oder einer Laserdiode stammt. Die Laserdiode erzeugt dann einfach nur mit weniger Aufwand (keine Linse) eine grössere Leuchtdichte auf der Unterlage.

    Wegen der Bezugsquellen für Linsen werde ich mich nochmal melden. - Ich habe 'mal auf dem hiesigen Flohmarkt für 5 Euro ein Okular für ein Fernrohr oder Mikroskop gekauft. Wenn man sowas auseinandernimmt, finden sich Linsen mit dem richtigen Durchmesser und geeigneten Brennweiten. Die Formeln bzgl. des Zusammenhangs von Bild-, Gegenstands- und Brennweite finden sich hier:

    http://de.wikipedia.org/wiki/Linsengleichung


    mare_crisium

  7. #27
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    @Schregge,

    nach langer Sucherei: Die Bezugsquelle für preiswerte Linsen aus Kunststoff ist

    www.astromedia.de

    Damit kann man keine Höchstleistungsmikroskope bauen, aber für eine Mausoptik langt's allemal. Eine sehr gute Seite über selbstgebaute Optik ist

    www.eisenbroiler.de/bastelecke/diy-objektiv.php

    mare_crisium

  8. #28
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    72
    Beiträge
    13.136
    Wenn es hilft, hier wurde die Brennweite der Linse einer optischen Maus auch diskutiert. Kleine Glaskugeln als Linsen haben entsprechende Brennweiten.
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=8192
    Manfred

  9. #29
    Neuer Benutzer
    Registriert seit
    24.05.2007
    Alter
    41
    Beiträge
    4
    Hallo!

    Im Rahmen meiner Studienarbeit bin ich auf diese Seite gestoßen. Unter anderem soll ich für ein (autonom fahrendes) Elektro-Modellauto eine Odometrie mit Hilfe von Lasermaussensoren implementieren. Da ich dafür so ca. 3cm Bodenfreiheit brauche, habe ich mich für die GeneralKeys Lasermaus mit 1200 dpi entschieden, nachdem ich diesen Forenbeitrag gelesen habe. Hab mir dann gleichzeitig noch die GeneralKeys Lasermaus mit 1600 dpi mitbestellt zum Vergleich. Ich habe dann festgestellt, dass die 1600er einen geringeren Abstand zum Boden ermöglicht als die 1200er. Wenn man aber die Laserdiode aus der Plastikoptik herausnimmt und sie in ungefähr dem gleichen Winkel wie zuvor neben den optischen Sensor hält, erreicht man einen Abstand bis zu ca. 10cm (bei mir jedenfalls). Unten seht Ihr, wie ich die Laserdiode dann mit Heißkleber befestigt habe (anderes Mausmodell, nicht irritieren lassen, aber gleicher Sensorchip). Damit ist Bodenfreiheit kein Problem mehr.

    Mein Problem ist ein ganz anderes. Meine Hauptaufgabe ist es, mit Hilfe der Lasermaus die Geschwindigkeit des Fahrzeugs zu messen. Dazu lese ich mit einem C-Programm die Mausevents über USB unter Linux (Debian-Distribution, Problem tritt aber auch unter Ubuntu auf) aus. Das funktioniert auch soweit sehr gut. Allerdings liegt die maximale Geschwindigkeit, die ich momentan berechnen kann, bei ca. 24 cm/s.

    Hier das Originalprogramm, mit dem ich die Mausevents auslese(von http://www.frogmouth.net):[/img]
    Code:
    #include <stdlib.h>
    #include <stdio.h>
    #include <sys/ioctl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <asm/types.h>
    #include <fcntl.h>
    #include <unistd.h>
    #include <stdint.h>
    
    #include <linux/input.h>
    
    
    int main (int argc, char **argv) {
    
        int fd = -1;        /* the file descriptor for the device */
        int yalv;           /* loop counter */
        size_t read_bytes;  /* how many bytes were read */
        struct input_event ev[64]; /* the events (up to 64 at once) */
    
        /* read() requires a file descriptor, so we check for one, and then open it */
        if (argc != 2) {
    	fprintf(stderr, "usage: %s event-device - probably /dev/input/evdev0\n", argv[0]);
    	exit(1);
        }
        if ((fd = open(argv[1], O_RDONLY)) < 0) {
    	perror("evdev open");
    	exit(1);
        }
    
        while (1)
    	{
    	read_bytes = read(fd, ev, sizeof(struct input_event) * 64);
    
    	if (read_bytes < (int) sizeof(struct input_event)) {
    	    perror("evtest: short read");
    	    exit (1);
    	}
    
    	for (yalv = 0; yalv < (int) (read_bytes / sizeof(struct input_event)); yalv++)
    	    {
    		printf("Event: time %ld.%06ld, type %d, code %d, value %d\n",
    		       ev[yalv].time.tv_sec, ev[yalv].time.tv_usec, ev[yalv].type,
    		       ev[yalv].code, ev[yalv].value);
    
    	    }
    	}
    
        close(fd);
    
        exit(0);
    }
    Interessant ist für mich momentan der Wert ev[yalv].value. Dieser Wert gibt das Bewegungsinkrement von einem Mausevent relativ zum vorigen Mausevant an. Der Wertebereich geht von -127 bis +127. Wenn man die Maus mit der Hand bewegt, muss man sich schon etwas anstrengen, um in diesen Bereich zu kommen, da man zwar hohe Beschleunigungen erreicht, aber keine hohen Geschwindikeiten, da man die Maus schnell wieder in die andere Richtung bewegt. Am Modellfahrzeug angebracht, erreicht man sehr schnell den Bereich der Sättigung. Daher ändere ich die Abtastrate über sudo modprobe -r usbhid ,danach modprobe usbhid mousepoll=8. Mousepoll kann die Werte 10, 8, 4, 2 oder 1 Annehmen (10 Standartwert), was einer Abtastrate von 100Hz, 125Hz, 250 Hz 500 Hz und 1000Hz entspricht (http://gentoo-wiki.com/TIP_Change_mouse_hz).

    Je höher die Abtastrate, desto kleiner der ev[yalv].value-Wert, da für die gleiche Strecke der Untergrund öfter abgetastet wird. Man kann das Fahrzeug z.B. mit mousepoll=8 etwas schneller bewegen als mit dem Standartwert 10, ohne dass man in die Sättigung kommt. Das Hauptproblem ist, dass ich ab mousepoll=4 gar nicht bis in die Sättigung komme, sondern einen maximalen Wert von 106 (bei mousepoll=4) erhalte. Wenn ich das Fahrzeug noch etwas schneller schiebe, kommen willkürliche Werte wie -1 1, 2, -2 und ähnliches heraus. Bei mousepoll=2 liegt die Grenze bei etwa 60 für den Wert von ev[yalv].value.

    Ein Gedanke von mir war, dass die doch recht billige Maus kein USB 2.0 beherrscht und somit die Beschränkung zu erklären sei. Das Problem tritt aber auch bei Mäusen mit USB 2.0 auf, die eine höhere Übertragungsrate und auch eine höhere Abfragerate haben.

    Meine Frage ist daher, ob es irgendeine Möglichkeit gibt, diese Beschränkung zu umgehen oder die Mauswerte komplett anders auszulesen, so dass ich höhere Geschwindigkeiten als 24cm/s messen kann. Denn die USB2.0-fähige Maus, die ich getestet habe soll laut Hersteller eine Übertragungsrate bis zu 1000Hz sowie eine Bewegungsgeschwindigkeit von 128 cm/s schaffen.
    Außerdem lässt sich bei ihr die Auflösung zwischen 400dpi, 800 dpi, 1600 dpi und 2000 dpi an der Maus selbst umschalten. Bei allen Werten bleibt mein Problem bestehen.

    Achja, ich war auch mit meinem Notebook in ein paar elektronik- und PC-Läden und hab etliche Mäuse mit dem Programm ausprobiert, alle mit dem selben Ergebnis.

    Fällt Euch dazu irgend etwas ein? Ich wäre in jedem Fall über Antworten sehr dankbar

    MfG
    Christian
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken dsc00111klein.jpg  

  10. #30
    Benutzer Stammmitglied
    Registriert seit
    21.06.2005
    Beiträge
    41
    Hallo LrtMor,
    welche Erfahrung hast du denn hinsichtlich der Genauigkeit der Abtastung gemacht? Gibt es einen Zusammenhang zwischen der Genauigkeit und der Geschwindigkeit?

    Grüße

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests