Introducción a la Robótica Industrial
Dr. Angel D. Sappa
1
Presentación General
Unidades
1 Introducción y conceptualización del manipulador robótico
2 Representación matemática de los manipuladores
3 Cinemática del manipulador
4 Dinámica del manipulador
5 Generación de trayectorias
6 Programación de robots industriales
2
Recap
Programación de Robots
Métodos de programación: clasificación
Requerimientos de un sistema de programación
Ejemplo de programación
3
Recap
Métodos de Programación
CLASIFICACIÓN
1. Programación por guiado o directa
2. Programación textual o indirecta
Programación de Robots
3. Auto-aprendizaje….
4
Recap
1) Programación por guiado o directa
• La programación por guiado o aprendizaje consiste
en hacer realizar al robot, o a una maqueta del
mismo, la tarea, registrando las configuraciones
adoptadas para su posterior repetición en forma
automática.
• Para guiar al robot por los puntos deseados se
utilizan distintas soluciones:
Programación de Robots
A. Guiado Activo
B. Guiado Pasivo
5
Recap
1) Programación por guiado o directa
A. Guiado Activo
• Esta posibilidad permite emplear el propio sistema
de accionamiento del robot, controlado desde una
botonera o bastón de mando (conocido
como joystick) para que sea éste el que mueva sus
articulaciones
•
Programación de Robots
Ejemplos de este tipo se encuentran en los robots de
ABB (ARLA) o en los Cincinnati Milacron (T3).
• Atendiendo a la potencia del sistema, se habla de
guiado básico y guiado extendido
6
Recap
1) Programación por guiado o directa
A. Guiado Activo
B. Guiado Pasivo
Programación de Robots
7
Recap
1) Programación por guiado o directa
B. Guiado Pasivo
Si los actuadores del robot están desconectados y el
programador aporta en forma directa la energía para
mover el robot, se habla de un guiado pasivo
Existe distintos tipos de guiado pasivo:
Programación de Robots
• Guiado pasivo directo
• Guiado pasivo por maniquí
• Guiado pasivo por demostración
8
Recap
Métodos de Programación
CLASIFICACIÓN
1. Programación por guiado o directa
2. Programación textual o indirecta
Programación de Robots
3. Auto-aprendizaje….
9
Recap
2) Programación textual o indirecta
• Indicar la tarea al robot a través de un lenguaje de
programación específico
• Un programa se entiende como una serie de órdenes
que son editadas y posteriormente ejecutadas, por lo
tanto, existe un texto para el programa
• La programación textual se puede clasificar en tres
niveles:
Programación de Robots
• Nivel objeto, si las órdenes se refieren al estado en
que deben ir quedando los objetos
• Nivel robot, si las órdenes se refieren a los
movimientos a realizar por el robot
• Nivel tarea, si las órdenes se refieren al objetivo a
conseguir
10
Recap
2) Programación textual o indirecta
• Indicar la tarea al robot a través de un lenguaje de
programación específico
• Un programa se entiende como una serie de órdenes
que son editadas y posteriormente ejecutadas, por lo
tanto, existe un texto para el programa
• La programación textual se puede clasificar en tres
niveles:
Programación de Robots
• Nivel objeto, si las órdenes se refieren al estado en
que deben ir quedando los objetos
• Nivel robot, si las órdenes se refieren a los
movimientos a realizar por el robot
• Nivel tarea, si las órdenes se refieren al objetivo a
conseguir
11
Recap
Métodos de Programación
CLASIFICACIÓN
1. Programación por guiado o directa
2. Programación textual o indirecta
Programación de Robots
3. Auto-aprendizaje….
12
Recap
3) Auto-aprendizaje
El robot (imitando el proceso de aprendizaje del humano)
aprende los pasos a seguir para realizar una tarea.
Distintas técnicas de aprendizaje se han propuesto para que
un robot pueda aprender en forma eficiente. Entre las más
destacada se encuentran:
Aprendizaje por reforzamiento
Programación de Robots
Algoritmos genéticos
Aprendizaje profundo (Deep learning)
Etc.
13
Recap
3) Auto-aprendizaje
Ejemplo de robot industrial (FANUC) durante el proceso de
“pick & place”
Programación de Robots
[Link]
14
Recap
Programación de Robots
Métodos de programación: clasificación
Requerimientos de un sistema de programación
Ejemplo de programación
15
Recap
Requerimientos de un sistema de programación
• Si bien no hay una normalización los requerimientos
comunes han originado un cierto paralelismo y afinidad
entre todos los métodos de programación.
• Características generales para un sistema de
programación de robots:
Entorno de Programación
Modelado del Entorno
Programación de Robots
Tipo de Datos
Manejo de Entradas/Salidas (digital y análoga)
Control del Movimiento del Robot
Control del flujo de ejecución del programa
16
Programación de Robots
Métodos de programación: clasificación
Requerimientos de un sistema de programación
Ejemplo de programación
17
Ejemplo de programación de un robot industrial
Características básicas de los lenguajes de programación
comerciales: RAPID y V+
RAPID ABB
V+ Adept Technologies
Programación de Robots
18
Lenguaje de programación RAPID
• Lenguaje desarrollado por la empresa ABB (1994)
• Lenguaje de programación textual de alto nivel
• Incluye características tales como:
• Utilización de funciones y procedimientos
• Posibilidad de usar rutinas parametrizables
• Estructura del programa completamente modular
• Posibilidad de declarar rutinas y datos como locales y
Programación de Robots
globales
19
Lenguaje de programación RAPID
• Un programa escrito en RAPID consiste en una serie de
instrucciones que describen el trabajo del robot
• Cada instrucción tiene una serie de parámetros que definen
de forma completa la acción a realizar
• Estos parámetros específicos a cada instrucción pueden ser
valores numéricos, referencias a un dato, expresiones de
datos, llamadas a una función e incluso en algunos casos
cadenas de caracteres
Programación de Robots
20
Lenguaje de programación RAPID
• Los programas se desarrollan en la paleta de programación
bajo un entorno de menús dirigidos
• Los programas también pueden ser escritos directamente
en un PC con un editor de texto convencional, para ser
posteriormente volcados en la memoria del robot
• Es un lenguaje altamente estructurado
• Los programas en RAPID se denominan tareas; el programa
puede ser dividido en varios módulos, uno de los cuales ha
Programación de Robots
de ser el principal
• La definición de módulos se realiza especificando su nombre
y sus atributos, como por ejemplo se trata de un módulo del
sistema (SYSMODE) o que no se puede modificar
(VIEWONLY)
21
Lenguaje de programación RAPID
Existen tres tipo diferentes de rutinas o subprogramas:
• Procedimiento: rutina que no devuelve ningún valor y se
utiliza como una instrucción
• Función: rutina que devuelve un dato de tipo específico y que
se utiliza como una expresión
• Rutina TRAP: rutina que se asocia a interrupciones y se
ejecuta cuando éstas se activan. No pueden llamarse nunca
de forma explícita
Programación de Robots
22
Lenguaje de programación RAPID
Los datos a manejar pueden ser de dos tipos:
• Tipo de dato atómico: no se define en función de otro tipo y
no se puede dividir en diferentes componentes
• Tipo de dato registro: está compuesto por una serie
ordenada de componentes con sus respectivos nombres. Los
componentes pueden ser a su vez de tipo atómico o de tipo
registro
Programación de Robots
23
Lenguaje de programación RAPID
Los datos se pueden definir como globales o locales, tanto en
módulos como en subrutinas, pueden a su vez ser definidos
como :
• Constantes: (CONS) representan datos de un valor fijo a los
que no se puede reasignar un nuevo valor
• Variables: (VAR) son datos a los que se les puede asignar un
nuevo valor durante la ejecución del programa
• Persistentes: (PERS) se trata de variables en las que cada
Programación de Robots
vez que se cambia su valor durante la ejecución del
programa, también se cambia el valor de su inicialización
24
Lenguaje de programación RAPID
Los tres tipos básicos de datos habituales con los que se trabaja
son:
• Numérico: num
• Lógico: bool
• Cadena: string
Programación de Robots
25
Lenguaje de programación RAPID
RAPID ofrece estructuras predefinidas de datos con distintos
campos para la utilización por parte del usuario
• confdata: estructura para especificar la configuración del
robot
Campos: cf1: cuadrante del eje 1
cf4: cuadrante del eje 4
cf6: cuadrante del eje 6
Programación de Robots
Ejemplo: VAR confdata conf10 := [1, -1, 0]
26
Lenguaje de programación RAPID
RAPID ofrece estructuras predefinidas de datos con distintos
campos para la utilización por parte del usuario
• Loaddata: describe la carga colocada en la muñeca del robot
Campos: mass: peso de la carga en kilogramos
cog: centro de gravedad de la carga
aom: orientación de los ejes de inercia en el
centro de gravedad expresada como cuaternios
Programación de Robots
ix, iy, iz: momentos de inercia de la carga
alrededor del eje x, eje y y del eje z expresado en
kgm2
Ejemplo: PERS loaddata pieza := [5,[50,0,50],[1,0,0,0],0,0,0];
27
Lenguaje de programación RAPID
RAPID ofrece estructuras predefinidas de datos con distintos
campos para la utilización por parte del usuario
• Tooldata: estructura para especificar las características de una
herramienta
Campos: robhold: define si el robot tiene la herramienta o no.
tframe: sistema de coordenadas de la herramienta
(posición y orientación de la herramineta)
Programación de Robots
Tooload: dato tipo loaddata
Ejemplo: PERS tooldata pinza := [TRUE, [[97, 0, 220], [0.924, 0,
0.383, 0]] [5,[-23,0,75],[1,0,0,0],0,0,0];;
28
Lenguaje de programación RAPID
RAPID posee una variada gama de instrucciones para controlar
el flujo de ejecución del programa
Instrucciones de repetición tipo: FOR, IF, WHILE;
Operaciones aritméticas tales como: +, -, *, /
Funciones matemáticas como: ADD, Clear, Incr, Decr, Abs
Programación de Robots
29
Lenguaje de programación RAPID
En cuanto al control del movimiento, RAPID ofrece los siguientes
parámetros:
AccSet: máxima aceleración permitida
SingArea: método de interpolación en puntos singulares
GripLoad: peso de la pieza a manipular
VelSet: velocidad máxima y sobrevelocidad
Programación de Robots
30
Lenguaje de programación RAPID
Juego de instrucciones de RAPID
Programación de Robots
31
Lenguaje de programación RAPID
Juego de instrucciones de RAPID
Programación de Robots
32
Lenguaje de programación RAPID
Juego de instrucciones de RAPID
Programación de Robots
33
Lenguaje de programación RAPID
Trayectoria resultante según el tipo de movimiento definido
Programación de Robots
34
Introducción a la Robótica Industrial
Dr. Angel D. Sappa
39