• Nenhum resultado encontrado

CARACTERIZAÇÃO DE LINGUAGENS DE PROGRAMAÇÃO OFF-LINE DE ROBÔS MANIPULADORES

N/A
N/A
Protected

Academic year: 2021

Share "CARACTERIZAÇÃO DE LINGUAGENS DE PROGRAMAÇÃO OFF-LINE DE ROBÔS MANIPULADORES"

Copied!
5
0
0

Texto

(1)

CARACTERIZAÇÃO DE LINGUAGENS DE PROGRAMAÇÃO

OFF-LINE DE ROBÔS MANIPULADORES

Rubens Redel, Marcelo da S. Hounsell Universidade do Estado de Santa Catarina - UDESC

Campus Universitário "Prof. Avelino Marcante" – CEP 89223-100 – Joinville / SC

dcc6rr@joinville.udesc.br, marcelo@joinville.udesc.br

Resumo. O presente artigo visa apresentar,

de maneira resumida, as principais características de uma Linguagem

Programação Off-Line de robôs

manipuladores (LPOL’s). Estas

características podem ser utilizadas como forma de se efetuar uma classificação das melhores linguagens de programação off-line de robôs manipuladores (LPOL’s).

Palavras-chave: Caracterização, Linguagem, Robôs.

1. INTRODUÇÃO

Este artigo objetiva buscar a melhor ou uma linguagem padrão para todos os robôs manipuladores. Para obter um núcleo comum a todas as linguagens de programação de robôs pesquisou-se algumas características passíveis de ponderação que irão determinar as melhores características para avaliar uma Linguagem de Programação Off-Line de robôs manipuladores (LPOL). As características são divididas em dois grupos: as gerais e as específicas.

2. CARACTERÍSTICAS GERAIS As características gerais são as que predominam tanto nas linguagens de uso geral (Java, C, C++, etc.) quanto nas LPOL’s (RAPID, ACL, BAPS, etc...). A seguir, as características são mencionadas e descritas.

2.1 Interface da Linguagem

A primeira característica a ser avaliada é quanto interface, ou forma como se apresenta visualmente uma linguagem. Esta aparece de duas formas: textual e visual. A autora Williams et al. [1] diz que uma linguagem textual, como o próprio nome denota, é caracterizada pela presença de caracteres alfanuméricos em todo o código de montagem. Uma linguagem de programação visual permite que o usuário especifique um programa de maneira gráfica, contendo gráficos ou ícones que identificam uma série de operações ou relacionamentos encapsulados.

2.2 Formato de Execução

Nesta avaliação obtêm-se a seguinte classificação: de script (interpretada) ou programada (compilada). Na programação “scripting” (ou de script), segundo Sebesta [2], utiliza-se um arquivo que contêm uma de uma série de comandos, variáveis, instruções de fluxos de controle, funções e outras opções para serem executados por um interpretador. De acordo com Silva et al. [3], “na compilação, os programas escritos em linguagens de alto nível são traduzidos para a linguagem de máquina correspondente antes da execução”. A presença de analisadores léxicos e semânticos para a produção de um código de baixo nível para execução é indispensável.

(2)

2.3 Tipos de dados

“Variável de programa é uma abstração de uma célula ou de um conjunto de células de memória do computador” (Ref. [2]). Os três tipos básicos de dados são: os primitivos (embutidos), os definidos pelo usuário e os abstratos de dados. “Os tipos de dados embutidos são previamente definidos nas linguagens de programação, representando tipos de dados elementares normalmente implementados ao nível de hardware” (Ref. [3]). Os exemplos clássicos são: inteiros, reais ou pontos-flutuantes, caracteres e booleanos. Segundo autor Veloso et al. [6], os tipos de dados definidos pelo usuário são aqueles definidos pelo programador, utilizando-se alguns mecanismos que são: vetor, registro, seqüência, referência, alternativa e enumeração. A Ref. [2] escreve que o conceito de tipos abstratos de dados definidos pelo usuário envolve 2 características: “(1) uma definição de tipo que permite que as unidades de programa declarem suas variáveis, mas oculta sua representação, e (2) um conjunto de operações para manipular objetos do tipo”. 2.4 Paradigma da linguagem

Existem três paradigmas usuais: funcional, estruturado (procedimental convencional) e o orientado a objetos. Segundo a Ref. [2], na linguagem funcional dispensa-se o uso de variáveis. As repetições são feitas por um processo de recursão, o que torna a principal característica destas linguagens. Sobre as linguagens estruturadas a Ref. [2] salienta que “por causa da arquitetura Von Neumann, os recursos centrais das linguagens imperativas (i.e. estruturadas) são as variáveis, as quais modelam as células de memória”. O autor Ghezzi et al. [4] salienta a presença de três características para as linguagens estruturadas: variáveis, operações de atribuição e repetição. Na Ref. [2] observa-se que no conceito de programação orientada a objetos, a linguagem em questão deve oferecer três recursos principais: “tipos de

dados abstratos, herança e um tipo particular de vinculação dinâmica”. O controle de abstração de dados envolve o ocultamento da informação e o encapsulamento. O conceito de herança possibilita a reutilização dos tipos de dados abstratos adicionando novos métodos, adaptando os objetos a novas situações. Seguindo esta analogia, a Ref. [2] diz que o conceito de vinculação dinâmica permite definir “variáveis polimórficas do tipo da classe pai que também são capazes de referenciar objetos de qualquer uma das subclasses da mesma”. Para tanto, segundo Horstmann et al. [5], o compilador da linguagem deve gerar um código para calcular que método deve ser chamado, que pode ser tanto da classe pai ou dele mesmo.

2.5 Estruturas de controle

A Ref. [2] indica que uma estrutura de controle “é uma instrução de controle e sua coleção de comandos cuja execução ela controla”. A Ref. [4] identifica 3 estruturas principais ao nível de comando: seqüência, seleção e repetição. Além destes, tem-se um comando amplamente utilizado nas LPOL como desvio incondicional: o comando GOTO (ou equivalente). Este comando é definido como um comando “que transfere o controle da execução para um lugar específico do programa”.

2.6 Legibilidade

A Ref. [2] observa que a legibilidade “é a facilidade com que os programas podem ser lidos e entendidos”. Diz-se que um código fonte é legível, quando o mesmo é facilmente entendido. Existem quatro fatores influenciadores da legibilidade da linguagem (Ref. [4]): documentação dos programas, convenções léxicas e sintaxe da linguagem. 2.7 Modularização

“A modularidade, em verdade, é geralmente reconhecida como o único guia disponível para dominar a complexidade do

(3)

projeto e da implementação de sistemas grandes e complexos” (Ref. [4]). Caso contrário, seria difícil identificar qualquer problema ou “bug” que talvez venha a ocorrer, bem como dificultaria a sua manutenção.

2.8 Ambiente de programação

Segundo a Ref. [2], um ambiente de programação é definido como “um conjunto de ferramentas usadas no desenvolvimento de software”. Este conjunto pode consistir desde um sistema de arquivos, um editor de texto, um linker e um compilador, até uma grande coleção de ferramentas integradas cujo acesso é feito através de uma interface amigável e uniforme.

3. CARACTERÍSTICAS ESPECÍFICAS As características específicas são características de linguagens de programação que são pertinentes ao contexto quase exclusivo da robótica, ou seja, aqueles que se aplicam apenas as LPOL’s. Estas características foram identificadas como: 3.1 Entrada de comandos

A entrada de comandos se refere a forma como é feita a entrada dos comandos e/ou pontos para a memória do controlador do robô. Segundo Heath Ref. [7], esta entrada pode ser feita de duas formas possíveis: via “teach pendant” e via arquivo . O método via “teach pendant” consiste em definir os pontos e os comandos para o robô acionando botões ou chaves que se encontram em uma espécie de controle remoto em uma certa ordem. O método via arquivo consiste em listar os pontos e os comandos em um arquivo via computador, após que deve-se enviar o mesmo para a memória do controlador do robô.

3.2 Sistema de coordenadas

O sistema de coordenada se refere aos tipos de referência para os pontos a serem

utilizados. Os sistemas robóticos são operados e programados de duas formas diferentes de sistema de coordenada: o euclidiano (global) e de juntas (local). O sistema euclidiano (ou cartesiano), segundo a Robotec [8], “é um sistema geométrico utilizado para definir a distância, em unidades lineares, do ponto de origem (o centro da base do robô), através dos três eixos lineares”. Com relação ao sistema de coordenada de junta (ou local), o autor Tsai, na Ref. [9], salienta que “o movimento relativo associado com cada junta pode ser controlado por um atuador tal que o componente terminal possa ser posicionado dentro do seu espaço de trabalho”.

3.3 Controle de posição

Através do controle de posição é possível determinar a movimentação de um robô dentro de um sistema de pontos. Os pontos são definidos através do sistema de coordenada, descrito no item anterior. A linguagem V+, segundo Adept Ref. [10], tem-se um comando de movimentação através de juntas independentes. O comando DRIVE desta linguagem, recebe três parâmetros: número da junta, ângulo de movimentação e a velocidade do movimento. Ex: DRIVE 3, 50, 100 (mova a junta 3 em 50º à velocidade 100x).

3.4 Controle de orientação do punho O autor Groover et. al Ref.[11] declara que “o punho é projetado para permitir que o robô oriente o órgão terminal adequadamente em relação à tarefa a ser realizada”. A orientação do punho trata-se da movimentação do elemento terminal do robô. Esta movimentação ocorre de três formas: rotacional, vertical e horizontal. 3.5 Controle do elemento terminal

Esta característica diz respeito aos comandos de acionamento do elemento terminal do robô. Um elemento terminal poderá ser de diversos tipos e formas, sendo

(4)

que o mais usual e simples é o elemento garra. Aliados a estes tipos de comandos, estão os controles de força, que indicam a força da abertura e fechamento da garra, por exemplo.

3.6 Comandos de interface com o operador

Os comandos de interface com o operador são os que permitem o operador visualizar as informações sobre o estado atual do robô. Normalmente são utilizados para visualização de resultados, erros e alertas de uma operação.

3.7 Comandos de sensoriamento

Segundo a Ref. [11], “sensor é um transdutor que é usado para fazer uma medição de uma variável física de interesse”. Os sensores são utilizados para medir força, pressão, temperatura e velocidade além de outras variáveis essenciais. Os comandos de sensoriamento se referem àqueles que controlam estas variáveis existentes em um robô.

3.8 Comandos de interface com o sistema supervisório

Os comandos de interface com o Sistema Supervisório são aqueles comandos ligados diretamente ao computador supervisor da célula de manufatura. A interface com o supervisório é que define os intertravamentos requeridos para a automação do robô dentro de uma célula de trabalho industrial. A atuação do supervisório se dá por intermédio de sinais de entrada e saída que podem ser emitidos para outros elementos externos ao robô. A Ref. [11] indica que as formas principais de sinais são: analógicas e digital. Exemplos de sinais: “tarefa terminada”, “iniciar execução”, “robô em espera”, “tempo de execução”, “emitir sinal para esteira”.

3.9 Controles de velocidade e aceleração Através destes parâmetros é possível controlar a velocidade e aceleração dos movimentos de um elemento robótico. Estes controles também podem existir na forma de tempo. O tempo de determinados movimentos, determinará a sua velocidade e sua aceleração.

3.10 Forma de entrada de pontos

A forma de entrada de pontos se refere ao formato de identificação dos pontos para um programa de robô. As formas mais usuais são: escritos dos valores no modo texto, captura pontos de uma interface gráfica simulando o robô ou ainda pelo posicionamento físico do robô no espaço e inferindo esta “posição exemplo”.

3.11 Integração entre os pontos e o programa

A integração entre os pontos e o programa de robô se refere a maneira em que são determinados os pontos para determinar as coordenadas do robô. Os modos mais usuais de integração são: o embutido e o separado. O embutido se refere aos pontos que estão definidos explicitamente dentro do próprio código fonte. O separado se refere aos pontos que são armazenados em um arquivo distinto. 3.12 Trajetórias e interpolações

As trajetórias e interpolações se referem ao formato da movimentação de um elemento robótico através de um caminho. A Ref. [11] indica que as trajetórias mais usuais são: retas, curvas e arcos. As formas de interpolação mais comuns são: a uniforme e a ponderada.

3.13 Depurador sintático

Um depurador ou compilador sintático tem como finalidade verificar se os comandos estão corretos, ou seja, dentro do

(5)

escopo da linguagem em questão, antes de submetê-la ao controlador do robô.

3.14 Depurador de posição ou semântico Um depurador de posição ou semântico tem como objetivo analisar o programa e identificar as colisões com a própria estrutura física do robô e com seus limites de operação durante a fase de programação off-line; ou ainda com os objetos do seu ambiente de trabalho.

3.15 Adaptabilidade específica

Segundo Groover Ref. [12], “para um robô ser utilizado em uma aplicação particular, é necessário obter equipamentos com ferramentas especiais projetadas para a aplicação em questão”. Portanto, a adaptabilidade específica avalia a especificidade de um robô manipulador frente a uma determinada tarefa, área ou indústria, incluindo a existência do conjunto de comandos, funções ou softwares voltados para o tipo específico de aplicação.

3.16 Similaridade com outras linguagens Analisa-se neste critério a importância de uma LPOL ter semelhança a uma outra linguagem qualquer, principalmente linguagens de uso de geral como Java, C, C++, Lisp, Delphi ou Pascal.

3.17 Tratamento de erros e exceções Este item refere-se ao tratamento de erros que identificam problemas na estrutura e/ou programação do robô durante a fase de execução de um programa.

4. Conclusão

Observa-se que muitas características devem ser levadas em consideração ao avaliar uma LPOL. Estamos submetendo estas características aos especialistas de área afim de obter a visão destes sobre os pesos (ponderadores). Posteriormente as diversas

LPOL poderão ser avaliadas por estes critérios, tendo-se mais claro a importância relativa de cada um e então se chegar mais seguramente em uma linguagem que poderia ser dita como a melhor.

Referências Bibliográficas

[1] M. G. Williams and J. N. Buehler, “Comparison of visual and textual languages via task modeling”, Journal Human-Computer Studies, 1999, pp. 51, 89-115. [2] R. W. Sebesta, Conceitos de Linguagens de Programação. Bookman, 4.ed., Porto Alegre: 2000.

[3] J. C. G. Silva and F. S. G. Assis, Linguagens de Programação: conceitos e avaliação. McGraw-Hill, 1.ed., São Paulo: 1988.

[4] C. Ghezzi and M. Jazayeri, Conceitos de Linguagens de Programação, Campus, Rio de Janeiro: 1985.

[5] C. S. Horstmann and G. Cornell, Core Java 2: Fundamentos, Makron Books, São Paulo: 2001.

[6] P. A. S. Veloso et. al., Estruturas de Dados, Campus, 6.ed., Rio de Janeiro: 1983. [7] L. Heath, Fundamentals of Robotics, Prentice Hall Company, Virginia: 1985. [8] E. Robotec, ACL – Advanced Control Language: Reference Guide for Controller-A, 4.ed., Eshed Roboted: 1999.

[9] L-W. Tsai, Robot Analysis: The Mechanics of Serial and Parallel Manipulators, Wiley-Interscience: 1999. [10] I. Adept, V+ Language: User’s Guide, v. 12.1, Adept Tecnology Inc.:1997.

[11] M. P. Groover, M. Weiss, R. N. Nagel and N. G. Odrey, Robótica: Tecnologia e Programação, McGraw-Hill, São Paulo: 1988.

[12] M. P. Groover, Fundamentals of Modern Manufacturing: Materials, Processes, and Systems, Prentice Hall, New Jersey:1996.

Referências

Documentos relacionados

[r]

A análise mostrou a oportunidade de (i) adoção de uma estratégia de planejamento que reflita um modelo sustentável de desenvolvimento que inclua decisões sobre o futuro da Amazônia

• The definition of the concept of the project’s area of indirect influence should consider the area affected by changes in economic, social and environmental dynamics induced

Detectadas as baixas condições socioeconômicas e sanitárias do Município de Cuité, bem como a carência de informação por parte da população de como prevenir

Basílica de Nossa Senhora do Rosário de Fátima Domingo XXX do Tempo Comum.

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das

Os principais resultados obtidos pelo modelo numérico foram que a implementação da metodologia baseada no risco (Cenário C) resultou numa descida média por disjuntor, de 38% no

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários