Logistieke Robots/les 4

Uit Lab
Naar navigatie springen Naar zoeken springen
Logistieke Robots

Lessen

  1. Les 1
  2. Les 2
  3. Les 3
  4. Les 4
  5. Les 5
  6. Les 6
  7. Les 7
  8. Les 8

Software

Zie ook Regels en richtlijnen
Zie ook Artikelen bewerken

Les 4

In de vorige les heb je de basis geleerd om een controller te ontwikkelen met behulp van Python. We hebben ook de omgeving geïntroduceerd waar we de rest van het project mee blijven werken: een magazijn. De robots krijgen bestellingen binnen die uit verschillende artikelen bestaan. Ze moeten deze artikelen gaan verzamelen om de bestelling compleet te maken. Dit kan natuurlijk op meerdere manieren: een robot kan de artikelen 1 voor 1 ophalen, allemaal in 1 keer of misschien kan deze robot maar een maximaal aantal artikelen tillen, of een maximaal gewicht. Als de bestelling compleet is, krijgt een robot een nieuwe bestelling.

In deze les leren we hoe we een controller kunnen maken voor 1 robot die de artikelen 1 voor 1 ophaalt. Open de file “warehouse_one_order.blend”. Wat je in deze les ontwikkelt, gebruik je in de volgende lessen als basis om op door werken.

Sturen van de bestelling door centrale systeem

Een robot moet een bestelling doorkrijgen van een computer die het overzicht heeft over alle bestellingen. Deze controller moeten we aan een centraal object in Blender toegevoegen. We kiezen hiervoor de vloer (Ground object).

Net als in de vorige les ontwikkelen we de controller via de logic bricks en via Python scripting.

Stap 1: Python script aanmaken voor Ground object

  • Selecteer het Ground object;
  • Maak een nieuw Python script aan door op het ‘+ New’ teken te drukken in de header van de tekst editor. Geef het script de naam “central_controller.py”;
  • Voeg een Python controller aan met dit script.

Stap 2: Logic bricks voor Ground object

  • Voeg een keyboard “Start” sensor toe met de ENTER key. Druk op Tap. Dit betekent dat de sensor eenmalig een positieve puls geeft aan de controller in plaats van zolang de sensor waar is.

Keyboard controller met tap-instelling

  • Verbind deze sensor met de Python-controller van de vorige stap.

Stap 3: Programmeren script “central_controller.py”

In deze stap programmeren we de centrale controller die de bestellingen verstuurt aan de robot. Hier zullen we voor het eerst ingewikkeldere Python kennis gebruiken. Het script bouwen we op de volgende manier op:

  • Importeren van de nodige packages, ophalen van de controller en het object en declareren van de sensor. Dit hebben we ook gezien in de vorige les.
import bge
import GameLogic
import random

cont = bge.logic.getCurrentController()  # controller of this script
central = cont.owner                    # game object owning this controller

# get sensors
sens = cont.sensors["Start"]
  • Definiëren van variabelen. We hebben al gezien dat je variabelen kunt definiëren door “Game Properties” aan te maken voor een game-object zoals een robot. De vloer is ook een dergelijk game-object waar we een controller en variabelen aan kunnen koppelen. Deze variabelen kun je aanmaken en een waarde geven via het script met behulp van de volgende code:
game_object[“naam_variabele”] = waarde


Belangrijke variabelen in het pakhuis zijn hoeveel boxen er gevuld moeten worden, hoe groot de bestellingen zijn en welke artikelen in deze box kunnen zitten. Dit coderen we dus als volgt: