Você está na página 1de 13

8 CINEMÁTICA INVERSA

O modelo matemático geométrico do robô, obtido a partir do método DH, é uma


avaliação cinemática direta. No qual, conforme figura 29, se entra com ângulos (θ) e
deslocamentos (d) para se obter a orientação e a posição espacial (cartesiana).

d1

..
dn Transformação X,Y,Z
θ1 Direta U,V,W

..
θn ψ, θ, φ

Figura 21 – Cinemática direta.

Contudo, no funcionamento do robô é indispensável que se tenham as informações de


posição espacial e orientação do ET, e a partir delas se estabeleçam os ângulos e
deslocamentos necessários. E para que sejam obtidas as referências em coordenadas
angulares ou lineares, deve-se fazer a inversão do modelo geométrico (ߠԦ = ݂Ԧିଵ ∙ ‫ݔ‬Ԧ).

A função f é não linear e composta de soma de produtos de senos e cosenos das


coordenadas generalizadas, por isso, a sua inversão é em geral não trivial, podendo
haver mais de uma solução na inversão.

Os métodos de solução do problema da inversão mais comuns são os Analíticos


(buscam todas as soluções; São adequados para robôs simples), e os Numéricos
iterativos (Convergem para uma solução possível entre todas as existentes; Exigem
alto processamento matemático).

Existem diversos métodos numéricos iterativos, entre eles os métodos recursivos,


figura 30, que utiliza ao cálculo do modelo geométrico direto e da matriz Jacobiana
inversa (J-1).

Figura 22 - Utilização do modelo geométrico direto e da matriz Jacobiana inversa para


determinar uma configuração θ* correspondente a uma situação desejada x*.

Devido a complexidade e do curto tempo deste curso não daremos seguimento a


modelagem inversa, ficando somente a informação e a recomendação para maiores
estudos o livro do autor John Craig, Robótica (2012).

29
9 PROGRAMAÇÃO DE ROBÔS

Nos dias de hoje, a programação dos robôs está fortemente baseada na


“aprendizagem”, ou seja, na condução do robô pelas posições críticas de operação. E é
esse tipo de programação, também chamada de programação on-line, que será a
utilizada nesse curso.

Cabe lembrar que antes de programar, o operador deve conhecer os eixos de


movimentação X,Y,Z do robô.

9.1 Programação on-line

A programação on-line por aprendizagem pode ser executada de três formas:

Aprendizagem direta: O operador guia fisicamente o robô por seu órgão terminal.
Enquanto isso os sensores de posição de cada junta são utilizados para memorizar os
pontos importantes da tarefa a ser executada.

Aprendizagem por simulação física: Operador guia um simulador físico que tem
geometria e sensores idênticos aos do robô original. Uma vez memorizada a tarefa,
esta é transferida para o sistema de controle do robô.

Aprendizagem por telecomando: Um dispositivo de telecomando, denominado Teach-


Pendant (Figura 23), é utilizado para mover cada junta do robô isoladamente ou
agrupadamente, através dos eixos cartesianos, a fim de fornecer a posição e a
orientação da garra de cada posição crítica de operação.

Figura 23 - Teach-Pendant.

Dentro da aprendizagem por telecomando, existem quatro subtipos de programação:

(1) ponto-a-ponto – se “ensina” cada ponto da trajetória;

(2) movimento angular de juntas – a partir de um ponto definido se faz a


interpolação dos demais pontos, os movimentos são rotacionais (θ);
30
(3) movimento da direção cartesiana – a partir de um ponto definido se faz a
interpolação dos demais pontos, os movimentos são lineares (X,Y,Z); e

(4) movimento de reorientação da ferramenta - a partir de um ponto definido se


faz a interpolação dos demais pontos, os movimentos são baseados na
orientação do ET.

Para esta programação os robôs permitem três tipos de movimentos:

A. junta-a-junta (JOINTS) – o motor de cada junta é movido separadamente;

B. eixos (AXIS) – os movimentos ocorrem de acordo com cada eixo cartesiano,


X, Y ou Z. Nesse movimento existe a atuação de mais de uma junta
simultaneamente;

C. ferramenta (TOOL) – os movimentos se baseiam em RPY, ocorrendo a


atuação de mais de um motor simultaneamente.

A figura 24 apresenta os movimentos do robô quando acionado pelo Teach-Pendant.

Figura 24 – Movimentos do robô pelo Teach-Pendant.

9.2 Linguagem de programação dos robôs

As linguagens de programação dos robôs estão cada vez mais interativas e com poucos
comandos, facilitando, assim, o uso dos equipamentos. Normalmente são linguagens
descritivas, porém, o uso do teach-pendant facilita o desenvolvimento do aplicativo de
controle desejado devido ao uso da programação por aprendizagem. Na qual se
“ensina” os pontos de operação crítica ao robô.

31
A fim de se obter um programa eficiente, deve-se seguir alguns passos:

1. Conhecer o processo onde o robô será utilizado;

2. Conhecer as variáveis de controle;

3. Estabelecer uma sequencia lógica do processo. O uso de fluxogramas é uma


ótima opção de apoio;

4. Observar regras de segurança (NR-12, NBR 14153 e ISO 10218);

5. Definir nomes, rotinas e I/Os.

10 SEGURANÇA COM ROBÔS

Na indústria a segurança dos trabalhadores envolvidos nos mais diferentes processos


operacionais é primordial. Quando se trata do uso de robôs a observação quanto aos
trabalhadores não é diferente, ou seja, o robô é uma máquina que tem grande
potencial de causar acidentes em contato direto com os trabalhadores.

Basicamente as normas a serem utilizadas no uso de robôs industriais, são: a norma


NR-12 (Segurança no Trabalho em Máquinas e Equipamentos), a Norma NBR 14153
(Segurança de Máquinas, Princípios Gerais de Projetos) e a ISO 10218 (Robô de
Manipulação Industrial), esta última é uma norma específica para robôs.

É fundamental que tanto nas programações quanto no uso dos equipamentos as


normas de segurança sejam respeitadas, pois:

• os robôs executam movimentos com grande energia;

• o espaço de operação do robô pode sobrepor o espaço de outras máquinas e


operações;

• o impacto de um robô com alta velocidade de movimento pode ocasionar um


acidente fatal.

Por isso, é necessário que os robôs tenham seu espaço de trabalho bem delimitado e
confinado. Os espaços representados na figura 25 demonstram o que deve ser levado
em conta no site de trabalho do robô, ou seja, o alcance máximo do robô, incluindo as
ferramentas e peças de trabalho na aplicação real.

• Na figura 25:

1 – Área de operação do robô;

2 – Robô;

3 – Espaço de manobra, é o espaço necessário para o programa de aplicação, o que


não é necessariamente limitado pelos elementos de confinamento.

32
4 – Espaço restrito que pode ser utilizado de forma segura para a programação do
robô. O acesso só é permitido ao portador do teach-pendant, com o robô em modo de
programação.

Os espaços 1, 3 e 4 compõem o espaço de trabalho do robô e devem estar


inacessíveis aos trabalhadores quando o equipamento estiver em operação. Por
isso é necessário que se faça o uso de limitação/barreiras mecânicas e
eletromecânicas. Atualmente, existem softwares, CLPs e barreiras de luz que podem
ser utilizadas.

Figura 25 – Espaço confinado de trabalho do robô.

Quando a barreira do confinamento é uma cerca, pelos requisitos da norma EN ISO


13857, o ET do robô não pode alcançar uma distância inferior a 5 vezes a dimensão da
malha. Por exemplo, uma cerca com 40 x 40 mm de malha, a distância de segurança é
de 200 mm.

11 PROGRAMAÇÃO DOS ROBÔS DO LABCIM ULBRA

O LabCim Ulbra é atualmente composto de seis estações de trabalho, originalmente


eram oito estações, porém, duas foram retiradas devido a não serem utilizadas na
aprendizagem da robótica.

Essas estações são:

1. Almoxarifado (ASRS);

2. Montagem (retirada);

3. Usinagem com torno CNC (Lathe);

4. Usinagem com fresa CNC (Mill);


33
5. Soldagem (Welding);

6. Inspeção 3D (retirada);

7. Impressão Laser (Laser);

8. Montagem e Inspeção Visual (Assembly).

Além das oito estações operacionais, existem a estação de controle de logística


(transporte) e o gerenciamento do processo (manager). Esta última conta com um
sistema de controle da produção do tipo ERP (Enterprise Resource Planning). Assim, a
Célula Integrada de Manufatura, ou LabCim Ulbra, é o que se chama de SPMI –
Sistema de Produtivo de Manufatura Integrada.

11.1 Linguagem de Programação ACL

A ACL – Advanced Control Language é uma linguagem descritiva / textual utilizada para
programação exclusivamente dos robôs fabricados pela Intelitek. É comum cada
fabricante implementar sua linguagem de programação proprietária para seus robôs,
ou seja, linguagens exclusivas.

Mesmo sendo uma linguagem proprietária, a ACL é muito parecida com a linguagem
Basic, que é extremamente difundida na informática. Outros fabricantes também
utilizam linguagens parecidas com outras já consagradas, como C, Pascal ou o Basic.

Passando diretamente para a linguagem ACL, na sequência se verá um breve apanhado


dos principais códigos para a programação e operação do robô. Esses códigos serão
subdivididos em comandos (para operação) e instruções (para programação).

11.2 Comandos ACL

A (Abort)
A <enter> Aborta os programas em execução e desabilita os eixos do Robô;
A {nome do prog} <enter> Aborta o andamento do programa especificado.
Attach
Attach {vetor} <enter> Conecta o vetor ao teach-pendant.
Auto
Auto <enter> Informa ao controlador que o robô está em automático.
Coff / Con
Coff <enter> / Con <enter> Desliga/Liga todas as juntas;
Coff n <enter> / Con n <enter> Desliga/Liga a junta de número n.

34
Delp
Delp {vetor[posição]} <enter> Apaga uma posição do vetor;
Delp {vetor} <enter> Apaga o vetor;
Dimp
Dimp {vetor[n]} <enter> Define um vetor com n posições.
Here
Define a posição n do vetor. o vetor deve estar previamente
Here {vetor[n]} <enter>
declarado com Dimp.
Home
Roda o programa que dirige todos os eixos/juntas para as posições
Run Homes <enter>
de referência.
List
List {programa} <enter> Lista todas as linhas do programa.
Listvar
Llistvar <enter> Mostra todas as variáveis gravadas no controlador.
Remove
Remove {programa} <enter> Remove o programa indicado.
Run
Run {programa} <enter> Inicia a execução do programa indicado.
Set
Set {variável} = 0/1 <enter> Atribui o valor 0 (false) ou 1 (true) para a variável.
Show
Show DIN <enter> Mostra o status das entradas digitais (DIN) do controlador.
Show DOUT <enter> Mostra o status das saídas digitais (DOUT) do controlador.
Mostra o status dos encoders a cada 500 ms. Para de mostrar
Show ENCO <enter>
quando pressionado <ctrl+c>.
Stop
Stop {programa} <enter> Para o programa em andamento.

11.3 Instruções ACL

Close
Close Fecha a garra.
Define
Define {variável} Define uma variável local.
Delay
Delay {valor} Atrasa a execução do programa por um valor*10ms. Ex.: 100 = 1s.
Dim
Dim {var[n]} Declara uma variável de n posições. Obs.: não é um vetor.
End
End Deve ser a última linha do programa. É escrito automaticamente.
35
For / Endfor
For J=0 to 5 Laço For. A última linha do laço deve ser o Endfor.
Set out[J]=1 No exemplo: o laço aciona as saídas digitais 0, 1, 2, 3, 4 e 5 do
Endfor controlador.
Getcom
Recebe um byte pela porta serial RS232 número n e armazena na
Getcom {n} {variável}
variável indicada.
Gosub
Gosub {programa} Envia o processamento para a subrotina/programa indicado.
Goto / Label
Goto {labeln} Goto: Pula o processamento para a linha labeln (0 à 9999).
Label {labeln} Label: indica onde a linha labeln está.
If / Andif / Else / Endif
If A=B
Close Laço If. A última linha do laço deve ser o Endif.
Else No exemplo: se A for igual a B, fecha a garra; se não for, abre a
Open garra.
Endif
Move / Moved
Move {posição} {tempo} Move o robô para a posição especificada. O tempo é opcional
(*10ms). O move não aguarda a operação ser completada.
O moved atua como o move, porém aguarda a operação ser
Moved {posição} {tempo} completada.
Movecd / Moveld
Movecd {posição1} {posição2} Movecd, move o robô da posição atual para posição 1, passando
pela posição 2, em uma trajetória circular. Até o fim do curso.
Movecd, move o robô da posição atual para 1 ao longo de uma
Moveld {posição1} {tempo}
trajetória linear. Até o fim do curso.
Open
Open Abre a garra.
Print
Print {argumento} Mostra valores de variáveis e strings na tela. Strings entre aspas “ ”.
Println
Println {argumento} Igual ao print, mas pula a linha antes de escrever.
Program
Program {nome} Declara o nome do programa.
Set
Set {variável} = 0 / 1 Seta a variável indicada em 0 (false) ou 1 (true).
Speed
Speed {valor} Seta o valor da velocidade atual, em %.
Wait
A execução do programa é suspensa até que a condição
Wait {variável1} {condição} {variável2}
especificada seja verdadeira.

36
11.4 O programa em ACL

O programa em ACL pode ser digitado diretamente no software “Advanced Terminal”


ou digitado em um editor txt, tipo bloco de notas do Windows.

Uma vez digitado o programa, deve-se salvar com a extensão dnl, por exemplo:
nome.dnl. Quando for “salvar como” observe a barra tipo na parte inferior e selecione
“todos os arquivos”.

Como exemplo, vamos fazer um programa básico de pick-and-place, ou seja, de


deslocamento.

Dimp robot1[20] Declara o vetor robot1 com 20 posições

Program prog01 O nome do programa será prog01


speed 20 Velocidade 20%
open
Abre a garra
moved robot1[1]
Move o robô para o ponto 1
moved robot1[2]
speed 5
moved robot1[3]
close Fecha a garra
println "Peça adquirida!" Informa que pegou a peça
delay 100 Aguarda 1 segundo (100x10ms)
speed 20
moved robot1[1]
moved robot1[4]
moved robot1[5]
speed 5
moved robot1[6]
open
println "Peça entregue!"
delay 100
speed 20
moved robot1[4]
End

O próximo passo é fazer o download para o controlador do robô. Para tal deve-se abrir
o software “download”.

11.5 Estabelecimento das posições do robô (aprendizado)

As posições do robô, ou seja os pontos críticos de operação, no método de


aprendizagem por telecomando são determinadas com o uso do teach-pendant.

O teach pendant dos robôs do LabCim tem a interface conforme a figura

37
Botão de
Seletor
Emergência
manual/automático
Botão Botões de seleção de:
Deadman Juntas (1, 2, 3, 4 e 5);
Eixos (1-X, 2-Y, 3-Z)
Movimento de
Botões de incremento
Juntas / Eixos
e decremento
Comando RUN Botão grava
Comando posição do robô
habilita juntas Botão confirma/
Abre/Fecha executa
Garra

Ajusta a
velocidade
do robô
Figura 26 – Teach Pendant.

Antes de gravar os pontos no robô, é necessário anexar o vetor declarado ao teach


pendant.

Baseado no exemplo de programa anterior deve-se digitar: Attach robot1 <enter>.


Dessa forma o teach pendant reconhecerá que todo ponto do robô gravado na
sequencia será do vetor robot1.

Feito o attach, o teach pendant deve ser passado para “teach” através do seletor
manual/automático. Para que haja o movimento, devido as necessidades de segurança,
o botão “deadman” deve ser pressionado até a metade de seu curso. Caso não
seja pressionado, ou seja, pressionado até o final do curso, a emergência será
acionado. Isto é padrão em teach pendant, para que o operador nunca esqueça que
está em uma zona de alto risco perto do robô e se ocorrer um acidente o robô seja
desligado imediatamente.

Na sequencia, o botão “control on/off” deve ser pressionado para habilitar a


movimentação das juntas. E o robô está habilitado a ser movimentado.

Deve-se escolher um dos dois tipos de movimento disponíveis no robô do Lab:

38
• Joints (por juntas) - os movimentos ocorrem de junta a junta. Pressionado: [1]
junta 1, [2] junta 2, [3] junta 3, [4] junta 4 e [5] junta 5. A junta 6 não existe
nos robôs do Lab. Quando o robô possui esteira, está é a junta 7, portanto para
movimentar o robô sobre ela a seleção é pelo botão [7].

• XYZ (por eixos) – os movimentos ocorrem sob os eixos cartesianos. Pressionado:


[1] eixo X, [2] eixo Y, [3] eixo Z.

A movimentação se dá através dos botões de incremento [+] e decremento [-]. E os


tipos de movimento podem ser alterados a qualquer momento durante o
posicionamento ou programação do robô.

Estando o robô na posição desejada, pressiona-se [Record Position], o teach pendant


informará no viso o vetor em que a posição será gravada, deve-se inserir o número
dessa posição e pressionar [Enter / Execute].

Pronto a posição estará gravada no controlador. Esses passos devem ser repetidos para
a gravação de todas as demais posições requeridas no programa do usuário.

Concluídos os passos de gravação das posições o teach pendant deve ser passado para
a posição automático.

No computador, através do software terminal ACL, escrever:

Auto <enter>
con <enter>
Run {nome do programa} <enter>

E o programa irá ser executado.

39
12 Exercícios

1) Faça um programa para que o Robô execute a seguinte tarefa:

• De uma pilha de 4 peças de acrílico (A), o robô deve pegá-las uma a uma e
empilhar novamente ao lado (pilha B). Ao final do trabalho o robô para e a
saída out_8 é acionada.
• Deverão existir sensores indicando que há peças na pilha A para o trabalho
iniciar. Feita a pilha B, quando o material for retirado e havendo mais material
na pilha A, o processo recomeça automaticamente.

Pilha A Pilha B

Pilha A Pilha B

2) Faça um programa para que o Robô execute a seguinte tarefa:

• Coloque e retire peças do torno CNC com o robô Scorbot da estação 3. Os


passos são:
• Pegar o template da esteira e coloque no desacoplador;
• Abra a porta e as castanhas do CNC;
• Retire a peça do template e coloque-a no torno CNC;
• Feche a castanha do CNC e retire o robô;
• Feche a porta do CNC;
• Aguarde 5 segundos e proceda a retirada da peça, abra porta, posicione o
robô,
• abra a castanha e retire a peça;
• Recoloque a peça no template e este no palet da esteira.

40
13 REFERÊNCIAS BIBLIOGRÁFICAS

CRAIG, John J.. Robótica. 3ª Edição. São Paulo: Pearson Education do Brasil, 2012.

ROSÁRIO, João Maurício. Princípios de Mecatrônica. São Paulo: Pearson Prentice Hall,
2005.

GROOVER, Mikell. Automação Industrial e Sistemas de Manufatura. 3ª Edição. São


Paulo: Pearson Prentice Hall, 2011.

ABB. Limiting devices for industrial robot cells. Disponível em


www.abb.com/jokabsafety. Acessado em junho/2016.

SANTOS, Vítor M. F. Apostila de Robótica. Departamento de Engenharia Mecânica -


Universidade de Aveiro –Portugal, 2003-2004.

AGUIRRE, Luis Antônio, et al. Enciclopédia de Automática: controle e automação.


Volume III. 1ª Ed. São Paulo: Blucher, 2007.

41

Você também pode gostar