Programmeren: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
[[PRE_GROUP_3]]
[[PRE_Groep3]]
 


Programmering
Programmering

Revision as of 10:36, 17 October 2014

PRE_Groep3


Programmering


Voor het programmeren hebben we het programma Choreographe gebruikt dat ontwikkeld is door Aldebran robotics; de makers van de robot die we gebruiken. De research groep van Emilia gebruikt normaal Tivipe omdat je daar meer dingen naar je eigen hand kan zetten waardoor je makkelijker ingewikkeld gedrag kunt programmeren. Toch hebben wij voor Choreographe gekozen om twee redenen; wij hebben geen ingewikkeld gedrag nodig, slechts simpele gebaren en in Choreographe is het makkelijker om bewegingen te creëren.

Binnen dit programma kan een beweging op twee manieren tot stand komen: je gebruikt ofwel de voorgeprogrammeerde bewegingen door een blokje uit de bijgeleverde library te slepen en in je werkomgeving te plaatsen, of je maakt zelf een beweging met de timeline optie.

De eerste mogelijkheid is de makkelijkste, het programma heeft standaard een meegeleverde library die al kant en klare blokken bevat. Je sleept dan een blokje bijv. Say of Stand up, naar je werkruimte in het midden, je verbindt de input en output van het blok met de poorten in het programma, en als je dat op de play-knop drukt doet je robot het gedrag waar het blokje voor staat.

De tweede optie, die wij het meest gebruikt hebben is de timeline. De timeline is zoals de naam al doet vermoeden een tijdbalk waarin je de houding van de robot opslaat op verschillende punten in de tijd. Het is een beetje zoals het ontwikkelen van een stop-motion filmpje. Eerst moeten de motors van de robot uit zodat je handmatig het robotlichaam vrij kunt bewegen. Vervolgens beweeg je het lichaam van de robot of delen ervan en sla je de houding op, op een bepaald punt van de tijdbalk. Het programma onthoudt de stand van de motors en beweegt deze terug naar dit punt op het bepaalde tijdstip wanneer er op play gedrukt wordt. Zo laat je de robot op verschillende tijdspunten verschillende houdingen aannemen waardoor er een gebaar ontstaat.

Als je alle gebaren hebt gevormd sla je deze op als een nieuw blokje in de library. Dan heb je je eigen gebaren. Vervolgens hebben we een aantal Say blokken gebruikt om de robot het verhaal te laten vertellen en daarbij de gebaren geplaatst. Toen kon de robot dus zijn verhaaltje vertellen en de bijpassende gebaren uitvoeren, nadat het op elkaar afgestemd was natuurlijk.

Maar de kinderen moeten natuurlijk ook tijd hebben om de gebaren na te doen en de robot na te praten, en mocht er iets misgaan of mochten de kinderen het niet begrijpen dan moet de robot niet zomaar doorgaan in zijn verhaal. Er moet dus nog een soort pauze knop geïntegreerd worden. Dit hebben we opgelost door op de plekken in het verhaal vlak na een gebaar een blokje toe te voegen dat wacht op sensor-input van het hoofd van de robot. Simpel gezegd zorgt dit er dus voor dat de robot een gebaar uitvoert en vervolgens wacht tot iemand op zijn hoofd tikt. Dit geeft ons als bijstanders de tijd om de kinderen eventueel te stimuleren of extra uitleg te geven wanneer zij iets niet helemaal begrijpen.

Nu klopt alles en lijken we klaar te zijn voor een test, maar toch klopt er iets niet helemaal. De robot is erg statisch en beweegt amper tijdens zijn verhaal behalve de gebaren. Dit lijkt erg onnatuurlijk en dat kan beter met sociale robots. Dus misschien ziet het er beter uit als de robot wat ademhalingsgedrag vertoont. Dit zijn we uit gaan proberen door een blokje ademhaling dat door een van de onderzoekers van Emilia is ontwikkeld toe te voegen. Het ademhalen zag er natuurlijker uit en was fijner om naar te kijken. Maar we werken wel met autistische kinderen, ademhalingsgedrag kan ontzettend afleidend zijn en het voordeel van de robot is juist dat hij veel statischer is dan een mens en dus minder afleidt. Omdat wij zelf al behoorlijk gestoord werden in het luisteren door de beweging van de robot hebben we besloten dit er toch uit te laten, omdat het simpelweg te veel prikkels zijn voor de autistische kinderen.

Uit de eerste test bleek dat de kinderen enige tijd nodig hadden om te ontdekken wat precies de bedoeling was, het ene groepje pakte het sneller op dan de andere. Ongeveer bij het derde gebaar wisten de meesten wat de bedoeling was en toen konden ze gemakkelijk meedoen. Maar omdat het twee gebaren duurt voordat ze daar zijn hebben we ervoor gekozen om nog twee oefengebaren toe te voegen in het praatje vooraf, zodat de kinderen er al een beetje inkomen voordat het echte verhaal begint. Omdat autistische kinderen niet van verandering houden laten we de oefengebaren vooraf ook door de robot doen i.p.v. door de spreker. Er bestond al een library die ontwikkeld is door een van de onderzoekers aan de TU/e die de beoogde gebaren bevatte, hiervoor hoefden dus alleen de blokjes toegevoegd te worden.