ROBÓTICA NOÇÕES DE PROGRAMAÇÃO. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

Documentos relacionados
ROBÓTICA CONCEITOS. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

ROBÓTICA PROGRAMAÇÃO DE ROBÔS

ROBÓTICA PLANEJAMENTO DE TRAJETÓRIAS. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

ROBÓTICA SISTEMAS DE REFERÊNCIA. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

Prof. Daniel Hasse. Robótica Industrial

COMPONENTES DE UM SISTEMA ROBÓTICO

Robótica. Acetatos de Apoio às Aulas. Programação de sistemas robóticos. Paulo Augusto Ferreira de Abreu. Elaborados por: (Professor Auxiliar)

ROBÓTICA CINEMÁTICA. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

A robótica abrange tecnologia de mecânica, eletrônica e computação. Alem disso, participam em menor grau teoria de controle, microeletrônica,

DEFINIÇÃO DE ROBÔ INDUSTRIAL

Robótica 3. Orientação (ângulos) Yaw (em torno de Z) Pitch (em torno de Y) Roll (em torno de X) EME006 - Automação Industrial Z X PUNHO ROLL PITCH Z X

1) Em relação a figura abaixo relativa a um sistema de controle em malha fechada responda:

MECATRÔNICA MANIPULADORES ROBÓTICOS

Manipulação Robótica. Aula 2

1- INTRODUÇÃO AOS ROBÔS INDUSTRIAIS

Algoritmos Estrutura Condicional

Introdução à Robótica Industrial. Aula 2

ROBÓTICA DENAVIT- HARTENBERG. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

Sistema de Controle Um sistema de controle é realizado por meio de hardware e software. Este sistema processa os sinais de entrada e converte estes

hardware software software computador microcontrolador hardware sensores sistema de controle de malha fechada.

1 ESCOLA POLITÉCNICA DA USP Aspectos Gerais Eduardo L. L. Cabral ESCOLA POLITÉCNICA DA USP

Programação I Estruturas de Repetição

Programação de Robôs Industriais

LINGUAGEM C: COMANDOS DE REPETIÇÃO

DEFINIÇÃO DE ROBÔ A palavra robô deriva-se da palavra eslava robota

Algoritmos. Prof. Jonatas Bastos Site:

ROBÓTICA REPRESENTAÇÕES MATRICIAIS. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

PROGRAMAÇÃO I. Introdução

Introdução à Programação. João Manuel R. S. Tavares

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Análise do problema. Desenvolvimento de programas. Desenvolvimento do algoritmo. Análise do problema

Robótica. Linguagens de Programação para Robótica (manipuladores)

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Elementos de Robótica

Estrutura e características gerais dos robôs. - Configuração básica de um robô - Articulações - Movimento e precisão

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

Programação Estruturada Aula - Introdução a Linguagem de Programação

3. Linguagem de Programação C

Desenvolvimento de programas

Introdução aos Algoritmos

Working 03 : Conceitos Básicos I

INF 1005 Programação I

Automação da Produção

CAPÍTULO Robôs industriais. 2. Classificação dos robôs. industriais. 3. Sensores. 4. Acionamento e controle de robôs

Introdução aos Algoritmos

Programação de Computadores

ROBÓTICA TRANSFORMAÇÕES MATRICIAIS. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

INFORMÁTICA: Informação automática

- Solução de problemas complexos de aquisição e processamento dos dados, viabilizando tecnicamente a medição;

Informática I. Aula 14. Aula 14-10/10/2007 1

Programação I A Linguagem C. Prof. Carlos Alberto

PDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol

Introdução Robôs Industriais

Robótica Industrial: Fundamentos, Tecnologias, Programação e Simulação

Introdução a Programação de Jogos

Capítulo 8. Estruturas de Controle no Nível de Sentença

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

CNC Comando Numérico Computadorizado

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

C.N.C. Programação Torno

ESTRUTURAS DE REPETIÇÃO

Robótica. Executores. Prof. Oswaldo Flório Filho Profª. Alice Flora Madeira Ribeiro Flório Prof. Wagner Toscano

Programação de Computadores:

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

Introdução à Programação

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

Disciplina: Robótica Aula 02: Conceitos Básicos

Algoritmos e Programação

ü Na década de 1920 os dispositivos mecânicos foram substituídos pelos relés; ü O uso da lógica de relés dificultava modificações do processo;

CONCEITOS DE ALGORITMOS

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Unidade 1 Introdução. 1.1 Robôs industriais

Introdução à Programação

7. A linguagem robcomm

16. Compilação no Linux

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

INTRODUÇÃO À PROGRAMAÇÃO. Introdução. Sérgio Carlos Portari Júnior

4 O conceito de variável

Algoritmos e Estruturas de Dados I

Introdução à Programação

Sistemas para Automação e

Programação I Apresentação

VETORES Motivação AULA 19

Estrutura e funcionamento básico de um computador

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Capítulo 1. Aspectos Preliminares

Automação da Produção

Fundamentos de Programação

Introdução ao Controlo Numérico Computorizado II Referenciais e Trajectórias. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

INTRODUÇÃO A ROBÓTICA. Prof. MSc. Luiz Carlos Branquinho Caixeta Ferreira

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015

Linguagens de Programação

Capítulo 2 ALGORITMOS E A RESOLUÇÃO DE PROBLEMAS 1. INTRODUÇÃO

Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação CLPs: Norma IEC 61131

Conhecendo a Linguagem de Programação C

Programação de Computadores III

Estrutura de decisão

Transcrição:

SP CAMPUS PIRACICABA ROBÓTICA Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial NOÇÕES DE PROGRAMAÇÃO https://giovanatangerino.wordpress.com giovanatangerino@ifsp.edu.br giovanatt@gmail.com

ALGORITMO Robô executará uma missão Mover, pegar, deslocar, etc Planejamento de trajetória Leitura de sensores Envio de comandos: Acionamento de atuadores, 2017-1

LINGUAGENS ROBÓTICAS Há, talvez, tantas linguagens robóticas quantos são os fabricantes de robôs. Cada fabricante projeta sua própria linguagem robótica. Muitas linguagens robóticas são baseadas em alguma outra linguagem comum, como: Cobol, Basic, C e Fortran. Outras linguagens são autônomas e não se relacionam com qualquer outra linguagem comum (NIKU, 2015)

NÍVEL DE CONTROLE DE PROGRAMAÇÃO Sistemas guiados: ensinar mostrando O operador indica os movimentos que o robô deve fazer O usuário guia o robô de forma manual ou através da interação com um dispositivo de ensino. Programação ao nível do robô O utilizador escreve um programa a especificas as sequências de movimentos que o robô terá de executar Linguagens de manipulação especializados (VAL, V-II, V +, AL de Stanford) Biblioteca robótica para uma linguagem de computação existente, (AR-BASIC da Americam Cimglex baseada em BASIC, JARS da NASA baseada em PASCAL) Biblioteca robótica para uma nova linguagem de propósito geral (RAPID da ABB Robotics, AML da IBM, KAREL da GMF Robotics). Programação ao nível da tarefa O programador especifica apenas as ações a tomar sobre os objetos que o robô manipulará O sistema deve ter a habilidade de realizar muitas tarefas de planejamento automaticamente. (CRAIG, 2006)D

MODOS DE PROGRAMAÇÃO A maioria dos robôs industriais pode ser programada em mais de um modo. Modo configuração física o operador configura chaves e paradas que controlam os movimentos do robô. Normalmente usado junto com outros dispositivos como CLPs Modo acompanhamento ou ensino As articulações do robô são movidas com um console de instruções. Quando a localização e orientação deseja é alcançada, o local é inserido (ensinado) no controlador Durante a reprodução, o controlador move as articulações para as mesmas localizações e orientações. Essa modalidade geralmente é ponto a ponto, como tal, o movimento entre os pontos não é especificado ou controlado. Somente os pontos que são ensinados são alcançados garantidamente. (NIKU, 2015)

MODOS DE PROGRAMAÇÃO Modo acompanhamento contínuo Todas as articulações do robô são movidas simultaneamente, enquanto o movimento é continuamente amostrado e gravado pelo controlador. Durante a reprodução, o movimento exato que foi gravado é executados. Os movimentos ensinados por um operador, seja por meio de um modelo, movendo fisicamente o atuador final, ou vestindo o braço do robô e deslocando-o por meio da sua área de trabalho. Modo Software Um programa é escrito off-line ou online, e é executado pelo controlador para controlar os movimentos É o modo mais sofisticado e versátil e pode incluir informação sensorial, instruções condicionais e ramificações. Requer um conhecimento prático de sintaxe de programação do robô, antes de qualquer programa escrito. (NIKU, 2015)

NÍVEIS DE LINGUAGENS ROBÓTICAS Nível microcomputador: Os programas são escritos em linguagem de máquina É o mais básico e é muito eficiente, mas é difícil de compreender e difícil para outros acompanharem. Todas as linguagens acabarão por ser interpretadas ou compiladas para este nível. Nível ponto a ponto: As coordenadas dos pontos são inseridas sequencialmente, e o robô segue os pontos, conforme especificado. Tipo muito primitivo e simples de programação, que é fácil de usar, mas não muito poderoso. Carece de desvios, de informação sensorial e de instruções condicionais. Ex.: Milacron T3 da Funky e Cincinnati. Nível primitivo de movimentação: É possível desenvolver programas mais sofisticados, incluindo informação sensorial, desvios e instruções condicionais. A maioria das linguagens neste nível são interpretadas. Ex.: VAL da Unimation, V + da Adept. (NIKU, 2015)

NÍVEIS DE LINGUAGENS ROBÓTICAS Nível Programação estruturada: A maioria das línguas neste nível são compiladas Poderosas e permitem uma programação mais sofisticadas, mas são mais difíceis de aprender. Nível Orientado a tarefa: Não existem linguagens reais neste nível ainda. Em vez de programar um robô para executar uma tarefa programando cada passo necessário para completa-la, o usuário deveria apenas mencionar a tarefa, enquanto o controlador criaria a sequência necessária. Ex.: Autopass, proposta pela IBM na dácada de 1980, nunca se materializou. (NIKU, 2015)

TIPOS DE EXECUÇÃO Linguagem interpretada Executam uma linha do programa por vez, sequencialmente. Vantagem: permite ao usuário executar e depurar o programa, parcela por parcela. Desvantagem: execução é mais lenta e não muito eficiente. Robôs com linguagem interpretada: Unimation, VAL, Adept V + e AML da IBM. Linguagem compilada Usam um compilador para traduzir todo o programa em linguagem de máquina antes de ser executado. Vantagens: muito rápidos e eficientes. Desvantagem: depuração de erros muito mais difícil. (NIKU, 2015)

REQUERIMENTOS DE UMA LINGUAGEM DE PROGRAMAÇÃO Modelagem do entorno movimentos de objetos no espaço tridimensional: Tipos geométricos, ângulos de articulação, posições cartesianas, orientações e sistemas de referência. Especificação do movimento planejadores de trajetória: especificar pontos de passagem, o ponto de destino e se vai ser utilizado um movimento interpolador das articulações ou em linha reta cartesiana, podendo ter controle sobre a velocidade e a duração de um movimento. Fluxo de execução ramificações, ciclos, chamadas de sub-rotinas, interrupções. Processamento paralelo: mais de um robô utilizando a mesma célula de trabalho simultaneamente Monitorar vários processos com algum tipo de sensor, responder a certos eventos detectados pelos sensores. Ambiente de programação Um bom ambiente de programação fomenta a produtividade do programador. A programação de manipuladores é difícil e tende a ser muito interativa, com muitos testes e erros. Integração de sensores O sistema deve ter, no mínimo, a capacidade de consultar sensores de tato e força. Alguns sensores podem ser parte de outro equipamento da célula. (NIKU, 2015)

CLASSIFICAÇÃO NÍVEL DE INTELIGÊNCIA Japanese Industrial Robot Association (JIRA) Classe 1: Dispositivo de movimentação manual Acionado por um operador Classe 2: Robô de sequência fixa Um dispositivo que executa as etapas sucessivas de uma tarefa de acordo com um determinado método, imutável, que é difícil de modificar Classe 3: Robô de sequência variável Mesmo que o classe 2, mas fácil de modificar Classe 4: Robô de reprodução (playback) Onde o operador humano guia manualmente o robô a executar uma tarefa fixa. O robô registra os movimentos e, em operações posteriores, reproduz os mesmos movimentos de acordo com as informações gravadas. Classe 5: Robô de controle numérico O operador fornece apenas o programa do movimento, em vez de o ensinar manualmente Classe 6: Robô inteligente Percebem e interagem com alterações no ambiente. (NIKU, 2015)

Exemplo: linguagem V +, robôs Adept Linguagem usada em robôs Adept, interpretado, permite desvios, comunicação sensorial de entrada e de saída, movimentos em linha reta, etc. O usuário pode definir uma distância altura ao longo do eixo z do atuador final, que pode ser usado com os comandos chamados APPRO (de aproximação) e DEPART para se aproximar ou se afastar de um objeto sem colisão. Um comando chamado MOVE permitirá ao robô se mover de sua posição atual para o próximo local especificado. No entanto, MOVES farão o mesmo em uma linha reta. (NIKU, 2015)

ROBÔ SCARA DA IBM Área de trabalho

LINGUAGEM AML da IBM Programação ao nível do robô Linguagem interpretada Linguagem orientada pra sub-rotinas. Simulador: IBM 7535 http://www.iem.unifei.edu.br/gorgulho/download/robo.html Comandos da linguagem AML:

Estrutura do programa Três tipos de comandos: Executáveis Declaração de variáveis Declaração de sub-rotinas Todos comandos terminam em ponto-e-vírgula (;)

Estrutura do programa Etapas: Escrever algoritmo: Editar Compilar Simular Para ligar deve-se acionar: Manip Power -> Return Home -> Auto -> Start Cycle Parar: Stop (para na linha do programa na qual se encontra) Stop Cycle : para no fim (end)

Exemplo 1: Movimentando a garra Down descer Grasp fechar Delay(1) tempo de espera em s Up subir Release soltar End fim -- Nome: Programa 1 -- Função: executar os movimentos da garra -- Observação: não há movimento do braço Programa1:Subr; Down; Grasp; Delay(1); Up; Release; Delay(1); End;

Exemplo 2: movimentando o braço PMove(PT(x,y,r)) x e y são os pontos em mm R é o ângulo em graus, se conhece os pontos e não conhece o ângulo faça r = 0. Valores absolutos DpMove(x,y,r) igual o anterior, mas é incremental -- Nome: Programa 2 -- Função: ilustrar o movimento absoluto (PMove) e incremental (DpMove); Programa2:Subr; PMove(PT(315,490,0)); DpMove(-25,70,0); PMove(PT(-620,0,90)); DpMove(500,185,0); PMove(PT(650,0,0)); End;

Declaração de variáveis: constantes Valores que são repetidos em um programa podem se beneficiar do uso de constantes. Uma constante pode receber um valor numérico (inteiro ou real) ou uma coordenada. O comando é NEW, precedido de um indicador

Controle de Fluxo de programa BRANCH (rótulo) Para se fazer desvios no programa utiliza-se rótulos. Um rótulo é uma palavra seguida do caractere dois pontos. o comando BRANCH (rótulo) que executa um salto incondicional.

Contadores A contagem de tarefas pode ser bastante útil na elaboração de um programa. Por exemplo, a cada 25 peças trabalhadas é necessário executar os movimentos para substituição do conjunto. Para manipular contadores a linguagem AML utiliza-se de cinco comandos: STATIC COUNTER, SETC, INCR, DECR e TESTC. STATIC COUNTER: SETC: Um contador deve ser definido no início do programa para ser utilizado posteriormente. Essa definição consiste na escolha de um identificador (nome) para o contador, seguindo as regras descritas e usando o comando STATIC COUNER, como abaixo. Sempre que um contador é definido seu valor é zero. Contador1:Static Counter; Para colocar um valor específico em um contador usa-se o comando SETC. O exemplo abaixo define o valor 14 para o Contador1, ou seja, são passados como parâmetros o nome do contador e o valor desejado para ele. SetC(Contador1, 14);

Contadores INCR e DECR TESTC. A contagem pode ser incrementada com o comando INCR ou decrementada com o comando DECR. Os exemplos a seguir mostram que basta fornecer o nome do contador como parâmetro. Incr(Contador1); Decr(Contador1); Para testar se o contador atingiu um determinado valor utiliza-se o comando TESTC. Os três parâmetros necessários são: nome do contador, valor de comparação e rótulo de destino. O exemplo a seguir verifica se Contador1 atingiu o valor 15. TestC(Contador1, 15, FechaCaixa); Se o Contador1 não atingiu o valor 15, então o fluxo do programa segue para a próxima linha. No caso de ter atingido esse valor, ocorrerá um salto para a linha definida pelo rótulo FechaCaixa.

Exemplo 3: -- Nome: Programa 3 -- Função: ilustrar o uso de contadores e rótulos; -- Observação: acionar a opção Contadores do menu Visualizar. Contador1:Static Counter; Contador2:Static Counter; -- define o primeiro contador -- define o segundo contador Programa3:Subr; Inicio:; -- Rótulo Início TestC(Contador1,10,Final); -- Se Contador1=10 salta para Final Incr(Contador1); -- Incrementa o Contador 1 Branch(Inicio); -- Salta para o Início Final:; -- Rótulo Final Pmove(Pt(585,205,0)); -- Movimenta o braço Pmove(Pt(650,0,0)); -- Movimenta o braço Incr(Contador2); -- Incrementa o Contador 2 SetC(Contador1,0); -- Zera o Contador 1 Branch(Inicio); -- Salta para o Início End;

Exemplo 3: O programa a seguir cria dois contadores denominados de Contador1 e Contador2. O Contador1 é incrementado no início do programa e, logo em seguida, comparado com o valor 10. Enquanto esse valor não é atingido, o fluxo é desviado para o início do programa pelo comando Branch(Inicio). Quando Contador1 atinge o valor 10, o fluxo é desviado para a parte inferior do programa iniciada pelo rótulo Final. Esta parte do programa executa dois movimentos do braço, incrementa o Contador2, zera o Contador1 e salta para o Início novamente.

Movimento em linha reta: LINEAR Os movimentos de um robô com articulações rotacionais ocorrem em forma de arcos. Isso pôde ser notado no Programa 2, do artigo anterior. Mas há situações onde é necessário movimentar o órgão terminal em linha reta. Para isso, a linguagem AML traz o comando LINEAR(qualidade), onde o parâmetro qualidade permite definir o grau de linearidade do movimento e pode receber os seguintes valores: 0 até 10, 20, 30 e 50. -- Nome: Programa 5 -- Data: 26-01-2004 -- Função: ilustrar o uso de constantes e movimento linear; X:New 0; Programa5:Subr; PMove(PT(290,500,0)); Linear(X); PMove(PT(-290,500,0)); PMove(PT(-290,250,0)); PMove(PT(290,250,0)); PMove(PT(290,500,0)); Linear(0); PMove(PT(650,0,0)); End;

EXERCÍCIOS Escreva as letras ao lado, sabendo-se que cada quadrado possui aresta igual a 10 mm.