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: MODULARIZAÇÃO E<br />

TRAJETÓRIAS 1<br />

Linguagem para Programação de Robôs: Modularização e Trajetórias<br />

Marcelo da Silva Hounsell 2 , Gabriel Balestrin 3<br />

Palavras-chave: Linguagem de Programação, Modularização, Trajetórias.<br />

Uma linguagem de programação permite o programador ter uma maior produtividade e garante<br />

expressar as suas intenções mais facilmente. As linguagens de programação padronizam atividades ou<br />

rotinas que expressam instruções para um computador. Com objetivo de dar continuidade no<br />

desenvolvimento de uma linguagem de programação para um robô virtual, no intuito de, modularizar o<br />

código que é criado pelo programador utilizando subrotinas e controlar as trajetórias que o robô<br />

executa. Uma linguagem existente baseada em comandos chamada de SCORBASE foi utilizada como<br />

modelo para criação dos novos comandos, pois se trata da mesma linguagem de programação do robô<br />

real. Com base nas ideias do SCORBASE, um compilador nomeado VirBASE foi feito usando o<br />

gerador de compiladores JavaCC. Ele toma como entrada a descrição de uma linguagem e transformaa<br />

num programa capaz de analisar um arquivo e dizer se satisfaz ou não as regras especificadas por<br />

essa linguagem. O VirBASE estrutura os comandos em uma sequencia de instruções que são<br />

executadas uma por vez, e cada instrução ao ser executada desempenha uma atividade específica.<br />

Quatro instruções controlam as trajetórias do robô, GP envia até a posição desejada interpolando os<br />

eixos do robô, GL move em linha reta, GC faz um movimento curvilíneo passando por um ponto<br />

específico e GS faz o robô se mover suavemente passando por varias posições; três instruções para<br />

modularização do código, CS executa uma subrotina, SS define o início de uma subrotina e RS o fim<br />

de uma subrotina; três para posicionamento e manipulação da garra do robô, PH altera a posição<br />

inicial do robô, OG abre a garra e CG fecha a garra do robô; e mais quatro para entrada e saída EI<br />

permite que interrupções mudem a execução do código, DI desabilita interrupções, ON ativa um<br />

sinalizador e OF desativa o sinalizador. Também, duas interfaces gráficas foram criadas, uma para<br />

criar e editar o código programado; e outra para simular a entrada e saída das interrupções e exibir os<br />

sinalizadores. A linguagem com os novos comandos pode “agora” produzir vários programas para<br />

solucionar uma quantidade maior de tarefas que antes e, mais próximo aos recursos do próprio robô<br />

real. Assim, além de se aproximar das funcionalidades do equipamento real, a linguagem<br />

implementada executa comandos que vão além dos recursos existentes na linguagem original.<br />

1 Projeto de Pesquisa - N o 1116/2008 – 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<br />

PIBIC/CNPq.

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

Saved successfully!

Ooh no, something went wrong!