Este documento resume um projeto sobre condução autônoma de um robô usando visão computacional. O projeto envolveu a calibração de uma câmara, desenvolvimento de algoritmos para detecção de vias em imagens e controle do robô para navegação autônoma. Dois métodos foram desenvolvidos: um para identificar duas vias e outro para identificar uma via única. Ambos os métodos usaram processamento de imagem para segmentar as vias e guiar o movimento do robô. Testes demonstraram que o método de duas vias foi mais
1. Licenciatura em Engenharia Electrotécnica
Energia e Automação
AUTOBOT UC Projecto
CONDUÇÃO AUTÓNOMA
CONDUÇÃ AUTÓ
ÇÃO
F2
Autor:
Nuno Miguel Gonçalves Reis
Setembro 2010
2. Sumário
Sumá
� Objectivos
� Introdução
� Calibração da câmara
◦ Modelo de uma câmara;
◦ Método de calibração.
� OpenCV
◦ Método de identificação de duas vias;
◦ Método de identificação de uma via.
� ARIA
◦ O software;
◦ Funções de controlo.
� Conclusões
UC Projecto 2
Nuno Reis, Setembro 2010
3. Objectivos
Objectivo geral:
� Destina-se ao desenvolvimento de um sistema baseado em
visão para o robô Pioneer P3-DX de forma a se deslocar numa
pista pré-definida.
Outros Objectivos:
� Estudo de algoritmos de visão computacional;
� Estudo e implementação de um método para a calibração da
câmara usada;
� Desenvolvimento de algoritmos para a detecção das vias;
� Desenvolvimento de software para o controlo do rob ô para
condução autónoma a partir visão fornecida pela câmara.
UC Projecto 3
Nuno Reis, Setembro 2010
4. Introdução
� A vis ã o por computador permite desenvolver sistemas
capazes de interpretar e modelar o ambiente real onde o
robô se movimenta.
� Utilizando uma c â mara é possivel extrair informa ç õ es do
mundo real (3D) para (p ó s-processamento) fazer actuar o
robô de acordo com os dados analisados.
� A introdu ç ã o de vis ã o num rob ô m ó vel traduz-se num
significativo aumento da sua versatilidade e seguran ç a nas
suas operações.
UC Projecto 4
Nuno Reis, Setembro 2010
5. Calibração de uma câmara
Calibraç câ
Modelo de uma Câmara:
� O modelo mais simples de uma c â mara, é um modelo de
câmara pontual (“pin-hole camera model”)
� Pode ser entendido como uma caixa fechada em que se faz um
pequeno orif í cio (um ponto). Os raios luminosos passam por
esse orificio e s ã o projectados no fundo da caixa onde a
imagem se forma.
Figura 1 - Modelo de uma câmara pontual. Figura 2 – Geometria da câmara pontual.
UC Projecto 5
Nuno Reis, Setembro 2010
6. Calibração de uma câmara
Calibraç câ
Modelo de uma Câmara:
� Para que se obtenha uma representação da imagem no sentido
directo usa-se um modelo aproximado.
� O ponto do orifício é considerado o centro da câmara e o plano
da imagem é colocado agora à frente do sensor (centro da
câmara).
Figura 3 – Geometria aproximada da câmara pontual.
UC Projecto 6
Nuno Reis, Setembro 2010
7. Calibração de uma câmara
Calibraç câ
Modelo de uma Câmara:
� É caracterizado por uma relação de triângulos:
Coordenadas do ponto na imagem:
X Y
x = fx y = fy
Z Z
X Y
x = fx + cx y = fy + cy
Z Z
Figura 4 – Relação de triângulos.
UC Projecto 7
Nuno Reis, Setembro 2010
8. Calibração de uma câmara
Calibraç câ
Modelo de uma Câmara:
� Representando os pontos 3D e os pontos 2D por vectores de
coordenadas homog é neas, pode-se expressar a projec ç ã o como um
mapeamento linear entre esses vectores através de uma multiplicação
de matrizes:
Ponto da Imagem = Matriz de Transformação x Ponto Real
Ponto Real = Matriz de Transformação-1 x Ponto da Imagem
UC Projecto 8
Nuno Reis, Setembro 2010
9. Calibração de uma câmara
Calibraç câ
Processo de calibração:
� A calibra ç ã o de uma c â mara é um processo que é realizado
para que seja possível obter informações métricas 3D a partir
de imagens 2D capturadas pela câmara.
Figura 5 – Processo de calibração de uma câmara .
� Nesse processo é obtido um conjunto de parâmetros que nos
dão essas informações.
UC Projecto 9
Nuno Reis, Setembro 2010
10. Calibração de uma câmara
Calibraç câ
Processo de calibração:
� Os referidos parâmetros incluem a geometria interna e óptica
da câmara e uma estimativa da posição orientação da câmara
associada a uma determinada imagem.
� São denominados por:
o Parâmetros Interínsecos
Distância focal (f), centro da imagem (c), coeficientes de distor ção e
factores de escala.
o Parâmetros Extrínsecos
Conjunto de par â metros que identificam a transforma ç ã o entre um
referêncial desconhecido (câmara) e o referencial conhecido (mundo).
UC Projecto 10
Nuno Reis, Setembro 2010
11. Trabalho Realizado
Método de calibração de Zhang:
� Usa-se um padr ã o (bidimensional) que é posicionado de
diversas formas no espaço dando origem a m imagens.
� Admite-se neste m é todo que os par â metros intr í nsecos da
câmara são os mesmos em todas as imagens.
Figura 6 – Imagens do “chessboard” [1].
UC Projecto 11
Nuno Reis, Setembro 2010
12. Trabalho Realizado
Método de calibração de Zhang:
� Aquisição de várias imagens de padrões coplanares utilizando-
se uma câmara digital convencional:
� Extracção automática dos vértices dos quadrados do padrão de
calibração nas imagens adquiridas:
Correcta extracção Incorrecta extracção
UC Projecto 12
Nuno Reis, Setembro 2010
13. Trabalho Realizado
Método de identificação de duas vias:
� Este m é todo foi desenvolvido com recurso a um video que
simula o movimento do robô visualizando duas faixas.
Figura 7 – Imagem original com ajuste de brilho e contraste MI2V.
UC Projecto 13
Nuno Reis, Setembro 2010
14. Trabalho Realizado
Método de identificação de duas vias:
� Ap ó s transformada a imagem para uma escala de cinzentos,
aplica-se uma função de Threshold.
� Esta fun ç ã o tem como objectivo segmentar a imagem obtida
numa imagem binária (dois tons).
Figura 8 – Imagem com Threshold adaptativo MI2V.
UC Projecto 14
Nuno Reis, Setembro 2010
15. Trabalho Realizado
Método de identificação de duas vias:
� Essa transforma ç ã o permite ent ã o aplicar o filtro de bordas
“Canny”.
� Com o uso desse filtro obtem-se os contornos dos objectos (a
preto) da imagem com Threshold.
Figura 9 – Aplicação da transformada de Canny MI2V.
UC Projecto 15
Nuno Reis, Setembro 2010
16. Trabalho Realizado
Método de identificação de duas vias:
� Para retirar os pontos de interesse dos contornos obtidos foi
utilizada a Transformada de Hough.
� Quando aplicada à frame em análise devolve os pontos iniciais e
finais de cada recta encontrada na imagem.
Figura 10 – Aplicação da transformada de Hough MI2V.
UC Projecto 16
Nuno Reis, Setembro 2010
17. Trabalho Realizado
Método de identificação de duas vias:
� Dos pontos obtidos pela Transformada de
Hough e calcula-se a média das coordenadas x
y
e de cada quadrante.
� É traçada a recta que nos dá a orientação que
o robô deve tomar.
� Da dist â ncia do centro da imagem à recta Figura 11 – Divisão da imagem
obtém-se o desvio do robô ao centro da pista. por quadrantes.
Figura 12 – Resultado final do MI2V.
UC Projecto 17
Nuno Reis, Setembro 2010
18. Trabalho Realizado
Método de identificação de uma via:
� Neste método é apenas detectada e analizada uma via da pista.
� O robô é colocado na pista de forma a ser visualizada a via mais
à direita da pista.
Figura 13 – Colocação da câmara no robô. Figura 14 – Imagem original do MI1V.
UC Projecto 18
Nuno Reis, Setembro 2010
19. Trabalho Realizado
Método de identificação de uma via:
� A fase de processamento de imagem é tambem baseada na
convers ã o para a escala de cinzentos, Threshold e filtro de
“Canny”
a)
b) c)
Figura 15 – a) Imagem em tons de cinzentos: b) Imagem com Threshold adaptativo : c) Aplica ção do filtro de Canny.
UC Projecto 19
Nuno Reis, Setembro 2010
20. Trabalho Realizado
Método de identificação de uma via:
� Neste método é analizado apenas um vector
da matriz de imagem, ou seja, se a
x
coordenada para y = 0 é branco ou preto.
� Encontrados os pontos brancos calcula-se a
x
média da posição desses pontos. Figura 16 – Imagem
Vector em análise.
a) b) c)
Figura 17 – Recta final do MI1V: a) Região 1; b) Região 2, c) Região 3.
UC Projecto 20
Nuno Reis, Setembro 2010
21. Trabalho Realizado
Método de identificação de uma via:
� Foi considerado para an á lise um vector com 320 posi ç õ es
(resolução da imagem).
� Relativamente ao controlo do robô, este é definido por quatro
regiões.
Região 1:
Regiã
150 < PM < 170 o robô segue em frente;
Região 2:
Regiã
50 < PM < 150 vira para a direita com velocidade de rotação 1;
170 < PM < 270 vira para a esquerda com velocidade de rotação 1;
Região 3:
Regiã
270 < PM < 320 vira para a esquerda com velocidade de rotação 2;
0 <PM < 50 vira para a direita com velocidade de rotação 2;
Região 4: Qualquer outro caso o robô pára
Regiã
Figura 18 – Regiões do movimento do robô. Vel. rotação 1 < vel. rotação 2
UC Projecto 21
Nuno Reis, Setembro 2010
22. Trabalho Realizado
Método de identificação de uma via:
� Ao ser detectada a passadeira, e como em ambiente real s ó
existe metade da pista, foi considerado que o rob ô p á ra no
instante em que s ão encontrados mais que dez pontos brancos
no vector em análise
Figura 19 – Detecção da passadeira.
UC Projecto 22
Nuno Reis, Setembro 2010
23. Conclusões
Conclusõ
� O processo de calibra ç ã o é necess á rio para que se possa
fazer uma correspond ê ncia das coordenadas retiradas em
pixels com as coordenadas reais.
� O método de identificação de duas vias é mais eficaz para o
movimento efectuado pelo robô, tornado-o mais estável.
� Relativamente ao m é todo de identifica ç ã o de uma via os
resultados obtido na parte de controlo foram satisfatórios.
UC Projecto 23
Nuno Reis, Setembro 2010