Documente Academic
Documente Profesional
Documente Cultură
PROFESOR PATROCINANTE:
Sr. Pedro Rey Clericus.
Ingeniero Electrnico.
Licenciado en Ciencias de la Ingeniera.
Diplomado en Ciencias de la Ingeniera.
Comisin de Titulacin
II
Profesor Patrocinante:
_____________________________
Sr. Pedro Rey Clericus
Profesores Informantes:
_____________________________
Sr. Daniel Lhr S.
_____________________________
Sr. Franklin Castro R.
Agradecimientos
III
Dedicado a mi Padre.
Jos Saturnino Melillanca Nempu. (Q.E.P.D)
ndice
IV
Portada
Comisin de Titulacin
II
Agradecimientos
III
ndice
IV
Resumen
Summary
XI
Introduccin
XII
Contenido
Captulo I Robotino
3
13
13
14
1.4.- Conectividad
15
15
16
19
19
19
1.6.- Sensores
20
20
21
22
23
25
V
2.2.1.- Reduccin de constantes:
25
27
29
31
35
37
37
39
2.7.- Ejemplos.
Captulo III
41
46
47
48
51
56
62
62
64
69
70
70
4.1.2.- Construccin.
72
4.1.3.- Ejemplo.
73
78
78
4.2.3.- Construccin.
80
4.2.4.- Ejemplo.
80
83
83
4.3.2.- Construccin.
84
4.3.3.- Ejemplo.
85
Capitulo V
Visin Artificial
86
VI
5.1 Webcam.
87
87
96
Captulo VI Aplicaciones
102
103
103
105
106
114
117
118
118
118
119
120
121
Conclusiones
122
123
Bibliografa
125
Anexos
127
Anexo I
Datos Tcnicos
128
1.1.- Robotino.
129
130
1.3.- Webcam.
131
132
133
Anexo II
Bloques de funcin
A.2.1.- Lgica.
134
135
135
136
VII
A.2.1.3.- Demultiplexor.
137
A.2.1.4.- Multiplexor.
138
A.2.1.5.- AND.
139
140
A.2.1.7.- NAND.
140
141
A.2.1.9.- OR.
142
A.2.1.10.- NOR.
143
A.2.1.11.- XOR.
143
A.2.1.12.- NOT.
144
A.2.1.13.- RS.
144
A.2.2.- Matemticas.
146
A.2.2.1.- Adicin.
146
A.2.2.2.- Substraccin.
147
A.2.2.3.- Multiplicacin.
147
A.2.2.4.- Divisin.
148
A.2.2.5.- Mximo.
149
A.2.2.6.- Mnimo.
149
A.2.2.7.- Modulo.
150
151
151
152
153
A.2.2.12.- ABS.
154
155
155
155
156
156
157
157
158
VIII
A.2.3.8.- Multiplicacin de Vectores.
159
159
A.2.3.10.- Rotar.
160
160
A.2.4.- Indicacin.
161
A.2.4.1.- Osciloscopio.
161
163
164
A.2.5.1.- Segmentador.
164
166
168
A.2.6.- Generadores.
170
170
171
172
A.2.6.4.- Constante.
172
173
A.2.7.- Filtros.
A.2.7.1.- Aplanar.
A.2.8.- Robotino hardware.
174
174
175
A.2.8.1.- Webcam.
175
A.2.8.2.- Distancia.
178
179
180
A.2.8.5.- Rel.
180
A.2.8.6.- Motor.
182
183
A.2.8.8.- Paragolpes.
184
A.2.8.9.- Omniaccionamiento.
185
187
A.2.8.11.- Odometra.
187
188
IX
A.2.9.- Navegacin.
189
189
191
192
192
194
195
196
A.2.11.1.- Salida A, B o C.
196
A.2.11.2.- Start.
197
A.2.11.3.- Sincronizacin Y.
197
A.2.11.4.- Sincronizacin O.
197
Resumen
Summary
XI
In this final year project, we analyze and design algorithms work based on the
control software Robotino View, Omnidirectional Robot Robotino for the German
automation company Festo S.A, DIDACTIC division. The purpose of designing control
algorithms, is based on the need to maximize the potential of the software, and hardware
built by the manufacturer, thus, exploring areas such as positioning, machine vision, the
use of sensors and simulation of algorithms based on digital logic.
In this way a study of its software and hardware, and their limitations, for it
generates a series of explanations, examples of different set of features and specifications
of the equipment. Detailing several measures to be considered over the use and
implementation, as well as connectivity issues, accuracy and balance of values in the
samples made
Introduccin
XII
XIII
Objetivos especficos:
Captulo I
Robotino
2
1.1. - Acerca de Robotino.
Robotino es un robot construido por la empresa alemana FESTO S.A, con
presencia a nivel mundial, cuya principal lnea base de desarrollo, es la automatizacin y
control de procesos productivos, integrando dentro de sus productos un alto ndice de
innovacin tecnolgica para la obtencin de una mxima produccin.
Dentro de sus divisiones de productos y soluciones tecnolgicas, se deriva la
divisin FESTO Didactic, con 35 aos de existencia dedicada a la formacin y
perfeccionamiento industrial, lo que a su vez tambin incorpora la utilizacin de
equipamientos para la formacin y calificacin de personal en entornos productivos
industriales [1].
Robotino es un producto de la divisin Didactic, es un sistema de robot mvil con
actuador
omnidireccional,
un
sistema
de
aprendizaje
para
la
formacin
3
1.2.- Aspectos Fsicos.
En base a los diferentes componentes que conforman el equipo Robotino
FESTO, se entregar una breve descripcin a cada una de las principales partes [2].
1.2.1.- Componentes bsicos.
Primero nos referiremos a los componentes ms bsicos que permiten el
funcionamiento y forman parte de la estructura en s como son:
1.2.1.1.- Chasis.
Estructura base de Robotino, esta base est hecha de acero inoxidable y un
soldado por laser. Ver Fig. 1.2.1.1
4
1.2.1.2.- Bateras.
El equipo necesita de energa para su funcionamiento autnomo, por lo que posee
un sistema de alimentacin de dos bateras recargables de 12 V-DC, ubicadas dentro del
chasis. Adems de las dos bateras que estn incorporadas, es posible intercambiarlas
por dos bateras extras, para que el equipo no pause su funcionamiento, y a su vez pueda
entregar un trabajo casi continuo, as mientras se carga el primer par de bateras se
puede cargar el segundo par.
Tambin existe la posibilidad de cargar directamente las bateras que se
encuentran en el chasis a travs de un conector integrado a este. Ver Fig. 1.2.1.2 (3(2x)).
6
En el caso de los rodillos omnidireccionales ellos son dirigidos en una direccin por
su propio eje pero tambin les es posible ir en una direccin diferente que sea definida por
uno o ms unidades de desplazamiento. Eso es gracias a que al trabajo de dos unidades
juntas logra crear una direccin diferente a las establecidas por el funcionamiento de un
solo eje.
Los datos tcnicos de los elementos que componen la unidad de accionamiento se
encuentran en el anexo 1 (1.2.- Unidad de Accionamiento).
1.2.1.4.- Cmara (Webcam).
El robot Robotino trabaja en un entorno de programacin que le permite trabajar
con imgenes y video en tiempo real, todo esto es posible con una cmara de color VGA
CMOS de conexin USB 1.1 con la que captura imgenes que puede procesar para
ciertas rutinas, as tambin como la deteccin en modo video de una lnea y separar
segmentos todo a travs del software del equipo. Ver Fig. 1.2.1.5 (A)
Los datos tcnicos de la cmara en el anexo 1 (1.3.- Webcam).
7
1.2.1.5.- Unidad de Control.
La unidad de control es la que ordena y distribuye las instrucciones del programa a
las diferentes partes, como tambin trasmite los datos de los sensores y la cmara a un
PC. Ver Fig. 1.2.1.5.A (B).
Procesador PC104 de 300 Mhz., Con un S.O. Linux con kernel en tiempo real y
un SDRAM 128 MB.
Interfaces.
Teclado y Display
Interface E/S
10
2 rels para actuadores adicionales (REL0 y REL1). Los contactos de los rels
pueden utilizarse como NA, NC o conmutados.
Para ver la asignacin de estos bornes en la Interface E/S ir al Anexo 1 (1.5.- Interface
E/S).
11
1.2.1.6.- Sensores.
Se har una descripcin de los sensores ms simples que ayudan al equipo a
encontrar y medir las distancias de otros objetos u obstculos al equipo.
A.- Sensor anticolisin.
Est conformado por una banda de deteccin que circunda el chasis y contiene
una cmara con dos superficies conductoras, estas superficies
mantienen una
determinada distancia entre s, por lo cual permite que hagan contacto a la mnima
cantidad de presin en la banda. Todo esto permite que sea capaz de detenerse a la
mnima colisin con algn obstculo. Ver Fig. 1.2.1.6.A (A)
12
Los sensores son llamados IR1-9 pero en el software son direccionados como:
IR1 en Distance 1 de la misma forma de IR2 a Distance 2 hasta llegar a Distance 9.
Ver Fig. 1.2.1.6.B y Fig. 1.2.1.6.C.
13
1.3.- Puesta en Marcha.
Despus de saber que es Robotino y los componentes que lo conforman se dar
inicio a cmo poner en marcha a el equipo, primero se dar como recomendacin colocar
sobre a Robotino sobre el dispositivo elevador que trae el equipo para verificar el
funcionamiento de los motores, sensores y la cmara.
Recomendaciones:
1.- Recuerde coger el equipo desde las Asas y nunca de la unidad de control.
2.- Los obstculos siempre deben llegar hasta el suelo para que la banda anticolisin y los
sensores infrarrojos lo detecten.
3.- Para evitar arranques inesperados si se encuentra encendido pero con el display
desactivado no presione la tecla Enter sino que presione otra tecla como los
direccionales para volver a activarlo.
4.- Si se ejecutan los programas de demostracin (Demos) debe ser un suelo plano y
bien nivelado.
14
1.3.2.- Uso del Display.
Al estar Robotino encendido se debe presionar la tecla Enter para ir al men
principal, para moverse dentro de este men use las teclas direccionales:
(State of Charge), Demostraciones (Demos), Red (Network), por lo que se le dar una
breve explicacin de cada uno:
A.- Lenguajes (Lenguages).
Esta opcin permite elegir el idioma que se desea en el display, entre los
siguientes idiomas: Alemn (Deutch), Ingles (English), Francs (Francais) y Espaol
(Spanish). Siendo el alemn su idioma predefinido.
B.- Estado de Carga (States of Charge).
Es el estado de carga de las bateras como lo son su corriente y voltaje.
C.- Demostraciones (Demos).
El Robotino trae una serie de programas de demostracin con rutinas como formar
un crculo, seguir una lnea, etc
Seguir una lnea: se mueve usando la cmara y siguiendo una lnea de aprox. 5
cm de grosor.
15
D.- Red (Network).
Aqu se indica la IP actual con la que trabaja Robotino, esta puede ser cambiada
usando las teclas direccionales.
1.4.- Conectividad
Robotino incorpora 2 modalidades de conectividad para la transmisin de datos,
incorporado a travs de Live 1 WAP 0004, que en sus opciones de conexin esta:
-
16
1.4.2.- Conectividad WLAN
La mayor potencialidad de Robotino, es su conectividad a travs de WLAN
Standard IEEE 802.11b (11 Mbits a 2.4 Ghz) y 802.11g (54 Mbits a 2.4 Ghz), con un limite
de alcance de hasta 100 Mts. dentro de edificios, con una encriptacin de red segura
WEP o WPA-PSK, la cual permite una interaccin con el software de control, continua e
ininterrumpida para la trasmisin de datos y su navegacin autnoma con libertad e
independencia.
1.4.2.1.- DHCP e IP esttica
DHCP (sigla en ingls de Dynamic Host Configuration Protocol - Protocolo
Configuracin Dinmica de Servidor) es un protocolo de red que permite a los nodos de
una red IP obtener sus parmetros de configuracin automticamente. Se trata de un
protocolo de tipo cliente/servidor en el que generalmente un servidor posee una lista de
direcciones IP dinmicas y las va asignando a los clientes conforme stas van estando
libres, sabiendo en todo momento quin ha estado en posesin de esa IP, cunto tiempo
la ha tenido y a quin se la ha asignado despus.
Sin DHCP, cada direccin IP debe configurarse manualmente en cada
computadora y, si la computadora se mueve a otra subred, se debe configurar otra
direccin IP diferente. El DHCP le permite al administrador supervisar y distribuir de forma
centralizada las direcciones IP necesarias y, automticamente, asignar y enviar una
nueva IP si fuera el caso en la computadora es conectada en un lugar diferente de la red.
El protocolo DHCP incluye tres mtodos de asignacin de direcciones IP:
17
18
Cmd ping. Conexin incorrecta.
Haciendo ping a 172.26.1.1 con 32 bytes de datos::
Tiempo de espera agotado para esta solicitud.
Tiempo de espera agotado para esta solicitud
Tiempo de espera agotado para esta solicitud
Tiempo de espera agotado para esta solicitud
Paquetes: enviados = 4, recibidos = 0, perdidos = 4 (100%
perdidos),
Cmd ipconfig
C:\ipconfig
Ethernet adaptador conexin de rea local:
Sufijo DNS especfico de la conexin :
Descripcin .....................................: Dell Wireless 1470 Dual Band WLAN Mini-PCI
........................................................ card
Direccin fsica................................: 00-14-A5-44-A4-D6
DHCP habilitado..............................: S
Autoconfiguracin habilitada..........: S
Direccin IP .....................................: 172.26.201.1
Mscara de subred .........................: 255.255.0.0
Puerta de enlace predeterminada...:
Servidor DHCP.................................: 172.26.101.8
19
1.5.- Sistema de energa.
1.5.1.- Bateras EFFEKTA.
Su sistema de energa incorpora un do de bateras, de 12 V (Volts), 5 Ah
(Ampere hora) Effekta 12 -5, conectado en serie (Fig. 1.5.A), lo cual aporta un voltaje total
de 24 Volts, para el uso de Robotino.
20
1.6.- Sensores
En esta seccin se trabajar con los sensores ms especficos al ser considerados
sensores opcionales, como lo son el sensor inductivo y el sensor de fibra ptica. Estos
sensores dan una mayor gama de aplicaciones especficas.
21
Captulo II
Robotino View
22
23
Captulo II - Robotino View.
En este captulo se vern algunos aspectos sobre el programa y los bloques, y
sobre como poder dar un mejor uso, eficiencia y simplificacin a las rutinas, a travs de
varios anlisis a las diferentes herramientas incluidas dentro de los bloques, como por
ejemplo la reduccin de constantes.
As Tambin hacer un anlisis al uso del software extra del robot, como es el uso
de su simulador, para poder recrear el funcionamiento de las rutinas en un medio virtual
controlado. Todo esto acompaado de varios ejemplos de diagramas de programas que
pueden crearse con el software.
24
Ejecutar, en el caso que no se desee guardar los cambios se debe presionar la opcin
Cancelar.
25
Iconos en el software de los bloque de funcin del Seguimiento de lnea cuando
esta desactivado y cuando esta activo.
26
que provoca que la constante de entrada sea definida por el valor de a (Ver Fig.
2.2.1.C), cambiando de la funcin Y=x que indica que la entrada est definida por el
valor entregado por un bloque diferente.
27
la opcin [2] generalmente o la opcin [1] en algunos casos (Ver Fig. 2.2.2.B). En ella se
elige la funcin Y=a*x+b, que provoca que la constante de entrada sea multiplicada por
el valor de a y sumada al valor de b (Ver Fig. 2.2.2.C), cambiando de la funcin Y=x
por una funcin donde el valor de entrada es modificado.
28
29
2.3.- Control de Secuencias
Para la creacin de secuencias es necesario crear rutinas claras, con un tiempo y
una velocidad definida. Por lo cual es necesario controlar en que instante de tiempo
comienza y termina cada rutina. A travs del siguiente ejemplo, explicaremos el proceso
para crear una secuencia que cumpla una funcin de recorrido programado.
El ejemplo a utilizar, es la creacin de un movimiento en forma de cruz en sentido
anti-horario. Por lo cual cada uno de los movimientos servir para crear la secuencia:
1.- Se deben crean los diferentes programas con sus recorridos, es importante mencionar
que el eje x e Y estn dados de forma que la cmara indica el eje X positivo (Ver Fig.
2.3.A).
Fig. 2.3.A.- Eje de posicin ( Festo Didactic GmbH & Co. KG 548606/2).
2.- Al Tener en cuenta el eje de posicin, se debe empezar por avanzar en sentidos del
eje Y positivo por unos segundos, para luego volver al punto de partida. Despus de eso
el segundo movimiento debe ser el que avanza en sentido al eje X negativo y regresar al
punto de partida. Y as sucesivamente en el eje Y negativo como en el eje X positivo
dando por resultado el movimiento en forma de cruz. Todos los movimientos deben ser
creados en diferentes programas con un nombre acorde y un bloque Salida A que
detenga esa rutina.
3.- Al tener los programas que forman parte de la secuencia, se debe crear un Programa
de control de flujo (Ver Fig. 2.3.B). El cual denominaremos cruz por motivos de orden.
30
31
2.4.- Escalar Sensores IR
Cuando se trabaja con los valores de voltaje en forma directa, como en el caso de
los sensores IR, se puede crear una escala de valores que represente la distancia del
sensor al obstculo. Se debe crear una recta que represente matemticamente en forma
aproximada la equivalencia entre ambas medidas. Esta representacin matemtica suele
llamarse lnea caracterstica. Esta lnea existe por la relacin entre dos magnitudes,
expresada mediante una lnea que se encuentra en un sistema de coordenadas
bidimensional.
En palabras simples, para obtener esta lnea se necesitan medir las dos
magnitudes e introducirlos en un sistema de coordenadas y una tabla. Las magnitudes de
una se atribuyen a la magnitud de la otra. Por lo que se crean pares de puntos que se
unen mediante una lnea/curva, con lo cual se obtiene la curva caracterstica del sensor.
Es importante saber los rangos de funcionamiento de estos sensores, por lo cual
se asumir que los valores de voltaje estn en el rango de 0 a 2,54 Volts, a los 0 (V) el
sensor no est localizando un obstculo y as mientras ms cerca est el obstculo al
sensor va aumentando el voltaje hasta un mximo de 2,54 (V), que es la distancia de
impacto del sensor. La distancia desde donde el sensor es capaz de sentir el obstculo es
de aproximadamente de 40 centmetros segn datos tcnicos.
Para representar esa lnea caracterstica, se puede lograr a travs de la ecuacin
de una recta (Ver Ec. 2.1), donde los valores de la recta sern los siguientes [3]:
Y= MX + B
Ec. 2.1 Ecuacin de la recta.
Y= Distancia al obstculo (Cm.).
M= Pendiente.
X= Valor del sensor (Volts)
B= Desfase.
Sabiendo esto es necesario saber los valores desconocidos que son M y B, por lo cual los
calcularemos usados los valores del Cuadro 2.1.
32
Por lo cual usaremos la siguiente tabla de valores para la relacin entre las
magnitudes (Ver Cuadro 2.1):
Cuadro 2.1 Relacin Voltaje- Distancia. ( Festo Didactic GmbH & Co. KG
548606/2)
Al utilizar los valores de distancia y de voltaje para crear una recta se llegara a la
siguiente curva caracterstica (Ver Fig. 2.4.A).
33
Distancia
Voltaje
5 cm.
2.13 (V)
15 cm.
0.81 (V)
Tabla de conversin:
P(X1; Y1) = P (Voltaje; Distancia)= P (2,13; 5).
Q(X2; Y2) = Q (Voltaje; Distancia)= Q (0,81; 15).
Punto P (0,81; 15); Punto Q (0,41; 30).
2 1
15 5
10
7, 57
2 1 0,81 2,13 1,32
Ec. 2.2 Pendiente de una recta
7, 57
34
Al conseguir un valor aproximado de pendiente en nuestra curva, se puede
calcular el desfase en nuestra ecuacin de la siguiente forma:
Con nuestra ecuacin de la recta: Y= MX + B.
La pendiente m= -7,57.
El punto P (2,13; 5).
Reemplazando los valores en nuestra ecuacin:
5 7,57 2,13
5 16,1241 21,12
Por lo cual la ecuacin de la curva seria:
7,57 21,12
Ec. 2.3 Ecuacin de la curva.
Al tener la ecuacin, es posible hacer que el bloque de funcin que representa al
sensor IR nos entregue la distancia en la salida, esto se logr a travs de la insercin del
la ecuacin en la ventana de dilogo del bloque (Ver Fig. 2.4).
35
2.5.- Simulacin ROBOTINO SIM.
El robot denominado Robotino, adems del programa Robotino View que le
permite crear rutinas, adems trae consigo un programa en su versin DEMO para
poder simular bloques de programas. Este programa llamado Robotino Sim, funciona en
forma paralela al software de programacin Robotino view, ya que se crea una conexin
entre el software de programacin y el de simulacin, a travs del puerto 8080 para poder
ver el funcionamiento de este. El proceso para la simulacin es el siguiente:
1.-
la siguiente 127.0.0.1:8080 (Ver Fig. 2.5.B) que permite la conexin entre el simulador y el
programa, por lo cual se acciona el icono de conexin que los conecta (Ver Fig. 2.5.C).
36
Se abre o se crea la rutina a simular en el programa Robotino View, con todo esto
preparado se puede dar comienzo a la simulacin accionando el icono Play (Ver Fig.
2.5.D). Se puede ver a travs del simulador el funcionamiento del programa (Ver Fig.
2.5.E).
4.-
mencionar que solo se debe trabajar con la modalidad de cmara RGB para que pueda
funcionar la cmara en la simulacin.
37
2.6.- Variables externas e internas
En esta seccin analizaremos las variables externas e internas que pueden ser muy
tiles en algunas rutinas o secuencias, estas variables son entregadas por los bloques de
funcin que pertenecen al grupo denominado Intercambio de datos, que pueden
intercambian datos entre programas de Robotino y aplicaciones externas. Los bloques de
funciones que analizaremos sern: Lector de Valores, Escritor de Valores, Entrada
Global y Salida Global, donde dividiremos estos bloques en dos grupos.
2.6.1.- Variables externas
Las variables externas sirven para almacenar y cargar datos, en forma externa al
programa a travs de la creacin de un archivo de texto que almacena la informacin, a
travs de los dos primeros bloques de funcin antes mencionados, a continuacin se ver
en forma ms especfica los dos procesos:
i)
ii)
Para luego lograr el proceso inverso a travs del bloque Lector de Valores,
nos permite cargar la informacin del archivo de texto y utilizarla en otra rutina
mucho tiempo despus sin tener ningn problema.
El bloque tiene una gran utilidad, para almacenar datos y tener un registro de ellos,
utilizar valores registrados mucho tiempo despus de ser guardados y el uso entre rutinas
de varias variables.
Para crear el archivo donde se registran los datos, se debe presionar el icono
indicado en la imagen (Ver Fig. 2.6.1.A), para que aparezca la siguiente ventana que nos
pide dar un nombre al archivo para crear el archivo (Ver. Fig. 2.6.1.B).
38
39
El bloque de funcin Entrada Global que nos permite guardar un dato en una
memoria de las 19 entradas de memoria.
ii)
El bloque de funcin Salida Global que nos permite cargar los datos de las 19
memorias del bloque Entrada global.
Este proceso de guardar datos, para que sean utilizados en un bloque de programa
actual de una rutina anterior en una secuencia, solo es posible si el software Robotino
View sigue abierto, ya que al cerrar el software las memorias se resetean. En otras
palabras estas memorias solo son temporales, ya que los datos deben ser guardados y
cargados dentro de la misma sesin del software, por lo que su mayor aplicacin de estas
memorias es el intercambio de variables entre rutinas de una secuencia. (Ver Fig. 2.6.2.E
y Fig.2.6.2.F).
40
41
2.7.- Ejemplos.
a) Movimiento secuencial en forma de Cruz:
Analizaremos el movimiento de esta secuencia por cada una de las rutinas:
Y Positivo (Ver Fig. 2.7.A): La rutina dura un tiempo de 16 segundos, por lo cual
al comenzar avanza a una velocidad de 200 mm/s en sentido al eje Y positivo por
un tiempo de 8 segundos. Al llegar a los 8 segundos la velocidad cambia a -200
mm/s lo que lleva a cambiar el sentido del movimiento al eje Y negativo por un
tiempo de 8 segundos que es cuando acaba la rutina y la salida A da comienzo a
la siguiente. Es importante mencionar que el Bumper debe ser conectado a la
salida B para que detenga todo la secuencia en caso de colisin.
42
X Negativo (Ver Fig. 2.7.B): La rutina dura un tiempo de 16 segundos, por lo cual
al comenzar avanza a una velocidad de -200 mm/s en sentido al eje X negativo
por un tiempo de 8 segundos. Al llegar a los 8 segundos la velocidad cambia a 200
mm/s lo que lleva a cambiar el sentido del movimiento al eje X positivo por un
tiempo de 8 segundos que es cuando acaba la rutina y la salida A da comienzo a
la siguiente. Es importante mencionar que el Bumper debe ser conectado a la
salida B para que detenga todo la secuencia en caso de colisin.
Y negativo (Ver Fig. 2.7.C): La rutina dura un tiempo de 16 segundos, por lo cual
al comenzar avanza a una velocidad de -200 mm/s en sentido al eje Y negativo
por un tiempo de 8 segundos. Al llegar a los 8 segundos la velocidad cambia a 200
mm/s lo que lleva a cambiar el sentido del movimiento al eje Y positivo por un
tiempo de 8 segundos que es cuando acaba la rutina y la salida A da comienzo a
la siguiente. Es importante mencionar que el Bumper debe ser conectado a la
salida B para que detenga todo la secuencia en caso de colisin.
43
X Positivo (Ver Fig. 2.7.D): La rutina dura un tiempo de 16 segundos, por lo cual
al comenzar avanza a una velocidad de 200 mm/s en sentido al eje X positivo por
un tiempo de 8 segundos. Al llegar a los 8 segundos la velocidad cambia a -200
mm/s lo que lleva a cambiar el sentido del movimiento al eje X negativo por un
tiempo de 8 segundos que es cuando acaba la rutina y la salida A da comienzo a
la siguiente. Es importante mencionar que el Bumper debe ser conectado a la
salida B para que detenga todo la secuencia en caso de colisin.
La secuencia (Ver Fig. 2.7.E): con estas rutinas se crea la secuencia Cruz.
44
b) Movimiento en forma de cruz sin secuencia:
Es posible crear un movimiento en forma de cruz a travs del control de
tiempo, ya que se controlan las velocidades y direcciones de movimiento, con lo cual es
posible realizar el mismo movimiento pero en una forma un poco diferente optimizando el
movimiento y la cantidad de rutinas utilizadas a solo una.
El movimiento inicial es al eje y positivo, despus va al eje Y negativo sin
pausar en el centro para luego dirigirse al centro de movimiento, y dirigirse al eje X
negativo e irse al eje X positivo y luego al centro de movimiento (Ver Fig. 2.7.F).
45
c) Contador de Impactos:
Cuenta los impactos en la banda protectora y por cada uno realiza una rutina
diferente. Comenzando por un giro en 90, formar un rectngulo con su movimiento y
luego avanzar y detenerse despus de un tiempo predeterminado. Este tipo de contador
permite asignar diferentes rutinas segn la cantidad de impactos contabilizados, con la
limitante de la cantidad mxima de entradas en el selector.
Captulo III
Control de posicin y
movimiento
46
47
Captulo III Control de posicin y movimiento.
En este captulo se analizarn las diferentes opciones de control de posicin y
movimiento. Utilizando diferentes rutinas, combinaciones de bloques y variados ejemplos
de control.
3.1 Control de Posicin y Recorridos por Odometra.
En lo que concierne al control de posicin se utilizar una funcin especfica del
software como es la Odometra (viene de hodos "trayecto" y metrn "medida"), es la
estimacin de la posicin de vehculos durante la navegacin, para una explicacin ms
detallada ver Anexo 2- Bloque de Odometra.
Es importante mencionar que cada rutina basada en el sistema de Odometra del
equipo, demuestra una gran exactitud basada en milmetros, solo siendo limitada por
errores dados constantes como el suelo, la inclinacin del terreno, patinaje de las ruedas,
sobre aceleracin, derrapes, otros elementos externos que pueden encontrarse en su
camino y por ltimo las grandes distancias. Estos errores se pueden clasificar en errores
sistemticos (Relacionados directamente al equipo) y los errores no sistemticos
(relacionados al terreno donde el equipo fue utilizado y condiciones externas).
Dentro de estos dos tipos de errores hay un error que se mencionara brevemente
por su importancia, como es el uso de grandes distancias en el movimiento. Ya que al
trabajar con grandes distancias aumenta el llamado Elipse de error caracterstica [4],
que se produce en cada medicin de posicin y que indica la regin de incertidumbre,
para la actual posicin del robot. Por lo cual para no aumentar mucho este Elipse de
error se recomienda crear rutinas con distancias limitadas y menores a 1 o 3 metros.
El software puede controlar la posicin del robot en forma remota en un entorno
grafico usando una combinacin de varios bloques de funcin. Por lo cual se utilizan los
siguientes bloques y con sus respectivas caractersticas:
Odometra: Calcula el recorrido del robot en funcin de cada unidad de tiempo y
segn la velocidad de giro de las ruedas. Se suman los recorridos (muy pequeos)
en cada una de las unidades de tiempo, de manera que se obtiene la posicin
actual en funcin del punto de partida.
48
Indicador de Posicin: Muestra la posicin de dos robots en un mapa
bidimensional. Este bloque funcional puede utilizarse para la visualizacin de las
posiciones de robots y para definir posiciones mediante interaccin con el usuario.
Buscador de recorrido: Calcula la velocidad y la velocidad angular en funcin de
una posicin nominal y una posicin real, de modo que Robotino avanza desde la
posicin real hacia la posicin nominal.
ii.
49
La rutina aqu propuesta sigue el siguiente orden, primero comienza por el bloque
de Odometra que calcula la posicin inicial con respecto a las nuevas posiciones, para
luego enviar esta posicin al bloque Indicador de Posicin, que nos permite visualizar la
posicin actual del Robotino, a travs del icono del robot de color blanco y controlar la
posicin de este con el icono del robot de color azul (Ver Fig.3.1.1.B). En la ventana de
dilogo siempre el icono del robot de color azul esta sobrepuesto al de color blanco, y el
sacado muestra la posicin de la cmara y nos permite controlar el giro de Robotino, los
mrgenes de la ventana estn en un eje de dos dimensiones con centro en la posicin de
inicio de la rutina, cada eje esta en milmetros (mm.) en una escala de 500 mm.
50
51
3.1.2.- Odometra basado en control secuencial:
En esta seccin analizaremos la Odometra que controla el movimiento de
Robotino a travs de una secuencia, que le permite determinar la direccin y la distancia
que recorrer en cada una de estas. Este tipo de rutinas son una adaptacin a la
Odometra basada por entorno grfico, por lo cual siguen el mismo esquema al utilizar
como base los tres bloques de funcin antes mencionados. Primero se utiliza el bloque de
Odometra para calcula la posicin inicial y las nuevas posiciones, envindole la
informacin de posicin actual al bloque Indicar de Posicin, que en este caso no se
utilizar como un entorno grfico, si no que se controlar el movimiento de Robotino a
travs de contantes externas. Para lo cual utilizaremos la siguiente rutina que es variable
al recorrido que deseemos (Ver Fig. 3.1.2.A). Donde el recorrido es el siguiente (Ver Fig.
3.1.2.B).
52
A travs de las entradas externas del bloque Indicar de posicin es posible dar la
posicin que queremos que se encuentre nuestro robot. Por lo cual se cre una secuencia
de posiciones en las que el robot debe encontrarse en relacin al punto inicial y al tiempo,
haciendo posible el recorrido visto en la figura anterior.
Para los movimientos de esta rutina que son: Primero el avanzar 2 metros hacia
delante (eje X del robot), Segundo el moverse 1,5 metros hacia la izquierda (eje Y del
robot) y Tercero el moverse 2,5 metros con un Angulo de 45 grados a la derecha para
encontrarme a 4 metros del punto de partida (Ver fig.3.1.2.B). Lo cual se logra ingresando
al mismo tiempo que avance hacia adelante 2 m. y 1.5 m. a la derecha de la posicin
actual, creando un triangulo cuya hipotenusa es la distancia 2.5 m. que ser recorrida.
Por lo cual en la teora se ingresar el valor distancia en la rutina de Odometra en
que debera moverse, contando con el leve error de posicin generado por los errores
sistemticos y no sistemticos mencionados al inicio del captulo.
A) Primer movimiento:
En este primer movimiento de avance de 2 metros hacia adelante, se debe
ingresar la distancia a realizar en la rutina y el programa debera realizarlo sin
problemas, pero en la practica la distancias son muy diferentes a la teora, como
se observan en el Cuadro 3.1.2.A donde se puede apreciar que al ingresar 2
metros, la distancia real de avance es alrededor de 176 a 188 centmetros. de
avance. Por lo cual se ingresaron diferentes valores demostrando que la mejor
distancia para que llegue a los dos metros es de 2.1 metros en la constante de
distancia.
Direccin
Distancia Ingresada /mm
Distancia Real /cm
Adelante (eje X)
1000
92-90-88
Adelante
2000
176-186-188-178-184
Adelante
2050
194-192-193
Adelante
2100
201-200-200
Adelante
2150
207-208-206
Adelante
2200
208-210-211
Cuadro 3.1.2.A. Prueba de Distancias.
53
B) Segundo movimiento:
En el segundo movimiento de 1,5 metros hacia la izquierda, se produce el
mismo problema que en el primer movimiento en donde la distancia en teora es
un poco diferentes a la real, como se observan en el Cuadro 3.1.2.B donde se
puede apreciar que al ingresar 1,5 metros, la distancia real a la izquierda es
alrededor de 146 a 148 (cm), El eje Y demuestra mejores resultados de
movimiento que el eje X del robot. Se decidi ingresar diferentes valores para
mejor la distancia y llegue a los 1,5 metros con algunos milmetros de diferencia.
Direccin
Izquierda
Izquierda
Izquierda
Izquierda
54
metros y en el eje Y es de 148 (cm) de 1.5 metros. Demostrando ser los mejores
valores de posicin.
Los valores de las pruebas con valores de distancia diferentes a 200 y 1500 (mm),
son la media de 3 pruebas en condiciones ptimas, sin contar las pruebas con derrapes
significativo o problemas de conectividad que provocaban problemas de funcionamiento y
desviaciones.
Es importante dar a conocer que lo que se realiza es una suma de posiciones, ya
que el robot calcula todas los posiciones en referencia de su punto inicial, por lo que se
debe tomar en cuenta que el elige el mejor y ms eficiente desplazamiento en relacin a
la posicin que se le indique debe ir el robot. Lo anterior se puede demostrar a travs del
siguiente ejemplo que demuestra lo importante que es lo forma en que se ingresan las
variables de posicin.
55
Rutina de ejemplo:
En esta rutina de ejemplo (Ver Fig. 3.1.2.D) el robot debera seguir el mismo
movimiento que la rutina de la figura anterior (Ver Fig. 3.1.2.A), pero a diferencia de la
anterior aqu los datos son ingresados en secuencia sin sumar las posiciones anteriores a
la siguiente posicin que adopta el robot, por lo cual el robot se mover en funcin de la
posicin ingresada en relacin a la posicin inicial y no a la posicin real. Provocando que
el robot regrese en su recorrido hasta encontrarse en la distancia indicada pero en
relacin al punto inicial (Ver Fig. 3.1.2.E).
56
3.2.- Control de recorrido controlado por tiempo
Existe otro tipo de control bastante bsico, muy usado en robot con una baja
capacidad y en este tipo de rutinas el tiempo es la variable de control. Ya que se calcula la
distancia que debe recorrer el robot en base a la velocidad de movimiento y el tiempo, a
travs de la siguiente ecuacin (Ver Ecuacin. 3.2.A) [5]:
57
A lo cual se explicar brevemente como se programaron los movimientos:
i)
2000
20
100
58
1500
15
100
Fig. 3.2.D. Rutina de recorrido de 1,5 metros en el eje Y controlado por tiempo.
Como se explic antes en la prctica, los valores de distancia no corresponden
a la realidad, ya que distancia real recorrida a los 15 segundos fue de 115 a 133
(cm.) y no de 1,5 metros, Por lo cual se aumento el tiempo dos segundos ms,
logrando que llega a distancias de 144 a 147 (cm) a los 17 segundos a una
velocidad de 100 [mm/s]. Logrando adems una distancia 146 a 148 metros, a los
8 segundos a una velocidad de 200 [mm/s].
El siguiente cuadro (Cuadro 3.2.B.) demuestra que los rangos de distancia,
incluyendo derrapes y momentos de no funcionamiento del robot.
59
Para el tercer movimiento del robot hacia delante, con una inclinacin de 45 a
la derecha con una distancia de 2.5 metros, ya que no es posible asignar una
velocidad directamente por su inclinacin, se deben ingresar dos velocidades
una en el eje X (Vx) y una en el eje -Y (Vy), que nos permita crear ese
movimiento. Por lo cual, para calcular esas velocidades utilizaremos la
Ecuacin. 3.2.B. y la Ecuacin 3.2.C. para crear una igualdad basado en que
ambas velocidades poseen el mismo tiempo de funcionamiento, llegando a la
siguiente ecuacin:
1
2
1 2
Ecuacin 3.2.D. Igualdad en tiempo.
Donde:
60
2000 1500
1
100
Ecuacin 3.2.E.
1 133, 3 [mm/s]
Ecuacin 3.2.F.
Con el valor de V1 obtenido de la Ecuacin 3.2.F, se sabe que las
velocidades son V1 (Vx) 133 [mm/s] y V2 (Vy) = - 100 [mm/s], en una rutina que
posee un tiempo de duracin de 15 segundos.
61
Velocidades eje X e Y
Avance
Adelante Derecha
Tiempo
/mm/seg.
/cm.
/cm.
/cm
/cm
Vx= 133 y Vy= -100
269
210
168
18
Vx= 133 y Vy= -100
251
195
152
17
Vx= 133 y Vy= -100
280
220
170
19
Vx= 133 y Vy= -100
237
189
137
16
Cuadro 3.2.C. Prueba de Tiempo (Tercer Movimiento).
Si se prueban diferentes combinaciones de velocidad se llegan a los
siguientes valores (Ver Cuadro 3.2.D.).
Velocidades eje X e Y
Distancias Tiempo Distancias reales
/mm/seg.
/cm.
/cm.
/cm.
Vx= 133 y Vy= -75
2,5
20
204-205-202
Vx= 133 y Vy=-100
2,5
15
216-219-223
Vx= 266 y Vy=-200
2.5
7,5
235-232-233
Vx= 133 y Vy= -75
2.5
17
251-251-250
Vx= 266 y Vy=-200
2.5
8.5
265-157-266
Cuadro 3.2.D. Prueba de Velocidad (Tercer Movimiento).
Despus de analizar estos datos se llego a la conclusin que las
velocidades de Vx= 133 y Vy= -100 [mm/s], nos entrega la mejor relacin de
distancia y posicin que pudimos obtener despus de una serie de pruebas.
Logrando llegar a una valor de distancias en el eje X de 195 (cm) de 2 (m), en el
eje Y de 152 (cm) de 1,5 (m) y en avance de 251 (cm) de 2,5 (m). Presentando
diferencias aceptables de distancias, que demuestran un buen resultado en la
bsqueda de correccin de valores de posicin.
En esta parte, se lleg a varias conclusiones en cuanto a los errores de clculo en
el software, que son asociados directamente a problemas como la conexin del PC con el
robot, ya que el robot deja de funcionar si se detiene la conexin, se pierde o presenta
problemas de respuesta tarda, creando errores en los resultados. Adems de varios
problemas asignados a fallos en los motores como: Desvos en sus recorridos, problemas
y errores de giros, detenciones y arranques con derrapes.
62
3.3.- Ejemplos de otros sistemas de control de recorrido.
En esta seccin se harn un anlisis matemtico para poder saber las distancias
recorridas a travs de mtodo de diferentes a los antes presentados.
3.3.1.- Ejemplos de control de recorrido por suma de tramos.
Se trabajar con un mtodo que nos permite calcular su recorrido, a travs de las
velocidades reales en los motores que son entregadas por la primera salida del bloque de
funcin de cada motor, las cuales son utilizadas de la siguiente forma:
En Primer lugar la velocidad real [rpm] de las salidas de los bloques de cada
motor, se ingresan al bloque omnidireccional por las entradas externas que son utilizadas
para asignar una velocidad real [rpm] a cada motor. Al hacer esto se habilitan las salidas
Vx [mm/s], Vy [mm/s] y Phi [grados/s], que nos entregan las velocidades reales en el eje
X e Y y el giro. Estas salidas se multiplican por una constante de tiempo, que nos da el
valor de recorrido por un tramo, que puede ser explicada por la ecuacin 3.3.1.A, donde
el valor de tiempo de 0.023 [ms] es entregado por los manuales del equipo.
Por lo cual Robotino avanza un tramo de:
0,023
Ecuacin 3.3.1.A.
Al saber cunto es el recorrido por tramo por unidad de tiempo, y sumarlos a
travs de un bucle, para luego utilizar convertir esa suma de tramos en cada eje para
formar un vector, cuya longitud es la distancia real recorrida. Todo este proceso, fue
introducido en la siguiente rutina que tiene como utilidad recorrer 1 metro de distancia. La
siguiente figura muestra la rutina:
63
64
3.3.2.- Ejemplos de control de recorrido por suma de incrementos.
En este tipo de ejemplos, la constante que utilizaremos para calcular la distancia
son los incrementos, ya nos da una relacin directa entre los incrementos y el recorrido a
travs del dimetro de las ruedas y el giro.
Para calcular la relacin entre incrementos y recorrido, se har uso de los
siguientes datos y ecuaciones:
i)
65
En base a lo anterior se pudo llegar a la siguiente ecuacin (Ecuacin 3.3.2.A.).
S= W x sin (60)
Ecuacin 3.3.2.A. Tramo de recorrido por las ruedas (S).
(S)
La siguiente ecuacin se obtuvo del ngulo de 60 e n el punto A (Ver Fig.
3.3.2.B), ya que a travs del ngulo es posible calcular el tramo utilizando el
Teorema de Pitgoras [6] como se puede observar en la ecuacin
ecuaci
(Ecuacin
3.3.2.B).
66
ii)
por lo cual se har uso de la Ecuacin para calcular la cantidad de giros por tramo
(S) (Ver Ecuacin 3.3.2.D), al utilizar en esta explicacin un movimiento en el eje
X solo se estn utilizando dos motores por lo cual la relacin en el reductor es de
1:16, y un giro del motor representa 2048 incrementos.
Al tener claro lo anterior es posible hacer uso de la ecuacin 3.3.2.D para
calcular la cantidad de incrementos para las ruedas en relacin con el tramo (S).
#
#
( & sin 60
1000 & sin 60
3,446
80 80-
#
67
Para que Robotino pueda ser controlado, por este mtodo se necesitan rutinas que
controlen su movimiento en funcin de los incrementos, como por ejemplo de esta rutina
que usa los datos antes adquiridos para que se recorra una distancia de 1 metro en el eje
X. (Ver Fig. 3.3.2.C)
68
.Los problemas ms bsicos de todos los tipos de control de movimiento son:
Las prdidas de tiempo en los clculos.
La prdida de tiempo e informacin en la transmisin de datos.
Las prdidas por friccin, dependientes del suelo.
Los motores DC no se pueden detener de inmediato por tener ciertos
puntos de encastre fijos.
Las altas velocidades necesitan ms tiempo para frenar que velocidades
bajas, crean imprecisiones en los clculos.
Captulo IV
Sensores especficos
69
70
Captulo IV - Sensores Especficos.
4.1.- Sensores Fotoelctricos.
Un sensor fotoelctrico es un dispositivo usado para deteccin de posicin. Los
sensores fotoelctricos usan un rayo de luz modulado que es interrumpido o reflejado por
un objeto. El control consiste de un emisor (fuente de luz), un receptor para detectar la luz
emitida y la electrnica asociada que evalu y amplifique la seal detectada que hace que
la salida del interruptor fotoelctrico cambie de estado [7].
La luz modulada aumenta la gama de deteccin mientras que reduce el efecto de
la luz ambiente. La frecuencia modulada se genera a una frecuencia especifica entre 5 y
30 Khz. El sensor puede distinguir la luz modulada de la luz ambiente. Las fuentes de luz
usadas por estos extiende el espectro de luz del verde visible al infrarrojo invisible. Como
fuente se utiliza un diodo emisor.
El sensor utilizado en Robotino es el Sensor Infrarrojo tipo SHARP que se
analizara a continuacin.
4.1.1.- Principio de funcionamiento.
Los sensores IR Sharp, utilizan para la ubicacin de objetos, un Sensor Detector
de Posicin (PSD) lineal para determinar la distancia o la presencia de los objetos dentro
de su campo de visin. Bsicamente su modo de funcionamiento consiste en la emisin
de un pulso de luz infrarroja, que se transmite a travs de su campo de visn que se
refleja contra un objeto o que por el contrario no lo hace. Si no encuentra ningn
obstculo, el haz de luz no refleja y en la lectura que se hace indica que no hay ningn
obstculo. En el caso de encontrar un obstculo el haz de luz infrarroja se reflecta y crea
un triangulo formado por el emisor, el punto de reflexin (obstculo) y el detector.
La informacin de la distancia se extrae midiendo el ngulo recibido. Si el ngulo
es grande, entonces el objeto est cerca, por que el triangulo es ancho. Si el ngulo es
pequeo, entonces el objeto est lejos, por que el triangulo formado es estrecho. Por lo
tanto, si el ngulo es pequeo, quiere decir que el objeto est lejos, porque el triangulo es
largo y delgado (Ver Fig. 4.1.1.A).
71
72
4.1.2.- Construccin.
La medida de distancia por infrarrojos se indica mediante una salida analgica. La
tensin de salida vara de forma no lineal cuando se detecta un objeto en una distancia
entre 1,9 cm y 40 cm. La salida est disponible de forma continua y su valor es
actualizado cada 32 ms. Al contar con esta salida puede ser usada en un circuito
analgico o conectarlo a un circuito de conversin digital a un microprocesador.
.
Fig. 4.1.2.A Estructura interna.
El sensor se comunica con la unidad central, a travs de una lnea de salida.
Adems, cuenta con su respectiva alimentacin unido en un conector de 3 pines, y utiliza
una tensin de funcionamiento de 5V. y una temperatura de trabajo entre -10C y 60C.
73
4.1.3.- Ejemplo.
a) Seguidor de Paredes.
Para realizar esta rutina, se implemento una secuencia de tal manera que
Robotino, pudiese tomar decisiones autnomas, al encontrarse en el vacio (lugar sin
paredes, hasta encontrar alguna) y el movimiento de seguir una pared manteniendo la
cmara siempre hacia delante, como tambin manteniendo una distancia pre terminada
del muro.
74
75
El sensor 8, entrega el valor que debe estar entre 0.5 y 2 Volt (entre 10 y 20 Cm.),
si est afuera de ese rango, se aleja o se acerca para obtener ese valor. De igual forma
los sensores frontales 1 y 2, si estn menores de 2 y 2.4 Volt (distancia mayor a 7 Cm.)
avanza, as se obtiene el movimiento en 45 grados hasta llegar a una pared.
76
De esta manera se mantiene la cmara siempre enfocada hacia delante, adems
como tenemos varias salidas a solicitar, se integro un demultiplexor para evitar que la
rotacin y el movimiento de costado se realicen en conjunto.
77
78
4.2.- Sensor de Reflexin directa.
En estos sensores, el emisor y el receptor estn incluidos en un mismo cuerpo. El
haz de luz emitido es reflejado por la pieza a detectar y vuelve al receptor. A continuacin,
se evala la intensidad de la luz reflejada. La distancia de deteccin puede regularse
modificando la sensibilidad del receptor (con un potencimetro o Teach-In).
Los sensores de reflexin directa son econmicos y pueden instalarse de modo
sencillo. Sin embargo, estos sensores no son apropiados para determinadas aplicaciones
como, por ejemplo, objetos que se encuentran delante de un fondo muy refletivo. Adems,
los objetos que tienen superficies irregulares (por su material o color) se detectan a
diferentes distancias debido a las diferencias en la reflexin.
79
Para aumentar la precisin y disminuir la zona muerta para la deteccin de
objetos, se utiliza una extensin de polmero (fibra ptica) (Ver Fig.4.2.1.B), que debido a
sus caractersticas (bajas perdidas, flexibilidad y pequeo tamao) permiten la
introduccin en lugares en donde debera colocar una fotoclula, pero por su tamao se
hace imposible (Fig.4.2.1.C).
80
4.2.3.- Construccin.
81
Entrada digital 0: Representa el sensor incorporado al lado derecho.
Entrada digital 1: Representa el sensor incorporado al lado izquierdo.
Si detecta algo el sensor derecho, activa la salida A. a su vez si el sensor izquierdo
detecta enva a la salida B, y finalmente si en conjunto ambos sensores no registran
actividad, direcciona el programa a la salida C.
En el caso que ambos sensores marcaran presencia de objetos, no se direcciona y
simplemente el robot se queda inmvil en el punto.
82
83
4.3.- Sensor Inductivo.
4.3.1.- Principio de funcionamiento.
Un sensor inductivo corresponde a un tipo de sensor de proximidad utilizado para
detectar la presencia de materiales metlicos conductores y que ignora la presencia de
materiales no metlicos. Este sensor utiliza el principio de induccin a travs de una
bobina incorporada la cual genera un campo magntico que detecta el objeto en cuestin.
Cuando un metal conductor o placa metlica se mueven dentro de un campo
magntico, sobre la placa o el metal se generan unas corrientes elctricas conocidas
como corrientes de Eddy o corrientes de Foucault [8]. Se produce cuando un conductor
atraviesa un campo magntico variable, o viceversa. El movimiento relativo causa una
circulacin de electrones, o corriente inducida dentro del conductor. Estas corrientes
circulares de Foucault crean electroimanes con campos magnticos que se oponen al
efecto del campo magntico aplicado Cuanto ms fuerte sea el campo magntico
aplicado, o mayor la conductividad del conductor, o mayor la velocidad relativa de
movimiento, mayores sern las corrientes de Foucault y los campos opositores
generados.
84
4.3.2.- Construccin.
85
4.3.3.- Ejemplo.
a) Deteccin de metales e incremento de velocidad.
La rutina a implementar es a travs del sensor inductivo un detector de metales y
asignarle un incremento moderado de velocidad de tal forma que en el ltimo tramo se
detenga y termine la ejecucin del programa.
Capitulo V
Visin Artificial
86
87
Capitulo V - Visin Artificial.
En este captulo, se analizarn las diferentes funciones de Robotino en el rea de
la Visin Artificial. Dando a conocer las diferentes modalidades de la cmara, la deteccin
de segmentos con un determinado color y la deteccin de lneas en un color negro.
5.1 Webcam.
La cmara que utiliza el equipo es una webcam del tipo USB, para este
componente existe una completa explicacin de sus caractersticas tcnicas en el Anexo
1 (Cuadro 1.5), y sobre su funcionamiento y modalidades en el Anexo 2 (A.2.8.1). Al tener
esa informacin de antemano, se dar comienzo al anlisis de los diferentes mtodos de
reconocimiento de lneas, segmentos y formas, a travs del software. Adems de dar a
conocer varios aspectos importantes, como son el alcance de estos mtodos, sus
falencias y las condiciones ptimas para su uso.
5.2.- Deteccin de segmentos.
La deteccin de un segmento de un color especfico en Robotino, nos permite
localizar objetivos con un grado bastante bueno de exactitud, ya que trabaja con la
recoleccin de una muestra de color del segmento. Al poseer un tono de color especfico
de una seccin del segmento, el programa nos entregar la posicin en la imagen de la
cmara, adems del rea en pixeles de la seccin del segmento encontrada.
Para realizar este proceso la cmara usara tres bloques de funcin:
i.
ii.
iii.
88
89
3.- Cuando se desee seleccionar y se eligi la forma, se debe arrastrar el mouse sobre el
color.
4.- Para guardar el segmento seleccionado se debe presionar el smbolo
en el bloque.
5.- Se pueden agregar uno o ms segmentos siguiendo nuevamente los pasos anteriores.
90
91
Al poseer el segmento filtrado, se pasa al siguiente paso que es enviarlo al bloque
de funcin Extractor de segmentos, el cual identificar el segmento en la imagen de la
cmara.
La conexin de los bloques para la deteccin de segmentos es la siguiente:
92
93
94
95
3.- Enfoca el Segmento.
Esta rutina tiene como fin lograr que el segmento se encuentre en el centro de la
imagen entregada por la cmara, se logra girando al robot de derecha a izquierda para
lograr una mejor posicin de visin.
96
5.3.- Deteccin de Lneas.
La deteccin de lneas es una caracterstica muy especial en Robotino, ya es muy
similar a la deteccin de segmentos en el uso de la cmara y los valores de posicin que
entrega el bloque de funcin. Esta deteccin se logra a travs del reconocimiento de la
diferencia de colores en relieves, lo cual le permite distinguir con facilidad una lnea de un
color negro si esta sobrepuesta sobre una superficie de un color claro.
Para esta accin se utiliza la combinacin del bloque Cmara que entrega la
imagen a procesar y el bloque de funcin Detector de lneas el cual procesar la imagen
para identificar la lnea y encontrar su posicin en la imagen (Ver Fig. 5.3.A.).
97
98
En la modalidad YCbCr:
99
lnea en funcin del eje X, con valores en referencia a pixeles con un valor del eje X
positivo y negativo mximo de 120 si se trabaja con una resolucin de 320x240 y que se
detalla en la Fig.5.3.I (B).
100
101
Captulo VI
Aplicaciones
102
103
Captulo VI Aplicaciones.
6.1.- Jugador de Hockey.
En la actualidad la empresa FESTO S.A, a travs de su divisin didctica, se
encuentra en desarrollo de posibles competencias a nivel internacional, para que
universidades interesadas en la prctica de la robtica, tenga un incentivo al objetivo de la
enseanza a travs de demostrar sus cualidades y su nivel de aprendizaje, utilizando el
pretexto de un concurso, en este caso, el hockey [10].
Basndose en las reglas de juego oficiales, pero adaptadas a la utilizacin de
robots en este caso Robotino, para el juego, se pretende en esta aplicacin, crear rutinas
y estrategias de ataque, como para defensa en la faena de juego colectivo, pero debidos
a la imposibilidad de implementar un equipo completo (3 unidades), se entregaran las
directrices hacia la conformacin, en caso futurista, para el diseo de juego colaborativo
para la participacin en competencias de esta ndole.
Jugadores y equipos
Equipos
Campo de juego
Sanciones
Normas complementarias
Cada partido ser controlado por un rbitro, quien tendr plena autoridad para hacer
cumplir las normas del juego en relacin con el partido. Un rbitro puede tener rbitros
asistentes.
El tiempo de juego regular de un partido se divide en tres tercios, de 10 minutos.
Despus de cada tercio hay una pausa de 5 minutos. El tiempo de juego se detendr al
final del tercer tiempo o debido a una irregularidad sealada por el rbitro. El tiempo de
104
reproduccin debe mantenerse si el rbitro vuelve a iniciarse el juego. As, el tiempo real
de un juego puede una duracin de ms de 40 minutos.
Uno de los objetivos slo ser reconocido si se cumple las siguientes:
El disco ha rebasado completamente la lnea de meta y se encuentra dentro del rea
de portera.
El ltimo jugador que ha tocado el disco debe estar en la zona defensiva del objetivo
correspondiente.
El juego se inici
al principio de cada tercio
o despus de una interrupcin debido a una irregularidad
o despus de un gol
El inicio del juego se llevar a cabo en el punto de saque-off (el punto central de la
campo de juego) al principio de cada tercio o despus de un gol. De lo contrario el rbitro
tiene estas opciones para comenzar:
El rbitro lanza el disco entre los jugadores.
El rbitro coloca el disco en uno de los puntos de-bully. Entonces slo un jugador de
cada equipo se le permite estar cerca para coger el disco.
Fuera de juego:
Si un jugador atacante sin provocar que el disco est en el rea de defensa del
105
6.1.2.- Campo de Juego.
El campo de juego se distribuye de la siguiente forma.
106
6.1.3.- Estrategias de ataque.
6.1.3.1.- Inicio del Juego.
Al iniciar el juego, segn reglamento el jugador que inicia el juego tiene en su
tenaza (accesorio Robotino) el disco y tiene la primera opcin de ataque al arco contrario.
De esta forma, al tener esta opcin de ataque se implementa la rutina de ataque.
107
3. El lanzamiento. El disco de desplaza de manera que Robotino lo golpee en la
direccin correcta, adems, de que el golpe se realice en forma rpida. Para ello
se ajusta el equipo, para que golpee en forma lateral con la tenaza, con un giro
sobre su propio eje.
4. Termino de la ejecucin. Al terminar el lanzamiento, si este es efectivo, se
detiene y se posiciona en forma manual al punto de inicio (mitad de la cancha), y
se elige la prxima estrategia, en forma manual.
5. Si el lanzamiento es fallido, realiza un escaneo de su nueva posicin, detecta el
arco contrario, y retrocese hasta llegar hasta la lnea de defensa del oponente y
realiza una estrategia de defensa (ms adelante se mostrara esta tcnica).
108
109
6.1.3.2.- Inicio del Juego, con deslizamiento lateral.
Se la misma forma que realiza el ataque frontal, se integra una nueva variante en
el hecho que en el arco exista un jugador implementado como arquero.
1. Movimiento lateral. Teniendo la opcin de ataque, el equipo se mueve en un
ngulo de 45, manteniendo la direccin de la cmar a en forma frontal,
aprovechando el movimiento omnidireccional del equipo, hasta detectar la
presencia de la lnea de defensa del oponente.
2. Entrada zona de defensa equipo contrario. Al actuar el sensor inductivo,
entrega el dato que ingreso a la zona de defensa del equipo, sin embargo, la
posicin para realizar el avance hacia el arco no es la mas efectiva, de tal manera
que se activa la cmara, realiza un escaneo para encontrar el arco, avanza hacia
el arco y se prepara para el lanzamiento.
110
5. Si el lanzamiento es fallido, realiza un escaneo de su nueva posicin, detecta el
arco contrario, y retrocese hasta llegar hasta la lnea de defensa del oponente y
realiza una estrategia de defensa (ms adelante se mostrara esta tcnica).
111
112
6.1.3.2.- Inicio del Juego, con ataque entre contendores.
Hasta ahora solo se han generado rutinas, con oponentes inmviles, sin embargo
esto en una competencia real, no existe, por lo cual, ahora se integrar un sistema de
esquivar obstculos y avance hacia el arco contrario, para evitar el dao del equipo, como
los posibles quites de disco por parte de los jugadores del equipo contrario.
1. Inicio del juego. Al dar el rbitro, inicio al juego, Robotino inicia su ataque
manteniendo siempre un movimiento de avance hacia el arco, sin embargo
sus sensores frontales (exceptuando el frontal directo, sensor 1, obstruido por
el disco, adems de ser un indicador de tenencia de este), estiman la
ubicacin de los obstculos, para poder realizar maniobras de deslizamiento.
Obstculo izquierdo. Para la deteccin de oponentes al costado frontalizquierdo, se tiene a los sensores 3 -2, para la presencia de obstculos a una
distancia menor a 10 Cm. Conjuntamente con el avance al arco contrario,
113
realiza un deslizamiento a la derecha, mientras detecte presencia en los
sensores. Sin detener el avance.
114
6.1.4.- Estrategias de defensa
Despus de haber analizado varias estrategias de ataque teniendo la preferencia
de inicio, ahora se creara las posibles rutinas para la defensa del arco propio, ya no
teniendo el disco en su posicin.
6.1.4.1.- Defensa a cancha completa.
La defensa a realizar a cancha completa, consiste en el recorrido a cancha
completa de Robotino en busca de recuperar el disco, ya sea una vez hecho el
lanzamiento o bien que haya perdido el disco en una ofensiva.
1. Perdida del disco. Al perder el disco se realiza una rotacin sobre su propio eje
en busca del disco. Al tener el disco un color particular en el escenario (rojo), se
puede distinguir debido al color sobresaliente. Utilizando la cmara segmenta la
imagen y detecta la imagen del disco en la cancha.
2. Avanza hacia el disco. Una vez detectado el segmento de imagen, realiza un
acercamiento al disco de juego a travs de la utilizacin de la cmara, utilizando
un rango de pixeles acotado para el avance y para el desplazamiento lateral, de
esta forma, acotamos la imagen encontrada para comandar el movimiento de la
unidad.
115
116
6.1.4.1.- Modo Arquero.
Una de los requerimientos, en especial para la ejecucin de penales, es el uso de
un jugador de arquero para la recepcin del tiro o el entorpecimiento de este.
1. Movimiento en el rea. En el hockey al igual que el futbol, existe una area
exclusiva para el movimiento del arquero. Para ello, se controla el movimiento
en secuencia laterales para cubrir el mayor espacio del arco.
2. Movimiento en un penal. Desde los punto establecidos, se realiza el tiro por
parte del equipo contrario, se activa la cmara, segmenta la imagen en busca
del disco y siempre la cmara da al disco, con esto se procura tener el disco
siempre a la vista para una posible recuperacin para un ataque.
117
6.2.- Bodegaje Automatizado.
Una de las posibles aplicaciones que pudiesen implementar, es un sistema de
bodegaje automatizado con un vehculo autnomo sin conductor, para se establecieron
algunos requerimientos para un funcionamiento, no optimo, pero bueno.
Para ello se diseo el siguiente escenario basado en una sala con 3 estantes.
118
6.2.1.- Entrada de datos.
La entrada de datos pueden ser variables internas o externas al programa
Robotino View, en el Captulo II (2.6.1) se hace referencia a estas entradas y se explica
su funcionamiento, tambin en el Anexo 2 (A.2.10) se identifican las caractersticas de sus
bloques.
Para la aplicacin se utilizarn las entradas de datos de tipo externas para dar a
conocer una variable de posicin a Robotino, indicndole el lugar donde debe dejar el
paquete. Esto es posible ya el programa lee un archivo de texto dentro del PC que
contiene y ejecuta Robotino View, este archivo de texto posee un cdigo nico de
ubicacin dentro de la sala, que dar a las instrucciones a la secuencia de que
movimiento debe realizar.
6.2.2.- Entrada a la sala.
La entrada a sala la realiza con avance, hasta encontrar la primera huincha
metlica, en este punto se detiene y destina el estante asignado segn la entrada de
datos realizada.
6.2.3.- Ubicacin de estantes.
Estando dentro de la sala, antes de realizar deslizamiento horizontal, efecta una
maniobra de correccin de ubicacin, a travs de sus sensores laterales para reducir
posibles recorridos errneos o bien, alguna mala maniobra antes de moverse. Lo realiza
realizando una resta entre los sensores, si esta substraccin es mayor a 0.09 Volt realiza
un giro hasta que ese valor lo ms cercano o igual a 0.09 Volt.
Una vez hecha este acomodo del vehculo autnomo, se direcciona en forma
horizontal al destino de algunos de los 3 estantes, presentes delimitados e identificados
por huinchas metlicas a la entrada de estos, de manera que se reduzcan las opciones de
error y facilitar la navegacin de Robotino al interior de la sala.
119
120
Estas secuencias las realizan con tiempo para evitar una confusin entre
sensores, lo nico que realiza el sensado, es la ubicacin frontal con respecto al estante,
para as asegurar su entrada al estante en la posicin correcta.
Captulo VII
Conclusiones y Lneas
de trabajo futuro
121
122
Conclusiones
Inteligencia
123
124
125
Bibliografa
[1] www.festo.com
Pgina web oficial empresa FESTO S.A, accesado el 15.4.2010.
[2] Robotino Manual.
544305 ES/FR, Ralph-Christoph Weber, Festo Didactic GmbH & Co. KG,
73770 Denkendorf, Germany, 2007.
[3] http://es.wikipedia.org/wiki/Recta
Ecuacin de la recta, Euclides, Grecia, 200 A.C, accesado el 20.5.2010.
[4] http://es.wikipedia.org/wiki/Odometr%C3%ADa
Odometra, wiki peda, S/autor, accesado el 27.6.2010.
[5] http://es.wikipedia.org/wiki/Velocidad#Velocidad_en_mec.C3.A1nica_cl.C3.A1sica
Cinemtica, Wiki peda, S/autor, accesado el 10.7.2010.
[6] http://es.wikipedia.org/wiki/Teorema_de_Pit%C3%A1goras
Teorema de Pitgoras, Wiki peda, S/autor, accesado el 15.7.2010.
[7] Chvez C. Antonio, Sensores analgicos utilizados en la Automatizacin
Industrial, Escuela de Ingeniera Elctrica de la Facultad de Ingeniera de la
Universidad de Costa Rica, Costa Rica, Diciembre 2008.
[8] http://es.wikipedia.org/wiki/Corriente_de_Foucault
Ley de Foucault, Wiki peda, Len Foucault, 1851, accesado el 20.6.2010.
[9] Garca M. Gins, Procesamiento Audiovisual, Dpto. de Informtica y Sistemas,
Universidad de Murcia, Espaa, Julio de 2008.
[10] Ulrich Karras, Robotino An Open Learning Mobile Robot System for
Robocup, Festo Didactic, Denkendorf, Germany, Junio 2009.
[11] http://es.wikipedia.org/wiki/Wi-Fi_Protected_Access
Acceso Protegido Wifi, Wiki peda, S/autor, accesado el 1.9.2010.
126
zeynep Yucel, Albert Ali Salah, Cetin Merich, Tekin Merich,Joint Visual
Attention Modeling for Naturally Interacting Robotic Agents, Electrical and
electronics engineering, Bilkent University-Ankara, Turkia. Abril 2007.
Anexos
127
Anexo I
Datos Tcnicos
128
129
Anexo I - Datos tcnicos
En este anexo se incluirn las tablas y figuras de los diferentes componentes
presentados en el Captulo 1. Que pueden ser tiles a fin de entender las caractersticas
fsicas y tcnicas de Robotino.
1.1.- Robotino.
Datos tcnicos Robotino:
130
1.2.- Unidad de Accionamiento.
Datos rendimiento del motor:
131
Datos del Rodillo Omnidireccional:
1.3.- Webcam.
Modulo de la Cmara:
132
1.4.- Sensor Inductivo.
133
1.5.- Interface E/S.
Anexo II
Bloques de funcin
134
135
Anexo II - Bloques de funcin.
En este Anexo se incluirn los bloques de funcin del software incluido en el
paquete de Robotino llamado Robotino View, Estos bloques poseen gran importancia al
ser citados en varios captulos del trabajo de titulacin. Por lo cual se analizarn los
principales tipos de bloques que se encuentran en el software, para simplificar la
bsqueda de un bloque especfico use el software para ver su ubicacin en este anexo y
vea el cuadro ms abajo.
El orden a utilizar en este anexo ser el que muestra el cuadro (Cuadro 2.1):
A.2.1.
A.2.2.
A.2.3.
A.2.4.
A.2.5.
A.2.6.
A.2.7.
A.2.8.
A.2.9.
A.2.10.
A.2.11.
Lgica
Matemtica
Calculo de Vectores
Indicacin
Procesamiento de Imgenes
Generadores
Filtros
Robotino Hardware
Navegacin
Intercambio de Datos
Mando Secuencial
136
Entradas.
Entrada
Reset
Salida.
Salida
Fig. 2.1.1.B
Dentro de la ventana de dilogo:
Seleccin de tipo
Conteo en flanco
ascendente
Conteo en flanco
descendente
Reponer a cero al final
137
A.2.1.3.- Demultiplexor.
El bloque Multiplexor realiza una funcin que nos permite distribuir una seal de
entrada entre ms de 20 salidas conmutables con un mnimo de 2 salidas.
Seleccin
Seal de entrada
Determina la seal de salida que se enva hacia la entrada. Todas las
dems salidas estn en 0.
Si la seleccin es < a la cantidad de salidas, la seal de entrada se enva
hacia A1.
Si la seleccin es < n + 0,5 y > n 0,5, la seal de entrada se enva hacia
An.
Si la seleccin es > a la cantidad de salidas, la seal de entrada se
envahacia la ltima salida.
Salidas.
A1
A2
An
Seal de salida 1.
Seal de salida 2.
Seal de salida n.
Fig. 2.1.3.B
Dentro de la ventana de dilogo:
Salidas
138
A.2.1.4.- Multiplexor.
Este bloque Multiplexor tiene la funcin de crear un enlace entre una salida y una
entrada seleccionable.
Salida.
A1
Seal de salida
Fig. 2.1.4.B
Dentro de la ventana de dilogo:
Entradas
139
A.2.1.5.- AND.
El Bloque AND que simula el funcionamiento de una compuerta AND se
caracteriza por usar la funcin Booleana de producto lgico, o sea que su salida es 1 solo
si todas sus entradas son 1, de lo contario la salida es 0.
Salida.
Q
Fig. 2.1.5.B
Dentro de la ventana de dilogo:
Seleccin de tipo
140
A.2.1.6.- AND FL.
El Bloque AND FL realiza una simulacin del comportamiento de una compuerta
AND FL, o sea que realiza la misma funcin booleana de producto lgico que la
compuerta AND, pero no solo con la condicin de que todas las entradas deben ser un
valor lgico 1 para que la salida as lo sea, sino que tambin existe una evaluacin de
flanco que impone que si todas las entradas son de valor 1 y que en el ciclo anterior por lo
menos una de las entradas se encontraba en el valor lgico 0.
A.2.1.7.- NAND.
Este bloque simula el funcionamiento de una compuerta NAND y se caracteriza
por usar la funcin Booleana de producto lgico negado, o sea que su salida es valor
lgico 0 solo si todas sus entradas son un valor 1, de lo contario la salida es un valor 1. Es
lo inverso a la compuerta AND.
141
A.2.1.8.- NAND FL.
Este bloque NAND FL simula el funcionamiento de una compuerta NAND FL, o
sea que realiza la misma funcin booleana de producto lgico negado que la compuerta
NAND, pero no solo con la condicin de que todas las entradas deben ser un valor lgico
0 para que la salida as lo sea, sino que tambin existe una evaluacin de flanco que
impone que si todas las entradas son de valor 0 y que en el ciclo anterior por lo menos
una de las entradas se encontraba en el valor lgico 1.
142
A.2.1.9.- OR.
Este bloque OR simula el funcionamiento de una compuerta OR se caracteriza
por usar la funcin Booleana de suma lgica, o sea que su salida es 1 si una de todas sus
entradas son 1, de lo contario la salida es 0.
2
3
4
Salida.
Q
Fig. 2.1.9.B
Dentro de la ventana de dilogo:
Seleccin de tipo
143
A.2.1.10.- NOR.
Este bloque NOR simula el funcionamiento de una compuerta NOR se
caracteriza por usar la funcin Booleana de suma lgica negada, o sea que su salida es
valor lgico 0 solo si como mnimo una de todas sus entradas posee un valor lgico 1, de
lo contario la salida es un valor 1. Es lo inverso a la compuerta OR.
A.2.1.11.- XOR.
Este bloque XOR simula el funcionamiento de una compuerta XOR se
caracteriza por ser llamada compuerta exclusiva o excluyente, esta funcin se rige por la
reglas que si solo una y no ambas de sus entradas es de valor lgico 1, la salida es de
una valor lgico 1. Se puede decir en otras palabras que si las dos entradas tienen el
mismo valor lgico en la salida el valor ser 0.
Salida.
Q
144
A.2.1.12.- NOT.
Este bloque NOT simula el funcionamiento de una compuerta NOT, en otras
palabras quiere decir que su entrada es negada en salida, por ejemplo si su entrada es
valor 1 la salida es valor 0. Esta funcin de negacin o inversin Booleana.
Salida.
Entrada Q, si el valor de entrada es 0 la salida es 1. Si el valor de entrada es 1 la
salida es 0.
A.2.1.13.- RS.
Este bloque RS simula el funcionamiento de un Flip-Flop RS, las caractersticas
de este Flip Flop que posee dos estados estables, es la capacidad de guardar 1 bit de
informacin.
Salida.
Q
145
Diagrama de funcionamiento
Fig. 2.1.13.B
Recomendacin importante:
Es importante tener en cuenta que si uno de las entradas en las funciones de
compuerta esta sin ser definida, esta automticamente pasa tener un valor lgico de 1. Es
relevante principalmente en la funcin AND, NAND, OR y NOR.
146
A.2.2.- Matemticas.
En esta seccin se representan mdulos de bloques bsicos, que realizan
operaciones matemticas para la construccin de diagramas de programacin de
Robotino.
A.2.2.1.- Adicin.
Este bloque realiza la operacin de SUMA de hasta 20 valores de entrada.
Seal de entrada 1
Seal de entrada 2
Seal de entrada n
Salida.
A1
Fig. 2.2.1. B
Dentro de la ventana de dilogo, ntese que es idntica para Adicin, Substraccin,
multiplicacin, mnimo y mximo.
Seleccin de tipo
Entradas
147
A.2.2.2.- Substraccin.
Este bloque realiza la operacin de RESTA de hasta 19 valores de entrada.
Seal de entrada 1
Seal de entrada 2
Seal de entrada n
Salida.
A1
Fig. 2.2.2 B
A.2.2.3.- Multiplicacin.
Este bloque realiza la operacin de MULTIPLICACION de hasta 20 valores de
entrada.
Seal de entrada 1
Seal de entrada 2
Seal de entrada n
148
Salidas.
A1
Seal de salida = E1 x E2 x x En
Ventana de dilogo en el software:
Fig. 2.2.3 B
A.2.2.4.- Divisin.
Este bloque realiza la operacin de DIVISION entre 2 valores de entrada.
Seal de entrada 1
Seal de entrada 2
Seal de entrada n
Salida.
A1
Seal de salida = E1 / E2
Si E2=0, entonces
A1 = Infinito, si E1 > 0
A1 = 0, si E1 = 0
A1 = -Infinito, si E1 < 0
149
A.2.2.5.- Mximo.
Este bloque indica el mximo de hasta 20 entradas.
Seal de entrada 1
Seal de entrada 2
Seal de entrada n
Salida.
A1
Fig. 2.2.5. B
A.2.2.6.- Mnimo.
Este bloque indica el mnimo de hasta 20 entradas.
Seal de entrada 1
Seal de entrada 2
Seal de entrada n
150
Salida.
A1
Fig. 2.2.6. B
A.2.2.7.- Modulo.
Este bloque tiene sentido para valores de 2 entradas de nmeros enteros
positivos.
Seal de entrada 1
Seal de entrada 2
Salida.
A1
151
A.2.2.8.- Mayor y Mayor Igual.
Este bloque compara entre 2 entradas y representa a la salida con una respuesta
lgica (1) si es verdadero o (0) si es falso.
Seal de entrada 1
Seal de entrada 2
Salida.
A1
Seal de entrada 1
Seal de entrada 2
152
Salida.
A1
Seal de entrada 1
Seal de entrada 2
Salida.
A1
153
A.2.2.11.- Funcin de Transferencia.
Este bloque permite graficar y obtener la respuesta de salida de un bloque con una
entrada definida. De tal manera que puede ser visual la respuesta de la seal.
Seal de entrada 1
Salida.
A1
Seal de salida1
Ventana de dilogo en el software:
Fig.2.2.11. B
Descripcin
de la
funcin
154
A.2.2.12.- ABS.
Este bloque entrega el valor absoluto de una entrada.
Seal de entrada 1
Salida.
B
b = abs( a )
155
A.2.3.- Clculo de Vectores.
En este modulo se encuentran los bloques esenciales para el clculo de vectores
bidimensional, para el desplazamiento de Robotino, a travs del software de control
Robotino view.
A.2.3.1.- Constante de Vector.
Este bloque genera un valor de vector constante.
Sistema de
coordenada
X o longitud
Cartesiano, polar
Y o Phi
Salida.
A1
Vector = (X,Y)
156
A.2.3.3.- Polar segn Vector.
Este bloque crea un vector a base de los componentes de longitud y orientacin
como entradas.
Longitud
Orientacin expresada en grados
Salida.
A1
Vector
Salidas.
X
Y
157
A.2.3.5.- Vector segn Polar.
Este bloque descompone el vector de entrada en sus componentes polares.
Vector
Salidas.
R
phi
Longitud
Orientacin expresada en grados
Vector 1
Vector 2
Vector n
Salida.
A1
Vector = E1+E2++En
Ventana de dilogo en el software:
Fig. 2.3.6. A
158
Seleccin de tipo
Entradas
Adicin, substraccin
Modificacin de la cantidad de entradas: Mnimo: 2; Mximo: 20
Vector 1
Vector 2
Vector n
Salida.
A1
Vector = E1-E2--En
Fig. 2.3.7. A
Seleccin de tipo
Entradas
159
A.2.3.8.- Multiplicacin de Vectores.
Este bloque multiplica un vector de entrada con un escalar, entregando su
resultado en forma de vector a la salida.
Vector
Valor (escalar)
Salida.
A1
Vector = E2 * E1
Vector
Valor numrico real
Salida.
A1
Vector = E2 * (cos phi, sin phi) , suponiendo que ( r, phi) son las
coordenadas polares de E1.
160
A.2.3.10.- Rotar.
Este bloque hace rotar un vector segn un valor predeterminado.
Vector
Valor = ngulo de rotacin
Salida.
A1
Vector a
Vector b
Salida.
a*b
a1*b1+a2*b2
161
A.2.4.- Indicacin.
En esta seccin, se encuentran bloques de funciones para la visualizacin de
datos de manera grafica y con interpretacin de valores.
A.2.4.1.- Osciloscopio.
Este bloque representa un instrumento de visualizacin de seales, emulando un
instrumento real, con 2 canales de entrada y de visualizacin independiente, adems
integrando a esto una memoria de datos.
Ajustes canal 1
Ajustes canal 2
Ajustes canal 3
Base de
tiempo
Valor de entrada 1
Valor de entrada 2
Valor de entrada 3
162
Ventana de dilogo en el software:
Fig. 2.4.1. B
1
2
3
4
5
6
Fig. 2.4.1. C
1
2
Activacin/Desactivacin de canal 1
Ajuste de la posicin cero en Y de canal 1
5
6
163
A.2.4.2.- Indicacin de Vectores.
Este bloque tiene la funcionalidad de registrar grficamente hasta 20 vectores en 2
dimensiones.
Valor de entrada 1
Valor de entrada 2
Valor de entrada n
Ventana de dilogo en el software:
Fig. 2.4.2. B
Cantidad
164
A.2.5.- Procesamiento de imgenes.
A.2.5.1.- Segmentador.
El Segmentador encuentra superficies del mismo color en una imagen esta es la
descripcin ms bsica, pero para ser precisos este bloque de funcin es una herramienta
que procesa una imagen de la webcam del equipo, con la cmara encendida se
selecciona una imagen fija (se fotografa), con la herramienta de seleccin en forma
Circular o cuadrada con la que se marca la zona a seleccionar con el color deseado (debe
ser una zona con un color dominante). Cuando la zona es seleccionada entra en la lista
de segmentos, en esta lista se pueden incluir varios segmentos, retirar segmentos y
tambin cambiar su orden.
Todo eso es para tener una lista de segmentos que pueden ser usados de variables
de identificacin y reconocimiento para alguna funcin exacta, la ventaja directa de este
extractor es que al ser ms de un segmento esto permite una mayor exactitud al cambio
de luz y a las sombras.
en el bloque.
5.- Se pueden agregar uno o ms segmentos siguiendo nuevamente los pasos anteriores.
165
Figura 2.5.1.B
Imagen segmentada:
Para ver la imagen procesada por el segmentador se presiona el smbolo
(ver
Figura 2.5.1.C
166
A.2.5.2.- Extractor de segmentos.
El bloque extractor de segmento tiene una funcin con la cual ve el tamao y la
posicin del segmento en la imagen que fue procesada por el segmentador.
El extractor recibe la imagen con los segmentos ya seleccionados, por lo cual con
este modulo seleccionamos y ordenamos los segmentos a identificar.
Salidas.
X
Y
Superficie
Encontrado
Figura 2.5.2.B
167
Dentro de la ventana de dilogo:
Seleccin de segmentos
Tamao mnimo
Figura 2.5.2.C
En este ejemplo la imagen de la cmara pasa al segmentador para ser procesada,
para luego ser usada por el extractor para reconocer un segmento a travs de la imagen
en tiempo real.
168
A.2.5.3.- Detector de lneas.
Este bloque puede reconocer una lnea en una imagen y procesarla, indicando su
direccin a travs de un simple proceso.
El proceso de deteccin Utiliza como base la parte inferior de la imagen como eje
X de coordenadas para la deteccin de la lnea, utilizando la mitad de la imagen como
origen de ese plano.
Es importante mencionar que suele tener problemas a ciertas condiciones de
relieve y luz, la cmara la identificar otros elementos como una lnea.
Tipo de Canto
Entrada de imagen.
Es la cantidad de lneas que deben existir para que se considere al
segmento una lnea.
Indica la direccin de la luz desde donde se comienza a rastrear la
lnea: 0 es de la zona oscura a la clara una lnea; 1 es de la zona clara
a la oscura una lnea.
Salidas.
X
Encontrar
169
Ventana de dilogo en el software:
Figura 2.5.3.B
Dentro de la ventana de dilogo:
Ajuste manual del
valor limite
Inicio
Ajuste manual del
tipo de canto
170
A.2.6.- Generadores.
En esta seccin de encuentran diversos generadores de seales para el uso en
Robotino View.
A.2.6.1.- Generador Rectangular.
En este bloque se obtiene un generador de pulsos rectangular de ancho variable.
En la representacin grfica del impulso rectangular se muestra la amplitud elegida y al
duracin (ms) del impulso.
Impulso rectangular
Fig. 2.6.1. B
171
Seleccin de tipo
Amplitud
Frecuencia
Ancho del
impulso
Fig. 2.6.2. B
172
A.2.6.3.- Generador Sinusoidal.
Este bloque se obtiene un generador de ondas sinusoidales. En la representacin
grfica de la curva sinusoidal se muestra la amplitud elegida y la duracin (ms) del
impulso.
Fig. 2.6.3. B
A.2.6.4.- Constante.
Este bloque tiene la particularidad de generar un valor constante predeterminado
por el usuario.
Valor constante
Valor
173
A.2.6.5.- Modulo de Tiempo.
Este bloque integra un contador de tiempo, teniendo que si existe una entrada
lgica 0, comienza la medicin de tiempo en ms y con una entrada lgica 1 se detiene
el contador y se repone a tiempo = 0.
Salida.
Salida
Duracin en ms
174
A.2.7.- Filtros.
A.2.7.1.- Aplanar.
Este bloque tiene la funcionalidad de crear el valor medio de una seal de entrada,
con una cantidad mxima de 100 pasos de tiempo.
Seal de entrada
Salida.
A1
Seal de salida
Siendo n = la profundidad de filtracin y t1,..,tn los ltimos ciclos
temporizados, entonces es vlido lo siguiente:
A1 = (E1(t1)+E1(t2)++E1(t=tn))/n,
Ventana de dilogo en el software:
Fig. 2.7.1. B
Profundidad
de filtracin
175
A.2.8.- Robotino hardware.
A.2.8.1.- Webcam.
La funcin Cmara permite acceder a imgenes y video en tiempo real a travs
de una webcam conectada a un puerto USB, es necesario decir que la nitidez de la
imagen depende del ajuste manual del lente.
176
Opciones de ajuste:
177
Imgenes de las diferentes modalidades:
Resolucin: La cmara trabaja con dos resoluciones que son 320x240 y 640x480.
Pero es importante tener en consideracin que para las aplicaciones como la
deteccin de colores se suele recomendar el trabajar con una menor resolucin que
tiene menos informacin cromtica, con lo cual es ms fcil reconocer superficies de
un solo color.
178
A.2.8.2.- Distancia.
Este bloque representa los sensores infrarrojos (IR), incorporados al Robotino,
separados por 40, alrededor de su circunferencia, ubicados en la parte inferior del chasis.
Seleccin del
detector
1 hasta 9
179
A.2.8.3.- Entradas y Salidas Digitales.
Este bloque se encuentras las entradas y salidas digitales, ubicadas en el frente
del puente de mando de Robotino (Ver Fig. 2.8.5. B), para la utilizacin de sensores y
actuadores externos.
A1
Valor 0 1
Seleccin de la
entrada
Desde 1 hasta 8
Seleccin de
Salida
Desde 1 hasta 8
180
A.2.8.4.- Entrada Analgica.
Este bloque se encuentra las entradas analgicas, ubicadas en el frente del puente
de mando de Robotino (Ver Fig. 2.8.5. B), para la utilizacin de sensores y actuadores
externos.
Seleccin de la
entrada
Desde 1 hasta 8
A.2.8.5.- Rel.
Este bloque se encuentra las entradas a los 2 rels que tiene al interior, ubicadas
en el frente del puente de mando de Robotino (Ver Fig. 2.8.5. B.), para la utilizacin de
sensores y actuadores externos.
181
Distribucin de entradas y salidas, en el puente de mando Robotino:
Fig. 2.8.5. B
182
A.2.8.6.- Motor.
Este bloque integra las salidas y entradas asociadas a los motores incorporados a
Robotino.
Reponer
posicin
Freno
Salidas.
Velocidad
real
Posicin
real
Intensidad
del motor
183
Ventana de dilogo en el software:
Fig. 2.8.6. B
Seleccin del
motor
Kp
Ki
Kd
Reset con Start
1 hasta 3
Parte proporcional del regulador PID antepuesto al motor
Parte integral del regulador PID antepuesto al motor
Parte diferencial del regulador PID antepuesto al motor
Inicializacin del valor del los incrementos en 0 cada vez que se
activa el programa
Salidas.
Corriente
184
A.2.8.8.- Paragolpes.
El bloque paragolpes trabaja en funcin del detector de impacto, en otras
palabras funciona en base al sensor anticolisin que enva a su salida un valor lgico 1
si colisiona con un obstculo. En cambio si no encuentra ningn obstculo tiene un valor
lgico 0 en la salida del bloque.
Ejemplo:
185
A.2.8.9.- Omniaccionamiento.
Esta funcin del programa sirve para calcular y definir las velocidades nominales
de los motores (1,2 y 3) en r.p.m (revoluciones por minuto) en funcin a los sentidos de
direccin (X) e (Y), a travs de la variable velocidad nominal en mm/s (Milimetros por
segundo) que debe ser definida al crearse un programa y a la velocidad nominal del giro
de las ruedas.
Tambin es posibles calcular la velocidad real de movimiento en los sentidos (X) e
(Y) y la velocidad real de los giros. Esto permite un movimiento a lo largo del eje X como
del eje Y.
Salidas
V1_set
V2_set
V3_set
Vx
Vy
Omega
186
187
A.2.8.10.- Gestin de potencia.
Este bloque Gestin de potencia se utiliza para controlar la electricidad en
Robotino.
A.2.8.11.- Odometra.
Este Bloque trabaja en funcin de la odometra. Que se entiende como el clculo
de la posicin del robot en funcin del anterior giro de cada una de sus ruedas, este giro
se mide a travs de una exacta medicin en relacin al tiempo.
Todo este proceso funciona calculando el movimiento del robot en relacin a cada
unidad de tiempo y la velocidad de giro de las ruedas, sumando los pequeos recorridos
en cada unidad de tiempo se puede obtener la posicin natural con respecto a las
posicin inicial. Este mtodo de medicin es bastante eficaz a nivel de cortas distancias y
un medio controlado, ya que el trabajo en diversas condiciones de terreno con polvo o una
superficie resbaladiza tiende a mostrar desviaciones. Para compensar estos errores se
trabaja la odometra con otros mtodos.
188
Salidas.
X
Y
Phi
Salidas.
Velocidad
Posicin
189
A.2.9.- Navegacin.
A.2.9.1.- Indicacin de la posicin.
La funcin Indicacin de posicin nos permite observar la posicin en un mapa
bidimensional de dos robots. A travs del uso de esta funcin es posible visualizar la
posicin real del robot y definir la posicin que debe tomar en relacin a la interaccin con
el usuario.
X Externa
Y Externa
phi Externa
Salidas.
X Nominal
Y Nominal
phi nominal
190
Ventana de dilogo en el software:
Figura 2.9.1.B
191
A.2.9.2.- Buscador de recorrido.
Esta funcin Buscador de recorrido se utiliza para calcular la velocidad y la
velocidad angular en funcin a la posicin real y una posicin nominal, este clculo es
necesario para el desplazamiento del robot desde la posicin real a la posicin nominal.
Salidas.
vx
vy
Omega
Velocidad X
Velocidad Y
Velocidad angular
Ventana de dilogo en el software
Figura 2.9.2.B
192
A.2.10.- Intercambio de Datos.
Son bloques de funcin que trabajan intercambiando datos en Robotino View o
con aplicaciones externas. A travs de estos bloques es posible trabajar con datos entre
rutinas y con datos de elementos externos al software.
A.2.10.1.- Escritor de Valores.A travs del bloque Escritor de valores se pueden escribirse entre uno y veinte
valores de entrada. Aunque los datos del archivo deben tener la siguiente estructura:
A1\tB1\tC1\tT1\n
A2\tB2\tC2\tT2\n
etc.
En esta estructura:
es
193
Entradas
1
2
20
Fig. 2.10.1.B
Dentro de la Ventana de dilogo:
Entradas
Seleccin
de
Archivo
Ejemplo:
194
A.2.10.2.- Lector de Valores.El Bloque de funcin Lector de Valores lee entre uno y veinte valores de un archivo
por unidad de tiempo y los entregas a sus salidas. El archivo se lee por lneas. En la
primera unidad de tiempo se lee y evala la primera lnea, en la segunda unidad de
tiempo se lee la segunda lnea y as sucesivamente. Al llegar al final, se mantienen los
ltimos valores ledos. El archivo debe tener la siguiente estructura:
A1xB1xC1xT1\n
A2xB2xC2xT2\n
etc.
En esta estructura:
X: indica el tabulador (ASCII 0x09), el espacio (ASCII 0x20), la coma (ASCII 0x2C)
o el punto y coma (ASCII 0x3B)
Si una lnea contiene menos valores que salidas, en las salidas sin el correspondiente
dato en el archivo se entrega el valor 0.
20
195
Ventana de dilogo del software:
Fig. 2.10.2.B
Dentro de la Ventana de dilogo:
Salidas
Seleccin
de
Archivos
Global In: Guarda los datos en 1 de las 20 memorias disponibles, enumeradas del
0 al 19.
Global Out: Lee los datos en 1 de las 20 memorias disponibles, enumeradas del 0
al 19.
Mediante la ventana de dilogo los bloques, A travs de Global In" y Global Out" es
posible elegir la posicin de memoria para guardar o leer. La posicin de memoria elegida
se indica en la grfica del bloque de funcin.
196
Ventana de dilogo:
197
A.2.11.2.- Start.
Este bloque marca el punto de inicio del mando secuencial, por lo cual se inician
los programar creados con diagramas de bloques de funciones. que estn conectados al
bloque START.
A.2.11.3.- Sincronizacin Y.
Este bloque sincroniza los diagramas de bloques de funciones dentro del mando
secuencial, iniciando los diagramas que estn a su salida, solo si, los diagramas
conectados a su entrada han terminado.
A.2.11.4.- Sincronizacin O.
Este bloque sincroniza los diagramas de bloques de funciones dentro del mando
secuencial, terminando todos los diagramas conectados a su entrada, solo si uno de esos
diagramas de bloques, a terminado. Seguido de aquello, haber terminado todas las
entradas, a su salida activa, los diagramas conectados a ella.