La manipulación rápida requiere movimientos que sean rápidos tanto de planificar como de ejecutar. La planificación de movimientos ha avanzado considerablemente en la búsqueda de trayectorias sin colisiones en entornos abarrotados. Para ejecutar esas trayectorias, hay que establecer una temporización que respete los límites de velocidad, aceleración y par de los actuadores. Las cargas transportadas modifican la dinámica y pueden hacer inviable un movimiento que, de otro modo, sería factible. Además, la longitud geométrica de la trayectoria por sí sola no determina el tiempo de ejecución: una trayectoria más corta puede requerir un movimiento más lento debido a las restricciones de los actuadores. Por tanto, una planificación eficiente de movimientos debe tener en cuenta tanto el coste computacional de generar una trayectoria como el tiempo necesario para ejecutarla.
Los trabajos anteriores han demostrado las ventajas de la planificación paralela, las representaciones de trayectorias suaves y los cálculos robóticos eficientes. Sin embargo, planificar movimientos ejecutables requiere evaluaciones repetidas de colisiones y dinámica durante la optimización de la trayectoria. Para reducir este coste, se necesitan tanto menos iteraciones de optimización como cálculos más económicos en cada iteración. El tiempo de ejecución plantea un reto complementario: reescalar uniformemente el paso de tiempo no permite redistribuirlo a lo largo de una trayectoria cuyos límites de los actuadores varían según la configuración. Por tanto, una planificación eficiente que tenga en cuenta la carga requiere optimizar de forma flexible la geometría y la temporización de la trayectoria, además de evaluar las restricciones con rapidez.
Presentamos cuRoboV2-Fast, un planificador de una sola GPU para movimientos sin colisiones y limitados por par que reduce tanto la latencia de planificación como el tiempo de ejecución. La optimización de trayectorias con B-splines refina la geometría con menos iteraciones, mientras que TimeOpt optimiza la velocidad de recorrido a lo largo de la trayectoria fija resultante. El soporte local de la spline temporal genera sistemas en bandas que permiten una optimización eficiente en GPU. Un RRT paralelo en GPU inicializa la ruta cuando es necesario, y los cálculos robóticos acelerados reducen el coste del refinamiento. La dinámica inversa diferenciable incorpora límites de par que dependen de la carga y permite actualizar la inercia durante la ejecución a medida que cambian los objetos transportados.
Este trabajo aporta seis contribuciones a la planificación rápida de movimientos ejecutables:
- Se utilizan B-splines para optimizar trayectorias sin colisiones, que tienen en cuenta la carga y están limitadas por par, igualando el rendimiento de cuRoboV1 con 25 frente a 125 iteraciones iniciales en la prueba de convergencia.
- TimeOpt acelerado en GPU utiliza sistemas de Newton en bandas y un solucionador predictor-corrector primal-dual para temporizar trayectorias fijas bajo límites muestreados de velocidad, aceleración, jerk y par. Reduce la duración media del movimiento un 15.7% adicional frente al refinamiento uniforme del paso de tiempo y promedia 0.28 ms en consultas válidas del benchmark de 100 g en RTX 5090.
- Se aceleran los cálculos robóticos y la dinámica inversa diferenciable, lo que permite actualizar la carga sin recompilar. Se indica que las iteraciones de optimización de trayectorias son más rápidas que en cuRoboV2 en RTX 5090 y Jetson AGX Orin; los valores de aceleración no aparecen en el texto proporcionado.
- Un RRT paralelo en GPU permite inicializar rutas en menos de un milisegundo, con un promedio de 0.305 ms. Se indica que es más rápido que cuRoboV1 PRM y pRRTC; los valores de aceleración no aparecen en el texto proporcionado con comprobaciones de colisión aproximadas. Separar la validación de restricciones del crecimiento del árbol permite añadir comprobaciones sin modificar los kernels de crecimiento.
- La canalización integrada alcanza un tiempo medio de planificación de movimientos de 4.4 ms con una carga de 3 kg en RTX 5090. Se indica que es más rápida que cuRoboV2; el valor de aceleración no aparece en el texto proporcionado y mantiene un éxito similar. cuRoboV2-Fast en Jetson AGX Orin también planifica más rápido que cuRoboV1 más TOPPRA en RTX 5090.
- Una canalización de recogida y depósito basada en cámara estéreo para YAM integra percepción, generación de agarres y planificación de movimientos en una sola GPU. El tiempo medio de ciclo completado es de 5.93 s, un 34.6% menos que con cuRoboV2, y la planificación representa tan solo el 1.0% del tiempo de ciclo.
La implementación de cuRoboV2-Fast se ha publicado como código abierto con la licencia Apache 2.0.
Trabajos relacionados
TimeOpt en cuRoboV2-Fast adopta la misma reducción de la dinámica a lo largo de una trayectoria fija y optimiza directamente una representación con B-splines cúbicos de la velocidad al cuadrado, bajo límites muestreados de velocidad, aceleración, jerk y par. Cada muestra depende de cuatro controles temporales, lo que genera sistemas de Newton en bandas para un solucionador predictor-corrector primal-dual. Este soporte local y la evaluación paralela de las restricciones permiten una optimización eficiente en GPU, con una latencia media de TimeOpt de 0.28 ms en las consultas válidas del benchmark de 100 g en RTX 5090.
La optimización con consideración del par añade evaluaciones repetidas de la dinámica y sus derivadas a esta carga de trabajo. GRiD acelera estas operaciones mediante la generación de código específica para cada robot, la dispersidad y el paralelismo en GPU. Este trabajo se centra en calcular directamente los gradientes de la función de pérdida de optimización y proporcionar los esquemas de cadena y los parámetros inerciales como datos de ejecución. Así se evita generar matrices completas de derivadas de la dinámica y se permiten actualizaciones de carga sin recompilar cuando la topología reducida no cambia, manteniendo a la vez la especialización para las dimensiones del robot. La integración de estos métodos con la optimización mediante splines y la inicialización geométrica permite planificar movimientos y agarres sin colisiones y limitados por par en una sola GPU.
Enfoque
El planificador de movimientos combina una inicialización sin colisiones, optimización con B-splines, TimeOpt para reajustar la temporización de la trayectoria, cálculos robóticos eficientes y dinámica inversa diferenciable. Primero, la planificación refina una semilla en línea recta y recurre a RRT cuando es necesario. Los movimientos restringidos, como la aproximación para el agarre y la elevación, utilizan términos de coste que penalizan considerablemente las desviaciones respecto a la trayectoria prescrita.
Inicialización de rutas sin colisiones con RRT
La implementación organiza el crecimiento en rondas sincronizadas de extensiones paralelas. En cambio, pRRTC permite que los bloques de GPU muestreen y amplíen árboles de forma asíncrona y repetida, con pasos de conexión voraces dentro de cada bloque. El kernel del nodo más cercano distribuye los cálculos de distancia entre los nodos almacenados y las coordenadas articulares, procesa el árbol en bloques y reduce los resultados para seleccionar el nodo más cercano a cada candidato. En pRRTC, cada hilo calcula las distancias completas para un subconjunto de nodos antes de una reducción del mínimo en todo el bloque. Así, ambos planificadores paralelizan la búsqueda del nodo más cercano, pero distribuyen el trabajo de manera diferente.
Los estados muestreados a lo largo de todas las aristas propuestas se comprueban en conjunto y, a continuación, se determina el prefijo válido de cada arista. Un escaneo paralelo asigna a los extremos aceptados posiciones de almacenamiento distintas, lo que permite insertarlos simultáneamente sin reservar cada posición mediante una operación atómica, como en pRRTC. Cada ronda también evalúa una extensión acotada desde el árbol opuesto. Esta organización mantiene la validación separada del crecimiento y permite añadir comprobaciones sin modificar los kernels de crecimiento. Reutilizar los búferes asignados y reproducir las operaciones de crecimiento mediante grafos CUDA reduce la sobrecarga de lanzamientos repetidos. Una vez encontrada una ruta, se acorta y se ajusta una semilla de spline para refinarla.
Cálculos robóticos acelerados
El coste de las evaluaciones repetidas del robot se reduce preparando una sola vez los datos dependientes de la topología y compartiendo resultados intermedios entre cálculos. Las operaciones con tensores en GPU identifican los descendientes de cada articulación y las articulaciones que contribuyen a cada par herramienta-actuador. Con esta estructura, la cinemática directa calcula en paralelo las poses locales de los eslabones y, después, compone las poses en coordenadas del mundo en orden de árbol mediante memoria compartida. Las transformaciones resultantes proporcionan las poses de la herramienta y las esferas de colisión, y permiten evaluar el jacobiano.
La comprobación de autocolisiones verifica si se solapan las esferas de colisión de los eslabones del robot. cuRoboV1 evalúa en paralelo los pares de esferas configurados, pero la cantidad de comprobaciones puede resultar costosa en robots representados por muchas esferas. El planificador calcula sobre la marcha una caja delimitadora alineada con los ejes (AABB) para cada eslabón, a partir de las posiciones actuales de sus esferas y de los radios ampliados. Estos límites se construyen en paralelo entre los eslabones y se almacenan en memoria compartida dentro del kernel de colisión. Si dos AABB de eslabones no se solapan, se omiten todas las comprobaciones entre pares de esferas de esos eslabones. Esta poda de bajo coste puede reducir considerablemente las comprobaciones detalladas por pares, especialmente cuando los eslabones están bien separados. Cada bloque de GPU combina las comprobaciones restantes, la reducción de costes y los gradientes de las esferas para un estado del robot.
La comprobación de colisiones con el entorno a lo largo del barrido utiliza el mismo principio para podar cuboides distantes. Primero, los límites que incluyen el radio de la esfera, el margen de activación y los semisegmentos adyacentes descartan los cuboides distantes. Los semibarridos restantes comparten la evaluación de distancia en el punto común de la trayectoria y combinan sus gradientes antes de una sola rotación a las coordenadas del mundo. Esto reduce los cálculos geométricos repetidos y mantiene la resolución de muestreo discreta elegida para la validación.
Integración de la planificación de agarres
Un objeto puede agarrarse desde muchas posiciones y orientaciones, por lo que la planificación del agarre comienza seleccionando la pose para la que se planificará. Dado un conjunto de poses de agarre candidatas, la cinemática inversa (IK) encuentra configuraciones factibles del robot y las clasifica según el error de pose y la distancia respecto a la configuración actual. Esto bastó para seleccionar el agarre en la tarea evaluada y permitió sustituir la optimización de trayectorias sobre el conjunto de poses objetivo de agarre por un cálculo IK menos costoso. La pose seleccionada define el objetivo para la planificación de movimientos posterior; que la pose sea factible según IK no demuestra por sí solo que el robot pueda alcanzarla por una ruta sin colisiones.
A continuación, el planificador genera tres movimientos conectados: desplazamiento hasta una pose de preagarre, separada de la pose de agarre seleccionada; aproximación a lo largo del eje de agarre; y elevación del objeto. La optimización con splines genera el movimiento de preagarre, con inicialización RRT cuando es necesario sortear obstáculos, mientras que la optimización de splines con restricciones produce movimientos lineales cartesianos para la aproximación y la elevación. Cada movimiento parte del estado terminal del movimiento anterior, con los ajustes de colisión configurados para permitir el contacto previsto. Una llamada de planificación independiente genera una transferencia sin colisiones del objeto agarrado hasta la pose de colocación.
Experimentos
La evaluación abarca la inicialización de rutas, la optimización de trayectorias con límites de par, los cálculos robóticos y la planificación de tareas de recogida y colocación. Los benchmarks de movimiento utilizan Franka Panda (7-DoF); los benchmarks de cálculo también incluyen G1 (29-DoF), y las tareas de manipulación utilizan YAM. La planificación sin conexión se ejecuta en RTX 5090, con mediciones adicionales de los tiempos de cálculo en Jetson; el despliegue en un robot real utiliza RTX 6000 Ada.
Inicialización de rutas con comprobaciones aproximadas
Los tiempos y la longitud de las rutas se calculan con 2,101 consultas con éxito compartido. El tiempo de planificación incluye el atajo nativo y excluye IK. La longitud media de la ruta es de 4.93 rad para el planificador propuesto, frente a 5.28 rad para cuRoboV1 PRM, 3.70 rad para cuRoboV2 PRM, 5.00 rad para VAMP y 5.32 rad para pRRTC.
Se rechazan las rutas que no superan las comprobaciones aproximadas de colisión. Las rutas aceptadas sirven como semillas para la optimización y requieren más refinamiento y validación.
Convergencia de la optimización de trayectorias
El presupuesto inicial se fija en 25 iteraciones y se comparan una o dos pasadas de refinamiento de 25, 50 o 100 iteraciones, con un factor de reducción del paso de tiempo de 0.8. Todos los ajustes mantienen un éxito del 93%. En las 93 consultas válidas para todos los ajustes, dos pasadas de 25 iteraciones reducen la duración media del movimiento un 5.5% respecto a la optimización inicial por sí sola. Añadir TimeOpt eleva la reducción total al 20.3%, lo que corresponde a una reducción adicional del 15.7% respecto a la trayectoria refinada. Los programas de refinamiento más largos mejoran la duración del movimiento después de TimeOpt en menos de un 0.2%.
Para los tiempos de cuRoboV2-Fast indicados y el despliegue en un robot real, el planificador utiliza 50 iteraciones iniciales seguidas de una pasada de refinamiento de 25 iteraciones. El detalle entre paréntesis correspondiente no aparece en el texto proporcionado.
Planificación de movimientos con cargas
La canalización completa genera un movimiento sin colisiones y limitado por par para su ejecución, dados un estado inicial y una pose objetivo. En los métodos que no tienen en cuenta los límites de par durante la planificación, las trayectorias se procesan posteriormente con TOPPRA, que modifica la temporización a lo largo de una trayectoria fija. Se comparan cuatro canalizaciones: cuRoboV2-Fast, cuRoboV2, cuRoboV1 más TOPPRA y VAMP más TOPPRA.
cuRoboV2-Fast y cuRoboV2 alcanzan tasas de éxito similares con las distintas cargas, superiores a las de cuRoboV1 más TOPPRA y VAMP más TOPPRA. Con la carga más pesada, el éxito disminuye para todos los métodos, con un descenso mayor en las dos referencias basadas en TOPPRA; cuRoboV2-Fast conserva una ventaja de 14.5–15.7 puntos porcentuales frente a ellas.
En las consultas válidas para todos los métodos y todas las cargas, cuRoboV2-Fast genera la menor duración media de movimiento, con una reducción media del 5.8% frente a cuRoboV2 en todas las cargas. La longitud de la trayectoria por sí sola puede llevar a conclusiones engañosas al comparar la eficiencia del movimiento. Las trayectorias medias en el espacio articular de cuRoboV2-Fast son un 0.8–4.2% más largas que las de cuRoboV1 más TOPPRA, pero sus movimientos duran, en promedio, un 6.8% menos con las distintas cargas.
Cómputo de la optimización de trayectorias
cuRoboV2-Fast reduce el tiempo de optimización de trayectorias mediante iteraciones más rápidas y un presupuesto de iteraciones menor. Con la dinámica inversa activada, se indica que cada iteración es más rápida que en cuRoboV2 en RTX 5090 y Jetson AGX Orin; los valores de aceleración no aparecen en el texto proporcionado.
Experimentos de planificación en simulación
Se comparan cuRoboV1, cuRoboV2 y cuRoboV2-Fast en una tarea simulada de recogida y colocación con YAM que organiza cinco cubos, desde una disposición desordenada, en una bandeja en RTX 5090. La planificación incluye la selección del agarre, el preagarre, la aproximación, la elevación y la transferencia. Los tres métodos completan los cinco cubos, y las trayectorias guardadas de elevación y transferencia superan auditorías independientes de colisiones con el objeto agarrado y de par de la carga.
En una simulación distinta de transferencia con YAM entre ubicaciones fijas de recogida y colocación, la carga varía entre 100 g y 800 g. La carga más pesada modifica el movimiento optimizado: el movimiento pasa de la articulación 2 a la articulación 5 para respetar el límite de par de la articulación 2, lo que muestra cómo la planificación que tiene en cuenta la carga adapta la trayectoria al peso transportado.

Despliegue en un robot real
cuRoboV2-Fast se despliega en el I2RT YAM para despejar mesas y recoger objetos de contenedores. Una RTX 6000 Ada ejecuta SceneFields, GraspGenX y el planificador. SceneFields proporciona profundidad, detecciones y máscaras del robot. Construye un TSDF con vóxeles de 5 mm para las superficies de los objetos que utiliza GraspGenX y un ESDF con vóxeles de 20 mm para que el planificador compruebe colisiones.

Las mediciones de la respuesta articular muestran que cuRoboV2-Fast aprovecha más el rango de velocidad disponible durante la ejecución del brazo. En comparación con cuRoboV2, la fracción del tiempo de movimiento con una utilización de velocidad del 90–100% casi se duplica, mientras que la fracción por debajo del 50% de utilización disminuye un 21.7%. La utilización del par se mantiene por debajo del 90% durante el 99.6% del tiempo de movimiento con cuRoboV2-Fast, y los pares registrados permanecen dentro de los límites en ambos métodos. Las velocidades ejecutadas pueden superar los límites pese a que los planes sean factibles en cuanto a velocidad, lo que destaca la importancia de tener en cuenta las restricciones de par además de las de velocidad al planificar movimientos para su ejecución.
Dedicar una mayor fracción del tiempo de movimiento a velocidades más altas se traduce en tiempos de ejecución del brazo más cortos. El texto del artículo proporcionado termina después de «Across a» y no incluye el resto de este resultado.
Preguntas frecuentes
¿Qué optimiza cuRoboV2-Fast? Planifica movimientos sin colisiones y limitados por par, y optimiza la geometría de la trayectoria y la velocidad de recorrido teniendo en cuenta la dinámica dependiente de la carga.
¿Cómo reduce TimeOpt la duración del movimiento? Optimiza una representación con B-splines cúbicos de la velocidad al cuadrado a lo largo de una trayectoria fija, bajo límites muestreados de velocidad, aceleración, jerk y par.
¿Cómo inicializa el planificador las rutas para sortear obstáculos? Un RRT paralelo en GPU comprueba las aristas propuestas y proporciona una ruta que se acorta y se ajusta a una semilla de spline para refinarla.
¿Cómo afecta la carga al movimiento planificado? La carga modifica la dinámica y puede cambiar la trayectoria optimizada; en una transferencia simulada con YAM, una carga más pesada desplazó el movimiento de la articulación 2 a la articulación 5 para respetar el límite de par de la articulación 2.
