maandagmorgen 8.45 kick off weekopdrachten(Laplace 1.105 ...kick‐off weekopdrachten ... Eerste 3...

Post on 27-May-2020

2 views 0 download

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:m.c.w.geilen@tue.nl en s.stuijk@tue.nl

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: m.c.w.geilen@tue.nl en s.stuijk@tue.nl

• 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)