Sie sind auf Seite 1von 211

Diseo y programacin de algoritmos de control en

robots mviles. Estudio y aplicacin a


ROBOTINO - FESTO.

Trabajo de Titulacin para optar al


Ttulo de Ingeniero en Electrnica

PROFESOR PATROCINANTE:
Sr. Pedro Rey Clericus.
Ingeniero Electrnico.
Licenciado en Ciencias de la Ingeniera.
Diplomado en Ciencias de la Ingeniera.

Felipe A. Cid Burgos Javier A. Melillanca Cern


VALDIVIA Chile
2010

Comisin de Titulacin

II

Profesor Patrocinante:

_____________________________
Sr. Pedro Rey Clericus

Profesores Informantes:

_____________________________
Sr. Daniel Lhr S.

_____________________________
Sr. Franklin Castro R.

Agradecimientos

III

Felipe Andrs Cid Burgos.


Aprovecho esta instancia para dar gracias a todos mis profesores y compaeros
dentro de la carrera Ingeniera Electrnica, que han sido parte fundamental en la creacin
de este trabajo de titulo, ya que sin ellos, no hubiese tenido el coraje ni la entereza para
haber llegado tan lejos en mi vida profesional. Y un agradecimiento especial a mis padres
y hermanos, que me han ayudado a ser el hombre que soy ahora.

Javier Alejandro Melillanca Cern.


Este trabajo de titulo representa un gran paso en mi vida, del cual parte fundamental de
esto no hubiese sido posible sin el apoyo de mis padres, Ester y Jos, y mis hermanos,
Jos y Andrs, que me brindaron su sacrificio, para poder realizarme como profesional. A
quienes agradezco en forma infinita.
Agradezco tambin a mis amigos y profesores del Instituto de Electricidad y Electrnica,
que me ayudaron en este camino a ser profesional. En especial a los profesores, Sr.
Pedro Rey y Sr. Daniel Lhr, por su tiempo y ayuda, en la realizacin de este proyecto de
titulacin.

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

1.1. - Acerca de Robotino.

1.2.- Aspectos Fsicos.

1.2.1.- Componentes bsicos.


1.3.- Puesta en Marcha.

3
13

1.3.1.- Encendido/ Apagado.

13

1.3.2.- Uso del Display.

14

1.4.- Conectividad

15

1.4.1.- Conectividad LAN Ethernet

15

1.4.2.- Conectividad WLAN

16

1.5.- Sistema de energa.

19

1.5.1.- Bateras EFFEKTA.

19

1.5.2.- Cargador de bateras.

19

1.6.- Sensores

20

1.6.1.- Sensor inductivo

20

1.6.2.- Sensor de fibra ptica

21

Captulo II Robotino View

22

2.1.- Bloques de funcin.

23

2.2.- Simplificacin de bloques.

25

V
2.2.1.- Reduccin de constantes:

25

2.2.2.- Reduccin de bloques matemticos:

27

2.3.- Control de Secuencias

29

2.4.- Escalar Sensores IR

31

2.5.- Simulacin ROBOTINO SIM.

35

2.6.- Variables externas e internas

37

2.6.1.- Variables externas

37

2.6.2.- Variables internas:

39

2.7.- Ejemplos.
Captulo III

Control de posicin y movimiento

3.1 Control de Posicin y Recorridos por Odometra.

41
46
47

3.1.1.- Odometra por entorno grafico:

48

3.1.2.- Odometra basado en control secuencial:

51

3.2.- Control de recorrido controlado por tiempo

56

3.3.- Ejemplos de otros sistemas de control de recorrido.

62

3.3.1.- Ejemplos de control de recorrido por suma de tramos.

62

3.3.2.- Ejemplos de control de recorrido por suma de incrementos.

64

Captulo IV Sensores especficos


4.1.- Sensores Fotoelctricos.

69
70

4.1.1.- Principio de funcionamiento.

70

4.1.2.- Construccin.

72

4.1.3.- Ejemplo.

73

4.2.- Sensor de Reflexin directa.

78

4.2.1.- Principio de Funcionamiento.

78

4.2.3.- Construccin.

80

4.2.4.- Ejemplo.

80

4.3.- Sensor Inductivo.

83

4.3.1.- Principio de funcionamiento.

83

4.3.2.- Construccin.

84

4.3.3.- Ejemplo.

85

Capitulo V

Visin Artificial

86

VI
5.1 Webcam.

87

5.2.- Deteccin de segmentos.

87

5.3.- Deteccin de Lneas.

96

Captulo VI Aplicaciones

102

6.1.- Jugador de Hockey.

103

6.1.1.- Reglas del Juego.

103

6.1.2.- Campo de Juego.

105

6.1.3.- Estrategias de ataque.

106

6.1.4.- Estrategias de defensa

114

6.2.- Bodegaje Automatizado.

117

6.2.1.- Entrada de datos.

118

6.2.2.- Entrada a la sala.

118

6.2.3.- Ubicacin de estantes.

118

6.2.4.- Entrega de Paquetes.

119

6.2.5. Retiro del estante y reinicio.

120

Captulo VII Conclusiones y Lneas de trabajo futuro

121

Conclusiones

122

Lneas de trabajo Futuro

123

Bibliografa

125

Anexos

127

Anexo I

Datos Tcnicos

128

1.1.- Robotino.

129

1.2.- Unidad de Accionamiento.

130

1.3.- Webcam.

131

1.4.- Sensor Inductivo.

132

1.5.- Interface E/S.

133

Anexo II

Bloques de funcin

A.2.1.- Lgica.

134
135

A.2.1.1.- Contador Incremental.

135

A.2.1.2.- Contador Decremental.

136

VII
A.2.1.3.- Demultiplexor.

137

A.2.1.4.- Multiplexor.

138

A.2.1.5.- AND.

139

A.2.1.6.- AND FL.

140

A.2.1.7.- NAND.

140

A.2.1.8.- NAND FL.

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

A.2.2.8.- Mayor y Mayor Igual.

151

A.2.2.9.- Menor y Menor Igual.

151

A.2.2.10.- Igual y Desigual.

152

A.2.2.11.- Funcin de Transferencia.

153

A.2.2.12.- ABS.

154

A.2.3.- Clculo de Vectores.

155

A.2.3.1.- Constante de Vector.

155

A.2.3.2.- Cartesiano segn Vector.

155

A.2.3.3.- Polar segn Vector.

156

A.2.3.4.- Vector Cartesiano.

156

A.2.3.5.- Vector segn Polar.

157

A.2.3.6.- Adicin de Vectores.

157

A.2.3.7.- Substraccin de Vectores.

158

VIII
A.2.3.8.- Multiplicacin de Vectores.

159

A.2.3.9.- Definir longitud.

159

A.2.3.10.- Rotar.

160

A.2.3.11.- Producto Escalar.

160

A.2.4.- Indicacin.

161

A.2.4.1.- Osciloscopio.

161

A.2.4.2.- Indicacin de Vectores.

163

A.2.5.- Procesamiento de imgenes.

164

A.2.5.1.- Segmentador.

164

A.2.5.2.- Extractor de segmentos.

166

A.2.5.3.- Detector de lneas.

168

A.2.6.- Generadores.

170

A.2.6.1.- Generador Rectangular.

170

A.2.6.2.- Generador de Picos.

171

A.2.6.3.- Generador Sinusoidal.

172

A.2.6.4.- Constante.

172

A.2.6.5.- Modulo de Tiempo.

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

A.2.8.3.- Entradas y Salidas Digitales.

179

A.2.8.4.- Entrada Analgica.

180

A.2.8.5.- Rel.

180

A.2.8.6.- Motor.

182

A.2.8.7.- Salida de Potencia.

183

A.2.8.8.- Paragolpes.

184

A.2.8.9.- Omniaccionamiento.

185

A.2.8.10.- Gestin de potencia.

187

A.2.8.11.- Odometra.

187

A.2.8.12.- Entrada del transmisor giratorio.

188

IX
A.2.9.- Navegacin.

189

A.2.9.1.- Indicacin de la posicin.

189

A.2.9.2.- Buscador de recorrido.

191

A.2.10.- Intercambio de Datos.

192

A.2.10.1.- Escritor de Valores.-

192

A.2.10.2.- Lector de Valores.-

194

A.2.10.3.- Variables Globales.

195

A.2.11.- Mando Secuencial.

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

En este trabajo de titulacin se analizan, trabajan y disean algoritmos basado en


el software de control Robotino View, para el Robot omnidireccional Robotino de la
empresa de automatizacin alemana FESTO S.A, de su divisin DIDACTIC. La finalidad
de disear algoritmos de control, se basa en la necesidad de llevar al mximo la
potencialidad del software, como el hardware construido por el fabricante, de esa manera,
explorar campos como el posicionamiento, visin artificial, el uso de sensores y la
simulacin de algoritmos basados en lgica digital.
De esta manera se realiza un estudio de su software y hardware, como de sus
limitaciones, para ello se genera una serie de explicaciones, set de ejemplos de diferentes
funciones y especificaciones del equipo. Detallando varias medidas a considerar durante
la utilizacin y puesta en marcha, como tambin problemas de conectividad, precisin y
diferencias de valores en los ejemplos realizados.

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

La robtica, como ciencia aplicada, representa en los tiempos actuales una


necesidad imperante. La primera revolucin que present este tipo de tecnologa, fue la
construccin de robots industriales, que a modo general ayudaron a las empresas en sus
cadenas de produccin, mejorando la productividad donde se utilizan lneas de
ensamblado por ejemplo, empresas automotrices, fbricas de artculos electrnicos de
consumo (telfonos celulares, televisores, entre otros). La segunda revolucin de la
robtica, que actualmente est en desarrollo, es la de robots de servicio, en palabras
simples robots construidos para ayudar a las personas en las labores cotidianas, estas
labores incluyen desde el cuidado de enfermos o la compaa de personas solitarias
hasta asistencia en actividades profesionales.
Robotino se inserta en estas actividades al ser un sistema robotizado mvil
mecatrnico, diseado y construido por FESTO S.A, empresa alemana dedicada a la
automatizacin con un nfasis en la educacin tcnica superior. Esta plataforma mvil, a
su vez, integra un software de control llamado Robotino VIEW, el cual usa una interfaz
visual altamente didctica y que es diseado para ser aplicado a entornos educativos y de
enseanza en instituciones de formacin profesional.
En el presente proyecto se propone trabajar con el diseo y la implementacin de
aplicaciones basadas en robots mviles, utilizndose como plataforma de sistema
embebido un robot mvil. En concreto se trata del robot Robotino de la empresa FESTO.
Adems se busca explorar sus capacidades tcnicas, para la resolucin de problemas
prcticos, y verificar las potencialidades del software de control Robotino VIEW, como
tambin las limitaciones y posibles desarrollos utilizando esta plataforma como base para
la ejecucin de futuros proyectos.
Objetivos
Objetivos generales:

Estudiar, disear y programar modelos de algoritmos, aplicados a una plataforma


onmidireccional Robotino FESTO, con un perfil de aplicacin a tareas practicas,
basado en la utilizacin del software de control Robotino VIEW.

XIII
Objetivos especficos:

Describir componentes fsicos ms relevantes incorporados en la plataforma.

Formular especificaciones para el uso del software de programacin de Robotino


VIEW.

Disear modelos de algoritmos especficos, para aplicaciones prcticas

Estudiar las potencialidades de conectividad de Robotino.

Estudiar funcionalidad de webcam, en visin artificial a travs de software


Robotino VIEW.

Programar rutinas de movimientos, utilizando distintos escenarios, en un espacio


acotado, usando navegacin autnoma.

Estudiar las posibles aplicaciones de Robotino en ambiente controlado y su


factibilidad de implementacin practica.

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

perfeccionamiento, e incluso una plataforma de investigacin y desarrollo para escuelas


tcnicas en un mismo sistema. Su operacin a travs de su manejo onmidireccional le
permite hacer movimientos hacia delante, atrs y lateralmente, adems permitindole
girar sobre un punto determinado, todo esto sumado a la incorporacin de sensores
analgicos y digitales y una webcam para su interaccin a travs de visin artificial. Todo
esto incorporado en su puente de mando, que integra un sistema embebido, con
caractersticas de computadora de prestaciones industriales PC-104, compatible con
MOPSlcdVE, 300 MHz, y sistema operativo Linux con kernel en tiempo real, a travs de
disco flash de memoria (1 GB), con API C++ para control de Robotino. La distribucin de
sus 3 motores, separados entre ellos por 120, en c onjunto con las ruedas
omnidireccionales, permiten el movimiento hacia diferentes lugares en un sistemas de
coordenadas de 2 dimensiones, estn sujetos a una base de acero inoxidable, cuyas
junturas tienen una terminacin de soldadura lser de precisin, lo que le entrega un
diseo innovador, para su utilizacin en tareas prcticas.
Su operacin a travs del software Robotino VIEW, permite una programacin
altamente didctica, incorporando diseo de bloques secuenciales y funcionales de
programacin, todo esto conectado a travs de una LAN inalmbrica, que permite un
conexin permanente y continua con la operacin del equipo, y con sus sensores, como
tambin la operacin de su cmara web.

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

Fig. 1.2.1.1 - Chasis


Dentro del chasis es importante destacar las 2 Asas (1(2x) ver Fig. 1.2.1.1) que
estn hechas especficamente para los momentos en los que se debe levantar o
transportar a Robotino, esto se debe a que si es sujeto desde otro de sus componentes
puede provocar un dao significativo al equipo.
Adems de las Asas es importante aadir que gracias a su verstil chasis se le
permiten la conexin de otros elementos como son las bateras, unidad de accionamiento,
la banda anticolisin, la Webcam y los dems sensores, que se mencionaran mas tarde
en este texto.

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)).

Fig. 1.2.1.2 - Bateras

1.2.1.3.- Unidad de Accionamiento.


Para un movimiento omnidireccional Robotino consta de 3 unidades de
accionamiento omnidireccionales independientes (ver Fig. 1.2.1.2 (2(3x))), en una
posicin de 120 cada una con respecto a la otra (v er Fig. 1.2.1.3.A).

Fig. 1.2.1.3.A Posicin de las unidades de accionamiento


Para un desplazamiento controlado cada una de las unidades de accionamiento
poseen los siguientes elementos: Ver Fig. 1.2.1.3.B
1. - Motor DC.
2. - Encoder incremental.
3. - Rodillos omnidireccionales.
4. - Reductor con una relacin de reduccin de 16:1.
5. - Correa dentada.

Fig. 1.2.1.3.B Unidad de accionamiento

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).

Fig. 1.2.1.4.- Webcam del equipo

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).

Fig. 1.2.1.5.A Unidad de control


Esta unidad de control est conformada por los siguientes elementos:


Procesador PC104 de 300 Mhz., Con un S.O. Linux con kernel en tiempo real y
un SDRAM 128 MB.

Punto de Acceso LAN inalmbrico.

Tarjeta Compact Flash (1 GB)

Interfaces.

Teclado y Display

Interface E/S

Se realizar un breve anlisis a algunos de estos elementos para explicar brevemente


su funcionamiento.

Fig. 1.2.1.5.B Elementos unidad de control


A.- Tarjeta Compact Flash.
Tarjeta de PC que contiene el sistema operativo del equipo, las libreras de
funciones y los programas, esto permite la actualizacin a travs del cambio de esta
tarjeta por otra.
La tarjeta que est en el Robotino y es usada en esta tesis tiene una capacidad de
1 GB de memoria. Ver Fig. 1.2.1.5.B (A)

B.- Las Interfaces.


Esta unidad para su configuracin y conectividad trae una serie de interfaces que son:
1.- Conexin VGA.
2.- 2 entradas USB.
3.- Conexin Ethernet.

Fig. 1.2.1.5.C.- Interfaces

Estas interfaces estn creadas para la conexin de un ratn, un teclado y una


pantalla para acceder al sistema operativo, tambin existe una entrada de Ethernet en
caso de fallos en la comunicacin WLAN. Ver Fig. 1.2.1.5.B (B) y Fig. 1.2.1.5.C

C.- Teclado membrana y Display.


Se puede apreciar en la parte superior de la unidad de control un teclado y un
display, a travs de ellos se puede observar informacin e incluso seleccionar las
opciones necesarias para ejecutar un programa de forma manual.
En el display al prender el equipo sale el nombre del equipo, la direccin IP y la
versin del S.O. Ver Fig. 1.2.1.5.D.

10

Fig 1.2.1.5.D.- Teclado membrana

D.- Interface E/S.


Es una interface para la conexin de sensores y actuadores adicionales, a travs de:


8 entradas analgicas (0 a 10 V) (AIN0 hasta AIN7)

8 entradas digitales (DI0 hasta DI7)

8 salidas digitales (DO0 hasta DO7)

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)

Fig. 1.2.1.6.A - Sensor anticolisin

B.- Sensores infrarrojos.


El equipo cuenta con 9 sensores de medicin de distancia por sensores infrarrojos,
colocados en una Angulo de 40 entre s. Lo que le permite monitorear obstculos o
elementos en su zona circundante. Ver Fig. 1.2.1.6.A (B)
Una de las mejores capacidades es la medicin de distancias desde el sensor al
obstculo con un rango entre 4 y 30 cm.

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.

Fig. 1.2.1.6.B.- Grados de ubicacin sensores.

Fig. 1.2.1.6.C.- Disposicin de sensores.

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.

1.3.1.- Encendido/ Apagado.


Para activar el equipo se debe presionar la tecla ON/OFF por un tiempo hasta que
el display se active. Apareciendo dos barras que cruzarn la pantalla dando arranque al
PC de Robotino.
Despus de 30 segundos cuando se encuentre en pleno funcionamiento el display
mostrara su nombre Robotino, su IP, su S.O. y el estado de las bateras.
Para un uso eficiente de la energa Robotino al estar sin actividad durante 10
segundos desactiva el display para bajar el consumo de corriente. Por lo que al volver a
presionar una de las teclas direccionales se vuelve a activar.
Para apagar el equipo se debe presionar la tecla ON/OFF hasta que se apague el
LED. Despus se debe soltar la tecla para que se apague completamente.

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:


Flecha Arriba (): permite ir a la opcin superior a la seleccionada por defecto.

Flecha Abajo (): Permite ir a la opcin inferior a la seleccionada por defecto

Tecla (Enter): Permite activar la opcin seleccionada.

Flecha Izquierda (). Permite regresar de un men al anterior.


Ah aparecern los siguientes elementos: lenguajes (Languages), Estado de Carga

(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


Las rutinas incluidas son las siguientes:

Crculo: Se mueve en forma circular con un dimetro de un metro por 10


segundos.

Avance: Avanza en lnea recta un metro por 10 segundos.

Cuadriltero: se mueve siguiendo un rectngulo y gira sobre su eje.

Explorar: Se mueve en lnea recta y evade obstculo en su trayectoria.

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:
-

LAN Ethernet, a travs de un acceso de cable RJ-45.

WLAN, a travs de WIFI 802.11 b/g.

1.4.1.- Conectividad LAN Ethernet


Con un acceso frontal desde el puente de mando ubicado en la parte frontal lado
izquierdo (Fig.1.4.1)

Fig. 1.4.1 Puerto Ethernet RJ-45.


Utilizando su AP, se adapta al protocolo TCP IP, como una red LAN, utilizando una
extensin RJ 45 para su conexin, despus su acceso de PC Ethernet, se configura la
red como una IP predeterminado en Robotino, usando su AP incorporado al robot.

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:

Asignacin manual o esttica: Asigna una direccin IP a una mquina


determinada. Se suele utilizar cuando se quiere controlar la asignacin de
direccin IP a cada cliente, y evitar, tambin, que se conecten clientes no
identificados.

Asignacin automtica: Asigna una direccin IP de forma permanente a una


mquina cliente la primera vez que hace la solicitud al servidor DHCP y hasta que
el cliente la libera. Se suele utilizar cuando el nmero de clientes no vara
demasiado.

17

Asignacin dinmica: el nico mtodo que permite la reutilizacin dinmica de


las direcciones IP. El administrador de la red determina un rango de direcciones IP
y cada computadora conectada a la red est configurada para solicitar su direccin
IP al servidor cuando la tarjeta de interfaz de red se inicializa. El procedimiento usa
un concepto muy simple en un intervalo de tiempo controlable. Esto facilita la
instalacin de nuevas mquinas clientes a la red.

1.4.2.2.- Conexin con Robotino VIEW


La utilizacin de WLAN con Robotino VIEW, es a travs de la red SSID Robotino
X.X, en las redes disponibles.
Para una conexin correcta, es indispensable realizar los siguientes ajustes en la red:
- Asignar automticamente una clave de red (SSID)
- Obtener una direccin IP automticamente
Dentro de las principales pruebas de conectividad a realizar para verificar un envo y
recepcin de datos efectiva se realizan 2 pasos a travs de MS-DOS, ping e ipconfig

Cmd ping. Conexin correcta


.C:\ping 172.26.1.1
Haciendo ping a 172.26.1.1 con 32 bytes de datos:
Respuesta desde 172.26.1.1: Bytes=32 tiempo=4ms TTL=64
Respuesta desde 172.26.1.1: Bytes=32 tiempo=2ms TTL=64
Respuesta desde 172.26.1.1: Bytes=32 tiempo=3ms TTL=64
Respuesta desde 172.26.1.1: Bytes=32 tiempo=6ms TTL=64
Paquetes: enviados = 4, recibidos = 4, perdidos = 0 (0% perdidos),

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.

Fig 1.5.1.A - Ley Kirchoof de voltaje

Fig. 1.5.1. B - Ubicacin de bateras.

1.5.2.- Cargador de bateras.


Para la restitucin de los valores de energa acumulada en las bateras, se utiliza
un cargador elctrico ANSMANN alct 24-2, con una conversin de voltaje de 220 (V)-1,2
(A) a 24 (V) 2(A), con un conector adaptador de conexin de 2,4 [mm]. de espesor (Fig.
1.5.2).

20

Fig. 1.5.2 - Conector cargador.

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.

1.6.1.- Sensor inductivo


Este sensor es conocido como Sensor inductivo de proximidad y es caracterizado
por su capacidad de detectar objetos metlicos en el suelo, lo que permite su aplicacin
en control filoguiado al leer una lnea metlica debajo del equipo que le permite seguir un
patrn definido de movimiento. (Ver Fig. 1.6.1.A)
Para lo cual Robotino normalmente detecta franjas metlicas sobre el suelo,
dependiendo de su cercana al sensor dando valores de 0- 10 V para las experiencias.
Datos tcnicos del sensor en Anexo 1 (1.4.- Sensor Inductivo).

21

Fig. 1.6.1.A Posicin sensor inductivo


1.6.2.- Sensor de fibra ptica
Para que Robotino pueda seguir una ruta se puede implementar con la ayuda de
los dos sensores de reflexin directa (de luz difusa). Por lo que los cables de fibra ptica
se deben conectar a la unidad ptica que funciona con luz roja visible. A travs de estos
elementos se puede detectar la luz reflejada, ya que diferentes superficies y colores
producen diferentes grados de reflexin. Sin embargo, no pueden detectarse diferencias
graduales en la luz reflejada. (Ver Fig. 1.6.1.B).

Fig. 1.6.1.B.- Sensores de reflexin directa.

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.

2.1.- Bloques de funcin.


Los bloques de funcin cumplen el papel de comandos en cualquier lenguaje
computacional, por lo cual cada una de estos debe tener opciones de configuracin y de
respuesta. Tambin cada bloque contiene un nmero limitado de entradas y salidas,
adems de los parmetros internos.
Estos bloques a travs de las ventanas de dilogo, permiten al usuario modificar
los parmetros internos, como tambin asignar valores de entrada en forma directa. La
estructura bsica de estas ventanas de dilogo en todos los bloques de funcin es
idntica, por lo cual solo se utilizar una en modo de ejemplo para explicar su anlisis.
A continuacin se mostrara un ejemplo usando la Ventana de dilogo del bloque
Seguimiento de lnea:
En cada una de las ventanas de dilogo, se puede apreciar tres opciones que se
pueden seleccionar haciendo click sobre los botones [1], [2] o [3]. El color verde sobre
estas opciones indica cual se encuentra activada.
Opcin [1]: Dentro de esta opcin se muestran los parmetros internos ms importantes,
como tambin el trabajo sobre una imagen entre otros.

24

Figura 2.1.A.- Opcin [1]


Opcin [2]: En esta segunda opcin, se pueden ver y modificar los datos de las
diferentes entradas y salidas del bloque. En esta opcin se puede dar directamente un
valor a una de las entradas o salidas, como tambin asignar una funcin matemtica a
esta. Todo tipo de funciones se pueden trabajar con los parmetros a, b, c d.

Figura 2.1.B.- Opcin [2]


Opcin [3]: Esta opcin nos permite asignar un nombre al bloque de funcin, como
tambin nos permite decidir si dejamos el bloque activado o no. Si se desean guardar los
cambios en el nombre o

si se desactiva el bloque es necesario presionar la opcin

Ejecutar, en el caso que no se desee guardar los cambios se debe presionar la opcin
Cancelar.

Figura 2.1.C.- Opcin [3]

25
Iconos en el software de los bloque de funcin del Seguimiento de lnea cuando
esta desactivado y cuando esta activo.

Figura 2.1.D.- Desactivado

Figura 2.1.E.- Activo

Los bloques de funcin con sus respectivas caractersticas, entradas, salidas y


otros, se encuentran en el Anexo 2.

2.2.- Simplificacin de bloques.


Para una mayor eficiencia en el uso y la cantidad de bloques de funcin, se
trabajar en la simplificacin de estos bloques. La forma de simplificar se explicar a
continuacin a travs de las siguientes indicaciones:
2.2.1.- Reduccin de constantes:
La primera forma de simplificacin de bloques, es la eliminacin de los
generadores de constantes, las contantes generan valores fijos que permiten enviar
valores predefinidos a las entradas de bloques (Ver Fig. 2.2.1.A), pero tambin es posible
definir esas constante a travs de las ventanas de dilogo en la opcin [2] o [1] (Ver Fig.
2.2.1.B). A continuacin se explicara paso a paso el proceso de simplificacin:
1.- Primero se trabaja en funcin a un programa con constantes por bloques (Ver Fig.
2.2.1.A).

Fig. 2.2.1.A.- Con constante.


2.- Para simplificar esta constante, se definir directamente en la ventana de dilogo, no a
travs de un bloque diferente, por lo cual se utilizar la opcin [2] dentro de la ventana o la
opcin [1] segn corresponda (Ver Fig. 2.2.1.B). Dentro de ella se elige la funcin Y=a

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.

Fig. 2.2.1.B.- Ventana de dilogo.

Fig. 2.2.1.C.- Ventana de dilogo.


3.- As para terminar el bloque, al tener definida una constante en forma directa, presenta
una indicacin de color morado en la entrada, que da a entender que esta entrada ya est
con un valor definido en forma directa (Ver Fig. 2.2.1.D).

27

Fig. 2.2.1.D.- Entrada con constante interna.


2.2.2.- Reduccin de bloques matemticos:
Siguiendo la misma lnea del anterior mtodo de reduccin de constantes, en esta
seccin se trabajar en la reduccin de bloques matemticos. A continuacin se explicara
a travs de un ejemplo el mejor mtodo:
1.-

En primer lugar, se trabaja en funcin a un programa con constantes y bloques

matemticos (Ver Fig. 2.2.2.A).

Fig. 2.2.2.A.- Con bloques matemticos y constantes.


2.-

Para la reduccin de los bloques matemticos, se utilizara la ventana de dilogo en

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

Fig. 2.2.2.B.- Ventana de dilogo

Fig. 2.2.2.C.- Ventana de dilogo


3.- As para terminar, se puede apreciar la reduccin de los bloques matemticos y las
constante definidas en forma directa, por lo cual se presenta una indicacin de color
morado en la entrada, que da a entender que esta entrada se encuentra en funcin a un
ecuacin matemtica y no a un valor definido en forma directa sin modificaciones (Ver
Fig. 2.2.2.D).

Fig. 2.2.2.D.- Con bloques matemticos y constantes reducidos.

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

Fig. 2.3.B.- Crear nuevo Programa control de flujo.


4.- En este programa secuencial, utilizaremos el bloque Inicio (Ver Fig. 2.3.C) que
coordinara el inicio de la secuencia dando comienzo a la primera rutina, al terminar el
primer bloque de programa se utiliza la Salida A (Ver Fig. 2.3.D) en cada rutina se
detiene y da comienzo a la siguiente. As se crea una secuencia que permite crear un
movimiento a la vista continuo pero conformado por varias partes separadas.

Fig. 2.3.C.- Bloque Inicio

Fig. 2.3.D.- Bloque Salida A.


5.- A travs de los anteriores pasos y a las rutinas de movimiento se llegara a esta
secuencia (Ver Fig. 2.3.E):

Fig.2.3.E.- Secuencia de cuatro bloques.


 El programa que genera este movimiento en forma de cruz, en solo un solo bloque
de programa, se encuentra la seccin 2.7 - Ejemplos.

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

Fig. 2.4.A Curva caracterstica.


Para la obtencin del parmetro M (Pendiente), se utilizar dos pares de
magnitudes la cual consideraremos puntos en nuestra recta. Por lo que se utilizar la
ecuacin de la pendiente de una recta.
Usando las magnitudes:
Punto

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).

Fig. 2.4.B Ventana de dilogo.

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.-

Se debe ejecutar el programa Robotino Sim, a un tamao pequeo ya que la

velocidad de la simulacin es directamente proporcional a la capacidad de video del


computador a utilizar (Ver Fig. 2.5.A).

Fig. 2.5.A. - Robotino Sim.


2.-

Se procede a ejecutar el programa Robotino View, en la IP de conexin se ingresa

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).

Fig. 2.5.B- IP Robotino View.

36

Fig. 2.5.C Icono conexin.


3.-

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).

Fig. 2.5.D Icono Play.

Fig. 2.5.E Funcionamiento del simulador- Rutina seguidor de Lnea.

4.-

Este es el mtodo de simulacin de rutinas en un computador, es importante

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)

El proceso de almacenamiento de los datos se logra a travs del bloque


Escritor de Valores, con el cual creamos el archivo de texto y guarda los
datos de cada entrada en una columna propia.

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).

Fig. 2.6.1.A - Ventana de dilogo- Escritor de Valores.

38

Fig. 2.6.1.B Ventana para crear archivo de texto.


En el caso que se desee utilizar el bloque Escritor de Valores en una aplicacin
para el intercambio de datos con otro equipo, hardware, sensores y otros, utilizando al
equipo con Robotino View como mediador de los valores es bastante til. Por ejemplo, en
el caso de un sistema embebido que utilice sensores para determinar una variable
especfica, es posible registrar esos datos en un archivo de texto en el equipo que
controla a Robotino, para que luego estos datos puedan ser utilizados en alguna rutina
como variables de decisin o para controlar en que orden dar a una secuencia.
Para llamar al archivo de texto que guarda los datos, es necesario que en la
ventana de dilogo del bloque Lector de Valores se presione el icono indicado (Ver
Fig.2.6.1.C), lo cual permite elegir el archivo de texto desde su ubicacin (Ver
Fig.2.6.1.D).

Fig. 2.6.1.C Ventana de dilogo Lector de Valores.

39

Fig. 2.6.1.D Ventana para elegir archivo de texto.


2.6.2.- Variables internas:
Las variables internas son las que trabajan guardando y cargando datos en memorias
del mismo programa Robotino View. Para lograr esto se utilizan las siguientes funciones:
i)

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

Fig. 2.6.2.E Guardar datos- Rutina 1.

Fig. 2.6.2.F Cargar datos- Rutina 2.

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.

Fig. 2.7.A - Eje Y positivo.

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.

Fig. 2.7.B - Eje X negativo.

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.

Fig. 2.7.C - Eje Y negativo.

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.

Fig. 2.7.D - Eje X positivo.

La secuencia (Ver Fig. 2.7.E): con estas rutinas se crea la secuencia Cruz.

Fig. 2.7.E - 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).

Fig. 2.7.F - Rutina en forma de cruz.

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.

Fig. 2.7.G - Contador de impactos.

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.

Utilizando los siguientes elementos aqu mencionados, se pueden crear un par de


rutinas basadas en la Odometra, donde el control del movimiento es definido por
diferentes mtodos:
i.

Por medio de un entorno grfico y en tiempo real.

ii.

Por medio de un control secuencial de las variables de distancia y direccin en


funcin del tiempo.

3.1.1.- Odometra por entorno grafico:


Se comenzar analizando la Odometra, donde el movimiento de Robotino es
controlado por medio de un entorno grfico, en esta rutina se utilizar las tres funciones
antes definidas que crean el sistema de Odometra. Como se puede apreciar en la fig.
3.1.1.A.

Fig. 3.1.1.A.- Odometra por entorno grfico.

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.

Fig. 3.1.1.B.- Ventana de dilogo- Indicador de posicin.


Como se menciono anteriormente en este bloque de funcin llamado Indicar de
posicin, el usuario puede definir y visualizar dentro de la rutina la posicin espacial de
Robotino, a travs de un icono de un robot blanco. Adems de solo poder visualizar se le
permite tambin modificar esa posicin, a travs del movimiento de otro icono de color
azul. El mtodo para dirigir al robot de la posicin inicial a la nueva, se logra arrastrando
con el botn derecho del mouse al robot azul a la nueva posicin espacial, en la que se
desea colocar al robot (Ver Fig. 3.1.1.C). Al realizar ese cambio de posicin el icono del
robot blanco, se mover en direccin a la nueva posicin del icono del robot azul,
provocando que el robot en la realidad siga el patrn de movimiento del icono del robot
blanco, logrando que el movimiento sea igual tanto en el software como en la realidad.

50

Fig. 3.1.1.C.- Ventana de dilogo- Indicador de movimiento- Desplazamiento.


Adems de lo antes mencionado se puede controlar el giro del robot de la
siguiente forma, primero se debe tomar el sacado del Icono del robot azul con el botn
derecho del mouse y girarlo en la direccin del giro deseado. Al haber hecho eso el icono
del robot de color blanco avanzar en direccin del icono del robot azul hasta coincidir en
la posicin, al mismo tiempo el robot en la realidad va a seguir el patrn de movimiento
del icono de robot blanco. (Ver Fig. 3.1.1.D.)

Fig. 3.1.1.D.- Ventana de dilogo- Indicador de movimiento- Giro.


Para despus llegar al bloque Buscador de Recorrido que comprende la funcin
de cambiar la posicin real del robot a la que posee el robot azul en el bloque Indicar de
posicin, calculando la direccin y las revoluciones para llegar a la posicin espacial del
robot azul.

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).

Fig. 3.1.2. A Rutina de Odometra en control secuencial.

Fig. 3.1.2.B. Recorrido en la rutina.

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

Distancia Ingresada /mm Distancia Real /cm


1500
146-147-148
1600
156-154-156
1550
152-153-150
1525
150-149-150
Cuadro 3.1.2.B. Prueba de Distancias.

Es importante mencionar que al ingresar 1,525 (cm), el robot muestra una


respuesta de correccin de posicin.
A) Tercer movimiento:
En el tercer movimiento de 2,5 metros con un ngulo de 45 a la derecha,
este movimiento se logra ingresando dos distancias las cuales son: 2 metros en el
eje X y -1.5 en el eje Y del robot produciendo un movimiento de 2.5 m (Ver Fig.
3.1.2.B.), Como se observo en los anteriores movimientos el problema principal de
este sistema es su exactitud por lo cual en este caso donde se ingresan dos
distancias para crear otra el error aumento en forma exponencial. Ya que al
ingresar esos valores nos dieron una distancia que vara de 237 y 256 (cm) en vez
de 2.5 metros, en el eje X varia de 210 y 226 (cm) en vez de 2 metros y en el eje
Y varia de 82 a 100 (cm) en vez de 1.5 metros. Demostrando un margen de error
demasiado grande principalmente en el eje Y, es importante mencionar que estos
valores incluyen detenciones leves y derrapes.
Por lo cual se probaran varias combinaciones de distancias como se
observan en el Cuadro 3.1.2.C para encontrar las valores reales que nos permitan
encontrar la posicin real, donde se puede apreciar que al ingresar 1750 y 1900
(mm), la distancia real recorrida es de 2,5 metros, en el eje X de 203 (cm) de 2

54
metros y en el eje Y es de 148 (cm) de 1.5 metros. Demostrando ser los mejores
valores de posicin.

Fig. 3.1.2.C. Distancias de la rutina.


Distancias
Distancia
Distancia
Distancia
Ingresadas (X,-Y)
eje X / cm.
eje Y /cm.
Recorrida
/mm.
/cm.
Derecha y Adelante 2.5 (m)= 2 y 1.5 (m)*
210
90
237
Derecha y Adelante
2000 y 1500
212
100
256
Derecha y Adelante
2000 y 1500
226
82
246
Derecha y Adelante
2000 y 1525
223
104
250
Derecha y Adelante
1900 y 1600
220
106
250
Derecha y Adelante
1500 y 2000
179
168
252
Derecha y Adelante
1700 y 1800
199
143
246
Derecha y Adelante
1600 y 1700
187
129
223
Derecha y Adelante
1700 y 1850
200
143
248
Derecha y Adelante
1700 y 1900
197
152
249
Derecha y Adelante
1750 y 1900
203
148
250
Derecha y Adelante
1725 y 1925
203
144
248
Derecha y Adelante
1775 y 1950
204
150
254
Cuadro 3.1.2.C. Prueba de Distancias (* distancia en metros).
Direccin

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).

Fig. 3.1.2.D Ejemplo de mal ingreso de constantes.

Fig. 3.1.2.E. Recorrido del robot en relacin al punto inicial.


Po ltimo es necesario ver que la ms importante limitante adems de la prdida
de certeza en la posicin en grandes distancia que vara desde 20 a 40 [cm], es la falta de
control en tiempo real en este tipo de rutinas, ya que las constantes deben ser entregadas
antes de poner en marcha la rutina.

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]:




  
 

Ecuacin. 3.2.A.- Ecuacin de Tiempo.


A travs de esta ecuacin se puede calcular el tiempo de desplazamiento del robot
en funcin de la velocidad y la distancia que va a recorrer. Para demostrar este mtodo se
le pedir al robot que realice un movimiento predeterminado idntico que los vistos en la
seccin 3.1.2. (Ver Fig.3.2.A)

Fig. 3.2.A. Recorrido a realizar


Para realizar el recorrido antes indicado se cre la siguiente rutina (Ver Fig.3.2.B),
la cual debera realizar el desplazamiento con una exactitud no tan precisa como la
demostrada en las secciones 3.1.1. y 3.1.2. en las cuales su base era la Odometra.

Fig. 3.2.B. Secuencia de recorrido controlado por tiempo

57
A lo cual se explicar brevemente como se programaron los movimientos:
i)

Para realizar el primer movimiento en donde el robot avanza hacia adelante, se


utiliz la Ecuacin. 3.2.A, con una velocidad de 100 (mm/s) y la distancia de 2
metros. Llegando a una tiempo de realizacin de 20 segundos. (Ver Ecuacin
3.2.B.).



  
2000

20  
 
100

Ecuacin. 3.2.B.- Ecuacin de Tiempo

Fig. 3.2.C. Rutina de recorrido de 2 metros en el eje X controlado por tiempo.


Las distancias recorridas son muy diferentes a las calculadas, ya que en la
prctica en vez de recorrer 2 (m), la distancia real recorrida a los 20 segundos fue
de 165 a 167 (cm.). Por lo cual, se hicieron una gran cantidad de pruebas para
determinar la constante de tiempo, que permita llegar a la distancia requerida. As
se lleg a la respuesta de aumentar la constante tiempo de 20 a 24 segundos, lo
cual nos da unos valores entre 196-200 (m) a una velocidad de 100 [mm/s], y a
una distancia de 1 metro a los 12 segundos.
El siguiente cuadro (Cuadro 3.2.A.) demuestra los rangos de distancia
incluyendo derrapes y momentos de no funcionamiento del robot. A distintas
velocidad, tiempos y distancias.

58

Velocidad Distancias Tiempo Distancias reales


/mm/seg.
/m.
/seg.
/cm.
100
1
10
82-84-85
200
1
5
87-90-83
100
2
20
165-167-167
200
2
10
174-181-177
100
1
12
103-100-101
200
1
6
105-106-108
100
2
24
201-196-200
200
2
12
214-215-209
Cuadro 3.2.A. Prueba de distancias (Primer Movimiento).
ii)

Para el segundo movimiento el robot avanza a la izquierda, se utilizar la


Ecuacin. 3.2.A, con una velocidad de 100 (mm/s) y una distancia de 1,5
metros. Lo cual se logra con un tiempo de 15 segundos (Ver Ecuacin 3.2.C).




  
1500

15  
 
100

Ecuacin. 3.2.C.- Ecuacin de Tiempo.

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

Velocidad Distancia Tiempo Distancias reales


/mm/seg.
/m.
/seg.
/cm.
100
1,5
15
133-115-123
200
1,5
7,5
134-120-132
100
1,5
17
147-145-144
200
1,5
8
148-146-147
Cuadro 3.2.B. Prueba de distancias (Segundo Movimiento).
iii)

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:

D1= 2000 [mm], Distancia en el eje X.

D2= 1500 [mm], Distancia en el eje Y.

V1= Velocidad en el eje X (Vx).

V2= Velocidad en el eje -Y (Vy).

Si se observa las distancias a recorrer, son idnticas a las del primer


movimiento y con un sentido contrario al segundo movimiento. Se utilizar la
velocidad y tiempo utilizados para el segundo movimiento, ya que presenta una
mejor respuesta de movimiento y una menor desviacin que el presentado por el
primer movimiento.
Para ello se implementar el tiempo de 15 segundos y la velocidad V2 de 100 [mm/s] en el eje Y, esta velocidad es negativa. Al ser contraria a la velocidad
del segundo movimiento, pero al incluirla en la ecuacin, se ingresa solo 100
[mm/s], que se incluyen estos datos a la Ecuacin 3.2.D.

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.

Fig. 3.2.E. Rutina de recorrido de 2.5 metros en el eje X e Y controlado por


tiempo.
El recorrido de la rutina, como se menciono antes no es igual al que se calcula
matemticamente, ya que en la prctica la distancia real recorrida a una velocidad
de 133 [mm/s] en el eje X, y a una velocidad de -100 [mm/s] en el eje Y a los 15
seg. Dando distancias en la pista de x =117 (cm) e Y de =160 (cm), y una distancia
de 207 de avance.
Por lo cual se realiz una serie de pruebas para verificar si el tiempo es la
constante que causa fallas en el recorrido (Ver Cuadro 3.2.C).

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

Fig. 3.3.1.A.- Rutina de ejemplo.


Al hacer una serie de pruebas para verificar la eficiencia del intervalo de tiempo
por tramo de 0,023 [ms] si era el valor ms adecuado o no, me dieron los siguientes
resultados que se pueden apreciar en el cuadro.
Distancia a recorrer /m. Distancia recorrida /m. Intervalo de Tiempo /mseg.
1
1,18 -1,20 -1,21
0,0225
1
1,12- 1,11- 1,13
0.0230
1
1,12- 1,13 -1,14
0,0250
1
0,98- 0,96 -0,99
0,0280
1
0,99- 1,0 0,97
0,0290
1
0,96- 0,97 -0,95
0,0300
Cuadro 3.3.1.A Tabla de pruebas.
Segn lo visto en el cuadro la mayor respuesta de distancia recorrida en funcin
de la distancia recorrer fue en los intervalos de 0,028 y 0,029 [ms].
Errores en la conexin con el computador, provocan problemas en los clculos que
realiza el programa principalmente en la suma de tramos, ya que este modelo se basa en
el uso de las velocidades reales de los motores. Estos errores pueden ser significativos
desde 2 a 15 cm en las pruebas realizadas anteriormente.

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)

Clculo de cantidad de giros por las ruedas para avanzar un tramo:

Cuando Robotino avanza un tramo de recorrido (W), las ruedas de Robotino


avanzan un tramo de recorrido (S) como se puede apreciar en la figura (Ver
Fig.3.3.2.). En esta figura se puede apreciar las distancias y direcciones en la que
se mueve Robotino para avanzar un tramo en el eje X.

Fig. 3.3.2.A Tramos de recorrido.


Para calcular la relacin de los tramos (W) y (S), se deben tener en
consideracin las siguientes observaciones como son:
 El ngulo entre las ruedas de 120.
 La distancia del tramo M-M es igual a la distancia del tramo A-A (W).
 El ngulo entre los tramos AA y el tramo MA es de 60 .
 El punto de referencia para calcular el tramo (S) es el punto A.

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).

Figura 3.3.2.B. ngulos de los tramos.

Ecuacin 3.3.2.B. Ecuacin para calcular seno del ngulo


A travs de la Ecuacin 3.3.2.
3.3.2.A, se puede calcular lo realmente importante como
son los giros para el tramo (S). Por lo cual se utilizar
utilizar la ecuacin de dimetro de
las ruedas (Ver Ecuacin 3.3.2.C)
U = d (d = dimetros de las ruedas = 80 mm)
Ecuacin 3.3.2.C.
3.3.2.C.- Ecuacin dimetro de las ruedas.
Con el valor de este dimetro es posible calcular la cantidad de giros por
tramo (S), a travs de la Ecuacin 3.3.2.D.

Ecuacin 3.3.2.D. Ecuacin Cantidad de giros.

66
ii)

Clculo de incremento del motor en funcin del recorrido:


Para calcular los incrementos utilizaremos la informacin antes obtenida,

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).

   !"   #     

2048 & 16 & ( & sin60


80-

#           

409,6 & ( & sin60


-

Ecuacin 3.3.2.E. Cantidad de incrementos para los motores.


Ejemplo:
Para este ejemplo usaremos un recorrido de 1 metro de largo para saber la
cantidad de incrementos para los motores, donde utilizaremos lo antes visto. Ya que
nuestra distancia es de 1000 [mm], primero se calcular el tramo de recorrido por las
ruedas(S):
/ 1000 & sin60 866,025 

#     

( & sin 60
1000 & sin 60

3,446 
80 80-

La cantidad de giros para un recorrido de 1000 [mm] es de 3,446 giros, y en el


caso de los incrementos seria de:

#      

409,6 & ( & sin60 409,6 & 1000 & sin60



-

#       112912,16  


Se necesitan una cantidad de 112912,16 incrementos en cada motor para avanzar
1 metros hacia adelante en el eje X.

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)

Fig.3.3.2.C. Rutina de Control por Incrementos.


Ya que se desea calcular la posicin real a travs del motor, se necesita reponer a
cero el contador incremental antes de comenzar el movimiento. Por lo cual se utiliza la
entrada Reset del bloque del Motor 1.
Para calcular los recorridos, se suman los incrementos y se comparan con la
cantidad de incrementos para recorrer la distancia de 1 metro, que son una cantidad de
112912,16 incrementos en cada motor. Por lo que al alcanzar esa cantidad se termina el
programa.
En la realidad por ciertas condiciones esta rutina demuestra diferencias entre la
teora y la prctica, una condicin puede ser el simple hecho que los motores no estn a
una distancia exacta de 120 grados, sino que es aproximada. El siguiente cuadro (Cuadro
3.3.2.A) demuestra lo dicho anteriormente.
Distancia a recorrer /cm.
Incrementos
Distancia recorrida /cm.
100
112912
117 [
100
110912
103
100
110012
100
Cuadro 3.3.2.A.- Resultados de las Pruebas.
Por lo cual para recorrer una distancia de 1 metro se necesitan aproximadamente
110012 incrementos en cada uno de los motores 1 y 3.

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

Fig. 4.1.1.A Principio de funcionamiento.


El LED infrarrojo, emite el haz de luz a travs de una pequea lente convergente
que hace que el haz emisor llegue de forma paralela al objeto. Cuando la luz choca con
un obstculo, una cierta cantidad de luz se refleja, si el obstculo fuera un espejo
perfecto, todos los rayos del haz de luz pasaran, y sera imposible medir la distancia. Sin
embargo, casi todas las sustancias tienen un grado bastante grande de rugosidad de la
superficie que produce una dispersin hemisfrica de la luz (la llamada reflexin no
terica). Alguno de estos haces de esta luz rebota hacia el sensor que es recibido por la
lente.
La lente receptora tambin es una lente convexa, pero ahora sirve para un
propsito diferente, Acta para convertir el ngulo de posicin. Si un objeto se pone en el
plano focal de una lente convexa y los otros rayos de luz paralelos en otro lado, el rayo
que pasa por el centro de la lente atraviesa inalterado o marca el lugar focal. Los rayos
restantes tambin enfocan a este punto.

72

Fig. 4.1.1.B Principio de funcionamiento.

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.

Fig. 4.1.3.A Seguidor de paredes.


El diseo debe cumplir con el mnimo de 3 condiciones.
1.- Capaz de establecer una pared (lado derecho del Robotino), estando en un lugar sin
tener el contacto directo con ella, por ej. En la mitad de una sala.
2.- Ya teniendo esta pared reconocida con los sensores de distancia, pueda mantener una
distancia predeterminada con esta.
Y 3.- una vez establecida la pared, que sea capaz de mantener la cmara al frente del
movimiento, en el contexto que pueda enviar imgenes en vivo, del movimiento y adems
sea capaz de esquivar posibles obstculos, que pueda encontrar en su recorrido con
conjunto con la pared.
As se obtuvo la siguiente solucin, desglosada por bloque y su funcionalidad dentro del
programa.

74

Fig. 4.1.3.B Ubicacin sensores.


La eleccin de los sensores se realizo discriminando por las condiciones
establecidas anteriormente, de tal manera que podamos cubrir todas las necesidades de
movimiento.

Identificacin de pared. Robotino avanza en un movimiento de 45 hacia la


derecha hasta encontrar la pared, esto lo realiza manteniendo el sensor derecho
en un rango de valores.

Fig. 4.1.3.C Identificacin de pared.

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.

Seguimiento de pared y correccin de direccin. Una vez identificada la pared,


se realiza una comparacin de 2 sensores para la correccin de la direccin, esto
se realiza para mantener la cmara siempre apuntando hacia delante y en la
posibilidad de enviar imgenes a travs del AP de Robotino.

Fig. 4.1.3.E Seguimiento de pared y correccin de direccin.


Si los valores estn dentro del rango del sensor 8 (entre 10 y 20 Cm), se desactiva
el movimiento hacia el costado y solo realiza el movimiento de avance.
La correccin de la posicin la realiza con una substraccin de 2 sensores del lado
derecho (7 y 9), si la resta es menor que 0.15 entre ambos realiza la multiplicacin de
rotacin, en sentido negativo o positivo, segn la resta de ambos sensores muestre.

Fig. 4.1.3.E Simulacin.

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.

Pared u obstculo frontal. En el caso de que existiera un obstculo frontal que


entorpezca el movimiento del equipo, se integra otra rutina ajena a la del
seguimiento de pared, respondiendo a la condicin que si los 3 sensores frontales
entreguen datos de presencia de obstculo.

Fig. 4.1.3.E Pared u obstculo frontal.


Si nuestros sensores detectan presencia del obstculo, a una distancia relativa
(Menor a 11 Cm.) enva directamente a la salida el programa y comienza el siguiente
programa, que es una rotacin sobre su propio eje. Esta rotacin se detiene hasta que el
sensor frontal quede con una lnea vista despejada mayor a 20 centmetros, teniendo esta
condicin cumplida, enva a la salida al comienzo del primer programa para que pueda
seguir la pared, con las correcciones de trayectoria y la distancia definida.

77

Fig. 4.1.3.F Secuencia de rutinas.

Fig. 4.1.3.G Simulacin.

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.

4.2.1.- Principio de Funcionamiento.


Los sensores de reflexin directa difusa, tienen la particularidad de tener emisor y
receptor dentro del mismo encapsulado, basndose en un diodo emisor de luz, como
emisor y un fototransistor como receptor. Adems, son sensores cuyo ngulo de emisin
es muy grande y los rayos de luz se reflejan en mltiples direcciones. Por ello solo una
parte de los salen del emisor alcanzan el receptor despus de reflejarse en el objeto a
detectar.
Al tener un haz de luz muy grande reflecta muy poca luz infrarroja en la recepcin,
por lo cual mayoritariamente se utilizan como sensores discretos (Salida Lgica). Existe
una zona muerta en la que no se garantiza la deteccin del objeto (Fig.4.2.1.A). Dicha
zona debe ser tomada en cuenta cuando se pretende detectar objetos que estn situados
muy prximos a la fotoclula.

Fig. 4.2.1.A Principio de funcionamiento.

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).

Fig. 4.2.1.B. Extensin fibra ptica.

Fig. 4.2.1.C Aplicacin sensor difuso.

80
4.2.3.- Construccin.

Fig. 4.2.3. A Construccin.


La modulacin de la luz del LED simplemente significa encenderlo y apagarlo en
alta frecuencia. Su eficiencia se basa en que el fototransistor del sensor y el amplificador
estn sintonizados a la frecuencia de modulacin, dando como resultado, que nicamente
la luz modulada es amplificada, y toda la otra luz que alcanza al fototransistor es ignorada.
4.2.4.- Ejemplo.
a) Deteccin de objetos y seguimiento.
El diseo del programa a utilizar se baso solamente en el uso de los 2 sensores de
reflexin directa, que trae como accesorios el equipo Robotino. Para ello se conecto en su
parte frontal a la entrada digital que el sistema tiene para estos accesorios.

Entrada de sensores. El inicio de la secuencia se inicia al tener en contacto los 2


sensores (ubicados c/u al costado de Robotino), si uno de ellos detecta la
presencia de algn objeto o si bien ambos estn con nivel lgico bajo, lo que
indica que no existe presencia de algn objeto.

Fig. 4.2.4.A Entrada de sensores.

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.

Fig. 4.2.4.B Secuencia de rutinas.

Deteccin sensor Derecho. Si este sensor activa la seal de entrada digital, se


direcciona al giro derecho, el cual solamente realiza el giro sobre su propio eje,
hasta que ambos sensores obtengan valores lgico alto. En ese caso vuelve al
inicio del programa a la espera que el objeto se mueva o permanece inmvil.

Fig. 4.2.4.C Deteccin sensor derecho.

82

Deteccin sensor izquierdo. Al igual que en el caso del sensor derecho, al


detectar el sensor izquierdo, realiza un giro hacia la izquierda sobre su propio eje,
hasta que ambos sensores entreguen valores lgicos altos. En ese caso vuelve al
principio del programa a la espera que el objeto se mueva o se queda inmvil.

Sin deteccin de ambos sensores. En este caso que no se tenga presencia en


la distancia de los sensores, o que ninguno pueda discriminar algn objeto, se
inicia el subprograma de avance, lo que hace el realizar un movimiento en el eje XPositivo (hacia delante), hasta que alguno de los sensores entregue algn dato de
obtencin de obstculo o objeto. De esta forma, se tiene 3 opciones de sensado.

1.- Sensor derecho: Inicia giro derecha.


2.- Sensor izquierdo: Inicia giro izquierda.
Y 3.- Ambos sensores: Se enva al inicio del programa de entrada de sensores.

Fig. 4.2.4.D Sin deteccin de varios sensores.

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.

Fig. 4.3.1.A - Principio de funcionamiento.


Este es el principio que usan la mayor parte de los sensores inductivos empleados
en la industria. En ellos la bobina sensor est provista de un ncleo descubierto hacia el
lado de deteccin, al aplicar tensin al sensor la bobina produce un campo magntico
alterno de alta frecuencia, dirigido hacia el lado activo o sensible.

84
4.3.2.- Construccin.

Fig. 4.3.2.A Construccin.


Al acercarse un metal al lado activo, y el objetivo entra al campo, circulan
corrientes de eddy dentro del objetivo, las cuales influyen en el circuito oscilador,
reduciendo la amplitud de oscilacin y reduciendo el consumo de corriente del sensor.
Estas seales son tratadas por el circuito rectificador y comparador, emitiendo la
correspondiente seal de salida.
Conforme el objetivo se aleja del sensor, la amplitud del oscilador aumenta. A un
nivel predeterminado, el circuito trigger conmuta el estado de la salida del sensor de
nuevo a su condicin normal.

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.

Fig. 4.3.3.A - Deteccin de metales e incremento de velocidad.

Deteccin de metales. Utiliza un demultiplexor de tal manera que el contador


incremental, vaya automticamente seleccionando la salida segn las veces que
pasa por algn tipo de metal, en este caso zinc con aluminio que a una distancia
de 2 cm, tiene un valor de volt cercano a 6 volt. Como en esta configuracin el
sensor de metales entrega un valor descendiente desde 9.96 Volt, se integro un
comparador con un lmite menor que 9 volt, as se asegura que alguna variacin
de voltaje, sea identificado e incremente la salida demultiplexor, hasta que el
ultimo metal, lo enve directamente a la salida y detenga el 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.

Cmara: Nos entrega la imagen y video.

ii.

Segmentador: Nos permite elegir el segmento que deseamos de la


imagen.

iii.

Extractor de segmentos: Identifica el segmento antes seleccionado y nos


entrega informacin de la identificacin del segmento.

Para conocer las principales caractersticas de estos bloques se pueden buscar


en el Anexo 2 (A.2.5.1. Segmentador y A.2.5.2. Extractor de Segmentos).
Primero se necesita la informacin de la webcam que es entrega por el bloque de
funcin Cmara para luego elegir el segmento a travs del bloque Segmentador como
se aprecia en la imagen. (Ver Fig. 5.2.A).

88

Fig. 5.2.A Conexin de Bloques.


El bloque Cmara nos entregara la imagen en diferentes modalidades (Ver. Fig.
5.2.B) [9] y resoluciones. Por lo cual usaremos la modalidad RGB y una resolucin de
320x240 (Recomendada para reconocer segmentos).

Fig. 5.2.B Modalidades de la cmara.


Con la imagen lista del elemento (Fig. 5.2.C), se debe elegir el segmento a
reconocer utilizando el bloque Segmentador, los pasos a seguir son los siguientes:
Seleccionar colores:
Para seleccionar los colores se deben seguir los siguientes pasos (Ver Fig. 5.2.D.):
1.- Hacer click en el smbolo de la cmara para as fijar la imagen con la que se desea
trabajar.
2.- Para seleccionar el segmento de color, se debe elegir la forma de la herramienta
dependiendo de la imagen, las formas que ofrece el programa son un rectngulo y un
crculo.

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.

Fig. 5.2.C. Imagen a segmentar.

Fig. 5.2.D. Imagen segmentada.

Al tener la imagen segmentada, es posible ver solo el segmento que


seleccionamos (Ver Fig. 5.2.E), es posible verlo presionando el botn indicado con (1) en
la imagen. Si no est completo el segmento total y solo se ve una parte es posible filtrar el
segmento haciendo un doble click en la posicin (2), haciendo aparecer la ventana donde
es posible modificar los canal del segmento (Ver Fig. 5.2.F).

Fig. 5.2.E Segmento de la imagen.

90

Fig. 5.2.F. Parmetros del canal.


En esta ventana, es posible modificar los parmetros de los canales RGB para
cambiar el color del segmento. Por ejemplo, al colocar al mximo todos los canales nos
daran una imagen como esta (Ver Fig. 5.2.G), Sin embargo, con un buen uso de los
canales es posible llegar a un filtrado, en donde el segmento a mejorado un poco en
comparacin a su estado inicial (Ver Fig. 5.2.H).

Fig. 5.3.G Imagen de referencia.

Fig. 5.2.H. - Imagen segmento filtrado.

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:

Fig. 5.2.I- Conexin de bloques.


El bloque Extractor de Segmentos, posee la caracterstica de identificar el
segmento en la imagen del video. Eso es posible ya que el bloque Segmentador le enva
la informacin de la imagen actual y de todos los segmentos antes seleccionados por el
bloque.
Los pasos para elegir el segmento a identificar por el bloque Extractor de
Segmento son los siguientes (Ver Fig. 5.2.I):
1.- Primero se debe elegir el segmento a identificar de la lista de segmentos antes
seleccionados (A).
2.- Al elegir el segmento se observa en la imagen una cruz roja que indica el centro de
gravedad del segmento (B).
3.- Para poder ver la imagen completa se debe tener activo el icono (C) de la figura (Fig.
5.2.I.), ya que al no estar activo, solo se observa el segmento detectado de la imagen
como se observa en la otra figura (Fig. 5.2.J).

Fig. 5.2.I. Ventana de dilogo del bloque Extractor de Segmentos.

92

Fig. 5.2.J. Ventana de dilogo del bloque Extractor de Segmentos.


El bloque de funcin adems de indicar que el segmento fue encontrado, dar a
conocer el rea en pixeles del segmento encontrado (como se observa en la Fig.5.2.J la
imagen del lado izquierdo) y la posicin del centro de gravedad en funcin del eje X e Y,
con valores en referencia a pixeles con un valor del eje Y positivo y negativo mximo de
120 y un valor de eje

X positivo y negativo mximo de 160 si se trabaja con una

resolucin de 320x240 y que se detalla en la Fig.5.2.L.

Fig. 5.2.L. Eje de posicin del centro de gravedad.


Adems como el bloque Segmentador permite seleccionar varios segmentos, es
posible identificar varios segmentos con la cmara, dndole a cada extractor de
segmentos la orden de identificar un segmento especfico (Ver Fig. 5.2.L).

93

Fig. 5.2.L. Ejemplo de rutina.

Ejemplo uso de la cmara:


Esta secuencia realiza la accin de avanzar en lnea recta y para luego, detenerse
y girar 360 en busca del segmento, al encontrar el segmento se acerca o alejarse a una
distancia predefinida, para despus enfocarlo en el centro de la cmara (A). Pero al no
encontrarlo contina avanzando en lnea recta (B) y vuelve a comenzar la secuencia.

Fig. 5.2.M. Secuencia de la rutina.


1.- Buscador de Segmentos en Rutina.
Al iniciar la rutina busca el segmento girando 360 sobre su eje, al encontrar el
segmento este indica su posicin y llama a la rutina Acercarse y alejarse del segmento a
travs del bloque Salida A. Pero al no encontrarlo llama a la siguiente rutina Avanzar
en Eje X a travs del bloque Salida B.

94

Fig. 5.2.N. Rutina Buscador de segmentos en rutina.

2.- Acercarse y alejarse del segmento.


Esta rutina hace que el robot avance hasta el segmento localizado por la rutina
anterior, al llegar a una distancia prudente se detiene, en caso de estar muy cerca del
segmento se aleja a una distancia predefinida.

Fig. 5.2.. Rutina Acercarse y Alejarse del segmento.

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.

Fig. 5.2.O. Rutina Acercarse y alejarse del segmento.


4.- Avanzar en eje X
Esta rutina cumple la funcin de hacer al robot avanzar, ya que al no encontrar el
segmento en la zona de bsqueda de la anterior rutina Buscador de segmentos en rutina
se avanza en el eje X, para volver a detenerse e intentar encontrar el segmento
nuevamente una y otra vez hasta encontrarlo.

Fig. 5.2.P. Rutina Avanzando en eje X.


Esta es una rutina muy simple en un ambiente muy controlado, ya que se cre con
el fin de explicar conceptos bsicos del funcionamiento de la cmara, algunos
movimientos tiles y la mejor velocidad de bsqueda de segmentos que es de 100 [mm/s].

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.).

Fig.5.3.A. Conexin de bloques.


Al procesar una imagen de la cmara es importante utilizar la modalidad correcta,
por lo cual se mostrar la deteccin de lnea en cada modalidad, ordenando las imgenes
desde los mejores resultados a los peores.

Fig.5.3.B. Deteccin de lneas en modalidad YCbCr.

Fig.5.3.C. Deteccin de lneas en modalidad RGB.

97

Fig.5.3.D. Deteccin de lneas en modalidad HLS.

Fig.5.3.E. Deteccin de lneas en modalidad HLV.


Despus de ver las diferentes modalidades se lleg a la conclusin que la modalidad
YCbCr y RBG, son las que presentaron mejores resultados. Por lo cual analizaremos la
respuesta de estas dos modalidades en funcin a una lnea y un relieve en la imagen.
En la modalidad RGB:

Fig.5.3.F. Deteccin de lnea en modalidad RGB.

98
En la modalidad YCbCr:

Fig.5.3.G.- Deteccin de lnea en Modalidad YCbCr.


Tambin es posible modificar la deteccin de lnea para filtrar la imagen, a travs
del tipo de canto. Ya que esta indica la direccin de la luz desde donde se comienza a
rastrear la lnea: Si es de la zona oscura a la clara una lnea; o de la zona clara a la
oscura una lnea. Se puede apreciar en la figura como la lnea de relieve no es marcada al
cambiar el tipo de canto (Ver Fig.5.3.H).

Fig.5.3.H.- Deteccin de lnea segn el tipo de canto.


La deteccin de la lnea nos permite ver en la ventana de dilogo del bloque, las
lneas detectadas de color blanco y la lnea reconocida como tal con un una cruz de color
rojo (Ver Fig.5.3.I (A)). As tambin el bloque nos dar la informacin de la posicin de la

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).

Fig.5.3.I.- Ventana de dilogo Detector de Lneas.

Ejemplos Detector de Lneas:


Ejemplo 1:
Esta es una rutina simple que nos permite seguir una lnea que sea ancha y con
una curvatura pequea, ya que su control sobre el giro es muy bsico. Por lo cual en
variadas condiciones de giro puede perder de vista la lnea.
Aqu la velocidad de giro es el inverso numrico de la posicin de la lnea en la
cmara.

Fig.5.3.J Rutina de ejemplo.

100

Fig.5.3.K - Simulacin de Deteccin de lnea.


Ejemplo 2:
Este ejemplo intenta demostrar que al aumentar el control del rango de posicin de
lnea, es posible tener un control ms acabado del movimiento del robot. Adems de darle
velocidad constantes de movimiento y giro, que le permiten seguir lneas con una mayor
curvatura a una velocidad uniforme y mayor.
Aqu la velocidad de giro siempre es de 20 [mm/s] y la velocidad en el eje X puede
ser de 100 a 200 [mm/s] (Recomendable), aunque puede ser mayor todo depende de la
pista y la lnea a detectar.

Fig.5.3.L Ejemplo de deteccin de lneas.


Esta rutina se puede simplificar incluyendo las constantes dentro de los bloques de
funcin para su entendimiento y uso.

Fig.5.3.M -Ejemplo con constantes internas en los bloques.

101

Fig.5.3.N -Simulacin de deteccin de lnea.

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.

6.1.1.- Reglas del Juego.


Las normas siguen las normas de la IHF (Internacional de hockey sobre hielo
Federacin), pero se simplifican. Los reglamentos se dividen en las siguientes secciones:

Reglas del juego

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

oponente del equipo antes de que el disco ha rebasado completamente la zona de la


defensiva azul, entonces el jugador est off-side.
El rbitro detendr el juego y se reiniciar el juego con en el prximo saque punto fuera
de la zona defensiva

105
6.1.2.- Campo de Juego.
El campo de juego se distribuye de la siguiente forma.

Fig. 4.1.1.A - Campo de Juego.


Se distribuye en 2 zonas, que segn la orientacin del equipo, se subdivide en
zona de ataque y en zona de defensa. Ambos arcos se encuentra a la misma distancia del
punto central, pero en esta ocasin con diferente fondo de arco para evitar confusin en la
deteccin del arco contrario, con la utilizacin de visin artificial y deteccin de colores.
Adems, cada rea de subdivide a travs de la lnea azul (cinta metlica) en 2
reas, y los puntos de penales definidos en color rojo para su ejecucin.
La distribucin de los jugadores se realizara segn la conformidad de la estrategia
de juego a implementar, que pueda o no integrar un jugador a las funciones de arquero, o
de manera contraria, todo el equipo (Mx. 3 unidades) en faenas de ataque, como de
defensa, ante el ataque del equipo contrario o la recuperacin del disco.

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.

Fig. 6.1.3.1.A - Configuracin inicio juego.

Fig. 6.1.3.1.B - Vista cmara Robotino.


La lgica dira que ante el escenario inicial es el ataque directo hacia el arco y esta
ser la primera estrategia, ataque directo.
1. Ataque frontal. Lo primero que realiza Robotino es ubicar el arco contrario con el
color de fondo, e inicia la secuencia con un avance directo, hasta que detecta la
presencia de metal que es la zona de defensa del equipo contrario.
2. Entrada zona de defensa equipo contrario. Al actuar el sensor inductivo,
entrega el dato que ingreso a la zona de defensa del equipo contrario, de tal
manera que se prepara la hacer el lanzamiento.

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).

Fig. 6.1.3.1.C - Resumen movimientos ejecutados.

Fig. 6.1.3.1.D - Rutina ataque frontal.

108

Fig. 6.1.3.1.E - Lanzamiento disco.

Fig. 6.1.3.1.F - Escaneo y retroceso linea de defensa.

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.

Fig. 6.1.3.2.A - Vista lateral y deteccin del arco.


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.

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).

Fig. 6.1.3.2.B - Vista superior.

Fig. 6.1.3.2.C - Resumen movimientos ejecutados.

111

Fig. 6.1.3.2.C - Avance 45.

Fig. 6.1.3.2.D - Reconocimiento de arco y avance.

Lanzamiento ver Fig. 6.1.3.1.E

Retroceso y posicion linea de defensa ver Fig. 6.1.3.1.F

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.

Fig. 6.1.3.2. A - Inicio de juego y deteccin de oponentes.


2. Maniobras para obstculos.

Obstculo derecho. Para la presencia de oponentes al costado frontal


derecho, se tiene el sensor 8 9, para a una cierta distancia (menor a 10 Cm.)
si alguno de estos sensores, a esto sumando el avance hacia el arco
contrario, realiza un deslizamiento a la izquierda, mientras detecta presencia
de los sensores. Sin detener el avance.

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.

Fig. 6.1.3.2. B - Deteccin de obstculos, Avance izquierda.

Obstculos a ambos lados. En este caso si existe presencia de oponentes a


ambos lados, mientras se realiza el movimiento de avance. Si Ambos lados
laterales envan informacin de oponentes, ignora cualquier instruccin de
desvi y avanza hacia la zona de defensa del equipo contrario.
Todas estas rutinas terminan cuando, Robotino llega a la zona de defensa.
Las dems rutinas se realizan de igual forma que las anteriores

3. Entrada zona de defensa equipo contrario. Ver Fig. Fig. 6.1.3.2.D


4. El lanzamiento. ver Fig. 6.1.3.1.E
5. Termino de la ejecucin. Ver Fig. Fig. 6.1.3.1.F.

Fig. 6.1.3.2.C - Deteccin de obstculos.

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.

Fig. 6.1.4.1.A - Vista cmara disco de juego.


3. Recuperacin del disco. Una vez cerca del disco, activa el sensor frontal (sensor
1), para la deteccin del disco y as poder verificar que efectivamente el disco est
en posesin de Robotino y as comenzar el ataque al arco contrario.

115

Fig. 6.1.4.1.B - Rango acotado de pixeles para movimiento.

Fig. 6.1.4.1.C - Rango acotado de pixeles para movimiento.

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.

Fig. 6.1.4.1.A - Arquero con seguimiento de disco.

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.

Tener una entrada de datos ya sea a travs de software o bien directamente a


la unidad.

Almacenamiento con prioridad segn estantes y espacio destinados.

Tener un movimiento autnomo basado en sensado y evitar posibles choques.

Para ello se diseo el siguiente escenario basado en una sala con 3 estantes.

Fig. 6.2. A - Vista simulacin Robotino SIM.


En donde las marcas negras representas, huinchas metlicas pegadas sobre el
piso, que indican la direccin del estante, entrada de estante y posicin de entrega de
paquetes, y de igual manera, la salida y entrada a la sala.

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

Fig. 6.2.3. A - Substraccin de sensores (correccin de posicin).

Fig. 6.2.3. B - Movimiento horizontal hacia la ubicacin del estante.


6.2.4.- Entrega de Paquetes.
Una vez identificado el estante, a travs de un contador e identificacin de metales
con el sensor inductivo, vuelve a realizar una correccin de posicin a travs de la
substraccin de sensores.
Ya corregido la ubicacin hacia el estante, realiza un avance con el contador de
metales, segn la entrada de datos la compara con el nmero de huinchas detectadas, y
enva a la salida del programa. Esta salida de programa independiente del contador de
metal enva al inicio del posicionamiento de entrega/retiro de paquetes.
La entrega como el retiro de los paquetes la realiza, efectuando un giro hacia la
posicin del estante, verifica a travs de sensores frontales que la ubicacin con respecto
al estante es la correcta y engancha el paquete a un soporte adosado al estante, de tal
forma que, quede sujeto a la superficie y evitar su desplazamiento en la maniobra. De
igual manera, el retiro de paquetes lo realiza desenganchando el paquete del soporte y
liberndolo para su traslado a borde del vehculo autnomo sin conductor.

120

Fig. 6.2.4. A - Entrega/retiro de paquetes con correccin de posicin.

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.

6.2.5. Retiro del estante y reinicio.


Una vez hecho la entrega/retiro del paquete, de su misma posicin retrocede hasta
tener una distancia con el otro estante igual a 7 Cm, con sus sensores traseros. Una vez
hecha esta maniobra, realiza hacia la entrada del estante un giro sobre su eje en 90
grados, para perfilarse hacia la entrada con su webcam hacia ella e inicia en forma
consecutiva el avance hacia la entrada, pero en forma anloga al inicio.

Captulo VII
Conclusiones y Lneas
de trabajo futuro

121

122
Conclusiones

Analizando el trabajo realizado, se puede decir que Robotino es un robot


multidisciplinario muy didctico, que puede ser utilizado para la enseanza de
variadas reas de la robtica como es la Visin Artificial,

Inteligencia

Computacional, aplicaciones a Redes Neuronales y otros. Que permiten


desarrollar en el usuario desde un conocimiento bsico hasta uno avanzado, a
travs de una herramienta de programacin muy sencilla como es su software
Robotino View, que permite crear rutinas en un ambiente muy simple, pero a la
vez bastante limitado con el uso de bloques de funcin lgicos.

La conectividad por WiFi de Robotino, permite tener una gran capacidad de


intercambio de datos en tiempo real: como video, valores de los encoders y
sensores, logrando crear una potente interaccin por parte del usuario en el
control del equipo. Pero esa misma conectividad es tambin un problema, ya que
el equipo al encenderse se conecta con todos los equipos que se encuentran a su
alrededor. Adems de una serie de fallas en la comunicacin e intervalos de
conexin nula por parte del access point de Robotino, para lo cual rutinas en
donde el clculo es realizado por el programa presentan un error muy grande si la
conexin no es la adecuada, para ello se propone modificar su Access Point con
una configuracin de seguridad WEP o WPA [11], segn los niveles de seguridad
que requiera el usuario, adems de una acertada eleccin de una tarjeta
compatible para el uso del equipo, y as reducir las interferencias, mejorar la
conexion y errores en la ejecucin.

En lo referente al movimiento, al estar los motores de cada rodillo (rueda) en una


ngulo de 120 entre ellos, es posible crear un mov imiento omnidireccional. Pero
en la prctica estos motores no estn a un ngulo con tanta exactitud, logrando
una serie de desviaciones en su recorrido que son ms significativas a mayores
distancias, pero hay que integrar a cada rutina que necesite precisin a largas
distancias (mayores a 1 metro) un lazo de control en el motor que muestre mayor
desviacin de trayecto, a travs de conteo de incrementos o de velocidades
reales.

123

Al hablar de Visin artificial, es necesario tomar conciencia que la cmara presenta


un serio problema de interferencia por luz, adems que el alcance de la cmara a
un objetivo no es mayor a 90 [cm], ya que a mayor distancia tiene problema en la
identificacin de colores. Para ello se recomienda, manejar el equipo en ambientes
de luz controlada, para la reduccin de sobras y zonas oscuras que entorpezcan la
capacidad de la cmara, de igual la utilizacin de sensores de colores ayudaran a
la deteccin de colores en la navegacin autnoma.

En referencia a los problemas del equipo se pueden hablar de falencias, ya que


presenta mltiples fallas cmo la conectividad, la transmisin de datos y el desvi
movimiento lineal, que provocan problemas en la creacin, precisin y realizacin
de las rutinas. Con lo cual se sugiere, utilizacin de sensores o actuadores
externos, aprovechando la entrada de dispositivos que permite tanto seales
anlogas y digitales. Con esto, se mejorara y se potencia el uso de Robotino para
aplicaciones prcticas como plataforma omnidireccional.

Lneas de trabajo Futuro


Dentro de las lneas de trabajo futuro con Robotino se encuentran:

La creacin de trabajos de titulacin en lgica difusa y redes neuronales utilizando


a Robotino como modelo de Investigacin.

Trabajos de estudiantes en cursos o Tesis a travs de la programacin de


Robotino en el Lenguaje C++.

La implementacin de una conexin entre Robotino y el PLC Siemens 7, para la


realizacin de mltiples rutinas en experiencias de cursos de Control Automtico y
Robtica.

La creacin de una serie de experiencias y actividades, utilizando la programacin


de Robotino a travs de varios programas que presentan compatibilidad del
fabricante Festo Didactic como es: Matlab y Labview.

124

La creacin de lneas de investigacin basadas en trabajos de titulacin para


realizar tcnicas robticas en trabajo colaborativo con los diferentes equipos del
Instituto de Electricidad y Electrnica como: E-Puck y Khepera III.

La realizacin de una serie de pruebas que le permitan a Robotino incorporar una


variedad mucho mayor de sensores que los incorporados por el fabricante para
darle al equipo un nuevo mundo de aplicaciones. A travs de sensores de: Color,
temperatura, gas, acelermetros y otros.

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.

Chidentree Treesatayapun, Arturo Guzman-Carballido, Linearization based on


Fuzzy Rules Emulated Networks for nonaffine discrete-time systems controller,
Department of robotic and a manufacturing CINVESTAV-IPN, Mexico, Junio
2006.

Martin Wojtczyk, Alois Knoll, UTILIZATION OF A MOBILE MANIPULATOR


FOR AUTOMATING THE COMPLETE SAMPLE MANAGEMENT IN A
BIOTECH LABORATORY. A REAL WORLD APPLICATION FOR SERVICE
ROBOTICS. Department of Informatics, Technische Universitat Aanchen,
Alemania, Enero 2004.

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.

Michael Marszalek, Martin Eder, Andreas Tropschug, Alois Knoll, Mobile


Robots for the Simultaneous Exploration and 2D Determination of Radioactivity,
Department of Informatics, Technische Universitat Munchen, Alemania.
Febrero 2009.

Simon Kracht, Carsten Nielsen, Robots in Everyday Human Environments - On


Platform Development and Behaviour Dependent Control, Automation &
Control. Aalborg, Dinamarca. Enero 2010.

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.

Esta informacin fue obtenida de:




(Informacin del manual 544305_Robotino_ESFR.pdf)




( Festo Didactic GmbH & Co. KG 544305)

1.1.- Robotino.
Datos tcnicos Robotino:

Cuadro 1.1 Datos Robotino.

130
1.2.- Unidad de Accionamiento.
Datos rendimiento del motor:

Cuadro 1.2. -. Datos Motor

Datos Tcnicos del Reductor:

Cuadro 1.3 Datos Reductor

131
Datos del Rodillo Omnidireccional:

Cuadro 1.4 Datos Omnidireccional

1.3.- Webcam.
Modulo de la Cmara:

Cuadro 1.5 Modulo Cmara.

132
1.4.- Sensor Inductivo.

Sensor de Proximidad Inductivo Analgico

Cuadro 1.6 Sensor Inductivo.

133
1.5.- Interface E/S.

Asignacin de Bornes del Interface E/S

Fig. 1.1 Interface E/S


(Informacin del manual 544305_Robotino_ESFR.pdf)
( Festo Didactic GmbH & Co. KG 544305)

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

Cuadro 2.1- Orden bloques de funcin


A.2.1.- Lgica.
En este campo del software se van a representar todas las funciones en bloques
que aplican a la lgica electrnica, como son las compuertas, contadores y otros.
A.2.1.1.- Contador Incremental.
El bloque Contador incremental cumple la funcin de llevar un conteo o registro
de los eventos de la entrada del bloque, el conteo es a travs de la suma de los eventos.
Es bastante til en aplicacin en donde se debe llevar un registro exacto del nmero de
eventos, para as realizar acciones predeterminadas.

Fig. 2.1.1.A Icono Contador Incremental.

136
Entradas.
Entrada
Reset

Entrada del contador


Resetea el contador si el valor es <=0.

Salida.
Salida

Valor del contador


Ventana de dilogo en el software:

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

Contador incremental: aumenta el valor del contador.


Contador decremental: disminuye el valor del contador.
Cambio del valor de conteo si se cumple lo siguiente:
E1(t)<1 y E1(t+1)>1
Cambio del valor de conteo si se cumple lo siguiente:
E1(t)>1 y E1(t+1)<1
Coloca el valor en 0 al iniciar el programa

A.2.1.2.- Contador Decremental.


El bloque Contador Decremental realiza la misma funcin que el Contador
Incremental de llevar un conteo o registro de eventos, pero con la nica diferencia que el
valor es disminuido o restado en una unidad por evento ocurrido.
Es posible cambiar de contador incremental a decremental a travs de la ventana
de dilogo en la opcin Seleccin de tipo.

Fig. 2.1.2 Icono Contador Decremental.

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.

Fig. 2.1.3.A Icono Demultiplexor.


Entradas.
E1

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.

Ventana de dilogo en el software:

Fig. 2.1.3.B
Dentro de la ventana de dilogo:
Salidas

Modificar la cantidad de salidas: Min. 2; Mx. 20

138
A.2.1.4.- Multiplexor.
Este bloque Multiplexor tiene la funcin de crear un enlace entre una salida y una
entrada seleccionable.

Fig. 2.1.4.A Icono Multiplexor.


Entradas.
Seleccin Determina la seal de entrada que se enva hacia la salida.
Si la seleccin es < a la cantidad de entradas, la seal de entrada E1 se enva
hacia la salida.
Si la seleccin es < n + 0,5 y > n 0,5, la seal de entrada En se envahacia la
salida.
Si la seleccin es > a la cantidad de entradas, la ltima seal de entrada se
enva hacia la salida.
E1
Seal de entrada 1
E2
Seal de entrada 2
En
Seal de entrada n

Salida.
A1

Seal de salida

Ventana de dilogo en el software:

Fig. 2.1.4.B
Dentro de la ventana de dilogo:
Entradas

Modificar la cantidad de entradas: Min. 2; Mx. 20

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.

Fig. 2.1.5.A Icono AND.


Entradas.
1
2
3
4

Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a a


se le atribuye el valor lgico 1.
Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a b
se le atribuye el valor lgico 1.
Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a c
se le atribuye el valor lgico 1.
Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a d
se le atribuye el valor lgico 1.

Salida.
Q

Si todas las entradas poseen un lgico 1 la salida es 1, de lo contrario es 0.

Ventana de dilogo en el software:

Fig. 2.1.5.B
Dentro de la ventana de dilogo:
Seleccin de tipo

Se puede cambiar a una compuerta AND, AND FL, NAND, NAND


FL

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.

Fig. 2.1.6. Icono AND FL.


Las entradas, las salidas y las parmetros son iguales a los de AND. Excepto en el
concepto de considerar los flancos en la salida.
A travs de la ventana de dilogo es posible pasar de una compuerta AND a una
AND FL, una NAND y una NAND FL.

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.

Fig. 2.1.7. Icono NAND.


Las entradas siguen las mismas condiciones que en la funcin AND, pero en el
caso de las salidas siguen el patrn, de que si el valor lgico es 0 en todas las entradas
eso da un valor es 1, de lo contario la salida es un valor 1.

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.

Fig. 2.1.8. Icono NAND FL.


Las entradas, las salidas y las parmetros son iguales a los de NAND. Excepto en
el concepto de considerar los flancos en la salida.
A travs de la ventana de dilogo es posible pasar de una compuerta AND a una
AND FL, una NAND y una NAND FL.

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.

Fig. 2.1.9.A Icono OR.


Entradas.
1

Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a a se le


atribuye el valor lgico 1.
Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a b se le
atribuye el valor lgico 1.
Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a c se le
atribuye el valor lgico 1.
Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a d se le
atribuye el valor lgico 1.

2
3
4

Salida.
Q

Si al menos una de todas las entradas posee un lgico 1 la salida es 1, de lo


contrario es 0.

Ventana de dilogo en el software.

Fig. 2.1.9.B
Dentro de la ventana de dilogo:
Seleccin de tipo

Se puede cambiar a una compuerta OR, NOR

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.

Fig. 2.1.10. Icono NOR.


Las entradas siguen las mismas condiciones que en la funcin OR, pero
considerando el caso de las salidas siguen el patrn, de que si el valor lgico es 1 en
alguna de todas las entradas eso da un valor es 0, de lo contario la salida es un valor 1.

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.

Fig. 2.1.11 Icono XOR.


Entradas.
1
2

Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a a


se le atribuye el valor lgico 1.
Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a b
se le atribuye el valor lgico 1.

Salida.
Q

Si solo una y no ambas entradas posee un lgico 1 la salida es 1, pero si


ambas entradas son de valor del mismo valor la salida es de valor 0.

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.

Fig. 2.1.12 Icono NOT.


Entrada.
1

Si el valor es < 0,5, se atribuye a a el valor lgico 0. De lo contrario, a a


se le atribuye el valor lgico 1.

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.

Fig. 2.1.13.A Icono RS.


Entradas.
Set
Reset
Par

A travs de la entrada Set se puede un estado 1 en la salida Q.


A travs de la entrada Reset se resetea cambiando a un valor lgico 0 en Q.
Si R y S son de valor 1 entonces la salida Q es un valor 0.
Es la remanencia del estado: si es un valor 0 no hay remanencia, si es un
valor 1 el flip-flop esta guardando la informacin.

Salida.
Q

Se activa con S en un valor 1 y se resetea con un valor 1 en R (Reset).

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.

Fig. 2.2.1. A Icono Adicin.


Entradas.
E1
E2
En

Seal de entrada 1
Seal de entrada 2
Seal de entrada n

Salida.
A1

Seal de salida = Suma de las seales de entrada E1, E2. En.


Ventana de dilogo en el software:

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

Adicin, substraccin, multiplicacin, mnimo y mximo.


Modificacin de cantidad de entradas.
Mnimo: 2.
Mximo: 20.

147
A.2.2.2.- Substraccin.
Este bloque realiza la operacin de RESTA de hasta 19 valores de entrada.

Fig. 2.2.2 .A Icono Substraccin.


Entradas.
E1
E2
En

Seal de entrada 1
Seal de entrada 2
Seal de entrada n

Salida.
A1

Seal de salida = Resta de las seales de entrada E1, E2. En.


Ventana de dilogo en el software:

Fig. 2.2.2 B
A.2.2.3.- Multiplicacin.
Este bloque realiza la operacin de MULTIPLICACION de hasta 20 valores de
entrada.

Fig. 2.2.3 A Icono Multiplicacin.


Entradas.
E1
E2
En

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.

Fig. 2.2.4. Icono Divisin.


Entradas.
E1
E2
En

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.

Fig. 2.2.5. A Icono Mximo.


Entradas.
E1
E2
En

Seal de entrada 1
Seal de entrada 2
Seal de entrada n

Salida.
A1

Seal de salida = mx. ( E1, E2, , En )


Ventana de dilogo en el software:

Fig. 2.2.5. B
A.2.2.6.- Mnimo.
Este bloque indica el mnimo de hasta 20 entradas.

Fig. 2.2.6. A Icono Mnimo.


Entradas.
E1
E2
En

Seal de entrada 1
Seal de entrada 2
Seal de entrada n

150
Salida.
A1

Seal de salida = mn. ( E1, E2, , En )

Ventana de dilogo en el software:

Fig. 2.2.6. B
A.2.2.7.- Modulo.
Este bloque tiene sentido para valores de 2 entradas de nmeros enteros
positivos.

Fig. 2.2.7 Icono Modulo.


Entradas.
E1
E2

Seal de entrada 1
Seal de entrada 2

Salida.
A1

Seal de salida = E1 % E2 = E1 - E2 x valor mayor de nmero entero <=


E1/E2

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.

Fig. 2.2.8 A Icono Mayor.


Entradas.
E1
E2

Seal de entrada 1
Seal de entrada 2

Salida.
A1

Seal de salida = 1 , si E1 > E2 , de lo contrario = 0

Fig. 2.2.8. B Icono Mayor Igual.


Salidas.
A1

Seal de salida = 1 , si E1 >= E2, de lo contrario = 0

A.2.2.9.- Menor y Menor 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.

Fig. 2.2.9. A Icono Menor.


Entradas.
E1
E2

Seal de entrada 1
Seal de entrada 2

152
Salida.
A1

Seal de salida = 1 , si E1 < E2, de lo contrario = 0

Fig. 2.2.9. B Icono Menor Igual.


Salida.
A1

Seal de salida = 1, si E1 <= E2, de lo contrario = 0

A.2.2.10.- Igual y Desigual.


Este bloque compara entre 2 entradas y representa a la salida con una respuesta
lgica (1) si es verdadero o (0) si es falso.

Fig. 2.2.10. A icono Igual.


Entradas.
E1
E2

Seal de entrada 1
Seal de entrada 2

Salida.
A1

Seal de salida = 1, si E1 = E2 , de lo contrario = 0

Fig. 2.2.10. B Icono Desigual.


Salida.
A1

Seal de salida = 1 , si E1 != E2, de lo contrario = 0

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.

Fig. 2.2.11. A Icono Funcin Transferencia.


Entrada.
E1

Seal de entrada 1

Salida.
A1

Seal de salida1
Ventana de dilogo en el software:

Fig.2.2.11. B
Descripcin
de la
funcin

Primero deben definirse el margen de definicin de la funcin, por


ejemplo -2 < x < 2, y el margen de valores, por ejemplo -2 < y < 2.
La definicin de una funcin lineal parcial est constituida de la
indicacin de una cantidad limitada de valores de funciones. Por defecto,
se proponen dos valores de funciones. Si usted desea definir valores
adicionales de funciones, ponga el puntero del ratn en el punto de la
grfica de funciones que corresponda al nuevo valor. Haciendo clic con
el botn derecho del ratn, se abre un dilogo con la opcin de
Agregar. Confirme la opcin y se agregar un nuevo punto. Este punto
puede desplazarse indistintamente con el puntero del ratn, dentro del
margen de valores definido

154
A.2.2.12.- ABS.
Este bloque entrega el valor absoluto de una entrada.

Fig. 2.2.12 Icono ABS.


Entrada.
A

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.

Fig. 2.3.1. Icono Constante de Vector.


Salida.
A1

Vector de salida en coordenadas cartesianas

Sistema de
coordenada
X o longitud

Cartesiano, polar

Y o Phi

Indicacin de la coordenada X o de la longitud del vector


Indicacin de la coordenada Y o del ngulo de orientacin Phi,
expresado en grados

A.2.3.2.- Cartesiano segn Vector.


Este bloque crea un vector a base de los componentes de entrada cartesianos.

Fig. 2.3.2. Icono Cartesiano segn Vector.


Entradas.
X
Y

Proyeccin del vector sobre el eje X


Proyeccin del vector sobre el eje Y

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.

Fig. 2.3.3. Icono Polar segn Vector.


Entradas.
R
phi

Longitud
Orientacin expresada en grados

Salida.
A1

Vector = r * (cos phi, sin phi)

A.2.3.4.- Vector Cartesiano.


Este bloque descompone un vector en sus componentes cartesianos.

Fig. 2.3.4. Icono Vector Cartesiano.


Entrada.
Vector

Vector

Salidas.
X
Y

Proyeccin del vector sobre el eje X


Proyeccin del vector sobre el eje Y

157
A.2.3.5.- Vector segn Polar.
Este bloque descompone el vector de entrada en sus componentes polares.

Fig. 2.3.5. Icono Vector segn Polar.


Entrada.
Vector

Vector

Salidas.
R
phi

Longitud
Orientacin expresada en grados

A.2.3.6.- Adicin de Vectores.


Este bloque SUMA hasta 20 vectores de entrada, entregando a la salida su
resultado en forma de vector.

Fig.2.3.6 Icono Adicin de Vectores.


Entradas.
E1
E2
En

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

A.2.3.7.- Substraccin de Vectores.


Este bloque RESTA hasta 20 vectores de entrada, entregando a la salida su
resultado en forma de vector.

Fig. 2.3.7. Icono Substraccin de Vectores.


Entradas.
E1
E2
En

Vector 1
Vector 2
Vector n

Salida.
A1

Vector = E1-E2--En

Ventana de dilogo en el software:

Fig. 2.3.7. A
Seleccin de tipo
Entradas

Adicin, substraccin, multiplicacin, mnimo y mximo.


Modificacin de cantidad de entradas: Mnimo: 2; Mximo: 20.

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.

Fig. 2.3.8. Icono Multiplicacin de Vectores.


Entradas.
E1
E2

Vector
Valor (escalar)

Salida.
A1

Vector = E2 * E1

A.2.3.9.- Definir longitud.


Este bloque define la longitud de un vector segn el valor absoluto del valor
determinado y dependiendo del valor, si es negativo cambia su orientacin en 180.

Fig. 2.3.9. Icono Definir Longitud.


Entradas.
E1
E2

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.

Fig. 2.3.10. Icono Rotar.


Entradas.
E1
E2

Vector
Valor = ngulo de rotacin

Salida.
A1

Vector = r*(cos (phi+E2), sin (phi+E2)), siendo (r , phi) las coordenadas


polares de E1.

A.2.3.11.- Producto Escalar.


Este bloque realiza la operacin de producto escalar entre 2 vectores de entrada.

Fig. 2.3.11. Icono Producto Escalar.


Entradas.
A
B

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.

Fig. 2.4.1. A Icono Osciloscopio.


Entradas.
E1
E2
E3

Ajustes canal 1

Ajustes canal 2
Ajustes canal 3
Base de
tiempo

Valor de entrada 1
Valor de entrada 2
Valor de entrada 3

Escala del eje Y


Posicin cero en el eje Y
Definicin de las condiciones del impulso trigger: flanco
descendente, ascendente
Posicin de trigger
Anlogos al canal 1
Anlogos al canal 1
Definicin de la base de tiempo para todos los canales. Un casillero
corresponde al valor ajustado en sentido X.
Mnimo: 20ms, Mximo: 500s
Copiar a la memoria intermedia el valor actual en calidad de bitmap.

162
Ventana de dilogo en el software:

Fig. 2.4.1. B

1
2
3
4
5
6

Ampla el dilogo para los ajustes del canal 1


Ampla el dilogo para los ajustes del canal 2
Ampla el dilogo para los ajustes del canal 3
Ampla el dilogo para los ajustes de la base de tiempo y para la copia del
valor indicado
Muestra la posicin cero en Y de cada uno de los canales
Escala de cada canal en sentido Y (C0 C2) y resolucin de tiempo
Ventana de dilogo en el software:

Fig. 2.4.1. C
1
2

Activacin/Desactivacin de canal 1
Ajuste de la posicin cero en Y de canal 1

Ajuste de la escala Y de canal 1. El valor indicado corresponde a la separacin


de los nmeros entre las lneas horizontales.
Ajustes del trigger del canal 1
Off / Flanco descendiente / Flanco ascendente
Desplazamiento de la funcin de trigger ( indicacin de la posicin del trigger
en el lado derecho de la indicacin)
Ajuste de la base de tiempo para todos los canales. El valor indicado se refiere
a la distancia entre las lneas verticales.
Copiar la indicacin en calidad de bitmap a la memoria intermedia para su
utilizacin en otros programas.

5
6

163
A.2.4.2.- Indicacin de Vectores.
Este bloque tiene la funcionalidad de registrar grficamente hasta 20 vectores en 2
dimensiones.

Fig. 2.4.2. A Icono Indicacin de Vectores.


Entradas.
E1
E2
En

Valor de entrada 1
Valor de entrada 2
Valor de entrada n
Ventana de dilogo en el software:

Fig. 2.4.2. B
Cantidad

Modificacin de la cantidad de entradas.


Mnimo: 2 ; Mximo: 20

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.

Figura 2.5.1.A Icono Segmentador unido a la cmara.


Seleccionar colores:
Para seleccionar los colores se deben seguir los siguientes pasos (Ver Figura 2.5.1.B):
1.- Hacer click en el smbolo de la cmara para as fijar la imagen con la que se desea
trabajar.
2.- Para seleccionar el segmento de color se debe elegir la forma de la herramienta
dependiendo de la imagen, las formas que ofrece el programa son un rectngulo y un
crculo.
3.- Cuando se desee seleccionar y se eligi la formad de la herramienta 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.

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(A)), con lo que se podr ver el segmento seleccionado en la imagen. El


porcentaje (ver figura 2.5.1.C (B)), se refiere al tamao representado de la imagen dentro
de la ventana.

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.

Figura 2.5.2.A Icono Extractor de segmentos.


Entradas.
Imagen
segmentada
Seleccin de
segmentos

Imagen de la cmara con informaciones sobre los segmentos


Eleccin de un segmento a analizar.

Salidas.
X
Y
Superficie
Encontrado

Posicin X del centro de gravedad del segmento en relacin


con el centro de la imagen.
Posicin Y del centro de gravedad del segmento en relacin
con el centro de la imagen.
El tamao del segmento completo en la imagen. (el numero de
pixeles de esa superficie)
Da una valor lgico 1 si se encuentra en la imagen de la
cmara un segmento con la mnima superficie necesaria.
Ventana de dilogo en el software:

Figura 2.5.2.B

167
Dentro de la ventana de dilogo:
Seleccin de segmentos
Tamao mnimo

Seleccin de segmentos a ver, si no se est ocupada la


entrada de seleccin de segmentos
Cantidad mnima de pixeles que se extraen

Ejemplo de extractor de segmento

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.

Figura 2.5.3.A Icono Detector de Lneas.


Entradas.
Bild
Valor Limite

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

Posicin en el eje X de la lnea en la parte inferior de la imagen.


Indica con una valor lgico 1 si se detecto una lnea y un valor lgico
0 se no se detecto una lnea en la imagen.

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

Elije el valor limite en caso de estar libre la entrada


Comienza a busca en la parte inferior de la imagen.
Elije el tipo de canto en caso de estar libre la entrada

Ejemplo detector de lnea

Figura 2.5.3.C Ejemplo.


La cruz roja indica la deteccin de la lnea (Figura 2.5.3.B), pero es recomendable
colocar la cmara en visin YCbCr al poseer esta una imagen ms ntida en relacin a la
lnea en el detector.

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.

Fig. 2.6.1. A Icono Generador Rectangular.


Salida.
Salida

Impulso rectangular

Dentro de la ventana de vinculo al generador. Ntese que es idntica para generador de


rectngulos, generador de picos y generador sinusoidal.
Ventana de dilogo en el software:

Fig. 2.6.1. B

171

Seleccin de tipo
Amplitud
Frecuencia

Ancho del
impulso

Generador de seales rectangulares, de picos, sinusoidales


Amplitud
Mx. 25 Hz. La frecuencia mxima de transmisin es de 50 Hz. Por
ello, slo es posible emitir seales que son partes de esta
frecuencia mxima, es decir: 25 Hz , 10 Hz, 5 Hz, 2 Hz, 1 Hz, 0.5
Hz, 0.2 Hz y 0.1 Hz.
El ancho del impulso se mide en ms y, por supuesto, depende de
la frecuencia.

A.2.6.2.- Generador de Picos.


Este bloque se obtiene un generador de impulsos en forma de picos. En la
representacin grfica de la curva con picos se muestra la amplitud y la duracin (ms) del
impulso.

Fig. 2.6.2. A Icono Generador de Picos.


Ventana de dilogo en el software:

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. A Icono Generador Sinusoidal.


Ventana de dilogo en el software:

Fig. 2.6.3. B
A.2.6.4.- Constante.
Este bloque tiene la particularidad de generar un valor constante predeterminado
por el usuario.

Fig. 2.6.4. Icono Constante.


Salida.
Salida

Valor constante

Valor

Ajuste del valor de salida

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.

Fig. 2.6.5. Icono Modulo de Tiempo.


Entrada:
Entrada

Si = 1, se detiene la medicin del tiempo y se repone a 0.


Si = 0, empieza la medicin de tiempo en ms.

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.

Fig. 2.7.1. A Icono Aplanar.


Entrada.
E1

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

Nmero entero positivo < 100

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.

Figura 2.8.1.A Icono Webcam.


Este modulo adems de entregar la imagen y video para su procesamiento, trae
consigo 3 opciones de ajuste como son las pertenecientes al tamao de la imagen, los
espectros cromticos y por ltimo la resolucin con la cual se trabajara.
Ventana de dilogo del software

A) Tamao de la imagen; B) Espectro cromtico; C) Resolucin


Figura 2.8.1.B.

176
Opciones de ajuste:

Tamao de la imagen: El tamao de la imagen mostrada en el cuadro es definida por


esta opcin la cual da el tamao en porcentajes. Con lo cual al ir aumentando y
reduciendo el tamao de la ventana en forma manual, el porcentaje cambia.

Espectros Cromticos: Con este equipo se pueden trabajar diferentes espectros


cromticos como son RGB, YCbCr, YUV, HSV y HLS. Que examinaremos ms a
fondo a continuacin:
 RGB: Es la representacin natural y convencional de los colores, como se ve en
cualquier cmara comercial. Esta modalidad en lo que son ciertas aplicaciones
suele tener defectos al ser muy sensible a la luz.
 YCbCr: Es una modalidad que diferencia lo que es la claridad e intensidad en los
colores al representarlos, lo cual los hace ver menos naturales. Pero cuenta con la
ventaja de ser menos sensible a los cambios en la luz.
 YUV: Es una modalidad que trabaja con la Luminancia Y (la informacin en
blanco y negro) y la Crominancia U y V (informacin con respecto al color) por
separado.

HSV: En esta variante se distingue lo que son los colores dependiendo de su


saturacin, el tono y su valor gris, si se le compara con el RGB demuestra ser
mucho menos ntida en su imagen.

 HLS: Aqu la variante distingue lo que son los colores dependiendo de su


saturacin, el tono y la luminosidad del color.

Cada una de estas modalidades es necesaria para dar mejores resultados


dependiendo de la aplicacin del equipo y las condiciones en su entorno.

177
Imgenes de las diferentes modalidades:

Figura 2.8.1.C. 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.

Fig. 2.8.2. A Icono Distancia.


Salidas
A1

Indica en V la tensin analgica proveniente del detector. El usuario


deber encargarse de la definicin de la escala y de la conversin en
un valor correspondiente a la distancia. Tensin medida en Voltaje.

Seleccin del
detector

1 hasta 9

Fig. 2.8.2. B Distribucin de Sensores de Distancia en el chasis.

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.

Fig. 2.8.3. A Icono Entrada Digital.


Salidas

A1

Valor 0 1

Seleccin de la
entrada

Desde 1 hasta 8

Fig. 2.8.3. B Icono Salida Digital.


Entradas
Salida digital

Pone la salida elegida en 0 en caso de valores <0.5; de lo contrario,


en 1

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.

Fig. 2.8.4. Icono Entrada Analgica.


Salidas.
A1

Valor desde 0 hasta 10. Tensin medida en Voltaje.

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.

Fig. 2.8.5. A Icono Rel.


Entradas.
Rel

Desconecta el rel seleccionado si el valor es <0.5; de lo contrario, lo


conecta.

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.

Fig. 2.8.6. A Icono Motor.


Entradas.
Velocidad
nominal
Prioridad

Reponer
posicin
Freno

Velocidad nominal del motor, expresada en revoluciones por minuto


(r.p.m.). Deber tenerse en cuenta que entre el motor y la rueda hay un
engranaje con relacin de 16:1.
Prioridad de la velocidad nominal. Si no est ocupada la entrada, se
selecciona la prioridad 1.
Si diversos bloques funcionales hacen indicaciones sobre la velocidad
nominal del motor, la velocidad nominal definitiva se calcula como valor
promedio de las velocidades nominales consideradas prioritarias. Si el
valor prioritario es 0, se activa la velocidad nominal 0.
Pone el valor de inicio para el conteo de los incrementos en 0.
Si el valor es 1, se frena el motor. Si el valor es 0, no se frena. Si no
est ocupada la entrada, se activa el valor 0.

Salidas.
Velocidad
real
Posicin
real
Intensidad
del motor

Velocidad real del motor, expresada en revoluciones por minuto


(r.p.m.).
Suma de los incrementos provenientes del encoder ptico del motor
(2.000 por cada revolucin del motor). Puede utilizarse para el
posicionamiento real de la rueda motriz.
La intensidad consumida por el motor, expresada en mA.

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

A.2.8.7.- Salida de Potencia.


En este bloque se obtiene un puente H, con una salida de corriente mxima de 5
A, se activa con una entrada de seal PWM y con bit direccional. El valor nominal incide
en la seal PWM. Un valor nominal 0 no genera seal PWM, lo que significa que el puente
en H no entrega corriente. Un valor nominal de 50 regula la relacin entre high y low en la
seal PWM en 50%. Un valor nominal 100 no genera seal high constante, lo que
significa que el puente en H entrega la mxima intensidad.

Fig. 2.8.7. Icono Salida de Potencia.


Entradas.
Valor nominal

Pone el bit direccional y la seal PWM. Margen desde -100 hasta


100

Salidas.
Corriente

La corriente que fluye a travs del puente H, expresada en A.

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.

Figura 2.8.5.A Icono Paragolpes.


Salida.
A= Paragolpes

Valor =1 se produjo un impacto; Valor =0 no hay impacto.

Ejemplo:

Figura 2.8.5.B Ejemplo.


Se utiliza para detener los motores de Robotino en caso de tener una colisin a
travs de esta configuracin de bloques

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.

Figura 2.8.9.A Icono Omniaccionamiento.


Entradas
Vx_set
Vy_set
Omega_set
V1
V2
V3

Velocidad Nominal en sentido X en mm/s.


Velocidad Nominal en sentido Y en mm/s.
Velocidad de giro en grados/s.
Velocidad real motor 1 en r.p.m.
Velocidad real motor 2 en r.p.m.
Velocidad real motor 3 en r.p.m.

Salidas
V1_set
V2_set
V3_set
Vx
Vy
Omega

Velocidad nominal motor 1 en r.p.m.


Velocidad nominal motor 2 en r.p.m.
Velocidad nominal motor 3 en r.p.m.
Velocidad real en sentido X (Avanzar, retroceder) en mm/s.
Velocidad real en sentido Y (lateralmente en ambos sentidos) en mm/s.
Velocidad real giro (rotacin) en grados/s.

186

Figura 2.8.9.B Diagrama entradas y salidas


Ejemplo:

Figura 2.8.9.C Ejemplo.


En este ejemplo se puede apreciar que la constante (100) enva la velocidad en
sentido del eje x para un movimiento uniforme.

187
A.2.8.10.- Gestin de potencia.
Este bloque Gestin de potencia se utiliza para controlar la electricidad en
Robotino.

Figura 2.8.10. Icono gestin de potencia.


Salidas.
I
U

Consumo de corriente en Ampere [A].


Tensin de las celdas de las bateras 1 y 2

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.

Figura 2.8.11. Icono Odometra.


Entradas.
X
Y
Phi
SET

Posicin X unidad en milmetros.


Posicin Y unidad en milmetros.
Orientacin. Unidad en grados
Si valor =1, La posicin de X, Y y phi son considerados la posicin odomtrica
actual.
Si valor =0, La posicin odomtrica cambio por el movimiento de Robotino.

188
Salidas.
X
Y
Phi

La posicin X actual, calculada mediante odometra. Unidad en milmetros


La posicin Y actual, calculada mediante odometra. Unidad en milmetros
La orientacin actual, calculada mediante odometra. Unidad en grados

A.2.8.12.- Entrada del transmisor giratorio.


Este bloque de funcin activa la entrada del transmisor giratorio en Robotino, con
esta entrada se mide la seal del transmisor giratorio, considerando todos los flancos
ascendentes como descendentes, para as producir una resolucin cuatro veces mayor en
comparacin con la resolucin normal del transmisor.

Icono 2.8.12. Icono Entrada del transmisor giratorio.


Entrada.
Recuperar posicin

1= Recuperar posicin en 0; 0= No modificar posicin.

Salidas.
Velocidad
Posicin

Velocidad del transmisor giratorio, expresada en impulsos por


segundos.
Integral de todos los impulsos medidos desde la activacin del
robot o desde que Recuperar posicin =1

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.

Figura 2.9.1.A Icono Indicacin de la posicin.


Entradas.
X Real
Y Real
phi Real
Activacin externa

X Externa
Y Externa
phi Externa

Coordenada X de la posicin real.


Coordenada Y de la posicin real.
Coordenada phi de la posicin real.
Si es 0, Las entradas X externa, Y externa y phi externa
no se activan.
Si es 1, Las entradas X externa, Y externa y phi externa se
activan para el posicionamiento del segundo robot.
Coordenada X para el segundo robot
Coordenada Y para el segundo robot
Coordenada phi para el segundo robot

Salidas.
X Nominal
Y Nominal
phi nominal

Coordenada X de la posicin nominal


Coordenada Y de la posicin nominal
Coordenada phi de la posicin nominal

190
Ventana de dilogo en el software:

Figura 2.9.1.B

En esta ventana de dilogo el primer robot es representado con el color blanco y


muestra su posicin espacial real siendo definido por las coordenadas X Real, Y real y
phi Real. Mientras que el segundo robot que es representado por el color azul nos
permite desplazar y girar a travs del puntero del ratn al primer robot (blanco), el
segundo robot al realizar su desplazamiento en el software enva su nueva posicin a
travs de las coordenadas de X Nominal, Y Nominal y phi Nominal.
Tambin es posible desplazar y girar al primer robot usando las entradas de
posicin X Externa, Y Externa y phi Externa. Para lo cual es necesario tener la
entrada Activacin Externa en un estado lgico 1.

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.

Figura 2.9.2.A - Icono Buscador de recorrido.


Entradas.
X Nominal
Y Nominal
phi Nominal
X Real
Y Real
phi Real

Coordenada X de la posicin nominal


Coordenada Y de la posicin nominal
Coordenada phi de la posicin nominal
Coordenada X de la posicin real
Coordenada Y de la posicin real
Coordenada phi de la posicin real

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:

\n indica el inicio de una nueva lnea (ASCII 0x0A).

\t indica el tabulador (ASCII 0x09).

A1: Valor puesto en la primera entrada durante la primera unidad de tiempo.

B1: Valor puesto en la segunda entrada durante la primera unidad de tiempo.

A2: Valor puesto en la primera entrada durante la segunda unidad de tiempo.

Fig. 2.10.1.A Icono Escritor de Valores


Al iniciarse el programa se crea un nuevo archivo que recibe el nombre que

es

indicado en la ventana de dilogo del bloque. Si ya existe el archivo, se cancela su


contenido. Al terminar el programa, se cierra el archivo.
Si se desactiva el bloque funcional mientras el programa est activo, se cierra el
archivo. Y Si se activa el bloque funcional mientras el programa est activo, se abre el
archivo o se crea uno nuevo. Adems es posible editar con el programa Documento de
texto (.txt) al archivo que ha sido creado con esa extensin.

193
Entradas
1
2

20

Se memoriza en la primera columna (A) del archivo.


Se memoriza en la segunda columna (B) del archivo.
Se memoriza en la columna 20 (T) del archivo.
Ventana de dilogo en el software

Fig. 2.10.1.B
Dentro de la Ventana de dilogo:
Entradas
Seleccin
de
Archivo

Modificacin de la cantidad de entradas; Mnimo 1; Mximo 20.


Se crea y/o abre al iniciar el programa o al activar el bloque funcional.
Se cierra al terminar el programa o al desactivar el bloque funcional.

Ejemplo:

Fig. 2.10.1.C. Ejemplo Escritor de Valores

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:

\n: indica el inicio de una nueva lnea (ASCII 0x0A)

X: indica el tabulador (ASCII 0x09), el espacio (ASCII 0x20), la coma (ASCII 0x2C)
o el punto y coma (ASCII 0x3B)

A: se entrega en la primera salida.

B: se entrega en la segunda salida, etc.

Si una lnea contiene menos valores que salidas, en las salidas sin el correspondiente
dato en el archivo se entrega el valor 0.

Fig. 2.10.2.A- Icono Lector de Valores


Salidas
1
2

20

Valores de la primera columna (A) del archivo.


Valores de la segunda columna (B) del archivo.
Valores de la columna 20 (T) del archivo.

195
Ventana de dilogo del software:

Fig. 2.10.2.B
Dentro de la Ventana de dilogo:
Salidas
Seleccin
de
Archivos

Cambio de la cantidad de entradas; Mnimo 1; Mximo 20.


Se abre al iniciar el programa o al activar el bloque funcional. Se cierra
al terminar el programa o al desactivar el bloque funcional.

A.2.10.3.- Variables Globales.


Las variables globales permite el intercambio de datos ms all de los lmites del
programa. As, el clculo obtenido mediante un programa puede utilizarse en otros
programas, Para escribir y leer variables globales se dispone de los bloques funcionales:

Fig. 2.10.3.A Icono Global In

Fig. 2.10.3.B Icono Global In

Las Variables globales son:

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:

Fig. 2.10.3.C Ventana de Dilogo.

A.2.11.- Mando Secuencial.


En esta seccin se encuentran bloques de funciones para crear programas con
mando secuencial, con varios diagramas de funciones preestablecidos por el usuario.
Para utilizar esta funcionalidad es necesario haber cargado previamente, los diagramas
de bloques creados, para el mando secuencial. Estos programas se muestran como
mdulos de funciones con una entrada y tres salidas A, B y C.
Para activar estas salidas, el diagrama de bloques de funciones debe contener uno de los
tres mdulos de salidas A, B o C.
A.2.11.1.- Salida A, B o C.
Este bloque define la salida A, B o C para un diagrama de bloques de funciones.
Si el valor puesto en la entrada de este mdulo es >=0.5, finaliza el diagrama de bloque
de funciones al que est conectado el mdulo. Si la salida A, B o C del mando secuencial
est conectada a otro diagrama de bloque de funciones, se inicia dicho diagrama.
Observacin: estos bloques de funciones nicamente pueden incluirse en diagramas de
bloques de funciones y no en un mando secuencial.

Fig. 2.11.1. Icono Salida A, B o C.


Entradas.
X

Finaliza el estado, si x >= 0.5

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.

Fig. 2.11.2. A Icono Start.


Salidas.
S

Inicio de mando secuencial.

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.

Fig. 2.11.3. Icono Sincronizacin Y.

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.

Fig. 2.11.4. Icono Sincronizacin O.

Das könnte Ihnen auch gefallen