- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 7 von 7

Thema: SICK Laserscanner

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von arnoa
    Registriert seit
    03.01.2011
    Ort
    Wien
    Beiträge
    146

    SICK Laserscanner

    Da mir die Einbindung meines alten PLS100-112 einiges an Zeit gekostet hat, möchte ich hier meine Erfahrungen teilen.
    Der PLS100-112 hat schon einige Jahre auf dem Buckel und es gibt so gut wie keine Informationen mehr im Netz. In diesem Sinne möchte ich mich bei einem SICK Technik-Mitarbeiter bedanken der mir diesbezüglich alle noch vorhandenen Dokumentationen zukommen hat lassen. Ohne diese Informationen und einem guten Serial-Port Sniffer wäre ich nicht ans Ziel gekommen!

    Das Ergebnis sieht derzeit so aus:
    Bild hier  
    Die Einbindung war nicht ganz einfach da keine Beschreibung des Datenstromes bzw. zum Aufbau eines Datensatzes mehr zu finden war und die Befehlssätze vom PLS200 nicht gleich sind wie die des PLS100. Der Datensatzaufbau (wenn dann mal die Daten kommen Bild hier   ) sieht wie folgt aus:Bild hier  
    Ich lasse den Lasercanner auf die vollen 180° arbeiten. Abtastschritt ist ein halbes Grad. Somit bekommen ich 720 Bytes an Daten (je ein Low und ein High Byte pro Grad). Diese werden dann zusammengesetzt und ergeben die Länge zum Hindernis. WICHTIG, und dieser Fehler hat mir viel Zeit gekostet, ist das vom High Byte die letzten drei Bits abgeschnitten werden müssen. Somit stehen für den Abstandswert 12 Bits zu Verfügung mit denen ein Bereich von 0 bis 8191 abgedeckt wird. Das sieht dann wie folgt aus:
    Bild hier  
    Ich habe das derzeit in dieser Form gelöst (unschön – muss optimiert werden!)
    // Einlesen des Low und High Bytes
    int dec_low = buffData[i + 0]; // LOW BYTE
    int dec_high = buffData[i + 1]; // HIGH BYTE
    // Die letzten drei Bits vom High Byte entfernen
    int dec_high_cut = (byte)(dec_high << 3);
    dec_high_cut = (byte)(dec_high_cut >> 3);
    // Low und High Byte miteinander verbinden
    int decvalue = dec_high_cut << 8 | dec_low;
    // x und y Koordinaten für die Ausgabe berechnen
    x = (decvalue * Math.Cos(deg * (Math.PI / 180)));
    y = (decvalue * Math.Sin(deg * (Math.PI / 180)));
    Bei Interesse und/oder Bedarf kann ich natürlich detailliertere Informationen zur Einbindung liefern.

    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken sick_data_format1.jpg   aurob_software_sick_laserscanner.jpg  
    ____________________________________________
    Mehr Infos zu meinem Projekt unter: http://www.aurob.com

Ähnliche Themen

  1. Sick WL27-2F430
    Von Zwerwelfliescher im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 26.11.2010, 19:48
  2. Sick lms 200 - brauche da kleine Hilfe
    Von jower im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 06.06.2007, 14:45
  3. SICK Laserscanner
    Von ninjashome im Forum Sensoren / Sensorik
    Antworten: 11
    Letzter Beitrag: 24.10.2006, 15:14
  4. "Sick"-ähnlicher Laserscanner im Selbstbau?
    Von toemchen im Forum Sensoren / Sensorik
    Antworten: 46
    Letzter Beitrag: 08.02.2006, 10:39
  5. (UMCCam II) Sick 3D Scanner LMS 200 ID
    Von Robotik im Forum Sensoren / Sensorik
    Antworten: 15
    Letzter Beitrag: 08.03.2005, 15:46

Berechtigungen

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

LiFePO4 Speicher Test