El problema se esconde entre dos comprobaciones correctas
Un robot mueve una herramienta al otro lado de una plantilla. El programa comprueba posiciones y no encuentra colisiones, pero durante el movimiento la herramienta atraviesa un pasador. No hay contradicción: comprobamos puntos aislados y el robot recorre también lo que los separa. La pregunta es cuándo esas comprobaciones demuestran que el tramo intermedio está libre.
Resumen. Modelamos una herramienta circular en un plano cerca de un obstáculo circular. Calculamos una colisión que seis comprobaciones omiten, derivamos distancia mínima continua y una condición suficiente basada en margen y separación. Distinguimos colisión observada, trayectoria certificada geométricamente dentro del modelo y resultado inconcluso. Es un modelo didáctico sin brazo completo, incertidumbre sensorial ni comportamiento real; explica qué falta al afirmar que todas las posiciones comprobadas son válidas.
Del volumen de herramienta a la distancia de su centro
Coordenadas en metros. El centro va en línea recta de a=(0,0) a b=(1,0); el pasador está en c=(0,5;0). Radios de herramienta y obstáculo son 0,02 y 0,04 m. Los discos se tocan o superponen cuando distancia entre centros no supera R=0,06 m. Podemos convertir herramienta en punto y ampliar obstáculo 0,02 m: exacto para estos discos, no para cualquier geometría robótica.
Definimos margen g(p)=||p−c||−R. La norma es distancia euclídea calculada mediante Pitágoras. Positivo indica separación, cero contacto y negativo superposición. Contamos contacto como colisión. Es longitud, no probabilidad, y no describe fuerza, velocidad ni consecuencias del impacto.
Seis posiciones libres y una colisión en el modelo
Dividimos un metro en cinco segmentos: comprobaciones x=0;0,2;0,4;0,6;0,8;1. Las más cercanas, 0,4 y 0,6, están a 0,1 m del centro y tienen margen 0,04 m. Todas pasan. Pero x=0,5 coincide con obstáculo y margen −0,06 m. Intervalo de colisión [0,44;0,56] queda enteramente entre muestras.
Cuatro segmentos incluyen x=0,5 y detectan colisión. Aumentar de cinco a seis comprobaciones cambiando rejilla puede perder un evento detectado. No significa que refinar sea inútil: rejillas no anidadas no garantizan resultados monótonos. Conservar muestras anteriores y añadir nuevas conserva toda colisión ya observada.
Calcular punto más cercano de todo el segmento
Para esta geometría no necesitamos muestrear. p(u)=a+ud, d=b−a, con u sin unidades entre cero y uno. Minimizamos distancia al cuadrado ||a+ud−c||²; evitamos raíz sin cambiar mínimo. Derivar respecto u da 2d·(a+ud−c); igualarlo a cero proyecta c sobre recta infinita.
d·d es longitud al cuadrado. Limitar u₀ a [0,1] es esencial: proyección fuera del segmento implica extremo más cercano. Si a=b denominador cero, comprobamos directamente el punto. Aquí u*=0,5 y g_min=−0,06 m. Cada pareja segmento-obstáculo requiere operaciones constantes; comprobar M obstáculos directamente cuesta O(M).
Cuándo el margen hace suficientes las muestras
El cálculo exacto es cómodo para segmento y disco, pero quizá no para geometrías complejas. Pidamos a muestras más que sí/no: cuánto espacio libre tienen. La distancia no puede disminuir más que desplazamiento del punto. Mover un centímetro reduce distancia como máximo un centímetro. Desigualdad triangular da esta continuidad Lipschitz de constante uno.
p y q comparten referencia y unidades. Restar R constante conserva desigualdad. Si separación máxima sobre segmento es Δs, cada punto está a lo sumo Δs/2 de una muestra vecina. Sea m margen mínimo observado. Ningún punto no comprobado baja de m−Δs/2: conecta información discreta con conclusión continua.
Segunda línea es suficiente, no necesaria. Pasar demuestra separación bajo hipótesis; fallar no demuestra colisión, sino insuficiencia de muestras. Una interfaz booleana puede ocultarlo. Distinguimos colisión observada, cota inferior positiva e intervalo inconcluso. Este puede subdividirse conservando muestras existentes.
Un camino libre puede necesitar más trabajo para demostrarlo
Movemos segmento a y=0,08 m. Distancia mínima 0,08 y margen continuo 0,02 m. Con cinco segmentos, muestras x=0,4 y 0,6 dan margen 0,06806 m. Parece amplio, pero Δs/2=0,1 m produce cota −0,03194 m. Cálculo exacto sabe que camino está libre; certificado de esa rejilla aún no lo demuestra.
Veintiséis segmentos de 1/26 m incluyen centro. Margen mínimo 0,02 y medio paso 0,01923 dan cota positiva 0,000769 m. Camino no se volvió más libre: recogimos información suficiente para probar propiedad existente. Esfuerzo de comprobación no mide por sí mismo riesgo físico.
| Altura y (m) | Segmentos | Mínimo muestreado (m) | Mínimo exacto (m) | Cota inferior (m) |
|---|---|---|---|---|
| 0 | 4 | −0.060000 | −0.060000 | −0.185000 |
| 0 | 5 | 0.040000 | −0.060000 | −0.060000 |
| 0.08 | 5 | 0.068062 | 0.020000 | −0.031938 |
| 0.08 | 26 | 0.020000 | 0.020000 | 0.000769 |

Del dibujo al robot: hipótesis que importan
Punto representa herramienta en traslación recta. Interpolar ángulos articulares no produce normalmente recta del centro; otro eslabón puede chocar aunque herramienta pase. Hay que comprobar todos los cuerpos y la interpolación real. Cota Lipschitz articular requiere relacionar ángulos con desplazamientos físicos: no reutilizar constante uno ni restar radianes de metros.
Geometría también se estima. Con margen 0,02 m y cota verificada de error relativo 0,005 m, reservarla deja 0,015 m en modelo robusto. Aquí 0,005 es hipotético: cota sin justificar no garantiza nada. Forma, flexión, retrasos y obstáculos móviles exigen más términos u otro modelo. Simulación geométrica no demuestra seguridad colaborativa ni sustituye validación real.
Una interfaz útil sabe decir «aún no demostrado»
OMPL separa validez de estado y movimiento. Documenta que discretización gruesa puede omitir estados inválidos, mientras fina aumenta trabajo; si hay comprobación continua, propone validador adecuado. Es la distinción mostrada aquí. No ejecutamos OMPL ni comparamos planificadores: código aísla geometría y verifica fórmulas, rejillas y límites.
Sí: un robot puede cruzar obstáculo entre posiciones válidas. Excluirlo en modelo exige comprobar movimiento continuo o ligar separación a cota justificada de variación del margen. Si no basta, resultado inconcluso, no libre. Lección es saber qué propiedad demuestra control y bajo qué hipótesis, no añadir puntos ciegamente. Es relevante al interés futuro declarado de EL-AI en robótica industrial y colaborativa, sin implicar pruebas en robots propios.
Fragmento reproduce márgenes y criterio suficiente. Archivo incluye proyección exacta, segmento nulo, proyección exterior, tangencia, 39 combinaciones altura/rejilla y curvas. Todo determinista, sin semilla, clientes ni hardware. Tolerancia 10^−12 m evita que redondeo convierta contacto en margen positivo; no es margen físico robótico.
import math
obstacle = (0.5, 0.0)
radius = 0.06
def clearance(x, y):
return math.dist((x,y), obstacle)-radius
for n in (4,5,26):
for y in (0.0,0.08):
smallest = min(clearance(i/n,y) for i in range(n+1))
lower_bound = smallest-1/(2*n)
print(n, y, round(smallest,6), lower_bound>1e-12)
Código, datos e instrucciones · JSON. Cálculos didácticos ejecutados con Python 3.14.0; figuras con Matplotlib 3.11.2. Análisis asistido por IA, sin afirmar revisión por pares ni humana. Portada original ImageGen ilustrativa: no documenta personas, sedes ni instalaciones de EL-AI. Fuentes consultadas el 30 de septiembre de 2026.

