Trabalho Computacional PD1

Slides:



Advertisements
Apresentações semelhantes
AULA 01 PROGRAMAÇÃO DINÂMICA
Advertisements

Geometria Computacional Fecho Convexo II
Deadlocks Professora: Lúcia Drummond. Deadlocks Recursos: hardware ou informação Preemptivo Não preemptivo Uso do Recurso: 1. Pedido (Request ou Open)
Inteligência Artificial
Perímetros e Áreas de Figuras Planas
Árvores de Decisão Tabelas de Decisão Aplicações Informáticas
Exercícios PAA- Grafos
DERIVADAS E DIFERENCIAIS
Eletrônica Digital Funções e Portas Lógicas
Teste de Software Parte 3.
Prof. Fagner Marques Robótica Prof. Fagner Marques.
ANÁLISE DE ÁRVORE DE FALHAS – AAF
Geometria Computacional Fecho Convexo
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Introdução à Lógica de Programação (cont.)
A História da Quadradinha
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Modelagem como metodologia de ensino
Professor Fernando Luís
Tópicos em Sistemas Distribuídos
Análise do Lugar das Raízes
● ● ● ● ● ● ● ● ● ● ● ● ● O ● ● ● ● ● ● ● ● ● ● ● CIRCUNFERÊNCIA
Informática Teórica Engenharia da Computação
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Exercícios PAA- Grafos
Tela e comandos do Lego Mindstorms
Busca com informação e exploração
… com figuras geométricas Trabalho de Gabriela Amorim
Diagrama de Atividades
Área de um polígono regular
Inteligência Artificial
ÁREAS DAS FIGURAS PLANAS
Diagrama de Atividades
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
Um homem, que assiduamente comparecia às reuniões de um grupo de amigos, sem comunicar à ninguém,
Introdução a Algoritmos
Programação de PIC em C Exposição das funções básicas para
Thales de Mileto Nasceu a 600 e 550 a.C. Nasceu na Ásia Menor.
Vamos Brincar.
Prof. Jefferson Biajone FCS – Teia do Saber – 2005
Topologias Trabalho realizado por: João Santos
JARLes Equipe: Arthur Moreno Jefferson Ramos Lucas Felix
IV Encontro Sul Fluminense de Educação Matemática - ESFEM 16 e 17 de dezembro de 2005 LOCAL: Unidade de Ensino, Pesquisa e Extensão Dr. Mário Sombra de.
Inteligência Artificial Aula 15 Profª Bianca Zadrozny
Resolução de Problemas de Busca
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
Tutorial: Construção de Avatar.
Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D – Event Utilities e Scripting Alberto B. Raposo
Fundamentos de linguagens de programação
SISTEMAS DE APOIO À DECISÃO - SAD
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Introdução ao Roteamento e ao Encaminhamento de Pacotes Protocolos.
Geometria Computacional Fecho Convexo
Projeto utilizando o ambiente computacional Logo.
CÁLCULO COM GEOMETRIA ANALÍTICA II Funções de várias variáveis
Introdução à Programação
Marcelo Manuel Ferreira Pinto
Etapas : Algoritmo é uma sequência lógica de instruções que podem ser executadas. É importante destacar que qualquer tarefa que siga um certo padrão.
Profª Maria Cristina Kessler
DISTRIBUIÇÕES DE PROBABILIDADE
Abordagem Sistemática Guilherme Amaral Avelino Avaliação e Controle de Sistemas de Informação.
Sistemas Operacionais IV – Gerenciamento de E/S
Alô, mundo!. Vamos ao Dev C++ discutir os seguintes tópicos: – case sensitive – edentação – define – \n, \t, \a – tipos basicos: int, float, char – printf,
FERRAMENTAS DA QUALIDADE
Desvio Padrão (V), em termos financeiros, é entendido como o valor do risco das operações. É obtido a partir da raiz quadrada da Variância; Variância (V²),
FERRAMENTAS DA QUALIDADE. Para que servem as “Ferramentas”? - Ferramentas não resolvem problemas nem melhoram situações – quem faz isso são as PESSOAS.
Transcrição da apresentação:

Trabalho Computacional PD1 Resgate de pessoas por robôs em terrenos acidentados Romário Espíndula Camilo Avancini

Porquê robôs? Prós: Não se machucam Podem fazer coisas que humanos não fazem Não colocam mais pessoas em risco Contras: Não tomam decisões sozinhos, a não ser que a decisão esteja expressada no código. As decisões tem que ser expressadas através de cálculos matemáticos, muitas vezes complexas.

Primeira etapa – Definição do Plano Para que o robô possa andar, primeiro devemos descrever como ele se movimentará no plano onde se encontra. Os robôs podem utilizar câmeras, sensores ( sonoros, infra-vermelho,etc... ), entre outros dispositivos que lhe forneçam um “overview” do plano onde se encontra. No nosso caso limitamos o plano à formas geométricas em 2D.

Primeira etapa – Definição do Plano Nosso maior problema em relação ao plano era como verificar se um ponto poderia ser utilizado pelo robô em seu movimento, ou se ele estava ocupado por algum polígono. Para definirmos o plano de forma facilitada, decidimos utilizar polígonos regulares ( triangulo, circulo e quadrado ) , e estipulamos um tipo de dado de entrada padrão a todos a ser dado, como mostrado no próximo slide.

Primeira etapa – Definição do Plano Os polígonos são definidos de acordo com os desenhos acima. O plano é definido por uma lista de tuplas do tipo: (nomedopoligono,(Xi,Yi),lado) Exemplo: [(“circ”,(3,3),2)] Isso gerará um circulo de centro em x=3 e y=3, com raio=2

Primeira etapa – Verificação no plano Como fizemos a entrada de forma generalizada, possibilitou criar uma função que dado um ponto (X,Y) faz um “scan” em todo o plano e verifica se aquele ponto pertence à algum polígono, retornando um valor booleano (False) caso isso ocorra. Permitindo que pudéssemos analisar os passos do robô para que ele não executasse nenhum movimento que não era possível.

Segunda etapa – Movimento do robô Como expressar através de uma lógica matemática um movimento que deve demonstrar um certo grau de inteligência? Idéias básicas: Deve perseguir o local onde deseja estar Deve desviar dos obstáculos no caminho Deve buscar o melhor caminho, ou mais próximo que puder disso.

Segunda etapa – Movimento do robô Após várias tentativas e lógicas diferentes, construímos um conceito de movimento que segue algumas etapas.

Segunda etapa – Movimento do robô O primeiro passo da lógica é sempre tentar se aproximar o máximo que puder do ponto a ser perseguido. Neste caso são as setas que NÃO estão circuladas de vermelho.

Segunda etapa – Movimento do robô O segundo é que caso esses movimentos não sejam possíveis, retornar a um ponto anterior ( movimentos circulados de vermelho ) e tentar seguir por outro ponto.

Segunda etapa – Movimento do robô O problema é que como a primeira lógica manda ele se aproximar o máximo possível do ponto desejado, logo o robô executará o passo novamente para o ponto, finalizando o movimento do robô em um loop “infinito” de ida e volta para aquele mesmo ponto. Para evitar problemas desse tipo utilizamos várias funções para evitar redundâncias nos movimentos. Tornando-o de certa forma “inteligente”.

Exemplos do programa – Sem OpenGL [("Resgate 1","45 metros percorridos aproximadamente","33s a uma velocidade de 2m/s, adicionado de 10s (tempo de captura)","Pontos por onde o robo passou para executar o resgate da vitima: [(12.0,-12.0),(11.0,-11.0),(10.0,-10.0),(10.0,-9.0),(9.0,-8.0),(8.0,-7.0),(7.0,-6.0),(6.0,-7.0),(5.0,-8.0),(4.0,-9.0),(3.0,-9.0),(2.0,-9.0),(1.0,-9.0),(0.0,-9.0),(-1.0,-9.0),(-2.0,-8.0),(-3.0,-7.0),(-4.0,-8.0),(-4.0,-9.0),(-4.0,-8.0),(-3.0,-7.0),(-2.0,-8.0),(-1.0,-9.0),(0.0,-9.0),(1.0,-9.0),(2.0,-9.0),(3.0,-9.0),(4.0,-9.0),(5.0,-8.0),(6.0,-7.0),(7.0,-6.0),(8.0,-7.0),(9.0,-8.0),(10.0,-9.0),(10.0,-10.0),(11.0,-11.0),(12.0,-12.0)]"),("Resgate 2","35 metros percorridos aproximadamente","28s a uma velocidade de 2m/s, adicionado de 10s (tempo de captura)","Pontos por onde o robo passou para executar o resgate da vitima: [(12.0,-12.0),(11.0,-11.0),(10.0,-10.0),(10.0,-9.0),(9.0,-8.0),(8.0,-7.0),(7.0,-6.0),(6.0,-5.0),(5.0,-4.0),(4.0,-3.0),(3.0,-2.0),(2.0,-1.0),(1.0,0.0),(1.0,1.0),(1.0,0.0),(2.0,-1.0),(3.0,-2.0),(4.0,-3.0),(5.0,-4.0),(6.0,-5.0),(7.0,-6.0),(8.0,-7.0),(9.0,-8.0),(10.0,-9.0),(10.0,-10.0),(11.0,-11.0),(12.0,-12.0)]"),("Resgate 3","67 metros percorridos aproximadamente","44s a uma velocidade de 2m/s, adicionado de 10s (tempo de captura)","Pontos por onde o robo passou para executar o resgate da vitima: [(12.0,-12.0),(11.0,-11.0),(10.0,-10.0),(10.0,-9.0),(9.0,-8.0),(8.0,-7.0),(7.0,-6.0),(6.0,-5.0),(5.0,-4.0),(4.0,-3.0),(3.0,-2.0),(2.0,-1.0),(1.0,0.0),(0.0,1.0),(-1.0,2.0),(-2.0,2.0),(-3.0,3.0),(-4.0,4.0),(-5.0,5.0),(-6.0,6.0),(-7.0,7.0),(-8.0,8.0),(-9.0,8.0),(-10.0,9.0),(-11.0,10.0),(-11.0,11.0),(-11.0,10.0),(-10.0,9.0),(-9.0,8.0),(-8.0,8.0),(-7.0,7.0),(-6.0,6.0),(-5.0,5.0),(-4.0,4.0),(-3.0,3.0),(-2.0,2.0),(-1.0,2.0),(0.0,1.0),(1.0,0.0),(2.0,-1.0),(3.0,-2.0),(4.0,-3.0),(5.0,-4.0),(6.0,-5.0),(7.0,-6.0),(8.0,-7.0),(9.0,-8.0),(10.0,-9.0),(10.0,-10.0),(11.0,-11.0),(12.0,-12.0)]")....

Exemplos do programa – Com OpenGL

Exemplos do programa – Plano esperado

Outros exemplos

Outros exemplos

Outros exemplos