• Sonuç bulunamadı

em que R ∈ SO(n), d ∈ R

né um vetor coluna de dimensão n × 1 e 0 é um vetor linha de

dimensão 1 × n.

A matriz H é chamada matriz de transformação homogênea e é utilizada para represen- tar o movimento de um corpo rígido. De maneira análoga às matrizes de rotação do grupo SO(n), as matrizes de transformação homogênea, quando multiplicadas sucessivamente a um sistema de coordenadas inicial móvel FA, com posição e orientação em relação ao sis-

tema de coordenadas fixo dadas por H1

0, implicam em uma orientação e posição final dadas

por Hk

0 = H10·H21. . .·Hkk−1. Assim como no caso das matrizes do grupo SO(n), a ordem da

multiplicação é importante. Sendo a transformação homogênea que relaciona FAcom FW

dada por H1

0, então se uma segunda transformação, dada por H, for feita em relação a FW, a

orientação e posição final são dadas por H2

0 = H· H10 [37].

2.2 REPRESENTAÇÕES ALTERNATIVAS PARA ROTAÇÕES

Existem representações alternativas para rotações, além de SO(n), que podem ser adota- das. O uso de cada uma é dado pela conveniência e ausência de restrições que inviabilizem

sua utilização. Por exemplo, uma rotação no plano pode ser representada por uma matriz do grupo SO(2). Este grupo é homeomorfo aS

1, que por sua vez está embutido em

R

2. Uma

representação de menor cardinalidade2pode ser dada por um mapeamento de

S

1

Rpor

meio de um processo de identificação [19].

Definição 2.2.1. Um espaço topológico pode ser redefinido por meio de um processo de identificação, no qual alguns pontos previamente distintos passam a ser considerados iguais. Utiliza-se a notação X/ ∼ para indicar que o espaço topológico X foi identificado e a indentificação é dada por a ∼ b, indicando que os pontos a e b são equivalentes. 

Exemplo 2.2.1. Para a rotação em duas dimensões, a identificaçãoS

1 = [0, 1]/ ∼, com

0 ∼ 1 permite que um ângulo seja mapeado no intervalo θ ∈ [0, 1], sendo o ponto 0

equivalente ao ponto 1. A parametrização θ → (cos(2πθ), sin(2πθ)) faz o mapeamento inverso [0, 1] → S

1, que nada mais é que a parametrização por coordenadas polares

normalizada no intervalo [0, 1].

Exemplo 2.2.2. Em robótica móvel, usualmenteθ = 0 6= θ = 2π. Embora no mapa seja

a mesma postura, não é a mesma coisa para fins de controle e movimentação. Suponha que seja definida uma função de distância entre dois ângulos

d =k θend− θstart k . (2.11)

Se θend = 179◦ e θstart =−179◦, então d = 179◦− (−179◦) = 358◦. Porém, se o espaço

for identificado de tal forma que θ ∈ [−180, 180]/∼, −180∼ 180, então a Equação

2.11 é redefinida como d =         

k θend− θstart k se (θend− θstart)∈ [−180◦, 180◦],

k θend− θstart+ 360◦ k se (θend− θstart) < 180◦,

k θend− θstart− 360◦ k se (θend− θstart) > 180◦.

(2.12)

Logo, se θend = 179◦e θstart =−179◦, então d = 2. 

Pode-se definir o espaço de configurações para robôs com diferentes modelos geométri- cos3 por meio do produto cartesiano de diferentes espaços de configurações, havendo ainda

várias representações para o espaço de configurações de um mesmo robô.

Exemplo 2.2.3. Um robô poliédrico que se translaciona em um plano mas não possui

movimentos de rotação e cuja dinâmica é desconsiderada tem seu espaço de configura- ções pertencente aR

2.

2Cardinalidade representa o número de elementos de um conjunto.

3Muitos livros de robótica utilizam o termo “modelo cinemático” para designar o modelo geométrico de

Caso exista movimento de rotação, o espaço de configurações com representação de menor cardinalidade passa a serR

2×

S. Como visto no Exemplo 2.2.1, a parametrização

θ → (cos(2πθ), sin(2πθ)),

com θ = [0, 1]/ ∼ e 0 ∼ 1 pode ser utilizada para a representação de θ. Pode-se ainda representar o espaço de configurações comoR

2× SO (2) ou SE (2).

Sendo R

2 ×

S uma variedade tridimensional, pode-se representar o robô apenas por

ξp = (x, y, θ), em que ξpé conhecida como a postura do robô. Contudo, o devido cuidado

deve ser utilizado nos pontos de descontinuidade de θ, como já foi mostrado no Exemplo

2.2.2. 

Exemplo 2.2.4. Pode-se representar vários robôs, realizando simultaneamente movimento

de translação no plano, com apenas um espaço de configurações. Se for utilizada uma aborgagem centralizada, isto é, um modelo global para vários robôs que somente se translacionam no plano, o espaço de configurações global é dado porR

2× . . . ×

R

2 =

R

2n, em que n é o número de robôs. Desta forma, a definição de espaço de configurações

passa a ser mais ampla que a Definição 2.0.2, uma vez que vários sistemas de coorde- nadas FAi (i = 1, . . . , n) associados um a cada robô são necessários para representar o

espaço de configurações. 

2.2.1 Ângulos de Euler

Para rotações em três dimensões, uma parametrização muito utilizada é por meio dos ângulos de Euler, em que a orientação é definida por meio de uma tripla (φ, θ, ψ). Esses três ângulos representam rotações sucessivas em diferentes eixos de FA partindo de uma

orientação inicial de referência. A Figura 2.3 mostra essas três rotações partindo do sistema de coordenadas inicial (x0, y0, z0). Na Figura 2.3(a), uma rotação φ em torno de z0 é feita,

resultando no sistema de coordenadas (x1, y1, z1). Na Figura 2.3(b), uma rotação θ é feita

em torno de y1, resultando no sistema de coordenadas (x2, y2, z2). Por último, uma rotação

ψ em torno de z2 é feita, implicando na orientação final dada por (x3, y3, z3). A seqüência

de eixos de rotação pode ser diferente, apenas implicando em cartas diferentes [36]. A matriz de rotação correspondente aos ângulos de Euler é dada por

Eφθψ =    cos(φ) − sin(φ) 0 sin(φ) cos(φ) 0 0 0 1    ·    cos(θ) 0 sin(θ) 0 1 0 − sin(θ) 0 cos(θ)    ·    cos(ψ) − sin(ψ) 0 sin(ψ) cos(ψ) 0 0 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θ   , (2.13)

(a) Rotação de um ângulo φ em relação a z0. (b) Rotação de um ângulo θ em relação a y1. (c) Rotação de um ângulo ψ em relação a z2

Figura 2.3: Orientação utilizando ângulos de Euler. em que sin α = sα, cos α = sαe Eφθψ ∈ SO(3). Fazendo

Eφθψ =    r11 r12 r13 r21 r22 r23 r31 r32 r33   

com φ, ψ ∈ [0, 2π) e θ ∈ (0, π), tem-se que [36]

φ = atan2(r23, r13), (2.14) θ = atan2( q r2 31+ r232, r33), ψ = atan2(r32,−r31).

Um problema da parametrização por meio dos ângulos de Euler é que dois pontos di- ferentes (φ1, θ1, ψ1) e (φ2, θ2, ψ2) podem levar a uma mesma orientação (e.g. (π4, 0,π4) e

2, 0, 0)).

Exemplo 2.2.5. Para um robô que se move em um espaço de trabalho tridimensional, se

não houver movimento de rotação, o espaço de configurações é dado porR

3. Caso haja

rotação, ele é definido comoR

3 × SO(3) ou SE(3). Com um atlas adequado pode-se

representar SE(3) por meio de um espaço EuclidianoR

6(e.g. x, y, z, φ, θ, ψ), em que φ,

θ e ψ são os ângulos de Euler. Neste caso, comumente a configuração do robô é chamada postura. Assim como emS

1, não é possível representar a rotação tridimensional por meio

de ângulos de Euler usando apenas uma carta global [2].  2.2.2 Quatérnios

Os quatérnios são uma extensão do conceito de números complexos, uma vez que são constituídos de uma componente real e três componentes imaginárias [19]. Assim, dado o quatérnio h ∈H, tem-se que

em que a, b, c, d ∈R. Além disso, tem-se que

−ji = ij = k, (2.16)

−kj = jk = i, (2.17)

−ik = ki = j, (2.18)

i2 = j2 = k2 =−1. (2.19)

Os componentes do quatérnio formam uma base ortogonal em R

4. Assim, um quatérnio

pode ser representado pelo vetor h = [a, b, c, d]T, sendo o seu módulo definido como

k h k =√a2+ b2+ c2+ d2 =hTh. (2.20)

Os quatérnios formam um grupo quanto à multiplicação. Dados os quatérnios h1 e h2, a

operação h3 = h1· h2 resulta em um quatérnio dado por

h3 =h1· h2 =(a0+ b0i+ c0j+ d0k)(a1 + b1i+ c1j+ d1k) =(a0a1− b0b1− c0c1− d0d1)+ (a0b1+ b0a1+ c0d1− d0c1)i+ (a0c1− b0d1+ c0a1+ d0b1)j+ (a0d1+ b0c1− c0b1+ d0a1)k. (2.21)

Pela Eq. (2.19) nota-se que ij = −ji, −kj = jk e −ik = ki, o que indica que a ordem da multiplicação é importante. Logo h1· h2 6= h2· h1.

Os quatérnios podem ser reescritos, em notação compacta, como

h = (p0, p), (2.22)

em que p0 = a0 e p = [b0, c0, d0]T. Assim, a multiplicação dos quatérnios h1 = (p0, p) e

h2 = (r0, r), com r0 = a1e r = [b1, c1, d1]T, pode ser reescrita como

h3 = h1· h2 = (s0, s), s0 = p0r0− pTr s= p0r+ r0p+ p× r, (2.23) e p× r = det    i j k b0 c0 d0 b1 c1 d1    (2.24)

Os quatérnios de módulo unitário podem ser usados para representar rotações θ em torno de um vetor unitário, assim como na representação eixo-ângulo dada pela Eq. (2.9). Assim, o quatérnio hr = (cos θ 2, nxsin θ 2, nysin θ 2, nzsin θ 2), (2.25)

representa a rotação de um ângulo θ em torno do eixo unitário n [19]. Sendo n = [nx, ny, nz]T

um vetor unitário, hrtambém é unitário, pois

k hr k = cos2 θ 2+ n 2 xsin 2 θ 2+ n 2 ysin 2 θ 2 + n 2 zsin 2 θ 2 = cos2 θ 2+✘✘✘✘ ✘✘✘✘ ✘ ✿1 (n2x+ n2y + n2z) sin2 θ 2 = 1. (2.26)

Sendo o quatérnio h = a + bi + cj + dk, a matriz de rotação correspondente pode ser dada por

R(h) = 

 

2(a2+ b2)− 1 2(bc− ad) 2(bd + ac)

2(bc + ad) 2(a2+ c2)− 1 2(cd− ab)

2(bd− ac) 2(cd + ab) 2(a2+ d2)− 1