Introductie Robotica

advertisement
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
Download