0% encontró este documento útil (0 votos)
190 vistas64 páginas

Programacion de Un Robot Manipulador

Este documento presenta información sobre la programación de robots industriales utilizando el lenguaje RAPID. Explica que RAPID es un lenguaje de programación ampliamente utilizado para robots ABB. Luego describe algunas características clave de RAPID como su entorno de programación basado en ventanas y menús, y su capacidad para modelar el entorno del robot. También resume los principales tipos de datos que se pueden utilizar en RAPID como posiciones, orientaciones, velocidades y herramientas.

Cargado por

lor986
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
190 vistas64 páginas

Programacion de Un Robot Manipulador

Este documento presenta información sobre la programación de robots industriales utilizando el lenguaje RAPID. Explica que RAPID es un lenguaje de programación ampliamente utilizado para robots ABB. Luego describe algunas características clave de RAPID como su entorno de programación basado en ventanas y menús, y su capacidad para modelar el entorno del robot. También resume los principales tipos de datos que se pueden utilizar en RAPID como posiciones, orientaciones, velocidades y herramientas.

Cargado por

lor986
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 64

Mdulo 1.

- Fundamentos de
robtica de manipulacin
Prctica 1. Programacin bsica de un robot manipulador
A. Gimnez ([email protected])
rea de Ingeniera Mecnica
Departamento de Ingeniera

Programacin de robots industriales en


RAPID
Robot ABB 140

Indice
Lenguajes de programacin.
1. Introduccin General
2. Robot IRB 140 y Sistema IRC5
3. Lenguaje RAPID

Estructuras de Datos
Instrucciones de movimiento
Instrucciones lgicas

Referencias

Bibliogrficas:

1.

Fundamentos de robtica, 2 Ed. MCGRAWHILL, 2007 Barrientos

2.

Manual de referencia de RAPID

Introduccin. Programacin de robots

El robot industrial es un manipulador


multifuncional reprogramable

Adaptacin rpida y econmica a diferentes tareas y


aplicaciones
Cerca de 1.000.000 de unidades en funcionamiento
en el mundo

El sistema de programacin es la
herramienta con que cuenta el usuario para
acceder a las prestaciones del robot

Introduccin. Programacin de robots

Durante la ejecucin de un programa se


interacciona con:

La memoria del sistema: lectura y actualizacin de


variables
La memoria de programa: control de flujo de
ejecucin
El sistema de control dinmico y cinemtico: da las
seales de mando de los accionadores
Las entradas-salidas del sistema: digitales o
analgicas, para sincronizarse con otros equipos
Entorno exterior: mediante las acciones que ejecuta y
mediante sensores externos

Programacin
de robots

PROGRAMA
PROGRAMA

Punto de destino
Tipo de trayectoria
Velocidad media y tiempo
Precisin
Herramienta

Velocidad y aceleracin
mxima de la articulacin

GENERACIN
CALCULO
DE
TRAYECTORIAS
TRAYECTORIAS

MODELO
MODELO
CINEMTICO
CINEMTICO

Trayectorias articulares qi(t)

MUESTREO
MUESTREO
Referencias para el control dinmico qi(kT)

CONTROL
CONTROL
DINMICO
DINMICO

MODELO
MODELO
DINMICO
DINMICO
(Barrientos [1])

SENSORES
EXTERNOS

Lenguajes de Programacin ABB


Lenguajes

ARLA (1981)
RAPID (1994)
S4
S5

(IRC5)

Programacin por guiado

Menus de windows, RAPID

Paletas de ARLA

Programacin textual

Se basa en la existencia
de un lenguaje formal de
programacin para
indicar los comandos al
robot

PROGRAMA:

Secuencia de ordenes
10

Programacin fuera de lnea


Unidad de programacin

Ordenador

Sistema de control
Manipulador

11

Programacin fuera de lnea


Se desarrolla en la oficina, no en la fbrica
Ventajas:

12

Durante la programacin no se necesita ni el


robot ni su entorno
El programa queda totalmente documentado
Posibilidad de simulacin del programa
creado, verificando tiempos, colisiones, etc.
Posibilidad de cargarlo y ejecutarlo desde
fuera

Programacin fuera de lnea

Robot Studio (ABB)

Creacin de una estacin

13

Creacin de un programa

Requerimientos de un sistema
de programacin de robots

Lenguaje de programacin avanzado:

14

Entorno de programacin
Modelado del entorno
Tipos de datos avanzados
Control del flujo de ejecucin del programa
Manejo de E/S: digitales y analgicas
Control de movimiento
Auto-acomodacin segn informacin sensorial
externa

Modelado del entorno

Es la representacin que tiene el programa del robot


de los objetos con los que trabaja

Normalmente son caractersticas geomtricas:

Caractersticas fsicas

15

Posicin y orientacin en los sistemas ms clsicos


Asignando a cada objeto un sistema de referencia solidario
En coordenadas articulares (q1, , qn)
En coordenadas cartesianas (X, Y, Z, Q1, Q2, Q3, Q4)
Sistemas avanzados: Modelado tridimensional
Modelos de Fronteras
Geometra Constructiva de Slidos
Pesos, c.d.g. e inercias para definir las cargas
Mxima velocidad, aceleracin, etc.

Modelado del entorno


No rgida

Mundo

No rgida

No rgida

Robot
Rgida

Pinza
Rgida

Pieza A

16

Cinta
No rgida

Pieza B

Mesa
No rgida

Pieza C
Rgida

Pieza D

Robot IRB 140


6 Ejes = 6 GDL

70 mm

80 mm

6 kg

Carga
6 kg
Alcance
0.81 m
Repetibilidad 0.03 mm
17

Carga suplementaria
en la mueca 0.5 kg

Carga
suplemtaria en
el antebrazo
1 kg

Test de precision a 1.000 mm/s


Sin TrueMove ni
QuickMove

Path XY: mc6 (red/green), decbuf (blue/black)


360
350

y [mm]

340
330

Con la segunda versin


de TrueMove y
QuickMove

320
310
300
290
518

18

520

522

524
x [mm]

526

528

530

Montaje del robot


Gran

alcance en un radio de 360


Puede ser montado en cualquier ngulo
No hay limitacin en el montaje con el
primer eje

19

Principales aplicaciones
Otras
Embalaje/Pintura

Soldadura (laser y arco)

Ensamblaje

20

Manipulacin de material/Alimentacin de mquinas

Controlador IRC5
Controlador del Robot.
Igual para cualquier modelo IRB

Ligero
Conexiones industriales
Robot PC
Seta de emergencia
Motores ON/OFF
Contador de programas

21

Panel lateral del controlador IRC5


Partes

22

Unidad de programacin
Partes

23

Principales del FlexPendant

Partes de la pantalla
pantalla

24

Lenguaje de
programacin RAPID
El 60% de los robot en el mundo son ABB
RAPID (Robotics Application Programming

Interactive Dialogue)

Caractersticas ms importantes

25

Lenguaje de alto nivel estructurado


El entorno de programacin se maneja con
ventanas y mens desplegables
Los programas se guardan en formato estndar
El software del controlador es instalable por el
usuario
Fcil manejo de los parmetros del sistema

Lenguaje de
programacin RAPID

Herramientas de creacin programas:

Robotics - 8 -

26

Simuladores (RobotStudio)
Paletas de Programacin (TeachPendant)
Ordenador (Editor ASCII)

Estructura de un programa

Instrucciones

Acaban en ;
Comentarios !
Asignacin :=
Unidades:
milmetros
Grados

sexagesimales

Funcin Principal

27

PROC main()

Expresiones del
lenguaje

Aritmticas:

Devuelven una valor numrico si operan con variables de tipo num


y una cadena si operan con cadenas de caracteres.
Utilizan los operadores aritmticos: *, +, -, /, DIV (divisin entera),
MOD (resto)
Ejemplo:

Lgicas:

Devuelven un valor de tipo bool


Utilizan los operadores lgicos: <, >, <>, =, <=, >=, AND, OR,
NOT, XOR
Ejemplo:

28

perimetro := 2 * 3.14 * radio;


frase: = IN + PUT;

DInput(di1) = 1
num1 < num2;
nombre1 = nombre2;
Doutput(do1) = 0 AND pos1.x > 100

Tipos de datos en
RAPID

Alcance

Globales
Locales

Variabilidad

Constantes
CONST

Variables
VAR

num veces_repetidas;

Persistentes
PERS

29

num repeticion;

num pinza_cogida;

Tipos de datos en
RAPID

Atmicos

Un solo dato
Num
Bool

Registro

Contienen una estructura de datos


string

Cadena de caracteres. Mximo 80, incluidas las comillas

Pos

Guarda la posicin X, Y, Z (los tres son tipo num)

Orient

30

Guarda la orientacin q1, q2, q3, q4 (los cuatro son tipo num)

Tipos de datos
Datos

de posicin y
orientacin

nx
n
T y
nz

0
31

ox

ax

oy

ay

oz

az

px
p y
pz

Tipos de datos: Sistemas


de coordenadas
*

32

Tipos de datos en
RAPID

pose

trans pos
rot orient
Var

confdata

cf1, cf4, cf6, cfx


Var

confdata configuracion:=[-1,0,1,0];

extjoint

33

pose sitio:=[[1000,200,3500],[0.7,0,0.7,0]];

eax_a, eax_b, , eax_f


Extjoint

ejes_externos:=[9E+09, 9E+09,., 9E+09];

Tipos de datos
(ROBTARGET)

Sirve para definir la posicin del robot y de sus


ejes externos
trans pos
rot orient
robconf confdata
extax extjoint

34

CONST robtarget punto_reposo:=


[[1780,2500,3500],
[0.707,0.707,0,0],[0,-1,0,0],
[9E+09,...]];

Tipos de datos
(JOINTARGET)

Alamcena la posicin en giros de cada eje

dataobject of jointtarget >

< extax of extjoint >

35

< robax of robjoint >


< rax_1 of num >
< rax_2 of num >
< rax_3 of num >
< rax_4 of num >
< rax_5 of num >
< rax_6 of num >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >

CONST jointtarget calib_pos :=


[ [ 0, 0, 0, 0, 0, 0],
[ 0, 9E9,9E9, 9E9, 9E9, 9E9] ];

Tipos de datos
(Velocidad)

Especifica la velocidad a la que se mueve el robot y los


ejes externos
speeddata

v_tcp num
v_ori num
v_leax num
v_reax num

velocidad del TCP en mm/s


velocidad de reorientacin en /s
velocidad de los ejes externos lineales
velocidad de los ejes externos rotacionales

Muchos estn definidos por defecto


en la configuracin del robot
36

v100, v500, , v2000

Tipos de datos (Precisin


del movimiento)

Indica la zona de precisin por la que van


a pasar los puntos intermedios de paso.
zonedata

finep num
Es un punto de precisin fino
pzone_tcp num en mm
zone_ori num
pzone_ori num en
zone_leax num
pzone_eax num en mm en
zone_reax num

Muchos estn definidos por defecto


en la configuracin del robot
37

z100, z20, , z5, finep

Tipos de datos
(Herramienta)
Contiene la informacin de la herramienta que se
usa.
tooldata

robothold bool
La herramienta est sujeta por el
robot
tframe pose en mm
tload loaddata
en mm

Si no hay herramienta: tool0


38

Es el nico dato por defecto

Tipos de datos
Datos

Posicin del c.d.g.


Orientacin de los ejes principales de inercia
Masas y momentos de inercia

Datos

para representar cargas

para representar herramientas

(TCP)
Posicin

39

Carga

y orientacin de su punto de trabajo

Tipos de datos
Matriz TCP (posicin y orientacin)
Z
Z
Y
r
Carga
Y

Iz

Y
X

40

Iy

Xr

c.d.g Ix

Py

Pz

q1 q 2

q3

q4

Tipos de datos (datos de la carga)

Contiene la informacin de la pieza que se est


moviendo.
loaddata

41

mass num
cog pos
aom orient
ix num
iy num
iz num

Masa de la pieza
centro de gravedad de la pieza
orientacion de los ejes principales de inercia
momento de inercia eje x
momento de inercia eje y
momento de inercia eje z

Datos predefinidos: load0

load1

Lenguaje de
programacin RAPID
Declaracin

de datos:

Puntos:

CONST robtarget A:= [[1780,2500,3500],


[0.707,0.707,0,0],[0,-1,0,0], [9E+09,...]];

Herramientas:

CONST tooldata pinza:= [TRUE,


[[350,250,500],[1,0,0,0]], [1,[0,125,250],
[1,0,0,0],0.1,1,0]];

42

Control del
movimiento del robot
Hay

que especificar el movimiento del


robot:

43

Punto de destino (posicin y orientacin)


Tipo de trayectoria espacial: articulares,
recta, recta modificada, arco de crculo, etc.
Sistema de coordenadas utilizado
Base: referida al sistema del mundo
Mundo
Herramienta: en el extremo o estacionaria
Objeto: referido a un sistema de usuario

Lenguaje de
programacin RAPID
Instrucciones

de movimento:

Articulares:

MoveJ C1,v100,z5,pinza;

Opciones

[\T
MoveJ C1,v100\T:=5,z5,pinza;
Articulares absolutas:
44

MoveAbsJ punto,v100,z3,pinza;

Lenguaje de
programacin RAPID
Instrucciones

de movimento:

Lnea recta en cartesianas:

MoveL P2,v80,fine,Tool0;

Opciones

Offs()
MoveL Offs(P2,0,0,100),v80,fine,Tool0;
45

Lenguaje de
programacin RAPID
Instrucciones

de movimento:

Interpolacin circular:
MoveC P2,P3,v150,z15,Tool;
P3

P0
P1
P2
P0

46

Control del
movimiento del robot
Especificacin

Precisin

el movimiento del robot:


Esfera de
precisin

Punto
de paso

Punto
destino

47

Lenguaje de
programacin RAPID
Zonedata:

Z50

fine
Esfera de
precisin

Punto
de paso

50 mm

48

Punto
destino

Lenguaje de
programacin RAPID
Instrucciones

de movimento:

Trayectoria circular:
MoveC Pto_int, pto_final,v80,fine,Tool0;

Traza arcos de circunferencia

49

Control del
movimiento del robot

Especificacin el movimiento del robot:

Velocidad media del recorrido


En la propia instruccin
Definicin global

tacc

Vnominal

Pendiente

q
50

qf

tf

Lenguaje de
programacin RAPID
Speeddata:

v100

VelSet
tacc

100 mm/s

Pendiente

q
51

qf

tf

Control del flujo de ejecucin

Permitir al programador especificar el flujo


de operaciones del robot en funcin de una
serie de condiciones lgicas
Instrucciones

tradicionales:

IF ... THEN ... ELSE


Seleccin por casos: CASE
Bucles: FOR, WHILE, REPEAT

Procesamiento

en paralelo multitarea
La ejecucin correcta del programa en sentido
inverso no est garantizada!
52

Control del flujo de ejecucin


IF <condicion> THEN

ENDIF
IF <condicion> THEN

ELSE

ENDIF
53

IF <condicion> THEN

ELSEIF <condicion>

ELSE

ENDIF

Control del flujo de ejecucin


WHILE <condicion> DO

ENDWHILE
FOR <contador> FROM <valor inicial> TO <valor final>
[STEP incremento] DO
.
ENDFOR

54

Manejo de
Entradas/Salidas

Para comunicar y sincronizar el robot con otras


mquinas o procesos de fabricacin

Mediante seales binarias de entrada/salida


Dosificacin y mezcla Transporte de mortero

Robot de proyeccin

Bombeo

Transporte de moldes

E/S digitales 24v DC

OFICINA

FACTORIA

Red SINEC-L1
Com. serie RS-232

55

PC control

Manejo de
Entradas/Salidas

Poner una salida digital a 1

SetDO <seal>,<valor> ej: SetDO do8, 1;


Dinput(Entrada digital) ej: booleano:=Dinput(di4);

Lectura de una entrada digital

56

Reset <signaldo> ej: Reset do8;

Lectura de una entrada digital

Goutput(go2)

Cambia un seal de valor

Set <signaldo> ej: set do8;

Poner un salida digital a 0

Ginput(gi1)

TestDI(entrada digital) ej: valor:=TestDI(di6);

Instrucciones de
espera

Detiene la ejecucin del programa durante un tiempo


en segundos

ej: WaitTime 5;

Espera un tiempo o hasta que se cumpla una


condicin

WaitUntil <condicion> [\MaxTime]

WaitUntil Dinput(di3)

ej: Reset do8;

Cambia un seal de valor

57

WaitTime <tiempo>

SetDO <seal>,<valor> ej: SetDO do8, 1;

Rutinas
Procedimientos

Funciones que no devuelven valor

Funciones

Funciones que devuelven un valor

TRAP

58

Rutinas de tratamiento de interrupciones

Interrupciones
Main()
0.- Connect TRAP Inp 1
1.- Move P1
2.- Move P2
3.- Grip On
4.- Wait 0.5
5.- Move P3
6.- Grip Off
7.- Move P4
8.- Set Output1
9.- Wait 2
10.- ~ ~ ~ ~ ~

TRAP Inp 1
1.- Reset Output1
2.- Reset Output2
3.- Move P100
4.- Write Reparar Pinza
5.- Wait Input20
6.- ~ ~ ~ ~ ~
Dosificacin y mezcla Transporte de mortero

Robot de proyeccin

Bombeo

Transporte de moldes

E/S digitales 24v DC

OFICINA

59

FACTORIA

Red SINEC-L1
Com. serie RS-232
PC control

Manejo de
Entradas/Salidas
Comunicaciones

avanzadas:

Punto a punto con una conexin serie


Carga

y descarga de programas
Monitorizacin y supervisin
Control directo del robot (Computer Link)
Impresora lnea serie

60

Buses de campo (PROFIBUS, RIO, CAN,


etc.)
Redes de rea local (LAN)

Manejo de
Entradas/Salidas (II)

Otra funcin de la E/S es la integracin de


la informacin aportada por sensores
externos:

Modificar la trayectoria en lnea en funcin


de la informacin sensorial de visin artificial,
lser, fuerza/par, etc.
Deteccin de obstculos mediante
ultrasonidos, lser, infrarrojos, etc.
Tipos de movimientos:
Acomodaticios

61

Protegidos

PROGRAMA EJEMPLO
El robot se encuentra esperando en un punto de
reposo (punto A) la activacin de la entrada digital 1
En cuanto la entrada digital 1 pasa al estado UNO,
el robot se aproxima al punto B para coger la pieza.
El robot lleva la pieza al punto C pasando por una
zona segura
El ciclo finaliza en el punto de reposo

62

%%%
VERSION:1
LANGUAGE:ENGLISH
%%%
MODULE EJEMPLO
CONST robtarget A:=[[200,100,500],[0.7,0.7,0,0],
[0,-1,0,0], [9E+09,...]];
.
CONST tooldata pinza:= [TRUE, [[0,0,10],
[1,0,0,0]], [0,[0,0,0],[1,0,0,0],0,0,0]];
PROC cerrar_pinza()
WaitTime 0.5;
Set spinza;
ENDPROC
PROC coger_pieza()
MoveJ B1,v100,z5,pinza;
MoveL B,v80,fine,pinza;
cerrar_pinza;
ENDPROC

63

PROC main()
abrir_pinza;
MoveJ A,v100,fine,pinza;
WaitDI econtrol,1;
coger_pieza;
MoveL B1,v80,z5,pinza;
MoveJ D,v100,z100,pinza;
MoveJ C1,v100,z5,pinza;
MoveL C,v80,fine,pinza;
abrir_pinza;
MoveL C1,v80,z5,pinza;
ENDPROC
ENDMODULE
64

También podría gustarte