81
UNIVERSIDADE DO RIO GRANDE DO NORTE FEDERAL 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 Mestrado apresentada ao Programa de Pós-Graduação em Engenharia Elétrica e de Computação da UFRN (área de concentração: Engenharia de Computação) como parte dos requisitos para obtenção do título de Mestre em Ciências. Natal, RN, maio de 2008

Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 2: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

.

Page 3: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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)

Page 4: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

.

Page 5: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 6: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

.

Page 7: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 8: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação
Page 9: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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!

Page 10: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação
Page 11: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 12: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação
Page 13: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 14: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação
Page 15: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 16: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 17: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 18: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 19: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 20: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação
Page 21: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 22: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 23: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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-

Page 24: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 25: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 26: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 27: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 28: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 29: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 30: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 31: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicaçã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)

Page 32: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 33: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 34: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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,

Page 35: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 36: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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)

Page 37: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 38: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 39: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 40: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 41: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 42: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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)

Page 43: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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].

Page 44: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

24 CAPÍTULO 3. SLAM VISUAL

Figura 3.1: Modelagem do sistema de SLAM para o robô com rodas

Page 45: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 46: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 47: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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)

Page 48: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 49: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 50: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 51: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 52: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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).

Page 53: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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):

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.

Page 54: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 55: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 56: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

36 CAPÍTULO 3. SLAM VISUAL

Page 57: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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].

Page 58: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

38 CAPÍTULO 4. NAVEGAÇÃO COOPERATIVA

Figura 4.1: Modelagem do sistema de navegação cooperativa.

Page 59: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 60: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 61: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 62: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 63: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 64: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 65: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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)

Page 66: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 67: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 68: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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).

Page 69: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 70: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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

Page 71: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 72: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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).

Page 73: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 74: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 75: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 76: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 77: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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ô.

Page 78: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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;

Page 79: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicaçã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

Page 80: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.

Page 81: Navegação Cooperativa de um Robô Humanóide e um Robô com …gutemberg/publications/files/M213.pdf · 2009-01-26 · Divisão de Serviços Técnicos Catalogação da Publicação

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.