FUNCTIONEEL ONTWERP PROJECT 2 Reuben Domacasse HOGESCHOOL ROTTERDAM
Functioneel Ontwerp Groepsnaam NavDrive Projectleider(s) Alex de Ridder (0937558) Cihan Bulgur (0894464) Reuben Domacasse (0918901) Klas TI1D Project Project 2 (Activity Bot Project) Projectcode TINPRK01-2 Startdatum 14-11-2016 Einddatum 03-02-2017 Naam opdrachtgevers G. van Kruining P. Mazereeuw R. Tonissen G. Maas Naam organisatie Hogeschool Rotterdam Locatie Wijnhaven 99/103 (Rotterdam) Versienummer 0.3 Pre Alpha
Inhoudsopgave Samenvatting... 2 Woordenlijst... 3 Inleiding... 4 Probleemstelling... 5 Vraagstelling... 5 Wensen en Behoeften... 6 Robot specificaties... 6 Doolhof specificaties... 6 Challenge specificaties... 6 Website specificaties... 7 Oplossingen... 8 Workshops... 8 Projectgroepen... 8 Componenten... 9 Sensoren... 9 Lasersensoren... 9 Infraroodsensoren... 9 Kleursensoren... 10 Ultrasone sensoren... 10 Besluitvorming(Algoritmes)... 11 Muur volgen Algoritme... 11 Pledge Algoritme... 11 Trémaux s Algoritme... 11 Voeding... 11 Ontwerp... 12 Platform... 12 Wielen... 12 Pagina 1
Samenvatting In dit document worden alle functionaliteiten omschreven die onze robot gaan helpen om door een doolhof heen te navigeren. Hierbij wordt gekeken naar sensoren voor het detecteren van het snelste pad naar de gewenste bestemming. Om er voor te zorgen dat de robot zelfstandig door een doolhof heen kan navigeren hebben we ook gekeken naar algoritmes die de robot ondersteunen bij het maken van de juiste keuzes. Ook wordt er nagedacht over de vormgeving en het uiterlijk van de robot om het voor de klant zo compact en duurzaam mogelijk te gerealiseerd. Verder zal er een omschrijving zijn per component met daarbij de reden waarom wij gekozen hebben voor deze componenten. Pagina 2
Woordenlijst Hieronder een lijstje van de definities van de belangrijkste begrippen. Informatiesysteem Een stelsel van gegevens, informatiesysteemfuncties en eventueel systeem gebonden technische structuur. Het doel ervan is: het verzamelen, vastleggen, verwerken, bewaren, transporteren en verstrekken van gegevens ten behoeve van het nemen van beslissingen (door mensen, programma's of apparatuur) op een afgebakend toepassingsgebied of ten behoeve van een bepaald bedrijfsdoel. Systeemontwikkeling Het proces waardoor een Informatiesysteem tot stand komt. Vaak is dit proces opgedeeld in een aantal fasen. Klant Requirement Functioneel ontwerp Technisch ontwerp Een persoon of groep personen die de eisen en wensen over het informatiesysteem specificeert. Een eis of wens van de klant over het te bouwen systeem. Er is onderscheid tussen functionele en non-functionele requirements. Een functionele requirement is een eis of wens over de functionaliteit van het systeem. Een non-functionele requirement is een eis of wens over de randvoorwaarden waarmee het systeem om moet gaan. Een beschrijving van gegevens in een informatiesysteem, gedrag van een informatiesysteem en de manier waarop gebruikers kunnen interacteren met een informatiesysteem. Deze beschrijving is zodanig dat klantmedewerkers kunnen controleren wat de klant krijgt en dat ontwikkelaars het informatiesysteem kunnen implementeren. Een beschrijving van de technische ontwerpkeuzes en de wijze waarop de functionaliteit uit het functioneel ontwerp is geïmplementeerd in de code. Een functioneel ontwerp kan technisch op meerdere manieren worden geïmplementeerd. Een technisch ontwerp is een verantwoording en een beschrijving van die keuzes. Pagina 3
Inleiding TAXIDIENST UBER TEST IN HET AMERIKAANSE PITTSBURGH EEN ZELFRIJDENDE AUTO DIE TEGELIJKERTIJD KAARTINFORMATIE VERZAMELT. VOOR DE TEST GEBRUIKT UBER EEN HYBRIDE FORD FUSION, ALDUS EEN AANKONDIGING. DE CAMERA'S BOVENOP HOUDEN DE WEG IN DE GATEN EN LEGGEN DE OMGEVING VAST. ER ZAL ALTIJD EEN CHAUFFEUR ACHTER HET STUUR ZITTEN IN DE AUTO, OOK ALS DEZE ZELFSTANDIG RIJDT. DEZE AUTOMOBILIST HOUDT DE AUTO IN DE GATEN EN GRIJPT IN TIJDENS NOODSITUATIES. NAAST CAMERA'S HEEFT DE AUTO OOK RADARS EN LASERSCANNERS, WAARMEE HET VOERTUIG DIEPTE KAN ZIEN. DOOR ALLE METINGEN TE COMBINEREN WEET DE AUTO WAT ER OM HEM HEEN RIJDT EN HOE HIJ KAN RIJDEN. VOLGENS UBER BEVINDT DE AUTONOME AUTO ZICH IN EEN VROEGE TESTFASE. OP HET MOMENT ZOU ER OOK SLECHTS ÉÉN PROTOTYPE IN PITTSBURGH RONDRIJDEN. MET DE TESTS WIL UBER VERZEKEREN DAT VOETGANGERS, FIETSERS EN ANDERE AUTOMOBILISTEN NIET IN GEVAAR ZIJN MET EEN ZELFRIJVOERTUIG OP DE WEG. Bron: Nu.nl 19 mei 2016 Het bovenstaande krantenartikel is slechts één van de vele artikelen die zijn te vinden op internet over zelfrijdende auto s. Zelfrijdende auto s zijn de toekomst. Zo verwacht Ford dat in 2020 de eerste zelfrijdende auto op de weg rijdt en Audi beweert zelfs dat de Audi A8 in 2017 al volledig zelfrijdend de weg op kan. In project 2 gaan de groepsleden kennismaken met de zelfrijdende auto door een robot te maken die zelfstandig door een doolhof kan rijden. Zoals te lezen is in het krantenartikel moet er bij het maken van een zelfrijdende auto met veel dingen rekening worden gehouden om ervoor te zorgen dat deze auto wel veilig is voor de omgeving. Zo gaan groepsleden in project 2 opzoek naar welke sensoren er zijn om de omgeving van de robot goed te detecteren en schade te voorkomen. Pagina 4
Probleemstelling Uit onderzoek is gebleken dat er steeds meer mensen hun boodschappen bestellen via het internet. Deze bestellingen worden dan vervolgens bezorgd, maar in de grote binnenstad van Amsterdam zijn veel kleine straatjes die voor de bezorgers moeilijk te bereiken zijn. De supermarktketens hebben daarom gevraagd aan het project teamleiders van de Hogeschool Amsterdam, om een efficiënter en een snel bezorgsysteem te ontwerpen. Ook willen de supermarktketens graag bezuinigen op de chauffeurs door ze te vervangen voor zelfrijdende auto s. Dus de zelfrijdende auto s moeten het bezorgsysteem moet kunnen ondersteunen. Maar voordat de supermarktketens het project grootschalig willen aanpakken zouden ze graag binnen 10 weken een kleinschalig voorbeeld(concept) willen zien met als idee om het een wedstrijd te maken met als beloning voor de snelste en duurzaamste oplossing een taart naar keuze. Vraagstelling De opdracht gegeven door de bezorgafdeling van de hoofdorganisatie van de supermarktketens in Amsterdam luid als volgt: Ontwerp een model van een automatisch bestuurd voertuig dat zijn weg door een doolhof(stad) autom atisch vindt zonder daarbij ongelukken te veroorzaken. Zo mag het voertuig de kostbare gevels van de stad niet beschadigen en let ook op de mogelijkheid dat er bestellingen zijn bij grachten om het voertuigen te behouden niet in de gracht te belanden. De Hogeschool Rotterdam is hiervoor de aangewezen contactpersoon(tussenpersoon) voor dit project. Deze heeft de rol om het product te ontvangen en te testen voor de wedstijd. Pagina 5
Wensen en Behoeften De zelfrijdende robot moet aan de volgende eisen voldoen: Robot specificaties Moet in staat zijn een nog nader te bepalen doolhof zelfstandig te doorlopen Moet gemaakt zijn met Marcolax of Fischer Technik. De robot moet in staat zijn op de plaats te keren. Een afstandsbediening is niet toegestaan. Moet minimaal 5 losse standaard (4 x 2) legoblokjes kunnen vervoeren. Doolhof specificaties Totale oppervlakte maximaal 6,25m2. Minimale gangbreedte: 20 cm. Minimale muurhoogte: 10 cm. Materiaal van de vloer en de muren: hout (MDF en multiplex) glas spiegelend materiaal De kleur van de muur is nergens zwart. Muren hebben alleen rechte hoeken. Gangen kunnen een niveauverschil bevatten. Muren kunnen ook negatief zijn. Bijvoorbeeld een kanaal. Het begin en eindpunt van het doolhof worden door rode cirkels aangegeven. Challenge specificaties Er mogen geen wijzigingen of toevoegingen gedaan worden aan het doolhof. Er is maximaal 15 minuten beschikbaar voor het team om de robot binnen 5 minuten het doolhof te laten doorlopen. Tijdens de 15 minuten mogen aanpassingen gedaan worden aan de robot, mits conform offerte. Mag maximaal 3 keer handmatig worden bijgestuurd tijdens een poging. De start van een poging wordt door de projectleiding aangegeven en geklokt. Bijsturing mag door de robot recht te zetten of te draaien. De lading mag niet uit de robot vallen tijdens de rit. Bij de start moet de robot op een van de rode cirkels worden geplaatst. Pagina 6
Website specificaties De volgende documenten moeten op de website terug te vinden zijn: Samenwerkingscontract Voortgangsrapportage met daarin: Realisatie (Terugblik afgelopen planning) Planning Urenverantwoording Aantekeningen + samenvatting workshop (indien van toepassing) Onvoorziene omstandigheden Peerfeedback Risk Log Zelfevaluaties op de 2 te toetsen Onderzoeksverslag Offerte Ontwerpen Testplan Testrapport Programmeer code Link naar GitHub repository Pagina 7
Oplossingen Workshops Tijdens dit project worden er (bijna) elke week 2 soorten workshops aangeboden (zie hiervoor het weekschema). De mini workshops duren 15 min en hebben betrekking op de ontwikkelmethodiek waterval. Hierbij moet de gehele klas aanwezig zijn. Naast de miniworkshops zijn er ook nog gewone workshops van 100 min. Deze workshops worden door een van de project docenten of een andere docent gegeven aan een deel van de groepsleden. Van elke projectgroep zal en mag één groepslid naar de workshop gaan. Iedere groepslid is verplicht tenminste 1 workshop bij te wonen. Om ervoor te zorgen dat ook de andere groepsleden over de benodigde kennis bezitten, zal de afgevaardigde groepslid aantekeningen moeten maken van de workshop en vervolgens de informatie overdragen aan zijn/haar groepsleden. Tevens schrijft de afgevaardigde groepslid een samenvatting van de workshop voor de website. De groepsleden die niet aanwezig zijn bij de workshop werken tijdens de workshops aan het project. Projectgroepen De projectgroepen worden gevormd uit 3 leden uit je eigen klas waarmee je nog niet eerder mee hebt gewerkt. Omdat we nu onder projectmanagement werken heeft elk groepje een projectleider. De projectleider is verantwoordelijk voor onder andere de volgende punten: Externe contacten Welzijn van de projectleden Overzicht over project Maken/naleven van de planning Maken van de voortgangsrapportage Up-to-date zijn van het team Behalen van deadlines Aansturen van het team Na 3 weken wordt een andere groepslid de projectleider zodat aan het einde van het project iedere groepslid tenminste 3 weken projectleider is geweest. Neem dit mee in de planning van de groep en publiceer op de website. Pagina 8
Componenten Sensoren Om door het doolhof te kunnen navigeren, heeft de robot sensoren nodig. Deze gebruikt hij om zijn omgeving te kunnen waarnemen en met deze informatie besluiten wat de volgende stap is. In dit hoofdstuk worden alle sensoren besproken die eventueel van toepassing kunnen zijn voor het navigeren door het doolhof. Hieronder zijn er een aantal sensoren die gebruikt kunnen worden om de omgeving van de robot te kunnen detecteren: Lasersensoren Voor het gebruik van lasersensoren hebben we 2 varianten: De eerste sensor werkt doormiddel van lichtpulsen te sturen naar een voorwerp om de afstand uit te rekenen en kan zo ook het tijdsverschil meten tussen het uitzenden en het opvangen van de verzonden lichtpuls. De tweede worden er gebruikt gemaakt van twee lasers van verschillende golflengtes naar een voorwerp verzonden en ook hierbij wordt het tijdsverschil berekent. Beide lasersensoren zijn niet tot op de millimeter nauwkeurig maar zijn gemaakt voor langere afstanden. Deze lasersensoren werken het best op reflecterende oppervlaktes, maar hierbij moet er wel rekening worden gehouden dat het licht niet wordt geabsorbeerd anders is het gebruik van deze lasersensoren overbodig. Infraroodsensoren Bij het gebruik van Infraroodsensoren wordt het zelfde gedaan al bij een lasersensor. Maar bij Infraroodsensoren wordt er gebruik gemaakt van een verzender en een ontvanger. De verzender stuur een onzichtbaar lichtsignaal uit naar het voorliggende onderwerp die het licht weerkaatst naar de ontvanger om zo te meten wat de afstand is tussen de verzender en het voorwerp is. Dit is een veelgebruikte manier om met Infraroodsensoren de afstand te meten. Maar het is ook mogelijk om verschillende soorten lichtgolven uitzenden naar de ontvangen dit bepaal je aan de hand van de grootte van het voorliggende voorwerp. Pagina 9
Kleursensoren Bij het gebruik van kleursensoren wordt er gekeken naar een bepaalde kleur. De kleur kan worden vastgesteld aan de hand van een witte led en een infrarood filter die de kleur in het licht van de led kan blijven herkennen. Ultrasone sensoren Bij het gebruik van ultrasone sensoren wordt bijna het zelfde techniek toegepast als bij de lasersensor hiervoor wordt er doormiddel van geluidsgolven de afstand bepaald door een geluidgolf uit te zenden naar een voorwerp en dan wordt er aan de hand van de snelheid bepaald hoever het voorwerp van de verzender staat. Hierbij is ook het risico bij verschillende objecten moet er worden gekeken of het geluidsgolf goed terug kan worden weerkaatst wat de ultrasone sensoren hebben een nauwkeurigheidslimiet van 15 graden dus in een grotere omgeving is het moeilijk na te meten wat de afstand is. Pagina 10
Besluitvorming(Algoritmes) Om de snel keuzes te kunnen maken tijdens het doorlopen van een doolhof heeft de robot algoritmes nodig om de data te kunnen gebruiken om zo snel mogelijk de juiste weg te kunnen vinden. Hieronder zijn er een aantal algoritmes die gebruikt kunnen worden in een doolhof: Muur volgen Algoritme de meest bekende regel voor het doorkruisen van doolhoven, is ook bekend als ofwel de linker regel of de rechterhand regel. Indien het doolhof is eenvoudig verbonden, dat wil zeggen alle wanden samen of verbonden buitengrens het doolhof, dan door hem een hand in contact met een wand van het doolhof de oplosser wordt gegarandeerd niet verloren te gaan en een andere uitgang te bereiken indien aanwezig; anders zal hij tenminste eenmaal terug naar de ingang elke gang hebben doorlopen daarnaast verbonden gedeelte van de wanden. Pledge Algoritme Pledge algoritme, ontworpen om obstakels te omzeilen, vraagt om een willekeurig gekozen richting te gaan in de richting van. Wanneer een obstakel wordt voldaan, wordt enerzijds (zeg de rechterhand) gehouden langs het obstakel terwijl de gedraaide hoeken worden geteld. Wanneer de solver opnieuw wordt geconfronteerd met de oorspronkelijke richting, en de hoekige som van de bochten gemaakt, is 0, de oplosser verlaat het obstakel en blijft bewegen in haar oorspronkelijke richting. Trémaux s Algoritme Trémaux algoritme, is een efficiënte methode om de weg uit een doolhof die tekenen van lijnen op de vloer nodig heeft om een pad te markeren te vinden, en werkt gegarandeerd voor alle doolhoven die welbepaalde passages hebben. Een pad is ofwel unvisited, eens gemerkt of twee keer gemarkeerd. Iedere keer dat een richting wordt gekozen wordt gekenmerkt door het tekenen van een lijn op de vloer (van knooppunt naar knooppunt). Voeding 1x 9v Batterijdoos 2x AA batterijen Pagina 11
Ontwerp Platform 1x Arduino Uno Breadboard Wielen 8x 2 inch wielen Pagina 12