Projecto Atlas II Universidade de Aveiro Robot Autónomo para Competição no Robótica 2004 Engenharia Mecânica DEMUA Festival Robótica 2004 3 2 1 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) • Desenvolver Robot Autónomo e Móvel • Percorrer autonomamente uma pista de trajecto conhecido • Remodelação e actualização da versão do ano passado Apresentação do problema Zona de Obras • Pista e Obstáculos Passadeira Painel Sinalético Parque Túnel 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: Windows LINUX • Ambiente de Programação: Matlab Linguagem C • Microcontrolador: Carta Aquisição Sinais PIC (16F786) • Seguimento de Pista: Webcam 2 Webcams • Painel Sinalético: Sensores Terceira Webcam Percepção dos obstáculos Memorização do percurso a efectuar a partir de um ponto de referencia Parque Túnel Sensor de Infravermelhos analógico Zona de Obras Passadeira Linhas da pista Visão – Câmaras USB fornecem a imagem que será analisada pelo algoritmo de navegação Painel Sinalético Visão – Algoritmos de identificação de cor Retroreflector de infravermelhos Configuração do Robot Câmara Esquerda Câmara Direita Botão de emergência Dissipador do Circuito de Direcção Fonte de Alimentação Baterias Tracção Potenciómetro Placa Electrónica Régua de Sensores Infravermelhos 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, Baterias Estrutura de Alumínio Direcção / PC START Esquema Funcional Motherboard – CPU Central • • • Imagem da câmara da Esquerda Ordem de velocidade Ordem de direcção 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 Sensores dos pinos Sensor da passadeira MicroControlador PIC16F876 • • • Imagem da câmara da Direita 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 entre CPU e PIC via RS232 Programação Baixo Nível I Introdução ao PIC16F876 • O que é? .É um microcontrolador – trata-se de um controlador lógico programável de tamanho muito reduzido. .Pode ser comparado a um computador em ponto pequeno • Para que serve? .É 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. • Função no Atlas Será responsável pelo controlo de baixo nível, o que permitirá simplificar o algoritmo principal de navegação Programação Baixo Nível I Protocolo de comunicação desenvolvido. Sentido • Quantidade Identificador Ordem para alterar estado dos motores (1 byte). PC 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. Permite saber qual a ordem que se quer dar bem como caracterizá-la num único byte. PIC Aplicação do PIC no Robot Controlo em malha fechada para o motor DC Controlo malha fechada do motor passo a passo PWM Sentido de Rotação PWM tensão correspondente à direcção Programação Alto Nível I Colocação das câmaras Proposta inicial • Longo alcance. • Robots vencedores utilizam esta configuração. • • Fácil encontrar uma configuração do robot em que se perca a linha. Difícil interpretação das imagens obtidas. Proposta Intermédia Solução Final • Médio alcance. • • Diminui risco de perda de linha. • • Solução inovadora. • Solução inovadora. • Pouco alcance. • Aumenta a necessidade de rapidez de processamento. • Difícil interpretação das imagens. Fácil interpretação das imagens. Risco reduzido de perda de linha. Programação Alto Nível II Busca de Linha • Dada a seguinte imagem: • Importa decidir um limite de binarização adequado. • Busca de linha vertical • Busca de linha horizontal • 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 • Cálculo do ângulo da linha. • Construção da linha virtual. • Cálculo do desfasamento virtual. • Compensação do desfasamento. Virar para a esquerda. • 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 • Cálculo dos ângulos entre pontos consecutivos. • Ângulos consecutivos muito dispares. Deve ser a câmara direita a ditar a • A imagem deve ser invalidada e… direcção a tomar. Outros Parâmetros: • Desvio padrão dos ângulos consecutivos. • Busca de linha tem em conta a sua espessura. 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 HSV • A informação da cor está contida apenas numa variável. • É dos mais utilizados. • Fácil de obter, com base na informação vinda da câmara. Programação Alto Nível VIII RGB vs HSV RGB HSV Participação no robótica 2004 Data: 25-04-2004 24-04-2004 23-04-2004 Classificação Final: Local: Porto Duração da Prova: 0:01:03 0:02:05 0:01:00 Classificação Parcial: PrimeiraManga Terceira Segunda Manga Conclusões Soluçã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. Configuração das câmaras •O pouco alcance implica malha aberta na aproximação à passadeira. •Foi uma solução adequada ao tempo disponível. 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. 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