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