Introductie Robotica Practicum TU Delft Introductie Computer Gebruik ICG 1 Introductie • • • • • • • Java Programmeertaal Eclipse Ontwikkel Omgeving muViumEmbedded Java joBot Java Omnidirectional roBot Simulator Testen robot software op PC UVM demo joBot demo programma Opdracht Zelf joBot software maken 2 Java • Populaire Programmeertaal – Gratis – Automatische geheugen allocatie • Voorkomt veel problemen • Gebruikt virtuele machine (JVM) – – – – Genereert Java byte code Machine onafhankelijk Compact Langzaam • Compilers – JIT compilers – Versnelt uitvoering 3 Eclipse • Ontwikkel omgeving – Gratis – Open Source van IBM • Verschillende talen – Java • Zeer veel faciliteiten – Automatische compiler – Unit testing en debugging – Veel plug-ins 4 Opstarten Eclipse • Click icon in H:ICG directory • File | New Project • Java Project • JobotSim • Finish 5 Eclipse • Geïntegreerde Editor en Browser • Simulatie programma • Demo programma 6 • • • • • • • Java Eclipse muVium Embedded Java joBot Simulator UVM demo Opdracht 7 muVium • Micro Controllers – Micro Virtual Machine – Standaard PIC processor 4K – 20 Mhz – muVium bootloader en Java kernel – PIC emulator • Online compiler – JIT Compiler vertaalt byte code naar machinetaal 8 muVium • Wordt gebruikt op JPB bordje • Testen in software emulator • Online compilatie via seriële poort • Geen extra ontwikkel tools nodig 9 joBot • Java based omnidirectional roBot • Autonome robot • Omnidirectionele wielen • IR afstandssensoren 10 Jobot opbouw • Aansluiting servo’s • Aansluiting sensoren • Power aansluiting • Aan/uit schakelaar • RS232 aansluiting • DIP switch • Reset schakelaar 11 Wielen en motoren • • • • Omnidirectionele wielen Kunnen zijdelings draaien Aangepaste servomotor Regelen snelheid en draairichting – +100 is maximaal vooruit – -100 is maximaal achteruit 12 Karakteristiek Sensoren • Meten afstand tussen 10 en 80 cm • Waarden beneden 10 cm zijn niet bruikbaar • Blijf altijd 10 cm van object vandaan 13 Batterijen • 9 volt batterij voor processor – Verwisselen midden onderkant • 2 houders met 1.2v batterijen – Verwisselen aan zijkant – Moet schroevendraaier gebruiken 14 • • • • • • • Java Eclipse muVium joBot Simulator Testen robot software op PC UVM demo Opdracht 15 Starten Simulator • Alleen de eerste keer nodig • Daarna is run button voldoende 16 Simulator • Commands • New Object • Output 17 Verschillende Opties • Soccer Field – Wordt gebruikt voor RoboCup Jr – Verschillende afmetingen • Doolhof – Voor wat ingewikkelder robots 18 Agent Demo’s • Agent draait alleen in simulator • MazePathFollower – Heeft kennis over het doolhof nodig • Balls and Followers – Complexe interactie tussen meerdere robots 19 UVMdemo • UVM agents draaien in simulator en in robot • Real-time emulatie van muVium chip en programma • Sensor lines 20 Manipulatie • Maak een BAL object • Beweeg met muis over het scherm • Beweeg joBot met muis over het scherm • Ctrl toets samen met muis roteert joBot 21 Manipulatie • Simulatie van JPB bordje – LEDs worden aan en uit gezet – Waardes van sensoren en motoren – Intikken van commando’s – Zetten van DIP switches 22 Drive en VectorDrive • Drive stuurt 3 motoren aan v y – Drive 0 1 2 • VectorDrive gebruikt vector en rotatie S0 x S1 S2 – Vector x y Ω 23 States • State Transition Diagram • Geeft aan hoe states in elkaar overgaan Find Ball Move to Ball Kick Ball Move to Goal 24 • • • • • • • Java Eclipse muVium joBot Simulator UVM demo Opdracht joBot demo programma 25 UVMdemo • Bestaat uit een aantal Agent modules • Main module is UVMdemo • Heeft lijst met alle states • Heeft ook ‘macro’ met servo commando’s 26 States en behaviors • State is de situatie waarin de robot verkeert: – Zoekt de bal – Dribbelt naar het doel • Behavior is de actie die momenteel wordt uitgevoerd – Rijdt vooruit – Volgt een muur • In UVMdemo is state en behavior hetzelfde 27 Behaviors • • • • • • • • • • 0 = STATE_IDLE 1 = STATE_CALIBRATE 2 = STATE_TEST 5 = STATE_FLEE 6 = STATE_GYRATE_VECTOR 7 = STATE_GYRATE_DRIVE 8 = STATE_WALL_HUG 9 = STATE_YOYO_NORTH_SOUTH 10 = STATE_YOYO_EAST_WEST 12 = STATE_LAMP_TEST 28 Behavior • Class Behavior wordt door alle behaviors gebruikt • Ieder behavior MOET doBehavior implementeren • De rest wordt door Behavior class gedaan 29 Timers en Ticks • Timer genereert een Tick • Ieder behavior kijgt clock Tick en reageert hierop in doBehavior • Iedere tick genereert heartbeat – Laat rode LED knipperen – Geeft aan dat processor nog loopt 30 BaseController • BaseController wordt gemaakt bij opstarten • Bevat alle routines die behaviors nodig kunnen hebben – Drive 0 0 0 – Vector 100 0 0 – SetStatueLeds Red Yel Grn 31 BaseController • Wordt via jobot.method aangeroepen in alle behaviors • Bevat de basisfuncties 32 FleeBehavior • Implementeert vluchtgedrag • Kijkt maar naar 1 sensor tegelijk • Dit kan veel beter • Oefening is maak CURIOUS 33 UVMdemo • Test verschillende behaviors – Kan via commando: • Start x – Kan via DIP switches • Probeer verschillende commando’s • Zorg dat robot stilstaat als je commando’s gebruikt – Stop 34 UVMdemo • Compileren en programmeren van chip: – Reset Hard – Program – Run 35 • • • • • • • Java Eclipse muVium joBot Simulator UVM demo Opdracht Zelf joBot software maken 36 Opdracht • • • • • • • • Start machine en Eclipse Test Simulator en UVMdemo Test joBot functies Bestudeer FLEE behavior Maak nieuwe CURIOUS behavior Test in simulator Programmeer joBot Test met joBot 37 Opdracht • • • • Start machine Op drive C: directory ICG Batch file CE Copieer Eclipse, muVium en Simulator naar H: • Start Eclipse vanuit H: • Eerste keer vraag om workspace: – H:\ICG\workspaces 38 Opstarten UVMdemo • Laad UVMdemo als volgt: – File | New Project | Java Project | JobotSim • In dit project is JavaBot de class waarin het programma staat • JobotSim is de simulator. Die start je op door de class Simulator te selecteren en kies dan: – Run as.. | Java Application • Backup bevat een copie van JavaBot, die je kunt gebruiken als je iets verandert hebt en je JavaBot wilt herstellen 39 Testen • Probeer de verschillende behaviors in de simulator • Kijk in de code welk behavior en hoe dit wordt geprogrammeerd • Kijk met name naar FLEE • Probeer behaviors ook op robotje • Gebruik de DIP switches 40 Opdracht • Pas FLEE behavior aan en realiseer CURIOUS • Robotje moet nu object volgen • Kom niet te dichtbij maar houd afstand • Probeer later meerdere sensoren tegelijk te gebruiken • Bepaal hoe je met meerdere sensoren omgaat 41 Opdracht • Als alles goed gaat in de simulator, programmeer dan je robotje • Kijk of het robotje doet wat je van plan was • Laat aan je begeleider zien • Leg in je verslag vast, wat je gedaan hebt en wat je hebt ontdekt 42 Tweede Opdracht • Alleen als er tijd over is • Keuze uit lijstje in documentatie – Nieuw behavior – Verbetering bestaande demo • Maak eerst in simulator • Daarna in robotje • Leg in je verslag vast wat je hebt gedaan 43 Verslag • Namen van team • Testen – Hoe heb je simulator en robot getest – Wat voor verschillen heb je ontdekt – Eventuele problemen • Opdracht 1 – Wat voor verschil tussen simulator en robot – Beschrijf hoe curious is gerealiseerd • Opdracht 2 – Als gedaan beschrijf wat en hoe 44 Voordat je naar huis gaat • Als UVMdemo is veranderd, met uitzondering van Curious: – Copieer je eigen project naar UVMdemo1 – Herstel UVMdemo vanuit de Backup class – Programmeer het robotje • Zorg dat de batterijen in de laders worden gedaan 45