Stageverslag TNO Soesterberg afdeling Perceptual & Cognitive Systems Periode 01-02-2012 t/m 31-07-2012
NIFTi Natural Human-Robot Cooperation in Dynamic Environments
Auteur: M.J.R. van den Heuvel Studentnummer: 3020355 Cognitive Artificial Intelligence Faculteit Geesteswetenschappen Universiteit Utrecht
Begeleiders: prof. dr. J-J.Ch. Meyer Universiteit Utrecht Dr. J. van Diggelen TNO Soesterberg
30 september 2012
Inhoudsopgave 1 Evaluatie 1.1 Introductie . . . . . . . . . . . . . . . . 1.2 Keuze . . . . . . . . . . . . . . . . . . . 1.3 Verwachtingen . . . . . . . . . . . . . . 1.4 De organisatie TNO . . . . . . . . . . . 1.4.1 Positie binnen de organisatie . . 1.5 Stageplek . . . . . . . . . . . . . . . . . 1.6 NIFTi-project . . . . . . . . . . . . . . . 1.6.1 Doelen en filosofie achter NIFTi 1.6.2 Werkpakketten . . . . . . . . . . 1.6.3 Tactische Display: Trex . . . . . 1.7 Raakvlakken met de opleiding CAI . . . 1.7.1 Ontologie¨en . . . . . . . . . . . . 1.7.2 Human Factors & Psychologie . 1.7.3 Computerwetenschappen . . . . 1.7.4 Robotica . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
2 2 2 3 3 3 4 4 4 5 6 6 7 8 8 8
2 Stageproduct 2.1 Stageopdracht . . . . . . . . . . . 2.2 Uitgevoerde taken . . . . . . . . 2.2.1 Handleiding robot . . . . 2.2.2 Demonstratie robot . . . 2.2.3 Programmeerwerk . . . . 2.2.4 GOOSE . . . . . . . . . . 2.2.5 NJEx . . . . . . . . . . . 2.2.6 Summer School Praag . . 2.2.7 Organisatievergaderingen
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
8 9 9 9 9 11 11 11 12 12
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
3 Persoonlijke reflectie
13
4 Appendix 4.1 Stagewerkplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Verslag summer school . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Evaluatie TNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19 19 22 31
1
1 1.1
Evaluatie Introductie
Na mijn bacheloropleiding Cognitieve Kunstmatige Intelligentie (CKI) in Utrecht ben ik doorgegaan met de master Cognitive Artificial Intelligence (CAI). Binnen deze masteropleiding bestaan twee verschillende tracks; Cognitive Modeling en Logic & Intelligent Systems. Hoewel er een grote overlap tussen beide tracks is neigt de eerste meer naar de psychologische kant van het multidisciplinaire veld van CAI, terwijl de laatste meer de kant van de informatica op leunt. Initieel was mijn intentie om mij duidelijk te richten op Logic and Intelligent Systems. Na het kiezen van vakken bleek dat deze echter binnen beide tracks prima pasten, waardoor ik een combinatie van zowel technischere informaticavakken als vakken in de linguistische kant van het spectrum heb gevolgd. Juist door de breedte van de opleiding is het lastig om in te schatten hoe de opgedane kennis in deze opleiding toe te passen is in de praktijk. Daarnaast had ik de illusie dat een baan na een wetenschappelijke opleiding inhield dat er continu theoretisch onderzoek gedaan dient te worden. Omdat mijn huidige arbeidsverleden op een heel ander gebied is dan de wetenschap en daarin altijd erg praktisch bezig ben geweest twijfelde ik of een baan in de wetenschap wel bij mij zou passen. Om deze reden vond ik het erg belangrijk om een stage te volgen, zodat ik een duidelijker beeld zou krijgen van de mogelijkheden op de arbeidsmarkt na mijn opleiding. Mocht blijken dat de wetenschap ´echt niets voor mij is, dan zou er in ieder geval ervaring zijn om deze keuze voor mijzelf te onderbouwen en verantwoorden. Deze persoonlijke redenen zijn de voornaamste reden geweest om een stage te lopen; een eenvoudiger alternatief om voldoende studiepunten te halen was het volgen van extra cursussen of een uitgebreider afstudeerproject. De eenvoudige manier zou mij echter niet de kennis over de mogelijkheden n´a mijn opleiding geven, waardoor ik een stage als een mogelijk erg waardevolle ervaring beschouwde.
1.2
Keuze
Voor het vinden van een geschikte stageplek heb ik mij op verschillende manieren geori¨enteerd maar mij voornamelijk laten leiden door de ervaring die mijn vader in de jaren 70 heeft opgedaan bij TNO in Soesterberg. Destijds heeft hij bij TNO stage gelopen en korte tijd gewerkt en was daar zeer positief over. Ook de opmerking van docent John-Jules Meyer, tijdens een cursus, dat TNO Soesterberg vaak erg ge¨ınteresseerd is in CAI-studenten heeft mijn aandacht gericht op TNO in Soesterberg. De bijzondere positie van TNO tussen de wetenschap en het bedrijfsleven in trok mij enorm aan. Ik had het idee dat het bedrijfsleven en de industrie redelijk conservatief zijn met hun werkzaamheden omdat innovatie ongewenste risico’s met zich mee brengt. TNO bezet juist die niche en is daardoor in staat om verkennend werk te verrichten met innovatieve producten als resultaat. Door mijn achtergrond in de automotivebranche viel TNO Helmond mij op, omdat hier gewerkt wordt met auto’s en dus met fysieke techniek; iets waar ik altijd erg in ge¨ınteresseerd ben geweest. Ik besloot echter te informeren voor een plek bij de vestiging in Soesterberg omdat de expertisegroepen op deze locatie meer werken met de cognitieve kant van de opleiding CAI. Tevens was bereikbaarheid een belangrijke afweging en Soesterberg is voor mij een stuk beter te bereiken dan Helmond. Na een telefonisch gesprek heb ik een persoonlijk gesprek gehad met Mark Neerincx welke mij informeerde over enkele mogelijke stageplekken binnen TNO Soesterberg. E´en van de mogelijke plekken betrof het NIFTi-project, welke mijn interesse wekte door het gebruik van robots. Het feit dat er daadwerkelijk enigszins met deze robots gewerkt werd door TNO gaf voor mij de doorslag om voor dit specifieke project te kiezen; techniek is immers ´e´en van mijn grootste passies en dit leek me een mooie eerste stap om robotica wat te verkennen.
2
1.3
Verwachtingen
Alvorens ik aan de stage begon had ik uitsluitend werkervaring buiten het wetenschappelijke gebied, voornamelijk in de detailhandel en als revisiemonteur in de automotive branche. Het beeld wat ik van de wetenschap had was uitsluitend gevormd door mijn ervaringen op de universiteit waardoor het beeld was ontstaan dat er twee verschillende richtingen bestonden na behalen van een academische graad; onderzoek doen aan de universiteit of de tijdens de studie vergaarde kennis toepassen in het bedrijfsleven en industrie. Zoals ik al eerder beschreef was juist deze dichotomie de reden om stage te lopen en mijn verwachtingen van de stage waren dan ook om enige nuance aan te kunnen brengen in het beeld wat ik van de wetenschap had.
1.4
De organisatie TNO
TNO is een onafhankelijke onderzoeksorganisatie die zich tracht te positioneren tussen de wetenschap en het bedrijfsleven om op die manier een innoverende en praktische toepassing te realiseren van wetenschappelijke kennis. De missie luidt dan ook letterlijk: TNO verbindt mensen en kennis om innovaties te cre¨eren die de concurrentiekracht van bedrijven en het welzijn van de samenleving duurzaam versterken. Het streven is om impact te hebben door doelgericht innoveren, kennis ontwikkelen voor de praktische toepassing. TNO is een organisatie met 30 kenniscentra en baseert de strategie op zeven verschillende thema’s. Elke opdracht valt binnen ´e´en van deze thema’s en wordt uitgevoerd door, eventueel verschillende, expertisegroepen. Deze expertisegroepen zijn op hun beurt weer onderverdeeld in specifieke clusters. Omdat TNO een redelijk grote organisatie is, met ruim 4000 medewerkers (2008), is er ook een complexe hi¨erarchische organisatiestructuur. De introductie van de thema’s in 2011 hangt samen met de matrixstructuur van de organisatie. Hierbij zijn de werknemers geclusterd in specifieke afdelingen, maar werken aan verschillende projecten. Dit heeft enkele voordelen, zoals flexibiliteit tussen projecten en de mogelijkheid tot specialisatie in een vakgebied. Op verschillende projecten kan de matrixstructuur breed ingezet worden waardoor flexibiliteit van medewerkers goed benut kan worden. Nadelen zijn echter dat onduidelijke situaties kunnen ontstaan door conflicterende belangen van bijvoorbeeld functionele leidinggevenden en projectleiders. Tevens is rapportage naar boven toe een tijdrovende zaak waardoor informatieverlies op kan treden binnen de hi¨erarchie. TNO is voor een deel afhankelijk van overheidsgelden maar verdient tevens geld door opdrachten uit het midden- en kleinbedrijf, het verkopen van licenties van ontwikkelde producten en het verkopen van ontwikkelde producten middels spin-off bedrijven (via TNO Bedrijven BV). Bij wet is vastgelegd wat het doel van TNO moet zijn; toepasselijk wetenschappelijk onderzoek op doelmatige wijze dienstbaar maken aan het algemeen belang. De jaaromzet van TNO is grofweg 600 miljoen euro. Omdat TNO een non-profit organisatie is wordt een deel van de winst ge¨ınvesteerd in de organisatie zelf (3%). De strategie van TNO heeft in deze periode de focus op impact; het leveren van een zichtbare en aantoonbare meerwaarde voor overheid en bedrijfsleven op grote maatschappelijke en economische vraagstukken. Dit wordt bereikt door het (inter)nationale netwerk en het excelleren in gespecialiseerde onderzoeksgebieden. 1.4.1
Positie binnen de organisatie
Hoewel TNO een breed toepassingsgebied heeft op allerlei vlakken, zoals medische technologie en energie, ligt de op locatie Soesterberg de nadruk op de menselijke factor. Psychologisch onderzoek staat dus centraal op de locatie Soesterberg maar verdeelt zich weer over allerlei specialistische 3
gebieden zoals verkeer, Defensie en gezondheid. De locatie Soesterberg is ingericht om tests en simulaties te doen om de invloed van bepaalde stimuli op mensen te meten. Voorbeelden van deze inrichting zijn een geavanceerde bewegingssimulator (Desdemona), rijsimulator, klimaatkamers, audioruimte en leertechnologielaboratorium. Daarnaast is er veel apparatuur aanwezig om metingen aan proefpersonen te verrichten. Mede door deze adequate technische inrichting is er veel expertise aanwezig onder de medewerkers van deze locatie. Van oudsher werd veel onderzoek verricht voor Defensie, wat terug te vinden is in de goede beveiliging van zowel de locatie zelf als de informatie binnen de organisatie.
1.5
Stageplek
Als stagiair had ik beschikking over een eigen werkplek op een gedeelde kamer. Deze werkplek was technisch prima ingericht en ik had toegang tot normale delen van het interne bedrijfsnetwerk. Omdat ik aan het NIFTi-project deelnam viel ik binnen de locatie Soesterberg onder de afdeling Perception & Cognitive Systems, specifiek onder het cluster Smart Assistance.
1.6
NIFTi-project
Het NIFTi-project is een Europees gefinancierd project (FP7/Cognitive Systems & Robotics #247870) wat loopt van januari 2010 tot en met december 2013. Het is een internationaal project bestaande uit DFKI (DE), TNO (NL), Bluebotics (CH), Universiteit van Z¨ urich (CH), Fraunhofer (DE), Technische Universiteit Praag CTU (CZ), Universiteit van Rome (IT), Brandweerdepartement Dortmund (DE) en het Italiaanse ministerie van binnenlandse zaken (IT). 1.6.1
Doelen en filosofie achter NIFTi
NIFTi draait om de samenwerking tussen mens en robot in een urban search & rescue (USAR) situatie. Een doorgaans USAR-scenario is een tunnelramp, ingestort gebouw of schade na een aardbeving. In een USAR-situatie zijn drie activiteiten een hoofdzaak: • Size-up: Evaluatie van de situatie, mogelijke gevaren en het besluit van het reddingsplan voor de specifieke situatie. • Search: Het lokaliseren en initieel classificeren van slachtoffers. • Rescue: Bevrijden van de slachtoffers en toepassen van gepaste medische hulp. Robots nemen voornamelijk een plaats in in de eerste twee activiteiten. Voor de eerste activiteit geldt dat robots compact en redelijk behendig zijn, waardoor ze gemakkelijker een ingestort gebouw kunnen betreden dan een mens. Daarnaast kunnen robots uitgerust worden met sensoren die een mens niet als zintuigen bezit. Misschien het belangrijkste aspect van robots is dat ze vervangbaar zijn, terwijl een mens dit ethisch gezien niet is. Bij dergelijke reddingswerkzaamheden komen vaak reddingswerkers om het leven door verdere instorting van reeds ingestorte gebouwen, waardoor er extra slachtoffers ontstaan. Robots hebben vooralsnog een puur financi¨ele vervangingswaarde waardoor hooguit materieel verloren kan gaan. Voor de tweede activiteit is voornamelijk kunstmatige intelligentie van de robots noodzakelijk. Slachtoffers dienen te worden herkend als slachtoffers en kunnen in zekere mate worden geclassificeerd aan de hand van hun verwondingen; er dient immers een selectie gemaakt te worden van welke slachtoffers bepaalde hulp zullen bekomen. Hulp sturen naar een reeds overleden slachtoffer is grofgezegd zonde als een ander slachtoffer van de dood gered kan worden met dezelfde middelen. Omdat middelen
4
Figuur 1: De inzet van een NIFTi-UGV in Mirandola (IT) na aardbevingen. altijd beperkt zullen zijn zal een keuze gemaakt moeten worden waar deze worden ingezet; de robots kunnen deze keuzes vergemakkelijken door initi¨ele classificatie van de slachtoffers. Hoewel de robots steeds autonomer worden vereisen deze toch enorm veel menselijke aandacht. Bij het gebruik van robots na de aanslagen op het WTC waren er ongeveer drie mensen per robot nodig om deze in te zetten. Aangezien een USAR-situatie al erg belastend is voor de aandacht van de hulpverleners is het zaak dat hiermee bewust wordt omgegaan. NIFTi onderscheidt zich op dit vlak van voorgaande USAR-onderzoeken; waar andere onderzoeken de focus leggen op ´of de mens ´ of de robot wordt binnen NIFTi juist de samenwerking tussen robot en mens belicht. Onlangs is het project toegepast op een echte situatie na aardbevingen in Mirandola, Itali¨e, waar de robots ingezet zijn om de schade op te nemen aan diverse beschadigde gebouwen. Dit is goed onder de aandacht gebracht van de internationale media. Figuur 1 toont de inzet van ´e´en van de NIFTi-robots in deze situatie. 1.6.2
Werkpakketten
Het gehele project is opgedeeld in verschillende werkpakketten met elk een eigen thema. Elke partner in het consortium heeft ´e´en of meerdere van deze werkpakketten toebedeeld gekregen, met eventueel een bepaalde overlap tussen de consorten. In principe werkt ieder aan een eigen deel van het project; bijvoorbeeld Bluebotics heeft de gebruikte robot ontworpen en geleverd, CTU (Praag) richt zich op de robotperceptie en TNO houdt zich bezig met de menselijke kant van de mens-robot co¨ operatie. TNO onderzoekt bijvoorbeeld eindgebruikers de cognitieve werklast bij de robotbestuurders om vervolgens het gedrag van de robot af te stemmen op deze werklast. Vanuit het project worden verschillende integratievergaderingen ge¨organiseerd om de werkzaamheden op elkaar af te stemmen. Zo is er jaarlijks een NIFTi joint excercise (NJEx) waarbij gezamenlijk een experiment wordt voorbereid. Na deze oefening is er een langdurige end-user evaluation waarbij het scenario uit het experiment wordt toegepast met eindgebruikers; brandweermannen en andere reddingswerkers. Deze dagen dienen als basis om gegevens te verzamelen over het integrale resultaat van het hele project. Tevens worden hier experimenten 5
uitgevoerd die wetenschappelijke gegevens opleveren voor publicaties vanuit het project. Om bedrijven inzicht te geven in de technologie en kennis die ontwikkel wordt binnen het project worden er, meestal eens per jaar, een industry day ge¨organiseerd. Tevens is er een jaarlijkse general assembly waarbij het werk van de consorten zoveel mogelijk ge¨ıntegreerd dient te zijn. Als laatste is er een uitgebreide demonstratie waarbij de Europese Commissie samen met experts uit het vakgebied het project beoordeelt op prestatie. Aangezien de Europese Commissie het project financiert is deze beoordeling van groot belang voor alle consorten van het project. Bij de laatste beoordeling werden de resultaten van het project beoordeeld als ’presterend boven verwachting’; zeer positief dus. 1.6.3
Tactische Display: Trex
Binnen het NIFTi-project heb ik mijn aandacht en tijd voornamelijk besteed aan het werken met en tevens aan de gezamenlijke tactische display Trex. De afkorting Trex staat voor Tagging-based Real-time exhibitor. Deze tactische display kan gezien worden als een collaborative workspace waarin actoren, menselijk danwel artificieel, data kunnen plaatsen om op deze manier een centrale kennisbank te vormen. Deze display is in opdracht van TNO ontwikkeld en continu onderhevig aan veranderingen. De basis bestaat echter uit een stabiel platform wat modulair uitgebreid kan worden naar de behoefte van een project, wat het platform erg flexibel maakt. Hierdoor is en wordt dit platform ook binnen andere projecten dan NIFTi gebruikt. Het platform geeft gebruikers de mogelijkheid zich te abonneren op bepaalde database queries. Dit is echter geen normale database maar een repository in de vorm van een ontologie. Dit is vastgelegd in RDF/OWL waardoor niet alleen de datapunten van de display als specifieke concepten vastgelegd kunnen worden, maar ook de gebruikers zelf met gerelateerde eigenschappen. Vanuit deze basis is het op den duur een mogelijkheid om bepaalde filteringen toe te passen; de gebruiker krijgt op basis van zijn eigenschappen een unieke combinatie van informatie in beeld die afhankelijk is van zijn eigenschappen. Invloedrijke eigenschappen zijn bijvoorbeeld functie en positie. Op basis daarvan kan slechts informatie getoond worden die letterlijk binnen handbereik ligt of die relevant is voor de functie van de gebruiker. Door deze filtering kan een overschot aan informatie voorkomen worden waardoor gebruikers hun aandacht kunnen geven aan relevante informatie zonder eerst door alle informatie te moeten speuren of handmatig op vooraf ingestelde typen te filteren. Hierdoor ontstaat adaptiviteit (automatische aanpassing door de software) in plaats van adaptabiliteit (handmatige aanpassing door gebruiker). Figuur 2 toont de tactische display met enkele datapunten op een abstracte achtergrond van een tunnel. Binnen NIFTi wordt de tactische display onder andere gebruikt om aan te geven waar verschillende reddingswerkers en robots zich in de omgeving bevinden, waar zich slachtoffers bevinden en waar obstakels en gevaarlijk materiaal zich bevindt. Uitbreidingen hierop zijn het aangeven van cognitieve of emotionele werklast van reddingswerkers en huidige beschikbaarheid van reddingswerkers. Het uiteindelijke doel is om de situation awareness, het gemeenschappelijke beeld van de situatie en omgeving, te maximaliseren. De tactische interface wordt real-time up-to-date gehouden, dus als er een verandering wordt aangebracht door een gebruiker zullen de andere gebruikers dat direct zien. Trex is het gedeelte binnen NIFTi waar ik veel mee bezig ben geweest, omdat dit ook de basis zou worden voor mijn afstudeerproject wat volgt op mijn stageperiode.
1.7
Raakvlakken met de opleiding CAI
CAI is een multidisciplinaire studie waardoor het raakvlakken heeft met meerdere vakgebieden. Dit maakt de studie erg breed maar daardoor al gauw in mindere mate specifiek. Het bedrijfsleven en de industrie zijn nog niet geheel voorbereid met posities op een dergelijke brede studie. Dit
6
Figuur 2: De tactische display Trex betekent dat bij een stage al gauw een plek ontstaat die slechts raakvlakken heeft met ´e´en van de disciplines, bijvoorbeeld louter psychologie, linguistiek of informatica. Bij TNO in Soesterberg zijn stageplekken toch erg multidisciplinair, vandaar dat er ook veel werknemers in dienst zijn met een achtergrond in (cognitieve) AI. Hieronder zal ik een kleine opsomming maken van duidelijke raakvlakken met de opleiding CAI. 1.7.1
Ontologie¨ en
De tactische display Trex is gebaseerd op ontologie¨en. In de informatica en kunstmatige intelligentie is een ontologie een poging om een conceptueel schema vast te leggen binnen een bepaald domein. Een ontologie bevat doorgaans de relevante entiteiten van dit domein met bijbehorende relaties van deze entiteiten onderling en hun eigenschappen. Hierdoor is een ontologie een door computers interpreteerbare beschrijving van de werkelijkheid, een kennisrepresentatie. Ontologie¨en leken mij altijd triviaal, totdat ik de cursus Semantic Web volgde waarin duidelijk werd wat de kracht van dergelijke beschrijvingen is en hoe groot het belang van relaties tussen vastgelegde eigenschappen is om een concept vast te leggen. Ook de cursus Conceptual Semantics liet mij zien hoe complex het is om datgene wat impliciet in het bewustzijn van elk mens zit, expliciet te maken. Dit is juist wat we willen doen en ontologie¨en zijn daar het gereedschap voor. Tijdens de stage vond ik het erg fascinerend om te zien hoe een ontologie nu in de praktijk kan worden toegepast. Op de universiteit werden ook wel praktische toepassingen genoemd maar dat was meer een praktische toepassing vanuit het theoretische perspectief, meer top-down benaderd dan de toepassing bij TNO. Hoe dan ook is elke ontologie lastig op te zetten naar mijn idee, er moet een structuur bedacht worden maar het voordeel is vaak dat dit modulair kan gebeuren en daardoor later aangepast kan worden. Hierdoor groeit een ontologie naarmate bepaalde eigenschappen van entiteiten noodzakelijkerwijs vastgelegd dienen te worden.
7
1.7.2
Human Factors & Psychologie
TNO Soesterberg is van oudsher werkzaam binnen de Human Factors, vroeger de zintuigfysiologie. De menselijke kant staat hierbij dus centraal, waardoor psychologie in veel gevallen een grote rol speelt. Bij TNO Soesterberg worden proefpersoonexperimenten uitgevoerd om onder andere systemen te testen en menselijk gedrag te modelleren. Het modelleren van cognitie speelt een grote rol binnen de AI en is een track binnen de opleiding CAI. Ook NIFTi draait in essentie om deze menselijke factoren; de doelstelling is immers onderzoek te verrichten naar de samenwerking tussen mens en robot. TNO doet onder andere onderzoek naar de cognitieve en emotionele werklast van de robotbestuurders, daarnaast valt de tactische display ook onder het onderzoek aan de gebruikerskant. 1.7.3
Computerwetenschappen
Het raakvlak met computerwetenschappen is de ontwikkeling en het gebruik van specifieke software. Bij TNO worden verschillende bruikbare concepten gebruikt om een werkend geheel te vormen. Een voorbeeld is de tactische display. Hierbij worden verschillende programmeertalen, hoewel voornamelijk .NET gebaseerd, gebruikt om een platform en een interface te genereren. Er wordt dankbaar gebruik gemaakt van reeds ontwikkelde applicaties zoals een webserver en een flexibel concept voor data-opslag; Sesame. Dit wordt gebruikt om een toegankelijke repository te cre¨eren die op zijn beurt een ontologie in RDF/OWL bevat. De kern van de query-aanvraag draait voornamelijk op code in C# en C++, terwijl de gebruikersinterface voornamelijk op het moderne WPF en dus tevens C# draait. Dit is een voorbeeld van hoe moderne ontwikkelde softwareapplicaties worden gecombineerd en toegepast in de praktijk. Bij een organisatie als TNO waar proof of concept een grote rol speelt is het belangrijk om gebruik te maken van de reeds beschikbare middelen. Ook al is het vaak niet perfect afgestemd op het beoogde specifieke doel, het zelf moeten ontwikkelen van elk basiselement om een concept te bewijzen en testen is niet rendabel. Mocht na de conceptfase een vruchtbare basis overblijven kan altijd besloten worden een toegewijd softwarepakket te maken. 1.7.4
Robotica
Hoewel robotica geen expliciet onderdeel is van de opleiding CAI is robotica toch het vakgebied waar de meeste mensen aan denken bij het horen van de term kunstmatige intelligentie. TNO ontwikkelt zelf zowel hardware als software om robots te ontwikkelen. Dit varieert van robots ten behoeve van het ontwikkelen van telepresence, het trachten de gebruiker te laten voelen aanwezig te zijn op de plek van de robot, tot het gebruik van vriendelijk ogende robots die kinderen met diabetes helpen in allerlei taken. Door de extreem snelle technologische ontwikkeling tegenwoordig is de robot een veelvoorkomend stuk gereedschap. Het gebruik van dergelijke machines door mensen betekent dat juist deze interactie tussen de mens en machine van steeds groter belang wordt. Dit is een wetenschappelijk gebied wat tot op heden nog niet goed is onderzocht; TNO Soesterberg is ´e´en van de weinige instituten die zich hier in Nederland mee bezig houdt waardoor het erg leuk is aan dergelijke pioniersprojecten te mogen bijdragen. De impact zal misschien pas over enkele decennia volgen, maar het blijft impact waardoor TNO haar strategie duidelijk waarmaakt.
2
Stageproduct
In de volgende sectie zal ik omschrijven wat ik concreet gedaan heb tijdens mijn stageperiode. Aangezien de stage deels verkennend was en daarmee tot doel had bekend te raken met de 8
organisatie is niet alles even concreet of relevant als stageproduct, maar mijn insziens wel de moeite waard om te vermelden.
2.1
Stageopdracht
De stageopdracht was niet expliciet van tevoren gedefinieerd vanwege het verkennend karakter van de stage (zie 4.1). Om die reden heb ik me initieel verkend binnen het NIFTi-project, maar ook binnen de organisatie. Dit heb ik gedaan door mij in te lezen in de beschikbare literatuur binnen het onderwerp van USAR en NIFTi. Ook heb ik gesproken en materiaal bekeken van andere stagiairs die op hetzelfde project werkten om inzicht te verkrijgen in hun werkzaamheden en onderzoeksgebied. Hierna in overleg met mijn stagebegeleider besloten te gaan werken aan de tactische display, Trex. Dit platform is een goede basis voor een praktische afstudeeropdracht en was al voor een groot deel ontwikkeld binnen TNO.
2.2
Uitgevoerde taken
Hieronder zal ik kort omschrijven welke taken ik heb uitgevoerd in het kader van mijn stage. 2.2.1
Handleiding robot
Voor het opzetten van het specifieke netwerk voor de robot zijn verschillende complexe handelingen nodig. Omdat dit initieel door de collega’s van Fraunhofer gedaan werd is tijdens deze opstartfase meegekeken, zijn aantekeningen gemaakt en is er een handleiding samengesteld (in samenwerking met Thomas Colin). In deze handleiding wordt omschreven hoe de opstartprocedure van de robot geschiedt, hoe de hardware voorbereid dient te worden, hoe verschillende softwareinstellingen bepaald dienen te worden en hoe een update van de software dient te geschieden. Daarnaast worden mogelijke obstakels en problemen omschreven, waardoor deze handleiding een goede leidraad is voor een leek. Door het maken van deze handleiding heb ik voornamelijk veel kennis opgedaan over de robot en het systeem daarachter. Voor TNO zal deze handleiding in de toekomst bruikbaar zijn voor anderen, waaronder waarschijnlijk stagiairs, die met de robot zullen werken en ongetwijfeld tegen problemen aan zullen lopen. 2.2.2
Demonstratie robot
Binnen TNO worden regelmatig rondleidingen gegeven om bezoekers, waaronder vaak studenten, te laten zien waar TNO zich mee bezig houdt. Hiervoor zijn meerdere ruimtes ingericht. Omdat binnen NIFTi met indrukwekkende hardware wordt gewerkt is het de moeite waard deze te demonstreren. Hiervoor heb ik in de demonstratieruimte een eenvoudig rampscenario getracht te cre¨eren. In deze opstelling kunnen de basisfuncties van de robot gedemonstreerd worden. In de afbeeldingen 3a, 3b en 4 is de gebruikte robot te zien in de opstelling waarin ik de robot gedemonstreerd heb. Voor zowel een groep studenten van University College Utrecht als een groep van Toegepaste Cognitieve Psychologie heb ik een presentatie gegeven over het NIFTi-project, het onderdeel waar ik mee bezig ben (tactische display) en een demonstratie gegeven met de robot. Naast het plezier van het opbouwen van de opstelling voor de demonstraties, was het voor mij erg leerzaam om presentaties voor te bereiden. E´en presentatie (voor UCU) was in het Engels, de andere in het Nederlands. Hierdoor kon ik zowel mijn presentatievaardigheden voor een groep onbekende personen ontwikkelen. Dit is iets waar ik op de universiteit soms moeite mee had, maar tot mijn verbazing erg goed ging bij TNO. 9
(a)
(b)
Figuur 3: De NIFTi robot in de demo-opstelling
Figuur 4: De NIFTi robot
10
Door het veelvuldige gebruik van de robot heb ik ook erg veel kennis opgedaan over Linux en ROS. 2.2.3
Programmeerwerk
De ontologie¨en, het framework en de interface voor de tactical awareness display (Trex) zijn ontwikkeld in C# door een medewerker van TNO (Maarten van Zomeren). Hiermee heb ik veel contact gehad over hoe het framework in elkaar stak en heb veel in de code gekeken om te zien hoe het geheel werkte. Daarnaast heb ik zo nu en dan kleine aanpassingen gemaakt in de code om de functionaliteit aan te passen. Door het werken met C# heb ik veel inzicht en ervaring gekregen in het implementeren van moderne programmeertalen. Het werken op deze manier heeft mij ge¨ıntroduceerd in WPF en de daarbij behorende XAML code; een waardevolle uitbreiding op mijn initi¨ele Java ervaring. Hoewel C# en Java conceptueel erg veel op elkaar lijken heeft C# mijn visie verder verbreed. 2.2.4
GOOSE
In juni werd er intern door TNO een demonstratiedag gehouden voor GOOSE. GOOSE is een project waarin onderzocht wordt hoe een query gedaan kan worden binnen verschillende stromen van sensordata. Het doel van deze dag was om aan de hand van verschillende demonstraties aan te tonen waar verschillende groepen mensen binnen TNO mee bezig zijn en in hoeverre dit bruikbaar is binnen het GOOSE project. Jurriaan, Suzanne Tak en ik namen deel aan deze demonstratiedag waar we een voorbeeldscenario hadden opgezet met de robot om zo te demonstreren wat de tactische display Trex kon betekenen binnen GOOSE. De demonstratie liet zien hoe informatie uit zowel sensors (robot) als mensen samengevoegd kan worden in een centrale gepersonaliseerde display. Het menselijke aspect, de gebruiker, staat daardoor centraal. Omdat Trex gebruik maakt van ontologie¨en is er ook een semantisch aspect wat we belangrijk achtten in grote stromen data. De voorbereiding voor deze demonstratie betrof het koppelen van Trex aan de NIFTi robot. Dit diende tevens als voorbereiding voor het gezamenlijke NIFTi experiment (NJEx) wat rond die tijd had moeten plaatsvinden. Voor het koppelen van de twee systemen waren werkzaamheden van twee softwaremedewerkers nodig. Ik heb enkele gesprekken ge¨organiseerd om deze mensen bij elkaar te brengen en afspraken te maken over wat er moest gebeuren, wanneer het klaar moest zijn en wie welke taken op zich zou nemen. Dit vond ik erg belangrijk om te doen omdat ik daardoor het gevoel kreeg verantwoordelijk te zijn voor een goede afloop van de samenwerking en een goede voorbereiding van zowel de GOOSE- als NJEx-demonstraties. Naast de bijdrage aan de voorbereiding heb ik tijdens de demonstratie zorg gedragen voor de technische ondersteuning en besturing van de robot en waar nodig uitleg gegeven aan ge¨ınteresseerden. Een erg interessante ervaring omdat het, naast de voorbereidende taken, mij een inzicht gaf in de andere disciplines van TNO waardoor mijn visie vergroot werd naar buiten de Human Factors in Soesterberg. 2.2.5
NJEx
Op moment van schrijven moet NJEx nog plaatsvinden. De voorbereidingen hebben echter al eerder plaatsgevonden. NJEx is een voorbereidend gezamenlijk experiment voor de end-user evaluation. Het doel is integratie van de ontwikkelingen van de Europese partners en het testen van deze ontwikkelingen in een realistisch scenario. Eventuele wijzigingen in code of scenario kunnen na NJEx nog doorgevoerd worden om zo problemen tijdens de end-user evaluation te voorkomen. 11
De voorbereidingen voor NJEx overlappen deels met de voorbereidingen die we getroffen hebben voor GOOSE, het technisch voorbereiden van bepaalde functionaliteiten in Trex zijn de voornaamste. Andere voorbereidingen zijn het updaten van de robot naar een nieuw besturingssysteem en vernieuwd robotbesturingssysteem. 2.2.6
Summer School Praag
De technische universiteit van Tsjechi¨e (CTU) organiseert sinds 2009 elk jaar een summer school met als onderwerp computer vision. Hierbij worden door experts binnen het veld lezingen gegeven over de state-of-the-art van computer vision. Omdat CTU in het NIFTi consortium zit werd dit jaar de summer school mede georganizeerd door het NIFTi project. Om deze reden heb ik dit jaar als TNO-afgevaardigde de summer school bijgewoond. De summer school duurde van 27 augustus tot en met 31 augustus en werd gevolgd door een NIFTi workshop op 1 en 2 september. Dit alles vond plaats in Praag. Het bijzondere aan deze summer school is dat de lezingen elke dag werden afgewisseld met verschillende sporten, waar de lectores eveneens aan deelnamen. Hierdoor was er een informele sfeer waardoor er als student makkelijk gecommuniceerd kon worden met deze mensen. Het publiek bestond voornamelijk uit masterstudenten en PhD-studenten uit het vakgebied. Als iemand van CAI was de stof daardoor behoorlijk specifiek maar daardoor niet minder interessant. Ik het kennis mogen maken met vele technieken die in de praktijk gebruikt worden, met bijbehorende praktijkvoorbeelden en prestatieafwegingen. Hierdoor werd ik continu ge¨ınspireerd om weer na te denken over mogelijkheden op een ander niveau; impliciete (mentale) conceptuele beeldvorming door computers. Op basis van bestaande technieken fantaseren over mogelijkheden om machines menselijke capaciteiten te geven deed mij denken aan de momenten tijdens mijn colleges waarbij ik hetzelfde deed. Omdat ik al een geruime tijd geen colleges meer heb gevolgd vond ik dit een erg aangename afwisseling. Door elke dag na de lezingen te sporten met de andere deelnemers en de gerenommeerde docenten ben ik met veel interessante mensen in contact gekomen en heb ik veel gepraat over hun visie op onder andere bepaalde mogelijkheden binnen computer vision. Ook ben ik veel te weten gekomen over het NIFTi project omdat ik de gehele week optrok met projectcollega’s. Naast inhoudelijke informatie is me ook veel duidelijk geworden over de taken van de andere partners en hun visie op het project. De summer school werd opgevolgd door een workshop, waar een kleinere groep mensen van de summer school aan deelnam. Tijdens deze workshop werd in verschillende teams gebruik gemaakt van door CTU ontwikkelde gezichtsherkennigssoftware om de NIFTi robots een bepaalde persoon te laten volgen door achter deze persoon aan te rijden. Kortweg moesten vanaf de gezichtsherkenning de commando’s voor het navigeren en rijden ge¨ımplementeerd worden door het team. Dit bleek nog vrij lastig en elk team gebruikte andere technieken wat erg leerzaam was om te zien. Omdat ik erg gefascineerd ben door de gebruikte robotsoftware (ROS) maar in de praktijk bij TNO niet bezig ben met het daadwerkelijk programmeren van functies in deze software vond was het uitermate leerzaam om dit nu wel te doen en direct resultaat te zien hiervan. Deze summer school en workshop waren voor mij een erg waardevolle ervaring. Naast het individueel maken van de vliegreis was het verblijf en het onderwijs erg inspirerend en interessant. Een persoonlijk verslag van deze summer school met bijbehorende foto’s is te zien in bijlage 4.2. 2.2.7
Organisatievergaderingen
Binnen TNO worden er regelmatig vergaderingen van zowel de afdeling, het cluster en het project georganiseerd. Om bekend te raken met de gang van zaken binnen een organisatie als TNO heb ik geprobeerd zoveel mogelijk van deze vergaderingen bij te wonen. Helaas vonden de meeste 12
clustervergaderingen op een gegeven moment op donderdagen plaats; de dag dat ik buiten TNO werkzaam was. Desalniettemin heb ik een aantal van deze afdelings- en clustervergaderingen bij kunnen wonen om zo te zien wat er besproken wordt. Belangrijke punten binnen deze vergaderingen waren verschillende projecten waar groepen medewerkers mee bezig waren en actuele zaken die belangrijk waren voor zowel de afdeling als het cluster. Op deze manier worden de medewerkers van de afdeling op de hoogte gehouden van elkaars werk waardoor bijvoorbeeld samenwerking tussen personen of projecten bespoedigd kan worden en dubbel werk voorkomen kan worden. Dit laatste vond ik persoonlijk erg belangrijk. TNO is een enorm grote organisatie en er wordt dus veel kennis ontwikkeld binnen projecten, echter, deze kennis blijft mijn insziens vaak binnen een project waardoor meerdere projecten dezelfde kennis dubbel zouden kunnen ontwikkelen. De vergaderingen op afdelings- en clusterniveau brengen medewerkers goed op de hoogte van elkaars werkzaamheden waardoor vruchtbare contacten tussen collega’s gelegd zouden kunnen worden en de eerste stap om kennis te delen gezet wordt. Juist in een grote organisatie als TNO is het delen van actuele kennis van erg groot belang. Het bijwonen van dergelijke vergaderingen heeft me een inzicht gegeven in de informatiestroom op verschillende niveaus binnen de organisatie en uiteraard een beeld van de verschillende projecten waar aan gewerkt werd.
3
Persoonlijke reflectie
In deze sectie zal ik een persoonlijke reflectie geven op de periode dat ik stage heb gelopen bij TNO in Soesterberg. De ervaring van deze stage was vrijwel geheel positief en er ging geen dag voorbij dat ik mijzelf verrijkt voelde met kennis danwel belangrijke ervaringen. Toch heb ik geprobeerd kritisch te kijken naar de organisatie alsmede mijn eigen prestatie binnen de organisatie. E´en van de meest belangrijke aspecten van deze stage was dat ik mijzelf enorm heb kunnen ontwikkelen, zowel in mijn capaciteiten als in mijn zoektocht naar wat mijn ambities en interesses zijn in de wetenschappelijke wereld als de wereld van de kunstmatige intelligentie. Dit is het kernpunt van mijn evaluatie omdat ik voor een belangrijke stap in mijn leven sta om keuzes te maken die grote invloed hebben op de rest van mijn professionele carri`ere en daarmee het pad wat ik op lange termijn zal volgen. Zoals ik al eerder in dit verslag aangaf was dat mijn belangrijkste reden om stage te lopen en ben ik heel tevreden over het resultaat wat ik hiermee wilde behalen. Ik heb een goed beeld gekregen van de structuur en de werkzaamheden van een wetenschappelijke organisatie als TNO. Omdat TNO een unieke positie tussen de wetenschap en de techniek bezet heb ik een goed initieel beeld gekregen van het toepassingsgebied van verschillende AI technieken, wie opdrachtgevers zijn en wat hun doelen zijn. Door met veel mensen te praten over hun idee¨en over zowel de organisatie als verschillende vakgebieden heb ik een beter beeld kunnen vormen van wat ik zoek in mijn professionele leven. Hoewel ik de menselijke factor een interessante kant vind van de kunstmatige intelligentie ben ik er nu meer van overtuigd dat een meer technische kant beter past bij mijn interesses en ambities. Het onderzoek met proefpersonen is een onmisbaar aspect voor allerlei ontwikkelingen maar wakkert bij mij niet de wetenschappelijke passie aan die mijn insziens nodig is om dergelijk onderzoek op lange termijn uit te voeren. Dit was tevens ook wel te verwachten, ik heb immers de track Logic & Intelligent Systems gekozen voor mijn master, in plaats van Cognitive Modelling. Cognitive Modelling past waarschijnlijk beter bij de positie die ik nu heb vervuld. Na de summer school over computer vision werd mij wel duidelijk dat mijn fascinatie en inpiratie hierdoor meer werd gevoedt dan dat de psychologie doet. Mijn droom is het bouwen van machines met minstens gelijkwaardige (cognitieve) vermo-
13
gens aan de mens, daarom zal dit vakgebied in mijn leven meer als inspiratiebron dienen dan als werkterrein. De mens als voorbeeld van een doorontwikkelde cognitieve machine en de computer als werkterrein. Bovenstaande ambitie zou betekenen dat ik mij voornamelijk zou moeten richten op de wetenschappelijke kant, iets waarvan ik bang ben dat het gauw ontaard in een t´e theoretisch onderzoek terwijl de praktische toepassingen voor mij minstens net zo belangrijk zijn. Hierdoor zal ik evengoed een balans moeten vinden tussen praktijk en theorie en deze stage bij TNO heeft mij daar een extreem waardevolle kijk op kunnen geven. De volgende logische stap is voor mij het verkennen van een ander, meer technisch gebied in dezelfde omgeving, dus binnen TNO. Daar waar Soesterberg zich focust op de menslijke kant zijn er andere TNO locaties die zich richten op meer technische aspecten. TNO Den Haag richt zich bijvoorbeeld op onder andere sensorinformatie en andere informatietechnische aspecten. Omdat de positie en instelling van TNO mij erg bevalt ben ik van plan gesprekken te voeren met medewerkers van deze andere locaties om te zien of de werkzaamheden daar aansluiten bij mijn ambities. Ongeacht of ik uiteindelijk werkzaam zal worden bij een organisatie als TNO lijkt me dit tevens waardevol om mijn interesses verder te verkennen. Naast verkenning binnen TNO is mijn intentie om ook de industri¨ele wereld aan te spreken om te zien hoe kunstmatige intelligentie daar wordt toegepast en of dit aansluit met mijn ambities. De stage bij TNO is dus een eerste waardevolle stap geweest in het uitpluizen van mijn persoonlijke ontwikkelingstraject en daarom zie ik deze stage als een goed keuze en waardevolle ervaring. Naast de vergaarde kennis over mijn eigen intenties is er uiteraard ook een waardevolle ontwikkeling geweest in mijn kunnen. Hieronder zal ik gestructureerd omschrijven hoe ik de praktische ontwikkelingen die voor mij belangrijk waren ervaren heb. Planning Het maken van een gestructureerde planning is nooit mijn sterkste kant geweest. Ik heb altijd geprobeerd om de grote stappen mentaal te plannen en dat is mij in het verleden vrijwel altijd goed afgegaan. Omdat ik naast de stage ook in persoonlijke sfeer een volledige renovatie van mijn eigen woning op mij heb genomen zat met twee forse projecten in het zelfde tijdsbestek. Jurriaan heeft aanbevolen een planning te maken voor de stage, ook omdat dit duidelijkheid gaf voor anderen behalve mijzelf. Door deze planning kon ik ruim van te voren anticiperen op taken en hierdoor werd onverwachte druk vermeden. Het maken van die planning heeft mij ook aangezet tot het maken van een betere planning voor de renovantie van de woning, waardoor beide projecten elkaar eigenlijk versterkten. Ik zie dit als erg waardevolle vaardigheid omdat hiermee structuur aangebracht wordt en planning op allerlei zaken in de toekomst, zowel priv´e als professioneel, van toepassing is. Uiteraard zal ik deze vaardigheid steeds verder blijven ontwikkelen, maar de start is gelukkig gemaakt. Na deze stage volgt een afstudeerproject waar planning erg belangrijk voor zal zijn. Het besef van de noodzakelijkheid van een planning tijdens de stage heeft ongetwijfeld invloed op mijn planning tijdens het afstuderen. Ik verwacht niet dat ik dit perfect zal kunnen plannen maar besef wel dat de stage hierin een bijdrage geleverd zal hebben. Samenwerking Voor mijn bijdrage aan het project was het noodzakelijk dat ik samenwerkte met andere mensen. Zowel medewerkers van TNO als andere stagiairs konden mij helpen om zaken te verwezenlijken, andersom neem ik aan dat ik hen ook op een zelfde manier heb kunnen helpen. In mijn professionele verleden heb ik altijd samengewerkt met lager opgeleiden en de enige samenwerking met hoogopgeleiden was op de universiteit in niet-professionele sfeer. Bij TNO heb ik voor het eerst ´echt samengewerkt met hoogopgeleiden in serieuze professionele omstandigheden. Dit werkte erg prettig en leerde mij hoe de onderlinge gang van zaken is 14
binnen TNO. Zolang duidelijk afgesproken werd wie welke taak op welk moment uitgevoerd zou hebben was voor iedereen duidelijk wat er moet gebeuren. Duidelijke afspraken maken over dergelijke werkzaamheden en deze vastleggen is ´e´en van de belangrijkste lessen die ik heb opgepikt uit de samenwerking binnen dit project. Binnen een relatief kleine omgeving zoals TNO is dit allemaal prima te overzien, echter is er binnen het NIFTi-project ook sprake van internationale collega’s waar in mindere mate contact mee is. Juist door de grotere afstand het mindere contact is samenwerking tussen leden van het consortium minder effici¨ent en is het des te belangrijker afspraken goed vast te leggen. Het mogen deelnemen aan een dergelijk groot Europees project en het zien dat niet alles altijd soepel verloopt is voor mij zeer waardevol omdat ik dit in het begin niet verwacht had. Er bestaat een groot en uitgewerkte opzet over het project waardoor veel dingen goed gepland en vastgelegd zijn. De observatie dat er alsnog obstakels ontstaan op sommige fronten laat mij de volgende conclusies trekken; de uitgebreide planning is extreem belangrijk en heeft het merendeel van de obstakels voorkomen, deze planning is echter niet volledig uitputtend en obstakels zullen altijd voorkomen. Als ik in de toekomst aan andere grote projecten mee zal werken heeft een omvangrijk project als NIFTi een solide basis gevormd voor mijn verwachtingen en zal ik minder snel voor verrassingen te komen te staan. Hierdoor is anticipatie op problemen mogelijk en dit is iets wat ik als een grote voorsprong zie in mijn carri`ere. Net als met planning is de samenwerking binnen een groot project het begin van een vaardigheid die terugkomt in mijn verdere leven, ook in priv´esfeer en daarom hecht ik hier veel waarde aan. Programmeerwerk Ik vind het erg leuk om te programmeren omdat ik het gevoel heb dat er erg snel resultaat behaald is en het toch een bepaalde vorm van creativiteit vereist. Trex is geschreven in C# en dit verplichtte mij om me te verdiepen in deze taal. C# is een objectgeorienteerde programmeertaal wat enorm veel overeenkomsten vertoont met Java; de programmeertaal die centraal stond in de bacheloropleiding CKI. Hierdoor was ik conceptueel gauw vertrouwd met C# maar heb enorm veel geleerd over de manier waarop geprogrammeerd wordt in deze taal. Het zoeken naar documentatie en het gebruik van een compleet nieuwe verwerker (Visual Studio) leerde mij al gauw de voordelen van C# ten opzichte van Java. Ook het moeten werken met andermans code heeft mij veel geleerd over de manier waarop mensen met meer ervaring met C# in deze taal programmeren. Ik heb geen hele complexe code geschreven maar desalniettemin wel veel ervaring opgedaan en is mijn drang om vaker te programmeren weer aangewakkerd. Naast C# heb ik ook een kleine ervaring opgedaan met Matlab tijdens de summer school in Praag. Deze programmeertaal wordt voornamelijk gebruikt om snel complexe, statistische bewerkingen uit te kunnen voeren. Omdat dit voorkomt in zowel computer vision als andere gebieden in de kunstmatige intelligentie zal ik ongetwijfeld ooit weer te maken krijgen met deze programmeertaal. Ook LaTeX is een vaardigheid die ik verder heb kunnen ontwikkelen tijdens de stage. Documenten heb ik getracht zoveel mogelijk in LaTeX te schrijven om op deze manier vertrouwd te raken met de details van deze manier van tekstverwerking. Omdat ik tijdens mijn studie eigenlijk nooit met LaTeX gewerkt heb vond ik dit echter wel een belangrijke vaardigheid om te beheersen voordat ik mij begeef op de arbeidsmarkt. Geven van presentaties De demonstraties die ik heb gegeven aan studenten van zowel Toegepaste Cognitieve Psychologie als Cognitieve Kunstmatige Intelligentie zijn voor mij een persoonlijke uitdaging geweest omdat ik toch altijd moeite heb gehad met het geven van presentaties op de universiteit. De presentaties voor de demonstraties waren een dubbele uitdaging omdat 15
´e´en van deze presentaties in het Engels gegeven moest worden. De reden dat ik moeite had met presentaties op de universiteit was waarschijnlijk omdat de aanwezigen kritische studenten waren met waarschijnlijk net zoveel kennis over het onderwerp als ik. Daarnaast werden de presentaties beoordeeld door docenten waardoor het maken van fouten geen optie leek te zijn, achteraf uiteraard een onterechte aanname. Dit gaf altijd dermate veel spanning dat dit ten koste ging van de presentatiekwaliteit. Onzekerheid over het beheersen van de stof was waarschijnlijk de boosdoener. De presentaties bij TNO waren in dit opzicht totaal anders. Ik was als presentator juist degene met deze specifieke kennis vergeleken met de aanwezigen. Daarnaast sta ik zelf volledig achter het onderwerp van NIFTi en was ik mij er van bewust dat de robot bij de aanwezigen waarschijnlijk net zoveel enthousiasme zou opwekken als bij mijzelf. Ten slotte zouden er geen grote consequenties aan hangen als de presentatie onverhoopt van lage kwaliteit zou zijn. Dit laatste was geen realistisch scenario, maar door de studie heb ik mezelf aangeleerd vanuit worstcase scenario’s te denken. Al deze verschillen met presenteren op de universiteit zorgden ervoor dat het presenteren en demonstreren van de robot prima ging en ik nu bewust ben van het probleem met presenteren op de universiteit. Met deze bewustwording in mijn achterhoofd zullen toekomstige presentaties, in het Nederlands danwel Engels, ongetwijfeld beter verlopen. Technische kennis Door veel te werken met de robot en de bijbehorende hardware en software heb ik enorm veel kennis en ervaring opgedaan op het niveau van computernetwerken en netwerkprotocollen. Net als bij het programmeren in C# ben ik door het oplossen van problemen bedreven geworden in het systematisch vinden van dergelijke problemen en heb ik mijn kennis over de werking van algemene systemen enorm vergroot. Voorheen had ik weinig verstand van dergelijke zaken en deed ik altijd een beroep op anderen die hier meer bedreven in waren. Het feit dat ik nu zelf een deel van deze basiskennis en -vaardigheden bezit zorgt er tevens voor dat de drempel lager is om aan projecten te beginnen waarbij zich problemen op dit niveau kunnen voordoen. Het begrijpen van systemen vind ik een belangrijke vaardigheid omdat ik dit noodzakelijk acht voor het zelf ontwikkelen van andere systemen. De NIFTi robot Door mijn technische achtergrond vond ik het een fantastische ervaring om met de NIFTi-robot te werken. Hoewel TNO eigenlijk vrij weinig met de techniek zelf doet vond ik het erg leuk om met iets fysieks te werken. Daarnaast heeft het werken met de robot mij ingeleid in de softwarekant van robots. Mijn interesse gaat altijd uit naar het laten samenwerken van software-aspecten met de hardwarekant. Dit betekent dus dat een wijziging in de software die invloed heeft op de fysieke wereld, bijvoorbeeld het laten bewegen van hardware met behulp van een softwarematig commando, mij al jaren enorm fascineert. De introductie van het gebruikte robotbesturingssysteem ROS heeft mijn beeld van een compleet robotsysteem verrijkt. Naast mijn ervaring met het bouwen van hardware heb ik nu ook wat waardevolle basiservaring opgedaan om, bijvoorbeeld hobbymatig, met robots aan de slag te gaan. Het zien dat er momenteel veel toepassingen zijn voor het gebruik van robots heeft mij ook doen beseffen dat er misschien interessante arbeidsmogelijkheden zijn in zowel de industri¨ele automatisering als praktisch toegepaste onderzoeksprojecten. Naast al deze positieve aspecten zijn er uiteraard ook zaken die ik achteraf gezien mogelijkerwijs anders had kunnen aanpakken om n´og meer uit de stage te kunnen halen. Hieronder zal ik proberen mijn knelpunten uit te leggen.
16
Positie t.o.v. verantwoordelijkheid Enerzijds vond ik het best lastig om me als stagiair te begeven tussen ervaren wetenschappers. Ik had de neiging om mij lager in de organisatorische hi¨erarchie te plaatsen dan de anderen omdat ik als onervaren nieuweling in een gevestigde orde kwam. Anderzijds werd mij een behoorlijke verantwoordelijkheid gegeven om bezig te zijn met de robot zelf en het ontwikkelen van de Trex interface. Deze verantwoordelijkheid is erg uitdagend en vereiste dat ik een beroep deed op andere werknemers om bepaalde taken te verrichten, zoals specifiek programmeerwerk. Juist door mijn functie als stagiair vond ik het moeilijk om dit van de gevestigde werknemers te vragen en de voortgang van mijn verzoeken te controleren. Achteraf gezien was dit onterecht en dus zie ik dit als een erg leerzame ervaring om gemaakte afspraken goed vast te leggen zodat ik hier altijd naar kan refereren. Na enkele gesprekken met medewerkers is mij ook gebleken dat juist de organisatorische hi¨erarchie op deze specifieke locatie van TNO minder van expliciet aanwezig lijkt te zijn dan bij andere locaties of andere instellingen. Hoewel mijn intentie was om zoveel mogelijk blanco en zonder bedrijfsspecifieke verwachtingen deze stage te beginnen waren mijn verwachtingen van de bedrijfscultuur en bedrijfshi¨erarchie dus niet geheel correct. Waar ik mij fatsoenshalve probeerde ondergeschikt op te stellen bleek dit achteraf niet nodig. Een positieve verrassing, maar moeilijk om me daar op aan te passen. Introductie in het project Achteraf gezien had ik beter ge¨ıntroduceerd kunnen worden in het NIFTi project. Het was me uiteraard duidelijk wie er bij TNO Soesterberg meewerkten aan dit project, maar buiten TNO was het me niet tot in detail duidelijk. Later in de stage bleek dat er toegewijde internetpagina’s waren waar allerhande informatie beschreven werd, maar waar bepaalde toegangsrechten voor nodig waren. Deze toegangsrechten bleken ook nog lastig te verkrijgen te zijn waardoor ik niet volledig deel kon nemen aan de informatiestroom. Naast deze pagina’s waren er ook enkele mailing lists waar ik pas op een relatief laat moment aan toegevoegd was. Als ik in het begin de meeste mails van het consortium had ontvangen was ik beter op de hoogte geweest van de actuele zaken binnen het consortium. Ik had dan beter kunnen anticiperen op ontwikkelingen en problemen binnen het project. Bij deze mails was het soms echter niet duidelijk in hoeverre TNO hier mee te maken zou krijgen, waardoor het in sommige gevallen voorkwam dat informatie niet als belangrijk beschouwd werd en op het laatste moment van belang bleek te zijn. Uiteraard wil ik niet de indruk wekken dat dit een nadeel is waar ik geen invloed op had kunnen hebben. Ik heb hier van geleerd dat ik altijd moet vragen wat het centrale punt van informatie is en waar anderen hun informatie vandaan halen, wat belangrijk is om te weten en wie bepaalde aanspreekpunten zijn. Dit geldt niet alleen binnen TNO, maar juist ook binnen het consortium van Europese partners. Het was niet duidelijk voor een nieuwkomer vastgelegd wie aanspreekpunt voor bepaalde zaken was, wat de communicatie bemoeilijkte. Het besef hiervan kwam eigenlijk pas op het moment dat er bij TNO een nieuwe stagiaire op het NIFTi project kwam en ik deze uitlegde waar ze belangrijke informatie kon vinden, bij wie ze moest zijn voor bepaalde vragen en het regelen van zaken. Ik realiseerde mij dat aan het begin van mijn stageperiode dit een belangrijk aspect was wat voor een deel ontbrak. Van de ene kant had ik wat meer initi¨ele inwijding in de informatiebronnen verwacht binnen TNO, van de andere kant heb ik hierdoor geleerd dat ik actief moet vragen naar dergelijke zaken dus dat is hoe dan ook mooi meegenomen in toekomstige projecten. Algemeen Al met al kan ik niet genoeg blijven herhalen hoe enorm waardevol ik deze stage heb gevonden. Van het besluit te kiezen om stage te gaan lopen en het kiezen van de stageplek tot aan alle ervaringen en vaardigheden die ik heb opgedaan; ik heb het gevoel dat ik in ruim een half jaar mijzelf enorm heb kunnen verrijken, zowel op professionele manier als in mijn 17
priv´eleven. Juist het besef dat de human factors kant niet geheel voor mij is weggelegd is een waardevol besef, misschien wel waardevoller dan in ´e´en keer op de goede plek belanden. Daarnaast beschouw ik de stage als een erg vruchtbare basis voor mijn afstudeerproject; het heeft mij een interessant afstudeeronderwerp gegeven wat verschillende aspecten van kunstmatige intelligentie raakt. Tijdens de stage heb ik me hierop al goed voor kunnen bereiden en me vertrouwd gemaakt met de organisatie-omgeving waarin ik dit afstudeerproject zal uitvoeren.
18
4 4.1
Appendix Stagewerkplan
19
Werkplan Stage CAI Naam: Martijn van den Heuvel Studentnummer: 3020355 Studieprogramma: Cognitive Artificial Intelligence (track Logic & Intelligent Systems) Stageperiode:
van 01-02-2012 tot 01-08-2012
Stagebegeleider TNO: Naam: Jurriaan van Diggelen
[email protected] Contact: e-mail: telefoon: +31 (0)88 866 2316 Organisatie: TNO Soesterberg Kampweg 5 3769 DE Soesterberg Stagebegeleider UU: Naam: John-Jules Ch. Meyer Contact: e-mail:
[email protected] /
[email protected] telefoon: +31 (0)30 253 4117 Motivatie: TNO is een organisatie waar kennis in de praktijk wordt toegepast. Deze praktische insteek is een basis voor onderzoeksmogelijkheden die direct een bruikbaar en tastbaar resultaat kunnen geven. Dit is voor mij erg belangrijk omdat dit de opgedane kennis binnen de bachelor en master CAI daarmee een toepassingsgebied krijgt. Door deze stage hoop ik veel inzicht te krijgen in de werkwijze van een dergelijke organisatie en de mogelijkheden die bestaan om als wetenschapper werkzaam te zijn. De specifieke expertisegroep waar ik als stagiair onderdeel van zal zijn is Perceptual and Cognitive systems; een groep die dus op veel vlakken affiniteit met kunstmatige intelligentie heeft. Mede hierdoor zal ik een goed beeld kunnen vormen van mogelijke toepassingen binnen (het extreem brede vlak van) kunstmatige intelligentie. Het project waaraan ik zal bijdragen is het NIFTI project, waarbij ‘urban search & rescue’ centraal staat. Dit project loopt al enkele jaren en biedt dus voldoende basis voor extra werk. TNO biedt de kans om bij te dragen aan dit project op het niveau van de studie wat behalve leerzaam ook serieus is. Beide zijn voor mij belangrijk om waardering uit deze stage te halen en mijn kennis en ideeën betreffende AI gerelateerde zaken te leren toepassen in een reeds bestaand project. Daarnaast biedt TNO een afstudeermogelijkheid in het verlengde van de stage, wat betekent dat de stage een perfecte aanloop is voor een specifieke afstudeeropdracht binnen hetzelfde project. Stagedoelen en beoogde resultaten: Mijn belangrijkste persoonlijke doel is vooral een ervaring op te doen in een wetenschappelijke arbeidsomgeving. Mijn huidige werkervaring is op puur praktisch niveau buiten AI en mijn enige ervaring met wetenschap is de universiteit; de stage zal een inzicht geven in de gang van zaken van een wetenschappelijk ingestelde organisatie. Daarnaast wil ik graag een nuttige bijdrage leveren aan het project om zowel zelf meer kennis en ervaring te vergaren maar tevens om TNO mogelijk te voorzien van nieuwe informatie en inzichten of producten. Hoewel dit nog niet geheel vastgelegd is zal een uiteindelijk product naast het stageverslag een implementatie kunnen zijn van bijvoorbeeld een adaptieve interface, ontologie of ontwerp van een gebruikersmodel.
Taken: In de eerste fase zal ik mij oriënteren op de verschillende takken binnen het NIFTI project om in overleg te bepalen op welk vlak ik werkzaam zal zijn. Deze fase zal maximaal enkele weken duren. Hierna zal ik op het vastgestelde vlak gaan bijdragen door middel van bijvoorbeeld programmeerwerk of ontwerp van (wederom bijvoorbeeld) adaptieve interfaces. Omdat nu nog niet vaststaat op welk vlak ik precies zal bijdragen kunnen nog geen specifieke taken toegekend worden. Dit zal in overleg met de stagebegeleiders na de eerste fase vastgesteld worden om zo alle gewenste doelen te bereiken. Afspraken: Supervisie TNO:
Supervisie UU:
Waardering:
Wekelijks persoonlijk gesprek. Voortgang van gedane werk bekijken, bespreken en eventueel bijsturen aan de hand van projecteisen en beoogde projectdoelen. Wekelijks of tweewekelijkse rapportage van stagiair aan stagebegeleider via e-mail. Voortgang, inzichten en eventuele problemen worden besproken en er wordt gekeken of de beoogde stagedoelen en -eisen van de universiteit voldoende aansluiten bij het gedane werk. Persoonlijke gesprekken zullen worden gedaan op de momenten dat daar behoefte aan is vanuit student of stagebegeleider(s). niveau 3, 30 ECTS
4.2
Verslag summer school
22
Vision and Sports Summer School 2012 & NIFTi Workshop From 27-08-2012 to 02-09-2012 PRAGUE
Martijn van den Heuvel, TNO Soesterberg
1
1
Introduction
This year, the Vision and Sports Summer School (VS3) was held in Prague (Czech Republic). The summer school offered lectures by internationally renowned experts about the state-of-theart in Computer Vision techniques. Combined with these lectures, the lecturers provided and participated in several sports activities. These lectures and sports were given from 27-08-2012 to 31-08-2012. In contrast to previous years, the summer school was this year co-organized by the European NIFTi project. Following from this co-organization, a two day robotics workshop was organized for selected participants to bring the state-of-the-art techniques in computer vision in practice. This workshop was held on 01-09-2012 and 02-09-2012. In the following sections I will shortly provide a brief evaluation of the summer school and robotics workshop.
2
Summer School
About 40 participants attended the 5-day summer school, most of them Master’s students or PhD students in the field of computer vision. However, some attendants came from different fields like human-machine interaction or computational linguistics. From several NIFTi associates some delegates were present: • DFKI: Geert-Jan Kruiff (workshop only) Benoit Larochelle • ETHZ: Francois Pomerleau Ming Liu • Fraunhofer: Thorsten Linder Viatcheslav Tretyakov Alexander Hagg Daniel H¨oller Finley David Daniel • TNO: Martijn van den Heuvel All NIFTi participants were accomodated in the same hotel (figure 1), a few minutes away from the CTU campus area (Praha 6) where the summer school took place. After registration on the first day, the programme of the summer school was as follows: 09:00 - 12:00 Lecture 12:00 - 13:15 Lunch 13:15 - 16:15 Lecture (and on some days an excercise) 16:45 - 18:45 Sports After each hour of lectures, an abundancy of refreshments was offered; coffee, tea, soft drinks, fresh fruit, cookies, chocolate and much more (figure 2a). Monday started with Jiri Matas, a lecturer from CTU. He spoke about several ways to extract local features from still images and video. Several different techniques were mentioned in detail, each with its own advantages. Speed, scaling and object recognition were main subjects in his lecture. 2
Figure 1: The outside of the hotel in which the NIFTi participants stayed.
After an extensive lunch (figure 2b) a lecture was given by Ondrej Chum, also a CTU lecturer. Chum talked about large scale image retrieval. Again, several techniques were mentioned in which vector quantization and spatial verification were the main subjects. In simple words this meant that based on the semantic information in an image, other images can be associated with this image. Halfway during the afternoon we moved to a computer room in which we made an excercise in Matlab, based on the lecture by Ondrej Chum (figure 3a). This excercise involved implementing image retrieval algorithms in a working piece of software. This was hard when no initial Matlab experience was present. At the end of the afternoon we went to either the indoor or outdoor sports facilities where I was introduced to archery with some other participants (figure 3b). Tuesday morning started with Patrick P´erez, a researcher at Technicolor in France (figure 4a). He spoke about (object) tracking techniques in video. An interesting practical application of object tracking is the tracking of mouths in motion pictures. This makes it able to blur everything in a movie except for the faces of the actors, to provide a distorted product for dubbing companies in order to prevent leaks of movies.
3
(a)
(b)
Figure 2: Refreshments during breaks and a nice lunch.
(a) The excercise on large scale object recognition
(b) Doing archery...
Figure 3: Monday’s afternoon activities
4
(a) Patrick P´erez from Technicolor.
(b) Christoph Lampert on kernel methods.
Figure 4: Two of the lecturers. Bastian Leibe, assistant professor at Aachen University, took over after lunch and talked about the categorization of visual objects for detection and tracking. Part based models and implicit shape models were interesting aspects of his lectures. These are models which describe objects in order to follow them real time in video. Sports for this day was Ultimate Frisbee for me. This was given by Carsten Rother. A very intense outdoor sport which was a lot of fun. Wednesday was completely for Carsten Rother, researcher at Microsoft. He talked in detail about Markov Random Fields and Condition Random Fields. Image denoising and segmentation into parts were the main points of interest. The lectures were followed by a practical excercise, again in Matlab, for one of the assignments was to play around with some variables in one of the algorithms of the lecture. This quickly showed what influence these factors had on the image output of the algorithm. This excercise gave nice additional insights compared to the dry mathematical formulas provided in the lecture, as well as some experience in new software environments such as Mathlab. The sport I was assigned to on this day was indoor badminton, which we played with Patrick P´erez. After the intense ultimate frisbee of the previous day, a less intense sport was a welcome treat to not further increase the myalgia. It was great fun and introduced me to new summer school participants. On thursday Christoph Lampert, assistant professor at the Institute of Science and Technology Austria, taught about kernel methods for computer vision and attribute based classification (figure 4b). Robustness versus accuracy was one of the important factors to choose an algorithm for the task. Machine learning techniques were mostly used for classification. Kernels are a powerful extension on support vector machines in terms of classification performance. Halfway during the afternoon a small quiz was organized about the information of all the previous lectures. Questions were about properties of certain algorithms, but also completely irrelevant information about how many mushrooms a certain dataset contained and how many questions you have answered right. Not very serious at all, but fun to do and to keep competition alive for sports later that day. Sports for this day was outdoor tennis, given by Jiri Matas (figure 5a). In the evening, a VS3 barbecue was organized for all participants. Most of us gathered at the tram station and took 5
(a) Tennis in the afternoon...
(b) ... barbecue in the evening.
Figure 5: Thursday’s activities.
(a) Phil Torr lecturing...
(b) ...and teaching kung-fu
Figure 6: Phil Torr from Oxford. a tram to the restaurant where it would take place. We were supplied with more than we could take and all had a great time (figure 5b). Friday was the last day of the summer school. Everyone appeared mentally and physically tired, but most of the participants showed up. In the morning, Vittorio Ferrari (lecturer at ETH Z¨ urich) lectured on shape matching and contour-based object recognition. After lunch, Phil Torr (Oxford University, figure 6a) gave a lecture about random field models for computer vision and discrete optimization. Practical applications of real-time object recognition and segmentation in vehicles was demonstrated, which showed creation of a map by a car by semantic interpretation of visual objects. In the afternoon Phil Torr taught us elementary kung-fu (figure 6b).
6
(a) The university building at Prague’s center.
(b) Testing of the generated code.
Figure 7: First of two days of robotics workshop.
(a) Presentation of the strategy.
(b) Demonstration of the algorithm’s performance.
Figure 8: Second day of the workshop.
3
NIFTi Workshop
On saturday and sunday, a small group of the participants of the summer school joined in the NIFTi robotics workshop. This workshop was given at the University in the center of Prague, instead of the campus where the summer school took place (figure 7a) The goal of this workshop was to implement computer vision techniques on the NIFTi platform (UGV). Four teams were created which had to implement code to make one of the two robots follow a recognized person. CTU had implemented the face recognition code, so the teams had to work from there to control the robot. The teams used different strategies, of which some performed better than others. Times of designing, discussing and coding were interspersed with moments of testing on the robot (figure 7b) On the second day of the workshop each team gave a short and simple presentation of their strategy (figure 8a) and showed the performance of the actual following of the robot (figure 8b).
7
4
General evaluation
I had a great time in Prague during the summer school and workshop. For me it was an adventure to travel by plane for the first time and to be by myself in a relatively far city. It was nice to meet a lot of other people from the NIFTi consortium, the names of which I only knew from emails. Unfortunately the summer school was intended for people with a lot more background in computer vision. This meant that my knowledge and skill was sometimes inadequate to fully understand certain topics. However, it showed me the state of the art techniques and prominent experts in the field of computer vision. The workshop gave a little bit more insights in python as well as ROS, which always comes in handy in the future. Everything was perfectly arranged by the organizers, from the accommodation to the refreshments during the lectures. Also, Geert-Jan showed a few of us some fantastic places in the city of Prague in the evening. All in all it was a great experience which taught me a lot about computer vision, certain programming languages and the other people (and functions) within the NIFTi consortium.
8
4.3
Evaluatie TNO
31