Transformações Diferenciais Renato Paes Leme 1 Rotação Considere o espaço tridimensional R 3. Queremos calcular uma rotação em torno de um vetor unitário k qualquer. Esse problema é fácil para o eixo-z. Uma rotação em torno do eixo-z de θ radianos é dada por: cθ sθ 0 x x cθ y sθ sθ cθ 0 y = x sθ + y cθ 0 0 1 z z Uma idéia para fazer uma rotação de θ radianos em torno de um vetor unitário k no referencial base Σ 0 é considerar um novo referencial Σ 1 tal que k é o terceiro vetor da base ortonormal { n, o, a } de Σ 1, ou seja, a transformação de Σ 1 para Σ 0 é dada por: n x o x a x a x onde a = 0 C 1 = n y o y a y n z o z a z a y a z = k Pensando geometricamente: rotacionar em torno do vetor k de Σ 0 é a mesma coisa que rotacionar em torno do vetor [0, 0, 1] de Σ 1, pois ele corresponde ao vetor k de Σ 0. Podemos para rotacionar em torno de k aplico o seguinte processo: Transformo um vetor da base Σ 0 para a base Σ 1 Faço a rotação em torno do vetor [0, 0, 1] de Σ 1 ("o eixo-z") Retorno de Σ 1 para a base Σ 0 Os processos descritos acima são feitos respectivamente por: C 1, pela matriz de rotação em torno do eixo z e por C. Como: n x n y n z C 1 = o x o y o z a x a y a z 1
temos que a rotação em torno de k pode ser escrita como: Rot(θ, n x o x a x cθ sθ 0 n x n y n z k ) = n y o y a y sθ cθ 0 o x o y o z n z o z a z 0 0 1 a x a y a z Usando manipulações algébricas e o fato de que a = k e que os vetores { n, o, a } são ortonormais, chegamos a: Rot(θ, kx 2 verθ + cθ k xk y verθ k z sθ k z k x verθ + k y sθ k ) = k x k y verθ + k z sθ ky 2 verθ + cθ k zk y verθ k x sθ k z k x verθ k y sθ k z k y verθ + k x sθ kz 2 verθ + cθ 2 Rotações diferenciais Os casos especiais de rotação são as rotações em torno dos eixos coordenados. Elas são dadas por: cθ sθ 0 Rot(θ, z) = sθ cθ 0 0 0 1 cθ 0 sθ Rot(θ, y) = 0 1 0 sθ 0 cθ 1 0 0 Rot(θ, x) = 0 cθ sθ 0 sθ cθ Armo que fazer uma rotação de um ângulo θ pequeno (e com θ pequeno digo um ãngulo tal que sθ θ e cθ 1 em torno de um vetor unitário k equivale à composição de rotações Rot(x, δ x ), Rot(y, δ y ) e Rot(z, δ z ) onde: δ x k x δ = δ y δ z = θ k y k z = θ k Fazendo sθ = θ, cθ = 1 e verθ = 0, temos que a rotação de θ pequeno em torno de k pode ser dada pela matriz: Rot(θ, 1 k z θ k y θ 1 δ z δ y k ) = k z θ 1 k x θ = δ z 1 δ x k y θ k x θ 1 δ y δ x 1 2
Note que esse é o mesmo resuldado do produto abaixo, se considerarmos que as componentes de δ são de tal forma pequenas, que o produto de duas é praticamente nulo, isto é, δ x δ y 0, δ y δ z 0 e δ z δ x 0 e as aproximação de seno e cosseno: 1 0 0 1 0 δ y 1 δ z 0 Rot(δ x, x) Rot(δ y, y) Rot(δ z, z) = 0 1 δ x 0 1 0 δ z 1 0 0 δ x 1 δ y 0 1 0 0 1 Assim, podemos representar uma rotação innitesimal por um vetor δ. Essa rotação pode ser vista, de forma equivalente, como: a composição de uma rotação de δ x em torno do eixo-x, uma rotação de δ y em torno do eixo-y, e uma rotação de δ z em torno do eixo-z, a rotação de um ângulo δ = δ em torno de um vetor unitário δ /δ 3 Transformações Diferenciais Uma transformação diferencial é a composição de uma translação diferencial d com uma rotação diferencial δ, e pode ser representada pela matriz 4 4: 1 δ z δ y d x Φ = δ z 1 δ x d y δ y δ x 1 d z A transformação representada pela matriz Φ representa uma alteração muito pequena (diferencial) da posição anterior, pois as componentes dos vetores d e δ são muito menores que 1. Dessa forma, faz sentido representar Φ como a soma da identidade, mais um incremento, ou seja: = Φ I 3 onde I 3 é a matriz identidade 3 3. 0 δ z δ y d x = Φ I 3 = δ z 0 δ x d y δ y δ x 0 d z 0 0 0 0 Suponha que essa transformação diferencial é realizada no Sistema de Coordenadas de referência Σ 0. Se temos um sistema de coordenadas Σ 1 caracterizado pela matriz (que é a transformação de Σ 1 para Σ 0, também chamado de "modo como Σ 1 é visto de Σ 0 "): 3
n x o x a x p x 0 T 1 = n y o y a y p y n z o z a z p z Podemos nos fazer a seguinte pergunta: Como o incremento innitesimal feita no referencial Σ 0 é vista no referencial Σ 1? Vamos olhar com calma para essa pergunta. Σ 0 e Σ 1 são dois sistemas de coordenadas para se representar o mesmo espaço geométrico e T é uma matriz que relaciona essas duas representações. Executamos uma transformação no espaço que tem signicado geométrico independente de representações. Essa transformação é vista de forma diferente nos dos referenciais Σ 0 e Σ 1. Sejam Φ e T Φ as matrizes que representem essa transformação nos espaços. Se queremos determinar a matriz que dá a transformação de um vetor v no Sistema de Coordenadas Σ 1 (represenrador por T ), podemos: 1. Simplesmente aplicamos a transformação T Φ 2. Mudamos para o sistema Σ 0 usando T e depois aplicamos a transformação em Σ 0 usando Φ. Por m, voltamos ao sistema Σ 1 aplicando T 1 Como essas formas são equivalentes: T Φ = T 1 ΦT. matriz T Φ da seguinte forma: 1 δz δy d x T Φ = δz 1 δx d y δ y δx 1 d z Obteremos uma Assim, saberemos que a transformação innitesimal caracterizada pelos vetores ( d, δ ) em Σ 0 corresponde à transformação caracterizada por ( d, δ ) em Σ 1 (também chamado de referencial T, pois T é "o modo com Σ 1 é enxergado de Σ 0 "). Podemos analisar também a relação entre os incrementos em Σ 0 e T, o incremento correspondente em Σ 1. Como T é o incremento de T Φ, podemos denir: Matricialmente: T = T Φ I 3 = T 1 ( + I 3 ) T I 3 = T 1 T 4
0 δz δy d x T = δz 0 δx d y δ y δx 0 d z 0 0 0 0 Como exemplo, apresentemos o seguinte exercício: Exercício: Uma câmera é acoplada ao quinto elo de um manipulador. A conexão é denida por: 0 0 1 5 0 1 0 0 CAM T 5 = 1 0 0 10 O último elo do manipulador é descrito na atual posição por: 0 1 0 0 5 A 6 = 1 0 0 0 0 0 1 8 Um objeto CAM O é observado e transformações diferenciais nas coordenadas da câmera são realizadas, de modo que o efetuador nal entre em contato com o objeto. Temos: CAM d = [ 1, 1, 0] CAM δ = [0, 0, 0.1] Quais são as mudanças necessárias em T 6, que é o referencial do sexto elo. A mudança de coordenadas entre a câmera e o sexto elo, é dada por: 0 0 1 3 CAM T 6 = ( ) ( CAM T 5 5 ) A 6 = 1 0 0 0 0 1 0 10 A transformação innitesimal que ocorre no referencial da câmera é dada por: 0 δ z δ y d x 0 0.1 0 1 CAM = δ z 0 δ x d y δ y δ x 0 d z = 0.1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 5
Para calcular 6 no referencial 6 T, precisamos mudar para de T 6 para o sistema da câmera, aplicar CAM e voltar para T 6. Isso pode ser feito com: Substituindo as matrizes, temos: 6 = ( CAM T 6 ) 1 ( CAM ) (CAM T 6 ) 0 1 0 0 0 0.1 0 1 0 0 1 3 6 = 0 0 1 10 1 0 0 3 0.1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 10 = 0 0 0 0 0 0 0.1 0.7 = 0 0 0 0 0.1 0 0 1 0 0 0 0 Comparando a matriz obtida com a fórmula de, temos: 6 d = [0.7, 0, 1] 6 δ = [0, 0.1, 0] 6