Utilizando el lenguaje KRL y de acuerdo al ejemplo de programación de las diapositivas de
Programación de Robots del Aula Virtual, desarrollar un programa (a nivel robot) y especificar una subrutina que se pueda usar para hacer todas las acciones de coger y dejar (pick&place) las piezas cúbicas de la tarea definida en la Figura 1. Las formas de las piezas S1 y S2, y la del Bloque A, son precisas y sus posiciones y orientaciones iniciales son también precisas y conocidas. (Opcional Realizar la Simulación en RoboDK)
SENSOR UTILIZADO
Un sensor de proximidad es un transductor que detecta objetos o señales que se encuentran
cerca del elemento sensor. Existen varios tipos de sensores de proximidad según el principio físico que utilizan. Los más comunes son los interruptores de posición, los detectores capacitivos, los inductivos y los fotoeléctricos, como el de infrarrojos. Características
Detección de presencia de objetos ferrosos y no ferrosos
Sin contacto, sin desgaste, resistente a la suciedad, polaridad inversa y cortocircuito de protección Disponible en tamaños de M8 a M30 como estándar, otros a pedido Material de carcasa de latón chapado Cable fijo o conector en todos los tamaños Clasificación IP 67 en todas las versiones, incluidos los tipos de conectores Versiones PNP y NPN Tipos NO o NC disponibles Rango de temperatura mínimo -20 ° C ~ +65 ° C Instalación empotrada o no empotrada
Fig. 1: Sensor de proximidad
Para el primer objeto
Mover_P0(q1,q2,q3,q4) a P2; Situarse en un punto sobre la pieza S2
Vel = 0.2 * VELMAX ; Reducir la velocidad Sensor=Activar ; El sensor detectara objetos Pinza = ABRIR ; Abrir la pinza Prec = ALTA ; Aumentar la precisión Mover_(q4_descender)_objeto ; Descender verticalmente en línea recta hasta el objeto Pinza = CERRAR ; Cerrar la pinza para coger la pieza B Espera= 0.5 ; Esperar para garantizar cierre de pinza Mover_(q4_ascender)_a P2 ; Ascender verticalmente en línea recta hasta P2 Prec = MEDIA ; Decrementar la precisión Vel = VELMAX ; Aumentar la velocidad Mover_a P2_P4 ; Situarse sobre la pieza S1 Prec = ALTA ; Aumentar la precisión Vel = 0.2 * VELMAX ; Reducir velocidad Mover_(q4_descender)_objeto; Descender verticalmente en línea recta Sensor=Desactivar ; El sensor ya no detectara objetos Pinza = ABRIR ; Abrir pinza Mover_(q4_ascender)_a P4 ; Ascender verticalmente en línea recta hasta P4 Pinza = CERRAR ; Cerrar pinza Para el segundo objeto
Mover_P0(q1,q2,q3,q4) a P1; Situarse en un punto sobre la pieza S2
Girar(90°)_q5; Para poder tomar el nuevo objeto Vel = 0.2 * VELMAX ; Reducir la velocidad Sensor=Activar ; El sensor detectara objetos Pinza = ABRIR ; Abrir la pinza Prec = ALTA ; Aumentar la precisión Mover_(q4_descender)_objeto ; Descender verticalmente en línea recta Pinza = CERRAR ; Cerrar la pinza para coger la pieza B Espera= 0.5 ; Esperar para garantizar cierre de pinza Mover_(q4_ascender)_a P1 ; Ascender verticalmente en línea recta hasta P1 Prec = MEDIA ; Decrementar la precisión Vel = VELMAX ; Aumentar la velocidad Mover_a P1_P5 ; Situarse sobre la pieza S1 Prec = ALTA ; Aumentar la precisión Vel = 0.2 * VELMAX ; Reducir velocidad Mover_(q4_descender)_objeto; Descender verticalmente en línea recta hasta el objeto Sensor=Desactivar ; El sensor ya no detectara objetos Pinza = ABRIR ; Abrir pinza Mover_(q4_ascender)_a P5 ; Ascender verticalmente en línea recta hasta P5 Pinza = CERRAR ; Cerrar pinza Girar(-90°)_q5; Para tomar las condiciones iniciales
Para el tercer objeto
Mover_P0(q1,q2,q3,q4) a P2; Situarse en un punto sobre la pieza S2
Girar(90°)_q5; Para poder tomar el nuevo objeto Vel = 0.2 * VELMAX ; Reducir la velocidad Sensor=Activar ; El sensor detectara objetos Pinza = ABRIR ; Abrir la pinza Prec = ALTA ; Aumentar la precisión Mover_(q4_descender)_objeto ; Descender verticalmente en línea recta Pinza = CERRAR ; Cerrar la pinza para coger la pieza B Espera= 0.5 ; Esperar para garantizar cierre de pinza Mover_(q4_ascender)_a P2 ; Ascender verticalmente en línea recta hasta P2 Prec = MEDIA ; Decrementar la precisión Vel = VELMAX ; Aumentar la velocidad Mover_a P2_P5 ; Situarse sobre la pieza S1 Prec = ALTA ; Aumentar la precisión Vel = 0.2 * VELMAX ; Reducir velocidad Mover_(q4_descender)_objeto; Descender verticalmente en línea recta hasta el objeto Sensor=Desactivar ; El sensor ya no detectara objetos Pinza = ABRIR ; Abrir pinza Mover_(q4_ascender)_a P5 ; Ascender verticalmente en línea recta hasta P5 Pinza = CERRAR ; Cerrar pinza Girar(-90°)_q5; Para tomar las condiciones iniciales
Para el tercer objeto
Mover_P0(q1,q2,q3,q4) a P3; Situarse en un punto sobre la pieza S2
Girar(90°)_q5; Para poder tomar el nuevo objeto Vel = 0.2 * VELMAX ; Reducir la velocidad Sensor=Activar ; El sensor detectara objetos Pinza = ABRIR ; Abrir la pinza Prec = ALTA ; Aumentar la precisión Mover_(q4_descender)_objeto ; Descender verticalmente en línea recta Pinza = CERRAR ; Cerrar la pinza para coger la pieza B Espera= 0.5 ; Esperar para garantizar cierre de pinza Mover_(q4_ascender)_a P3 ; Ascender verticalmente en línea recta hasta P3 Prec = MEDIA ; Decrementar la precisión Vel = VELMAX ; Aumentar la velocidad Mover_a P3_P5 ; Situarse sobre la pieza S1 Prec = ALTA ; Aumentar la precisión Vel = 0.2 * VELMAX ; Reducir velocidad Mover_(q4_descender)_objeto; Descender verticalmente en línea recta hasta el objeto Sensor=Desactivar ; El sensor ya no detectara objetos Pinza = ABRIR ; Abrir pinza Mover_(q4_ascender)_a P5 ; Ascender verticalmente en línea recta hasta P5 Girar(-90°)_q5; Para tomar las condiciones iniciales