Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Signed Distance Field

  • También llamado: SDF, signed distance function, Euclidean signed distance field, ESDF
  • Categoría: Planning & manipulation › Motion planning
  • Etiquetas: geometry, collision-avoidance, mapping, motion-planning, 3d-representation

Una función o rejilla que almacena, para cada punto del espacio, la distancia a la superficie más cercana, con el signo indicando si el punto está dentro o fuera de un objeto.

Definición

Campos de distancia con signo (SDF) (signed distance fields) asignan a cada punto del espacio la distancia a la superficie más cercana de un objeto o una escena. El signo aporta información adicional: según la convención habitual, los puntos fuera del objeto tienen valores positivos, los puntos dentro tienen valores negativos y la propia superficie es el conjunto de nivel cero. Esto convierte la geometría en un campo escalar que puede consultarse, derivarse y combinarse.

El gradiente de un campo de distancia con signo apunta en dirección contraria a la superficie más cercana y, donde el campo es diferenciable, su módulo es uno. Esta propiedad hace que los SDF sean útiles para la planificación de movimiento y la optimización: un planificador puede leer tanto lo cerca que está de un obstáculo un punto del cuerpo del robot como qué dirección lo aleja de él. Los optimizadores de trayectorias como CHOMP usan los campos de distancia exactamente de esta manera, convirtiendo la holgura respecto a los obstáculos en un coste suave.

Los SDF se almacenan de varias formas. Las rejillas de vóxeles guardan un valor por celda y son habituales en cartografía; el campo de distancia con signo truncado (TSDF) conserva valores solo cerca de las superficies y fue popularizado para la reconstrucción 3D densa por KinectFusion, mientras que entornos como Voxblox construyen un campo de distancia euclidiana completo para la planificación a partir de mapas TSDF incrementales. Los SDF analíticos describen en forma cerrada primitivas como esferas, cajas y cápsulas. Los SDF neuronales representan el campo con una red que asigna distancias a coordenadas, lo que da una descripción compacta y continua de formas complejas.

La idea también se extiende más allá del espacio físico. Puede definirse un campo de distancia sobre el espacio articular de un robot, que describe lo lejos que está una configuración de una colisión en lugar de lo lejos que está un punto de una superficie. Estos campos conectan la geometría del espacio de trabajo con el problema de planificación que el robot resuelve realmente.

Por qué importa

La comprobación de colisiones por sí sola responde sí o no, mientras que un campo de distancia con signo también dice a qué distancia y en qué dirección. Esa información adicional permite a los planificadores y controladores mantener márgenes de seguridad, calcular costes de evitación suaves y usar optimización basada en gradientes alrededor de los obstáculos.

Aplicaciones clave

  • Costes y restricciones de colisión en la optimización de trayectorias
  • Reconstrucción 3D densa y cartografía a partir de sensores de profundidad
  • Representación de formas de objetos para la planificación de agarres y el razonamiento sobre contactos
  • Márgenes de seguridad y restricciones basadas en distancia en controladores reactivos
  • Representaciones neuronales compactas de escenas y objetos

En la práctica

Un equipo que trabaja con un manipulador móvil podría fusionar los fotogramas de una cámara de profundidad en un mapa TSDF del espacio de trabajo, convertirlo en un campo de distancia euclidiana y aproximar los eslabones del robot con un conjunto de esferas. Durante la optimización de trayectorias, se consulta en el campo el centro de cada esfera; la distancia menos el radio de la esfera da la holgura, y el gradiente del campo empuja la trayectoria lejos de los obstáculos. La resolución de los vóxeles se elige como compromiso entre memoria, velocidad de actualización y la finura con la que se capturan los objetos delgados.

Ideas erróneas comunes

  • Un SDF es lo mismo que una rejilla de ocupación — una rejilla de ocupación almacena si una celda está llena, mientras que un SDF almacena la distancia a la superficie más cercana y admite gradientes
  • Un SDF truncado da distancias en todas partes — un TSDF solo contiene valores significativos cerca de las superficies, por lo que la planificación suele necesitar un campo de distancia euclidiana completo
  • Los gradientes de un SDF siempre están bien definidos — no están definidos en los puntos equidistantes de dos superficies, lo que puede hacer oscilar a los optimizadores

Quién debería saberlo

  • Ingenieros de planificación de movimiento que trabajan con optimización de trayectorias
  • Ingenieros de percepción que construyen mapas 3D a partir de datos de profundidad
  • Investigadores que usan representaciones implícitas neuronales de la geometría

Tecnologías relacionadas

  • Rejilla de ocupación (Occupancy Grid)
  • Campo de distancia con signo truncado (Truncated Signed Distance Field, TSDF)
  • CHOMP
  • Voxblox
  • Representaciones implícitas neuronales (Neural Implicit Representations)
  • Comprobación de colisiones (Collision Checking)

Términos relacionados

  • Motion Planning
  • Obstacle Avoidance
  • Configuration Space
  • Point Cloud

Proyectos relacionados

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • RTAB-Map: Versatile graph-based SLAM supporting RGB-D, stereo, and LiDAR with real-time operation
  • LeGO-LOAM: Classic lightweight, ground-optimized lidar odometry and mapping baseline (IROS 2018)
  • OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications

Vídeos

  • introduction to Signed Distance Fields: chris biscardi

Wikipedia

  • Función distancia con signo

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.