ES2630878T3 - Biblioteca de módulos de procesos y entorno de programación para la programación de un proceso de manipulador - Google Patents
Biblioteca de módulos de procesos y entorno de programación para la programación de un proceso de manipulador Download PDFInfo
- Publication number
- ES2630878T3 ES2630878T3 ES11707795.8T ES11707795T ES2630878T3 ES 2630878 T3 ES2630878 T3 ES 2630878T3 ES 11707795 T ES11707795 T ES 11707795T ES 2630878 T3 ES2630878 T3 ES 2630878T3
- Authority
- ES
- Spain
- Prior art keywords
- manipulator
- programming
- module
- modules
- programming environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1687—Assembly, peg and hole, palletising, straight line, weaving pattern movement
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23258—GUI graphical user interface, icon, function bloc editor, labview
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/36—Nc in input of data, input key till input tape
- G05B2219/36025—Link, connect icons together to form program
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40032—Peg and hole insertion, mating and joining, remote center compliance
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40099—Graphical user interface for robotics, visual robot user interface
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40392—Programming, visual robot programming language
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40395—Compose movement with primitive movement segments from database
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
- Automatic Assembly (AREA)
Abstract
Entorno de programación gráfica (100) para la programación de un proceso de manipulador, en particular un proceso de montaje, con una pluralidad de módulos funcionales gráficos (110, 111, 112, 120, 121, 122) para realizar respectivamente un proceso parcial, pudiendo controlarse al menos un proceso parcial y/o al menos un manipulador durante la programación, en particular en línea, mediante uno de estos módulos funcionales, representando un módulo funcional un módulo de proceso o una instrucción básica de una biblioteca de módulos de procesos con una pluralidad de módulos de procesos parametrizables ("search()", "peg_in_hole()", "gear()", "screw()" para realizar respectivamente un proceso parcial, en particular común para diferentes procesos de manipulador, comprendiendo los módulos de procesos respectivamente una pluralidad de instrucciones básicas de un juego de instrucciones básicas común para la realización de una operación básica, en particular atómica o molecular, pudiendo vincularse un módulo de proceso con otro módulo de proceso y/o una instrucción básica, en particular matemáticamente, caracterizado por que un módulo funcional puede posicionarse tocándose una interfaz de visualización (100) y por que módulos funcionales pueden vincularse automáticamente en función de su posición.
Description
5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Biblioteca de modulos de procesos y entorno de programacion para la programacion de un proceso de manipulador
La presente invencion se refiere a un entorno de programacion grafica para la programacion de un proceso de manipulador, en particular un proceso de montaje realizado mediante al menos un manipulador, y a un procedimiento para la programacion de un proceso de manipulador mediante un entorno de programacion grafica de este tipo.
Los robots industriales convencionales, con regulacion ngida de la posicion, pueden programarse mediante la vinculacion de instrucciones basicas sencillas de un juego de instrucciones basicas reducido como “LIN”, “CIRC” y “PTP” para la especificacion de un movimiento lineal, en forma de segmento de cfrculo o guiado por ejes entre poses aprendidas, que el robot industrial con regulacion ngida de la posicion realiza a continuacion con precision.
No obstante, los manipuladores y sus dispositivos de control se vuelven cada vez mas complejos, de modo que su potencial no puede aprovecharse, en particular por parte de operarios no especializados, o solo pueden aprovecharse con una gran inversion de tiempo y con una susceptibilidad a fallos correspondiente.
Los robots de construccion ligera con regulacion de flexibilidad permiten, por ejemplo, un contacto mas eficiente y mas cuidadoso de una herramienta o una pieza de trabajo guiada por manipulador con el entorno. No obstante, la programacion requiere una regulacion correspondiente, en particular en caso de transiciones de estado de estructuras variables, con la especificacion de multiples condiciones de fuerza e interrupcion, parametros de regulacion y procesamientos de senales, lo que en la practica supone aun una inversion excesiva en el tiempo y la cualificacion, por lo que no es efectivo, en particular para la automatizacion del montaje de pequenas cantidades de un lote.
Por otro lado, incluso procesos de montaje industriales sencillos, por ejemplo el desplazamiento a una pose de agarre en una trayectoria recta, el posterior cierre de la pinza, el desplazamiento a una pose de montaje con posterior apertura de la pinza y la vuelta a una pose de salida, que actualmente se programan de forma secuencial, lo que es un trabajo costoso, programandose las diferentes instrucciones basicas en un lenguaje de alto nivel, por ejemplo el “Kuka Robot Language” (“KRL”), aprendiendose a continuacion las poses en las que se basan los procesos y comprobandose posteriormente el programa. En caso de que el programa se corrija o modifique, por ejemplo por modificar o completar las instrucciones basicas y/o poses, este proceso debe realizarse varias veces de forma iterativa, lo que junto con los conocimientos especializados necesarios para dominar el lenguaje de alto nivel de programacion se opone en particular a un uso industrial de robots en empresas pequenas y medianas.
El documento WO 2007/099511 A2 da a conocer un sistema de robots programable junto con interfaz de programacion y entorno de programacion, que esta preparado para la programacion sencilla. El robot puede ser controlado por un PC estandar, p.ej. mediante un programa Windows o mediante medios de entrada que se encuentran directamente en el robot.
La publicacion cientffica “Sensorimotor Primitives for Programming Robotic Assembly Skills” se refiere al problema de la integracion sensorial motora en la programacion de aplicaciones de robots. Para ello se ponen a disposicion sencillas operaciones de robots mediante “sensorimotor primitives”, que se realizan de forma repetida durante una aplicacion normal de un robot.
El documento WO 2008/119383 A1 da a conocer un procedimiento y un dispositivo para la programacion de un robot industrial, que trabaja en una celda de trabajo. La celda de trabajo esta formada por varias estaciones de trabajo, en las que el robot puede realizar actividades. En una base de datos estan almacenados diferentes “escenarios”, que definen alternativas, como debe operar el robot en una estacion de trabajo determinada.
El documento US 6 292 715 B1 da a conocer un procedimiento para crear un proceso de robot ejecutable para el mecanizado de una pieza de trabajo. Para crear el plan, el procedimiento puede recurrir a plantillas predefinidas, que definen elementos geometricos del proceso o de la pieza de trabajo. Basandose en estas plantillas, se generan automaticamente partes del programa para el proceso de robot.
La tesis doctoral “A visual programming environment for real-time control systems”, (XP05513847) se refiere a un entorno de programacion grafica para sistemas operativos en tiempo real, dandose a conocer el planteamiento de una vinculacion automatica de puertos de modulos funcionales al colocar un modulo funcional en la ventana de diseno grafico del entorno de programacion (veanse las Figuras 3, 4, 5).
El objetivo de la presente invencion es mejorar la programacion de un proceso de manipulador, en particular industrial.
Este objetivo se consigue mediante un entorno de programacion grafica para la programacion de un proceso de manipulador con las caractensticas de la reivindicacion 1, asf como mediante un procedimiento para la
5
10
15
20
25
30
35
40
45
50
55
60
65
programacion de un proceso de manipulador con las caractensticas de la reivindicacion 12. Las reivindicaciones subordinadas se refieren a variantes ventajosas. Segun un aspecto de la biblioteca de modulos de procesos de la presente invencion, en una realizacion preferible para diferentes procesos de manipulador, en particular para diferentes procesos de montaje, como la union de componentes diferentes, para procesos de fabricacion y/o manejo, en particular de transporte, que se realizan mediante uno o varios manipuladores, en particular robots con preferentemente al menos seis ejes de movimiento, preferentemente robots de construccion ligera, como el LBR de la solicitante, se identifican en primer lugar procesos parciales, que son comunes para los diferentes procesos de manipulador. Ademas de uno o varios manipuladores, los procesos de manipulador pueden comprender tambien ejes adicionales o dispositivos de transporte, de sujecion y similares, como mesas giratorias y/o inclinables y similares, que tambien pueden programarse de acuerdo con la invencion. En particular, en caso de haber tolerancias de posicion y/o fabricacion correspondientes, por ejemplo en la union de uniones de eje/cubo, la union de ruedas dentadas y el enroscado en roscas puede requerir respectivamente la busqueda automatizada de una pose inicial correspondiente. Poniendose a disposicion de acuerdo con la invencion un modulo de proceso para la realizacion de un proceso parcial “Busqueda de pose (inicial)”, que se adapta mediante una parametrizacion correspondiente a los requisitos correspondientes del proceso de montaje y que puede vincularse con otros modulos de procesos, por ejemplo para enroscar y para comprobar el exito del proceso, como por ejemplo la tension previa conseguida, tambien un usuario no especializado puede programar o crear de forma rapida y fiable procesos de montaje asistidos por manipulador mas complejos y puede aprovechar asf el potencial de nuevos manipuladores, como por ejemplo de robots de construccion ligera y/o de nuevos dispositivos de control, como por ejemplo una regulacion de flexibilidad o de fuerza para optimizar el proceso.
Para la creacion de modulos de procesos de este tipo se identifica y crea segun una realizacion de la presente invencion un juego de instrucciones basicas comun de instrucciones basicas. Para ello, los proceso parciales se descomponen preferentemente en operaciones basicas atomicas o moleculares, designando una operacion basica atomica en el sentido de la presente invencion en particular una operacion que ya no puede descomponerse mas de al menos un manipulador, por ejemplo la conmutacion entre diferentes regulaciones, un movimiento geometrico sencillo como el desplazamiento a una segunda pose desde una primera pose en una recta o trayectoria circular en el espacio de coordenadas cartesianas o articulares o la apertura de una pinza y designando una operacion basica molecular correspondientemente una operacion que si bien mentalmente puede descomponerse en operaciones individuales atomicas aun mas pequenas, realizandose la misma no obstante en los procesos parciales siempre de forma conjunta, por ejemplo el recorrer una trayectoria predefinida sin colisiones mediante poses auxiliares o intermedias. Para la creacion del juego de instrucciones basicas puede recurrirse de forma ventajosa a instrucciones basicas ya existentes, por ejemplo de un lenguaje de programacion convencional.
Los modulos de procesos creados mediante la vinculacion de instrucciones basicas de este tipo se ponen a disposicion de forma parametrizada en una biblioteca de modulos de procesos. Mediante la especificacion de los parametros de los modulos de procesos y su vinculacion con otros modulos de procesos o instrucciones basicas, el usuario puede programar a continuacion de forma rapida, sencilla y sin errores el modulo de manipulador. En este sentido, una programacion compleja, diffcilmente dominable para usuarios no especializados, puede ser sustituida sustancialmente por una parametrizacion.
En este caso, modulo de proceso parametrizable se refiere en particular a un modulo de programa, para el que el usuario puede predeterminar uno o varios parametros, por ejemplo mediante la llamada con valores de transferencia correspondientes, mediante la utilizacion de un area de datos o de memoria comun, y/o mediante el mantenimiento o la no modificacion de valores por defecto, que ya fueron predeterminados por ejemplo previamente por el usuario o ya por el fabricante.
Un proceso parcial preferentemente comun para diferentes procesos de manipulador en el sentido de la presente invencion tambien puede ser un proceso de manipulador completo.
La vinculacion de instrucciones basicas diferentes para formar un modulo de proceso, de un modulo de proceso con otro modulo de proceso y de un modulo de proceso con una instruccion basica se realiza desde el punto de vista de la tecnica del programa preferentemente mediante operaciones matematicas u operadores como transformaciones de valores de programa, que definen por ejemplo poses de manipuladores, de acuerdo con la invencion mediante operaciones u operadores logicos como implicaciones (“si-entonces”), instrucciones de programa formadas a partir de ellas, como bucles y similares. En el caso de un entorno de programacion grafica, la vinculacion puede realizarse en particular de forma grafica, por ejemplo mediante la union, la superposicion o la disposicion de modulos de procesos o de instrucciones basicas unos al lado de los otros o unos por debajo de los otros.
Segun una realizacion preferible de la presente invencion, al menos un parametro de un modulo de proceso define un tipo del proceso parcial realizado por este modulo de proceso. Puede realizarse por ejemplo una busqueda de pose, por un lado, mediante la busqueda de una escotadura con un saliente guiado por el manipulador, por ejemplo mediante “palpado” de un taladro con una espiga y, por otro lado, mediante la busqueda de un saliente con una escotadura guiada por manipulador, asf como por ejemplo en una trayectoria recta, en zigzag, en espiral, sinusoidal o una trayectoria de Lissajous. Mediante la especificacion de un parametro, que define si se busca con un saliente guiado por el manipulador o una escotadura guiada por el manipulador y de otro parametro, que define el tipo de la
5
10
15
20
25
30
35
40
45
50
55
60
65
trayectoria de busqueda, pueden programarse por lo tanto los tipos “busqueda con un saliente guiado por el manipulador en una trayectoria recta”, “busqueda con un saliente guiado por el manipulador en una trayectoria en zigzag”, “busqueda con una escotadura guiada por el manipulador en una trayectoria recta” etc. con el mismo modulo de proceso “busqueda de pose”.
De forma adicional o alternativa, al menos un parametro de un modulo de proceso puede definir una cinematica de un manipulador. Pueden realizarse por ejemplo las mismas trayectorias de herramientas mediante manipuladores con diferentes geometnas, por ejemplo distancias entre ejes y/o estructuras diferentes, por ejemplo manipuladores de brazo articulado, SCARA, portico o redundantes. Poniendose a disposicion el mismo modulo de proceso para cinematicas diferentes de este tipo y parametrizando el usuario mediante la especificacion de uno o varios parametros, por ejemplo un identificador para la estructura y/o valores para las diferentes magnitudes geometricas, como por ejemplo distancias entre ejes, este puede programar un proceso de manipulador sin conocimientos detallados ni tener en cuenta la cinematica de un manipulador.
Un proceso parcial comprende preferentemente una busqueda de pose, por ejemplo para realizar a pesar de un desplazamiento por tolerancias de las partes a unir en repeticiones sucesivas del proceso desplazamientos a poses iniciales respectivamente adecuadas para la union.
Para ello, el manipulador puede desplazar una herramienta o una pieza de trabajo en una superficie a lo largo de una trayectoria predeterminada, aplicando preferentemente una componente de fuerza en la direccion perpendicular respecto a la superficie. De este modo, un saliente guiado por el manipulador se fuerza al pasar por encima de una escotadura buscada al interior de esta o una escotadura guiada por el manipulador se fuerza al pasar por encima de un saliente buscado sobre este e impide de este modo con ajuste positivo que siga el movimiento. Esto puede detectarse por ejemplo mediante un aumento de fuerza correspondiente o porque se permanece en la pose encontrada a pesar de haberse mandado seguir con el movimiento.
El manipulador es mandado preferentemente durante la busqueda en una direccion perpendicular y/o en al menos una direccion paralela respecto a la superficie por la que se busca con una regulacion de flexibilidad, de posicion o de fuerza.
Una regulacion de flexibilidad en la direccion perpendicular respecto a la superficie por la que se busca puede impedir que esta sufra danos. Una regulacion de posicion en paralelo a la superficie por la que se busca permite recorrer trayectorias de busqueda perfectamente definidas, por ejemplo una recta, mientras que una regulacion de fuerza, por ejemplo la aplicacion de una fuerza alternante en la direccion perpendicular respecto a una recta con regulacion de posicion, permite tambien la busqueda en geometnas de superficie no conocidas. El manipulador esta provisto preferentemente de una regulacion de flexibilidad en la direccion de busqueda para no danar la pieza de trabajo al buscar la escotadura/el saliente con el saliente/la escotadura. En una direccion perpendicular respecto a ello y en paralelo a la superficie por la que se busca, el manipulador puede ser mandado con una regulacion de posicion o de fuerza, para realizar una trayectoria de busqueda perfectamente definida o adaptada a la pieza de trabajo.
Una trayectoria de busqueda preferentemente predeterminada puede extenderse por ejemplo de forma recta o alternativamente difiriendo de una recta con regulacion de posicion o fuerza, en particular en forma de zigzag, de forma sinusoidal o en meandros, como trayectorias circulares con un radio constante o variable, a lo largo de una figura de Lissajous o de forma estocastica en la superficie por la que se busca.
Un saliente con el que se busca una escotadura o una escotadura con la que se busca un saliente presenta preferentemente una inclinacion de un angulo predeterminado, que esta situado preferentemente entre l0° y 80°, durante la busqueda respecto a una direccion de union entre el saliente y la escotadura, por ejemplo un eje de simetna de una espiga rotacionalmente simetrica y un taladro adaptado a la misma, para garantizar al mismo tiempo una entrada segura del saliente en la escotadura e impedir danos.
Segun una realizacion preferible de la presente invencion, un proceso parcial comprende una union mediante cierre de una union con ajuste positivo, por ejemplo la insercion de una espiga en un taladro o la colocacion de un taladro en una espiga.
Partiendo de una pose inicial, que se conoce por ejemplo de una busqueda de pose anterior, se inserta para ello de forma ventajosa un saliente rotacionalmente simetrico respecto a una direccion de union en primer lugar en un angulo situado preferentemente entre 10° y 80°, con inclinacion respecto a la direccion de union en una escotadura, moviendo un manipulador el saliente y/o la escotadura. Esto puede realizarse con regulacion de posicion para reducir el tiempo del proceso, pudiendo conmutarse a mas tardar al haber contacto para una o varias direcciones a una regulacion de fuerza o de flexibilidad para impedir danos. Con esta regulacion se aplica en este caso preferentemente una fuerza de tension previa, que impide que el saliente se salga de la escotadura. A continuacion, el saliente se orienta en la direccion de union y se inserta, aplicandose en una realizacion preferible una oscilacion orientada en la direccion perpendicular respecto a la direccion de union y/o un giro alrededor del eje de la direccion de union para impedir un ladeo durante la insercion.
5
10
15
20
25
30
35
40
45
50
55
60
65
Si se trata de unir, por el contrario, una seccion transversal no rotacionalmente simetrica, por ejemplo triangular, puede colocarse para ello en primer lugar una esquina del saliente en una esquina de la escotadura y a continuacion puede reorientarse de la forma anteriormente descrita el saliente alrededor de un eje en la direccion de union y a continuacion puede insertarse con vibraciones en la direccion perpendicular respecto a la direccion de union.
De la misma forma, despues del desplazamiento a una esquina, por ejemplo con una seccion transversal cuadrangular, es posible reorientar en primer lugar alrededor de un eje y a continuacion alrededor de otro eje para alinear el saliente en la esquina a la que se ha realizado el desplazamiento con la escotadura y realizar la union en un proceso seguro.
Preferentemente, un proceso parcial comprende una union con varias uniones con ajuste positivo, por ejemplo la insercion de una espiga en un taladro pasante y a continuacion en un segundo taladro pasante o ciego dispuesto detras, o la colocacion o insercion de una rueda dentada, haciendola engranar antes, al mismo tiempo o despues con otra rueda dentada.
Al unir una rueda dentada, se aplica preferentemente un movimiento de rotacion con regulacion de posicion, fuerza o flexibilidad en la direccion perpendicular respecto a la direccion de union para hacer alinear los engranes unos con otros.
Segun una realizacion preferible de la presente invencion, un proceso parcial comprende un enroscado de una rosca interior en una rosca exterior o de una rosca exterior en una rosca interior. Para ello puede enroscarse en primer lugar, dado el caso colocando la herramienta del manipulador una o varias veces nuevamente con un angulo de enroscado limitado de la herramienta, hasta que con ayude de un aumento de la fuerza o de una parada en una pose a pesar de haberse mandado seguir con el movimiento de avance se haya alcanzado una primera posicion de enroscado. Esto se realiza preferentemente con regulacion de fuerza y/o de flexibilidad. A continuacion, puede seguir enroscandose en una variante ventajosa con regulacion de posicion al menos una de las piezas de trabajo a enroscar alrededor de un angulo predeterminado, para garantizar una tension previa de enroscado predeterminada.
Un proceso parcial comprende preferentemente una medicion. Si estan definidas por ejemplo poses de mecanizado o de union respecto a una pieza de trabajo para compensar desviaciones portolerancias de esta posicion respecto a un manipulador, el manipulador puede buscar por ejemplo sucesivamente salientes, escotaduras o cantos marcados de la pieza de trabajo con su herramienta, como se ha explicado anteriormente respecto a la busqueda de pose. Si de este modo se han detectado al menos tres poses, mediante estas las posiciones cartesianas de la herramienta en la pieza de trabajo y, por lo tanto, tres puntos marcados de la pieza de trabajo, mediante estos puede definirse automaticamente un sistema de referencia de pieza de trabajo, el llamado sistema de coordenadas BASE.
Segun una realizacion preferible de la presente invencion, un proceso parcial comprende una comprobacion de exito del proceso. Para ello pueden detectarse fuerzas de reaccion en un manipulador, en particular puede comprobarse si estas estan en un intervalo predeterminado. Si se sigue enroscando por ejemplo, como se ha descrito anteriormente, un tornillo un angulo predeterminado despues de haberse detectado una primera posicion de enroscado que se detecta mediante un aumento de la fuerza, puede detectarse la fuerza que actua durante este proceso sobre el manipulador, en este caso un par alrededor del eje de enroscado. Cuando este esta en un intervalo predeterminado, el tornillo esta enroscado con la tension previa deseada.
De forma adicional o alternativa se puede comparar, en particular en caso de una regulacion de flexibilidad o de fuerza, en al menos una direccion la pose alcanzada o sus componentes en direcciones con regulacion de flexibilidad o de fuerza con valores predeterminados. Si se introduce, por ejemplo, como se ha descrito anteriormente, una espiga con regulacion de flexibilidad en un taladro, puede detectarse si la posicion final alcanzada, en la que el manipulador permanece por la regulacion de flexibilidad, corresponde a una posicion final de union predeterminada. Para ello tambien puede mandarse una fuerza o un movimiento predeterminados y pueden detectarse movimientos o fuerzas de reaccion realizados durante este proceso y pueden compararse con valores predeterminados. Tras realizar una union por enclavamiento, esta puede cargarse por ejemplo en la direccion de separacion con una fuerza predeterminada o con un movimiento de separacion teorico predeterminado pudiendo detectarse la fuerza que se opone a este movimiento o el movimiento real alcanzado. Si la fuerza que se opone es demasiado reducida o si el movimiento real es demasiado grande, se ha separado la union por enclavamiento.
Una operacion basica puede comprender una regulacion, en particular la conmutacion entre una regulacion de posicion, de fuerza y de flexibilidad, preferentemente al detectarse un contacto de entorno del manipulador.
De forma adicional o alternativa, una operacion basica puede comprender un movimiento. Una operacion basica comprende preferentemente un movimiento automatico del manipulador, de tal modo que se reducen una o varias fuerzas de contacto que actuan sobre el mismo, en particular se reducen al completo. Si se ha introducido por ejemplo, como se ha explicado anteriormente, un saliente inclinado un angulo en una escotadura y se reorienta posteriormente alrededor de un eje, una de las partes a unir ejerce en la posicion reorientada una fuerza de tension previa sobre la otra parte a unir en contra de una direccion de tolerancia, en la que las dos partes a unir estan desplazadas una respecto a la otra. Gracias a la deteccion de esta fuerza y un movimiento de desviacion correspondiente en su direccion, el manipulador puede alinear las dos partes a unir antes de la insercion o de la colocacion y reducir asf las fuerzas de contacto que actuan por el desplazamiento.
5
10
15
20
25
30
35
40
45
50
55
60
65
Una operacion basica puede comprender una comprobacion de una condicion, en particular de un criterio de interrupcion. Un criterio de interrupcion de este tipo puede cumplirse, por ejemplo, cuando un manipulador no cambia su pose durante un intervalo de tiempo predeterminado o solo dentro de una tolerancia predeterminada. De este modo pueden detectarse en particular una pose final alcanzada en el caso de movimientos con regulacion de flexibilidad o de fuerza.
Segun una realizacion preferible de la presente invencion, una operacion basica comprende una regulacion de flexibilidad y/o de fuerza, en particular la conmutacion de o a una regulacion de este tipo y/o un movimiento de manipulador con regulacion de flexibilidad o de fuerza.
Una regulacion de flexibilidad se refiere en el sentido de la presente invencion en particular a una regulacion en la que un manipulador opone a una fuerza exterior que ataca en el una resistencia reducida de una forma predeterminada o en la que se desvfa ante la misma, dado el caso estableciendo una fuerza de retroceso predeterminada o la compensacion de un peso. Esto puede realizarse de forma sencilla mediante reduccion de una parte proporcional y/o diferencial y/o la eliminacion de una parte integral de una regulacion de articulacion individual PID o mediante la limitacion de las fuerzas de accionamiento de los accionamientos del manipulador a un valor que es mas bajo de lo que sena necesario para una proteccion del accionamiento, designandose en el presente caso para una explicacion mas compacta tambien parejas de fuerzas antiparalelas, es decir, pares de una forma mas general como fuerzas. No obstante, preferentemente una regulacion de flexibilidad se realiza mediante una regulacion de impedancia, en la que el manipulador reacciona con una regulacion de posicion correspondientemente a un comportamiento dinamico predeterminado, por ejemplo la ley de la fuerza de un resorte o de un sistema de masa-resorte-amortiguador, por un cambio de pose a una fuerza que actua sobre el mismo, mediante una regulacion de admitancia, en la que el manipulador reacciona con regulacion de fuerza segun un comportamiento dinamico predeterminado con fuerzas de accionamiento correspondientes a un cambio de la pose o modificaciones o combinaciones de estas regulaciones. Una vision global de regulaciones de flexibilidad adecuadas en particular para robots de construccion ligera se ofrece por ejemplo en A. Albu-Schaffer et. al., “Cartesian Impedance Control Techniques for Torque Controlled Light-Weight Robots”, Proc. IEEE Int. Conf. on Robotics & Automation, Washington DC, 2002, paginas 657-663. Preferentemente puede anadirse a una regulacion de flexibilidad una regulacion de fuerza de tal modo que ademas de la fuerza que resulta por el comportamiento dinamico predeterminado se predetermina o regula una fuerza predeterminada, por ejemplo constante, como fuerza teorica que ha de ser ejercida por el manipulador.
Los modulos de procesos pueden ser implementados, en particular programados y/o usados como llamadas de funciones en un lenguaje de programacion convencional para la programacion de manipuladores, por ejemplo el lenguaje KRL de la solicitante.
Una parametrizacion puede realizarse preferentemente mediante la entrada correspondiente, el uso de valores por defecto y/o la aceptacion de valores de otras aplicaciones, por ejemplo un juego de datos para un modelo de manipulador, para parametros de regulacion y/o parametros del proceso, en particular de herramientas y/o piezas de trabajo. Una parte de los parametros puede ser creada o aceptada en particular de forma automatica, por ejemplo basandose en la cinematica, en el proceso, en la herramienta y/o en la pieza de trabajo, por ejemplo de tolerancias, material, forma y similares. Un proceso de montaje puede definirse por ejemplo en un entorno de simulacion, en el que se presentan todos los datos relevantes en forma de datos de modelo. Mediante un programa se seleccionan a continuacion en una realizacion preferible automaticamente los modulos de procesos necesarios y se parametrizan (en parte). En una segunda etapa, un usuario pone manualmente aquellos parametros que no se han determinado automaticamente.
En una variante ventajosa, los modulos de procesos de este tipo tambien pueden implementarse en un entorno de programacion grafica o una interfaz de programacion. Esto permite de forma especialmente sencilla la programacion tambien de procesos de manipulador complejos, incluso a usuarios sin conocimientos especializados. Por lo tanto, un aspecto del entorno de programacion de la presente invencion, que se explicara a continuacion mas detalladamente, que puede realizarse en principio tambien independientemente del aspecto de la biblioteca de modulos de procesos anteriormente explicada, se combina preferentemente con este aspecto de biblioteca de modulos de procesos.
Segun el aspecto del entorno de programacion de la presente invencion, se pone a disposicion o se usa un entorno de programacion grafica para la programacion de un proceso de manipulador, en particular de un proceso descrito anteriormente haciendose referencia al aspecto de la biblioteca de modulos de procesos, que presenta varios modulos funcionales graficos para la realizacion de respectivamente un proceso parcial, mediante los cuales pueden programarse o implementarse estos procesos parciales.
De acuerdo con la invencion, ahora pueden controlarse uno o varios procesos parciales y/o uno o varios manipuladores ya durante la programacion en lmea mediante estos modulos funcionales. Por un control de un proceso parcial o de un manipulador, en particular de un robot industrial, se entiende en particular una actuacion de una herramienta de manipulador y/o de una periferia de manipulador, por ejemplo de un alojamiento de herramienta, una mesa giratoria y/o inclinable, una tobera de pegamento externa o similares, un movimiento del manipulador, una
5
10
15
20
25
30
35
40
45
50
55
60
65
conmutacion de su estado, en particular de una regulacion y similares, usandose el concepto de control tambien para un control en el que se tienen en cuenta magnitudes de medicion realimentadas, es decir, una regulacion, para que la descripcion resulte mas compacta. Tambien se denomina un control de este proceso parcial o de un manipulador mediante este modulo funcional una consulta y/o un almacenamiento de una pose de manipulador o de un estado de manipulador o de periferia mediante un modulo funcional.
Por lo tanto, de acuerdo con la invencion un modulo funcional grafico sirve tanto para la programacion, en particular para la creacion de un programa de trabajo, como para el control preferentemente simultaneo o paralelo de uno o varios manipuladores y/o de uno o varios procesos parciales, en particular para un control interactivo unidireccional o bidireccional, en el que el usuario manda acciones del o de los manipuladores y/o los mismos transmiten informaciones, por ejemplo respeto a su(s) pose(s), estados y similares. En particular en combinacion con el aspecto de la biblioteca de modulos de procesos que se ha explicado anteriormente, de forma ventajosa tambien puede realizarse una parametrizacion de un modulo de proceso activandose un modulo funcional correspondiente e introduciendose o cambiandose parametros mediante el mismo. Tambien pueden detectarse parametros mediante un manipulador controlado por un modulo funcional y el modulo de proceso puede parametrizarse correspondientemente de forma automatica. Mediante un modulo funcional puede cerrarse por ejemplo una pinza de robot, detectarse al mismo tiempo mediante una medicion de la fuerza del robot una fuerza de cierre y aceptarse estos como parametros, por ejemplo como valor teorico o maximo automaticamente como parametros en un modulo de proceso. De la misma forma pueden llamarse por ejemplo mediante un modulo funcional una aplicacion como por ejemplo una aplicacion CAD y pueden aceptarse de esta, parametros para un modulo de proceso.
A diferencia de la programacion secuencial conocida en un lenguaje de alto nivel con posterior aprendizaje de las poses en las que esta basada, la carga del programa acabado de crear en un control de manipulador o del proceso, la comprobacion y en muchos casos la realizacion iterativa de esta secuencia, tambien un usuario sin conocimientos especializados puede programar de forma muy intuitiva un proceso de manipulador.
Hasta la fecha se programa por ejemplo de forma costosa de forma secuencial el desplazamiento a una pose de agarre en una trayectoria recta, el posterior cierre de la pinza, el desplazamiento a una pose de montaje con posterior apertura de la pinza y la vuelta a una pose de partida, programandose en un lenguaje de alto nivel en primer lugar de forma abstracta las diferentes instrucciones basicas “Desplazamiento a una primera pose”, “Cierre de la pinza” e “Desplazamiento a una tercera pose”. A continuacion, el manipulador se desplaza a la pose de agarre, la pose de montaje y la pose de partida, estas se almacenan y se asigna a la primera, segunda o tercera pose programada, antes de compilarse el programa asf creado, se carga en el dispositivo de control del manipulador y se comprueba. Si resulta la necesidad de un cambio que aun no pudo preverse durante la programacion abstracta, este proceso secuencial debe realizarse varias veces, lo que resulta costoso.
A diferencia de ello, segun una realizacion de la presente invencion, el manipulador puede controlarse ya en lmea durante la programacion mediante el modulo funcional llamado “Desplazamiento a una pose”, implementandose por ejemplo mediante llamada del modulo funcional una posibilidad de entrada para el guiado del manipulador a una pose y el almacenamiento de esta pose aprendida como pose del modulo funcional. Por lo tanto, el manipulador puede moverse correspondientemente directamente durante la programacion, de modo que tambien un usuario poco adiestrado puede crear un programa, seleccionado sucesivamente partiendo de una pose respectivamente mandada o de una accion terminada el siguiente modulo funcional.
Preferentemente; el programa (parcial) creado es capaz de funcionar ya durante la programacion, es decir, mientras se anaden otros modulos funcionales y permite asf una comprobacion o una mejora. En particular, puede estar previsto que los modulos funcionales o los procesos parciales implementados mediante los mismos puedan ejecutarse directamente ya durante la programacion, es decir, que por ejemplo mediante la llamada o la activacion de un modulo funcional que representa un movimiento este movimiento pueda ejecutarse directamente.
Como se ha explicado al principio, en una realizacion preferible, un modulo funcional puede presentar un modulo de proceso o una instruccion basica de una biblioteca de modulos de procesos segun el aspecto de la biblioteca de modulos de procesos, de modo que pueden estar realizadas en particular caractensticas que se han descrito en relacion con el aspecto de la biblioteca de modulos de procesos, individualmente o en combinacion, tambien segun el aspecto del entorno de programacion. Pueden estar previstos por ejemplo tambien en el entorno de programacion grafica valores por defecto para parametros que pueden ser introducidos o cambiados por el usuario, que son aceptados automaticamente, en caso de que el usuario no los cambie de forma activa. No obstante, segun este aspecto un usuario tambien puede programar procesos de manipulador sencillos, formados por instrucciones basicas, como el montaje anteriormente explicado en una trayectoria recta de una pose de agarre a una posicion de montaje, ahora de forma intuitiva y sin conocimientos especializados.
Segun una realizacion preferible, ha de asignarse a un modulo funcional una representacion grafica en forma de un icono en una interfaz de visualizacion. Un icono de este tipo comprende preferentemente una representacion de una cinematica, una accion u/o una informacion que depende preferentemente de la cinematica y/o accion. Esta representacion cambia preferentemente en funcion de una parametrizacion del modulo funcional seleccionado. La cinematica puede presentar por ejemplo en primer lugar una pose basica representativa del manipulador a controlar,
5
10
15
20
25
30
35
40
45
50
55
60
65
segun la parametrizacion del modulo funcional seleccionado, por ejemplo la pose final realizada por el modulo funcional. De forma adicional o alternativa, la accion del manipulador realizada por el modulo funcional, por ejemplo un movimiento o una actuacion de una herramienta, puede ser simbolizada por una secuencia de pelfcula, para facilitar aun mas la programacion intuitiva.
De acuerdo con la invencion, un modulo funcional puede manejarse tocando una interfaz de visualizacion, en particular una pantalla tactil, por ejemplo, mediante clic, drag&drop (arrastrar y soltar) y similares, y puede seleccionarse, posicionarse, en particular desplazarse y/o anclarse, llamarse y/&o (des)activarse de este modo. Un usuario puede seleccionar por ejemplo un modulo funcional de una biblioteca de modulos de procesos en la que se visualizan los modulos funcionales disponibles tocando un icono, puede desplazarlo a un area de trabajo o programacion, puede anclarlo allf soltandolo y puede activarlo tocandolo de nuevo, dado el caso mediante ventanas o teclas de entrada que se abren.
Los modulos funcionales pueden vincularse automaticamente de acuerdo con la invencion en funcion de su posicion. Puede realizarse por ejemplo automaticamente una vinculacion de dos modulos funcionales de tal modo que en el proceso de manipulador se ejecuta en primer lugar el modulo funcional superior o izquierdo y despues de la ejecucion del mismo el inferior o derecho, posicionandose el modulo funcional a ejecutar a continuacion cerca del modulo funcional a ejecutar en primer lugar por debajo o la derecha de este. De forma adicional o alternativa tambien es posible crear o cambiar las vinculaciones de este tipo cambiandose las representaciones de las vinculaciones, por ejemplo rayas o flechas entre iconos mediante toque en los mismos y vinculandose por ejemplo con otros iconos. Segun una realizacion preferible, uno o varios elementos de un modulo funcional pueden cambiarse en funcion de un estado de usuario. Unos usuarios de rango superior pueden habilitar o bloquear por ejemplo a eleccion parametros para un cambio por parte de unos usuarios de rango inferior. Del mismo modo pueden visualizarse u ocultarse de este modo elementos determinados, por ejemplo posibilidades de entrada o parametros en funcion de un estado del usuario, para mejorar la claridad y reducir los errores para usuarios menos adiestrados.
Otras ventajas y caractensticas resultan de las reivindicaciones subordinadas y de los ejemplos de realizacion. Respecto a ello muestran, en parte de forma esquematizada:
La Figura 1 una busqueda de pose segun una realizacion de la presente invencion;
La Figura 2A una union con un desplazamiento a una esquina, con posterior reorientacion alrededor de dos ejes
segun una realizacion de la presente invencion en una vista en planta desde arriba;
La Figura 2B la union segun la Figura 2A en una vista lateral;
La Figura 3 una union de dos ruedas dentadas segun una realizacion de la presente invencion;
La Figura 4 un enroscado de un tornillo segun una realizacion de la presente invencion; y
La Figura 5 un entorno de programacion grafica segun una realizacion de la presente invencion.
La Figura 1 muestra una busqueda de pose programada mediante un modulo de proceso segun una realizacion de la presente invencion.
Para ello, un robot de construccion ligera (no representado) coloca con regulacion de posicion una espiga 1 con una inclinacion de un angulo de 15° respecto a una direccion de insercion (en la Figura 1 en la direccion vertical) de una escotadura 2.1 a buscar en la superficie por la que se busca de una pieza de trabajo 2 sobre la misma y al entrar en contacto se conmuta inmediatamente a una regulacion de flexibilidad en al menos una direccion cartesiana de traslacion y/o de rotacion para impedir danos de la pieza de trabajo 2.
En la direccion perpendicular respecto a la superficie por la que se busca se aplica ahora con regulacion de fuerza o de flexibilidad una fuerza Fz, para tensar la espiga 1 previamente al pasar por encima de la escotadura 2.1. En una direccion de busqueda vx, la espiga se desplaza con regulacion de flexibilidad, moviendose en la direccion de busqueda vx un punto final de un resorte virtual que se reproduce entre este y la espiga 1 por la regulacion de flexibilidad. En la direccion perpendicular respecto a la direccion de busqueda y en paralelo a la superficie por la que se busca el robot se manda con regulacion de posicion para recorrer la trayectoria de busqueda predeterminada.
Esta puede ser predeterminada por ejemplo por una o varias rectas, trayectorias en zigzag, en forma de cfrculo o en espiral en la superficie por la que se busca. De la misma manera, tambien puede aplicarse en una direccion paralela a la superficie por la que se busca y en la direccion perpendicular respecto a la direccion de busqueda y/o en la direccion de busqueda una fuerza alternante, por ejemplo sinusoidal, para recorrer una trayectoria sinusoidal o una figura de Lissajous.
Cuando la espiga 1 pasa por encima de la escotadura 2.1, la fuerza Fz lo mete a presion en la misma, de modo que se opone una resistencia a un seguimiento del movimiento. La regulacion del robot detecta un aumento
5
10
15
20
25
30
35
40
45
50
55
60
65
correspondiente de una fuerza de contacto en la direccion Vx o una parada a pesar de haberse mandado seguir el movimiento del punto final del resorte virtual y detecta de este modo que la espiga 1 se encuentra en la escotadura 2.1 buscada, por lo que se ha encontrado la pose buscada del robot, por ejemplo una pose inicial para una union de la espiga 1 con la escotadura 2.1.
Para facilitar esta busqueda compleja con conmutacion entre diferentes regulaciones, deteccion de fuerzas de contacto y la definicion de trayectorias de busqueda adecuadas, se ha puesto a disposicion previamente una unica vez un modulo de montaje “search(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)” en una biblioteca de modulos de procesos a partir de instrucciones basicas, que mandan las operaciones basicas atomicas y moleculares anteriormente indicadas, pudiendo parametrizarse este modulo de montaje mediante los parametros p1 - p10.
El parametro p1 define aqu si se debe buscar con un saliente 1 una escotadura 2.1 o por el contrario debe buscarse con una escotadura un saliente de una pieza de trabajo. El parametro p2 define la forma de la trayectoria de busqueda, por ejemplo como trayectoria recta, en zigzag, en espiral, sinusoidal o de Lissajous. El parametro p3 define una fuerza de contacto o un error de arrastre al punto final del resorte virtual, habiendose terminado la busqueda cuando se ha alcanzado, el parametro p4 define una pose para la determinacion de una pose inicial para la busqueda, por ejemplo la pose final de un proceso de union sin tolerancias, el parametro p5 define la fuerza de apriete Fz, los parametros p6, p7 describen la velocidad en la trayectoria en la direccion de busqueda y la anchura de la trayectoria de busqueda o en el caso de trayectorias de Lissajous las amplitudes en la direccion de busqueda y en la direccion perpendicular respecto a esta. El parametro p8 define una frecuencia o un aumento del radio de la trayectoria de busqueda, los parametros p9, p10 una frecuencia y amplitud de un movimiento de rotacion opcional alrededor del eje longitudinal de la espiga 1.
Se ve que pueden programarse las busquedas de poses complejas mas diversas solo mediante la especificacion de pocos parametros.
Las Figuras 2A, 2B muestran una union programada mediante un modulo de proceso segun una realizacion de la presente invencion con desplazamiento a una esquina, posterior reorientacion alrededor de dos ejes en una vista en planta desde arriba o en una vista lateral. Esto puede realizarse en particular a continuacion de la busqueda de pose anteriormente explicada haciendose referencia a la Figura 1, vinculandose un modulo de montaje “peg_in_hole()” correspondiente, que se explicara a continuacion mas detalladamente. Durante este proceso, la busqueda de pose puede realizarse con la pieza de trabajo a unir o una herramienta propia.
En la vista en planta desde arriba de la Figura 2A se ve la seccion transversal mas compleja, en forma de puente de la espiga 1 o de la escotadura 2.1.
Para la union, el robot de construccion ligera introduce en primer lugar con regulacion de posicion una punta (en la parte superior izquierda de la Figura 2A) de la espiga 1 inclinada 15° respecto a la direccion de union (en la Figura 2B en la direccion vertical) en la escotadura 2.1 y conmuta al entrar en contacto inmediatamente a una regulacion de flexibilidad en las tres direcciones cartesianas de traslacion y rotacion para impedir danos en la pieza de trabajo 2. De la misma forma, la pose encontrada en la busqueda de pose (vease la Figura 1) puede usarse como pose inicial para la union, como se ha explicado anteriormente.
Ahora se aplica una fuerza teorica Fh (vease la Figura 2B) a la espiga 1, que presenta una componente en la direccion de union (en la Figura 2B verticalmente hacia abajo) y una componente hacia el canto (parte superior izquierda) de la escotadura 2.1, contra la que debe asentarse la punta introducida, colocandose por ejemplo el punto final del resorte virtual en o detras de este canto. De este modo, la espiga 1 se mantiene en la escotadura 2.1 en las posteriores reorientaciones y su punta que en la Figura 2A esta en la parte superior izquierda, se tira hacia el canto asignado.
A continuacion, la espiga se reorienta en primer lugar alrededor de un primer eje, por ejemplo su eje longitudinal de tal modo que una superficie lateral mas corta, por ejemplo su superficie lateral izquierda, entra en contacto con la superficie interior correspondiente de la escotadura 2.1, como se indica en la Figura 2A mediante la flecha de rotacion R1. A continuacion, la espiga se reorienta alrededor de un segundo eje, por ejemplo su canto frontal superior, de tal modo que su eje longitudinal queda alineado con el eje longitudinal de la escotadura 2.1, como se indica en las Fig. 2A, 2B mediante la flecha de rotacion R2, quedando garantizado el contacto entre la espiga y la escotadura durante estas reorientaciones mediante la fuerza Fh impuesta.
Ahora, la espiga 1 se inserta con regulacion de flexibilidad o de fuerza en la direccion de union (desde arriba hacia abajo en la Figura 2B) en la escotadura 2.1, generandose en la direccion perpendicular respecto a esta direccion una vibracion microscopica, para impedir con seguridad en el proceso un atascamiento o ladeo. Para la insercion se desplaza por ejemplo el punto final del resorte virtual en la direccion de union y se aplica adicionalmente una fuerza constante en la direccion de union. Cuando la fuerza de reaccion detectada supera un valor lfmite predeterminado por el contacto de la espiga 1 en el fondo de la escotadura, el robot de construccion ligera permanece en la pose final de union definida por el fondo de la escotadura a pesar de haberse mandado seguir con el movimiento o cuando su velocidad de union baja a cero, puede detectarse un fin del proceso de union.
5
10
15
20
25
30
35
40
45
50
55
60
65
De forma similar, tambien puede realizarse una union con seccion transversal rotacionalmente simetrica respecto a la direccion de union y una union con desplazamiento a una esquina con posterior reorientacion alrededor de solo un eje. Al unir secciones transversales rotacionalmente simetricas, se puede sobreponer al movimiento de insercion de forma ventajosa una rotacion o un par alrededor de la direccion de union para impedir un atascamiento. En lugar de una esquina marcada, puede sujetarse un punto a elegir libremente de la circunferencia frontal mediante la especificacion de una fuerza de sujecion Fh durante la reorientacion en la escotadura.
Si en caso de secciones transversales no rotacionalmente simetricas se reorienta solo alrededor de un eje, para compensar la posicion inclinada inicial, que garantiza la entrada de una esquina en la escotadura, o si se reorienta sucesivamente alrededor de dos ejes, como se ha explicado anteriormente haciendose referencia a las Figuras 2A, 2B, depende de forma ventajosa en particular de si por las condiciones geometricas, en particular por la profundidad de entrada inicial posible limitada por la seccion transversal existe el peligro de que el saliente salga de la escotadura durante la reorientacion, como es el caso, por ejemplo, cuando se trata de secciones transversales rectangulares. Unas secciones transversales triangulares pueden unirse correspondientemente con una sola reorientacion.
Para facilitar estos distintos procesos complejos de union con conmutacion entre diferentes regulaciones, deteccion de fuerzas de contacto y definicion de movimientos de entrada, reorientacion e insercion adecuados, se ha puesto a disposicion previamente una unica vez un modulo de montaje “peg_in_hole(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, pl1)” en una biblioteca de modulos de procesos a partir de instrucciones basicas, que mandan las operaciones basicas atomicas y moleculares anteriormente indicadas, pudiendo parametrizarse este modulo de montaje mediante los parametros pi — p11.
El parametro pi define aqrn al igual que en la busqueda de pose si se debe introducir un saliente 1 en una escotadura 2.1 o por el contrario debe colocarse una escotadura en un saliente de una pieza de trabajo. El parametro p2 define la orientacion de la pieza de trabajo unida sin tolerancias. El parametro p3 define si se trata de una seccion transversal rotacionalmente simetrica o si debe reorientarse una seccion transversal con al menos una esquina alrededor de uno o dos ejes. Los parametros p4, p5 limitan una fuerza maxima en la direccion de union o en la direccion perpendicular respecto a esta. Los parametros p6, p7 definen un momento maximo, que se conecta adicionalmente alrededor de un eje de reorientacion o en una direccion de union para impedir un atascamiento. El parametro p8 limita la velocidad maxima de union. Los parametros p9, p10 seleccionan el criterio de interrupcion, es decir, si se detecta una pose final al quedar la velocidad por debajo de una velocidad de movimiento o cuando se cambia la pose y el valor del mismo, por ejemplo una velocidad de movimiento minima o un cambio de pose. El parametro p11 determina el intervalo de tiempo durante el cual debe cumplirse el criterio de interrupcion segun p9, p10 para detectar una pose final.
Se ve que tambien aqrn pueden programarse los procesos de union complejos mas diversos mediante la especificacion de pocos parametros.
La Figura 3 muestra una union de dos ruedas dentadas 1', 10 programada mediante un modulo de proceso segun una realizacion de la presente invencion.
Esto se realiza sustancialmente de la misma manera que la union anteriormente explicada de un saliente rotacionalmente simetrico con una escotadura. Para garantizar una union con un proceso seguro, se sobrepone un movimiento de rotacion al movimiento de insercion, como ya se ha explicado anteriormente para evitar un atascamiento. No obstante, el movimiento de rotacion para la orientacion de las ruedas dentadas debe presentar una amplitud claramente mas grande que un movimiento de microrotacion para evitar un atascamiento y debe realizarse, ademas, al menos en caso de que lleguen a engranar tambien los dentados a mas tardar al comenzar el movimiento de union, como es el caso al colocar ruedas dentadas en ejes cortos o con arboles cortos, ya durante el desplazamiento a la pose inicial de union y en el momento de la reorientacion tras la entrada inicial del saliente en la escotadura, mientras que por el contrario en la union con solo una union con ajuste positivo, es decir, sin segunda union con ajuste positivo formada por el dentado, el movimiento de rotacion para evitar un atascamiento no debe realizarse hasta despues de haberse realizado la entrada y la reorientacion.
En principio, estas diferencias tambien pueden tenerse en cuenta mediante parametros adicionales en el modulo de montaje “peg_in_hole()” anteriormente explicado. No obstante, para limitar el numero de los parametros y asf, por un lado, la complejidad de los modulo de montajes y, por otro lado, la parametrizacion por parte del usuario, puede ser recomendable poner a disposicion para la colocacion de una rueda dentada un modulo de montaje propio “gear(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10” en la biblioteca de modulos de procesos, cuyos parametros p1 - 10 corresponden a los parametros p1, p2, p4-p11 del modulo “peg_in_hole()”. El parametro p3 de este, que indica si hay una esquina y dado el caso si debe realizarse una reorientacion alrededor de dos ejes puede suprimirse gracias al arbol o eje rotacionalmente simetrico de la rueda dentada.
Al igual que en la union explicada haciendose referencia a la Figura 2, tambien en la colocacion de una rueda dentada 1' programada mediante “gearQ” puede realizarse en primer lugar un desplazamiento con regulacion de posicion a una pose inicial de union o puede buscarse mediante una busqueda de pose intercalada, en la que la
5
10
15
20
25
30
35
40
45
50
55
60
rueda dentada 1' a unir esta inclinada un angulo respecto a la direccion de union. Al entrar el componente 2 portador en contacto con la otra rueda dentada 10, se conmuta a una regulacion de flexibilidad o se mantiene la misma de la busqueda de pose. Al mismo tiempo, se aplica a la rueda dentada 1' un movimiento de rotacion alrededor de su eje de giro, para orientarlo respecto al dentado de la otra rueda dentada 10. Esta puede estar realizada mediante un movimiento de rotacion mandado o un par alternante alrededor del eje de giro. De la misma forma puede provocarse un movimiento de insercion mediante un movimiento de avance de un punto final de un resorte virtual o una fuerza predeterminada en la direccion de insercion.
La Figura 4 muestra un enroscado de un tornillo 1” guiado en una pinza 3 de un robot de construccion ligera por lo demas no representado en un taladro pasante de una pieza de trabajo 2, que se ha programado segun una realizacion de la presente invencion.
Esto se realiza de forma similar que la union explicada anteriormente haciendose referencia a las Figuras 2, 3: Cuando el tornillo 1” aun no esta enroscado en el taladro, el robot desplaza el tornillo inclinado un angulo de 15° respecto a la direccion de enroscado con regulacion de posicion a una pose inicial de union (vease la Figura 4), en la que entra de forma inclinada en el taladro y conmuta al entrar en contacto a una regulacion de flexibilidad, en la que se aplica una fuerza de sujecion Fh, para mantener el tornillo durante la posterior reorientacion de forma segura en el taladro.
A continuacion, el tornillo 1” se reorienta de tal modo que su eje longitudinal queda alineado con el taladro, como se indica en la Figura 4 mediante la flecha de rotacion R2.
Como se indica en la Figura 4 mediante la flecha de rotacion R3', se hace girar en contra de la direccion de enroscado para impedir un atascamiento de las roscas. Si la pinza del robot 3 no puede realizar giros ilimitados alrededor del eje de enroscado, se hace girar para ello previamente en la direccion de enroscado, para tener una reserva de angulo de giro suficiente para este giro negativo R3' durante la reorientacion.
Cuando estan alineados el tornillo 1” y el taladro, el tornillo 1” se enrosca en el taladro invirtiendose la rotacion R3', aplicando una regulacion de flexibilidad con regulacion de fuerza superpuesta una fuerza de avance en la direccion de enroscado y un par o un movimiento de giro alrededor de esta direccion de enroscado.
Si la pinza del robot 3 no puede realizar giros ilimitados alrededor del eje de enroscado, se separa del tornillo 1” en la direccion de giro de enroscado al alcanzar su giro maximo, se retira del mismo, se gira en contra de la direccion de enroscado, para establecer una reserva de angulo de giro para el posterior enroscado, se vuelve a colocar a continuacion en el tornillo y este se enrosca, dado el caso repitiendose varias veces esta nueva colocacion, hasta que se cumpla un criterio de interrupcion. Si el tornillo 1” se ha enroscado por ejemplo manualmente ya algunos pasos de rosca en el taladro, el proceso de enroscado tambien puede comenzar en este punto.
Un criterio de interrupcion puede ser, en particular, cuando se alcanza o se rebasa un par predeterminado por un enroscado completo del tornillo 1” o de la misma forma cuando se reduce la velocidad o cuando ya no tiene lugar un cambio de la pose, siendo estos procesos que se producen en caso de un enroscado con regulacion de flexibilidad al alcanzarse el apoyo de la cabeza del tornillo. A continuacion puede seguir enroscandose opcionalmente un angulo predeterminado con una regulacion de posicion y puede detectarse el par que se opone. Gracias a la comparacion de estos valores puede comprobarse el exito del proceso, es decir, si el tornillo se ha enroscado con la tension previa deseada.
Para facilitar este proceso complejo, se ha puesto a disposicion previamente una unica vez un modulo de montaje “screw(p1, p2, p3, p4, p5, p6, p7, p8, p9)” en una biblioteca de modulos de procesos a partir de las instrucciones basicas anteriormente explicadas para la conmutacion entre diferentes regulaciones, la deteccion de fuerzas de contacto, la especificacion de movimientos deseados y la aplicacion de fuerzas predeterminadas, pudiendo parametrizarse este modulo de montaje mediante los parametros p1 - p9.
Aqrn, el parametro p1 define una pose inicial para el proceso de enroscado, p2 una fuerza predeterminada en la direccion de enroscado. El parametro p3 indica si el tornillo ya se ha enroscado en la rosca o si debe insertarse previamente de forma asistida por robot en el taladro. El parametro p4 define un par teorico para un enroscado controlado por par, los parametros p5, p6 un par que debe alcanzarse como maximo o que debe alcanzarse como mmimo durante el enroscado con regulacion de fuerza. El parametro p7 indica un angulo alrededor del cual debe seguir girandose tras alcanzarse la pose final en el enroscado con regulacion de par, los parametros p8, p9 un par que debe alcanzarse como maximo o al que debe llegarse como mmimo.
Se ve que mediante la especificacion de pocos parametros pueden programarse diferentes proceso de enroscado con o sin insercion inicial del tornillo en el taladro o con giro posterior, sin tener que programar por ejemplo una nueva colocacion por un intervalo limitado del angulo de giro de la herramienta.
5
10
15
20
25
30
35
40
45
50
55
60
65
Los modulos de procesos anteriormente explicados con sus parametros p1, p2, ... han de entenderse a tttulo de ejemplo. En particular, un modulo de montaje para la busqueda, para la union de espigas, para la union de ruedas dentadas o para el enroscado puede presentar menos, mas u otros parametros.
De las explicaciones anteriormente expuestas se ve claramente que segun un aspecto de la presente invencion se analizan en primer lugar operaciones de montaje, manejo y operaciones auxiliares de robots con regulacion en particular tubrida detectandose los puntos en comun y las diferencias. A partir de ello puede derivarse un juego de instrucciones basicas y una biblioteca de modulos de procesos, de modo que tambien usuarios no especializados, sin conocimientos de expertos en la materia pueden crear de forma eficiente programas mediante combinaciones y/o parametrizaciones. La programacion propiamente dicha tiene lugar, por lo tanto, previamente, durante la creacion de las instrucciones basicas y de modulos de procesos; el usuario final ya solo tiene que combinarlas y/o parametrizarlas.
La Figura 5 muestra un fragmento de una pantalla tactil 100 de un entorno de programacion grafica segun una realizacion de la presente invencion en una programacion del proceso de manipulador explicado haciendose referencia a la Figura 1.
En una biblioteca de modulos de procesos 102 realizada como parte de la pantalla tactil 100, estan representados modulos funcionales graficos disponibles como iconos. El usuario puede seleccionar diferentes modulos funcionales mediante contacto y puede desplazarlos a un area de trabajo 101 realizada como parte de la pantalla tactil (“drag&drop”), como se indica en la Figura 5 mediante flechas representadas con trazo interrumpido. Un modulo funcional seleccionado de la biblioteca de modulos de procesos 102 y desplazado al area de trabajo 101 es sustituido aqrn en la biblioteca de modulos de procesos 102 por un modulo funcional identico, de modo que el usuario puede seleccionar y usar el mismo modulo funcional varias veces.
Para mayor claridad solo estan representados tres modulos funcionales 120, 121, 22 seleccionados o sus patrones basicos 110, 111, 112 en la biblioteca de modulos de procesos 102.
Uno de los modulos funcionales 120 o 110 representa el modulo de proceso explicado haciendose referencia a la Figura 1, que implementa un desplazamiento con regulacion de posicion de una pose con conmutacion inducida por contacto a una regulacion de flexibilidad. El icono en la parte izquierda comprende una representacion de la cinematica seleccionada, aqrn de un robot de brazo articulado de seis ejes, en la zona central una representacion del modulo de proceso representado por el modulo funcional o de la accion realizada por el modulo funcional, aqrn el pasar por encima de una pose aprendida indicada con lmea de trazo interrumpido, que se indica mediante un drculo vado, asf como en la parte derecha una informacion explicativa, aqrn el nombre del modulo de proceso.
El otro modulo funcional 121 o 111 representa el modulo de proceso “search” explicado haciendose referencia a la Figura 1, que implementa una busqueda. De forma similar, la cinematica, la accion y una informacion estan representadas por el icono.
Arrastrando un usuario el icono 111, como se indica mediante la flecha indicada con trazo interrumpido, mediante drag&drop de la biblioteca de modulos de procesos 102 al area de trabajo 1101 y por debajo del modulo funcional 120 ya posicionado allf cerca del mismo, el modulo funcional 121 seleccionado de este modo se vincula automaticamente de tal modo con el modulo funcional 120 que comienza la busqueda del modulo de proceso “search”, en cuanto se haya conmutado durante el desplazamiento de forma inducida por contacto a la regulacion de flexibilidad. Esta vinculacion se simboliza con una lmea de union 123, que puede cambiarse tocandose la misma y pudiendo arrastrarse por ejemplo a otro modulo funcional (no representado).
Tocandose un modulo funcional posicionado en el area de trabajo 101, en la Figura 5 por ejemplo el icono 120, este puede activarse, como se indica mediante una flecha de trazo interrumpido, de tal modo que se abre una ventana de ayuda o una ventana de entrada 130.
Esta ventana de entrada 130 comprende dos teclas de entrada de control graficas, realizadas por la pantalla tactil 100 “1. Guide” (guiar) y “2. Save” (guardar), un texto de ayuda explicativo, asf como campos de entrada para dos parametros, en el ejemplo la velocidad v y la aceleracion a en un porcentaje de un valor maximo predeterminado, con el que debe realizarse el desplazamiento a la pose aprendida o debe pasarse por encima de la misma hasta el contacto. Ademas, esta prevista una tecla de entrada de control o “UNDO” “x” para la desactivacion de la ventana de entrada 130 desechandose las entradas y manteniendose los valores de parametros introducidos hasta ahora y una tecla de entrada de control “V” para confirmar la entrada.
Cuando el usuario ha abierto la ventana de entrada 130 tocando el modulo funcional 120, puede conmutar al robot a programar a un modo de guiado tocando la tecla de entrada de control “1. Guide”, en el que puede guiar el robot con regulacion de fuerza manualmente a la pose por encima de la cual hay que pasar, por ejemplo a una pose poco antes o en contacto con una pieza de trabajo a mecanizar. Esto se explica mediante el texto de ayuda.
5
10
15
20
25
30
35
40
45
50
55
60
Si el usuario ha guiado el robot manualmente a la pose por encima de la cual hay que pasar, puede guardar esta pose como pose por encima de la cual hay que pasar tocando la tecla de entrada de control “2. Save”, y puede parametrizar de este modo el modulo de proceso “mov_cont” de forma grafica sencilla, sin el uso de un lenguaje de alto nivel. Segun el comando de control “touch up”, tambien esta consulta y el almacenamiento de la misma se llaman control del robot por parte del modulo funcional.
De forma similar pueden introducirse en una ventana de entrada asignada al modulo funcional 121 los parametros pi - p10 anteriormente explicados del modulo de proceso “search(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)”, visualizandose preferentemente valores por defecto y pudiendo ser cambiados los mismos por el usuario tocando la pantalla tactil.
En una variante no representada, puede llamarse por ejemplo mediante un modulo funcional una vista CAD de una pieza de trabajo, puede seleccionarse en esta una posicion, por ejemplo mediante raton, y puede aceptarse como posicion por ejemplo para una pose inicial de una busqueda, de modo que vuelve a parametrizarse un modulo de proceso “search” en parte mediante el modulo funcional.
Se ve que el robot puede ser controlado durante su programacion en lmea mediante los modulos funcionales 120, 121 del entorno de programacion grafica, pudiendo conmutarse por ejemplo a un modo de guiado o pudiendo almacenarse su pose.
De la misma forma puede abrirse o cerrarse mediante un modulo funcional “gripper” (pinza) por ejemplo una pinza de robot, seleccionandose un icono 112 correspondiente de la biblioteca de modulos de procesos 102, desplazandose al area de trabajo 101 (Figura 5: “122”) y activandose allf mediante un clic, permitiendo las teclas de entrada de control “1. Open” (Abrir) “2. Close” (Cerrar) segun el estado de la herramienta una apertura o un cierre, y pudiendo accionarse las ventanas de entrada indicadas en parte en la Figura 5 de forma similar a la que se ha descrito anteriormente haciendose referencia a la ventana 130.
Para ello, el modulo funcional 122 no tiene que vincularse forzosamente con otros modulos funcionales. Si el usuario desea por ejemplo abrir durante la programacion la pinza del robot para comprobar su envergadura maxima, puede arrastrar simplemente un modulo funcional “Pinza” de este tipo al area de trabajo 101, abrir allf la ventana de entrada mediante un clic y abrir directamente la pinza accionando la tecla de entrada de control “1. Open” (Abrir), es decir, puede controlar el robot. En cuanto ya no necesite el modulo funcional 122, ni para controlar ni para programar el robot, puede volver a borrarlo. Tambien aqrn se ve claramente que el modulo funcional 122 o el proceso parcial implementado por este “Abrir/cerrar pinza” puede ejecutarse directamente durante la programacion sin compilacion previa del programa completo.
Al comparar los iconos 120-122, por un lado, y 110-113, por otro lado, se ve que la representacion se cambia automaticamente tras haberse realizado la parametrizacion e indica respectivamente la pose final del manipulador o de la pinza inducida por el modulo funcional. De este modo se reproduce y se detecta de forma intuitiva mediante la secuencia de los iconos 120, 121 el proceso de manipulador programado.
Ademas, en la Figura 5, a la derecha al lado de los campos de entrada para los parametros “v” y “a” esta previsto respectivamente un campo de control grafico “L1” o “L2”. Mediante la seleccion de este campo, un usuario de rango superior, por ejemplo un programador del fabricante, puede habilitar o bloquear elementos individuales del modulo funcional, aqrn los parametros “v” y “a” que pueden ser seleccionados para usuarios de rango inferior, por ejemplo clientes. El usuario de rango superior con el rango “2” puede permitir por ejemplo mediante varios clics en el campo de control “L1” un cambio de la velocidad de desplazamiento tambien por parte de usuarios menos adiestrados, mientras que un cambio de las aceleraciones que se producen solo puede ser realizado por usuarios del mismo rango. De forma similar, pueden bloquearse y/o ocultarse por ejemplo algunos parametros p1 - 10 individuales del modulo de proceso “search” para usuarios de rango inferior.
Se ve que pueden programarse aqrn de forma intuitiva tambien procesos de manipulador complejos, como el que se explica detalladamente haciendose referencia a la Figura 1, sin el dominio de un lenguaje de alto nivel como KRL, pudiendo ser controlados los robots a programar mediante los modulos funcionales, pudiendo ser conmutados por ejemplo a un modo de guiado.
En los ejemplos de realizacion, la invencion se ha explicado con ayuda de la programacion de un manipulador realizado en forma de robot. Como se ha mencionado, un proceso de manipulador programado de acuerdo con la invencion segun el aspecto de la biblioteca de modulos de procesos y/o del entorno de programacion tambien puede comprender varios manipuladores y/o ejes adicionales, en particular que interactuan entre sf, que pueden estar realizados por ejemplo en forma de dispositivos de transporte y/o de sujecion, como mesas giratorias y/o inclinables o similares.
5
10
15
20
25
Lista de signos de referencia
1 Espiga para la union/para la busqueda
1' Rueda dentada a unir
1” Tornillo a enroscar
2 Pieza de trabajo
2.1 Escotadura
3 Pinza
10 Rueda dentada
100 Pantalla tactil (entorno de programacion grafica)
101 Area de trabajo
102 Biblioteca de modulos de procesos
110 Modulo funcional grafico “mov_cont” en la biblioteca de modulos de procesos
111 Modulo funcional grafico “search” en la biblioteca de modulos de procesos
112 Modulo funcional grafico “gripper” en la biblioteca de modulos de procesos
120 Modulo funcional grafico “mov_cont” en el area de trabajo
121 Modulo funcional grafico “search” en el area de trabajo
122 Modulo funcional grafico “gripper” en el area de trabajo
123 Vinculacion
130 Ventana de ayuda o de entrada
Fh Fuerza de sujecion durante la(s) reorientacion(es)
Fz Fuerza de apriete durante la busqueda
Vz Direccion de busqueda
R1, ...R3’ Rotacion
Claims (13)
- 5101520253035404550556065E12805512REIVINDICACIONES1. Entorno de programacion grafica (100) para la programacion de un proceso de manipulador, en particular un proceso de montaje, con una pluralidad de modulos funcionales graficos (110, 111, 112, 120, 121, 122) para realizar respectivamente un proceso parcial, pudiendo controlarse al menos un proceso parcial y/o al menos un manipulador durante la programacion, en particular en lmea, mediante uno de estos modulos funcionales, representando un modulo funcional un modulo de proceso o una instruccion basica de una biblioteca de modulos de procesos con una pluralidad de modulos de procesos parametrizables (“searchQ”, “peg_in_holeQ”, “gear()”, “screw()” para realizar respectivamente un proceso parcial, en particular comun para diferentes procesos de manipulador, comprendiendo los modulos de procesos respectivamente una pluralidad de instrucciones basicas de un juego de instrucciones basicas comun para la realizacion de una operacion basica, en particular atomica o molecular, pudiendo vincularse un modulo de proceso con otro modulo de proceso y/o una instruccion basica, en particular matematicamente, caracterizado por que un modulo funcional puede posicionarse tocandose una interfaz de visualizacion (100) y por que modulos funcionales pueden vincularse automaticamente en funcion de su posicion.
- 2. Entorno de programacion de acuerdo con la reivindicacion 1, caracterizado por que al menos un parametro (p1, p2; p1, p3; p1; p3) de un modulo de proceso (“searchQ”, “peg_in_hole()”, “gar()” define un tipo del proceso parcial realizado por este modulo de proceso o una cinematica de un manipulador.
- 3. Entorno de programacion de acuerdo con una de las reivindicaciones anteriores, caracterizado por que un proceso parcial comprende una busqueda de pose (Figura 1), una union con una union con ajuste positivo (Figura 2) o con varias (Figura 3), un enroscado (Figura 4), un agarre, una orientacion, una medicion y/o una comprobacion del exito del proceso.
- 4. Entorno de programacion de acuerdo con la reivindicacion 3, caracterizado por que los procesos de union realizados mediante un modulo de proceso comprenden una union con una seccion transversal rotacionalmente simetrica respecto a la direccion de union y/o una union con desplazamiento a una esquina, en particular con reorientacion posterior alrededor de uno o dos ejes (R1, R2).
- 5. Entorno de programacion de acuerdo con una de las reivindicaciones anteriores, caracterizado por que una operacion basica comprende al menos una regulacion, un movimiento, una rutina de interrupcion, una operacion basica, una operacion de herramienta, una gestion de pose, una comprobacion de una condicion, en particular de un criterio de interrupcion y/o una operacion de periferia.
- 6. Entorno de programacion de acuerdo con la reivindicacion 5, caracterizado por que una operacion basica comprende una regulacion de flexibilidad y/o de fuerza.
- 7. Entorno de programacion de acuerdo con una de las reivindicaciones anteriores, caracterizado por que un proceso parcial implementado mediante un modulo funcional puede realizarse durante la programacion.
- 8. Entorno de programacion de acuerdo con una de las reivindicaciones anteriores, caracterizado por que el modulo de proceso puede parametrizarse al menos en parte mediante un modulo funcional.
- 9. Entorno de programacion de acuerdo con una de las reivindicaciones anteriores, caracterizado por que un modulo funcional comprende una representacion de una cinematica, una accion y/o una informacion.
- 10. Entorno de programacion de acuerdo con una de las reivindicaciones anteriores, caracterizado por que una representacion grafica de un modulo funcional cambia en funcion de una parametrizacion del modulo funcional seleccionado.
- 11. Entorno de programacion de acuerdo con una de las reivindicaciones anteriores, caracterizado por que un elemento de un modulo funcional puede cambiarse y/o visualizarse en funcion de un estado de usuario (“L1”, “L2”).
- 12. Procedimiento para la programacion de un proceso de manipulador, en particular de un proceso de montaje, mediante un entorno de programacion grafica de acuerdo con una de las reivindicaciones anteriores, con las etapas:programacion del proceso de manipulador mediante seleccion, vinculacion y/o parametrizacion de modulos funcionales graficos;ycontrol de al menos un manipulador y/o de un proceso parcial durante la programacion, en particular en lmea, mediante un modulo funcional del entorno de programacion.
- 13. Producto de programa de ordenador con codigo de programa que esta almacenado en un soporte legible por una maquina y un procedimiento de acuerdo con la reivindicacion 11, cuando se realiza en un ordenador, en particular un entorno de programacion grafica de acuerdo con una de las reivindicaciones anteriores 1 a 10.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102010009474 | 2010-02-26 | ||
DE102010009474 | 2010-02-26 | ||
DE102010012598A DE102010012598A1 (de) | 2010-02-26 | 2010-03-24 | Prozessmodulbibliothek und Programmierumgebung zur Programmierung eines Manipulatorprozesses |
DE102010012598 | 2010-03-24 | ||
PCT/EP2011/000943 WO2011104033A1 (de) | 2010-02-26 | 2011-02-25 | Prozessmodulbibliothek und programmierumgebung zur programmierung eines manipulatorprozesses |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2630878T3 true ES2630878T3 (es) | 2017-08-25 |
Family
ID=44502028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES11707795.8T Active ES2630878T3 (es) | 2010-02-26 | 2011-02-25 | Biblioteca de módulos de procesos y entorno de programación para la programación de un proceso de manipulador |
Country Status (7)
Country | Link |
---|---|
US (1) | US9102061B2 (es) |
EP (3) | EP3138666B1 (es) |
CN (1) | CN102821917B (es) |
DE (1) | DE102010012598A1 (es) |
DK (1) | DK2539116T3 (es) |
ES (1) | ES2630878T3 (es) |
WO (1) | WO2011104033A1 (es) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2838761A1 (en) * | 2010-07-22 | 2012-01-26 | Cogmation Robotics Inc. | A non-programmer method for creating simulation-enabled 3d robotic models for immediate robotic simulation, without programming intervention |
JP5702811B2 (ja) | 2013-01-30 | 2015-04-15 | ファナック株式会社 | 動作プログラム作成装置 |
WO2015078992A1 (en) * | 2013-11-27 | 2015-06-04 | Engino.Net Ltd. | System and method for teaching programming of devices |
JP6361172B2 (ja) * | 2014-03-06 | 2018-07-25 | セイコーエプソン株式会社 | ロボット、ロボットシステム、及び制御装置 |
JP6361213B2 (ja) * | 2014-03-26 | 2018-07-25 | セイコーエプソン株式会社 | ロボット制御装置、ロボット、ロボットシステム、教示方法、及びプログラム |
US9701018B2 (en) | 2014-04-01 | 2017-07-11 | Bot & Dolly, Llc | Software interface for authoring robotic manufacturing process |
DE102015204641B4 (de) * | 2014-06-03 | 2021-03-25 | ArtiMinds Robotics GmbH | Verfahren und System zur Programmierung eines Roboters |
EP2965873B1 (de) * | 2014-07-10 | 2020-10-07 | Siemens Aktiengesellschaft | Verfahren zur automatischen Steuerung eines Handhabungsgeräts |
US9050723B1 (en) * | 2014-07-11 | 2015-06-09 | inVia Robotics, LLC | Human and robotic distributed operating system (HaRD-OS) |
EP3239793B1 (en) * | 2014-12-26 | 2020-11-25 | Kawasaki Jukogyo Kabushiki Kaisha | Method for generating robot operation program, and device for generating robot operation program |
DE102015102642B4 (de) | 2015-02-24 | 2017-07-27 | Kastanienbaum GmbH | Vorrichtung und Verfahren zur Steuerung und Regelung eines Roboter-Manipulators |
DE102015204599B3 (de) * | 2015-03-13 | 2016-08-11 | Kuka Roboter Gmbh | Verfahren zur Steuerung eines Manipulators zur Ausführung eines Arbeitsprozesses |
JP6592969B2 (ja) | 2015-06-02 | 2019-10-23 | セイコーエプソン株式会社 | 嵌合方法 |
CN105182887A (zh) * | 2015-08-05 | 2015-12-23 | 上海腾滨自动化技术有限公司 | 一种应用于工业机器人的自动化控制方法 |
DE102016107842C5 (de) | 2016-04-27 | 2021-11-18 | Franka Emika Gmbh | Verfahren zum Einfügen eines Gegenstandes in eine Gegenstandsaufnahme mittels eines Robotermanipulators |
WO2017186637A1 (de) * | 2016-04-24 | 2017-11-02 | Haddadin Beteiligungs UG (haftungsbeschränkt) | Verfahren zum fügen eines gegenstandes in eine gegenstandsaufnahme mittels eines robotermanipulators |
CN107309871A (zh) * | 2016-04-27 | 2017-11-03 | 广明光电股份有限公司 | 机器手臂的编程方法 |
DE102016210419A1 (de) * | 2016-06-13 | 2017-12-14 | Kuka Roboter Gmbh | Verfahren zum steuern eines manipulatorsystems |
US10363661B2 (en) * | 2016-07-27 | 2019-07-30 | Seiko Epson Corporation | Control device, robot, and robot system |
DE102017202439B4 (de) | 2017-02-15 | 2022-03-31 | Festo Se & Co. Kg | Eingabeeinrichtung, Verfahren zur Bereitstellung von Bewegungsbefehlen an einen Aktor und Aktorsystem |
DE102017118980B4 (de) * | 2017-04-23 | 2018-11-08 | Franka Emika Gmbh | Vorrichtung und Verfahren zur elektrischen Prüfung eines elektrischen Bauteils |
DE102017118981B4 (de) * | 2017-04-23 | 2018-12-20 | Franka Emika Gmbh | Vorrichtung und Verfahren zum Einstecken einer Steckkarte in eine Steckkupplung |
DE102017118985B4 (de) * | 2017-04-23 | 2019-10-02 | Franka Emika Gmbh | Schraubvorrichtung |
EP3634694A1 (en) * | 2017-05-29 | 2020-04-15 | Franka Emika GmbH | System and method for controlling actuators of an articulated robot |
DE102017217601A1 (de) * | 2017-10-04 | 2019-04-04 | Thyssenkrupp Ag | Verfahren zur Herstellung einer Steckverbindung |
DE102017012001A1 (de) | 2017-12-22 | 2018-06-28 | Daimler Ag | Intuitiv bedienbares Roboter-Assistenz- bzw. -Steuersystem |
CN109960495B (zh) * | 2017-12-25 | 2022-04-15 | 紫石能源有限公司 | 一种设备控制处理方法及装置 |
JP7069747B2 (ja) * | 2018-01-26 | 2022-05-18 | セイコーエプソン株式会社 | ロボット制御装置及びロボットシステム |
JP6973119B2 (ja) * | 2018-01-26 | 2021-11-24 | セイコーエプソン株式会社 | ロボット制御装置及びロボットシステム |
DE102018003271A1 (de) * | 2018-04-23 | 2019-10-24 | Franka Emika Gmbh | Verfahren zum Einfügen von Gegenständen in eine gemeinsame Gegenstandsaufnahme |
DE102018003270A1 (de) * | 2018-04-23 | 2019-10-24 | Franka Emika Gmbh | Verfahren zum Einfügen von Gegenständen in eine gemeinsame Aufnahmevorrichtung |
DE102018003269A1 (de) * | 2018-04-23 | 2019-10-24 | Franka Emika Gmbh | Verfahren zum Einfügen eines Gegenstands in eine Gegenstandsaufnahme mittels eines Robotermanipulators |
JP7087632B2 (ja) * | 2018-04-26 | 2022-06-21 | セイコーエプソン株式会社 | ロボット制御装置 |
CN108673486A (zh) * | 2018-05-05 | 2018-10-19 | 深圳市越疆科技有限公司 | 模块式关节机器人、控制方法和存储介质 |
FR3083336B1 (fr) * | 2018-07-02 | 2020-10-23 | Psa Automobiles Sa | Procede de mise en place d'un element d'assemblage sur un element recepteur |
US10953548B2 (en) | 2018-07-19 | 2021-03-23 | International Business Machines Corporation | Perform peg-in-hole task with unknown tilt |
DE102018214257B3 (de) | 2018-08-23 | 2019-08-01 | Kuka Deutschland Gmbh | Roboterregelung |
EP3646995A1 (de) * | 2018-10-29 | 2020-05-06 | Siemens Aktiengesellschaft | Vollautomatisierte montage und kontaktierung elektrischer bauteile |
CN109366488B (zh) * | 2018-12-07 | 2021-07-16 | 哈尔滨工业大学 | 一种面向机器人装配的叠加振荡力笛卡尔阻抗控制方法 |
CN109700627A (zh) * | 2018-12-29 | 2019-05-03 | 湖南健行智能机器人有限公司 | 一种膝关节康复机器人***及其人机柔顺交互控制方法 |
USD938960S1 (en) * | 2019-03-27 | 2021-12-21 | Teradyne, Inc. | Display screen or portion thereof with graphical user interface |
DE102019108241B3 (de) | 2019-03-29 | 2020-08-06 | Franka Emika Gmbh | Intuitive Einstellung einer Kraftregelung für Robotermanipulatoren |
DE102019207017B3 (de) * | 2019-05-15 | 2020-10-29 | Festo Se & Co. Kg | Eingabeeinrichtung, Verfahren zur Bereitstellung von Bewegungsbefehlen an einen Aktor und Aktorsystem |
JP7440227B2 (ja) * | 2019-08-28 | 2024-02-28 | ファナック株式会社 | ロボットプログラミング装置及びロボットプログラミング方法 |
CN110587612A (zh) * | 2019-10-09 | 2019-12-20 | 福州旺星人智能科技有限公司 | 一种机器人智能编码*** |
JP7473330B2 (ja) * | 2019-12-09 | 2024-04-23 | ファナック株式会社 | ロボット装置の動作記号を含む動作プログラムを生成するプログラム生成装置 |
DE102020201398B3 (de) * | 2020-02-05 | 2021-04-01 | Kuka Deutschland Gmbh | Betreiben einer Applikation eines Robotersystems |
DE102020103852B4 (de) | 2020-02-14 | 2022-06-15 | Franka Emika Gmbh | Erzeugen und Optimieren eines Steuerprogramms für einen Robotermanipulator |
US11318611B2 (en) | 2020-04-14 | 2022-05-03 | Fanuc Corporation | Multi center impedance control |
DE102020113275A1 (de) | 2020-05-15 | 2021-11-18 | Gerhard Schubert Gesellschaft mit beschränkter Haftung | Verfahren zur Steuerung des Betriebs einer Maschine |
DE102020209511B3 (de) * | 2020-07-28 | 2021-08-19 | ArtiMinds Robotics GmbH | Verfahren und System zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69030318T2 (de) * | 1989-10-17 | 1997-10-16 | Perkin Elmer Corp | Robotische schnittstelle |
US5506787A (en) * | 1992-08-31 | 1996-04-09 | Siemens Aktiengesellschaft | Configurable man-machine communication structure for machine tool or robot control systems |
CA2128387C (en) * | 1993-08-23 | 1999-12-28 | Daniel F. Hurley | Method and apparatus for configuring computer programs from available subprograms |
US6167328A (en) * | 1995-09-19 | 2000-12-26 | Kabushiki Kaisha Yaskawa Denki | Robot language processing apparatus |
US6437805B1 (en) * | 1996-09-23 | 2002-08-20 | National Instruments Corporation | System and method for accessing object capabilities in a graphical program |
DE19751955A1 (de) * | 1997-11-24 | 1999-06-02 | Biotechnolog Forschung Gmbh | Virtueller Roboter |
JP2000132384A (ja) * | 1998-10-22 | 2000-05-12 | Meidensha Corp | クラスライブラリの構築方法 |
US6292715B1 (en) * | 1998-10-27 | 2001-09-18 | Perry Investments, Inc. | Robotic process planning method and apparatus using templates |
DE19853205A1 (de) * | 1998-11-18 | 2000-06-15 | Siemens Ag | Verfahren zur Steuerung technischer Prozesse |
US7000190B2 (en) * | 1999-08-19 | 2006-02-14 | National Instruments Corporation | System and method for programmatically modifying a graphical program in response to program information |
US7210117B2 (en) * | 1999-08-19 | 2007-04-24 | National Instruments Corporation | System and method for programmatically generating a graphical program in response to program information |
US7069517B2 (en) * | 1999-08-19 | 2006-06-27 | National Instruments Corporation | System and method for programmatically creating graphical program code in a graphical program |
US7917863B2 (en) * | 2000-06-13 | 2011-03-29 | National Instruments Corporation | System and method for graphically creating a sequence of motion control operations |
JP2002007299A (ja) * | 2000-06-21 | 2002-01-11 | Mitsubishi Electric Corp | デバイス制御プログラム開発手段及び実行手段 |
GB2418031A (en) * | 2002-10-22 | 2006-03-15 | Fisher Rosemount Systems Inc | Smart process modules and objects in process plants |
US7181314B2 (en) * | 2003-11-24 | 2007-02-20 | Abb Research Ltd. | Industrial robot with controlled flexibility and simulated force for automated assembly |
JP2007536634A (ja) * | 2004-05-04 | 2007-12-13 | フィッシャー−ローズマウント・システムズ・インコーポレーテッド | プロセス制御システムのためのサービス指向型アーキテクチャ |
EP1824647A1 (en) * | 2004-10-20 | 2007-08-29 | Abb Research Ltd. | A system and a method for programming an in¢ dustrial robot |
US7643907B2 (en) * | 2005-02-10 | 2010-01-05 | Abb Research Ltd. | Method and apparatus for developing a metadata-infused software program for controlling a robot |
US20070150102A1 (en) * | 2005-12-09 | 2007-06-28 | Joong Ki Park | Method of supporting robot application programming and programming tool for the same |
DK3045273T3 (en) * | 2006-03-03 | 2019-02-25 | Universal Robots As | Joint for a robot |
EP2129498B1 (en) * | 2007-03-30 | 2011-03-23 | ABB Technology AB | Method and apparatus for programming an industrial robot |
DE102008027475A1 (de) * | 2008-06-09 | 2009-12-10 | Kuka Roboter Gmbh | Vorrichtung und Verfahren zur rechnergestützten Generierung einer Manipulatorbahn |
DE102008027485B4 (de) * | 2008-06-09 | 2010-02-11 | Gsi Helmholtzzentrum Für Schwerionenforschung Gmbh | Deposition einer Solldosisverteilung in einem zyklisch bewegten Zielgebiet |
US9108316B2 (en) * | 2008-12-10 | 2015-08-18 | Abb Research Ltd. | Method and system for in-production optimization of the parameters of a robot used for assembly |
US8260460B2 (en) * | 2009-09-22 | 2012-09-04 | GM Global Technology Operations LLC | Interactive robot control system and method of use |
CN101799756A (zh) * | 2010-01-28 | 2010-08-11 | 云南奥普迪软件有限公司 | 一种功能函数与脚本分离的程序架构方式 |
-
2010
- 2010-03-24 DE DE102010012598A patent/DE102010012598A1/de not_active Ceased
-
2011
- 2011-02-25 EP EP16002046.7A patent/EP3138666B1/de active Active
- 2011-02-25 WO PCT/EP2011/000943 patent/WO2011104033A1/de active Application Filing
- 2011-02-25 EP EP17185465.6A patent/EP3275606B1/de active Active
- 2011-02-25 US US13/578,678 patent/US9102061B2/en active Active
- 2011-02-25 EP EP11707795.8A patent/EP2539116B1/de active Active
- 2011-02-25 ES ES11707795.8T patent/ES2630878T3/es active Active
- 2011-02-25 DK DK11707795.8T patent/DK2539116T3/en active
- 2011-02-25 CN CN201180011286.8A patent/CN102821917B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
EP3138666B1 (de) | 2019-07-03 |
WO2011104033A1 (de) | 2011-09-01 |
EP2539116A1 (de) | 2013-01-02 |
EP3275606A1 (de) | 2018-01-31 |
CN102821917B (zh) | 2016-06-15 |
EP3275606B1 (de) | 2020-01-08 |
CN102821917A (zh) | 2012-12-12 |
US9102061B2 (en) | 2015-08-11 |
US20120317535A1 (en) | 2012-12-13 |
DE102010012598A1 (de) | 2011-09-01 |
DK2539116T3 (en) | 2017-06-06 |
EP2539116B1 (de) | 2017-03-22 |
EP3138666A1 (de) | 2017-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2630878T3 (es) | Biblioteca de módulos de procesos y entorno de programación para la programación de un proceso de manipulador | |
US10279476B2 (en) | Method and system for programming a robot | |
EP1756684B1 (en) | Method and system for off-line programming of multiple interacting robots | |
US20150190926A1 (en) | Method and system for off-line programming of multiple interacting robots | |
Pieskä et al. | Simulation and programming experiences of collaborative robots for small-scale manufacturing | |
Haviland et al. | NEO: A novel expeditious optimisation algorithm for reactive motion control of manipulators | |
Havur et al. | A case study on the tower of hanoi challenge: Representation, reasoning and execution | |
Restrepo et al. | Iterative virtual guides programming for human-robot comanipulation | |
Fontanelli et al. | A new laparoscopic tool with in-hand rolling capabilities for needle reorientation | |
Tosun et al. | Computer-aided compositional design and verification for modular robots | |
Rajeevlochana et al. | RoboAnalyzer: 3D model based robotic learning software | |
Preda et al. | Motion planning for a multi-arm surgical robot using both sampling-based algorithms and motion primitives | |
Arbo et al. | A system architecture for constraint-based robotic assembly with cad information | |
KR101787865B1 (ko) | 다관절 링크 기구의 역운동학 해법, 및 이 역운동학 해법을 이용한 교시 데이터 작성 장치 | |
Asfour et al. | Coordinated task execution for humanoid robots | |
Bachmann et al. | Using task-specific workspace maps to plan and execute complex robotic tasks in a flexible multi-robot setup | |
Falconi et al. | Roboticad: An educational tool for robotics | |
Haspalamutgil et al. | A tight integration of task planning and motion planning in an execution monitoring framework | |
Heppner et al. | FLA 2 IR—FLexible Automotive Assembly with Industrial Co-workers | |
Lu | Subtask Automation in Robotic Surgery: Needle Manipulation for Surgical Suturing | |
Kumar et al. | Intuitive human-robot interaction using augmented reality: A simulation study on KUKA IIWA robot | |
US20030093165A1 (en) | Programming method for creating a control program of an industrial machine | |
Baldishol | Practical application of potential fields path planning on robot manipulator | |
für den Zusammenbau | Manipulation Skill for Robotic Assembly | |
Erkan Kütük et al. | A Simulation Tool for Kinematics Analysis of a Serial Robot |