Volver a Blog

Planificación de robots en 2025: desde métodos geométricos hasta políticas aprendidas

Encuesta de planificación de captura de robots <unk> GQ-CNN, GraspNet, AnyGrasp, y cuándo utilizar métodos aprendidos frente a los geométricos para su aplicación.

[← Blog] T2)

La planificación de maestría se ha transformado del análisis geométrico clásico a sistemas de extremo a extremo aprendidos. Aquí hay una guía práctica de lo que está disponible y cuándo usar cada enfoque.

El problema de la planificación de la base

Dada una observación RGB-D de una escena, predecir una posición de agarre de 6 DOF (posición + orientación) que produzca un agarre estable en un objeto objetivo. Esta declaración de problema engañosamente simple oculta una complejidad significativa: el espacio de las posiciones posibles de agarre es continuo y de alta dimensión, la mayoría de las posiciones fallarán, y la relación entre la posición pre-agarrar y el éxito de agarre depende de la mecánica de contacto que no es totalmente visible desde un solo marco RGB-D.

El problema se divide aproximadamente en dos regímenes: el agarre de arriba hacia abajo (2.5D ignora la rotación del agarre alrededor del eje de aproximación, agarre desde arriba) que simplifica el problema lo suficiente para los métodos clásicos; y el agarre de 6-DOF (previsión de la posición completa) que requiere métodos aprendidos para una generalización confiable.

Los métodos de detección de grifo: la taxonomía

El campo ha evolucionado a través de tres generaciones de enfoques, cada uno todavía relevante para diferentes casos de uso:

Generación 1 Métodos geométricos/analíticos: Computa la calidad de la captura del modelo geométrico del objeto utilizando métricas como la métrica de calidad epsilon (la llave más grande que la captura puede resistir) o el análisis de cierre de fuerza. Estos métodos requieren una malla de objeto conocida y una estimación precisa de la posición. Son deterministas, interpretables y rápidos pero no pueden manejar objetos nuevos. Todavía se utiliza en la recogida de basura industrial donde el catálogo de objetos es conocido y fijado.

Generación 2 Punto de puntuación aprendido en las posiciones de los candidatos: Muestra de posiciones de los candidatos (a azar o utilizando heurísticas geométricas), luego poncha a cada candidato con una red neuronal aprendida. GPD, GQ-CNN y GraspNet-1Billion pertenecen a esta categoría. La diferencia clave de la generación 1 es que la función de puntuación se aprende de los datos en lugar de calcularse analíticamente, lo que permite la generalización a nuevos objetos.

Generación 3 Regresión de la posición de 6-DOF directa: Predict grasp poses directamente desde la nube de puntos sin muestreo explícito de candidatos. Contact-GraspNet y AnyGrasp utilizan este enfoque, prediciendo un conjunto de poses de agarre por punto en la nube. Más rápido y más preciso que los métodos de muestreo y puntuación porque la red aprende a centrarse en regiones prometedoras de la nube de puntos en lugar de evaluar a los candidatos seleccionados de manera uniforme.

Métodos clásicos

  • GPD (Pose de Agarre Detection): Detección de poses de captura de 6-DOF basado en la nube de punto.
  • GQ-CNN (Berkeley AUTOLAB): Captura calidad CNN que opera en parches de imagen de profundidad. Rapido (50 ms de inferencia) y preciso para captura de arriba hacia abajo desde la vista aérea directa. Limitación: limitado a la dirección de enfoque de arriba hacia abajo no puede predecir captura lateral o posiciones precisas de 6-DOF. Mejor para escenarios de selección de contenedores con cámara aérea. fuente abierta con modelos pre-entrenados disponibles.
  • PointNetGPD: Combina codificación en la nube de puntos basada en PointNet con la muestreo de candidatos de GPD. Aprende a captar características directamente de las nubes de puntos en lugar de representaciones voxelizadas. Mejora en GPD en escenas desordenadas donde la calidad de la nube de puntos es desigual.

Métodos de 6-DOF aprendidos: comparación detallada

Method Input Novel Objects Speed Training Data Availability
GraspNet-1Billion Point cloud Good (ShapeNet) 10 Hz 1.2B grasps, 97 objects Open source
Contact-GraspNet Point cloud Good (handles occlusion) 8 Hz Acronym dataset, 8K objects Open source
AnyGrasp Point cloud Best (open-set) 15 Hz GraspNet-1B + augmented Commercial API + SDK
FoundationGrasp RGB-D + language Best (language-guided) 3 Hz Multi-modal pre-training Research (code released)
GraspNeRF Multi-view RGB Good (NeRF reconstruction) 0.5 Hz NeRF + grasp labels Research only

GraspNet-1Billion y Contact-GraspNet: los caballos de trabajo de código abierto

GraspNet-1Billion (Fang et al., CVPR 2020) introdujo el conjunto de datos de captura más grande y un punto de referencia que se ha convertido en la evaluación estándar para el captado de 6-DOF aprendido. El modelo utiliza PointNet++ para codificar la nube de puntos y predice poses de agarre por punto con una puntuación de calidad. La innovación clave es el agrupamiento de cilindros a nivel de aproximación que limita la predicción de agarre a direcciones de aproximación factibles, reduciendo significativamente los falsos positivos.

Contact-GraspNet (Sundermeyer et al., ICRA 2021) aborda el caso más difícil de agarrar en desorden pesado y oclusión parcial. En lugar de predecir poses de agarramiento para segmentos de objetos aislados, Contact-GraspNet predice agarramientos para cada punto de contacto visible en la escena, independientemente de a qué objeto pertenece el punto. Esto hace que sea robusto para los errores de segmentación una gran ventaja práctica porque la segmentación de objetos en escenas desordenadas es en sí misma poco confiable.

El estándar de tiro cero

AnyGrasp, desarrollado por el mismo grupo que GraspNet-1Billion, es el método de vanguardia para capturar objetos nuevos no vistos durante el entrenamiento.

Lo que hace que AnyGrasp sea la opción práctica para la mayoría de los equipos es su rendimiento de tiro cero. No es necesario ajustarlo a sus objetos específicos. Esta propiedad "solo funciona" es rara en la percepción robótica y es lo que hace de AnyGrasp el punto de partida recomendado para nuevas implementaciones de planificación de captura.

La API comercial (disponible desde Graspnet.net) proporciona inferencia como servicio con una biblioteca de clientes Python útil para los equipos que desean usar AnyGrasp sin mantener la infraestructura de inferencia. Para los equipos que necesitan inferencia en el dispositivo, el SDK admite la implementación de Jetson AGX Orin a 8-12 Hz.

Una planificación de la maestría

Todos los métodos discutidos hasta ahora asumen un agarre paralelo de mandíbula el efecto final más simple y común. Las manos dexterosas (3-5 dedos, 10-20+ DOF) requieren una planificación de agarre fundamentalmente diferente porque el espacio de configuración de contacto es mucho más grande.

DexGraspNet (Wang et al., 2023) genera conjuntos de datos de agarre a gran escala utilizando la síntesis de agarre basada en la optimización.

UniDexGrasp (Xu et al., CVPR 2023) adopta un enfoque de aprendizaje de refuerzo: entrenar una política en la simulación para capturar objetos arbitrarios con una mano destre, luego transferir a hardware real. UniDexGrasp logra un 85% de éxito en nuevos objetos en la simulación, pero la transferencia de sim a realidad sigue siendo un desafío Las tasas de éxito reales son del 50-70% debido a errores de modelado de contacto (ver nuestra guía de sim a realidad) T3)).

** Recomendación práctica:** Si está utilizando un agarre paralelo de mandíbula, comience con AnyGrasp. Si está utilizando una mano hábil (Mancha de Orca, Mancha de Allegro, Mancha LEAP), comience con DexGraspNet para la generación de datos y forme una política sobre las agarres generadas. RCSV mantiene Mancha de Orca y manos hábiles compatibles y proporciona soporte de integración para las tuberías de planificación de agarre hábiles.

Métodos de imagen de punto en la nube frente a la profundidad

Una pregunta práctica: ¿debe su planificador de captura funcionar en imágenes de profundidad bruta o en nubes de puntos 3D?

Criterion Nube de Puntos Methods Depth Image Methods
Multi-view fusion Natural (register and concatenate) Requires volumetric fusion (TSDF)
Inference speed 8-15 Hz (PointNet++ backbone) 20-50 Hz (CNN backbone)
6-DOF grasp support Native (3D coordinates) Requires projection/back-projection
Clutter handling Better (3D reasoning) Struggles with overlapping objects
Pre-processing Downsampling, normal estimation Minimal (resize, normalize)
Best method AnyGrasp, Contact-GraspNet GQ-CNN (top-down only)

Para la captura de 6-DOF en entornos desordenados, los métodos de nube de punto son estrictamente mejores. Para la captura de basura de arriba hacia abajo con una cámara aérea fija, los métodos de imagen de profundidad (GQ-CNN) son más rápidos y suficientes. La mayoría de los equipos deben usar métodos de nube de punto por defecto a menos que los requisitos de velocidad requieran aproximaciones de imagen de profundidad.

Línea de integración

La integración estándar con una pila ROS2 + MoveIt2:

Paso 1: Captura de la nube de puntos de RealSense ros2 lanzar realsense2_camera rs_launch.py \ enable_pointcloud:=true align_depth.enable:=true # Paso 2: ejecutar el planificador de agarre (ejemplo de AnyGrasp) desde cualquiergrasp importar Detector de AnyGraspDetector = AnyGraspDetector() detector.load_model("checkpoint_detection.tar") # Pasar la nube de puntos, obtener clasificados agarre candidatos agarre, puntajes = detector.get_grasps.get_cloud, workspace\mask=executable\plane\mask, top_=20 # Paso 3: Filter por reactibilidad (MoveIt2 IK) G (g) g (g) g (g) g g (g) g) g (g) g (g) g) g (g) g (g) g) g (g) g (g) g) g (g) g) g (g) g (g) g) g (g) g (g) g (g) g) g (g) g (g) g (g) g) g (g) g (g) g) g (g) g (g) g) g (g) (g) g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g) (g)

Detalles clave de la implementación: filtrar siempre los candidatos de agarre por límites del espacio de trabajo (excluir agarres que choquen con la mesa o estén fuera del alcance del brazo), establecer un umbral de puntuación de calidad (0,7 es un buen punto de partida), y utilizar el control de impedancia en los últimos 5 cm de aproximación para manejar errores de posición. El cambio del control de posición al control de impedancia en la distancia de aproximación es fundamental para una captura confiable el control de posición puro se atascará en contacto si hay algún error de posición.

Integración de MoveIt2: arquitectura de tuberías completa

La integración de un planificador de agarre aprendido en una pila de producción MoveIt2 implica más que llamar al planificador y ejecutarlo. Una tubería robusta requiere una planificación consciente de colisiones, filtro de agarre, generación de trayectoria de aproximación/retiro y lógica de retroceso. Aquí está la arquitectura detallada:

Captura de nodo de tubería (ROS2 Python)

# grab_pipeline.py -- Full MoveIt2 + AnyGrasp pipeline import rclpy de rclpy.node import Node de moveit2 import MoveIt2 de geometría_msgs.msg import PoseImprometido desde sensor_msgs.msg import PointCloud2 import numpy como np clase GraspPipelineNode: ____((self): super._____\('grasp_pipeline') self.moveit = MoveIt2(node=self, joint_names=ARM_JOINTS, base_link'base_link'enday_link', end_link'distret_distret' table.detews = AnyGasp_distret' (cualquiera que sea el modelo) \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Crop to workspace mask = np.all((nube[:,:3] >= self.ws_min) & (nube[:,:3] <= self.ws_max), eje=1) nube_ws = nube[mask] # 2. ejecutar capturas de detección de agarres, puntajes = self.detector.get_grasps(nube_ws, top_k=50, aplicar_nms=True) # 3. Filtrar por umbral de puntuación válido = [(g, s) para g, s en zip(grasps, puntuaciones) si s >= self.score_thresh] si no es válido: self.get_logger().advertencia('No tiene captura válida por encima del umbral') devuelve Falso # 4. Computa la postura pre-grasp (a lo largo del eje de aproximación) enfoque_vec = captura.rotation[:, 2] # z-axis = enfoque pre_grasp = captura.copy() pre_grasp.translación -= enfoque_vec * self.approach_dist # 4b. Compruebe la viabilidad de IK para ambas posiciones si no es self.moveit.check_ik(pre_grasp): continúe si no es self.moveit.check_ik(grasp): continúe # 4c. Plan y ejecutar enfoque self.moveit.open_gripper() éxito = self.moveit.plan_y_execute( pre_grasp, velocidad_scaling=0,5) si no es éxito: continuar # 4d. En el caso de los puntos de control de la fuerza, el control de la fuerza se debe a que el control de la fuerza sea cerrado. Retiro (levantado hacia arriba) retiro_pose = captura.copy() retiro_pose.translación[2] += self.retiro_dist self.moveit.plan_and_execute(retiro_pose, velocidad_scaling=0.3) retornar verdadero self.get_logger().error('Todos los candidatos a captura han fallado') retornar Falso

Las decisiones arquitectónicas clave en este proyecto:

  • El recorte del espacio de trabajo antes de la detección reduce los falsos positivos de las superficies de fondo y reduce el tiempo de inferencia en un 30-40% al reducir el número de puntos.
  • Verificación preliminar de la IK antes de la planificación evita costosas llamadas de planificación de movimiento para capturas inaccesibles.
  • Pista cartesiana para el acercamiento final asegura un acercamiento en línea recta a la posición de agarre, fundamental para evitar colisiones durante los últimos centímetros.
  • Colocación controlada por la fuerza evita la triturada de objetos frágiles. Establezca límites de fuerza basados en su agarre: 5-10N para alimentos/electrónica, 15-30N para objetos rígidos, 50N+ para piezas industriales.
  • Top-10 fallback loop maneja el caso común en el que el agarre con más puntuaciones es inaccesible o tiene una colisión.

Calibración de la cámara para la planificación de la captura

La precisión de la planificación de la captura depende de la calibración de cámara a robot (calibración de ojos de mano). Un error de calibración de 5 mm se traduce directamente en un error de posición de 5 mm de captura - suficiente para causar fallos en objetos pequeños.

  1. Recolectar datos de calibración: Mover el robot a 15-20 posiciones mientras observa una tabla o tabla de ajedrez ArUco montada en el factor final (ojo a mano) o montada en el espacio de trabajo (ojo a mano).
  2. Solver AX=XB: Utilice el T0 de OpenCV con el método Tsai-Lenz o Park. Esto le da la transformación de cámara a base (ojo a mano) o de cámara a efecto final (ojo a mano).
  3. ** Validado:** Comando al robot para tocar un punto conocido en el marco de la cámara. Medir el error. Repita durante 10 puntos en todo el espacio de trabajo. Objetivo: <2mm error medio, <4mm error máximo.
  4. Recalibración periódica: Después de cualquier ajuste de la montaje de la cámara, movimiento de la base del robot o cambio significativo de temperatura (la expansión térmica cambia la posición de la cámara hasta en 1 mm por 10 °C).

RCSV proporciona monturas de cámara precalibricadas para RealSense D435i y D405 que mantienen una precisión de calibración de <1.5 mm. Para los equipos que usan monturas personalizadas, nuestros servicios de datos incluyen calibración de ojos a mano como parte del paquete de configuración de hardware.

Grab Planner FPS por plataforma de hardware

La velocidad de inflexión varía dramáticamente en todo el hardware de implementación. Estos números se midieron con el tamaño de lote 1 en nubes de puntos reales (20K-40K puntos después de la cosecha del espacio de trabajo):

Method RTX 4090 RTX 3060 Jetson Orin Jetson Xavier CPU (i7-13700)
GQ-CNN (top-down) 60 Hz 45 Hz 25 Hz 12 Hz 8 Hz
GraspNet-1Billion 18 Hz 10 Hz 5 Hz 2 Hz 0.8 Hz
Contact-GraspNet 15 Hz 8 Hz 4 Hz 1.5 Hz 0.5 Hz
AnyGrasp 22 Hz 15 Hz 8 Hz 3 Hz 1.2 Hz
FoundationGrasp 5 Hz 3 Hz 1.2 Hz 0.4 Hz N/A
GPD 8 Hz 5 Hz 2.5 Hz 1 Hz 0.6 Hz

Trabajo práctico: En Jetson Orin (el cálculo estándar de borde para robots móviles), AnyGrasp a 8 Hz es el único método de 6-DOF lo suficientemente rápido para la captura reactiva. En un RTX 3060, todos los métodos se ejecutan a velocidades aceptables para tareas de pick-place donde planeas una vez y ejecutas. Para la captura de cinta transportadora a más de 20 picks / minuto, necesitas una GPU de escritorio o GQ-CNN en Jetson (sólo captura de arriba hacia abajo).

Captura la tasa de éxito por categoría de objeto

El éxito de la captura en el mundo real depende en gran medida de las propiedades del objeto.

Object Category AnyGrasp Contact-GraspNet GQ-CNN Notes
Rigid boxes/cans 95% 93% 90% Easiest category
Irregular shapes (toys, tools) 88% 85% 72% GQ-CNN limited to top-down
Small objects (<3cm) 78% 72% 65% Depth noise dominates
Transparent (glass, clear plastic) 35% 30% 25% Depth sensor failure
Deformable (bags, cloth) 55% 50% 40% Shape changes on contact
Heavy clutter (>15 objects) 75% 80% 58% Contact-GraspNet excels here
Flat objects (books, plates) 82% 78% 70% Side grasps often needed

Planificación de los Maestros para la Manipulación Condicionada por el Lenguaje

La última generación de planificadores de agarre integra el acondicionamiento del lenguaje, permitiendo comandos como "recoger la taza roja" o "acaparar la botella más izquierda". Esto reduce la brecha entre la planificación de agarre (¿qué posición de agarre es estable?) y la planificación de tareas (¿qué objeto debo agarrar?).

** Patrón de arquitectura:** La cadena de tuberías de captura típica condicionada por el lenguaje contiene tres componentes: (1) un detector de objetos de vocabulario abierto (GroundingDINO, OWLv2) que localiza el objeto objetivo de una consulta de texto, (2) un modelo de segmentación (SAM, Segment Anything) que produce una máscara para el objeto objetivo y (3) un planificador de captura que opera en la nube de puntos enmascarados. Este enfoque modular permite intercambiar cada componente de forma independiente.

# lenguaje_grasp.py -- "Pick the Language-conditioned grasp pipeline from groundingdino.util.inference import predict as gd_predict from segment_anything import SamPredictor import numpy as np def language_grasp(rgb, profundidad, prompt, grab_detector, sam, camera_K): """Pick the object described by <unk>T1."" # 1: Detecta las cajas de objetos objetivo, logits, frases = gd_predict\model, image=rgb,=tar, box_thres=0.35, text\threshold=0.25) si las cajas de lencería) 0: sum sum sum sum sum sum sum sumo de puntos de retorno, "Objeto no encontrado" # No se capta el objeto: ##################################################################################################################################################################################

Esta tubería agrega 80-150 ms de latencia para la detección y segmentación (en un RTX 3060) pero mejora dramáticamente el éxito en el nivel de tarea porque el planificador de captura solo considera el objeto objetivo, eliminando las captures en los distractores.

Abre los puntos de referencia

Benzmarco de GraspNet: La evaluación estándar para el grabado de 6-DOF aprendido. Utiliza 190 escenas con 88 objetos (divididos en categorías vistas/similares/novelas). Metricas: AP (precisión media en diferentes umbrales de calidad) y tasa de éxito en diferentes coeficientes de fricción. Todos los métodos principales informan resultados sobre este índice de referencia, haciendo la comparación entre métodos más sencilla.

YCB Graping Benchmark: Utiliza el conjunto de objetos YCB (77 objetos domésticos comunes) con un protocolo de configuración y evaluación de cámara estandarizado.

OCRTOC (Open Cloud Robot Table Organization Challenge): Un punto de referencia en línea para la manipulación de una mesa que incluye la planificación de la captura como un componente.

Modos y mitigantes de los fracasos

  • Objetos transparentes (vidrio, plástico transparente): Los sensores de profundidad fallan en superficies transparentes luz estructurada y ToF requieren reflexión superficial.
  • Objetos pesados cerca del límite de carga útil: La planificación de la carga no tiene en cuenta los límites de carga útil. Agarre un objeto cerca del límite de carga útil del brazo desde el ángulo equivocado y puede tener éxito en la agarre, pero no levantar debido a los límites de par. Mitigation: añadir estimación de carga útil a su filtro de selección de la agarre (ya sea a partir de pesos conocidos de objetos o de la detección de F/T de muñeca después del contacto inicial).
  • Objetos delgados <3mm: Las agarradoras estándar paralelas de mandíbula no pueden acercarse a <3mm sin modificaciones de hardware. Los planificadores de agarradoras entrenados en objetos estándar producen agarradas inválidas para tarjetas de crédito, hojas de papel o placas delgadas.
  • Escenas altamente desordenadas (> 20 objetos): La calidad de la nube de punto se degrada en desorden denso debido a la oclusión entre objetos. Contact-GraspNet maneja esto mejor que GraspNet-1Billion porque no requiere segmentación de objetos, pero incluso Contact-GraspNet muestra una degradación de precisión del 15-20% por encima de 15 objetos. Mitigación: utilice una estrategia de desorden agarre y retire primero objetos fáciles, luego vuelva a observar la escena para los objetos difíciles restantes.
  • Objetos deformables (bolsas, tela, alimentos blandos): Todos los métodos actuales suponen objetos rígidos. Mitigación: utilizar una fuerza de agarre conservadora, implementar una re-garrapa reactiva basada en [reacción de la fuerza de contacto]T5), o recopilar datos de demostración específicos de tareas que capturen estrategias de manipulación deformables.

RCSV tiene cámaras RealSense D435i y D405 optimizadas para la manipulación, junto con nodos de planificación de captura ROS2 preconstruidos para GraspNet y AnyGrasp. Nuestros [servicios de datos] T6) incluyen una colección de demostración de captura para equipos que entrenan políticas de captura personalizadas. [Visita el catálogo de hardware] T7) y [documentación de plataforma] T8) para guías de integración.

Lectura relacionada

  • [Guía de configuración de la cámara del robot]
  • [Forzas de contacto en manipulación]
  • [Sensores de robots multimodal]
  • [Transferencia de Sim a Real]
  • [Política de difusión para los robots]
  • [Servicios de datos]
  • [Catálogo de hardware]
  • [Glosario]

Hardware de percepción y integración

RCSV proporciona cámaras de profundidad, nodos de planeación de captura y soporte de integración para las tuberías de percepción de manipulación.

[Shop Perception Hardware] T17)