• Nenhum resultado encontrado

Robótica Inteligente

N/A
N/A
Protected

Academic year: 2021

Share "Robótica Inteligente"

Copied!
34
0
0

Texto

(1)

Robótica Inteligente

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

Módulos

Funcionais

relacionados

com o

(2)

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

(3)

Navegação do Robô

Navegação envolve: Percepção Acção Planeamento Representação Arquitectura de controlo Hardware Eficiência computacional Resolução de Problemas O Planeamento clássico assume:

sensores sem erros e robô com capacidade de localização

(4)

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élulas

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

(5)

Navegação do Robô

A- Decomposição celular: espaço contínuo dividido em um número finito de células

levando a uma pesquisa discreta. Memória Espacial:

Representação do Mundo para o Robô

Processa e representa a informação sensorial Infere informação relevante para a Navegação Funções ligadas à Memória Espacial:

atenção ao que procurar

raciocinar sobre hipóteses (Pode atravessar esta porta?) planear para encontrar o melhor caminho

(6)

Navegação do Robô

Memória Espacial Quantitativa:

Espaço em termos de distâncias físicas Perspectiva independente (de cima) Pode gerar memória espacial qualitativa

Memória Espacial Qualitativa:

Espaço em termos de ligações entre marcas Perspectiva do robô

(7)

Navegação do Robô

Na determinação de caminhos é importante:

decompor o caminho em partes entre pontos intermédios aproximar ao melhor caminho

como representar o conhecimento qual o algoritmo

Espaço de configuração:

permite representar localização e orientação do Robô e dos Objectos assume-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ô.

(8)

Navegação do Robô

Posição inicial Robô Posição final Robô

Objectos aumentados

(9)

Navegação do Robô

Objectos aumentados Robô considerado como um ponto

(10)

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élulas levando 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 de

adjacê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;

(11)

Navegação do Robô

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

(12)

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)

(13)

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 juntam

(14)

Navegação do Robô

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

(15)

Navegação do Robô

O Algorítmo A* é um bom candidato para calcular o melhor caminho em um espaço

de 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 pois

representa melhor o espaço livre e os obstáculos.

(16)

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

(17)

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 Aberta

t(X)= Aberto se X pertence à Lista Aberta

(18)

Para cada nó X na Lista Aberta a função Chave k(G,X) guarda o mínimo dos custos

estimados 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 custo

e 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 acordo

com os valores da função chave.

(19)

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)

(20)

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,

(21)

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

(22)

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

L5 for each neighbor Y of X:

L6 if t(Y)=/= NEW and h(Y) =< Kold and h(X)>h(Y)+c(Y,X) then L7 b(X)=Y; h(X)=h(Y)+c(Y,X)

L8 if Kold = h(X) then

L9 for each neighbor Y of X: L10 if t(Y)=NEW or

L11 ( b(Y)=X and h(Y)=/= h(X)+c(X,Y) ) or L12 ( b(Y) =/=X and h(Y) > h(X)+c(X,Y) ) then

L13 b(Y) = X; I NSERT(Y, h(X)+c(X,Y) ) {Y passa a apontar para X}

(23)

L14 else

L15 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 or

L17 (b(Y)=X and h(Y)=/=h(X)+c(X,Y)) then

L18 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 then L21 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) and

L24 t(Y)=CLOSED and h(Y) > Kold then L25 INSERT(Y, h(Y))

L26 return GET-KMIN {retorna Kmin da LA ou -1 se vazia}

(24)

Na Função Modifica_Custos a função do custo do arco é

alterada com o novo valor. Como alteração do custo de Y altera també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( )

(25)

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.

(26)

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)=NEW

L3 INSERT(G,O)

L4 val=0

L5 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=/=G

L10 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}

(27)

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 Stentz

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

CMU-RI-TR-94-37

The Robotics Institute; Carnegie Mellon University; Pittsburgh

(28)

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 Visibilidade

B.2 Diagramas de Voronoi

(29)

Navegação do Robô

B-Esqueletização:

B.1 Grafo de Visibilidade

Para 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 qualquer

obstáculo.

(30)

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 zero

junto 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 diagrama

de Voronoi. No entanto esse trajecto não é, normalmente, o passo mais curto.

(31)

Navegação do Robô

B-Esqueletização:

(32)

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ção

do robô só é conhecida em tempo de execução.

(33)

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 ao

comando de velocidade V. Isto quer dizer que se o robô inicia o seu deslocamento em qualquer ponto 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 cones de retro-projecção intersectem outros os outros campos de influência circulares.

(34)

Navegação do Robô

C- Navegação baseada em Marcos:

Retro-projecção do objectivo com respeito a Vi

CV1 CV2

Referências

Documentos relacionados

PARA CONHECIMENTO DE TODOS expediu-se o presente, afixado no lugar de costume neste Registro Civil, também no Registro Civil de Uberlândia - MG e Uberaba - MG para apresentação

Medidas: diametro valvar: 10-12prn Dados ecolOgicos: marinha, neritica.. Chaetoceros

No artigo Desenvolvimento, caracterização e análise sensorial de formulações alimentares com proteínas do soro de leite ou albumina para crianças publicado no periódico

Foram perfundidos pela solução de Krebs-Henseleit, à temperatura de 37 o C, por um período de 30min, fazendo-se registro dos parâmetros pesquisados no controle (t 0 ), após o 1º (t

A dobutamina pode provocar aumento dos batimentos do coração e da pressão arterial, que geralmente são revertidos pela redução da dose administrada.. Pacientes com fibrilação

El accionador T1500, con cuadro de maniobra incorporado, dispone de función de paro suave que reduce la velocidad al final de las maniobras de apertura y cierre, con el fin de

113-114 Mesa Redonda: Políticas de Ação Afirmativa na Educação Básica: O protagonismo juvenil e a iniciação científica como ferramentas para a construção de uma

Em particular, recentemente tem surgido interesse no estudo de estruturas com- plexas em ´ Algebras de Lie nilpotentes e sol´ uveis, devido ` a sua rela¸c˜ ao com estruturas complexas