• Nenhum resultado encontrado

2014.1 Marcelo de Miranda Bastos

N/A
N/A
Protected

Academic year: 2021

Share "2014.1 Marcelo de Miranda Bastos"

Copied!
19
0
0

Texto

(1)

IMPLEMENTAÇÃO DE UM MÉTODO

GEOMÉTRICO PARA RESOLUÇÃO DA

CINEMÁTICA INVERSA DE UM

MANIPULADOR HIPER-REDUNDANTE

Marcelo de Miranda Bastos Curso de Engenharia de Computação Universidade Estadual de Feira de Santana

Feira de Santana, Bahia marcelomirbas@yahoo.com.br

Anfranserai Morais Dias Departamento de Tecnologia (DTEC) Universidade Estadual de Feira de Santana (UEFS)

Feira de Santana, Bahia anfranserai@ecomp.uefs.br

Resumo—Neste Artigo, um método geométrico de resolução do problema da cinemática inversa para um manipulador hiper-redundante planar com n juntas é adaptado para um robô planar proposto com cinco graus de liberdade. Isso reduz o problema à tarefa de calcular a cinemática inversa de um robô com dois ou três graus de liberdade a cada iteração. Assim, elimina-se a complexidade matemática inerente que ocorre nos métodos clássicos baseados na matriz Jacobiana e na Jacobiana estendida. Aplicações como essa proveem soluções usando um menor custo computacional, o que torna o processador livre para calcular outras rotinas importantes para a tarefa do robô, tais quais o processamento de imagens, transmissão de dados para um gateway, e permite ainda uma solução rápida para o movimento. Adicionalmente, este artigo apresenta o desenvolvimento de um simulador em tecnologias web e o desenvolvimento do hardware para o robô proposto.

Abstract—In this paper, a geometric method of solving the inverse kinematic problem for a n-link planar hyper redundant manipulator is adapted to a proposed planar robot with 5 degrees of freedom. It reduces the problem to the task of computing the inverse kinematic of a robots with two and three degrees of freedom at each iteration. Thus, it eliminates the inherent mathe-matical complexity that occurs in the classical method based on Jacobian matrix and extended Jacobian. Applications such like that provides solutions using less processing power, which sets the processor free to compute other important routines for the robot task, such as image processing and data transmission to a gateway, and enables further a quick solution for the movement. Furthermore, this paper shows the development of an simulator in web technologies and the hardware developed to the proposed robot.

I. INTRODUÇÃO

Das lições de literatura ensinadas na escola fica-se sabendo que o Renascimento foi um período de transformação da humanidade. Foi um período no qual a ciência retomou uma visão de mundo mais racional, baseada numa perspectiva me-nos limitada pelos dogmas religiosos reinantes na Idade Média. Frequentemente indicado como o período de descoberta do homem, o Renascimento nos legou diversas novas teorias, deixando um cabedal de conhecimentos para a posteridade. Não apenas por mera coincidência, as mesmas mãos que, no

Renascimento, pintaram o quadro mais conhecido em todo o mundo, realizaram o primeiro projeto mecânico de um robô humanoide de que se tem registro, ainda do século XV [1]. Tal projeto, que ficou conhecido como o robô de Leonardo, comprova o fato de que a robótica surge a partir da capacidade de observação científica aliada à criatividade. Apesar de frequentemente ser associada à atualidade e ao futuro, a robótica, em seu estágio atual, resulta de elementos idealizados desde períodos remotos.

Em sua essência, um robô pode ser visto como um disposi-tivo capaz de realizar tarefas automaticamente ou por meio de um sistema de operação. Com o passar do tempo, a robótica têm acumulado diversas novas abordagens, técnicas, métodos e focos. A ciência que foi encubada na arte e no estudo da mecânica, extrapola a cada dia os seus limites com o avanço da eletrônica e da computação.

A acessibilidade e a mobilidade têm sido temas bastante explorados no campo da robótica, com a finalidade de expandir o nicho de aplicação dessa ciência. Cada vez mais, busca-se designar tarefas mais complexas a robôs, onde muitas vezes o espaço de trabalho envolvido é diversificado, e não apenas espaços bem conhecidos e pensados para o funcionamento do robô. Nesse sentido, diversas estruturas de robôs foram propostas ao longo dos anos de modo a aumentar essas características, aperfeiçoando a forma com a qual o robô interage no seu espaço de trabalho. A adversidade do espaços de trabalho caracteriza a fase de projeto estrutural do robô como fator determinante na eficiência deste, onde a escolha de uma arquitetura adequada varia de acordo com a tarefa que o robô irá desempenhar.

As estruturas modulares abriram diversas frentes de pes-quisa. O trabalho apresentado em [2], por exemplo, propõe o projeto de robôs modulares de baixo custo, para tarefas específicas, a partir de módulos pré-fabricados. Seu objetivo consiste em selecionar o melhor conjunto de módulos para uma determinada tarefa. Outro trabalho que exemplifica es-tudos nesse sentido é demonstrado em [3]. Nele, é apontada

(2)

a precisão no posicionamento da ferramenta como uma das principais preocupações nos sistemas de robôs modulares, já que a tolerância de usinagem, a conformidade e os desgas-tes podem inserir erros nesse posicionamento. Para resolver esse problema é proposto um novo método de calibração da modelagem cinemática, baseado em produto de exponenciais. Outra abordagem frequentemente seguida que se aplica a robôs modulares tange a criação de robôs autoconfiguráveis, como em [4], onde são propostos os projetos mecânico e elétrico e a arquitetura do sistema de controle para um robô modular autoconfigurável com uma estrutura simplificada. Essa estrutura permite diversas vantagens para operações como resgate, buscas, transporte e manutenção em ambientes não estruturados.

Outro trabalho importante no seguimento de robôs mo-dulares, apresentado em [5], propõe a construção de um robô modular morfogenético. Robótica morfogenética refere-se a uma clasrefere-se de metodologias empregadas para robôs autoconfiguráveis. Nesse trabalho, é apresentado um modelo mecanoquímico hierárquico de duas camadas para autoconfi-guração de robôs modulares em mudanças ambientais. Esse modelo, que é inspirado no desenvolvimento embriológico de organismos multicelulares e na morfogênese química, pode formar de maneira autônoma diferentes padrões de robôs modulares para adaptar-se às mudanças ambientais. A primeira camada é responsável por gerar, de forma adaptativa, uma con-figuração como resposta à mudança ambiental, enquanto que a segunda camada é responsável por realizar as mudanças físicas utilizando as coordenadas providas pela primeira camada.

Hoje, robôs estão divididos em diversas classes, que com-preendem robôs móveis, humanoides, dentre outros. Um robô no qual a estrutura mimetiza um braço humano é denominado manipulador, que consiste em uma cadeia de elos rígidos co-nectados por juntas que permitem movimentação relativa entre elos vizinhos [6]. No setor industrial, os manipuladores são a classe mais aplicada. Essa classe também tem aplicação em diversas outras áreas que envolvem manipulação de objetos, como em próteses humanas, mecanismos médicos, robôs de inspeção, desarmadores de bomba, dentre outros.

Manipuladores que possuem uma grande ou infinita quan-tidade de graus de liberdade são denominados Manipuladores Hiper-Redundantes [7]. Este tipo de manipulador é altamente manobrável e flexível, devido a sua alta redundância mecânica inerente. Isso permite que o robô possa manobrar de maneira mais fácil em ambientes complexos, desordenados e com mui-tos obstáculos, quando comparado com os robôs tradicionais [8]. Além disso, a redundância permite implementar sistemas robóticos tolerantes a falhas em um ou mais atuadores. Para que o manipulador seja considerado hiper-redundante, é ne-cessário que ele tenha 1 grau de liberdade a mais do que um manipulador redundante que, por sua vez, possuem mais do que os graus de liberdade requiridos para posicionar a ferramenta arbitrariamente no espaço [9].

Diversos estudos atualmente referem-se aos manipuladores Hiper-redundantes, como [10], que propõe a análise cinemática de um módulo de um robô hiper-redundante, composto por

módulos de estrutura paralela com três graus de liberdade. Ele relaciona o movimento dos atuadores com o movimento de todas as partes do módulo, de forma a permitir o planejamento do deslocamento e o seu controle. Nesse trabalho é mostrado que dois tipos de estruturas possibilitam a construção de um robô hiper-redundante: estruturas contínuas flexíveis e estruturas constituídas de módulos ou vértebras. Os robôs com estrutura contínua flexível podem realizar movimentos de cur-vatura em qualquer ponto ao longo da estrutura. Teoricamente, nesse tipo de robô, o espaço de articulações é infinito. Na prática, é necessário haver um número finito de atuadores. No caso dos robôs com estrutura modular, pontos distintos do mecanismo geram a curvatura da estrutura, o que produz o efeito de flexibilidade. Nesse segundo tipo de estrutura, cada módulo pode ser dotado de um ou mais graus de liberdade, compondo mecanismos capazes de executar as mais variadas possibilidades de movimentos.

Frequentemente, os conceitos de robôs são combinados, como em [11], que consiste na análise de interação e no de-senvolvimento de algoritmos sofisticados para evitar o tomba-mento de um manipulador modular móvel rastreável reconfigu-rável capaz de operar em elevações. Um mecanismo como tal, que integre um robô móvel rastreável a um manipulador modu-lar reconfigurável, promove dramática extensão do espaço de trabalho e do escopo de aplicação do robô, onde o robô móvel rastreável é provido de uma forte capacidade de locomoção, equilibrar-se terrenos hostis, atravessar obstáculos e subir escadas, enquanto o manipulador modular reconfigurável pode adaptar-se a tarefas sofisticadas de manipulação. No entanto, tal união gera um grave problema de estabilidade, sobretudo em locais desnivelados, como em elevações e encostas. Foram analisados nesse trabalho velocidades de deslizamento, forças interativas e trepidações em diversas configurações do robô para que pudessem ser concebidos os algoritmos em questão. Para que robôs possam manipular objeto, é preciso definir como a sua locomoção será realizada em termos de movi-mentações e esforços, o que envolve a modelagem cinemática e dinâmica deste. No entanto, ao se tratar de robôs hiper-redundantes, o cálculo da cinemática inversa e da dinâmica inversa se torna substancialmente mais complexo. Isso, prin-cipalmente, por causa da possibilidade de múltiplas soluções - que implica na necessidade de escolha de uma solução mais adequada - e por causa do tamanho das matrizes a serem manipuladas pelas metodologias clássicas de resolução.

Como forma de simplificar a resolução do problema da cinemática inversa, diversos métodos foram desenvolvidos nos últimos anos, que estão divididos em três abordagens [12]: (1) soluções algébricas, (2) soluções iterativas, as quais podem envolver soluções numéricas ou inteligência artificial - com o uso de redes neurais [13], algoritmos evolutivos [14], ou lógica nebulosa -, e (3) soluções geométricas [15], [16], que buscam desenvolver técnicas de análise através da observação da estrutura do robô.

O presente trabalho objetiva apresentar a aplicação de um método geométrico para a resolução da cinemática inversa de um manipulador hiper-redundante. A estrutura mecânica

(3)

proposta do manipulador é composta de módulos iguais com um grau de liberdade que são organizados em cadeia, que compõem um manipulador planar de 5 graus de liberdade. A complexidade em lidar com a resolução da cinemática de robôs hiper-redundante, que frequentemente torna o tempo de processamento proibitivo para aplicações práticas, gera a demanda pelo uso de formas alternativas para o cômputo desta. Portanto, o trabalho apresenta alguns métodos de resolução que são encontrados na literatura.

Além disso, é apresentado o desenvolvimento de um simula-dor sob o uso de tecnologias web, explorando novos ambientes para teste e simulação de algoritmos empregados à resolução da cinemática inversa de robôs hiper-redundantes.

Na seção II, será apresentada a fundamentação teórica que tange os principais conceitos envolvidos na problemática. Na seção III serão apresentadas as metodologias aplicadas em cada parte do desenvolvimento do trabalho. Por fim, serão apresentados na seção IV os resultados obtidos e as discussões acerca deles, e, na seção V, as conclusões que podem ser extraídas a partir dessa pesquisa e do desenvolvimento.

II. FUNDAMENTAÇÃOTEÓRICA

Essa seção apresenta a teoria relacionada no desenvolvi-mento do trabalho proposto. Aqui, são mostrados conceitos básicos que envolvem o robô alvo do desenvolvimento, a metodologia de Denavit-Hartenberg, a modelagem cinemática e o cômputo da cinemática inversa. Devido ao embasamento matemático dos temas abordados, serão apresentados previa-mente os alicerces matemáticos sobre os quais se desenvolvem a modelagem cinemática do robô.

Os manipuladores operam sobre objetos que estão locali-zados no espaço de trabalho. Para que o robô realize uma operação nesse objeto, é preciso localizar a ferramenta no espaço. Como a ferramenta é ligada até a base por meio de estruturas móveis, a localização dela também depende do estado de tais estruturas. A localização completa de um corpo em espaço envolve dois aspectos: (1) a posição em que esse corpo se encontra e (2) a sua orientação no espaço.

A posição no espaço pode ser descrita através de um vetor posição ~v = (x, y, z). Esse vetor tem início na origem de um sistema de coordenadas referencial e a extremidade no objeto que deseja-se localizar. A Figura 1 ilustra esse processo, onde BP

Q representa o vetor que localiza o ponto Q no

sistema de coordenadas {B}. Ocasionalmente, o ponto a ser localizado pode ser a origem de outro sistema de coordenadas que localiza outro ponto no espaço. Deste modo, é possível localizar pontos em termos de eixos não fixos, desde que as origens desses eixos sejam conhecidas em um sistema referencial fixo. Na Figura 1, o vetorAP

BORGindica a origem

do sistema de coordenadas {B} em relação ao sistema {A}. Para que a localização completa de um corpo no espaço seja determinada, é necessário indicar também a orientação que ele assume neste espaço. Nesse processo, é útil associar um sistema de coordenadas {B} ao corpo e descrever esse sistema de coordenadas em relação a um sistema referencial {A} conhecido. Para tanto, basta descrever os três vetores

Figura 1. Localização de um ponto no espaço.

ortogonais XB, YBe ZBdo sistema de coordenadas associado

ao corpo em termos do sistema de coordenadas referencial, onde passarão a ser expressos como AX

B,AYB e AZB. Ao

empilhar esses três vetores em uma coluna, tem-se a matriz rotação que, para esse caso que descreve a rotação do sistema {B} para o sistema {A}, chama-seA

BR, como mostrado em 1 e 2 [6]. A BR = ⇥A XB AYB AZB⇤ (1) A BR = 2 4XXBB· X· YAA YYBB· X· YAA ZZBB· X· YAA XB· ZA YB· ZA ZB· ZA 3 5 (2)

Algumas metodologias foram propostas para expressar a orientação em uma única matriz de rotação. Uma delas, a metodologia de ângulos de Euler Z-Y-X propõe que a análise seja feita a partir de um frame {B} coincidente com um frame referência {A}. Daí, rotaciona-se {B} primeiro sobre ˆZB por

um ângulo de ↵, depois sobre ˆYB por um ângulo de e, por

fim, ˆXB por . A matriz rotação final pode ser encontrada

através do processo ilustrado em 3 e 4, onde as matrizes rotação sobre cada eixo são multiplicadas na ordem mostrada [6]. A BRZ0Y0X0 = RZ(↵)RY( )RX( ) (3) A BRZ0Y0X0(↵, , ) = 2 4c↵cs↵c c↵s ss↵s s s↵cc↵c c↵s cs↵s c s↵sc↵s s c s c c 3 5 (4)

Como forma de unir a descrição da localização do robô no espaço, é possível inserir ambas as descrições, posição e orientação, em uma única representação, chamada de matriz transformação T , que pode ser obtida a partir do processo mostrado em 5, onde é gerada uma matriz quadrada de quarta ordem a partir do vetor posição e da matriz rotação. Ambas as informações são concatenadas e uma linha⇥0 0 0 1⇤ é inserida ao final como forma de manter a matriz quadrada sem alterar o valor determinante.

(4)

A BT = A BRX0Y0Z0 ABRX0Y0Z0·BPQ+APBORG ⇥ 0 0 0⇤ 1 (5)

O conjunto formado pela posição e a orientação de um elo no espaço é dito pose. A matriz A

BT que representa

o mapeamento de um frame {B} para um frame {A} e é constantemente abordada no estudo da robótica. Podem ser feitas operações com a matriz transformação no intuito de modificar o referencial de um frame, como mostrado em 7.

A BT = 2 6 6 4 c↵c c↵s s s↵c c↵s c s↵s pX s↵c s↵s s c↵c s↵s c c↵s pY s c s c c pZ 0 0 0 1 3 7 7 5 (6) A CT =ABT ·BC T (7)

Podemos ver que, calculando a raiz quadrada das somas dos quadrados das posições a11 e a21 deABT, onde aij é o

elemento da matriz na linha i e coluna j, é obtido o cosseno de . Daí, é possível encontrar o valor a partir do arco tangente do oposto do elemento na posição a31deABT sobre o cosseno

de . Então, enquanto cos 6= 0, é possível encontrar ↵ através do arco tangente de a21/cos sobre a11/cos . Por fim, é

possível encontrar a partir do arco tangente de a32/cos

sobre a33/cos . Em resumo, obtém-se:

= Atan2( a31, p a112+a212) (8) ↵ = Atan2( a21 cos , a11 cos ) (9) = Atan2( a32 cos , a33 cos ) (10)

onde Atan2(y, x) é uma função de arco tangente de dois argumentos que calcula a tan 1y/x e usa os sinais de x e

y para identificar o quadrante para o qual o ângulo resultante aponta [6].

A. Aspectos Estruturais de um Manipulador

De maneira simplista, é possível definir a mecânica de um manipulador em termos de juntas e os elos. As juntas contêm atuadores (tais como motores, músculos, etc ) e, por isso, são responsáveis por prover movimento ao robô. Elas podem ser prismáticas ou rotacionais, onde as juntas prismáticas produzem movimentos lineares enquanto que as juntas rotacionais produzem movimentos angulares. Por sua vez, os elos são as estruturas responsáveis pela conexão entre as juntas [6].

Existem diversas possibilidades estruturais para um manipu-lador, que dependem do tipo de junta, estrutura do elo e arranjo de conexões entre juntas e elos. A escolha da estrutura mais adequada depende de qual tarefa o robô irá realizar.

Merecem também destaque na estrutura de um manipulador a base e a ferramenta. A base representa o inicio da sua cadeia e é geralmente fixada a algum ponto do espaço, o que logo

a torna como sistema referencial para o robô. A ferramenta representa a extremidade final da cadeia do manipulador. Trata-se do ponto onde é posicionado o mecanismo que irá dar sentido ao robô, podendo ser uma câmera, uma chave, uma ferramenta diversa, dentre outros.

B. Parâmetros de Denavit-Hatenberg

Devido à estrutura inerente ao manipulador, que consiste na conexão de elos através de juntas, é necessário descrever a forma com a qual tal conexão se dá. Uma metodologia muito usada para isso se baseia nos parâmetros de Denavit-Hartenberg. Essa metodologia permite descrever completa-mente a posição de um elo em relação ao seu vizinho através de quatro parâmetros [6]. Portanto, para cada junta do robô são extraídos os quatro parâmetros, que são organizados em uma tabela.

Dados dois elos vizinhos, existe um eixo de junta comum a eles. Um parâmetro de interconexão expressa a distância, ao longo deste eixo comum, de um elo para o outro. Esse parâmetro é chamado deslocamento de elo (link offset), onde o deslocamento no eixo de junta i é chamado di. É dito ângulo

de junta, e expressado por ✓i, o parâmetro que descreve a

rotação sobre o eixo comum entre um elo e o seu vizinho [6]. Outro parâmetro usado na metodologia de Denavit-Hartenberg, chamado ai 1, expressa o comprimento do

se-guimento de reta mutualmente perpendicular aos dois eixos de junta do elo i 1. Por fim, o parâmetro ↵i 1 especifica

o ângulo de torção entre os eixos de juntas de um elo, especificados em relação à reta mutualmente ortogonal a eles. A Figura 2 ilustra o relacionamento destes parâmetros.

Figura 2. Parâmetros de Denavit-Hatenberg [6].

Para descrever a localização de um elo em relação os seus vizinhos, é útil definir um frame associado a cada elo, e nomeá-lo de acordo com o número do elo ao qual ele se refere. A metodologia de Dennavit-Hartenberg define a forma com a qual esses frames serão criados, de modo que eles fiquem como os representados na Figura 2. O primeiro passo é posici-onar os eixos ˆZi de cada frame, que é coincidente com o eixo

(5)

no ponto onde a reta ai mutualmente perpendicular aos eixos

da junta atual e da junta anterior encontra o eixo de junta i. O eixo ˆXi aponta, ao longo da reta ai, para o eixo de junta

i + 1. Com isso, o eixo ˆYi será posicionado sendo ortogonal

aos dois eixos já definidos e seguindo a regra da mão direita [6]. Após definir os frames para cada junta, os parâmetros são organizados na forma de Tabela I.

Tabela I

PARÂMETROS DEDENNAVIT-HARTENBERG i ↵i 1 ai 1 di ✓i

1 ↵0 A0 D1 ✓1

2 ↵1 A1 D2 ✓2

3 ↵2 A2 D3 ✓3

... ... ... ... ...

De modo geral, ao final da aplicação da metodologia de Dennavit-Hatemberg, todos os valores da tabela serão conheci-dos, exceto os ângulos de junta ✓i, que estarão constantemente

sendo alterados durante a operação do robô. C. Os Espaços de um Manipulador

O espaço de trabalho de um manipulador é o volume de espaço que a ferramenta dele pode alcançar. Frequentemente é útil se referir ao espaço de trabalho como sendo dois: o espaço manipulável e o espaço alcançável. Espaço manipulável é aquele que o manipulador pode atingir com todas as orien-tações possíveis, enquanto o espaço alcançável é aquele que o manipulador pode atingir com, pelo menos, uma orientação. Disso, é possível perceber que o espaço manipulável é um subconjunto do espaço alcançável.

O espaço de trabalho de um manipulador é um subconjunto do seu subespaço. Para determinar o subespaço no qual o robô está inserido, uma técnica usada é descrever o frame da ferramenta em função das variáveis dos n graus de liberdade do manipulador. O subespaço do manipulador é gerado ao passo que essas variáveis, quando consideradas independentes, assumem todos os valores possíveis [6].

D. Cinemática Direta

O problema da cinemática direta envolve a determinação da posição e da orientação que o manipulador assume a partir de um dado conjunto dos ângulos para as suas juntas. Para a resolução deste problema, é utilizada a metodologia de Denavit-Hartenberg. O primeiro passo envolve o posiciona-mento dos sistemas referenciais a serem usados. Daí, monta-se a tabela proposta pela metodologia. Através da tabela, é possível encontrar a matriz de transformação do frame de cada elo para o frame associado ao anterior a ele. Multiplicando todas as matrizes, é possível obter a matriz transformação que representa a mudança do frame da ferramenta para o frame da base, representada na equação (47), cujos os termos rij estão

no Apêndice. 0 nT =01T ·12T · · ·n 1n T (11) 0 nT = 2 6 6 4 r11 r12 r13 r14 r21 r22 r23 r24 r31 r32 r33 r34 0 0 0 1 3 7 7 5 (12) E. Cinemática Inversa

Quando são especificados o ponto no espaço e a orientação desejados para a ferramenta e deseja-se conhecer os valores dos ângulos das juntas necessários para que o manipulador os atinja, tem-se o problema da cinemática inversa. Esse problema consiste no oposto da cinemática direta e a união dos dois caracteriza a modelagem cinemática de um manipulador. Para o caso de robôs redundantes ou hiper-redundantes, a solução analítica pode ser muito difícil de ser encontrada ou sequer ser possível.

Algumas metodologias foram desenvolvidas ao longo dos anos com o intuito de realizar o computo da cinemática inversa de manipuladores. Três abordagens são utilizadas para tanto, que são as abordagens algébricas, iterativas e geométricas [15]. 1) Metodologias Algébricas: As abordagens algébricas consistem em encontrar, analiticamente, relações que des-crevam os ângulos a partir da modelagem da cinemática direta, realizada na etapa anterior. Soluções que seguem essa metodologia possibilitam maior eficiência no cálculo, ao passo que proporcionam uma equação direta sobre a qual o sistema do robô poderá encontrar os ângulos. Contudo, às vezes as soluções encontradas necessitam de técnicas numéricas para a resolução - como é o caso do Jacobiano - e isso torna com que a solução demande um alto custo computacional, ao passo que se convertem a uma solução iterativa.

Na teoria convencional do controle robótico, a matriz Jaco-biana é considerada uma das mais importantes ferramentas. A partir da modelagem da cinemática direta, é possível empilhar em um vetor coluna F as três equações que identificam o ponto (x, y, z) e mais três equações da rotação que, para o caso da metodologia Z-Y-X de Euler, são as equações 9, 8 e 10 mostradas anteriormente. Com isso, é possível estabelecer a equação 13, onde o Y é o vetor composto pelo empilhamento das coordenadas e dos ângulos de rotação ↵, e .

Y = F(✓) (13)

O problema da cinemática inversa consiste em determinar a inversa F 1(✓)tal que ✓ = F 1Y. Para calcular a diferencial

de Y como uma função da diferencial de ✓, pode-se aplicar a regra da cadeia e obter (14), que pode ser escrita na notação vetorial como (15) [6]. 2 6 6 6 4 y1 y2 ... yn 3 7 7 7 5= 2 6 6 6 6 6 6 6 6 4 @f1 @✓1+ @f1 @✓2+ . . . + @f1 @✓n @f2 @✓1 + @f2 @✓2 + . . . + @f2 @✓n ... ... ... @fn @✓1 + @fn @✓2 + . . . + @fn @✓n 3 7 7 7 7 7 7 7 7 5 · 2 6 6 6 4 ✓1 ✓2 ... ✓n 3 7 7 7 5 (14)

(6)

Y = @F

@✓ · ✓ (15)

a matriz de derivadas parciais é chamada de Jacobiana [6].

Y = J(✓)· ✓ (16)

Dividindo ambos os lados da equação (16) pelo diferencial do tempo, tem-se que:

˙

Y = J(✓)· ˙✓ (17)

Da equação (17) é possível notar que pode-se obter o vetor de variação nos ângulos ˙✓ a partir da multiplicação do vetor de derivadas das entradas entradas da cinemática inversa pela inversa do Jacobiano J(✓) 1, como referido na equação (18).

˙✓ = J(✓) 1· ˙Y (18)

Contudo, Para o caso de robôs hiper-redundantes, essa inversão passa a demandar alto custo computacional, o que ocorre devido à natureza não quadrada e as altas ordens da Jacobiana, pelo fato desta apresentar uma coluna para cada grau de liberdade e uma linha para cada parâmetro de entrada da cinemática inversa. Algumas técnicas empregadas para a inversão de matrizes não quadradas podem aumentar a ordem da matriz, implicando em um custo computacional maior ainda.

Outro problema comum na inversão da matriz jacobiana são as singularidades que podem ocorrer. Devido ao fato de que os elementos da matriz são funções de senos e cossenos, ângulos de junta com valor zero e mais ou menos noventa graus podem gerar singularidades que tornem a matriz não inversível.

Técnicas como a utilização da transposta do Jacobiano e da pseudo-inversa de Moore-Penrose são frequentemente usadas como forma de resolver ou contornar o problema da inversão do jacobiano.

A teoria apresentada em [7] propõe uma solução ao pro-blema da cinemática inversa de robôs hiper-redundantes com base em um método que foi chamado pelos autores de curva de backbone. Tal método aplica a teoria clássica de curvas e o método de Frenet-Serret, que serão apresentados nas seções II-F e II-G, para a reparametrização da curva de backbone em frames de referência para cada ponto da curva. Tal método pode ser aplicado a robôs de morfologia contínua ou de morfologia discreta, assumindo que o robô possui um número alto de segmentos.

Uma vantagem da solução analítica é o fato de que, através dela, todas as soluções do sistema podem ser encontradas para um determinado objetivo, o que possibilita maior flexibilidade na escolha da trajetória.

2) Metodologias Iterativas: Outras abordagens utilizam al-goritmos iterativos na busca por soluções, o que pode envolver tanto aplicações numéricas quanto aplicações de técnicas da inteligência artificial. Devido à natureza iterativa, essas abor-dagens são mais lentas do que as analíticas. No entanto, são muito úteis quando a obtenção de uma solução fechada pode ser muito difícil ou até mesmo impossível.

Devido aos senos e cossenos dos ângulos de rotações, F em (13) é não linear em ✓. Por isso, a sua inversa pode não existir ou ser de complexa resolução. Uma forma de contornar este problema é aplicar as séries de Taylor, na vizinhança de ✓, cada uma das funções F. Com o uso do Jacobiano, é possível encontrar um modelo linear aproximado, mostrado em (19) [17].

F(✓ + ✓) = F(✓) + J· ✓ + O( ✓2) (19) Fazendo F(✓ + ✓) = 0 e desprezando os termos de ordem quadrática e superiores em (19), obtêm-se um sistema de equações lineares para as relações ✓ que movem cada função para mais próximo do zero simultaneamente, expresso em (20) [17].

J· ✓ = F (20)

A equação matricial (20) pode ser resolvida por decom-posição LU e as correções podem ser inseridas no vetor de soluções através de (21) e o processo é repetido buscando a convergência [17].

✓novo= ✓velho+ ✓ (21)

3) Metodologias Geométricas: A abordagem geométrica possibilita a obtenção de uma solução fechada a partir da análise estrutural. Essa abordagem leva a uma relação direta assim como a abordagem analítica. No entanto, não é propria-mente indicada quando a intenção for obter a melhor solução [15]. Isso ocorre porque um método geométrico apresenta uma solução ou um subconjunto específico das soluções possíveis, onde não existe a garantia de que haja a solução mais eficiente. A metodologia proposta em [18] encontra os ângulos entre cada par de elos vizinhos, de modo que todos eles sejam iguais para todos os elos adjacentes. Isso faz com que os elos do robô se pareçam com parte de um polígono inscrito em um círculo que passa pela origem (0, 0) e pelo ponto objetivo (xtp, ytp)

Figura 3. Tal parte do polígono inicia-se na origem (0, 0) e tem fim no objetivo (xtp, ytp)[13].

(7)

Uma vez que o robô inicia-se na origem, é possível determi-nar o s da Figura 4 através da relação de Pitágoras, conforme a equação 22.

Figura 4. Polígono circunscrito.

s =qx2

tp+ ytp2 (22)

Para encontrar o valor do ângulo entre cada par de elos adjacentes, é necessário encontrar antes o valor de ✓. Tomando como base na Figura 5,

Figura 5. Relação entre r e ✓.

obtêm-se: sin✓ 2 = s 2 R (23) s = 2R sin✓ 2 (24)

A Figura 6 apresenta um detalhe da Figura 4.

Figura 6. Detalhe da Figura 4.

A partir da Figura 6, é possível encontrar outra relação entre ✓e o raio R:

L = 2R sin ✓

2n (25)

Através das Equações (24) e (25) o valor de ✓ pode ser calculado como s L = sin✓ 2 sin ✓ 2n (26) O valor de ✓ pode ser aproximado de (26) usando a iteração de Newton-Raphson. Uma vez que ✓ é conhecido, é possível substituí-lo nas equações (24) e (25) para encontrar R. Então, o ângulo entre cada par de elo adjacente pode ser calculado como segue:

= ⇡ ✓

n (27)

Já em [16], o método proposto segue o fluxograma represen-tado na Figura 7. A descrição de alguns passos do fluxograma encontra-se em Tabela II.

início Desenha um círculo com r = L e centro em (xtp, ytp) A i = n 1 Desenha círculo centrado em i + 1 A i = i 1 se i > 3 B C fim sim não

(8)

Tabela II

DESCRIÇÃO DE PASSOS DO FLUXOGRAMA DAFIGURA7 Passo Descrição

A Desenha linha do centro do círculo ao nó i atual. A interseção com a circunferência é o novo i 1. B Desenha dois círculos com r1 = r2 = L. O centro do

primeiro é a junta 1 do robô. O centro do segundo é o novo nó 3.

C Um dos dois pontos de interseção entre dois círculos é o novo nó 2, o qual é mais próximo do nó 2 atual.

Contudo, há um caso especial onde o nó i é posicionado fora do espaço de trabalho do sub-robô que inicia na base e termina no nó i. Isso ocorre porque, ao ser posicionado sobre a interseção da circunferência em torno do nó i + 1 e a linha que liga o nó i + 1 ao nó i da posição anterior, este ponto é distanciado da linha que liga a base ao nó i + 1. Este caso pode ser identificado pela seguinte condição:

(xi)2+ (yi)2> 0 @ i 1 X j=1 lj 1 A 2 (28) Para estes casos, é traçado um círculo com centro na base e raio igual i.L, onde L é o comprimento do elo. Esse círculo representa o espaço alcançável do sub-robô atual. Um outro círculo é traçado com centro no nó i + 1. A nova posição estará sobre uma das interseções das duas circunferências, sobre aquela que demanda o menor ângulo em relação a base. Partindo-se de uma posição desejada para a ferramenta, cria-se um circulo com centro neste ponto e raio igual ao comprimento do elo, e traça-se uma linha deste ponto até a junta Jn do robô na posição atual, como mostra a Figura 8.

Figura 8. Procedimento para encontrar nova posição da junta Jn.

A nova posição da junta Jn será definida como sendo o

ponto de interseção entre a reta e o círculo referidos, como é possível ver na Figura 9.

Figura 9. Reposicionamento da Junta Jn.

O procedimento é repetido para cada junta, até a junta J3, fazendo-se o circulo na Junta atual e traçando-se a reta

até a junta Jk 1, onde k é o índice atual, da posição atual.

É possível ver o reposicionamento das juntas Jn 1 e J3,

respectivamente, em Figura 10 e Figura 11.

Figura 10. Reposicionamento da Junta Jn 1.

O reposicionamento da junta J2é feito de maneira diferente,

como forma de manter a base do robô, a junta J1, fixa. Para

(9)

Figura 11. Reposicionamento da junta J3.

ao comprimento do elo, um com centro em J3 e o outro com

centro em J1, sendo que J1não varia no reposicionamento do

robô. A nova posição da junta J2será em uma das interseções

entre os dois círculos. É conveniente escolher aquela interseção cujo ângulo com a base varia menos. Esse processo está ilustrado na Figura 12.

Figura 12. Reposicionamento da junta J2.

F. Reparametrização de Curvas, Comprimento do Arco e Vetor Tangente

A parametrização de um conjunto se trata por uma curva que tenha aquele conjunto como imagem. Assim, sejam A ⇢ Rn

e ↵ : I ! Rn tais que Im↵ = A, é comum referir-se a

↵ como uma parametrização do conjunto A [19]. Com isso,

várias curvas de diferentes podem ser parametrizações de um mesmo conjunto imagem. É necessário, portanto, remover a dependência da parametrização antes de extrair a verdadeira informação geométrica da curva [20].

É possível definir um vetor tangente unitário para uma curva ↵(t)como: T = d↵ dt |d↵ dt| (29) Esse vetor pode ser usado para obter informações geomé-tricas sobre a curva.

Em [20] é apontado o desenvolvimento de uma parame-trização padronizada conveniente, a qual usa o comprimento do arco da curva, denotado doravante por s. Depois, define a reparametrização como uma função injetora g : (c, d) ! (a, b) tal qual g e h ⌘ g 1 são suaves e h : (a, b) ! (c, d). É

assumido que dg

dt 6= 0, o que significa que o vetor que traça a

curva não para de mover em qualquer ponto.

Seja t = g(r), onde r 2 (c, d) é o parâmetro no intervalo (c, d), define-se a curva como a composição de ↵ e g, onde ⌘ ↵(g(r)) e = ↵g. A proposta de introduzir a reparametrização g é devida ao fato que deseja-se escolher uma forma funcional de g que irá simplificar a análise, onde será possível perceber que a forma ótima de g envolve o comprimento do arco da curva [20].

Se ↵ : [a, b] ! R3 um segmento de curva regular - isto é,

suave em todo intervalo [a, b] e d↵

dx 6= 0 para todo a  t  b

-, o comprimento de ↵, L, é definido como: L =

Z b a

d↵

dx(t) dt (30)

A Reparametrização muda apenas a velocidade na qual a curva é traçada, e não muda a imagem da curva no R3. Em

[20] é apresentado um lema que mostra que o comprimento do arco deve permanecer inalterado com a reparametrização.

Seja ↵  t0 b, o comprimento do arco da curva relativo

a t0é, s = Z t t0 d↵ dx dt (31)

Outro lema apresentado em [20], com a sua respectiva prova, é que existe um intervalo (c, d), tal que h : (a, b) ! (c, d) é injetora, sobrejetora e suave, com inversa g ⌘ h 1

tal que g : (c, d) ! (a, b). Assume-se, portanto, que (s) = ↵(g(t)), que é uma curva chamada velocidade unitária.

Com isso, através de um terceiro lema em [20], é possível ver que o vetor tangente de uma curva de velocidade unitária ↵(s) pode ser simplificado por,

T(s) = d↵

(10)

G. O Método de Frenet-Serret

Através do uso da forma simples do vetor tangente, obtida pela parametrização pelo comprimento do arco, pode-se cons-truídos outros dois vetores perpendiculares, N e B. Então, é possível encontrar duas características úteis de uma curva: a curvatura  e a torção ⌧ [21].

Seja ↵ uma curva de velocidade unitária,  = |T0 (s)| é a curvatura em ↵(s). É possível extrair uma melhor com-preensão analisando o caso particular de curvas planas. Seja ↵ = (x(s), y(s)), a qualquer ponto da curva é possível desenhar um vetor tangente a ela. Seja ✓ o ângulo entre esse vetor e a horizontal. É possível ver que o ângulo ✓ é relacionado à curvatura  [21]. Ao parametrizar a curva pelo comprimento do arco, |T| = 1. Então, T pode ser expresso como, T(s) = (cos ✓(s), sin ✓(s)) (33) Ao derivar as componentes de T, T0= ✓ sin ✓(s)d✓ ds, cos ✓(s) d✓ ds ◆ (34) Usando o comprimento para formar a curvatura,

 =|T0(s)| = (sin2✓ + cos2✓)12 d✓

ds = d✓ds (35)

Isso que mostra que  é a taxa de mudança do ângulo ✓ entre T e o eixo horizontal. [21] apresenta o desenvolvimento do cômputo da curvatura até a relação que segue:

 = |f

00 |

(1 + (f0)2)12 (36) Os vetores N e B são chamados, respectivamente, de vetores normal e binormal, onde

N(s) = T 0 (s) (s) (37) e B(s) = T(s)⇥ N(s) (38)

Com isso, é possível definir a torção como:

⌧ (s) = hB0(s), N(s)i (39) Geometricamente, a torção mensura a medida na qual a curva é torcida para fora do plano que ela se encontra. [21] apresenta mais um lema que mostra que todos os vetores do método de Frenet-Serret têm comprimento 1 e são perpendi-culares uns aos outros. Depois, é definido o método de Frenet-Serret como a quíntupla (T, N, B, , ⌧).

III. MATERIAIS EMÉTODOS

O desenvolvimento deste trabalho seguiu uma metodologia incremental. É comum que isso ocorra em projetos nesse sentido devido às dependências existentes entre os métodos necessários para a modelagem cinemática do robô.

O trabalho da modelagem robótica segue uma cadeia de raciocínio onde o tema posterior, geralmente, depende do atual. Mais do que isso, o produto gerado sob a base do tema atual é, geralmente, utilizado no tema seguinte. Devido a isso, é imprescindível a compreensão de cada tema para que seja desenvolvida a porção do projeto que lhe cabe. As subseções que seguem irão descrever as metodologias adotadas e previstas até o fim deste trabalho.

A. Revisão da Literatura

Essa fase precedeu cada tema abordado e é onde foi feito o levantamento teórico necessário ao tema seguinte. O fato do trabalho estar ligado a uma área específica da robótica dificulta o acesso à bibliografia. Por isso, as principais fontes do trabalho foram artigos publicados em bases de dados científicas, como o IEEE Xplorer e a Elsevier, por exemplo.

Os principais temas analisados para a resolução da cinemá-tica inversa do robô foram as formulações e técnicas matemá-ticas e físicas úteis para operação com sistemas redundantes e metodologias de resolução do problemas de cinemática inversa que foram propostas ao longo dos anos.

B. Projeto do Hardware

Para o projeto do hardware, utilizou-se a plataforma MPLAB, da Microchip, para implementação do firmware prin-cipal, sob o uso do compilador C32. Para os testes e simula-ções da conexão ZigBee foi utilizado o terminal X-CTU, que recebia informações referentes aos valores do potenciômetro e do acelerômetro do hardware.

C. Modelagem da Cinemática Direta

Para o cômputo da cinemática direta do robô foi necessário descrever o robô em termos de variáveis de elo e de junta. Isso foi feito sob o uso da metodologia proposta por Dennavit-Hartenberg. Após posicionar todos os frames, seguindo as regras proposta por tal metodologia (Figura 13), foram cal-culadas as matrizes de transformação de cada frame para o seu frame anterior.

A Figura 13 mostra o posicionamento dos referenciais em um manipulador com 5 juntas, seguindo a metodologia Denavit-Hartenberg. A tabela obtida é representada em Tabela III, onde L representa o comprimento dos elos.

(11)

Tabela III

PARÂMETROS DEDENNAVIT-HARTENBERG i ↵i 1 ai 1 di ✓i 1 0 0 0 ✓1 2 0 L 0 ✓2 3 0 L 0 ✓3 4 0 L 0 ✓4 5 0 L 0 ✓5 6 0 L 0 0

Com base em III, é aplicado para cada sistema referencial associado ao robô, a matriz transformação exibida em 6, como segue: 0 1T = 2 6 6 4 cos ✓1 sin ✓1 0 0 sin ✓1 cos ✓1 0 0 0 0 1 0 0 0 0 1 3 7 7 5 (40) 1 2T = 2 6 6 4 cos ✓2 sin ✓2 0 L sin ✓2 cos ✓2 0 0 0 0 1 0 0 0 0 1 3 7 7 5 (41) 2 3T = 2 6 6 4 cos ✓3 sin ✓3 0 L sin ✓3 cos ✓3 0 0 0 0 1 0 0 0 0 1 3 7 7 5 (42) 3 4T = 2 6 6 4 cos ✓4 sin ✓4 0 L sin ✓4 cos ✓4 0 0 0 0 1 0 0 0 0 1 3 7 7 5 (43) 4 5T = 2 6 6 4 cos ✓5 sin ✓5 0 L sin ✓5 cos ✓5 0 0 0 0 1 0 0 0 0 1 3 7 7 5 (44) 5 6T = 2 6 6 4 1 0 0 L 0 1 0 0 0 0 1 0 0 0 0 1 3 7 7 5 (45)

Para o manipulador apresentado acima, a cinemática direta pode ser obtida a partir da seguinte operação:

0

6T =01T ·12T ·23T ·34T ·45T ·56T (46)

D. Resolução do Problema da Cinemática Inversa

A partir da análise das metodologias pesquisadas foi esco-lhida a que melhor se adequou ao trabalho proposto, conside-rando a necessidade de adaptações, o tipo de solução encon-trada através da resolução pelo método, complexidade para implementação, curva de aprendizagem para a compreensão do método.

A técnica clássica para a resolução do problema da cine-mática inversa consiste na utilização da matriz jacobiana con-forme descrito na seção fundamentação teórica. No entanto, inverter o jacobiano é um problema para o caso de robôs

hiper-redundantes, já que os algoritmos empenhados nessa tarefa são de natureza iterativa e, para as matrizes grandes como as que são geradas no cômputo do jacobiano de robôs hiper-redundantes, isso demanda um tempo de processamento proibitivo para aplicações de tempo real. Outras abordagens consistem na aplicação da pseudo-inversa da Jacobiana, da inversa da Jacobiana estendida ou da inversa da Jacobiana aumentada. Contudo, essas técnicas não são opções para robôs hiper-redundantes devido ao custo computacional, além do grande número de restrições de tarefas que precisam ser especificadas.

Foram analisadas diversas metodologias para o cômputo da cinemática inversa a fim de encontrar uma que fosse realizá-vel em termos de tempo computacional para o manipulador proposto. Metodologias estas diversificadas entre abordagens geométricas [15], soluções inteligentes [14] e aproximações exatas [7]. A necessidade de desenvolver um algoritmo rápido é essencial para que seja possível eliminar uma unidade de processamento externa ao robô. Logo, uma metodologia de resolução da redundância exata torna-se mais atraente.

Um método desenvolvido em [18] apresenta uma simpli-ficação do cômputo da cinemática inversa através de um método geométrico. A ideia básica do método proposto é encontrar o ângulo entre cada dois elos adjacentes, o que fará a ferramenta alcançar o objetivo. Este ângulo deve ser o mesmo para cada par de elos adjacentes. Para encontrar tal ângulo, é analisado o ângulo no centro da circunferência que circunscreve o polígono a ser formado pelo robô referente ao deslocamento entre a origem e a ferramenta do robô. A restrição para a aplicação de tal método é que todos os elos do robô tenham tamanhos iguais, o que é compatível com o projeto em desenvolvimento.

Em [13] é proposto uma abordagem que utiliza técnicas da inteligência artificial para resolver a cinemática inversa de um manipulador hiper-redundante de elos de mesmo tamanho. Para isso, utiliza uma rede neural do tipo perceptron multi-camadas e o método geométrico descrito anteriormente como meio para levantar amostras para o treinamento da rede. Já em [14] é proposta a aplicação de um algoritmo genético multi-objetivo para a resolução da inversa da jacobiana estendida considerando os problemas da repetibilidade, precisão e obs-táculos no espaço de trabalho.

Outra abordagem geométrica também foi proposta por [15] no intuito de simplificar o computo da cinemática inversa. Ela aborda o problema sob uma estratégia de divisão e conquista que segmenta o robô ao meio a cada iteração, gerando sub-robôs de 2 elos, cada. É elaborada então uma estratégia onde o objetivo de um sub-robô é a origem do próximo sub-robô e o posicionamento se baseia nos centroides dos triângulos formados pelos dois elos de cada sub-robô. Esta estratégia insere poucas interações e reduz a complexidade final da inversão do jacobiano.

Em [16] é proposto um método geométrico que se baseia no estado anterior para posicionar os novos nós. Cada nó é posicionado com base na interseção entre uma circunferência de raio igual ao comprimento do elo em volta do nó posterior e

(12)

uma linha reta que liga tal nó ao nó anterior na posição anterior do robô. Alguns casos especiais são tratados de maneira diferente como forma de evitar que o robô seja impossibilitado de atingir um ponto dentro do seu espaço de trabalho ou para que seja possível manter a base fixa.

Outra estratégia interessante, proposta por [22], aplica um método semi-analítico que elimina a redundância do robô. Para tanto, ele abstrai um robô de n graus de liberdade em um robô de 6 graus de liberdade, onde a ferramenta é posicionada por 3 juntas virtuais que são funções das n-3 juntas e a sua orientação é dada por uma junta virtual que abstrai as 3 juntas do punho robótico.

Por fim, [7] demonstra um método exato, baseado na curva de backbone - uma curva contínua por partes que captura os recursos geométricos macroscópicos importantes de um robô hiper-redundante. A proposta, que tem base na geometria clássica das curvas, apresenta soluções para as limitações do Aparato de Frenet-Serret.

Com base nas análise dos métodos propostos para a reso-lução da cinemática inversa, optou-se pela implementação do método proposto em [16] pelo fato deste apresentar soluções mais fechadas, já que se baseia na posição anterior do robô.

Demandas futuras para o desenvolvimento deste robô po-derá incluir a inserção do ângulo roll em torno do eixo x. O método proposto em [16] pode ser facilmente adaptado para que esse requisito seja cumprido. Além deste, o método se demonstra passivo de adaptações, o que será necessário útil em etapas posteriores deste projeto.

E. Construção do Simulador

Para testar a solução implementada, foi construída uma plataforma de simulação com base no canvas do HTML 5. O algoritmo foi implementado sobre a linguagem JavaScript, para processamento do lado do cliente. Contudo, buscou-se manter o código desacoplado, para que seja possível em traba-lhos futuros transportar parte do simulador para um servidor, a fim de deixar interface apenas responsável pela troca de dados com o operador. O uso dessas tecnologias permite ao usuário executar o simulador a partir de qualquer navegador, independente da plataforma do sistema operacional, sendo possível também o uso a partir de smartphones e tablets.

Optou-se por utilizar o padrão XML para o armazenamento das informações referentes às características de elos e juntas do robô, o que possibilita a integração, em etapas posteriores, do robô ao simulador, de modo que o cômputo da cinemática inversa seja realizado, se necessário, em um servidor.

Buscou-se possibilitar ao usuário a escolha das entidades do robô a serem vista, como forma de possibilitar a gera-ção de imagens convenientes. Foi definido que a interface possibilitaria ao usuário a escolha por visualizar ou não: nós, elos, ângulos com a horizontal, ângulos no espaço de junta, índice do nó, coordenada (x, y) no canvas. Deveria ainda ser possível ver o robô no estado anterior e no estado atual (após o processamento da cinemática inversa), já que o método se baseia no estado anterior do robô para definir o seu estado atual. Como forma de melhorar a visualização, foram

empregadas diferentes cores para os robôs na posição atual, que têm nós na cor azul, e na posição anterior, que tem nós na cor vermelha. A cor da ferramenta dos dois robôs também é diferenciada, como forma de evitar confusões com a base.

Por fim, foi definido que deveria ser possível ao usuário visualizar os círculos e linhas utilizados durante o processa-mento do método, para que o simulador fosse uma ferramenta útil ná depuração de erros de implementação do método, além de possibilitar a geração de imagens que tornassem o método visualmente mais compreensível.

F. Testes e Análise de Resultados

Os testes foram realizados sobre a plataforma de simulação desenvolvida. Foi definida uma posição inicial para o robô e, através da interface, foram passados os parâmetros das coordenadas (x, y) do ponto no espaço de trabalho para que o método fosse executado.

Dois tipos de testes foram realizados. No primeiro tipo, foi calculada a cinemática inversa para valores distantes do ponto atual em que a ferramenta do robô se encontrava. Isso foi importante para o teste em pontos onde a rotina de casos especiais era usada e testes das personalizações do código para as rotinas dos casos especiais e de inserção do ângulo yawcomo parâmetro da cinemática inversa. Além disso, esses testes permitiram a análise da convergência do método.

No segundo tipo foi calculado a cinemática inversa para pontos próximos à uma determinada posição inicial do robô, o que representa erros pequenos, que são interessantes ao controle do robô.

IV. RESULTADOS

A. Especificações do Hardware Desenvolvido

O robô é formado pela conexão em cadeia de módulos, como o mostrado na Figura 14(a), com um grau de liberdade. Cada módulo contem o seu próprio hardware de controle, o que permite que esses eles sejam reagrupados de diferentes maneiras para a obtenção de diferentes robôs. Transmissores e receptores infravermelho foram associados à estrutura do módulo como forma de permitir a identificação dos módulos adjacentes para que os controladores conheçam a estrutura geral do robô. Devido aos aspectos de construção do módulo, os ângulos de rotação estão limitados ao intervalo de -90 graus a 90 graus, e podem ser aproximados do valor da resistência de um potenciômetro que é associado ao eixo de rotação do módulo.

(a) Módulo (b) Cadeia Figura 14. Estrutura mecânica.

(13)

A estrutura mecânica do robô final terá 10 graus de liber-dade. Contudo, este projeto leva em consideração apenas as juntas que provêm movimentação em um dos planos, que se configura como um robô hiper-redundante planar com 5 graus de liberdade, como pode ser visto na Figura 14(b).

O protótipo do hardware desenvolvido compõe um modelo empilhado placadas, com três camadas, a fim de atingir as restrições de espaço dentro do módulo. Situado na camada in-termediária, que é exibida nas Figuras 15(a) e 15(b), encontra-se o microcontrolador pic32mx360f512l, que é responsável por processar as rotinas principais do robô, sendo elas o cômputo da cinemática inversa e as demais tarefas que serão atribuídas ao manipulador.

(a) Visão superior (b) Visão inferior Figura 15. Placa do processador.

É usado também um microcontrolador PIC18F4550, que é responsável pelo controle de descarga da bateria. Isso é necessário porque são utilizadas baterias de lítio polímero para cada módulo, que apresentam restrições de temperatura máxima, corrente de descarga máxima e tensão mínima para que opere em segurança. A corrente de descarga será medida através de um sensor de efeito hall, o ACS712, que não interfere na impedância do circuito. Essa placa, que é a camada inferior do modelo empilhado, pode ser vista nas Figura 16(a) e 16(b).

(a) Visão superior (b) Visão inferior Figura 16. Placa das fontes.

O controlador PIC18F4550 também é responsável pelo con-trole de posição do robô. Para isso, ele usa como parâmetros o potenciômetro associado ao eixo de rotação do módulo, três sensores de efeito hall com saídas digitais que são internos ao motor sem escovas Maxon EC 32 flat utilizados para o acionamento das juntas, além de dados do acelerômetro MMA7260Q. Por fim, nas Figuras 17(a) e 17(b) é possível

ver a camada superior, que abriga o módulo de comunicação XBee, que implementa a pilha do protocolo ZigBee.

(a) Visão superior (b) Visão inferior Figura 17. Placa dos periféricos.

B. Resolução do Problema da Cinemática

Através da metodologia de Denavit-Hatemberg foi possível encontrar a matriz de transformação da cinemática direta do robô.

Partindo de uma configuração inicial tal qual mostrado na Figura 18, foi solicitado o cômputo da cinemática inversa para diversas posições.

Figura 18. Configuração inicial do robô.

As Figuras 19 e 20 apresentam a resolução do método para um caso que o resultado é obtido sem a utilização da rotina de casos especiais. Em cada uma das figuras são variadas as partes que deseja-se visualizar. Os nós na cor vermelha representam o robô na posição anterior, enquanto os nós na cor azul representa o robô na posição proposta pela resolução da cinemática inversa pelo método aplicado. Para todos os casos a base situa-se na posição (200, 200).

Na Figura 19 são visualizados apenas os elos do robô na posição anterior e os elos, os nós, o ângulo de junta e as coordenadas do robô na posição atual.

Figura 19. Casos especiais do método.

Na Figura 20 são visualizados apenas elos e nós do robô na posição anterior e elos, nós e ângulo de junta do robô na posição atual. Adicionalmente, são visualizados os círculos e linhas nos quais se baseou o método.

(14)

Figura 20. Teste para x do objetivo menor do que x da base.

Para esse exemplo é interessante notar que é escolhida para o segundo nó a interseção que gera o menor ângulo com a base. Isso é desejável em robótica porque atuar sobre juntar mais longe da ferramenta implicam em um torque maior e, consequentemente, maior gasto de energia. Outra observação que pode ser feita é que o ângulo da segunda junta extrapola o limite de -90 graus a 90 graus. Isso acontece porque, nessa fase do projeto não foram implementadas restrições para os ângulos nem para o cruzamento de elos do robô. O cruzamento geralmente ocorre quando o objetivo é próximo à base, caso ilustrado na Figura 21.

Figura 21. Teste ponto próximo à base.

Já o teste mostrado na Figura 22, resolve a cinemática inversa para um ponto onde é necessário utilizar o método dos casos especiais para a determinação de todas as juntas da iteração.

Figura 22. Teste para o ponto (422, 100) usando a metodologia casos especiais proposta em [16].

A Figura 23, mostra o caso em que todos os nós a partir do terceiro são inseridos pela rotina dos casos especiais, onde o ponto objetivo é o (422, 100).

Figura 23. Teste para o ponto (422, 100) usando a metodologia casos especiais proposta em [16].

A forma que é sugerida em [16] para o tratamento dos casos especiais acaba por reduzir o espaço de trabalho do robô. Avançando um pouco mais o x, escolhendo o objetivo (426, 100) para resolução da cinemática inversa, nota-se que a solução deixa de existir, como é possível ver na Figura 24.

Figura 24. Teste para o ponto (426, 100) usando a metodologia casos especiais proposta em [16].

Foi criada uma forma alternativa para o cômputo nos casos especiais que melhora o aproveitamento do espaço de trabalho. Ao identificar que o nó i foi posicionado fora do espaço de trabalho, ele é reposicionado na interseção entre uma linha que parte do nó i + 1. A nova posição do nó i é a interseção entre essa linha e uma circunferência de raio igual ao comprimento do elo e centro no nó i + 1. É possível ver que, com essa metodologia alternativa, é encontrada uma solução para o ponto (426, 100) na Figura 25.

Figura 25. Teste para o ponto (426, 100) usando a metodologia alternativa.

Contudo, a redução do espaço provocada de trabalho não é tão significativa próximo ao fato de que, no método proposto

(15)

em [16], os ângulos nulos são evitados. Isso faz com que sejam evitadas singularidades.

É possível visualizar na Figura 26 a solução para um caso em que ambas as metodologias (casos naturais e casos espe-ciais) são utilizadas para a resolução da cinemática inversa.

Figura 26. Teste para caso onde ambas as metodologias são usadas.

Nos casos em que o objetivo é simétrico em relação ao estado anterior do robô, como o mostrado na Figura 27, é possível ver que os ângulos computados são iguais em módulo.

Figura 27. Caso simétrico em relação à posição anterior do robô.

Os testes mostraram que o método converge gradativamente o robô à posição anterior. Isso é interessante porque faz com que as juntas que estão mais distantes da ferramenta sofram um deslocamento menor, economizando energia.

Por fim, foi feita uma outra implementação modificada do método para que a cinemática inversa seja resolvida para um ângulo yaw de rotação. Isso será útil em etapas posteriores do projeto. É possível ver a solução para o ponto (300, 100) com os ângulos de 0 graus, 20 graus e 44 graus, respectivamente, nas Figuras 28, 29 e 30. Para estes casos, o ângulo em vermelho e na parte inferior do nó refere-se ao ângulo com o eixo horizontal, que é o ângulo roll de rotação. Em azul e na parte superior do nó encontra-se o ângulo no espaço de junta do robô.

Figura 28. Solução para o ponto (300, 100) com 0 graus.

Figura 29. solução para o ponto (300, 100) com 20 graus.

Figura 30. solução para o ponto (300, 100) com 44 graus.

O outro tipo de teste foi realizado para pontos próximos ao ponto atual da ferramenta, partindo da posição mostrada na Figura 31.

Figura 31. Posição inicial (388, 98).

A Tabela IV apresenta os pontos escolhidos para o teste.

Tabela IV

COORDENADAS DOS PONTOS TESTADOS ponto coordenadas (x, y) p1 (380, 90) p2 (380, 98) p3 (380, 106) p4 (388, 90) p5 (388, 106) p6 (396, 90) p7 (396, 98) p8 (396, 106)

O gráfico da Figura 32 exibe a variação dos ângulos de junta para cada ponto testado.

(16)

p1 p2 p3 p4 p5 p6 p7 p8 100 80 60 40 20 0 20 40 60 80 100 Posições Ângulos ✓1 ✓2 ✓3 ✓4 ✓5

Figura 32. Variação do ângulo das juntas com a mudança da posição.

Para grande parte das transições observa-se que existe uma tendência a mover preferencialmente as juntas mais próximas à ferramenta, o que é satisfatório já que essas juntas demandam um torque menor. Isso pode ser visto na transição entre os pontos p1 e p2, representados nas Figuras 33 e 34

Figura 33. Solução para o ponto (380, 90).

Figura 34. Solução para o ponto (380, 98).

Notou-se que as vezes ocorre uma movimentação excessiva na primeira e na segunda junta. Isso é devido ao fato de que o posicionamento da segunda junta é feito com base na intersecção entre as duas circunferências, ao invés de se basear na posição anterior, o que é necessário para manter o robô com base fixa. Isso pode ser visto nas Figuras 35 e 36.

Figura 35. Solução para o ponto (380, 106).

Figura 36. Solução para o ponto (388, 90).

Uma análise do gráfico mostrado na Figura 32 permite ver que as juntas quatro e cinco, com ângulos ✓4 e ✓5

respec-tivamente, apresentam variações maiores do que as demais caso sejam desconsideradas as transições que envolvem p4. Em p1, p2, p3, p7 e p8 as juntas um e dois sofrem variações muito pequenas enquanto a junta cinco apresenta variações que chegam a ser maiores do que 10 graus.

C. Simulador

Para simular os resultados obtidos a partir do método geométrico escolhido, foi desenvolvida uma plataforma de testes e simulação para robôs em cadeia (apresentada na Figura 37) baseada nas tecnologias web HTML5 e Javascript, e no padrão XML, o quê possibilita que ela seja utilizada a partir de smartphones, tablets ou computadores.

(17)

A plataforma é composta de três divisões conforme mostra a Figura 37. Na divisão à direita, que pode ser vistos em Figura 38, estão os comandos referentes ao robô atual, onde podem ser modificadas as coordenadas da base e o usuário pode escolher quais informação deste robô deseja ver.

Figura 38. Mudança de posição.

Na coluna à esquerda há alguns campos reservados aos parâmetros da cinemática inversa, que podem ser vistos na Figura 39. O usuário deverá preencher esses campos que se referem às coordenadas (x, y) da ferramenta e o ângulo roll. Feito isso, o usuário deve clicar em "calcular"para que o algoritmo se inicie.

Figura 39. Nova posição.

Abaixo dos campos dos parâmetros da cinemática inversa, existem algumas opções de escolha de visualização para o robô que representa a nova posição, como pode ser visto na Figura 40.

Figura 40. Nova posição.

As opções são as mesmas que estão disponíveis para o robô inicial com o acréscimo da possibilidade do usuário poder escolher visualizar os círculos e retas utilizados no método da resolução da cinemática inversa, ao invés de poder ver o comprimento dos elos que não sofrem variação no processo.

Após obter uma solução, o usuário pode solicitar que a posição gerada se torne a atual, clicando no botão "Mover Robô"e pode solicitar uma nova resolução.

Caso o usuário deseje personalizar o código para um outro manipulador, com diferentes tamanhos de elos e quantidade de juntas, pode modificar o XML adicionando ou removendo nós e elos. Os nós e elos são definidos no XML, dentro da tag <robo>.

O usuário pode implementar um outro método de resolução da cinemática inversa reescrevendo a rotina cinamaticaIn-versa() no script do simulador, que é chamada quando o usuário pressiona o botão calcular da interface. Caso ele deseje modificar o método, é necessário modificar a exibição do método, ativada pela caixa Modelo Geométrico. Para fazer isso, basta modificar a rotina exibeMetodoGeometrico() e usar a rotina desenhaCirculo(x,y,L) para desenhar um circulo de centro em (x, y) e raio L, e a rotina mostraLinha(xi,yi,xf,yf,2) para desenhar uma linha de origem no ponto (xi, yi) e fim no ponto (xf, yf). No caso da rotina mostraLinha(), o quinto parâmetro deve ter o valor 2, o que designa que essa linha refere-se ao detalhamento do método e só deve ser exibida caso a opção Modelo Geométrico seja selecionada a partir da interface gráfica.

V. CONCLUSÃO

A aplicação de metodologias alternativas no cômputo da cinemática inversa de robôs hiper-redundantes possibilita a obtenção de uma solução de maneira mais rápida do que as metodologias exatas clássicas de resolução. Embora a solução obtida provavelmente não seja a mais eficiente, ao passo que o método limita o conjunto de soluções, é satisfatórias em muitos casos, além de evitar a necessidade de um algoritmo que escolha a solução a ser usada dentre um conjunto que, para robôs hiper-redundantes, pode tender ao infinito.

O método proposto em [16] demostrou desempenho satisfa-tório, a medida que possibilita o cálculo rápido dos ângulos de junta, além de apresentar soluções que se baseiam na posição anterior do robô. Isso faz com que a nova posição convirja à posição anterior a medida que se aproxima da base. Isso é uma solução interessante na robótica ao passo que implica em uma menor movimentação em juntas que exijam torque maior, economizando energia.

Trabalhos futuros envolvendo o método de resolução pode-rão envolver a combinação de diferentes métodos geométricos e a escolha, através de metodologias da inteligência artificial, do método mais apropriado a cada iteração da trajetória.

Uma vez que plataformas de simulação para projetos es-pecíficos de robótica são constantemente difíceis de serem encontradas, o desenvolvimento proposto do simulador em tecnologias web se mostrou útil e rápido para tal tarefa. É inovador a medida que aplica tendencias do mundo da internet

(18)

à robótica, possibilitando o acesso à plataforma proposta a par-tir de dispositivos moveis. O uso do padrão XML proporciona uma forma organizada de manter e transmitir informações.

Trabalhos futuros poderão envolver a integração do simula-dor com o robô real, fazendo com que um servisimula-dor web resolva a cinemática do robô e envie os ângulos para execução do movimento.

Ademais, é possível integrar ao simulador um analisador e possibilitar ao usuário inserir o seu algoritmo para a resolução da cinemática a partir do próprio simulador, sob uma sintaxe específica definida, poupando-o do trabalho integrar o algo-ritmo ao código do simulado. Neste caso, seria interessante fazer o uso de tecnologias que atuem do lado do servidor.

AGRADECIMENTOS

À FAPESB pelo financiamento tanto do projeto quanto da bolsa estudantil.

REFERÊNCIAS

[1] M. Moran. (2006, Dec.) The da vinci robot. [Online]. Available: http://www.ncbi.nlm.nih.gov/pubmed/17206888

[2] S. FARRITOR and S. DUBOWSKY, “On modular design of field robotic systems,” in AUTONOMOUS ROBOTS, Jun. 2001.

[3] G. YANG and I. M. CHEN, “Kinematic calibration of modular reconfi-gurable robots,” in Journal of Robotic Systems, Singapoure, Jun. 1997, pp. 807–821.

[4] A. KAMIMURA, S. MURANTA, E. YOSHIDA, and S.KOKAJI, “Self-reconfigurable modular robot,” in Intenational Conference on Intelligent Robots and Systems, Hawaii, United States, Oct.29 2001, pp. 3497–3592. [5] Y. MENG, Y. ZHANG, and Y. JIM, “Autonomous self-reconfiguration of modular robots by envolving a hierarchical mechanochemical model,” in Proc. IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE, Feb.05 2011, pp. 290–294.

[6] J. J. CRAIG, Introduction to Robotics: Mechanics and Control, 3rd ed. United States: Prentice Hall, 2005.

[7] J. W. BURDICK and S. CHIRIKJIAN, The Kinematic of Hyper-Redundant Robots. New York, NY: Springer, 1998, ch. 3.

[8] E. SHAMAS, A. WOLF, and H. CHOSET, Three degrees-of-freedom joint for spatial hyper-redundant robots. New York, NY: Elsevier, 2005, ch. 3.

[9] A. A. Maciejewski and C. A. Klein, “Obstacle avoidance for kinema-tically redundant manipulators in dynamically varying environments,” in The International Journal of Robotics Research, Columbus, Ohio, United States, Jan.14 2008, pp. 109–116.

[10] M. H. SALABARRIA, “RobÔ hiper-redundante com mÓdulo de arqui-tetura paralela,” Master’s thesis, Escola Politécnica da USP, São Paulo, 2007.

[11] Y. LIU and G. LIU, “Interaction analysis and online tip-over avoidance for a reconfigurable tracked mobile modular manipulator negotiating slo-pes,” in IEEE/ASME TRANSACTIONS ON MECHATRONICS, Hawaii, United States, Dec.29 2010, pp. 623–635.

[12] C. Q. L. Sheng, W. Yiqing and H. Weili, “A new geometrical method for the inverse kinematics of hyper-redundant manipulators,” in 2006 IEEE International Conference. Robotics and Biomimetics, Kunming, China, Dec.17-20 2006, pp. 1356–1359.

[13] S. YAHYA, H. A. F. MOHAMED, M. MOGHAVVEMI, and S. S. YANG, “Inverse kinematics of an equal length links planar hyper redundant manipulator using neural networks,” in Proc. ICROS-SICE International Joint Conference, Japão, Aug.11 2009.

[14] M. G. MARCOS, J. A. T. MACHADO, and T. P. AZEVEDO-PERDICOÚLIS, “An evolutionary approach for the motion planning of redundant and hyper-redundant manipulators,” in Springer Sci-ence+Business Media B.V., Hawaii, United States, Dec.15 2009, pp. 115–129.

[15] A. JAMALI, R. KHAN, and M. M. RAHMAN, “A new geometrical approach to solve inverse kinematics of hyper redundant robots with variable link length,” in 4th International Conference On Mechatronics (ICOM), 2011, Kuala Lumpur, Malasia, May17-19 2011, pp. 1–5.

[16] S. YAHYA, H. A. F. MOHAMED, M. MOGHAVVEMI, and S. S. YANG, “A geometrical inverse kinematics method for hyper-redundant manipulators,” in Proc. 10th Intl. Conf. onControl, Automation, Robotics and Vision, Vietnam, Dec. 2008.

[17] W. H. PRESS, S. A. TEUKOLSKY, W. T. VETTERLING, and B. P. FLANNERY, Numerical Recipes: The Art of Scientific Computing, 3rd ed. United States: bookman, 2007.

[18] S. YAHYA, H. A. F. MOHAMED, M. MOGHAVVEMI, and S. S. YANG, “Motion planning of hyper redundant manipulators based on a new geometrical method,” in Proc. Industrial Technology, 2009. ICIT 2009. IEEE International Conference, Gippsland, VIC, Australia, Feb.10-13 2009, pp. 1–5.

[19] H. L. GUIDORIZZI, Um Curso de Cálculo, quinta ed. Rio de Janeiro, Brasil: LTC, 2010.

[20] A. DOWN, “Arc length and the frenet-serret apparatus,” notas de Aula. [21] ——, “The frenet-serret theorem,” notas de Aula.

[22] S. AOYAGI, K. TASHIRO, M. MINAMI, and M. TAKANO, “Develop-ment of robot simulator for avoiding obstacles based on semi-analytical method of solving inverse kinematics,” in IEEE/RSJ International Con-ference of Intelligent Robots and Systems, San Diego, United States, Oct.29 2007, pp. 3497–3592.

(19)

APÊNDICE 0 nT = 2 6 6 4 r11 r12 r13 r14 r21 r22 r23 r24 r31 r32 r33 r34 0 0 0 1 3 7 7 5 (47) r11= cos(✓1+ ✓2+ ✓3+ ✓4+ ✓5) (48) r12= sin(✓1+ ✓2+ ✓3+ ✓4+ ✓5) (49) r13= 0 (50) r14= L⇤ (cos(✓1+ ✓2+ ✓3+ ✓4+ ✓5)+ cos(✓1+ ✓2+ ✓3) + cos(✓1+ ✓2+ ✓3+ ✓4) + cos(✓1+ ✓2) + cos(✓1)) (51) r21= sin(✓1+ ✓2+ ✓3+ ✓4+ ✓5) (52) r22= cos(✓1+ ✓2+ ✓3+ ✓4+ ✓5) (53) r23= 0 (54) r24= L⇤ (sin(✓1+ ✓2+ ✓3+ ✓4+ ✓5)+ sin(✓1+ ✓2+ ✓3) + sin(✓1+ ✓2+ ✓3+ ✓4) + sin(✓1+ ✓2) + sin(✓1)) (55) r31= 0 (56) r32= 0 (57) r33= 1 (58) r34= 0 (59)

Referências

Documentos relacionados

• Quando o navegador não tem suporte ao Javascript, para que conteúdo não seja exibido na forma textual, o script deve vir entre as tags de comentário do HTML. &lt;script Language

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Tendo como parâmetros para análise dos dados, a comparação entre monta natural (MN) e inseminação artificial (IA) em relação ao número de concepções e

Esta pesquisa discorre de uma situação pontual recorrente de um processo produtivo, onde se verifica as técnicas padronizadas e estudo dos indicadores em uma observação sistêmica

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Com base na literatura revisada, conclui-se pela importância da implantação de um protocolo de atendimento e execução de exame de Ressonância Magnética em