Software Development of Visualization Tool for 3D Cameras Martin Stenmarck
Total Page:16
File Type:pdf, Size:1020Kb
LiU-ITN-TEK-A--11/021--SE Software development of visualization tool for 3D cameras Martin Stenmarck 2011-04-28 Department of Science and Technology Institutionen för teknik och naturvetenskap Linköping University Linköpings universitet SE-601 74 Norrköping, Sweden 601 74 Norrköping LiU-ITN-TEK-A--11/021--SE Software development of visualization tool for 3D cameras Examensarbete utfört i medieteknik vid Tekniska högskolan vid Linköpings universitet Martin Stenmarck Examinator Stefan Gustavson Norrköping 2011-04-28 Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extra- ordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/ © Martin Stenmarck Abstract The visualization is an important and vital tool of describing complex data for an uninitialized user. SICK has developed an array of advanced machine vision cameras all capable of producing large data sets of information at a high rate. Although capable of fast data handling and the ability of controlling robots and other types of controls, the data used for these calculations can be showed for an easy and fast feedback to the users or in a sales situation. The visualization available today, although fairly fast, is limited to a gradient textured model with few tools. Based on OpenGL the current visualization requires a wrapper to handle correctly within .NET applications which is the preferred platform at SICK. This thesis studies the possibility and development of new visualization tool based on .NET capable of adding textures and interaction with the visualization. Since the data derived from the different cameras can occur in so many different ways a robust application ia needed. With the use of Windows presentation Foundation (WPF) framework the ap- plication is divided in three components. The first one is a library capable of reading the correct section of the file and then structuring the data. The sec- ond component is a user control; this allows the visualization to be constructed and displayed with ease within all .NET applications. The third component is a application which make use of the two other components to display and interact with the visualization. The developed visualization can display several different textures and has support for full navigation in the form of zoom, panning and rotation. The application is developed in .NET for easy integration with other applications and tools. WPF has a straightforward way of handling 3d content, however it is mostly used for small elements of 3D not for as large models as provided by the cameras. By subsampling the data set, the loading time can be reduced to an acceptable value. Although visualizing the data in a detailed and interactive way, the WPF-framework is on its knees when handling the larger files. There are several limitations in WPF which indicates the unsuitability as the main graphical engine. Sammanfattning Visualisering är ett viktigt och nödvändigt verktyg för att beskriva komplexa da- ta för en oinitierad användare. SICK har utvecklat en rad avancerade kameror som alla kan producera stora datamängder i hög takt. Även om kamerorna kla- rar av snabb datahantering och kan styra robotar och andra typer av kontroller, kan datan som används för dessa beräkningar även visas för en enkel och snabb v vi återkoppling till användare eller i en säljsituation. Visualisering som finns idag är begränsad till en enkel modell med få verktyg. Denna avhandling studerar möjlig- heten och utvecklingen av ett nytt visualiseringsverktyg. Eftersom datan kommer från olika kameror behövs ett robust och mångsidigt system. Med hjälp av Windows Presentation Foundation (WPF) som ramverk är pro- gramvaran indelad i tre delar. Den första är ett bibliotek som kan läsa rätt del av filen och sedan strukturera data. Den andra komponenten är en kontroll, vilket gör att visualisering kan byggas och visas med lätthet inom alla .NET-applikationer. Den tredje komponenten är en applikation som använder sig av de två andra komponenterna för att visa och interagera med visualiseringen. Den utvecklade visualisering kan visa flera olika texturer och har stöd för full navigering i form av zoom, panorering och rotation. WPF har ett enkelt sätt att hantera 3D-objekt, men det används mestadels för mindre tillämpningar och inte för så stora modeller som tillhandahålls av kamerorna. Genom att sampla ner datamängden, så kan be- lastningen minskas. Även om kraven uppfylls och programvaran är användbar så finns det flera begränsningar i WPF som indikerar att det är en olämplig plattform för denna uppgift. Acknowledgments I want to thank my supervisor at SICK, Andreas Wrangsjö for his guidance and helpful tips along the way of this master thesis. I want to thank Thomas Berglund at SICK for helping me with troubleshooting the code. I would also like to thank everyone at SICK in Linköping, for the opportunity to work with this problem and for interesting insight and discussions. I would like to thank my examiner, Stefan Gustavsson at Linköpings University for providing good directions. I thank Jousef Gabro for reading and providing me with good feedback on the report. I would like to thank Emma Carlsson for supporting and helping me with the presentation of this master thesis. vii Contents 1 Introduction 1 1.1 Background . .1 1.2 Problem . .2 1.3 Purpose and goal . .2 1.4 Thesis outline . .3 1.5 Related work . .4 2 Theory 5 2.1 Visualization . .5 2.2 3D graphics . .6 2.2.1 An introduction . .6 2.2.2 Navigation . .8 2.3 SICK machine vision . 10 2.3.1 Machine vision product family . 10 2.3.2 Data acqusition . 12 2.4 Windows Presentation Foundation . 15 2.4.1 Extensible Application Markup Language . 17 2.4.2 WPF3D . 17 3 Implementation 21 3.1 Language choice . 21 3.2 Software development . 21 3.2.1 XML reader . 21 3.2.2 3D models . 23 3.2.3 Textures . 25 3.2.4 Tools . 26 3.3 User Interface development . 27 4 System overview 29 4.1 Class library . 29 4.2 User control . 30 4.3 Application . 30 4.4 Use case scenario . 31 ix x Contents 5 Results 33 5.1 The new visualizer . 34 5.2 Performance . 35 6 Discussion 37 7 Concluding remarks and future work 39 Bibliography 41 A System Requirement Specification 43 A.1 Introduction . 43 A.1.1 Purpose and goal . 43 A.1.2 Product usage . 43 A.1.3 Product background . 43 A.2 General system idea . 44 A.2.1 Coarse description of the product . 44 A.2.2 Product components . 44 A.2.3 Dependencies . 44 A.2.4 Design philosophy . 45 A.2.5 General requirements on the complete system . 45 A.3 The class library . 45 A.3.1 Initial description of the class library . 45 A.3.2 User interface . 45 A.3.3 Design requirements . 45 A.3.4 Functional requirements for the class library . 46 A.4 The application . 46 A.4.1 Initial description of the application . 46 A.4.2 Design requirements . 46 A.4.3 Functional requirements for system 2 . 47 A.4.4 User interface . 47 A.5 Performance requirements . 47 A.6 Further requirements . 47 A.7 Documentation . 47 B System Design Specification 48 B.1 Introduction . 48 B.1.1 Purpose of this document . 48 B.1.2 Scope of the development project . 48 B.1.3 Definitions . 48 B.1.4 References . 48 B.1.5 Overview of document . 48 B.2 System Archtecture description . 49 B.2.1 Overview of modules . 49 B.2.2 Structure . 49 B.2.3 User interface issues . 50 B.3 Detailed description of components . 50 Contents xi B.3.1 Component Overview . 50 B.3.2 Class library . 50 B.3.3 Desktop Client . 50 B.4 Design decisions and tradeoffs . 51 B.4.1 Windows Presentation Foundation . 51 B.4.2 Triangulation . 52 B.4.3 Decimation . 52 C Usability test form 53 D Screenshots 54 Chapter 1 Introduction 1.1 Background SICK IVP AB develops software, supports and markets a range of cameras, mainly machine vision used in the production industry.