métodos de navegação em robótica

34
2003 Eugénio Oliveira Robótica Inteligente Módulos Funcionais de um (hipotético) Robô Móvel Inteligente: Módulos Funcionais relacionados com o Controlo

Upload: nguyenhuong

Post on 09-Jan-2017

243 views

Category:

Documents


16 download

TRANSCRIPT

2003 Eugénio Oliveira

Robótica InteligenteMódulos Funcionais de um (hipotético) Robô Móvel Inteligente:

Módulos Funcionais relacionados com o Controlo

2003 Eugénio Oliveira

Navegação do Robô

Módulos da Arquitectura de controlo hipotética

Objectivos essenciais na Navegação. Funções para responder a: Para onde ir? Por onde ir? Onde estive? Onde estou?

Módulos Funcionais relacionados com a Navegação

2003 Eugénio Oliveira

Navegação do RobôNavegação envolve:

PercepçãoAcçãoPlaneamentoRepresentaçãoArquitectura de controloHardwareEficiência computacionalResolução de Problemas

O Planeamento clássico assume:sensores sem erros e robô com capacidade de localização

Planeamento de caminhos (Navegação) lida com ruido, incertezas, mapeamento

2003 Eugénio Oliveira

Navegação do Robô

Tipos de algoritmos para planeamento do Movimento:

A- Decomposição celular: espaço contínuo dividido em um número finito de célulaslevando a uma pesquisa discreta.

B- Esqueletização: calcular um “esqueleto” unidimensional do espaço (uma linha)

C- Navegação baseada em marcos: assume a existência de regiões onde o robô pode ser localizado através de marcos fixos. Fora delas terá apenas uma orientação.

D- Algorítmos “em-linha”: assumem o desconhecimento completo do ambiente

2003 Eugénio Oliveira

Navegação do Robô

A- Decomposição celular: espaço contínuo dividido em um número finito de célulaslevando a uma pesquisa discreta.

Memória Espacial: Representação do Mundo para o RobôProcessa e representa a informação sensorialInfere informação relevante para a Navegação

Funções ligadas à Memória Espacial:atenção ao que procurarraciocinar sobre hipóteses (Pode atravessar esta porta?)planear para encontrar o melhor caminhocoligir nova informação

2003 Eugénio Oliveira

Navegação do Robô

Memória Espacial Quantitativa:Espaço em termos de distâncias físicasPerspectiva independente (de cima)Pode gerar memória espacial qualitativa

Memória Espacial Qualitativa:Espaço em termos de ligações entre marcasPerspectiva do robô

2003 Eugénio Oliveira

Navegação do RobôNa determinação de caminhos é importante:

decompor o caminho em partes entre pontos intermédiosaproximar ao melhor caminhocomo representar o conhecimentoqual o algoritmo

Espaço de configuração:permite representar localização e orientação do Robô e dos Objectosassume-se:

robô redondo, 2 graus de liberdade, holonómico (pode rodar sobre um eixo)

“crescimento dos obstáculos” de acordo com a largura do robô.Robô transforma-se num ponto sem dimensões

2003 Eugénio Oliveira

Navegação do Robô

Posição inicial Robô

Posição final RobôObjectos aumentados

2003 Eugénio Oliveira

Navegação do Robô

Objectos aumentados

Robô considerado como um ponto

2003 Eugénio Oliveira

Navegação do RobôExemplos de representações de Configurações de Espaço

A- Decomposição celular: espaço contínuo dividido em um número finito de célulaslevando a uma pesquisa discreta.

1- Dividir o espaço livre E em regiões simples (ex: rectangulares) contíguas;

2- Determinar que células são adjacentes a outras e construir um grafo deadjacências; Os vértices do grafo são as células; arcos juntam nós correspondentes a células contíguas;

3- Pesquisar um caminho entre os nós (células) início e objectivo;

4- da sequência de células encontrada para o caminho, compute trajectos dentro de cada célula de um ponto na fronteira com a célula anterior atéà fronteira com a próxima célula;

2003 Eugénio Oliveira

Navegação do RobôA- Decomposição celular: espaço contínuo dividido em um número finito de célulaslevando a uma pesquisa discreta.

1- Dividir o espaço livre E em regiões simples (ex: rectangulares) contíguas;

2003 Eugénio Oliveira

Navegação do Robô

Células simples (rectangulares)Ligar as fronteiras de cada célula por um segmento de recta

A Decomposição celular não é exacta.

Podem ligar-se os centroides de cada célula

O algoritmo pode ir variando a largura das células de forma adaptativa

Algoritmo seguro mas não completo (pode não encontrar a solução)

Admitindo as células sempre livres o algoritmo é completo (propõe sempre uma solução)

Mas não é seguro ( a “solução” pode não ser viável).

2003 Eugénio Oliveira

Navegação do RobôNuma decomposição celular exacta, as células tem fronteiras que são os próprios Obstáculos.

As células tem fronteiras curvas (células cilindricas) nos topos mas deve manter-se recta nos lados.

A largura dos cilindros não é fixa.

Encontram-se pontos críticos para ajudar a decomposição.

Pontos críticos são aqueles cuja fronteira (do obstáculo) é vertical

Fazendo varrer uma linha vertical pelo espaço, pontos críticos são aqueles onde essa linha se parte ou onde dois segmentos dela, antes partidos, se juntamde novo

2003 Eugénio Oliveira

Navegação do RobôDecomposição cilindrica do espaço.Existem aqui 9 cilindros:

2003 Eugénio Oliveira

Navegação do RobôO Algorítmo A* é um bom candidato para calcular o melhor caminho em um espaçode representação conhecida.

Pode gerar-se também o Plano global e depois tentar ultrapassar localmente Obstáculos imprevistos.

São algoritmos Completos mas gerando passos sub-óptimos

Pode-se também replanear o Plano global sempre que, durante a execução nova Informação aparece que contradiz a anterior.

Estes algoritmos de replaneamento podem ser custosos em tempo.

A representação do espaço com “quadtrees” pode dar mais alguma eficiência poisrepresenta melhor o espaço livre e os obstáculos.

2003 Eugénio Oliveira

Algoritmo D*Seja um Robô com sensores e com um Mapa que pode ser incompleto ou impreciso.

O Algorítmo D* (Dynamic A*) também faz pesquisa em grafo mas admite constante replaneamento à medida que nova informação vai chegando ao Robô.

Os nodos do grafo são estados (localizações do Robô) ligados por arcos etiquetados com custos. Custos podem ser distâncias, tempo, riscos, gastos de energia...

Tais custos podem ser reavaliados à medida que o robô vai progredindo no espaço.

O algoritmo pode ser usado com grafos de visibilidade ou representação por grelhas

D* produz caminhos óptimos em ambientes dinâmicos. Incorpora conhecimento do ambiente em tempo-real. Replaneia quando algo inesperado é detectado

2003 Eugénio Oliveira

Cada estado (nó) X, excepto G, tem um apontador para um estado seguinte Y,b(X)=Y

D* usa estes apontadores para representar o caminho para o Objectivo G.

Os arcos tem um custo c(X,Y) (que pode estar indefinido).Existindo c(X,Y) ou c(Y,X) dois nós X e Y são considerados vizinhos.

Algoritmo D*

Como no A*, o D* mantém uma LISTA ABERTA (LA) de nós que vão ser analisados e que serve para propagar os custos.

Os nós tem uma etiqueta t(X)t(X)=Novo se X nunca pertenceu à Lista Abertat(X)= Aberto se X pertence à Lista Abertat(X)= Fechado se X já não pertence à Lista Aberta

Para cada nó X, D* mantém uma estimativa do custo de X até G h(G,X).

2003 Eugénio Oliveira

Para cada nó X na Lista Aberta a função Chave k(G,X) guarda o mínimo dos custosestimados de X a G desde o inícial h(G,X) até ao presente.

Os nós são classificados como:AUMENTADOS se k(G,X) < h(G,X) ou BAIXADOS se k(G,X) = h(G,X)

Algoritmo D*

D* usa os nós AUMENTADOS da Lista Aberta para propagar os aumentos no custoe os BAIXADOS para propagar as reduções de custo do caminho.

Sempre que um Nó é retirado da Lista Aberta ele é expandido e os custos são propagados para os seus vizinhos os quais são colocados na Lista Aberta.Estados (nós) com etiqueta ABERTO, na Lista Aberta estão ordenados de acordocom os valores da função chave.

2003 Eugénio Oliveira

Todos os passos com custo inferior ou igual a min(k(X)) são óptimos

Kold = Kmin antes da mais recente extracção de um nó da LA

D* guarda sequências {G,Xi} de nós correspondentes a passos monótonos (i de 1 a N):

Se nós FECHADOS (t(Xi)=FECHADO)Então h(G,Xi) < h(G,Xi+1)

Se nós ABERTOS (t(Xi)=ABERTO) Então k(G,Xi) < h(G,Xi+1)

Algoritmo D*

2003 Eugénio Oliveira

Simplificando f(X) =f(G,X) e {X} ={G,X}

Algoritmo D* é basicamente constitudo por 2 funções:

Processar_Estado: Computa o passo óptimo para o objectivo

Modificar_Custos: altera os custos dos arcos e dá entrada aos nós afectados na Lista Aberta

Algoritmo D*

Inicialmente: todos os nós são etiquetados como NOVO, h(G)=0 G vai para a Lista Aberta

A função Processar_Estado é chamada recursivamente até o nó X estar fora da Lista Aberta,i.e. t(X)=FECHADO ou retorna -1 (sequência X computada ou não existe)

2003 Eugénio Oliveira

O robô segue os apontadores até:chegar ao Objectivo G ou encontrar erro no custo do Arco (obstáculo não previsto).

A função Modifica_Custo é então chamada para:alterar o custo e colocar os nós (estados) afectados na Lista Aberta.

Algoritmo D*

Sendo Y o nó onde seja encontrado um erro na função de custo:Chamando Processa_Estado até:

Kmin >= h(Y) as modificações no custo são propagadas ao estado Y tal que:

h(Y)=o(Y) (mínimo Custo).

Construiu-se assim a nova sequencia {Y} e o Robô continua a dirigir-se para o Objectivo

2003 Eugénio Oliveira

Função: PROCESSA-ESTADO ()L1 X =MIN STATE( ) {retorna nó da LA com menor K}L2 if X NULL then return -1 {NO-VAL}L3 kold =GET -KMIN () ; DELETE (X ) {retorna Kmin da LA ou -1 se vazia}

{apaga X da LA e faz t(X)=CLOSED}L4 if kold < h (X ) thenL5 for each neighbor Y of X:L6 if t(Y)=/= NEW and h(Y) =< Kold and h(X)>h(Y)+c(Y,X) thenL7 b(X)=Y; h(X)=h(Y)+c(Y,X)L8 if Kold = h(X) thenL9 for each neighbor Y of X:L10 if t(Y)=NEW orL11 ( b(Y)=X and h(Y)=/= h(X)+c(X,Y) ) orL12 ( b(Y) =/=X and h(Y) > h(X)+c(X,Y) ) thenL13 b(Y) = X; I NSERT(Y, h(X)+c(X,Y) ) {Y passa a apontar para X}

Algoritmo D*

2003 Eugénio Oliveira

L14 elseL15 for each Y neighbor of X : {Propagar mudanças de Custos para E NEW e descendentes imediatos tal como para E BAIXADOS}L16 if t(Y)=NEW orL17 (b(Y)=X and h(Y)=/=h(X)+c(X,Y)) thenL18 b(Y) =X ; INSERT(Y,h(X) + c(X,Y) ); {Insert(X,hnew)Calcula k(X)=hnew se t(X)=NEW, k(X)=min(h(X), hnew) se t(X)=OPEN e k(X)=min(h(X),hnew) se t(X)=CLOSED. Ainda faz h(X)=hnew e t(X)=OPEN recolocando X na posição correcta da LA ordenada pelos k}L19 else {t(Y)=/=NEW estados não descendentes imediatos}L20 if b(Y)=/=X and h(Y)>h(X)+c(X,Y) and t(X)=CLOSED thenL21 INSERT(X, h(X)) {na LA para posterior expansão}L22 else { passo de X pode ser reduzido por um vizinho, este vai para LA}L23 if b(Y)=/=X and h(X) > h(Y) + c(Y,X) andL24 t(Y)=CLOSED and h(Y) > Kold thenL25 INSERT(Y, h(Y))L26 return GET-KMIN {retorna Kmin da LA ou -1 se vazia}

Algoritmo D*

2003 Eugénio Oliveira

Na Função Modifica_Custos a função do custo do arco é alterada com o novo valor. Como alteração do custo de Y alteratambém o custo do caminho de X, X vai para a LA.

Quando X é expandido com Processa_Estado, calcula um novo h(Y)=h(X)+c(X,Y) e coloca Y na LA.

Expansões dos nós subsequentes propagam o custo para os descendentes de Y

Função: MODIFICA_CUSTOS (X, Y, cval)L1 c ( X ,Y ) = cval L2 if t(X)= CLOSED then INSERT (X, h(X)) L3 return GET-KMIN( )

Algoritmo D*

2003 Eugénio Oliveira

O papel dos estados:AUMENTADOS (k(X)<h(X) ) ou BAIXADOS (k(X) = h(X) )

é essencial no algoritmo.

Estados AUMENTADOS propagam aumentos de custos e BAIXADOS propagam redução de custos.Quando o custo de um arco é aumentado, o estado vizinho afectado vai para a LA e o custo propagado via estados AUMENTADOS em todas as sequencias de estados contendo o arco.Quando os estados AUMENTADOS ficam em contacto com Nós vizinhos de custo inferior, estes estados BAIXADOS vão para a LA e fazem diminuir os custos dos estados anteriormente aumentados.

Se o custo de atravessar um arco decresce, a redução é propagada via nós BAIXADOS através das sequências contendo o arco e dos estados vizinhos que podem ser decrementados.

Algoritmo D*

2003 Eugénio Oliveira

Função MOVE_ROBOT(S,G)L1 for each state X in the Graph {Nós colocados na LA e h(G)=0;G na LA}L2 t(X)=NEWL3 INSERT(G,O)

L4 val=0L5 while t(S)=/=CLOSED and val=/=NO_VAL {computar o caminho inicial

ou não existe caminho}L6 val=PROCESS_STATE( )

L7 if t(S)=NEW then return NO_PATH {nenhum arco para o G}L8 R=S {segue os apontadores até G ou descobre discrepância, L10 L11}L9 while R=/=GL10 for each (X,Y) such that s(X,Y)=/=c(X,Y) {c(X,Y) custo anterior}L11 val=MODIFY_COST(X,Y,s(X,Y) ) {s medido por sensor}L12 while LESS(val,COST(R) ) and val=/=NO_VAL {até val>=h(R)}L13 val=PROCESS_STATE( )L14 R=b(R)L15 return GOAL_REACHED {G atingido ou NO_PATH}

Algoritmo D*

2003 Eugénio Oliveira

Existe uma melhoria ao algoritmo D* : Algoritmo D* Focalizado.

Referências para estes algoritmos com exemplos de aplicação:

• “Optimal and Efficient Path Planning for Partially-Known Environments”Anthony StentzThe Robotics Institute; Carnegie Mellon University; Pittsburgh

• “The D* Algorithm for Real-Time Planning of Optimal Traverses”Anthony Stenz CMU-RI-TR-94-37The Robotics Institute; Carnegie Mellon University; Pittsburgh

Algoritmo D*

2003 Eugénio Oliveira

Navegação do RobôB-Esqueletização:

Em vez de decompôr em células esqueletiza o espaço numa linha que será o possível trajecto nesse espaço.A descrição do espaço livre é minimalista.

- Se S é um esqueleto do espaço livre E, então S deve ser uma única linha em cada região conectada de E- para cada ponto p de E deve ser fácil computar um caminho para o esqueleto

Exemplos de Métodos de esqueletização no espaço 2D:B.1 Grafo de VisibilidadeB.2 Diagramas de Voronoi(B.3 Roteiros)

2003 Eugénio Oliveira

Navegação do RobôB-Esqueletização:

B.1 Grafo de VisibilidadePara uma configuração poligonal do espaço, o Grafo de Visibilidade consiste em

arcos ligando todos os pares de vértices que se podem ver um ao outro. Existe portanto um segmento de recta entre eles que não intersecta qualquerobstáculo.

2003 Eugénio Oliveira

Navegação do RobôB-Esqueletização:

B.2 Diagramas de Voronoi

Para cada ponto do espaço livre calcula-se a distância para o obstáculo mais próximo

Essa distância é vista como uma função “altitude” que tem o valor zerojunto dos obstáculos (zero também nas margens).O “terreno” passa a ter a sua curva de nível mais elevada (a única desenhada)passando pelos pontos equidistantes dos obstáculos.O algoritmo é completo: Havendo um passo em E implica a existência do diagramade Voronoi. No entanto esse trajecto não é, normalmente, o passo mais curto.

2003 Eugénio Oliveira

Navegação do RobôB-Esqueletização:

B.2 Diagramas de Voronoi

2003 Eugénio Oliveira

Navegação do RobôC- Navegação baseada em Marcos:

Aqui a navegação depende das percepções recebidas através de Sensores.

O Ambiente contém marcos modelados como pontos com um “campo de influência”circular.Dentro de cada “campo de influência” o robô pode conhecer a sua exacta posição.(podem sêr código de barras lidos pelo robô).O robô pode estimar distancia e ângulo para o marco.

Embora os marcos no espaço sejam conhecidos em tempo de planeamento, a posiçãodo robô só é conhecida em tempo de execução.

2003 Eugénio Oliveira

Navegação do RobôC- Navegação baseada em Marcos:

O planeamento do trajecto é feito em encadeamento inverso a partir do objectivo

Faz-se a retro-projecção do “campo de influência” do objectivo em relação aocomando de velocidade V. Isto quer dizer que se o robô inicia o seu deslocamento em qualquerponto do cone de retro-projecção e aplica o comando de velocidade V1 ele atinge o Objectivo.

Se esse cone intersecta o campo de influência de outro marco, uma vez nesse campo o Robô pode navegar para a sua intersecção com o cone.

É claro que deve pesquisar várias possibilidades para comandos Velocidade CVi tais que os conesde retro-projecção intersectem outros os outros campos de influência circulares.

2003 Eugénio Oliveira

Navegação do RobôC- Navegação baseada em Marcos:Retro-projecção do objectivo com respeito a Vi

CV1CV2

1ª operação