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
Download

Diapositivo 1 - LAR - UA