321
Projecto Atlas II
Festival Robótica 2004
Engenharia Mecânica
DEMUA
Universidade de Aveiro
Robot Autónomo para Competição no Robótica 2004
Autores: Miguel Oliveira
Miguel Neta
Orientador: Prof. Dr. Vítor Santos
Objectivos
• Participação no Festival Robótica 2004 – Classe CA (Condução Autónoma)
• Percorrer autonomamente uma pista de trajecto conhecido
• Desenvolver Robot Autónomo e Móvel
• Remodelação e actualização da versão do ano passado
Apresentação do problema
• Pista e Obstáculos
Túnel
Painel Sinalético
Passadeira
Parque
Zona de Obras
As três rondas • Primeira – Percorrer a pista duas vezes sem qualquer
obstáculo. O Robot deve imobilizar-se no final do percurso• Segunda – Presença do painel sinalético. O robot deve fazer
reconhecimento por visão daquele e obedecer às ordens dadas
• Terceira – Presença de mais dois obstáculos, zona de obras (consiste num trajecto alternativo demarcado por pinos) e túnel.
Plano de Intervenção
• Sistema Operativo:
• Ambiente de Programação:
• Microcontrolador:
• Seguimento de Pista:
• Painel Sinalético:
Windows LINUX
Matlab Linguagem C
Sensores Terceira Webcam
Webcam 2 Webcams
Carta Aquisição Sinais PIC (16F786)
Percepção dos obstáculos
Túnel
Painel Sinalético
Passadeira
Parque
Zona de Obras
Visão – Câmaras USB fornecem a imagem que será analisada pelo algoritmo de navegação
Linhas da pista
Retroreflector deinfravermelhos
Sensor de Infravermelhosanalógico
Visão – Algoritmos de identificação de cor
Memorização do percurso aefectuar a partir de um ponto dereferencia
Configuração do RobotCâmara Direita
Botão de emergência
Fonte de Alimentação
Potenciómetro
Placa Electrónica
da Direccão
Placa Electrónica
da Tracção / PIC
Suporte para Câmara
dos Semáforos
Motherboard
Fusível de Protecção
Servo Amplificador da
Tracção
Botões de ON/OFF,
RESET, PIC RESET,
START
Câmara Esquerda
Dissipador do Circuito de Direcção
Baterias Tracção
Baterias
Direcção / PC
Régua de Sensores
Infravermelhos
Estrutura de Alumínio
Esquema Funcional
Imagem dacâmara da Esquerda
Imagem dacâmara daDireita
Motherboard – CPU Central • Analisa imagem das câmaras e informações vindas dos sensores
• Algoritmo de navegação toma uma decisão no que respeita à velocidade e direcção desejadas
• Envia decisões tomadas para o PIC
Ordem develocidade
Ordem dedirecção
Sensoresdos pinos
Sensor dapassadeira
MicroControlador PIC16F876• Interpreta as ordens vindas do Algoritmo de
Navegação e envia os sinais eléctricos necessários aos motores
• Recolhe informações de todos os sensores do robot• Envia para o algoritmo de navegação as informações
dos sensores de distância e da passadeira
Comunicação entreCPU e PIC viaRS232
.É um microcontrolador – trata-se de um controlador lógico programável de tamanho muito reduzido.
.É muito utilizado hoje em dia – são a nova geração de microcontroladores aplicado na indústria de electrodomésticos devido à sua facilidade de programação (são facilmente reprogramados por porta RS232)
.Consegue ler valores analógicos ou digitais de tensão, gerar PWM e são totalmente programáveis, podendo inclusivamente alterar a função dos pinos (por exemplo de entrada para saída) em tempo real.
Será responsável pelo controlo de baixo nível, o que permitirá simplificar o algoritmo principal de navegação
• O que é?
.Pode ser comparado a um computador em ponto pequeno
• Para que serve?
• Função no Atlas
Programação Baixo Nível I Introdução ao PIC16F876
Programação Baixo Nível I Protocolo de comunicação desenvolvido.
PC PICOrdem para alterar estado dos
motores (1 byte).
Identificador
SentidoQuantidade
• Permite saber qual a ordem que se quer dar bem como caracterizá-la num único byte.
Informa o estado de todos os sensores e botões (20 bytes).
• Início de trama.• Sensores de túnel / zona de obras.• Sensor de passadeira.• Estado dos botões.• Final de trama.
Aplicação do PIC no Robot
PWM
PWMSentido de Rotação
tensão correspondente à direcção
Controlo malha fechada do motor passo a passoControlo em malha fechada para o motor DC
Programação Alto Nível I Colocação das câmaras
Proposta inicial
• Longo alcance.
• Robots vencedores utilizam esta configuração.
• Difícil interpretação das imagens obtidas.
Proposta Intermédia
• Médio alcance.
• Diminui risco de perda de linha.
• Fácil encontrar uma configuração do robot em que se perca a linha.
• Difícil interpretação das imagens.
• Solução inovadora.
Solução Final
• Pouco alcance.
• Fácil interpretação das imagens.
• Solução inovadora.
• Risco reduzido de perda de linha.
• Aumenta a necessidade de rapidez de processamento.
Programação Alto Nível II Busca de Linha
• Dada a seguinte imagem:
• Importa decidir um limite de binarização adequado.
• Busca de linha horizontal
• Busca de linha vertical
• Ponto de linha encontrado (Busca Vertical)
• Ponto de linha encontrado (Busca Horizontal)
Programação Alto Nível III Busca da Postura Ideal
• Localização defeituosa • Câmara da direita
• Desfasamento em relação à linha ideal. Valores de linha dos pixeis encontrados (azul) muito elevados.
• Compensação do desfasamento virando para a esquerda.
• Compensação é função do desfasamento.
Programação Alto Nível IV Busca da Postura Ideal
• Orientação defeituosa • Câmara da Esquerda
• Construção da linha virtual.
• Cálculo do desfasamento virtual.
• Compensação do desfasamento. Virar para a esquerda.
• Cálculo do ângulo da linha.
• As falhas de orientação pesam mais do que as de localização.
Programação Alto Nível V Parâmetros de Validação
• Situação Problemática I • Câmara da Esquerda
• Ângulos consecutivos muito dispares.
• Desvio padrão dos ângulos consecutivos.• Busca de linha tem em conta a sua espessura.
• Cálculo dos ângulos entre pontos consecutivos.
Outros Parâmetros:
• A imagem deve ser invalidada e…Deve ser a câmara direita a ditar a
direcção a tomar.
Programação Alto Nível VI reconhecimento dos símbolos do sinalizador.
• Como reconhecer os símbolos? Reconhecimento de Forma
Identificação de Cor
• É suficiente para reconhecer todos os símbolos?
Programação Alto Nível VII Modelos de cor
• Modelos de Cor: Modelos matemáticos para representar a cor de cada pixel.
RGB
• É dos mais utilizados.
• Fácil de obter, com base na informação vinda da câmara.
HSV
• A informação da cor está contida apenas numa variável.
Programação Alto Nível VIII RGB vs HSV
RGB HSV
Participação no robótica 2004
Primeira MangaSegunda MangaTerceira MangaData: 23-04-2004
Local: Porto
Duração da Prova: 0:01:00
Classificação Parcial:
Data: 24-04-2004
Local: Porto
Duração da Prova: 0:02:05
Classificação Parcial:
Data: 25-04-2004
Local: Porto
Duração da Prova: 0:01:03
Classificação Parcial:
Classificação Final:
ConclusõesSolução Mecânica de Mobilidade•Já utilizada pelos nossos colegas no ano passado,•Facilita a escolha da direcção de forma rápida e eficaz,•Persistem ainda alguns problemas no controlo da direcção.
Alteração do sistema operativo / Programação em c•Linux dispõe de muito mais potencial para aplicações robóticas, •Ficheiros compilados de execução muito mais rápida,•Aprendizagem difícil do Linux e C,•Fazem aumentar imenso o potencial do robot.
Utilização do microcontrolador•É possível efectuar o pré-processamento dos dados obtidos,•Possibilita uma cisão entre o software e o firmware,•No futuro, talvez se deva utilizar um microcontrolador superior.
Duas câmaras para seguimento de pista•Concede redundância ao sistema,•Opção, sem dúvida acertada.
Câmara para interpretação do semáforo•Apesar de não estar a funcionar aquando do festival, é a única opção possível,•Faltou a implementação da heurística que analisa os histogramas HSV.
Configuração das câmaras•O pouco alcance implica malha aberta na aproximação à passadeira.•Foi uma solução adequada ao tempo disponível.
Calendarização de tarefas
Agradecimentos
• Prof. Dr. Vítor Santos
• Eng. Camilo Christo
• Eng. António Festas
• Eng. André Quintã
• Luís Clara Gomes
• A todos os nossos colegas, em especial aos nossos antecessores José Luís Silva e José Miguel Gomes
FIM
Top Related