PMR3502 - Robótica
Navegação de Robôs Autônomos
Objetivos
Navegação de robôs autônomos:
– Técnicas existentes; – Campo potencial;
– Exemplos de campos potenciais;
– Histograma de campo vetorial; – Método dos arcos;
Navegação de robôs autônomos
Localização Percepção Controle Atuação Conhecimento prévio “Inteligência”Técnicas de controle
Técnicas de controle:
– Campo potencial;
– Histograma de campo vetorial; – Método dos arcos;
– Método da janela dinâmica.
Técnicas que utilizam alguma otimização
Campo potencial
Idéia básica:
– Imita a física ⇒ cria uma campo de forças que atrai o
robô para o alvo e o repele de obstáculos.
Inspirado pelos campos gravitacionais, eletrostáticos
etc.
Implementação da técnica de campo potencial:
– Tipos de campos.– Como gerar comandos para o robô? – Como definir os parâmetros?
Campo potencial
Tipos de campos:
– Campo de atração a alvos; – Campo de repulsão a objetos: – Campo para estacionar;
– Campo uniforme;
– Campo perpendicular; – Campo tangencial; – Campo aleatório; – Etc.
Campo potencial
Exemplos de campo potencial.
Campo potencial
Exemplo de um campo potencial resultante para
movimentação ao longo de um corredor:
Dois campos
perpendiculares + um campo uniforme = movimento em corredor
Campo potencial
Exemplo de um campo potencial obtido pela
combinação de vários tipos de campo.
Campo potencial
Implementação:
– O robô é tratado como sendo uma partícula em um campo de
“forças”.
– Os comandos dos motores são definidos de forma a seguir o
gradiente do campo ⇒ as forças do campo geram comandos de velocidade do robô (módulo e direção).
– O potencial é definido sobre todo ambiente:
Mas não existe necessidade de calcular o campo sobre todo o
ambiente;
Força do campo somente é calculada na posição do robô.
– Resultado ideal ⇒ mover em direção ao alvo enquanto evita
colisões com obstáculos.
– Obstáculos móveis ⇒ atualização do campo potencial é rápida
Campo potencial
Vantagens:
– Muito rápido para reagir a mudanças no ambiente; – Muito fácil de implementar;
– Os parâmetros não são difíceis de sintonizar.
Desvantagens:
– Problema de travamento em mínimos locais; – Trajetória apresenta oscilações;
– Trajetória resultante é ruim.
•
Utiliza sensores de distância (sonar, infravermelho,
radar, LIDAR, câmera) para detectar obstáculos ao
redor do robô.
Campo potencial
d S M M=Margem de segurança S=Esfera de influenciad=distancia detectada pelo sonar Robô vetor repulsão x y α sonar d S M M=Margem de segurança S=Esfera de influencia
d=distancia detectada pelo sonar Robô vetor repulsão x y α sonar ; , 0 . 1 ) ( ; , ) ( ; , 0 ) ( M d d V S d M M S d S d V S d d V ≤ = ≤ ≤ − − = > = . 180 o + = Φ α
Campo de repulsão a obstáculos:
onde: d = distância do robô ao obstáculo; V = módulo da velocidade do robô normalizada; Φ = direção da velocidade
Campo potencial
Campo de atração a alvo (posição
desejada/objetivo):
– Se existirem várias posições
alvo ⇒ só é gerado o vetor de atração para o alvo que estiver mais próximo ao robô.
(Xobj, Yobj) x d Zona Controlada r x y α objetivo (Xobj, Yobj) x d Zona Controlada r x y α objetivo ; , 1 ) ( ; , 1 ) ( r d d r d V r d d V ≤ = > = objetivo α = Φ
Campo potencial
O movimento robô é obtido pela soma vetorial de todas as
“forças” que agem sobre o robô.
Por exemplo, presença de alvo e obstáculo:
– Alvo ⇒ Valvo, Φalvo
– Obstáculo ⇒ Vobs, Φobs
– Componentes da velocidade do robô:
– Módulo da velocidade – Direção do robô: Φ + Φ = Φ + Φ = ) sin sin ( ) cos cos ( , , obs obs alvo alvo max y robô obs obs alvo alvo max x robô V V v v V V v v 2 , 2 ,x robô y robô robô v v V = + ) , (
atan2 robô,y robô,x
robô = v v Φ Obstáculo x y Alvo Valvo Vobstáculo Vrobô dalvo dobstáculo Φ robô
Campo potencial
Robô precisa de dois controladores tipo PID
independentes para controlar:
– Módulo da velocidade do robô (Vrobô); – Direção do robô (Φrobô).
Parâmetros do campo potencial
precisam ser sintonizados para
cada robô.
Obstáculo x y Alvo Valvo Vobstáculo Vrobô dalvo dobstáculo Φ robôCampo potencial
Problemas do campo potencial:
– Mínimos locais:
Forças atrativas e repulsivas podem se cancelar de forma que
a velocidade definida para o robô seja zero;
Causado por obstáculos pouco espaçados ou trajeto sem
saída.
– Trajetória com oscilação:
A dinâmica do robô + ambiente pode se tornar oscilatória e/ou
instável;
Causado por altas velocidades, corredores estreitos,
Campo potencial
Problemas de mínimo local:
Alvo
Obstáculo Obstáculo
Campo potencial
Técnicas para evitar problemas de
mínimo local:
– Adicionar um campo tangencial em
torno dos obstáculos:
Quebra simetria;
Evita alguns mínimos locais;
Tende a guiar o robô em torno de
grupos de obstáculos.
– Adicionar um campo aleatório em todo
o ambiente:
Evita o robô ficar travado em uma
posição;
Campo potencial
Campos tangencial horário e tangencial anti-horário:
– Geram um campo vetorial tangencial à localização de
uma posição objetivo no sistema de coordenadas global;
– O resultado desses campos é um movimento de rotação
do robô ao redor de um ponto em sentido horário ou anti-horário;
– Magnitude dos campos é constante;
– Orientação dos campos é tangente ao círculo com raio
igual à distância do robô ao ponto objetivo.
; 0 . 1 ) (d = V o 90 + = Φ olvo α . ; 0 . 1 ) (d = V o 90 − = Φ alvo α . Horário Anti-Horário
Campo potencial
Campos tangencial horário e anti-horário ⇒ para dar
volta em obstáculos.
(Xobj, Yobj) x x y vetor tangencial horário α objetivo (Xobj, Yobj) x x y vetor tangencial horário α objetivo (Xobj, Yobj) x x y vetor tangencial anti-horário α objetivo (Xobj, Yobj) x x y vetor tangencial anti-horário α objetivoCampo potencial
Campo potencial aleatório:
– Gera um vetor de magnitude constante e orientação
aleatória;
– Permanece ativo durante um tempo determinado em
algumas condições;
i = “insistência” = número de períodos de amostragem do controle em que a orientação do vetor permanece constante.
. aleatório ângulo ) ( ; 0 . 1 = Φ = i V
Campo potencial
Campo de giro horário e anti-horário:
– Fazem o robô realizar uma rotação em torno do seu
eixo;
– Em algumas situações é preciso acertar o ângulo de
orientação do robô com a direção do campo potencial antes de executar o movimento de translação;
– A ação de giro permite um melhor controle da orientação
final do robô. 0 = V dado − = Φ . 0 = V dado = Φ . Horário Anti-Horário
Técnicas que usam otimização
Algumas técnicas de controle de movimento de robôs
usam alguma forma de otimização.
Essas técnicas utilizam uma estratégia de
planejamento local.
Algoritmo de otimização local:
– Dado um conjunto de possíveis ações;
– Avaliar cada uma em termos de segurança (colisão) e
desempenho;
– Escolher a melhor ação.
Essas técnicas melhoram mas não eliminam
completamente os problemas de mínimos locais e
trajetórias com oscilações.
Histograma de campo vetorial
Robô Direção do alvo Melhor direção x y Obstáculo Obstáculo O b s tá c u loIdéia básica:
– Definir várias direções que o robô pode seguir; – Avaliar qual melhor direção a seguir baseado nos
Histograma de campo vetorial
Como escolher a melhor direção?
– A melhor direção deve ser escolhida de forma a se
otimizar o desempenho do robô;
– Um algoritmo de otimização deve ser usado para
definir qual a melhor direção a ser tomada pelo robô;
– Como otimizar o desempenho?
Testar o movimento ao longo de cada direção usando
simulação;
Calcular o custo de seguir o movimento em cada direção; Comparar os custos de todas as direções;
Escolher a direção que minimiza o custo do movimento e
Histograma de campo vetorial
Vantagens:
– Rápido e simples de calcular (mais lento do que campo
potencial);
– Fácil de implementar (mais difícil do que campo
potencial);
– Parâmetros são fáceis de sintonizar.
Desvantagens:
– Problemas de mínimo local;
– Trajetória apresenta oscilações;
Velocidades V e ω ω ω ω constantes. R
Método dos arcos
Idéia básica:
– No lugar de utilizar direções fixas,
como na técnica de histograma de campo vetorial, utilizam-se arcos de direção.
O que é um arco de direção?
– Uma trajetória circular comvelocidades linear e angular constantes;
– Exige cálculo da cinemática do robô
para se definir arcos que são
possíveis de serem realizados com a configuração mecânica do robô.
Método dos arcos
Algoritmo do método dos arcos:
– Definir um conjunto de arcos de direção que o robô
pode seguir;
– Os arcos escolhidos devem considerar as restrições
cinemáticas do robô;
– Avaliar o melhor arco de direção a seguir baseando-se
em;
Evitar obstáculos (não utilizar arcos que atinjam obstáculos); Direcionar para o alvo;
Otimizar o desempenho da trajetória.
Método dos arcos
Escolha do melhor arco de direção:
– Vários conjuntos de arcos com diferentes
características podem ser escolhidos;
– Isso pode ser necessário se o robô se movimenta em
diferentes tipos de terrenos;
– Se existirem vários conjuntos de arcos possíveis antes
deve ser escolhido o melhor conjunto em função do tipo de terreno e da velocidade desejada;
– Nessa escolha as informações dos sensores é de
importância crucial para determinar o tipo de terreno, os obstáculos e a direção do alvo.
Método dos arcos
Método dos arcos
Escolha do melhor arco de direção:
– Direção escolhida deve evitar obstáculos e direcionar
o robô ao alvo.
Arcos de direção Arcos de direção
Método dos arcos
Escolha do melhor arco de direção:
– O melhor arco deve ser escolhido de forma a se
otimizar o desempenho do robô.
– Como otimizar o desempenho?
Testar o movimento ao longo de cada arco (usar simulação); Calcular o custo de seguir o movimento de cada arco;
Escolher o arco que minimiza o custo do movimento e ao
Método dos arcos
Escolha do melhor arco de direção:
– Como simular o movimento de um arco e calcular o
seu custo?
Escolher um passo de movimento (intervalo de distância); Projetar esse intervalo de distância nos eixos x e y e dividir
cada arco em vários incrementos;
Cada incremento de distância ao longo de cada arco tem uma
posição central xi e yi;
Obter a informação dos sensores e verificar a existência ou não
de objetos nas posições xi e yi e transformar essa informação em um custo;
Eliminar os arcos que atravessam diretamente algum objeto; Realizar esse processo até verificar todos os arcos e calcular o
Escolha da melhor direção
Escolha da melhor direção a seguir:
– Realizada nas técnicas de Histograma de Campo
Vetorial e no Método dos Arcos;
– A escolha da direção a seguir é baseada na direção
de menor custo.
Como calcular o custo de cada direção?
– Uma forma muito popular é usar os mapas de grades
Custo de uma direção
Método baseado em mapa de grades de ocupação
local:
– Criar um mapa de grades de ocupação em torno do
robô;
– A região mapeada é confinada em uma janela com
centro no robô e que se move com o robô;
– Usa-se somente uma direção associada com cada
sensor de distância.
Usando as informações do mapa de grades de
ocupação calcular um histograma polar de presença
de obstáculos.
Mapa de grades de ocupação
O ambiente é representado por uma grade
Mapa de grades de ocupação
A cada célula da grade é associado um custo de
atravessá-la.
Células com custo igual a zero indica uma célula
vazia.
Células ocupadas têm um custo associado diferente
de zero.
Na medida em os sensores têm ruído, o custo de
cada célula pode indicar a probabilidade da célula
estar ou não ocupada;
A ocupação das células pode variar com o tempo
Construção do mapa de
grade de ocupação local:
– O mapeamento da região
local em torno do robô
depende do sensor utilizado;
– Se for usado sensor de
ultra-som (sonar) ⇒ usar ultra-somente dados ao longo do eixo do sensor e ignorar dados do restante da abertura do sonar;
– O mapeamento da região em
torno do robô é realizada por uma varredura do sensor.
Construção do mapa de
grades de ocupação local:
– São coletados múltiplas
leituras do sensores (uma leitura ao longo de cada direção que se deseja mapear);
– Se o sensor tiver
capacidade de
escaneamento (giro em torno do seu eixo) ⇒ coleta de dados é facilitada.
Mapa de grades de ocupação
Construção do mapa de grades de ocupação local:
– Se a leitura do sensor indicar algum objeto no seueixo dentro da região mapeada a célula
correspondente é marcada com um valor diferente de zero;
– Se o sensor não indicar presença de objeto a célula é
marcada com zero;
– Deve-se considerar o erro de medida do sensor e
marcar as células em frente à uma célula ocupada com um valor de custo entre zero e um;
– Para marcar as células em frente às células ocupadas
Mapa de grades de ocupação
Região local mapeada:
– Janela de tamanho
Ws×Ws em torno do robô;
– Somente a região da
janela mapeada é
utilizada para definir a melhor direção a
seguir;
– A janela mapeada se
move junto com o robô.
Custo de uma direção
Com o mapa de grades de ocupação da janela em
torno do robô calcula-se um “histograma polar” com o
custo de percorrer cada direção.
Histograma polar Direção Limiar Limiar Histograma polar Alvo JANELA ATIVA
Custo de uma direção
O custo de cada direção pode ser calculado pelo
Método de Konolige:
– Define-se uma trajetória em uma dada direção como sendo
uma seqüência de N pontos ao longo dos quais o robô irá se movimentar:
P = {p1, p2, p3,..., pN}
– O custo da trajetória J(P) é dado por:
I(pi) = custo intrínseco das células onde o robô irá passar, considera a presença de obstáculos;
A(pj) = custo adjacente considera comprimento da trajetória que o robô irá realizar.
∑
∑
= + = + = N i i i N i i A I J 1 1 1 ) , ( ) ( ) (P p p pExercícios
1. Dado o ambiente e o robô na figura abaixo. Dado que o robô utiliza a técnica de campo potencial para controlar o seu movimento, pede-se: a) qual a “força” aplicada no robô? b) qual será a trajetória do robô até o alvo?
Alvo
Exercícios
2. No problema anterior se o robô utiliza o método de
adicionar um campo tangencial ao campo de repulsão dos obstáculos para eliminar o problema de mínimo local, qual será a trajetória do robô até o alvo?
3. Dado o ambiente e o robô de duas rodas diferencial na
figura da página seguinte. Em cada lado do robô existe um sensor infravermelho com intervalo de medida de distância entre 25cm e 2m. O erro de medida do sensor é de 10cm. Pede-se:
a) Calcular a força que o campo exerce no robô.
b) Calcular o mapa de grades de ocupação para uma janela de 2mx2m em torno do robô.
Exercícios
Dados:– O robô tem dimensões de 20cmx20cm;
– Cada quadrado no mapa tem dimensão de 1,0mx1,0m; – Utilize uma grade uniforme com células de 25cmx25cm.
V
Exercícios
4. Para o ambiente e robô do exercício anterior, usando a técnica de histograma de campo vetorial, calcule a
direção de menor custo para ser seguida pelo robô.