-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmethod.tex
More file actions
42 lines (22 loc) · 7.68 KB
/
method.tex
File metadata and controls
42 lines (22 loc) · 7.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
%%
\chapter{Metod}
\label{cha:method}
\section{Utvecklingsmetodik}
Gruppen använde sig av en iterativ och agil process med vissa inslag av vattenfallsmodellen. Utvecklingsledaren ansvarade för att ta fram vad som skulle genomföras i varje iteration och planera iterationerna i samråd med övriga gruppmedlemmar. Teamledaren ansvarade för att planera de administrativa delarna av projektet. För att planera en iteration utgick gruppen från kravspecifikationen och bröt ner den till aktiviteter. Målet med varje aktivitet var att den skulle vara genomförbar på mindre än en vecka. När aktiviteterna var skapade gjorde utvecklingsledaren med inrådan från bland annat arkitekten en tidsuppskattning på varje aktivitet och hur många som borde jobba med aktiviteten. Efter planeringen gick gruppen igenom aktiviteterna för att alla i gruppen skulle bli informerade om vad som skulle genomföras under iterationen. När alla i gruppen var informerade om aktiviteterna valde gruppmedlemmarna vilka aktiviteter som de ville delta i. Vidare under iterationen planerades hur aktiviteten skulle utföras av de gruppmedlemmar som valt den aktiviteten.
\section{Förstudie}
Projektet inleddes med en förstudiefas där gruppen sammanställde diverse dokument. Där dessa dokument användes för att både gruppmedlemmarna själva och externa parter skulle få en bättre insikt i vad projektet gick ut på och vad dess mål var. Dokumenten utformades och togs fram av den eller de personer i gruppen som var bäst lämpade för ett visst dokument. Med det menas den person som passade bäst för ett visst dokument med avseende på dennes roll i gruppen.
Gruppen började sedan att studera de områden, verktyg och ramverk som skulle behövas för projektet. Den information som gruppen hade från början var den som kunden tillhandahållit och utifrån denna information upptäcktes en del nya områden som behövde undersökas. Under förstudien delade utvecklingsledaren ut olika områden att undersöka. Efter ett område undersökts skrevs ett kort dokument som beskrev slutsatserna och innehöll relevanta länkar från undersökningen. De största områdena som undersöktes var ROS och PCL. Först undersöktes ROS och PCL av några ur gruppen samtidigt som de andra arbetade på diverse dokument. Därefter undersökte alla i gruppen ROS och ett par stycken undersökte PCL. Alla gruppmedlemmar genomförde de guider som rekommenderades på ROS hemsida. Efter att guiderna var genomförda skrev alla gruppmedlemmar varsin chattklient med hjälp av ROS.
\section{Iteration 1}
Iteration 1 omfattar de två första veckorna efter förstudiefasen. Huvudmålet för iteration 1 var att färdigställa basfunktionaliteten för produkten. Gruppen började med att skriva kod för att skapa ett gränssnitt mot TreeD och börja testa att registrera och mesha en del punktmoln som laddades ner från olika källor på internet. Efter en veckas utvecklande började majoriteten av gruppen att arbeta med de dokument som skulle lämnas in efter iteration 1. Några gruppmedlemmar fortsatte med att färdigställa arbetet på produkten även under andra veckan.
\section{Iteration 2}
Iterationen inleddes med fokus på registrering då detta var det stora frågetecknet i projektet vid början av iteration 2. Efter att först ha undersökt olika algoritmer beslutades det att gruppen skulle fortsätta med ICP då den hade bäst stöd i PCL-biblioteket. Efter det delades gruppen i två för att arbeta med två olika algoritmer för att registrera punktmoln. Den första algoritmen var att försöka vrida och placera punktmolnen rätt från början och på så sätt få det enklare att sedan registrera punktmolnen med ICP. Vrida och placera punktmolnen rätt innebär att först rotera dem så att de har rätt rotation i förhållande till varandra och sedan sätta origo till samma punkt för alla punktmolnen. Problemet med att få algoritmen att fungera var att den behövde vara väldigt generell vilket gjorde den svår att ta fram och fullända. Speciellt för de objekt som i början av projektet ansågs enkla att registrera av gruppen och kunden. Ett exempel på dessa enkla objekt var släta rätblock. Den andra algoritmen var mer anpassad för de då ansedda enkla objekten. Den gick ut på att i första hand endast lösa problemet med att registrera rätblocksliknande föremål. Detta gjorde den genom att hitta den plattaste ytan, anta att det var en sida och sedan ta fyra skanningar med 90 graders rotation mellan varje. Dessa punktmoln registrerades sedan på ett genererat rätblock med ICP.
Den andra algoritmen var den som utforskades mest tills den skulle börja testas ihop med hårdvaran. Då upptäcktes att det fanns mängder med fel på det underliggande systemet som tog fram punktmolnen. Det gick inte att genomföra tillräckligt många skanningar i rad utan att det underliggande systemet kraschade.
Detta gjorde att gruppen tillsammans med kunden fick revidera en stor del av projektet där gruppen bortsåg från det tidigare systemet helt och hållet. Gruppen beslutade också tillsammans med kunden att det borde vara lättare att registrera mer detaljerade objekt. Gruppen gick då tillbaka till algoritmen för att placera rätt och sedan registrera. Denna nya registrering placerades i ett helt nytt program, 3DCopy. Gruppen började då bygga ett CLI och integrera meshning och registrering i det programmet. Istället för att som tidigare bygga allt som enskilda ROS-noder.
\section{Iteration 3}
Iteration 3 omfattade fyra veckor efter iteration 2. Den första veckan arbetade gruppen med att färdigställa de individuella delarna av kandidatrapporten inför inlämning. En del arbete genomfördes också på den gemensamma rapporten som också skulle lämnas in. Rapporten lämnades sedan in i slutet av första veckan. Sedan under den andra veckan arbetade gruppen på den gemensamma delen av rapporten. En del komplettering av de individuella delarna gjordes också då gruppen fick feedback på första veckans inlämning redan i början av andra veckan i iteration 3.
Resterande två veckor arbetades det med att bryta ut registrering och meshning från ROS-systemet och integrera det med det nya programmet 3DCopy. Därefter färdigställdes 3DCopy med kommandoradsgränssnitt och grafiskt användargränssnitt. Det skrevs också mjukvara för att kunna ta fram och filtrera punktmoln från TreeDs system. Parallellt med detta genomfördes opponering samt förberedelser för redovisning av erfarenheter och slutp\-resentation.
\section{Metod för att fånga erfarenheter}
Erfarenheter fångades upp under projektets gång med hjälp av kontinuerlig utvärdering och diskussioner under gruppens gemensamma möten. Dessa möten skedde två gånger i veckan, varje måndag och torsdag. På måndagar deltog även handledaren och då låg fokus på en statusuppdatering och vad som skulle göras i veckan. Under statusuppdateringen diskuterades vad som gått bra, vad som gått dåligt och hur gruppen skulle kunna förbättra saker och ting. Under torsdagsmöten lades fokus på diskussion kring viktiga frågor som hela gruppen behövde vara del av. Erfarenheterna som kommit upp på dessa möten, framförallt måndagsmötena sammanfattades av teamledaren i varje veckas statusrapport.
Erfarenheter har också delats av gruppen under arbetets gång. Då gruppen arbetat större delen av tiden i samma rum har det skett mycket diskussion i gruppen kring olika problem öppet i rummet. Slutligen har gruppmedlemmarna under projektets gång samlat de erfarenheter som de fått i den här rapporten. Därmed så har erfarenheter samlats in kontinuerligt under genomförandet av projektet.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% method.tex ends here