Practicum TU Delft Introductie Computer Gebruik ICG Introductie Robotica Practicum TU Delft Introductie Computer Gebruik ICG
Introductie Java Programmeertaal Eclipse Ontwikkel Omgeving muVium Embedded Java joBot Java Omnidirectional roBot Simulator Testen robot software op PC UVM demo joBot demo programma Opdracht Zelf joBot software maken
Java Populaire Programmeertaal Gebruikt virtuele machine (JVM) Gratis Automatische geheugen allocatie Voorkomt veel problemen Gebruikt virtuele machine (JVM) Genereert Java byte code Machine onafhankelijk Compact Langzaam Compilers JIT compilers Versnelt uitvoering
Eclipse Ontwikkel omgeving Verschillende talen – Java Gratis Open Source van IBM Verschillende talen – Java Zeer veel faciliteiten Automatische compiler Unit testing en debugging Veel plug-ins
Opstarten Eclipse Click icon in H:ICG directory File | New Project Java Project JobotSim Finish
Eclipse Geïntegreerde Editor en Browser Simulatie programma Demo programma
Java Eclipse muVium Embedded Java joBot Simulator UVM demo Opdracht
muVium Micro Controllers Online compiler 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
muVium Wordt gebruikt op JPB bordje Testen in software emulator Online compilatie via seriële poort Geen extra ontwikkel tools nodig
joBot Java based omnidirectional roBot Autonome robot Omnidirectionele wielen IR afstandssensoren
Jobot opbouw Aansluiting servo’s Aansluiting sensoren Power aansluiting Aan/uit schakelaar RS232 aansluiting DIP switch Reset schakelaar
Wielen en motoren Omnidirectionele wielen Kunnen zijdelings draaien Aangepaste servomotor Regelen snelheid en draairichting +100 is maximaal vooruit -100 is maximaal achteruit
Karakteristiek Sensoren Meten afstand tussen 10 en 80 cm Waarden beneden 10 cm zijn niet bruikbaar Blijf altijd 10 cm van object vandaan
Batterijen 9 volt batterij voor processor Verwisselen midden onderkant 2 houders met 1.2v batterijen Verwisselen aan zijkant Moet schroeven-draaier gebruiken
Java Eclipse muVium joBot Simulator Testen robot software op PC UVM demo Opdracht
Starten Simulator Alleen de eerste keer nodig Daarna is run button voldoende
Simulator Commands New Object Output
Verschillende Opties Soccer Field Doolhof Wordt gebruikt voor RoboCup Jr Verschillende afmetingen Doolhof Voor wat ingewikkelder robots
Agent Demo’s Agent draait alleen in simulator MazePathFollower Heeft kennis over het doolhof nodig Balls and Followers Complexe interactie tussen meerdere robots
UVMdemo UVM agents draaien in simulator en in robot Real-time emulatie van muVium chip en programma Sensor lines
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
Manipulatie Simulatie van JPB bordje LEDs worden aan en uit gezet Waardes van sensoren en motoren Intikken van commando’s Zetten van DIP switches
Drive en VectorDrive Drive stuurt 3 motoren aan VectorDrive gebruikt vector en rotatie Vector x y Ω S2 S1 S0 x y v
States State Transition Diagram Find Ball Move to Ball Kick Ball Move to Goal State Transition Diagram Geeft aan hoe states in elkaar overgaan
Java Eclipse muVium joBot Simulator UVM demo joBot demo programma Opdracht
UVMdemo Bestaat uit een aantal Agent modules Main module is UVMdemo Heeft lijst met alle states Heeft ook ‘macro’ met servo commando’s
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
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
Behavior Class Behavior wordt door alle behaviors gebruikt Ieder behavior MOET doBehavior implementeren De rest wordt door Behavior class gedaan
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
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
BaseController Wordt via jobot.method aangeroepen in alle behaviors Bevat de basisfuncties
FleeBehavior Implementeert vluchtgedrag Kijkt maar naar 1 sensor tegelijk Dit kan veel beter Oefening is maak CURIOUS
UVMdemo Test verschillende behaviors Probeer verschillende commando’s Kan via commando: Start x Kan via DIP switches Probeer verschillende commando’s Zorg dat robot stilstaat als je commando’s gebruikt Stop
UVMdemo Compileren en programmeren van chip: Reset Hard Program Run
Java Eclipse muVium joBot Simulator UVM demo Opdracht Zelf joBot software maken
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
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
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
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
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
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
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
Verslag Namen van team Testen Opdracht 1 Opdracht 2 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
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