·
Engenharia Elétrica ·
Robótica
· 2022/2
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
2
Roteiro de Laboratório 01-2022-2
Robótica
UFRGS
43
Unified Robot Description Format
Robótica
UFRGS
3
Trabalho 1-2023-1
Robótica
UFRGS
39
Cinemática Direta no Ros 2
Robótica
UFRGS
9
Jacobiano-2022-2
Robótica
UFRGS
3
Roteiro de Laboratório 03-2023-1
Robótica
UFRGS
19
Assinatura de Tópicos no Ros 2
Robótica
UFRGS
11
Introdução-2022-2
Robótica
UFRGS
8
Configuração da Conta do Usuário para Usar o Ros 2
Robótica
UFRGS
55
Pacote Ros 2 com o Modelo de um Robô Manipulador
Robótica
UFRGS
Texto de pré-visualização
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 19 de dezembro de 2022 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 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çã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 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 ˆ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 é obtida aproximando-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 é ortogonal a ˆYA. Considerando-se esta situação e tomando-se o produto escalar de (1) por ˆYA, 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 Za {A} Ap P | | Ya ° Xa Figura 3: Vetor AP. associado ao ponto P. cometido na aproximagcao é zero. Assim, tem-se que 0 ponto P pode ser descrito no sistema de coordenadas {A} por A Px P= Py PZ 1.2 Descricao de Orientacao Ponto nao tem orientacgao, pois nao tem dimensao, mas frequentemente é interes- sante descrever a orientacao de objetos, planos ou mesmo segmentos de reta. Para tanto, sera utilizado o artificio de associar ao objeto de interesse um sistema de coordenadas, de forma que a orienta¢Ao possa ser descrita através da descrigao dos versores deste sistema de coordenadas, como mostra a figura 6. Assim, a descrigao de orientacgao pode ser feita descrevendo-se os versores de {B} em relagéo a {A}. Ou seja, a descric&o da orientagéo de {B} em relacgéo a {A} é dada por “Xp, “Yg e “Zp, que para conscisdo de notacdo podem ser agrupados em uma matriz: A * * * Rp = |4Xp|4Ye|4Ze | onde “Rp é denominada matriz de rotagao de { B} em relacdo a { A}. Por outro lado, as projegdes de Xp, Yg e Zp sobre o sistema de coordenadas {A} sao dadas por: 3 Za {A} P AP ! Y | Ya X4 Figura 4: Aproximaciio de “P na diregiio Y4. Xp-Xa AXp = Xp-Ya Xp-Za Yp-X4 “Ye = |Yp-Ya Yp-Za ZpXa AZ = Zp : Ya Zp-Za e portanto, a matriz de rotacao AR» sera: Xp-X4 Yp-X4 Zp-Xa “Re =[4Xp|4Y¥e|4Ze |= |Xe-Ya Yo-Ya Zp-Ya) Xp:Za Ye Za Zp:Za Note que os elementos de AR» sao produtos escalares entre os versores dos sistemas {A} e {B}. Portanto, como versores tem médulo unitario, os elementos de “Rez so os cossenos dos Angulos entre cada um dos versores de {A} e cada um dos versores de {B}. Por este motivo, a matriz “Rg também é denominada de matriz de cossenos diretores de {B} em relagao a {A}. 4 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−1 B 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 · ˆYB ˆXA · ˆ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 = ART B (3) A expressão (3) induz a hipótese de que a inversa da matriz de rotação seja igual à sua transposta. Esta hipótese pode ser corroborada através da observação de que: 5 Zs Xp Zp \ / {B} {A} YB Ya X4 Figura 6: Descrigao de orientacao. A xt PRa“Re = “RE“Re = | AVF) [AXp 4Yp 4Ze] A Ze AXTAX, AXTAY, AXTAZ = [AVE Xe ENE PAZ AZTAXE AZPAY ATTA ZB AXp-AXp “AXp-4Y—g 4Xp-4Zp = AY, AX, AY, AY, AY, -AZp =I AZp-4AXp 4Zg-4Yg 4Zg-4Zp Assim, para matrizes de rotacao tem-se: PR, —“R;} _ ART 1.3. Descricao de Posicao e Orientacao A descricgao da posicao e orientacgao de um corpo é feita descrevendo-se 0 sistema de coordenadas associado ao corpo através da matriz de rotagao em relacgao ao sistema inercial e da posi¢ao da origem do sistema, como mostra a figura 7. Assim, tem-se que a descri¢ao do corpo da figura 7 é dada por: {B} = {4Rp, 4 Peorg} 6 ˆ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 coordenadas associados aos diversos objetos no espaço de trabalho do robô e aos seus próprios elos. Consequentemente, é comum conhecer-se algum ponto de interesse em rela- ção à um sistema de coordenadas e desejar conhecer a descrição do mesmo ponto em 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 com origens 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 A Zp {A} 4 44 {B} Bp AP AP Borg Yp Ya Xp X4 Figura 8: Mapeamento envolvendo apenas translacao. 2.2 Mapeamento Envolvendo Apenas Rotacao Sejam dois sistemas de coordenadas {A} e {B} com origens coincidentes e tais que a orientacdo de {B} em relacio a {A} é dada por “Rg, como mostra a fi- gura 9. {4} f 44 - Bp=A4p ZB {B} Vr “A Ya Xa XB Figura 9: Mapeamento envolvendo apenas rotacao. Tem-se entao que “P é dado pela projecao de ? P sobre os versores do sistema {A}, ou seja: Any _ Bp.BxX,=8X,.2P =? XT8p Any _ Bp.By, —By,.®p=®yT’p Any, _ Bp.B7, =P7,.8Pp= BZTBP ou ainda “px BXT . . . oT “P= |Apy| = |PYT| PP =([PX4 BY, PZa] PP =?RIPP “paz BGT 8 que pode ser escrito como AP = ARB BP 2.3 Mapeamento com Translação e Rotação Quando se tem translação e rotação entre os sistemas {A} e {B} envolvidos no mapeamento, 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 que tem-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 = CRB BP e considerando que APCorg ≡ APBorg e CRB ≡ ARB, pode-se escrever AP = APBorg + CP CP = ARB BP ou ainda AP = APBorg + ARB BP (5) que descreve a posição do ponto em relação ao sistema {A} conhecendo-se a descrição do ponto no sistema {B} e a descrição do sistema {B} em relação ao sistema {A}. 9 3 Transformacao Homogénea A expressao (5) permite fazer o mapeamento de pontos de um sistema de coorde- nadas para outro. No entanto, ela nao é muito pratica, por envolver duas operacgdes (uma multiplicagdo e uma soma matriciais). Seria conveniente dispor de um ope- rador tal que permitisse calcular 0 mapeamento entre sistemas de coordenadas através de uma tinica opera¢ao matricial, ou seja, seria conveniente escrever (5) na forma: AP =“Tp?P (6) onde “Tz é o operador que faz 0 mapeamento de pontos do sistema { B} para 0 sistema {A}. A expressao (5) pode ser escrita na forma (6) fazendo-se: AP _ ARB “Pporg| [BP 1 Oix3 1 1 = se Oo” vetor em matriz de coordenadas transformacgao homogéneas homogénea A matriz de transformacao homogénea pode ser particionada em quatro cam- pos: rotagao | translagao perspectiva | escala Os campos de rota¢ao e translagao sao utilizados para descrever a rotacao e a translagao envolvidas no mapeamento. O campo de escala é utilizado para representar diferencgas de escala entre os sistemas e 0 campo de perspectiva é utilizado para representar a diferenga de perspectiva entre os sistemas. Estes dois ultimos campos sao comumente utilizados quanto a transformacao homogénea é utilizada no contexto de visio computacional, processamento de imagens ou computag¢ao grafica. Em robdtica normalmente estes campos assumem os valores de operador nulo para as respectivas opera¢6es, ou seja, 013 para perspectiva e 1 para escala. 4 Operadores Operadores movem pontos ou vetores no espaco. Esta movimenta¢ao pode ser translagao, rotagao ou ambas. E importante perceber que quando se esta fazendo 10 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 de um deslocamento finito ao longo da direção do vetor, obtendo-se um novo ponto AP2, 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 qx 0 1 0 qy 0 0 1 qz 0 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 4.2 Operador de Rotação O operador de rotação roda um ponto AP1 de um ângulo θ em torno de um vetor AQ 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-se rotações em torno dos versores do próprio sistema de coordenadas, de forma que uma 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 torno de ˆZ. A figura 13 mostra uma rotação em torno de A ˆX. ˆXA ˆYA ˆZA {A} AP1 AP2 α Figura 13: Operação de rotação de um ângulo α em torno de A ˆX. A expressão que descreve esta operação de rotação pode ser obtida notando-se que AP1 é igual a BP2, sendo {B} um sistema de coordenadas que sofreu uma rotação de α em torno de A ˆX, como mostra a figura 14. Assim, tem-se AP2 = ATB BP2 = ATB AP1 12 {B} ˆXA ˆYA ˆ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 0 0 cos α − sen α 0 0 sen α cos α 0 0 0 0 1 é o operador que rotaciona AP1 em torno de A ˆX para obter-se AP2. Para tornar este fato evidente, define-se o operador de rotação em torno de ˆX como: RX(α) = 1 0 0 0 0 cos α − sen α 0 0 sen α cos α 0 0 0 0 1 e portanto AP2 = RX(α)AP1 Analogamente, pode-se obter os operadores que realizam rotações em torno de ˆY e ˆZ: RY (β) = cos β 0 sen β 0 0 1 0 0 − sen β 0 cos β 0 0 0 0 1 RZ(γ) = cos γ − sen γ 0 0 sen γ cos γ 0 0 0 0 1 0 0 0 0 1 13 4.3 Operador de Transformação O operador de transformação realiza translação e rotação de um ponto AP1 para transforma-lo em um ponto AP2, deslocado e rotacionado em relação à AP1, como mostra a figura 15. ˆXA ˆYA ˆ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 uma rotação de α em torno de A ˆX, ou seja o ponto AP1 é deslocado e obtém-se o ponto AP3 = D(q)AP1 e a seguir o ponto AP3 é rotacionado de α em torno de A ˆX para 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 resultado seria o mesmo se a ordem das operações fosse invertida. Alem disso, no caso geral 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ção que 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 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 a figura 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 = ATB BP e por sua vêz BP = BTC CP e portanto AP = ATB BTC CP = ATC CP É importante notar que neste caso a ordem das transformações é importante e que 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 numero arbitrário de transformações. 15 5.2. Inversao da Transformacao Dado “Tp, deseja-se obter ?T, = ATR". A transformagao pode ser invertida de diversas formas: inversao aritmética: 1 AqT-1 _ A T = —— cof (“Tp B |ATp| ( ) ¢ Grande numero de calculos ¢ Complicado se a dimens4o for maior do que 4 ¢ Pouco adequado para implementagao computacional ¢ Arredondamentos e truncamentos podem destruir a estrutura da matriz inversao numérica: Métodos da triangulacao, eliminacaéo de Gauss, Gauss-Seidel, etc. e Adequado para qualquer dimensao ¢ Arredondamentos e truncamentos podem destruir a estrutura da matriz e Adequados para implementa¢ao computacional inversao utilizando a estrutura da matriz: Exploraa estrutura particular da ma- triz de transforma¢ao homogénea. ¢ Baixo nimero de operacg6es ¢ Preserva a estrutura da matriz ¢ Facil de ser calculada manualmente e computacionalmente AT _ ARB A PBorg 3 = 0 1x3 1 Br _ PRa B Prong 1= 0 1x3 1 Ja foi visto anteriormente que ?R4, = “RZ. Resta portanto determinar ®B Prog a partir de AT, Tem-se que a origem do sistema { B} descrita no sistema { B} é 0, ou seja B P. Borg — 0 16 Mas, sabe-se que "Ps = " Ry” P3 + Prorg Portanto, fazendo 1 = B, 2 = Ae 3 = Bog tem-se ® Prong = B Ra“ PBorg + » Paorg = 0 logo » Prong = —? RA Prorg Assim, BT, _ ARE —4A REA Prog 013 1 5.3. Equacodes com Transformacoes Sejam cinco sistemas de coordenas {A}, {B}, {C}, {D} e {EF}, dispostos arbi- trariamente como mostrado na figura 17. O sistema de coordenadas { D}, pode ser expresso em relac¢ao ao sistema {A} como: AT, = “Tp"Tp (10) ou “Tp = “Tp? Te°Tp (11) Igualando-se (10) e (11), obtém-se uma equacao com transformac6es: “Tr Tp = “Tp TeTp (12) Através de (12) pode-se calcular qualquer uma das transformacg6es em fun¢gao das demais. Por exemplo, ?T¢ pode ser calculada como: BT. _ ATS 4 Tn Tp oT 5 (13) E importante perceber que “Tz esta pré-multiplicando no lado direito de (12 e que portanto, “73! deve estar pré-multiplicando em (13). De forma semelhante, ©T pp esta pos-multiplicando em (12) e portanto °T;5' deve estar pés-multiplicando em (13. 17 ˆ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 à outro e podem ser utilizadas para obter-se diretamente equação de transformação. Para tanto, parte-se da origem do sistema tomado como referência para a transformação desejada ({B}, no exemplo) e percorre-se o diagrama até chegar-se à origem do sistema desejado ({C}), incluindo na equação a transformação correspondente a cada 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 seguintes transformaçõ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, para que a ferramenta esteja na origem do sistema de coordenadas associado à peça. Ou, seja, deseja-se: 18 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 = BTW WTT e BTG = BTS STG logo BTW WTT = BTS STG e portanto 19 BTW = BTS STG WT −1 T 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 a orientaçã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γ 0 Sγ Cγ 0 0 0 1 Cβ 0 Sβ 0 1 0 −Sβ 0 Cβ 1 0 0 0 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 O problema de obter-se a, 6 e y a partir de uma matriz “Rg conhecida tam- bém é frequentemente de interesse. A matriz “Rg pode ser escrita como: Tr T12 113 ARB = |f21 122 123 31 132) 133 Supondo C’G ¥ 0, pode-se obter a, 3 e y através de: a = atan2(r39, 133) B = atan2 (=r. +4/r35 + °s) (15) Y= atan2(r21, ri) Note que exitem duas solugdes para 3. Por convengao, neste problema de conversao de RPY para matriz de rotag4o, sempre seleciona-se o valor de ( tal que—5 <6 <5. Se 3 = +4, a solucao (15) degenera, pois neste caso tem-se 0 +tCySa—SyCa +CyCa+ SySa ARR = 0 +S y7Sa+CyCa +SyCa—CySa Fl 0 0 0 4S(aFy) Cla#Fy) = |0 +C(aFy) —S(a+7) Fl 0 0 e s6 € possivel determinar a diferenga de a e y se § = +5 oua soma de ae 7 se p= — . Assim, tem-se: a+ y= atan2(rj., 22) Neste caso, é usual arbitrar-se y = 0 e calcular a: a- atan2(r12, T22) , Se B = 5 - — atan2(rjp2, r22) ,se B = —5 6.2 Angulos de Euler em Torno de Z-Y-X Na descric4o por 4ngulos de Euler? assume-se que as rotagGes sao realizadas em torno dos eixos do proprio sistema de coordenadas, como mostra a Figura 20. 3 Aqui a nomenclatura Angulos de Euler ser4 usada para denotar representa¢6es intrinsicas, ou seja, nas quais as rotagdes sao em torno dos préprios eixos 21 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 coordenadas no 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 torno dos mesmos eixos: BP = BRA(γ, β, α) AP = RX(−α)RY (−β)RZ(−γ) AP Como BR−1 A = 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ão equivalentes aos ângulos de roll-pitch-yaw. 22 6.3 Angulos de Euler em Torno de Z-X-Z AR _A B’ B"’ _ _ B(Y,8,a) = “Re (7)” Ren (8) Rela) = Rz(y)Rx(8)Rz(a) = Cy —Sy O| {1 0 0 Ca —-Sa 0 = |Sy Cy O| |0 CB —-SB| |Sa Ca Of} = 0 0 1} ]0 SB CB 0 0 1 CyCa— SyCBSa —CySa—SyCbCa SySE = |S7yCa+CyCBSa —SySa+CyCbCa —CyS£E (17) SBSa SbCa CB Supondo $6 ¥ 0: a = atan2(r31, 732) B = atan2 (2/7 + ro, rs) (18) Y= atan2(r13, —133) Se6=OJouG=7: CyCa Ft SySa —CySaFtSyCa 0 ARR = |SyCatCySa —SySatCyCa 0 0 0 +1 Ciaty) —-S(aty) 0 = |4+S(aty) —-C(a+y) 0 0 0 +1 e portanto, fazendo 7 = 0, tem-se _ atan2(r21, 711) 5 Se B = 0 or) atan2(ra1,71) »seB=7 6.4 Angulos de Euler em Torno de Z-Y-Z A _A B’ BY _ _ Rp(7, 8,0) =“ Rey)” Ren(8)” Rela) = Rz(y) Ry (8) Rz(a) = Cy —Sy 0 Cb 0 SB] |Ca —-Sa 0 =|Sy Cy 0 0 1 0 Sa Ca 0} = 0 0 1}| |-S6B 0 CB 0 0 1 CyCBCa—SySa —CyCbSa—SyCa CySB = |SyCBCa+CySa —-SyCBSa+CyCa SySE (19) —SbCa SBSa Cp 23 Supondo $6 ¥ 0: a = atan2(r39, —r31) B = atan2 (=v + ro, re) (20) Y= atan2(r93, 13) Se 8 =O0ou6=T: +CyCa—SySa FCySa—SyCa_ 0 ARp = |+57Ca+CySa FS57Sat+CyCa 0 0 0 +1 +C(aty) FS(aty) 0 = S(a+y) Claty) 0 0 0 +1 e portanto, fazendo y = 0, tem-se a- atan2(—1r12,111) 5 Se B =0 | =atan2(ri2,-ri1) ,seB=7 6.5 Coordenadas Exponenciais [1] Uma operacao comum em robotica é a rotagao de um angulo 6 em torno de um eixo. Nestes caso, é interessante obter a matriz de rotagéo R em funcgao do eixo de rota¢ao e de 0. Considere um ponto g de um corpo que roda com uma velocidade constante em torno de um eixo, como mostra a figura 21. Lembrando que o produto vetorial €é uma operagao linear, e portanto, pode ser representada por uma matriz, a velocidade do ponto q pode ser descrita por: Wwq3(t) — w3q2(t) q(t) = w x q(t) = |wsq(t) — wiga(t) | = a(t) (21) w1go(t) — weq (t) 0 —W3 W9 comwm=]|wz, 0 —w,} € s0(3), sendo so(n) = {S € R"*”": $7 = —S}. —W2 Wy 0 Note que w é uma matrix anti-simétrica (skew-symmetric), Ou seja: jt? = -—w e que existe uma relacdo direta entre 0 so(3) eo R®. 24 Ww q(t) q(0) Figura 21: Rotagao do ponto g em torno de um e1xo. Integrando-se (21) obtém-se: g(t) = e*"q(0) Supondo-se uma rotagfo unitaria, ou seja ||@|| = 1, por 0 unidades de tempo, o que também corresponde a uma rotacgao de um Angulo 6 em torno do eixo descrito por w, tem-se: R(w,0) = e*° Considerando a expansao em série da exponencial: . 6? 6° wo __ “ <2 243 eee ee =1+0w+ The + ai” + e que a? = aa! — |\a||?I e a? = —||a||?a@ podem ser usadas para calcular qualquer outra poténcia de G@ recursivamente, tem-se para a = w6 e ||w|| = 1: . > O° oe ot wo __ _-_ —_—_ — tt . _—ClU CC —_—_—_ — tt “2 ° -1+(6 31 Bl Jor G 1’ je e portanto: e? =I + Hsen0 + 0°(1 — cos6) conhecida como férmula de Rodrigues e é uma forma eficiente de computar e*”. Caso ||w|| A 1 tem-se: 25 = 14 © son(|jo|8) + 2 (1 — cos(lil4) er = —— sen(||w —~ (1 — cos(||w eal |? Seja: Ti. T12) 113 R= jra 122 123 (22) P31 132 133 e e? = [ + Hsend + &7(1 — cos) w7(1 — cos@) + cos 6 Ww W2(1 — cos @) — w3sen@ wyw3(1 — cos) + wo sen 0 = | w1we(1 — cos 0) + w3 sen 0 w3(1 — cos@) + cosé wW3(1 — cos @) — w; sen 6 w W3(1 — cos@) — wy sen@ wyw3(1 — cos) + w; sen 0 w3(1 — cos @) + cos @ (23) De (22) e (23) obtém-se: tr(R) = ry, + reg +733 = 1 +2080 (24) 139 — To3 = 2W, sen 0 (25) 113 — 731 = 2w2 sen 0 (26) ro, — T12 = 2w3 send (27) e portanto se 6 F 0: tr(R) —1 6 = acos (“= ) 2 1 132 — 123 an 2sen 6 M3 731 21 — T12 Note que esta solugdo nao é tinica, ja que cos(@ + 27n) = cos(—@ + 27n), mas ha compensagao através do sinal de w. Por outro lado, se 6 = 0, e tem-se uma singularidade e w pode ser escolhido arbitrariamente. Teorema 1 (Euler) Qualquer orientacdo R € SO(3) é equivalente a uma rota- ¢do de um angulo 0 € (0, 27] em torno de um eixo fixo w € R’. 26 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ção a 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∗ = q2 0 + q2 1 + q2 2 + q2 3 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 R3. Sejam Q = (q0, ⃗q) e P = (p0, ⃗p), o produto 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 r13 r21 r22 r23 r31 r32 r33 pode-se associar a ela um quaternion unitário tal que [2]: 27 1 go = 5Vv"u + 122 +1733 + 1 1 MQ = ZV" P22 ~ 133 + 1, com sgn(qi) = sgn(r32 — 123) 1 Q = 5V022— Tu ~ 133 + 1, com sgn(q.) = sgn(ri3 — 31) 1 93 = 5V"33— Tu P22 + 1, com sgn(q3) = sgn(721 — T12) ou ainda, se R = e*°, tem-se que 0 quaternion unitario associado sera: Q = (cos(0/2), wsen(6/2)) Por outro lado, um quaternion Q = (qo, @), representa uma rotacfo de 6 = 2 acos(qo) em torno do vetor dado por: ¢ w= sen(6/2) ” sed 4 0 ; 0 , caso contrario Ea matriz de rotac¢a4o correspondente, sera dada por R = e*”. A principal vantagem dos quaternions sobre as matrizes de rotacao é que per- mitem uma representa¢ao que nao esta sujeita a problemas de singularidades. 7 Exercicios * Obtenha as transformacées “Tp, “Ty, ?T>o e CT, para os sistemas mostra- dos na figura 22. 28 ) . Zo Yo {C} Xe | . 2 ZA Zp {B} Ya ! x, Xp ! 5 Figura 22: Sistemas de coordenadas. * O ponto “P, € obtido rotacionando 0 ponto “P, = [1 2 3)" de 30° em torno de “X e de 60° em torno de “Z. Calcule 0 ponto 4 P». ¢ Cosidere as seguintes matrizes de transforma¢ao homegénea: 0.866 —0.5 0 3 Ap, = 0.5 0.866 0 —4 0 0 1 2 0 0 oO 1 1 O 0 0 Br, — 0 0.866 —0.5 1 “ ~~ 10 0.5 0.866 0 0 0 0 1 0.866 —-0.5 0 -83 CT, = 0.433 0.75 —-0.5 4 0.25 0.433 0.866 3 0 0 0 1 29 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 (sistema X’ 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ção da 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 sistema de coordenadas global {X0, Y0, Z0} através da posição e orientação de do sistema 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 descrita em relação ao sistema {Xc, Yc, Zc} pelos parâmetros l, α e ψ, como mostra a figura 25. 1. Obtenha a matriz de transformação do sistema {Xc, Yc, Zc} em relação ao sistema {X0, Y0, Z0}. 30 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 a distância entre-eixos seja de 1m, determine, utilizando as transforma- ções homogêneas obtidas acima, a posição da roda frontal esquerda do robô da figura 24 em relação ao sistema de coordenadas global quando o 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 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
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
2
Roteiro de Laboratório 01-2022-2
Robótica
UFRGS
43
Unified Robot Description Format
Robótica
UFRGS
3
Trabalho 1-2023-1
Robótica
UFRGS
39
Cinemática Direta no Ros 2
Robótica
UFRGS
9
Jacobiano-2022-2
Robótica
UFRGS
3
Roteiro de Laboratório 03-2023-1
Robótica
UFRGS
19
Assinatura de Tópicos no Ros 2
Robótica
UFRGS
11
Introdução-2022-2
Robótica
UFRGS
8
Configuração da Conta do Usuário para Usar o Ros 2
Robótica
UFRGS
55
Pacote Ros 2 com o Modelo de um Robô Manipulador
Robótica
UFRGS
Texto de pré-visualização
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 19 de dezembro de 2022 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 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çã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 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 ˆ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 é obtida aproximando-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 é ortogonal a ˆYA. Considerando-se esta situação e tomando-se o produto escalar de (1) por ˆYA, 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 Za {A} Ap P | | Ya ° Xa Figura 3: Vetor AP. associado ao ponto P. cometido na aproximagcao é zero. Assim, tem-se que 0 ponto P pode ser descrito no sistema de coordenadas {A} por A Px P= Py PZ 1.2 Descricao de Orientacao Ponto nao tem orientacgao, pois nao tem dimensao, mas frequentemente é interes- sante descrever a orientacao de objetos, planos ou mesmo segmentos de reta. Para tanto, sera utilizado o artificio de associar ao objeto de interesse um sistema de coordenadas, de forma que a orienta¢Ao possa ser descrita através da descrigao dos versores deste sistema de coordenadas, como mostra a figura 6. Assim, a descrigao de orientacgao pode ser feita descrevendo-se os versores de {B} em relagéo a {A}. Ou seja, a descric&o da orientagéo de {B} em relacgéo a {A} é dada por “Xp, “Yg e “Zp, que para conscisdo de notacdo podem ser agrupados em uma matriz: A * * * Rp = |4Xp|4Ye|4Ze | onde “Rp é denominada matriz de rotagao de { B} em relacdo a { A}. Por outro lado, as projegdes de Xp, Yg e Zp sobre o sistema de coordenadas {A} sao dadas por: 3 Za {A} P AP ! Y | Ya X4 Figura 4: Aproximaciio de “P na diregiio Y4. Xp-Xa AXp = Xp-Ya Xp-Za Yp-X4 “Ye = |Yp-Ya Yp-Za ZpXa AZ = Zp : Ya Zp-Za e portanto, a matriz de rotacao AR» sera: Xp-X4 Yp-X4 Zp-Xa “Re =[4Xp|4Y¥e|4Ze |= |Xe-Ya Yo-Ya Zp-Ya) Xp:Za Ye Za Zp:Za Note que os elementos de AR» sao produtos escalares entre os versores dos sistemas {A} e {B}. Portanto, como versores tem médulo unitario, os elementos de “Rez so os cossenos dos Angulos entre cada um dos versores de {A} e cada um dos versores de {B}. Por este motivo, a matriz “Rg também é denominada de matriz de cossenos diretores de {B} em relagao a {A}. 4 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−1 B 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 · ˆYB ˆXA · ˆ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 = ART B (3) A expressão (3) induz a hipótese de que a inversa da matriz de rotação seja igual à sua transposta. Esta hipótese pode ser corroborada através da observação de que: 5 Zs Xp Zp \ / {B} {A} YB Ya X4 Figura 6: Descrigao de orientacao. A xt PRa“Re = “RE“Re = | AVF) [AXp 4Yp 4Ze] A Ze AXTAX, AXTAY, AXTAZ = [AVE Xe ENE PAZ AZTAXE AZPAY ATTA ZB AXp-AXp “AXp-4Y—g 4Xp-4Zp = AY, AX, AY, AY, AY, -AZp =I AZp-4AXp 4Zg-4Yg 4Zg-4Zp Assim, para matrizes de rotacao tem-se: PR, —“R;} _ ART 1.3. Descricao de Posicao e Orientacao A descricgao da posicao e orientacgao de um corpo é feita descrevendo-se 0 sistema de coordenadas associado ao corpo através da matriz de rotagao em relacgao ao sistema inercial e da posi¢ao da origem do sistema, como mostra a figura 7. Assim, tem-se que a descri¢ao do corpo da figura 7 é dada por: {B} = {4Rp, 4 Peorg} 6 ˆ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 coordenadas associados aos diversos objetos no espaço de trabalho do robô e aos seus próprios elos. Consequentemente, é comum conhecer-se algum ponto de interesse em rela- ção à um sistema de coordenadas e desejar conhecer a descrição do mesmo ponto em 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 com origens 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 A Zp {A} 4 44 {B} Bp AP AP Borg Yp Ya Xp X4 Figura 8: Mapeamento envolvendo apenas translacao. 2.2 Mapeamento Envolvendo Apenas Rotacao Sejam dois sistemas de coordenadas {A} e {B} com origens coincidentes e tais que a orientacdo de {B} em relacio a {A} é dada por “Rg, como mostra a fi- gura 9. {4} f 44 - Bp=A4p ZB {B} Vr “A Ya Xa XB Figura 9: Mapeamento envolvendo apenas rotacao. Tem-se entao que “P é dado pela projecao de ? P sobre os versores do sistema {A}, ou seja: Any _ Bp.BxX,=8X,.2P =? XT8p Any _ Bp.By, —By,.®p=®yT’p Any, _ Bp.B7, =P7,.8Pp= BZTBP ou ainda “px BXT . . . oT “P= |Apy| = |PYT| PP =([PX4 BY, PZa] PP =?RIPP “paz BGT 8 que pode ser escrito como AP = ARB BP 2.3 Mapeamento com Translação e Rotação Quando se tem translação e rotação entre os sistemas {A} e {B} envolvidos no mapeamento, 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 que tem-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 = CRB BP e considerando que APCorg ≡ APBorg e CRB ≡ ARB, pode-se escrever AP = APBorg + CP CP = ARB BP ou ainda AP = APBorg + ARB BP (5) que descreve a posição do ponto em relação ao sistema {A} conhecendo-se a descrição do ponto no sistema {B} e a descrição do sistema {B} em relação ao sistema {A}. 9 3 Transformacao Homogénea A expressao (5) permite fazer o mapeamento de pontos de um sistema de coorde- nadas para outro. No entanto, ela nao é muito pratica, por envolver duas operacgdes (uma multiplicagdo e uma soma matriciais). Seria conveniente dispor de um ope- rador tal que permitisse calcular 0 mapeamento entre sistemas de coordenadas através de uma tinica opera¢ao matricial, ou seja, seria conveniente escrever (5) na forma: AP =“Tp?P (6) onde “Tz é o operador que faz 0 mapeamento de pontos do sistema { B} para 0 sistema {A}. A expressao (5) pode ser escrita na forma (6) fazendo-se: AP _ ARB “Pporg| [BP 1 Oix3 1 1 = se Oo” vetor em matriz de coordenadas transformacgao homogéneas homogénea A matriz de transformacao homogénea pode ser particionada em quatro cam- pos: rotagao | translagao perspectiva | escala Os campos de rota¢ao e translagao sao utilizados para descrever a rotacao e a translagao envolvidas no mapeamento. O campo de escala é utilizado para representar diferencgas de escala entre os sistemas e 0 campo de perspectiva é utilizado para representar a diferenga de perspectiva entre os sistemas. Estes dois ultimos campos sao comumente utilizados quanto a transformacao homogénea é utilizada no contexto de visio computacional, processamento de imagens ou computag¢ao grafica. Em robdtica normalmente estes campos assumem os valores de operador nulo para as respectivas opera¢6es, ou seja, 013 para perspectiva e 1 para escala. 4 Operadores Operadores movem pontos ou vetores no espaco. Esta movimenta¢ao pode ser translagao, rotagao ou ambas. E importante perceber que quando se esta fazendo 10 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 de um deslocamento finito ao longo da direção do vetor, obtendo-se um novo ponto AP2, 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 qx 0 1 0 qy 0 0 1 qz 0 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 4.2 Operador de Rotação O operador de rotação roda um ponto AP1 de um ângulo θ em torno de um vetor AQ 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-se rotações em torno dos versores do próprio sistema de coordenadas, de forma que uma 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 torno de ˆZ. A figura 13 mostra uma rotação em torno de A ˆX. ˆXA ˆYA ˆZA {A} AP1 AP2 α Figura 13: Operação de rotação de um ângulo α em torno de A ˆX. A expressão que descreve esta operação de rotação pode ser obtida notando-se que AP1 é igual a BP2, sendo {B} um sistema de coordenadas que sofreu uma rotação de α em torno de A ˆX, como mostra a figura 14. Assim, tem-se AP2 = ATB BP2 = ATB AP1 12 {B} ˆXA ˆYA ˆ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 0 0 cos α − sen α 0 0 sen α cos α 0 0 0 0 1 é o operador que rotaciona AP1 em torno de A ˆX para obter-se AP2. Para tornar este fato evidente, define-se o operador de rotação em torno de ˆX como: RX(α) = 1 0 0 0 0 cos α − sen α 0 0 sen α cos α 0 0 0 0 1 e portanto AP2 = RX(α)AP1 Analogamente, pode-se obter os operadores que realizam rotações em torno de ˆY e ˆZ: RY (β) = cos β 0 sen β 0 0 1 0 0 − sen β 0 cos β 0 0 0 0 1 RZ(γ) = cos γ − sen γ 0 0 sen γ cos γ 0 0 0 0 1 0 0 0 0 1 13 4.3 Operador de Transformação O operador de transformação realiza translação e rotação de um ponto AP1 para transforma-lo em um ponto AP2, deslocado e rotacionado em relação à AP1, como mostra a figura 15. ˆXA ˆYA ˆ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 uma rotação de α em torno de A ˆX, ou seja o ponto AP1 é deslocado e obtém-se o ponto AP3 = D(q)AP1 e a seguir o ponto AP3 é rotacionado de α em torno de A ˆX para 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 resultado seria o mesmo se a ordem das operações fosse invertida. Alem disso, no caso geral 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ção que 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 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 a figura 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 = ATB BP e por sua vêz BP = BTC CP e portanto AP = ATB BTC CP = ATC CP É importante notar que neste caso a ordem das transformações é importante e que 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 numero arbitrário de transformações. 15 5.2. Inversao da Transformacao Dado “Tp, deseja-se obter ?T, = ATR". A transformagao pode ser invertida de diversas formas: inversao aritmética: 1 AqT-1 _ A T = —— cof (“Tp B |ATp| ( ) ¢ Grande numero de calculos ¢ Complicado se a dimens4o for maior do que 4 ¢ Pouco adequado para implementagao computacional ¢ Arredondamentos e truncamentos podem destruir a estrutura da matriz inversao numérica: Métodos da triangulacao, eliminacaéo de Gauss, Gauss-Seidel, etc. e Adequado para qualquer dimensao ¢ Arredondamentos e truncamentos podem destruir a estrutura da matriz e Adequados para implementa¢ao computacional inversao utilizando a estrutura da matriz: Exploraa estrutura particular da ma- triz de transforma¢ao homogénea. ¢ Baixo nimero de operacg6es ¢ Preserva a estrutura da matriz ¢ Facil de ser calculada manualmente e computacionalmente AT _ ARB A PBorg 3 = 0 1x3 1 Br _ PRa B Prong 1= 0 1x3 1 Ja foi visto anteriormente que ?R4, = “RZ. Resta portanto determinar ®B Prog a partir de AT, Tem-se que a origem do sistema { B} descrita no sistema { B} é 0, ou seja B P. Borg — 0 16 Mas, sabe-se que "Ps = " Ry” P3 + Prorg Portanto, fazendo 1 = B, 2 = Ae 3 = Bog tem-se ® Prong = B Ra“ PBorg + » Paorg = 0 logo » Prong = —? RA Prorg Assim, BT, _ ARE —4A REA Prog 013 1 5.3. Equacodes com Transformacoes Sejam cinco sistemas de coordenas {A}, {B}, {C}, {D} e {EF}, dispostos arbi- trariamente como mostrado na figura 17. O sistema de coordenadas { D}, pode ser expresso em relac¢ao ao sistema {A} como: AT, = “Tp"Tp (10) ou “Tp = “Tp? Te°Tp (11) Igualando-se (10) e (11), obtém-se uma equacao com transformac6es: “Tr Tp = “Tp TeTp (12) Através de (12) pode-se calcular qualquer uma das transformacg6es em fun¢gao das demais. Por exemplo, ?T¢ pode ser calculada como: BT. _ ATS 4 Tn Tp oT 5 (13) E importante perceber que “Tz esta pré-multiplicando no lado direito de (12 e que portanto, “73! deve estar pré-multiplicando em (13). De forma semelhante, ©T pp esta pos-multiplicando em (12) e portanto °T;5' deve estar pés-multiplicando em (13. 17 ˆ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 à outro e podem ser utilizadas para obter-se diretamente equação de transformação. Para tanto, parte-se da origem do sistema tomado como referência para a transformação desejada ({B}, no exemplo) e percorre-se o diagrama até chegar-se à origem do sistema desejado ({C}), incluindo na equação a transformação correspondente a cada 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 seguintes transformaçõ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, para que a ferramenta esteja na origem do sistema de coordenadas associado à peça. Ou, seja, deseja-se: 18 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 = BTW WTT e BTG = BTS STG logo BTW WTT = BTS STG e portanto 19 BTW = BTS STG WT −1 T 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 a orientaçã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γ 0 Sγ Cγ 0 0 0 1 Cβ 0 Sβ 0 1 0 −Sβ 0 Cβ 1 0 0 0 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 O problema de obter-se a, 6 e y a partir de uma matriz “Rg conhecida tam- bém é frequentemente de interesse. A matriz “Rg pode ser escrita como: Tr T12 113 ARB = |f21 122 123 31 132) 133 Supondo C’G ¥ 0, pode-se obter a, 3 e y através de: a = atan2(r39, 133) B = atan2 (=r. +4/r35 + °s) (15) Y= atan2(r21, ri) Note que exitem duas solugdes para 3. Por convengao, neste problema de conversao de RPY para matriz de rotag4o, sempre seleciona-se o valor de ( tal que—5 <6 <5. Se 3 = +4, a solucao (15) degenera, pois neste caso tem-se 0 +tCySa—SyCa +CyCa+ SySa ARR = 0 +S y7Sa+CyCa +SyCa—CySa Fl 0 0 0 4S(aFy) Cla#Fy) = |0 +C(aFy) —S(a+7) Fl 0 0 e s6 € possivel determinar a diferenga de a e y se § = +5 oua soma de ae 7 se p= — . Assim, tem-se: a+ y= atan2(rj., 22) Neste caso, é usual arbitrar-se y = 0 e calcular a: a- atan2(r12, T22) , Se B = 5 - — atan2(rjp2, r22) ,se B = —5 6.2 Angulos de Euler em Torno de Z-Y-X Na descric4o por 4ngulos de Euler? assume-se que as rotagGes sao realizadas em torno dos eixos do proprio sistema de coordenadas, como mostra a Figura 20. 3 Aqui a nomenclatura Angulos de Euler ser4 usada para denotar representa¢6es intrinsicas, ou seja, nas quais as rotagdes sao em torno dos préprios eixos 21 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 coordenadas no 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 torno dos mesmos eixos: BP = BRA(γ, β, α) AP = RX(−α)RY (−β)RZ(−γ) AP Como BR−1 A = 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ão equivalentes aos ângulos de roll-pitch-yaw. 22 6.3 Angulos de Euler em Torno de Z-X-Z AR _A B’ B"’ _ _ B(Y,8,a) = “Re (7)” Ren (8) Rela) = Rz(y)Rx(8)Rz(a) = Cy —Sy O| {1 0 0 Ca —-Sa 0 = |Sy Cy O| |0 CB —-SB| |Sa Ca Of} = 0 0 1} ]0 SB CB 0 0 1 CyCa— SyCBSa —CySa—SyCbCa SySE = |S7yCa+CyCBSa —SySa+CyCbCa —CyS£E (17) SBSa SbCa CB Supondo $6 ¥ 0: a = atan2(r31, 732) B = atan2 (2/7 + ro, rs) (18) Y= atan2(r13, —133) Se6=OJouG=7: CyCa Ft SySa —CySaFtSyCa 0 ARR = |SyCatCySa —SySatCyCa 0 0 0 +1 Ciaty) —-S(aty) 0 = |4+S(aty) —-C(a+y) 0 0 0 +1 e portanto, fazendo 7 = 0, tem-se _ atan2(r21, 711) 5 Se B = 0 or) atan2(ra1,71) »seB=7 6.4 Angulos de Euler em Torno de Z-Y-Z A _A B’ BY _ _ Rp(7, 8,0) =“ Rey)” Ren(8)” Rela) = Rz(y) Ry (8) Rz(a) = Cy —Sy 0 Cb 0 SB] |Ca —-Sa 0 =|Sy Cy 0 0 1 0 Sa Ca 0} = 0 0 1}| |-S6B 0 CB 0 0 1 CyCBCa—SySa —CyCbSa—SyCa CySB = |SyCBCa+CySa —-SyCBSa+CyCa SySE (19) —SbCa SBSa Cp 23 Supondo $6 ¥ 0: a = atan2(r39, —r31) B = atan2 (=v + ro, re) (20) Y= atan2(r93, 13) Se 8 =O0ou6=T: +CyCa—SySa FCySa—SyCa_ 0 ARp = |+57Ca+CySa FS57Sat+CyCa 0 0 0 +1 +C(aty) FS(aty) 0 = S(a+y) Claty) 0 0 0 +1 e portanto, fazendo y = 0, tem-se a- atan2(—1r12,111) 5 Se B =0 | =atan2(ri2,-ri1) ,seB=7 6.5 Coordenadas Exponenciais [1] Uma operacao comum em robotica é a rotagao de um angulo 6 em torno de um eixo. Nestes caso, é interessante obter a matriz de rotagéo R em funcgao do eixo de rota¢ao e de 0. Considere um ponto g de um corpo que roda com uma velocidade constante em torno de um eixo, como mostra a figura 21. Lembrando que o produto vetorial €é uma operagao linear, e portanto, pode ser representada por uma matriz, a velocidade do ponto q pode ser descrita por: Wwq3(t) — w3q2(t) q(t) = w x q(t) = |wsq(t) — wiga(t) | = a(t) (21) w1go(t) — weq (t) 0 —W3 W9 comwm=]|wz, 0 —w,} € s0(3), sendo so(n) = {S € R"*”": $7 = —S}. —W2 Wy 0 Note que w é uma matrix anti-simétrica (skew-symmetric), Ou seja: jt? = -—w e que existe uma relacdo direta entre 0 so(3) eo R®. 24 Ww q(t) q(0) Figura 21: Rotagao do ponto g em torno de um e1xo. Integrando-se (21) obtém-se: g(t) = e*"q(0) Supondo-se uma rotagfo unitaria, ou seja ||@|| = 1, por 0 unidades de tempo, o que também corresponde a uma rotacgao de um Angulo 6 em torno do eixo descrito por w, tem-se: R(w,0) = e*° Considerando a expansao em série da exponencial: . 6? 6° wo __ “ <2 243 eee ee =1+0w+ The + ai” + e que a? = aa! — |\a||?I e a? = —||a||?a@ podem ser usadas para calcular qualquer outra poténcia de G@ recursivamente, tem-se para a = w6 e ||w|| = 1: . > O° oe ot wo __ _-_ —_—_ — tt . _—ClU CC —_—_—_ — tt “2 ° -1+(6 31 Bl Jor G 1’ je e portanto: e? =I + Hsen0 + 0°(1 — cos6) conhecida como férmula de Rodrigues e é uma forma eficiente de computar e*”. Caso ||w|| A 1 tem-se: 25 = 14 © son(|jo|8) + 2 (1 — cos(lil4) er = —— sen(||w —~ (1 — cos(||w eal |? Seja: Ti. T12) 113 R= jra 122 123 (22) P31 132 133 e e? = [ + Hsend + &7(1 — cos) w7(1 — cos@) + cos 6 Ww W2(1 — cos @) — w3sen@ wyw3(1 — cos) + wo sen 0 = | w1we(1 — cos 0) + w3 sen 0 w3(1 — cos@) + cosé wW3(1 — cos @) — w; sen 6 w W3(1 — cos@) — wy sen@ wyw3(1 — cos) + w; sen 0 w3(1 — cos @) + cos @ (23) De (22) e (23) obtém-se: tr(R) = ry, + reg +733 = 1 +2080 (24) 139 — To3 = 2W, sen 0 (25) 113 — 731 = 2w2 sen 0 (26) ro, — T12 = 2w3 send (27) e portanto se 6 F 0: tr(R) —1 6 = acos (“= ) 2 1 132 — 123 an 2sen 6 M3 731 21 — T12 Note que esta solugdo nao é tinica, ja que cos(@ + 27n) = cos(—@ + 27n), mas ha compensagao através do sinal de w. Por outro lado, se 6 = 0, e tem-se uma singularidade e w pode ser escolhido arbitrariamente. Teorema 1 (Euler) Qualquer orientacdo R € SO(3) é equivalente a uma rota- ¢do de um angulo 0 € (0, 27] em torno de um eixo fixo w € R’. 26 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ção a 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∗ = q2 0 + q2 1 + q2 2 + q2 3 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 R3. Sejam Q = (q0, ⃗q) e P = (p0, ⃗p), o produto 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 r13 r21 r22 r23 r31 r32 r33 pode-se associar a ela um quaternion unitário tal que [2]: 27 1 go = 5Vv"u + 122 +1733 + 1 1 MQ = ZV" P22 ~ 133 + 1, com sgn(qi) = sgn(r32 — 123) 1 Q = 5V022— Tu ~ 133 + 1, com sgn(q.) = sgn(ri3 — 31) 1 93 = 5V"33— Tu P22 + 1, com sgn(q3) = sgn(721 — T12) ou ainda, se R = e*°, tem-se que 0 quaternion unitario associado sera: Q = (cos(0/2), wsen(6/2)) Por outro lado, um quaternion Q = (qo, @), representa uma rotacfo de 6 = 2 acos(qo) em torno do vetor dado por: ¢ w= sen(6/2) ” sed 4 0 ; 0 , caso contrario Ea matriz de rotac¢a4o correspondente, sera dada por R = e*”. A principal vantagem dos quaternions sobre as matrizes de rotacao é que per- mitem uma representa¢ao que nao esta sujeita a problemas de singularidades. 7 Exercicios * Obtenha as transformacées “Tp, “Ty, ?T>o e CT, para os sistemas mostra- dos na figura 22. 28 ) . Zo Yo {C} Xe | . 2 ZA Zp {B} Ya ! x, Xp ! 5 Figura 22: Sistemas de coordenadas. * O ponto “P, € obtido rotacionando 0 ponto “P, = [1 2 3)" de 30° em torno de “X e de 60° em torno de “Z. Calcule 0 ponto 4 P». ¢ Cosidere as seguintes matrizes de transforma¢ao homegénea: 0.866 —0.5 0 3 Ap, = 0.5 0.866 0 —4 0 0 1 2 0 0 oO 1 1 O 0 0 Br, — 0 0.866 —0.5 1 “ ~~ 10 0.5 0.866 0 0 0 0 1 0.866 —-0.5 0 -83 CT, = 0.433 0.75 —-0.5 4 0.25 0.433 0.866 3 0 0 0 1 29 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 (sistema X’ 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ção da 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 sistema de coordenadas global {X0, Y0, Z0} através da posição e orientação de do sistema 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 descrita em relação ao sistema {Xc, Yc, Zc} pelos parâmetros l, α e ψ, como mostra a figura 25. 1. Obtenha a matriz de transformação do sistema {Xc, Yc, Zc} em relação ao sistema {X0, Y0, Z0}. 30 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 a distância entre-eixos seja de 1m, determine, utilizando as transforma- ções homogêneas obtidas acima, a posição da roda frontal esquerda do robô da figura 24 em relação ao sistema de coordenadas global quando o 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 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