Manual do simuladorCampo Potencial Artificial · Khatib 1986
← Voltar ao simulador
GUIA COMPLETO · GEAR

Entenda o robô, o campo e cada decisão da simulação.

Este laboratório mostra como um braço planar pode ser atraído por um objetivo e repelido por obstáculos usando campos potenciais artificiais. O manual separa o que vem diretamente de Khatib do que foi acrescentado para tornar a experiência segura e didática.

2–15juntas
1 por elomáximo de PSPs
V≤Vmáxteto absoluto
2Despaço simulado
01

Comece em seis passos

Um fluxo simples para sua primeira experiência.

1

Monte o braço

Escolha a quantidade de juntas, os comprimentos e os ângulos iniciais.

2

Posicione a base

Use Selecionar e arraste a junta azul-escura da base.

3

Desenhe o cenário

Adicione círculos e paredes; arraste as alças para ajustar tamanho e campo.

4

Coloque o objetivo

Selecione Objetivo e clique no mapa. O disco azul é a tolerância de chegada.

5

Calcule

Clique em Calcular e executar. A trajetória é calculada antes da reprodução.

6

Leia o resultado

Observe status, velocidade, FIRAS, PSPs, juntas e o histórico do caminho.

Roteiro dos slides 12–17

O menu Exemplo reúne quatro demonstrações progressivas: atração pura, desvio simples, alcance local da FIRAS e PSP por elo em um ambiente dinâmico. Todos chegam ao objetivo com limites articulares e perturbação de mínimos locais desativados.

02

Editor do mapa

O que cada ferramenta faz.

↖

Selecionar

Arraste base, objetivo, círculos e paredes. As alças alteram raio, espessura, tolerância e campo de ação.

●

Círculo

Crie o círculo normalmente. Ao habilitar Móvel, escolha velocidade, direção e a área azul de movimento.

╱

Parede

Crie o segmento normalmente. Ao habilitar Móvel, ele desliza no próprio eixo dentro do curso azul.

◎

Objetivo

Clique para definir a posição desejada do efetuador. O anel representa a tolerância.

⌫

Excluir

Remove círculos ou paredes. Também é possível selecionar e usar Delete ou Backspace.

⌖

Navegar

Arraste o fundo, use Alt ou o botão do meio para mover a câmera. A roda controla o zoom.

Atalhos

Ctrl + Z desfaz, Ctrl + Y refaz. O divisor vertical pode ser arrastado ou controlado pelas setas do teclado.

03

Parâmetros principais

Configuração do braço, objetivo e integração.

ParâmetroO que éO que muda
Quantidade de juntasNúmero de juntas rotacionais e de elos do braço planar.Também define o máximo de PSPs simultâneos: um por elo, sem duplicar a mesma junta compartilhada.
Comprimentos dos eloscmComprimento físico individual de cada elo.Altera o alcance, a cinemática e todas as distâncias aos obstáculos.
Ângulos iniciais relativosgrausRotação inicial de cada junta em relação ao elo anterior.Define a configuração inicial; os ângulos são somados na cinemática direta.
Espessura visual do elocmEspessura usada somente para desenhar o braço no mapa.Não altera FIRAS, PSPs ou colisões: como nos apêndices de Khatib, o cálculo usa a linha central do elo.
Tolerância do objetivocmRaio da região azul considerada como objetivo alcançado.Quanto maior, mais cedo o estado muda para CHEGOU.
Intervalo entre passos (dt)sTempo simulado entre duas atualizações da configuração articular.Menor dt melhora a resolução numérica, mas exige mais passos e processamento.
Máximo de passosLimite de iterações antes de encerrar a tentativa.Ao atingir o limite sem sucesso, o resultado é NÃO CHEGOU.
Velocidade máxima do atuadorcm/sTeto absoluto da velocidade cartesiana do efetuador.Limita a lei de Khatib e também o movimento final após todas as repulsões.
Parar quando colidirEncerra no primeiro contato geométrico com círculo ou parede.Ligado produz BATEU; desligado permite observar a recuperação numérica.

Obstáculos e seus campos

ParâmetroO que éO que muda
X e YcmPosição do centro do círculo ou das extremidades da parede.Move a geometria dentro do plano.
Raio do círculocmTamanho físico do obstáculo circular.A distância ρ é medida até sua superfície, não até o centro.
Espessura da paredecmLargura física do segmento que representa a parede.Metade da espessura é descontada ao calcular ρ.
Campo de ação (ρ₀)cmDistância máxima em que a linha central do elo recebe FIRAS.Fora desse alcance a força é exatamente zero; dentro dele cresce continuamente ao aproximar-se.
Intensidade FIRAS (η)u.f.Escala do potencial repulsivo de cada obstáculo.Valores altos desviam com mais força e podem criar oscilações ou mínimos locais.
Obstáculo móvelAtiva uma trajetória determinística com velocidade constante.A posição, a FIRAS e as colisões passam a ser atualizadas em todo passo dt.
Movimento do círculocm/s e grausVelocidade, direção inicial e largura/altura da área retangular. No mapa, a seta cinza e a alça azul permitem ajustar tudo com o mouse.A área azul limita somente o movimento e nunca ativa FIRAS. A repulsão usa apenas a posição atual e o campo vermelho.
Movimento da paredecm/s e cmVelocidade e curso total ao longo do próprio eixo. As alças azuis ajustam o curso e o botão inverte o sentido inicial.O segmento inteiro desliza sem girar e rebate nas duas extremidades; o movimento não é aleatório.
04

Parâmetros avançados

Ganhos, limites, fuga de mínimos e reprodução.

ParâmetroO que éO que muda
Vetores por eixoDensidade das pequenas setas verdes desenhadas no mapa.É apenas visual: não muda a trajetória calculada.
Ganho proporcional (kp)Intensidade do campo atrativo em direção ao objetivo.Entra na velocidade desejada pela razão kp/kv.
Ganho de velocidade (kv)Ganho de amortecimento usado na lei de velocidade desejada.Aumentá-lo reduz a velocidade livre antes da saturação.
Ganho de repulsão nas juntasConverte a projeção JᵀFIRAS em correção de velocidade articular.É uma aproximação cinemática do simulador; não aparece dessa forma no controlador dinâmico original.
Usar limites articularesAtiva barreiras repulsivas perto dos limites das juntas.Evita que o movimento comandado se aproxime excessivamente dos extremos.
Limites mínimos e máximosgrausFaixa permitida individualmente para cada junta.Cada extremidade produz repulsão quando entra na região de influência.
Influência do limitegrausDistância angular a partir da qual a barreira começa a agir.Uma faixa maior inicia a correção mais cedo.
Intensidade da barreiraEscala η da repulsão dos limites articulares.Valores excessivos podem competir com a atração e gerar oscilação.
Perturbação aleatóriaTenta retirar o braço de uma configuração sem melhora.É um recurso adicional do simulador, não uma equação proposta no artigo de 1986.
Passos para detectarQuantidade de passos sem melhora suficiente antes de declarar mínimo local.Valores baixos disparam perturbações com maior frequência.
Melhoria mínima do errocmRedução necessária da distância ao objetivo para contar como progresso.Se a melhora ficar abaixo desse valor, o contador de mínimo local avança.
Intensidade da perturbaçãorad/sMagnitude da velocidade articular aleatória acrescentada temporariamente.Valores altos escapam com mais energia, mas tornam a trajetória mais brusca.
Duração da perturbaçãopassosPor quantos passos a correção aleatória permanece ativa.Durante esse intervalo o status mostra MÍNIMO LOCAL e o caminho fica vermelho.
Semente aleatóriaValor que inicializa o gerador pseudoaleatório.A mesma semente e o mesmo cenário produzem a mesma perturbação.
Velocidade máxima da juntarad/sTeto individual aplicado a cada velocidade articular.Protege contra comandos articulares extremos, inclusive perto de singularidades.
FPS dos estados visuaisquadros/sFrequência de armazenamento e exibição dos quadros da animação.Não é a frequência do controlador; essa é determinada por 1/dt.
PASSO DO CONTROLADORfrequência = 1 / dt

Com dt = 0,05 s, o movimento é atualizado 20 vezes por segundo simulado.

QUADROS VISUAISFPS ≠ controlador

O FPS só decide quantos estados são guardados e mostrados na animação.

05

Equações usadas

Da atração ao comando articular.

Equação 11

Potencial atrativo

Uₓd(x) = ½ kp ‖x − xd‖²

Seu gradiente aponta para o objetivo. No mapa, ele orienta as setas verdes e fornece a direção de aproximação.

Equação 13

Velocidade desejada

ẋd = (kp / kv)(xd − x)

A razão kp/kv transforma o erro de posição em uma velocidade cartesiana desejada.

Equação 15

Saturação de velocidade

ν = min(1, Vmáx / ‖ẋd‖)

A velocidade usada é νẋd. O simulador reaplica um teto absoluto depois das repulsões para impedir estouro numérico.

Equação 17–18

Potencial e FIRAS

F = η(1/ρ − 1/ρ₀)(1/ρ²) ∇ρ

A força é zero quando ρ ≥ ρ₀ e cresce rapidamente perto da superfície. ρ é a menor distância livre.

Equação 24–25

Superposição nos PSPs

Fpsp = Σ Fobstáculo · Γ = Σ Jpspᵀ Fpsp

As contribuições de todos os obstáculos são somadas no mesmo PSP e projetadas para as juntas.

Equação 27–29

Limites articulares

ρinferior = qi − q̲i · ρsuperior = q̄i − qi

Barreiras semelhantes à FIRAS empurram cada junta para longe de seus limites mínimo e máximo.

erro até o objetivo→velocidade desejada+FIRAS nos PSPs→velocidades das juntas→novo quadro
06

Estados e indicadores

Como interpretar a execução.

PRONTO

O cenário pode ser editado e ainda não há resultado atual.

CALCULANDO / REPRODUZINDO

Primeiro a trajetória é calculada; depois ela é exibida no tempo simulado.

MÍNIMO LOCAL

A melhora ficou pequena e a perturbação está ativa. A simulação não para e o trecho fica vermelho.

CHEGOU

O efetuador entrou na região de tolerância azul.

BATEU

Houve contato e a opção de parar na colisão estava ligada.

NÃO CHEGOU

O máximo de passos foi atingido antes da chegada.

Velocidade do atuador

Norma da velocidade cartesiana efetivamente comandada após todos os limites.

Velocidade desejada

Resultado das equações 13 e 15 antes das correções repulsivas.

FIRAS total

Magnitude visual da soma das forças repulsivas ativas, em unidade de simulação.

Fator ν

Vale 1 sem saturação e fica menor que 1 quando a velocidade livre ultrapassaria Vmáx.

PSPs ativos

Quantidade de pontos físicos distintos atualmente sob FIRAS. Um obstáculo pode ativar pontos diferentes em vários elos; quando dois elos retornam a mesma junta compartilhada, ela conta uma única vez.

Juntas e FIRAS

Mostra ângulo, sentido de movimento, PSP ativo e repulsão associada a cada elo.

07

O artigo e o simulador

O que é fiel e o que é aproximação didática.

FIEL AO NÚCLEOCampos, FIRAS, velocidade e PSPs
APROXIMAÇÃOMovimento cinemático, não dinâmica física completa
Khatib 1986Neste simuladorImpacto
Dinâmica operacional com Λ, Coriolis e gravidadeVelocidades obtidas pelo Jacobiano e integradas por EulerNão representa massas, torques, atraso de motores ou gravidade.
Servo de força/velocidade da equação 14Velocidade cartesiana convertida pela pseudoinversaA direção é coerente, mas a resposta física não é reproduzida.
JᵀΛF para levar FIRAS às juntasGanho ajustável multiplicando JᵀFA FIRAS usa unidade de simulação, não newtons calibrados.
Primitivas e movimento tridimensionalCírculos, paredes e braço planar 2DOrientação, profundidade, cones e cilindros 3D não são simulados.
Obstáculos podem variar no tempoCírculos e paredes seguem trajetórias determinísticas de velocidade constanteO campo reage à posição atual em cada dt, mas a trajetória é conhecida de antemão e não vem de sensores.
Mínimos locais ligados a planejamento superiorPerturbação pseudoaleatória reproduzívelAjuda didaticamente a escapar, mas é uma extensão do projeto.
Arquitetura real com estimador e servo rápidoTrajetória calculada inteira e depois reproduzidaNão é um controlador conectado em tempo real a motores e sensores.

Referência: Oussama Khatib, “Real-Time Obstacle Avoidance for Manipulators and Mobile Robots”, The International Journal of Robotics Research, 1986.

08

Diagnóstico rápido

Quando o resultado não parece correto.

O robô bate logo no primeiro quadro

Verifique se a linha central de algum elo já começa dentro de um obstáculo. A espessura desenhada do braço é apenas visual e não participa da colisão.

A trajetória oscila perto de um obstáculo

Reduza dt, η FIRAS ou o ganho de repulsão nas juntas. Campos de ação maiores iniciam a correção mais suavemente.

O braço fica preso e aparece MÍNIMO LOCAL

Isso é uma limitação conhecida dos campos potenciais. Ajuste o cenário, ρ₀ e η, ou permita uma perturbação mais longa. Não há garantia de saída.

A velocidade desejada é diferente da velocidade do atuador

A primeira vem da atração. A segunda já inclui FIRAS, limites articulares, teto das juntas e o teto absoluto cartesiano.

Existem menos PSPs do que juntas

Um PSP só fica ativo quando o ponto mais próximo de um elo entra no campo vermelho. O mesmo obstáculo pode ativar vários elos em pontos distintos, mas uma junta compartilhada encontrada pelos dois elos é um único PSP físico.

Aparece OBJETIVO IMPOSSÍVEL — braço pequeno demais

Antes de calcular, o simulador mede a distância euclidiana da base ao centro do objetivo: d = √((xobjetivo − xbase)² + (yobjetivo − ybase)²). O aviso aparece quando d − tolerância é maior que a soma dos comprimentos dos elos. A tolerância conta porque basta o efetuador entrar na região azul do objetivo.

O resultado é NÃO CHEGOU

Se o objetivo passou pela checagem de alcance, ele ainda pode estar bloqueado, em mínimo local ou exigir mais passos. Obstáculos e limites articulares podem tornar inalcançável um ponto que está dentro do alcance máximo geométrico.