INTRODUÇÃO À ROBÓTICA MÓVEL

60
INTRODUÇÃO À ROBÓTICA MÓVEL Edson Prestes Departamento de Informática Teórica http://www.inf.ufrgs.br/~prestes [email protected] Aula 15

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

Page 1: INTRODUÇÃO À ROBÓTICA MÓVEL

INTRODUÇÃO À ROBÓTICA MÓVEL

Edson PrestesDepartamento de Informática Teóricahttp://www.inf.ufrgs.br/[email protected]

Aula 15

Page 2: INTRODUÇÃO À ROBÓTICA MÓVEL

REPRESENTAÇÃO DO AMBIENTE

Decomposição Aproximada - Occupancy Grid

Figuras Extraída de [6]

Page 3: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 4: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 5: INTRODUÇÃO À ROBÓTICA MÓVEL

REPRESENTAÇÃO DO AMBIENTE

Decomposição Aproximada – 2m-trees

Page 6: INTRODUÇÃO À ROBÓTICA MÓVEL

REPRESENTAÇÃO DO AMBIENTE

Decomposição Aproximada - 2m-trees

Figura Extraída de [1]

Page 7: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 8: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 9: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 10: INTRODUÇÃO À ROBÓTICA MÓVEL

REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica

Figura Extraída de [1]

Page 11: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 12: INTRODUÇÃO À ROBÓTICA MÓVEL

REPRESENTAÇÃO DO AMBIENTEDecomposição Topológica

Figura Extraída de [1]

Page 13: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 14: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 15: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 16: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 17: INTRODUÇÃO À ROBÓTICA MÓVEL

Decomposição Topológica – Diagrama de Voronoi

REPRESENTAÇÃO DO AMBIENTE

Figura Extraída de [2]

Page 18: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 19: INTRODUÇÃO À ROBÓTICA MÓVEL

Decomposição Topológica – Diagrama de Voronoi

REPRESENTAÇÃO DO AMBIENTE

Figura Extraída de [2]

Page 20: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 21: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 22: INTRODUÇÃO À ROBÓTICA MÓVEL

REPRESENTAÇÃO DO AMBIENTEDecomposição Contínua

Figura extraída de [1]

Page 23: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 24: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 25: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 26: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 27: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 28: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 29: INTRODUÇÃO À ROBÓTICA MÓVEL

Grades de Ocupação

Figura extraída de [1]

Page 30: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 31: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 32: INTRODUÇÃO À ROBÓTICA MÓVEL

Grades de Ocupação

Distribuição típica do sinal emitido por um sensor sonarFigura extraída de [3]

Page 33: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 34: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 35: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 36: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 37: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 38: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 39: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 40: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 41: INTRODUÇÃO À ROBÓTICA MÓVEL

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)

Page 42: INTRODUÇÃO À ROBÓTICA MÓVEL

Grades de Ocupação - Bayesl Através de P(H| s)P(s) = P(s|H)P(H) podemos escrever

de forma recursiva, como

Page 43: INTRODUÇÃO À ROBÓTICA MÓVEL

Grades de Ocupação - Bayesl Considere três leituras feitas nos instantes t1, t2 e t3

como apresentado abaixo (exemplo extraído de [2])

Page 44: INTRODUÇÃO À ROBÓTICA MÓVEL

Grades de Ocupação - Bayesl No passo 1 de atualização usando

temos

Assumindo

Page 45: INTRODUÇÃO À ROBÓTICA MÓVEL

P (St2 |O) = 0.69, P (St2 |E) = 0.31

Grades de Ocupação - Bayesl No passo 2 de atualização usando

temos

Onde

Page 46: INTRODUÇÃO À ROBÓTICA MÓVEL

Grades de Ocupação - Bayesl No passo 3 de atualização usando

temos

Onde

Page 47: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 48: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 49: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 50: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 51: INTRODUÇÃO À ROBÓTICA MÓVEL

Grades de Ocupação -HIMMl Um exemplo de funcionamento é apresentado abaixo.

Figura extraída de [2]

Page 52: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 53: INTRODUÇÃO À ROBÓTICA MÓVEL

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]

Page 54: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 55: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 56: INTRODUÇÃO À ROBÓTICA MÓVEL

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.

Page 57: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 58: INTRODUÇÃO À ROBÓTICA MÓVEL

Probabilidadel A probabilidade condicional para um subconjunto de variáveis, dado

os valores para outro subconjunto (disjunto), é definida por

l Por exemplo,

Page 59: INTRODUÇÃO À ROBÓTICA MÓVEL

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

Page 60: INTRODUÇÃO À ROBÓTICA MÓVEL

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