450 likes | 702 Views
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
E N D
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 • 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 • 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 • 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 • 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
S0 v y x S1 S2 Drive en VectorDrive • Drive stuurt 3 motoren aan • Drive 0 1 2 • VectorDrive gebruikt vector en rotatie • Vector x y Ω
Move to Ball Kick Ball Move to Goal Find Ball States • 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 • 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 • 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