Robotarm och algebra

Relevanta dokument
Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Transformationer i R 2 och R 3

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

TAIU07 Matematiska beräkningar med Matlab

Linjär Algebra, Föreläsning 2

TANA17 Matematiska beräkningar med Matlab

Vi har väl alla stått på en matta på golvet och sedan hastigt försökt förflytta

Geometriska transformationer

Exempel :: Spegling i godtycklig linje.

Mekanik Föreläsning 8

Homogena koordinater och datorgrafik

Uppgift 1a (Aktiekurser utan poster)

Linjär Algebra, Föreläsning 2

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Exempel :: Spegling i godtycklig linje.

Veckoblad 3, Linjär algebra IT, VT2010

Några geometriska konstruktioner i R 3

Veckoblad 1, Linjär algebra IT, VT2010

Inledning. CTH/GU LABORATION 4 MVE /2017 Matematiska vetenskaper

Kort introduktion till POV-Ray, del 1

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Aktivitetsbank. Matematikundervisning med digitala verktyg II, åk 1-3. Maria Johansson, Ulrica Dahlberg

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Vektorgeometri för gymnasister

Exempel. Vi skall bestämma koordinaterna för de punkter som finns i bild 3. OBS! Varje ruta motsvarar 1mm

LÖSNINGAR TENTAMEN MEKANIK II 1FA102

Karta över Jorden - viktigt exempel. Sfär i (x, y, z) koordinater Funktionen som beskriver detta ser ut till att vara

Tisdag v. 2. Speglingar, translationer och skalningar

TRÄNING SOM FUNKAR - KOM IGÅNG I HÖST!

Vrida detalj samt flytta nollpunkt 1

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Uppgift 1 ( Betyg 3 uppgift )

Mer om analytisk geometri

Vektorgeometri för gymnasister

Analys o Linjär algebra. Lektion 7.. p.1/65

Konvexa höljet Laboration 6 GruDat, DD1344

Inlämningsuppgift 4 NUM131

Mer om geometriska transformationer

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

M = c c M = 1 3 1

LiTH Golfspelande industrirobot Designspecifikation. Designansvarig: Mikaela Waller Version 1.0. Status. Granskad Martin

Här följer fyra övningar som värmer upp axlarna, skuldrorna och ryggen.

Rumsuppfattning är förmågan att behandla sinnesintryck av former

Tentamen Mekanik MI, TMMI39, Ten 1

Linjär algebra på några minuter

Tentamen TNM061, 3D-grafik och animering för MT2. Onsdag 20/ kl SP71. Inga hjälpmedel

LYCKA TILL! kl 8 13

Vektorgeometri för gymnasister

Tyngdlyftning 3 övningar som hjälper dig att lyfta starkt.

UPPVÄRMNINGSPROGRAM 1 - Del 1

Målsättningar Proffesionell kunskap. Kunna hänvisa till lagar och definitioner. Tydlighet och enhetliga beteckningar.

FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar

15 februari 2016 Sida 1 / 32

SF1624 Algebra och geometri Lösningsförslag med bedömningskriterier till kontrollskrivning 2 Fredagen den 28 januari, 2011

Modul 1: Komplexa tal och Polynomekvationer

Tentamen Mekanik F del 2 (FFM521 och 520)

e = (e 1, e 2, e 3 ), kan en godtycklig linjär

1 basen B = {f 1, f 2 } där f 1 och f 2 skall uttryckas i koordinater i standardbasen.

TDDD78 projekt: Tower Defence

1 som går genom punkten (1, 3) och är parallell med vektorn.

Stöd inför omtentamen i Linjär algebra TNA002.

e 3 e 2 e 1 Kapitel 3 Vektorer i planet och i rummet precis ett sätt skrivas v = x 1 e 1 + x 2 e 2

(d) Mängden av alla x som uppfyller x = s u + t v + (1, 0, 0), där s, t R. (e) Mängden av alla x som uppfyller x = s u där s är ickenegativ, s 0.

2s + 3t + 5u = 1 5s + 3t + 2u = 1 3s 3u = 1

Kapitel 2 Vägg/golv... 3

Tentamen Mekanik MI, TMMI39, Ten 1

. b. x + 2 y 3 z = 1 3 x y + 2 z = a x 5 y + 8 z = 1 lösning?

Matematik CD för TB. x + 2y 6 = 0. Figur 1:

markera med kryss vilka uppgifter du gjort Avsnitt: sidor ETT ETT TVÅ TVÅ TRE TRE FYRA FYRA klart

Polygoner. Trianglar på tre sätt

ANDRAGRADSKURVOR Vi betraktar ekvationen

Omtentamen TNM077, 3D datorgrafik och animering (samt även TNM008, 3D datorgrafik och VR)

9-1 Koordinatsystem och funktioner. Namn:

Fingerprint Matching

Hemuppgift 1, SF1861 Optimeringslära för T

Tentamen i Beräkningsvetenskap II, 5.0 hp,

Miniprojektuppgift i TSRT04: Mobiltelefontäckning

LINJÄRA AVBILDNINGAR

Stretcha nacke. Stretcha armar. Stretcha kroppen för Innebandy

Kapitel 17 Delritning... 3

Träningssplan: vecka 7-12

Betygsgränser: För betyg. Vem som har. Hjälpmedel: av papperet. Uppgift. 1. (4p) 0. (2p) 3 (2p) Uppgift. 2. (4p) B-2C om. vektor A (1p) b) Bestäm k så

Kompisträning. Dubbelt så kul, dubbelt så bra. Här är 9 kul parövningar där du och en kompis lyfter varandra och er träning till nya höjder.

Uppgift 1 ( Betyg 3 uppgift )

Tentamen Mekanik F del 2 (FFM520)

Tentamen i Linjär algebra (TATA31/TEN1) ,

Träningssplan: vecka 1-6

SF1624 Algebra och geometri

c d Z = och W = b a d c för några reella tal a, b, c och d. Vi har att a + c (b + d) b + d a + c ac bd ( ad bc)

3.0. Tips och Trix Sida 1 av 18

Detta cosinusvärde för vinklar i [0, π] motsvarar α = π 4.

Linjära avbildningar. Låt R n vara mängden av alla vektorer med n komponenter, d.v.s. x 1 x 2. x = R n = x n

Tentamen i SG1140 Mekanik II för M, I. Problemtentamen

Tillämpad biomekanik, 5 poäng Övningsuppgifter

Tynker gratisapp på AppStore

ComfortControl 01 GUNGLÅS 02 GUNGMOTSTÅND 05 RYGGHÖJD 03 SITTDJUP 06 RYGGVINKEL 04 RYGGHÖJD 07 ARMSTÖD HÖJD 08 ARMSTÖD BREDD 09 ARMSTÖD DJUPLED

2. Avgör om x och z är implicit definierade som funktion av y via följande ekvationssystem. x 3 + xy + y 2 + z 2 = 0 x + x 3 y + xy 3 + xz 3 = 0

Den golfspelande roboten

Föreläsning 5: Acceleration och tidsderivering (kap ) . Sambandet mellan olika punkters hastigheter i en stel kropp: v A

Transkript:

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson 2010-12-07 Robotarm och algebra I denna laboration skall du lära dig lite mer om möjlighetera att rita ut mer avancerade saker i MatLab, använda inbyggda matrisfunktioner samt öva på saker som är genomgådda i er kurs Linjär algebra. Tidsåtgång Denna laboration beräknas ta ca 7 timmar i anspråk (4 timmar bokade med assistent). Mål Du ska efter denna laboration känna till ännu mer om hur MatLabs inbyggda grafiska möjligheter hur man gör rotationer, translationer m.m. diverse inbyggda saker i MatLab Uppgift 1 - kopplad till er algebrakurs (ca 5 tim 20 min) Du skall skriva en funktion som tar emot en parameter, som beskriver ett antal sektioner av en robotarm, och sen ritar ut robotarmen. Det är givet att robotarmen siter fast i ett golv (som är ogenomträngligt) och att varje led är en kul-led som gör att två sektioner i princip kan ligga parallellt (d.v.s. sektionerna går åt varsitt håll) även om detta är fysiskt helt omöjligt. Den första sektionen (som sitter fast i golvet) har också en kulled, men denna sektion får givetvis inte gå neråt, d.v.s. genom golvet. Ovanstående ger att vi kan vika alla sektioner (utom den första) 360 grader i alla riktningar. För att beskriva en sektion behöver vi 3 data som beskriver sektionen. Dessa är två vinklar som beskriver rotation runt z-axeln (första datat) samt rotation runt y-axeln (andra datat) samt längden på sektionen (tredje datat). I vilken ordning man roterar armen runt de olika axlarna är i denna uppgift mycket relevant. Startpositionen för varje ny sektion utgår givetvis ifrån föregående sektions ändpunkt. Vinklarna beskrivs alltid utifrån att rotationerna sker runt origo. Om den andra vinkeln för första sektionen är 0 grader står den första sektionen rakt upp från golvytan. Är denna vinkel 90 grader och den första vinkeln är 0 grader ligger första sektionen längs golvytan längs med x-axeln. Är båda vinklarna 90 grader ligger sektionen längs y-axeln. I detta system går alltså z-axeln uppåt. Figuren nedan visar hur axlarna ligger i förhållande till varandra. Vill du ha detta mer visuellt kan du tänka dig att du står i origo och ritar x-axeln åt höger på golvet, y- axeln rakt fram och z-axeln går då rakt genom din kropp uppåt. Sida 1

För att beskriva hela robotarmen lägger man alla sektionernas data efter varandra i en vektor av dimension 1 x antal sektioner x 3 (3 sektioner ger alltså en 1x9-vektor). Vi kallar denna för en specifikationsvektor i denna uppgift. Vi håller oss alltid i samma koordinatsystem vilket leder till att alla sektioner kommer att roteras på samma sätt, men de har ett nytt origo att rotera runt. Detta leder till att det räcker att hålla reda på var detta nya origo befinner sig i det fasta koordinatsystemet. Tips 1: Rotera alltid först runt y-axeln och sen runt z-axeln (moturs i båda fallen). Tips 2: I MatLab finns det några saker som kan vara roliga för att rita saker. T.ex. cylinder, sphere och surf kan vara trevliga i denna uppgift. I den roterande kuben finns lite rotationer m.m. Tips 3: Testa lite vad de olika funktionerna i tips 2 returnerar och planera för vad som behöver göras för att kunna rotera, translatera m.m. Det är inte säkert att man direkt kan applicera algebran på det man får från dessa funktioner. Uppgiften är att rita ut hela robotarmen givet specifikationsvektorn. Utritningsfunktionen skall heta draw_robot_arm och endast ta en specifikationsvektor som indata. Det är givetvis tillåtet att använda underfunktioner för att lösa delproblem (kanske till och med rekommenderat). Exempel 1: Antag att vi vill rita ut en robot som har 1 led förutom den som sitter fast i golvet. De två delarna skall vara 5 respektive 5 enheter långa. Den första sektionen skall inte roteras kring z-axeln, men den skall roteras 45 grader runt y-axeln. Motsvarande vinklar för den andra sektionen är (z=90, y=90). Anropet till din utritningsfunktion skall då innehålla 6 data enligt följande: draw_robot_arm([0, 45, 5, 90, 90, 5]); Detta anrop bör ge följande figur som resultat (sett uppifrån respektive som 3D-vy): De olika färgerna i figurerna är något som MatLab själv valt. Man kan sätta färger och en massa annat på egen hand, men detta är något som ni inte behöver ge er in på. I den vänstra bilden ser vi robotarmen uppifrån och den blå sektionens sfär har sitt centrum i koordinaten (0, 0, 0), d.v.s. hela koordinatsystemets origo. Z-axeln går ut ur figuren, d.v.s. mot dig. Den andra sektionen har sin sfär med sitt centrum i den koordinat där första sektionen slutar. Sida 2

Hur ser man att detta är rätt? Vi tar det steg för steg och börjar med den första sektionen: Man tänker sig att man tittar mot origo från den positiva sidan av y-axeln och sen roterar den första sektionen 45 grader (motsols) runt y-axeln så blir den att luta så att den ligger mellan z-axeln och x-axeln. Detta verkar ok. Då rotationen kring z-axeln sen är 0 grader händer inget mer med den första sektionen. Den andra sektionen: Vi utgår återigen från en stående sektion placerad i origo (för att utföra rotationerna) och roterar denna 90 grader runt y-axeln. Detta ger att sektionen kommer att ligga längs med x-axeln. Efter detta tittar vi mot origo längs z-axeln och roterar sektionen 90 grader (motsols). Detta ger att sektionen ligger längs y-axeln. Sätter vi sen ihop delarna ser vi att vi får figuren ovan. Exempel 2: Antag att vi vill rita ut en robot som har 3 leder förutom den som sitter fast i golvet. De fyra delarna skall vara 5, 5, 10, respektive 5 enheter långa. Den första sektionen skall inte roteras kring z-axeln, men den skall roteras 45 grader runt y-axeln. Motsvarande vinklar för de tre återstående sektionerna är (z=90, y=90), (z=180, y=45) samt (z=0, y=180). Vi har byggt på exempel 1:s robotarm med två sektioner till. Den vektor som skall skickas in till din utritningsfunktion skall då innehålla 12 data enligt följande anrop: draw_robot_arm([0, 45, 5, 90, 90, 5, 180, 45, 10, 0, 180, 5]); Detta anrop bör ge följande figur som resultat (sett uppifrån respektive som 3D-vy): Uppgift 2 (ca 10 min) Skriv funktionen show_robot_arm_movements som tar emot en matris bestående av ett antal rader med data, där varje rad beskriver hur robotarmen ser ut i ett givet ögonblick, och sen ritar ut robotarmen i varje position som beskrivs i matrisen. Det är viktigt att man kan se varje position (använd pause). Anropsexempel: show_robot_arm_movements([0 0 5 0 0 5 ; -45 45 5 90-90 5]); Uppgift 3 (ca 1 tim 30 min) Modifiera show_robot_arm_movements så att man får lite mjukare rörelse av robotarmen. Detta kan åstadkommas genom att man ritar ut armen i mellanpositioner till de rader som finns i den inkommande matrisen. T.ex. kan man låta vinklarna modifieras stegvis tills man nått nästa position. Sida 3

Sida 4

Sida 5

Sida 6