INTRODUÇÃO À ROBÓTICA MÓVEL Aula 20 Edson Prestes Departamento de Informática Teórica http://www.inf.ufrgs.br/~prestes prestes@inf.ufrgs.br
Exploração baseada em Fronteiras Método desenvolvido por Brian Yamauchi [1] e testado usando um robô NOMAD 200 equipado com laser e sonar. Assume que o mundo está sendo modelado por uma grade de ocupação bayesiana. A idéia básica é identificar as fronteiras entre as áreas abertas já observadas pelo robô e as áreas desconhecidas. Em seguida, ir em direção à fronteira escolhida As fronteiras entre as áreas desconhecidas e as áreas ocupadas previamente conhecidas não são de interesse para o robô.
Exploração baseada em Fronteiras Uma fronteira é detectada da seguinte forma: Qualquer célula explorada, associada ao espaço vazio, adjacente a uma célula desconhecida é rotulada como uma célula de fronteira. Células de fronteira adjacentes são agrupadas em regiões de fronteira. Qualquer região de fronteira com uma quantidade de células acima de um limiar pré-definido (da ordem do tamanho do robô) é considerada fronteira.
Exploração baseada em Fronteiras Mapa Atual Regiões de Fronteira Fronteiras Figuras extraídas de [1]
Exploração baseada em Fronteiras A escolha da fronteira a visitar pode ser feita de diferentes maneiras: a fronteira mais próxima; fronteira mais distante, maior fronteira, etc. Após a escolha da fronteira, a posição a ser alcançada é determinada pelo centróide das posições associadas às celulas da região da fronteira escolhida. O algoritmo usado por Yamauchi para ir em direção à fronteira é baseado em uma busca em profundidade na grade. Durante a navegação do robô, é usado um algoritmo reativo de desvio de obstáculos.
Exploração baseada em Fronteiras Figuras extraídas de [1]
Exploração baseada em Fronteiras Outro exemplo de Mapa construído (7.3m x13m). Mapeamento feito em meia hora. Figura extraída de [1]
Exploração Programação Dinâmica Proposto por Leonardo Romero [2,3]. O algoritmo é baseado na técnica de programação dinâmica, comumente chamada de iteração valorada. O ambiente de teste usado é indoor e estático. Em cada passo o robô tenta alcançar a mais próxima região não explorada que minimiza um valor de custo, chamado custo de navegação. O custo de navegação é elaborado de forma a lidar com as limitações perceptivas do robô mantendo-o a uma distância fixa das paredes do ambiente.
Exploração Programação Dinâmica O processo de exploração é dividido nos seguintes passos: 1) Processa a leitura fornecida pelos sensores e atualiza a probabilidade de ocupação das células do mapa. 2) Atualiza o espaço de navegação de acordo com as mudanças ocorridas no mapa 3) Escolhe o próximo movimento usando iteração valorada. 4) Executa o movimento; 5) Obtém as leituras do sensor e corrige os erros de odometria 6) Vai para o passo 1.
Exploração Programação Dinâmica No inicio da exploração do ambiente, todas as células possuem probabilidade de ocupação P(O)=0.5. Uma célula é não-explorada quando P(O) está próxima de 0.5, no intervalo [P emin,p emax ]. Uma célula está ocupada quando P(O) alcança um limiar dado por P omax e continua ocupada enquanto está acima de P omin. Um célula é livre quando P(O)<P omin. Isto binariza o mapa, em um mapa de células livres e ocupadas.
Exploração Programação Dinâmica Espaço de navegação Cada célula armazena seu tipo e sua distância d min em relação à célula ocupada mais próxima Exemplo definido para uma célula classificada como ocupada. Figura extraída de [2]
Exploração Programação Dinâmica A construção do espaço de viagem é feito da seguinte forma: 1) Todas as células livres são classificadas como far. 2) Se uma célula c muda de livre para ocupado, faça As células em volta da célula c, de acordo com o raio do robô, são classificadas como ocupadas. Para as outras células dentro a um raio Dw. Se o (tipo(d)=travel) ou (tipo(d)=far) ou ((tipo(d) = warning) and (dist(d)< d min (d) ) então d min (d) Ãdist(d) e tipo (d) Ãwarning Para as outras células a uma distância maior que Dw. Se tipo(d)=far então tipo (d) Ãtravel.
Exploração Programação Dinâmica 3) Se uma célula c muda de ocupado para livre, faça Dada uma célula d dentro do circulo de raio Dt centrado em c, então tipo (d) Ã far Para cada célula d ocupada dentro do círculo de raio 2Dt centrado em c, repete-se o passo 2. Isto realça o efeito das células ocupadas na vizinhança de c. 4) Repete-se os passos 2 e 3 até que o processo de construção do mapa termine.
Exploração Programação Dinâmica Células far Células ocupadas Células Warning Células Travel Figura extraída de [3]
Exploração Programação Dinâmica A exploração do ambiente é feito usando duas variáveis V e M associadas à cada célula (x,y). V(x,y) - representa o custo de navegação da célula em direção à célula não explorada mais próxima e M(x,y) - representa o movimento ótimo a partir da célula (x,y) para as células vizinhas. O custo é dado de acordo com o tipo da célula, as células do tipo warning e far têm custo maior que as células travel.
Exploração Programação Dinâmica Se a célula (x,y) é não-explorada então V(x,y)=0 Se a célula (x,y) é explorada então V(x,y) Ã 1 e M(x,y)=(0,0) Para todas as células livres (x,y) (x r,y r ) do espaço de viagem faça Onde Cost(r 1,r 2 ) é o custo de movimentação da célula r 1 para a célula r 2 Após a convergência tem-se a política ótima. A exploração termina quando V(x,y)= 1
Exploração Programação Dinâmica A função Cost(r 1,r 2 ) é definida por: C(x,y) é o custo associado ao tipo da célula (travel, far, warning). Dist (r 1,r 2 ) é a distância entre as células r 1 e r 2 que pode ser 1 ou K rot é o custo da rotação que o robô deve fazer para alcançar a célula
Exploração Programação Dinâmica Em um cenário onde existem muitas metas ou fronteiras a serem exploradas, é possível que uma celula muito distante da posição corrente do robô seja escolhida para ser explorada. Isto pode acontecer devido às constantes de custo. Para evitar isto, Romero[3] propõe uma mudança na inicialização do algoritmo de exploração. Apenas a celula não explorada mais próxima do robô terá seu valor V=0. Figura extraída de [3]
Exploração Programação Dinâmica Figura extraída de [3]
Odometria and Métodos de Dead-Reckoning Odometria permite boa precisão em curtas distâncias e possui baixo custo. Porém, devido à integração incremental do movimento do robô, ela leva ao acumulo de erros proporcional à distância navegada. Odometria é fundamental para dar uma estimativa do deslocamento do robô.
Odometria and Métodos de Dead-Reckoning Erros sistemáticos e não sistemáticos Odometria é baseada na idéia de que as revoluções da rodas do robô podem ser convertidas em deslocamento linear relativo ao chão. Esta idéia é limitada, pois considere o caso onde o robô está navegando por um chão sujo de óleo. Além disso, existem outras fontes de erros que podem gerar imprecisões na conversão das revolução em deslocamento linear: erros sistemáticos e não sistemáticos.
Odometria and Métodos de Dead-Reckoning Fontes de Erros Sistemáticos Diâmetro desigual das rodas; Medida do diâmetro modelado difere da medida do diâmetro real; Desalinhamento das rodas; Resolução finita do encoder; Taxa de amostragem das leituras do encoder finita,etc.
Odometria and Métodos de Dead-Reckoning Fontes de Erros Não-Sistemáticos Navegação em pisos irregulares; Derrapagem das rodas devido à: Presença de óleo no chão; Acelerações bruscas; Manobras rápidas; Forças externas (interação com objetos), etc.
Odometria and Métodos de Dead-Reckoning Erros sistemáticos e não-sistemáticos Na maioria das superfícies de ambientes internos erros sistemáticos contribuem mais para erros de odometria que erros não sistemáticos. Em superfícies irregulares, erros-não sistemáticos são dominantes. Erros não-sistemáticos podem aparecer inesperadamente. Portanto são mais difíceis de serem modelados.
Odometria and Métodos de Dead-Reckoning Erros sistemáticos e não-sistemáticos Figura extraída de [4]
BIBLIOGRAFIA [1] Yamauchi, B. A Frontier-based approach for Automonous Exploration. IEEE International Symposium on Computational Intelligence in Robotics and Automation (IEEE CIRA), Monterey, CA, July 1997, pp. 146-151 [2] L. Romero, E. Morales, L.E. Sucar. A Robust Exploration and Navigation Approach for Indoor Mobile Robots Mergind Local and Global Strategies. LNCS :Advances in Artificial Intelligence, vol : 1952/2000, pp-389-398, 2000. [3] L. Romero. Construcción de Mapas y Localización de Robots Móviles. PhD Thesis, disponível em http://faraday.fie.umich.mx/ ~lromero/. [4] Borenstein, J. Everett, H.R, Feng, L. Where am I? Sensors and methods for Mobile Robot Positioning, 1996. disponível para download em http://www-personal.umich.edu/~johannb/ position.htm