La comprobación de colisiones con RoboDK puede ayudarle a evitar colisiones en su configuración real. La comprobación de colisiones puede utilizarse de diferentes formas, como comprobar visualmente las colisiones, evitar automáticamente las colisiones para proyectos de mecanizado de robots o generar un mapa sin colisiones para crear automáticamente programas sin colisiones.
Esta sección cubre los siguientes temas:
●Cómo activar la comprobación de colisiones en sus simulaciones.
●Cómo definir un mapa de detección de colisiones.
●Cómo activar la detección y evitación automáticas de colisiones en proyectos de mecanizado robotizado.
●Cómo crear automáticamente programas sin colisiones para enlazar diferentes objetivos u otros programas utilizando un algoritmo PRM.
Seleccione Herramientas➔
Siga estos pasos para comprobar con seguridad un programa en busca de colisiones:
1.Haga clic con el botón derecho en un programa.
2.Seleccione Comprobar trayectoria y colisiones (Mayús+F5). Esta opción comprueba rápidamente si la ruta es factible (igual que Comprobar ruta - F5) y luego valida que no haya colisiones.
Puede especificar si es necesario comprobar si hay colisiones en la interacción entre cualquier par de objetos.
Seleccione Herramientas➔
Por defecto, RoboDK comprueba las colisiones entre todos los objetos en movimiento de la estación, incluidos todos los eslabones, objetos y herramientas del robot. Como excepción, no se comprueban las colisiones de las articulaciones consecutivas del robot, ya que siempre pueden estar en contacto.
La velocidad de detección de colisiones depende en gran medida de muchos factores.
1.El número de pares de comprobaciones definidos en el mapa de colisiones. Un mapa de colisiones con menos comprobaciones será más rápido.
2.El paso del robot utilizado para la comprobación de colisiones. El paso de colisión puede modificarse en el menú Herramientas➔ Opciones➔ Movimiento. Los movimientos lineales utilizan el paso en milímetros y los movimientos de articulación utilizan el paso en grados. Un paso mayor proporcionará una comprobación de colisión más rápida pero el resultado puede ser menos preciso.
3.Potencia informática: una mayor potencia informática (CPU más rápida) y más hilos de procesamiento le permitirán disponer de una comprobación de colisiones más rápida.
4.La complejidad de los archivos 3D. Las geometrías con mayor nivel de detalle, como las áreas redondeadas, suelen requerir más potencia de cálculo. Simplificar estas geometrías y reducir el número de triángulos le ayudará a acelerar la comprobación de colisiones.
Debería tener en cuenta las siguientes directrices para una mejor comprobación de la colisión:
1.Elija los formatos STEP o IGES en lugar de los archivos STL para mejorar el rendimiento y la compatibilidad.
2.Simplifique la geometría al máximo.
3.Utilice el Addin simplificar malla para simplificar automáticamente la geometría compleja: https://robodk.com/addins.
4.Para identificar elementos agrupados incorrectamente, active las previsualizaciones de cuadros delimitadores a través de Herramientas➔ Opciones➔ Otros➔ Dibujar cuadros delimitadores (cuando la casilla de colisión esté activada). Asegúrese de que los recuadros delimitadores no abarcan varios elementos separados.
5.Evite utilizar la función "Simplificar objeto..." que encontrará en Herramientas➔ Opciones➔ Visualización. Consolida todas las superficies en un único elemento, dando como resultado un cuadro delimitador extenso, lo que va en contra del punto anterior.
6.Disponga de objetos específicos para colisiones en el entorno: duplique los objetos y elimine las superficies que no puedan alcanzarse, o importe una versión con geometrías más sencillas (por ejemplo, cascos convexos). Utilice el objeto original sólo con fines visuales y exclúyalo del mapa de colisiones.
7.Mediante la API, actualice dinámicamente el mapa de colisiones o establezca elementos invisibles cuando no deban formar parte de la detección de colisiones.
Siga estos pasos para activar la comprobación automática de colisiones y la evitación de colisiones en los proyectos de mecanizado robotizado:
1.Seleccione Herramientas➔ Opciones➔ CAM
2.Comprobar Permitir la evitación automática de colisiones
3.Haga doble clic en su proyecto de mecanizado robotizado, impresión 3D, seguimiento de curvas o seguimiento de puntos.
4.Marque Evitar colisiones: activará la evitación automática de colisiones cambiando la orientación de la herramienta alrededor del eje Z, tal y como se describe en los parámetros de optimización.
La función de planificación del movimiento crea automáticamente trayectorias sin colisiones dentro del espacio de trabajo del robot. En RoboDK, esta función utiliza un algoritmo de planificación del movimiento denominado "hojas de ruta probabilísticas" (PRM).
En primer lugar, se crea un mapa del espacio libre en el espacio de trabajo del robot. A continuación, este mapa se utiliza para generar rápidamente trayectorias sin colisiones durante la programación del robot.
Los algoritmos PRM se caracterizan por las dos propiedades siguientes:
●Probabilístico: Los puntos del "espacio de configuración" (es decir, el conjunto de puntos que el planificador utiliza para saber dónde puede moverse el robot en su espacio de trabajo) son elegidos al azar por el planificador. Esto hace que los algoritmos PRM sean más rápidos que otros algoritmos de planificación del movimiento que intentan cubrir todo el espacio de trabajo por igual.
●Hoja de ruta: Los algoritmos PRM funcionan creando primero una "hoja de ruta" de todo el espacio de trabajo del robot.
Para una introducción más general a la planificación del movimiento de los robots, consulte esta entrada del blog.
Existen dos fases distintas cuando se utiliza la planificación del movimiento PRM. Éstas se realizan por separado en RoboDK, lo que mejora la eficacia de la función. La "fase de construcción", más lenta, sólo debe realizarse una vez, mientras que la "fase de consulta", más rápida, puede repetirse muchas veces.
Las dos fases son:
Para obtener más información sobre el funcionamiento del algoritmo PRM de RoboDK, consulte esta entrada del blog.
Esta sección muestra cómo utilizar ambas fases en un programa RoboDK. Se utiliza un ejemplo de configuración de soldadura para demostrar la funcionalidad.
Para utilizar el planificador de movimiento, es necesario que haya un robot, idealmente con una herramienta. También tiene sentido que haya al menos un objeto dentro del espacio de trabajo, de lo contrario no será necesaria la evitación de colisiones. Puede ser útil tener asignados al menos dos objetivos que servirán como ubicaciones inicial y final para la trayectoria sin colisiones generada.
El ejemplo de configuración de soldadura puede crearse siguiendo el siguiente proceso:
1.Seleccione un robot:
a.Seleccione Archivo➔
b.Utilice los filtros para encontrar su robot. Por ejemplo, seleccione el ABB IRB 2600-12/1.85 (elija los siguientes filtros: ABB (marca), 10-20 kg de carga útil y 1500-2000mm de alcance.
c.Seleccione Descargar y el robot debería aparecer automáticamente en la pantalla principal.
2.Seleccione una herramienta:
a.Desde la misma biblioteca en línea, filtre por Tipo➔ Herramienta (haga clic primero en Restablecer filtro para eliminar los filtros anteriores)
b.Descargue una herramienta, por ejemplo la "Pistola de soldadura".
c.La herramienta debe acoplarse automáticamente al robot
d.Una vez cargada la herramienta, se puede cerrar la biblioteca en línea
3.Añada un marco de referencia:
a.Seleccione Programa➔
b.Seleccione el nuevo marco de referencia en el árbol y pulse F2 para renombrarlo a "Referencia de obstáculos"
4.Añada algunos objetos:
a.Seleccione Archivo➔
b.Seleccione un objeto, como la "Tabla de objetos.wrl"
c.Arrastre y suelte el objeto sobre la Referencia del obstáculo dentro del árbol de estaciones.
d.Seleccione otro objeto, como "box.stl" y arrástrelo también a la Referencia de obstáculos.
e.Mueva la mesa delante del robot haciendo lo siguiente:
i.Haga clic con el botón derecho en la referencia del obstáculo y elija "Opciones" (o simplemente haga doble clic en la referencia en el árbol) para que aparezca el panel Detalles del marco
ii.Introduzca los siguientes valores en el panel denominado Posición de referencia con respecto a: Proyecto: 1000, 0, 400, 90, 0, 0
f.Si es necesario, aumente el tamaño y la posición de su objeto (por ejemplo, la "caja") siguiendo estos pasos:
iii.Haga clic con el botón derecho del ratón sobre el objeto en el árbol de estaciones y elija Opciones (o simplemente haga doble clic sobre el objeto en el árbol) para que aparezca el panel Detalles del objeto
iv.Escale la caja haciendo clic en Más opciones➔Aplicar escala e introduzca "4,0" en la relación de escala
v.Desplace la caja sobre la mesa introduciendo los siguientes valores en el panel denominado Posición del objeto respecto a la referencia del obstáculo: 0, 0, 200, 0, 0, 0
5.Cree objetivos:
a.Seleccione el programa➔
b.Seleccione el nuevo Objetivo en el árbol de estaciones y seleccione F2 para cambiarle el nombre a Objetivo de inicio
c.Mueva el objetivo haciendo esto:
vi.Haga clic con el botón derecho del ratón sobre el objetivo en el árbol de estaciones y elija Opciones (o pulse F3) para que aparezca el panel Iniciar objetivo.
vii.Introduzca los siguientes valores en los paneles Posición del objetivo respecto a la referencia del obstáculo: 500, 0, 0, 90, 0, 180
d.Cree un segundo objetivo, del mismo modo, y cámbiele el nombre por Objetivo Final. Utilizando el mismo método que antes, muévalo a la ubicación: -500, 0, 0, 90, 0, 180
No es habitual que una tarea utilice todo el espacio de trabajo del robot. Al crear un mapa PMR, suele ser una buena idea restringir los límites de las articulaciones del robot. Esto acelerará el proceso de generación del mapa y garantiza que los puntos dentro de ese mapa estén situados en el mejor lugar.
Para los robots de 6 ejes, las dos articulaciones que se restringen con más frecuencia son:
1.Articulación 1 (la articulación base) - Restringir esta articulación impide que el robot se desplace demasiado hacia cualquier lado del espacio de trabajo.
2.Articulación 3 (la articulación del codo) - Restringir esta articulación impide que el robot cambie entre las configuraciones de codo arriba y codo abajo.
Modifique los límites de la junta mediante el siguiente proceso:
1.Haga clic con el botón derecho del ratón en el icono del modelo de robot dentro del árbol de estaciones (por ejemplo, ABB IRB 2600-12/1.85) y seleccione Opciones... para abrir el panel del robot. Alternativamente, basta con hacer doble clic sobre el nombre del robot en el árbol de estaciones.
2.En la sección de desplazamiento del eje de la articulación, mueva los controles deslizantes de las articulaciones del robot que desee restringir (por ejemplo, θ1 y θ3) para encontrar dónde desea que estén los límites inferiores de la articulación.
3.Haga doble clic en cualquiera de los límites inferiores de articulación dentro del jog del eje de articulación. Por ejemplo, si el límite de articulación de θ1 es actualmente -180, haga doble clic en el número -180. Esto hará que aparezca el panel Establecer límites inferiores de articulación.
4.Fije los límites inferiores de la junta en θ1 = -50 y θ3 = -90.
5.Cambie los límites de la junta y pulse OK.
6.Utilizando el mismo proceso con los límites superiores de la junta, fije θ1 = 50.
Este cambio puede verse visualizando el espacio de trabajo alcanzable del robot. Muestre el espacio de trabajo seleccionando la opción Mostrar para la herramienta actual en la sección Espacio de trabajo del panel del robot. Mostrará sólo la parte del espacio de trabajo que ahora es alcanzable con los nuevos límites de articulación.
El algoritmo PRM genera una hoja de ruta de ubicaciones alcanzables utilizando los tres parámetros siguientes:
1.Número de muestras - El mapa consta de un número de ubicaciones colocadas al azar (muestras) en todo el espacio de trabajo alcanzable del robot. Este número determina el número de muestras. El valor predeterminado es 100 muestras.
2.Aristas por muestra - El algoritmo intenta conectar cada muestra del mapa con un número de otras muestras. La línea que conecta dos muestras entre sí se denomina "arista" e indica un camino libre de colisiones entre esas dos ubicaciones. Esta propiedad indica el número máximo de aristas que se crearán por muestra. El valor por defecto es de 25 aristas por muestra.
3.Paso del robot (deg) - Al comprobar si una arista potencial está libre de colisiones, el algoritmo se detendrá a intervalos regulares a lo largo de ella para comprobar si hay colisiones. La distancia entre estos intervalos viene determinada por el paso de robot. El valor por defecto es de 4 grados.
Estos tres parámetros determinan lo detallada que será la hoja de ruta generada. También afectan al tiempo que se tarda en generar la hoja de ruta durante la fase de construcción.
Un mayor número de muestras y más aristas por muestra producirán una hoja de ruta de grano más fino que tardará más en generarse. Un paso de Robot más grande generará un mapa más rápido pero puede fallar en la detección de colisiones potenciales.
Utilizando los valores predeterminados, normalmente se puede generar una hoja de ruta en 15 minutos, dependiendo de la configuración del espacio de trabajo y de las propiedades del robot.
Consulte los consejos al final de esta sección para conocer las mejores prácticas a la hora de configurar estos parámetros.
La "fase de construcción" del planificador de movimiento se consigue mediante el siguiente proceso, que genera una hoja de ruta del espacio de trabajo del robot:
1.Abra el panel Planificador de movimientos sin colisiones accediendo al menú Utilidades➔ Planificador de movimientos sin colisiones➔ Crear mapa sin colisiones, o haga clic en la flecha pequeña situada junto a
2.Introduzca nuevos parámetros o mantenga los predeterminados.
3.Pulse en Actualizar mapa para generar la hoja de ruta.
A continuación, el algoritmo PRM generará una hoja de ruta utilizando los parámetros elegidos. Cuando haya terminado, la hoja de ruta generada podrá visualizarse marcando la casilla Mostrar mapa. Al hacer clic en Mostrar muestras, el robot recorrerá todas las muestras del espacio de trabajo.
Se accede a la "fase de consulta" del planificador de movimiento cuando se enlazan dos objetivos o programas.
Para enlazar dos objetivos, primero selecciónelos en el árbol de estaciones. Hay dos formas de seleccionar y enlazar los objetivos:
1.Con la tecla Ctrl:
a.Haga clic con el botón izquierdo del ratón en el objetivo que debe iniciar el movimiento (en el ejemplo, el objetivo denominado "Objetivo de inicio").
b.Mantenga pulsada la tecla CTRL.
c.Haga clic con el botón izquierdo del ratón en el objetivo de destino (por ejemplo, "Objetivo final")
d.Haga clic con el botón derecho en cualquiera de los dos objetivos y seleccione Vincular objetivos seleccionados. Alternativamente, si el panel Planificador de movimientos sin colisiones está abierto, haga clic en el botón Vincular objetivos/programas seleccionados.
2.Con la tecla Mayús:
a.Disponga los dos objetivos uno encima del otro en el árbol de estaciones, con el objetivo inicial encima del objetivo final. Un objetivo puede moverse por el árbol arrastrándolo y soltándolo con el botón derecho del ratón. Al soltar el objetivo aparecerá un menú para elegir dónde debe situarse.
b.Haga clic con el botón izquierdo en cualquiera de los objetivos.
c.Mantenga pulsada la tecla Mayús.
d.Haga clic con el botón izquierdo en el otro objetivo.
e.Haga clic con el botón derecho del ratón en cualquiera de los dos objetivos y seleccione Vincular objetivos seleccionados. Alternativamente, si el panel Planificador de movimientos sin colisiones está abierto, haga clic en el botón Vincular objetivos/programas seleccionados.
Ambos métodos generarán un nuevo programa que enlazará los dos objetivos utilizando la hoja de ruta guardada. Para crear un movimiento en sentido contrario, seleccione los objetivos en el orden inverso, es decir, seleccionando el objetivo final antes que el objetivo inicial con el método Ctrl, o reordenando los objetivos en el árbol de estaciones con el método SHIFT.
El planificador de movimiento también puede enlazar dos programas diferentes de forma similar. Esto crea una trayectoria libre de colisiones entre los dos programas y crea un nuevo programa Principal.
Para el ejemplo de soldadura, cree dos programas ficticios siguiendo el siguiente proceso:
1.Cree 4 objetivos como hijos del marco de referencia "Referencia del objeto" (haga clic con el botón derecho del ratón en "Referencia del objeto" en el árbol de estaciones y marque Marco de referencia activo). A continuación, cree cuatro objetivos seleccionando Programa
2.Seleccione cada nuevo objetivo en el árbol de estaciones e introduzca los siguientes nombres y valores. Para cambiar el nombre del objetivo, pulse la tecla F2 o haga clic con el botón derecho del ratón en el objetivo y elija Cambiar nombre. Para cambiar los valores del objetivo, pulse la tecla F3 para abrir el panel Objetivo o haga clic con el botón derecho del ratón en el objetivo y elija Opciones. Introduzca los nuevos valores en el apartado Posición del objetivo con respecto a: Referencia del objeto.
a.Nombre: "Punto Izquierdo 1" Valores: 200, 200, 0, 90, 0, -135
b.Nombre: "Punto izquierdo 2" Valores: 200, -200, 0, 90, 0, -135
c.Nombre: "Punto derecho 1" Valores: -200, 200, 0, 90, 0, 135
d.Nombre: "Punto derecho 2" Valores: -200, -200, 0, 90, 0, 135
3.Cree el primer programa:
a.Vaya a Programa ➔
b.Cambie el nombre del programa a "Soldadura izquierda" seleccionando primero el programa en el árbol de estaciones y pulsando F2 o haciendo clic con el botón derecho y seleccionando Cambiar nombre.
c.Añada los siguientes objetivos como instrucciones lineales, seleccionando primero el objetivo en el árbol de estaciones y seleccionando Programar➔
4.Cree el segundo programa llamado "Soldadura Derecha" de la misma manera, esta vez añadiendo los siguientes objetivos: Objetivo final, Punto derecho 1, Punto derecho 2, Objetivo final.
Tenga en cuenta que estos dos programas ficticios no contienen comandos para activar/desactivar la pistola de soldar. En un programa real, estos comandos tendrían que incluirse.
Para enlazar dos programas cualesquiera utilizando el planificador de movimiento, utilice el siguiente proceso:
1.Seleccione ambos programas utilizando cualquiera de los dos métodos descritos en la sección anterior (Enlazar objetivos).
2.Haga clic con el botón derecho en cualquiera de los programas y elija Vincular programas seleccionados. Si el panel del planificador de movimiento sin colisiones está abierto, se puede conseguir lo mismo haciendo clic en Vincular objetivos/programas seleccionados.
Se creará un nuevo programa llamado "MainSafe" que ejecuta el primer programa, realiza un movimiento sin colisiones y, a continuación, ejecuta el segundo programa. Este programa principal puede ser alterado y renombrado como cualquier otro programa.
Cualquier objetivo nuevo puede añadirse a la hoja de ruta de PRM sin tener que regenerar todo el mapa. Esto significa que la hoja de ruta sólo tiene que regenerarse por completo si se añaden nuevos objetos al espacio de trabajo o se desplazan los existentes.
Cuando se añade un nuevo objetivo a la hoja de ruta, el algoritmo PMR intentará conectarlo a una serie de puntos existentes ya dentro de la hoja de ruta con un conjunto de aristas nuevas. Es posible establecer un número predeterminado de aristas para los nuevos objetivos distinto del elegido para la construcción inicial de la hoja de ruta.
El número máximo de aristas para los nuevos objetivos puede fijarse mediante el siguiente proceso
1.Abra el panel Planificador de movimientos sin colisiones accediendo al menú Utilidades➔ Planificador de movimientos sin colisiones➔ Crear mapa sin colisiones o haga clic en la flecha pequeña situada junto a
2.Introduzca el número de bordes en la casilla denominada Nuevos bordes de muestra. El valor por defecto es 5.
Hay dos formas de añadir nuevos objetivos a la hoja de ruta:
1.Seleccione los objetivos en el árbol de estaciones. Se pueden seleccionar varios objetivos adyacentes a la vez haciendo clic en el objetivo más alto, manteniendo pulsada la tecla Mayús y, a continuación, haciendo clic en el objetivo más bajo. Pueden seleccionarse múltiples objetivos no adyacentes manteniendo pulsada la tecla Ctrl. A continuación, haga clic en Añadir objetivos seleccionados en el panel Planificador de movimientos sin colisiones.
2.Simplemente utilice el mismo método para Vincular objetivos seleccionados o Vincular programas seleccionados descrito en las secciones anteriores (Vincular objetivos y Vincular programas). Cualquier objetivo que no esté ya presente en la hoja de ruta se añadirá automáticamente.
El planificador de movimientos es fácil de utilizar, pero existen algunas prácticas recomendadas que mejorarán el flujo de trabajo de programación.
La fase de construcción puede llevar mucho tiempo. Esto puede resultar engorroso durante las primeras fases de la programación, cuando la disposición de la célula del robot cambia constantemente. Cada vez que se añade un objeto al espacio de trabajo o se desplaza, es necesario volver a generar toda la hoja de ruta.
Para reducir el tiempo de espera hasta que se genere la hoja de ruta, es una buena idea utilizar parámetros más pequeños al principio.
Por ejemplo, normalmente puede generar un mapa sin colisiones con lo siguiente en 10-15 segundos:
1.Número de muestras: 10.
2.Bordes por muestra: 5.
3.Paso del robot (grados): 4.0.
Esto no producirá el movimiento sin colisiones más eficaz, pero permitirá modificar el diseño de la célula mucho más rápidamente.
Cuando se hayan decidido las ubicaciones de todos los objetos de la celda, podrá generarse un mapa más grande (por ejemplo, con los parámetros predeterminados de 100, 25, 4,0).
Por último, antes de generar el programa del robot, puede ser una buena idea generar una hoja de ruta aún mayor (por ejemplo, con parámetros de 500, 50, 2,0). Esto llevará mucho tiempo de generación, pero producirá los movimientos más eficientes.
Establecer los límites de las articulaciones del robot (como se describe en la sección anterior Limitar los límites de las articulaciones) tiene un doble beneficio. En primer lugar, puede hacer que la fase de construcción sea más rápida en algunos casos. En segundo lugar, garantiza que la hoja de ruta contiene realmente ubicaciones que serán útiles para el programa del robot. Es fácil olvidarse de este paso vital.
Definir correctamente el mapa de colisión
La detección de colisiones se activa cuando 2 objetos colisionan. Puede especificar la correlación entre cada objeto en movimiento en los ajustes del mapa de colisiones. Reducir el número de interacciones (marcas de verificación verdes) acelerará la comprobación de colisiones.
El tiempo que se tarda en calcular las trayectorias libres de colisiones depende sobre todo del tiempo necesario para comprobar si hay colisiones. Por lo tanto, debe seguir las mejores prácticas para una comprobación de colisiones más rápida descritas en la sección de detección de colisiones. Entre otras cosas, puede aumentar el paso del robot para la comprobación de colisiones, restringir los límites de las articulaciones o simplificar la geometría 3D para acelerar la comprobación de colisiones.
El término "evitación de colisiones" sugiere que el planificador de movimientos siempre evitará las colisiones en todas las situaciones. Esto es ciertamente cierto en el entorno de simulación. Sin embargo, en el mundo real, el robot aún puede colisionar con objetos si se acerca demasiado a ellos. Esto suele ocurrir debido a ligeras diferencias entre el robot simulado y el robot físico.
Un caso común de este tipo de colisiones es cuando el robot "pinza" el borde de un objeto al alejarse de una tarea. Por lo general, esto puede evitarse incluyendo un "desplazamiento" en el programa. Consulte este artículo del blog para obtener más información sobre el uso eficaz de los desplazamientos.
No todas las zonas del espacio de trabajo del robot son iguales. El robot tendrá más "alcanzabilidad" en algunas zonas de su espacio de trabajo que en otras. En las zonas con alta alcanzabilidad, el robot podrá acceder a los puntos desde muchas orientaciones. En las zonas con baja alcanzabilidad, el robot sólo podrá acceder a los puntos desde una o dos orientaciones.
A veces, el planificador de movimiento no consigue encontrar una ruta entre dos objetivos en el espacio de trabajo. A menudo, este problema puede resolverse simplemente aumentando el número de muestras en la hoja de ruta, pero no siempre.
Si el planificador de movimiento falla continuamente al conectar los objetivos, asegúrese de que la tarea se encuentra dentro del área del espacio de trabajo del robot con mayor alcanzabilidad. Visualice el espacio de trabajo del robot abriendo el panel del robot (haga clic con el botón derecho en el robot en el árbol de estaciones y elija Opciones) y seleccionando Mostrar para la herramienta actual en la sección Espacio de trabajo.