Sumário
6 APRESENTAÇÃO DAS PLATAFORMAS DE TESTES
6.1 Câmera Estereoscópica ... 60 6.2 Ambiente Virtual ... 61 6.3 Plataforma robótica... 62 6.3.1 GPS ... 64 6.4 Unidades de processamento de dados ... 64
7 RESULTADOS ... 65
7.1 Experimentos ... 65 7.2 Simulação - Corredor 3D Max ... 66 7.2.1 Pedestre - Helmet... 67 7.2.2 Via Museu ... 68 7.2.3 Ciclo Básico ... 69 7.2.4 Praça da Paz ... 71 7.3 Velocidade de processamento (Odometria Visual) ... 72 7.3.1 Helmet ... 73 7.3.2 Corredor 3DMax ... 73
xxxi
7.3.3 Via Museu ... 74 7.3.4 Ciclo Básico ... 75 7.3.5 Praça da Paz ... 76 7.4 Resultados das estimativas de navegação ... 76 7.4.1 Corredor 3DMax ... 77 7.4.2 Ciclo Básico ... 78 7.4.3 Via Museu ... 83 7.4.4 Praça da Paz ... 84 7.4.5 Resultados de Mapeamento ... 87 8 DISCUSSÃO E CONCLUSÕES ... 89 Discussão de Resultados ... 89 Conclusões ... 100 Trabalhos Futuros ... 101 Vídeos Compartilhados ... 102 Referências ... 103 Apêndice: Algoritmos ... 110 Apêndice: Publicações realizadas ... 111
1
1 Introdução
A localização de robôs móveis é foco de estudo em diferentes grupos de pesquisa ao redor do mundo, devido à complexidade deste problema. O mapeamento de um ambiente é composto por duas etapas. Na primeira, o mundo é medido por um sensor que se movimenta dentro de um ambiente desconhecido. Depois, estas medições são transladadas para um sistema de coordenadas global em função da posição do sensor para cada amostra. Desta forma, a localização de um sensor, depende de um mapa e a medição do ambiente requer da localização do sensor. Esta ambiguidade é resolvida através da localização e mapeamento simultâneos. Tal técnica é conhecida como SLAM (Simultaneous localization and mapping). Um dos primeiros trabalhos a empregar esta metodologia, publicado em(SMITH; SELF; CHEESEMAN, 1990), apresenta a incerteza associada às estimativas de cálculo da posição espacial de um robô, e desde então tem- se aplicado e desenvolvido essa tecnologia. Por outro lado, a redundância de informação é outra solução para o problema de localização. O uso de diferentes sensores de localização demanda de algoritmos que interpretem esta informação. O filtro de Kalman (KF)(KALMAN, 1960) é uma solução eficiente para tal propósito. A visão é um meio que proporciona um grande volume de informações sensoriais aos seres humanos. Isso tem despertado o interesse dos pesquisadores, que vêm desenvolvendo para esse fim, diferentes tipos de câmeras e algoritmos de processamento de informações, como a extração de características e reconstrução 3D do ambiente, entre outros. Nesta direção, as bibliotecas de código aberto têm sido utilizadas para o desenvolvimento e prototipagem de algoritmos de processamento de imagens.
O uso de câmeras para estimar o movimento é conhecido com odometria visual, onde são correlacionadas as texturas das imagens ao longo do trajeto. Neste trabalho apresenta-se a proposta de um método para realização da odometria visual em ambientes externos (Outdoors). Também, apresenta-se a implementação do método de fusão sensorial (câmeras, encoders e Global Positioning System (GPS)) nas tarefas de mapeamento e localização simultânea.
No desenvolvimento da odometria visual são utilizados algoritmos de identificação de características (features) em imagens, reconstrução tridimensional (3D) com visão estereoscópica e estimação de movimento. O algoritmo Speeded Up Robust Features (SURF)(BAY et al., 2006) é utilizado para identificar os pontos de referência nas imagens. Estes pontos de interesse são
2
correlacionados ao longo do movimento através do processamento de três imagens estereoscópicas. O processo, computacionalmente caro, é executado em uma unidade de processamento gráfico (GPU) através da biblioteca Open Source Computer Vision (OpenCV)(BRADSKI, 2000). A seguir, os pontos de referência são filtrados e projetados no espaço euclidiano. Esses algoritmos são processados na GPU por intermédio da linguagem C++ e Compute Unified Device Architecture (CUDA)(SANDERS, JASON, 2010). Imagens estereoscópicas em dois instantes consecutivos do movimento em um ambiente são utilizadas para estimar um vetor de translação e uma matriz de rotação de tal deslocamento. Esta estimativa de movimento é conferida pelo filtro Random Sample Consensus (RANSAC)(FISCHLER; BOLLES, 1981) que refina os resultados obtidos.
Neste trabalho são utilizados os sensores introspectivos do robô Seekur Jr (MOBILE ROBOTS, 2011) do tipo: encoders e giroscópios, para medir a locomoção do robô, bem como sensores extrospectivos do tipo: Laser, câmeras estereoscópicas e GPS na tarefa de fornecer a informação de odometria. No presente trabalho, as diferentes estimativas de localização são fundidas através da técnica de Kalman(KALMAN, 1960). Os algoritmos de estimativa de movimento são validados experimentalmente em ambientes reais e virtuais.
Resultados sobre velocidades de processamento e erros de localização são apresentados e comparados em cada experimento. Os resultados dos experimentos de navegação são organizados em cinco conjuntos de dados data sets, disponibilizados para uso futuro no repositório da FEM. Dentre os experimentos encontra-se uma simulação de movimento em um corredor de escritório com condições ideais de iluminação e locomoção, medidas em ambientes reais do tipo interior e exterior. Bem como o uso de diferentes tamanhos de imagens e velocidades de navegação. Encontram-se ainda nos data-sets, resultados de localização com GPS que permitem em alguns casos o cálculo experimental do erro de estimação de trajetória. Destacam-se a seguir os objetivos e contribuições buscados no presente trabalho.
3
Objetivos
Objetivos gerais:
Investigação e implementação de um método robusto e eficiente para realização da odometria visual.
Implementação de fusão sensorial (câmeras, encoder, GPS) para a tarefa de mapeamento do ambiente e localização.
Objetivos específicos:
Aplicação de algoritmo de calibração de câmeras de um sistema estereoscópico e introdução de técnica de filtragem de correlações para aumento da robustez dos algoritmos de processamento de imagem.
Implementação de um algoritmo de odometria visual em uma plataforma computacional eficiente (GPU).
Implementação de procedimento de fusão de sensores utilizando filtro de Kalman.
Realização de experimentos de navegação virtual e real para avaliação dos procedimentos de odometria visual propostos.
Contribuições
A tese contribui de maneira geral na implementação de um sistema de odometria visual em tempo real através da proposta de paralelização do algoritmo para ser executado em GPU utilizando CUDA e OpenCV. De forma especifica as contribuições técnicas e teóricas que foram desenvolvidas no decorrer da pesquisa são listadas abaixo:
O algoritmo de odometria visual utiliza uma nova técnica de calibração de câmeras desenvolvida pelo grupo de pesquisa da FEM/UNICAMP, descrita na seção 3.4.
As correlações das imagens são filtradas com uma nova técnica igualmente desenvolvida pelo grupo de pesquisa da FEM e descrita na seção 3.3.
O conjunto de câmeras de 9mm utilizadas, como plataforma estereoscópica de alta definição e lentes fixas, conforme descrito na seção 6.1, representa um diferencial aos equipamentos de navegação visual empregados na literatura especializada.
O robô móvel Seekur Jr foi equipado neste trabalho com Lasers e GPS, conforme descritos na seção 6.3, enriquecendo a plataforma de pesquisa. Na mesma plataforma foi fixado um sensor
4
de detecção de alcance por Laser Light Detection And Ranging (LIDAR) que foi construído utilizando uma unidade robótica de inclinação e varredura Pan-Tilt Unit (PTU).
Os ambientes exteriores da Unicamp utilizados para validar os algoritmos foram armazenados em bancos de dados conforme é apresentado na seção 7.1. Tais dados são úteis para o desenvolvimento de futuros trabalhos nas áreas de visão estereoscópica e navegação robótica.
Organização do texto
Este documento está organizado da seguinte maneira. Na seção 1, encontram-se a introdução e os objetivos. O estado da arte sobre aplicações de navegação visual é apresentando na seção 2. Esta seção é divida em: odometria visual, fusão sensorial e uso de GPUs no problema de localização robótica. Na seção 3 são apresentadas as técnicas de processamento de imagens e reconstrução 3D utilizadas neste trabalho. Os algoritmos de odometria visual e fusão de sensores são apresentados na seção 4. Nesta seção também são apresentas as técnicas de mapeamento utilizando Lasers. Na seção 5 é apresentada a proposta de processamento em GPU do presente trabalho, utilizando OpenCV e CUDA. Os materiais utilizados para validar os algoritmos são apresentados na seção 6. Na seção 7 apresenta-se o conjunto de experimentos e resultados que validam os algoritmos. As conclusões e discussões dos resultados obtidos apresentam-se na seção 8.
5