Studentská tvůrčí a odborná činnost
STOČ 2013
DETEKTE OBJEKTŮ LASEROVÝM SKENOVÁNÍM
Jan GREPL
VŠB-TU OSTRAVA, Fakulta strojní, 17. listopadu 15/2172, Ostrava-Poruba, 708 33
25. dubna 2013 FAI UTB ve Zlíně
STOČ 2013 - Studentská tvůrčí a odborná činnost 25. dubna 2013, FAI UTB ve Zlíně
Klíčová slova: Laser, skener, objekty, Hokuyo, SICK, C# Anotace: Práce se zabývá, detekcí objektů pomocí laserového skenování. Seznámením s principy laserových skenerů firmy Hokuyo a SICK použitých pro skenování, principy komunikačních protokolů (formát získaných dat ze skeneru). Následné vytvoření vlastního programu pro zobrazování získaných dat ze skeneru, sloužících pro detekci objektů. Komunikační programy jsou vytvořeny v programu Microsoft Visual Studio 2008, v programovacím jazyku C#. Ověření správnosti dat s originálním softwarem pro získání dat ze skeneru.
2
STOČ 2013 - Studentská tvůrčí a odborná činnost 25. dubna 2013, FAI UTB ve Zlíně
Obsah 1. 2. 3.
Úvod ....................................................................................................................... 4 Principy laserových skenerů .................................................................................. 4 Laserové skenery ................................................................................................... 5 3.1 Laserový měřicí systém HOKUYO URG-04LX-UG01 ........................................ 5 3.2 Laserový měřicí systém TiM310-1030000 ............................................................ 5 4. Komunikační programy ......................................................................................... 6 4.1 Komunikace se skenerem HOKUYO URG-04LX-UG01 ..................................... 6 4.2 Komunikační program se skenerem HOKUYO URG-04LX-UG01 ..................... 7 4.3 Komunikace se skenerem SICK TiM310-1030000 ............................................... 8 5. Závěr ...................................................................................................................... 9 Literatura ......................................................................................................................... 10
3
STOČ 2013 - Studentská tvůrčí a odborná činnost 25. dubna 2013, FAI UTB ve Zlíně
1.
Úvod
Laserové měření se v posledních letech stalo důležitým prvkem v oblasti měřicích metod. Lze pomocí něj skenovat různé povrchy a pomocí grafických programů lze zobrazit tvar naskenovaného povrchu. Dále je možné použít laserové měření pro zajištění přesného tvaru výrobků ihned po jeho zpracování (lze měřit ovalitu trubek) a tím předejít zmetkovosti. Laserové měření se dá použít i jako bezpečnostní systém v různých procesech od hlídaní prostoru budov až po zajištění bezpečnosti manipulace s kontejnery v přístavech, skladištich apod. Pro skener HOKUYO URG-04LX-UG01 jsem vytvořil komunikační program, který v jedné části zobrazuje získaná data ze skeneru pomocí hodnot. V další části je zobrazení získaných dat do grafu. Komunikační program je vytvořený v prostředí Microsoft Visual Studio 2008, jako programovací jazyk je zvolený jazyk C#. Podobný program je vytvořen i pro skener SICK TiM310-1030000.
2.
Principy laserových skenerů
Laserové skenery popsané v této práci pracují na stejném principu, který je založený na měření času letu světla (Time-of-Flight) - metoda s nejjednodušší a nejlevnější celkovou konstrukcí měřící aparatury a však náročné provedení snímače; vhodná pro měření rozměrů a vzdáleností s přesností až cca 1 mm. Vzdálenost bodu objektu lze stanovit ze vztahu (1), kde τ je doba letu světelného paprsku od jeho vyslání senzorem až po jeho opětovné chycení senzorem a z je vzdálenost bodu neboli jeho z-ová souřadnice.: (1)
Obr. 1 – Princip skenování [SICK]
4
STOČ 2013 - Studentská tvůrčí a odborná činnost 25. dubna 2013, FAI UTB ve Zlíně
3.
Laserové skenery 3.1
Laserový měřicí systém HOKUYO URG-04LX-UG01
Jedná se o malý, lehký a přesný skener, který by se dal svojí funkcí srovnat se skenerem firmy SICK TiM310-1030000. Zdrojem záření je infračervený laser I. bezpečnostní třídy. Může skenovat oblast s rozptylem 240° do maximální vzdálenosti 5m. Je určen jako laserový dálkoměr autonomních robotů. Napájení je zajištěno pomocí miniUSB kabelu. Měření není tolik ovlivněné barvou detekovaných objektů nebo jejich lesklým povrchem.
Obr. 2 - Laser HOKUYO URG-04LX-UG01 3.2
Laserový měřicí systém TiM310-1030000
Jedná se o malý kompaktní skener pro vnitřní použitý s krátkým skenovacím rozsahem. Skener je určený pro anitikolizi a detekci objektů, pracovní prostor pro detekci je ve vzdálenosti 4m a úhlu 270°. Skener má předdefinovaná zónová pole s možností vlastního nastavení. Nastavení lze provést bez pomocí PC s funkcí teach-in nebo pomocí PC v programu SOPAS.
Obr. 3 - Laser SICK TiM310-1030000 5
STOČ 2013 - Studentská tvůrčí a odborná činnost 25. dubna 2013, FAI UTB ve Zlíně
4.
Komunikační programy
4.1 Komunikace se skenerem HOKUYO URG-04LX-UG01 Jako komunikační protokol se používá protokol SCIP 2.0. Přehled hlavních parametrů pro komunikaci je uvedeno v Tabulka 1, v následující tabulce jsou popsány příkazy pro zjištění stavu (znak za středníkem je kontrolní znak pro každou řádku).
Obr. 4 - Rozdíl mezi GD/GS a MD/MS [HOKUYO] GD Sekvenční měření, data reprezentována 2 byty. GS Sekvenční měření, data reprezentována 3 byty. MD Průběžné měření, data reprezentována 2 byty. MS Průběžné měření, data reprezentována 3 byty. Parametry měření Start step Počáteční krok měření. Stop step Poslední krok měření. Cluster Count Scan frequency Capture times
Počet okolních sloučených kroků do jedněch dat (zmenšení úhlové přesnosti, objemu dat). Skenovací frekvence (pouze u MD, MS). Počet skenů (pouze u MD, MS). Tabulka 1 - Způsoby měření
Komunikace mezi skenerem a počítačem probíhá podle následujícího principu. Počítač odešle do skeneru příkaz pro měření. Laser po obdržení příkazu odešle odpověď počítači. Odpověď obsahuje pro kontrolu poslaný příkaz, a všechna data odpovídající tomuto příkazu. Odešle-li počítač např. příkaz GD0044072501, odpověď od senzoru by měla vypadat podle následovně. První řádek je echo přijatého příkazu – tedy shodné s příkazem odeslaným počítačem. Na druhém řádku je zakódován status (00 – normal) a kontrolní znak (P). Třetí řádek je pak parametr Time stamp (0DKO) a kontrolní znak (>). Od čtvrtého řádku následují naměřená data. Každý řádek obsahuje 65 znaků, poslední je opět kontrolní (před znakem \n). Odstraníme-li první tři řádky a poslední znak z každého řádku (a znak \n), dostáváme posloupnost naměřených dat. Podle nastavených parametrů je informace o vzdálenosti 2 nebo 3-bytová (GD/MD – 3byty, GS/MS – 2byty), přičemž jeden byte je reprezentován jedním ASCII znakem. Počet naměřených dat (kroků) je dán vztahem: Počet kroků = End step – First step + 1 Dekódování výsledné vzdálenosti z ASCII znaků je zobrazeno na Obr. 5, výsledek je v mm. Výpočet pro 3 bytové vyjádření je podobný. 6
STOČ 2013 - Studentská tvůrčí a odborná činnost 25. dubna 2013, FAI UTB ve Zlíně
CB
=
C
B ↓ Hexadecimální ekvivalent 43H 42H ↓ Odečtení 30H 13H 12H ↓ Binární ekvivalent 0100112 0100102 ↓ Spojení 0100110100102 ↓ Desetinný ekvivalent 1,234
Obr. 5 – Příklad převodu ASCII znaků na mm 4.2
Komunikační program se skenerem HOKUYO URG-04LX-UG01
Komunikační program byl vytvořen v programovací jazyku C# v prostředí Microsoft Visual Studio 2008. V programu jsou nastaveny parametry pro komunikaci pomocí sériové linky. Program pošle do skeneru příkaz MD0044072501001, kde MD znamená průběžné měření (reprezentována 2 byty), 0044 počáteční krok měření, 0725 koncový krok měření. Posledních pět znaků prezentuje 01 – Cluster count (počet okolních sloučených kroků do jedněch dat), 0 – Scan frequency (skenovací frekvence) a 01 – Scan times. Odpověď ze skeneru je zobrazena na Obr. 6.
Obr. 6 – Data získaná ze skeneru Dále je možné v programu přepnou na záložku, kde jsou data prezentována v grafické podobě v grafu X, Y. Modře zobrazená plocha je naskenovaný prostor, červená zobrazuje zásah do vymezeného prostoru. Pro vykreslení hlídané oblasti (červená), je poslán do skeneru příkaz MD0044072501000, hodnoty jsou stejné jako u předchozího příkazu, rozdíl je pouze v posledním dvojčíslí kde je Scan Time nastaven na 00. 7
STOČ 2013 - Studentská tvůrčí a odborná činnost 25. dubna 2013, FAI UTB ve Zlíně
Obr. 7 – Skenovaný prostor 4.3
Komunikace se skenerem SICK TiM310-1030000 Pro komunikaci po
Pomocí záložky Komunikace je zobrazena odpověď na příkazy ,,sRN STlms" a ,,sRN LMPscancfg" Příkaz sRN STlms - vrací status skeneru Data odpovědi jsou zobrazena v levé části komunikačního okna nejprve je zobrazen status skeneru, pracovní teplota, doba od zapnutí a datum. Příkaz sRN LMPscancfg - přečte skenovací frekvenci, úhlové rozlišení a skenovací oblast Odpověď na tento příkaz je zobrazena v pravé části komunikačního okna, kde je zobrazena skenovací frekvence, úhlové rozlišení, počáteční a konečný úhel měření.
Obr. 8 – Okno komunikačního programu záložka Komunikace 8
STOČ 2013 - Studentská tvůrčí a odborná činnost 25. dubna 2013, FAI UTB ve Zlíně
Scan Data V záložce Scan Data je zobrazena odpověď na příkaz ,, sRN LMDscandata", pomocí kterého se zobrazí sériové číslo skeneru, čítač zpráv a skenování, skenovací frekvence, měřicí frekvence a další. Příklad odpovědi:
5.
sRA/sSN LMDscandata VersionNumber DeviceNumber SerialNumber DeviceStatus MessageCounter ScanCounter PowerUpDuration TransmissionDuration InputStatus OutputStatus ReservedByteA ScanningFrequency MeasurementFrequency NumberEncoders [EncoderPosition EncoderSpeed] NumberChannels16Bit [MeasuredDataContent ScalingFactor ScalingOffset StartingAngle AngularStepWidth NumberData [Data_1 Data_n]] NumberChannels8Bit [MeasuredDataContent ScalingFactor ScalingOffset StartingAngle AngularStepWidth [NumberData Data_1 Data_n] Position [XPosition YPosition ZPosition XRotation YRotation ZRotation RotationType] Name [DeviceName] Comment [CommentContent] TimeInfo [Year Month Day Hour Minute Second Microseconds] EventInfo [EventType EncoderPosition EventTime AngularPosition]
Závěr
Seznámil jsem se s funkčními principy skenerů firmy Hokuyo a SICK. Ověřil jsem funkce laserových skenerů, pro komunikaci se skenery jsem použil dodaného SW. Dála jsme se sezámil s principy komunikačních protokolů obou skenerů. A následně jsem vytvořil vlastní komunikační programy, které jsou vytvořeny v prostředí Microsoft Visual Studio 2008 pomocí jazyku C#. Komunikační program pro skener HOKUYO URG-04LX-UG01. Program je tvořen ze dvou záložek. První obsahuje získaná data ze skeneru. Druhá záložka zobrazuje skenovaná data ze skeneru zobrazená v grafické podobě, kde je vidět skenovaný prostor a také prostor který je hlídaný. Podobný program je vytvořený i pro skener SICK TiM310-1030000, kde v záložce ,,Komunikace“ jsou zobrazeny základní údaje o skeneru a ve druhé je zobrazen naskenovaný prostor a data získaná ze skeneru.
9
STOČ 2013 - Studentská tvůrčí a odborná činnost 25. dubna 2013, FAI UTB ve Zlíně
Literatura [1] FARANA, R., SMUTNÝ, L., VÍTEČEK, A. 1999. Zpracování odborných textů z oblasti automatizace a informatiky. 1. vydání Ostrava: VŠB-TU Ostrava, 1999. 68 s. ISBN 807078-737-6. [2] HOKUYO. Dokumentace a manuály k laserovým skenerům společnosti HOKUYO. Dostupné z WWW:
[3] KALOVÁ, I., HORÁK, K. 2005. Optické metody měření 3D objektů [online]. Dostupné z WWW:
[4] Komplexní informační web o programování v. NET [online]. Dostupné z WWW: [5] MICROSOFT MSDN Library [online], Microsoft Corporation 2011. Available from WWW: [6] SICK, Dokumentace a manuály k laserovým skenerům společnosti SICK [online]. Dostupné z WWW: [7] VOJÁČEK, A. 2006. PMD senzor & 3D měření vzdálenosti [online]. Dostupné z WWW: [8] VYSTAVĚL, R. 2009 Moderní programování - učebnice pro začátečníky. 3. vyd. 2009. 195 str. ISBN: 978-80-903951.
10