O documento discute pesquisa e desafios em robótica móvel e veículos autônomos, incluindo:
1) Simuladores de robôs móveis como Player/Stage/Gazebo e seus usos para validação inicial de algoritmos.
2) Algoritmos inteligentes para robôs móveis como localização, mapeamento, SLAM e navegação.
3) Desafios da inteligência artificial para robótica móvel como sensores e atuadores imprecisos e ambientes dinâmicos e imprevisíveis.
1. 19/10/2010
Robôs Móveis e Veículos Autônomos:
Pesquisa, Desenvolvimento e Desafios
na área da Inteligência Artificial
Denis F. Wolf Fernando S. Osório Kalinka R. J. Castelo Branco
Universidade de São Paulo – USP - ICMC
Grupo de Sistemas Embarcados, Evolutivos e Robóticos - SEER
Laboratório de Robótica Móvel - LRM
INCT – Sistemas Embarcados Críticos
CLEI 2010
#1
Laboratório de Robótica Móvel – ICMC/USP
Desafios da Inteligência Artificial:
Pesquisa e Desenvolvimento de
Robôs Móveis e Veículos Autônomos
Denis F. Wolf Fernando S. Osório Kalinka R. J. Castelo
Branco
Universidade de São Paulo – USP - ICMC
Grupo de Sistemas Embarcados, Evolutivos e Robóticos - SEER
Laboratório de Robótica Móvel - LRM Parte II
INCT – Sistemas Embarcados Críticos
2
1
2. 19/10/2010
Robótica Móvel
• Simuladores de Robôs Móveis
• Player/Stage/Gazebo
• Algoritmos Inteligentes para Robôs Móveis
• Localização
• Mapeamento
• SLAM
• Navegação
CLEI 2010
#3
Robótica Móvel - Desenvolvimento
Simulação Testes em robôs Testes em robôs
de pequeno porte de grande porte
2
3. 19/10/2010
Robótica Móvel - Desenvolvimento
Simulação
Validação inicial dos algoritmos
desenvolvidos utilizando simuladores
de robôs e sensores.
Vantagens:
- Possibilidade irrestrita de experimentos
- Economia de tempo de desenvolvimento
- Evita danos aos robôs e sensores
Robótica Móvel - Desenvolvimento
Testes em robôs de pequeno porte
Validação do sistema em ambientes
reais de escala reduzida.
Vantagens:
- Ambientes e informações reais para
validação dos sistemas desenvolvidos
- Facilita a logística dos experimentos
- Diminui a chance de danos aos robôs e
sensores
3
4. 19/10/2010
Robótica Móvel - Desenvolvimento
Testes em robôs de grande porte
Validação do sistema em ambientes e
situações reais.
Características:
- Ambientes e informações reais para
validação dos sistemas desenvolvidos
- Logística complexa
- Possibilidade de danos aos robôs e sensores
Simuladores de Robôs Móveis
Carmen
• Desenvolvido na CMU
• Simula e controla robôs móveis
• Gratuito e código aberto
• SO: Linux
Aria/Saphira
• Desenvolvido pela MobileRobots
• Simula e controla robôs Pioneer
• Exige licença
• SO: Linux e Windows
CLEI 2010
#8
4
5. 19/10/2010
Simuladores de Robôs Móveis
Microsoft Robotics Studio
• Desenvolvido pela Microsoft
• Simula e controla robôs móveis
• Simulação física (3D)
• 3 tipos de licença
• SO: Windows
Webots
• Desenvolvido pela Cyberbotics
• Simula e controla robôs móveis
• Simulação física (3D)
• Exige licença
• SO: Linux, Windows e Mac.
CLEI 2010
#9
Player/Stage/Gazebo
• Player
• Sistema para controle de robôs móveis
• Suporta diversos tipos de robôs e sensores
• Stage
• Simulador de robôs móveis e sensores
• Ambientes bidimensionais
• Compatível com Player
• Gazebo
• Simulador de alta fidelidade
• Ambientes em 3 dimensões
• Compatível com Player
CLEI 2010
# 10
5
6. 19/10/2010
História do Player
• Projeto iniciado em 2000 na University of Southern California.
• Hoje em dia, seu core básico continua sendo desenvolvido
pelos autores originais, apesar de diversos pesquisadores
de diferentes instituições contribuem para o projeto.
• Atualmente, o Player é utilizado por diversas empresas
e universidades em 5 continentes.
+ 3.000 downloads por mês.
CLEI 2010
# 11
Características do Player
• Software livre
• Modelo Cliente/Servidor
• Desenvolvido para sistemas Linux/Unix
• Comunicação baseada em sockets
• Clientes em: C, C++, Java, Python etc
• Interface de alto nível para acesso ao hardware
• Suporta grande quatidade de plataformas robóticas
e sensores comerciais
CLEI 2010
# 12
6
7. 19/10/2010
Programa de controle
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se
ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
o ráusu od amargorP
o ráusu od amargorP
oiiiiráusu od amargorP
o ráusu od amargorP
ICP
aremaC
BSU
oãçisiuqA
resaL sodad ed
serosnes sod
l ai r e S
ranoS
otnemajenalP
airtemodO
sodnamoC
so arap
serotom o t n e m a c ol s e D
o d aj e s e d
serotoM l ai r e S
subnaC
CLEI 2010
# 13
Player
A imagem não pode ser exibida. Talv ez o computador não tenha memória suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se
ainda assim aparecer o x v ermelho, poderá ser necessário excluir a imagem e inseri-la nov amente.
reyalP amargorP
ICP oiiiráusu od
o ráusu od
o ráusu od
aremaC
BSU
oãçisiuqA
resaL sodad ed
serosnes sod
l ai r e S
ranoS
otnemajenalP
airtemodO
sodnamoC
o arap
rotom o t n e m a c ol s e D
o d aj e s e d
serotoM l ai r e S
subnaC
CLEI 2010
# 14
7
8. 19/10/2010
Abstração de hardware
A imagem não pode ser exibida. Talv ez o computador
não tenha memória suficiente para abrir a imagem ou
talv ez ela esteja corrompida. Reinicie o computador e
abra o arquiv o nov amente. Se ainda assim aparecer o x
v ermelho, poderá ser necessário excluir a imagem e
inseri-la nov amente.
acetoilbiB
erawdraH rod vreS
rod vreS
rodiiiivreS
rod vreS od etneilC
ôboR oD reyalP reya P
reyallllP
reya P
reya P
++C/C
rodalumiS rodivreS #C amargorP
egatS reya P
reyallllP
reya P
reya P avaJ oiráusu od
lcT
nohtyP
ybuR
psiL
rodalumiS evatcO
obezaG rod vreS
rod vreS
rodiiiivreS
rod vreS
reyalP
CLEI 2010
# 15
Modelo Cliente/Servidor
• Clientes podem se conectar a múltiplos servidores
• Servidores aceitam conexão de múltiplos clientes
• Operação remota
8
9. 19/10/2010
Modelo Cliente/Servidor
• Clientes podem se conectar a múltiplos servidores
• Servidores aceitam conexão de múltiplos clientes
• Operação remota
Modelo Cliente/Servidor
• Clientes podem se conectar a múltiplos servidores
• Servidores aceitam conexão de múltiplos clientes
• Operação remota
9
11. 19/10/2010
Gazebo - Simulação 3D
Veículo e ambiente de testes
Robótica Móvel
• Simuladores de Robôs Móveis
• Player/Stage/Gazebo
• Sistemas Robóticos Móveis Inteligentes
• Localização
• Mapeamento
• SLAM
• Navegação
CLEI 2010
# 22
11
12. 19/10/2010
Robôs Móveis - Características
Um robô móvel é uma máquina capaz de extrair informação do
ambiente e usar seu conhecimento sobre o mesmo para se
locomover com um propósito definido.
Ronald Arkin
Principais características:
• Mobilidade
• Capacidade de percepção
• Autonomia
• Inteligência
CLEI 2010
# 23
Robôs Móveis - Aplicações
Guia de museu Mapeamento de minas
Verificação da qualidade da água Navegação autônoma
CLEI 2010
# 24
12
13. 19/10/2010
Problemas
• Sensores são limitados e imprecisos.
• Atuadores são limitados e imprecisos.
• O ambiente e o estado interno do robô são
parcialmente observáveis.
• Ambientes reais são dinâmicos e imprevisíveis.
CLEI 2010
# 25
Modelo Básico
CLEI 2010
# 26
13
14. 19/10/2010
Robótica Móvel
• Simuladores de Robôs Móveis
• Player/Stage/Gazebo
• Sistemas Robóticos Móveis Inteligentes
• Localização
• Mapeamento
• SLAM
• Navegação
CLEI 2010
# 27
Localização
Estimar a posição do robô em um ambiente
Destino
previamente conhecido, utilizando
informações obtidas por sensores.
?
? ?
CLEI 2010
# 28
14
15. 19/10/2010
Robôs Móveis - Aplicações
Guia de museu Mapeamento de minas
Verificação da qualidade da água Navegação autônoma
CLEI 2010
# 29
Localização - Problemas
Efeito da imprecisão das informações dos sensores:
Trajeto real Odometria
CLEI 2010
# 30
15
16. 19/10/2010
Localização - Problemas
Efeito da imprecisão das informações dos sensores:
++++++ GPS
--------- Odometria
CLEI 2010
# 31
Localização – Tipos de problemas
Tracking
• Posição inicial é conhecida
• Busca local (correção de odometria)
Localização global
• Posição inicial não é conhecida
• Busca global
CLEI 2010
# 32
16
17. 19/10/2010
Localização - Soluções
Framework básico: Filtro de Bayes
Representação da posição do robô
• Distribuição Normal (Filtro de Kalman)
• Malha de células (Grid / Markov)
• Partículas/Amostras (Monte Carlo)
CLEI 2010
# 33
Filtro de Bayes
Nova Observação Deslocamento Estimativa
estimativa (diminuição do robô anterior
de incerteza) (aumento de incerteza)
CLEI 2010
# 34
17
18. 19/10/2010
Filtro de Kalman
• Uma das primeiras implementações práticas do
filtro de Bayes (1960).
• Hipóteses para utilização do filtro:
• Erro médio de cada variável igual a zero;
• Erro independente para cada variável;
• Modelo linear de evolução do sistema;
• Relacionamento linear entre variáveis de estado e
variáveis medidas.
• Se as hipóteses acima não forem cumpridas, a
optimalidade não é assegurada.
CLEI 2010
# 35
Filtro de Kalman
Algoritmo filtro de Kalman( µt-1, Σt-1, ut, zt):
Predição:
1. µ t = At µt −1 + Bt ut
2. Σ t = At Σ t −1 AtT + Rt
Correção:
−1
1. K t = Σ t Ct (Ct Σ t Ct + Qt )
T T
2. µt = µ t + K t ( zt − Ct µ t )
3. Σ t = ( I − K t Ct )Σ t
4. Return µt, Σt
CLEI 2010
# 36
18
19. 19/10/2010
Localização – Filtro de Kalman (EKF)
Atuação (movimento do robô):
aumento de incerteza
Percepção (sensores):
diminuição da incerteza
CLEI 2010
# 37
Localização - Filtro de Kalman
CLEI 2010
# 38
19
20. 19/10/2010
Filtro de Kalman - Avaliação
• Não é ótimo.
• Pode divergir de acordo a não-linearidade.
• Altamente Eficiente: complexidade polinomial com as
dimensões de medição k e de estado n: O(k2.376 + n2 )
•Funciona surpreendentemente bem, mesmo quando as
suposições básicas são violadas!
• Adequado para tracking (busca local)
CLEI 2010
# 39
Localização – Malha de células
Atuação (movimento do robô): aumento de incerteza
Percepção (sensores): diminuição da incerteza
CLEI 2010
# 40
20
21. 19/10/2010
Localização – Malha de células
Posição do robô: ( x, y,θ )
CLEI 2010
# 41
Localização - Exemplo
CLEI 2010
# 42
21
22. 19/10/2010
Malha de Células - Avaliação
• Possibilita localização global.
• Precisão depende das dimensões das células
• Altíssima demanda computacional
CLEI 2010
# 43
Localização – Partículas (Monte Carlo)
• Cada partícula representa a possibilidade do robô
estar naquela posição especifica.
• É atribuído um peso a cada partícula proporcional a
sua chance de representar a posição do robô.
• Partículas com peso baixo são excluídas.
• Dado número suficiente de partículas, é provado que
o método converge.
CLEI 2010
# 44
22
23. 19/10/2010
Filtro de Partículas
CLEI 2010
# 45
Propagação das Partículas
CLEI 2010
# 46
23
25. 19/10/2010
Filtro de Partículas
•Algoritmo bastante eficiente
computacionalmente
• Possibilita localização global
• Implementação relativamente simples
CLEI 2010
# 49
Robótica Móvel
• Simuladores de Robôs Móveis
• Player/Stage/Gazebo
• Sistemas Robóticos Móveis Inteligentes
• Localização
• Mapeamento
• SLAM
• Navegação
CLEI 2010
# 50
25
26. 19/10/2010
Mapeamento
Criar um modelo do ambiente a partir da localização
do robô e das informações obtidas por sensores.
CLEI 2010
# 51
Tipos de Mapas
• Mapas métricos: representam
propriedades geométricas do
ambiente de forma quantitativa.
• Mapas topológicos: representam
a conectividade entre determinados
locais do ambiente. Normalmente
são utilizados grafos nessa
representação.
CLEI 2010
# 52
26
27. 19/10/2010
Mapeamento Métrico – Grade de ocupação
• Dividir o espaço em células e estimar a
probabilidade de ocupação de cada célula
individualmente baseado na informação obtida
pelos sensores.
• Ao final, cada célula é
classificada como
ocupada, livre ou
indefinido.
CLEI 2010
# 53
Grade de Ocupação
Mapa: occupancy grid
CLEI 2010
# 54
27
28. 19/10/2010
Grade de Ocupação
CLEI 2010
# 55
Mapa baseado somente na odometria
CLEI 2010
# 56
28
29. 19/10/2010
Robótica Móvel
• Simuladores de Robôs Móveis
• Player/Stage/Gazebo
• Sistemas Robóticos Móveis Inteligentes
• Localização
• Mapeamento
• SLAM
• Navegação
CLEI 2010
# 57
Localização e Mapeamento Simultâneos
O SLAM é um dos maiores desafios
da robótica móvel.
Dados:
• Deslocamento do robô
• Informações obtidas pelos sensores
Deve-se estimar:
• O mapa do ambiente
• A localização/trajetória do robô
CLEI 2010
# 58
29
30. 19/10/2010
SLAM Summer School
CLEI 2010
# 59
SLAM – Associação de Dados
Incerteza na localização é
propogada no mapa
CLEI 2010
# 60
30
31. 19/10/2010
SLAM - Incerteza
Robot pose
uncertainty
Erros na associação de referências no mapa são
catastróficos.
CLEI 2010
# 61
Mapeamento e Localização
CLEI 2010
# 62
31
32. 19/10/2010
Mapeamento e Localização
CLEI 2010
# 63
SLAM – Filtro de Kalman
• Consiste em estimar a posição
do robô e dos landmarks com o
filtro de Kalman.
• As posição do robô e dos
landmarks são correlacionadas
através da matriz de covariância
CLEI 2010
# 64
32
33. 19/10/2010
SLAM – Filtro de Kalman
CLEI 2010
# 65
SLAM – EKF - Complexidade
x σx σxy σxθ σxl σxl σxl
2
L
1 2 N
y σxy σy σyθ σyl σyl σyl
2
L
θ σ
1 2 N
σyθ σθ2 σθl σθl L σθl
xθ 1 2 N
Bel xt , mt ) =
( l1 , σxl1 σyl σθl σl2 σl l L σl l
l σ
1 1 1 12 1N
2 xl2 σyl 2
σθl 2
σl l
12
σl22
L σl l
2N
M M M M M M O M
lN σxlN
σyl σθl σl l σl l
N N 1N 2N
L σl2
N
Um mapa com N landmarks estimará 2N+3 variáveis e terá
uma matriz de covariância de 2N+3 x 2N+3 elementos.
CLEI 2010
# 66
33
34. 19/10/2010
FastSLAM
Idéia básica: utilizar um filtro de partículas para
estimar a posição do robô e o mapa do ambiente.
Vantagens:
Modelos de percepção e controle não-lineares ☺
Permite diferentes associações de dados em paralelo ☺
Estima toda a trajetória do robô on-line ☺
Desvantagem:
Número de partículas necessário cresce exponencialmente
com o número de variáveis.
CLEI 2010
# 67
FastSLAM
3 particulas
mapa da particule 1 mapa da particula 3
mapa da particula 2
CLEI 2010
# 68
34
36. 19/10/2010
SLAM - Multirrobô
Posição inicial desconhecida.
CLEI 2010
# 71
Localização e Mapeamento – Robô Guia de Museu
CLEI 2010
# 72
36
37. 19/10/2010
Localização e Mapeamento em Ambientes Urbanos
Problemas:
• Complexidade
• Escala
• Irregularidade do terreno
• Difícil representação
CLEI 2010
# 73
Plataforma Experimental
CLEI 2010
# 74
37
38. 19/10/2010
Localização – Monte Carlo
Solução:
• Grande número de partículas
• Criação de áreas semi-ocupadas.
• Obtenção de pitch e roll por uma
unidade de medida inercial
• Depois de localizar o robô, estima-se a
trajetória utilizando o filtro de partículas
no sentido contrário.
CLEI 2010
# 75
Localização – Monte Carlo
CLEI 2010
# 76
38
39. 19/10/2010
Localização - Resultados
CLEI 2010
# 77
Localização – Filtro de Partículas e GPS
• Cada partícula representa uma
possível trajetória completa do robô
• É atribuído um peso a cada
partícula de acordo com sua
proximidade do GPS.
• Partículas que divergem do GPS
recebem peso baixo e são
eliminadas.
Pontos do GPS
partículas
CLEI 2010
# 78
39
45. 19/10/2010
Campos Potencias
CLEI 2010
# 89
Desvio de obstáculos
Vector Field Histogram
45
46. 19/10/2010
Desvio de obstáculos
Vector Field Histogram
Continuamos Amanhã...
Veículos Autônomos Inteligentes
CLEI 2010
# 92
46
47. 19/10/2010
OBRIGADO!
Laboratório de Robótica Móvel
www.lrm.icmc.usp.br
Denis Fernando Wolf – denis@icmc.usp.br
Fernando Santos Osório - fosorio@icmc.usp.br
Kalinka R. J. C. Branko - kalinka@icmc.usp.br
CLEI 2010
# 93
47