7
I SBAI - UNESP - Rio Claro/SP - Brasil UM ESTUDO SOBRE QUATÉRNIOS E SUA APLICAÇÃO EM ROBÓTICA THELDO CRUZ FRANQUEIRA Departamento de Ciência da Computação Pontifícia Universidade Católica de Minas Gerais Av. Dom José Gaspar 500 30535-610 Belo Horizonte - MO - Brasil RESUMO Para reduzir o esforço computacional em sistemas de controle de robôs, é sugerido fazer o planejamento do caminho a ser percorrido usando-se funções interpoladoras cúbicas, do tipo "spline", para se construir aproximações da trajetória desejada em coordenadas cartesianas. Em cinemática de robôs, o modelamento de rotações e translações é geralmente feito empregando-se transformações homogêneas. Neste trabalho, uma abordagem alternativa, empregando quatérnios como operadores espaciais, é apresentada. SUMMARY To reduce the on-fine computational burden for robotic control systems, it is suggested to do path planning at joint levei using cubic spfine functions for constructing trajectories that approximate a preplanned robot path in Cartesian coordinates. In robotic kinematics, modelling of rotations and translations is most commonly pelformed llsing homogeneous trasnforms. In this paper, an alternate approach, employing qllaternions as spatial operators, is presented. 1. INTRODUÇÃO Com o advento de computadores e sua aplicação à geração de imagens animada e ao controle de robôs, levanta-se um novo interesse em identificar formas mais compactas e computacionalmente eficientes para representar transformações de posição e de orientação de um corpo rígido no espaço. Em um espaço euclidiano tridimensional, 6 parâmetros são necessários para especificar a localização e a orientação de uma extremidade ativa de um robô. Geralmente, a localização de um ponto, expressa em um - 527- sistema de coordenadas cartesianas, é dada por um vetor de posição ( 3 graus ) e a sua orientação é especificada pelos ângulos de Euler ( outros 3 graus ). Estes últimos são comumente usados, embora não sejam os mais eficientes para aplicações em robótica. Isto se deve à necessidade de se manipular uma matriz de rotação, o que exige um maior tempo de processamento. O objetivo deste trabalho é apresentar uma outra representação alternativa quatérnios - e mostrar sua viabilidade para aplicação em robótica no planejamento de trajetórias.

I SBAI -UNESP -Rio Claro/SP -Brasil movimentos de rotação ( orientação ), nosso objetivo é mostrar que também podem ser aplicados, eficientemente, aos movimentos de translação

Embed Size (px)

Citation preview

Page 1: I SBAI -UNESP -Rio Claro/SP -Brasil movimentos de rotação ( orientação ), nosso objetivo é mostrar que também podem ser aplicados, eficientemente, aos movimentos de translação

I SBAI - UNESP - Rio Claro/SP - Brasil

UM ESTUDO SOBRE QUATÉRNIOS E

SUA APLICAÇÃO EM ROBÓTICA

THELDO CRUZ FRANQUEIRA Departamento de Ciência da Computação

Pontifícia Universidade Católica de Minas Gerais Av. Dom José Gaspar 500

30535-610 Belo Horizonte - MO - Brasil

RESUMO Para reduzir o esforço computacional em sistemas de controle de

robôs, é sugerido fazer o planejamento do caminho a ser percorrido usando-se funções interpoladoras cúbicas, do tipo "spline", para se construir aproximações da trajetória desejada em coordenadas cartesianas. Em cinemática de robôs, o modelamento de rotações e translações é geralmente feito empregando-se transformações homogêneas. Neste trabalho, uma abordagem alternativa, empregando quatérnios como operadores espaciais, é apresentada.

SUMMARY To reduce the on-fine computational burden for robotic control

systems, it is suggested to do path planning at joint levei using cubic spfine functions for constructing trajectories that approximate a preplanned robot path in Cartesian coordinates. In robotic kinematics, modelling of rotations and translations is most commonly pelformed llsing homogeneous trasnforms. In this paper, an alternate approach, employing qllaternions as spatial operators, is presented.

1. INTRODUÇÃO

Com o advento de computadores e sua aplicação à geração de imagens animada e ao controle de robôs, levanta-se um novo interesse em identificar formas mais compactas e computacionalmente eficientes para representar transformações de posição e de orientação de um corpo rígido no espaço.

Em um espaço euclidiano tridimensional, 6 parâmetros são necessários para especificar a localização e a orientação de uma extremidade ativa de um robô. Geralmente, a localização de um ponto, expressa em um

- 527-

sistema de coordenadas cartesianas, é dada por um vetor de posição ( 3 graus ) e a sua orientação é especificada pelos ângulos de Euler ( outros 3 graus ). Estes últimos são comumente usados, embora não sejam os mais eficientes para aplicações em robótica. Isto se deve à necessidade de se manipular uma matriz de rotação, o que exige um maior tempo de processamento.

O objetivo deste trabalho é apresentar uma outra representação alternativa quatérnios - e mostrar sua viabilidade para aplicação em robótica no planejamento de trajetórias.

Page 2: I SBAI -UNESP -Rio Claro/SP -Brasil movimentos de rotação ( orientação ), nosso objetivo é mostrar que também podem ser aplicados, eficientemente, aos movimentos de translação

I SBAI - UNESP - Rio Claro/SP - Brasil

Um dos requisitos de sistemas robóticos é a capacidade de controlar sua trajetória ( posições e orientações ), no espaço cartesiano, devido às necessidades dos procedimentos de ensino/depuração e para sua modificação em tempo real. Tipicamente, a execução se dá em termos de valores relacionados aos atuadores/juntas individuais.

V ários trabalhos recentes têm proposto quatérnios como alternativa de representação para movimentos de rotação ( orientação ), nosso objetivo é mostrar que também podem ser aplicados, eficientemente, aos movimentos de translação ( posição ), através da utilização de sua álgebra implementada computacionalmente.

2. BREVE HISTÓRICO

Quatérnios foram propostos por Sir William Rowan Hamilton, em 1843, enquanto procurava estender o plano complexo ao espaço de três dimensões.

Em fevereiro de 1845, tão logo tomados públicos, A. Cayley mostrou que podiam ser usados para representar orientação.

A análise cinemática de mecanismos tridimensionais via métodos algébricos é recente. Foram pioneiros F. M. Dimentberg, em 1948, e depois, J. Denavit e R. S. Hartenberg que também os usaram, suplementando métodos puramente algébricos com procedimentos numéricos iterativos.

Outras referências podem ser encontradas nos trabalhos de R. Beyer, W. Blaschke, A. P. Kotelnikov, E. Study, A. MacAulay. Mais recentemente, varlOS trabalhos publicados por E. Pervin e J. A. Webb, R. H. Taylor, M. Brady, E. Salamin, J. F. Canny, D. Pletinckx e K. Shoemake vêm promovendo seu uso em ro bótica e computação gráfica.

- 528-

3. PRELIMINARES MATEMÁTICAS

Um quatérnio pode se definido como

Q = qr +qJ +qyJ +qzk = qr +V (01)

onde

q q q q são escalares r' x' y' z

V é um vetor

i,J,k são três vetores unitários de um sistema de coordenadas ortogonal ( x, y, z ).

O conjugado Q. é definido como

Q·=qr-qJ-qJ-q.k=qr-v (02)

Um quatérnio, que tenha apenas parte vetorial, pode representar uma posição no espaço tridimensional, sendo reescrito como

(03)

O quatérnio unitário tem norma igual a

IIQII = q~ + q; + q~ + q; = 1 e também pode ser escrito na forma

Q = cos(Sj2)+sen(Sj2)d

onde

d é a direção do eixo de rotação; S é o ângulo de rotação

(04)

(05)

e este quatérnio é chamado de "quatérnio de rotação".

Se a rotação for em sentido contrário, a parte escalar permanece a mesma, mas a parte vetorial terá o sinal trocado. Logo

Q = -(cos(Sj2)+sen(Sj2)d) (06)

A. equação genérica para o recíproco de um quatérnio é

(07)

Page 3: I SBAI -UNESP -Rio Claro/SP -Brasil movimentos de rotação ( orientação ), nosso objetivo é mostrar que também podem ser aplicados, eficientemente, aos movimentos de translação

I SBAI - UNESP - Rio Claro/SP - Brasil

Como todos os efeitos de magnitude ficam distribuídos pela normalização, qualquer multiplicação de um quatérnio por uma escalar dará a mesma rotação. ( Este comportamento também é observado no caso de coordenadas homogêneas, onde o produto leva ao mesmo ponto não-homogêneo. )

Se um quatérnio de posição realizar uma rotação definida por outro, ele se transformará em um novo vetor de posição

Esta fórmula apresenta uma forte semelhança com a fórmula (05). Assim, a rotação de um ângulo sobre um eixo também pode ser representada como

9--d Q=e 2

Tomando o cuidado para que

S E (-1t, 1t)

(14)

(15)

e a relação ente ambos será

(08) para evitar ambigüidades; e já que errd =-1 para todo eixo de rotação, deve-se ter ln(-l) indefinido, para cada vetor unitário.

li = QrQ" Um quatérnio

(09) 4. APLICAÇÃO EM ROBÓTICA

- - -QT = q) +qyj +qzk (10)

que só tenha parte vetorial pode ser usado para representar uma translação, e quando aplicado sobre um vetor de posição transforma-o em outro

(11)

Quando um vetor realiza uma rotação e uma translação, elas podem ser combinadas por

r2 = QT + QrQ" (12)

A representação de rotação sobre um eixo de coordenadas por quatérnio tem forma mais simples que a representação por matriz de transformação homogênea.

Um outro resultado importante vem da generalização do teorema de DeMoivre para números complexos

9i

e = cos(S) +sen(S)i (13)

onde

i = H indica a parte imaginária.

- 529-

Um campo de aplicação de quatérnios é o do estudo da orientação de robôs manipuladores. Tradicionalmente um manipulador pode ser visto como uma série de elementos ligados, cada qual com seu próprio sistema de coordenadas.

Por exemplo, a relação entre dois sistemas de coordenadas pode ser expressa

em termo dos ângulos a n e Sn e envolvendo uma matriz de rotação

sallsSn ] -sancSn

can

(16)

Mas, através de quatérnios esta mesma representação pode ser expressa por

(17)

Cujas rotações ainda podem ser compostas

(18)

Page 4: I SBAI -UNESP -Rio Claro/SP -Brasil movimentos de rotação ( orientação ), nosso objetivo é mostrar que também podem ser aplicados, eficientemente, aos movimentos de translação

I SBAI - UNESP - Rio Claro/SP - Brasil

A única mudança importante acontece se a posição for representada por um vetor nas coordenadas do elemento (n), então a representação nas coordenadas do elemento

8n será

ao invés de

(20)

no caso da formulação matricial.

5. PLANEJAMENTO DE TRAJETÓRIAS

O planejamento no espaço de juntas tem a vantagem de ser direto, em termos de variáveis controladas e de restrições dinâmicas, com rápida computação. Contudo, pode resultar em erros de posicionamento, dependendo dos polinômios interpoladores.

O planejamento orientado para o espaço cartesiano tem como vantagem a aplicação imediata de conceitos, e uma certa precisão ao longo de uma trajetória linear.

Paul (1974) descreveu como projetar caminhos cartesianos compostos de segmentos de reta.

Taylor (1979) estendeu e refinou o método proposto, usando a representação por quatérnios, o que traria vantagens para tratar as transições mediante rotações. Propôs duas abordagens para o deslocamento linear entre pontos de controle: o controle de caminho cartesiano; e o controle de caminho com desvio limitado em junta, que requer a seleção prévia de alguns pontos de controle para interpolação dos valores de juntas.

Este detalhe reduziu consideravelmente o custo computacional gasto a cada intervalo de amostragem.

- 530-

Esta última abordagem mantém o erro dentro de uma tolerância especificada, mas ainda existente, pois a aproximação por retas somente inscreve-se ao caminho desejado.

Paul e Fink:el iniciaram os estudos no sentido de utilizar polinômios interpoladores do tipo "spline" de baixa ordem. Luh e Lin (1983) propuseram o uso de "splines" de terceira e quarta ordens. Lin e Chang (1983) propuseram "X-splines", generalizações das "splines" cúbicas com descontinuidade da derivada segunda nos pontos, mas só necessita dos próximos dois, ou três, valores de junta para interpolar. Ken Shoemake (1985) apresentou um novo tipo de "spline" esférica para animação gráfica usando quatérnios. Daniel Pletinckx (1988; 1989), também em computação gráfica, propôs novas aproximações ( "B-splines" e "splines" cardinais ), exclusivamente com quatérnios.

6. NOVAS PROPOSTAS

O objetivo deste trabalho é retomar as propostas de aproximação por "splines", e aplicá-las diretamente ao espaço de quatérnios. Esta abordagem é diferente, porque irá se concentrar no movimento de translação, não se limitando apenas à rotação, como se tem encontrado na bibliografia.

O que se espera com esta iniciativa é mostrar que quatérnios podem ser utilizados como alternativa aos vetores tridimensionais, onde estes são tradicionalmente empregados, mantendo as mesmas propriedades e acrescentado algumas vantagens e facilidades computacionais.

Uma delas é a implementação direta da álgebra de quatérnios, usando uma linguagem com orientação a objetos.

A maior vantagem no emprego desta orientação é o fato de que o comportamento e representação da informação são "encapsulados" no objeto, e a única maneira

Page 5: I SBAI -UNESP -Rio Claro/SP -Brasil movimentos de rotação ( orientação ), nosso objetivo é mostrar que também podem ser aplicados, eficientemente, aos movimentos de translação

I SBAI - UNESP - Rio Claro/SP - Brasil

de alterá-los é executando operações sobre eles. Estas características são exigidas em qualquer álgebra. No caso da orientação a objetos, as relações entre dados e operações passam a um nível de abstração mais alto, sem risco do comprometimento da eficiência computacional, aliás, serve para aumentar sua confiabilidade.

Escolhemos a linguagem C ++, por manter algumas propriedades de linguagem híbrida, permitindo um maior acesso a características de nível mais baixo, inclusive ao nível de máquina, o que facilita sua aplicação laboratorial e a prototipação.

A definição de quatérnios usada foi :

class Quaternion { public: float qr, qx, qy, qz; Ii Estrutura de dados

Ii Construtores Quaternion O; Quaternion (float r, float x, float y, float z); Quaternion (Quaternion &);

Ii Operadores Quaternion operator-O; Quaternion operator+(Quaternion &); Quaternion operator-(Quaternion &); Quatérnio operator-O; Ii Recíproco Quaternion operator*(Quaternion &); Quaternion operator/(Quaternion &); Quaternion operator=(Quaternion &);

I I Operadores associados Quaternion operator*(float); Quaternion operator/(float);

Ii Funções associadas Quaternion unitO; Ii Normalização Quaternion conjO; Ii Conjugado Quaternion sqrO; Ii Quadrado

};

- 531 -

Desenvolvemos, então, duas novas propostas de "splines" ( uma linear e outra esférica) do tipo cardinal, que chamamos de cardinais médias, porque apresentam erros intermediários entre estas e as "B-splines".

void msq(Quaternion & qO, Quaternion & ql, Quaternion & q2, Quaternion & q3, float c, int i)

{/* "Spline" cardinal média (linear)*1 Quaternion qm; qm = (qO+q3)*(-c/16) +

(ql+q2) * (0.5+c/16); if(delta(qm,q2) > step && i > O) {msq(qO,ql,qm,q2,c,i-l); mark(qm); msq(ql,qm,q2,q3,c,i-l); }

return;

Sua dedução parte da expansão da fórmula da "spline" cardinal, e ao invés de tensionar os extremos, manter os pontos de controle especificados e uma trajetória mais próxima da linear.

void nsq(Quaternion & qO, Quaternion & ql, Quaternion & q2, Quaternion & q3, float c, int i)

{/* "Spline" cardinal média (esférica)*1 Quaternion qm; qm = smid((ql +q2)/2.0,

smid(qO,q3)*(c/4)+ smid(ql,q2)*(1 +c/4»;

if(delta(qm,q2) > step && i > O) { nsq(qO,q 1,qm,q2,c,i-l); mark(qm); nsq(q 1,qm,q2,q3,c,i-l); } return;

Page 6: I SBAI -UNESP -Rio Claro/SP -Brasil movimentos de rotação ( orientação ), nosso objetivo é mostrar que também podem ser aplicados, eficientemente, aos movimentos de translação

I SBAI - UNESP - Rio Claro/SP - Brasil

A tabela O 1 compara erros de posição, variando-se os parâmetros como o fator de tensionamento e nível de recursão (n).

T b I 01 E d a ea rros e poslçao 1. Figura qualquer

Linear Esférica fator n B·spline Cardinal Média B-spline Cardinal Média

2 0.1000 0.1851 0.1123 0.0215 0.2013 0.1208 0.75 3 0.0863 0.1195 0.0782 0.0151 0.1394 0.0921

4 0.0898 0.0996 0.0641 0.0128 0.1148 0.0724 2 0.0672 0.1209 0.0742 0.0215 0.1327 0.0810

0.50 3 0.0576 0.0750 0.0513 0.0151 0.0925 0.0626 4 0.0481 0.0610 0.0414 0.0128 0.0776 0.0501 2 0.0338 0.0592 0.0368 0.0215 0.0682 0.0417

0.25 3 0.0295 0.0362 0.0252 0.0151 0.0511 0.0352 4 0.0218 0.0278 0.0207 0.0128 0.0424 0.0267

2. Senóide Linear Esférica

fator n B-spline Cardinal Média B-spline Cardinal Média 0.75 3 0.0030 0.0068 0.0041 0.0001 0.0068 0.0041 0.50 3 0.0020 0.0046 0.0026 0.0001 0.0046 0.0026 0.25 3 0.0010 0.0023 0.0014 0.0001 0.0023 0.0014

3. Círculo Linear Esférica

fator n B-spline Cardinal Média B-spline Cardinal Média 0.75 3 0.0004 0.0009 0.0006 0.0013 0.0014 0.0007 0.50 3 0.0003 0.0006 0.0004 0.0013 0.0013 0.0006 0.25 3 0.0001 0.0003 0.0002 0.0013 0.0013 0.0006

A tabela 02 compara os tempos de execução em um computador IBM-PC AT-486 compatível com 25 MHz.

T b I 02 T a ea empos d e execuçao. 1. Figura qualquer

Linear Esférica fator n B-spline Cardinal Média B-spline Cardinal Média

2 0.6484 0.6484 0.6429 0.6374 0.6593 0.6593 0.75 3 0.6578 0.6703 0.6593 0.6538 0.6923 0.6978

4 0.6923 0.6868 0.6758 0.6703 0.7253 0.7308 2 0.6484 0.6484 0.6429 0.6374 0.6593 0.6648

0.50 3 0.6758 0.6703 0.6593 0.6593 0.6868 0.6978 4 0.6923 0.6868 0.6703 0.6758 0.7253 0.7308 2 0.6484 0.6484 0.6429 0.6429 0.65.93 0.6593

0.25 3 0.6813 0.6648 0.6593 0.6538 0.6868 0.6978 4 0.7033 0.6868 0.6703 0.6703 0.7253 0.7253

2. Senóide Linear Esférica

fator n B-spline Cardinal Média B-spline Cardinal Média 0.75 3 0.6978 0.6813 0.6703 0.6593 0.7143 0.7253 0.50 3 0.6923 0.6813 0.6703 0.6648 0.7088 0.7253 0.25 3 0.6978 0.6813 0.6703 0.6648 0.7088 0.7253

3. Círculo Linear Esférica

fator n B-spline Cardinal Média B-spline Cardinal Média 0.75 3 0.7198 0.6978 0.6868 0.6758 0.7363 0.7527 0.50 3 0.7198 0.7033 0.6923 0.6758 0.7308 0.7527 0.25 3 0.7143 0.7033 0.6923 0.6758 0.7363 0.7527

- 532-

A primeira figura escolhida tem o mesmo formato mostrada por Plentickx (1989). Observa-se que o aumento do fator de tensionamento (próximo a zero seria infinito) reduz o erro de posição proporcionalmente. Mas, para um mesmo fator de tensionamento, há diminuição do erro com o aumento do nível de recursão. Entretanto, não é conveni~nte tal aumento, pois implica em maior tempo de execução.

A aproximação do tipo "B-spline" esférica mostrou um comportamento mais uniforme, sensível apenas ao nível de recursão. Mas, frente a um forte tensionamento, as outras mostraram menor erro, destacando-se a forma linear proposta neste trabalho. A nova forma esférica, apresentou resultados próximos da "B-spline" e melhores que o da forma cardinal, da qual se deriva.

A forma senoidal da segunda figura foi utilizada no artigo de Choi e Kim (1990). As aproximações do tipo "B-spline" se apresentaram com o melhor desempenho. Entretanto, elas não passam pelos pontos de controle. Como esta característica é de especial importância para aplicações em robótica, as outras formas devem ser preferidas,e dentre elas, as novas formas têm melhor resultado. Coincidentemente, neste caso, apresentaram erros na mesma faixa, apesar de terem menor tempo de execução.

A forma circular também foi sugerida no artigo de Choi e Kim (1990). Neste caso, particularmente, as formas lineares se mostraram superiores as formas esféricas, embora se destaque o comportamento da nova proposta, dentre as de seu tipo.

Page 7: I SBAI -UNESP -Rio Claro/SP -Brasil movimentos de rotação ( orientação ), nosso objetivo é mostrar que também podem ser aplicados, eficientemente, aos movimentos de translação

I SBAI - UNESP - Rio Claro/SP - Brasil

7. CONCLUSÕES

O uso de matrizes 4x4 para representar transformações homogêneas no espaço é comum, embora redundantes ( usam 16 elementos para representar 6 graus de liberdade ), o que pode introduzir problemas numéricos ( devido à normalização freqüente dos operadores de rotação ), além do maior gasto de memória e tempo de processamento. A despeito disso, é escolha predominante na maioria das aplicações em sistemas robóticos.

Os ângulos de Euler, que servem para especificar uma orientação, também . são bastante usados. Sua conversão para a forma matricial é computacionalmente cara, com SUposlçoes arbitrárias e funções trigonométricas.

Representações alternativas, como os quatérnios, não são muito empregadas, apesar de oferecer significativas vantagens em termos de robustez numérica e economia de espaço, além de compor eficientes operadores de transformação espacial ( por exemplo, a interdependência entre eixos de translação é preservada naturalmente; enquanto os ângulos de Euler ignoram-na ).

Quatérnios podem oferecer um quadro mais intuitivo para a compreensão dos efeitos de rotações tridimensionais, uma vez que o eixo e o ângulo aparecem explicitamente em sua definição. Sua forma compacta e elegante constitue uma alternativa forma para fms pedagógicos e de pesquisa.

Novas formas de aproximação de trajetória, usando quatérnios, foram propostas, e apresentaram resultados bastante razoáveis, melhores que suas concorrentes imediatas ( as "splines" cardinais ) que passam pelos pontos de controle com maior erro e/ou tempo de execução. Com resultados comparáveis aos das tradicionais "B-splines", mostraram ter desempenho até mesmo superior, em alguns casos.

- 533-

Concluindo, devemos reinterar o fato de que todas as formas de aproximação foram desenvolvidas diretamente no espaço de quatérnios, com a implementação de uma álgebra computacional. Conversões entre formas de representação não foram necessárias, o que demonstra a possibilidade de uso de quatérnios ao modelamento de sistemas robóticos, sem perda de expressão.

8. BIBLIOGRAFIA

[1] Taylor, R. H., (1979). "Planning and Execution of Straight Line Manipulator Trajectories " , IBM J. Res. Development, voI. 23, nO 4 : 424-436.

[2] Paul, R. P., (1981). "Robot Manipulators: Mathematics, Programming and Control", The MIT Press.

[3] Lin, C. & Luh, J. Y. S., (1983). "Formulation and Optirnization of Cubic Polynornial Joint Trajectories for Industrial Robots", IEEE Trans. on Automatic Control, vol. 28, nO 12 : 1066-1073.

[4] Shoemake, Ken, (1985). "Animating Rotation with Quaternion Curves", Computer Graphics, vol. 19, nO 3 : 245-254.

[5] Pletinckx, Daniel, (1989). "Quaternion calculus as a basic tool in computer graphics", The Visual Computer,no 5 : 2-13.

[6] Funda, J.; Taylor, R. H . & Paul, R. P., (1990). "On Homogeneous Transforms, Quaternions and Computational Efficiency", IEEE Transactions on Robotics and Automation, voI. 6, nO 3 : 382-388.

[7] Choi, B. K. & Kim, D. W., (1991). "Bounded Deviation Joint Path Algorithms for Piecewise Cubic Polynomial Trajectories " , IEEE Trans. on Systems, Man and Cybernetics, voI. 20, nO 3 : 725-733.