• Nenhum resultado encontrado

AULA 5 - Programação

N/A
N/A
Protected

Academic year: 2021

Share "AULA 5 - Programação"

Copied!
113
0
0

Texto

(1)

Programação dos Manipuladores

Docente: Talitha Ferreira

Tecnóloga em Mecatrônica Industrial

Curso Técnico em Mecatrônica

SENAI – CIMATEC

(2)

Os 3 níveis de programação

• Existem 3 maneiras diferentes de se

programar um manipulador:

– Teach by Showing

– Linguagens de programação explicitas – Linguagens em nível de tarefa

(3)

Teach by Showing

• Inicialmente os robôs eram programados por

um método que envolve:

– Levar o robô as posições desejada, uma a uma; – Gravar cada posição na memória e

– Usar um sequenciador para repetir as posições, na mesma ordem que foi mostrada.

(4)

Teach by Showing: Teaching Pendant

• Como levar o robô à posição desejada?

• O robô é controlado para chegar na posição

desejada utilizando um Teaching Pendant, ou

Teaching Box:

– Controles remotos que permitem movimentar o robô e salvar os pontos de controle.

(5)

Exemplo

de

Teaching

Box

(6)

Exemplo de

Teaching Box -

(7)
(8)

Teaching Boxes

• Teaching boxes geralmente possuem:

– Botões que permitem o controle individual de cada junta do robô;

– Botões que permitem realizar movimentações em cada grau de liberdade do mundo cartesiano (x,y,z);

– Alguns controladores possuem habilidades de programação.

(9)
(10)

Exemplo de Teaching Pendant

https://www.youtube.com/watch?v=MueFQdr

QD4M

(11)

Concluindo TbS

• Programar robôs “na marra” usando o

teaching box ainda é muito usado:

– Para programar robôs isolados;

– Para programar tarefas muito simples (pois não vale a pena fazer uma programação para elas);

• O Teaching box é muito usado, mas

geralmente para corrigir pequenos desvios na

programação.

(12)

Linguagens de Programação para

Robôs Manipuladores

(13)

Linguagens de Programação para

Robôs (RPLs)

• A partir dos anos 90 a tendência tem sido a

programação de robôs através de programas

escritos em linguagens de programação

específicas:

– Motivado pelo baixo custo dos computadores. – Estas linguagens são chamadas de

(14)

Requisitos de uma linguagem de

programação robótica

• Modelagem do mundo :

– Os programas de manipulação devem, por

definição, incluir objetos que se movimentam no espaço tridimensional e, portanto, é claro que qualquer linguagem de programação de robôs precisa de um meio para descrever essas ações. – O elemento mais comum das linguagens de

programação robótica é a existência de tipos

(15)

Requisitos de uma linguagem de

programação robótica

• Especificação de movimento :

– Uma função muito básica de uma linguagem de programação robótica é permitir a descrição dos movimentos desejados do robô.

– Com o uso de expressões de movimento na linguagem, o usuário faz a interface com planejadores de trajetória.

– As expressões de movimento permitem ao usuário especificar pontos de passagem, o ponto meta e a escolha entre usar o

movimento por interpolação de juntas ou o cartesiano em linha reta.

– Além disso, o usuário pode ter o controle sobre a velocidade ou duração de um movimento .

(16)

Requisitos de uma linguagem de

programação robótica

• Fluxo de execução :

– Como nas linguagens de programação de

computador mais convencionais, um sistema de programação robótica permite ao usuário

especificar o fluxo de execução

• Conceitos tais como teste e ramificação, laços,

chamadas de sub-rotinas e mesmo interrupções são encontradas nas linguagens de programação robótica.

(17)

Requisitos de uma linguagem de

programação robótica

• Fluxo de execução :

– Mais do que em muitas aplicações para

computadores, o processamento paralelo é

importante nas aplicações de células de trabalho automatizadas.

– Portanto, primitivas de sinal e espera são muito encontrados nas linguagens de programação robótica que, por vezes, apresentam construtos de execução paralela mais sofisticados.

(18)

Requisitos de uma linguagem de

programação robótica

• Ambiente de programação:

– A programação de manipuladores é difícil e tende a ser bastante interativa com muitas tentativas e erros.

• Se o usuário fosse forçado a repetir continuamente o ciclo de “editar-compilar-executar” das linguagens compiladas, a

produtividade seria baixa.

– Portanto, a maioria das linguagens de programação é hoje

interpretada, de forma que expressões individuais de

linguagem podem ser executadas isoladamente durante o desenvolvimento do programa e a depuração.

(19)

Requisitos de uma linguagem de

programação robótica

• Integração de sensores :

– Uma parte de extrema importância da

programação de robôs está relacionada à interação com os sensores.

– O sistema deve ter meios de questionar os

sensores e de usar as respostas em construtos do tipo if-then-else.

– A capacidade de especificar monitores de eventos para observar transições nesses sensores em

(20)

Tipos de Linguagens RPL

• Linguagens de programação de robô

assumiram muitas formas também:

– Linguagens especializadas para manipuladores – Bibliotecas especializadas, para linguagens de

programação existentes

– Bibliotecas atreladas a novas linguagens de programação. (Não descuto aqui)

(21)

Linguagens especializadas

• Linguagens completamente novas,

desenvolvidas especificamente para abordar

problemas específicos dos manipuladores.

• Podem ou não ser consideradas uma

linguagem de programação de computador

geral.

• Exemplo: VAL desenvolvida pela Unimation,

Inc 3.

(22)

VAL

• VAL foi desenvolvida especialmente como

uma linguagem de controle de

manipuladores.

• Inicialmente era bastante fraca:

– Não possuia ponto flutuante ou cadeias de caracteres e sub-rotinas não poderiam passar argumentos.

• Versões mais recentes oferecem estes

recursos: VAL III e V+.

(23)
(24)

Programa exemplo genérico: Pick and Place

Defina os pontos: P1: Safely above workpiece P2: 10 cm above bin A P3: At position to

take part from bin A P4: 10 cm Above bin B P5: At position to

take part from bin B.

Defina o programa: Move to P1 Move to P2 Move to P3 Close gripper Move to P2 Move to P4 Move to P5 Open gripper Move to P4

(25)

Programa em VAL

PROGRAM PICKPLACE 1. MOVE P1 2. MOVE P2 3. MOVE P3 4. CLOSEI 0.00 5. MOVE P4 6. MOVE P5 7. OPENI 0.00 8. MOVE P1 .END

(26)

Outras RPLs

• Existem dezenas de RLPs:

– VAL, VAL II, VAL III, V+, da Unimation e Adept e Staubli – RAPID, da ABB

– KRL, da KUKA

– Karol e TP, da FANUC

– INFORM, da Motoman Yaskawa. – MBA4, Mitsubishi

(27)

RAPID, da ABB

• Talvez a mais utilizada RPL. Possui:

– meios para definir constantes, variáveis e outros objetos de dados.

– comandos para o movimentação, ferramenta e manipulação de E/S e modo de monitoramento.

– aritmética e operadores de lógica e uma estrutura de controle de programas.

– também pode se comunicar com um PC externo e via interface serial.

(28)

RAPID (do manual…)

• The movements of a robot are programmed as pose-to-pose movements.

• The basic motion characteristic must be defined before motion can start. This contains position data (end position and external axes), speed data, zone data, tool data and work-object data.

• The user can also define maximum velocity, acceleration, management of different robot configurations, payload, behaviour close to singular points and so on.

(29)

RAPID (do manual.….)

• Possui diversos tipos de comando: – If, then, else

– Repeat, for, while,

– There are for example 10 different move commands availabe.

• An example of command is

– MoveL ToPoint := [940,0,1465,0.707,0,0.707,0], Speed := v50, Zone := z50, Tool := gripper1

(30)

RAPID (do manual….)

Motion RAPID Summary

3-12 Overview

5.2 Positioning instructions

Instruction Type of movement:

MoveC TCP moves along a circular path MoveJ Joint movement

MoveL TCP moves along a linear path MoveAbsJ Absolute joint movement

MoveCDO Moves the robot circularly and sets a digital output in the middle of the corner path.

MoveJDO Moves the robot by joint movement and sets a digital output in the middle of the corner path.

MoveLDO Moves the robot linearly and sets a digital output in the middle of the corner path.

MoveCSync1 Moves the robot circularly and executes a RAPID procedure MoveJSync1 Moves the robot by joint movement and executes a RAPID

procedure

MoveLSync1 Moves the robot linearly and executes a RAPID procedure

1. Only if the robot is equipped with the option “Advanced Functions”.

5.3 Searching

During the movement, the robot can sear ch for the position of a work object, for example. The searched position (indicated by a sensor signal) is stored and can be used later to position the robot or to calculate a program displacement.

Instruction Type of movement:

SearchC TCP along a circular path SearchL TCP along a linear path

5.4 Activating outputs or interrupts at specific positions

Normally, logical instructions are executed in the transition from one positioning instruction to another. If, however, special motion instructions are used, these can be executed instead when the robot is at a specific position.

Instruction Used to:

TriggIO1 Define a trigg condition to set an output at a given position TriggInt1 Define a trigg condition to execute a trap routine at a given

position

(31)
(32)
(33)
(34)
(35)
(36)

Conclusão de RLPs

• Um programa consiste de:

– Vá com velocidade máxima até um ponto proximo ao destino (pnto de aproximação);

– Diminua a velocidade e chege ao destino; – Faça a tarefa;

– Afaste-se até um ponto próximo em velocidade reduzida;

(37)
(38)

Bibliotecas Especializadas

• Diversas bibliotecas de programação de robôs

foram desenvolvidas implementando funções

específicas para manipulação.

• O usuário utiliza uma linguagem (C, por

exemplo), e chama funções da biblioteca para

realizar as tarefas.

(39)

ARCL – Advanced Control Robot

Library

• Do mesmo autor do Matlab Robotics Toolkit.

• Bibliotecas para Linguagem C com funcões

similares as criadas para o Matlab.

(40)

ARCL

• Possui funções para:

– Definir robôs

– Definir posições no espaço 3D

– Mover o robô, com planejamento de trajetória – Sincronizar diversos robôs

(41)
(42)
(43)
(44)

Outras Bibliotecas

• RCCL, de Richard Paul (predecessora da ARCL)

• The Robotics Toolbox for Python, by Peter

Corke de novo.

• CLARAty, da NASA

• OROCOS Project, U. Louven

• ROS Industrial ****

(45)

Problemas das Linguagens de

Programação

• Modelo de mundo interno versus realidade

externa:

– Uma característica central dos sistemas de programação de robôs é o modelo de mundo mantido internamente no

computador.

– Mesmo quando esse modelo é bastante simples, há amplas

dificuldades para garantir que ele corresponda à realidade física que está tentando modelar.

– Discrepâncias entre o modelo interno e a realidade externa

resultam em falha ou ineficiência para pegar objetos, colisões e uma série de outros problemas sutis.

(46)

Problemas das Linguagens de

Programação

• Sensibilidade ao contexto:

– Um código que funciona de forma confiável

quando é testado isoladamente, costuma falhar quando é colocado no contexto do programa mais amplo.

– Esses problemas surgem em geral das

dependências de configuração do manipulador e da velocidade dos movimentos.

(47)

Problemas das Linguagens de

Programação

• Recuperação de erro:

– Outra consequência direta de trabalhar com o mundo

físico é a de que os objetos talvez não estejam exatamente onde deveriam e, portanto, os movimentos que lidam com eles podem falhar.

– Parte da programação do manipulador implica tentar

considerar isso e tornar as operações de montagem o mais robustas possível, mas, mesmo assim é provável que os erros corram e uma parte importante da programação do manipulador é como se recuperar desses erros.

(48)
(49)

Off-Line Programming

• Definimos um sistema programação off-line

(OLP) como uma linguagem de pro-gramming

do robô que foi suficientemente extendida,

geralmente por meio de computação gráfica,

de modo que o desenvolvimento de

programas podem ocorrer sem o acesso ao

robô propriamente dito.

(50)

Off-Line Programming

• Sistemas de programação off-line são

importantes tanto como auxiliares na

programação de automação industrial, bem

como plataformas para a pesquisa em

robótica.

• Problemas centrais:

– Interface com o usuário – Modelagem 3D

(51)

Principais aspectos dos OLP

• Interface do usuário:

– Uma grande motivação para o desenvolvimento de um sistema OLP é criar um ambiente que torna mais fácil a programação de manipuladores, de

forma que a interface é de fundamental importância.

– Outra grande motivação é eliminar a dependência de uso do equipamento físico durante a

(52)

Principais aspectos dos OLP

• Modelagem 3-D :

– Um elemento fundamental nos sistemas OLP é o uso de modelos gráficos do robô simulado e sua célula de trabalho.

• Isso requer que o robô e todos os equipamentos, peças e ferramentas da célula de trabalho sejam modelados como objetos tridimensionais.

(53)

Principais aspectos dos OLP

• Modelagem 3-D :

– Para acelerar o desenvolvimento do programa, é proveitoso usar todos os modelos CAD de peças ou ferramentas que estejam diretamente

disponíveis a partir do sistema CAD no qual o projeto original foi feito.

(54)

Principais aspectos dos OLP

• Modelagem 3-D :

– Uma utilização importante da geometria tridimensional dos modelos de objeto é na

detecção automática de colisão — ou seja,

quando alguma colisão ocorre entre objetos no ambiente simulado, o sistema OLP deve

automaticamente alertar o usuário e indicar com exatidão onde ela acontece.

(55)

Principais aspectos dos OLP

• Emulação cinemática :

– Um componente fundamental na manutenção da validade do mundo simulado é a emulação fiel dos aspectos geométricos de cada manipulador

simulado. – Problemas:

• Cinemática inversa e direta • Geração de trajetória

(56)

OLP mais conhecidos

• Robcad – talvez o mais famoso de todos.

• Workspace – antigo e com versões livres

• Wincaps da DENSO

• ROS

• …

• E outros não só para robos, como para a

montagem da planta toda (CIM)

(57)
(58)
(59)
(60)
(61)

Computer-integrated manufacturing

• Digital manufacturing and simulation

solutions.

• São soluções completas para a automação de

toda a linha de montagem.

• Exemplos:

– Delmia + Catia da Dassault

(62)
(63)

Ver Workspace

• Ver videos  • Ver Workspace

(64)
(65)

Conclusão

• Linguagens de programação eficientes são um

dos pre-requisitos para um bom sistema

robótico.

• Todas são parecidas em sintaxe, iguais em

semântica.

• OLPs são onde se programa o robô, para

testes reais somente usado para ajustes.

(66)

Conclusão

• Maneiras de programar um robô estão

mudando:

– Mais interativas, mais inteligentes…

– Rodney brooks new robot, Rethink Robotics Baxter.

(67)
(68)
(69)

Robô ABB – IRB 6400

Manipulador:

Modelo do Robô Faixa de movimento

Eixo 1 Eixo 2 Eixo 3 Eixo 4 Eixo 5 Eixo 6

IRB 2400 + 180º - 180º + 110º - 100º + 65º - 60º + 185º - 185º + 115º - 115º + 400º - 400º

IRB 6400R + 180º - 180º + 85º - 70º + 100º - 28º + 300º - 300º + 120º - 120º + 300º - 300º

(70)
(71)

Movimento linear no sistema da base

Movimento linear no sistema da ferramenta

(72)
(73)

Características

Fonte: http://www.youtube.com/watch?v=ZfYzsj5xILs Movimento - Linear; - Reorientação da Ferramenta; - Eixo-a-eixo.

(74)
(75)
(76)
(77)
(78)
(79)
(80)
(81)

Instruções de Movimentação

• Os movimentos do robô são programados “passo a passo”, isto é, “mova-se a partir da posição atual para a nova posição”.

• A trajetória entre estas duas posições é então calculada automaticamente pelo robô.

• As características básicas dos movimentos, tais como o tipo da trajetória, são especificadas pela escolha da instrução de posicionamento apropriada.

• As características restantes são especificadas pela definição de dados que são argumentos da instrução:

 Dados de posicionamento (posição final para eixos externos e do robô);  Dados de velocidade (velocidade desejada);

 Dados de zona (precisão do posicionamento);

 Dados de ferramenta (por exemplo, a posição do TCP);

(82)

Instruções de Movimentação

P0 P1 MoveC Ponto2 Ponto3 P. de Aproximação

(83)

• MoveJ é usado para mover o robô rapidamente de um ponto a outro quando o movimento não tem que ser em linha reta.

• O robô e eixos externos movem-se ao ponto de destino ao longo de uma trajetória não linear. Todos os eixos alcançam o ponto de destino ao mesmo tempo.

Exemplo: MoveJ p1, vmax, z30, tool2;

O ponto central da ferramenta (TCP) da ferramenta,

tool2, é movido ao longo de uma trajetória não linear para a posição, p1, com dado de velocidade vmax e dado de zona z30.

(84)

• MoveL é usado para mover o ponto central da ferramenta (TCP) linearmente para um dado destino. Quando o TCP tiver de permanecer estacionário, esta instrução pode também ser usada para reorientar a ferramenta.

Exemplo: MoveL p1, v1000, z30, tool2;

O TCP da ferramenta, tool2, é movido linearmente para a posição p1, com dado de velocidade v1000 e dado de zona z30.

(85)

• MoveC é usado para mover o ponto central da ferramenta (TCP) circularmente para um certo destino. Durante o movimento, a orientação normalmente permanece relativo ao círculo.

Exemplo: MoveC p1, p2, v500, z30, tool2;

O TCP da ferramenta, tool2, é movida circularmente para a posição p2, com dado de velocidade v500 e dado de zona z30. O círculo é definido pela posição de início, o ponto do círculo p1 e o ponto de destino p2.

(86)
(87)

Exercício

Programar em ABB Rapid através de instruções de movimentação a figura ao lado.

Passo 1: Determinar os pontos.

Passo 2: Determinar os movimentos; Paso 3: Escrever as linhas do programa.

(88)

Exercício

(89)

Instruções de Comunicação

Existem quatro maneiras possíveis de comunicação por meio de canais seriais:

 Mensagens podem ser mostradas através do display da unidade de programação e o usuário pode responder perguntas, tais como o número de peças a serem processadas.

 Informações baseadas em caracteres podem ser escritas ou lidas a partir de arquivos de texto em um disquete. Deste modo, por exemplo, a estatística de produção pode ser armazenada e processada posteriormente em um PC. A informação também pode ser impressa através de uma impressora conectada ao robô.

 Informações binárias podem ser transferidas entre o robô e um sensor, por exemplo.

 Informações binárias podem ser transferidas entre o robô e um sensor, por exemplo, com um protocolo.

(90)

Instruções de Comunicação

• A decisão de escolher entre usar a informação baseada em caracteres ou a informação binária depende de como o equipamento com o qual o robô se comunica trata a informação.

• Um arquivo, por exemplo, pode possuir dados que são armazenados de forma binária ou baseado em caracteres.

• Se a comunicação for necessária em ambas as direções simultaneamente, a transmissão binária será necessária.

• Cada canal serial ou arquivo deve primeiramente ser aberto. Fazendo-se isso, o canal/arquivo recebe um nome que é usado como uma referência para leitura/escrita.

• A unidade de programação pode ser usada todas as vezes e não precisa ser aberta. • Ambos texto e valores de certos tipos de dados podem ser impressos.

(91)
(92)
(93)
(94)
(95)
(96)

Exercício

Fonte: http://www.youtube.com/watch?v=C18yf6irv0w

(97)

Exercício

(98)

Exercício

(99)

Exercício

(100)

Várias Instruções

Várias instruções são usadas para

• atribuir valores aos dados,

• esperar um certo período de tempo até que uma condição ser satisfeita,

(101)

WaitUntil (Espera uma condição ser satisfeita )

WaitUntil é usado para esperar até que uma condição lógica seja satisfeita; por exemplo, pode esperar até que uma ou mais entradas sejam ligadas.

Exemplo

WaitUntil di4 = 1;

(102)

WaitDI (Espera um sinal de entrada digital)

WaitDI (Wait Digital Input) é usado para esperar até que um sinal de entrada digital seja ligado.

Exemplo

WaitDI di4, 1;

(A execução do programa continua somente após a entrada di4 ser ligada.)

WaitDI grip_status, 0;

(103)

WaitDO (Espera até que um sinal de saída digital seja ligado)

WaitDO (Wait Digital Output) é usado para esperar até que um sinal de saída digital seja ligado.

Exemplo

WaitDO do4, 1;

(A execução do programa continua somente após a entrada do4 ser ligada.)

WaitDO grip_status, 0;

(104)

Comment

Comment é usado somente para tornar o programa mais fácil de entender. Não tem efeito na execução do programa.

Exemplo:

! Vai para a posição acima do palete MoveL p100, v500, z20, tool1;

(É inserido um comentário no programa para torná-lo mais fácil de entender.)

(105)

SINAIS DE ENTRADA E SAÍDA

O robô pode ser equipado com um número de sinais digitais e analógicos do usuário que podem ser lidos e mudados a partir do programa.

Princípios de programação

Os nomes dos sinais são definidos nos parâmetros do sistema e, usando estes nomes, eles podem ser lidos pelo programa. Os valores simbólicos para sinais digitais também são definidos nos parâmetros do sistema. Valores simbólicos, como ligado/desligado ou aberto/fechado, podem ser usados em vez de 1/0 para tornar o programa mais fácil de ler. O valor de um sinal analógico ou de um grupo de sinais digitais é especificado por um valor numérico.

(106)

Set

(Liga um sinal de saída digital ligado )

Set é usado para levar o valor de um sinal digital para um.

Exemplos:

Set do15;

(O sinal do15 é levado para 1.)

Set weldon;

(107)

Reset

(Desliga um sinal de saída digital ligado )

Reset é usado para levar o valor de um sinal digital para zero.

Exemplos:

Reset do15;

(O sinal do15 é levado para 0.)

Reset weld;

(108)

TPReadNum

(Lê um número da unidade de programação )

TPReadNum (Teach Pendant Read Numerical) é usado para ler um número da unidade de programação.

Exemplo

TPReadNum reg1, “Quantas unidades devem ser produzidas?“;

(O texto “Quantas unidades devem ser produzidas? ” é escrito no display da unidade de programação. A execução do programa espera até que um número seja informado pelo teclado numérico da unidade de programação. Aquele número é guardado em reg1.)

(109)

While

( Repetir enquanto...)

WHILE é usado quando um número de instruções devem ser repetidas enquanto uma condição é satisfeita.

Se for possível determinar previamente o número de repetições, a instrução FOR pode ser usada.

Exemplo :

WHILE reg1 < reg2 DO ...

reg1 := reg1 +1; ENDWHILE

(110)

FOR

(Repete por um certo número de vezes)

FOR é usado quando uma ou várias instruções são repetidas um número de vezes.

Se as instruções são repetidas contanto que uma dada condição é encontrada, a instrução WHILE é usada.

Exemplos: FOR i FROM 1 TO 10 DO routine1; ENDFOR

(Repete a rotina 10 vezes. )

(111)

FOR

(Repete por um certo número de vezes)

FOR (identificador) FROM (valor inicial) TO (valor final) DO

(expressão ou listade instruções);

ENDFOR

-Identificador: o nome do dado que conterá o valor atual do contador; - Valor inicial: o valor inicial desejado do contador;

(112)

EXERCÍCIO: Fazer dois programas no ROBOT

STUDIO, utilizando WHILE e FOR.

Deve ser perguntado ao operador qual a forma geométrica ele quer entre o círculo, quadrado e triângulo, caso seja escolhido o triângulo perguntar quantas vezes deseja fazer o desenho.

(113)

Referências

Documentos relacionados

Súmula do STJ (“embargos de declaração com notório propósito de prequestionamento não têm caráter protelatório”) cuja finalidade foi, por via transversa, barrar o ingresso

Ao questionarmos os alunos de uma determinada série, seja de uma das séries finais do Ensino Fundamental ou do Ensino Médio, sempre ocorrem dúvidas sobre a

2 a 2 com bola, um de cada lado da rede, o aluna com bola coloca-se na linha dos três metros e lança a boa para cima da rede, o outro faz bloco,

O gráfico mostra as medidas das temperaturas (máxima e mínima) previstas para um mesmo dia do mês de novembro em duas capitais brasileiras: Porto Alegre e Salvador... Uma

No 40º aniversário da democracia portuguesa, a História – Revista da FLUP integra, assim, estudos sobre tópicos tão importantes como sejam o das crises dos sistemas autoritários à

[r]

O Conselho chegou a acordo quanto a uma orientação geral parcial sobre a proposta de regulamento relativo ao Fundo Europeu dos Assuntos Marítimos e da Pesca (FEAMP), que substitui

Como pontos fortes, destacam-se a existência de iniciativas já em- preendidas em torno da aprovação de um Código de classificação e uma Ta- bela de temporalidade e destinação