Gedragsgebaseerde programmering

Programmeercomplexiteit
Robots kunnen worden ontworpen om een breed scala aan taken uit te voeren. Sommige van deze taken zijn heel eenvoudig, zoals het openen van een automatische deur. Andere systemen kunnen veel complexer zijn, zoals een zelfrijdende auto die door een stedelijke omgeving navigeert. Ongeacht hoe complex de taak is, deze kan worden opgedeeld in eenvoudigere taken. Deze taken worden gedragingen genoemd en vormen de bouwstenen van roboticaprogrammering.
Gedrag is de manier waarop een robot handelt en kan in complexiteit variëren, afhankelijk van hoe de robot is gebouwd of geprogrammeerd. Een eenvoudige mobiele robot zoals de VEX V5 Speedbot heeft slechts twee motoren, terwijl de Clawbot er vier heeft, waaronder twee extra motoren voor de Arm en de Claw. Beide robots zullen de motoren zodanig moeten aansturen dat ze bepaalde doelen bereiken. Met meer ontwerp en programmering kunt u met dit eenvoudige gedrag beginnen en vervolgens complexere gedragingen uitvoeren.
Hieronder vindt u een lijst met robotgedragingen, van eenvoudig tot complex, voor zowel de Speedbot als de Clawbot. Tussen haakjes ziet u de eenvoudigere gedragingen waaruit elk gedrag bestaat.
- Draai een motor die aan een bepaalde poort is toegewezen
- Rijd vooruit (draai zowel de linker- als de rechtermotor met behulp van de aandrijflijn)
- Rijd 5 meter (rijd vooruit en stop dan)
- Pak een verafgelegen object (reis 2 meter, draai de klauwmotor om het te pakken)
- Haal een voorwerp op en leg het op een hoge plank (pak een voorwerp op afstand, draai je om, leg 2 meter af en gebruik de arm- en klauwmotoren om het voorwerp op te tillen en los te laten)
Je ziet hoe je complexe gedragingen kunt opdelen in eenvoudigere gedragingen. Deze vormen de bouwstenen van elke complexe taak.
Tips voor leraren
-
Geef leerlingen de opdracht om het complexe robotgedrag op te delen in kleinere, eenvoudige stappen. Dit proces staat bekend als ontbinding.
-
Leg de leerlingen uit dat het opdelen van complex gedrag in eenvoudigere taken een belangrijk onderdeel is van plannen en programmeren.
-
Geef leerlingen de mogelijkheid om zelfstandig aan hun projecten te werken als er voldoende lestijd is.
Breid uw leerproces uit
Om deze activiteit te verbinden met computationeel denken en decompositie, vraagt u leerlingen om de gedragsstappen in kaart te brengen of op te sommen die een robot zou uitvoeren om de onderstaande activiteiten uit te voeren:
-
Activiteit één: Leg 1 meter af en keer terug naar het beginpunt.
-
Activiteit twee: Draai een doos om die 60 cm voor de robot staat.
-
Activiteit drie: Pak een voorwerp op, schud het, loop 30 cm, zet het voorwerp op de grond en keer terug naar het beginpunt.
Motiveer discussie
Leerlingen moeten de gedragsstappen die ze hebben opgesomd voor de activiteiten uit 'Verleng uw leerproces' hierboven delen. Elk van de volgende vragen kan na één of alle activiteiten worden gesteld.
V:Welke stappen of gedragingen heeft elke groep opgesomd om deze activiteit succesvol te voltooien?
A:Studenten moeten rekening houden met de afstand die de robot moet afleggen en de beweging en snelheid van de arm. Daarnaast moeten ze de eenvoudige robotgedragingen opnoemen die nodig zijn om de activiteit of taak te voltooien (vooruit rijden, achteruit rijden, naar links of rechts draaien). Studenten moeten hun lijsten met gedragingen zo maken dat elke stap erin is opgenomen.
V:Wat waren de overeenkomsten en verschillen tussen de oplossingen (lijsten met stappen) voor deze activiteit?
A:Studenten zullen vergelijkingen maken op basis van hun oplossingen. Een Venn-diagram kan een goede manier zijn om de stappen die studenten delen te organiseren. Als de meerderheid van de studenten een bepaalde stap noemt, voeg deze dan toe in het midden waar de cirkels elkaar overlappen. Als slechts één of enkele studenten een bepaalde stap noemen, voeg deze dan toe aan de ene of de andere cirkel. Als u dit hebt gedaan, zijn de stappen in het midden betrouwbaar eenvoudig en kunnen ze niet verder worden opgesplitst. De stappen die slechts in één van de cirkels staan, zijn daarentegen waarschijnlijk niet zo eenvoudig als ze zouden kunnen zijn. Dit patroon kan echter ook worden omgedraaid, afhankelijk van de ervaring van de klas met het opdelen van ingewikkelde gedragingen in de eenvoudigste stappen.
V:Zijn er overeenkomsten met de succesvolle oplossingen? Zo ja, welke waren dat?
A:De meest succesvolle oplossingen waren die met de meeste details en specificiteiten. De robot is geprogrammeerd in een taal met heel specifieke gedragingen die zijn opgesplitst in de kleinste onderdelen. Het is bijvoorbeeld gebruikelijk om te zeggen dat een robot "1 meter aflegt en dan terugkeert naar de startpositie", maar die algemene omschrijving is lastig te vertalen bij het programmeren. Je moet het nog verder opsplitsen: rijdt 1 meter vooruit, draait 180 graden en rijdt 1 meter vooruit. Maar zelfs dat is misschien nog niet precies genoeg. Je hebt dit detailniveau nodig om te kunnen programmeren: stel de aandrijf- en draaisnelheid in op 40%, rijd 1 meter vooruit, wacht 3 seconden, draai 180 graden naar links, wacht 1 seconde en rijd 1 meter vooruit. Hoe verder we complexe gedragingen opsplitsen tot programmeerbare robotgedragingen, hoe beter we voorbereid zijn om een project te voltooien.