A company wants to measure and verify the size of goods modules, transported on a conveyor belt, with the help of two 2D laser scanners (LMS100). The resulting measurements will be written to a database whereafter the modules will be moved by an automatic lifting device to a storage. The dimensions and possible any protrusions need to be known to avoid collision. The goal with this project is to write three modular libraries. One library for communicating with the LMS100 scanner, one library for calculating the dimensions of the goods modules and one library for handling the database. A graphical user interface (GUI) was also created which was implemented with an existing graphical library, Simple Directmedia Layer (SDL). A Raspberry Pi 3 has been used as a hardware platform which communicates with two LMS100 via ethernet. All code is written in the programming language C. LMS100 communicates with so called telegrams and the library implements these with TCP sockets. The structure of these can be found in the manufacturer’s datasheet. The calculating library uses trigonometric functions with measurement values from the scanners. The database library uses sqlite3 for a serverless database. The testing of these libraries was first done on a small scale with only one scanner and a small box placed a few decimeters in front of the scanner, to verify the functionality of the libraries. The company later provided a larger test rig with a remote controlled platform, which drove between the scanners. When measuring objects with this test rig, the system showed an adequate ability to verify the size of the goods module. An inherent measurement error of a few millimeters of the scanners is shown, but this doesn’t affect the functionality in the final product which will measure considerably larger objects. Some functions are prepared for future development but aren’t yet ready for use. The protrusions of the goods modules aren’t yet discovered by the system. The calculating library is prepared to be able to detect these, but the evaluation of them aren’t ready. If the goods module is at an angle, the system measurements will be faulty. For every scanned segment the coordinates are saved and in future development it will be able to detect the angle. / Ett företag vill med hjälp av två stycken 2D-laserskannrar (LMS100) mäta och verifiera storleken på godsmoduler som transporteras på ett transportband. Mätresultatet ska skrivas till en databas varefter modulerna med en automatiskt styrd avlastare förflyttar dem till ett lager. Dimensioner och eventuella utstick på modulen måste vara kända för att undvika kollision. Målet med arbetet är att skriva tre stycken modulära bibliotek. Ett bibliotek för kommunikation med LMS100, ett bibliotek för beräkning av godsmodulens dimensioner och ett bibliotek för databashantering. Till detta skapades även ett grafiskt användargränssnitt (GUI) som implementerades med hjälp av ett färdigt grafikbibliotek, Simple Directmedia Layer (SDL). En Raspberry Pi 3 har använts som hårdvaruplattform som kommunicerar med två stycken LMS100 via ethernetanslutning. All kod skrivs i programspråket C. LMS100 kommunicerar med s.k. telegram och biblioteket implementerar dessa via TCP sockets. Strukturen på dessa går att läsa i tillverkarens datablad. Beräkningsbiblioteket använder trigonometriska funktioner med mätvärden från skannrarna för beräkning. Databasbiblioteket använder sig av sqlite3 för en serverlös databas. Testning av dessa bibliotek skedde först på en småskalig nivå med endast en skanner och en liten låda placerad några decimeter framför skannern, för att verifiera funktionaliteten på berörda bibliotek. Företaget bidrog senare med en testrig i större skala med en fjärrstyrd plattform, som körde mellan de två skannrarna. Vid mätning av objekt i denna testrig visade systemet en tillräckligt god förmåga för att kunna verifiera storlek på godsmoduler. Ett medföljt mätfel i millimeterskala finns i skannrarna, men detta påverkar inte funktionaliteten i den slutgiltiga produkten som ska mäta mycket större objekt. Vissa funktioner är förberedda för framtida utveckling men är inte färdiga för användning. Utstick på godsmodulerna upptäcks inte av systemet än. Beräkningsbiblioteket är förberett för att kunna upptäcka dessa, men utvärderingen av dem är inte färdigt. Om godsmodulen är vriden på transportbandet mäter systemet fel. Koordinater finns för varje skannat segment så att man ska kunna upptäcka denna vinkel i framtida utveckling.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:umu-138482 |
Date | January 2017 |
Creators | Strandberg, Filip, Freij, Johan |
Publisher | Umeå universitet, Institutionen för tillämpad fysik och elektronik, Umeå universitet, Institutionen för tillämpad fysik och elektronik |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.023 seconds