1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio...

32
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica A Descrições e Transformações Espaciais Prof. Walter Fetter Lages 26 de agosto de 2019 A modelagem de robôs manipuladores é feita através da descrição dos seus elos e das relações entre eles. Para sistematizar a descrição estas relações, são utilizadas ferramentas de Álgebra Linear e Geometria Analítica. 1 Descrição de Posição e Orientação 1.1 Descrição de Posição A figura 1 mostra um ponto P . P Figura 1: Ponto P . Para que se possa localizar este ponto no espaço é necessário considerar a existência de um sistema de coordenadas {A}, como mostra figura 2, com relação ao qual o ponto P será localizado. Este sistema de coordenadas é formado por três versores 1 ortonormais 2 indicadores das três dimensões do espaço físico. Deseja-se descrever o ponto P em termos do sistema de coordenadas {A}. Descrever uma entidade em termos de outra, significa obter a melhor aproximação de uma em função da outra. No presente caso seria obter a melhor aproximação de P em termos dos versores do sistema {A}. No entanto, esta aproximação envolve entidades de tipos diferentes, ou seja, pontos e vetores. Parece razoável supor que seria mais fácil obter tal aproximação se as entidades envolvidas fossem do mesmo tipo. Observando a figura 3 verifica-se que a posição do ponto P em relação à origem do sistema {A} é igual ao comprimento do vetor cuja base está na origem do sistema {A} e a ponta está no ponto P . Por conveniência, este vetor é denominado A P , pois representa o ponto P em relação ao sistema {A}. 1 Versores são vetores indicadores de direção. 2 Vetores ortonormais são vetores ortogonais entre sí e com módulo unitário. 1

Transcript of 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio...

Page 1: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

Universidade Federal do Rio Grande do SulEscola de Engenharia

Departamento de Sistemas Elétricos de Automação e EnergiaENG10026 Robótica A

Descrições e Transformações Espaciais

Prof. Walter Fetter Lages

26 de agosto de 2019

A modelagem de robôs manipuladores é feita através da descrição dos seuselos e das relações entre eles. Para sistematizar a descrição estas relações, sãoutilizadas ferramentas de Álgebra Linear e Geometria Analítica.

1 Descrição de Posição e Orientação

1.1 Descrição de Posição

A figura 1 mostra um ponto P .

•P

Figura 1: Ponto P .

Para que se possa localizar este ponto no espaço é necessário considerar aexistência de um sistema de coordenadas {A}, como mostra figura 2, com relaçãoao qual o ponto P será localizado. Este sistema de coordenadas é formado portrês versores1 ortonormais2 indicadores das três dimensões do espaço físico.

Deseja-se descrever o ponto P em termos do sistema de coordenadas {A}.Descrever uma entidade em termos de outra, significa obter a melhor aproximaçãode uma em função da outra. No presente caso seria obter a melhor aproximaçãode P em termos dos versores do sistema {A}. No entanto, esta aproximaçãoenvolve entidades de tipos diferentes, ou seja, pontos e vetores. Parece razoávelsupor que seria mais fácil obter tal aproximação se as entidades envolvidas fossemdo mesmo tipo. Observando a figura 3 verifica-se que a posição do ponto P emrelação à origem do sistema {A} é igual ao comprimento do vetor cuja base estána origem do sistema {A} e a ponta está no ponto P . Por conveniência, este vetoré denominado AP , pois representa o ponto P em relação ao sistema {A}.

1Versores são vetores indicadores de direção.2Vetores ortonormais são vetores ortogonais entre sí e com módulo unitário.

1

Page 2: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

XA

YA

ZA

{A}

Figura 2: Sistema de coordenadas.

Tem-se então, que a descrição do ponto P em relação ao sistema {A} éfeita através da descrição do vetor AP no sistema {A}. Esta descrição é obtidaaproximando-se o vetor AP nas direções XA, YA e ZA.

Seja Y uma aproximação qualquer de AP na direção YA, como mostra a fi-gura 4. Tem-se então:

AP = Y + EY ⇒ Y = AP − EY (1)

onde EY é o erro cometido na aproximação.Obviamente, a melhor aproximação PY , também denominada projeção de AP

sobre YA, é tal que o módulo de EY é minimizado, isto é, quando EY é ortogonala YA. Considerando-se esta situação e tomando-se o produto escalar de (1) porYA, tem-se que

pY△= PY YA = AP · YA − EY · YA = AP · YA

onde pY é o módulo de PY .De forma semelhante, tem-se que os módulos das aproximações sobre XA e

YA são, respectivamente:

px = AP · XA

pz = AP · ZA

como mostra a figura 5.Como XA, YA e ZA formam uma base no R3, tem-se que o conjunto das

aproximações de AP nestas três direções é exatamente igual à AP , ou seja, o erro

2

Page 3: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

XA

YA

ZA

{A}AP P

Figura 3: Vetor AP , associado ao ponto P .

cometido na aproximação é zero. Assim, tem-se que o ponto P pode ser descritono sistema de coordenadas {A} por

AP =

pXpYpZ

1.2 Descrição de Orientação

Ponto não tem orientação, pois não tem dimensão, mas frequentemente é interes-sante descrever a orientação de objetos, planos ou mesmo segmentos de reta. Paratanto, será utilizado o artifício de associar ao objeto de interesse um sistema decoordenadas, de forma que a orientação possa ser descrita através da descriçãodos versores deste sistema de coordenadas, como mostra a figura 6.

Assim, a descrição de orientação pode ser feita descrevendo-se os versores de{B} em relação a {A}. Ou seja, a descrição da orientação de {B} em relaçãoa {A} é dada por AXB , AYB e AZB, que para conscisão de notação podem seragrupados em uma matriz:

ARB =[

AXBAYB

AZB

]

onde ARB é denominada matriz de rotação de {B} em relação à {A}.Por outro lado, as projeções de XB, YB e ZB sobre o sistema de coordenadas

{A} são dadas por:

3

Page 4: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

XA

YA

ZA

{A}AP

P

EY

Y

Figura 4: Aproximação de AP na direção YA.

AXB =

XB · XA

XB · YAXB · ZA

AYB =

YB · XA

YB · YAYB · ZA

AZB =

ZB · XA

ZB · YAZB · ZA

e portanto, a matriz de rotação ARB será:

ARB =[

AXBAYB

AZB

]=

XB · XA YB · XA ZB · XA

XB · YA YB · YA ZB · YAXB · ZA YB · ZA ZB · ZA

(2)

Note que os elementos de ARB são produtos escalares entre os versores dossistemas {A} e {B}. Portanto, como versores tem módulo unitário, os elementosde ARB são os cossenos dos ângulos entre cada um dos versores de {A} e cadaum dos versores de {B}. Por este motivo, a matriz ARB também é denominadade matriz de cossenos diretores de {B} em relação à {A}.

4

Page 5: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

P

XA

YA

ZA

{A}

AP

pX

pY

pZ

Figura 5: Projeções de AP nas direções XA, YA e ZA.

Por outro lado, a rotação inversa BRA = AR−1B pode ser obtida projetando-se

XA, YA e ZA sobre o sistema de coordenadas {B}, que de (2) é dado por:

BRA =

XA · XB YA · XB ZA · XB

XA · YB YA · YB ZA · YBXA · ZB YA · ZB ZA · ZB

e portanto, invertendo-se a ordem os produtos escalares chega-se a:

BRA =

XB · XA XB · YA XB · ZA

YB · XA YB · YA YB · ZA

ZB · XA ZB · YA ZB · ZA

= ARTB (3)

A expressão (3) induz a hipótese de que a inversa da matriz de rotação sejaigual à sua transposta. Esta hipótese pode ser corroborada através da observaçãode que:

5

Page 6: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

XA

YA

ZA

{A}

XB

YB

ZB

{B}

Figura 6: Descrição de orientação.

BRAARB = ART

BARB =

AXTB

AY TB

AZTB

[

AXBAYB

AZB

]

=

AXTBAXB

AXTBAYB

AXTBAZB

AY TB

AXBAY T

BAYB

AY TB

AZBAZT

BAXB

AZTBAYB

AZTBAZB

=

AXB · AXBAXB · AYB AXB · AZB

AYB · AXBAYB · AYB AYB · AZB

AZB · AXBAZB · AYB AZB · AZB

= I

Assim, para matrizes de rotação tem-se:

BRA = AR−1B = ART

B

1.3 Descrição de Posição e Orientação

A descrição da posição e orientação de um corpo é feita descrevendo-se o sistemade coordenadas associado ao corpo através da matriz de rotação em relação aosistema inercial e da posição da origem do sistema, como mostra a figura 7.

Assim, tem-se que a descrição do corpo da figura 7 é dada por:

{B} ={ARB,

APBorg

}

6

Page 7: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

XA

YA

ZA

{A}

XB

YB

ZB

{B}

APBorg

Figura 7: Descrição de posição e orientação.

onde APBorg é o vetor que localiza a origem de {B} em relação à {A}.

2 Mapeamento entre Sistemas de Coordenadas

Tipicamente em um sistema robótico existirão diversos sistemas de coordenadasassociados aos diversos objetos no espaço de trabalho do robô e aos seus próprioselos. Consequentemente, é comum conhecer-se algum ponto de interesse em rela-ção à um sistema de coordenadas e desejar conhecer a descrição do mesmo pontoem relação à outro sistema de coordenadas. Isto pode ser feito através do mapea-mento de pontos entre sistemas de coordenadas.

2.1 Mapeamento Envolvendo Apenas Translação

Sejam dois sistemas de coordenadas {A} e {B} com mesma orientação e comorigens não coincidentes, como mostra a figura 8.

Supondo que se conheça a descrição de um ponto em relação ao sistema {B},pode-se observar através da figura 8 que a sua descrição em relação ao sistema{A} é dada por

AP = APBorg +BP (4)

onde APBorg é a descrição da origem de {B} em relação à {A}.

7

Page 8: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

XA

YA

ZA{A}

XB

YB

ZB

{B}

APBorg

AP

BP

Figura 8: Mapeamento envolvendo apenas translação.

2.2 Mapeamento Envolvendo Apenas Rotação

Sejam dois sistemas de coordenadas {A} e {B} com origens coincidentes e taisque a orientação de {B} em relação à {A} é dada por ARB , como mostra a fi-gura 9.

XA

YA

ZA{A}

XB

YB

ZB

{B}

BP ≡ AP

Figura 9: Mapeamento envolvendo apenas rotação.

Tem-se então que AP é dado pela projeção de BP sobre os versores do sistema{A}, ou seja:

ApX = BP · BXA = BXA · BP = BXTABP

ApY = BP · BYA = BYA · BP = BY TA

BPApZ = BP · BZA = BZA · BP = BZT

ABP

ou ainda

AP =

ApXApYApZ

=

BXTA

BY TA

BZTA

BP =[

BXABYA

BZA

]T BP = BRTABP

8

Page 9: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

que pode ser escrito como

AP = ARBBP

2.3 Mapeamento com Translação e Rotação

Quando se tem translação e rotação entre os sistemas {A} e {B} envolvidos nomapeamento, como na figura 10, pode-se imaginar um sistema intermediário {C},alinhado com o sistema {A}, mas com origem coincidente com {B} de forma quetem-se

XA

YA

ZA{A}

XB

YB

ZB

{B}AP

BP

APBorg

Figura 10: Mapeamento com translação e rotação.

AP = APCorg +CP

CP = CRBBP

e considerando que APCorg ≡ APBorg e CRB ≡ ARB , pode-se escrever

AP = APBorg +CP

CP = ARBBP

ou ainda

AP = APBorg +ARB

BP (5)

que descreve a posição do ponto em relação ao sistema {A} conhecendo-se adescrição do ponto no sistema {B} e a descrição do sistema {B} em relação aosistema {A}.

9

Page 10: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

3 Transformação Homogênea

A expressão (5) permite fazer o mapeamento de pontos de um sistema de coorde-nadas para outro. No entanto, ela não é muito prática, por envolver duas operações(uma multiplicação e uma soma matriciais). Seria conveniente dispor de um ope-rador tal que permitisse calcular o mapeamento entre sistemas de coordenadasatravés de uma única operação matricial, ou seja, seria conveniente escrever (5)na forma:

AP = ATBBP (6)

onde ATB é o operador que faz o mapeamento de pontos do sistema {B} para osistema {A}.

A expressão (5) pode ser escrita na forma (6) fazendo-se:[AP1

]

︸ ︷︷ ︸

vetor emcoordenadashomogêneas

=

[ARB

APBorg

01×3 1

]

︸ ︷︷ ︸

matriz detransformação

homogênea

[BP1

]

A matriz de transformação homogênea pode ser particionada em quatro cam-pos:

[rotação translação

perspectiva escala

]

Os campos de rotação e translação são utilizados para descrever a rotaçãoe a translação envolvidas no mapeamento. O campo de escala é utilizado pararepresentar diferenças de escala entre os sistemas e o campo de perspectiva éutilizado para representar a diferença de perspectiva entre os sistemas. Estes doisúltimos campos são comumente utilizados quanto a transformação homogêneaé utilizada no contexto de visão computacional, processamento de imagens oucomputação gráfica. Em robótica normalmente estes campos assumem os valoresde operador nulo para as respectivas operações, ou seja, 01×3 para perspectiva e 1para escala.

4 Operadores

Operadores movem pontos ou vetores no espaço. Esta movimentação pode sertranslação, rotação ou ambas. É importante perceber que quando se está fazendo

10

Page 11: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

um mapeamento de um ponto existem dois sistemas de coordenadas envolvidos,enquanto que ao se aplicar um operador à um ponto, apenas um sistema de coor-denadas está envolvido na operação.

4.1 Operador de Translação

Seja um ponto AP1 e um vetor AQ. O operador de translação move este ponto deum deslocamento finito ao longo da direção do vetor, obtendo-se um novo pontoAP2, deslocado em relação a AP1, como mostra a figura 11.

XA

YA

ZA{A}AP1

AP2

AQ

Figura 11: Operação de translação.

Através da figura verifica-se que

AP2 =AP1 +

AQ (7)

Esta operação pode ser representado na forma matricial como

AP2 = D(q)AP1 (8)

onde q é a amplitude da translação ao longo do vetor AQ e

D(q) =

1 0 0 qx0 1 0 qy0 0 1 qz0 0 0 1

sendo qx, qy e qz são os componentes da translação nas direções XA, YA, ZA.As expressões (7) e (8) são semelhantes às expressões (4) e (6), no entanto, nas

expressões obtidas na seção 2 haviam dois sistemas de coordenadas envolvidos,enquanto aqui existe apenas um sistema de coordenadas.

11

Page 12: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

4.2 Operador de Rotação

O operador de rotação roda um ponto AP1 de um ângulo θ em torno de um vetorAQ para gerar um outro ponto AP2, como mostrado na figura 12.

XA

YA

ZA{A} AP1

AP2

AQ

θ

Figura 12: Operação de rotação.

Usualmente, ao invés de rotação em torno de vetores arbitrários, considera-serotações em torno dos versores do próprio sistema de coordenadas, de forma queuma rotação de θ em torno de um vetor arbitrário é substituída por uma rotação deα em torno de X, uma rotação de β em torno de Y e uma rotação de γ em tornode Z. A figura 13 mostra uma rotação em torno de AX .

XAYA

ZA

{A}AP1

AP2

α

Figura 13: Operação de rotação de um ângulo α em torno de AX .

A expressão que descreve esta operação de rotação pode ser obtida notando-seque AP1 é igual a BP2, sendo {B} um sistema de coordenadas que sofreu umarotação de α em torno de AX , como mostra a figura 14.

Assim, tem-se

AP2 =ATB

BP2 =ATB

AP1

12

Page 13: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

{B}

XAYA

ZA

{A}

XB

YB

ZB

AP1

AP2

α

α

Figura 14: Sistema de coordenadas auxiliar par obtenção da operação de rotação.

onde ATB =

1 0 0 00 cosα − senα 00 senα cosα 00 0 0 1

é o operador que rotaciona AP1 em torno

de AX para obter-se AP2. Para tornar este fato evidente, define-se o operador derotação em torno de X como:

RX(α) =

1 0 0 00 cosα − senα 00 senα cosα 00 0 0 1

e portanto

AP2 = RX(α)AP1

Analogamente, pode-se obter os operadores que realizam rotações em tornode Y e Z:

RY (β) =

cos β 0 sen β 00 1 0 0

− sen β 0 cos β 00 0 0 1

RZ(γ) =

cos γ − sen γ 0 0sen γ cos γ 0 00 0 1 00 0 0 1

13

Page 14: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

4.3 Operador de Transformação

O operador de transformação realiza translação e rotação de um ponto AP1 paratransforma-lo em um ponto AP2, deslocado e rotacionado em relação à AP1, comomostra a figura 15.

XAYA

ZA

{A} AP1

AP2

AP3

AQ

α

Figura 15: Operação de translação.

Na figura 15 a transformação realizada é um deslocamento por AQ e umarotação de α em torno de AX , ou seja o ponto AP1 é deslocado e obtém-se oponto AP3 = D(q)AP1 e a seguir o ponto AP3 é rotacionado de α em torno de AXpara obter-se AP2. Assim tem-se:

AP2 = RX(α)AP3 = RX(α)D(q)AP1

Note que como rotação e translação são operações independentes, o resultadoseria o mesmo se a ordem das operações fosse invertida. Alem disso, no casogeral tem-se rotações em torno de X, Y e Z, de forma que em geral, tem-se

AP2 = RZ(γ)RY (β)RX(α)D(q)AP1 (9)

ou, para simplificar a notação

AP2 = T (q, α, β, γ)AP1

onde T (q, α, β, γ) = RZ(γ)RY (β)RX(α)D(q) é o operador de transformaçãoque desloca e rotaciona o ponto em torno dos três versores do sistema de coorde-nadas.

Note que a ordem em que são feitas as rotações altera o resultado final.

14

Page 15: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

5 Aritmética de Transformações

5.1 Transformações Compostas

Sejam três sistemas de coordenadas {A}, {B} e {C}, com transformações en-tre eles conhecidas e um ponto cuja descrição CP é conhecida, como mostra afigura 16.

XA

YA

ZA{A}

XB

YB

ZB

{B}XC

YC

ZC

{C}

AP

APBorg

BP

BPCorg

CP

Figura 16: Transformações Compostas.

Pode-se determinar AP por:

AP = ATBBP

e por sua vêz

BP = BTCCP

e portanto

AP = ATBBTC

CP = ATCCP

É importante notar que neste caso a ordem das transformações é importante eque a ordem de execução das transformações é da direta para a esquerda. Obvi-amente, a composição de transformações pode ser generalizada para um numeroarbitrário de transformações.

15

Page 16: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

5.2 Inversão da Transformação

Dado ATB , deseja-se obter BTA = AT−1B .

A transformação pode ser invertida de diversas formas:

inversão aritmética:AT−1

B =1

|ATB|cof

(ATB

)T

• Grande número de cálculos

• Complicado se a dimensão for maior do que 4

• Pouco adequado para implementação computacional

• Arredondamentos e truncamentos podem destruir a estrutura da matriz

inversão numérica: Métodos da triangulação, eliminação de Gauss, Gauss-Seidel,etc.

• Adequado para qualquer dimensão

• Arredondamentos e truncamentos podem destruir a estrutura da matriz

• Adequados para implementação computacional

inversão utilizando a estrutura da matriz: Explora a estrutura particular da ma-triz de transformação homogênea.

• Baixo número de operações

• Preserva a estrutura da matriz

• Fácil de ser calculada manualmente e computacionalmente

ATB =

[ARB

APBorg

01×3 1

]

BTA =

[BRA

BPAorg

01×3 1

]

Já foi visto anteriormente que BRA = ARTB . Resta portanto determinar

BPAorg a partir de ATB .

Tem-se que a origem do sistema {B} descrita no sistema {B} é 0, ou seja

BPBorg = 0

16

Page 17: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

Mas, sabe-se que

1P3 =1R2

2P3 +1P2org

Portanto, fazendo 1 = B, 2 = A e 3 = Borg tem-se

BPBorg =BRA

APBorg +BPAorg = 0

logo

BPAorg = −BRAAPBorg

Assim,

BTA =

[ART

B −ARTBAPBorg

01×3 1

]

5.3 Equações com Transformações

Sejam cinco sistemas de coordenas {A}, {B}, {C}, {D} e {E}, dispostos arbi-trariamente como mostrado na figura 17.

O sistema de coordenadas {D}, pode ser expresso em relação ao sistema {A}como:

ATD = ATEETD (10)

ou

ATD = ATBBTC

CTD (11)

Igualando-se (10) e (11), obtém-se uma equação com transformações:

ATEETD = ATB

BTCCTD (12)

Através de (12) pode-se calcular qualquer uma das transformações em funçãodas demais. Por exemplo, BTC pode ser calculada como:

BTC = AT−1B

ATEETD

CT−1D (13)

É importante perceber que ATB está pré-multiplicando no lado direito de (12 eque portanto, AT−1

B deve estar pré-multiplicando em (13). De forma semelhante,CTD está pós-multiplicando em (12) e portanto CT−1

D deve estar pós-multiplicandoem (13.

17

Page 18: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

XA

YA

ZA

{A}

APBorg

APEorg

XB

YB

ZB

{B}BPCorg

XC

YC

ZC

{C}

CPDorg

XD

YD

ZD

{D}

XE

YE

ZE

{E}EPDorg

Figura 17: Sistemas de coordenadas arbitrários.

As setas na figura 17 indicam a definição de um sistema em relação à outroe podem ser utilizadas para obter-se diretamente equação de transformação. Paratanto, parte-se da origem do sistema tomado como referência para a transformaçãodesejada ({B}, no exemplo) e percorre-se o diagrama até chegar-se à origem dosistema desejado ({C}), incluindo na equação a transformação correspondente acada seta percorrida. Quando o diagrama é percorrido no sentido contrário a seta,a transformação correspondente é incluída invertida na expressão.

Considere um robô trabalhando em uma determinada operação de pick-and-

place, como mostrado na figura 18. Suponha ainda, que se conhece as seguintestransformações:

• da ferramenta para o punho do robô, WTT

• da bancada para a base do robô, BTS

• da peça para a bancada, STG.

Deseja-se calcular a transformação do punho para a base do robô, BTW , paraque a ferramenta esteja na origem do sistema de coordenadas associado à peça.Ou, seja, deseja-se:

18

Page 19: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

Figura 18: Operação de pick-and-place.

BTT = BTG

já que para que a ferramenta esteja na origem do sistema de coordenadas da peça,a transformação TTG = I .

Por outro lado, tem-se:

BTT = BTWWTT

e

BTG = BTSSTG

logo

BTWWTT = BTS

STG

e portanto

19

Page 20: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

BTW = BTSSTG

WT−1T

6 Outras Descrições de Orientação

6.1 Ângulos de Roll-Pitch-Yaw

Ao invés de representar a orientação pela matriz de rotação, pode-se representar aorientação de um sistema {B} em relação à um sistema {A} através dos utilizar osângulos de rotação em torno de XA, YA e ZA, como mostrado na figura 19. Estesângulos são conhecidos como ângulos de roll-pitch-yaw, ou ângulos de rolamento,arfagem e guinada.

Figura 19: Ângulos de roll-pitch-yaw.

Assim, tem-se:

ARB(α, β, γ) = RZ(γ)RY (β)RX(α)

=

Cγ −Sγ 0Sγ Cγ 00 0 1

Cβ 0 Sβ0 1 0

−Sβ 0 Cβ

1 0 00 Cα −Sα0 Sα Cα

=

=

CγCβ CγSβSα− SγCα CγSβCα+ SγSαSγCβ SγSβSα+ CγCα SγSβCα− CγSα−Sβ CβSα CβCα

(14)

20

Page 21: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

O problema de obter-se α, β e γ a partir de uma matriz ARB conhecida tam-bém é frequentemente de interesse. A matriz ARB pode ser escrita como:

ARB =

r11 r12 r13r21 r22 r23r31 r32 r33

Supondo Cβ 6= 0, pode-se obter α, β e γ através de:

α = atan2(r32, r33)

β = atan2

(

−r31,±√

r232 + r233

)

(15)

γ = atan2(r21, r11)

Note que exitem duas soluções para β. Por convenção, neste problema deconversão de RPY para matriz de rotação, sempre seleciona-se o valor de β talque −π

2≤ β ≤ π

2.

Se β = ±π2, a solução (15) degenera, pois neste caso tem-se

ARB =

0 ±CγSα− SγCα ±CγCα + SγSα0 ±SγSα + CγCα ±SγCα− CγSα∓1 0 0

=

0 ±S(α ∓ γ) C(α∓ γ)0 ±C(α∓ γ) −S(α∓ γ)∓1 0 0

e só é possível determinar a diferença de α e γ se β = +π2

ou a soma de α e γ seβ = −π

2. Assim, tem-se:

α∓ γ = atan2(r12, r22)

Neste caso, é usual arbitrar-se γ = 0 e calcular α:

α =

{atan2(r12, r22) , se β = π

2

− atan2(r12, r22) , se β = −π2

6.2 Ângulos de Euler em Torno de Z-Y-X

Na descrição por ângulos de Euler3 assume-se que as rotações são realizadas emtorno dos eixos do próprio sistema de coordenadas, como mostra a Figura 20.

3Aqui a nomenclatura ângulos de Euler será usada para denotar representações intrínsicas, ouseja, nas quais as rotações são em torno dos próprios eixos

21

Page 22: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

Figura 20: Ângulos de Euler em torno de Z-Y-X.

Neste caso, para obter-se a matriz de rotação de {B} em relação a {A}, éconveniente imaginar-se um ponto AP , do qual se deseja conhecer as coordenadasno sistema {B}. Ou seja:

BP = BRA(γ, β, α)AP

A rotação do sistema {B} de γ em torno de ZB , de β em torno de YB e de αem torno de XB é equivalente a rotacionar o ponto AP de −γ, −β e −α em tornodos mesmos eixos:

BP = BRA(γ, β, α)AP = RX(−α)RY (−β)RZ(−γ) AP

Como BR−1A = ARB , R−1

W (−θ) = RW (θ) e (AB)−1 = B−1A−1, tem-se:

ARB(γ, β, α) =ARB′(γ)B

RB′′(β)B′′

RB′′′(α) = RZ(γ)RY (β)RX(α) (16)

que é equivalente a (14). Portanto, os ângulos de Euler em torno de Z-Y-X sãoequivalentes aos ângulos de roll-pitch-yaw.

22

Page 23: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

6.3 Ângulos de Euler em Torno de Z-X-Z

ARB(γ, β, α) =ARB′(γ)B

RB′′(β)B′′

RB(α) = RZ(γ)RX(β)RZ(α) =

=

Cγ −Sγ 0Sγ Cγ 00 0 1

1 0 00 Cβ −Sβ0 Sβ Cβ

Cα −Sα 0Sα Cα 00 0 1

=

=

CγCα− SγCβSα −CγSα− SγCβCα SγSβSγCα + CγCβSα −SγSα + CγCβCα −CγSβ

SβSα SβCα Cβ

(17)

Supondo Sβ 6= 0:

α = atan2(r31, r32)

β = atan2

(

±√

r231 + r232, r33

)

(18)

γ = atan2(r13,−r33)Se β = 0 ou β = π:

ARB =

CγCα∓ SγSα −CγSα∓ SγCα 0SγCα± CγSα −SγSα± CγCα 0

0 0 ±1

=

C(α± γ) −S(α± γ) 0±S(α± γ) −C(α± γ) 0

0 0 ±1

e portanto, fazendo γ = 0, tem-se

α =

{atan2(r21, r11) , se β = 0− atan2(r21, r11) , se β = π

6.4 Ângulos de Euler em Torno de Z-Y-Z

ARB(γ, β, α) =ARB′(γ)B

RB′′(β)B′′

RB(α) = RZ(γ)RY (β)RZ(α) =

=

Cγ −Sγ 0Sγ Cγ 00 0 1

Cβ 0 Sβ0 1 0

−Sβ Cβ 0

Cα −Sα 0Sα Cα 00 0 1

=

=

CγCβCα− SγSα −CγCβSα− SγCα CγSβSγCβCα+ CγSα −SγCβSα+ CγCα SγSβ

−SβCα SβSα Cβ

(19)

23

Page 24: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

Supondo Sβ 6= 0:

α = atan2(r32,−r31)

β = atan2

(

±√

r231 + r232, r33

)

(20)

γ = atan2(r23, r13)

Se β = 0 ou β = π:

ARB =

±CγCα− SγSα ∓CγSα− SγCα 0±SγCα + CγSα ∓SγSα + CγCα 0

0 0 ±1

=

±C(α± γ) ∓S(α± γ) 0S(α± γ) C(α± γ) 0

0 0 ±1

e portanto, fazendo γ = 0, tem-se

α =

{atan2(−r12, r11) , se β = 0− atan2(r12,−r11) , se β = π

6.5 Coordenadas Exponenciais [1]

Uma operação comum em robótica é a rotação de um ângulo θ em torno de umeixo. Nestes caso, é interessante obter a matriz de rotação R em função do eixode rotação e de θ.

Considere um ponto q de um corpo que roda com uma velocidade constanteem torno de um eixo, como mostra a figura 21.

Lembrando que o produto vetorial é uma operação linear, e portanto, pode serrepresentada por uma matriz, a velocidade do ponto q pode ser descrita por:

q(t) = ω × q(t) =

ω2q3(t)− ω3q2(t)ω3q1(t)− ω1q3(t)ω1q2(t)− ω2q1(t)

= ωq(t) (21)

com ω =

0 −ω3 ω2

ω3 0 −ω1

−ω2 ω1 0

∈ so(3), sendo so(n) = {S ∈ Rn×n : ST = −S}.

Note que ω é uma matrix anti-simétrica (skew-symmetric), ou seja: ωT = −ωe que existe uma relação direta entre o so(3) e o R3.

24

Page 25: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

Figura 21: Rotação do ponto q em torno de um eixo.

Integrando-se (21) obtém-se:

q(t) = eωtq(0)

Supondo-se uma rotação unitária, ou seja ‖ω‖ = 1, por θ unidades de tempo, oque também corresponde à uma rotação de um ângulo θ em torno do eixo descritopor ω, tem-se:

R(ω, θ) = eωθ

Considerando a expansão em série da exponencial:

eωθ = I + θω +θ2

2!ω2 +

θ3

3!ω3 + · · ·

e que a2 = aaT −‖a‖2I e a3 = −‖a‖2a podem ser usadas para calcular qualqueroutra potência de a recursivamente, tem-se para a = ωθ e ‖ω‖ = 1:

eωθ = I +

(

θ − θ3

3!+θ5

5!− · · ·

)

ω +

(θ2

2!− θ4

4!+θ6

6!− · · ·

)

ω2

e portanto:

eωθ = I + ω sen θ + ω2(1− cos θ)

conhecida como fórmula de Rodrigues e é uma forma eficiente de computar eωθ.Caso ‖ω‖ 6= 1 tem-se:

25

Page 26: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

eωθ = I +ω

‖ω‖ sen(‖ω‖θ) + ω2

‖ω‖2 (1− cos(‖ω‖θ))

Seja:

R =

r11 r12 r13r21 r22 r23r31 r32 r33

(22)

e

eωθ = I + ω sen θ + ω2(1− cos θ)

=

ω21(1− cos θ) + cos θ ω1ω2(1− cos θ)− ω3 sen θ ω1ω3(1− cos θ) + ω2 sen θ

ω1ω2(1− cos θ) + ω3 sen θ ω22(1− cos θ) + cos θ ω2ω3(1− cos θ)− ω1 sen θ

ω1ω3(1− cos θ)− ω2 sen θ ω2ω3(1− cos θ) + ω1 sen θ ω23(1− cos θ) + cos θ

(23)

De (22) e (23) obtém-se:

tr(R) = r11 + r22 + r33 = 1 + 2 cos θ (24)

r32 − r23 = 2ω1 sen θ (25)

r13 − r31 = 2ω2 sen θ (26)

r21 − r12 = 2ω3 sen θ (27)

e portanto se θ 6= 0:

θ = acos

(tr(R)− 1

2

)

ω =1

2 sen θ

r32 − r23r13 − r31r21 − r12

Note que esta solução não é única, já que cos(θ ± 2πn) = cos(−θ ± 2πn),mas há compensação através do sinal de ω. Por outro lado, se θ = 0, e tem-seuma singularidade e ω pode ser escolhido arbitrariamente.

Teorema 1 (Euler) Qualquer orientação R ∈ SO(3) é equivalente a uma rota-

ção de um ângulo θ ∈ (0, 2π] em torno de um eixo fixo ω ∈ R3.

26

Page 27: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

6.6 Quaternions

Quaternions são uma generalização de números complexos. Assim como um nú-mero complexo pode ser utilizado para representar uma rotação no plano, um qua-ternion pode ser utilizado para representar uma rotação no espaço. Um quaternioné uma entidade vetorial na forma:

Q = q0 + q1i + q2j + q3k, qi ∈ R, i = 0, . . . , 3 (28)

onde q0 é o componente escalar de Q e ~q = (q1, q2, q3) é o componente vetorial.É usual também a notação mais compacta Q = (q0, ~q) com q0 ∈ R e ~q ∈ R3.

O conjunto dos quaternions, H, possui propriedades semelhantes às proprie-dades do conjunto dos número complexos, C. A principal diferença é com relaçãoa multiplicação de quaternions que não é comutativa.

As seguintes propriedades dos quaternions podem ser consideradas generali-zações das propriedades dos números complexos:

1. ii = jj = kk = ijk = −1

2. ij = −ji = k jk = −kj = i ki = −ik = j

3. O conjugado de um quaternion Q = (q0, ~q) é dado por Q∗ = (q0,−~q).

4. O módulo de um quaternion satisfaz ‖Q‖2 = QQ∗ = q20 + q21 + q22 + q23

5. O inverso de um quaternion é Q−1 = Q∗

‖Q‖2

6. Q = (1, 0) é o elemento identidade para a multiplicação de quaternions

O produto entre dois quaternions pode ser escrito em termos do produto esca-lar e do produto vetorial entre vetores no R

3. Sejam Q = (q0, ~q) e P = (p0, ~p), oproduto será

QP = (q0p0 − ~q · ~p, q0~p+ p0~q + ~q × ~p)

Quaternions unitários são um subconjunto de todos Q ∈ H tais que ‖Q‖ = 1.Dada uma matriz de rotação

R =

r11 r12 r13r21 r22 r23r31 r32 r33

pode-se associar a ela um quaternion unitário tal que [2]:

27

Page 28: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

q0 =1

2

√r11 + r22 + r33 + 1

q1 =1

2

√r11 − r22 − r33 + 1, com sgn(q1) = sgn(r32 − r23)

q2 =1

2

√r22 − r11 − r33 + 1, com sgn(q2) = sgn(r13 − r31)

q3 =1

2

√r33 − r11 − r22 + 1, com sgn(q3) = sgn(r21 − r12)

ou ainda, se R = eωθ, tem-se que o quaternion unitário associado será:

Q = (cos(θ/2), ω sen(θ/2))

Por outro lado, um quaternion Q = (q0, ~q), representa uma rotação de θ =2 acos(q0) em torno do vetor dado por:

ω =

{ ~qsen(θ/2)

, se θ 6= 0

0 , caso contrário

E a matriz de rotação correspondente, será dada por R = eωθ.A principal vantagem dos quaternions sobre as matrizes de rotação é que per-

mitem uma representação que não está sujeita a problemas de singularidades.

7 Exercícios

• Obtenha as transformações ATB , ATC , BTC e CTA para os sistemas mostra-dos na figura 22.

28

Page 29: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

30◦

2

3

{A}{B}

{C}

XA

YA

ZA

XB

YB

ZB

XC

YC

ZC

Figura 22: Sistemas de coordenadas.

• O ponto AP2 é obtido rotacionando o ponto AP1 =[1 2 3

]Tde 30

em

torno de AX e de 60◦ em torno de AZ. Calcule o ponto AP2.

• Cosidere as seguintes matrizes de transformação homegênea:

ATB =

0.866 −0.5 0 30.5 0.866 0 −40 0 1 20 0 0 1

BTC =

1 0 0 00 0.866 −0.5 10 0.5 0.866 00 0 0 1

CTD =

0.866 −0.5 0 −30.433 0.75 −0.5 40.25 0.433 0.866 30 0 0 1

29

Page 30: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

Faça um esboço da posição dos sistemas de coordenadas {A}, {B}, {C},{D}.

• A figura 23 apresenta a ferramenta de um robô industrial orientada (sistemaX’ Y’ Z’) em relação ao sistema de referência fixo na base do robô (X, Y,Z). Para os dois casos mostrados na figura, obtenha as descrições da rotaçãoda ferramenta em relação à base do robô:

1. utizando matriz de rotação

2. utilizando ângulos de roll, pitch and yay

3. utilizando ângulos de Euler em torno de Z-X-Z

4. utilizando ângulos de Euler em torno de Z-Y-Z

5. utilizando coordenadas exponenciais

6. utilizando quaternions

(a) Sistema X’ Y’ Z’ na flange. (b) Sistema X’ Y’ Z’ na ferramenta.

Figura 23: Robô industrial.

• A posição e orientação de um robô móvel podem ser descritas no sistemade coordenadas global {X0, Y0, Z0} através da posição e orientação de dosistema de coordenadas {Xc, Yc, Zc} localizado no centro de massa do robô,como mostra a figura 24. Por sua vêz, cada roda do robô pode ser descritaem relação ao sistema {Xc, Yc, Zc} pelos parâmetros l, α e ψ, como mostraa figura 25.

1. Obtenha a matriz de transformação do sistema {Xc, Yc, Zc} em relaçãoao sistema {X0, Y0, Z0}.

30

Page 31: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

2. Obtenha a matriz de transformação do sistema {Xw, Yw, Zw} em rela-ção ao sistema {Xc, Yc, Zc}.

3. Supondo que a distância entre rodas coaxiais seja de 50cm e que adistância entre-eixos seja de 1m, determine, utilizando as transforma-ções homogêneas obtidas acima, a posição da roda frontal esquerda dorobô da figura 24 em relação ao sistema de coordenadas global quandoo robô estiver na posição xc = 3m, yc = 2m e θ = 45◦. Note que XC

aponta para a frente do robô.

Figura 24: Posição do robô móvel.

31

Page 32: 1 Descrição de Posição e Orientaçãofetter/eng10026/spatial.pdfUniversidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação

Figura 25: Descrição da posição e orientação das rodas.

Referências

[1] R. M. Murray, Z. Li, and S. S. Sastry. Mathematical Introduction to Robotic

Manipulation. CRC Press, Boca Raton, FL, 1994.

[2] V. F. Romano, editor. Robótica Industrial Aplicação na Indústria de Manufa-

tura e de Processos. Edgard Blücher, São Paulo, 2002.

32