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