maandagmorgen 8.45 kick off weekopdrachten(Laplace 1.105 ...kick‐off weekopdrachten ... Eerste 3...
Transcript of maandagmorgen 8.45 kick off weekopdrachten(Laplace 1.105 ...kick‐off weekopdrachten ... Eerste 3...
5XID0 – Nature-inspired control
Marc GeilenSander Stuijk
• maandagmorgen 8.45: kick‐off weekopdrachten (Laplace 1.105)
• donderdagmiddag 15.45: afronding weekopdracht (Laplace 1.105)
Eerste 3 collegeweken:
laatste vijf weken:project, nadere informatie volgt
Voorbereidende lab sessies
• Programmeerbare robotjes• Draadloze communicatie met Zigbee• Sensoren en actuatoren• Augmented reality / 3D• Emergent behaviour• Brein‐computer interface
organisatie
• werken in gemengde teams met gemengde expertise en niveaus.
• zorg dat je individueel leert van de oefeningen!• Twee opdrachten per week, te verdelen binnen het team naar competentie (niet alleen dat doen waar je goed in bent!)
• Tijdbesteding: 5ects, ongeveer 16u/w• Elke donderdag, 15.45 korte presentatie / demonstratiezorg dat je goed voorbereid bent
organisatie
• wekelijks per team kort verslag over ontwerp en realisatie
• en korte *individuele* reflectie van elk teamlid over haar/zijn bijdrage en eigen ontwikkelingen
• uiterlijk vrijdag van de betreffende week opsturen per e‐mail naar:[email protected] en [email protected]
evaluatie
• Verslagen/reflectie voorbereidende projekten, 30%
• Eindverslag en reflectie 70%
Deze week: Admoveo + 3D virtual reality
Sensoren
• Infrarood afstandsensorenvoor, links en rechts
• Lichtsensorentwee lichtsensoren (LDR) aande voorkant links en rechts
• Geluidsensorstwee microfoons
• “Lijnvolger”twee infrarood sensors naast elkaar metenreflectie op de vloer
Actuatoren
• MotorenTwee afzonderlijk in richting en snelheid bestuurbareDC motoren.
• GeluidEen kleine buzzer
• LichtRGB LED in het chassis
• Communicatie 1USB seriële communicatie met een pc
• Communicatie 2Xbee draadloze communicatie over Zigbee netwerk
Programmeren
• Atmel Atmega 328• Arduino duemilanove • Via de Arduino softwareomgeving• Programmeertaal: C(‐achtig)
Draadloze Communicatie
• (nog niet nodig deze week)• Zigbee module XBee
Opdrachten
• installatie• programmeren Admoveo onder de knie krijgen
• testen van sensoren en actuatoren• oefening• demonstratie / wedstrijdje
installatie
• volg de installatiehandleidingop www.es.ele.tue.nl/education/ci/project/lab1
• laad de batterijen op• software: download alle bestanden van onze webpagina
test sensoren en actuatoren
• gebruik testprogramma’s van website• bestudeer hoe sensoren en actuatoren te gebruiken vanuit Arduino software
• test hoe (goed) de sensoren of actuatoren werken
mogelijke oefening
• laat de robot rondrijden, sturen• terugdeinzen wanneer er iets of iemand voor hem staat (afstandssensoren)
wedstrijdje
autonome voertuigen• de juiste weg: witte lijn (schilderstape) volgen op donkere grond (zie de vloer), lijn kruist zichzelf niet
• twee robotjes mogen niet botsen: afstand houden• zo snel mogelijk, tijd van tweede voertuig telt• bonus: startschot door handenklap• programma opsturen source code + korte beschrijving via e‐mail: [email protected] en [email protected]
• Zorg dat de batterijen opgeladen zijn!
(Augmented Reality) 3D Virtuele Realiteit
Virtual en Augmented Reality
Virtual en Augmented Reality
Augmented Reality
• http://www.youtube.com/watch?v=gOYgyJxmNp0
• http://www.youtube.com/watch?v=qaFL5xO9ulc
• http://www.youtube.com/watch?v=CCRN6Pu7ygg
Wat achtergrond, 3d rendering
3D Modelling
• Punten en driehoeken• Een ‘mesh’• Rendering• Transformaties• Projecties• GPUs, simpele, uniforme operaties
coordinatensysteem
• XY scherm, Z van scherm naar je toe• Google Sketchup: X,Y grond, Z vertikaal omhoog
transformaties
• Translatie• Rotatie• Projectie
Translatie
Verplaatsing
als matrix‐vermenigvuldiging:
1 0 0
0 1 0
0 0 1
0 0 0 1 1 1
a x x a
b y y b
c z z c
x
y
z
x a
y b
z c
Rotatie
• Rotatie om de Y‐as met hoek φ
cos 0 sin 0 cos sin
0 1 0 0
sin 0 cos 0 cos sin
0 0 0 1 1 1
x x z
y y
z z x
φ φ φ φ
φ φ φ φ
1
x
y
z
cos sin
cos sin
1
x z
y
z x
φ φ
φ φ
Schaling
• Schaal x, y, z met factor s
s 0 0 0
0 0 0
0 0 0
0 0 0 1 1 1
x sx
s y sy
s z sz
1
x
y
z
1
s x
s y
s z
Rotatie en Translatie
• Eerst rotatie met matrix Mφ
• Dan schaling met matrix Ms
• Dan translatie met matrix Mv
• => vermenigvuldiging met: MvMsMφ
• (Let op in de software zijn vectoren rij‐vectoren en is het andersom: MφMsMv)
Projectie
• Camera op positie [x,y,z] kijkend naar [a,b,c], met bepaalde field‐of‐view, ‘brandpuntsafstand lens’
• Ook lineaire tranformatie ‐> matrix
transformaties• World MatrixObject naar wereld, translatie, rotatie, schaling (, animatie)
• View MatrixWereld naar camera, translatie, rotatie
• Projection Matrixcamera naar scherm, FOV, 3D naar 2D
• Eenvoudige functies om matriceste maken
• Zie code voorbeelden
WereldAbsolute coordinaten
3D
Schermcoordinaten
2D
Wereldrelatieve coordinaten
camera3D
Voorwerpeigen coordinaten
3D
World
View
Projection
rendering
• Ray tracing, hoge kwaliteit, langzaam• Polygonen , lagere kwaliteit, maar snel• Driehoekje voor driehoekje• Z‐buffer, geeft aan of nieuw de driehoek zichtbaar is of niet
• Belichting, materiaal, enz.• Gedaan door gespecialiseerde GPUs, maar toch vaak bottleneck
Interactie
• Beweging, animatie, ‘physics’• Interactie, “collission detection”• Externe input/output
implementatie
• Initialisatie• Loop begin
– DrawFrame()– InputOutput()– Update(deltaT)
• Loop end
XNA Game Studio
• (XNA’s Not Acronymed)• Eenvoudige ontwikkelomgeving Xbox 360 + PC + Windows Phone
• Visual Studio (Express)• C#, soort C++/Java, maar dan anders, automatisch geheugen management: garbage collection, gebaseerd op Microsofts .NET
• Veel hulp / tips / documentatie / voorbeelden op internet
XNA Game Studio
• Leer van voorbeelden• Afgeleide van de klasseMicrosoft.Xna.Framework.Game
• Initializatie– Initialize()– LoadContent()
• Update(GameTime gameTime)• Draw(GameTime gameTime)• Methodes om eenvoudig tranformatiematrices temaken: Matrix.createTranslation(a, b, c)
C#
• C / C++ / Java ‐ achtige programmeertaal• “Object‐georiënteerd”• Leer van voorbeelden en van collega’s• .Net framework
3D modellen
• DirectX (.x) bestandsformaat• Google Sketchup 2013, sketchup.google.comGebruik “Simple Template ‐Meters”
• 3D modellen: sketchup.google.com/3dwarehouse/
• Voor gevorderden:– (Textures: alleen vierkante, machten van twee?)– Blender (geen support!)
Installatie
1. Installeren van de software• Windows Phone SDK 7.1Visual Studio Express for Windows PhoneXNA 4.0, Google Sketchup Make 2013, .x export plugin
• Volg de instructies op de website• Probeer niet Windows Phone SDK 8.0 te installeren. Deze ondersteunt XNA niet meer
Installatie
2. Open de ‘frog’ solution in Visual Studio Express
3. Bekijk ook het HighRoller project in Visual Studio Express
Oefeningen• Bestudeer de gegeven code, probeer te begrijpen hoe het
werkt.• Maak kleine wijzigingen
– Voeg andere 3D modellen toe of vervang de bestaande modellen door je eigen modellen
– Krijg onder de knie hoe de orientatie en afmetingen zichverhouden tussen Sketchup en XNA
– Leer hoe je je eigen modellen toevoegt aan je XNA project– Voeg (simpele) collision detection toe
Voeg bijv. aan HighRoller collission detection toe, zodat de ‘admoveo’ niet meer door de blokken heen kan bewegen.
– Animeer de cameraLaat de camera bijv. één van de objecten in het spel volgen.
Eindopdracht
• Maak een eenvoudig 3D spel in XNA Game Studio
• Bijvoorbeeld door een 2D klassieker te nemen en opnieuw te maken in 3D
• Geef een korte presentatie/toelichting op je spel en laat iemand van een ander team spelen
meer informatie
• www.es.ele.tue.nl/education/ci/project• onoplosbare problemen: Sander Stuijk, Marc Geilen
groepsindelingen
• LokalenTeam 1: PT6.10Team 2: PT6.11
• Nu, PT9.10, ophalen materiaal per team bij Sander Stuijk
Team 1Dings D.L.M. (Daan)Koenders J.T.W. (Jesse)Pijnenborg D.H.G. (Daniël)Vries G.G. de (Guus)Wolters E.J. (Eric)
Team 2Borges E Souza M. (Mariana)Heck F.J.M. (Frank)Jager R. de (Robbert‐Jan)Ummelen A.R.A. (Alex)