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.
Comece em seis passos
Um fluxo simples para sua primeira experiência.
Monte o braço
Escolha a quantidade de juntas, os comprimentos e os ângulos iniciais.
Posicione a base
Use Selecionar e arraste a junta azul-escura da base.
Desenhe o cenário
Adicione círculos e paredes; arraste as alças para ajustar tamanho e campo.
Coloque o objetivo
Selecione Objetivo e clique no mapa. O disco azul é a tolerância de chegada.
Calcule
Clique em Calcular e executar. A trajetória é calculada antes da reprodução.
Leia o resultado
Observe status, velocidade, FIRAS, PSPs, juntas e o histórico do caminho.
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.
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.
Ctrl + Z desfaz, Ctrl + Y refaz. O divisor vertical pode ser arrastado ou controlado pelas setas do teclado.
Parâmetros principais
Configuração do braço, objetivo e integração.
| Parâmetro | O que é | O que muda |
|---|---|---|
| Quantidade de juntas | Nú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 eloscm | Comprimento físico individual de cada elo. | Altera o alcance, a cinemática e todas as distâncias aos obstáculos. |
| Ângulos iniciais relativosgraus | Rotaçã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 elocm | Espessura 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 objetivocm | Raio da região azul considerada como objetivo alcançado. | Quanto maior, mais cedo o estado muda para CHEGOU. |
| Intervalo entre passos (dt)s | Tempo 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 passos | Limite de iterações antes de encerrar a tentativa. | Ao atingir o limite sem sucesso, o resultado é NÃO CHEGOU. |
| Velocidade máxima do atuadorcm/s | Teto 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 colidir | Encerra 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âmetro | O que é | O que muda |
|---|---|---|
| X e Ycm | Posição do centro do círculo ou das extremidades da parede. | Move a geometria dentro do plano. |
| Raio do círculocm | Tamanho físico do obstáculo circular. | A distância ρ é medida até sua superfície, não até o centro. |
| Espessura da paredecm | Largura física do segmento que representa a parede. | Metade da espessura é descontada ao calcular ρ. |
| Campo de ação (ρ₀)cm | Distâ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óvel | Ativa 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 graus | Velocidade, 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 cm | Velocidade 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. |
Parâmetros avançados
Ganhos, limites, fuga de mínimos e reprodução.
| Parâmetro | O que é | O que muda |
|---|---|---|
| Vetores por eixo | Densidade 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 juntas | Converte 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 articulares | Ativa barreiras repulsivas perto dos limites das juntas. | Evita que o movimento comandado se aproxime excessivamente dos extremos. |
| Limites mínimos e máximosgraus | Faixa permitida individualmente para cada junta. | Cada extremidade produz repulsão quando entra na região de influência. |
| Influência do limitegraus | Distância angular a partir da qual a barreira começa a agir. | Uma faixa maior inicia a correção mais cedo. |
| Intensidade da barreira | Escala η da repulsão dos limites articulares. | Valores excessivos podem competir com a atração e gerar oscilação. |
| Perturbação aleatória | Tenta 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 detectar | Quantidade de passos sem melhora suficiente antes de declarar mínimo local. | Valores baixos disparam perturbações com maior frequência. |
| Melhoria mínima do errocm | Reduçã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/s | Magnitude da velocidade articular aleatória acrescentada temporariamente. | Valores altos escapam com mais energia, mas tornam a trajetória mais brusca. |
| Duração da perturbaçãopassos | Por 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ória | Valor que inicializa o gerador pseudoaleatório. | A mesma semente e o mesmo cenário produzem a mesma perturbação. |
| Velocidade máxima da juntarad/s | Teto individual aplicado a cada velocidade articular. | Protege contra comandos articulares extremos, inclusive perto de singularidades. |
| FPS dos estados visuaisquadros/s | Frequência de armazenamento e exibição dos quadros da animação. | Não é a frequência do controlador; essa é determinada por 1/dt. |
Com dt = 0,05 s, o movimento é atualizado 20 vezes por segundo simulado.
O FPS só decide quantos estados são guardados e mostrados na animação.
Equações usadas
Da atração ao comando articular.
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.
Velocidade desejada
ẋd = (kp / kv)(xd − x)A razão kp/kv transforma o erro de posição em uma velocidade cartesiana desejada.
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.
Potencial e FIRAS
F = η(1/ρ − 1/ρ₀)(1/ρ²) ∇ρA força é zero quando ρ ≥ ρ₀ e cresce rapidamente perto da superfície. ρ é a menor distância livre.
Superposição nos PSPs
Fpsp = Σ Fobstáculo · Γ = Σ Jpspᵀ FpspAs contribuições de todos os obstáculos são somadas no mesmo PSP e projetadas para as juntas.
Limites articulares
ρinferior = qi − q̲i · ρsuperior = q̄i − qiBarreiras semelhantes à FIRAS empurram cada junta para longe de seus limites mínimo e máximo.
Estados e indicadores
Como interpretar a execução.
O cenário pode ser editado e ainda não há resultado atual.
Primeiro a trajetória é calculada; depois ela é exibida no tempo simulado.
A melhora ficou pequena e a perturbação está ativa. A simulação não para e o trecho fica vermelho.
O efetuador entrou na região de tolerância azul.
Houve contato e a opção de parar na colisão estava ligada.
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.
O artigo e o simulador
O que é fiel e o que é aproximação didática.
| Khatib 1986 | Neste simulador | Impacto |
|---|---|---|
| Dinâmica operacional com Λ, Coriolis e gravidade | Velocidades obtidas pelo Jacobiano e integradas por Euler | Não representa massas, torques, atraso de motores ou gravidade. |
| Servo de força/velocidade da equação 14 | Velocidade cartesiana convertida pela pseudoinversa | A direção é coerente, mas a resposta física não é reproduzida. |
| JᵀΛF para levar FIRAS às juntas | Ganho ajustável multiplicando JᵀF | A FIRAS usa unidade de simulação, não newtons calibrados. |
| Primitivas e movimento tridimensional | Círculos, paredes e braço planar 2D | Orientação, profundidade, cones e cilindros 3D não são simulados. |
| Obstáculos podem variar no tempo | Círculos e paredes seguem trajetórias determinísticas de velocidade constante | O 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 superior | Perturbação pseudoaleatória reproduzível | Ajuda didaticamente a escapar, mas é uma extensão do projeto. |
| Arquitetura real com estimador e servo rápido | Trajetória calculada inteira e depois reproduzida | Nã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.
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.
