View
401
Download
2
Category
Preview:
Citation preview
ROBOTEC
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESCCENTRO DE EDUCAÇÃO DO PLANALTO NORTE - CEPLAN
DEPARTAMENTO DE SISTEMAS DE INFORMAÇÃO – DSI
Magno Ronan Ritzmann
ORIENTADOR: DR. ANTÔNIO CARLOS TAMANINI DA SILVA
PROFESSOR: DR. NILSON RIBEIRO MODRO
PROBLEMA
o Como criar uma ferramenta computacional capaz de mover um braço
robótico através de algoritmos baseados em pseudocódigo Portugol de
forma que auxilie no ensino da lógica de programação, álgebra vetorial
e cinemática básica?
OBJETIVO GERAL
• Criar uma ferramenta computacional capaz de mover
um braço robótico e que possibilite o ensino da lógica
de programação, álgebra vetorial e cinemática
básica através de algoritmos baseados em
pseudocódigo Portugol.
OBJETIVOS ESPECÍFICOS
• Realizar a análise de requisitos do sistema proposto;
• Realizar a modelagem do sistema através da UML;
• Construir o controlador do braço robótico;
• Construir o interpretador de comandos;
OBJETIVOS ESPECÍFICOS
• Construir a interface do sistema;
• Programar o sistema proposto;
• Validar o sistema através de testes com os usuários.
• Construir o módulo de cinemática direta e inversa;
JUSTIFICATIVA
o A ferramenta desenvolvida permite:
• Ensino de algoritmos;
• Ensino de cinemática básica e
• Ensino de álgebra vetorial.
JUSTIFICATIVAo Propicia:
• O desenvolvimento do espírito de liderança;
• Integração;
• Persistência;
• Utilização de metodologias de ensino baseados
em problemas (PBL);
• Utilização métodos lúdicos de aprendizagem.
INTRODUÇÃO
• Aprendizagem baseada em repetição;
• Linguagens simples porém, sem motivação aos alunos;
• Métodos através da robótica educacional podem acabar sendo pouco aproveitados na área da programação;
• Custo elevado e ferramentas limitadas.
INTRODUÇÃO
ROBÓTICA
• “Máquina formada por um mecanismo, incluindo
diversos graus de liberdade, na maioria das vezes tendo
a aparência de um ou diversos braços terminando num
pulso capaz de segurar ferramentas, peças ou
dispositivos.” (ISO 9283(1998)
ROBÔS - CLASSIFICAÇÃO
• CARACTERÍSTICAS FÍSICAS:
• Robôs Manipuladores;
• Robôs Móveis (com ou sem rodas);
• Bípedes;
• Quadrúpedes;
• Hexápodes;
• Humanoides;
• Bípedes com cabeça, tronco e membros.
• APLICAÇÃO:
• Industrial
• Pesquisa
• Militar
• Segurança
• Hobby ou Entretenimento
• Doméstico e pessoal.
MANIPULADORES
o Componentes Básicos
Manipulador / Efetuador;
Atuador;
Controle;
Fornecimento de Energia.
ROBOTEC
• É uma ferramenta computacional projetada para
interpretar comandos e controlar um braço robótico.
Pode ser utilizado em disciplinas como:
• Introdução à Ciência da computação;
• Lógica de Programação;
• Processamento de Dados.
ROBOTEC
• Utiliza uma extensão da linguagem G-Portugol;
• A abordagem sugerida a ser adotada para simplificar o aprendizado em sua utilização é a PBL (Problem Based Learning).
CLASSIFICAÇÃO DOS REQUISITOS
Tipo Requisito
Requisito funcional O sistema deve possibilitar a criação, edição, exclusão,
salvamento e execução de algoritmos escritos na forma
suportada pelo sistema.
Requisito funcional O sistema deve mover o braço robótico AL5D fabricado pela
Lynxmotion.
Requisito não-funcional O Sistema deve possuir uma interface intuitiva que facilite sua
operação.
Requisito não-funcional O Software deve ser operacionalizado no sistema operacional
Windows.
Requisito não-funcional O computador utilizado deve possuir no mínimo 512 MB de
memória RAM.
Requisito não-funcional O tempo de resposta do sistema não deve ultrapassar 10 segundos;
ROBOTEC
Seu funcionamento consiste em:
• Obter instruções de movimentação através de um algoritmo escrito por um usuário, ou por uma das interfaces gráficas presentes no software;
• Interpretar o algoritmo;
• Mover o braço robótico.
FERRAMENTASUTILIZADAS
Lynxmotion AL5D
MÓDULO INTERPRETADOR
Interpretador X Compilador
• Compilador: É um conversor capaz de traduzir um código fonte em um código binário reconhecido pelos computadores. (DAVID, MARCIO F. (2007);
• Interpretador: É um tradutor que percorre o código fonte procurando por eventuais erros, e ao mesmo tempo, já o executa e mostra o resultado ao usuário
ANÁLISE LÉXICA
• Análise léxica é o processo de analisar a entrada de linhas de caracteres e produzir uma sequência de símbolos chamado "símbolos léxicos“.
TABELA DE LEXEMAS DA LINGUAGEM ENTENDIDA DO G-PORTUGOL
Lexemas Classificação
programa, movimentos, inicio, fim,
inicio_var, fim_var, string, real, inteiro,
se, entao, senao, fim_se para, fim_para, faca,
enquanto, fim_enquanto, adicionar_movimento,
abre_garra,fecha_garra,gira_base,move_ombro,
move_cotovelo,move_pulso, gira_pulso, imprima;
Palavras Reservadas
TABELA DE LEXEMAS DA LINGUAGEM ENTENDIDA DO G-PORTUGOL
+, -, *, / Operadores aritméticos
||, && Operadores lógicos
= Operador de atribuição
>, <, >=,<=, ==, != Operadores relacionais
//(comentários) Comentários
ANÁLISE SINTÁTICA
• A análise sintática é uma técnica empregada no estudo da estrutura de uma língua.
• Objetiva verificar se os lexemas identificados no código formam um programa estruturado de acordo com a gramática da linguagem.
SINTAXE CORRETA
para(int x=1;x<10;x++)facaabre_garra(x);fim_para;
ERRO DE SINTAXE
para(int x=1;x++)facaabre_garra(x);fim_para;
TABELA SINTÁTICA DA LINGUAGEM ENTENDIDA DO G-PORTUGOLComandos Sintaxe
programa programa nome_do_programa;
movimentos, inicio, fim movimentos (espaço) inicio (comandos) fim
inicio_var
string
real
inteiro
fim_var
inicio_var
string:nome_string=”valor”;
inteiro:nome_variavel=valor_inteiro;
real:nome_variavel= valor_real;
fim_var
se, então, senao, fim_se se(condição) entao (comando); senao (comando); fim_se;
para, fim_para, faca, para(variavel=valor; condição);(incrementa ou decrementa variável))faca (comando); fim_para;
Comandos Sintaxe
enquantofaca
fim_enquanto
enquanto(condição)faca(comando);fim_enquanto
adicionar_movimento adicionar_movimento(valor_inteiro, valor_inteiro, valor_inteiro);
abre_garra abre_garra(valor_inteiro);
fecha_garra fecha_garra();
gira_base gira_base(valor_inteiro);
move_ombro move_ombro(valor_inteiro);
move_cotovelo move_cotovelo(valor_inteiro);
move_pulso move_pulso(valor_inteiro);
gira_pulso gira_pulso(valor_inteiro);
imprima imprima(variável) ou imprima(“string”);
// //comentário
TABELA SINTÁTICA DA LINGUAGEM ENTENDIDA DO G-PORTUGOL
ANÁLISE SEMÂNTICA
• Análise semântica efetua uma busca no código fonte
por erros semânticos.
SEMÂNTICA CORRETA
Inicio_var
Inteiro:cont1=0;
fim_var
movimentos
inicio
cont=cont+1;
fim
ERRO DE SEMÂNTICA
Inicio_var
Inteiro:cont1=0;
fim_var
movimentos
inicio
cont=cont+a;
fim
ANÁLISE SEMÂNTICA
O CÓDIGO
• Após passar pelas análises, o código escrito pelo usuário é transcrito automaticamente para a linguagem Java, e então é executado, movendo o braço robótico.
O CÓDIGO
ENTRADA SAÍDA
MÓDULO CONTROLADOR
NOME SERVO-MOTOR FUNÇÃO RESTRIÇÃO
Motor 1 0Responsável por enviar os bits referentes a
movimentação da base do braço robótico para a
porta serial, esta relacionada ao giro do braço
por completo.
0° a 180°
Motor 2 1Responsável por enviar os bits referentes a
movimentação do ombro (Shoulder) do braço
robótico para a porta serial, atua de forma
vertical.
0° a 180°
Motor 3 2Responsável por enviar os bits referentes a
movimentação do cotovelo (Elbow) do braço
robótico para a porta serial, atua de forma
vertical.
30° a 100°
Motor 4 3Responsável por enviar os bits referentes a
movimentação do pulso(Wrist) do braço robótico
para a porta serial, atua de forma vertical.
0° a 180°
FUNÇÕES DOS COMPONENTES DA INTERFACE DE CONTROLE
FUNÇÕES DOS COMPONENTES DA INTERFACE DE CONTROLE
NOME SERVO-MOTOR FUNÇÃO RESTRIÇÃO
Motor 5 4Responsável por enviar os bits referentes ao giro
do pulso do braço robótico para a porta serial,
está relacionado ao giro do pulso.
0° a 180°
Motor 6 5Responsável por enviar os bits referentes a
movimentação da garra(Grip) do braço robótico
para a porta serial, está relacionado ao
movimento de abrir e fechar a garra do efetuador.
0° a 180°
Motor 7 - Disponível para futuras modificações no braço
robótico.
-
Motor 8 - Disponível para futuras modificações no braço
robótico.
-
Velocidade - Define o intervalo de envio entre os bits de saída
do software.
-
Reiniciar 0,1,2,3,4,5 Envia para todos os servos-motores, os dados
para sua posição inicial.
-
MÓDULO MATEMÁTICO
CINEMÁTICA
Diagrama de bloco simplificado da modelagem da cinemática
CINEMÁTICA DIRETA
Quadro de coordenadas vetoriais do braço robótico AL5D
CINEMÁTICA INVERSA (IK)
• Cinemática inversa é o processo de determinação dos
parâmetros de juntas em um objeto flexível, de forma a
alcançar o posicionamento adequado.
CONCLUSÃO
• A hipótese geral deste trabalho foi plenamente
comprovada, pois, foi possível criar uma ferramenta
computacional capaz de mover um braço robótico
através de comandos em uma extensão do Portugol e
servir de auxilio no ensino de conceitos de álgebra e
cinemática.
CONCLUSÃO
• Pode-se concluir, também, que o trabalho proposto
representa uma contribuição ao curso de Sistemas de
Informação, uma vez que ele auxilia no ensino em
disciplinas do curso.
TRABALHOS FUTUROS
• Aumentar o número de comandos reconhecidos pelo
interpretador;
• Construir uma interface de visualização tridimensional do braço robótico.
DEMONSTRAÇÃO
http://www.youtube.com/watch?v=NC22ejT4o6s
Sugestões e questionamentos!
Muito obrigado!
Recommended