Algoritmos de Percurso
Aplicados à Robótica
Aluno: Lucas de Castro Oliveira
Orientadora: Teresinha Arnauts Hachisuca
Foz d...
Organização da Apresentação
1. Objetivos;
2. Objetivos Específicos;
3. História da Robótica;
4. Materiais;
5. O robô Activ...
Objetivos
Dado o espectro de técnicas para processamento de grafos e para detecção de
rotas, estabelecer uma estratégia de...
Objetivos Específicos
1. Conhecer as propriedades do robô a ser utilizado para os estudos, como suas
limitações físicas e ...
História da Robótica
Para o dicionário Aurélio, robótica significa:
“Conjunto dos estudos e das técnicas tendentes a conce...
Robótica - Alguns marcos
Na antiguidade:
● Medição de Tempo;
● Arquitas de Tarento - Pai da Engenharia Mecânica, inventor ...
Materiais
● Computador com a Simple IDE, para
desenvolver a lógica de programação;
● Kit de Robótica ActivityBot da
empres...
Materiais
● Fototransistor, capacitor e resistor
para criar um circuito sensível a luz
visível;
● 1 Sensor ultrassônico pa...
ActivityBot - Componentes Elétricos
● Configurar os jumpers para os encoders e servomotores;
● Instalar os resistores na b...
ActivityBot - Navegação
● Utiliza encoders que informam ao
microcontrolador informações como velocidade
e aceleração;
● Fo...
ActivityBot - Navegação
● Antes de utilizar o robô, deve ser feita uma calibração dos encoders com o
ActvityBot na superfí...
ActivityBot - Navegação
● Os dados são coletados
para cada servomotor;
● Esta calibração garante
maior precisão para que o...
ActivityBot - Navegação
● Cada furo na roda representa um tique. Roda possui 64 tiques (combinação dos
furos da roda e do ...
ActivityBot - Navegação
● Todo o movimento do robô é calculado em tiques. Isto inclui valores para aceleração, curvas
e ve...
ActivityBot - Navegação
● Parâmetros para fazer as principais rotações:
ωº Graus Tiques Comando para o ActivityBot
120º 34...
ActivityBot - Sensor de Ultrassom
● Utiliza reflexão de ondas sonoras para detecção de objetos. Análogo ao sonar em
morceg...
ActivityBot - Sensor de Ultrassom
● Vantagens
○ Consegue detectar entre 3 e 330 cm;
○ Consegue detectar objetos de longe,
...
ActivityBot - Sensor de Luz Visível
● Utiliza um circuito composto de um fototransistor e um capacitor para detectar a
int...
ActivityBot - Sensor de Luz Visível
● Vantagens
○ Bom para detectar preto e branco;
○ Pode detectar sombras e interagir co...
Algoritmos
● Definição: Um algoritmo representa um conjunto específico de instruções para
realizar um procedimento ou real...
Algoritmos
● Função de Complexidade de Tempo: Modelagem matemática que busca informar
em quanto tempo determinado algoritm...
Grafos - Formas de Representação
Matricial
Lista Encadeada
Algoritmo - BFS vs DFS
Algoritmo - Dijkstra
Algoritmos de Busca - Comparativo
Algoritmo DFS BFS Dijkstra-(Array) Dijkstra-(Heap)
Tempo de
Execução
O(E+V) O(E+V) O(V2
...
Proposta
● Dividir o que deve ser feito em duas tarefas:
a. Mapear o cenário proposto;
b. Voltar para o quadrado inicial p...
Proposta - Construção do Cenário
● Cenário composto de um papel Paraná na cor
branca de 60x80 cm. Composto de 20 quadrados...
Proposta - Configuração do Robô
● Utilização de sensor de ultrassom frontal para medir a distância da parede;
● Fototransi...
Proposta - Lógica de Zigue-Zague
● Primeiro adotou-se uma convenção sobre as direções em que o robô pode ir
conforme os qu...
Proposta - Lógica de Zigue-Zague
Proposta - Lógica de Zigue-Zague
Proposta - Lógica de Zigue-Zague
● Esta lógica pode ser melhorada, ao se utilizar um vetor para armazenar uma
sequência de...
Proposta - Detecção de cor
● O programa utilizado para detectar a variação do preto para o branco ao percorrer o cenário
f...
Proposta - Detecção de cor
● Utiliza uma borda ao redor dos quadrados negros para que o robô saiba
diferenciar o preto de ...
Proposta - Detecção de cor
Proposta - Tráfego de dados (Ida)
● Limitações de memória no robô quanto ao tamanho do código;
● Melhor solução aplicada: ...
Proposta - Tráfego de dados (Ida)
● Formato dos dados enviados:
● Exemplo:
○ 4
Proposta - Execução dos Algorítmos
● Criação de uma matriz auxiliar antes de criar o grafo;
● Levar em conta o movimento d...
Proposta - Execução dos Algorítmos
● Criar o grafo, estrutura de dados e algoritmos obtidos através do site do professor
Z...
Proposta - Execução dos Algorítmos
● 19 - 18 - 17 - 16 - 12 … se torna Oeste Oeste
Oeste, Sul … e é transmitido ao Robô.
Proposta - Tráfego de dados (volta)
● Uma vez que os
resultados com
as coordenadas
chegam ao
robô, basta
executar as
intru...
Resultados Obtidos - Mapeamento
Resultados Obtidos - DFS
Resultados Obtidos - BFS
Resultados Obtidos - Dijkstra
Resultados Obtidos
● Apanhado Geral:
Algoritmo Tempo do
escaneamento
Tamanho do
caminho (em
quadrados)
Caminho
ótimo
Tempo...
Conclusões
● Oportunidade para trabalhar com robótica (e todos os seus efeitos);
● Trabalhar com transmissão sem fio via X...
Trabalhos Futuros
● Utilizar outras técnicas de busca. A* utilizando número de curvas como heurística;
● Aplicar o mesmo c...
Obrigado!
Próximos SlideShares
Carregando em…5
×

Algoritmos de Percurso Aplicados à Robótica

97 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
97
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Algoritmos de Percurso Aplicados à Robótica

  1. 1. Algoritmos de Percurso Aplicados à Robótica Aluno: Lucas de Castro Oliveira Orientadora: Teresinha Arnauts Hachisuca Foz do Iguaçu - Fevereiro 2016
  2. 2. Organização da Apresentação 1. Objetivos; 2. Objetivos Específicos; 3. História da Robótica; 4. Materiais; 5. O robô ActivityBot; 6. Algoritmos; 7. Implementação da Proposta; 8. Resultados Obtidos; 9. Conclusão e Trabalhos Futuros.
  3. 3. Objetivos Dado o espectro de técnicas para processamento de grafos e para detecção de rotas, estabelecer uma estratégia de mapeamento eficiente que será executada por um robô em ambiente controlado. Após a execução bem sucedida deste passo, tendo-se o ambiente mapeado, aplicar algoritmos de busca para que o robô possa resolver o problema de forma direta, evitando os obstáculos do percurso.
  4. 4. Objetivos Específicos 1. Conhecer as propriedades do robô a ser utilizado para os estudos, como suas limitações físicas e computacionais; 2. Fazer o robô efetuar um mapeamento satisfatório de um ambiente controlado que permita a abstração em um grafo; 3. Fazer o robô determinar rotas para ir de um ponto A a um ponto B utilizando o grafo produto da atividade de mapeamento; 4. Fazer o robô executar um percurso sem que entre em contato com um dos obstáculos ou fique preso.
  5. 5. História da Robótica Para o dicionário Aurélio, robótica significa: “Conjunto dos estudos e das técnicas tendentes a conceber sistemas capazes de substituírem o homem em suas funções motoras, sensoriais e intelectuais.” A vontade por buscar máquinas capazes de realizar tarefas independentes sempre foram presentes na história. Uma infinidade de artefatos e dispositivos foram inventados ao longo dos anos. Artefatos que muitas vezes eram muito complexos para a época em que foram desenvolvidos, sendo que alguns deles ainda estão em operação até os dias de hoje. Um robô consiste de uma invenção ou um dispositivo, que desempenha uma atividade, frequentemente repetitiva automaticamente. Pela definição, não é necessário que um robô seja movido a energia elétrica para ser classificado como tal. Ter esta ideia em mente é o necessário para se entender a busca da humanidade por inventos que desempenham tarefas automatizadas.
  6. 6. Robótica - Alguns marcos Na antiguidade: ● Medição de Tempo; ● Arquitas de Tarento - Pai da Engenharia Mecânica, inventor do parafuso e polia; ● Contribuições de DaVinci. Robótica Moderna: ● Tesla: Criação motor elétrico de corrente alternada; ● Caixas musicais de Antoine Favre-Salomon + Tear programável de Jacquard -> Cartões Perfurados; ● Em 1951 W Shockley inventa o transistor.
  7. 7. Materiais ● Computador com a Simple IDE, para desenvolver a lógica de programação; ● Kit de Robótica ActivityBot da empresa Parallax. Robô composto de um microcontrolador multicore de 8 núcleos, suporte a micro SD, placa de ensaio para montagem de circuitos próprios, conexão USB e conversores analógico/digital e digital/analógico;
  8. 8. Materiais ● Fototransistor, capacitor e resistor para criar um circuito sensível a luz visível; ● 1 Sensor ultrassônico para referenciamento de posição.
  9. 9. ActivityBot - Componentes Elétricos ● Configurar os jumpers para os encoders e servomotores; ● Instalar os resistores na borda da breardboard; ● Encaixar o porta pilhas e conectar no plug. (5 pilhas modelo AA de 1,5V).
  10. 10. ActivityBot - Navegação ● Utiliza encoders que informam ao microcontrolador informações como velocidade e aceleração; ● Formato da roda interage com o infravermelho e cria um padrão de sinal digital que é utilizado para obter as informações.
  11. 11. ActivityBot - Navegação ● Antes de utilizar o robô, deve ser feita uma calibração dos encoders com o ActvityBot na superfície onde será utilizado; ● O programa de calibração instrui o robô a dar umas voltas e fazer algumas curvas a diferentes velocidades num espaço de 1m2 por aproximadamente dois minutos a fim de coletar dados; ● As informações coletadas são gravadas em uma tabela dentro da EEPROM. Estes dados são utilizados para saber quanta força nos servomotores é necessária para se atingir determinada velocidade. Uso de interpolação quando necessário.
  12. 12. ActivityBot - Navegação ● Os dados são coletados para cada servomotor; ● Esta calibração garante maior precisão para que o robô se movimento a velocidade desejada (em tiques por segundo).
  13. 13. ActivityBot - Navegação ● Cada furo na roda representa um tique. Roda possui 64 tiques (combinação dos furos da roda e do aro); ● Cada tique tem aproximadamente 3,25 mm de comprimento. Logo: Tiques = deslocamento(mm) ÷ 3,25(mm)
  14. 14. ActivityBot - Navegação ● Todo o movimento do robô é calculado em tiques. Isto inclui valores para aceleração, curvas e velocidade. A tabela abaixo mostra as principais funções utilizadas para navegação. drive_setRampStep(speed) Configura a acelação máxima drive_setMaxStep(speed) Configura a velocidade máxima drive_ramp() Acelera o robô até a velocidade máxima a uma taxa definida em drive_setRampStep() drive_rampStep() Acelera o robô no número de tiques pro segundo definido em drive_setRamStep() drive_goto(a,b) Desloca a roda da esquerda e da direita em “a” e “b” tiques respectivamente drive_speed(a,b) Faz as rodas da esquerda e da direita girarem “a” e “b” tiques por segundo respectivamente
  15. 15. ActivityBot - Navegação ● Parâmetros para fazer as principais rotações: ωº Graus Tiques Comando para o ActivityBot 120º 34,090 drive_goto(34,-34) 90º 25,567 drive_goto(26,-25) 72º 20,454 drive_goto(21,-21) 60º 17,045 drive_goto(17,-17) 45º 12,783 drive_goto(13,-13) 36º 10,227 drive_goto(11,-11) 10º 2,840 drive_goto(3,-3)
  16. 16. ActivityBot - Sensor de Ultrassom ● Utiliza reflexão de ondas sonoras para detecção de objetos. Análogo ao sonar em morcegos e submarinos.
  17. 17. ActivityBot - Sensor de Ultrassom ● Vantagens ○ Consegue detectar entre 3 e 330 cm; ○ Consegue detectar objetos de longe, lógicas mais elaboradas podem ser utilizadas. ● Desvantagens ○ Não detecta objetos alinhados obliquamente ; ○ Não detecta objetos muito pequenos; ○ Algumas superfícies macias absorvem o ultrassom em vez de refleti-lo.
  18. 18. ActivityBot - Sensor de Luz Visível ● Utiliza um circuito composto de um fototransistor e um capacitor para detectar a intensidade luminosa.
  19. 19. ActivityBot - Sensor de Luz Visível ● Vantagens ○ Bom para detectar preto e branco; ○ Pode detectar sombras e interagir com objetos luminosos. ● Desvantagens ○ Baixa precisão para distinguir cores; ○ Muito sujeito a inteferências externas, como luz solar.
  20. 20. Algoritmos ● Definição: Um algoritmo representa um conjunto específico de instruções para realizar um procedimento ou realizar uma determinada tarefa, em um tempo finito. Alguns algoritmos específicos também se chamam método, procedimento ou técnica. A palavra algoritmo é uma distorção de al-Khwārizmī, um matemático persa que escreveu um trabalho influente sobre métodos algébricos; ● O processo de de aplicar um algoritmo em dados de entrada afim de obter dados de saída é chamado de computação.
  21. 21. Algoritmos ● Função de Complexidade de Tempo: Modelagem matemática que busca informar em quanto tempo determinado algoritmo executou uma determinada tarefa; ● Função de Complexidade de Espaço: Modelagem matemática que busca informar o quanto de memória determinado algoritmo utilizou para a execução de determinada tarefa.
  22. 22. Grafos - Formas de Representação Matricial Lista Encadeada
  23. 23. Algoritmo - BFS vs DFS
  24. 24. Algoritmo - Dijkstra
  25. 25. Algoritmos de Busca - Comparativo Algoritmo DFS BFS Dijkstra-(Array) Dijkstra-(Heap) Tempo de Execução O(E+V) O(E+V) O(V2 + E) O(( + ) log2 )
  26. 26. Proposta ● Dividir o que deve ser feito em duas tarefas: a. Mapear o cenário proposto; b. Voltar para o quadrado inicial pelo caminho elegido por um algoritmo de busca. ● Regras a. Não pode sair do cenário e nem ficar preso na parede; b. Na tarefa “a”, deve passar por todos os quadrados em um zigue-zague sistemático; c. Na tarefa “b” não pode passar por cima de um quadrado preto.
  27. 27. Proposta - Construção do Cenário ● Cenário composto de um papel Paraná na cor branca de 60x80 cm. Composto de 20 quadrados, dividindo os espaços. Em um total de 5 linhas por 4 colunas; ● Divisão dos quadrados feita com fita isolante preta; ● Paredes erguidas com isopor, com suportes de palitos de churrasco; ● Cor preta dos quadrados preenchida com papel camurça. Permite reconfigurar o cenário.
  28. 28. Proposta - Configuração do Robô ● Utilização de sensor de ultrassom frontal para medir a distância da parede; ● Fototransistor isolado e apontado para baixo para ler o preto e o branco dos percursos. ● Instalação do shield XBee e do cartão de memória.
  29. 29. Proposta - Lógica de Zigue-Zague ● Primeiro adotou-se uma convenção sobre as direções em que o robô pode ir conforme os quatro pontos cardeais: norte, sul, leste e oeste; ● Para realizar o escaneamento, o robô deve passar por todos os quadrados do cenário e identificar a cor que cada um possui. Isto é possível de ser feito programando o robô para realizar um percurso de zigue-zague ao longo de todo o cenário.
  30. 30. Proposta - Lógica de Zigue-Zague
  31. 31. Proposta - Lógica de Zigue-Zague
  32. 32. Proposta - Lógica de Zigue-Zague ● Esta lógica pode ser melhorada, ao se utilizar um vetor para armazenar uma sequência de sentidos que se repetem em um padrão quando se faz um zigue- zague.
  33. 33. Proposta - Detecção de cor ● O programa utilizado para detectar a variação do preto para o branco ao percorrer o cenário funciona em uma thread separada. Utiliza memória compartilhada através de variáveis globais declaradas com a palavra chave volatile; ● Verifica variações de cor a cada 50 ms. Caso haja uma variação muito grande entre duas leituras detecta a mudança de cor.
  34. 34. Proposta - Detecção de cor ● Utiliza uma borda ao redor dos quadrados negros para que o robô saiba diferenciar o preto de uma linha para o preto de um quadrado; ● Faz uso de uma máquina de estados para saber a fronteira que separa os quadrados e mapear corretamente a cor dos mesmos.
  35. 35. Proposta - Detecção de cor
  36. 36. Proposta - Tráfego de dados (Ida) ● Limitações de memória no robô quanto ao tamanho do código; ● Melhor solução aplicada: Utilizar XBee para realizar processamento remoto; ● Dessa forma o ActivityBot somente portaria o códigos de navegação e escaneamento, enquanto a modelagem de grafos e a aplicação dos algoritmos de busca caberia ao computador; ● Uma vez que as informações estiverem processadas, traduzir para coordenadas e enviar de volta ao robô para que ele execute a rota escolhida.
  37. 37. Proposta - Tráfego de dados (Ida) ● Formato dos dados enviados: ● Exemplo: ○ 4
  38. 38. Proposta - Execução dos Algorítmos ● Criação de uma matriz auxiliar antes de criar o grafo; ● Levar em conta o movimento de zigue-zague.
  39. 39. Proposta - Execução dos Algorítmos ● Criar o grafo, estrutura de dados e algoritmos obtidos através do site do professor Ziviani; ● Adaptar os dados da matriz para poder criar o grafo e conectar os seus vértices; ● Executar um dos algoritmos de busca no grafo; ● Converter o caminho obtido em coordenadas para que os dados sejam transmitidos de volta ao ActivityBot.
  40. 40. Proposta - Execução dos Algorítmos ● 19 - 18 - 17 - 16 - 12 … se torna Oeste Oeste Oeste, Sul … e é transmitido ao Robô.
  41. 41. Proposta - Tráfego de dados (volta) ● Uma vez que os resultados com as coordenadas chegam ao robô, basta executar as intruções conforme o trecho de código ao lado.
  42. 42. Resultados Obtidos - Mapeamento
  43. 43. Resultados Obtidos - DFS
  44. 44. Resultados Obtidos - BFS
  45. 45. Resultados Obtidos - Dijkstra
  46. 46. Resultados Obtidos ● Apanhado Geral: Algoritmo Tempo do escaneamento Tamanho do caminho (em quadrados) Caminho ótimo Tempo de volta Total de Curvas DFS 90 segundos 14 Não 65 segundos 5 BFS 91 segundos 8 Sim 37 segundos 4 Dijkstra 91 segundos 8 Sim 32 segundos 2
  47. 47. Conclusões ● Oportunidade para trabalhar com robótica (e todos os seus efeitos); ● Trabalhar com transmissão sem fio via XBee; ● Papel de algoritmos na resolução de problemas, comportamento das técnicas utilizadas em harmonia com a teoria; ● Limitações do ActivityBot; ● Foi possível demonstrar o que foi proposto.
  48. 48. Trabalhos Futuros ● Utilizar outras técnicas de busca. A* utilizando número de curvas como heurística; ● Aplicar o mesmo conceitos a outros modelos de robôs, com hardware mais potente ou movimentos mais precisos; ● Aplicar técnicas de varredura mais avançadas, tal como problemas SLAM.
  49. 49. Obrigado!

×