INTRODUÇÃO À ROBÓTICA MÓVEL
Edson PrestesDepartamento de Informática Teóricahttp://www.inf.ufrgs.br/[email protected]
Aula 15
REPRESENTAÇÃO DO AMBIENTE
Decomposição Aproximada - Occupancy Grid
Figuras Extraída de [6]
REPRESENTAÇÃO DO AMBIENTE
Decomposição Aproximada – 2m-trees¢ 2m-tree oferece uma decomposição hierárquica do espaço Ω
(definido no inicio da decomposição retangulóide) na forma de uma árvore de grau 2m, onde m é a dimensão do espaço de configurações.
¢ Cada nó da árvore é um retangulóide rotulado de vazio, ocupado ou misto. A raiz da árvore é Ω e apenas as células mistas podem ter filhos, cuja quantidade é 2m.
¢ Se m=2, a árvore é chamada quadtree. Se m=3 ela é chamada octree.
REPRESENTAÇÃO DO AMBIENTEDecomposição Aproximada – 2m-trees¢ A altura h da árvore determina a resolução da decomposição.
¢ Valores altos de h levam a células pequenas e possuem impacto direto na eficiência do processo de planejamento.
¢ O número máximo de folhas é 2mh
¢ Em geral, a decomposição de um nó na árvore ocorre se este for misto e se sua profundidade for menor que um valor pré-definido.
¢ As células mistas com profundidade igual a máxima permitida são rotuladas como ocupadas.
REPRESENTAÇÃO DO AMBIENTE
Decomposição Aproximada – 2m-trees
REPRESENTAÇÃO DO AMBIENTE
Decomposição Aproximada - 2m-trees
Figura Extraída de [1]
REPRESENTAÇÃO DO AMBIENTE
Decomposição Aproximada - Células de tamanho variável
Grade de Ocupação x Quadtree 17787 células x 2290 células
REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica l As decomposições fixa e adaptativa impõem um
conhecimento a priori do mundo, além do que desconsideram detalhes sobre o ambiente.
l A decomposição topológica concentra-se nos aspectos mais relevantes do ambiente, evitando medidas diretas das propriedades geométricas do ambiente.
l Uma representação topológica é um grafo G=(V,A), composto por um conjunto de vértices V e um conjunto de arestas A.
REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica l Os vértices representam áreas do ambiente, com
características distingüíveis. Por exemplo, uma intersecção de corredores, uma T-junction.
l As arestas mostram as conexões entre as diferentes áreas do ambiente e informam ao robô quais são atingíveis a partir de uma dada.
l É comum associar comportamentos específicos ou comandos às arestas de forma que o robô consiga se deslocar de um local para outro.
l Os vértices podem estar associados a áreas de diferentes tamanhos.
REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica
Figura Extraída de [1]
REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica l Para que um robô consiga navegar robustamente em um
ambiente ele deve possuir mecanismos para :� detectar a sua posição corrente em termos de vértices do grafo
topológico;� permitir uma navegação entre os vértices do grafo topológico.
l Devido ao nível de abstração da representação do ambiente, é difícil determinar com exatidão a localização espacial do robô.
REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica
Figura Extraída de [1]
REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica - RoadMapsl A abordagem roadmap captura a conectividade do
espaço livre do robô na forma de uma rede de curvas unidimensionais.
l Uma vez que o roadmap é construído, ele é usado como um conjunto de caminhos padrão.
l De acordo com Choset[7], roadmaps são exemplos de decomposição topológica.
l Existem vários tipos de roadmaps : grafos de
visibilidade; diagramas de voronoi, etc.
REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica – Diagrama de Voronoil É uma abordagem que tende a maximizar a distância entre
o robô e os obstáculos presentes no ambiente (clearance).
l Considere . Para qualquer , faça
e
O diagrama de Voronoi do espaço livre
REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica – Diagrama de Voronoil O diagrama de Voronoi consiste em um
conjunto finito de segmentos de retas e curvas, chamados arcos.
l Um arco é um segmento de reta se ele corresponder a um conjunto de configurações que estão mais próximas de um mesmo par de arestas que compõem os obstáculos do ambiente.
l Um arco é uma curva se ele corresponder a um conjunto de configurações que estão mais próximas de um mesmo par consistindo de pelo menos um vértice que compõe os obstáculos do ambiente.
Decomposição Topológica – Diagrama de Voronoi
e delimitam uma região, onde qualquer q possui card(near(q))=1.
REPRESENTAÇÃO DO AMBIENTE
Figura Extraída de [2]
Decomposição Topológica – Diagrama de Voronoi
REPRESENTAÇÃO DO AMBIENTE
Figura Extraída de [2]
Decomposição Topológica – Diagrama de Voronoil Planejamento usando o Diagrama de Voronoi é como
segue:� Computa
� Computa e e identifica os arcos de que contenham estes pontos
� Busca em uma seqüência de arcos A1, A2, … Ap de forma que e e para todo i ∈ {1,2,…, p-1} , Ai e Ai+1, compartilham um mesmo vértice.
� Se a busca termina com sucesso então retorna juntamente com a seqüência de arcos que os conecta.
REPRESENTAÇÃO DO AMBIENTE
Decomposição Topológica – Diagrama de Voronoi
REPRESENTAÇÃO DO AMBIENTE
Figura Extraída de [2]
REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica – Diagrama de Voronoil Os caminhos produzidos pelo diagrama de Voronoi não
são ótimos no que se refere ao seu comprimento do caminho total.
l Uma fraqueza do uso deste tipo de representação está associada ao uso de sensores de curto alcance que podem fazer com que o robô não consiga sentir obstáculos a sua volta.
l De acordo com [1], uma das principais vantagens é a facilidade em seguir os arcos de Voronoi através de simples regras de controle.
REPRESENTAÇÃO DO AMBIENTEDecomposição Contínual Usado como representação 2D de ambientes indoor.
l É considerado como método de decomposição contínua exata [1].
l O custo de armazenamento é proporcional à densidade de objetos presentes no ambiente.
l Os objetos do ambiente real são modelados através de primitivas geométricas.
REPRESENTAÇÃO DO AMBIENTEDecomposição Contínua
Figura extraída de [1]
REPRESENTAÇÃO DO AMBIENTEDecomposição Contínual O uso de sensores do tipo laser permite extrair linhas
mais facilmente que sensores sonar.
Figura extraída de [1]
REPRESENTAÇÃO DO AMBIENTEDecomposição Contínual Múltiplos retornos de sensores do tipo sonar permitem
estimar a estrutura de objetos simples.
Figuras extraída de [8]
REPRESENTAÇÃO DO AMBIENTEDecomposição Contínual Em geral, mapas baseados em características são
usados em conjunto com Filtro de Kalman.
l Filtro de Kalman representa as características através de um vetor de posições e uma matriz de covariança.
BIBLIOGRAFIAl [1] Siegwart, R. Nourbakhsh, I. R. Introduction to Autonomous Mobile
Robots, MIT Press, 2004.
l [2] Latombe, J. C. Robot Motion Planning, Kluwer Academic Publishers, 1991.
l [3] Bailey, T., Nebot, E. Localisation in large-scale environment. Robotics and Autonomous Systems, v.37, 2001.
l [4] Elfes, A. Sonar-based real world mapping and navigation. IEEE Journal of Robotics and Automation, v. RA-3, n.3, p.249-265, 1987
l [5] Elfes, A. Using occupancy grids for mobile robot perception and navigation. Computer Magazine, june, 1989.
BIBLIOGRAFIAl [6] Prestes, E. Navegação Exploratória baseada em problemas de valores de
contorno, Tese de Doutorado, UFRGS, 2003.
l [7] Choset, H. Lynch, K.M., Hutchinson, S. , Kantor, G., Burgard, W., Kavraki, L. E., Thrun, S. Principle of Robot Motion ; Theory, Algorithms, and Implementation.
l [8] Leonard, J.J., Durrant-Whyte, H. F. , Cox, I. J. Dynamic Map Building for an Autonomous Mobile Robot. IEEE IROS, 1990
Grades de Ocupaçãol Amplamente usada na área de Robótica.
l O ambiente real é representado por um conjunto de células de mesmo tamanho.
l Cada célula está associada a uma região quadrada do ambiente.
l É um exemplo de decomposição aproximada do ambiente.
Grades de Ocupação
Figura extraída de [1]
Grades de Ocupaçãol Permitem facilmente integrar as leituras dos sensores do
robô para gerar mapas.
l Isto é feito usando uma teoria formal de evidência como Bayes ou Dempster-Shape, ou heurísticas, como HIMM.
l É possível usar as grades de ocupação como sensores virtuais para algoritmos de tratamento de obstáculos.
l A atualização do mapa exige um modelo do sensor do robô.
Grades de Ocupação
I – região associada à leitura. Objeto pode estar em qualquer posição nesta área.
II – região vazia.
III – região “coberta” pelo sensor, mas desconhecida.
IV – região fora do campo de visão do sensor.
Figura extraída de [2] Figura extraída de [6]
Grades de Ocupação
Distribuição típica do sinal emitido por um sensor sonarFigura extraída de [3]
Grades de Ocupação - Bayesl Um método muito usado para atualizar a grade de
ocupação é converter as leituras dos sensores em probabilidades usando o Teorema de Bayes.
l Elfes e Moravec foram os pioneiros em 1980 no uso de probabilidades para atualizar a grade.
l Nesta abordagem o modelo do sensor gera uma probabilidade condicional da forma P(A|B).
Grades de Ocupação - Bayesl Sensores TOF Sonar podem observar se uma célula c em
particular está ocupada ou vazia.
l Este estado pode ser visto como um evento H={H,¬ H} ou H={ocupado, vazio}.
l A probabilida da ocorrência de H é representada por P(H) de forma que 0· P(H)· 1.
l Conhecendo P(H), sabemos P(¬ H), pois P(¬ H)=1-P(H).
l Esta probabilidade é chamada incondicional já que independe das leituras feitas pelos sensores do robô.
Grades de Ocupação - Bayesl Dada uma leitura s, a probabilidade de uma célula c
estar ocupada, ou seja, de ocorrer o evento H=ocupado é denotada por P(H |s).
l A probabilidade P(H|s) é calculada através da regra de Bayes da seguinte forma
l P(s|H) consiste na probabilidade da leitura s ter sido obtida dado que a célula c está ocupada. Esta probabilidade está relacionada ao modelo do sensor usado.
Slides sobre Probabilidade
Grades de Ocupação - Bayesl Um modelo simples mostrado em [2] é definido como segue:
l Para a região I
l Para a região II
l Tanto P(s|vazia) quanto P(s|ocupada) são armazenadas para cada célula.
Grades de Ocupação - Bayesl Considere a célula (marcada abaixo) com distância
r=3.5 e ®=0.l Usando as equações associadas ao
modelo do sensor definidas para a região II obtemos
P(s|vazia)=0.825P(s|ocupada)=0.175
Figura extraída de [2]
Grades de Ocupação - Bayesl Considere a célula (marcada abaixo) com distância r=6
e ®=5.l Usando as equações associadas ao
modelo do sensor definidas para a região I obtemos
P(s|ocupada)=0.52P(s|vazia)=0.48
Figura extraída de [2]
Grades de Ocupação - Bayesl A probabilidade P(H|s) é calculada por
mais especificamente
P(ocupada) e P(vazia) correspondem a probabilidade prévia (prior probability). Como não conhecemos o estado da célula previamente, é assumido que
P(ocupada)=P(vazia)=0.5
Grades de Ocupação - Bayesl Usando l Usando
l Sabendo que P(s|ocupada)=0.52 e P(s|vazia)=0.48 e P(ocupada)= P(vazia)=0.5
l Temos P(ocupada|s)=0.52l P(vazia|s)=0.48
l Isto ocorreu devido a probabilidade prévia ser 0.5. Em geral P(s|H) é diferente de P(H|s)
Figura extraída de [2]
Grades de Ocupação - Bayesl O método para calcular a probabilidade condicional a
partir de várias leituras é definido como
l Devido a independência das leituraspode ser simplificado para
l Um problema nesta abordagem é a necessidade de armazenar todas as probabilidades P(si|H)
Grades de Ocupação - Bayesl Através de P(H| s)P(s) = P(s|H)P(H) podemos escrever
de forma recursiva, como
Grades de Ocupação - Bayesl Considere três leituras feitas nos instantes t1, t2 e t3
como apresentado abaixo (exemplo extraído de [2])
Grades de Ocupação - Bayesl No passo 1 de atualização usando
temos
Assumindo
P (St2 |O) = 0.69, P (St2 |E) = 0.31
Grades de Ocupação - Bayesl No passo 2 de atualização usando
temos
Onde
Grades de Ocupação - Bayesl No passo 3 de atualização usando
temos
Onde
Grades de Ocupação -HIMMl O método HIMM – Histogramic In Motion Mapping [6] foi
desenvolvido por Borenstein e Koren na universidade de Michigan .
l A principal motivação para o desenvolvimento do método foi o tratamento dinâmico de obstáculos.
l O método bayesiano consumia muito tempo de processamento.
Grades de Ocupação -HIMMl O método HIMM usa o modelo de sonar mostrado na figura
abaixo
Figura extraída de [6]
l O modelo usado considera que apenas as células no eixo acústico são importantes.
l Isto gera uma quantidade muito menor de atualizações das células no cone de visão.
l Neste modelo são consideradas as taxa de atualização das células.
l Cada célula armazena um valor entre 0 e 15.
Grades de Ocupação -HIMMl Uma célula da grade é atualizada sempre que o eixo acústico
está sobre ela.
l Uma célula da grade é atualizada sempre que o eixo acústico está sobre ela.
l Se esta célula estiver na região associada à leitura feita pelo sensor, então ela será incrementada de 3 unidades.
l Se ela estiver a uma distância menor que a distância fornecida pela leitura do sensor, então ela é decrementada de 1 unidade.
Figura extraída de [6]
Grades de Ocupação -HIMMl Este processo coleta apenas uma pequena amostra do
ambiente, a qual é dependente da velocidade do robô.
Figura extraída de [2]
Grades de Ocupação -HIMMl Um exemplo de funcionamento é apresentado abaixo.
Figura extraída de [2]
Grades de Ocupação -HIMMl Uma das desvantagens do HIMM é que cada célula é atualizada
no máximo duas vezes. Isto faz com que cada célula tenha um grau de certeza igual a 6, o que corresponde a menos da metade do valor máximo permitido.
l Para tratar obstáculos dinâmicos o valor armazenado na célula é levado em consideração para ponderar a força de reação.
l Robôs com alta velocidade podem ter dificuldades para reagir adequadamente aos obstáculos presentes no ambiente.
l Para tratar este problema foi proposta uma nova forma de atualização dos valores na grade, chamada Growth Rate Operator.
Grades de Ocupação -HIMMl Quando um elemento é atualizado como ocupado, o
GRO é aplicado usando uma máscara de peso.
min(15,23)
Calculando o valor de atualização da usando a máscara.
Figuras extraídas de [2]
Grades de Ocupação -HIMMl Um exemplo de mapa gerado pelo método HIMM é
ilustrado abaixo
Figura extraída de [6]
Mapa produzido C o n s i d e r a n d o threshold=12
BIBLIOGRAFIAl [1] Prestes, E. Navegação Exploratória baseada em problemas de
valores de contorno, Tese de Doutorado, UFRGS, 2003.
l [2] Murphy, R.. Introduction to AI Robotics, MIT Press, 2000.
l [3] Siegwart, R. Nourbakhsh, I. R. Introduction to Autonomous Mobile Robots, MIT Press, 2004.
l [4] Neal, R. M. Probabilistic Inference using Markov Chain Monte Carlo Methods. Technical Report (CRG-TR-93-1). University of Toronto, 1993.
l [5] Thrun, S., Burgard, W. , Fox, D. Probabilistic Robotics, MIT Press, 2005.
l [6] Borenstein, J., Koren, Y. Histogramic In-Motion Mapping for mobile robot obstacle avoidance, IEEE Journal of Robotics and Automation, vol. 7, no. 4, 1991.
Probabilidadel Considere X1, X2,... Xn variáveis aleatórias que podem assumir valores
dentro de um conjunto discreto. Por exemplo
l Podemos ter um modelo probabilistítico completamente especificado pela probabilidade de união (joint probabilities) para cada possível associação de valores para as variáveis aleatórias.
Probabilidadel Assumindo A={1,2,...,m} e B={m+1,m+2,...,n}, a probabilidade
associada a um subconjunto de variáveis (probabilidade marginal) é dada por
Por exemplo,P(Clear,Rising)= P(Clear,Rising,Dry)+ P(Clear,Rising,Wet)P(Clear,Rising)= 0.4 + 0.07 = 0.47
Probabilidadel A probabilidade condicional para um subconjunto de variáveis, dado
os valores para outro subconjunto (disjunto), é definida por
l Por exemplo,
P ({xi : i � A}|{xj : j � B}) =P ({xj : j � B}|{xi : i � A})P ({xi : i � A})
P ({xj : j � B})
Probabilidadel Usando a probabilidade condicional chegamos ao Teorema de Bayes
Quando estamos lidando com múltiplas variáveis aleatórias, temos
P (x|y) =P (y|x)P (x)
P (y)Probabilidade a prioriProbabilidade a posteriori
Probabilidade inversa
l Considerando 2 variáveis aleatórias, sabemos que a probabilidade marginal
l Usando a probabilidade condicional
l Chegamos ao Teorema da Probabilidade Total (caso discreto)
P (x) =�
y
P (x|y)p(y)
P (x) =�
y
P (x, y)
Probabilidade
P (x|y) = P (x, y)/P (y)
Retorno
Top Related