INTRODUÇÃO À ROBÓTICA MÓVEL

Post on 30-Jun-2022

6 views 0 download

Transcript of INTRODUÇÃO À ROBÓTICA MÓVEL

INTRODUÇÃO À ROBÓTICA MÓVEL

Edson PrestesDepartamento de Informática Teóricahttp://www.inf.ufrgs.br/~prestesprestes@inf.ufrgs.br

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