- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 26

Thema: Laser-Positionsscanner

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270

    Idee Laser-Positionsscanner

    Hallo Kreative,
    wie bereits hier https://www.roboternetz.de/community...immung-im-Raum angekündigt will ich mal endlich anfangen………………..

    Beschrieben wird ein Laserscanner für die absolute Positionsbestimmung Eurer Roboter. Dies ist (glaube ich) KEIN ANFÄNGERPROJEKT !!!
    Auch nicht gerade preiswert was die Hardware anbetrifft. Außerdem sind entsprechende Werkzeuge gefragt, die nicht jeder in der Bastelstube stehen hat.
    Trotzdem nicht unmöglich dieses zu reproduzieren bzw. als Grundlage für eigene Ideen zu verwenden.

    Alles ist noch nicht ausgearbeitet. Ich werde in lockeren Abständen erweitern! Das ganze Projekt läuft schon seit mehreren Jahren und ich muss teilweise richtig überlegen was ich da vor Jahren zusammengerührt habe. Bitte nicht drängeln………………

    U.a. diese Quellen waren außer Oberallgeiers Beiträgen https://www.roboternetz.de/community...-Triangulation(nochmals vielen Dank an dieser Stelle) Lieferanten für dieses interessante und lehrreiche Projekt:
    http://www.seattlerobotics.org/encoder/200109/lasernav.htm
    http://www.philohome.com/sensors/lasersensor.htm



    Wir beginnen mit etwas Theorie (Geometrie > Stichworte: Thales / Dreieck / Kreis):
    Die Thales_x.pdf sind im Anhang versteckt. Es ist anzuraten diese vorher zu öffnen. Ein Bild sagt mehr.............. EDIT 03.10.2011 ! Es waren Fehler in den PDFs

    Thales_1.pdf

    Das grüne Rechteck ist die Spielfläche (z.B. damfino's Rasen). Die Punkte A, B und C stellen die Reflektoren dar. Die Abstände zwischen A und B respektive B und C müssen bekannt sein und werden dem µC als Variablen oder Konstanten mitgeteilt. Die Reflektoren müssen auf einer Geraden liegen (es geht auch in beliebigen Winkeln, diese Anordnung hat jedoch Vorteile, näheres später dazu).
    Der gelbe Kreis stellt den Roboter dar, der kleine schwarze Pfeil seine Fahrtrichtung (Nase). Der Positionsscanner ist (praktischerweise) im Mittelpunkt angeordnet. Von hier aus werden die Winkel Alpha (zwischen A und B) , Beta (zwischen B und C) und Gamma (zwischen C und A) gemessen. Je genauer diese Winkel ermittelt werden umso höher die Auflösung der Absolut-Position (die Auflösung ist nicht gleichmäßig auf dem Feld verteilt!).
    Als nächstes errichten wir lotrechte Linien bei A_B/2 und B_C/2. Diese Linien bilden später die X-Koordinaten für 2 Kreise mit deren Hilfe wir die Position des Laserscanners ermitteln.
    Thales_2.pdf
    Code:
    Xm1 = T_ab / 2 : Xm2 = T_bc / 2 : Xm2 = Xm2 + T_ab
    



    Die Kreise haben ihre X-Koordinaten immer auf diesen Hilfslinien und der Kreis läuft immer durch die Punkte A und B bzw. B und C.
    Nun gilt es den Mittelpunkt (Y-Koordinate) der Kreise zu bestimmen. Dazu werden die gemessenen Winkel verdoppelt und damit die folgenden Dreiecke berechnet.
    Thales_3.pdf

    Code:
    K1winkel2 = Beta * 2 : K2winkel2 = Alpha * 2 'Thaleskreis !
    



    Thales_4.pdf

    Code:
    K1alpha = 180 -k1winkel2 : K1alpha = K1alpha / 2 'Mittelpunkt und Radius 1.Kreis
    K1rad1 = Pi * K1alpha : K1rad1 = K1rad1 / 180
    K1rad2 = Pi * K1winkel2 : K1rad2 = K1rad2 / 180
    R1 = Sin(k1rad1) : R1 = R1 * T_ab : R1 = R1 / Sin(k1rad2)
    Ym1 = Sin(k1rad1) : Ym1 = Ym1 * R1
    
    K2alpha = 180 -k2winkel2 : K2alpha = K2alpha / 2 'Mittelpunkt und Radius 2.Kreis
    K2rad1 = Pi * K2alpha : K2rad1 = K2rad1 / 180
    K2rad2 = Pi * K2winkel2 : K2rad2 = K2rad2 / 180
    R2 = Sin(k2rad1) : R2 = R2 * T_bc : R2 = R2 / Sin(k2rad2)
    Ym2 = Sin(k2rad1) : Ym2 = Ym2 * R2

    Da ich für hohe Mathematik zu dumm bin habe ich mich mal hier bedient: http://www.antonis.de/faq/progs (kreisnit.bas)
    Nun brauchen wir nur noch die Kreise zu zeichnen :


    Thales_5.pdf

    Code:
    If R1 < R2 Then 'der erste Radius muß größer als der 2. sein
       Ht = Xm2 : Xm2 = Xm1 : Xm1 = Ht 'Swap 
       Ht = Ym2 : Ym2 = Ym1 : Ym1 = Ht
       Ht = R2 : R2 = R1 : R1 = Ht
    End If
    
    Call Schnitt_kreis(xm1 , Ym1 , R1 , Xm2 , Ym2 , R2 , Xs1 , Ys1 , Xs2 , Ys2 , M) 'Schnittpunkte ermitteln
    



    und die Schnittpunkte der beiden Kreise auszuwerten.
    Ein Schnittpunkt liegt auf B (Y=0) und ist leicht auszusortieren :

    Code:
    I = Round(ys2)
    If I = 0 Then 'Schnittpunkt liegt auf "B"
       Ist_x_gemessen = Xs1 : Ist_y_gemessen = Ys1 'Schnittpunkt 1
    Else
       Ist_x_gemessen = Xs2 : Ist_y_gemessen = Ys2 'Schnittpunkt 2
    End If
    Und siehe da, der Roboter steht genau auf dem Schnittpunkt !!! War doch ganz easy, nicht war ?

    Als zusätzliche Information bekommt man den Winkel des Robbys im Raum. Dieser wird aus dem Winkel zum Reflektor B abgeleitet.
    Nun haben wir alle Informationen um das Gefährt mit der Odometrie auf den (nächsten) Zielpunkt zu navigieren.
    Thales_6.pdf



    Weiter geht es mit dem eigentlichen Scanner (bald.....----->Theorie) ..............
    Angehängte Dateien Angehängte Dateien
    Geändert von WL (03.10.2011 um 07:48 Uhr) Grund: EDIT ! Es waren Fehler in den PDFs
    mfG
    Willi

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270

    Idee

    Da soweit alles klar ist geht es weiter mit der Hardware.........

    Funktion Positionsscanner:
    (Blockschaltbild.pdf im Anhang)


    Der Scanner besteht mechanisch aus einem Rotor (grün) und einem feststehenden Teil (blau & grau).
    Der Rotor ist (leicht) gebremst so dass das Getriebespiel nicht zum Tragen kommt.

    Auf dem Rotor ist neben der Energieversorgung der modulierte Laser-Emitter und das Empfangsmodul untergebracht. Die empfangenen Signale werden über Infrarot durch die Antriebs(hohl)welle zum feststehenden Teil geleitet.

    Am Rotor ist eine Zunge befestigt die den Nullpunkt (0°) im Zusammenhang mit dem Referenzsignal des Inkrementalgebers bildet. Mit diesem wird der Zähler zurückgesetzt.

    Das ganze bildet einen durch die Bakenreflektoren getriggerten (hochauflösenden) Winkelmesser.

    Durch den Inkrementalgeber wird der Zähler fortlaufend hochgezählt (im Beispiel von 0.....144000). Wird eine Bake erkannt wird über das Monoflop (MP2) dessen Zeitkonstante über der Periodendauer der Modulation liegt und über das Monoflop (MP4) das Latch getriggert und damit der momentane Winkel "eingefroren". Gleichzeitig kann der µC mit Int0 in die Interruptverarbeitung verzweigen und den Winkel über PortA abholen. Die Anzahl der 50KHz Impulse wird über Counter T1 gezählt. Es liegt nun an der Software das Ende des Impulspaketes festzustellen und mit PortB.3 (MP3) die Übernahme dieses Winkels erneut zu triggern und auszulesen.

    Als endgültiger Winkel für die weiterführende Berechnung wird die Mitte zwischen Anfang und Ende der Bake herangezogen. Da die Bake ein rundes Profil hat und somit quasi der Mittelpunkt verwendet wird ist das ganze damit (weitgehend) Richtungsunabhängig.

    Impulsdiagramm für ein Bakensignal (ideal) :

    Klicke auf die Grafik für eine größere Ansicht

Name:	ImpulsDiagramm.jpg
Hits:	95
Größe:	27,8 KB
ID:	20015

    Fragen hierzu?

    Als nächstes dann die konkrete Schaltung.............
    Angehängte Dateien Angehängte Dateien
    mfG
    Willi

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Die Lichtschranke:

    Klicke auf die Grafik für eine größere Ansicht

Name:	ScannerVonOben.JPG
Hits:	91
Größe:	72,5 KB
ID:	20066

    (Lichtschranke_prinzip.pdf im Anhang)

    Das rote Drehteil beinhaltet die Laserdiode (Kollimator) als Sender, einen Spiegel (45°) und den Empfänger nebst Sammellinse (90°) .
    Zum Ausrichten der Komponenten zueinander ist das rote Teil auf der weißen Grundplatte drehbar angeordnet. Das ganze ist mittig auf der Platine aufgeklebt.
    Auf der Unterseite der Platine sitzt die Infrarot-Sendediode und die Sekundärspule des Royerconverters.
    Klicke auf die Grafik für eine größere Ansicht

Name:	ScannerVonDerSeite.JPG
Hits:	76
Größe:	63,0 KB
ID:	20067

    Auf der Abbildung oben sind die beiden Spulenhälften des Royerconverters etwas auseinandergezogen. Unter der Grundplatte (grünes FR4) ist die Mechanik und die µC-Platine verborgen. In diesem Prototypen habe ich versucht den gesamten Scanner kardanisch aufzuhängen (Weißer Ring im runden roten Gehäuse). Damit soll sich der Scanner selbsttätig waagerecht ausrichten.
    Klicke auf die Grafik für eine größere Ansicht

Name:	ScannerMechanik.JPG
Hits:	80
Größe:	124,3 KB
ID:	20068
    Links oben der Motor, vorn das Schneckengetriebe, rechts unten der Inkrementalgeber und in der Mitte die Hohlwelle durch die die Empfangssignale per IR geschickt werden.
    Die Metallzunge auf dem Schneckenrad betätigt die Gabellichtschranke auf der µC-Platine (0°).

    Klicke auf die Grafik für eine größere Ansicht

Name:	ScannerPlatine.jpg
Hits:	94
Größe:	78,1 KB
ID:	20069
    Die (Prototyp)-µC-Platine:
    In der Mitte das Weiße Drehteil trägt eine Sammellinse für die IR-Empfangsdiode. Links daneben die Gabellichtschanke. Das Flachbandkabel verbindet zum Inkrementalgeber, ganz links unten der Motoranschluß und rechts daneben der Royerconverter. Links oben der Zähler und die Latches.


    Angehängte Dateien Angehängte Dateien
    mfG
    Willi

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    ....hat leider nicht mehr reingepasst:



    Für die kardanische Aufhängung und das runde Gehäuse (KG-Rohr) hat sich diese Bauform als ungünstig herausgestellt. In den Eagle-Files (Anhang) ist das bereits geändert. Die Platine muß an der großen runden Markierung "gestutzt" werden.

    Rechts oben der 8-polige Steckverbinder ist die Verbindung zum übergeordneten System.


    Weiter dann mit der Software........................
    Angehängte Dateien Angehängte Dateien
    mfG
    Willi

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.04.2005
    Beiträge
    181
    Hallo WL,

    das sieht ja sehr gut aus.
    Welche Resultate kannst Du damit erreichen:
    -Reichweite
    -Genauigkeit
    -Welche Umgebungsbedingungen (Tageslicht im Freien)

    Bernhard

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo Willi,

    wie wird zwischen Bakenreflexionen und anderen Reflexionen unterschieden?

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    @Bernhard667

    -Reichweite
    -Genauigkeit
    -Welche Umgebungsbedingungen (Tageslicht im Freien)
    Die Reichweite wird vom Kollimator(Leistung und Strahldurchmesser) und dem Reflektormaterial bestimmt.
    Außerdem sollte (muß) Sender und Empfänger auf der optischen Achse zum Reflektor liegen.
    Mit einem 1mW Kollimator und der 3M-Folie habe ich ca.10m erreicht.

    Die Genauigkeit ist abhängig von der Auflösung des Winkelmessers (im Beispiel 144000/U entspr.0,0025°), dem mechanischen Aufbau (Präzision und Spielfreiheit des Getriebes) und der Position auf dem Feld (NICHT linear !).
    Auf einer kleineren Testfläche(5*4m) würde ich mal für diesen Prototypen ganz vorsichtig ~ 1cm angeben.

    Tageslicht spielt eigentlich keine Rolle. Es sei denn, die Sonne steht sehr tief und in einer Linie mit Scanner und Reflektor.


    @vohopri


    wie wird zwischen Bakenreflexionen und anderen Reflexionen unterschieden?
    Das ist in der Tat ein Problem:
    z.B. Rundglas (Flaschen) oder Flachglas (Fensterscheiben) sind für die Lichtschranke (gute) Reflektoren.

    Bis auf weiteres:
    Entweder die Verstärkung des Empfängers verringern (weniger Reichweite) oder Refexionen vermeiden !

    Notwendig, aber noch nicht realisiert:
    Im Normalfall werden 3 Baken/U detektiert. Wenn es mehr sind muß eine Plausibilitätskontrolle die n.i.O. Reflexionen ausfiltern (auf die ToDo-Liste).
    Wenn gleich nach dem Einschalten schon mehr als 3 erkannt werden ist diese Blase aber geplatzt !
    mfG
    Willi

Ähnliche Themen

  1. 25W Laser
    Von Schottky im Forum Elektronik
    Antworten: 25
    Letzter Beitrag: 05.11.2009, 15:45
  2. Laser Abstandsmessung
    Von filth im Forum Sensoren / Sensorik
    Antworten: 22
    Letzter Beitrag: 02.06.2009, 18:05
  3. Laser?
    Von oratus sum im Forum Sensoren / Sensorik
    Antworten: 28
    Letzter Beitrag: 11.01.2007, 13:26
  4. Laser Sensoren? Abtasten und erkennen mit Laser? Möglich ?
    Von PsychoElvis64 im Forum Sensoren / Sensorik
    Antworten: 16
    Letzter Beitrag: 11.10.2006, 18:29
  5. Laser-Datenübertragung
    Von Murus im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 19
    Letzter Beitrag: 28.01.2006, 20:31

Berechtigungen

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

Solar Speicher und Akkus Tests