Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE DO RIO GRANDE DO NORTEFEDERAL
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
PROGRAMA DE PÓS-GRADUAÇÃO EM
ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO
Navegação Cooperativa de um RobôHumanóide e um Robô com Rodas usando
Informação Visual
Gutemberg Santos Santiago
Orientador: Prof. Dr. Adelardo Adelino Dantas de Medeiros
Dissertação de Mestradoapresentada aoPrograma de Pós-Graduação em EngenhariaElétrica e de Computação da UFRN (área deconcentração: Engenharia de Computação)como parte dos requisitos para obtenção dotítulo de Mestre em Ciências.
Natal, RN, maio de 2008
.
Divisão de Serviços Técnicos
Catalogação da Publicação na Fonte. UFRN / Biblioteca Central Zila Mamede
Santiago, Gutemberg Santos.Navegação cooperativa de um robô humanóide e um robô com rodas usando
informação visual / Gutemberg Santos Santiago - Natal, RN, 2008.61. f.: il.
Orientador: Adelardo Adelino Dantas de Medeiros
Dissertação (Mestrado) - Universidade Federal do Rio Grandedo Norte. Pro-grama de Pós-Graduação em Engenharia Elétrica e de Computação.
1. Robôs - Dissertação. 2. Cooperação multi-robôs - Dissertação. 3. SLAMvisual - Dissertação. 4. Fusão sensorial - Dissertação. 5. Filtro de Kalman- Dissertação. 6. Calibração de câmera - Dissertação. 7. Transformadora deHough - Dissertação. I. Medeiros, Adelardo Adelino Dantas.II. Título.
RN/UF/BCZM CDU 621.865.8(043.2)
.
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
PROGRAMA DE PÓS-GRADUAÇÃO EM
ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO
Navegação Cooperativa de um RobôHumanóide e um Robô com Rodas usando
Informação Visual
Gutemberg Santos Santiago
Dissertação de Mestrado aprovada em 30 de maio de 2008 pela banca examinadora com-posta pelos seguintes membros:
Prof. Dr. Adelardo Adelino Dantas de Medeiros (orientador). . . . . . . . . . UFRN
Prof. Dr. Pablo Javier Alsina (examinador interno) . . . . . . .. . . . . . . . . . . . UFRN
Prof. Dr. Diogo Pinheiro Fernandes Pedrosa (examinador externo) . . . . UERN
.
Aos meus pais,que em meio carinho e atenção, sempreestiveram preocupados, em todos os mo-mentos da minha vida, com a minha for-mação humana e acadêmica.
Agradecimentos
Agradeço a Deus pela constante presença, mostrando-me os caminhos da verdade e davida.
Aos meus pais, pelo carinho, atenção, confiança, incentivo epor tudo que têm feito pormim.
Ao Professor Adelardo Medeiros pela sua orientação, paciência, ensinamentos, conselhose pelo amadurecimento científico provido.
Ao Professor Pablo Alsina pelo apoio e presença em todos os momentos auxiliando odesenvolvimento do trabalho.
A Judson pelas horas de conversa e cumplicidade em todos esses anos de desenvolvimentocientífico e de vida.
A todos os meus colegas de laboratório. Em especial a André, Marcelo, Djalma, Len-nedy, Filipe, Ellon, Fábio, Márcio e Elber, que contribuíram diretamente na realização dotrabalho.
Enfim, a todos que de uma maneira ou de outra contribuíram paraque eu pudesse concluiresse trabalho, o meu muito obrigado!
Resumo
Este trabalho apresenta um sistema de navegação cooperativa de um robô humanóide
e um robô com rodas usando informação visual, com o objetivo de efetuar a navega-
ção do robô humanóide não instrumentado utilizando-se das informações obtidas do robô
com rodas instrumentado. Apesar do humanóide não possuir sensores para sua navega-
ção, pode ser remotamente controlado por sinal infravermelho. Assim, o robô com rodas
pode controlar o humanóide posicionando-se atrás dele e, através de informação visual,
localizá-lo e navegá-lo. A localização do robô com rodas é obtida fundindo-se informa-
ções de odometria e detecção de marcos utilizando o filtro de Kalman estendido. Os mar-
cos são detectados visualmente, e suas características sãoextraídas pelo o processamento
da imagem. As informações das características da imagem sãoutilizadas diretamente no
filtro de Kalman estendido. Assim, enquanto o robô com rodas localiza e navega o hu-
manóide, realiza também sua localização e o mapeamento do ambiente simultaneamente
(SLAM). A navegação é realizada através de algoritmos heurísticos baseados nos erros
de pose entre a pose dos robôs e a pose desejada para cada robô.A principal contribui-
ção desse trabalho foi a implementação de um sistema de navegação cooperativa entre
dois robôs baseados em informação visual, que pode ser estendido para outras aplicações
robóticas, dado a possibilidade de se controlar robôs sem interferir em seu hardware, ou
acoplar dispositivos de comunicação.
Palavras-chave: Cooperação multi-robôs, SLAM visual, fusão sensorial, filtro de
Kalman, calibração de câmera, transformada de Hough.
Abstract
This work presents a cooperative navigation system of a humanoid robot and a wheeled
robot using visual information, aiming to navigate the non-instrumented humanoid robot
using information obtained from the instrumented wheeled robot. Despite the humanoid
not having sensors to its navigation, it can be remotely controlled by infra-red signals.
Thus, the wheeled robot can control the humanoid positioning itself behind him and,
through visual information, find it and navigate it. The location of the wheeled robot
is obtained merging information from odometers and from landmarks detection, using
the Extended Kalman Filter. The marks are visually detected, and their features are ex-
tracted by image processing. Parameters obtained by image processing are directly used
in the Extended Kalman Filter. Thus, while the wheeled robotlocates and navigates the
humanoid, it also simultaneously calculates its own location and maps the environment
(SLAM). The navigation is done through heuristic algorithms based on errors between
the actual and desired pose for each robot. The main contribution of this work was the
implementation of a cooperative navigation system for two robots based on visual in-
formation, which can be extended to other robotic applications, as the ability to control
robots without interfering on its hardware, or attaching communication devices.
Keywords: Cooperative robotics, visual SLAM, sensor fusion, Kalman filter, camera
calibration, Hough transformation.
Sumário
Sumário i
Lista de Figuras iii
Lista de Tabelas v
1 Introdução 1
1.1 Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Sistemas Utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.1 Robô com Rodas . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.2 Robô Humanóide . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.3 Plataforma Computacional . . . . . . . . . . . . . . . . . . . . . 6
1.5 SLAM Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Organização do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Ferramentas 9
2.1 Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Filtro de Kalman Estendido . . . . . . . . . . . . . . . . . . . . . . . . .10
2.3 Transformada de Hough . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 Calibração de Câmera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Método de Zhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6 Método P4P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 SLAM Visual 23
3.1 Descrição do Sistema de SLAM . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Filtragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.1 Filtro de Kalman Estendido . . . . . . . . . . . . . . . . . . . . 25
3.2.2 EKF-SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
i
3.3 Modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Fase de Predição: modelo do processo . . . . . . . . . . . . . . .26
3.3.2 Fase de Atualização: modelo do sensor . . . . . . . . . . . . . .29
3.3.3 Correspondência . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4 Processamento da Imagem . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.1 Detecção das Linhas . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.2 De Imagens para o Mundo . . . . . . . . . . . . . . . . . . . . . 33
3.5 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4 Navegação Cooperativa 37
4.1 Descrição do Sistema de Navegação . . . . . . . . . . . . . . . . . . .. 37
4.2 Processamento da Imagem . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3 Determinação dos Pontos do Padrão de Calibração . . . . . . . .. . . . 40
4.4 Determinação dos Vértices do Losango . . . . . . . . . . . . . . . .. . 41
4.5 Movimentação Cooperativa . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.6 Movimentação do Robô Humanóide . . . . . . . . . . . . . . . . . . . . 45
4.7 Movimentação do Robô com Rodas . . . . . . . . . . . . . . . . . . . . 47
4.8 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5 Conclusões e Perspectivas 57
Referências bibliográficas 59
Lista de Figuras
1.1 RobôKarel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 RobôRobosapien. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1 Parâmetros de uma representação normal de uma retar . . . . . . . . . . 12
2.2 Representação gráfica da transformada de Hough . . . . . . . . .. . . . 13
2.3 Problema da projeção 2D . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Transformação entre o referencial da câmera e o referencial da imagem . 15
3.1 Modelagem do sistema de SLAM para o robô com rodas . . . . . . .. . 24
3.2 Variáveis da cinemática do modelo . . . . . . . . . . . . . . . . . . .. . 27
3.3 Parâmetros da retaρ e α . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4 Sistema de coordenadas fixo e móvel . . . . . . . . . . . . . . . . . . .. 30
3.5 Detecção de linhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.6 O robô Karel e o padrão de calibração . . . . . . . . . . . . . . . . . .. 34
3.7 Trajetória executada . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
3.8 Linhas obtidas através do EKF-SLAM . . . . . . . . . . . . . . . . . .. 35
4.1 Modelagem do sistema de navegação cooperativa . . . . . . . .. . . . . 38
4.2 Padrão utilizado na calibração intrínseca da câmera . . .. . . . . . . . . 41
4.3 Detecção de pontos pertencentes às arestas do losango . .. . . . . . . . 42
4.4 Robô com rodas seguindo robô humanóide . . . . . . . . . . . . . . . .. 44
4.5 Restrição visual para o seguimento do robô humanóide . . . .. . . . . . 45
4.6 Estados do sistema de navegação do humanóide. . . . . . . . . .. . . . . 46
4.7 Movimentação do humanóide . . . . . . . . . . . . . . . . . . . . . . . . 47
4.8 Situação de ângulo crítico na movimentação da câmera . . .. . . . . . . 48
4.9 Padrão utilizado no processo de calibração . . . . . . . . . . .. . . . . . 49
4.10 Detecção das retas e seus pontos de interseções . . . . . . .. . . . . . . 49
4.11 Sistema de navegação cooperativa . . . . . . . . . . . . . . . . . .. . . 50
4.12 Imagem da obtenção dos quatro pontos do marco . . . . . . . . .. . . . 50
4.13 Interfacegráfica dosoftwarede gerenciamento do sistema de navegação . 50
iii
4.14 Representação gráfica do robô humanóide e do robô com rodas . . . . . . 52
4.15 Navegação cooperativa em linha reta . . . . . . . . . . . . . . . .. . . . 52
4.16 Navegação cooperativa em linha reta: humanóide, posição x . . . . . . . 53
4.17 Navegação cooperativa em linha reta: humanóide, posição y . . . . . . . 53
4.18 Navegação cooperativa em linha reta: humanóide, posição angular . . . . 54
4.19 Navegação cooperativa em linha reta: robô com rodas, posição x . . . . . 54
4.20 Navegação cooperativa em linha reta: robô com rodas, posição y . . . . . 55
4.21 Navegação cooperativa em linha reta: robô com rodas, posição angular . . 55
4.22 Navegação cooperativa realizando curva. . . . . . . . . . . .. . . . . . . 56
Lista de Tabelas
3.1 Lista de símbolos para as equações do EKF . . . . . . . . . . . . . .. . 25
3.2 Resultados experimentais do SLAM . . . . . . . . . . . . . . . . . . . .35
4.1 Detecção dos pontos pertencentes às arestas do losango .. . . . . . . . . 42
4.2 Detecção das arestas do losango . . . . . . . . . . . . . . . . . . . . .. 43
v
Capítulo 1
Introdução
“Aprendemos a voar como pássaros, e a nadar como peixes, masnão aprendemos a conviver como irmãos”.
Martin Luther King, (1929 - 1968)
A necessidade de tornar robôs cada vez mais capazes de interagir com o ambiente
em que se encontram tem motivado o uso de informação visual. As imagens obtidas por
câmeras acopladas a robôs são ricas de informação, que se bemextraídas provêem ao
robô a capacidade de realização de tarefas que outros tipos de sensores não proveriam.
A informação visual pode fornecer ao robô dados para soluçãode problemas de forma
a possibilitar que um robô realize diversas tarefas. Problemas clássicos da robótica como
localização, navegação, reconhecimento de objetos, interface com humanos podem ser
solucionados com o auxílio de um sistema de visão. Para o casoda localização e navega-
ção de robôs, vários trabalhos científicos têm abordado o problema propondo diferentes
soluções.
A localização de um robô consiste na capacidade do robô navegar por um determi-
nado ambiente e poder responder pela sua posição em relação ao ambiente em todos os
momentos [Borenstein & Feng 1996]. Esse problema é geralmente resolvido com a uti-
lização das informações obtidas de diversos sensores, dadoa dificuldade de obter uma
informação sensorial precisa, por exemplo por problemas com a imprecisão da odometria
do robô.
Além da dificuldade de obter informações sensoriais precisas, a localização de um
robô é um processo caro dentre o processamento que um robô precisa executar, e que vai
competir com recursos disponíveis na realização de uma tarefa. Então para que um robô
móvel seja capaz de obter as informações de localização ele tem que estar equipado com
diversos sensores e de uma capacidade de mínima de processamento de informação.
Assim para um robô ser capaz de se localizar é necessário provê-lo de uma grande
2 CAPÍTULO 1. INTRODUÇÃO
carga de instrumentação. Mas dependendo da aplicação em queo robô será utilizado,
provê-lo de uma grande instrumentação inviabiliza os propósitos da aplicação em si. Por
exemplo, é difícil instrumentar um robô que por características da aplicação tem que ser
de tamanho reduzido.
A utilização de um sistema de localização relativa se configura como uma solução
para o problema da localização de um robô não instrumentado,pois permite realizar a
localização de um robô não instrumentado a partir da localização já sabida de um robô
instrumentado. Essa idéia permite que o robô não instrumentado realize uma tarefa de-
terminada sem ter a carga de processamento da localização que é realizada por um outro
robô.
A localização relativa pode ser realizada utilizando-se a informação visual. Através
da utilização de marcas visuais é possível determinar a relação existente entre a marca
e o robô cuja localização já é conhecida. Se essa marca for parte constituinte do robô
não instrumentado, é possível localizar o robô não instrumentado, baseando-se apenas na
informação visual obtida.
Com as informações de localização de cada robô, o robô instrumentado tem a capa-
cidade de navegar o robô não instrumentado através do envio de comandos para a sua
movimentação. Assim os robôs podem realizar uma navegação cooperativa baseando-se
nas informações visuais obtidas do robô não instrumentado enos comandos gerados pelo
robô instrumentado.
Na literatura existem diferentes casos que utilizam detecção de marcas e marcos na-
turais para a realização da navegação de robôs. Jang et al. (2002) utilizaram como marco
a figura de um quadrado dividido horizontalmente em dois retângulos coloridos. Launay
et al. (2002) usaram as lâmpadas do teto de um corredor para localizar o robô. Jim et al.
(2003) usaram uma câmera externa e determinaram, na imagem,a forma geométrica do
robô. Bezerra (2004) utiliza como marcos naturais as linhas do piso que compõem o am-
biente e identifica-as utilizando a transformada de Hough [Hough 1962]. Nogueira (2005)
utiliza uma marca em formato de losango em um robô humanóide elocaliza-o utilizando
o Método P4P [Kamata et al. 1992]. Santana (2007) simulou um sistema de localização
e um sistema de planejamento de caminho para um sistema robótico formado por um hu-
manóide não instrumentado e um robô com rodas. O sistema de localização é baseado
em filtro de Kalman e em informação visual. O sistema de planejamento de caminho é
baseado no algoritmo A* [P. E. Hart & Raphael 1968].
Neste trabalho são obtidos dois tipos de informação visual diferentes: a informação vi-
sual obtida da marca para a realização da localização relativa do robô não instrumentado;
e a informação visual obtida de marcos visuais naturais do ambiente para a realização da
1.1. PROBLEMA 3
localização absoluta do robô instrumentado.
As informações visuais obtidas de câmeras do robô instrumentado provêem a capa-
cidade de realizar uma navegação cooperativa entre os dois robôs, de modo que o robô
instrumentado navega o robô não instrumentado baseando-senas informações visuais ob-
tidas. Com a informação visual obtida dos marcos naturais o robô instrumentado obtém
sua localização e realiza o mapeamento do ambiente simultaneamente (SLAM -Simulta-
neous Localization and Mapping). Com a informação visual obtida da marca do robô não
instrumentado, o robô instrumentado obtém a localização relativa do robô não instrumen-
tado e realiza a navegação cooperativa dos dois robôs.
1.1 Problema
A utilização de robôs desprovidos de instrumentação é limitada. Robôs que por defini-
ção de uso, concepção e construção são desenvolvidos embarcando-se pouca instrumen-
tação tornam sua capacidade de realização de tarefas limitada. Esses robôs geralmente
têm restringida a sua aplicabilidade e também a sua possibilidade de interagir com o am-
biente, com outros dispositivos e robôs. A utilização de informações visuais de um robô
não instrumentado permite sua interação com o ambiente e a realização de tarefas que não
seriam possíveis apenas com a sua instrumentação embarcada.
1.2 Objetivo
O objetivo desse trabalho é navegar um robô humanóide não instrumentado, utilizando-
se de um robô com rodas instrumentado, através de informações visuais, sendo o robô com
rodas capaz de se localizar e mapear simultaneamente o ambiente em que se locomove.
Os objetivos específicos são:
• realizar uma tarefa de SLAM com o robô com rodas a partir de informações visuais
obtidas de marcos do ambiente.
• navegar o robô não instrumentado a partir de movimentações básicas como seguir
em linha reta e fazer curva.
1.3 Metodologia
A metodologia utilizada para a tarefa de SLAM foi a fusão da informação da odo-
metria e de marcos naturais do ambiente para a localização dorobô com rodas. Os mar-
4 CAPÍTULO 1. INTRODUÇÃO
cos utilizados foram as linhas encontradas no chão que são definidas pelo encontro dos
blocos utilizados no piso. Essas linhas são captadas por umacâmera e são encontradas
utilizando-se a transformada de Hough. As linhas encontradas são transformadas por um
processo de homografia de forma a corresponderem a distâncias e ângulos referentes ao
robô. Essas linhas são comparadas com as linhas previamenteencontradas tornando o
robô capaz de se localizar e mapear o ambiente.
A metodologia utilizada para a tarefa de navegação cooperativa foi a utilização de
uma marca no robô humanóide não instrumentado de modo que o robô com rodas ins-
trumentado possa localizá-lo através da utilização de uma câmera. Quatro pontos são
obtidos da marca de modo que, dessa forma, é possível calcular a posição do robô huma-
nóide referente ao robô com rodas. O método utilizado nesse procedimento é o método
de P4P [Kamata et al. 1992]. A realização do método do P4P é dependente da calibração
intrínseca da câmera que é realizada pelo método de Zhang [Zhang 2000].
Assim o robô com rodas utiliza duas câmeras de modo que uma é utilizada no processo
de SLAM e a outra é utilizada no processo da navegação cooperativa. O robô com rodas
realiza a tarefa de cooperação de forma que a marca não é perdida, enquanto está sendo
processada.
1.4 Sistemas Utilizados
No desenvolvimento do trabalho foram utilizados dois sistemas robóticos, um robô
com rodas e um robô humanóide, e um sistema computacional para o acionamento do
robô com rodas e processamento das imagens.
1.4.1 Robô com Rodas
O robô com rodas utilizado é o robôKarel1, desenvolvido no Laboratório de Robó-
tica da UFRN (Figura 1.1).Karel é um robô com duas rodas, acionamento diferencial,
controlado por computador, equipado com duas câmeras Logitech QuickCam Pro 5000
[Logitech 2008] fixadas em um sistema de movimentação pan-tilt; e um dispositivo de
comunicação infravermelho IRTrans USB [IRTrans 2008]. Os comandos para o aciona-
mento e leitura de dados do robô são enviados via barramento USB (Universal Serial Bus)
para barramento CAN (Controller Area Network) interno. Na rede CAN estão conectados
as placas de acionamento dos motores referentes a cada roda,e a placa para o acionamento
1Uma homenagem a KarelCapek, um escritor Checo que primeiro usou publicamente a palavra “robô”em 1921.
1.4. SISTEMAS UTILIZADOS 5
Figura 1.1: RobôKarel.
dos servo-motores do sistema de movimentação pan-tilt. Nasplacas de acionamento dos
motores estão embarcados controladores PI de velocidade. Ocontrole embarcado é base-
ado na informação de odometria, obtida pelosencodersfixados nas rodas.
O controle de posição do robô utiliza uma estratégia associada a uma mudança nas
variáveis de controladas do robô, dex, y e θ paras (representando o deslocamento linear
do robô) eθ, e na representação em coordenadas polares do modelo cinemático do robô.
O controle de posição do robô utiliza um controlador PI [Vieira 2005].
1.4.2 Robô Humanóide
O robô humanóide utilizado é oRobosapienda empresaWowWee[WowWee 2008]
(Figura 1.2). Ele é acionado por controle remoto infravermelho e possui quatro formas
de movimentação: andar para frente, andar para trás, girar para a direita e girar para a
esquerda. Além disso, ele é capaz de movimentar os braços e controlar uma garra. O
robô humanóide também é equipado com um conjunto de quatro sensores de toque (nas
garras e nos pés), além de um sensor auditivo.
O Robosapien foi projetado por Mark Tilden, um projetista robótico que já trabalhou
para a NASA, a DARPA e a JPL pelo Los Alamos National Laboratory. Foi ele quem
desenvolveu a técnica de robôs biomórficos [Lewis & Simó 2001] em 1988. O Robo-
sapien é um dos primeiros robôs de baixo custo disponível comercialmente, baseado no
6 CAPÍTULO 1. INTRODUÇÃO
Figura 1.2: RobôRobosapien.
princípio biomórfico, o qual tem como objetivo imitar mecanismos, sensores, estruturas
computacionais e metodologias utilizadas por animais.
1.4.3 Plataforma Computacional
O sistema de navegação cooperativa foi implementado na plataforma computacional
Linux, utilizando-se a linguagem de programação C++. A comunicação com as câme-
ras é realizada através da API de captura de vídeoVideo4Linux, através dodriver USB
Video Class. O sistema de envio de comando infravermelho é realizado pelo dispositivo
IRTrans através de uma conexão viasocketcom o servidor do dispositivo. Osoftware
de gerenciamento do sistema de navegação utiliza SDL [SDL 2008] para sua interface
gráfica.
1.5 SLAM Visual
O problema da localização e do mapeamento simultâneos (SLAM) consiste em um
robô móvel ser capaz de explorar um ambiente, utilizando-sede seus sensores embarca-
dos, conhecer o ambiente, interpretar a cena, construir um mapa e se localizar relativo a
1.5. SLAM VISUAL 7
esse mapa. A representação desses mapas pode ser feita de diversas formas, tais como
grades de ocupação e mapas de características. Esse trabalho se interessa pela segunda
representação.
Devido aos avanços da visão computacional e à diminuição de preço das câmeras,
SLAM baseados em visão tem se tornado uma área bastante explorada [Gonçalves et al.
2005, Mouragnon et al. 2006, Jensfelt et al. 2006]. No trabalho de Folkesson et al. (2005),
linhas e pontos são extraídos por processamento de imagem e usados para resolver pro-
blemas de SLAM. Chen & Jagath (2006) propuseram um método de SLAM com duas
fases. Primeiramente, a informação geométrica de alto nível, tais como linhas e triân-
gulos, é incorporada ao filtro de Kalman estendido (EKF) parareforçar a robustez; após
isso, uma abordagem de medição visual, baseada em uma geometria de múltiplas visões,
é empregada para inicializar novos pontos característicos.
Uma abordagem clássica para o SLAM é usar o filtro de Kalman estendido (EKF)
[Dissanayake et al. 2001, Castellanos et al. 2001]. Esses algoritmos de SLAM geral-
mente requerem um modelo de sensor que descreva a observaçãoesperada do robô dada
sua posição. Davison (2003) usa uma câmera, assumindo um modelo de sensor de ruído
gaussiano tal que a covariância é determinada pela resolução da imagem. Zucchelli &
Košecká (2001) discutem como propagar a incerteza dos parâmetros intrínsecos da câ-
mera na matriz de covariância que representa a característica ruidosa de posição no espaço
3D. Wu & Zhang (2007) apresentam um trabalho cujo foco principal é como modelar a
incerteza do sensor e construir um modelo probabilístico decâmera.
Os principais desafios em SLAM visual são: a) como detectar características em ima-
gens; b) como reconhecer que uma característica detectada éou não a mesma que uma
detectada previamente; c) como decidir se uma nova característica detectada será ou não
adotada como uma nova marca; (d) como calcular a posição 3D demarcas a partir de
imagens 2D; e (e) como estimar a incerteza associada com os valores calculados. Porém,
em situações particulares, às vezes é possível desenvolveruma estratégia específica para
superar essas dificuldades.
Esse trabalho apresenta uma técnica de SLAM adequada para ambientes planos e fe-
chados com linhas presentes no chão. Esse não é um pré-requisito tão restritivo, já que
esse é o caso em muitos ambientes. Usando linhas existentes como marcas, a comple-
xidade total do SLAM é reduzida, já que: a) linhas podem ser facilmente detectadas em
imagens; b) linhas no chão são geralmente igualmente bem espaçadas, então a possibili-
dade de confusão é reduzida; c) como o número de linhas na imagem não é tão grande,
cada nova linha detectada pode ser definida como uma nova marca; d) um chão plano é
uma superfície 2D e assim existe uma matriz de conversão constante e fácil de calcular
8 CAPÍTULO 1. INTRODUÇÃO
(uma homografia) entre o plano da imagem e o plano do chão, sem incertezas a respeito
da informação 3D de profundidade dos pontos; e e) depois do processamento, o número
de pixelsna imagem que pertencem à linha é uma boa medida de confiança damarca
detectada.
1.6 Organização do Texto
O capítuloIntroduçãomotivou e justificou a realização do trabalho, apresentandoos
sistemas utilizados no seu desenvolvimento. O CapítuloFerramentasapresenta a base
teórica das ferramentas utilizadas no desenvolvimento do trabalho. O CapítuloSLAM
Visualapresenta uma técnica para SLAM baseada no filtro de Kalman estendido (EKF)
para navegar um robô em um ambienteindoor usando odometria e linhas pré-existentes
no piso como marcos. O CapítuloNavegação Cooperativaapresenta um método de nave-
gação cooperativa entre o robô com rodas instrumentadoKarel e o robô humanóide não
instrumentadoRobosapien. O CapítuloConclusões e Perspectivasconclui o trabalho dis-
sertando sobre os resultados obtidos e propondo trabalhos futuros baseados no trabalho
apresentado.
Capítulo 2
Ferramentas
“Se eu tenho visto mais adiante foi por estar sustentado noombro de Gigantes”
Sir Isaac Newton, 1675
Nesse Capítulo é apresentada a base teórica das ferramentas utilizadas no desenvolvi-
mento do trabalho. Dentre as ferramentas está ofiltro de Kalman, utilizado para realizar
a fusão dos dados de odometria e marcos do ambiente de modo a realizar o SLAM; a
transformada de Houghutilizada para encontrar na imagem as retas que serão utilizadas
como marcos do ambiente; ométodo de Zhang, utilizado para encontrar a homografia e os
parâmetros intrínsecos da câmera; e ométodo P4Putilizado para encontrar os parâmetros
extrínsecos do sistema.
2.1 Filtro de Kalman
O filtro de Kalman é um processo de estimação recursiva ótimo para solução de
problemas lineares relacionados à filtragem de dados, onde oerro quadrático é mini-
mizado [Kalman 1960]. Através da observação da variável denominada “variável de
observação” outra variável, não observável, denominada “variável de estado” pode ser
estimada.
A modelagem tradicional do filtro de Kalman pressupõe que o sistema seja linear e
descrito pelo modelo de equações do Sistema 2.1:
st = Atst−1 +Btut−1 + γt
zt = Ctst +δt
(2.1)
ondes∈ Rn é o vetor de estados;u ∈ Rl é o vetor das entradas de controle;z∈ Rm é o
vetor de medições; a matrizn× n, A, é a matriz de transição de estados;B, n× l , é a
10 CAPÍTULO 2. FERRAMENTAS
matriz de coeficientes de entrada; a matrizC, m× n, é a matriz de observação;γ ∈ Rn
representa o vetor de ruídos do processo eδ ∈Rm o vetor de erros de medição. Os índices
t e t−1 representam os instantes de tempo atual e anterior respectivamente.
O filtro opera em modo de predição-atualização levando em consideração as proprie-
dades estatísticas do ruído. Um modelo interno do sistema é usado para atualização e um
esquema de realimentação realiza as medições. As etapas de predição e atualização para
o filtro de Kalman podem ser descritas pelos Sistemas 2.2 e 2.3respectivamente.
µt = Atµt−1 +Btut−1
Σt = AtΣt−1ATt +Rt
(2.2)
K t = ΣtCTt (Ct ΣtCT
t +Qt)−1
µt = µt +K t(zt−Ct µt)
Σt = (I −K tCt)Σt
(2.3)
O filtro de Kalman representa o vetor de estadosst no tempot por sua médiaµt e
covariânciaΣt . As matrizesR, n×n, eQ, l × l , são as matrizes de covariância dos ruídos
de processo (γ) e medição (δ) respectivamente e a matrizK , n×m, representa o ganho do
filtro.
A partir da especificação matemática, um algoritmo para o filtro de Kalman é apre-
sentado na Listagem 1 [Thrun et al. 2005].
Algoritmo 1 Filtro de Kalman.01: FK(µt−1,Σt−1,ut ,zt)02: µt = Atµt−1 +Btut−1
03: Σt = AtΣt−1ATt +Rt
04: Kt = ΣtCTt (Ct ΣtCT
t +Qt)−1
05: µt = µt +K t(zt−Ct µt)06: Σt = (I −K tCt)Σt
07: return(µt ,Σt)
2.2 Filtro de Kalman Estendido
Uma das extensões do filtro de Kalman aplicado a sistemas não lineares é o filtro de
Kalman estendido (EKF). A idéia do EKF é linearizar as funções em torno da estimação
2.2. FILTRO DE KALMAN ESTENDIDO 11
corrente usando as derivadas parciais do processo e das funções de medição para calcular
as estimações, mesmo em face a relações não-lineares.
O modelo do sistema para o EKF é dado pelo Sistema 2.4:
st = g(ut−1,st−1)+ γt
zt = h(st)+δt
(2.4)
ondeg(ut−1,st−1) é uma função não-linear que representa o modelo do sistema, eh(st) é
uma função não-linear que representa o modelo das medições.Suas etapas de predição e
atualização podem ser obtidas pelos Sistemas de Equações 2.5 e 2.6 respectivamente.
µt = g(ut−1,µt−1)
Σt = GtΣt−1GTt +Rt
(2.5)
K t = ΣtHTt (Ht ΣtHT
t +Qt)−1
µt = µt +K t(zt−h(µt))
Σt = (I −K tHt)Σt
(2.6)
A matriz G, n×n, é o jacobiano que lineariza o modelo, eH, l ×n, o jacobiano que
lineariza o vetor de medições. Tais matrizes são definidas pelas Equações 2.7 e 2.8.
Gt =∂g(ut−1,st−1)
∂st−1(2.7)
Ht =∂h(st)
∂st(2.8)
Um algoritmo para o EKF é apresentado na Listagem 2 [Thrun et al. 2005].
Algoritmo 2 Filtro de Kalman Estendido.01: EKF(µt−1,Σt−1,ut ,zt)02: µt = g(ut−1,µt−1)03: Σt = GtΣt−1GT
t +Rt
04: Kt = ΣtHTt (Ht ΣtHT
t +Qt)−1
05: µt = µt +K t(zt−h(µt))06: Σt = (I −K tHt)Σt
07: return(µt ,Σt)
12 CAPÍTULO 2. FERRAMENTAS
Figura 2.1: Parâmetros de uma representação normal de uma reta r
2.3 Transformada de Hough
A transformada de Hough é um método utilizado para detectar,em uma imagem di-
gital, uma classe de formas geométricas conhecidas, que podem ser representadas como
uma curva paramétrica, como por exemplo, retas, círculos e elipses [Hough 1962]. A
transformada mapeia pontos entre o espaço cartesiano e o espaço de parâmetros no qual a
curva foi definida. Dessa maneira, os pontos que compõem a curva desejada são concen-
trados no espaço de parâmetros de acordo com as características que unem tais pontos no
espaço cartesiano.
Uma forma de parametrizar uma reta no plano X-Y é pela representação normal,
ρ = xcosθ+ysinθ, (2.9)
onde os parâmetrosρ e θ representam, respectivamente, o comprimento de um vetor que
passa pela origem do plano cartesiano e corta a reta com um ângulo de 90◦, e o ângulo
formado entre tal vetor e o eixo X (Figura 2.1).
Utilizando-se a transformada de Hough para detectar retas,a acumulação dos pontos
no espaço de parâmetros informará os parâmetros que definem areta, que passa por tais
pontos no espaço cartesiano. Assim, para cada ponto classificado como pertencente à
reta, calcular os parâmetros de todas as possíveis retas quepassam por tal ponto.
Na representação normal, cada ponto no espaço cartesiano gerará uma senóide no
espaço de parâmetros. Dessa forma, a interseção destas curvas senoidais fornecerá os
2.4. CALIBRAÇÃO DE CÂMERA 13
Figura 2.2: Representação gráfica da transformada de Hough: (a) Pontos em espaço car-tesiano; (b) Transformada de Hough utilizando apresentação normal para os pontos A, Be C e sua interseção
parâmetros que identificam uma reta que une os pontos no espaço cartesiano (Figura 2.2).
No caso de uma imagem digital, os pontos classificados como pertencentes à reta
poderão não estar colineares, devido a ruídos. Desta forma,não será possível encontrar
um único ponto de interseção entre todas as senóides no espaço de parâmetros. Deve-
se então encontrar o ponto que contém o maior número de senóides, achando assim a
equação da reta que comporta o maior número possível de pontos no espaço cartesiano.
Para a implementação do algoritmo, o espaço de parâmetros é discretizado. Se na
discretização poucos valores forem fornecidos, o algoritmo se torna mais rápido, porém
também se torna menos preciso. Portanto, para uma precisão aceitável, o algoritmo se
torna complexo, exigindo portanto certo esforço computacional.
2.4 Calibração de Câmera
A calibração de câmera é o processo realizado para que seja possível a obtenção de
informações métricas 3D a partir de uma imagem 2D [Zhang 2000]. Nesse processo
é obtido um conjunto de parâmetros que são utilizados para converter as informações
de uma imagem 2D em informações métricas 3D do ambiente. Esseprocesso pode ser
dividido em duas etapas de aquisições de parâmetros:
• Determinação dos seus parâmetros intrínsecos
Consiste em determinar as propriedades intrínsecas da câmera, como: distância
focal, centro de imagem, coeficiente de distorção das lentese fator de escala.
14 CAPÍTULO 2. FERRAMENTAS
Figura 2.3: Problema da projeção 2D
• Determinação dos seus parâmetros extrínsecos
Os parâmetros extrínsecos indicam a posição e a orientação da câmera com relação
ao sistema de coordenadas do mundo.
Suponha{R} o sistema de coordenadas 3D, em centímetros, do mundo,{C} o sistema
de coordenadas 3D, em centímetros, da câmera,{I} o sistema de coordenadas 2D, em
centímetros, da imagem, e{F} o sistema de coordenadas 2D, em pixels, da imagem.
Suponha um pontoP em relação ao sistema{R}, isto éRP = [ Rx Ry Rz ]T . Este
mesmo ponto pode ser expresso em relação ao sistema{C} como mostrado na Equa-
ção 2.10, ondeCP = [ Cx Cy Cz ]T é um ponto em relação ao referencial da câmera eCTR é a matriz de transformação entre{C} e{R}, ou a matriz de parâmetros extrínsecos.
[
CP 1]T
= CTR ·[
RP 1]T
(2.10)
Cada ponto no referencial do mundo tem uma representação no plano de projeção
da imagem, como mostrado na Figura 2.3. Utilizando o modelo de câmerapinhole, a
relação entre as coordenadas da imagemIP= [ Ix Iy ]T e as coordenadas da câmeraCP é
mostrada nas Equações 2.11 e 2.12, ondeλ é a distância focal da câmera em centímetros
(Figura 2.4).
Ix =λCz
Cx (2.11)
Iy =λCz
Cy (2.12)
Assim,
2.5. MÉTODO DE ZHANG 15
Figura 2.4: Transformação entre o referencial da câmera e o referencial da imagem
[
FP 1]T
= D ·[
IP 1]T
(2.13)
SendoFP = [ Fx Fy ]T um ponto no referencial{F}. A matriz D é a matriz de
conversão de centímetros para pixels, ou a matriz de parâmetros intrínsecos. A matrizD
possui o seguinte formato:
D =
a b c
0 d e
0 0 1
. (2.14)
A matriz de transformaçãoCTR da Equação 2.10 é matriz de parâmetros extrínsecos e
a matrizD da Equação 2.13 é a matriz de parâmetros intrínsecos.
2.5 Método de Zhang
O método de Zhang é utilizado para obter os parâmetros intrínsecos de uma câmera.
Ele também pode ser utilizado para obter uma homografia [Zhang 2000].
Neste método, é necessário que a câmera observe um padrão plano de, no mínimo,
duas posições diferentes. Porém, não é necessário que se tenha conhecimento sobre o
deslocamento realizado pela câmera entre uma observação e outra.
16 CAPÍTULO 2. FERRAMENTAS
Utilizando as Equações 2.10, 2.11, 2.12 e 2.13, tem-se:
Czλ 0 0
0Czλ 0
0 0 Cz
0 0 1
·D−1 ·[
FP 1]T
= CTR ·[
RP 1]T
(2.15)
Czλ 0 0
0Czλ 0
0 0 Cz
0 0 1
·D−1 ·
[
FP
1
]
=
[
r1 r2 r3 t
0 0 0 1
]
·
RxRyRz
1
. (2.16)
Se
D−1 =
a′ b′ c′
0 d′ e′
0 0 1
, (2.17)
então se pode obter:
Cza′
λCzb′
λCzc′
λ0 Czd′
λCze′
λ0 0 Cz
0 0 1
·
[
FP
1
]
=
[
r1 r2 r3 t
0 0 0 1
]
·
RxRyRz
1
. (2.18)
Já que a equação fornecida pela última linha das matrizes nãocontém informação, tais
linhas podem ser removidas:
Cza′
λCzb′
λCzc′
λ0 Czd′
λCze′
λ0 0 Cz
·
[
FP
1
]
=[
r1 r2 r3 t]
·
RxRyRz
1
(2.19)
Cz
a′
λb′
λc′
λ0 d′
λe′
λ0 0 1
·
[
FP
1
]
=[
r1 r2 r3 t]
·
RxRyRz
1
. (2.20)
2.5. MÉTODO DE ZHANG 17
Fazendo
A−1 =
a′
λb′
λc′
λ0 d′
λe′
λ0 0 1
, (2.21)
tem-se que
CzA−1 ·
[
FP
1
]
=[
r1 r2 r3 t]
·
RxRyRz
1
(2.22)
Cz
[
FP
1
]
= A·[
r1 r2 r3 t]
·
RxRyRz
1
, (2.23)
ondeA é a matriz de parâmetros intrínsecos, dada por:
A =
α γ Fx0
0 β Fy0
0 0 1
, (2.24)
onde(Fx0,Fy0) são as coordenadas do centro de imagem, em pixels,α e β são os fatores
de escala nos eixosx ey da imagem, respectivamente, eγ é a distorção do ângulo formado
pelos eixos.
Como o padrão adotado na calibração é plano, pode-se assumir sem perda de genera-
lidade queRz= 0, resultando em:
Cz
[
FP
1
]
= A·[
r1 r2 t]
·
RxRy
1
. (2.25)
Pode-se dizer, então, que um pontoRP′ = [ Rx Ry 1 ]T e sua imagemFP se relacio-
nam pela homografiaH:
q[
FP 1]T
= H[
RP′ 1]T
ondeH = A· [ r1 r2 t ] eq = Cz . (2.26)
A matriz H, portanto, pode ser calculada, a menos de um fator de escala,a partir da
Equação 2.26.
18 CAPÍTULO 2. FERRAMENTAS
SendoH = [ h1 h2 h3 ], tem-se:
[ h1 h2 h3 ] = sA[ r1 r2 t ] (2.27)
ondes é um fator de escala arbitrário. Sabendo quer1 e r2 são ortonormais, e sendoA−T
a abreviação para(A−1)T ou (AT)−1, pode-se deduzir que:
h1TA−TA−1h2 = 0 (2.28)
h1TA−TA−1h1 = h2
TA−TA−1h2 (2.29)
SejaB = A−TA−1 (note que ela é uma matriz simétrica) representada pelo vetor
b = [ B11 B12 B22 B13 B23 B33 ]
e sejahi = [ hi1 hi2 hi3 ]T a i-ésima coluna de H, tem-se que
hiTBhj = vi j
Tb (2.30)
onde
vi j = [ hi1h j1 hi1h j2 +hi2h j1 hi2h j2 hi3h j1 +hi1h j3 hi3h j2 +hi2h j3 hi3h j3 ]T
Dessa forma, pode-se reescrever as Equações 2.28 e 2.29 na seguinte forma:
[
v12T
(v11−v22)T
]
b = 0 (2.31)
Portanto, observandon imagens do padrão, obtém-sen equações do tipo 2.31, o que
nos dá:
Vb= 0 (2.32)
ondeV é uma matriz 2n x 6.
Sen≥ 3, b pode ser calculado unicamente, exceto por um fator de escala. Sen = 2,
pode-se forçar com queγ = 0, i.e.,[ 0 1 0 0 0 0]b = 0, acrescentando assim mais
uma equação ao Sistema 2.32. Para calcular a resposta do Sistema 2.32, pode-se utilizar a
técnica de decomposição em valores singulares [Leon 1998] da matrizVT ∗V. Sabendo-
se o valor deb, pode-se calcular a matrizA, como mostrado no conjunto de Equações
2.33, que nos dá os parâmetros intrínsecos da câmera.
2.6. MÉTODO P4P 19
Fx0 = B12B13−B11B23B11B22−B12
2
s= B33−[B132+v0(B12B13−B11B23)]
B11
α =√
sB11
β =√
sB11B11B22−B12
2
γ = −B12α2βs
Fy0 = γv0β −
B13α2
s
(2.33)
2.6 Método P4P
O Método P4P (Perspective Four-Points problem) é utilizado para obter a matriz de
parâmetros extrínsecos, ou seja, matriz que é utilizada para determinar a posição e orien-
tação de um determinado objeto a partir das imagens, supondoque os parâmetros intrín-
secos da câmera são conhecidos [Kamata et al. 1992]. Esse método tem como principal
vantagem possuir uma única solução.
Suponha conhecer a posição de quatro pontos coplanares não alinhados relativos ao
referencial{R}: RP0 aRP3, e os pontos 2D correspondentes na imagemFP0 aFP3. Para cal-
cular a matrizCTR foi introduzido dois sistemas de coordenadas intermediários, o sistema
{A} e o{B}, tal queCTR é dada por:
CTR = CTBBTA
ATR (2.34)
Portanto, para determinarCTR deve-se calcular as três matrizesCTB, BTA e ATR.
Cálculo da Matriz ATR
Escolheu-se o sistema{A} para que os pontos notáveis estejam nastandard position:RP0 está na origem,RP1 está na parte positiva do eixox e RP2 está no primeiro ou no
segundo quadrante. Sejam os ângulosα, β eθ dados pelas seguintes equações, onde∆⊖i j
20 CAPÍTULO 2. FERRAMENTAS
significaR⊖i−R⊖ j :
θ =
0 se∆y10 = ∆x10 = 0
tan−1(∆y10
∆x10
)
caso contrário(2.35)
β = tan−1(
−∆z10
∆x10cθ+∆y10sθ
)
(2.36)
α = tan−1[
(∆x20cθ+∆y20sθ)sβ+∆z20cβ−∆x20sθ+∆y20cθ
]
(2.37)
Os elementosai j da matrizATR são calculados de acordo com as seguintes equações,
ondes⊙, c⊙ e ∆⊖i j , ⊙ ∈ (α,β,θ), ⊖ ∈ (x,y,z), significam sin(⊙), cos(⊙) e R⊖i −R⊖ j ,
respectivamente:
a11 = cβcθ (2.38)
a12 = cβsθ (2.39)
a13 =−sβ (2.40)
a14 =−Rx0cβcθ−Ry0cβsθ+ Rz0sβ (2.41)
a21 =−cαsθ+sαsβcθ (2.42)
a22 = cαcθ+sαsβsθ (2.43)
a23 = sαcβ (2.44)
a24 =−Rx0(−cαsθ+sαsβcθ)−Ry0(cαcθ+sαsβsθ)−Rz0(sαcβ) (2.45)
a31 = sαsθ+cαsβcθ (2.46)
a32 =−sαcθ+cαsβsθ (2.47)
a33 = cαcβ (2.48)
a34 =−Rx0(sαsθ+cαsβcθ)−Ry0(−sαcθ+cαsβsθ)−Rz0(cαcβ) (2.49)
a41 = a42 = a43 = 0 (2.50)
a44 = 1 (2.51)
Cálculo da Matriz CTB
O sistema{B} é escolhido de tal forma que se alinhe com uma câmera fictícia,a qual
tem sua lente centrada na mesma posição que a câmera real, porém é orientada tal queJP0, a nova imagem deRP0, está na origem da imagem eJP1 está na parte positiva do eixo
2.6. MÉTODO P4P 21
x. Esta câmera fictícia se encontra emideal position. Utilizando a notaçãos⊙= sin(⊙) e
c⊙= cos(⊙),⊙ ∈ (φ,ω,ρ), a matrizCTB é dada por:
φ = tan−1(
−Ix0
k
)
(2.52)
ω = tan−1( Iy0cφ
k
)
(2.53)
ρ = tan−1( Iy1cω+ Ix1sφsω−kcφsω
Ix1cφ+ksφ
)
(2.54)
CTB =
cφcρ+sφsωsρ
−cφsρ+sφsωcρ sφcω 0
cωsρ cωcρ −sω 0
−sφcρ+cφsωsρ
sφsρ+cφsωcρ cφcω 0
0 0 0 1
(2.55)
ondek é a distância focal em pixels.
Cálculo da Matriz BTA
A matriz BTA representa a solução para um problema no qual os pontos notáveis estão
emstandard positione são observados por uma câmera emideal position. As coordena-
das dos pontos notáveis emstandard position, APi, são calculadas aplicando-se a transfor-
madaATR aos pontos notáveis originais,RPi. As coordenadas destes pontos, na imagem,
vistos por uma câmera emideal position, JPi, são calculadas aplicando-se a transformada
(CTB)−1 [= (CTB)T ] aos pontos 3D(Fxi,Fyi,k), obtendo-se os pontos(Bxi,
Byi,Bzi), e de-
pois fazendoJxi =−kBxi/Bzi e Jyi =−kByi/
Bzi.
Devido à maneira pela qual foram definidos os sistemas{A} e {B}, os parâmetros
ci j da matrizBTA podem ser determinados unicamente. Primeiramente, deve-se calcular
22 CAPÍTULO 2. FERRAMENTAS
alguns parâmetros intermediários:
b1 = k(Ax2Ay3−
Ax3Ay2) (2.56)
b2 = Bx2Ax2
Ay3−Bx3
Ax3Ay2 (2.57)
b3 = (Bx2−Bx3)
Ay2Ay3 (2.58)
b4 = Bx2Ay3−
Bx3Ay2 (2.59)
b5 = By2Ax2
Ay3−By3
Ax3Ay2 (2.60)
b6 = (By2−By3)
Ay2Ay3 (2.61)
b7 = By2Ay3−
By3Ay2 (2.62)
b8 = kAx1(b4b6−b7b3)−Bx1b1b6 (2.63)
b9 = Bx1[Ax1(b4b6−b7b3)− (b2b6−b5b3)] (2.64)
Finalmente, os coeficientes são dados por:
c11 =
+√
1/[1+(b8/b9)2] sek/Bx1≤ b8/b9
−√
1/[1+(b8/b9)2] caso contrário(2.65)
c31 =−b8c11/b9 c34 =−Ax1(kc11/Bx1 +c31) (2.66)
c12 =kAx2c11+ Bx2
Ax2c31+ Bx2Ay2c32+ Bx2c34
−kAy2(2.67)
c32 =
−(b5c31+b7c34)/b6 seb6 6= 0
−(b1c11+b2c31+b4c34)/b3 caso contrário(2.68)
c22 =−By2(Ax2c31+ Ay2c32+c34)/(kAy2) (2.69)
c13 =−c22c31 (2.70)
c23 = c12c31−c11c32 (2.71)
c14 = c21 = c24 = c41 = c42 = c43 = 0 (2.72)
c33 = c11c22 (2.73)
c44 = 1 (2.74)
Capítulo 3
SLAM Visual
“Inferir modelos a partir de observações e estudar suas proprie-dades é o que realmente faz a ciência. Os modelos (“hipóteses”,“leis da natureza”, “paradigmas”, etc.) podem apresentar umcaráter mais ou menos formal, mas todos eles possuem umamesma característica básica, que é a tentativa de encontraralgum padrão em observações.”
Ljung1
Nesse Capítulo é apresentada uma técnica para SLAM (Simultaneous Localization
and Mapping) baseada no filtro de Kalman estendido (EKF) para navegar um robô em
um ambienteindoor usando odometria e linhas pré-existentes no chão como marcos. As
linhas são identificadas usando a transformada de Hough. A fase de predição do EKF
é feita usando o modelo de odometria do robô. A fase de atualização usa diretamente
os parâmetros das linhas detectados pela transformada de Hough sem cálculos adicionais
intermediários. Um experimento de SLAM é realizado com o robô, e dados reais obtidos
são apresentados2.
3.1 Descrição do Sistema de SLAM
O sistema de SLAM proposto é capaz de localizar um robô móvel em um ambiente
onde as linhas do chão formam uma grade bidimensional. Para tal, as linhas são identifica-
das como marcos naturais e suas características, juntamente com o modelo de odometria
do robô, são incorporados em um filtro de Kalman a fim de obter sua pose (Figura 3.1).
Nesse sistema as arestas do piso são identificadas como marcos naturais utilizando a
transformada de Hough. A fase de predição do filtro é implementada usando o modelo
1Trecho extraído de [Ljung 1987, p. 1].2O conteúdo deste Capítulo foi submetido como artigo a ser julgado para publicação para o Congresso
Brasileiro de Automática 2008 da Sociedade Brasileira de Automática [Santana et al. 2008].
24 CAPÍTULO 3. SLAM VISUAL
Figura 3.1: Modelagem do sistema de SLAM para o robô com rodas
3.2. FILTRAGEM 25
de odometria do robô e a fase de atualização usa os parâmetrosdas linhas detectadas por
transformada de Hough diretamente nas suas equações para corrigir a pose do robô.
3.2 Filtragem
3.2.1 Filtro de Kalman Estendido
O filtro de Kalman estendido trabalha com um modelo segundo o Sistema 3.1, cujas
variáveis são descritas na Tabela 3.1.εt e δt são supostas ruído gaussiano de médio zero.
{
st = p(st−1,ut−1,εt−1)
zt = h(st)+δt
(3.1)
Em cada amostragem de tempo, o EKF calcula a melhor estimativa do vetor de estados
em duas fases:
• a fase de prediçãousa o Sistema 3.2 para predizer o estado corrente baseado no
estado anterior e nos sinais de entrada aplicados;
• a fase de atualizaçãousa o Sistema 3.3 para corrigir a predição do estado pela
verificação de sua compatibilidade com as medidas atuais dossensores.
Tabela 3.1: Símbolos nas Equações (3.1), (3.2) and (3.3)st vetor de estado (ordemn) no instantet
p(·) modelo não linear do sistemaut−1 sinais de entrada (ordeml ), instantet−1εt−1 ruído de processo (ordemq), instantet−1
zt vetor de medições (ordemm) retornada pelos sensoresh(·) modelo não linear dos sensores
δt ruído de mediçãoµt , µt média (ordemn) do vetor de estadost , antes e depois da fase de atualizaçãoΣt ,Σt covariância (n×n) do vetor de estadosst
Gt matriz Jacobiana (n×n) que lineariza o modelo do sistemap(·)Vt matriz Jacobiana (n×q) que lineariza o ruído de processoεt
M t covariância (q×q) do ruído de processoεt
K t ganho do filtro de Kalman (n×m)Ht matriz Jacobiana (m×n) que lineariza o modelo dos sensoresh(·)Qt matriz de covariância (m×m) do ruído de mediçãoδt
26 CAPÍTULO 3. SLAM VISUAL
{
µt = p(µt−1,ut−1,0)
Σt = GtΣt−1GTt +VtM tVT
t
(3.2)
K t = ΣtHTt (Ht ΣtHT
t +Qt)−1
µt = µt +K t(zt−h(µt))
Σt = (I −K tHt)Σt
(3.3)
onde:
Gt =∂p(s,u,ε)
∂s
∣
∣
∣
∣
s=µt−1,u=ut−1,ε=0(3.4)
Vt =∂p(s,u,ε)
∂ε
∣
∣
∣
∣
s=µt−1,u=ut−1,ε=0(3.5)
Ht =∂h(s)
∂s
∣
∣
∣
∣
s=µt−1
(3.6)
3.2.2 EKF-SLAM
Na tarefa de SLAM, além de estimar a pose do robô, também são estimadas as coor-
denadas de todos os marcos encontrados pelo caminho. Assim,torna-se necessário incluir
as coordenadas do marco no vetor de estado. Seic é o vetor de coordenadas doi-ésimo
marco e existemk marcos, então o vetor de estados é:
st =[
xt yt θt1cT
t · · ·kcT
t
]T(3.7)
Quando o número de marcos (k) éa priori conhecido, a dimensão do vetor de estados
é estática; se não, ele cresce quando um novo marco é encontrado.
3.3 Modelagem
3.3.1 Fase de Predição: modelo do processo
Considere um robô com acionamento diferencial em que∆θR e ∆θL são deslocamen-
tos angulares direito e esquerdo das respectivas rodas (Figura 3.2). Assumindo que a
velocidade pode ser considerada constante durante um período de amostragem, pode-se
3.3. MODELAGEM 27
∆L
y∆θ
x
b
r∆θL
∆θR
Figura 3.2: Variáveis da cinemática do modelo
determinar o modelo geométrico cinemático do movimento do robô (Sistema 3.8):
xt =xt−1+∆L∆θ
[sin(θt−1+∆θ)−sin(θt−1)]
yt =yt−1−∆L∆θ
[cos(θt−1+∆θ)−cos(θt−1)]
θt =θt−1+∆θ
(3.8)
na qual:{
∆L = (∆θRrR+∆θLrL)/2
∆θ = (∆θRrR−∆θLrL)/b(3.9)
onde∆L e ∆θ são os deslocamentos linear e angular do robô;b representa a distância
entre as rodas erR e rL são os raios da roda direita e esquerda, respectivamente. Quando
∆θ→ 0, o modelo torna-se o da Equação 3.10, obtida do limite do Sistema 3.8.
xt = xt−1 +∆Lcos(θt−1)
yt = yt−1 +∆Lsin(θt−1)
θt = θt−1
(3.10)
Assim, o modelo utilizado é dependente do valor de∆θ. Se ∆θ → 0 utiliza-se a
Equação 3.10, senão, utiliza-se a Equação 3.8.
Foi adotada a abordagem defendida por Thrun et al. (2005), que considera a informa-
ção de odometria como sinais de entrada a serem incorporadosao modelo do robô, ao
invés das medições sensoriais. As diferenças entre o deslocamento angular real das rodas
(∆θR e ∆θL) e os deslocamentos medidos pelosencoders(∆θR e ∆θL) são modelados por
um ruído branco gaussiano de médio zero, de acordo com o Sistema 3.11.
{
∆θR = ∆θR+ εR
∆θL = ∆θL + εL
(3.11)
28 CAPÍTULO 3. SLAM VISUAL
As medidas∆L e∆θ são definidas substituindo-se (∆θR e∆θL) por (∆θR e∆θL) nas Equa-
ções 3.9.
Se o vetor de estadoss é dado pela Equação 3.7, o modelo do Sistemap(·) pode ser
obtido do Sistema 3.8 ou 3.10 e do fato que as coordenadas dos marcosic são estáticas:
p(·) =
xt = · · ·
yt = · · ·
θt = · · ·
1ct =1ct−1
...kct =kct−1
n = 3+k ·ordem(ic) (3.12)
ut =[
∆θR ∆θL]T
l = 2 (3.13)
εt = [εR εL ]T q = 2 (3.14)
As matrizesG eV são obtidas derivando o modelop(·)3 usando as Equações 3.4 and 3.5:
G =
1 0 g13 0 · · · 0
0 1 g23 0 · · · 0
0 0 1 0 · · · 0
0 0 0 1 · · · 0...
......
......
0 0 0 0 · · · 1
(3.15)
onde:
g13 =∆L
∆θ[cos(θt−1 +∆θ)−cos(θt−1)]
g23 =∆L
∆θ[sin(θt−1 +∆θ)−sin(θt−1)]
3Somente foram apresentadas as matrizesG e V usando o modelop(·) baseadas nas Equações 3.8.Outras matrizes podem ser obtidas derivando-se as Equações3.10 para serem usadas quando∆θ→ 0.
3.3. MODELAGEM 29
V =
v11 v12
v21 v22
rR/b −rL/b
0 0...
...
0 0
(3.16)
onde, considerandorR = rL = r:
v11 = V1cos(β)+V2[sin(β)−sin(θt−1)]
v12 =−V1cos(β)+V3[sin(β)−sin(θt−1)]
v21 = V1sin(β)−V2[cos(β)−cos(θt−1)]
v22 =−V1sin(β)−V3[cos(β)−cos(θt−1)]
β = θt−1 +r(∆θR−∆θL)
bV1 =
r(∆θR+∆θL)
2(∆θR−∆θL)
V2 =−b∆θL
(∆θR−∆θL)2V3 =
b∆θR
(∆θR−∆θL)2
É sabido que a odometria introduz erros acumulativos. Portanto, o desvio padrão dos
ruídosεR e εL é assumido ser proporcional ao módulo do deslocamento angular de cada
roda medido. Essas considerações levam à definição da matrizM dada pela Equação 3.17.
M =
(
(MR|∆θR|)2 0
0 (ML|∆θL|)2
)
(3.17)
3.3.2 Fase de Atualização: modelo do sensor
Os marcos adotados nesse trabalho são linhas formadas pela junção do piso do am-
biente onde o robô navega. Os marcos são detectados processando as imagens usando
transformada de Hough (Seção 3.4). As linhas detectadas sãodescritas por parâmetrosρe α na Equação 3.18:
ρ = xcos(α)+ysin(α) (3.18)
A Figura 3.3 mostra a representação geométrica desses parâmetros:ρ é o módulo eαé o ângulo do menor vetor que conecta a origem do sistema de coordenadas à linha.
Definiu-se um sistema de coordenadas fixo (F) e um móvel (M), anexado ao robô,
ambos ilustrados na Figura 3.4. A origem do sistema móvel temcoordenadas(xFM,yF
M)
no sistema fixo.θMF representa a rotação do sistema móvel com respeito ao sistema fixo.
30 CAPÍTULO 3. SLAM VISUAL
Y
α
ρ
X
Figura 3.3: Parâmetros da retaρ e α
XF
YF
FxM
FMθ
YM XM
FyM
Figura 3.4: Sistema de coordenadas fixo e móvel
Deve-se notar que existe uma relação estreita entre essas variáveis (xFM,yF
M,θFM) e a pose
do robô (xt ,yt ,θt), que é dada pelas Equações 3.19.
xt = xFM yt = yF
M θt = θFM +π/2 (3.19)
Cada linha no chão é descrita por dois parâmetros estáticos(ρF , αF). O mapa a
ser produzido pelo processo de SLAM é composto de um conjuntodesses pares de pa-
râmetros. Então, oic vetor de coordenadas doi-ésimo marco que aparece nas Equa-
ções 3.7 e 3.12 é dado pela Equação 3.20:
ic =
[
iρF
iαF
]
(3.20)
A cada passo o robô captura uma imagem e identifica os parâmetros (ρ, α)4 das li-
nhas detectadas. Esses parâmetros de imagem são então convertidos para os parâmetros
correspondentes(ρM, αM) no sistema de coordenadas móvelM anexado ao robô, usando
os parâmetros da câmera (Seção 3.4). O vetor de mediçõeszt a ser usado na fase de
4Usou-se um ˜ acima de uma variável para indicar valores medidos, ao invés de calculados.
3.3. MODELAGEM 31
atualização do algoritmo do EKF (Equação 3.3) é definido pelaEquação 3.215:
zt =
[
ρM
αM
]
(3.21)
Para usar a informação diretamente obtida pelo processamento de imagem(ρM, αM)
na fase de atualização do EKF-SLAM, deve-se deduzir o modelodo sensorh(·), que é o
valor esperado desses parâmetros em função das variáveis deestado.
Usou-se a relação entre as coordenadas nos sistemasM e F (Sistema 3.22) e a Equa-
ção 3.18 em ambos os sistemas de coordenada (Equações 3.23 e 3.24):
{
xF = cos(θMF )xM−sin(θM
F )yM +xFM
yF = sin(θMF )xM +cos(θM
F )yM +yFM
(3.22)
iρF = xF cos(iαF)+yF sin(iαF) (3.23)
ρM = xM cos(αM)+yM sin(αM) (3.24)
Substituindo-se as Equações 3.22 na Equação 3.23, fazendo as equivalências neces-
sárias com a Equação 3.24 e substituindo algumas variáveis usando as Equações 3.19,
obtêm-se os Sistemas 3.25 e 3.26, que representam dois possíveis modelos de sensorh(·)
a ser usado no filtro. Para decidir qual modelo usar, calcula-se ambos os valores deαM e
usa-se o modelo que gerar o valor mais próximo ao valor medidoαM.
{
ρM = iρF −xt cos(iαF)−yt sin(iαF)
αM = iαF −θt +π/2(3.25)
{
ρM =−iρF +xt cos(iαF)+yt sin(iαF)
αM = iαF −θt−π/2(3.26)
O modelo do sensor é incorporado no EKF através da matrizH (Equação 3.6), dada
pela Equação 3.276:
H =
(
−cosiαF −siniαF 0 · · · 1 0 · · ·
0 0 −1 · · · 0 1 · · ·
)
(3.27)
As colunas finais da matrizH são quase todas nulas, exceto pelas colunas que corres-
5Para simplificar a notação, assumiu-se que existe exatamente uma linha por imagem. De fato, pode-seter nenhuma, uma, ou mais de uma linha por imagem. Em cada passo, executa-se a fase de atualização doEKF tantas vezes quantas o número de linhas detectadas na imagem, mesmo com nenhuma.
6Somente apresentou-se a matrizH correspondente ao Sistema 3.25.
32 CAPÍTULO 3. SLAM VISUAL
Figura 3.5: Detecção de linhas
pondem ao marco no vetor de estado que corresponde à linha detectada na imagem.
3.3.3 Correspondência
Um aspecto crucial do algoritmo de SLAM é estabelecer uma correspondência entre a
linha detectada na imagem e um dos marcos representado no vetor de estado. Para esco-
lher o marco correto, primeiramente calculam-se os valorespreditos de(ρF , αF) usando
os valores medidos de(ρM, αM) e o modelo nas Equações 3.25, seαM ≥ 0, ou nas Equa-
ções 3.26, seαM < 0. Então, esses valores preditos são comparados com cada um dos va-
lores(iρF , iαF) no vetor estado. Se a diferença entre o valor predito e o melhor (iρF , iαF)
é suficientemente pequena, a correspondência foi encontrada. Se não, considera-se que a
nova marca foi detectada e o tamanho do vetor de estado é aumentado.
3.4 Processamento da Imagem
3.4.1 Detecção das Linhas
Devido à escolha das linhas do chão como marcos, a técnica adotada para identificá-
las foi a transformada de Hough [Gonzalez & Woodes 2000]. O propósito dessa técnica é
encontrar instâncias imperfeitas de objetos dentro de certa classe de formas por processo
de votação. Esse processo de votação é efetuado no espaço de parâmetros, do qual objetos
candidatos são obtidos como máximo local em uma grade de acumulação que é construída
pelo algoritmo para a computação da transformada de Hough.
Nesse trabalho, a forma são linhas descritas pela Equação 3.18 e o espaço de parâme-
tros têm coordenadas(ρ,α). As imagens são capturadas em tons de cinza e convertidas
para preto e branco usando um limiar de corte, determinadooff-line. A Figura 3.5 mostra
três imagens: uma imagem típica do chão (esquerda), a imagemapós aplicação de um
limiar de corte (centro), e as linhas detectadas pela transformada de Hough (direita).
3.5. RESULTADOS 33
3.4.2 De Imagens para o Mundo
É assumido que o chão é plano e que a câmera é fixa. Então, existeuma relação
constante (uma homografiaA) entre os pontos no plano do chão(x,y) e os pontos no
plano da imagem(u,v):
s·
u
v
1
= A ·
x
y
1
(3.28)
O fator de escalasé determinado para cada ponto de tal forma que o valor do terceiro
elemento do vetor seja sempre 1.
A homografia pode ser calculadaoff-line usando um padrão contendo quatro ou mais
pontos notáveis com coordenadas conhecidas (Figura 3.6). Depois de detectar os pontos
notáveis na imagem, têm-se diversas correspondências entre coordenadas de pontos no
sistema de coordenadas móvelM e na imagem. Substituindo-se esses pontos na Equa-
ção 3.28, obtém-se um sistema linear no qual se pode determinar os oito elementos7 da
matriz de homografiaA.
Para obter as informações métricas das linhas obtidas no plano da imagem, utilizou-se
o seguinte procedimento para cada linha:
1. usando os valores de(ρ, α) na imagem, obtidos pela transformada de Hough, cal-
cular dois pontos pertencentes à linha na imagem.
2. converter as coordenadas desses dois pontos para o sistema de coordenadas móvel
M, usando a homografiaA;
3. determinar(ρM, αM) da linha que passa através desses dois pontos.
3.5 Resultados
Foi realizado um experimento em que o robô executa um movimento para frente,
vira em torno de si mesmo, e retorna aproximadamente pelo mesmo caminho. Na Fi-
gura 3.7 é indicado a posição das linhas, a trajetória aproximada do robô e o tamanho
comparativo do campo de visão da câmera. A posição inicial dorobô é aproximada-
mente(3.3,3.1,−110o), mas não é usada no algoritmo de SLAM: o robô assume que sua
posição inicial é(0,0,0o).
A Tabela 3.2 apresenta os marcos detectados após aproximadamente 250 iterações. As
primeiras duas colunas contêm os valores reais. O resultadodo algoritmo de SLAM está
7A pode somente ser determinada por um fator de escala. Para obter uma resposta única, foi impostoa33 = 1.
34 CAPÍTULO 3. SLAM VISUAL
Figura 3.6: O robô Karel e o padrão de calibração
nas colunas do meio: os valores são expressos no sistema de coordenadas assumindo que
a posição inicial do robô é(0,0,0o). Essas linhas são desenhadas na Figura 3.8. Final-
mente, as duas últimas colunas mostram o resultado do SLAM, mas corrigidos assumindo
a posição inicial do robô como(3.3,3.1,−110o), para melhor comparação (Figura 3.7).
A câmera captura imagens em tamanho 160×120 (como visto nas Figura 3.5) e cada
imagem é processada em 300ms.
3.5. RESULTADOS 35
XF
YF
1.08 2.16 3.24
0.98
1.96
2.94
Figura 3.7: Trajetória executada
Tabela 3.2: Resultados experimentaisReal Calculado Corrigido
ρF αF ρF αF ρF αF
1.08 0 1.88 108 1.13 1.72.16 0 0.82 108 2.19 1.33.24 0 0.11 110 3.26 00.98 90 2.57 23 0.97 871.96 90 1.24 22 1.95 872.94 90 0.20 22 2.93 88
Figura 3.8: Linhas obtidas através do EKF-SLAM
36 CAPÍTULO 3. SLAM VISUAL
Capítulo 4
Navegação Cooperativa
“Johann Kepler foi um dos mais especulativos astrônomosde todas as épocas. Ele estava sempre teorizando, mas apeculiar qualidade de sua mente era tal que suas teorias nuncao satisfaziam, a menos que ele pudesse submetê-las ao teste daobservação”
Henry Smith Williams1
Nesse Capítulo é apresentado o processo de navegação cooperativa entre o robô com
rodas instrumentadoKarel e o robô humanóide não instrumentadoRobosapien. Nesse
processo o robô com rodas localiza o robô humanóide através do processamento visual
de uma marca, e através da extração de características da imagem navega o humanóide
a partir do envio de comandos via sinais infravermelhos. O processamento de imagem
realizado é abordado e os algoritmos de movimentação cooperativa são descritos. Um
experimento de cooperação é realizado com os robôs, e dados reais obtidos são apresen-
tados.
4.1 Descrição do Sistema de Navegação
Para realizar a navegação do robô humanóide é necessário obter sua localização atual,
de modo a planejar sua trajetória e corrigir eventuais erros. Essa localização é obtida
através do robô com rodas. A partir de imagens obtidas do humanóide por uma câmera
localizada no robô com rodas, e utilizando-se um método de estimação de pose, pode-se
calcular a posição do robô humanóide em relação ao robô com rodas. Supondo então
conhecida a posição absoluta do robô com rodas pode-se calcular a posição absoluta do
robô humanóide (Figura 4.1).
1Texto extraído de [Williams 1904, p. 69].
38 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
Figura 4.1: Modelagem do sistema de navegação cooperativa.
4.2. PROCESSAMENTO DA IMAGEM 39
Para se obter a estimação da pose do humanóide é utilizado um marco visual no robô
humanóide. O marco visual é um losango, do qual, após o processamento da imagem,
extraem-se quatro pontos correspondentes aos quatro vértices. Esses pontos são utiliza-
dos no algoritmo para encontrar os parâmetros extrínsecos,e conseqüentemente a pose
relativa do robô com rodas.
O robô com rodas irá processar as imagens, verificar a pose do humanóide e enviar-
lhe comandos necessários para realizar a sua navegação. A medição da pose relativa
entre os dois robôs utiliza o método P4P para encontrar os parâmetros extrínsecos, e
conseqüentemente a pose do humanóide relativa ao robô com rodas (Seção 2.6).
Partindo da hipótese de que a posição absoluta do robô com rodas é conhecida, já que
também se sabe a posição relativa do robô humanóide em relação ao robô com rodas,
pode-se facilmente obter a posição absoluta do robô humanóide. De posse dessa infor-
mação, o robô com rodas poderá determinar quais os movimentos necessários para que o
humanóide siga a trajetória desejada e, após convertê-los em códigos, enviá-los, via sinais
infravermelhos, para o robô humanóide.
Para que tal sistema funcione, se faz necessário que o robô com rodas acompanhe
o robô humanóide. Ele deve fazê-lo mantendo uma distância e uma orientação de forma
que facilite a localização da marca contida na imagem e nos forneça informação suficiente
para efetuar uma boa estimação da posição do robô humanóide.Assim, os movimentos
do robô com rodas serão dependentes dos movimentos do robô humanóide, de forma a
maximizar a imagem obtida.
4.2 Processamento da Imagem
Para realizar a navegação do robô humanóide, é necessário primeiramente localizá-
lo no ambiente de trabalho. Portanto, nesta etapa, tem-se como objetivo determinar a
posição do robô humanóide em relação ao robô com rodas a partir de imagens obtidas
por uma câmera acoplada ao robô com rodas. Para possibilitarextrair tal informação das
imagens, deve-se primeiro determinar os parâmetros intrínsecos da câmera que está sendo
utilizada.
Para se extrair os pontos notáveis necessários para os algoritmos de calibração de
câmera, se faz necessário um processamento digital de imagem. Esse processamento
pode ser dividido em duas fases: a extração de pontos para a estimação dos parâmetros
intrínsecos e a extração de pontos para a estimação dos parâmetros extrínsecos. A princi-
pal diferença entre o processamento digital exigido nos dois processos é com relação ao
tempo. Enquanto a estimação dos parâmetros intrínsecos é umprocedimentooff-line, ou
40 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
seja, não possui uma alta restrição de tempo, a estimação dosparâmetros extrínsecos deve
ser feita em tempo real. Por este motivo, utilizam-se diferentes estratégias em cada fase.
Para realizar a determinação dos parâmetros extrínsecos, énecessário determinar na
imagem um conjunto de quatro pontos notáveis no marco. Isto nos sugere utilizar as ares-
tas de um quadrilátero (neste caso um losango), o qual foi afixado no robô humanóide. As
interseções das retas que formam suas arestas fornecerão osvértices do mesmo. Poder-se-
ia ter utilizado novamente a transformada de Hough para determinar as arestas; contudo,
esta se mostra inapropriada devido ao custo computacional,já que a calibração externa é
executada a cada amostragem e exige rapidez. Assim utilizou-se um sistema de detecção
de arestas mais rápido desenvolvido por Nogueira (2005) (Seção 4.4).
Com a informação de quatro pontos pode-se encontrar os parâmetros intrínsecos.
Utilizou-se o método P4P de Kamata [Kamata et al. 1992], que éindicado para apli-
cações em tempo real por ter solução única e não empregar métodos iterativos, sendo a
solução dada por uma expressão analítica.
4.3 Determinação dos Pontos do Padrão de Calibração
Para a realização da calibração intrínseca utilizou-se o método de Zhang, descrito na
seção 2.5. Para utilizar tal método, é necessário localizarum conjunto de pontos co-
nhecidos em três ou mais imagens. Deve-se localizar em cada imagemn pontos (são
necessários no mínimo seis pontos para solucionar a Equação2.26, porém, para realizar
a otimização, é aconselhado que se utilizem mais pontos).
Esses pontos notáveis foram representados em um padrão por interseções entre retas
(Figura 4.2). O padrão utilizado possui 18 retas (nove retasverticais e nove retas horizon-
tais) e um total de 81 pontos de interseção. As retas paralelas estão separadas por uma
distância de 2 cm.
A localização de tais pontos na imagem foi realizada utilizando a estratégia de de-
terminar inicialmente o conjunto de retas presentes na imagem e em seguida calcular os
pontos de interseção entre as retas. Para isso foi utilizadoa transformada de Hough.
Porém, na aplicação da transformada de Hough a este problema, interessa-se em cal-
cular não apenas uma única reta, e sim um conjunto de retas. Desta forma, deve-se então
encontrar não apenas um ponto de interseção entre as senóides, e simn destes pontos (no
caso do padrão da Figura 4.2, por exemplo,n = 81).
Aplicando a transformada de Hough, às várias imagens do padrão, mostrado na Fi-
gura 4.2, em poses diferentes, pode-se determinar as retas do padrão presentes em cada
imagem. A partir das interseções de tais retas podem-se obter os pontos notáveis em cada
4.4. DETERMINAÇÃO DOS VÉRTICES DO LOSANGO 41
Figura 4.2: Padrão utilizado na calibração intrínseca da câmera
imagem, e assim aplicar o método descrito na seção 2.5.
4.4 Determinação dos Vértices do Losango
Supondo que o losango possua uma cor característica, pode-se determinar se um dado
ponto pertence ou não à região interna do losango, e em seguida detectar pontos que
estão sobre cada uma das arestas deste. Contudo, devido a vários fatores (iluminação,
reflexão do material que compõe o losango, ruído, etc.), os pontos determinados podem
não estar exatamente sobre suas arestas, apresentando um erro. A idéia então é utilizar
um conjunto de pontos para, a partir destes, determinar a melhor reta que representa cada
aresta, minimizando assim o erro do processo.
Assim, primeiramente, a partir de um ponto pertencente ao losango (P0), determina-se
um conjunto de pontos pertencentes às suas arestas superiores (Ui) e inferiores (Di). Tal
procedimento é ilustrado na Figura 4.3 e apresentado na Tabela 4.1.
Determinam-se então duas retas a partir dos pontosUi: LUL , que vai da esquerda para o
centro; eLUR, que vai da direita para o centro. De maneira similar, determinam-se as retas
LDL eLD
R a partir dos pontosDi. Tais retas são calculadas de forma a minimizar o somatório
do quadrado das distâncias entre a reta e os pontos a ela associados. A maneira como cada
ponto é associado a uma das retas é descrita na Tabela 4.2. Calculando a interseção entre
estas quatro retas, obtêm-se os vértices do losango. Uma vezque se têm os vértices do
42 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
Figura 4.3: Detecção de pontos pertencentes às arestas do losango
Tabela 4.1: Detecção dos pontos pertencentes às arestas do losango1. Procure um ponto (pixel) inicialP0 na imagem que pertença ao losango// Busca a direita2. k← 0; M←−13. Enquanto o pixelPk pertencer ao losango:
(a) A partir dePk, busque para cima e para baixo pelo último ponto pertencenteao losango (pontosUk eDk).
(b) Se‖Uk−Dk‖< MIN_LEN Pare Enquanto(c) CalculePk+1←
Uk−Dk2 +
[
∆x 0]T
(d) M← k; k← k+1
// Busca a esquerda4. k← 0; N←+15. Enquanto o pixelPk pertencer ao losango:
(a) A partir dePk, busqueUk eDk.(b) Se‖Uk−Dk‖< MIN_LEN Pare Enquanto(c) CalculePk−1←
Uk−Dk2 −
[
∆x 0]T
(d) N← k; k← k−1
4.5. MOVIMENTAÇÃO COOPERATIVA 43
Tabela 4.2: Detecção das arestas do losango// Parte de cima1. Inicie a retaLU
L determinada pelos pontosU−N eU−(N−1), e a retaLUR, a partir de
UM eUM−1.2. i←−(N−2)3. Enquantoi ≤M−2:
(a) Calcule as distânciaseUL e eU
R, que são as distâncias entre o pontoUi e LUL e
LUR, respectivamente.
(b) SeeUL < eU
R, recalculeLUL , considerando queUi pertence a ela; senão, recalcule
LUR.
(c) i← i +1
// Parte de baixo4. Realize um procedimento similar (passos 1 a 3) para determinar LD
L e LDR a partir
dos pontosDi .
losango calculados no passo atual, pode-se calcular o seu ponto médio e utilizar tal ponto
como o ponto inicial pertencente ao losango (P0) para o passo seguinte.
De posse dos pontos que representam os vértices do losango, pode-se utilizar o método
P4P de Kamata para obter a matriz de transformaçãoCTR. Porém, a matriz de rotação
calculada pelo P4P de Kamata pode não representar exatamente uma matriz de rotação, a
qual deve ser ortonormal. Para conferir tal propriedade à matriz de rotaçãoR, realiza-se
o seguinte procedimento:
• Decompõe-se a matriz em seus valores singulares [Leon 1998]:
R= UDVT (4.1)
• Forçam-se os seus valores singulares a serem todos iguais a 1:
D =
1 0 0
0 1 0
0 0 1
(4.2)
• Recalcula-seR a partir de sua decomposição modificada.
4.5 Movimentação Cooperativa
O sistema de navegação cooperativa deve fazer o robô com rodas navegar o robô
humanóide através do processamento da imagem da marca no humanóide, evitando a
44 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
Figura 4.4: Robô com rodas seguindo robô humanóide
restrição visual existente (Figura 4.4). Se o robô girar completamente, a marca sai do
campo de visão da câmera e assim o rastreamento da imagem é perdido (Figura 4.5). Para
que isso não ocorra é necessário realizar a navegação do robôcom rodas de modo que a
marca não saia da imagem da câmera.
A navegação é concebida sob a idéia de que o robô com rodas deveseguir o humanóide
a uma distância fixa. Se o humanóide girar em torno de si mesmo ea marca alcançar um
ângulo crítico de visualização, o humanóide é parado e o ângulo é corrigido. Se houver
a necessidade de corrigir a posição também, a correção do ângulo levará em conta essa
correção de posição.
Se o planejador decidir realizar uma curva, o robô humanóideé parado, e um determi-
nado ângulo intermediário entre o ângulo atual e o ângulo final é fixado como referência
para o humanóide. Quando o humanóide alcança o ângulo de referência, o navegador
fixa uma pose de referência para o robô com rodas, a qual é calculada a partir da posição
relativa ao marco, de modo que o robô com rodas fique a 90 graus,ou mais, relativo ao
marco. O robô com rodas vai para a referência de forma autônoma, até alcançar a refe-
rência e ter o marco novamente à vista. Esse processo continua até o humanóide alcançar
a angulação desejada da curva.
4.6. MOVIMENTAÇÃO DO ROBÔ HUMANÓIDE 45
Figura 4.5: Restrição visual para o seguimento do robô humanóide [Santana 2007].
4.6 Movimentação do Robô Humanóide
Devido às restrições de movimento e a dificuldade de um controle preciso do desloca-
mento do humanóide, decidiu-se utilizar uma técnica de movimentação heurística. Esta
técnica inclui a geração de estados a partir dos valores de distância e ângulo entre o robô
com rodas e o robô humanóide. Supõe-se que um nível hierárquico superior gerou uma
trajetória, de tal forma que se sabe, a cada instante, a posição onde se deseja que o robô
humanóide esteja. Esta posição é conhecida como posição referência (PF ).
Conhecida a (PF ) e a posição em que o humanóide se encontra, é calculado um erro.
Esse erro determina o estado em que o humanóide se encontra com relação à posição de
referência. A posição de referência está centrada no estado5 de acordo com a Figura 4.6).
Assim se o humanóide está no estado 7 ele deve parar, acertar oângulo, em direção ao
ponto (PF ), e seguir em frente, para alcançar o estado 5.
O algoritmo de controle do robô humanóide seguirá os seguintes passos:
1. Calcula-se:
(a) o erroeentre a posição atual do robô humanóide e a posição de referênciaPF
(distância euclidiana)
46 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
4
7
5
8
3
6
9
1 2
x
y
Figura 4.6: Estados do sistema de navegação do humanóide.
4.7. MOVIMENTAÇÃO DO ROBÔ COM RODAS 47
Figura 4.7: Movimentação do humanóide
(b) o ânguloα entre a reta definida pela posição atual do humanóide e a posição
de referência e o eixoz do robô humanóide (zR) (Figura 4.7).
2. Seα for maior que certo valorv, comanda-se o robô humanóide para parar e girar
até queα esteja próximo de zero.
3. See for maior que certo valorl , o humanóide é comandado para andar para a frente.
4.7 Movimentação do Robô com Rodas
A movimentação do robô com rodas, depende totalmente da movimentação do huma-
nóide, pois a câmera, fixa no robô com rodas, deve acompanhar ohumanóide de forma a
garantir a obtenção da imagem da marca. Para tal, a cada passode amostragem, deve-se
comandar o robô com rodas para uma posição que esteja a uma distânciad do humanóide,
de forma que a câmera aponte em sua direção (o centróide do losango se localize no cen-
tro da imagem). Além disso, deve-se garantir que a câmera capture imagens que forneçam
informações suficientes para efetuar uma boa estimação da posição do robô humanóide.
Para isto deve-se monitorar o ânguloθ, formado entre o eixox do robô humanóide (xR)
e o eixoz da câmera (zC) (Figura 4.8). Casoθ se torne menor que um ângulo crítico
θc, o que poderia causar uma má detecção dos vértices do losango, o robô humanóide é
comandado para parar, e o robô com rodas é comandado para a posição a uma distânciad
do humanóide e de forma queθ seja 90o (posiçãoPD na Figura 4.8). Isto causa uma não
continuidade no movimento, que faz que por alguns instantesa marca não possa ser vista,
e o robô com rodas caminhe de forma autônoma, a menos da sua referência. Mas nova-
mente encontrada a marca, quando o robô com rodas alcança suareferência, ele recomeça
48 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
Figura 4.8: Situação de ângulo crítico na movimentação da câmera
a reconhecer e processar imagem contendo a marca novamente.
O algoritmo de movimentação do robô com rodas seguirá os seguintes passos:
1. Calcula-se o ânguloθ2. Seθ for menor que um valor críticoθc, o robô humanóide é comandado para parar e
o robô com rodas é comandado para a posiçãoPD. O robô com rodas (e conseqüen-
temente a câmera) é comandado para girar até que o centróide do losango esteja no
centro da imagem.
3. Senão, o robô com rodas é comandado para andar para frente até que esteja a uma
distânciad do humanóide
Um caso especial que deve ser observado é quando a posição destino calculada para a
câmera causa uma colisão desta com um objeto do ambiente. Neste caso deve-se sacrifi-
car temporariamente a visibilidade do humanóide e posicionar a câmera o mais próxima
possível da posição destino sem causar colisão. O humanóidedeve ser reposicionado de
forma a eliminar o problema.
4.8 Resultados
Os parâmetros intrínsecos da câmera foram obtidos utilizando-se três imagens diferen-
tes do padrão em variadas posições (Figura 4.9). Aplicando-se a transformada de Hough
para encontrar as retas e suas interseções, obteve-se um total de 3 vezes 81 pontos, ou
seja, 243 pontos (Figura 4.10).
4.8. RESULTADOS 49
Figura 4.9: Padrão utilizado no processode calibração.
Figura 4.10: Detecção das retas e seus pon-tos de interseções.
De posse dos pontos do padrão utilizado na calibração, segundo as informações de
sua geometria, e dos pontos obtidos no processamento da imagem do padrão, obtiveram-
se os parâmetros intrínsecos da câmera utilizando-se o algoritmo de Zhang. A matriz de
calibração intrínseca obtida é dada por:
Tint =
α γ Fx0
0 β Fy0
0 0 1
, (4.3)
onde(Fx0,Fy0 é o centro de coordenadas da imagem em pixels,α eβ são respectivamente
as relações entre o fator de escala na imagem no eixox e y e a distancia focal da câmera,
e γ é a distorção do ângulo formado pelos eixos. Os valores obtidos para a matriz foram:
Tint =
657.356 −1.04332 296.153
0 655.221 255.375
0 0 1
(4.4)
Conhecida a matriz de parâmetros intrínsecos, o sistema de navegação pode ser inici-
alizado. O marco é então processado utilizando-se o método do losango, quatro pontos
dos vértices do losango são encontrados, e utilizando-se o método P4P, obtém se a matriz
de parâmetros extrínsecos. Com a matriz de parâmetros extrínsecos obtêm-se os pontos
dos vértices em valores métricos do ambiente, possibilitando assim a obtenção da pose do
humanóide (Figuras 4.11 e 4.12).
O softwarede gerenciamento do sistema de navegação apresenta em sua interface grá-
fica o processamento da imagem dos marcos naturais (linhas nochão) para a realização do
50 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
Figura 4.11: Sistema de navegação coope-rativa.
Figura 4.12: Imagem da obtenção dosquatro pontos da marca utilizando-se ométodo do Losango.
Figura 4.13:Interfacegráfica dosoftwarede gerenciamento do sistema de navegação
SLAM; e o processamento da marca do humanóide para a navegação cooperativa (Figura
4.13).
O sistema de navegação cooperativa provê a capacidade dos robôs de seguirem em
linha reta (Figuras 4.14 e 4.15). Esse sistema é capaz de conduzir o robô humanóide
em linha reta por 5 metros. Caminho que o robô humanóide não é capaz de fazer com
4.8. RESULTADOS 51
controle em malha aberta, dado o atrito de seus pés com o chão.Os dados de pose da mo-
vimentação do robô humanóide representada na Figura 4.15 podem ser vistos nas Figuras
4.16, 4.17, e 4.18. Os dados de pose da movimentação do robô com rodas representada
na Figura 4.15 podem ser vistos nas Figuras 4.19, 4.20, e 4.21. O sistema de navegação
cooperativa também provê a capacidade dos robôs de realizarcurvas (Figura 4.22).
Os vídeos gerados dos experimentos realizados nesse trabalho podem ser acessados
na página da internet no endereço http://www.dca.ufrn.br/˜gutemberg ou através de uma
busca naWorld Wide Webpor “gutemberg santos santiago”. Existem três vídeos relaci-
onados a esse experimento: a filmagem do experimento (reta e curva); as imagens das
câmeras embarcadas no robô; e uma representação gráfica a partir dos dados gerados no
experimento.
52 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
Figura 4.14: Representação gráfica do robô humanóide e do robôcom rodas
−1
0
1
2
3
4
5
6
7
−4 −2 0 2 4
Figura 4.15: Navegação cooperativa em linha reta. Representação gráfica gerada a partirdos dados de um experimento de navegação cooperativa em linha reta. Representados orobô com rodas (em vermelho) e o robô humanóide (em azul).
4.8. RESULTADOS 53
−0.24
−0.22
−0.2
−0.18
−0.16
−0.14
−0.12
−0.1
−0.08
−0.06
−0.04
−0.02
0 50 100 150 200 250 300 350
x (m
)
t (s)
Sapiens X
Posição X
Figura 4.16: Navegação cooperativa em linha reta. Representado posição x do robô hu-manóide no tempo.
0
1
2
3
4
5
6
0 50 100 150 200 250 300 350
y (m
)
t (s)
Sapiens Y
Posição Y
Figura 4.17: Navegação cooperativa em linha reta. Representado posição y do robô hu-manóide no tempo.
54 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
60
70
80
90
100
110
120
130
0 50 100 150 200 250 300 350
ângu
lo (
grau
s)
t (s)
Sapiens Ângulo
Ângulo
Figura 4.18: Navegação cooperativa em linha reta. Representado posição angular do robôhumanóide no tempo.
−0.0015
−0.001
−0.0005
0
0.0005
0.001
0.0015
0.002
0.0025
0.003
0.0035
0 50 100 150 200 250 300 350
x (m
)
t (s)
Karel X
Posição X
Figura 4.19: Navegação cooperativa em linha reta. Representado posição x do robô comrodas no tempo.
4.8. RESULTADOS 55
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
0 50 100 150 200 250 300 350
y (m
)
t (s)
Karel Y
Posição Y
Figura 4.20: Navegação cooperativa em linha reta. Representado posição y do robô comrodas no tempo.
88
88.5
89
89.5
90
90.5
91
91.5
0 50 100 150 200 250 300 350
ângu
lo (
grau
s)
t (s)
Karel Ângulo
Ângulo
Figura 4.21: Navegação cooperativa em linha reta. Representado posição angular do robôcom rodas no tempo.
56 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA
Figura 4.22: Navegação cooperativa realizando curva. Representação gráfica gerada apartir dos dados de um experimento de navegação cooperativarealizando curva. Repre-sentados o robô com rodas (com o seu rastro) e o robô humanóide: (a) os dois robôsestão alinhados, uma nova referência angular para o humanóide é gerada. (b) humanóideaproximando-se da nova referência. (d) humanóide na referência desejada. uma novareferência de pose para o robô com rodas é gerada. (e) robô comrodas aproximando-seda nova referência. (o) robô com rodas na referência desejada.
Capítulo 5
Conclusões e Perspectivas
Quando um distinto mas idoso cientista afirma que alguma coisaé possível, ele está quase sempre certo. Quando ele afirma quealgo é impossível, muito provavelmente ele está errado.
Arthur C. Clarke, (1917 - 2008)
Nesse trabalho desenvolveu-se e implementou-se um sistemade navegação coopera-
tiva para um sistema robótico formado por um humanóide não instrumentado e um robô
com rodas instrumentado. O sistema se mostrou eficaz para fazer a navegação do robô
humanóide e realizar SLAM no ambiente. Foi feito um experimento de navegação coope-
rativa realizando SLAM e cumprindo trajetórias básicas como seguir em linha reta e fazer
curvas.
As principais contribuições desse trabalho foram:
• a modelagem e a implementação, com a realização de experimentos em um robô,
de uma técnica de modelagem do sensor ótico de modo a permitirusar os parâme-
tros obtidos pelo processamento de imagem diretamente nas equações de EKF, sem
fases intermediárias de cálculo de pose ou distância;
• a implementação de um sistema de navegação cooperativa entre dois robôs baseados
em informação visual, que pode ser estendido para outras aplicações robóticas, dado
a possibilidade de se controlar robôs sem interferir em seu hardware, ou acoplar
dispositivos de comunicação.
• o aprimoramento do robôKarel, com a revisão e lançamento de uma nova versão do
softwareembarcado no robô e sua biblioteca de acionamento; e com a implantação
das duas câmeras e o desenvolvimento da biblioteca para a captura das imagens.
• o desenvolvimento de uma arquitetura desoftwarecom interface gráfica para o
envio e recepção de comando e dados, e o gerenciamento de todos os dispositivos
do robô.
58 CAPÍTULO 5. CONCLUSÕES E PERSPECTIVAS
Os métodos utilizados no desenvolvimento foram eficazes para o funcionamento do
sistema salvo pequenos detalhes a serem discutidos: a transformada de Hough se mostrou
precisa e robusta na detecção das retas, tanto no chão, como no padrão de calibração
destinado a obtenção dos parâmetros intrínsecos.
O método de calibração intrínseca de Zhang se mostrou apropriado ao problema, ga-
rantindo uma calibração flexível, robusta e de rápida obtenção. O erro total obtido na
calibração de câmera foi pequeno, dada a natureza do problema abordado neste trabalho.
Na obtenção dos parâmetros extrínsecos foi utilizado o algoritmo do losango e o mé-
todo P4P de Kamata. A detecção dos vértices do losango se mostrou rápida, precisa e
robusta, imune a pequenas variações de iluminação no ambiente, com um erro relativa-
mente pequeno. O método P4P de Kamata, que garante uma resposta em tempo constante,
por possuir uma solução analítica, é ideal para aplicações em tempo real. A desvantagem
desse método é não nos fornecer uma matriz de rotação ortonormal, o que requer a sua
ortonormalização pela decomposição em valores singulares.
Com esse trabalho, abrem-se várias possibilidades de extensão do sistema e utiliza-
ção dele para outras finalidades. Como trabalhos futuros parao sistema desenvolvido
pretende-se:
• alterar a modelagem do sistema de forma que o filtro de Kalman possa incluir a
informação visual captada do humanóide diretamente no filtro também. Ou seja,
utilizar as distâncias entre os vértices opostos do losangoe o ponto central do lo-
sango para representar informação de distância e giro do robô.
• melhorar as propriedades de tempo real do algoritmo de processamento de imagem,
adotando alguma variação da transformada de Hough que consuma menos tempo
de processamento.
• trabalhar com segmentos de linhas de tamanho finito, incorporando essa caracterís-
tica no algoritmo no passo de correspondência de linhas.
• modelagem do sistema mecânico pan-tilt de movimentação da câmera, para que a
sua movimentação permita uma flexibilidade maior na movimentação cooperativa
do sistema;
• implementar outras formulações do filtro de Kalman, por exemplo, o filtro de Kal-
man com observações parciais;
• investigar técnicas de busca em grafo que possam proporcionar a implementação
de um planejador em tempo real;
• expandir a idéia para ambientes dinâmicos;
• melhorar a heurística utilizada na navegação;
Referências Bibliográficas
Bezerra, Clauber Gomes (2004), Localização de um robô móvel usando odometria e
marcos naturais, Dissertação de mestrado, Universidade Federal do Rio Grande do
Norte, Natal, RN.
Borenstein, Johann & Liqiang Feng (1996), ‘Measurement and correction of systematic
odometry errors in mobile robots’,IEEE Transactions on Robotics and Automation
12(6), 869–880.
Castellanos, J., J. Neira & J Tardos (2001), ‘Multisensor fusion for simultaneous locali-
zation and map building’,IEEE Transactions on Robotics and Automation17(6).
Chen, Zhenhe & Samarabandu. Jagath (2006), A visual slam solution based on high le-
vel geometry knowledge and kalman filtering,em ‘IEEE Canadian Conference on
Electrical and Computer Engineering’.
Davison, Andrew J. (2003), Real-time simultaneous localisation and mapping with a sin-
gle camera,em‘IEEE International Conference on Computer Vision’, Vol. 2, Nice,
France, pp. 1403–1410.
Dissanayake, M.W.M. Gamini, Paul Newman, Steven Clark, HughF. Durrant-Whyte &
M. Csorba (2001), ‘A solution to the simultaneous localization and map building
(slam) problem’,IEEE Transactions on Robotics and Automation17(3).
Folkesson, John, Patric Jensfelt & Henrik I. Christensen (2005), Vision slam in the me-
asurement subspace,em ‘ICRA - IEEE International Conference on Robotics and
Automation’, Barcelona, Spain, pp. 30–35.
Gonzalez, Rafael C. & Richard E. Woodes (2000),Processamento de Imagens Digitais,
Edgard Blucher. ISBN: 8521202644.
Gonçalves, Luis, Enrico di Bernardo, Dave Benson, Marcus Svedman, Jim Ostrovski,
Niklas Karlsson & Paolo Pirjanian (2005), A visual front-end for simultaneous lo-
calization and mapping,em ‘ICRA - IEEE International Conference on Robotics
and Automation’, Barcelona, Spain, pp. 44–49.
59
60 REFERÊNCIAS BIBLIOGRÁFICAS
Hough, P. V. C. (1962),Methods and means for recognizing complex patterns, U. S. Patent
3069654.
IRTrans (2008), ‘Irtrans usb’, http://www.irtrans.de/en.
Jang, G., Kim S., Lee W & Kweon I (2002), Landmark based self-localization for indoor
mobile robots,em‘Proceedings of the IEEE Internaticonal Conference on Robotics
and Automation’.
Jensfelt, P., D. Kragic, J. Folkesson & M. Björkman (2006), A framework for vision based
bearing only 3d slam,em‘ICRA - IEEE International Conference on Robotics and
Automation’, Orlando, USA, pp. 1944– 1950.
Jim, T., S. Park & J. Lee (2003), A study on position determination for mobile robot
navigation in an indoor environment,em ‘Proceedings of the IEEE Internaticonal
Symposium on Computational Intelligence in Robotics and Automation’.
Kalman, R. E. (1960), ‘A new approach to linear filtering and predictive problems’,Tran-
sactions ASME, Journal of basic engineering.
Kamata, Sei-ichiro, Richard O. Eason, Masafumi Tsuji & Eiji Kawaguchi (1992), A ca-
mera calibration using 4 point-targets,em‘11th IAPR - International Conference on
Pattern Recognition’, Hague, Netherlands.
Launay, F., Ohya A. & Yuta S. (2002), A corridors lights basednavigation system inclu-
ding path definition using a topologically corrected map forindoor mobile robots,
em ‘Proceedings of the IEEE Internaticonal Conference on Robotics and Automa-
tion’.
Leon, Steve J. (1998),Álgebra Linear com Aplicações, Prentice Hall.
Lewis, M. A. & L. S. Simó (2001), ‘Certain principles of biomorphic robots’,Autonomous
Robots.
Ljung, L. (1987),System Identification: Theory for the User, Prentice-Hall.
Logitech (2008), ‘Quickcam pro 5000’, http://www.logitech.com.
Mouragnon, Etienne, Maxime Lhuillier, Michel Dhome, Fabien Dekeyser & Patrick Sayd
(2006), 3d reconstruction of complex structures with bundle adjustment: an incre-
mental approach,em‘ICRA - IEEE International Conference on Robotics and Au-
tomation’, Orlando, USA, pp. 3055–3061.
REFERÊNCIAS BIBLIOGRÁFICAS 61
Nogueira, Marcelo Borges (2005), Posicionamento e movimentação de um robô huma-
nóide utilizando imagens de uma câmera móvel externa, Dissertação de mestrado,
Universidade Federal do Rio Grande do Norte, Natal, RN.
P. E. Hart, N. J. Nilsson & B. Raphael (1968), ‘A formal basis forthe heuristic determi-
nation of minimum cost paths’,IEEE Transactions on Systems Science and Cyber-
neticspp. 100–107.
Santana, André M., Gutemberg S. Santiago & Adelardo A. D. Medeiros (2008), Real-
time visual slam using pre-existing floor lines as landmarksand a single camera,em
‘Proceedings of the Congresso Brasileiro de Automática 2008’.
Santana, André Macêdo (2007), Localização e planejamento de caminhos para um robô
humanóide e um robô escravo com rodas, Dissertação de mestrado, Universidade
Federal do Rio Grande do Norte, Natal, RN.
SDL (2008), ‘Simple directmedia layer’, http://www.libsdl.org.
Thrun, Sebastian, Wolfram Burgard & Dieter Fox (2005),Probabilistic Robotics, 1a edi-
ção, MIT Press, USA. ISBN 978-0262201629.
Vieira, Frederico Carvalho (2005), Controle linear de posição e orientação para robôs
móveis não-holonômicos com acionamento diferencial, Dissertação de mestrado,
Universidade Federal do Rio Grande do Norte, Natal, RN.
Williams, H. S. (1904), A History of Science: in Five Vo-
lumes. Volume II, Harper & Brothers. (Disponível em
http://etext.lib.virginia.edu/toc/modeng/public/Wil2Sci.html).
WowWee (2008), ‘Robosapien’, http://www.wowwee.com.
Wu, Jing & Hong Zhang (2007), Camera sensor model for visual slam,em‘IEEE Cana-
dian Conference on Computer and Robot Vision’.
Zhang, Z (2000), ‘A flexible new technique for camera calibration’, IEEE Transactions
on Pattern Analysis and Machine Intelligence22, 1330–1334.
Zucchelli, Marco & Jana Košecká (2001), Motion bias and structure distortion induced by
calibration errors, Relatório técnico, George Mason University. http://citeseer.
ist.psu.edu/kosecka01motion.html.