Logistieke Robots/les 2

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 2 - Objecten zoeken en verplaatsen

In dit project willen we robots toepassen in de logistieke sector. Wanneer robots actief zijn in de logistieke sector betekent dit vaak dat robots bepaalde objecten moeten zoeken, oppakken en naar een doel moeten brengen. Hoe we een robot moeten aansturen die dit kan gaan we zien in deze les. Het eindresultaat van deze les ziet er als volgt uit: https://www.youtube.com/watch?v=z22EOFDgOj4.

Voor deze les maken we gebruik van het bestand living_room.blend. Wanneer je het bestand opent zie je een huiskamer en een aantal boeken die rondslingeren in de kamer. We willen dat de robot de boeken kan herkennen, er naar toe kan lopen, op kan pakken en in de boekenkast kan zetten. In paragraaf 1 zullen we de robot aansturen via het toetsenbord en in paragraaf 2 laten we de robot deze taak autonoom (=zelfstandig) uitvoeren.

Object naar het doel verplaatsten met het toetsenbord

Aan de hand van 5 stappen kunnen we de controller gaan maken. Zorg ervoor dat je eerst zelf nadenkt over de stappen die je uit moet voeren voordat je naar de print kijkt hoe de controller eruit moet zien.

Stap 1: Naar het boek lopen

Wanneer je op Morsy klikt, zie je in de logic editor dat er vier Keyboard sensors aangemaakt zijn. Hier kunnen we Morsy mee naar een boek laten lopen. Als je goed kijkt zie je ook dat er een Game Property aangemaakt is met de naam Morsy. Zo kunnen andere objecten Morsy herkennen. Waarom dit nodig is zien we later.

Stap 2: Boek vastpakken

Omdat Morsy geen armen heeft kan hij het boek niet vasthouden zoals wij dat zouden doen met onze handen. Morsy kan wel naar het boek lopen en wanneer hij contact heeft met het boek kun je je voorstellen dat het boek vast zit aan Morsy door middel van een magneet. Dit kunnen we als volgt doen: Ga naar de controller van book_blue_ground en voeg een Collision sensor toe. Geef bij Property aan dat het om Morsy gaat. Voeg een Parent actuator toe waarbij je bij Parent Object Morsy selecteert. Verbind de twee met elkaar. Er komt dan automatisch een And controller tussen. Wanneer je nu in de spelmodus gaat (druk op P) en naar het blauwe boek loopt, zie je dat het blauwe boek vast blijft zitten aan Morsy. De controller ziet er als volgt uit:

Les2-book-controller.png

Stap 3: Naar het doel lopen

Het doel, de kast waar de drie dezelfde boeken wel in de kast staan, kan bereikt worden door middel van het toetsenbord. Wanneer Morsy met het boek bij de kast is wil je dat het boek in de kast komt te staan. Het visualiseren van deze actie is niet een van de leerdoelen van dit project. Uiteraard mag je Morsy voorzien van een grijparm en visualiseren hoe Morsy het boek in de kast zet maar dit zal veel tijd in beslag nemen. Daarom gebruiken we een eenvoudiger methode.

Stap 4: Boek in de kast plaatsen

Wanneer Morsy de kast bereikt met een boek, wil je dat dit boek verdwijnt en dat het boek in de kast zichtbaar wordt. Voordat Morsy kan herkennen of er aanraking plaatsvindt met de kast, moet de kast een Game Property hebben.

Voeg kast-game property "Goal" toe

Selecteer de kast en voeg een ‘String’ Game Property toe aan de kast met de naam ‘Goal’: Add property: Goal

Voeg Morsy-sensoren en actuatoren toe

Selecteer nu weer Morsy en voeg een Collision sensor toe en twee Message actuatoren naar het blauwe boek op de grond en in de kast met als Subject ‘Done’: Add message actuators: Done

Boek op de grond wordt opgepakt (onzichtbaar)

Zorg ervoor dat het blauwe boek op de grond het bericht kan ontvangen en hierna onzichtbaar wordt: Boek wordt onzichtbaar

Boek in de kast wordt zichtbaar

Zorg er ook voor dat het boek in de kast vanaf het begin onzichtbaar is totdat deze het bericht ‘Done’ krijgt van Morsy. Neem zelf even de tijd om te bedenken hoe dit moet. Boek wordt in kast zichtbaar

Uiteindelijk resultaat

Het kan er uiteindelijk als volgt uit zien:

Morsy verplaatst het boek Voor hulp zie: https://www.youtube.com/watch?v=nEgubbYwRy0

Wanneer je zelf andere sensoren en actuatoren gebruikt die hetzelfde resultaat als gevolg hebben, mag dit ook.

Object herkennen met een radar

In deze paragraaf leren we hoe Morsy zelf naar de boeken kan lopen zonder aansturing via het toetsenbord. Hiervoor moet Morsy tussen verschillende States (toestanden) kunnen schakelen. Morsy moet eerst de kamer afzoeken naar de boeken. Wanneer Morsy een boek gevonden heeft moet hij hier naartoe lopen en erna mogelijk weer verder zoeken om vervolgens de boeken bij de kast af te leveren.

We gebruiken de volgende toestanden (states):

  • 1: zoeken naar boek 1 (met een radar-sensor), bewegen naar het boek, en oppakken van het boek
  • 2: oppakken van boek 1 en in de kast plaatsen
  • 3: zoeken naar boek 2
  • 4: oppakken van boek 4
  • 5: loop naar de kast en plaats de boeken daarin

Stap 1: Opzetten

In de vorige paragraaf konden wij de boeken zien liggen en Morsy erheen sturen via het toetsenbord. Nu willen we dat Morsy zelf de boeken kan vinden. Geef de boeken die op de grond liggen de Game Property ‘book_1’ en ‘book_2’ en verwijder alle sensorsen en actuators van Morsy.

Stap 2: Boeken detecteren

We gaan Morsy voorzien van verschillende Radars die de boeken kunnen detecteren. We voegen eerst een radar toe voor book_1

  • Om de boeken te kunnen zien met de Radars moet Morsy rondjes draaien. Voeg een Always sensor toe die een Motion actuator activeert waarbij je 2 graden om de Z as beweegt.
    • controleer of deze werkt;
  • Voeg een Radar sensor toe met Property book_1, over de –X as (-X axis), een hoek (Angle) van 50 graden en een afstand (Distance) van 8 meter.
    • Om de radar te kunnen zien in de 3D view, kun je in de info window van Blender drukken op Game > Show Physics Visualization. Wanneer je nu naar de spel modus gaat kun je de radar zien. Je kunt de Physics Visualization hierna weer uitzetten.

Stap 3: Boeken ophalen in verschillende states

  • Voeg aan Morsy een Integer Game Property toe genaamd ‘number’. Dit is het aantal boeken dat Morsy opgepakt heeft. We laten Morsy de boeken in een speciale volgorde ophalen. Dit is nodig wanneer je met de logic bricks werkt. In de volgende les zien we dat het met Python sneller kan. Wanneer de radar het boek ziet met property book_1 en deze moet ophalen (property number is dan nog 0) gaat Morsy naar state 2. De controller ziet er nu als volgt uit:
    Controller state 1

Nu moeten we een invulling gaan geven aan de controller in state 2.

  • Druk op het plusje links naast de Controller bar. En ga naar state 2. Initial geeft aan in welke state je begint.
    In deze state wil je dat Morsy naar een bepaald boek loopt. In dit geval het boek met property book_1. Dit kan met een Steering actuator. Je kan variëren met de snelheid en afstand om het ophalen zo natuurlijk mogelijk te laten verlopen.
  • Wanneer Morsy het boek bereikt heeft moeten er een aantal dingen gebeuren.
    • Morsy moet laten weten aan het boek dat het zich vast moet klampen aan de robot.
    • Vervolgens gaat de number property 1 omhoog zodat Morsy op zoek kan naar het volgende boek wanneer hij teruggezet wordt naar state 1. De controller ziet er nu als volgt uit:
      Controller state 2
  • Wanneer we een bericht sturen naar het boek, moeten we de controller van het boek wel aanpassen. De Collision sensor van het boek veranderen we in een Message sensor op de volgende manier:
    Bestand:Voorbeeld.png

Herhaal deze procedure voor boek 2 en 3 (gebruik states 3 en 4 hiervoor). Wanneer Morsy alle boeken gevonden heeft, zal de number property op 3 staan en moet Morsy terug naar de kast. Het lopen naar de kast kan gezien worden als state 5. Voeg in state 1 een property sensor toe. Als deze gelijk is aan 3, zet Morsy dan in state 5.

In state 5 moet je altijd sturen naar de kast. Als je hier bent stuur je een Done message naar alle boeken. Zet Morsy vervolgens in state 6: een lege state. State 5 ziet er als volgt uit: Bestand:Voorbeeld.png

voor hulp zie: https://www.youtube.com/watch?v=s3YjWyM_QWs

Plusopdracht

Het is je vast al opgevallen dat het best lastig is om van een toetsenbord controller naar een autonome controller te gaan. In de plusopdracht verbeter je twee aspecten:

  1. Wanneer de radar afstand van Morsy kleiner is, moet Morsy naast alleen draaien ook gaan wandelen om de boeken te kunnen detecteren.
  2. Met een toetsenbord kun je makkelijker om een obstakel heen navigeren. Nu zal Morsy tegen alles opbotsen wat tussen hem en het doel instaat. Zorg ervoor dat Morsy om obstakels heen kan lopen.

Als je even niet meer wilt programmeren kun je ook gaan werken met de camera's

  1. Probeer de kamer vanuit Morsy te bekijken. Voor hulp zie: https://www.youtube.com/watch?v=Rmeq85kt8zE