De context

advertisement
Proftaak - Automatisch Geleid Voertuig – ATM-TI periode 2 – NOV2013
05-11-2013 versie 1.1
J.Talboom
Bladzijde 1 van 4
Proftaak - Automatisch Geleid Voertuig – ATM-TI periode 2 – NOV2013
In dit document vindt je alle informatie over de proftaak ‘Automatisch Geleid Voertuig’. In de vorige
periode heb je leren programmeren met de programmeertaal Java in een Windows omgeving. In deze
periode ga je Java toepassen in een embedded software toepassing.
De context
Het bedrijf RoboWorks ontwerpt toepassingen voor robots die gebruikt worden bij productieprocessen,
zoals het inpakken van dozen, het plukken van champignons, het puiten van lak. Ze willen zich nu ook
gaan toeleggen op mobiele robots, die ingezet kunnen worden in situaties waar het voor de mens te
gevaarlijk is, zoals bij brand in een huis en het onschadelijk maken van een bom.
RoboWorks wil robots ontwikkelen die op afstand kunnen worden bestuurd: ´Automatisch Geleide
Voertuigen´ (zie ook bij Wikipedia).
De projectgroep zal een eerste versie moeten ontwikkelen van een robot die een vooraf ingestelde
route kan volgen die op afstand wordt ingevoerd.
De opdracht
De opdracht is een besturing voor een robot te ontwerpen, die de robot aanstuurt vanuit een PC via
een bluetooth-verbinding met de rijdende robot. De betreffende robot is van het type: Boe-bot, die
een in Java programmeerbare processor heeft.
De route die de robot dient te volgen is daarbij vastgelegd op de PC; bijvoorbeeld in termen als ‘ga bij
de eerst mogelijke gelegenheid links’, of ‘ga rechtdoor totdat je niet verder kan’.
In deze eerste versie zal de robot vaststellen of hij de route volgt door detectie van een zwarte streep
op de grond (‘line-following’). Bij elke kruispunt of vertakking van deze zwarte strepen moet er een
commando van de PC gevolgd worden.
Omdat er nog niet veel ervaring is met rijdende robotsystemen is het de bedoeling dat in een aantal
korte iteraties telkens een deel van het systeem wordt opgeleverd, zoals besturing van de motoren
van de robot, een robot die kan rondrijden en obstakels ontwijkt, met een voelspriet en later door
infraroodlicht uit te zenden en de reflectie te meten, een robot die bestuurd kan worden met een
standaard afstandsbediening van een TV (dit is ook een infrarood signaal), een robot die bestuurd kan
worden met infraroodlicht, vanuit de PC, en, uiteindelijk, een robot die een route kan worden die
vooraf is vastgelegd in de PC.
Het bedrijf RoboWorks (de klant) heeft in zogenaamde user stories de functionaliteit (requirements)
beschreven. De user stories zijn globaal beschreven. In de wekelijkse bijeenkomsten is ruimte om
hierover met de klant te discussiëren. (in te gaan op vragen van de ontwikkelaars)
Navigeren met voelsprieten
We willen de robot laten rondrijden waarbij hij obstakels ontwijkt door deze te meten met twee
voel-sprieten aan de voorkant van de robot
Navigeren met infrarood licht (1)
We willen de robot laten rondrijden waarbij hij obstakels ontwijkt door deze te meten met infrarood
licht (IR-zender en IR-ontvanger) aan de voorkant van de robot.
Navigeren met infrarood licht (2)
We willen de robot laten rondrijden op een tafel zó dat de robot niet van de tafel valt door de rand te
meten met infrarood licht (IR-zender en IR-ontvanger) aan de voorkant van de robot..
We denken daarbij aan een testsituatie in de vorm van een (grote) witte plank met een dikke
zwarte rand; wit is de tafel, zwart (zwarte rand) is de simulatie van geen tafel.
05-11-2013 versie 1.1
J.Talboom
Bladzijde 2 van 4
Proftaak - Automatisch Geleid Voertuig – ATM-TI periode 2 – NOV2013
Besturing met een standaard IR-afstandsbediening
We gebruiken een infraroodafstandsbediening om de robot te besturen in acht richt-ingen:
vooruit (0°), afteruit (180°), links (-90°), rechts (+90°), linksvoor (-45°), linksachter (-135°), rechtsvoor
(+45°), rechtsachter (+135°)
Besturing vanuit een PC via een verbinding met bluetooth.
Een robot die een route kan volgen. We laten een robot rijden die met ‘lijnvolgers’ een zwarte lijn
volgt. Bij beslispunten (kruispunten van zwarte lijnen) volgt de robot de route dievooraf is vastgelegd
in een PC.
Werkwijze
De projectgroep werkt in opdracht van een klant onder leiding van een senior embedded software
engineer. Het gewenste eindresultaat ligt slechts globaal vast (en voornamelijk bij de senior software
engineer en de klant). Wekelijks is er een bijeenkomst waarbij de voortgang wordt besproken. Bij deze
bijeenkomst zijn de project groepen, de klant en de senior software engineer aanwezig.
Deze werkwijze is een onderdeel van Extreme Programming (XP), één van de bekendste methode
voor ‘agile’ software ontwikkeling.
Uit Wikipedia:
De optimale kracht van XP komt voort uit het in samenhang toepassen van twaalf best practices,
doordat deze elkaar versterken. Elke andere softwareontwikkel-methode zal ook voordeel hebben
bij het toepassen van één of meerdere genoemde best practices.
 XP is gebaseerd op de volgende twaalf best practices: 
 gebruik een zo simpel mogelijk ontwerp dat werkt; 
 schrijf eerst de testcode ('unit test') voordat je functionaliteit codeert; 
 continue herstructurering ('refactoring') van de programmacode; 
 continue integratie van alle programmacode; 
 iedere ontwikkelaar heeft gelijke rechten over alle programmacode; 
 iedere ontwikkelaar gebruikt dezelfde codeerstandaard; 
 programmeurs werken in paren ('pair programming'); 
 de klant is onderdeel van het ontwikkelteam en moet dus continu voor vragen
beschikbaar zijn; 

 de software wordt in een vaste regelmaat in releases van beperkte omvang aan de
klant opgeleverd voor beoordeling; 
 ontwikkelaars plannen aan de hand van kleine brokjes functionaliteit ('user stories'); 
 alle teamleden (ontwikkelaars en de klant) delen een gemeenschappelijk beeld van het
systeem ('metafoor'); 

 overwerken is een uitzondering. 
Planning en opleveringen
Elke dinsdag is er een opstart bijeenkomst. In deze bijeenkomst worden de werkzaamheden van de
week besproken. Tijdens deze bijeenkomsten is er uitdrukkelijk gelegenheid om met de klant te
discussiëren en/of functionaliteit te demonstreren. Voor deze bijeenkomst ziet de weekplanning er
globaal als volgt uit.
05-11-2013 versie 1.1
J.Talboom
Bladzijde 3 van 4
Proftaak - Automatisch Geleid Voertuig – ATM-TI periode 2 – NOV2013
Lesweek Actor
Wat
1
Uiteenzetting proftaak.
PvA Document
Kennis maken met de spelers
in deze proftaak.
Toelichting PvA document
Toelichting deelontwikkeling Technisch
document
document
2
Klant
Senior Software
Engineer
3
Paul Lindelauf
4
Projectgroep +
klant
5
Klant
6
7
Projectgroepen +
klant
Projectgroepen +
klant
8
9
Oplevering
10
Herkansing
Iets inleveren?
College eXtreme
Programming
Demonstratie aandrijving,
voelsprieten en infrarood
Toelichting Definitief
Technisch ontwerp
Ontwerp. Klant maakt
document
uiteindelijke wensen bekend.
(Demonstratie: Besturing met
een standaard IRafstandsbediening volgens
project plan.)
Terugkoppeling naar klant.
Vragen aan de klant
Tussenoplevering naar de
klant. Wedstrijd ‘snelste
lijnvolger’
Definitief Ontwerp
Document
Projectgroep presenteert
ontwerp en demonstreert
AGV
Uiterste
inleverdatum
Vrijdag 17.00 uur
MP 1.0
Vrijdag 17.00 uur
MP 2.1
Draft versie van
‘Definitief Ontwerp
Document’
MP 2.2
Vrijdag 17 uur
MP 3.0
(MP 4.0)
Plan van aanpak is een document (volgens Grit) en bevat met onder andere de planning, de
taakverdeling van de groepsleden, de manier van werken en de beoogde functionaliteit van
de applicatie. Een template voor dit document staat op Blackboard
Deelontwikkeling document bevat de beschrijving van de besturing met de voelsprieten en
de infrarood afstandssensoren bevat. Dit document bevat een exacte beschrijving van de
functionaliteit. Ook bevat dit document een gespecificeerd testplan. De beschrijving dient te
worden ondersteund met een ontwerp in UML.
Definitief Ontwerp Document is het derde document en beschrijft in detail het ontwerp voor
het eindproduct evenals een planning met de alle activiteiten die nog gedaan moeten worden.
Natuurlijk gebruiken we hier ook UML. Bij het ontwerp hoort natuurlijk ook een testplan.
In lesweek 9 vindt de oplevering van het eindproduct op. Deze oplevering bevat tenminste:
 Eerder gemaakte documenten MP1.x, MP2.x en MP3.x 
 Correct werkende Java applicatie 
 Rapportage met uitleg oever het ontwerp en de algehele opzet van het programma. 
 Demonstratie van de AGV applicatie. 
05-11-2013 versie 1.1
J.Talboom
Bladzijde 4 van 4
Download