Você está na página 1de 42

PGEE-5558 Robótica Móvel

Navegação Reativa de Robôs Móveis


(Baseada no Fluxo Óptico)
Motivação
 Para o homem, a visão é um dos sentidos mais poderosos e complexos, que lhe
permite reconhecer objetos, avaliar distâncias entre objetos, estimar a própria
velocidade e a de objetos ao seu redor

 Utilização de visão em robôs: como obter noção de tridimensionalidade?

 Inspiração da natureza
◦ O homem possui um sistema de visão estéreo onde a informação sobre distância
a objetos no campo visual é obtida usando as diferenças entre as imagens de um
mesmo objeto, obtidas por cada um dos olhos, para estimar a profundidade em
que ele se encontra
◦ Com olhos posicionados à frente da cabeça o campo visual é captado pelos dois
olhos ao mesmo tempo
Motivação
 Inspiração da natureza
◦ Homem - campo visual de 180 graus, com cerca de 140 graus de
sobreposição

◦ Essa configuração é compatível com


animais carnívoros e onívoros, que
precisam de habilidades especiais para
localizar precisamente suas presas.
◦ As presas precisam ter um campo visual
mais amplo.
◦ Seus olhos são posicionados na lateral da
cabeça com pouca sobreposição das imagens
dos dois olhos.
Motivação
◦ Cavalos - campo visual de cerca de 300 graus com cerca de 60 graus de
sobreposição
 Nos pássaros os olhos são maiores,

proporcionalmente à cabeça e mais encaixados na


mesma.
 Quase não pode mover os olhos, precisando mover a

cabeça
Motivação

 Pessoa que perde visão de um olho perde noção de


profundidade?
 Não. Ela pode aprender a usar outras características da visão
monocular.
 À medida que a pessoa se move pode notar que os objetos
mais próximos se movem mais rapidamente em seu campo
visual do que os objetos mais distantes.
Motivação
 A variação temporal do padrão de brilho na retina do observador é o
chamado fluxo óptico, e, a partir dele, é possível, sob certas
condições, recuperar a estrutura 3D do ambiente

 As abelhas possuem dois grandes olhos


compostos localizados na parte lateral da
cabeça
 Durante o voo em um corredor, sempre se
 Os pombos estimam distância e identificam objetos
mantêm no meio do mesmo
usando o fluxo óptico gerado quando movem suas
 As abelhas medem o fluxo óptico à sua direita
cabeças
e à sua esquerda e se movem no corredor
tentando igualar o valor obtido nos dois lados
Quais
  seriam os vetores e
caso a imagem fosse a
Fluxo óptico mesma? Absolutamente zero.
Logo, tem que haver
 Distribuição de velocidades movimento relativo entre
aparentes do movimento de câmara e objeto.
um padrão de brilho em
uma imagem, sempre que
se considera uma sequência
de imagens
 Aparece, geralmente,
devido ao movimento Imagem 1 y Imagem 2

relativo entre os objetos na


cena e a câmera Componente v Vetor de fluxo
óptico
x

Componente u
Cálculo do fluxo óptico

  
Considera-se que o brilho da imagem é constante no tempo, ou seja , ou ,
que resulta em , sendo as derivadas de em relação a , a e ao tempo. Os
valores são as componentes do vetor de fluxo óptico nas direções .
 Restrição do fluxo óptico: a diferença entre as imagens na sequência deve ser
pequena
 É um problema mal condicionado (uma equação e duas incógnitas)

 Métodos Diferenciais (ou baseados no gradiente): o fluxo óptico é calculado


a partir das derivadas espaciais e temporal do brilho da imagem.
 Métodos Baseados em correlação ou matching por regiões: definem o
fluxo óptico como sendo o deslocamento de uma região entre duas imagens
obtidas em instantes consecutivos.
Métodos diferenciais para cálculo do
fluxo óptico

  
Consideram a restrição do fluxo óptico, ou seja, , ou
 Adicionam alguma outra consideração para obter uma solução, dado que o
problema é mal condicionado

 Algoritmos diferenciais
 Usando critério de suavidade em toda a imagem
 Usando critério de suavidade local
◦ Fluxo constante, com solução por mínimos quadrados
Algoritmo de Horn e Schunck

  Minimiza a soma dos laplacianos de e
 O fluxo óptico é obtido de maneira iterativa, através das equações

u n1  u n  I x I x u n  I y v n  I t   2
 I x2  I y2 
i,j,k i,j+1,k
v n1
 v  Iy
n
I u  I v
x
n
y
n
 I  
t
2
I I
2
x
2
y  i,j,k+1 i, j+1, k+1

i+1,j,k i+1,j+1, k
onde  é uma constante, é a iteração atual, e são i+1,j,k+1 i+1,j+1,k+1
valores iniciais
i+1,j,k+1 i+1,j+1,k+1
quaisquer. Os valores e são uma média ponderada de e em uma
vizinhança 33 do pixel considerado
Algoritmo de mínimos quadrados
(Lucas e Kanade)

  
Considera fluxo constante em regiões de pixels.
 Para cada pixel na região tem-se , ou
 Monta o sistema de equações , onde e
 Obtém a estimativa de mínimos quadrados ponderada do vetor de fluxo
óptico na região de pixels é obtida, onde é uma matriz de pesos
 Se é a matriz identidade, então a estimativa do vetor de fluxo óptico por
mínimos quadrados em tal região torna-se
Algoritmo de mínimos quadrados
modificado
 Considera fluxo constante em cada região de pixels
  
 Escreve a equação para pixels escolhidos aleatoriamente e monta o
sistema , onde e
 Obtém a solução de mínimos quadrados dada por
 Vantagem: não calcula as derivadas do brilho em todos os pixels, o que
pode ser muito interessante em termos computacionais, principalmente
quando se toma .
Comparação entre os algoritmos


  
Experimento de movimento paralelo à parede (componente vertical
esperada do vetor de fluxo óptico nula - , com componente horizontal de
valor constante - )
 Experimento de movimento perpendicular à parede
 Tempo de cálculo
 Complexidade do algoritmo
Movimento paralelo à parede
 O robô se move paralelamente à parede com velocidade constante
 O fluxo óptico medido deve ser horizontal e de módulo constante em toda
a imagem
Movimento paralelo à parede -
Resultados

Algoritmo   f f

Horn e Schunck 178,62 21,88 0,72 0,38


Mínimos Quadrados 178,56 6,15 1,30 0,48
Mínimos Quadrados Modificado 182,54 10,42 1,26 0,52
 Valor esperado = 180 graus

,  com desvio padrão


, com erro médio
Movimento perpendicular à parede
 
 O robô se
 move perpendicularmente à parede
 O fluxo óptico medido deve ser radial, partindo do FOE de coordenadas
 O tempo para contato pode ser medido como
Movimento perpendicular à parede -
Resultados
Valor superestimado

Algoritmo  (s)

Horn e Schunck 7,78

Mínimos Quadrados 4,93

Mínimos Quadrados Modificado 4,89

Valor esperado  = 5 segundos

Valores subestimados
Tempo de execução Interessante
para Robótica

Algoritmo Tempo (%)


Horn e Schunck 100
Mínimos Quadrados 32
Mínimos Quadrados Modificado 2

Rodando em um computador Pentium II 400MHz, com Windows NT

Muito interessante
para Robótica
 Características do  Metodologia
problema • Definição do algoritmo de cálculo do
fluxo óptico
• Desenvolvimento de um
sistema de detecção de • Detecção de objetos baseada numa
obstáculos baseado no fluxo
óptico para controlar a óptico Aplicação
estratégia de segmentação do fluxo

Navegação de Robôs Móveis com


navegação de um robô móvel • Cálculo do tempo para contato a cada
objeto detectado
Cálculo a bordo do robô
Base no Fluxo deÓptico

• Proposta um sistema de controle
• Câmera fixa utilizando os resultados obtidos
• Ambiente semiestruturado, • Experimentos com o robô móvel
sem adição de texturas Pioneer 2DX
• Testes: LAI e Robô móvel
Pioneer 2DX
 Escolha do algoritmo Detecção de objetos a
de fluxo óptico partir do fluxo óptico
• A segmentação baseada no fluxo óptico
• O algoritmo de Mínimos Quadrados consiste em agrupar os pixels cujos
Modificado foi escolhido para a vetores de fluxo óptico estejam
implementação a bordo, pela sua associados ao mesmo movimento e
baixa carga computacional estrutura no espaço 3D
• Ele apresentou bons resultados nos
• A base é o entendimento que grupos de
pixels com vetores de fluxo óptico
dois experimentos, além de ser o
similares muito provavelmente
mais simples computacionalmente, correspondem a um mesmo objeto
e, consequentemente, o mais rápido
de todos
Processo de segmentação

 Objetivo:
  agrupar pixels vizinhos com fluxo
semelhante, ou seja, aqueles para os quais a
diferença atende à métrica

para da norma do fluxo na região .


A medida representa a diferença dos vetores de
fluxo óptico representada na figura
 Uma única varredura das regiões da imagem,
considerando vizinhança-oito (u,v)
(k,l) y

Diferença

(u,v)(i,j)

x
Obtenção do diagrama de tempos
para contato

 Determinar o foco de expansão do campo de fluxo óptico, cujas
coordenadas são as coordenadas do pixel para o qual as
componentes do fluxo óptico são nulas
 Calcular o tempo para contato a cada região da imagem como

 Obter um valor único de tempo para contato associado a cada


objeto detectado
 Determinar o menor tempo para contato entre os objetos em cada
linha vertical do campo visual
O que é o diagrama de tempos para
contato?
Só os
objetos
mais
próximos

Mapa de tempos
para choque

Segmentação
Definição da manobra para desvio
do obstáculo
   determinação do ângulo de giro é feita a partir do diagrama de
A
tempos para contato
◦ Tratar cada coluna da imagem como sendo um sensor de tempo para
choque (distância)
◦ Atribuir um ângulo de giro à direita e à esquerda para cada coluna, capaz
de fazer o robô desviar-se do obstáculo naquela direção, dados por e ,
para
◦ Calcular os ângulos de giro para a direita e para a esquerda, através de
fusão de dados relativos aos ângulos de desvio usando dois filtros de
Kalman, considerando e , em um caso, obtendo , e e , no outro caso,
obtendo . O ângulo de desvio global, então, é escolhido como .
Detecção de objetos planos
verticais tais como paredes

 Geram fluxo radial e um diagrama de tempos para contato uniforme e


resultando na segmentação de um objeto ocupando a maior parte da
imagem

 Assim, se o diagrama de tempos para contato é uniforme e apresenta


um tempo pequeno, o robô está diante de uma parede

 O mesmo se pode concluir, se o processo de segmentação gerar um


objeto que ocupe toda a imagem
Presença de rotação durante a
aquisição das imagens
 Tipos de rotação:
◦ em relação ao eixo vertical do robô
◦ do eixo da câmara em relação à horizontal
 Na presença de rotação o fluxo óptico é constante
em toda a imagem. Assim, o diagrama de tempos
para contato é uniforme e o processo de
segmentação gera um único objeto, ocupando a
maior parte da imagem
 Consequência: detecção equivocada de parede
Rotação em torno do eixo vertical
do robô - Exemplo
Detecção de objetos muito
próximos ao robô a partir do
fluxo médio
 Objetos próximos geram fluxo de módulo
maior
 Calculando o valor médio do módulo do fluxo

em cada objeto, pode-se detectar objetos


próximos
 Vantagem: funciona bem em presença de

rotação
Detecção de objetos a partir do
fluxo médio
O sistema de controle
 Utilizar os dados do sensoriamento baseado
no fluxo óptico para controlar a navegação
do robô
 Condições do problema:
◦ O robô deve vagar pelo ambiente, apresentando
um comportamento reativo
◦ As imagens devem ser adquiridas em translação
pura
Uma ideia do sistema de
controle
Iniciar movimento
de translação

Girar o ângulo Adquirir e


determinado processar imagens

Determinar o
ângulo de giro
necessário
O sistema de controle implementado
Início do
Obstáculo Lateral Movimento

Perigo à
Frente Fim da Ré Fim do Giro Comando
Avaliação Retroceder Girar de
Avançar

Ângulo
Iniciar
Calculado

Normal Calcular
Inativo
Ângulo
Detalhes de implementação
 Aquisição de imagens feita em 320240, não 640480
 Cálculo do fluxo óptico pelo método de Mínimos Quadrados
Modificado, usando a biblioteca OpenCV da Intel. Imagens
divididas em regiões de 1010 pixels. Tomados 12 pixels fixos
 A segmentação é realizada usando vizinhança-quatro
 Na determinação do FOE são eliminados os objetos formados
por apenas uma região
 O tempo para contato a cada objeto é obtido como o valor
médio dos tempos das regiões pertencentes a ele
 O diagrama de tempos para contato é feito eliminando objetos
com apenas uma região e os objetos muito próximos ao FOE
Primeiro experimento de navegação
Trajeto do robô no primeiro
experimento
Segundo experimento de navegação
Trajeto do robô no segundo
experimento
Terceiro experimento de navegação
Trajeto do robô durante o
terceiro experimento
Experimento de detecção de paredes
Trajeto do robô durante o
experimento onde evita parede
Navegação em Corredores

Você também pode gostar