Kunstmatige intelligentie — Programmeeropgave 2, 2005 — Robotica

De tweede programmeeropgave (in het voorjaar van 2005) behorende bij het vak Kunstmatige intelligentie gaat over het programmeren van Lego-robots.
Robot-opgave 2004

Er moeten Lego-robots geprogrammeerd worden in een soort C-variant (NQC; handleiding (288 kB, PDF; geschreven door Mark Overmars)). Lees om te beginnen eens Hoofdstuk 25 van Russell/Norvig door (in het bijzonder de tekst over de subsumption architectuur in Hoofdstuk 25.7; zie ook Rodney Brooks' "Intelligence without representation").

In het media lab (rechts bij de ingang van het gebouw) staan te zijner tijd Lego-robotjes klaar. Ieder tweetal studenten kan na reservering twee keer een dagdeel werken met de speciale computer ("Cyber") die hiervoor nodig is; handleidingen zijn ter plekke aanwezig. Van te voren doorlezen is sterk aan te raden. Toegangscodes en paswoorden zijn verkrijgbaar bij de docent, evenals een A4 met allerlei aanwijzingen.

Wat moet er gebeuren? De robot (agent) moet een wandeling maken en daarbij een wit licht-plastic blokje detecteren. Vervolgens moet hij dit blokje meenemen (maak hiertoe zelf een eenvoudige Lego-constructie voorop de bumper), ook bij draaiingen. De robot moet na het vinden het blokje in een (willekeurige) hoek van het "speelveld" brengen, en het dan daar weer laten liggen. Een en ander speelt zich af in het "speelveld", een door bijvoorbeeld kartonnen dozen (bijvoorbeeld Lego-dozen) begrensde rechthoekige ruimte van zeg een bij anderhalve meter. Hierin ligt op een willekeurige plaats één blokje. De robot wordt ergens in het vierkant neergezet. Het blokje mag eventueel —om beter herkend te worden— versierd worden met reflecterend materiaal, of iets dergelijks, dit ter onderscheid van de "muren".

Gebruik een "proximity-sensor" om botsingen zoveel mogelijk te vermijden.
Het blijkt lastig muren en blokje uit elkaar te houden zonder te botsen. Wellicht gaat het beter met twee lichtsensoren, wat uit elkaar aangebracht? Bedenk anders een redelijke variant.
Er ligt in de kartonnen doos een fietslampje, misschien helpt het als dat ergens wordt geplaatst.

Besteed in het verslag kort aandacht aan de prestaties van de robot. Hoe snel werd het blokje meestal gevonden? Werd er vaak gebotst? Hoe waren de lichtomstandigheden? Let op: bij deze opgave is opnieuw het verslag van minstens even groot belang als het programma! Let ook op de op- en aanmerkingen bij het nagekeken eerste verslag.

In te leveren: geprint verslag (in LaTeX gemaakt; de NQC-code als Appendix, zie verder hier voor opmerkingen over het verslag), en demonstratie: maak hiervoor een afspraak met de docenten.

Varianten:

Deadline: maandag 14 maart 2004.


Vragen en/of opmerkingen kunnen worden gestuurd naar: kosters@liacs.nl.

16 februari 2005 — http://www.liacs.nl/home/kosters/AI/robo.html