Top Banner
i Jaime Armando Delgado Vargas Odometria Visual e Fusão de Sensores no Problema de Localização e Mapeamento Simultâneo de Ambientes Exteriores Nº 96/2015 Campinas, 2015 S.P. Brasil
142

UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

Aug 16, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

i

Jaime Armando Delgado Vargas

Odometria Visual e Fusão de Sensores no

Problema de Localização e Mapeamento

Simultâneo de Ambientes Exteriores

Nº 96/2015

Campinas, 2015

S.P. – Brasil

Page 2: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

ii

Page 3: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

iii

Page 4: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

iv

Page 5: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

v

Page 6: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

vi

Page 7: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

vii

Dedico este trabalho a minha família e a Colômbia, que me deram as bases para realizar

este trabalho.

Page 8: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

viii

Page 9: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

ix

Agradecimentos

Este trabalho foi possível pelo apoio de diferentes pessoas e instituições, da Colômbia e o

Brasil. Primeiro agradeço a minha família, a meus pais Ana Rosa e Jaime, que me deram seu

apoio e educação ao longo destes anos. A meu irmão Daniel, meu colega de caminhada. A

minha namorada Paula e sua família pelo carinho e apoio.

Agradeço ao meu orientador Paulo Kurka pela oportunidade de pesquisar ao seu lado. Nestes

anos tive a honra de receber sua educação pessoal e acadêmica. Agradeço ao professor Luiz

Otavio por compartilhar seu conhecimento e laboratórios de processamento em GPU. Ao

professor Eleri Cardozo da FEEC pela educação em robótica e disponibilização dos materiais

deste trabalho.

Agradeço aos professores da Colômbia Dario Amaya e Oscar e Andrés Hurtado Garcia, pela

motivação para realizar este estudo de pós-graduação. Agradeço a meus colegas e amigos do

LCA Fernando Pinho e Ricardo Souza pelo apoio nos testes experimentais e pelas longas trilhas

percorridas com o robô Seekur Jr. A Paulo Pinheiro, Eric Rohmer e Junior Amadeu pelos

conselhos em robótica. Agradeço também ao grupo de pesquisa Pilgrim da FEM pelos trabalhos

realizados e predecessores deste trabalho.

Agradeço ao governo Brasileiro pelo financiamento deste trabalho através da UNICAMP, a

Coordenadoria de Aperfeiçoamento de Pessoal de Nível Superior (CAPES), a Fundação de

Amparo à Pesquisa do Estado de São Paulo (FAPESP) e ao Conselho Nacional de

Desenvolvimento Científico e Tecnológico CNPQ.

Page 10: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

x

Page 11: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xi

“The Happiness Is Only True When Shared”

Christopher McCandless

Page 12: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xii

Page 13: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xiii

Resumo

A localização de robôs móveis é foco de estudo em diferentes grupos de pesquisa ao redor do

mundo. Robôs móveis são equipados com diferentes sensores, utilizando uma variedade de

métodos de localização para as tarefas de exploração de ambientes desconhecidos ou para seguir

uma trajetória predefinida. Este trabalho apresenta a investigação e implementação de um método

robusto e eficiente da estimativa de movimento utilizando visão computacional, conhecido como

odometria visual. Também, é estudada a fusão de estimativas de movimento de diferentes

sensores através da técnica do filtro de Kalman. Neste trabalho utilizam-se câmeras

estereoscópicas com lentes fixas de 9mm e simulações do movimento de uma câmera no

ambiente 3D-Max. A validação experimental dos algoritmos é feita em uma plataforma robótica

tipo Seekur Jr equipada com Lasers, GPS, encoders e câmeras estereoscópicas. O movimento do

robô é estimado pelos diferentes sensores gerando redundância de localização. Os algoritmos de

odometria visual são validados em ambientes de interiores e exteriores. A velocidade de

processamento dos métodos é comparada usando diferentes processadores de tipo CPU e GPU,

indicando a possibilidade um sistema de realização de odometria visual em tempo real.

Palavras Chave: Robô Móvel; Visão Estereoscópica; Odometria Visual; GPU;

Page 14: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xiv

Page 15: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xv

Abstract

The localization of mobile robots problem is addressed to a number of research groups

around the world. Mobile robots are equipped with different sensors, using a variety of methods

of localization in the exploration of unknown environments or following a pre-defined trajectory.

The present work investigates and implements a robust method of estimation of movement using

computer vision, known as visual odometry. The work investigates also the results of fusion of

the estimates of movement obtained from different sensors, using the Kalman filter technique.

Visual odometry uses stereoscopic vision techniques with real time computing in graphic

processing units (GPU). Stereoscopic cameras with fixed 9mm lens and movement simulations in

the 3d-Max computer environment are used in the present work. Experimental validation of the

visual odometry algorithms is made in a Sekur Jr mobile robot platform, equipped with lasers,

GPS, wheel encoders and stereoscopic cameras. Movements of the robot are estimated from the

different sensors, yielding redundant localization information. The information from such sensors

are fused together through the Kalman filter. Visual odometry algorithms are tested in indoors

and outdoors navigation experiments. Processing speed of the methods is compared using

different processing units: CPU and GPU, indicating the possibility of performing real time

visual odometry.

Key Words: Mobile Robot; Stereoscopic Vision; Visual Odometry; GPU;

Page 16: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xvi

Page 17: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xvii

Lista de Ilustrações

FIGURA 2-1 IMAGEM DO ROBÔ AUTÔNOMO TERRESTRE COM DUAS CÂMERAS ESTEREOSCÓPICAS NA PARTE FRONTAL E O DGPS ............... 7

FIGURA 2-2 PROJETO LAGR (LEARNING APPLIED TO GROUND ROBOTICS), BIGDOG E ATLAS. CONSTRUÍDOS PELO GOVERNO DOS ESTADOS

UNIDOS E BOSTON DYNAMICS. (FONTE (HOWARD, 2008) E (FALLON ET AL., 2015)) ........................................................ 8

FIGURA 2-3 MODELO DO ROBÔ SUBMARINO UTILIZANDO A INFORMAÇÃO DOS CORAIS (FONTE:(CORKE ET AL., 2007)). ....................... 9

FIGURA 2-4 RESULTADOS EXPERIMENTAIS DA NAVEGAÇÃO DO AMBIENTE EXTERIOR. ........................................................................ 9

FIGURA 2-5 INCERTEZA DA VISÃO ESTEREOSCÓPICA PARA DIFERENTES PROFUNDIDADES .................................................................. 10

FIGURA 2-6 SPIRIT SOL 409 NAVCAM IMAGEM (TETO), AS LINHAS VERMELHO/VERDE/AZUL REPRESENTAM AS COORDENADAS XYZ

(FONTE:(DEEN; LORRE, [S.D.]))............................................................................................................................... 11

FIGURA 2-7 POSIÇÃO DAS CÂMERAS NO ROVER CURIOSITY DA NASA (FONTE:(MAKI ET AL., 2012)) .............................................. 11

FIGURA 2-8 IMAGENS ESTEREOSCÓPICAS E DE MOVIMENTO DOS PONTOS DE REFERÊNCIA (FONTE:(OLSON ET AL., 2003)) ................... 12

FIGURA 2-9 PLATAFORMA ROBÓTICA DE PESQUISA. (FONTE:(CASTELLANOS; NEIRA, 2001)) ..................................................... 12

FIGURA 2-10 TRAJETÓRIA RECONSTRUÍDA DE 700 IMAGENS. OS PONTOS AZUIS SÃO AS REFERÊNCIAS UTILIZADAS NA ESTIMATIVA DE

MOVIMENTO. A RELOCALIZAÇÃO, LINHAS VERMELHAS ACONTECE EM 133 FRAMES. (FONTE:(KONOLIGE; AGRAWAL, 2008)) . 13

FIGURA 2-11 MOVIMENTO CIRCULAR AO REDOR DE UMA TÁBUA COM OBJETOS. A RECONSTRUÇÃO DO AMBIENTE E TRAJETÓRIA DE

NAVEGAÇÃO SÃO APRESENTADAS. (FONTE: (NEWCOMBE ET AL., 2011)) ........................................................................ 14

FIGURA 2-12 RESULTADOS DO TRABALHO, A CÂMERA NAVEGOU TRÊS VEZES NO LOOP ESQUERDO E DIREITO. ...................................... 14

FIGURA 2-13 TRAJETÓRIA REALIZADA PELO ROBÔ, ODOMETRIA E SLAM VISUAL. LOCALIZAÇÃO DO ROBÔ ATRAVÉS DA INTERSEÇÃO DOS

VETORES 3D DE UM KEYPOINT IDENTIFICADO EM TRÊS INSTANTES DEFERENTES. (FONTE: (SANTOS, 2010)) ............................ 15

FIGURA 2-14 PLATAFORMAS ROBÓTICA COM CÂMERA MONOCULAR E ROBÔ HUMANOIDE COM MARCADOR VISUAL. ............................ 15

FIGURA 2-15 DIAGRAMA DE SEGMENTAÇÃO DE IMAGEM, IDENTIFICA AS MARCAS DE REFERÊNCIA NO CHÃO. AMBIENTE EXTERNO

ESTRUTURADO. (FONTE:(SANTANA; MEDEIROS, 2011)) ........................................................................................... 16

FIGURA 2-16 IMAGEM COM PONTOS DE REFERÊNCIA E DIAGRAMA DO MAPEAMENTO DO ROBÔ. ...................................................... 16

FIGURA 2-17 ROBÔ AQUÁTICO COM PONTOS DE REFERÊNCIA ARTIFICIAL ...................................................................................... 17

FIGURA 2-18 MOVIMENTO RECUPERADO DA CÂMERA E IMAGENS DE REFERÊNCIA. ........................................................................ 17

FIGURA 2-19 HARDWARE UTILIZADO, FPGA COM SISTEMA DE VISÃO DE QUATRO CÂMERAS. (FONTE: (BONATO, 2007))................... 18

FIGURA 2-20 IMAGENS OMNIDIRECIONAIS EM DUAS POSIÇÕES DIFERENTES. OS PONTOS IDENTIFICADOS, BEM COMO A CORRELAÇÃO DE

PONTOS COM O ALGORITMO SIFT SÃO APRESENTADOS. (FONTE: (GUIZILINI, 2008)) ......................................................... 18

FIGURA 2-21 SIMULAÇÃO DO UAV COM UMA CÂMERA DIRECIONADA PARA O CHÃO. A VELOCIDADE É MEDIDA UTILIZANDO FLUXO ÓPTICO.

(FONTE:(SAMPAIO ET AL., 2013)) ........................................................................................................................... 19

FIGURA 2-22 IMAGEM ROBÔ PIONNER 3-AT COM UMA CÂMERA INDUSTRIAL (FONTE:(COUTO, 2012)) ......................................... 19

FIGURA 2-23 SISTEMA DE LOCALIZAÇÃO VISUAL DO ROBÔ LEGO (FONTE:(TAVARES, 2004)) ......................................................... 20

FIGURA 2-24 REPRESENTAÇÃO DAS REGIÕES ESCOLHIDA PARA ANÁLISE, PLATAFORMA ROBÓTICA COM A QUAL FORAM IMPLEMENTADOS OS

TESTES (FONTE:(BERNARDES, 2010)) ...................................................................................................................... 20

Page 18: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xviii

FIGURA 2-25 EM (A) OS QUADROS BRANCOS REPRESENTAM AS FEATURES NÃO CORRELACIONAS, OS QUADROS AZUIS REPRESENTAM AS

CORRELAÇÕES BEM SUCEDIDAS. OS CÍRCULOS VERMELHOS REPRESENTAM AS POSIÇÕES DO ROBÔ. (B)A PLATAFORMA ROBÓTICA COM

UMA CÂMERA CANON E UMA LENTE OMNIDIRECIONAL 360º , UM DGPS, UM LASER PARA VISUALIZAÇÃO. FONTE:(ANDREASSON;

DUCKETT; LILIENTHAL, 2007) .............................................................................................................................. 21

FIGURA 2-26 VEÍCULO INTELIGENTE DA UNIVERSIDADE SHANGHAI JIAO TONG (FONTE:(HUI FANG, 2009)) ..................................... 23

FIGURA 2-27 ODOMETRIAS ESTIMADAS E TRAJETÓRIA REAL (FONTE:(ADAM; MEMBER; RIVLIN, 1999)) ...................................... 23

FIGURA 2-28 IDENTIFICAÇÃO DE PONTOS DE REFERÊNCIA COM O LASER E A PROJEÇÃO NA IMAGEM. .................................................. 24

FIGURA 2-29 RECONSTRUÇÃO DA SUPERFÍCIE EM 3D. AS TEXTURAS DAS IMAGENS FORAM FUNDIDAS COM OS PONTOS MEDIDOS COM OS

LASERS (FONTE:(PAUDEL ET AL., 2014)). .................................................................................................................. 24

FIGURA 2-30 (A)ROTAÇÃO ESTIMADA PELO ALGORITMO DE ODOMETRIA VISUAL E IMU NO EXPERIMENTO, (B) AUTOMÓVEL AUTÔNOMO

LIVIC’S COM CÂMERAS ESTEREOSCÓPICAS E ARQUITETURA DE HARDWARE DEDICADA. ........................................................... 25

FIGURA 2-31 TRAJETÓRIAS DA ODOMETRIA DOS ENCODERS E A PROPOSTA DE ODOMETRIA VISUAL ADAPTATIVE IC-SURF (A). ROBÔ

PIONEER 3AT COM UMA CÂMERA BUMBLEBEE2 DE 12MM (B). (FONTE :(NEMRA ET AL., 2013)) ........................................ 25

FIGURA 2-32 ARQUITETURA DO SISTEMA E O ROBÔ MÓVEL INFANT (FONTE: (MITSUHASHI; KURODA, 2011)). .......................... 26

FIGURA 2-33 RESULTADOS DE NAVEGAÇÃO UTILIZANDO O GPS PURO(A) E RESULTADOS DA FUSÃO COM O FILTRO UKF (B).

(FONTE:(MALYAVEJ ET AL., 2009)) .......................................................................................................................... 26

FIGURA 2-34 RESULTADOS DE SLAM, AS TRAJETÓRIAS CLARAS (VERDES) REPRESENTAM AS TRAJETÓRIAS DE REFERÊNCIA. AS TRAJETÓRIAS

OBSCURAS (VERMELHAS) NA FIGURA (A) REPRESENTAM A SAÍDA DO FILTRO EKF. NA IMAGEM (B) REPRESENTA A SAÍDA DO FILTRO

RTS (FONTE: (SALVI ET AL., 2008) ). ......................................................................................................................... 27

FIGURA 2-35 PLATAFORMA MODIFICADA SEGWAY EQUIPADA COM SENSORES PARA A TAREFA DE NAVEGAÇÃO. ................................... 27

FIGURA 2-36 CONFIGURAÇÃO DO ROBÔ AQUÁTICO E AMBIENTE DE TESTE COM TEXTURAS ARTIFICIAIS. .............................................. 28

FIGURA 2-37 SIMULAÇÃO EM GAZEBO DO CARRO AUTÔNOMO IDENTIFICANDO SINAIS NO AMBIENTE ................................................ 29

FIGURA 2-38 NUVENS DE PONTOS NO ESPAÇO 3D CAPTURADOS PELO LASER, OS PONTOS CLAROS REPRESENTAM OS DADOS ORIGINAIS. OS

PONTOS OBSCUROS REPRESENTAM A CORREÇÃO PELO ALGORITMO ICP (FONTE:(BEDKOWSKI; MASLOWSKI, 2011)) ........... 29

FIGURA 2-39 PLATAFORMA ROBÓTICA TIPO AUTOMÓVEL SETCAR COM CÂMERAS ESTEREOSCÓPICAS E GPS (A). TRAJETÓRIAS RESULTANTES

DOS EXPERIMENTOS EM AMBIENTES DE EXTERIOR (FONTE:(WEI; CAPPELLE; RUICHEK, 2011)). ......................................... 30

FIGURA 2-40 ESQUEMÁTICO DO SISTEMA DE LOCALIZAÇÃO (A), SENSORES LASER, CÂMERA ESTEREOSCÓPICA E GPS, FIXOS NO TETO DO

AUTOMÓVEL AUTÔNOMO SETCAR(B) (FONTE:(WEI; CAPPELLE; RUICHEK, 2013B), (WEI; CAPPELLE; RUICHEK, 2013A))30

FIGURA 2-41 VEICULO ELÉTRICO COM CÂMERA OMNIDIRECIONAL, GPS E LASER. (FONTE:(HOANG ET AL., 2013)) ............................ 31

FIGURA 2-42 ESQUEMÁTICO DA SELEÇÃO DO SISTEMA DE LOCALIZAÇÃO (FONTE:(PARRA ET AL., 2011)) ......................................... 31

FIGURA 2-43 IMAGEM DOS LOCAIS QUE ESTÃO TRABALHANDO NO PROJETO DO ROBÔ AUTÔNOMO TERRESTRE NA AMERICA LATINA.

(IMAGEM DE GOOGLE MAPS) .................................................................................................................................... 32

FIGURA 3-1 MODELO DE CÂMERAS ESTEREOSCÓPICAS, FONTE:(NIST; BERGEN, 2004) ............................................................... 34

FIGURA 3-2 REDUÇÃO DA ESCALA DA IMAGEM UTILIZADA NO ALGORITMO SIFT (DIREITA), O ALGORITMO SURF UTILIZA A TODA A IMAGEM

CATA ETAPA. UTILIZANDO O ALGORITMO HAAR WAWELET. FONTE: (BAY ET AL., 2006). ...................................................... 36

Page 19: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xix

FIGURA 3-3 REDUÇÃO DA ESCALA DA IMAGEM UTILIZADA NO ALGORITMO SIFT (DIREITA), O ALGORITMO SURF UTILIZA A TODA A IMAGEM

CADA ETAPA. UTILIZANDO O ALGORITMO HAAR WAWELET. FONTE: (BAY ET AL., 2006). ...................................................... 37

FIGURA 3-4 TRÊS OITAVAS COM TRÊS NÍVEIS. A VIZINHANÇA DE 3X3X3 SEM ELIMINAÇÃO DE MÁXIMOS. FONTE: (BAY ET AL., 2006). .... 38

FIGURA 3-5 CONSTRUÇÃO DO DESCRITOR DE 64 BYTES SURF, FONTE: (BAY ET AL., 2006). ........................................................... 38

FIGURA 3-6 EXEMPLO DAS COMPONENTES DO GRADIENTE DE INTENSIDADE DO DESCRITOR. FONTE: (BAY ET AL., 2006). ..................... 39

FIGURA 3-7 CORRELAÇÃO DOS PONTOS DE REFERÊNCIA EM QUATRO IMAGENS NOS INSTANTE 𝑰(𝒌), 𝑰 (𝒌 − 𝟏), 𝑰(𝒌 − 𝟐). ................ 40

FIGURA 3-8 CORRELAÇÃO DOS PONTOS DE REFERÊNCIA EM QUATRO IMAGENS NOS INSTANTE 𝑰(𝒌), 𝑰 (𝒌 − 𝟏), 𝑰(𝒌 − 𝟐). ................ 41

FIGURA 3-9 CORRELAÇÕES DAS QUATRO IMAGENS. AS IMAGENS SUPERIORES COMPÕEM UM FRAME ESTEREOSCÓPICO (DIREITA E

ESQUERDA) NO TEMPO 𝒌. AS INFERIORES NO TEMPO 𝒌 − 𝟏. AS CAIXAS PRETAS ILUSTRAM O FILTRO. ...................................... 41

FIGURA 3-10 MÉTODOS DE CALIBRAÇÃO DE CÂMERAS. TABULEIRO DE CALIBRAÇÃO COM ALGORITMO DE BOUGUET (A) E CAIXA

PARAMETRIZADA PELO ALGORITMO DE KURKA (B). ......................................................................................................... 42

FIGURA 3-11 MODELO DE CÂMERA ESTEREOSCÓPICA COM UMA ROTAÇÃO 𝐑𝐜. ............................................................................ 45

FIGURA 4-1 MOVIMENTO DA CÂMERA EM DUAS POSIÇÕES SUBSEQUENTES. ................................................................................. 47

FIGURA 4-2 FILTRO DE PROFUNDIDADE DAS REFERÊNCIAS NO ESPAÇO EUCLIDIANO. ........................................................................ 49

FIGURA 4-3 ERRO DE CORRELAÇÃO DE PONTOS PROJETADOS NAS IMAGENS, NOS INSTANTES 𝒌 E (𝒌 − 𝟏), OS PONTO REFERÊNCIA COM

ERROS DE CORRELAÇÃO OU DINÂMICOS SÃO REPRESENTADO PELOS PONTOS VERMELHOS. ...................................................... 50

FIGURA 4-4 ILUSTRAÇÃO ESQUEMÁTICA DO FILTRO DE KALMAN ATUANDO COMO DEAD RECKONING. ................................................ 51

FIGURA 4-5 ILUSTRAÇÃO ESQUEMÁTICA DO SISTEMA DE FUSÃO DE SENSORES. .............................................................................. 53

FIGURA 4-6 IMAGEM DO LASER 2D FIXO NO ROBÔ SEEKUR JR. A ÁREA VERDE REPRESENTA A ÁREA DE TRABALHO. ............................... 55

FIGURA 4-7 ILUSTRAÇÃO DO LASER 3D FIXO NO PTU DO ROBÔ SEEKUR JR. A OSCILAÇÃO É ILUSTRADA PELAS LINHAS AZUIS................... 56

FIGURA 4-8 IMAGEM DO LASER 3D FIXO NO PTU DO ROBÔ SEEKUR JR. ...................................................................................... 56

FIGURA 5-1 ARQUITETURA DO ALGORITMO DE ODOMETRIA VISUAL, APRESENTANDO A IMPLEMENTAÇÃO HIBRIDA ENTRE CPU (BLOCOS

BRANCOS) E GPU (BLOCOS CINZA). ............................................................................................................................. 57

FIGURA 5-2 DISTRIBUIÇÃO DE MEMÓRIA NA GPU. O CUSTO COMPUTACIONAL DE ACESSAR A MEMÓRIA COMPARTILHADA PODE SER MAIOR

QUE O PROCESSAMENTO. ........................................................................................................................................... 58

FIGURA 5-3 ESTRUTURA DA IMPLEMENTAÇÃO DO FILTRO 3D E TRIANGULAÇÃO NA GPU. ................................................................ 59

FIGURA 6-1 CÂMERA ESTEREOSCÓPICA FIXA EM CAPACETE, PTU E EM UMA PLATAFORMA MÓVEL. ................................................... 60

FIGURA 6-2 MODELO VIRTUAL DE CÂMERA ESTEREOSCÓPICA FIXADO EM PTU (2 DOF), A LINHA VERMELHA REPRESENTA A TRAJETÓRIA DA

CÂMERA DIREITA. ..................................................................................................................................................... 61

FIGURA 6-3 AMBIENTE VIRTUAL COM TEXTURAS SIMULA UM AMBIENTE DE INTERIOR DE CORREDOR. ................................................. 62

FIGURA 6-4 IMAGEM DO ROBÔ SEEKUR JR E UMA ILUSTRAÇÃO DOS SENSORES ACOPLADOS. 2-LIDAR, 2-CÂMERAS MONOCULARES,

CÂMERA ESTEREOSCÓPICA E 2-GPS. ........................................................................................................................... 62

FIGURA 6-5 SENSORES INSTALADOS NO ROBÔ SEEKUR JR .......................................................................................................... 63

FIGURA 7-1 TRAJETÓRIA EM FORMATO DE 'L' MODELADA EM 3D-MAX, VISTA SUPERIOR E PERSPECTIVA. ........................................... 66

FIGURA 7-2 AMBIENTE MODELADO EM 3D-MAX. ................................................................................................................... 67

Page 20: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xx

FIGURA 7-3 IMAGENS ESTEREOSCÓPICAS DO EXPERIMENTO HELMET. .......................................................................................... 67

FIGURA 7-4 IMAGEM ESTEREOSCÓPICA REGISTRADA NO AMBIENTE VIA MUSEU. ............................................................................ 68

FIGURA 7-5 CÂMERA ESTEREOSCÓPICA FIXADA NO TETO DE UM AUTOMÓVEL. (IMAGEM GOOGLE EARTH) .......................................... 69

FIGURA 7-6 A LINHA AZUL REPRESENTA O CAMINHO RECUPERADO PELO GPS TRIMBLE. (IMAGEM GOOGLE EARTH) ............................. 70

FIGURA 7-7 IMAGENS CAPTURADAS PELA CÂMERA ESTEREOSCÓPICA EM DIFERENTES INSTANTES DE TEMPO NO EXPERIMENTO CB. .......... 70

FIGURA 7-8 IMAGENS CAPTURADAS PELA CÂMERA ESTEREOSCÓPICA EM DIFERENTES INSTANTES DE TEMPO NO EXPERIMENTO PRAÇA DA

PAZ. ...................................................................................................................................................................... 72

FIGURA 7-9 VELOCIDADE DE PROCESSAMENTO DO ALGORITMO "ODOMETRIA VISUAL" EXECUTADO EM DIFERENTES UNIDADES DE

PROCESSAMENTO (CPUS E GPUS). O TAMANHO DAS IMAGENS PROCESSADAS É 1280X960. CAPTURADAS EM UM AMBIENTE

EXTERNO. ............................................................................................................................................................... 73

FIGURA 7-10 VELOCIDADES DE PROCESSAMENTO DO ALGORITMO DE ODOMETRIA VISUAL EM UM AMBIENTE VIRTUAL. O TAMANHO DAS

IMAGENS É 640X480 PIXELS. NA GPU 560TI É ATINGE VELOCIDADE DE 30FPS. ................................................................. 74

FIGURA 7-11 VELOCIDADES DE PROCESSAMENTO DO ALGORITMO DE ODOMETRIA VISUAL EM UM AMBIENTE EXTERNO. O TAMANHO DAS

IMAGENS É 640X480 PIXELS. A GPU QUADRO 4000 ATINGE VELOCIDADE MÉDIA DE 20FPS. ............................................... 75

FIGURA 7-12 VELOCIDADE DE PROCESSAMENTO DO ALGORITMO ODOMETRIA VISUAL EXECUTADO NA GPU QUADRO4000M, O TAMANHO

É 640X480. ........................................................................................................................................................... 75

FIGURA 7-13 VELOCIDADE DE PROCESSAMENTO DO ALGORITMO "ODOMETRIA VISUAL" EXECUTADO NA GPU QUADRO 4000M. O

TAMANHO É 640X480. ............................................................................................................................................ 76

FIGURA 7-14 TRAJETÓRIA DA ODOMETRIA VISUAL E REFERÊNCIA NA SIMULAÇÃO CORREDOR 3D-MAX. ............................................. 77

FIGURA 7-15 ERRO AO LONGO DA SIMULAÇÃO CORREDOR 3D-MAX. ......................................................................................... 77

FIGURA 7-16 TRAJETÓRIA DA ODOMETRIA CINEMÁTICA E REFERÊNCIA NO EXPERIMENTO CB (A). ERRO AO LONGO DO EXPERIMENTO E ERRO

MÉDIO (B). ............................................................................................................................................................. 78

FIGURA 7-17 TRAJETÓRIA DA ODOMETRIA VISUAL NO EXPERIMENTO CB (A), ERRO LOCAL E ERRO MÉDIO ALONGO DO PERCURSO. .......... 79

FIGURA 7-18 DADOS DE LOCALIZAÇÃO ARMAZENADOS PELOS GPS GARMIN (A) E TRIMBLE (B) DURANTE O TESTE DO CICLO BÁSICO. O

DETALHE 'A' INDICA O PONTO INICIAL DO TESTE. O DETALHE 'B' APRESENTA O MAIOR INTERVALO DE ERRO DO GPS TRIMBLE (B). .. 79

FIGURA 7-19 ERRO DO GPS TRIMBLE E GARMIN ALONGO DO EXPERIMENTO CB. .......................................................................... 80

FIGURA 7-20 TRAJETÓRIAS NO EXPERIMENTO CB DA ODOMETRIA VISUAL E A CORREÇÃO ATRAVÉS FILTRO DE KALMAN EM CONFIGURAÇÃO

DEAD RECKONING (A) E OS ERROS AO LONGO DO EXPERIMENTO (B). .................................................................................. 80

FIGURA 7-21 TRAJETÓRIAS NO EXPERIMENTO CB DA ODOMETRIA VISUAL, ODOMETRIA DOS ENCODERS E FUSÃO ATRAVÉS O FILTRO DE

KALMAN (A). OS ERROS AO LONGO DO EXPERIMENTO DAS ESTIMATIVA (B). ......................................................................... 81

FIGURA 7-22 TRAJETÓRIAS NO EXPERIMENTO CB DA ODOMETRIA DOS ENCODERS, LOCALIZAÇÃO PELO GPS E A FUSÃO ATRAVÉS O FILTRO DE

KALMAN (A). OS ERROS AO LONGO DO EXPERIMENTO DAS ESTIMATIVA(B). ......................................................................... 81

FIGURA 7-23 TRAJETÓRIAS NO EXPERIMENTO CB DA ODOMETRIA VISUAL, A LOCALIZAÇÃO PELO GPS E A FUSÃO ATRAVÉS O FILTRO DE

KALMAN (A). OS ERROS AO LONGO DO EXPERIMENTO DAS ESTIMATIVAS(B). ........................................................................ 82

Page 21: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxi

FIGURA 7-24 TRAJETÓRIAS NO EXPERIMENTO CB DA ODOMETRIA VISUAL, ODOMETRIA DOS ENCODERS, A LOCALIZAÇÃO PELO GPS E A

FUSÃO ATRAVÉS O FILTRO DE KALMAN (A). OS ERROS AO LONGO DO EXPERIMENTO DAS ESTIMATIVAS(B). ................................. 82

FIGURA 7-25 TRAJETÓRIAS DA NAVEGAÇÃO EM UM AMBIENTE EXTERIOR. A LINHA PONTILHADA REPRESENTA O GPS E A LINHA VERMELHA A

ODOMETRIA RECUPERADA DAS IMAGENS. ...................................................................................................................... 83

FIGURA 7-26 O ERRO DA ESTIMATIVA DE MOVIMENTO DA ODOMETRIA VISUAL AO LONGO DO EXPERIMENTO VIA MUSEU. .................... 83

FIGURA 7-27 SINAL DO GPS TRIMBLE E GARMIN EM DOIS DIAS DIFERENTES DE TESTE. (IMAGEM GOOGLE EARTH) .............................. 84

FIGURA 7-28 ERRO DO GPS GARMIN E TRIMBLE NO EXPERIMENTO DA PRAÇA DA PAZ. .................................................................. 85

FIGURA 7-29 TRAJETÓRIAS ESTIMADAS NO EXPERIMENTO PRAÇA DA PAZ. (LOCALIZAÇÃO PELA ODOMETRIA VISUAL, ODOMETRIA DOS

ENCODERS, LOCALIZAÇÃO PELO GPS E A FUSÃO PELO FILTRO DE KALMAN)........................................................................... 85

FIGURA 7-30 ERRO DAS ESTIMAÇÕES DE MOVIMENTO AO LONGO DO EXPERIMENTO PRAZA DA PAZ. AS LINHAS PONTILHADAS REPRESENTAM

O ERRO MÉDIO PARA CADA ESTIMATIVA. ....................................................................................................................... 86

FIGURA 7-31 A LINHA AZUL REPRESENTA O CAMINHO RECUPERADO PELA ODOMETRIA DOS ENCODERS. OS PONTOS CINZAS REPRESENTAM O

AMBIENTE RECONSTRUÍDO PELO LASER 3D. ................................................................................................................... 87

FIGURA 7-32 A LINHA VERMELHA REPRESENTA O CAMINHO DA ODOMETRIA DOS ENCODERS, OS PONTOS AZUIS CLARO REPRESENTAM A

TRAJETÓRIA DO GPS . OS PONTOS CINZA SÃO OS PONTOS MAPEADOS PELO LASER 3D NO AMBIENTE. ...................................... 88

FIGURA 7-33 VISTA SUPERIOR DA RECONSTRUÇÃO DO AMBIENTE PRAÇA DA PAZ. .......................................................................... 88

FIGURA 8-1 OS DETALHES DA FUSÃO AS TRAJETÓRIAS RECUPERADAS PELOS GPS TRIMBLE E GARMIN NAS FIGURAS (A,B) ...................... 92

FIGURA 8-2 OS DETALHES DA FUSÃO ATRAVÉS DO FILTRO DE KALMAN UTILIZANDO A ODOMETRIA DOS ENCODERS + GPS SÃO

APRESENTADOS NAS FIGURAS (A,B)) ............................................................................................................................ 93

FIGURA 8-3 OS DETALHES DA FUSÃO DA ODOMETRIA VISUAL + GPS SÃO APRESENTADOS NAS FIGURAS (A,B) ..................................... 94

FIGURA 8-4 OS DETALHES DA FUSÃO DO GPS + ODOMETRIA DOS ENCODERS + ODOMETRIA VISUAL SÃO APRESENTADOS NAS FIGURAS (A,B)

............................................................................................................................................................................ 95

Page 22: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxii

Page 23: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxiii

Lista de Tabelas

TABELA 1 CÂMERAS ESTEREOSCÓPICAS UTILIZADAS .................................................................................................................. 34

TABELA 2 CARACTERÍSTICAS DAS UNIDADES GPU .................................................................................................................... 64

TABELA 3 OS SENSORES UTILIZADO NO TESTE HELMET .............................................................................................................. 68

TABELA 4 OS SENSORES UTILIZADO NO TESTE VIA MUSEU ......................................................................................................... 69

TABELA 5 OS SENSORES UTILIZADO NO TESTE CICLO BÁSICO ....................................................................................................... 70

TABELA 6 OS SENSORES UTILIZADO NO TESTE PRAÇA DA PAZ ...................................................................................................... 72

TABELA 7 ERRO DO GPS NOS EXPERIMENTOS ......................................................................................................................... 89

TABELA 8 ERRO DO ALGORITMO DE ODOMETRIA VISUAL ......................................................................................................... 90

TABELA 9 ERRO DA FUSÃO DE DIFERENTES SENSORES ................................................................................................................ 91

TABELA 10 VELOCIDADE DE PROCESSAMENTO GPU E FONTE DE ALIMENTAÇÃO ............................................................................. 95

TABELA 11 VELOCIDADE DE PROCESSAMENTO NOS EXPERIMENTOS ............................................................................................ 96

TABELA 12 VELOCIDADE DE PROCESSAMENTO GPU REALTIME .................................................................................................. 97

TABELA 13 COMPARAÇÃO DE VELOCIDADES DE PROCESSAMENTO E ERRO ..................................................................................... 97

Page 24: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxiv

Lista de Abreviaturas e Siglas

Letras Latinas

𝑢 Coordenada de imagem no eixo x.

𝑣 Coordenada de imagem no eixo y.

𝑢0, 𝑣0 Centro da imagem.

𝑓 Distância focal.

𝑆𝑥 e 𝑆𝑦 Densidade dos pixels.

𝑘𝑐 Numero do conjunto de calibração 0 até 56.

𝐺 Distancia de um ponto até o centro da câmera esquerda.

𝐹 Distancia de um ponto até o centro da câmera direita.

𝑝𝑙 Projeção do ponto na imagem esquerda.

𝑝𝑟 Projeção do ponto na imagem direita.

𝑂𝐿 Centro do sistema de coordenadas da câmera esquerda.

𝑂𝑅 Centro do sistema de coordenadas da câmera direita.

𝑋 Ponto na imagem coordenadas (𝑥, 𝑦).

𝐿 Convolução da derivada Gaussiana de segunda ordem.

𝐷 Derivadas parciais de segunda ordem.

𝐷𝑠 Descritor SIFT.

𝑘 Tempo da sequencia de imagens.

𝑇𝑐. Vetor de translação parâmetros extrínsecos da câmera estereoscópica.

𝑣(𝑘) Ruído gaussiano do sensor

𝑥 Vetor de estados.

��k Estimativa de estado 𝑥.

𝑑𝑝 Profundidade de um ponto 𝑑𝑝.

𝑏𝑙 Distância entre câmeras estereoscópicas.

𝑇𝑚(𝑘) Vetor de translação do movimento no espaço euclidiano.

Page 25: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxv

𝐀 Matriz de parâmetros intrínsecos.

𝑰 Matriz de Imagem.

𝑰𝐿 Imagem da câmera esquerda (Left).

𝑰𝑅 Imagem da câmera direita (Right).

𝐑c Matriz de rotação parâmetros extrínsecos da câmera estereoscópica.

𝒑 Matriz de vetores de coordenadas de imagem do padrão de calibração.

�� Matriz 𝒑 em coordenadas homogêneas.

𝑩 Matriz de posições espaciais do padrão de calibração.

𝑷kc Matriz alinhada de posições espaciais do padrão de calibração.

𝐑𝑚 Matriz de rotação do movimento no espaço euclidiano.

𝐓𝑅𝑇𝑘 Matriz de movimento composta por 𝑇𝑚(𝑘) e 𝐑𝑚.

𝐏𝑘 Matriz de vetores de pontos de referência no espaço euclidianos.

𝐀𝐟 Matriz de transição que descreve o sistema.

𝐁𝐟 Matriz de controle (condicionamento do sinal do sensor).

𝐇 Matriz de medição ou contribuição de cada sensor.

𝐊 Ganho do filtro de Kalman.

𝐏𝐩 Erro de covariância entre as variáveis do verto de estados.

𝐐cp Covariância do processo.

𝒁(k) Matriz de observação.

...................................................

Letras Gregas

ℋ Matriz Hessiana.

𝜇k Sinais de entrada.

𝜀k Ruído gaussiano do processo.

Page 26: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxvi

...................................................

Abreviações

FEM Faculdade de Engenharia Mecânica

UNICAMP Universidade Estadual de Campinas

SLAM Simultaneous Localization And Mapping

KF Kalman Filter

EKF Extended Kalman Filter

UKF Unscented Kalman Filter

3D Tridimensional

SURF Speeded Up Robust Features

SIFT Scale-Invariant Feature Transform

GPU Unidade De Processamento Gráfico

OpenCV Open Source Computer Vision

C++ Linguagem De Programação C++

CUDA Compute Unified Device Architecture

RANSAC Random Sample Consensus

Seekur Jr Skid Steer All-Weather Robot Platform

GPS Global Positioning System

DGPS Differential Global Positioning System

LIDAR Light Detection And Ranging

PTU Pan-Tilt Unit

NASA The National Aeronautics and Space Administration

ID Inverse Depth

FOV Field Of View

IMU Inertial Measurement Unit

VO Visual Odometry

INS Inertial Navigation System

DDF Divided Difference Filter

FABMap Probabilistic Localization and Mapping in the Space of Appearance

Page 27: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxvii

FPS Frames Per Second

ICP Iterative Closest Point

RTS Rauch-Tung-Striebel

vSLAM Visual SLAM

AUVs Autonomous Underwater Vehicles

FPGA A Field Programmable Gate Array

UAV Unmanned Aerial Vehicle

IF Information Filter

3DMax 3d Modeling, Animation, And Rendering Software

HW Filtro Haar Wavelet

Page 28: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxviii

Page 29: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxix

Sumário

AGRADECIMENTOS .................................................................................................................. IX

RESUMO .................................................................................................................................... XIII

ABSTRACT ................................................................................................................................. XV

LISTA DE ILUSTRAÇÕES ..................................................................................................... XVII

LISTA DE TABELAS ............................................................................................................. XXIII

LISTA DE ABREVIATURAS E SIGLAS ............................................................................. XXIV

SUMÁRIO ............................................................................................................................... XXIX

1 INTRODUÇÃO ..................................................................................................................... 1

Objetivos .......................................................................................................................................... 3

Contribuições ................................................................................................................................... 3

Organização do texto ....................................................................................................................... 4

2 REVISÃO DA LITERATURA ............................................................................................ 5

2.1 Odometria Visual ..................................................................................................................... 5

2.2 Fusão de sensores .................................................................................................................. 21

3 ESTEREOSCÓPICA .......................................................................................................... 33

3.1 Identificação de pontos de interesse SURF ........................................................................... 35

3.2 Correlação da imagem ........................................................................................................... 39

3.3 Filtragem de pontos correlatos nas imagens .......................................................................... 41

3.4 Calibração .............................................................................................................................. 42

3.5 Triangulação .......................................................................................................................... 45

4 TÉCNICAS DE LOCALIZAÇÃO E MAPEAMENTO .................................................. 47

4.1 Cálculo de Odometria ............................................................................................................ 47

Page 30: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

xxx

4.2 Filtragem de pontos no espaço euclidiano ............................................................................. 49

4.3 Filtro de Kalman .................................................................................................................... 51

4.3.1 Dead Reckoning ............................................................................................................ 51

4.3.2 Fusão de sensores .......................................................................................................... 53

4.4 LIDAR 2D ............................................................................................................................. 55

4.5 LIDAR 3D ............................................................................................................................. 55

5 PROCESSAMENTO EM TEMPO REAL ....................................................................... 57

5.1 Correlação de pontos SURF (OpenCV) ................................................................................ 57

5.2 Triangulação e Filtragem (CUDA) ........................................................................................ 58

6 APRESENTAÇÃO DAS PLATAFORMAS DE TESTES .............................................. 60

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

Page 31: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

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

Page 32: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

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

Page 33: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

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.

Page 34: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

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

Page 35: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

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.

Page 36: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

5

2 Revisão Da Literatura

A visão robótica é uma área que está crescendo e ganhando a atenção ao redor do mundo.

Inicialmente os desenvolvimentos foram em missões de exploração espacial com os Rover da The

National Aeronautics and Space Administration (NASA). No entanto, grupos de pesquisa ao

redor do mundo desenvolveram novas tecnologias e algoritmos de processamento de imagens e

estimativa de movimento. Neste capítulo são apresentados os trabalhos mais representativos e

semelhantes a este trabalho. O estado da arte está dividido em duas seções. Na primeira são

apresentados os trabalhos com algoritmos para estimar movimentos utilizando visão, ou seja,

odometria visual. Depois, são apresentados os trabalhos que utilizam o filtro de Kalman para

fundir a odometria visual com outra estimativa de movimento.

2.1 Odometria Visual

Nesta seção são apresentados os trabalhos que utilizam câmeras na estimativa de movimento.

O uso de uma única câmera é apresentado nos trabalhos de (HUI FANG, 2009), (ADAM;

MEMBER; RIVLIN, 1999), (CASTELLANOS; NEIRA, 2001), (BOTELHO et al., 2009),

(SANTANA; MEDEIROS, 2011) e (SILVEIRA, 2010). Os trabalhos de (OLSON et al., 2003),

(NEMRA et al., 2013), (SALVI et al., 2008), (ZHU et al., 2011), (KONOLIGE; AGRAWAL,

2008), (WEI; CAPPELLE; RUICHEK, 2011) e (WEI; CAPPELLE; RUICHEK, 2013b) utilizam

câmeras paralelas em aplicações de visão estereoscópicas. Câmeras com lentes de olho de peixe

ou omnidirecionais são utilizadas nos trabalhos de (HOANG et al., 2013), (GUIZILINI, 2008).

Estes tipos de câmeras são combinados em sistemas redundantes de visão nos trabalhos de

(PAUDEL et al., 2014), (LIK; LUI; JARVIS, 2010) e (BONATO, 2007).

Os trabalhos de odometria visual utilizam diferentes técnicas de processamento e correlação

de imagens. O algoritmo Harris Corner Detector é utilizado nos trabalhos de (NIST; BERGEN,

2004), (SILVEIRA; MALIS, 2007), (HOWARD, 2008), (CORKE et al., 2007) (HUI FANG,

2009)) para identificar pontos de referência (keypoints). Uma modificação deste algoritmo é

apresentada no trabalho de (SAEEDI; LAWRENCE; LOWE, 2006). O seguimento do

movimento de pontos é conhecido como fluxo óptico e é apresentado nos (HOANG et al., 2013),

(WANG; XIE, 2015). O algoritmo Scale-Invariant Feature Transform (SIFT) apresenta alta

Page 37: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

6

estabilidade na identificação de pontos de referências na presença de alterações de iluminação,

escala e rotação. Os trabalhos que utilizam o SIFT para estimar o movimento são os de (HOANG

et al., 2013), (CLIPP; FRAHM; POLLEFEYS, 2010), (BOTELHO et al., 2009), (BONATO,

2007), (GUIZILINI, 2008). Uma variação do algoritmo do SIFT é o algoritmo SURF que

apresenta modificações nos filtros de identificação para atingir maiores velocidades de

processamento. Este algoritmo é utilizando nos trabalhos de (PAUDEL et al., 2014), (SANTOS,

2010), (SALVI et al., 2008), (WEI; CAPPELLE; RUICHEK, 2011) e (WEI; CAPPELLE;

RUICHEK, 2013b).

O movimento de uma câmera pode ainda ser estimado por técnicas que não utilizam

algoritmos de identificação de pontos característicos. Nos trabalhos de (HUI FANG, 2009),

(SILVEIRA, 2010) são utilizadas técnicas de otimização para correlacionar as imagens e estimar

o movimento. O processamento de imagens utilizando novas técnicas de segmentação é

apresentado nos trabalhos de (WANG; XIE, 2015), (KONOLIGE; AGRAWAL, 2008) e

(BERNARDES, 2010).

O trabalho de (NIST; BERGEN, 2004) apresenta uma aplicação de odometria visual

utilizando câmeras estereoscópicas. Nesse trabalho a identificação dos keypoints na imagem

utiliza a técnica Harris Corner Detector, onde falsas correlações são eliminadas utilizando filtros

de disparidade em função do tamanho da imagem. Na navegação são utilizadas duas câmeras

estereoscópicas paralelas, afastadas de uma distância de 20cm. No cálculo do erro é utilizado um

GPS diferencial Differential Global Positioning System (DGPS). O trabalho valida o algoritmo

em três trajetórias com comprimentos de 183m, 279m e 372m. O ambiente é externo com

característica de floresta. Tal algoritmo de odometria visual também é implementado no trabalho

de (ANTHONY STENTZ, HERMAN HERMAN, 2015) como são apresentados na Figura 2-1.

Page 38: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

7

Figura 2-1 Imagem do robô autônomo terrestre com duas câmeras estereoscópicas na parte frontal e o DGPS

(Imagem dos trabalho(NIST; BERGEN, 2004) e (ANTHONY STENTZ, HERMAN HERMAN, 2015)).

(HOWARD, 2008) desenvolveu um algoritmo de odometria visual utilizando duas

câmeras estereoscópicas. O principal diferencial deste trabalho é que não utiliza nenhuma

estimativa da posição e a disparidade é computada por dois algoritmos estereoscópicos distintos.

As imagens estereoscópicas são retificadas com as linhas epipolares seguido do cálculo do mapa

de disparidade. Em seguida, os pontos de interesse na imagem keypoints foram identificados com

os algoritmos Harris Corner Detector e Fast. As correlações dos keypoints são obtidas com

técnicas de otimização. O algoritmo apresentou resultados robustos e foi testado nos robôs LAGR

e BigDog. A velocidade de processamento atinge os 60 quadros por segundo ou Frames Per

Second (FPS) em uma CPU de 2,4 GHz. Uma ilustração do sistema utilizado na referência

(FALLON et al., 2015) é apresentada na Figura 2-2.

Câmera frontal

Panorâmica /

olho de peixe

Luz LED

Sistema embarcado de

processamento e

interface de sensores

Câmera estereoscópica

FOV grande angular

(HDR)

Câmera estereoscópica

FOV macro

(HDR)

Dois LIDAR

360º

Page 39: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

8

Figura 2-2 Projeto LAGR (Learning Applied to Ground Robotics), BigDog e ATLAS. Construídos pelo

governo dos Estados Unidos e Boston Dynamics. (Fonte (HOWARD, 2008) e (FALLON et al., 2015))

O trabalho de (CORKE et al., 2007), compara os sistemas de localização em ambientes

submarinos utilizando sonares, com aqueles que usam odometria visual. Os pontos de referência

nas imagens são identificados pelo algoritmo Harris Corner Detector de o uso da técnica de

correlação cruzada. Neste trabalho as restrições de profundidade foram suprimidas. Em trabalhos

anteriores do mesmo autor, a odometria visual foi projetada para utilizar a informação dos corais.

A correlação dos resultados de odometria visual com informações de GPS é prejudicada. Pois o

sinal de satélite só funciona na superfície da água. Uma ilustração do sistema utilizado na

referência (CORKE et al., 2007) é apresentado na Figura 2-3.

Page 40: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

9

Figura 2-3 Modelo do robô submarino utilizando a informação dos corais (Fonte:(CORKE et al., 2007)).

(SAEEDI; LAWRENCE; LOWE, 2006), apresenta a localização de um robô num ambiente

externo utilizando um sistema de visão estereoscópica em ambientes abertos (exteriores). O robô

é dotado com uma câmera trifocal composta de três câmeras monoculares. A pose do robô é

refinada com o filtro de Kalman. Uma vez que o algoritmo Harris Corner Detector é considerado

muito caro computacionalmente, foi desenvolvido um novo algoritmo, para a extração de

características (SUSAN), que realiza a detecção de cantos com uma precisão superior. Os

resultados da reconstrução da odometria são apresentados na Figura 2-4 onde se faz a

comparação dos resultados do sistema de visão estereoscópica com a odometria dos encoders.

(a) (b)

Figura 2-4 Resultados experimentais da navegação do ambiente exterior.

(Fonte:(SAEEDI; LAWRENCE; LOWE, 2006))

No trabalho de (PAZ; PINI; TARD, 2008) apesenta-se um sistema de localização e

mapeamento simultâneo (SLAM) utilizando visão estereoscópica em grande escala. O

movimento é estimado para seis graus de liberdade analisando doze variáveis: posição 3D,

orientação dos ângulos de Euler e velocidades lineares e angulares da câmera. O algoritmo de

visão extrai as referências através do algoritmo SIFT. Estas são projetadas no espaço euclidiano

Page 41: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

10

por meio da triangulação estereoscópica quando a profundidade dos pontos é menor do que 100

vezes a distância entre câmeras, após esse limite é utilizado e o algoritmo inverse depth (ID).

Nesse trabalho, é analisada a precisão do campo de visão em função da distância, como

apresentado na Figura 2-5. Os pontos são reconstruções reais. A região de incerteza da

reconstrução estereoscópica é representada na elipse obscura e a incerteza associada à

linearização parametrizada ID pela elipse clara.

Figura 2-5 Incerteza da visão estereoscópica para diferentes profundidades

(Fonte: (PAZ; PINI; TARD, 2008)).

Os trabalhos com maior robustez na tarefa de navegação autônoma utilizando câmeras são

apresentados nas aplicações associadas aos robôs (Rovers) da NASA: o trabalho de (DEEN;

LORRE, [s.d.]) apresenta a reconstrução do ambiente utilizando câmeras, técnica utilizada nos

algoritmos de odometria visual. Na imagem estereoscópica do robô Spirit os conjuntos de píxels

são selecionados por correlação estereoscópica. Os keypoints entre diferentes imagens em

diferentes instantes de tempo são correlacionados por métodos de otimização. Posteriormente, os

pontos são filtrados e triangulados. Finalmente, estes são transformados em coordenadas globais

para a construção do mapa 3D, conforme na Figura 2-6, abaixo.

Page 42: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

11

Figura 2-6 Spirit Sol 409 Navcam imagem (teto), As linhas Vermelho/Verde/Azul representam as

coordenadas XYZ (Fonte:(DEEN; LORRE, [s.d.])).

A navegação autônoma do robô Curiosity da NASA utiliza o sistema de visão apresentado

no trabalho de (MAKI et al., 2012). Composto por doze câmeras estereoscópicas instaladas

conforme a Figura 2-7. Câmeras Navcam, localizadas na parte superior são direcionadas para o

chão na tarefa de navegação. As câmeras têm um campo de visão, Field Of View (FOV) de 45

graus. Na tarefa de desvio de obstáculos são utilizadas as câmeras Hazcams, com um campo de

visão (FOV) de 124 graus, localizadas na parte inferior. A distância de separação entre câmeras

estereoscópicas é chamada de linha base 𝑏𝑙. Neste trabalho as câmeras frontais têm um 𝑏𝑙 de

16.7cm e nas câmeras traseiras de 10cm.

Figura 2-7 Posição das câmeras no Rover Curiosity da NASA (Fonte:(MAKI et al., 2012))

No trabalho de C. Olson (OLSON et al., 2003) é apresentado o algoritmo de estimativa de

movimento utilizando imagens estereoscópicas. Utilizando a técnica Förstner são identificadas as

características nas imagens que depois são correlacionadas e trianguladas. Depois, o conjunto de

Page 43: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

12

pontos é utilizado para estimar o movimento. O algoritmo é validado em um ambiente externo

como, apresentado na Figura 2-8.

Figura 2-8 Imagens estereoscópicas e de movimento dos pontos de referência (Fonte:(OLSON et al., 2003))

O processamento de imagens requer de alta demanda computacional em termos de volume e

velocidade de processamento. Alguns trabalhos da literatura têm utilizado GPUs para atingir

esses requisitos de processamento de imagens.

No trabalho de (LIK; LUI; JARVIS, 2010) as tarefas de correlação de imagens

estereoscópicas e a estimativa de profundidade são implementadas na GPU. Uma torre com duas

câmeras omnidirecionais é utilizada para realizar a localização do robô através do cálculo da

profundidade de pontos no espaço utilizando a triangulação, conforme ilustrado na Figura 2-9.

No trabalho citado, consegue-se realizar o processamento em tempo real.

Figura 2-9 Plataforma robótica de pesquisa. (Fonte:(CASTELLANOS; NEIRA, 2001))

Page 44: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

13

O Trabalho de (KONOLIGE; AGRAWAL, 2008), apresenta a implementação de um

algoritmo de odometria visual e relocalização. O algoritmo é testado em ambientes internos

(indoors) e externos do tipo estrada de terra (offroad). Utiliza-se, no trabalho citado, uma câmera

estereoscópica e correlacionam-se os pontos das imagens com o algoritmo center-surround

feature called CenSure, recuperando assim a trajetória do robô. O algoritmo alcança velocidade

de processamento de 15FPS em uma CPU de 2,0Ghz, com processador de dois núcleos. O

primeiro núcleo processa a odometria visual. O segundo núcleo processa os demais algoritmos e

a relocalização. Uma ilustração do resultado mencionado na referência (KONOLIGE;

AGRAWAL, 2008) é apresentado na Figura 2-10.

Figura 2-10 Trajetória reconstruída de 700 imagens. Os pontos azuis são as referências utilizadas na

estimativa de movimento. A relocalização, linhas vermelhas acontece em 133 frames. (Fonte:(KONOLIGE;

AGRAWAL, 2008))

O trabalho de (NEWCOMBE et al., 2011) utiliza o sensor de profundidade (Kinect) para

estimar o movimento do robô, assim como a reconstrução do ambiente. O processamento é

realizado em tempo real, com velocidade de 30FPS. O algoritmo é implementado em uma GPU e

utiliza relocalização no momento em que perde o caminho. Uma ilustração do resultado

mencionado na referência (NEWCOMBE et al., 2011) é apresentado na Figura 2-11.

Page 45: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

14

Figura 2-11 Movimento circular ao redor de uma tábua com objetos. A reconstrução do ambiente e trajetória

de navegação são apresentadas. (Fonte: (NEWCOMBE et al., 2011))

O trabalho de (CLIPP; FRAHM; POLLEFEYS, 2010), utiliza visão estereoscópica como

único dispositivo para resolver o problema de localização simultânea e mapeamento (vSLAM). A

implementação utiliza GPU, bem como, o processamento de múltiplos núcleos na CPU, atingindo

a velocidade de 15FPS. A identificação de pontos de interesse (keypoints) e correlações das

imagens estereoscópicas utiliza o algoritmo SIFT. O movimento é estimado por meio do cálculo

das profundidades de pontos no espaço utilizando o algoritmo de três pontos. Os experimentos

são realizados em ambientes internos com obstáculos dinâmicos. Na Figura 2-12 é apresentado o

mapa. Linhas cinza representam o mapa real. Pontos azuis e verdes representam o mapa

recuperado da informação visual.

Figura 2-12 Resultados do trabalho, a câmera navegou três vezes no loop esquerdo e direito.

(Fonte:(CLIPP; FRAHM; POLLEFEYS, 2010))

Page 46: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

15

Na dissertação de mestrado de (SANTOS, 2010) é apresentado um trabalho de SLAM visual

monocular, utilizando o algoritmo SURF da biblioteca de OpenCV. É apresentada uma técnica de

inicialização atrasada de marcas baseada na intersecção de retas 3D. Também, a posição é

corrigida utilizando o EKF utilizando o vetor de estados. O algoritmo apresenta dificuldades nas

correlações de pontos quando existem superfícies refletivas. Os testes são realizados em ambiente

interno. As trajetórias da navegação são apresentadas na Figura 2-13.

Figura 2-13 Trajetória realizada pelo robô, odometria e SLAM visual. Localização do robô através da

interseção dos vetores 3D de um keypoint identificado em três instantes deferentes. (Fonte: (SANTOS, 2010))

Na dissertação de mestrado de (SANTIAGO, 2008), apresenta-se um sistema de navegação

cooperativa utilizando visão. O robô humanoide é controlado pelo robô diferencial utilizando a

informação da câmera. Também, esta informação é utilizada para a localização e mapeamento

simultâneo. Uma ilustração das plataformas robóticas utilizadas são apresentado na Figura 2-14.

Figura 2-14 Plataformas robótica com câmera monocular e robô humanoide com marcador visual.

(Fonte:(SANTIAGO, 2008))

Na tese de doutorado de (SANTANA; MEDEIROS, 2011) é proposta uma técnica de

vSLAM adequada para ambientes planos com linhas presentes no chão. O sistema utiliza visão

monocular. O processamento da imagem é realizado utilizando o filtro de Canny. O método

Page 47: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

16

permite que o robô navegue no ambiente fundindo informações de odometria e de visão

monocular, conforme apresentado na Figura 2-15.

Figura 2-15 Diagrama de segmentação de imagem, identifica as marcas de referência no chão. Ambiente

externo estruturado. (Fonte:(SANTANA; MEDEIROS, 2011))

No trabalho de (SUJAN; MEGGIOLARO; BELO, 2006), uma técnica de planejamento de

trajetória é apresentada. Utilizando uma câmera monocular são identificados os possíveis

destinos de um robô diferencial. O mapeamento é realizado com a rotação do robô construído

uma imagem panorâmica 2D. Uma ilustração do algoritmo mencionado em (SUJAN;

MEGGIOLARO; BELO, 2006) é apresentado na Figura 2-16.

Figura 2-16 Imagem com pontos de referência e diagrama do mapeamento do robô.

(Fonte: (SUJAN; MEGGIOLARO; BELO, 2006))

O trabalho de (BOTELHO et al., 2009) apresenta o uso de odometria visual para a

localização de um robô aquático autônomo em ambientes submarinos Autonomous Underwater

Vehicles (AUVs). Com uma câmera monocular são identificados keypoints através do algoritmo

SIFT. Depois, são escolhidos os melhores keypoitns utilizando os filtros RANSAC e LMeds. O

Posição do robô

(k)

Posição (k+1)

Janela de

sobreposição

Page 48: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

17

algoritmo é validado em diferentes condições de iluminação e qualidade da água. A plataforma

robótica de navegação é apresentada na Figura 2-17.

Figura 2-17 Robô aquático com pontos de referência artificial

(Fonte:(BOTELHO et al., 2009))

No trabalho de (SILVEIRA, 2010) é apresentada uma técnica de localização e

mapeamento utilizando métodos diretos. A navegação de uma câmera é recuperada utilizando a

correlação de seções planas das imagens. Esta técnica utiliza modelos de iluminação e reflexo

bem com técnicas de otimização. Os resultados apresentam robustez às modificações de

iluminação e pequeno esforço computacional. Uma ilustração do resultado mencionado em

(SILVEIRA, 2010) é apresentado na Figura 2-18.

Figura 2-18 Movimento recuperado da câmera e imagens de referência.

(Fonte:(SILVEIRA, 2010))

Page 49: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

18

Na tese de doutorado de (BONATO, 2007) é apresentada uma arquitetura de hardware

embarcada em uma FPGA para o processamento de SLAM utilizando visão. Os pontos de

referência são identificados com o algoritmo SIFT. São capturadas quatro imagens em tempo real

com o sistema apresentado na Figura 2-19. O filtro de Kalman é utilizado nas etapas de

mapeamento e localização.

Figura 2-19 Hardware utilizado, FPGA com sistema de visão de quatro câmeras. (Fonte: (BONATO, 2007))

Na dissertação de mestrado de (GUIZILINI, 2008) é implementada a técnica de SLAM

visão utilizando uma câmera omnidirecional, onde são identificados pontos de referência

utilizando o algoritmo SIFT, conforme ilustrado na Figura 2-20. Um mapa é construído

continuamente. Os pontos de referência são comparados com o mapa. Caso não seja encontrada

uma correlação, o ponto é armazenado no mapa como uma nova referência. O algoritmo é

validado em um ambiente de interior.

Figura 2-20 Imagens omnidirecionais em duas posições diferentes. Os pontos identificados, bem como a

correlação de pontos com o algoritmo SIFT são apresentados. (Fonte: (GUIZILINI, 2008))

Page 50: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

19

No trabalho de (SAMPAIO et al., 2013) é apresentada uma plataforma para testar

algoritmos de Unmanned Aerial Vehicle (UAV). É proposta a medição da velocidade de um

UAV utilizando uma câmera. As imagens são processadas através da implementação de OpenCV

do algoritmo de fluxo óptico. No entanto, o sistema também pode utilizar a informação de um

IMU, Altímetro e GPS. Uma ilustração do resultado mencionado na referência (SAMPAIO et al.,

2013) é apresentado na Figura 2-21.

Figura 2-21 Simulação do UAV com uma câmera direcionada para o chão. A Velocidade é medida utilizando

Fluxo Óptico. (Fonte:(SAMPAIO et al., 2013))

Na dissertação de mestrado de (COUTO, 2012) é apresentado um algoritmo de relocalização.

Um mapa é construído com os keypoints identificados através do algoritmo SURF associados à

odometria dos encoders. A plataforma robótica é relocalizada através de uma câmera Videre

DCSG Color, conforme é apresentada na Figura 2-22.

Figura 2-22 Imagem Robô Pionner 3-AT com uma câmera industrial (Fonte:(COUTO, 2012))

Na dissertação de mestrado de (TAVARES, 2004) é apresentado um sistema de localização

utilizando imagens. Uma câmera presa no teto de um ambiente interior (Figura 2-23) localiza o

robô através de um marcador visual. Esta informação é utilizada para a correção da odometria

Page 51: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

20

dos encoders. Uma ilustração do experimento mencionado na referência (TAVARES, 2004) é

apresentado na Figura 2-23.

Figura 2-23 Sistema de localização visual do robô lego (Fonte:(TAVARES, 2004))

Na dissertação de mestrado de (BERNARDES, 2010) é apresentado um sistema de

controle servo visual em veículos robóticos. Os filtros (KNN, Sobel, HMIN) e a transformada

Watershed são implementados em CUDA para garantir a velocidade de processamento. O robô

do experimento é ilustrado na Figura 2-24.

Figura 2-24 Representação das regiões escolhida para análise, plataforma robótica com a qual foram

implementados os testes (Fonte:(BERNARDES, 2010))

No trabalho de (ANDREASSON; DUCKETT; LILIENTHAL, 2007), é apresentado um

sistema vSLAM minimalista. Ou seja, utiliza poucos sensores e pouco requisito computacional.

São utilizadas unicamente as informações das rodas (odometria) e a informação de uma câmera

omnidirecional. No trabalho são combinados dois métodos existentes. O uso de singularidade de

Page 52: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

21

imagens panorâmicas para close loop no nível topológico, e extração gráfica da informação de

odometria. Rotação entre duas posições é estimada por diferença quadrática para cada par de

pontos. No experimento foram utilizadas 945 imagens omnidirecionais. O percurso navegado é

de 1,4 km. Captura-se imagens a cada 3 metros, construindo-se o mapa online em tempo real.

Imagens de 100x289 pixels são processadas utilizando o algoritmo SIFT. Os resultados são

validados com o uso de DGPS apresentando um erro de 6,22 m. Uma ilustração do resultado

mencionado na referência (ANDREASSON; DUCKETT; LILIENTHAL, 2007) é apresentado na

Figura 2-25.

(a) (b)

Figura 2-25 Em (a) os quadros brancos representam as features não correlacionas, os quadros azuis

representam as correlações bem sucedidas. Os círculos vermelhos representam as posições do robô. (b)A

plataforma robótica com uma câmera Canon e uma lente omnidirecional 360º , um DGPS, um Laser para

visualização. Fonte:(ANDREASSON; DUCKETT; LILIENTHAL, 2007)

2.2 Fusão de sensores

Nesta seção são apresentados trabalhos da literatura que resolvem o problema de estimação

de movimento fundindo diferentes estimativas de localização. Os sensores são classificados em

dois tipos. Introspectivos: encoders, giroscópios, bussolas, acelerômetros e unidades inerciais de

medição de movimento Inertial Measurement Unit (IMU); Extrospectivos: Lasers, Câmeras e

Global Positioning System (GPS).

Nos trabalhos de (HUI FANG, 2009) e (ADAM; MEMBER; RIVLIN, 1999) são fundidas a

odometria dos encoders e odometria visual (VO). Os ângulos e acelerações dos IMUs são

fundidos com a VO nos trabalhos de (BAK et al., 2012), (ZHU et al., 2011), (WANG; XIE,

2015) e com odometria dos encoders no trabalho de (MITSUHASHI; KURODA, 2011). O erro

cumulativo da VO é corrigido pelo GPS no trabalho de (WEI; CAPPELLE; RUICHEK, 2011).

Page 53: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

22

Os sensores Laser são também utilizados para estimar o movimento através da técnica de

correlação de pontos Iterative Closest Point (ICP). As estimativas de movimento da odometria

visual e do Laser são fundidas no trabalho de (HOANG et al., 2013), e no trabalho de (WEI;

CAPPELLE; RUICHEK, 2013b) são fundidas, a estimativa da VO, a localização pelo GPS e o

movimento estimado pelo Laser.

Na literatura são utilizadas diferentes técnicas para resolver o problema de localização. A

redundância de informação é fundida comumente com três métodos que utilizam o Filtro de

Kalman (KF). A fusão de sensores com o KF linear é apresentada nos trabalhos de (ZHU et al.,

2011) e (WANG; XIE, 2015). O KF não linear Unscented Kalman Filter (UKF) é apresentado

nos trabalhos de (HUI FANG, 2009), (MALYAVEJ et al., 2009); o KF estendido Extended

Kalman Filter (EKF) é implementado nos trabalhos de (ADAM; MEMBER; RIVLIN, 1999),

(CASTELLANOS; NEIRA, 2001), (BAK et al., 2012), (FERNANDA; RUIZ, 2014), (WEI;

CAPPELLE; RUICHEK, 2011), (HOANG et al., 2013). No trabalho (MITSUHASHI;

KURODA, 2011) é utilizado o filtro Divided Difference Filter (DDF) para fundir a estimativa de

odometria com a localização do GPS. O KF também é utilizado para estimar a posição utilizando

as localizações anteriores. Esta técnica é conhecida como Dead Reckoning (DR) e é

implementada no trabalho de (BONATO, 2007). O EKF nesta configuração é implementado nos

trabalhos (SALVI et al., 2008), (SANTOS, 2010).

O trabalho de (HUI FANG, 2009), realiza o processo de localização de um robô autônomo

utilizando uma câmera direcionada para o solo e um mapa de texturas de imagens. A informação

da odometria dos encoders das rodas é utilizada para posicionar as imagens no mapa. No entanto,

o erro acumulativo da odometria insere incertezas na conexão das imagens, requerendo, desta

forma, o uso de processamento de imagens. Keypoints são identificados com o algoritmo Harris

Corner Detector e correlacionados através de técnicas de otimização. O método UKF é utilizado

para fundir a informação de odometria e a construção do mapa. Uma ilustração do sistema

utilizado na referência (HUI FANG, 2009) é apresentado na Figura 2-26.

Page 54: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

23

Figura 2-26 Veículo inteligente da universidade Shanghai Jiao Tong (Fonte:(HUI FANG, 2009))

No trabalho de (ADAM; MEMBER; RIVLIN, 1999) a odometria das rodas e a odometria

visual foram unidas para estimar a localização do robô. Utilizou-se o vídeo de uma câmera e os

encoders das rodas do robô. Em adição a isso, emprego se o filtro de Kalman para fusão das

diferentes informações de odometria. Uma ilustração do resultado mencionado na referência

(ADAM; MEMBER; RIVLIN, 1999) é apresentado na Figura 2-27.

Figura 2-27 Odometrias estimadas e trajetória real (Fonte:(ADAM; MEMBER; RIVLIN, 1999))

No Trabalho de (CASTELLANOS; NEIRA, 2001) foram correlacionados os dados do Laser

e da câmera . Os pontos no espaço 3D reconstruidos das distâncias do Laser e os keypoints

identificados nas imagens são fundidos utilizando o EKF. O algoritmo foi implementado em CPU

e atingindo uma velocidade de processamento em tempo real. Uma ilustração do resultado

mencionado na referência (CASTELLANOS; NEIRA, 2001) é apresentado na Figura 2-28.

Page 55: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

24

Figura 2-28 Identificação de pontos de referência com o Laser e a projeção na imagem.

(Fonte:(CASTELLANOS; NEIRA, 2001))

No trabalho de (PAUDEL et al., 2014) é proposta uma técnica para a fusão de odometria

visual e Laser 3D para ambiente exterior. Pontos correspondentes entre duas imagens de 480x640

pixels são identificados através do algoritmo SURF. O data-set utilizou dois Laser 2D e 4

câmeras sincronizadas para a navegação e reconstrução do ambiente. Uma ilustração do resultado

mencionado na referência (PAUDEL et al., 2014) é apresentado na Figura 2-29.

Figura 2-29 Reconstrução da superfície em 3D. As texturas das imagens foram fundidas com os pontos

medidos com os Lasers (Fonte:(PAUDEL et al., 2014)).

No trabalho de (BAK et al., 2012) é apresentado uma nova aplicação da odometria visual

como sensor propiospectivo. A odometria visual é utilizada para corrigir os erros de um sensor

Inertial Navigation System (INS) de baixo custo. O algoritmo é validado em ambiente externo e

comparado com GPS/IMU. O filtro de Kalman é utilizado em configuração EKF-dead reckoning.

Uma ilustração do resultado mencionado em (BAK et al., 2012) é apresentado na Figura 2-30.

Page 56: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

25

(a) (b)

Figura 2-30 (a)Rotação estimada pelo algoritmo de odometria visual e IMU no experimento, (b) automóvel

autônomo LIVIC’s com câmeras estereoscópicas e arquitetura de hardware dedicada.

(Fonte:(BAK et al., 2012))

No trabalho de (NEMRA et al., 2013) é utilizada uma câmera estereoscópica no problema de

localização e mapeamento. As imagens capturadas pelas câmeras Bumblebee2 são processadas

pelo algoritmo SURF. Nesse trabalho, o algoritmo ICP comumente usado para a correlação de

pontos do Laser é utilizado para correlação de imagens. Este novo método é chamado de IC-

SURF. O algoritmo foi implementado em Matlab e testado em ambientes internos e externos. O

algoritmo Adaptative IC-SURF é comparado com a odometria visual na Figura 2-31(a). A

plataforma robótica utilizada é apresentada na Figura 2-31 (b).

(a) (b)

Figura 2-31 Trajetórias da odometria dos encoders e a proposta de odometria visual Adaptative IC-SURF (a).

Robô Pioneer 3AT com uma câmera Bumblebee2 de 12mm (b). (Fonte :(NEMRA et al., 2013))

No trabalho de (MITSUHASHI; KURODA, 2011) é apresentado um sistema de localização

em ambientes externos utilizando câmeras e o algoritmo Probabilistic Localization and Mapping

Page 57: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

26

in the Space of Appearance (FABMap). A estimativa de movimento é recuperada pela fusão dos

encoders das rodas e o giroscópio através do algoritmo Divided Difference Filter (DDF). Uma

ilustração do resultado mencionado na referência (MITSUHASHI; KURODA, 2011) é

apresentado na Figura 2-32.

Figura 2-32 Arquitetura do sistema e o robô móvel INFANT (Fonte: (MITSUHASHI; KURODA, 2011)).

No trabalho de (MALYAVEJ et al., 2009) é utilizado algoritmo Unscented Kalman Filter

(UKF) para fundir a informação do GPS, a odometria dos encoders e de uma bússola eletrônica.

Para calibrar a bússola é utilizado um circuito circular realizando a navegação várias vezes. Os

resultados desse experimento são apresentados na Figura 2-33.

(a) (b)

Figura 2-33 Resultados de navegação utilizando o GPS puro(a) e resultados da fusão com o filtro UKF (b). (Fonte:(MALYAVEJ et al., 2009))

No trabalho de (SALVI et al., 2008) é utilizada uma câmera estereoscópica para estimar a

odometria visual. O filtro de Kalman estendido EKF na configuração dead-reckoning e o

𝑋 = [𝑥, 𝑦,𝜃]

Localização

Fusão de sensores

(DDF)

[𝑥 , 𝑦]

Reconhecimento

[𝑊𝑔𝑖𝑟𝑜 , 𝑡]

Odometria Giroscópio

[𝑣𝑜𝑑𝑦,𝑊𝑜𝑑𝑦, 𝑡]

Odometria das Rodas

[𝑣𝑡,𝑤𝑡 ]

Dead Reckoning

Page 58: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

27

algoritmo SURF são utilizados para estimar o movimento. Também, a posição dos Keypoints é

estimada e corregida pelo KF ao longo da trajetória. O movimento estimado é novamente filtrado

pelo filtro Rauch-Tung-Striebel (RTS). O algoritmo foi testado na trajetória do ambiente

simulado apresentado na Figura 2-34.

(a) (b)

Figura 2-34 Resultados de SLAM, as trajetórias claras (verdes) representam as trajetórias de referência. As

trajetórias obscuras (vermelhas) na figura (a) representam a saída do filtro EKF. Na imagem (b) representa a

saída do filtro RTS (Fonte: (SALVI et al., 2008) ).

No trabalho de (ZHU et al., 2011) do centro de pesquisa International Sarnoff (SRI) é

apresentado um sistema de localização de alta precisão. O ambiente é mapeado através da uma

câmera estereoscópica e um Laser. A localização do robô é estimada pela fusão de sensores

utilizando o filtro de Kalman. O movimento recuperado pela odometria visual é fundido com o

movimento recuperado de uma unidade IMU. Nesse experimento são construídos data-sets onde

o mapeamento do Laser e as imagens são correlacionadas. No experimento o robô realiza

mapeamentos de 360º movimentando os sensores com uma unidade PTU como é apresentado na

Figura 2-35.

(a) (b)

Figura 2-35 Plataforma modificada Segway equipada com sensores para a tarefa de navegação.

(Fonte: (ZHU et al., 2011))

Page 59: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

28

No trabalho de (WANG; XIE, 2015) é apresentado um sistema de localização de robôs

aquáticos. O sistema de localização utiliza uma câmera de baixo custo e uma unidade inercial

IMU. Este sistema utiliza o filtro de Kalman em configuração dead-reckoning e localização pelo

método de Mote Carlo. O algoritmo é validado em um ambiente com texturas artificiais,

apresentado na Figura 2-36.

Figura 2-36 Configuração do robô aquático e ambiente de teste com texturas artificiais.

(Fonte: (WANG; XIE, 2015))

Na Unicamp, o trabalho de (FERNANDA; RUIZ, 2014), realiza a fusão dos sensores, GPS,

bússola, modelo matemático e a localização referenciada para a estimação do movimento

utilizando o EKF. Os testes foram realizados no simulador Gazebo. Foram identificados,

também, os sinais de trânsito utilizando Lasers e uma câmera. Estes sinais foram utilizados como

keypoints para realizar relocalização através do método de localização referenciada (MLR). Uma

ilustração do resultado mencionado na referência é apresentada na Figura 2-37.

Barbatana caudal

Interruptor Peso de balanceamento

Bateria IMU

Câmera

Circuito de Controle

Barbatana peitoral

Page 60: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

29

Figura 2-37 Simulação em Gazebo do carro autônomo identificando sinais no ambiente

(Fonte:(FERNANDA; RUIZ, 2014))

No trabalho de Bedkowski (BEDKOWSKI; MASLOWSKI, 2011) é apresentada a

implementação on-line em CUDA do registro 3D de ambientes, utilizando um Laser em um

suporte rotativo. O método utilizado é o ICP que procura vizinhanças próximas. A validação

utiliza dois data sets com mais de 262.144 pontos em 100 interações (512x512 e 361x498). Uma

ilustração do resultado mencionado na referência (BEDKOWSKI; MASLOWSKI, 2011) é

apresentado na Figura 2-38.

Figura 2-38 Nuvens de pontos no espaço 3D capturados pelo Laser, os pontos claros representam os dados

originais. Os pontos obscuros representam a correção pelo algoritmo ICP (Fonte:(BEDKOWSKI;

MASLOWSKI, 2011))

No trabalho de (WEI; CAPPELLE; RUICHEK, 2011), é apresentada a localização do

veículo utilizando visão estereoscópica e um GPS. A odometria visual contém erro acumulativo

que é corrigido com a posição do GPS a cada 50 amostras, como apresentado na Figura 2-39.

Page 61: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

30

Também são avaliadas, a qualidade da estimativa do GPS e a estimativa de movimento pelas

câmeras. Quando o GPS apresenta baixa qualidade é utilizada a odometria visual.

(a) (b)

Figura 2-39 Plataforma robótica tipo automóvel SeTCar com câmeras estereoscópicas e GPS (a). Trajetórias

resultantes dos experimentos em ambientes de exterior (Fonte:(WEI; CAPPELLE; RUICHEK, 2011)).

No artigo de (WEI; CAPPELLE; RUICHEK, 2013b) é apresentada a fusão dos sensores

câmera/Laser/GPS. A informação de localização redundante é fundida com a proposta de

localização utilizando um filtro de informação (IF). O veículo é localizado utilizando um Laser

horizontal através da técnica ICP, uma câmera estereoscópica e um GPS. O esquemático do

trabalho e os sensores utilizados são apresentados na Figura 2-40.

Figura 2-40 Esquemático do sistema de localização (a), sensores Laser, câmera estereoscópica e GPS, fixos no teto do

automóvel autônomo SeTCar(b) (Fonte:(WEI; CAPPELLE; RUICHEK, 2013b), (WEI; CAPPELLE; RUICHEK, 2013a))

No trabalho de (HOANG et al., 2013), é utilizado o EKF para a fusão da odometria visual e a

odometria do Laser utilizando a técnica ICP. Uma câmera omnidirecional é utilizada para estimar

o movimento utilizando o algoritmo SIFT na seleção de pontos de referência. Os resultados são

Estimativa

de pose por Lase

Modelo do

Processo

Estimativa

de pose

Odometria visual Localização

GPS Predição

do movimento

NIS e atualização

de localização

Page 62: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

31

validados em ambientes externos e comparados com a trajetória estimada pelo GPS. Uma

ilustração do sistema mencionado na referência (HOANG et al., 2013) é apresentado na Figura

2-41.

Figura 2-41 Veiculo elétrico com câmera omnidirecional, GPS e Laser. (Fonte:(HOANG et al., 2013))

No trabalho de (PARRA et al., 2011), a informação do GPS de baixa qualidade é substituída

pela odometria visual. A fusão destas estimativas através de um filtro binário utiliza a qualidade

do sinal do GPS para selecionar o tipo de estimativa apresentado na Figura 2-42. A trajetória é

refinada com o filtro de Kalman na configuração Dead-Reckoning.

Figura 2-42 Esquemático da seleção do sistema de localização (Fonte:(PARRA et al., 2011))

O estudo pelos veículos autônomos no mundo têm se acelerado desde o concurso DARPA

2004. O mapa dos grupos de pesquisa trabalhando com projetos de carro autônomo na America

Latina é apresentado na Figura 2-43. As universidades da PUC RIO e Porto Alegre embora não

Page 63: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

32

possuindo veículo autônomo, possuem importantes contribuições nesta área. No Chile foi

construído um veículo autônomo pela Universidade de Chile e o Centro Avançado de Tecnologia

para a Mineração (AMTC) (PARRA-TSUNEKAWA; RUIZ-DEL-SOLAR; VALLEJOS, 2014).

No Brasil: Na Universidade de São Paulo (USP) foram construídos os veículos autônomos

Carina-I e Carina-II (FERNANDES et al., 2014). Na Universidade Federal do Espírito Santo

(UFES) estão testando o modelo Ford escape hybrid chamado de IARA (CASTILLO et al.,

2014). Na Universidade Federal de Minas Gerais (UFMG) foi construído o veículo autônomo

CADU (DE LIMA; PEREIRA, 2013). No centro de tecnologia da informação Renato Archer

(CTI) foi construído o veiculo autônomo VERO (MIRISOLA et al., 2011). Na Universidade

Estadual de Campinas (Unicamp) esta se construindo o veículo autônomo VILMA

(FERNANDA; RUIZ, 2014). No México o professor Raul Rojas esta testando o carro autônomo

desenvolvido na Alemanha (GÖHRING et al., 2013).

Figura 2-43 Imagem dos locais que estão trabalhando no projeto do robô autônomo terrestre na America

Latina. (Imagem de Google Maps)

Os trabalhos de veículos autônomos apresentam a particularidade de utilizar câmeras e Laser

no mapeamento do ambiente. Estes mapas são utilizados como referencia na tarefa de navegação

autônoma. Também, são empregados nas etapas de percepção, localização e como ambientes

controlados para o teste de algoritmos. O uso de câmeras como sistema de localização é

apresentado em diferentes configurações na literatura. O Curiosity da NASA através de doze

câmeras estereoscópicas realiza a navegação e mapeamento. Os trabalhos de (OLSON et al.,

2003), (NEMRA et al., 2013), (SALVI et al., 2008), (ZHU et al., 2011), (KONOLIGE;

AGRAWAL, 2008), (WEI; CAPPELLE; RUICHEK, 2011) e (WEI; CAPPELLE; RUICHEK,

2013b) apresentaram sistemas de localização utilizando câmeras estereoscópicas. Estes sistemas

permitiram a reconstrução dos pontos no ambiente euclidiano. No entanto, este método requer de

Page 64: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

33

alta demanda computacional em termos de volume e velocidade de processamento. O trabalho de

(CLIPP; FRAHM; POLLEFEYS, 2010) utiliza a técnica de correlação de características SIFT

executada em GPUs. Nos trabalhos de (HOWARD, 2008), e (DRYANOVSKI et al., 2013) são

processadas imagens em tempo real, utilizando métodos diretos executados em CPU.

A literatura também sugere o uso de informação redundante na localização. A fusão de

estimativas que utilizam sensores introspectivos e extrospectivos através do filtro de Kalman

(KF) é apresentada nos trabalhos de (ZHU et al., 2011) e (WANG; XIE, 2015), embora novas

técnicas de fusão como o EKF e UKF são utilizadas o KF apresenta uma solução simples ao

problema de fusão.

Neste trabalho o algoritmo de visão estereoscópica utiliza a técnica de extração de

características SURF e é executado em uma GPU. O algoritmo é validado em novos mapas de

ambientes de exterior de grande escala (1km).

3 Estereoscópica

A identificação de pontos em comum em duas imagens, capturadas por uma câmera

estereoscópica e sua reconstrução no espaço euclidiano são descritos nesta seção. Uma nova

proposta de câmera descrita na seção 6.1, captura imagens estereoscópicas que são processadas

pelo algoritmo SURF, descrito na seção 3.1. As imagens traduzidas em conjuntos de pontos de

interesse são correlacionadas como é apresentado na seção 3.2. Os pontos presentes nas imagens

estereoscópicas em diferentes instantes de tempo são projetados no espaço euclidiano. Esta

técnica é conhecida como triangulação estereoscópica, onde são utilizadas as técnicas de

calibração da seção 3.4 e o algoritmo de triangulação da seção 3.5.

As câmeras estereoscópicas são réplicas do sistema de visão humano. Um sistema

estereoscópico ideal é composto por duas imagens de câmeras paralelas, separadas por uma

distância conhecida e sem rotação relativa. Diferentes tipos de câmeras são utilizados na indústria

e em pesquisa. A principal característica deste sistema é a possibilidade de estimar a

profundidade de um objeto comum, a partir de um par de imagens esquerda e direita (Left and

Right). Conforme é ilustrado na Figura 3-1.

Page 65: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

34

Figura 3-1 Modelo de câmeras estereoscópicas, Fonte:(NIST; BERGEN, 2004)

Os principais sistemas de câmeras estereoscópicas disponíveis no mercado fornecem os

parâmetros de calibração e apresentam uma arquitetura fechada de hardware e software. Ou seja,

o usuário só tem acesso às imagens, sem que haja informação ou controle sobre a sincronização

das imagens. Também as lentes são fixas e alguns modelos não permitem a modificação do

tamanho da imagem. As câmeras estereoscópicas comumente utilizadas na indústria e em

trabalhos de pesquisa são apresentadas na Tabela 1.

TABELA 1 CÂMERAS ESTEREOSCÓPICAS UTILIZADAS

Nome da Câmera Velocidade Tamanho Tipo

Bumblebee 2 48FPS 640x480 Estereoscópico

20 FPS 1024x768 Estereoscópico

Bumblebee XB3 15FPS 1280x960 Estereoscópica

linha base múltipla

MobileRanger 30FPS 752x480 Estereoscópico

Ensenso N10

(VOIGT, [s.d.])

30FPS 752x480 Estereoscópica

linha base múltipla

Page 66: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

35

Surveyor Stereo 15FPS 1280x1024 Estereoscópico

3.1 Identificação de pontos de interesse SURF

A identificação de características na imagem é realizada através do algoritmo SURF (BAY et

al., 2006) que procura pontos robustos em uma imagem. Esta técnica é uma modificação do

algoritmo SIFT (LOWE, 2004). Uma imagem em escala de cinzas é transformada pelo algoritmo

SURF em pontos de interesse, conforme ilustrado na Figura 3-3. O processo inicia com a

integração numérica da imagem. Depois, é realizado um processo de busca no espaço e escala.

Cada ponto de interesse é relacionado a uma orientação e um descritor das variações de

intensidade ao redor do ponto escolhido.

Algoritmo 0 Identificação do ponto de interesse SURF

1. Integração da imagem

2. Análise de espaço e escala

3. Localização de ponto de interesse

4. Orientação do ponto

5. Construção do descritor

Utiliza-se neste trabalho a implementação do algoritmo SURF na plataforma OpenCV. No

entanto, o algoritmo é descrito nesta seção para maior esclarecimento sobre o seu funcionamento.

Os descritores encontrados pelo algoritmo são correlacionados e filtrados, conforme apresentado

nas seções seguintes.

Integração da imagem

A integração da imagem 𝑰 é dividida em dois passos para melhorar o processamento.

Primeiro é construída uma matriz de integração dos pixels do ponto (0,0) na imagem até o ponto

(𝑢, 𝑣) onde 𝑢 e 𝑣 são as coordenas do ponto candidato na imagem.

Page 67: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

36

𝑰∑(𝑿) = ∑∑𝑰(𝒊,𝒋)

𝒋≤𝒗

𝒋=𝟎

𝒊≤𝒖

𝒊=𝟎

(1)

Depois é realizada a somatória do valor da matriz de integração para a região definida pelos

pontos A, B, C, D como apresentado na Figura 3-2. A matriz de integração 𝑰∑(𝑿)é utilizada para

aprimorar o processamento de integração de seções de imagem, bem como, melhorar a

convolução do filtro tipo "box", descrito na sequência.

Figura 3-2 Redução da escala da imagem utilizada no algoritmo SIFT (direita), O algoritmo SURF utiliza a

toda a imagem cata etapa. Utilizando o algoritmo Haar Wawelet. Fonte: (BAY et al., 2006).

Detecção do ponto de interesse

A detecção do ponto de interesse baseia-se na aproximação da matriz Hessiana e o uso do

filtro Box. Onde a matriz Hessiana é definia como,

𝓗(𝑋, 𝜎) = [𝐿𝑢𝑢(𝑋, 𝜎) 𝐿𝑢𝑣(𝑋, 𝜎)𝐿𝑢𝑣(𝑋, 𝜎) 𝐿𝑣𝑣(𝑋, 𝜎)

] (2)

onde 𝑋 = (𝑢, 𝑣) é um ponto na imagem, e 𝐿 a convolução da derivada Gaussiana de segunda

ordem.

𝐿𝑢𝑢(𝑋, 𝜎) =𝜕2

𝜕𝑢2𝑔(𝜎)

(3)

O processamento de imagens com filtros gaussianos é comumente utilizado. No entanto, o

algoritmo SURF utiliza o filtro Gaussiano através de uma aproximação discreta. A nova

aproximação da matriz Heissiana é composta pelas derivadas parciais de segunda ordem 𝐷𝑢𝑢,

𝐷𝑣𝑣 e 𝐷𝑢𝑣.

ℋ𝑎𝑝𝑝𝑟𝑜𝑥(𝑋, 𝜎) = [𝐷𝑢𝑢(𝑋, 𝜎) 𝐷𝑢𝑣(𝑋, 𝜎)𝐷𝑢𝑣(𝑋, 𝜎) 𝐷𝑣𝑣(𝑋, 𝜎)

] (4)

Page 68: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

37

A seleção do ponto de interesse é definida pelo determinante da matriz Heissiana,

𝑑𝑒𝑡(ℋ𝑎𝑝𝑝𝑟𝑜𝑥) = 𝐷𝑢𝑢𝐷𝑣𝑣 − 𝐷𝑢𝑣2, (5)

Se o ponto analisado corresponde a um máximo, este é selecionado como keypoint.

det(ℋ𝑎𝑝𝑝𝑟𝑜𝑥) < 0 (6)

Outra diferença do algoritmo SIFT é a substituição das variações de escala de imagem,

ilustrado na Figura 3-3 (a). O algoritmo SURF utiliza a variação na escala do filtro, ou seja o

tamanho da imagem é constante. Isto permite o processamento paralelo do algoritmo, conforme

ilustrado na Figura 3-3 (b). A variação de escalas é divida em níveis e oitavas. Uma oitava

representa uma serie de respostas de filtros com diferentes variações de escala 𝜎.

(a) (b)

Figura 3-3 Redução da escala da imagem utilizada no algoritmo SIFT (direita), O algoritmo SURF utiliza a

toda a imagem cada etapa. Utilizando o algoritmo Haar Wawelet. Fonte: (BAY et al., 2006).

O valor máximo identificado pelo determinante da matriz Hessiana é interpolado em escalas

bem como na vizinhança do ponto de interesse. Um filtro detector de bordas (non-maximum

suppression) é aplicado na matriz de vizinhança de tamanho 3x3x3, e é utilizado para selecionar

o ponto de interesse. O ponto que seja um extremo de uma dada vizinhança é definido como

keypoint.

Page 69: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

38

Figura 3-4 Três oitavas com três níveis. A vizinhança de 3x3x3 sem eliminação de máximos. Fonte: (BAY et

al., 2006).

O descritor representa o keypoint e sua vizinhança em um vetor de 64bytes. A região do

descritor é dividida em uma grade de 4x4 seções. Em cada sub-região é aplicado o filtro Haar

Wavelet (HW). As sub-regiões são divididas em 5X5 seções. A resposta do Haar Wavelet é a

somatória das variações dos gradientes de intensidade nos eixos 𝑥, 𝑦 e as magnitudes |𝑥| 𝑒 |𝑦|,

como é apresentado na Figura 3-5.

Figura 3-5 Construção do descritor de 64 bytes SURF, Fonte: (BAY et al., 2006).

O descritor definido pelas 16 regiões e as 4 sumulas é organizado como,

𝐷𝑠 = [∑𝑑𝑥0 ,∑|𝑑𝑥0| ,∑𝑑𝑦0 ,∑|𝑑𝑦0| , … . . ,∑𝑑𝑥𝑛 ,∑|𝑑𝑥𝑛| , ∑𝑑𝑦𝑛 ,∑|𝑑𝑦𝑛|] (7)

Um exemplo da representação de uma imagem pela resposta do filtro Haar Wavelet é

apresentada na Figura 3-6. Quando a imagem não contém nenhuma variação, o valor da

somatória é nulo. Quando as variações acontencem no eixo 𝑥, as somatórias não nulas

encontram-se nesse eixo apenas. Para identificar a variação normalizada é utilizada a magnitude

Page 70: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

39

da somatória em cada eixo. Desta maneira, o valor absoluto das somatórias representa esta

caraterística de intensidade local da imagem.

Figura 3-6 Exemplo das componentes do gradiente de intensidade do descritor. Fonte: (BAY et al., 2006).

3.2 Correlação da imagem

A correlação de imagens busca pontos em comum, ou regiões de imagens diferentes que

representem o mesmo objeto do mundo real. O algoritmo de odometria visual VO requer pontos

de referências correlacionados, presentes em uma sequência de imagens, para estimar o

movimento. Ou seja, os pontos identificados pelo algoritmo SURF são representados por

coordenadas de imagem (𝑢, 𝑣) e pelo vetor de gradientes de intensidade ao redor de sua

vizinhança. Este vetor, ou descritor, de 64 valores contém as variações de intensidade. Neste

trabalho os pontos de referência são selecionados por quatro conjuntos de descritores, 𝑚𝐿,𝑚−𝐿,

𝑚1 e 𝑚𝑅, presentes em seis imagens, como ilustrado na Figura 3-7. As correlações

estereoscópicas utilizadas para a estimativa de movimento são armazenadas para serem

comparadas com o novo par estereoscópico. Os descritores das imagens estereoscópicas

capturadas nos passos anteriores 𝑘 − 1 e 𝑘 − 2 são correlacionados em um novo conjunto de

pontos no tempo 𝑘. As correlações são armazenas nas matrizes 𝑚. Estas matrizes contêm o índice

da imagem e distância euclidiana entre dois descritores.

Page 71: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

40

Figura 3-7 Correlação dos pontos de referência em quatro imagens nos instante 𝑰(𝒌), 𝑰 (𝒌 − 𝟏), 𝑰(𝒌 − 𝟐).

A correlação de keypoints utiliza a distância euclidiana entre dois descritores. Esta distância

é calculada pela raiz do somatório das diferenças de magnitude, em inglês SSD. O descritor de

referência 𝐷𝑠𝐴 de tamanho (1 × 64) é comparado com um conjunto de descritores 𝑫𝒔𝐁 de

tamanho (𝑛𝑑 × 64), onde 𝑛𝑑 é o número de descritores da imagem B.

𝑆𝐷𝐷 = √∑(𝐷𝑠𝐴(𝑖) − 𝐃𝐬𝐁(0, 𝑖))2

15

0

(8)

A diferença de magnitude entre os descritores utiliza a somatória dos gradientes de

intensidade da vizinhança, descritos na seção anterior.

(𝐷𝑠𝐴(𝑖)−𝐃𝐬𝐁(0, 𝑖))2

= [(∑𝐴𝑑𝑥 −∑𝐵𝑑𝑥)2

+ (∑|𝐴𝑑𝑥| − ∑|B𝑑𝑥|)2

+ (∑𝐴𝑑𝑦 −∑𝐵𝑑𝑦1)2

+ (∑|𝑑𝑦0| − ∑|𝑑𝑦1|)2

]i (9)

O processo é realizado com todos os descritores da imagem 𝐼𝐴. A seleção do melhor par é

definida pela menor distância euclidiana. Neste trabalho o algoritmo de odometria visual utiliza

as features de cinco imagens , como é ilustrado na Figura 3-8. Cada descritor da imagem

𝐼𝐿(𝑘 − 1) é comparado com os descritores nas inmagens 𝐼𝐿(𝑘), 𝐼𝑅(𝑘), 𝐼𝐿(𝑘 − 2), 𝐼𝑅(𝑘 − 2).

𝐼𝐿(𝑘−2) 𝐼𝑅(𝑘−2)

𝐼𝑅(𝑘−1)

𝐼𝐿(𝑘) 𝐼𝑅(𝑘)

𝐼𝐿(𝑘−1) 𝑚𝐿

𝑚1

𝑚−𝐿 𝑚𝑅

Page 72: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

41

Figura 3-8 Correlação dos pontos de referência em quatro imagens nos instante 𝑰(𝒌), 𝑰 (𝒌 − 𝟏), 𝑰(𝒌 − 𝟐).

3.3 Filtragem de pontos correlatos nas imagens

Duas etapas de filtragem são posteriormente usadas para melhorar a qualidade das

correlações encontradas. O primeiro filtro seleciona os pontos que estão dentro de uma

vizinhança determinada por uma janela retangular, analisando os pontos na imagem. A segunda

etapa utiliza os pontos reconstruídos no espaço euclidiano.

Uma janela definida pelos parâmetros 𝑑𝑥 e 𝑑𝑦 em pixels elimina as correlações não válidas.

O tamanho da janela determina a tolerância a os deslocamentos dos pontos de referência

permitidos. Ou seja, se o filtro é calibrado com uma janela muito pequena, os pontos com

movimentações grandes são recusados. A janela é projetada em três imagens como ilustrado na

Figura 3-9. As linhas vermelhas são as correlações entre as imagens esquerda e direita nos

instantes 𝑘 e 𝑘 − 1.

Figura 3-9 Correlações das quatro imagens. As imagens superiores compõem um frame estereoscópico

(direita e esquerda) no tempo 𝒌. As inferiores no tempo 𝒌 − 𝟏. As caixas pretas ilustram o filtro.

⋮ ⋮ ⋮ ⋮

𝐼𝐿(𝑘−1) 𝐼𝐿(𝑘) 𝐼𝑅(𝑘) 𝐼𝐿(𝑘−2) 𝐼𝑅(𝑘−2)

𝐼𝐿

Page 73: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

42

Duas configurações de janelas são utilizadas. As imagens estereoscópicas têm variações

mínimas no eixo 𝑦 e grandes variações no eixo x. A correlação das imagens esquerdas entre os

instantes 𝑘 e 𝑘 − 1 permite determinar variações nos eixos 𝑥 e 𝑦.

3.4 Calibração

Nesta seção é apresentado um método para medição de parâmetros intrínsecos e extrínsecos

de câmera estereoscópica. Primeiro são medidos os parâmetros intrínsecos de uma câmera,

definidos por: densidade dos pixels 𝑆𝑥 e 𝑆𝑦, distância focal 𝑓 e centro da imagem (𝑢0, 𝑣0). Estes

parâmetros são sumarizados na matriz de parâmetros intrínsecos 𝐀.

𝐀 = [𝑆𝑥𝑓 0 𝑢0

0 𝑆𝑦𝑓 𝑣0

0 0 1

] (10)

De outra parte, os parâmetros extrínsecos relacionam o sistema de coordenadas de duas

câmeras, definidos pela matriz de rotação 𝐑c e o vetor de translação 𝑇𝑐.

Estes parâmetros são estimados através da exposição de um padrão de calibração nas

câmeras sincronizadas. No método de Buguet este padrão é um tabuleiro de xadrez, capturado em

onze diferentes posições, e os parâmetros são estimados por métodos interativos. Outro método

para medição dos parâmetros das câmeras foi desenvolvido no grupo de pesquisa PILGRIM da

FEM Unicamp. No método de (KURKA et al., 2013) é apresentada uma caixa tridimensional

uma única vez. Os parâmetros são calculados por uma solução analítica e não recursiva como o

método anterior. Os padrões de calibração para os dois métodos são apresentados na Figura 3-10.

(a) (b)

Figura 3-10 Métodos de calibração de câmeras. Tabuleiro de calibração com algoritmo de Bouguet (a) e caixa

parametrizada pelo algoritmo de Kurka (b).

Page 74: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

43

O método de Kurka(KURKA et al., 2013) inicia com a identificação das quinas do padrão de

calibração (caixa sólida). A projeção da caixa na imagem é processada e as coordenadas das

quinas de referencias são alocadas. As sete quinas são combinadas em cinquenta e seis conjuntos

de três matrizes ��𝑘𝑐𝑎, ��𝑘𝑐𝑏

, ��𝑘𝑐𝑐 cada um. Onde 𝑘𝑐 é o número do conjunto de 0 até 56. As

correspondentes posições espaciais são alocadas nas matrizes 𝑩𝑘𝑐𝑎, 𝑩𝑘𝑐𝑏

e 𝑩𝑘𝑐.

As posições espaciais são conhecidas e definidas pelas dimensões da caixa de calibração. No

entanto, os pontos 𝑩𝑘𝑐 requerem do alinhamento com o sistema de coordenadas da câmera como,

𝑷kc ≡ [

𝑋𝑘𝑐′

𝑌𝑘𝑐′

𝑍𝑘𝑐′

] = 𝐑cl 𝑩𝑘𝑐 + 𝑻cl

(11)

Onde 𝑷kc é o vetor de pontos espaciais alinhados através da rotação 𝐑cl e da translação 𝑻cl.

As referências na imagem 𝒑k são reescritas em coordenadas homogêneas ��k e sua relação

com as posições espaciais 𝑷k é descrita por,

��k =𝟏

𝒇𝐀𝑷kc.

(12)

As equações (10) e (11) são reorganizadas e inseridas nas matrizes de pontos espaciais ��𝑘𝑐𝐼, ��𝑘𝑐𝐼𝐼

e de pontos alinhados 𝑩𝑘𝑐𝐼, 𝑩𝑘𝑐𝐼𝐼

como,

��𝑘𝑐𝐼= [0,5 ��𝑘𝑐𝑎

−��𝑘𝑐𝑏0,5��𝑘𝑐𝑐

],

(13)

��𝑘𝑐𝐼𝐼= [− ��𝑘𝑐𝑎

0,5��𝑘𝑐𝑏0,5��𝑘𝑐𝑐

],

(14)

𝑩𝑘𝑐𝐼 = (0,5𝑩𝑘𝑐𝑎− 𝑩𝑘𝑐𝑏

+ 0,5𝑩𝑘𝑐𝑐),

(15)

𝑩𝑘𝑐𝐼𝐼= (−𝑩𝑘𝑐𝑎

+ 0,5𝑩𝑘𝑐𝑏+ 0,5𝑩𝑘𝑐𝑐

).

(16)

A solução do problema para cada conjunto de três pontos é inserida em (13), (14), (15),

(16) e rescrita como,

Page 75: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

44

��𝑘𝑐𝐼 𝝀 = 𝐀 𝐑𝐜𝐥 𝑩𝑘𝑐𝐼

e ��𝑘𝑐𝐼𝐼 𝝀 = 𝐀 𝐑𝐜𝐥 ��𝑘𝑐𝐼

,

(17)

Onde,

𝝀 = [

𝑍𝑘𝑐𝑎

𝑍𝑘𝑐𝑏

𝑍𝑘𝑐𝑐

] ,

(18)

As matrizes não singulares ��𝑘𝑐𝐼 e ��𝑘𝑐𝐼𝐼

permitem a combinação de (17) e (18),

𝐀𝐑 𝑩𝑘𝑐𝐼− ��𝑘𝑐𝐼𝐼𝐼

𝐀𝐑 𝑩𝑘𝑐𝐼𝐼= 𝟎, (19)

Onde,

��𝑘𝑐𝐼𝐼𝐼= ��𝑘𝑐𝐼

��𝑘𝑐𝐼𝐼

−1, (20)

A matriz 𝐀𝐑 representa os parâmetros intrínsecos 𝐀 e rotação 𝐑cl. A projeção da caixa na

imagem possui a particularidade de ser aproximada por posições inteiras de pixel. A matriz 𝐏

não terá espaços nulos e é possível a solução do sistema utilizando a decomposição em valores

singulares SVD à direita. Reescrevendo a equação (19) utilizando o produto Kronecker denotado

por ⊗ e a matriz operador como 𝑣𝑒𝑐(); tem-se,

[𝑩𝑘𝑐𝐼

𝑇 ⊗ 𝐈 − 𝑩𝑘𝑐𝐼𝐼

𝑇 ⊗ ��𝑘𝑐𝐼𝐼𝐼] 𝑣𝑒𝑐(𝐀𝐑) = 𝟎

Onde cada conjunto de três pontos e suas correspondentes coordenadas homogêneas permite

se reescrever como,

𝐏 𝑣𝑒𝑐(𝐀𝐑) = 𝟎 Onde, 𝐏 é definido, por:

𝐏 =

[ (𝑩1𝐼

𝑇 ⊗ 𝐈 − 𝑩1𝐼𝐼

𝑇 ⊗ ��1𝐼𝐼𝐼)

(𝑩2𝐼

𝑇 ⊗ 𝐈 − 𝑩2𝐼𝐼

𝑇 ⊗ ��2𝐼𝐼𝐼)

⋮(𝑩𝑛𝐼

𝑇 ⊗ 𝐈 − 𝑩𝑛𝑇 ⊗ ��𝑛𝐼𝐼𝐼

) ]

(21)

Page 76: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

45

3.5 Triangulação

A triangulação é um processo comumente utilizado para reconstruir um ponto no espaço

euclidiano através de sua projeção estereoscópica. A projeção do ponto na imagem esquerda (left

𝑝𝑙), e direita (right 𝑝𝑟) de um sistema de câmeras paralelas, é reconstruída utilizando os

parâmetros de calibração das mesmas. A medição dos parâmetros das câmeras é descrito na seção

anterior. A distância entre os centros das câmaras é representada por um vetor de translação 𝑇𝑐 e

uma matriz de rotação 𝐑𝑐. Tais elementos geométricos são apresentados na Figura 3-11.

O ponto projetado é definido pelas coordenadas,

𝑝𝐿 = (𝑢𝑙, 𝑣𝑙) 𝑒 𝑝𝐿 = 𝑢, 𝑣𝑙) (22)

As projeções das imagens em coordenas homogêneas são normalizadas em 𝑥𝑡 para a imagem

esquerda e 𝑥𝑡𝑡 para a imagem direita como,

𝑥𝑡 =

[ (𝑢𝑙 − 𝑐𝑐1𝑥)

𝑓1𝑥

(𝑣𝑙 − 𝑐𝑐1𝑦)

𝑓1𝑦

1 ]

(23)

Figura 3-11 Modelo de câmera estereoscópica com uma rotação 𝐑𝐜.

𝑂𝑅 𝑂𝐿 𝐑𝐜𝑇𝑐

𝑃

𝑓 𝑐𝑅 𝑝𝑅

𝑢𝑅

𝑝𝐿 𝑐𝐿

𝑢𝐿

𝐹 𝐺

Page 77: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

46

e

𝑥𝑡𝑡 =

[ (𝑢 − 𝑐𝑐2𝑥)

𝑓2𝑥

(𝑣2 − 𝑐𝑐2𝑦)

𝑓2𝑦

1 ]

(24)

e multiplicando pela matriz de rotação 𝐑c tem-se:

𝑢𝑐 = 𝐑𝐜 ∙ 𝑥𝑡 (25)

A profundidade dos pontos é definida pelos raios 𝑍𝑡 e 𝑍𝑡𝑡 para a câmera direita e esquerda,

respectivamente.

𝑍𝑡 =(𝑢𝑐 ∙ 𝑥𝑡𝑡) ∙ (𝑇𝑐 ∙ 𝑥𝑡𝑡) − (𝑥𝑡𝑡 ∙ 𝑥𝑡𝑡) ∙ (𝑢𝑐 ∙ 𝑇𝑐)

(𝑥𝑡 ∙ 𝑥𝑡)2 − (𝑢𝑐 ∙ 𝑥𝑡𝑡)2

(26)

𝑍𝑡𝑡 =(𝑥𝑡 ∙ 𝑥𝑡) ∙ (𝑇𝑐 ∙ 𝑥𝑡𝑡) − (𝑢 ∙ 𝑥𝑡𝑡) ∙ (𝑢 ∙ 𝑇𝑐)

(𝑥𝑡 ∙ 𝑥𝑡)2 − (𝑢 ∙ 𝑥𝑡𝑡)2

(27)

Os raios das câmeras são estimados como,

𝐹 = 𝑥𝑡 ∙ 𝑍𝑡 (28)

𝐺 = 𝐑𝐜𝐓(𝑥𝑡𝑡 ∙ 𝑧𝑡𝑡 − 𝑇) (29)

A interseção dos raios F e G definem as coordenadas euclidianas do ponto no sistema de

coordenadas da câmera esquerda.

𝑋𝐿 =1

2(𝐹 + 𝐺)

(30)

Utilizando os parâmetros extrínsecos da câmera estereoscópica, matriz de rotação 𝐑𝐜 e vetor de

translação 𝑇 são estimadas as coordenadas dos pontos no espaço euclidiano no sistema de

coordenadas da câmera direita como,

𝑋𝑅 = 𝐑c ∙ 𝑋𝐿 + 𝑇𝑐. (31)

Page 78: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

47

4 Técnicas de Localização e Mapeamento

Neste capítulo são descritos os métodos de localização e mapeamento. Os pontos de

referência identificados nas imagens estereoscópicas no capítulo anterior são utilizados como

referências na estimativa do movimento. O cálculo de odometria utilizando duas nuvens de

pontos é apresentado na seção 4.1. Esta estimativa de movimento é validada pelo filtro RANSAC

e os filtros de profundidade na seção 4.1. A odometria é corrigida pelo filtro de Kalman em

configuração Dead Reckoning na seção 4.3. Também, o filtro de Kalman em configuração “fusão

de sensores” é utilizado para fundir localizações redundantes na seção 4.3.2. O mapeamento do

ambiente com sensores LIDAR é apresentado na seção 4.4.

4.1 Cálculo de Odometria

O movimento da câmera é recuperado no vetor de translação 𝑇𝑚 e a matriz de rotação 𝐑𝑚,

que relacionam duas posições subsequentes da câmera representadas por (𝑋𝑘, 𝑌𝑘, 𝑍𝑘) e

(𝑋𝑘−1, 𝑌𝑘−1, 𝑍𝑘−1), conforme ilustrado na Figura 4-1.

Figura 4-1 Movimento da câmera em duas posições subsequentes.

A matriz de homografia 𝐓𝑅𝑇 4x4 contém a informação de movimento,

𝐓𝑅𝑇𝑘= [

𝐑𝒌 𝒌𝟎 1

]. (32)

Duas nuvens de pontos, representadas pelas matrizes 𝑷𝒌 e 𝑷𝒌−𝟏 contendo 𝑛 pontos que são

observados por uma mesma câmera, nos instantes de tempo (𝑘 − 1) e 𝑘, de sua movimentação

𝐑𝑚𝑘

𝑇𝑚𝑘

𝑋𝑘−1

𝑍𝑘−1

𝑋𝑘

𝑍𝑘

𝑌𝑘−1

𝑌𝑘

Page 79: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

48

instantânea. Criam-se assim duas matrizes associadas à nuvem de pontos, conforme apresentado

abaixo.

𝐏(𝑘−1) = [𝑷1(𝑘 − 1) 𝑷2(𝑘 − 1) … 𝑷𝑛(𝑘 − 1)

1 1 … 1] (33)

𝐏𝑘 = [𝑷1(𝑘) 𝑷2(𝑘) … 𝑷𝑛(𝑘)

1 1 … 1]. (34)

A relação entre as nuvens de pontos é,

𝐏𝑘 = 𝐓𝑅𝑇𝑘𝐏(𝑘−1) ou 𝐓𝑹𝑻𝑘

= 𝐏(𝑘−1)𝐏𝑘+ (35)

A matriz de rotação é definida por,

𝐑 = [

cos (𝜃𝑧)cos (𝜃𝑦) sin (𝜃𝑦) sin (𝜃𝑧)

−sin (𝜃𝑦) cos (𝜃𝑥)cos (𝜃𝑦) −sin (𝜃𝑥)

sin (𝜃𝑧) sin (𝜃𝑥) cos (𝜃𝑧)cos (𝜃𝑥)

]

(36)

Sendo 𝜃𝑥, 𝜃𝑦 𝑒 𝜃𝑧 os ângulos de rotação em cada eixo. Os elementos da matriz de rotação 𝐑𝑚(𝑘)

podem ser estimados como,

𝑹𝑚(𝑘) = 𝐓𝑅𝑇𝑘[

1 0 00 1 00 0 10 0 0

],

(37)

Onde os ângulos de rotação são definidos pelos parâmetros,

𝜃𝑥 = 𝑡𝑎𝑛−1 (𝑅𝑚11

𝑅𝑚21

) (38)

𝜃𝑦 = 𝑡𝑎𝑛−1 (𝑅𝑚12

𝑅𝑚22

) (39)

𝜃𝑧 = 𝑡𝑎𝑛−1 (𝑅𝑚13

𝑅𝑚23

), (40)

Page 80: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

49

onde 𝑅𝑖𝑗 é o elemento da coluna 𝑗 e linha 𝑖 da matriz 𝐑m. Neste trabalho a rotação é restrita a

variações no ângulo 𝜃𝑦. O movimento da câmera nas dimensões (𝑧 e 𝑥) é mais marcante nos

experimentos de validação, desconsiderando as rotações 𝜃𝑥 e 𝜃𝑧. O vetor de translação 𝑻𝑚 é dado

por,

𝑇𝑚(𝑘) = 𝐓𝑅𝑇𝑘[

0001

].

(41)

4.2 Filtragem de pontos no espaço euclidiano

A estimativa do movimento da câmera descrita na seção anterior é contaminada por erros nas

etapas de: triangulação, correlação e identificação de pontos de referências. Nesta seção são

apresentados filtros para diminuir este erro.

Primeiro, os pontos de referência são filtrados em função da profundidade como é ilustrado

na Figura 4-2. Um filtro passa faixa é configurado para excluir projeções no espaço 3D

provenientes de falsas correlações ou pontos muito distantes que geram um erro de triangulação.

Figura 4-2 Filtro de profundidade das referências no espaço euclidiano.

A profundidade 𝑑𝑝 de cada ponto de referência é calculada como,

𝑑𝑝 = √𝐏x(𝑘)2 + 𝐏y(𝑘)2 + 𝐏z(𝑘)2 (42)

𝑑𝑝

𝑥

𝑦

𝑧

Page 81: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

50

Onde a máxima distância 𝑑𝑝 é limitada pela condição 𝑑𝑝 < (100 𝑏𝑙). No trabalho de (PAZ;

PINI; TARD, 2008) é medida a profundidade máxima para uma câmera estereoscópica, definida

como 100 vezes a distancia 𝑏𝑙. Triangulações após esta distância apresentam maior incerteza.

O segundo filtro, RANSAC, é utilizado para filtrar as amostras distantes da estimativa de

movimento. Ou seja, o conjunto de pontos 𝐏𝑘−1 é transladado para o sistema de coordenadas no

instante 𝑘 através do movimento estimado (𝐑m e 𝑇𝑚).

��𝑘 = 𝐑m𝐏𝑘−1

+ 𝑇𝑚 (43)

A diferença dos pontos de referência 𝐏𝑘 e a nova projeção ��𝑘 representam o erro 𝐸𝑅,

𝐸𝑅 = (𝐏𝑘 − 𝐏𝑘−1

) (44)

Em condições ideais, as projeções dos pontos ��𝑘 e os pontos de referência 𝐏𝑘 apresentariam

posições idênticas e um erro nulo. No entanto, alguns pontos não correspondem ao movimento

estimado, como é apresentado na Figura 4-3.

Figura 4-3 Erro de correlação de pontos projetados nas imagens, nos instantes 𝒌 e (𝒌 − 𝟏), os ponto

referência com erros de correlação ou dinâmicos são representado pelos pontos vermelhos.

O erro 𝐸𝑅 do conjunto de pontos é normalizado em 𝐸𝑅 , onde 𝑚𝑠𝑝, é o erro médio.

𝑚𝑠𝑝 = |∑ 𝐸𝑅

𝑛0

𝑛| e 𝐸𝑅

(𝑛) =𝐸𝑅(𝑛)

𝑚𝑠𝑝, (45)

os pontos distantes da media 𝑚𝑠𝑝 são excluídos quando não cumprem a condição (𝐸𝑅 (𝑛) < 9). O

movimento da equação (35) é novamente estimado.

(𝑘)

(𝑘 − 1)

𝑥

𝑦

𝑧

𝑥

𝑦

𝑧

Page 82: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

51

4.3 Filtro de Kalman

Neste trabalho são utilizadas duas configurações do filtro de Kalman linear. Primeiro a

estimativa de posição utilizando imagens é corrigida a partir das posições anteriores, técnica

conhecida como Dead Reckoning. Depois, o filtro de Kalman é utilizado para fundir informações

redundantes dos sensores de localização.

4.3.1 Dead Reckoning

A técnica de localização utilizando as posições anteriores conhecida como Dead Reckoning é

utilizada para filtrar os movimentos com variações drásticas. Neste trabalho o filtro de Kalman

corrige a estimativa de movimento utilizando as ultimas três posições das câmeras.

O algoritmo inicia pela transformação da odometria visual (𝐑m, 𝑇𝑚) em magnitude de

deslocamento 𝑑𝑚 = |𝑇| e um ângulo de orientação 𝜃𝑚 onde,

|𝑇| = √𝑇𝑚𝑥𝑘2 + 𝑇𝑚𝑦𝑘

2 + 𝑇𝑚𝑧𝑘2

(46)

e a matriz de rotação 𝐑m é transformada em 𝜃𝑚 utilizando a formula,

𝜃𝑚 = rodriguez(𝐑m).

(47)

As três últimas estimativas de movimento junto a medição atual são as entradas do

algoritmo, como é apresentado na Figura 4-4.

Figura 4-4 Ilustração esquemática do filtro de Kalman atuando como Dead Reckoning.

Nesta formulação o vetor de estados armazena os três últimos movimentos como,

𝑥 = [𝑑𝑚1

𝜃1…

𝑑𝑚𝑘

𝜃𝑘]

Medição (𝑑𝑚(𝑘), 𝜃𝑚(𝑘))

(𝑑𝑚(𝑘 − 1), 𝜃𝑚(𝑘 − 1)

(𝑑𝑚(𝑘 − 2), 𝜃𝑚(𝑘 − 2)

(𝑑𝑚(𝑘 − 3), 𝜃𝑚(𝑘 − 3)

Dead Reckoning

Filtro de Kalman Nova Localização(𝑑𝑚(𝑘), 𝜃𝑚(𝑘))

Page 83: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

52

A predição do estado �� é definida como,

��k = 𝐀𝐟 𝑥k−1 + 𝐁𝐟𝜇k + 𝜀k (48)

Onde 𝐀𝐟 é a matriz de transição que descreve o sistema (Função de transferência), a matriz

de controle 𝐁𝐟, transforma os sinais de entrada 𝜇(k) (condicionamento do sinal do sensor). Nesta

implementação a matriz 𝐁𝐟 é definida pela matriz identidade. O estado anterior é definido como

𝑥𝑘−1 acrescido de um ruído gaussiano do processo, 𝜀𝐾, com covariância 𝐐𝑐𝑝.

O seguinte passo é a correção do processo 𝑥(k) como,

𝑥(𝑘) = ��(𝑘) + 𝐊𝐤(𝜇𝑘 − 𝐇��𝑘), (49)

Onde a matriz 𝐊k é o ganho do filtro de Kalman que minimiza o erro de covariância 𝐏𝐩 𝐤 entre

as variáveis do vetor de estados. A atualização da matriz 𝐏𝐩𝐤 é redefinida como,

𝐏𝐩k = (𝐈 − 𝐊k𝐇)𝐏��k, (50)

sendo 𝐇 a matriz de medição ou contribuição de cada sensor. Tem-se que 𝑍 é a equação de

observação e 𝑣(k) é o ruído gaussiano do sensor com covariância 𝐑𝑐𝑚,

𝑍(k) = 𝐇𝑥(k) + 𝑣(k). (51)

O ganho do filtro de Kalman 𝐊 é descrito como,

𝐊k = 𝐏��k𝐇𝐓(𝐇𝐏��k𝐇

𝑇 + 𝐑cm)−1

(52)

A matriz de covariância 𝑹𝑐𝑚 de ruídos de medição como,

𝑹cm = [𝜎𝑥

2 0

0 𝜎𝑦2]

(53)

A predição da matriz de covariâncias 𝐏�� para o estado k é estimada utilizando o estado de

covariância a priori 𝐏𝐩 como,

𝐏��(k) = 𝐀𝐟𝐏𝐩(k−1)𝐀𝐟𝑇 + 𝐐cp (54)

Page 84: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

53

Onde 𝐐cp é a matriz de covarianças do processo. O desvio padrão do processo 𝑞 de tamanho

𝑛 𝑥 𝑛, sendo 𝑛 o número de estados é dado por,

𝐐cp = 𝑞2 [1 0 00 1 00 0 1

] (55)

A relação da matriz 𝑸cp com o vetor de ruído de processo 𝜀𝐾 é definido pela distribuição normal,

𝑝(0, 𝜀𝐾)~𝑁(0, 𝐐cp) (56)

4.3.2 Fusão de sensores

Neste trabalho o filtro de Kalman, em configuração de fusão de sensores, estima a

localização a partir de três sensores descritos na seção 6.3. Primeiro, o movimento de um robô

móvel é medido com encoders das rodas (Odometria encoders). O segundo grupo de sensores

extrospectivos, GPS e câmeras, fornecem a localização da plataforma robótica. Esta informação é

fundida para obter uma localização mais precisa conforme apresentado na Figura 4-5.

Figura 4-5 Ilustração esquemática do sistema de fusão de sensores.

A predição do estado �� é definido como,

��k = 𝐀𝐟𝑥k−1 + 𝐁𝐟𝜇k + 𝜀k (57)

onde 𝐀𝐟 é a matriz de transição que descreve o sistema (função de transferência), a matriz de

controle 𝐁𝐟, transforma os sinais de entrada 𝜇(k) (condicionamento do sinal do sensor). O estado

anterior é definido como 𝑥𝑘−1 e o ruído gaussiano do processo 𝜀𝐾 com covariância 𝐐𝑐𝑝.

O seguinte passo é a correção do processo 𝑥(k) como,

Fusão

Filtro de Kalman

Odometria Visual

Odometria Encoders

GPS

Localização (x,y)

Page 85: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

54

𝑥(𝑘) = ��(𝑘) + 𝐊𝐤(𝜇𝑘 − 𝐇��𝑘), (58)

onde a matriz 𝐊k é o ganho do filtro de Kalman que minimiza o erro de covariância 𝐏𝐩𝐤 entre as

variáveis do verto de estados. A atualização da matriz 𝐏𝐩𝐤 é redefinida como,

𝐏𝐩k = (𝐈 − 𝐊k𝐇)𝐏��k, (59)

sendo 𝐇 a matriz de medição ou contribuição de cada sensor. Onde 𝑍 é a equação de

observação e 𝑣(k) é o ruído gaussiano do sensor com covariância 𝐑𝑐𝑚,

𝑍(k) = 𝐇𝑥(k) + 𝑣(k). (60)

onde,

[𝑥𝑦] = [

0,33 0,33 0,330 0 0

0 0 00,33 0,33 0,33

]

[ 𝑉𝑂𝑥

𝑂𝑑𝑦𝑥

𝐺𝑃𝑆𝑥

𝑉𝑂𝑦

𝑂𝑑𝑦𝑦

𝐺𝑃𝑆𝑦]

+ 𝑣(𝑘).

(61)

O ganho do filtro de Kalman 𝐊 é dinâmico descrito como,

𝐊k = 𝐏��k𝐇𝐓(𝐇𝐏��k𝐇

𝑇 + 𝐑cm)−1

(62)

A matriz de covariância 𝑹𝑐𝑚 de ruídos de medição de tamanho 𝑚 𝑥 𝑚 onde 𝑚 é o número de

sensores é configurada como,

𝑹cm =

[ 𝜎𝑉𝑂𝑥

2

𝜎𝑂𝑑𝑦𝑥

2

𝜎𝐺𝑃𝑆𝑥

2

𝜎𝑉𝑂𝑦

2

𝜎𝑂𝑑𝑦𝑦

2

𝜎𝐺𝑃𝑆𝑦

2]

(63)

A predição da matriz de covariâncias 𝐏�� para o estado k é estimada utilizando o estado de

covariância à priori 𝐏𝐩 como,

𝐏��(k) = 𝐀𝐟𝐏𝐩(k−1)𝐀𝐟𝑇 + 𝐐cp (64)

Page 86: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

55

Onde 𝐐cp é a matriz de covariâncias do processo. O desvio padrão do processo 𝑞 = 1−2 de

tamanho 𝑚 𝑥 𝑚 onde 𝑚 é o número de sensores,

𝐐cp = 𝑞2

[ 1 1

1 1

1 1]

(65)

A relação da matriz 𝑸cp com o vetor de ruído de processo 𝜀𝐾 é definido pela distribuição normal,

𝑝(0, 𝜀𝐾)~𝑁(0, 𝐐cp) (66)

4.4 LIDAR 2D

Um Laser é fixado na parte frontal do robô. O modelo utilizado é o SICK- LMS100, com

uma frequência de amostragem de 25-50Hz, projetado para ambientes externos e de baixo

consumo de energia (12W). A máxima distância para identificar um objeto é de 20 m. O ângulo

de visão é 270graus, com uma precisão de 0,5 graus. Uma amostra portanto é um vetor de 540

medidas de distâncias. Neste trabalho, o ângulo do laser é restrito a 180 graus.

Figura 4-6 Imagem do Laser 2D fixo no robô Seekur Jr. A área verde representa a área de trabalho.

4.5 LIDAR 3D

O Laser descrito na seção anterior modelo SICK- LMS100 é fixado em uma unidade PTU,

conforme ilustrado na Figura 4-7. O ângulo 𝜃𝑡𝑖𝑙𝑡 do PTU é restrito a oscilações entre -60º e 30º.

Ɵ (-270 , 270)

Page 87: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

56

As restrições mecânicas impedem o uso das rotações no ângulo 𝜃𝑝𝑎𝑛. A cinemática direta do

PTU é utilizada para estimar a posição do centro do Laser referente ao centro do robô. Desta

forma, as distâncias lidas pelo Laser são transformadas em pontos espaciais.

Figura 4-7 Ilustração do Laser 3D fixo no PTU do robô Seekur Jr. A oscilação é ilustrada pelas linhas azuis.

A unidade PTU D-48 da empresa FLIR é prendida na plataforma robótica Seekur Jr. Nesta

unidade foi instalado um laser SICK- LMS100 como é apresentado na Figura 4-8. O PTU foi

configurado para oscilar 90º no ângulo Tilt a uma velocidade de 1100 posições/seg. Estas

unidades têm uma resolução de 0,003º no Tilt.

Figura 4-8 Imagem do Laser 3D fixo no PTU do robô Seekur Jr.

Page 88: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

57

5 Processamento em Tempo Real

Neste trabalho é utilizada a estrutura de mapeamento e simultânea localização apresentada

(SLAM) do trabalho (CLIPP; FRAHM; POLLEFEYS, 2010). A tarefa de fluxo de cena ou

odometria visual é apresentada na Figura 5-1. Os blocos cinza são executados em uma GPU por

meio da biblioteca OpenCV, com implementação em CUDA. O último bloco realiza a fusão de

sensores utilizando o filtro de Kalman para a estimativa de movimento.

Figura 5-1 Arquitetura do algoritmo de odometria visual, apresentando a implementação hibrida entre CPU

(blocos brancos) e GPU (blocos cinza).

5.1 Correlação de pontos SURF (OpenCV)

O algoritmo de odometria visual procura pontos de referência no ambiente para estimar o

movimento. As imagens estereoscópicas junto com os parâmetros de calibração são chamadas de

data-sets. O processamento e captura de imagens acontece em momentos diferentes, isto é

Data-Set

Salvar as imagens da câmera estereoscópica e os

parâmetros de calibração.

𝐿𝑒𝑓𝑡𝑡 𝑅𝑖𝑔ℎ𝑡𝑡

Keypoints

Identificação e correlação

Triangulação

Filtragem dos pontos no espaço 3D

points

𝐿𝑒𝑓𝑡𝑡−1 𝑅𝑖𝑔ℎ𝑡𝑡−1

Ler as imagens (t+1)

Global SLAM

Reconstrução do caminho

Fusão de sensores (Kalman)

Page 89: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

58

conhecido como “processamento off-line”. O vídeo contém pares de imagens estereoscópicas em

posições sucessivas no caminho, 𝑘 e 𝑘 − 1. A correlação entre os pontos-chave de três imagens é

feita usando a implementação do algoritmo SURF em OpenCV.

5.2 Triangulação e Filtragem (CUDA)

Esta seção apresenta a estrutura proposta em CUDA de implementação dos algoritmos de

triangulação e filtragem. Um grande número de correlações de pontos é detectado pelo algoritmo

SURF. Assim, o cálculo da triangulação e filtragem torna-se uma tarefa computacionalmente

cara.

O diagrama da distribuição de memória é apresentado na Figura 5-2. As correlações dos

Keypoints são alocadas na memória global da GPU. O acesso á memória compartilhada pode ser

maior que o próprio processamento. Esta memória é também conhecida como memória de

texturas. Utilizada para as informações que o Kernel vai aceder. Uma única leitura não justifica a

alocação na memória compartilhada. No entanto, os parâmetros de calibração usados na

triangulação de cada ponto justificam a localização na memória compartilhada.

Figura 5-2 Distribuição de memória na GPU. O custo computacional de acessar a memória compartilhada

pode ser maior que o processamento.

A estrutura do algoritmo em CUDA é ilustrada na Figura 5-3. A programação em GPU

requer a implementação de um algoritmo baseado na CPU chamado Host e outro na GPU

denominado Kernel. Os pontos correlatos são definidos em um descritor de 128 bits apresentado

Memória Compartilhada

Multiprocessadores

Memória Global

Blocos

Pontos/8

Threads

Triangulação

Filtragem 3D

keypoints

Parâmetros de

calibração

Page 90: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

59

na seção anterior. No entanto, as matrizes de pontos correlatos são resumidas a dois vetores

lineares. As coordenadas das câmeras dos pontos são copiadas na memória da GPU. Em seguida,

o Cuda-Kernel (função que contém o algoritmo GPU, caixa cinza na Figura 5-3) triangula e filtra

os pontos. A distribuição do processamento é representada por oito blocos. Cada bloco com ‘N’

sequências de processamento. Os resultados são copiados da GPU para a CPU depois que todos

os blocos terminam de executar as tarefas de sincronização. Os pontos em três dimensões contêm

um peso, resultado da filtragem.

Figura 5-3 Estrutura da implementação do filtro 3D e triangulação na GPU.

CPU Host GPU Device

Conversão dos keypoints

(vetores STL) a

vetor linear.

Alocação dos

keypoints na

memória.

3D points

Block (0,0) Block (0,1)

Block (1,0) Block (1,1)

Block (2,0) Block (2,1)

Block (3,1)

Thread (0,0)

Thread (1,0)

Thread (2,0)

Thread (3,0)

Block (3,0)

Filtragem

Invocação Kernel

Triangulação

Sincronizalção de

threads

Page 91: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

60

6 Apresentação das plataformas de testes

O algoritmo de odometria visual utilizou ferramentas e materiais que são descritos neste

capítulo. Primeiro é apresentada na seção 6.1 a câmera estereoscópica construída e utilizada para

este trabalho. Depois é apresentado na seção 6.2 o ambiente virtual de simulação utilizando a

plataforma 3D-Max. A plataforma robótica e o conjunto de sensores são apresentados na seção

6.3, finalizando com a apresentação das plataformas de processamento em GPU, na seção 6.4.

6.1 Câmera Estereoscópica

No presente trabalho, optou-se pela montagem de um sistema estereoscópico com uma

configuração alternativa de câmeras e tamanhos de imagem. Utiliza-se para isso, as câmeras

industriais de alto desempenho tipo Guppy PRO, da empresa Allied Force, com comunicação de

alta velocidade FireWire. Nessas câmeras o usuário tem a possibilidade de intercambiar as lentes

bem como, modificar o tamanho da imagem, o formato de cor, balanço de brancos, velocidade de

captura e a sincronização. A estrutura mecânica de fixação das câmeras em paralelo é projetada

para fornecer uma distância entre câmeras 𝑏𝑙 de 100mm, e permitir a sua fixação em um

dispositivo do tipo Pan-Tilt, PTU-46-17.5. Em alguns testes utiliza-se também o conjunto

estereoscópico fixado em um capacete plástico. Tais montagens são apresentadas na Figura 6-1.

Figura 6-1 Câmera estereoscópica fixa em capacete, PTU e em uma plataforma móvel.

Page 92: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

61

A câmera “Guppy PRO” fornece um pacote de bibliotecas (SDK) para desenvolvedores em

C++. O SDK permite a sincronização e configuração de cada câmera individualmente. A

interface de comunicação Firewire, que utiliza o protocolo IEEE1394b–800Mb/s, permite a

transmissão de imagens de 1292x964 pixels a uma taxa de 31FPS. O consumo de energia é

aproximadamente 3,5W por câmera. Para a aplicação atual foram instaladas lentes de 9mm.

6.2 Ambiente Virtual

Um ambiente virtual é criado para testar os algoritmos de processamento de imagens

utilizando a plataforma de software Autodesk 3DMax. Também, são modeladas duas câmeras

paralelas conformando um sistema estereoscópico e um mecanismo de rotação e inclinação (pan-

tilt). O conjunto de câmaras é fixado no PTU virtual como é apresentado na Figura 6-2. A linha

vermelha representa a trajetória do centro da câmera direita.

Figura 6-2 Modelo virtual de câmera estereoscópica fixado em PTU (2 DOF), a linha vermelha representa a

trajetória da câmera direita.

O ambiente modelado contém texturas atribuídas aos objetos do ambiente virtual, como

apresentado na Figura 6-3. Os algoritmos de estimação do movimento das câmeras são testados

no ambiente ideal antes da sua aplicação em ambientes reais.

Page 93: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

62

Figura 6-3 Ambiente virtual com texturas simula um ambiente de interior de corredor.

6.3 Plataforma robótica

A plataforma robótica Seekur Jr da empresa Mobilerobots é projetada para a navegação em

todos os terrenos. O robô Seekur Jr utilizado pertence ao laboratório de computação e automação

da Faculdade de Engenharia Elétrica e de Computação da UNICAMP (LCA/FEEC). O sistema

de acionamento é do tipo diferencial. Dois motores elétricos transmitem torques às rodas. As

baterias possuem autonomia de 3 a 5 horas dependendo do peso, consumo dos periféricos e

torque requerido. São instalados também no robô sensores usados na tarefa de estimação de

movimento, que serão descritos a seguir. Na Figura 6-4 é apresentada uma ilustração da

plataforma robótica e os sensores utilizados.

Figura 6-4 Imagem do robô Seekur Jr e uma ilustração dos sensores acoplados. 2-LIDAR, 2-Câmeras

monoculares, Câmera Estereoscópica e 2-GPS.

O robô possui duas CPUs, sensores introspectivos do tipo: encoder e giroscópios que

fornecem a informação de odometria e sensores extrospectivos do tipo: Laser Sick LMS100 nas

Page 94: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

63

configurações descritas na seção 4.4. A câmera estereoscópica descrita na seção 6.1 é fixada na

parte frontal do robô. Os sensores de localização de satélite GPS Trimble e GPS de baixo custo

Garmin, são instalados conforme ilustrado na Figura 6-5. Neste trabalho é utilizada a aplicação

de comunicação robótica Resthru (SOUZA et al., 2013) que emprega o protocolo HTTP/HTTPS

(Hypertext Transfer Protocol) para transmitir mensagens de comando ao servidor, bem como as

informações dos sensores ao usuário. Define-se cliente, os programas de controle e

armazenamento de dados que podem ser executados remotamente, ou em CPUs internas do robô.

Define-se servidor, os programas de baixo nível que controlam os dispositivos no robô. O

protocolo de comunicação entre cliente - servidor são objetos do tipo JSON (Javascript Object

Notation).

Figura 6-5 Sensores instalados no robô Seekur Jr

Laser

3D

Câmera

Estereoscópica

Laser

2D

GPS

Trimble

GPS

Garmin Encoder

s

Page 95: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

64

6.3.1 GPS

O Brasil utiliza a norma SIRGAS2000 na transformação de coordenas geográficas do GPS

(Latitude e Longitude). em coordenadas cartesianas (𝑥, 𝑦). Este procedimento inicia com o

cálculo da distância entre dois pontos geográficos, definida com ∆𝐿𝑎𝑡 e∆𝐿𝑜𝑛.

𝑁𝑜𝑟𝑡𝑒 =∆𝐿𝑎𝑡

arctan (1/𝑅𝑀)

(67)

𝐿𝑒𝑠𝑡𝑒 =∆𝐿𝑜𝑛

arctan (1/𝑅𝑃cos (μ0))

(68)

𝑅𝑀 e 𝑅𝑃 são os ráios do paralelo e meridiano calculados como:

𝑅𝑃 =Req

√1 − (2𝑓𝑐ℎ − 𝑓𝑐ℎ2) sin(μ0)2

2

(69)

𝑅𝑀 = 𝑅𝑃

1 − (2𝑓𝑐ℎ − 𝑓𝑐ℎ2)

1 − (2𝑓𝑐ℎ − 𝑓𝑐ℎ2) sin(μ0)2

(70)

onde e 𝑅𝑒𝑞 é o raio equatorial e 𝑓𝑐ℎ o fator de achatamento do planeta.

6.4 Unidades de processamento de dados

As características das três unidades de processadores gráficos utilizadas neste trabalho são

apresentadas na tabela I. As unidades Quadro 4000 e GTX 680 são projetadas para dispositivos

móveis, possuindo baixo consumo de energia e montagem em um computador móvel. A unidade

GTX 560 é uma unidade gráfica de um desktop.

Tabela 2 Características das unidades GPU

Características

GPU Referência

GTX

560Ti

Quadro

4000M

GTX

680M

Processing Power

(GFLOPS)

1263,4 638,4 1935,4

NVIDIA® CUDA™ (Parallel Processor Cores)

384 336 1344

Graphics Clock

(MHz) 822 475 720

Max Power Consumption (W)

170 100 100

Memory Bandwidth

(GB/sec) 128 128 115,2

Memory

(GB) 1 2 4

Page 96: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

65

7 Resultados

Neste capítulo são apresentados os ambientes de teste e resultados de estimativas de

navegação. Os algoritmos de odometria visual e filtro de Kalman são testados em diferentes,

ambientes, utilizando diferentes unidades de processamento, e também com diferentes resoluções

de imagem. Na seção 7.1 são descritos os conjuntos de dados, ambientes e configurações dos

sensores. Os resultados de velocidade de processamento são apresentados na seção 7.3. Na

seção7.4, apresenta-se o erro das estimativas de navegação para cada um dos sensores utilizados.

Os resultados de mapeamento da navegação são apresentando na seção 7.4.5. O algoritmo de

odometria visual proposto é validado em diferentes ambientes experimentais.

7.1 Experimentos

Os algoritmos de odometria visual e fusão de sensores foram testados em diferentes ambientes

de navegação. Os históricos das capturas de imagem dos sensores descritos na seção 6.3 são

armazenados em cada experimento de navegação testado. Os dados de amostragem do GPS,

Laser e odometria das rodas são sincronizados com os registros das câmeras através de

interpolações ou reamostragem dos valores de seus históricos. As coordenadas geográficas dos

GPS são armazenadas em formato XLM/gpx. Os registros de tempo são armazenados em forma

de arquivos de texto. Um arquivo de texto contém objetos JSON com as distâncias do Laser

descrito na seção 4.4, e os ângulos 𝑡ℎ𝑝𝑎𝑛 e 𝑡ℎ𝑡𝑖𝑙𝑡 do PTU. As imagens em escala de cinza da

câmera estereoscópica são armazenadas no padrão RGB, em forma de vídeo no formato AVI,

“Audio Video Interleave”. A imagem da câmera esquerda é inserida no canal azul do vídeo e a

câmera direita no canal vermelho. Armazena-se também um arquivo em formato de texto, com os

registros de tempo correspondentes a cada quadro do vídeo.

Os ambientes de teste de odometria apresentam complexidade progressiva. O modelo virtual

de um ambiente 3-D com objetos geométricos simples, por onde se desloca um robô, fornece os

primeiros conjuntos de dados. O segundo ambiente utilizado para a geração de dados de

referência consiste na captura de imagens de um sistema estereoscópico de duas câmeras fixadas

em um suporte robótico articulado do tipo PTU. Uma navegação em um ambiente real interno é

apresentada no conjunto de dados Helmet. Nesse conjunto, o sistema estereoscópico é fixado em

Page 97: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

66

um capacete plástico de um usuário que se desloca em um escritório. No conjunto de dados "Via

Museu", um sistema estereoscópico é fixado a um veículo automotor que navega em um

ambiente externo. No conjunto de dados "Feec" indoors, o sistema estereoscópico é fixado a um

robô do tipo Seekur Jr. O conjunto de dados "ciclo básico" é um circuito fechado (closed loop) de

exterior em estrada asfaltada. O conjunto de dados "Praça da Paz" é o circuito mais complexo.

Consiste de uma estrada de terra, capaz de provocar vibração e instabilidade no sistema, o que

permite testar a robustez dos métodos de estimativa de movimento.

7.2 Simulação - Corredor 3D Max

Um ambiente virtual é simulado na plataforma de modelagem 3DMax, dentro do qual

navega uma câmera estereoscópica, capturando imagens ao longo de seu movimento. A câmera

percorre uma trajetória com velocidade constante, composta de dois trechos retos e um curvo

como apresentado na Figura 7-1. O percurso total de 22,5 metros é registrado em 300 quadros.

Figura 7-1 Trajetória em formato de 'L' modelada em 3D-Max, vista superior e perspectiva.

O ambiente de interior segue o padrão de um corredor de escritório. Objetos e texturas são

localizados ao longo do trajeto para enriquecer as referências visuais. Neste modelo, os objetos

de referência são estáticos e distribuídos ao longo do caminho, conforme ilustrado na Figura 7-2.

As câmeras configuradas na plataforma 3D-Max, com disposição paralela de distância 85mm,

Page 98: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

67

possuem lente de 50 mm, campo de visão de 53,13o e tamanho de imagem de 640x480 pixels.

Um conjunto típico de imagens do sistema de câmeras estereoscópico é apresentadas na Figura

7-2.

Figura 7-2 Ambiente modelado em 3D-Max.

7.2.1 Pedestre - Helmet

Como citado anteriormente no experimento Helmet a câmera estereoscópica, previamente

descrita na seção 6.1, é fixada em um capacete. A marcha de uma pessoa em um ambiente de

interno é registrada através de imagens estereoscópicas. A trajetória inicia-se com a câmera em

movimento em linha reta ao longo de um corredor, durante 1 minuto. O ambiente contém objetos

estáticos e dinâmicos. No fundo do corredor encontram-se pessoas caminhando. As câmeras

estereoscópicas capturam imagens em escala de cinza de tamanho 1280x960 pixels, com taxa de

amostragem de 7,5FPS. Amostras típicas de imagens capturadas pelas câmeras estereoscópicas

em um dado instante de tempo são apresentadas na Figura 7-3.

Figura 7-3 Imagens estereoscópicas do experimento Helmet.

Page 99: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

68

Os resultados obtidos nesse experimento compõem o banco de dados utilizado no trabalho

publicado no congresso (DELGADO, J. V., KURKA, P.R.G, FERREIRA, 2013). Os sensores

utilizados neste experimento são listados na Tabela 3.

TABELA 3 OS SENSORES UTILIZADO NO TESTE HELMET

Câmaras

Left/Right

Câmera

Estereo

Laser

2D

Laser

3D

GPS

Garmin

GPS

Trimble

Odometria

Robô

- x - - - - -

7.2.2 Via Museu

Este experimento é projetado para avaliar o algoritmo de odometria visual (VO), utilizando

uma velocidade média de navegação de 30-16km/h. A navegação em um carro convencional é

realizada em um trecho de 0,5 km na Av. Alan Turing da Unicamp. A trajetória inicia em linha

reta sobre uma estrada asfaltada. O percurso termina em uma rotatória.

Figura 7-4 Imagem estereoscópica registrada no ambiente via museu.

O ambiente dessa trajetória externa é composto inicialmente por prédios, regiões com cercas

e um automóvel em movimento. No final do trajeto o ambiente é composto por árvores e

arbustos. O experimento utilizou um conjunto de câmeras estereoscópicas fixo no carro, e um

GPS de baixo custo conforme ilustrado na Figura 7-5 (a). Os dados do GPS são interpolados

devido a sua baixa frequência de amostragem. O trajeto recuperado pelo GPS é apresentado

através do software Google Maps na Figura 7-5 (b).

Page 100: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

69

(a) (b)

Figura 7-5 Câmera estereoscópica fixada no teto de um automóvel. (Imagem Google Earth)

Os resultados obtidos nesse experimento compõem o banco de dados utilizado para o

trabalho publicado no congresso, conforme consta na referência (DELGADO, J. V., KURKA,

P.R.G, FERREIRA, 2013). Os sensores utilizados neste experimento são listados na Tabela 4.

TABELA 4 OS SENSORES UTILIZADO NO TESTE VIA MUSEU

Câmras

Left/Right

Câmera

Estereo

Laser

2D

Laser

3D

GPS

Garmin

GPS

Trimble

Odometria

Robô

- x - - x - -

7.2.3 Ciclo Básico

O robô Seekur Jr coletou dados no percurso circular de 1km de perímetro na Rua Sérgio

Buarque de Holanda, onde se localiza o ciclo básico da UNICAMP. O robô foi teleoperado

durante 30 minutos sobe uma estrada asfaltada.

A navegação inicia com o robô parado. O ponto de partida é o mesmo ponto final, devido ao

formato circular do percurso escolhido. A velocidade de navegação não é constante. Durante o

percurso são apresentadas 3 paradas, sendo uma para re-calibração da lente das câmeras. O

ambiente de navegação é de tipo externo com objetos dinâmicos. Pessoas caminhando na rua,

carros bloqueando a visão e motocicletas passando na frente do robô são alguns dos obstáculos

que caracterizam o experimento. O ambiente externos não apresenta restrições para os sensores

com comunicação de satélite. Nesse caso as árvores e prédios, não alteraram a qualidade dos

dados adquiridos pelos sensores. Os dados foram coletados em condições meteorológicas de céu

aberto.

Neste experimento o robô Seekur Jr foi equipado com os sensores apresentados na Tabela 5.

As câmeras estereoscópicas capturaram imagens em escala de cinza de tamanho 640x480 pixels

Page 101: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

70

com taxa de amostragem de 15FPS. Os dois Lasers descritos na seção 6.3 capturam a geometria

do ambiente. O Laser 3D oscila entre os ângulos 0° e 60° e o Laser 2D é fixo.

TABELA 5 OS SENSORES UTILIZADO NO TESTE CICLO BÁSICO

Câmras

Left/Right

Câmera

Estereo

Laser

2D

Laser

3D

GPS

Garmin

GPS

Trimble

Odometria

Robô

x x x x x x x

Os dados capturados com o GPS são apresentados no mapa através do software Google

Maps, apresentado na Figura 7-6.

Figura 7-6 A linha azul representa o caminho recuperado pelo GPS Trimble. (Imagem Google Earth)

No experimento foram capturados 13.600 quadros de imagem equivalentes a 55 minutos de

vídeo. Amostras de um instante de tempo capturado pelas câmeras estereoscópicas são

apresentadas Figura 7-7.

Figura 7-7 Imagens capturadas pela câmera estereoscópica em diferentes instantes de

tempo no experimento CB.

Page 102: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

71

7.2.4 Praça da Paz

Neste experimento o robô Seekur Jr coletou dados na pista de terra da Praça da Paz, da

UNICAMP. O robô foi operado manualmente com velocidade variável durante 55min no circuito

de 727m do caminho de terra. Este experimento é utilizado para testar os algoritmos de odometria

visual e de fusão de sensores. Também, é testada a autonomia do robô, a robustez dos

acoplamentos mecânicos (Lidar 3D, Base GPS e Câmera Estereoscópica) em terrenos irregulares

e os GPS descritos na seção 6.3. A trajetória inicia com o robô parado. Acelerações e paradas

caracterizam o trajeto que é realizado com velocidade variável. Neste experimento o robô se

movimenta a uma velocidade média de 0,88km/h. O ambiente externo combina características de

cidade e floresta. A Praça da Paz é um ambiente arborizado cercado por ruas e prédios. Objetos

dinâmicos também estão presentes ao longo do caminho do robô: carros em movimento, pessoas

caminhando e árvores se movendo pelo vento. O experimento é realizado em condições

climáticas de céu aberto. No entanto, o robô atravessa áreas cobertas por árvores que afetam a

estimativa do GPS. Imagens estereoscópicas capturadas ao longo do trajeto são apresentadas na

Figura 7-8. As imagens (a,b) que são registradas no centro da praça, apresentam maior

quantidade de árvores do que as registradas nos extremos (d,e). Ao longo do caminho o ambiente

de navegação alterna entre características de floresta e de cidade, com prédios e carros

estacionados.

(a) (b)

Page 103: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

72

(c) (d)

Figura 7-8 Imagens capturadas pela câmera estereoscópica em diferentes instantes de tempo no experimento

Praça da Paz.

Neste experimento o robô Seekur Jr foi equipado com os sensores listados na Tabela 6. As

câmeras estereoscópicas capturam imagens em escala de cinza de tamanho 640x480 pixels com

taxa de amostragem de 15FPS. Os dois Lasers descritos na seção 6.3 capturam a geometria do

ambiente. O Laser 3D oscila entre os ângulos 0˚A 60˚ e o Laser 2D é fixo.

TABELA 6 OS SENSORES UTILIZADO NO TESTE PRAÇA DA PAZ

Câmera

Left/Right

Câmera

Estereo

Laser

2D

Laser

3D

GPS

Garmin

GPS

Trimble

Odometria

Robô

x x x x x x x

7.3 Velocidade de processamento (Odometria Visual)

A velocidade de processamento varia em função da quantidade de informação no ambiente,

tamanho da imagem e a unidade de processamento (CPU e GPU). O resultado da velocidade de

processamento dos dados experimentais é apresentado nesta seção.

Duas versões do algoritmo de odometria visual foram testadas. A primeira, executa na GPU

os algoritmos de identificação de pontos de referência na imagem, a triangulação, filtragem e

correlação de pontos de referência. A segunda executa o algoritmo de odometria visual na CPU.

O desempenho das GPUs é modificado com a operação através das baterias. O algoritmo de

odometria visual executado nas GPUs móveis utilizando como alimentação de energia as baterias

é quantificado nos experimentos "Via Museu" 7.3.3 e "Corredor 3D-Max" 7.3.2. A robustez do

Page 104: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

73

algoritmo em experimentos de grande escala é apresentada nas seções nos experimentos Praça da

Paz 7.3.5 e Ciclo Básico 7.3.4.

7.3.1 Helmet

O processamento das imagens de ambiente interno registradas com resolução de 1280x980

pixels é executado na GPU GTX 560Ti, atingindo uma velocidade de processamento de 6FPS.

As GPUs móveis Quadro 4000M e GTX 680M apresentaram uma diferença de 80% da

velocidade, quando são energizados pela rede ou bateria. No mesmo teste, a velocidade de

processamento das CPUs Intel Core i7 950 3.07GHz e Intel Core i7 3610QM 2,3GHz apresenta

uma diferença média de 0,045FPS. Observa-se o desempenho superior das GPUs em relação as

CPUs. Registra-se um incremento de velocidade, de 20 vezes, entre a GPU mais rápida e as

CPUs (Figura 7-9).

Figura 7-9 Velocidade de processamento do algoritmo "Odometria Visual" executado em

diferentes unidades de processamento (CPUs e GPUs). O tamanho das imagens processadas é

1280x960. Capturadas em um ambiente externo.

7.3.2 Corredor 3DMax

No experimento Simulação - Corredor 3DMax, são processadas imagens de 640x480 pixels

em diferentes unidades de processamento. A CPU i7 36100M atinge uma velocidade média de

3FPS. A GPU de escritório GTX 560 Ti atinge uma velocidade de processamento de 30FPS

Page 105: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

74

(tempo real). Neste experimento o algoritmo de odometria visual também é testado nas unidades

móveis de processamento gráfico M-GPUs. A GPU Quadro 4000M apresentou uma velocidade

de processamento de 15FPS conectado na tomada e uma velocidade de 3FPS utilizando a

alimentação das baterias. A GPU GTX 680M apresentou uma velocidade de processamento de

22FPS conectado na tomada e uma velocidade de 4,9FPS utilizando a bateria. Uma amostra de

100 passos é apresentada na Figura 7-10.

Figura 7-10 Velocidades de processamento do algoritmo de odometria visual em um ambiente virtual. O

tamanho das imagens é 640x480 pixels. Na GPU 560Ti é atinge velocidade de 30FPS.

7.3.3 Via Museu

No experimento via Museu é utilizada uma amostra de 100 quadros correspondentes à

navegação em ambiente externo. O algoritmo de odometria visual é executado em três diferentes

unidades de processamento. A GPU Quadro 4000m, que atinge uma velocidade de

processamento de pico de 30FPS e média de 22FPS; a Unidade de processamento GPU 560Ti,

que atinge uma velocidade de pico de 100FPS e velocidade média de 39FPS e a CPU, que atinge

uma velocidade de pico de 4,5FPS e uma velocidade média de 3FPS.

Page 106: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

75

Figura 7-11 Velocidades de processamento do algoritmo de odometria visual em um ambiente

externo. O tamanho das imagens é 640x480 pixels. A GPU Quadro 4000 atinge velocidade média de

20FPS.

7.3.4 Ciclo Básico

O experimento ciclo básico composto de 805 imagens estereoscópicas é processando na

GPU Quadro 4000M. A velocidade de processamento do algoritmo de odometria visual (VO)

atinge uma velocidade pico de 25,8FPS e uma velocidade média de 20,97FPS. O processamento

na CPU atinge uma velocidade pico de 11,5FPS e uma velocidade média de 6,47FPS.

Figura 7-12 Velocidade de processamento do algoritmo Odometria Visual executado na GPU Quadro4000M,

O tamanho é 640x480.

Page 107: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

76

7.3.5 Praça da Paz

O algoritmo de odometria visual (VO) processa os dados do experimento Praza da Paz. Este

é executado na GPU Quadro 4000M e na CPU Intel i7-2820QM. As velocidades de

processamento são apresentadas na Figura 7-13. A velocidade de processamento do algoritmo de

odometria visual (VO) atinge uma velocidade pico de 29FPS e uma velocidade média de

19,95FPS. O processamento na CPU atinge uma velocidade de pico de 16FPS e uma velocidade

média de 5,08FPS.

Figura 7-13 Velocidade de processamento do algoritmo "Odometria Visual" executado na GPU Quadro

4000M. O tamanho é 640x480.

7.4 Resultados das estimativas de navegação

O problema de localização de robôs autônomos se deve a erros na medição de posição. Neste

trabalho são comparados os sensores descritos na seção 7.1 em quatro experimentos. O

comportamento do erro varia em relação ao ambiente de navegação. Primeiro, o vídeo

estereoscópico da navegação em ambiente virtual é processado. Depois, no teste do ciclo básico é

utilizada a rua circular como referência. A peculiaridade da circunferência perfeita de 1 km é

utilizada como ambiente de calibração. No experimento Museu é validado o algoritmo de

odometria visual em velocidades de 16,3 A 30,5 km/h. No experimento da Praça da Paz a

odometria visual e a localização pelo GPS são avaliadas em ambientes de floresta.

Page 108: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

77

7.4.1 Corredor 3DMax

O algoritmo de odometria é validado no ambiente simulado “Corredor 3D Max”. A trajetória

da câmera estereoscópica é representada pela linha pontilhada na Figura 7-16. Esta trajetória é

utilizada como referência e comparada com a odometria visual, linha contínua na figura.

Figura 7-14 Trajetória da odometria visual e referência na simulação Corredor 3D-Max.

O erro é estimado através da diferença da trajetória seguida pela câmera e da trajetória

recuperada pela odometria visual. Este erro apresenta um comportamento cumulativo, o que leva

a crescente curva de erro na Figura 7-17. O ponto final da trajetória possui uma incerteza de

25,52%, enquanto o erro médio é de 5,06%.

Figura 7-15 Erro ao longo da simulação Corredor 3D-Max.

Page 109: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

78

7.4.2 Ciclo Básico

O formato circular da rua do Ciclo Básico da Unicamp é utilizado como referência para

medir o erro nos sensores. Esta circunferência de 1km é representada ao longo dos experimentos

como uma linha pontilhada vermelha. Na seção 7.4.2.1 é medido o erro dos algoritmos de

odometria visual e odometria dos encoders. Depois, na seção 7.4.2.2 são comparadas as

estimativas de localização pelos GPS Garmin e Trimble. Na seção 7.4.2.3 é apresenta a correção

do erro utilizando o Filtro de Kalman em configuração de Dead Recording e fusão de sensores.

7.4.2.1 Odometria visual e dos encoders

Os dados da odometria cinemática do robô são comparados com o círculo vermelho utilizado

como referência. A trajetória recuperada é apresentada na Figura 7-16(a). O Erro estimado ao

longo da trajetória é apresentado na Figura 7-16 (b). A primeira linha estima o erro para cada

instante 𝑘. A segunda linha (pontilhada) apresenta o erro médio de 10,17% do tipo incremental.

(a)

(b)

Figura 7-16 Trajetória da odometria cinemática e referência no experimento CB (a). Erro ao longo do

experimento e erro médio (b).

A trajetória recuperada pela odometria visual é comparada com o círculo de referência,

conforme ilustrado na Figura 7-17(a). O Erro estimado ao longo da trajetória é apresentado na

Figura 7-17 (b). A linha pontilhada apresenta o erro médio de 5,73%.

Page 110: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

79

(a)

(b)

Figura 7-17 Trajetória da odometria visual no experimento CB (a), erro local e erro médio alongo do

percurso.

7.4.2.2 GPS Garmin e Trimble

Os dados de localização utilizando os sensores GPS Garmin e Trimble são comparados com

a referência na Figura 7-18. A localização do GPS Garmin na Figura (a) apresenta variações

durante a navegação. Em contraste, o GPS Trimble apresenta localização com maior exatidão na

Figura (b). No entanto, em alguns intervalos este GPS não atualiza a localização proporcionando

o aparecimento de descontinuidades, como apresentado no “Detalhe B”. Os pontos inicial e final

do experimento são mostrados no “Detalhe A”.

(a)

(b)

Figura 7-18 Dados de localização armazenados pelos GPS Garmin (a) e Trimble (b) durante o teste do ciclo

básico. O detalhe 'A' indica o ponto inicial do teste. O detalhe 'B' apresenta o maior intervalo de erro do GPS

Trimble (b).

Detalhe B

Detalhe A

Detalhe B

Detalhe A

Page 111: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

80

Os erros dos dispositivos de localização geográfica GPS são ilustrados na Figura 7-19. Estes

são representados através de duas linhas para cada sensor. A primeira linha estima o erro em

todos os instantes. A segunda linha (pontilhada) apresenta o erro médio de 0,21% para o GPS

Garmin e de 0,46% para o GPS Trimble.

Figura 7-19 Erro do GPS Trimble e Garmin alongo do experimento CB.

7.4.2.3 Filtro de Kalman

O Filtro de Kalman é utilizado nas estimativas Dead Reckoning de navegação, descritas na

seção 4.3. A trajetória recuperada pela odometria visual e sua correção pelo filtro de Kalman são

apresentadas na Figura 7-20 (a). O erro de odometria visual é atenuado em 1,34%, variando de

5,73% para 4,39% na Figura 7-20 (b).

(a) (b)

Figura 7-20 Trajetórias no experimento CB da odometria visual e a correção através filtro de Kalman em

configuração Dead Reckoning (a) e os erros ao longo do experimento (b).

Page 112: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

81

O filtro de Kalman em configuração de fusão de sensores combina a odometria do encoders

e a odometria visual. As trajetórias estimadas com a regularização do filtro de Kalman são

apresentadas na Figura 7-21. Esta fusão apresenta um erro médio de 5,86%.

(a) (b)

Figura 7-21 Trajetórias no experimento CB: odometria visual, odometria dos encoders e fusão através do

filtro de Kalman (a). Erros das estimativas ao longo do experimento (b).

O filtro de Kalman é utilizado ainda para fundir as estimativas de localização utilizando a

odometria dos encoders e a localização pelo GPS Trimble. Os resultados são apresentados na

Figura 7-22. A fusão das estimativas apresenta um erro médio de 0,59%.

Figura 7-22 Trajetórias no experimento CB: odometria dos encoders, localização pelo GPS e a fusão através o

filtro de Kalman (a). Erros das estimativas ao longo do experimento(b).

Page 113: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

82

O filtro de Kalman é utilizado para fundir as estimativas de localização utilizando odometria

visual e o GPS Trimble. Os resultados são apresentados na Figura 7-23. A fusão das estimativas

apresenta um erro médio de 0,54%.

Figura 7-23 Trajetórias no experimento CB da odometria visual, a localização pelo GPS e a fusão através do

filtro de Kalman (a). Erros das estimativas ao longo do experimento (b).

O filtro de Kalman é utilizado para fundir as estimativas de localização utilizando odometria

visual, odometria dos encoders e o GPS Trimble. As trajetórias são apresentadas na Figura 7-24.

A linha pontilhada vermelha representa a referência. A linha verde contínua representa a

odometria dos encoders. A linha azul a odometria visual. A linha magenta corresponde à fusão

através do filtro de Kalman, apresentando um erro médio de 0,55%.

(a)

(b)

Figura 7-24 Trajetórias no experimento CB: odometria visual, odometria dos encoders, a localização pelo GPS e a

fusão através o filtro de Kalman (a). Erros das estimativas ao longo do experimento (b).

Page 114: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

83

7.4.3 Via Museu

O trajeto recuperado pelo algoritmo de odometria visual da navegação do experimento Via

Museu é comparado com o GPS. O erro calculando-se em base da diferença das duas estimativas.

As duas trajetórias são apresentadas na Figura 7-25. A odometria visual é representada pela linha

continua e a trajetória de referência (GPS) pela linha pontilhada.

Figura 7-25 Trajetórias da navegação em um ambiente exterior. A linha pontilhada representa o GPS e

a linha vermelha a odometria recuperada das imagens.

O algoritmo VO é validado através da diferença das estimativas da trajetória de odometria visual

e a localização pelo GPS. As estimativas do algoritmo de odometria visual possuem erro

Figura 7-26 O erro da estimativa de movimento da odometria visual ao longo do experimento Via Museu.

cumulativo, o que leva à crescente curva de erro na Figura 7-26. O ponto final da trajetória possui

uma incerteza de 18%, enquanto o erro médio é de 7,2%.

Page 115: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

84

7.4.4 Praça da Paz

O experimento de navegação na Praça da Paz é dividido em duas etapas. No primeiro passo é

apresentada a influência do ambiente na localização utilizando GPS. No segundo passo, validam-

se os algoritmos de odometria visual e fusão de sensores através do Filtro de Kalman.

A representação das trajetórias estimadas pelos GPSs Garmin e Trimble são plotadas no

mapa da plataforma Google Earth, conforme mostrado na Figura 7-27. As condições

meteorológicas são de céu aberto no período da medição. Este ambiente contém regiões onde o

robô é encoberto por árvores, atenuando o sinal do GPS proveniente dos satélites. Estas regiões

são indicadas por círculos vermelhos no mapa.

(a) (b)

Figura 7-27 Sinal do GPS Trimble e Garmin em dois dias diferentes de teste. (Imagem Google Earth)

A localização pelos GPS é afetada pelas condições meteorológicas. Os testes são feitos em

condições de céu aberto. Neste experimento, a trajetória com melhor estimativa é utilizada como

referência, conforme representado pela linha pontilhada vermelha da Figura 7-28(a). A diferença

entre o GPS Trimble e Garmin é quantificada ao longo do experimento e ilustrada na Figura

7-28(b) com um erro médio de 1,1%.

Page 116: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

85

(a) (b)

Figura 7-28 Erro do GPS Garmin e Trimble no experimento da Praça da Paz.

O filtro de Kalman é utilizado para fundir as estimativas de localização utilizando odometria

visual, odometria dos encoders e o GPS Garmin. As trajetórias são apresentadas na Figura 7-29.

A linha pontilhada vermelha é a referência (GPS Trimble). A estimativa de pela odometria visual

é a linha azul pontilhada, a linha verde representa a odometria dos encoders e a linha preta o GPS

Garmin. A fusão através do filtro de Kalman é representada pela linha magenta.

Figura 7-29 Trajetórias estimadas no experimento Praça da Paz. (Localização pela odometria visual,

odometria dos encoders, localização pelo GPS e a fusão pelo filtro de Kalman).

O erro neste experimento é calculado através da diferença das estimativas de posição e a

trajetória de referência (GPS Trimble). O erro ao longo do experimento é apresentado na Figura

Page 117: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

86

7-30. O erro médio da odometria visual é 5,86%, da odometria do encoders 4,8% e do GPS

Garmin 1,02%. A fusão das estimativas de posição através do filtro de Kalman apresentou um

erro médio de 1,17%.

Figura 7-30 Erro das estimações de movimento ao longo do experimento praza da

Paz. As linhas pontilhadas representam o erro médio para cada estimativa.

Page 118: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

87

7.4.5 Resultados de Mapeamento

A reconstrução no espaço tridimensional das distâncias capturadas pelo Laser 3D são

apresentadas na Figura 7-31. As distância são transformadas em pontos 3D utilizando os ângulos

do PTU e a odometria das rodas. Os pontos cinza representam a reconstrução do ambiente. As

linhas azul e vermelha representam a posição de captura do robô através dos eixos de

coordenadas 𝑥 e 𝑦.

Figura 7-31 A linha azul representa o caminho recuperado pela odometria dos encoders. Os pontos

cinzas representam o ambiente reconstruído pelo Laser 3D.

A reconstrução do ambiente em coordenadas euclidianas utilizando a odometria dos

encoders é apresentada na Figura 7-32. A linha azul claro representa a localização pelo GPS. A

cor dos pontos capturados pelo Laser 3D é função a altura. Sendo o cinza obscuro o ponto mais

baixo 0 e os pontos cinza claro o ponto mais alto no eixo Y.

Page 119: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

88

Figura 7-32 A linha vermelha representa o caminho da odometria dos encoders, os pontos azuis claro representam a

trajetória do GPS . Os pontos cinza são os pontos mapeados pelo Laser 3D no ambiente.

A vista superior da reconstrução é ilustrada na Figura 7-33. Evidencia-se o erro de

odometria das rodas. Os pontos inicial e final deveriam ser coincidentes, contudo isto não ocorre

devido a dois fatores: primeiro, a odometria das rodas não identifica as variações no eixo Z e

acumulo de erros.

Figura 7-33 Vista superior da reconstrução do ambiente Praça da Paz.

Page 120: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

89

8 Discussão e Conclusões

Neste capítulo são apresentadas as discussões dos resultados, as conclusões e as sugestões

para trabalhos futuros. Também, os resultados descritos na seção 7 são comentados e comparados

com os resultados da literatura.

Discussão de Resultados

Os algoritmos de Odometria visual e fusão de sensores foram descritos e validados através

de diferentes testes nos capítulos anteriores. Estes testes iniciaram com a estimativa de

movimento de um ambiente virtual de interiores, depois o algoritmo foi testado nos ambientes

reais de exterior. As análises destes resultados iniciam discutindo a estimativa de movimento ao

longo dos experimentos utilizando câmeras estereoscópicas. Em seguida é analisada a influência

do filtro de Kalman nas configurações DK e fusão de sensores. Também são discutidos o uso de

câmeras estereoscópicas com lentes fixas, o algoritmo de calibração com uma caixa sólida e o

condicionamento da plataforma robótica Seekur Jr.

Os sistemas de localização por satélite GPS foram testados no ambiente do Ciclo Básico e

Praça da Paz, conforme apresentados na seção7.4. Os erros são sintetizados na Tabela 7. No

ambiente do ciclo básico, o GPS de baixo custo Garmin apresentou um erro de 0,21% e o

Trimble de 0,46%. No experimento são evidenciados vários pontos mortos do GPS Trimble que

contribuíram para o erro de 0,46%. No entanto o GPS Trimble apresentou baixas oscilações ao

redor da referência. Ao contrário, o GPS Garmin atualizou a localização a longo de todo o

percurso e apresentou maiores oscilações ao redor da referência.

TABELA 7 ERRO DO GPS NOS EXPERIMENTOS

No experimento ciclo básico a diferença entre os GPSs foi de 0,25%. Em contraste, no

experimento da Praça da Paz a diferença foi de 1,1%. Estes dados evidenciam a influência do

ambiente na localização utilizando GPS. Na Praça da Paz as árvores atenuaram o sinal do satélite

Erro médio GPS Garmin GPS Trimble Diferença

Ciclo Básico 0,21% 0,46% 0,25%

Praça da Paz --- --- 1,1%

Page 121: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

90

causando um maior erro no GPS Garmin do que no GPS Trimble. Os dispositivos de localização

por satélite apresentaram dois tipos de incertezas. A primeira é evidenciada quando o GPS perde

o sinal dos satélites. Onde, não são atualizados os dados (pontos mortos) é enviada a mesma

localização. O segundo tipo de incerteza na localização é função do ambiente e as condições

metrológicas.

Um método robusto e eficiente para realização da odometria visual foi apresentado neste

trabalho. O algoritmo foi validado em quatro ambientes, conforme mostrado na seção7.1. O

primeiro, Corredor 3DMax, um ambiente virtual onde foram alocados objetos e simulada uma

câmera estereoscópica. Os testes validaram os algoritmos de odometria visual e fusão de

sensores. Os erros médios da odometria visual para cada estimativa são sumarizados na Tabela 8

abaixo.

TABELA 8 ERRO DO ALGORITMO DE ODOMETRIA VISUAL

Experimento Corredor

3D Max

Via

Museu

Ciclo

Básico

Praça

Da Paz

Erro médio 5,06% 7,2% 5,73% 5,86%

O algoritmo de odometria visual foi testado no ambiente virtual, apresentando um erro médio

de 5,06%. Este ambiente foi projetado para garantir as referências visuais ao longo do

experimento. No entanto, algumas texturas apresentaram aliasing que inseriram erros na

estimativa de movimento. Os ambientes da Praça da Paz e do Ciclo Básico testaram os

algoritmos de odometria visual e fusão de sensores em ambientes reais. O erro da odometria

visual foi de 5,73% para o teste do Ciclo Básico e de 5,86% na Praça da Paz. O erro de odometria

dos encoders nos mesmos experimentos foi de 10,17% no ciclo básico e de 4,8% na Praça da Paz.

Estes resultados demonstram a repetibilidade do algoritmo de odometria visual, apresentando um

melhor desempenho que a odometria dos encoders no caso do teste do Ciclo Básico.

A velocidade de navegação teve um fator importante na estimativa de movimento utilizando

câmeras estereoscópicas. Nos experimentos ciclo básico e Praça da Paz, a velocidade de

navegação foi de 0.5 km/h apresentando erros de 5.73% e 5.86% respectivamente. Em contraste,

no experimento via museu a velocidade foi de 16-30 km/h apresentando um erro de 7.2%.

Page 122: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

91

A redundância de informação é uma solução ao problema de localização. O uso do filtro de

Kalman para a fusão de dados foi avaliada neste trabalho, conforme apresentado nas seções 7.4.2

e 7.4.4. Os resultados dos testes da Praça da Paz e do Ciclo Básico são sintetizados na Tabela 9.

TABELA 9 ERRO DA FUSÃO DE DIFERENTES SENSORES

Experimento Ciclo Básico Praça da Paz

Vody+GPS+Ody Vody+GPS Ody+GPS Vody+GPS+Ody Vody+Ody

Erro médio 0,54% 0,59% 0,55% 5,86% 1,17%

Neste trabalho ficaram evidenciadas duas particularidades nos métodos. A primeira foi o erro

não cumulativo utilizando o GPS e a possibilidade de perda do sinal em alguns intervalos. A

segunda foi o erro incremental na estimativa de movimento utilizando encoders e/ou câmeras

estereoscópicas. O filtro de Kalman foi utilizado para fundir estas estimativas, aproveitando as

melhores qualidades de cada sensor. Ou seja, o erro acumulativo das odometrias é corrigido

através da localização do GPS. Da mesma forma, os espaços gerados pela perda do sinal do GPS

são preenchidos por estimações de movimento, gerados pelas odometrias. Os resultados

indicaram que o erro é atenuado no experimento do Ciclo Básico. Os erros de odometria de

5,73% e 10,17% são diminuídos para 0,54% e 0,59% quando são fundidos com o GPS. Também,

os espaços de perda do sinal do GPS foram preenchidos pela informação das odometrias. Na

seção 7.4.2 são sintetizados os detalhes dos resultados do experimento do Ciclo Básico obtidos

na.

Os pontos GPS Garmin e Trimble são plotados junto às estimativas de odometria e filtro de

Kalman. Os detalhes que apresentaram o intervalo de perda de sinal são plotados nas figuras

abaixo e chamados de “Detalhe A” denotado pela letra (a). Os pontos de partida (0,0) são

chamados de “Detalhe B” denotado pela letra (b). Os pontos pretos representam as estimativas de

posição ao longo do percurso. A linha pontilhada vermelha representa o círculo usado como

referência no experimento Ciclo Básico.

Na Figura 8-1 a trajetória verde pontilhada representa o GPS Trimble e a linha pontilhada

azul o GPS Garmin. No detalhe A o GPS Trimble apresentou perda de localização devido a

fatores no ambiente que interferiram no sinal do GPS. Os dois GPS apresentaram incertezas no

ponto final, detalhe B.

Page 123: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

92

(a) Detalhe A (b) Detalhe B

Figura 8-1 Os detalhes da fusão As trajetórias recuperadas pelos GPS Trimble e Garmin nas figuras (a,b)

A fusão da localização do GPS (linha verde pontilhada) com a odometria das rodas (Linha

verde) através do filtro de Kalman é representado nela linha magenta na Figura 8-2. A fusão

corrigiu a perda de sinal do GPS no detalhe A. No entanto, continuo o erro da posição final no

detalhe B.

Detalhe B

Detalhe

B

Detalhe A

Detalhe A

Page 124: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

93

Detalhe A (a) Detalhe B (b)

Figura 8-2 Os detalhes da fusão através do filtro de Kalman utilizando a Odometria dos Encoders + GPS são

apresentados nas Figuras (a,b))

A fusão da localização do GPS (linha verde pontilhada) com a odometria visual (Linha azul)

foi fundida pelo filtro de Kalman representado pela linha magenta na Figura 8-3. A fusão corrigiu

a perda de sinal do GPS no detalhe A e o erro da posição final no detalhe B.

Detalhe B

Detalhe A

Page 125: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

94

Detalhe A (a) Detalhe B (b)

Figura 8-3 Os detalhes da fusão da Odometria Visual + GPS são apresentados nas figuras (a,b)

A fusão da localização do GPS (linha verde pontilhada) com a odometria visual (Linha azul)

e a odometria das rodas (Linha Verde) foi fundida pelo filtro de Kalman representada pela linha

magenta na Figura 8-4. A fusão corrigiu a perda de sinal do GPS no “detalhe A” e uma porção do

erro da posição final no “detalhe B”.

Detalhe B

Detalhe A

Page 126: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

95

Detalhe A (a) Detalhe B (b)

Figura 8-4 Os detalhes da fusão do GPS + Odometria dos encoders + Odometria Visual são apresentados nas

figuras (a,b)

Os dados de localização do GPS foram fundidos com as estimativas das odometrias através

do filtro de Kalman. As três configurações de fusão resolveram o problema de localização

quando o GPS perde o sinal do satélite. No entanto, só a fusão do GPS e Odometria visual

corrigiu o erro de localização final apresentado na Figura 8-3 (b).

Os testes de processamento validaram o uso da GPU executando o algoritmo de odometria

visual em diferentes condições. Primeiro, foram avaliadas as GPUs móveis quando energizadas

pelas baterias de um Notebook. Depois, o desempenho foi analisado em diferentes tamanhos de

imagens e quantidade de informação do ambiente. Os resultados da seção 7.3 são sintetizados e

discutidos abaixo.

A velocidade de processamento quando a GPU é energizada com bateria ou tomada foi

medida nos experimentos Corredor 3D Max e Helmet. As velocidades de processamento

utilizando as placas de vídeo móbiles Quando 4000M e GTX 680M são apresentadas na Tabela

10.

TABELA 10 VELOCIDADE DE PROCESSAMENTO GPU E FONTE DE ALIMENTAÇÃO

Experimento

GPU

Corredor 3D Max (640x480) Helmet (1280x980)

Quadro 4000M GTX 680M Quadro 4000M GTX 680M

Tomada 15FPS 22FPS 3FPS 4,5FPS

Bateria 3FPS 4,9FPS 0,5FPS 1FPS

Perda de Velocidade 80% 77% 83% 77%

Page 127: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

96

A GPU apresenta perda de velocidade de processamento ao redor de 80% quando utiliza

bateria. O desempenho foi testado em duas configurações de imagem. apresentando uma queda

proporcional de velocidade de processamento. Estes resultados sugerem restrição do uso de

GPUs em plataformas móveis devido a necessidade de uma fonte de alimentação de mais alta

potência ou a conexão na tomada.

O desempenho do algoritmo de odometria visual foi medido em diferentes ambientes e

unidades de processamento. Os resultados apresentados na seção 7.3 são sintetizados na Tabela

11. No experimento Helmet foram processadas imagens de 1280x980 pixels, apresentando um

incremento de velocidade de nove vezes quando se utiliza a GPU. Este incremento foi mais

significativo que os experimentos que utilizaram imagens de 640x480 pixels.

TABELA 11 VELOCIDADE DE PROCESSAMENTO NOS EXPERIMENTOS

Experimento

GPU

Helmet

(1280x980)

Corredor 3D Max

(640x480)

Via Museu

(640x480)

Ciclo Básico

(640x480)

Praça da Paz

(640x480)

Quadro

4000M

CPU Quadro

4000M

CPU Quadro

4000M

CPU Quadro

4000M

CPU Quadro

4000M

CPU

Tomada (FPS) 3 0,3 15 3 22 3 20,97 6,47 19,95 5,08

90% 80% 86% 69% 74,5%

O número de pontos de referência identificados no experimento Corredor 3D Max foi maior

do que no experimento Ciclo Básico. Este aumento refletiu na velocidade de processamento que

apresentou uma queda de 46% no experimento Corredor 3D Max, quando comparado com o

experimento Ciclo Básico. Os experimentos que processaram imagens de 640x480 pixels tiveram

uma velocidade media de 19,48FPS quando executados na GPU e de 4,38FPS quando são

executados na CPU. Estes resultados apresentam uma aceleração de 77,4% quando os algoritmos

de odometria visual são executados na GPU.

A velocidade de processamento nos experimentos Corredor 3D Max, Helmet e Via Museu

foram executados na GPU GTX 560TI. Os resultados são sintetizados na Tabela 12, a velocidade

de processamento foi 91% maior na GPU do que no processamento em CPU. Estes experimentos

atingiram os 30FPS com imagens de 640x480 pixels, sugerindo a viabilidade de execução de

odometria visual em tempo real.

Page 128: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

97

TABELA 12 VELOCIDADE DE PROCESSAMENTO GPU REALTIME

Experimento

GPU

Helmet

(1280x980)

Corredor 3D Max

(640x480)

Via Museu

(640x480)

GTX

560TI

CPU GTX

560TI

CPU GTX

560TI

CPU

Tomada (FPS) 6 0,3 30 3 39 3

95% 90% 92%

Os resultados deste trabalho são comparados com demais trabalhos da literatura, onde são

analisadas, a velocidade de processamento e o erro de estimação de movimento. Os resultados de

odometria visual são sintetizados na Tabela 13, listando os trabalhos mais representativos

utilizando câmeras na estimativa de movimento. As características analisadas são: ambiente do

experimento, método de processamento de imagens, tamanho da imagem, velocidade, unidade de

processamento, e erro de odometria visual.

TABELA 13 COMPARAÇÃO DE VELOCIDADES DE PROCESSAMENTO E ERRO

Autor Resultados apresentados

Ambiente de teste Método Tamanho da imagem Velocidade Erro

(OLSON et al.,

2003) Exterior/Marte Features Förstner

320x240

Estereo -------------

1.2%

20m

(MAKI et al., 2012)

Exterior/Marte DM 1024x1024

12 Estereo Cameras ------------- -------------

(PAZ; PINI; TARD, 2008)

Exterior /Interior

6-DOF SLAM

Matlab SIFT

Shi-Tomasi

320x240 Estereo

0.5FPS

(CPU)

-------------

140m/210m

(SAEEDI;

LAWRENCE;

LOWE, 2006)

Exterior , cidade e floresta

VO SUSAN KF 320x240

Trinocular

2.4FPS

CPU

0.4%

6m

(CORKE et al., 2007)

Submarino,coral VO

Harris Corner Detector 640x480

Estereo 70mm

-------------

CPU

5%

100m

(HOWARD,

2008)

Exteriores, estrada de tera floresta

VO DM

512x384 Estereo

60FPS

CPU

0.25%

400m

(NIST;

BERGEN, 2004)

Exteriores VO

Harris Corner Detector 720x240 Estereo

13FPS

(CPU)

4.86%

266.16m

(LIK; LUI;

JARVIS, 2010) Interior

VO Haar Wavelet, Oprical Flow

e SURF

320x240

Omni

30FPS

(GPU)

5.58%

16.95m

(CLIPP; FRAHM;

POLLEFEYS,

2010)

VO 1224x1024

Estereo

37.1FPS

(GPU)

0.6%

51.2m

(LEE; KIM;

MYUNG, 2012) Interior Kinect

640x480

20FPS

(CPU)

-------------

(DRYANOVSKI et al., 2013)

Interior DM RGB 320x240 30FPS

(CPU) -------------

Page 129: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

98

Autor Resultados apresentados

Ambiente de teste Método Tamanho da imagem Velocidade Erro

(STRASDAT; MONTIEL;

DAVISON,

2010)

Exterior Optical flow 320x240

12FPS

(GPU)

(ANDREASSON

; DUCKETT; LILIENTHAL,

2007)

SIFT 1000x289

Omni -------------

0.33%

1400m

Experiemnto Helmet

Interior SURF 1280x980

6FPS

(GPU) -------------

0.34FPS

(CPU) -------------

Ciclo Basico

Exterior SURF 640x480

20.97FPS

(GPU) 5.73%

1000m 6,47FPS

(CPU)

Parça da Paz Exterior SURF 640x480

19,95FPS

(GPU) 5,86%

727m

5,08FPS

(CPU)

Via Museu Exterior SURF 640x480

39FPS

(GPU) 7,2%

500m 3FPS

(CPU)

Corredo

3D Max

Simulação

Interior SURF 640x480

30

(GPU) 5,06%

22,5m 3

(CPU)

a. Alguns trabalhos não disponibilizam os métodos ou especificações dos elementos utilizados.

O trabalho de (CORKE et al., 2007) utilizou o algoritmo Harris Corner Detector para a

identificação de pontos de interesse em imagens de 640x480 pixels atingindo um erro na

estimativa de movimento de 5% no percurso de 100m. Neste trabalho foram processadas imagens

do mesmo tamanho atingindo um erro de 5,73% (1000m) (caso do experimento Ciclo Básico) e

de 5,06% (22,5m) (experimento Corredor 3DMax).O trabalho de (NIST; BERGEN, 2004)

utilizou o algoritmo Harris Corner Detector para a identificação de pontos de interesse

processando imagens de 720x240 pixels, atingindo uma velocidade de 13FPS utilizando CPU e

um erro de 4,86%. Neste trabalho a maior velocidade com CPU foi de 6,47FPS no experimento

do Ciclo Básico atingindo um erro de 5,73%. O trabalho de (LIK; LUI; JARVIS, 2010)

apresentou uma velocidade de processamento de 30FPS e um erro de 5,58% em uma trajetória de

Page 130: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

99

16,95m. Estes resultados são próximos aos resultados obtidos neste trabalho. Com uma

velocidade de processamento de 30FPS no experimento Via Museu e um erro de 7,2%.

O trabalho de (DRYANOVSKI et al., 2013) apresenta outra proposta de odometria visual,

utilizando métodos diretos para estimativa de movimento e utilizando a CPU. Dryanovski atingiu

uma velocidade de processamento de 30FPS. Em contraste, neste trabalho a velocidade média

utilizando CPU foi de 3FPS.

Page 131: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

100

Conclusões

A localização pela odometria visual foi investigada e implementada. Um método robusto

para a localização num ambiente desconhecido é proposto, utilizando visão. O método utilizou

câmeras estereoscópicas, filtro de Kalman e GPUs, como método consistiu também na fusão de

estimativas de movimento dos encoders e do GPS através do filtro de Kalman. O erro médio em

um percurso de 1km foi de 4,39%.

Um sistema de visão estereoscópica foi montado utilizando duas câmeras Guppy PRO

FireWire. Vídeos estereoscópicos foram capturados em quatro diferentes ambientes. As

resoluções de imagem variaram de 640x480 e 1280x96 pixels, mantendo a sincronização entre as

imagens direita e esquerda. A câmera proposta permitiu a montagem de lentes de 9mm. Esta

câmera foi calibrada utilizando os parâmetros de calibração das câmeras estereoscópicas obtidos

através das técnicas proposta pelos autores no trabalho (KURKA et al., 2013).

Uma nova técnica de filtragem selecionou as melhores referências nos ambientes para

estimativa de movimento. Esta filtragem foi implementada em duas seções do algoritmo de

odometria visual. Na primeira foram filtrados os pontos correlacionados nas imagens através de

uma janela. Na segunda parte, os pontos de referência no espaço euclidiano são filtrados,

excluído os pontos que apresentaram um deslocamento fora da media.

O algoritmo de odometria visual foi executado em três unidades GPU atingindo uma

velocidade de processamento de 30FPS (tempo real). Para isto, foram utilizadas as bibliotecas

SURF de OpenCV e a implementação em CUDA dos algoritmos de filtragem e triangulação de

pontos. A velocidade de processamento quando o algoritmo é executado na GPU foi 9 vezes a

velocidade da CPU. O desempenho do algoritmo nas GPUs moveis energizadas pelas baterias foi

testado, apresentando uma queda do 80% na velocidade de processamento em relação à

energização pela tomada.

A plataforma robótica Seekur Jr, foi equipada com sensores extrospectivos : Laser2D, Laser

3D, câmeras estereoscópicas e GPSs. Estes sensores foram avaliados em quatro ambientes de

navegação. O filtro de Kalman fundiu as estimativas de localização concorrentes, diminuindo o

erro cumulativo do algoritmo de odometria visual em 10 e 20 vezes nos experimentos Praça da

Paz e Ciclo Básico.

Page 132: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

101

O formato circular do Ciclo Básico foi utilizado como plataforma de calibração dos sensores

e algoritmos de estimativa de movimento. O erro do GPS Trimble apresentou poucas incertezas.

No entanto a perda do sinal em alguns instantes acrescentaram o erro no experimento Ciclo

Básico atingindo uma incerteza de 4,6m. No experimento da Praça da Paz o GPS Garmin teve um

incerteza de 7,1m. A fusão de informação entre o GPS e uma odometria é suficiente para estimar

o movimento nos intervalos nos que o GPS perde o sinal. O erro cumulativo das odometrias é

corrigido com a localização pelo GPS.

Estes experimentos concluíram que a localização e a estimativa de movimento não podem

depender só de um sistema ou sensor. A redundância de informação é necessária para garantir

uma informação confiável.

O presente trabalho possui aplicações na navegação de robôs autônomos em ambientes

exteriores. A proposta de odometria visual fundida com o GPS apresenta-se suficientes para a

localização correta do robô, obtendo a informação essencial para controle e planejamento de

trajetórias.

Trabalhos Futuros

O erro cumulativo da odometria visual foi corrigido neste trabalho com a fusão da estimativa

do GPS. A sugestão para trabalhos futuros é a correção deste erro com um sistema de

relocalização visual. A posição representada por uma imagem estereoscópicas é correlacionada

com um mapa de imagens previamente construído.

O uso da GPU em aplicações de odometria visual e processamento de tempo real requer de

uma fonte de alimentação de 230W. As sugestões para trabalhos futuros são a adaptação de uma

fonte extra de energia na plataforma robô Seekur Jr, ou utilizar a nova geração de GPUs de

sistemas embarcados Nvidia TEGRA .

O algoritmo de odometria visual apresentou restrições quando não existem texturas no

campo de visão das câmeras. A sugestão para trabalhos futuros é a substituição das lentes de

9mm por lentes omnidirecionais ou olho de peixe.

Page 133: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

102

O algoritmo de odometria visual pode ser testado na estimativa de movimento de outras

plataformas robóticas. A sugestão para trabalhos futuros é a estimativa do movimento de um

manipulador tipo ARM utilizando visão, em inglês "Visual servoing".

Vídeos Compartilhados

Paz & CB: https://www.youtube.com/watch?v=j0zJY8HlxnE

Via Museu: https://www.youtube.com/watch?v=FZAvz2LSTkc

Ipin 2013: https://www.youtube.com/watch?v=pUVL-17ub9M&list=UUiqLFHlQqESVgTsAlriap_A

Page 134: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

103

Referências

ADAM, A.; MEMBER, S.; RIVLIN, E. Fusion of Fixation and Odometry for Vehicle

Navigation. IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART

A: SYSTEMS AND HUMANS, v. 29, n. 6, p. 593–603, 1999.

ANDREASSON, H.; DUCKETT, T.; LILIENTHAL, A. Mini-SLAM : Minimalistic Visual

SLAM in Large-Scale Environments Based on a New Interpretation of Image

SimilarityIEEE International Conference on Robotics and Automation. Anais...2007

ANTHONY STENTZ, HERMAN HERMAN, A. K. . CHIMP, the CMU Highly Intelligent

Mobile Platform. Journal of Field Robotics, v. 32, p. 209–228, 2015.

BAK, A. et al. Multi-sensor localization - Visual Odometry as a low cost proprioceptive sensor.

2012 15th International IEEE Conference on Intelligent Transportation Systems, p. 1365–

1370, set. 2012.

BAY, H. et al. Speeded-Up Robust Features ( SURF ). Computer vision–ECCV, n. September,

2006.

BEDKOWSKI, J.; MASLOWSKI, A. On-line data registration in OUTDOOR environment. 2011

16th International Conference on Methods & Models in Automation & Robotics, p. 266–

271, ago. 2011.

BERNARDES, V. G. Rastreamento de alvo móvel em mono-visão aplicado no sistema de

navegação autônoma utilizando GPU Rastreamento de alvo móvel em mono-visão aplicado

no sistema de navegação autônoma utilizando GPU. [s.l.] UNICAMP, 2010.

BONATO, V. Proposta de uma arquitetura de hardware em FPGA implementada para

SLAM com multi-câmeras aplicada à robótica móvel. [s.l.] USP - São Carlos, 2007.

BOTELHO, S. S. D. C. et al. Appearance-based odometry and mapping with feature descriptors

for underwater robots. Journal of the Brazilian Computer Society, v. 15, n. 3, p. 47–54, set.

2009.

Page 135: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

104

BRADSKI, G. OpenCV 2.4.2Dr. Dobb’s Journal of Software Tools, , 2000.

CASTELLANOS, J. A.; NEIRA, J. Multisensor Fusion for Simultaneous Localization and Map

Building. IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, v. 17, n. 6, p.

908–914, 2001.

CASTILLO, J. et al. Proposal of a Brain Computer Interface to command an autonomous

car5th ISSNIP-IEEE Biosignals and Biorobotics Conference (2014): Biosignals and Robotics for

Better and Safer Living (BRC). Anais...IEEE, maio 2014Disponível em:

<http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6880969>

CLIPP, B.; FRAHM, J.-M.; POLLEFEYS, M. Parallel, real-time visual SLAM. 2010 IEEE/RSJ

International Conference on Intelligent Robots and Systems, p. 3961–3968, out. 2010.

CORKE, P. et al. Experiments with Underwater Robot Localization and TrackingIEEE

International Conference on Robotics and Automation. Anais...2007

COUTO, L. N. Sistema para localização robótica de veículos autônomos baseado em visão

computacional por pontos de referência. [s.l.] USP – São Carlos, 2012.

DE LIMA, D. A.; PEREIRA, G. A. S. Navigation of an Autonomous Car Using Vector Fields

and the Dynamic Window Approach. Journal of Control, Automation and Electrical Systems,

v. 24, n. 1-2, p. 106–116, 7 mar. 2013.

DEEN, R. G.; LORRE, J. J. Seeing in Three Dimensions: Correlation and Triangulation of Mars

Exploration Rover Imagery. 2005 IEEE International Conference on Systems, Man and

Cybernetics, v. 1, p. 911–916, [s.d.].

DELGADO, J. V., KURKA, P.R.G, FERREIRA, L. O. S. Processing speed test of Stereoscopic

vSLAM in an Indoors environment. Montbéliard,International Conference on Indoor

Positioning and Indoor Navigation, n. October, p. 119–122, 2013.

DRYANOVSKI, I. et al. Fast Visual Odometry and Mapping from RGB-D DataIEEE

International Conference on Robotics and Automation (ICRA). Anais...2013

Page 136: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

105

FALLON, M. et al. An Architecture for Online Affordance-based Perception and Whole-body

Planning. Journal of Field Robotics, v. 7, n. PART 2, p. 229–254, 2015.

FERNANDA, M.; RUIZ, R. Desenvolvimento de um Sistema de Localização Híbrido para

Navegação Autônoma de Veículos Terrestres em Ambiente Simulado. [s.l.] UNICAMP,

2014.

FERNANDES, L. C. et al. CaRINA Intelligent Robotic Car: Architectural design and

applications. Journal of Systems Architecture, v. 60, n. 4, p. 372–392, abr. 2014.

FISCHLER, M. A.; BOLLES, R. C. Random Sample Consensus: A Paradigm for Model Fitting

with Apphcatlons to Image Analysis and Automated Cartography. Communications of the

ACM, v. 24, n. 6, 1981.

GÖHRING, D. et al. Semi-autonomous car control using brain computer interfaces. Intelligent

Autonomous Systems 12, p. 393–408, 2013.

GUIZILINI, V. C. Localização E Mapeamento Simultâneos Com Auxílio Visual

Omnidirecional. [s.l.] Escola Politécnica da Universidade de São Paulo, 2008.

HOANG, V. et al. Localization estimation based on Extended Kalman filter using multiple

sensorsIECON 2013 - 39th Annual Conference of the IEEE Industrial Electronics Society.

Anais...IEEE, 2013

HOWARD, A. Real-time stereo visual odometry for autonomous ground vehicles2008

IEEE/RSJ International Conference on Intelligent Robots and Systems. Anais...Ieee, set.

2008Disponível em: <http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=4651147>

HUI FANG, M. Y. Ground-Texture-Based Localization for Intelligent Vehicles. IEEE

TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS, v. 10, n. 3, p.

463–468, 2009.

KALMAN, R. E. A New Approach to Linear Filtering and Prediction Problems. Transactions of

the ASME-Journal of Basic Engineering, v. 82, n. Series D, p. 35–45, 1960.

Page 137: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

106

KONOLIGE, K.; AGRAWAL, M. FrameSLAM: From Bundle Adjustment to Real-Time Visual

Mapping. IEEE Transactions on Robotics, v. 24, n. 5, p. 1066–1077, out. 2008.

KURKA, P. R. G. et al. Automatic estimation of camera parameters from a solid calibration box.

Journal of the Brazilian Society of Mechanical Sciences and Engineering, v. 35, n. 2, p. 93–

101, 11 abr. 2013.

LEE, D.; KIM, H.; MYUNG, H. GPU-based real-time RGB-D 3D SLAM. 2012 9th

International Conference on Ubiquitous Robots and Ambient Intelligence (URAI), n. Urai,

p. 46–48, nov. 2012.

LIK, W.; LUI, D.; JARVIS, R. A Pure Vision-based Approach to Topological

SLAMIEEE/RSJ International Conference on Intelligent Robots and Systems. Anais...2010

LOWE, D. G. Distinctive Image Features from Scale-Invariant Keypoints. International

Journal of Computer Vision, v. 60, n. 2, p. 91–110, nov. 2004.

MAKI, J. et al. The Mars Science Laboratory Engineering Cameras. Space Science Reviews, v.

170, n. 1-4, p. 77–93, 10 maio 2012.

MALYAVEJ, V. et al. Pose Estimation of Unmanned Ground Vehicle based on Dead-

reckoning / GPS sensorECTI-CON 6th International Conference. Anais...2009

MIRISOLA, L. G. B. et al. Validação experimental de um veículo robótico terrestre para

ambientes externos lX SBAI – Simpósio Brasileiro de Automação Inteligente. Anais...2011

MITSUHASHI, M.; KURODA, Y. Mobile robot localization using place recognition in outdoor

environments with similar scenes. 2011 IEEE/ASME International Conference on Advanced

Intelligent Mechatronics (AIM), p. 930–935, jul. 2011.

MOBILE ROBOTS. Seekur Jr. Disponível em:

<http://www.mobilerobots.com/Libraries/Downloads/SeekurJr-SKRJ-RevA.sflb.ashx>. Acesso

em: 20 jan. 2015.

Page 138: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

107

NEMRA, A. et al. Adaptive Iterative Closest SURF for visual scan matching, application to

Visual odometry. 3rd International Conference on Systems and Control, p. 927–932, out.

2013.

NEWCOMBE, R. A. et al. KinectFusion: Real-time dense surface mapping and tracking. 2011

10th IEEE International Symposium on Mixed and Augmented Reality, p. 127–136, out.

2011.

NIST, D.; BERGEN, J. Visual OdometryIEEE Computer Society Conference on Computer

Vision and Pattern Recognition (CVPR’04). Anais...2004

OLSON, C. F. et al. Rover navigation using stereo ego-motion. Robotics and Autonomous

Systems, v. 43, n. 4, p. 215–229, jun. 2003.

PARRA, I. et al. Visual odometry and map fusion for GPS navigation assistance. Proceedings -

ISIE 2011: 2011 IEEE International Symposium on Industrial Electronics, p. 832–837,

2011.

PARRA-TSUNEKAWA, I.; RUIZ-DEL-SOLAR, J.; VALLEJOS, P. A Kalman-filtering-based

Approach for Improving Terrain Mapping in off-road Autonomous Vehicles. Journal of

Intelligent & Robotic Systems, v. 78, n. 3-4, p. 577–591, 1 ago. 2014.

PAUDEL, D. P. et al. 2D-3D camera fusion for visual odometry in outdoor environments. 2014

IEEE/RSJ International Conference on Intelligent Robots and Systems, n. Iros, p. 157–162,

set. 2014.

PAZ, L. M.; PINI, P.; TARD, J. D. Large-Scale 6-DOF SLAM With Stereo-in-Hand. 946 IEEE

TRANSACTIONS ON ROBOTICS, v. 24, n. 5, p. 946–957, 2008.

SAEEDI, P.; LAWRENCE, P. D.; LOWE, D. G. Vision-Based 3D Trajectory Tracking for

Unknown Environments. Robotics, IEEE Transactions on, v. 22, n. 1, p. 119–136, 2006.

SALVI, J. et al. Visual SLAM for underwater vehicles using video velocity log and natural

landmarks. Oceans 2008, p. 1–6, 2008.

Page 139: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

108

SAMPAIO, R. C. B. et al. FVMS : A Novel SiL Approach on the Evaluation of Controllers

for Autonomous MAVAerospace Conference, 2013 IEEE. Anais...2013

SANDERS, JASON, AND E. K. CUDA by example: an introduction to general-purpose

GPU programming. [s.l.] Addison-Wesley Professional, 2010.

SANTANA, A. M.; MEDEIROS, A. A. D. DE. Localização e Mapeamento Simultâneos de

Ambientes Planos Usando Visão Monocular e Representação Híbrida do Ambiente . André

Macêdo Santana. [s.l.] UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

CENTRO, 2011.

SANTIAGO, G. S. Navegação Cooperativa de um Robô Humanóide e um Robô com Rodas

usando Informação Visual. [s.l.] UFRN, 2008.

SANTOS, G. L. Localização de Robôs Móveis Autônomos Utilizando Fusão Sensorial de

Odometria e Visão Monocular. [s.l.] UFRN, 2010.

SILVEIRA, G. Uma revisao das tecnicas de SLAM visual. CTI, 2010.

SILVEIRA, G.; MALIS, E. Real-time Visual Tracking under Arbitrary Illumination

ChangesComputer Vision and Pattern Recognition. CVPR’07. Conference on. IEEE.

Anais...2007

SMITH, R.; SELF, M.; CHEESEMAN, P. Estimating Uncertain Spatial Relationships in

Robotics. Springer New York, p. 167–193, 1990.

SOUZA, R. et al. A restful platform for networked robotics. 2013 10th International

Conference on Ubiquitous Robots and Ambient Intelligence (URAI), p. 423–428, out. 2013.

STRASDAT, H.; MONTIEL, J. M. M.; DAVISON, A. J. Scale Drift-Aware Large Scale

Monocular SLAM. Robotics: Science and Systems, v. 2 N.3, p. 5–13, 2010.

SUJAN, V. A.; MEGGIOLARO, M. A.; BELO, F. A. A New Technique In Mobile Robot

Simultaneous Localization. Revista Controle & Automação, v. 17, n. 2, 2006.

Page 140: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

109

TAVARES, D. M. Ferramentas Computacionais para Robôs Móveis Autônomos. [s.l.]

UNICAMP, 2004.

VOIGT, R. Hardware Features Ensenso N10 – Stereo 3D Camera. Disponível em:

<http://www.ensenso.com/>. Acesso em: 30 jan. 2015.

WANG, W.; XIE, G. Online High-Precision Probabilistic Localization of Robotic Fish Using

Visual and Inertial Cues. IEEE Transactions on Industrial Electronics, v. 62, n. 2, p. 1113–

1124, fev. 2015.

WEI, L.; CAPPELLE, C.; RUICHEK, Y. Unscented information filter based multi-sensor data

fusion using stereo camera, laser range finder and GPS receiver for vehicle localization. 2011

14th International IEEE Conference on Intelligent Transportation Systems (ITSC), p.

1923–1928, out. 2011.

WEI, L.; CAPPELLE, C.; RUICHEK, Y. Horizontal/vertical LRFs and GIS maps aided vehicle

localization in urban environment. 16th International IEEE Conference on Intelligent

Transportation Systems (ITSC 2013), n. Itsc, p. 809–814, out. 2013a.

WEI, L.; CAPPELLE, C.; RUICHEK, Y. Camera/Laser/GPS Fusion Method for Vehicle

Positioning Under Extended NIS-Based Sensor Validation. IEEE Transactions on

Instrumentation and Measurement, v. 62, n. 11, p. 3110–3122, nov. 2013b.

ZHU, Z. et al. High-Precision Localization Using Visual Landmarks Fused with Range

DataComputer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on. Anais...2011

Page 141: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

110

Apêndice: Algoritmos

Algoritmo 0 Identificação do ponto de interesse SURF

6. Integração da imagem

7. Análise de espaço e escala

8. Localização de ponto de interesse

9. Orientação do ponto

10. Construção do descritor

Algoritmo 1 RANSAC

1. Selecionar o conjunto de pontos mínimos para determinar o modelo.

2. Estimar o modelo.

3. Reprojeta o conjunto de pontos através do modelo e determinar as correlações com a

tolerância preestabelecida 𝜖.

4. Se os pontos correlacionados não superam o limite preestabelecido 𝜏, o modelo é

recalculado filtrando o conjunto de pontos.

5. Novamente são executados os passos 1 até 5 (Maximo N vezes)

Algoritmo 2 Filtro de Profundidade

1. Selecionar os pontos mínimos para determinar o modelo.

2. Estimar o modelo.

3. Determinar quantos pontos são correlacionados com

Page 142: UNIVERSIDADE ESTADUAL DE CAMPINASrepositorio.unicamp.br/jspui/bitstream/REPOSIP/265760/1/DelgadoV… · pontos com o algoritmo sift sÃo apresentados. (fonte: (guizilini, 2008)) .....18

111

Apêndice: Publicações realizadas

DELGADO, J. V; KURKA, PAULO R; “The use of a Graphic Processing Unit (GPU) in a

Real Time Visual Odometry Application”. In: 45th

IEEE/IFIP International Conference on

Dependable Systems and Networks (DSN 2015), Rio de Janeiro, June 2015, Brazil.

KURKA, P. R. G. ; DELGADO, J. V. ; MINGOTO, C. R. ; ROJAS, O. E. R. . “Automatic

estimation of camera parameters from a solid calibration box”; Journal of the Brazilian Society of

Mechanical Sciences and Engineering , v. 35, p. 93-101, 2013.

DELGADO, J. V ; KURKA, P. R. G. ; FERREIRA, L. O. S. . “Processing speed test of

Stereoscopic vSLAM in an Indoors environment. In: International Conference on Indoor

Positioning and Indoor Navigation”, 2013, Montbéliard. IPIN 2013 Proceedings. France:

Sciencesconf, 2013. v. 1. p. 119-122.

KURKA, P.; DIOGENES, L.; PEREIRA, F.; DELGADO, J. “Assessment Of Uncertainties

In The Control Of Traje Ctory Of A Robot Using Image Information”. In: Robocontrol 2012,

2012, Bauru, SP. Workshop Robocontrol (UNESP. Baurú), 2012. p. 1-9.

DELGADO, V. JAIME ; KURKA, PAULO R. ; CARDOZO, ELERI . “Visual odometry in

mobile robots”. In: 2011 IEEE IX Latin American Robotics Symposium and IEEE Colombian

Conference on Automatic Control (LARC), 2011, Bogota. IX Latin American Robotics

Symposium and IEEE Colombian Conference on Automatic Control, 2011 IEEE. p. 1-4.