- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 39

Thema: 360° Sharp-Scanner für Mapbuilding

  1. #1

    360° Sharp-Scanner für Mapbuilding

    Anzeige

    Praxistest und DIY Projekte
    360° Scanner für Mapbuilding
    Im Rahmen einer Semesterarbeit an der Ecole Polytechnique Fédérale Lausanne (EPFL) habe ich einen Roboteraufsatz entwickelt, der es erlaubt die Umgebung des Roboters auszumessen. Als Grundroboter dient der e-Puck, der auch an der EPFL entwickelt wurde (siehe http://asl.epfl.ch/research/systems/epuck/index.php für Details). Es handelt sich hierbei um einen Roboter mit 7cm Durchmesser, der für die Ausbildung der Studenten eingesetzt wird.

    In diesem Beitrag möchte ich diesen Roboteraufsatz beschreiben, da ich denke, dass dieser einfach auch für andere Roboter übernommen werden könnte und ohne weiteres in einer Hobbywerkstatt nachgebaut werden kann. Ich werde die wichtigsten Passagen des von mir geschriebenen Berichts (75 Seiten auf Französisch) hier kurz auf Deutsch zusammenfassen.

    Als erstes einmal zwei Photos des Aufbaus: Unten kann der e-Puck erkannt werden, dessen Standardaufsatz (mit Lautsprecher) durch mein Scanmodul ersetzt wurde. Der von mir gebaute Aufsatz beinhaltet die beiden PCBs (in grün) mit allen Komponenten oberhalb (Motor, Sensorfixierung und Sensoren).
    Bild hier  
    Bild hier  

  2. #2
    Ziel
    Dieser Roboteraufsatz kann permanent drehend die Umgebung des Roboters ausmessen. Die Daten können schlussendlich dazu genutzt werden um:
    - Hindernissen auszuweichen
    - Die Position des Roboters in einer bekannten Umgebung zu bestimmen
    - Die Umgebung des Roboters zu erkunden um eine Umgebungskarte zu erstellen

    Mapbuilding
    Den letzten Punkt; das Mapbuilding möchte ich hier kurz erläutern:
    Bild hier  

    1. Man startet an Position A (von welcher man Position und Ausrichtung ungefähr kennt) und bewegt ein wenig vorwärts. Mit Hilfe der ausgeführten Bewegungen (Schritte des Schrittmotors) schätzt man die neue Position B.
    2. Mit den Distanzsensoren wird die Erkennung der Umgebung durchgeführt (Mehrere Messungen im Kreis herum). Aus diesen Daten extrahiert man die Konturen (rot)
    3. Diese werden mit der bereits erfassten Karte übereingebracht, womit die genaue Position des Roboters ermittelt werden kann (C).
    4. Schlussendlich kann die Karte mit den neuen Daten erweitert werden

    Der Vorgang des Mapbuildings ist sehr komplex und rechenaufwändig, aber ermöglicht sehr interessante Anwendungen, wie das erkunden unbekannter Umgebungen.

  3. #3
    Sensoren
    Der Sensorturm ist so konstruiert, dass entweder analoge Sharpsensoren oder Ultraschallsensoren (z.B. Devantech SRF10 UltraSonic) angeschlossen werden können.
    Ultraschallsensoren sind eher für die Objekterkennung und das Ausweichen solcher geeignet, während die Sharpsensoren gut geeignet sind für das Mapbuilding
    (Bis jetzt habe ich den Aufsatz erst mit Sharpsensoren getestet)


    Permanente Drehung des Aufsatzes
    Zum Einlesen der Sensordaten der ganzen Umgebung des Roboters haben wie eine permanente Drehung der Sensoren gewählt. Dies ermöglicht relativ hohe Drehgeschwindigkeiten. Eine Hin-und-her- Bewegung würde für einen so kleine Roboter zu grosse störende Trägheitsmomente aufweisen. Das ständige Beschleunigen und Abbremsen würde den Roboter bewegen und die Genauigkeit der Odometrie (Abschätzung der Position und Ausrichtung per Zählen von ausgeführter Schritte) negativ beeinflussen.
    Diese Lösung bietet aber viel grössere mechanische Probleme, als eine einfache Hin-und-her- Bewegung. Die elektrischen Verbindungen können nicht einfach per Kabel übergeben werden, da sich diese aufwickeln würden.

    Bild hier  

  4. #4

    Die Schleifkontakte

    Die Schleifkontakte
    Zur Lösung dieses Problems wurden Schleifkontakte eingesetzt. Diese sind im Gegensatz zu möglichen Induktiven Stromübertragungen und Funk, resp. Infrarot- Signalübertragungen einfach zu realisieren. Sie sind verhältnismässig billig herzustellen und benötigen keine zusätzliche Elektronik. Nur die Abnutzung der Kontakte und die unbekannte Zuverlässigkeit dieses Systems boten anfangs rund zum Zweifeln.

    Das Prinzip der Schleifkontakte
    Bild hier  

    Pro elektrische Verbindung schleift je ein Kohlestift auf einer Kupferbahn. Per Klingenfeder wird dieser Stift auf die Bahn gedrückt und so der elektrische Kontakt sichergestellt.

    Material
    Durch die Firma Hoffmann (Österreich) habe ich geeignete Schleifkohlen gefunden.
    Dimensionen: 3mm Durchmesser 6mm Höhe
    Material : Kohle mit 90% Silbergehalt (gute Leitfähigkeit mit dem Vorteil der schmierenden Kohlen). Eine Seite der Stifte ist verkupfert und somit gut lötbar.
    Anpressdruck: 5-15N/cm^2 <=> 0.35-1N pro Stift

    Bild hier  

    Hier noch einige Detailbilder zu den Kontakten.
    Die Kupferbahnen sind direkt auf die PCBs geätzt, was die erstellung sehr vereinfacht.
    Ich habe auf diesen Bildern absichtlich versucht die Abnutzung der Kontakte zu zeigen. Dies sind bilder nach etwa 10h konstantem Drehen.
    Es kann deutlich erkannt werden, dass die Kupferbahnen bereits etwas oxidiert sind. Der Anpressdruck (in meinem Fall ca 0.8N) ermöglicht jedoch ein permanentes Abschleifen der oxidierten Schicht.

    Bild hier  

    Bild hier  

  5. #5
    Antrieb
    Als Antrieb wurde ein PG15S-020 Schrittmotor eingesetzt.
    Maximale Drehgeschwindigkeit ~1U/sec
    Zur absoluten Winkelbestimmung wurde auf dem Roboteraufsatz eine Lichtschranke angebracht. Das Licht der Lichtschranke fällt durch das Loch, das in dem Photo oben zwischen den Kupferbahnen sichtbar ist.
    Per Schrittmotor und diesem absoluten Index ist es also möglich, permanent die Ausrichtung des Turmes zu kennen.

    Konstruktion
    Der Motor wurde verkehrt herum montiert, damit er vom Prozessor des Aufbaus gesteuert werden kann. Die Achse wird in einem Flansch (blau) auf dem unteren PCB fixiert.

    Bild hier  

    Die grau und blau eingefärbten Teile sind fix mit dem Roboter verbunden (Dunkelgrau; die Schleifkohlen). Die rot und gelb eingefärbten Teile drehen mit dem Motorgehäuse mit.

    Fixierung der Sensoren
    Diese können direkt auf eine Alublock geschraubt werden. Der Alublock wird um den Motor geklemmt

    Bild hier  

  6. #6
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.051
    Wie werden denn die Kanten von Hindernissen abgebildet die nur zum Teil vom Sensor erfasst werden?
    Ergibt sich da eine Verschiebung des gemessenen Abstands?
    Manfred

  7. #7
    Programmierung/Kommunikation
    Die Daten der Sensoren werden zuerst von einem PIC, der sich auf der Erweiterung befindet, empfangen und gespeichert. Der dsPIC, der sich auf dem e-Puck befindet, kann diese Daten anfordern (I2C) und sie per Bluetooth (emulierte serielle Schnittstelle) an den PC weitersenden.

    Bild hier  

    Per Hyperterminal kann mit dem e-Puck kommuniziert werden und viele Einstellungen vorgenommen werden (siehe Screenshots)

    Bild hier  

    Bild hier  

    Bild hier  

    Die letzte Ausgabe des Hyperterminals stellt die 80 Messungen dar, die pro Umdrehung gemacht werden. Es sind direkte AD-Werte der Sharpsensoren.

    Diese müssen, um interpretiert werden zu können, zuerst linearisiert werden (siehe http://www.kreatives-chaos.com/index.php?seite=gp2d120) und können dann in Polarkoordinaten geplottet werden.

  8. #8

    Resultate

    Resultate

    Bild hier  

    Bild hier  

    Hier zweimal dieselbe Situation (Photo und 360°-Scan per Sharpsensoren geplottet in Matlab)

    Bild hier  

    Hier die Erfassung einer Ecke während 20 Umdrehungen. (20 Messungen pro Winkel).
    --> Mauern können gut als Geraden erkannt werden
    --> Einzig in den Ecken gibt es einige unpräzise Messresultate

    Zur Automatisierung und bequemeren Steuerung habe ich in Matlab ein kleines GUI geschrieben, das per emulierte serielle Schnittstelle mit dem e-Puck kommunizieren kann. Damit kann ich den e-Puck steuern und gleichzeitig die Sensordaten erneuern lassen.
    --> Kleines Echtzeit-Radar!!
    Ca 3 Aktualisierungen des Screens pro Sekunde bei ½ Umdrehungen des Turms pro Sekunde.

    Bild hier  

    \/ macht richtig Spass mit diesem Interface etwas blind herumzufahren und die eigene Wohnung zu erkunden!! \/

    voilà,
    hoffe einige mit dieser Idee begeistert zu haben. Ist von mir aus gesehen eine einfache Methode die Sharpsensoren optimal zu nutzen.
    Um die Datenflut vernünftig auszubeuten ist natürlich recht viel Programmieraufwand nötig, aber ist sicher spannend!

    PS: hab das ganze bisher nur mit Sharpsensoren getestet. Ultraschallsensoren wären aber für andere Zwecke ohne weiteres auch denkbar...

  9. #9
    ciao manfred,
    ganz genau kann ich dir da nicht antwort geben. ich weiss nur, dass die sharpsensoren während den 40ms messzeit 32 messungen durchführen und den mittelwert (wohl des PSD-Widerstands??) zurückgeben. dh es ist ungefähr der mittelwert der in diesem zeitfenster überstrichenen distanzen zu erwarten.
    bisher habe ich bei schnellen distanzwechseln noch keine allzu schlimmen resultate gesehen.

    hoffe, dass ich deine frage richtig verstanden habe... leider kann ich dir nicht genauer antworten. die testphase des systems war recht kurz und ich bin leider bereits nicht mehr im besitz dieses Aufbaus

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2004
    Ort
    In der Nähe von Esslingen am Neckar
    Beiträge
    706
    Hi,
    cooles Ding...
    kurze Fragen:
    Mit welcher Sprache wurde das Programm auf dem Roboter geschrieben, mit welcher das Programm realTimeTest?
    Gruß Michi

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test