Skip to main content

Les 2: Een waypoint vinden

In de vorige les hebt u geleerd hoe u de Pen Holder Tool gebruikt en de 6-assige arm programmeert om een lijn op het whiteboard te tekenen. In deze les blijft u de pen gebruiken terwijl u leert hoe u het pad van de 6-assige arm kunt besturen om obstakels te omzeilen. Je leert:

  • Hoe je een waypoint identificeert om de 6-assige arm rond een obstakel te bewegen.
  • Hoe je de 6-assige arm programmeert zodat deze een gecontroleerde route volgt met behulp van een waypoint.

Aan het einde van deze les weet u welk waypoint u nodig hebt en programmeert u de 6-assige arm om een obstakel te omzeilen.

Bekijk de onderstaande animatie om te zien hoe de 6-assige arm waypoints gebruikt om lijnen te tekenen. Eerst tekent de 6-assige arm een diagonale lijn die twee waypoints verbindt. Vervolgens verbindt hij drie waypoints in een rechte hoek, zodat er geen kubus op de tegel kan worden geplaatst.

Videobestand

Waarom moet ik de baan van de 6-assige arm regelen?

Stel je voor dat meerdere robotarmen samenwerken om een product op een assemblagelijn te assembleren. De robotarmen moeten snel en nauwkeurig om elkaar heen kunnen bewegen. Elke arm moet zijn eigen, ingewikkelde pad afleggen om de operatie te laten slagen. Dit wordt bereikt door het pad van elke arm te programmeren, zodat deze langs een reeks waypoints beweegt. Hiermee wordt voorkomen dat de armen met elkaar of met het product dat ze monteren, botsen.

Robotarmen die samenwerken om een product te assembleren.

Voorheen codeerde u de 6-assige arm zo dat deze in een rechte lijn van het ene punt naar het andere bewoog. Er waren echter geen obstakels die verhinderden dat de 6-assige arm rechtstreeks van de ene naar de andere locatie kon worden gebracht. In deze les is er een obstakel aanwezig. U moet dus een waypoint identificeren waarmee u de 6-assige arm kunt programmeren om langs het obstakel te navigeren.

Het coderen van de 6-assige arm om een gecontroleerd pad te volgen

De 6-assige arm moet van punt A naar punt B bewegen, maar er bevindt zich een obstakel direct tussen de twee punten.

Bovenaanzicht van de 6-assige arm met lijnen die de x- en y-assen weergeven en eroverheen liggen. Op het whiteboard staan twee punten: A en B. Ertussen staat een blauwe x. Deze x geeft een obstakel aan.

Daarom moet u een waypoint vinden waarmee u de 6-assige arm kunt programmeren om het obstakel te omzeilen, zodat de 6-assige arm zijn bestemming kan bereiken. Een waypoint is een tussenpunt tussen twee locaties op een reisroute. In de afbeelding hieronder is punt C een waypoint. In plaats van rechtstreeks van punt A naar punt B te bewegen, kan de 6-assige arm van punt A naar punt C en vervolgens naar punt B bewegen om een botsing met het obstakel te voorkomen. 

Hetzelfde bovenaanzicht als hierboven, maar met de punten A, B en C in een driehoek. C is het nieuwe waypoint tussen A en B.

Ter informatie

De Monitor in VEXcode EXP kan handig zijn bij het vinden van specifieke coördinaten op het whiteboard. De x-, y- en z-coördinaten worden in realtime bijgewerkt op de monitor terwijl u de 6-assige arm handmatig beweegt, zodat u eenvoudig specifieke punten kunt vinden (zoals in stap 1 hieronder).

Monitorconsole in VEXcode EXP. Een tabel toont de waarden van de x,y,z-coördinaten in millimeters. Er staat een rood kader omheen.

Een waypoint vinden

Plaats uw whiteboard zoals hier getoond. Zorg ervoor dat u een whiteboardmarker gebruikt om op het whiteboard te schrijven.

Punt A ligt ongeveer op (150, 50, 0).

Punt B ligt ongeveer op (50, 150, 0).

Bovenaanzicht van de 6-assige arm met lijnen die de x- en y-assen weergeven en eroverheen liggen. Op het whiteboard staan twee punten: A en B. Ertussen staat een blauwe x. Deze x geeft een obstakel aan.

Trek een lijn van punt B naar de onderkant van het whiteboard, evenwijdig aan de x-as.

Bovenaanzicht van de 6-assige arm met de A- en B-punten gelabeld, een kader met een x tussen de punten A en B om een obstakel weer te geven en een lijn recht naar beneden getrokken van punt B naar de onderkant van het whiteboard

Teken vervolgens een lijn van punt A naar de rand van het whiteboard, evenwijdig aan de y-as.

Dezelfde afbeelding van bovenaf van de 6-assige arm als hierboven, met een toegevoegde lijn van punt A rechtstreeks naar het einde van de rechterkant van het whiteboard.

Het punt waar deze twee lijnen elkaar kruisen, is uw waypoint. Markeer het snijpunt en noem het punt C.

Dit punt zorgt ervoor dat de 6-assige arm van punt A naar punt B kan bewegen zonder het obstakel te raken.

Close-up van het snijpunt van de lijnen A en B, gemarkeerd en gelabeld als punt C.

Vervolgens moet u de coördinaten van punt C bepalen. Eerst vindt u de x-coördinaat.

Meet de afstand tussen de punten B en C en noteer deze in uw technisch notitieboekje.

Opmerking:Deze afmetingen zijn bij benadering, uw afmetingen kunnen enigszins afwijken. Zorg ervoor dat u van uw metingen in uw berekeningen gebruikt.

Dezelfde close-up als hierboven, maar met een rode lijn die de afstand van B naar C op 113 mm aangeeft.

We kunnen de bekende x-coördinaat van punt B gebruiken en de gemeten afstand die de 6-assige arm langs de x-as moet bewegen om de x-coördinaat van punt C te vinden.

In deze formule vertegenwoordigt de 'delta' een verandering in waarden. De afstand die u hebt gemeten, is de verandering in de x-waarden tussen de punten B en C.

afbeelding van de formule voor het berekenen van de x-coördinaat van punt C, waarbij x van b plus delta x gelijk is aan x van c

Voer uw waarden in om de x-coördinaat van punt C in uw technisch notitieboekje te berekenen. 

In dit voorbeeld is de x-coördinaat van C 163 mm.

Afbeelding van dezelfde formule met daaronder geschreven voorbeeldwaarden: 50 mm plus 113 mm is gelijk aan 165 mm.

Volg hetzelfde proces om de y-coördinaat van punt C te vinden. Meet eerst de afstand tussen punt A en punt C en noteer deze in uw technisch notitieboekje. Dit is de afstand langs de y-as die uw 6-assige arm moet bewegen.

close-up van bovenaf van de waypoints met de kruisende lijnen zoals eerder weergegeven, maar met een rode lijn die de afstand van punt A tot C aangeeft, namelijk 115 m m.

We kunnen de bekende y-coördinaat van punt A gebruiken, en de gemeten afstand die de 6-assige arm langs de y-as moet bewegen, om de y-coördinaat van punt C te vinden.

In deze formule vertegenwoordigt de 'delta' een verandering in waarden. De afstand die u hebt gemeten, is de verandering in de y-waarden tussen de punten A en C. 

afbeelding van de formule voor het berekenen van de y-coördinaat van punt C, waarbij y van z plus delta y gelijk is aan y van c.

Voer uw waarden in om de y-coördinaat van punt C in uw technisch notitieboekje te berekenen. 

In dit voorbeeld is de y-coördinaat van C 165 mm.

Formule voor het berekenen van de y-coördinaat van punt C met daaronder de voorbeeldwaarden, waarbij 50 mm plus 115 mm gelijk is aan 165 mm.

Het coderen van de 6-assige arm om het obstakel te omzeilen

Nu u de coördinaten voor punt C hebt bepaald, is het tijd om een VEXcode EXP-project te maken voor de 6-assige arm om van punt A naar punt B te reizen via het waypoint, punt C.

Open uw project uit Les 1 in VEXcode EXP. U gaat dit project aanpassen door een Verplaats naar positie blok toe te voegen, zodat de 6-assige arm van punt A naar punt C en vervolgens naar punt B kan bewegen.

VEXcode EXP-project leest Wanneer gestart, Stel arm-eind-effector in op pen, een opmerking die leest Verplaats naar punt A, Verplaats arm naar positie x: 150 y: 50 z: 0 mm, Wacht één seconde, een opmerking die leest Verplaats naar punt B, Verplaats arm naar positie x: 50, y: 165, z: 0.

Sleep een extra Verplaats naar positie blok naar de werkruimte. Voer de x- en y-coördinaten die u eerder hebt berekend in de parameters van het blok in.

Verplaats naar positieblok.

Bedenk welk pad de 6-assige arm moet afleggen. Eerst beweegt de pen naar punt A en vervolgens naar punt C. Het nieuwe blok Verplaats naar positie moet dus in het project worden ingevoegd tussen de twee blokken Verplaats naar positie.

Hetzelfde project als hierboven, maar met het nieuwe Verplaats naar positie-blok ingevoegd in het project tussen de twee oorspronkelijke Verplaats naar positie-blokken. Er is ook een extra commentaarblok boven ingevoegd met de tekst Verplaats naar punt C.

Geef uw project een nieuwe naam en sla het op uw apparaat op.

Noteer in uw technisch notitieboekje het pad dat de 6-assige arm volgens u zal afleggen wanneer het project wordt uitgevoerd. Je kunt dit doen met een tekening, of met woorden.

VEXcode EXP-werkbalk met het projectnaamvak gemarkeerd. De naam luidt Unit 4 Les 2.

Zorg ervoor dat de 6-assige arm is aangesloten op VEXcode. Voer uw project uit.

De 6-assige arm voorkomt een botsing met het obstakel door eromheen te gaan. Het beweegt zich van punt A naar waypoint C en eindigt bij punt B.

Bekijk deze video voor een voorbeeld van de 6-assige arm die langs dit pad beweegt.

Videobestand

Activiteit

Nu je hebt geleerd hoe je een waypoint kunt vinden en hoe je de robot kunt programmeren om erlangs te reizen, kun je deze vaardigheid gaan oefenen. In deze activiteit maakt u een project waarmee de 6-assige arm op een gecontroleerde manier van het ene nieuwe punt naar het andere nieuwe punt kan bewegen, zonder tegen het obstakel te botsen.

Bovenaanzicht van de 6-assige arm met het whiteboard bevestigd en het coördinatenraster toegevoegd. Punt A is gemarkeerd met 175, 0, 0 en punt B is gemarkeerd met -25, 150, 0.

  • Opstelling: Teken de start- en eindlocaties (A en B) op het whiteboard zoals hierboven weergegeven. U kunt de coördinaten op de afbeelding gebruiken om de activiteit in te stellen.
    • Punt A ligt ongeveer op (175, 0, 0) 
    • Punt B ligt ongeveer op (-25, 150, 0)
    • Plaats een obstakel tussen de punten A en B. In de afbeelding hierboven bevindt het obstakel (een kubus) zich op ongeveer (100, 125, 0)
  • Activiteit:Maak een VEXcode EXP-project voor de 6-assige arm, zodat deze van punt A naar punt B kan bewegen zonder tegen het obstakel te botsen. Gebruik hiervoor een waypoint.
    • Voer uw project uit om het te testen. Kan het voertuig succesvol van punt A naar punt B bewegen zonder tegen een obstakel te botsen? Indien dit niet het geval is, pas dan uw project aan en test het opnieuw.
    • Noteer in uw technisch notitieboekje het proces dat u hebt gevolgd om het waypoint te vinden en geef details over hoe u deze informatie in uw project hebt gebruikt.

Controleer uw begrip

Voordat u doorgaat naar de volgende les, moet u ervoor zorgen dat u de concepten in deze les begrijpt door de vragen in het onderstaande document in uw technische notitieboekje te beantwoorden. 

Controleer uw begrip vragen > (Google Doc / .docx / .pdf)


SelecteerVolgende >om de Mid-Unit Reflection te voltooien.