22.06.2015 Views

Portal CERES - [UDESC]

Portal CERES - [UDESC]

Portal CERES - [UDESC]

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

I Congresso de Iniciação Científica e Pós-Graduação –Florianópolis (SC) –setembro 2010<br />

LINGUAGEM PARA PROGRAMAÇÃO DE ROBÔS 1<br />

Controle de Fluxo e Variáveis<br />

Marcelo da Silva Hounsell 2 , Marina Silva Fouto 3<br />

Palavras-chave: Linguagens de Programação, Simuladores 3D, Robôs Manipuladores<br />

Resumo: Simuladores de robôs são importantes para situações onde existam o risco de danos ao<br />

equipamento real e/ou quando há possibidade de perigo ao operador do equipamento. Para se fazer<br />

bom uso dos simuladores e tirar o maior proveito dele, é necessário que possua comandos úteis e<br />

abrangentes e que habilitem a possibilidade de desenvolver programas flexívies para a manipulação do<br />

robô real. Esta pesquisa tomou a linguagem SCORBASE, linguagem utilizada pelo robô real<br />

SCORBOT-ER 4pc, e desenvolveu um interpretador estendido desta linguagem para programar as<br />

tarefas de um simulador deste mesmo robô, simulador denominado Virbot4u. Para o desenvolvimento<br />

do ambiente, foram utilizadas ferramentas livres tais como X3D para o ambiente 3D e a linguagem<br />

Java. A nova linguagem, que se assemelha à original, foi então nomeada de VIRBASE. Os recursos de<br />

programação então existentes no simulador Virbot4u limitavam-se a apenas quatro comandos e<br />

basicamente nenhuma funcionalidade relacionada à programação convencional (estruturas de controle,<br />

tipagem de dados). O VIRBASE foi desenvolvido como uma linguagem semi-estruturada utilizando o<br />

software gerador de analisadores léxico e sintático Java CC e a linguagem de programação Java. O<br />

VIRBASE proporciona ao VirBot4u vários comandos típicos de uma linguagem de uso geral como:<br />

criação de variáveis primitivas (como um inteiro ou booleano); manipulação de coordenadas de um<br />

ponto no espaço, inexistente no SCORBASE mas importante para programação de robôs pois permite<br />

fazer o robô executar vários movimentos utilizando apenas um ponto; controle de fluxo (com<br />

comandos de decisão como o IF), comandos para leitura de entradas e acionamento de saídas;<br />

capacidade de realizar operações lógicas (como testes de igualdade) e matemáticas (como o cálculo de<br />

expressões aritméticas); entre outras. O VIRBASE foi desescrito formalmente no JavaCC sem<br />

recursividade à esquerda – forma de escrever a gramática que evita que ela acabe executando<br />

indefinidamente sem gerar um resultado, dependendo de como a produção gramatical é definida – e é<br />

analisada de maneira interpretada, por não haver a necessidade de muitos passos de análise dos<br />

programas criados com a linguagem para o simulador, nem de geração de arquivo executável para os<br />

programas escritos. Além disso, também foi melhorada a janela de interface para a programação<br />

existente no VirBot4u com novos botões e novas funcionalidades, deixando o ambiente de<br />

programação mais fácil de usar pois permite: abrir um programa; salvar um programa criado; executar<br />

o programa escrito linha a linha e indefinidamente até que, com o botão de parar a execução, o usuário<br />

termine a execução do programa; entre outros. Com o VIRBASE, apesar de algumas diferenças em<br />

relação a linguagem original (aplicada ao robô real), agora é possível fazer programações que podem<br />

ser reproduzidas no robô real e ainda, existe também a possibilidade deste ambiente (linguagem e<br />

simulador) de ser efetivamente usado em sala para aulas de prática de programação, com intenção de<br />

tornar este aprendizado mais concreto, especialmente par alunos em início de curso.<br />

1 Projeto de Pesquisa - N o 1116 – CCT-<strong>UDESC</strong><br />

2 Orientador, Professor do Departamento de Ciência da Computação CCT-<strong>UDESC</strong> –<br />

marcelo@joinville.udesc.br<br />

3 Acadêmico(a) do Curso de Ciência da Computação CCT-<strong>UDESC</strong>, bolsista de iniciação científica PIBIC/CNPq

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!