Escolar Documentos
Profissional Documentos
Cultura Documentos
d1
..
dn Transformação X,Y,Z
θ1 Direta U,V,W
..
θn ψ, θ, φ
29
9 PROGRAMAÇÃO DE ROBÔS
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ô.
Figura 23 - Teach-Pendant.
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:
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:
2 – Robô;
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.
1. Almoxarifado (ASRS);
2. Montagem (retirada);
6. Inspeção 3D (retirada);
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.
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.
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
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”.
O próximo passo é fazer o download para o controlador do robô. Para tal deve-se abrir
o software “download”.
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.
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.
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].
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.
Auto <enter>
con <enter>
Run {nome do programa} <enter>
39
12 Exercícios
• 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
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.
41