ROBOTEC
UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC
CENTRO 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.
JUSTIFICATIVA
o 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.
FERRAMENTAS
UTILIZADAS
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++)faca
abre_garra(x);
fim_para;
ERRO DE SINTAXE
para(int x=1;x++)faca
abre_garra(x);
fim_para;
TABELA SINTÁTICA DA LINGUAGEM ENTENDIDA DO G-PORTUGOL
Comandos 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
enquanto
faca
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 0
Responsá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 1
Responsá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 2
Responsá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 3
Responsá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 4
Responsá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 5
Responsá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=NC22ej
T4o6s
Sugestões e
questionamentos!
Muito obrigado!

Tcc ritzmann,m.r. robotec

  • 1.
    ROBOTEC UNIVERSIDADE DO ESTADODE SANTA CATARINA - UDESC CENTRO 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
  • 2.
    PROBLEMA o Como criaruma 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?
  • 3.
    OBJETIVO GERAL • Criaruma 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.
  • 4.
    OBJETIVOS ESPECÍFICOS • Realizara 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;
  • 5.
    OBJETIVOS ESPECÍFICOS • Construira 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;
  • 6.
    JUSTIFICATIVA o A ferramentadesenvolvida permite: • Ensino de algoritmos; • Ensino de cinemática básica e • Ensino de álgebra vetorial.
  • 7.
    JUSTIFICATIVA o Propicia: • Odesenvolvimento 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.
  • 8.
    INTRODUÇÃO • Aprendizagem baseadaem 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.
  • 9.
  • 10.
    ROBÓTICA • “Máquina formadapor 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)
  • 11.
    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.
  • 12.
    MANIPULADORES o Componentes Básicos Manipulador / Efetuador;  Atuador;  Controle;  Fornecimento de Energia.
  • 13.
    ROBOTEC • É umaferramenta 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.
  • 14.
    ROBOTEC • Utiliza umaextensão da linguagem G-Portugol; • A abordagem sugerida a ser adotada para simplificar o aprendizado em sua utilização é a PBL (Problem Based Learning).
  • 15.
    CLASSIFICAÇÃO DOS REQUISITOS Tipo Requisito Requisitofuncional 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;
  • 16.
    ROBOTEC Seu funcionamento consisteem: • 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.
  • 17.
  • 18.
    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
  • 19.
    ANÁLISE LÉXICA • Análiseléxica é o processo de analisar a entrada de linhas de caracteres e produzir uma sequência de símbolos chamado "símbolos léxicos“.
  • 20.
    TABELA DE LEXEMASDA 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
  • 21.
    TABELA DE LEXEMASDA LINGUAGEM ENTENDIDA DO G-PORTUGOL +, -, *, / Operadores aritméticos ||, && Operadores lógicos = Operador de atribuição >, <, >=,<=, ==, != Operadores relacionais //(comentários) Comentários
  • 22.
    ANÁLISE SINTÁTICA • Aaná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++)faca abre_garra(x); fim_para; ERRO DE SINTAXE para(int x=1;x++)faca abre_garra(x); fim_para;
  • 23.
    TABELA SINTÁTICA DALINGUAGEM ENTENDIDA DO G-PORTUGOL Comandos 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;
  • 24.
    Comandos Sintaxe enquanto faca 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
  • 25.
    ANÁLISE SEMÂNTICA • Análisesemântica efetua uma busca no código fonte por erros semânticos.
  • 26.
    SEMÂNTICA CORRETA Inicio_var Inteiro:cont1=0; fim_var movimentos inicio cont=cont+1; fim ERRO DESEMÂNTICA Inicio_var Inteiro:cont1=0; fim_var movimentos inicio cont=cont+a; fim ANÁLISE SEMÂNTICA
  • 27.
    O CÓDIGO • Apóspassar 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.
  • 28.
  • 29.
  • 30.
    NOME SERVO-MOTOR FUNÇÃORESTRIÇÃO Motor 1 0 Responsá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 1 Responsá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 2 Responsá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 3 Responsá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
  • 31.
    FUNÇÕES DOS COMPONENTESDA INTERFACE DE CONTROLE NOME SERVO-MOTOR FUNÇÃO RESTRIÇÃO Motor 5 4 Responsá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 5 Responsá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. -
  • 32.
  • 33.
    CINEMÁTICA Diagrama de blocosimplificado da modelagem da cinemática
  • 34.
    CINEMÁTICA DIRETA Quadro decoordenadas vetoriais do braço robótico AL5D
  • 35.
    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.
  • 36.
    CONCLUSÃO • A hipótesegeral 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.
  • 37.
    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.
  • 38.
    TRABALHOS FUTUROS • Aumentaro número de comandos reconhecidos pelo interpretador; • Construir uma interface de visualização tridimensional do braço robótico.
  • 39.
  • 40.