formålet med dette dokumentet er at det skal gi et overblikk over pensumet, slik at det blir mye lettere å lese til muntlig eksamen, også lettere å bla tilbake i senere tid, samt et sammendrag fra forelesningene til Svein Ivar Sagatun.

Ordbok

link = arm

joint = ledd

frame = ramme

joint space = leddrommet

operational space = oppgaverommet

TCP = Tool Centre Point

End-effector = samme som TCP, enden/tuppen av robotarmen

redundans = overskudd (av krefter, ledd,,) samme som overaktuert system

åpen kinematisk sløyfe

lukket kinematisk sløyfe

singularitet

Eksamenstips

Kapitler merket med * er oppgaver som kan dukke opp på eksamen...

Prosjektoppgave tips

Forelesninger

Introduction to the course and robotics in general.

Kinematics

Denavit Hartenberg convention

Denavit Hartenberg

Differential kinematics

Dynamics and some differential kinematics.

Dynamics, Trajectories and Motion Control.

Kap 2 - *Kinematikk

Sammendrag: Handler om rotasjonsmatriser, vektorer, direkte kinematikk, Denavit-Hartenberg konvensjonen

Derivasjon

MATH

hvor MATH, dvs $\alpha $ er en funksjon av tiden (derfor derivert av kjernen)

2.2 2.3 Om rotasjonsmatriser




egenskaper til rotasjonmatrisenMATH

$\det R=1$ er høyrehåndssystem, og $\det R=-1$ er venstrehåndssystem

Rotasjonsmatrisen mellom to rammer er et element av MATHspesiell ortogonal gruppe av 3.ordenMATH

et lite bevisMATH

litt mer om ortogonalitet...

Skjevsymmetriske matriser

se kap 4.1.1




kryssproduktet til en vektor er definert somMATH

da er den skjevsymmetriske

MATH

egenskapMATH

Inverse matriser

MATH

venstre og høyre invers eksisterer kun hvis A har full rang. Hvis A er singulær (mister rang, det=0) eksisterer ikke den inverse.

Determinant

regler mht determinantMATH

Elementærrotasjoner

Rotasjon om z-aksen girMATH

det girMATH

vektor fra et koordinatsystem til et annetMATH

vektor gjennom flere koordinatsystem (eller robotakser)MATH

Notation

i robot postmultipliserer man rotasjonmatriser, i navfart premultiplisering, hvorfor?

Notation

i robot roterer man i forhold til aksene. akse1 vs akse2....

2.5 Rotasjon om en vilkårlig akse (nyttig og praktisk)

MATH

hvor MATH

2.6 Kvarternioner (ikke forelest, men pensum?)

ikke forelest, men pensum? SIS har aldri brukt dette i praksis...

2.7 Homogene transformasjoner

relasjonen mellom et punkt i to koordinatsystem (frames), kan utvides med et fjerde elementMATH

homogen transformasjon (koordinat transformasjon)MATH

som betyr en transformasjon fra frame 1 til frame 0

Dette kan skrives på en kompakt form somMATH

transformasjon fra ramme 0 til ramme 1 er daMATH

Notation

ikke ortogonal $\ A^{-1}\neq A^{T}$

2.8 Direkte kinematikk

Hvor er TCP (tool centre point / end-effector) når vinkler og utstrekning er gitt?

Dvs vi vet vinklene i hvert robotledd og forskyvning (hvis prismatiske ledd)

Homogen transformasjon gitt i base koordinater (n s a p, normal sliding approach position)

MATH

hvor $p$=posisjon til end-effector, $a$=retning mot objekt(approach), $s$=normal til $a$ (sliding plane of jaws), $n$=normal til $a$ og $s$ slik at systemet er høyre-hånd. Ta pistolgrepet, a pekefinger, s langfinger, n tommel (tilsvarende x,y,z koordinater)




Total transformasjon blir daMATH

som er rekursivt

2.8.2 *Denavit-Hartenberg konvensjonen

mål: skal finneMATH

antar MATH

  1. Nummerer alle armledd (joints) fra $1$ til $n$ -> n=1,2,3,4,5,6,7

  2. (Finn og nummerer jointaksene fra $0$ til $n-1$ -> joint1 er akse0, joint2 er akse1)

  3. Velg $z_{i}~$langs aksen til joint $i+1$, dvs $z_{0}$ peker langs $joint1$ , -> $z_{0}=joint1,$ $z_{1}=joint2$
    ->$q_{i}$ roterer/translaterer om $z_{i-1}$aksen.

  4. Lokaliser origo $O_{i}$, og finn $x,y$ slik at man får et høyrehåndssystem. x er normalen til z-planet. Lurt å velge en akse som har samme retning i alle rammene (eks. $x_{1},x_{2},x_{3}$ .. peker alle i samme retning = parallelle).

  5. Lag DH-tabellMATHMATH

    les:
    $a_{1}=$avstand langs $x_{1}$ fra $O_{1}$ til krysset $x_{1}$, $z_{0}$ ->avstand fra joint1 til forrige joint langs x1, avstand i x = $a $
    $d_{1}=$avstand langs $z_{0}$ fra $O_{0}$ til krysset $x_{1},z_{0}$ ->avstand fra joint1 til forrige joint langs z0, avstand i z = $d $
    $\alpha _{1}=$vinkel mellom $z_{0},z_{1}$ om $x_{1}$ -> vinkel mellom joint1 og forrige om x-aksen, Rotasjon om x, MATH
    $\theta _{1}=$vinkel mellom $x_{0},x_{1}$ om $z_{0}$ -> vinkel mellom joint0 og forrige om z-aksen, Rotasjon om z, MATH

  6. Finn den homogene transformasjonen $A_{i}^{i-1}$MATH

  7. Finn total transformasjon MATH

  8. Finn verktøytransformasjon $A_{n+1}^{n}=$ konstantMATH

Notation

$d_{i}$ er egentlig en offset pga tykkelse i robotarm.

Notation

Bra å designe robot uten offset, mye enklere da

Notation

Lurt med mest mulig parallelle akser

2.10 oppgaverommet og leddrommet

Oppgaverommet er definert som MATH

hvor $p$ er posisjonen til TCP og $\phi $ er dens orienteringen

Eks med to-planar-link robotMATH

Leddrommet er definert somMATH

2.10.1 Workspace

Det arbeidsområdet TCP kan nå.

2.10.2 Kinematisk redundans

En robot er kinematisk redundant når den har flere frihetsgrader av mobilitet enn variabler som trengs for å utføre en bestemt oppgave. Hvis dimensjonen i oppgaverommet er mindre enn dimensjonen i leddrommet $(m<n)$ så er roboten kinematisk redundant. Redundans er relativ i forhold til den oppgaven roboten skal utføre. En 6akse robot er funksjonelt redundant, men ikke intrinsically redundant.

2.11 Kinematisk kalibrering (ikke ferdig forklart her)

Nyttig i praksis, dårlig beskrevet i boka.

Definition

MATHMATH

Definition

MATH

Definition

MATH

Definition

MATH

Definition

+mere...

2.12 Invers kinematikk




Hva er leddvinklene hvis vi har en gitt TCP og orientering? Gitt TCP og orientering. Hvordan blir vinklene da?

Man designer dette analytisk, ønsker ikke numeriske verdier.

Foreleser hoppet over dette tema på forelesing, fordi det var så fryktelig kjedelig. Pensum?

Kap 3 - Differensiell kinematikk og statikk

3.1 Geometrisk Jacobi




Direkte kinematikk skrives som en homogen transformasjonsmatriseMATH

Målet med differensiell kinematikk er å finne sammenhengen mellom leddhastighetene og end effector lineær- og rotasjonshastighet. Med andre ord, vi skal finne den linære hastigheten til TCP $\dot{p}$, og rotasjonshastigheten $\omega $ som en funksjon av leddhastighetene $\dot{q}$ med følgende likningerMATH

hvor $J_{P}$ er en MATH matrise relativt til bidragret fra leddhastigheten $\dot{q}$ til TCPs lineære hastighet $\dot{p}$

og $J_{O}$ er en MATH matrise relativt til bidragret fra leddhastigheten $\dot{q}$ til TCPs angulære (vinkel) hastighet $\omega $

som kompakt kan skrives somMATH

Dette representerer robotens differensielle kinematiske likninger.

Den geometriske jacobien MATH er daMATH

3.1.1 Tidsderivering av rotasjonsmatrise

En tidsvarierende rotasjonsmatrise MATH

med ortogonal egenskap MATH

som derviveres med hensyn på tidenMATH

definerer den skjevsymmetriske MATH matrisen SMATH

og er skjevsymmetrisk fordiMATH

Postmultipliserer begge sider av * med $R\left( t\right) $MATH

Hvis vi deriverer en konstant vektor $p^{\prime }$ og vektoren MATH får viMATH

Hvis vi deriverer en angulær vektor MATH, får viMATH

Hvis R er en rotasjonsmatriseMATH

eksempel 3.1, likn * tidsderiveres og settes inn i *

MATH

Dette uttrykker rotasjonshastigheten for rammen om z-aksen.

eks. figur 2.11 i bok.

vi skal transfomere ett punkt $p$, fra ramme 1 til ramme 0MATH

denne tidsderiveresMATH

Notation

husk postmultiplisering i robotverden

3.1.2 Armledd hastighet (linkhastighet)

Betrakt en generell $link$ $i$ i en robot med en åpen kinematisk sløyfe. I følge DH-konvensjonen, beskriver $link$ $i$ forbindelsen mellom $joint$ $i$ og $joint~i+1$. (ledd i og ledd i+1). $frame~i$ er festet til $link~i$ med origo langs aksen $joint~i+1$, og $frame~i-1$ har origo langs $joint~i$ aksen. (Se fig 3.1 s 82 i bok)

Vi lar posisjonsvektorene $p_{i-1},p_{i}$ gå fra baseramme $O$ til $frame~i-1,frame~i$. Vi danner en trekant med posisjonsvektoren $r_{i-1}^{i-1},i$, som er avstanden mellom $p_{i-1},p_{i}$. Da kan vi skrive koordinattransformasjonen * somMATH

som deriveresMATH

3.1.3 Beregning av Jacobi

3.2.1 Eksempel beregning av jacobi på en tre-link planar arm

3.3 Kinematisk singularitet

Når jacobien ikke er inverterbar, og mister rang oppstår singularitet. Det=0

se eks fig3.3 i boka.

Når armene er helt utstrekt/sammentrekt (boundary singullarities), så kan vi ikke spesifisere en vilkårlig hastighet/posisjon der vi ønsker.

3.4 Analyse av redundans

3.5 Invertert differensialkinematikk (Differential Kinematics Inversion)

3.5.1 Redundante systemer

3.6 Analytisk jacobi

3.7 Inverse kinematiske algoritmer

3.8 *Statikk (typisk eksamensstoff)

Kap 4 - Dynamikk

Å utvikle en dynamisk modell for en manipulator, spiller en viktig rolle for å simulere bevegelse (motion), analyse av struktur til roboten og design av reguleringsalgoritmer. Simulering av bevegelse gjør at man kan prøve ut reguleringstrategier og teknikker for bevegelsesplanlegging uten å bruke et fysisk system. Analyse av dynamisk modell kan være god hjelp til mekanisk design av prototyper. Berekninger av krefter og momenter for å oppnå typisk ønskede bevegelser gir verdifull informasjon om å designe ledd (joints), transmisjoner og aktuatorer.

Kapittelet tar for seg to metoder for å berekne bevegelseslikningene til en robot i leddrommet (joint space).

  1. Lagrange - forholdsvis enkelt og systematisk modellering, bruker generaliserte koordinater

  2. Newton-Euler - Rekursiv modellutvikling, effektivt siden man studerer den typiske åpne strukturen i robotens kinematiske kjede.

4.1 Lagrange

MATH

hvor $L~$= total energi, $T$ = total kinetisk energi, $U$ = total potensiell energi i generaliserte koordinater

Lagrange's likning:MATH

som beskriver endringen i energien og $\tau _{i}$ = generaliserte krefter og $\lambda _{i}~$generaliserte koordinater

Et naturlig valg av generaliserte koordinater $\lambda $ for en robot er leddvinklene $q$ ,dvs $\lambda =q$MATH

4.1.1 Beregning av kinetisk energi $T$

Vi har en manipulator med $n$ stive armledd. Total energi finnes ved å summere opp bidraget fra bevegelsen til hvert armledd og hvert motor/aktuator-ledd.MATH

hvor $T_{li}$ er kinetisk energi i armledd $link$ $i$, og $T_{mi}$ er kinetisk energi i motor som virker på ledd $joint~i$




Kinetisk energi fra $link$ $i$, armledd

Kinetisk energi fra $link$ $i$ er gitt avMATH

hvor MATH er lineær hastighetsvektor og $\rho $ er tetthet, summert opp over $V_{li}$ som er volumet av armleddet ($link$ $i$).

Hastigheten til punktet MATH kan finnes ved skjevsymmetrisk matriseMATH

hvor $\dot{p}_{i}$ er hastigheten i massesenteret, og $\omega _{i}$ er rotasjonshastigheten om massesenteret til armleddet ($link$ $i$), $r_{i}$ er en forskjellen mellom posisjonsvektorene $p_{i}^{\ast }$ og $p_{li}$MATH




noen viktige formlerMATH

Ved å substituere * inn i *, kan vi finne kinetisk energi i hvert ledd.

De forskjellige bidragene er gitt ved:

-Translatorisk, null rotasjon, gir MATHMATH

-Mutual (innbyrdes, felles, gjensidig) $=0$, hva er dette for ett bidrag?

-Rotasjon, med lineær hastighet lik null, MATHMATH

hvor treghetsmatrisen $I_{li}$ er symmetrisk MATHMATH

Treghetsmatrisen er gjelder om massesenteret til den aktuelle linken (armleddet).

Ved bruk av DH-konvensjonen vil rotasjonsleddet væreMATH

fordi det går fra ramme til ramme.

Hvis en befinner seg i samme ramme som armleddet, blir $I_{li}^{i}~$konstant.

Ved summasjon av translatorisk * og rotasjons energi *, får viMATH

Nå må vi uttrykke den kinetiske energien som en funksjon av de generaliserte koordinatene til systemet, som er leddvinklene. Vi bruker den geometriske metoden for å berekne Jacobien til de mellomliggende armleddene.

MATH

Da blir den endelige summen for kinetisk energi fra $link~i$MATH

Kinetisk energi fra motor

Man bruker samme fremgangsmåte som over.

Kinetisk energi for $rotor~i$ kan skrives somMATH

hvor $m_{mi}~$er massen til rotoren, $\dot{p}_{mi}$ er massesenterets lineære hastighet til rotoren, $I_{mi}$ er treghetsmomentet om rotorens massesenter og $\omega _{mi}$ er vinkelhastigheten til rotoren.

Man kan også innføre gir som reduserer energienMATH

hvor $\theta $ er vinkelposisjon og $k_{ri}$ er girreduksjonsforholdet

Total kinetisk energi for motor blir til slutt som i * (etter å ha hoppet over en del likninger)MATH

Sum kinetisk energi

MATH

hvor $B$ er treghetsmatrisen, symmetrisk, positiv definittMATH

4.1.2 Beregning av potensiell energi $U$

Som for kinetisk energi, så er potensiell energi som er lagret i roboten, gitt ved en sum av bidrag mellom hver link ( også mellom hver rotor).MATH

Man antar også her stive armledd (hvis ikke må man ta med elastiske krefter for fleksible ledd - eks hvis en robot går uhyre fort, får den en "slangeliknende" bevegelse)

Potensiell energi $link$ $i$

Det er kun gravitasjonen som bidrar med potensiell energi, dermed får viMATH

gravitasjonsvektoren (med $z$ som vertikalakse) kan f.eks velges somMATH

Potensiell energi $rotor$ $i$

MATH

Sum potensiell energi

summerer likn * og *

MATH

merk at den potensielle energien kun virker gjennom posisjonsvektorene $p_{li},p_{mi}$. , og ikke gjennom leddhastigheten $\dot{q}$ slik som med kinetisk energi. Dermed er potensiell energi kun en funksjon av leddvariablene $q.$

4.1.3 Bevegelseslikninger

Når vi har bereknet den totale kinetiske og potensielle energien til roboten, kan vi skrive Lagrangelikningen * somMATH

Lagrangelikn * deriveres mhp leddhastigheten til $link~i$, (husk at $U$ ikke er avhengig av $\dot{q}$)MATH

bevegelseslikningene blir dermed

MATH

forstår ikke hvordan man deriverer med summetegn

Resultat: Dynamisk modell i leddrommet

MATH

$B$ er treghetsmatrise , $C$ korioles, $F_{v}$ viskøs friksjon, $F_{s}$coloumb friksjon, $g$ gravitasjon, $\tau $ ytre krefter, MATH indusert moment fra end-effector

Tilsvarende matrise i marine-språk er (Fossen)MATH

hvor M er systemets treghetsmatrise, C coriolis-centripetal matrise, D dempematrise, g gravitasjonsvektor, $\tau $ control inputs, $g_{0}$ vektor for pretrimming, w vektor for forstyrrelse som vind, bølger, strøm.

4.2.1 *Skjevsymmetriske matrise $\dot{B}-2C$

Skal bevise:MATH

hvor $x$ er en hvilken som helst $(n\times 1)$ vektor.

C $(n\times n)$ matrisa skrives somMATH

MATH

$c_{ijk}$ er Christoffel symbol of the first type, pga symmetri i $B$ så er $c_{ijk}=c_{ikj}$. MATH

videre har viMATH

hvis vi setter $x=\dot{q}$ så får vi MATH

som ikke er det samme som MATH, fordi $N$ inneholder $\dot{q}$.

For å bevise at påstand MATH, er riktig så må vi bruke Lyapunovanalyse.

Lyapunovbevis:MATH

som deriveresMATH

vi velger en passende "høyreside" $\tau $ fra likn * (med null friksjon $F_{v}$ )MATHMATH

setter inn $(2)$ i $(1)$MATH

som blir $\dot{V}$ $<0$ hvis $\tau $ velges mindre enn $g$

4.3 Gir tre eksempler på dynamisk modellering (ikke forelest)

4.4 Dynamisk parameter identifikasjon

Å berekne de dynamiske parametrene ut fra en mekanisk modell er ikke trivielt. For å estimere parametrene bruker vi teknikker fra systemidentifisering. (Se kinematisk kalibrering)

MATH

MATH

vi kan beregne parametervektoren $\pi $ fra målinger av leddvinkelmomentet $\tau $ og evaluering av matrisen $Y$ med en minste-kvadraters metode$.$ MATH er venstre-pseudo-invers av matrisen $Y.$




Forutsetninger:

4.7 Operational Space Dynamic model (oppgaverommet)

Som et alternativ til leddrom-modellen, kan bevegelseslikningene til roboten uttrykkes direkte i oppgaverommet. Vi må da finne en dynamisk modell som beskriver forholdet mellom de generaliserte kreftene som virker på roboten og variablene som beskriver TCP posisjonen og orienteringen i oppgaverommet (operational space).

Vi starter med den dynamiske likningen i leddrommet * og antar null friksjon

vi setter også $\tau =J^{T}h\,$ fordi (se likn 3.99 i bok fra statikkkapittelet)MATH

og snur denne mhp akselerasjonen $\ddot{q}$MATH

hvor likningen inneholder den geometriske jacobien.

MATH

hvor denne likningen inneholder den analytiske jacobien.

Derfor må vi lage en transformasjon mellom de to jacobiene

MATH

Ved å substituere (1) inn i (2), og bruke transformasjonen i (3), får viMATH

Som kompakt kan skrives MATH

hvorMATH

gjelder for en ikke-redundant robot og $J_{A}$ må ha full rang.




For reduntant robot gjelder

MATH

Kap 5 - Trajektorplanlegging

se artikkel til SIS

Kap 6 - Motion Control

6.2 Joint Space Control

6.3 Independent Joint Control (ikke forelest - men i høyeste grad pensum)

6.5 Centralized Control