Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Autor:
ANDRS SAN - MILLN RODRGUEZ
Director:
VICENTE FELIU BATLLE
JUNIO DE 2011
ndice general
1. INTRODUCCIN
1.1. Motivacin
1.2. Objetivos
2. MECNICA
12
12
14
15
16
3. MTODO DE CONTROL
18
19
22
24
24
24
28
29
29
30
30
33
II
NDICE GENERAL
|III|
33
34
35
36
37
38
42
45
45
47
6. EJEMPLOS DE APLICACIN
59
60
61
7. CONCLUSIONES
63
7.1. Conclusiones
64
65
66
Bibliografa
68
Anexos
70
A. PLANOS CONSTRUCTIVOS
NDICE GENERAL
|IV|
12
19
19
21
31
32
35
37
39
39
39
D. HARDWARE UTILIZADO
11
20
31
33
36
E.2. V-REP
E.3. JVM-Servo
E.4. X-CTU
ndice de figuras
1.1. Fibroscopio
1.8. Omnitread
10
13
13
14
16
16
17
17
3.1. Configuracin 1D y 3D
19
20
21
23
NDICE DE FIGURAS
|VI|
23
25
27
29
31
31
33
34
35
36
37
39
41
44
47
49
50
50
51
51
52
52
52
53
54
54
55
NDICE DE FIGURAS
|VII|
55
56
56
57
58
60
61
67
31
31
11
20
31
33
34
36
36
ndice de tablas
20
40
42
43
47
35
VIII
Agradecimientos
Nos esse quasi nanos, gigantium humeris insidentes, ut possimus plura eis et remotiora
videre, non utique proprii visus acumine, aut eminentia corporis, sed quia in altum subvenimur
et extollimur magnitudine gigantea.
Somos como enanos a hombros de gigantes. Podemos ver ms, y ms lejos que ellos, no
por alguna distincin fsica nuestra, sino porque somos levantados por su gran altura.
Bernardo de Chartres
Gracias a todos los compaeros de fatigas que estuvieron a mi lado en este viaje, bien
durante largos periodos de tiempo o solo breves instantes, pero siempre junto a m en el
momento oportuno.
Gracias a todos los profesores que supieron transmitirme su entusiasmo y sus
conocimientos, despertando en m la curiosidad y el inters por nuevas ramas del saber.
Gracias a Juan Gonzlez, por inspirar este proyecto y hacer amigable un campo
fascinante y difcil como la robtica.
Gracias a Pedro Hungra, por toda esa multitud de piezas que tuvo que fabricarme, (la
mquina probablemente no lo agradezca tanto).
Y muchas gracias sobre todo a Vicente Feliu, por sus valiosas revisiones, sus amables
consejos y su acertada direccin, sin la cual este proyecto no habra sido posible, y de haberlo
sido, nunca de forma tan satisfactoria.
Por supuesto gracias a mi familia, pues su cario, inters y apoyo han sido
fundamentales a lo largo de toda mi vida y mi carrera. Gracias por esa capacidad para escuchar
atentamente interminables relatos sobre robots y serpientes (seguramente llegaron a dudar de si
estudiaba ingeniera o biologa).
Si he llegado hasta aqu es gracias a que me aup en los hombros de grandes personas,
sin cuya ayuda y trabajo nunca habra podido alcanzar este momento. El camino contina y
por desvos que tenga o largo que sea guardar siempre en mi memoria un agradable recuerdo
de todos y cada uno de los momentos compartidos.
A todos Muchas Gracias.
Memoria
1
INTRODUCCIN
1.1. Motivacin
1.2. Objetivos
1.3. Estado Del arte
En este primer captulo se expondrn los motivos del diseo y posterior desarrollo del
robot ORM, el primer robot serpiente desarrollado dentro del Grupo de Robtica, Automtica
y Mecatrnica (GRAM) de la Escuela Tcnica Superior de Ingenieros Industriales de la UCLM
en Ciudad Real. El proyecto ha sido desarrollado durante el curso 2010-2011, realizado por
Andrs San Milln Rodrguez bajo la supervisin de Vicente Feliu Batlle.
1.1. Motivacin
El presente proyecto final de carrera representa una continuacin al programa de
iniciacin a la investigacin que acompaaba a las becas de excelencia de la Junta de
Comunidades de Castilla la Mancha.
Para justificar la eleccin del tipo de robot deberan contestarse a las siguientes
preguntas: Para qu son buenos los robots serpiente? Dnde podran usarse?
Si se examinan las distintas reas de aplicacin destacan algunas donde los robots
serpiente tendrn un gran impacto.
1.1. Motivacin
Inspeccin.
Reconocimiento.
1.2. Objetivos
1.2. Objetivos
El objetivo principal del proyecto es el de disear y construir un robot serpiente lo ms
compacto posible con capacidad de autopropulsin y desplazamiento en un entorno
tridimensional. El control de la locomocin ser realizado mediante un PC de forma
completamente inalmbrica
Como se parti del diseo mecnico de los mdulos Y1 desarrollados por Juan Gonzlez
(Juan Gonzlez, 2008) se decidi que el robot deba cumplir los siguientes objetivos principales:
Espaa:
Cube revolutions (U. Autnoma de Madrid)
Actuadores: Servomotores Futaba 3003 (Par: 3,2 Kg-cm Velocidad: 0,23 seg/60).
Sensores: Ninguno.
Alemania:
MAKRO
Diseo no modificable.
Alimentacin: Bateras.
Noruega:
Aiko, Anna Konda, Piko
(N.T.N.U. Trondheim)
Diseo no modificable.
Alimentacin: Umbilical.
Diseo no modificable.
Alimentacin: Umbilical.
EEUU:
Modular Snake Robot (U. Carnegie Mellon)
Diseo modular.
Alimentacin: Umbilical.
Alimentacin: Umbilical.
Japn:
Active Cord Mechanism (Lab. Robtica Hirose Fukushia)
Alimentacin: Bateras.
10
11
2
MECNICA
2.1. Primera generacin
2.2. Segunda generacin. Mdulos ORM
2.3. Tercera generacin. Robot serpiente autnomo
2.4. Sensores y actuadores
En este captulo se detallarn las distintas etapas de diseo seguidas para la elaboracin
del robot serpiente y se mostrarn los distintos diseos considerados para cada una de las
versiones del mismo.
12
13
14
Para ms informacin acerca del programa, as como para ver una comparativa
entre los distintos paquetes de CAD existentes puede consultarse el Anexo E dedicado
a software utilizado.
15
16
17
3
MTODO DE CONTROL
3.1. Locomocin serpentinoide
3.2. Algoritmos de implementacin
3.2.1. Solucin manual
3.2.2. Cinemtica inversa
3.2.3. Osciladores sinusoidales
18
3.1
Locomocin serpentinoide
19
La curva serpentinoide es, por definicin aquella cuyo ngulo de curvatura vara
sinusoidalmente con la distancia a lo largo de la curva
Su curvatura est dada por la ecuacin:
K (s)
2 k
2 k
sin
s
l
l
3.1
Donde:
l
La curvatura K (s) se define como el ritmo de cambio del vector unidad tangente a la
curva, es decir:
K (s)
ds
3.2
ds
A su vez el ngulo que forma la tangente a la curva en el punto s con el eje x se denota
por s Hirose demostr que la expresin de s viene dada por la ecuacin:
2 k
s,
l
s cos
3.3
donde el parmetro se denomina ngulo de serpenteo y se define como el ngulo que forma la
tangente a la curva que pasa por el punto s=0 y determina la forma que tendr la curva.
Forma en funcin de
Mximo valor de
20
ngulo de serpenteo
Dimensiones de la curva
K (s, )
2 k
2 k
sin
s
l
l
3.4
2 k
x (s, ) cos cos
s ds
l
3.5
2 k
y(s, ) sin cos
s ds
l
3.6
21
(1)m
x (s) sJ 0 ( )
J 2m ( )sin m
m 1 2m
4l
y(s)
4l
(1)
m 1
m 1
J 2m 1 ( )
2m 1
( )sin
2m 1
2
3.7
3.8
3.2
Algoritmos de implementacin
Ya se ha visto que puede lograrse el movimiento del robot combinando dos ondas
serpentinoides perpendiculares con cierto desfase entre ellas, pero existe el problema de cmo
adaptar estas ondas a parmetros articulares del robot.
Los parmetros que caracterizan la onda serpentinoide ya se han comentado
anteriormente. Estos son: ngulo de serpenteo, nmero de ondulaciones k y desfase
Puesto que los robots podos son por naturaleza discretos necesitamos realizar una
aproximacin discreta de la curva serpentinoide. Su definicin ser por tanto la misma que para
la curva continua, pero considerando que la curvatura K vara de forma discreta con la variable
i en lugar de una variacin de forma continua como lo haca con s.
La variable discreta i hace referencia al nmero de mdulos que componen el robot, con
lo que tendremos que la longitud total l ser l= ML, siendo M el nmero total de mdulos y L
la longitud de cada mdulo
Todo esto puede verse de forma ms clara en la Figura 3.4 donde se representa una
curva serpentinoide discreta con los siguientes parmetros =60, k=1 y 8 mdulos, adems se
comparar con la misma curva continua.
22
Una vez definidas las curvas serpentinoides tanto continua como discreta y sus
parmetros caractersticos es necesario definir la relacin existente entre ambas en funcin de
sus variables.
Para la curva continua los parmetros variables son el ngulo de serpenteo y el
nmero de ondulaciones k , ya que se consideran los dems parmetros constantes, mientras
que para la curva discreta las variables son el ngulo de serpenteo y la variable Mu definida
como el nmero de ondulaciones dividido por el nmero total de mdulos.
Puesto que cada curva depende de dos variables podemos dibujar el espacio de formas
que se obtienen para distintas combinaciones de sus variables representadas en los ejes de
ordenadas y abscisas obtenindose el resultado que se muestra en la Figura 3.5
Continuo
Discreto
Una vez que se obtiene la curva deseada para el modelo discreto es necesario conocer los
valores angulares que debe adoptar cada articulacin del robot, si se pueden obtener estos
valores articulares para cada instante de tiempo, la locomocin del robot se conseguir
empleando ondas serpentinoides en las que se variar el desfase con el tiempo para lograr la
propagacin de la onda a lo largo del cuerpo del robot.
23
Segn (Juan Gonzlez, 2008) existen diferentes soluciones para abordar esta tarea entre
las que destacan:
3.2.1.
Solucin manual
3.2.2.
Cinemtica inversa
En este caso se trata de aplicar las mismas tcnicas que se emplean para calcular los
ngulos que deben adoptar las articulaciones de los robots manipuladores para alcanzar la
posicin y orientacin deseada.
Slo que en este caso, en lugar de tomar como referencia la base del robot se toma como
referencia el mdulo del extremo y ste se mueve conforme una funcin sinusoidal.
Aunque los robots podos pueden considerarse como manipuladores con un elevado
grado de redundancia, y con este algoritmo las tablas de ngulos se generan automticamente,
resulta una forma ineficaz de resolver el problema debido al elevado coste computacional que
conllevan los algoritmos iterativos de resolucin.
3.2.3.
Osciladores sinusoidales
24
De hecho el mtodo empleado para el control del robot consiste precisamente en esto,
cada mdulo oscila conforme a una funcin senoidal y el control de sus parmetros (amplitud,
frecuencia y desfase) es controlado por el usuario que acta de cerebro.
Esta aproximacin de los CGP por osciladores sinusoidales puede utilizarse ya que si se
observan las siguientes imgenes obtenidas mediante simulacin (Figura 3.6), un modelo
discreto en el que las articulaciones sigan un patrn sinusoidal reproducen con gran fidelidad la
forma de las ondas serpentinoides.
b) Serpentinoide continua
i A sin(t i )
3.9
El motivo del gran parecido entre los resultados de aplicar osciladores sinusoidales en
los servomotores y la onda serpentinoide resulta evidente si se repasa la definicin de la onda
serpentinoide (ec. 3.1), en ella se indica que la curvatura bsicamente vara de forma senoidal y
esto es justamente lo que hacemos al variar la posicin de las articulaciones de forma senoidal,
ya que la posicin angular de las articulaciones se corresponde con la definicin de la curvatura
(ec. 3.2)
25
i Av sin(vt v i v )
3.10
j Ah sin(ht h j h )
3.11
Cuyos parmetros son: por un lado para la onda vertical: posicin que ocupa el
servomotor (i), amplitud de la onda (Av), velocidad de la onda (v), desfase por mdulo (v),
desfase de la onda (v). Y para la onda horizontal: posicin que ocupa el servomotor (j),
amplitud de la onda (Ah), velocidad de la onda (h), desfase por mdulo (h), desfase de la
onda (h).
26
Lnea recta
Desplazamiento lateral
Ah = 0, h = 0, h = 0 h = 0
Av = 20, v = 1, v = 60, v = 0
Ah = 45, h = 1, h = 60, h = 0
Av = 45, v = 1, v = 60, v = 0
Rodar
Crculo
Ah = 20, h = 1, h = 0, h = 0
Av = 20, v = 1, v = 0, v = 90
Ah = 180/M = 0, h = 0, h = 90
Av = 20, v = 1, v = 60, v = 0
Rotacin
Ah = 45, h = 1, h = 30, h = 0
Av = 20, v = -1, v = 30, v = 90
Figura 3.7 Modos de desplazamiento
27
4
IMPLANTACIN DEL CONTROL
4.1. Programas desarrollados
4.1.1. Primera generacin
4.1.2. Segunda generacin
4.1.3. Tercera generacin
4.2. Hardware de control
4.2.1. Tarjeta controladora JVM-Servo 28
4.2.2. Tarjeta controladora Pololu Micro Serial Servo
4.2.3. Mdulos de comunicacin inalmbrica Xbee
4.2.4. Adaptador Xbee Explorer USB
4.2.5. Dispositivo digitalizador
4.3. Electrnica del robot
28
4.1
Programas desarrollados
Uno de los objetivos planteados para la realizacin del proyecto fue la creacin de un
programa de control capaz de permitir un manejo intuitivo y sencillo del robot pese a la
complejidad que supone la sincronizacin de todas sus articulaciones.
Puesto que como se indic anteriormente se construyeron diversas generaciones de
robots fue necesario el diseo de diversos programas de control. Los aspectos ms relevantes se
citan a continuacin.
4.1.1.
Primera generacin
Debido a que el primer robot utilizaba una tarjeta controladora de servos modelo JVMServo 28 los primeros programas tuvieron que adoptar el enfoque de la solucin manual
comentado anteriormente.
Las ventajas de esta tarjeta son mltiples: Posee conexin USB, lo que facilita su uso de
forma plug & play, es capaz de controlar hasta 28 servomotores de manera simultnea y cuenta
con un programa de control gratuito desarrollado por el propio fabricante de la tarjeta.
El principal inconveniente es que el programa de control se basa en la definicin de
tablas de posiciones y tiempos de ejecucin.
29
Una vez conseguido el movimiento sincronizado de todas las articulaciones del robot, se
realizaron diversos experimentos a fin de mejorar la interfaz de usuario del programa.
Entre las diversas versiones realizadas, cabe destacar dos:
El control del robot mediante comandos de voz, para lo cual se desarroll una
aplicacin utilizando el Speech Recognition SDK proporcionado por Microsoft.
Esta opcin se descart por dos motivos fundamentales: los comandos de voz
reconocibles son solamente en ingls y es necesario un gran tiempo de calibracin del
sistema de reconocimiento de voz. Adems el reconocimiento de los distintos
comandos se ve fuertemente interferido por ruidos ambientales.
4.1.2.
El control del robot mediante teclado, es decir, utilizando como entradas solamente
las teclas de direccin del teclado, el programa de control selecciona el desfase
necesario entre las ondas, as como su velocidad y amplitud. Esta opcin result no
ser vlida en el modelo final del robot debido a la gran variedad de formas de
desplazamiento.
Segunda generacin
4.1.3.
Tercera generacin
Para el desarrollo de los programas de control del modelo final del robot tuvieron que
tenerse en cuenta varios aspectos: la inclusin de una cmara inalmbrica de la que deba ser
posible obtener imgenes, la utilizacin de una nueva tarjeta controladora de servos y la
utilizacin de dispositivos de radiofrecuencia conectados mediante puerto serie rs-232 que
utilizan su propio protocolo de comunicacin
Todos estos aspectos determinaron la necesidad de rehacer desde cero el programa de
control de una forma ms estructurada. Un diagrama de bloques en el que se sintetiza la
estructura de control completa puede verse en la Figura 4.2:
30
31
Como puede observarse en la Figura 4.3 en la interfaz grfica se muestra por un lado la
imagen que el robot capta por la cmara (esta imagen se sita en la parte inferior derecha del
programa), el resto de la pantalla se encuentra ocupada por las distintas entradas que debe
introducir el operario y cuya funcin se detalla a continuacin:
Los dos botones y el cuadro de texto situado en la parte superior derecha son los
elementos necesarios para elegir la salida de puerto serie donde se encuentra conectada la
tarjeta de radiofrecuencia Xbee y para decidir si sta se encontrar enviando datos o no.
Los controles de la parte central derecha se corresponden con los parmetros
modificables que caracterizan las ondas sinusoidales que recorren la serpiente, recordemos que
segn se combinen stos se obtendr una forma de locomocin distinta.
Como sera laborioso recordar las combinaciones adecuadas para obtener el mecanismo
de locomocin deseado, esta tarea la realiza el panel seleccionable que se encuentra en la parte
inferior izquierda de la pantalla. Aqu el operario puede identificar cada forma de locomocin
por su icono. Tras seleccionar una opcin, el programa modifica los parmetros de las ondas
para obtener el mecanismo de locomocin deseado.
Adems para dotar al programa de mayor flexibilidad puede elegirse una opcin de
modo libre que permite al operario definir los parmetros de las ondas de forma manual.
Por ltimo, en la parte superior izquierda de la pantalla se encuentran una serie de
barras deslizantes que controlan la posicin angular de los servomotores individualmente. Esas
barras deslizantes, adems de proporcionar informacin grfica de las posiciones de las
articulaciones, pueden servir para mover cada servomotor de forma manual si se encuentra
seleccionada la opcin modo libre.
Esta funcin resulta de gran utilidad para aquellas ocasiones en las que con el robot
inmvil se quiere orientar de forma precisa la cmara, ya que al encontrarse sta en el extremo
del robot el movimiento de los dos ltimos segmentos permite mantener estable el campo de
visin durante los desplazamientos y, cuando el robot se encuentra detenido, apuntar hacia
cualquier objetivo de inters.
32
4.2
Hardware de control
4.2.1.
Estas caractersticas, sobre todo la facilidad de conexin mediante USB, propiciaron que
se eligiese como la primera placa de control para desarrollar el primer prototipo controlado
mediante umbilical.
Pero sus grandes dimensiones (53x84x15), as como la necesidad de alimentacin a 7,5
V hicieron que resultase imposible su incorporacin a un robot de reducidas dimensiones
33
4.2.2.
Frecuencia de pulsos: 50 Hz
Las reducidas dimensiones de esta tarjeta controladora de servos (en la fecha de compra
la ms pequea del mercado), junto con su capacidad de comunicacin por puerto serie, la
convierten en ideal para una aplicacin como la que nos ocupa, en la que la seal transmitida
por radiofrecuencia ser de tipo puerto serie y el espacio disponible es pequeo.
Para ms detalles sobre esta tarjeta consultar el Anexo D.
34
4.2.3.
Consumo de corriente: 45 mA
Adems de las caractersticas mencionadas anteriormente, hay que tener en cuenta que
estos mdulos tienen la gran ventaja de ser capaces de autoorganizarse en forma de red,
escaneando automticamente cada cierto tiempo en busca de nuevos dispositivos y elaborando
mapas de rutas ptimas de transmisin de datos.
35
Operacin API: este procedimiento resulta muy potente ya que permite controlar
completamente la transmisin de datos. Para trabajar en este modo es necesario utilizar
comandos de bajo nivel propios de los mdulos. Trabajar de esta forma permite:
4.2.4.
Cabe destacar la importancia de este componente a la hora de trabajar con los mdulos
Xbee, ya que stos reciben los comandos de control mediante el estndar rs-232 tpico de
puerto serie, pero aunque los niveles lgicos de ste van de -12V a 12V, los mdulos Xbee
deben recibir unos niveles de tensin comprendidos entre 0V y 3,3V.
Adems resulta especialmente relevante el hecho de que los ordenadores porttiles que
precisamente seran los ms indicados para controlar un robot de estas caractersticas, no
suelen presentar puerto serie, en su lugar disponen de varios conectores USB.
36
4.2.5.
Dispositivo digitalizador
Las principales caractersticas de ente dispositivo se muestran a continuacin:
Resoluciones de vdeo:
NTSC: 720x480 / 30FPS
PAL: 720x576 / 25FPS
Requisitos mnimos:
Windows 2000/XP/Vista
400 MB de espacio libre en disco para instalacin de software
Monitor de 16-bits con resolucin 1024x768
DirectX 9
37
4.3
38
Los posibles problemas que podran aparecer debido a las frecuencias de conmutacin,
ya que el protocolo de comunicacin RS-232 es propio de electrnica digital y los transistores
tpicamente se emplean en electrnica analgica, no son tales como se demostrar en el
siguiente anlisis:
El protocolo utilizado de comunicacin entre Xbee y tarjeta controladora de servos es
una seal tipo puerto serie con un bitrate de 38400 bps. Esta medida quiere decir que se
transmitirn 38400 bits por segundo.
Puesto que un bit es bsicamente una onda cuadrada, el peor caso posible sera la
transmisin de una trama de la forma 101010 como la que se muestra en la Figura 4.9
En dicha tabla puede verse que la frecuencia de transicin es de 100 MHz, Tpicamente
el transistor deber operar por debajo de esta frecuencia para evitar cualquier tipo de
problemas. No obstante, si se toma una frecuencia de operacin mucho menor, como por
ejemplo 1MHz, el transistor seguir realizando su funcin adecuadamente como se ver a
continuacin.
39
40
Hay que destacar que la forma de onda que reproduce el anlisis de Fourier no es
exactamente la onda cuadrada, y que a medida que se adhieren ms trminos a las series sta
se va aproximando a la onda cuadrada, dado que las oscilaciones se vuelven ms rpidas y ms
pequeas, pero los picos no disminuyen.
41
4.3.1.
Alimentacin de la electrnica
Por ltimo hay que sealar que para la eleccin de la alimentacin del robot existen
diversas opciones entre las que destacan las pilas tradicionales y los distintos tipos de bateras
existentes.
A continuacin se muestra una tabla comparativa entre las pilas comerciales ms
comunes:
Designacin:
CR1025
LR1
LR03
LR6
6LR61
Moneda Litio
Litio / Dixido
de Manganeso
(Li/MnO2)
Alcalina
Zinc-Dixido
de Manganeso
(Zn/MnO2)
Alcalina
Zinc- Dixido
de Manganeso
(Zn/MnO2)
3,0 V
1,5 V
1,5 V
1,5 V
9,0 V
30 mAh
1000 mAh
1200 mAh
2900 mAh
600 mAh
0,7 g
9,0 g
11,5 g
23,0 g
45,6 g
0,2 cm3
3,3 cm3
3,8 cm3
8,1 cm3
21,1 cm3
0,50
1,00
0,40
0,60
1,75
Imagen:
Clasificacin:
Sistema
Qumico:
Voltaje
Nominal:
Carga
Elctrica
Peso Tpico
Volumen
Tpico:
Precio:
Alcalina
Alcalina
Zinc- Dixido Zinc- Dixido
de Manganeso de Manganeso
(Zn/MnO2)
(Zn/MnO2)
42
Una tabla comparativa entre las dos opciones consideradas se muestra a continuacin:
Designacin:
E603048
H083448
Sistema Qumico:
Litio - Polmero
Ion - Litio
Voltaje Nominal:
3,7 V
3,7 V
900 mAh
1250 mAh
16,8 g
37 g
48x30x6 mm
48x34x8
Imagen:
Clasificacin:
Carga Elctrica
Peso Tpico
Dimensiones Tpicas:
Precio:
5 + Gastos de envo
43
Puesto que se opt por el uso de pilas de tipo AAA, resulta necesaria la fijacin
mecnica de las bateras al robot. Para esta tarea se utilizaron portapilas modelo bh443d que
permiten una fcil sujecin, adems de facilitar el acceso a sus bornes de conexin para soldar
las mismas.
44
5
ESPECIFICACIONE TCNICAS Y
SIMULACIONES
5.1. Especificaciones tcnicas
5.2. Simulaciones desarrolladas
5.1
Especificaciones tcnicas
En este primer apartado se detallan las caractersticas del robot ordenndolas con una
estructura similar a la presentada en el captulos dedicado al estado del arte
Especificaciones tcnicas:
45
Actuadores: Servomotores Futaba 3003 (Par: 3,2 Kg-cm Velocidad: 0,23 seg/60).
Autonoma: 40 minutos.
Radio de alcance: 30 m.
Para el clculo de la autonoma del robot hay que tener en cuenta que los servomotores
no consumen la misma cantidad de corriente durante todo el tiempo y aunque en la ficha
tcnica de los servomotores Futaba S3003 se indique un consumo de 7,2 mA (Anexo D), esto es
para el modo inactivo. Para un funcionamiento sin carga consumen 50 mA, y para carga
nominal consumen 200 mA, en realidad el consumo de los servomotores utilizados ser superior,
ya que la carga a la que estn sometidos est ms prxima al funcionamiento bloqueado, pero
se supondrn 200 mA por simplicidad.
Si con este valor de consumo observamos las grficas de tiempo de servicio en funcin
de la descarga de las pilas utilizadas se puede estimar la autonoma del robot.
Como puede verse en la Figura 5.1 el tiempo de servicio se encuentra entorno a 1 hora,
pero tras la realizacin de numerosas pruebas se lleg a la conclusin que la autonoma real se
encuentra prxima a los 40 minutos, ya que tras media hora de utilizacin el voltaje de las
bateras disminuye por debajo del lmite admisible por los servomotores.
46
Descripcin
Servomotores Futaba s3003
Mdulos Xbee
Pololu Micro Serial Servo
Xbee USB Adapter
Mini cmara inalmbrica
Precio Unitario
11
16
14
17
20
Subtotal
88
32
14
17
20
Total:
171
5.2
Simulaciones desarrolladas
47
Las razones principales para la utilizacin de este nuevo software de simulacin son
varias, entre las que destacan:
Los cuerpos rgidos que se simulas tienen la misma forma que el diseo real (se
tienen en cuenta tanto cuerpos cncavos como convexos)
48
Los motores se controlan mediante un control en posicin PID con los parmetros
que el simulador ofrece por defecto, por lo que se comportan como cajas negras al
igual que los servomotores Futaba empleados
5.2.1.
49
50
5.2.2.
51
52
53
54
55
56
57
58
6
EJEMPLOS DE APLICACIN
6.1. Tareas de reconocimiento
6.2. Tareas de inspeccin
En primer lugar es necesario detallar que se entiende como tareas de inspeccin y que
caractersticas son las propias de las tareas de reconocimiento.
En este documento se considera que las tareas de inspeccin son aquellas que se limitan
a la observacin del estado de conductos de canalizacin o tuberas desde su interior, adems se
considerar que la mayor parte de los sistemas de tuberas se encontrarn formados por tramos
rectilneos siendo las secciones acodadas, secciones especiales que requeriran un trato diferente
del necesario para el resto de la conduccin.
Mientras que las tareas de reconocimiento implican el desplazamiento del robot sobre
un entorno bidimensional, como puede ser el suelo de un edificio o cualquier tipo de terreno
moderadamente llano que se encuentre en campo abierto. Esta definicin se encuentra
orientada a aplicaciones que puedan resultar tiles a las fuerzas y cuerpos de seguridad debido
a su potencial para situar ojos y odos en terreno hostil o accidentado de forma encubierta.
59
6.1
Tareas de reconocimiento
60
6.2
Tareas de inspeccin
61
Como puede verse en el video del experimento, el robot es capaz de descubrir atascos en
las tuberas e incluso solucionarlos, aunque en un principio su diseo se orientase slo a la
inspeccin y no al desatasco.
62
7
CONCLUSIONES
7.1. Conclusiones
7.2. Problemas encontrados y propuestas de mejora
7.3. Colaboracin en el software de robtica V-REP
En este captulo se exponen las conclusiones a las que puede llegarse a partir de los
resultados obtenidos tanto en las simulaciones como en los experimentos realizados con el
prototipo.
As mismo, se detallarn los aspectos ms problemticos y las distintas propuestas de
mejora.
Por ltimo, se realizar una breve descripcin de un nuevo simulador dedicado a la
robtica que el autor pudo probar en los ltimos meses de desarrollo del robot y en el cual ha
podido participar activamente incluyendo su robot como parte del catlogo de robots
disponibles para su experimentacin.
63
7.1. Conclusiones
7.1
Conclusiones
Por otra parte hay que destacar que se han logrado cumplir todos los objetivos
propuestos con la elaboracin del robot. Se ha logrado realizar un diseo modular y flexible, se
ha desarrollado una interfaz de control simple y amigable y, sobre todo, se ha conseguido que el
robot sea completamente autnomo y pueda dirigirse sin ayuda de cables.
Este ltimo punto tambin marca una diferencia importante con respecto al resto de
prototipos existentes, pues a la fecha de la redaccin de este proyecto, salvo contadas
excepciones, la gran mayora de prototipos necesitan ser operados mediante un umbilical que
les transmita energa y seales de control.
Incluso algunos de los que se encuentran dotados de cierta autonoma no pueden
controlarse ms all de la ejecucin de unas pocas secuencias de movimiento preprogramadas,
lo que los convierte en inviables para su aplicacin a la inspeccin de entornos desconocidos o
cambiantes.
Finalmente, hay que destacar que, pese a las discrepancias obtenidas entre los
resultados tericos obtenidos en los simuladores y los resultados obtenidos mediante
experimentacin, fruto principalmente del reducido par de los servomotores empleados, se ha
conseguido experimentar con xito diversos algoritmos de locomocin y discernir cules de stos
resultaran ms tiles en dos de las posibles tareas que podra realizar el robot (locomocin
serpentinoide para tareas de reconocimiento y locomocin con mdulos alineados para tareas de
inspeccin).
Adems se han podido realizar mltiples demostraciones del funcionamiento del robot,
siendo la ms importante la realizada para la 1 Semana de la Robtica y Automtica de la
Escuela Tcnica Superior de Ingenieros Industriales de Ciudad Real.
64
7.2
Los servomotores utilizados carecen del par necesario para controlar los segmentos
de la serpiente de manera precisa. Esta deficiencia, asociada al elevado peso del
sistema de alimentacin, impide la realizacin de actividades como por ejemplo la
inspeccin de tuberas verticales.
La solucin a este problema es sencilla, bastara con substituir las pilas por un
sistema de alimentacin mediante bateras de LiPo que presentan un peso inferior,
adems de reemplazar los servomotores utilizados por otros con un mayor par como
los servomotores especialmente diseados para robtica HSR-8498HB creados por la
compaa Hitec que presentan un par mximo de 9 Kg-cm frente a los 4,1 Kg-cm de
los Futaba empleados.
65
7.3
ACM-R5
Roller-Walker
DR12
DR20
E-Puck
K-Junior
Khepera 3
Kuka Youbot
66
Figura 7.1 Pantalla del simulador V-REP con el robot serpiente incluido en el programa
67
BIBLIOGRAFA
[1] Dino Accoto, Piero Castrataro, and Paolo Dario. Biomechanical Analysis of Oligochaeta
biologically Crawling. (2004) Journal of Theoretical Biology, 230, pp. 49-.
[2] A. Alonso-Puig. Application of Waves Displacement Algorithms for the Generation of
Gaits in an all terrain Hexapod. In Climbing and Walking Robots, pp 343348, September
2005.
[3] Aksel Andreas Transeth, Nathan van de Wouw, Alexey V. Pavlov, Joo Pedro Hespanha,
Kristin Ytterstad Pettersen. Tracking control for snake robot joints. In Proceedings of
IROS'2007. pp.3539~3546.
[4] J. Borenstein, M. Hansen, and H. Nguyen. The OmniTread OT-4 Serpentine Robot for
Emergencies and Hazardous Environments. In Proceeding of the International Joint
Topical Meeting: Sharing Solutions for Emergencies and Hazardous Environments, 12
February 2006.
[5] L. Chen, Y. Wang, and S. Ma. Studies on lateral rolling locomotion of a snake robot. In
Robotics and Automation, 2004. Proceedings. ICRA 04. 2004 IEEE International
Conference on, volume 5, pages 5070 5074, April 2004.
[6] G.S Chirjkjian and J.W Burdick. Kinematically optimal hyperredundant manipulator
configurations. IEEE transactions on Robotics and Automation, 11:794806, 1995.
[7] A. Crespi, A. Badertscher, A. Guignard, and A. J. Ijspeert. An amphibious robot capable
of snake and lamprey-like locomotion. In Proceedings of the 35th international symposium
on robotics, 2004.
[8] A. Crespi, A. Badertscher, and A. Guignard. Swimming and crawling with an amphibious
snake robot. In Proceedings of the 2005 IEEE International Conference on Robotics and
Automation, pages 30353039, 2005
68
BILBIOGRAFA
[9] A. Degani, A. Shapiro, H. Choset, and M.Mason. A dynamic single actuator
verticalvertical climbing robot. In Intelligent Robots and Systems, 2007. IROS 2007.
IEEE/RSJ International Conference on, pages 29012906, November 2007.
[10] Dobrolyubov A.I. The mechanism of locomotion of some terrestrial animals by travelling
waves of deformation (1986) Journal of Theoretical Biology, 119, pp.457-466.
[11] A. H. Cohen and P.J Holmes. The Nature of the Couplings Between Segmental Oscillators
of the Lamprey Spinal Generator for Locomotion: A Mathematical Model. Journal of
Mathematical Biology, 13:345369, 1982.
[12] K. Dowling. Limbless Locomotion: Learning to Crawl with a Snake Robot. PhD thesis,
Robotics Institute, Carnegie Mellon University, Pittsburgh, PA, December 1997.
[13] S. Hirose. Biologically Inspired Robots (Snake-like Locomotor and Manipulator). Oxford
Science Press, 1993.
[14] S. Hirose, A. Morishima, and S. Tukagosi. Design of Practical Snake Vehicle: Articulated
Body Mobile Robot KR-II. In Proc. 5th Int. Conf. Advanced Robotics, volume 1, pp 833
838, 1991.
[15] J. Gonzlez-Gmez. Modular Robotics and Locomotion: Aplication to Limbless Robots
Universidad Autnoma de Madrid, November 2008.
[16] Shugen Ma. Analysis of Creeping Locomotion of a Snake-like Robot. Int. J. of Advanced
Robotics. 2000
[17] Shugen Ma, Yoshihiro Ohmameuda and Kousuke Inoue. Dynamic Analysis of 3dimensional Snake Robots. In Proc. 2004 IEEE/RSJ Int. Conf. on Intelligent Robots and
Systems (IROS'04), pp.767---772, Sendai, Japan 2004.9,
[18] D. M. Wilson. The central nervous control of flight in a locust. Journal of Experimental
Biology, 38:471490, 1961.
[19] V. Zykov, A. Chan, and H. Lipson. Molecubes: An Open-Source Modular Robotics Kit. In
Proc. of the IEEE Int. Conf. on Intelligents Robots and systems, 2007.
69
Anexos
[A] PLANOS CONSTRUCTIVOS
[B] DIAGRAMA DE CONEXIONADO DEL ROBOT
[C] DESCRIPCIN DEL SOFTWARE DESARROLLADO
[D] HARDWARE UTILIZADO
[E] DESCRIPCIN DEL SOFTWARE UTILIZADO
A
PLANOS CONSTRUCTIVOS
En este anexo se van a mostrar los planos diseados para su simulacin y fabricacin de
las distintas generaciones de robots realizadas. Debido a que el diseo de las piezas se hizo
orientado especficamente a su fabricacin en lminas de cartn prensado de 2,1 mm de espesor
maquinado en un mquina de fresado de PCBs no se incluyen las vistas de planta y perfil, por
se stas innecesarias.
Planos constructivos
EDICION
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 01.01
MDULO ORM:
PIEZAS BASE
Nombre
Andrs San Milln
Rodrguez
E.T.S. Ingenieros
Industriales
Sustituido por:
Hoja n
1
N Hojas
13
Planos constructivos
EDICION
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 01.02
MDULO ORM:
PIEZAS LATERALES
Nombre
Andrs San Milln
Rodrguez
E.T.S. Ingenieros
Industriales
Sustituido por:
Hoja n
2
N Hojas
13
Planos constructivos
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 01.03
MDULO ORM:
SOPORTE DEL SERVO
SOPORTE DE LA CORONA
Nombre
E.T.S. Ingenieros
Andrs San Milln
Rodrguez
Industriales
Sustituido por:
EDICION
Hoja n
3
N Hojas
13
Planos constructivos
EDICION
Modificaciones
Tol. gen
Escala
Fecha
Dibujad.
Compr.
Sustituye a:
Plano n 01.04
MDULO ORM:
VISTA GENERAL
Nombre
Andrs San Milln
Rodrguez
E.T.S. Ingenieros
Industriales
Sustituido por:
Hoja n
4
N Hojas
13
Planos constructivos
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 02.01
MDULO DE CABEZA:
PIEZA BASE Y SOPORTE
DE LA CMARA
Nombre
E.T.S. Ingenieros
Andrs San Milln
Rodrguez
Industriales
Sustituido por:
EDICION
Hoja n
5
N Hojas
13
Planos constructivos
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 02.02
MDULO DE CABEZA:
PIEZAS DE
SUJECCIN 1 Y 2
Nombre
E.T.S. Ingenieros
Andrs San Milln
Rodrguez
Industriales
Sustituido por:
EDICION
Hoja n
6
N Hojas
13
Planos constructivos
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 02.03
MDULO DE CABEZA:
PIEZAS DE
SUJECCIN 3 Y 4
Nombre
E.T.S. Ingenieros
Andrs San Milln
Rodrguez
Industriales
Sustituido por:
EDICION
Hoja n
7
N Hojas
13
Planos constructivos
EDICION
Modificaciones
Tol. gen
Escala
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 02.04
MDULO DE CABEZA:
VISTA GENERAL
Nombre
Andrs San Milln
Rodrguez
E.T.S. Ingenieros
Industriales
Sustituido por:
Hoja n
8
N Hojas
13
Planos constructivos
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 03.01
MDULO AUTNOMO:
PIEZA BASE 1 Y SOPORTE
DE XBEE
Nombre
E.T.S. Ingenieros
Andrs San Milln
Rodrguez
Industriales
Sustituido por:
EDICION
Hoja n
9
N Hojas
13
10
Planos constructivos
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 03.02
MDULO AUTNOMO:
PIEZA BASE 2 Y SOPORTE
DE LA CORONA
Nombre
E.T.S. Ingenieros
Andrs San Milln
Rodrguez
Industriales
Sustituido por:
EDICION
Hoja n
10
N Hojas
13
11
Planos constructivos
EDICION
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 03.03
MDULO AUTNOMO:
PIEZAS LATERALES
Nombre
Andrs San Milln
Rodrguez
E.T.S. Ingenieros
Industriales
Sustituido por:
Hoja n
11
N Hojas
13
12
Planos constructivos
EDICION
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 03.04
MDULO AUTNOMO:
SOPORTE DEL SERVO
Nombre
Andrs San Milln
Rodrguez
E.T.S. Ingenieros
Industriales
Sustituido por:
Hoja n
12
N Hojas
13
13
Planos constructivos
EDICION
Modificaciones
Tol. gen
Escala
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 03.05
MDULO AUTNOMO:
VISTA GENERAL
Nombre
Andrs San Milln
Rodrguez
E.T.S. Ingenieros
Industriales
Sustituido por:
Hoja n
13
N Hojas
13
14
B
DIAGRAMA DE CONEXIONADO DEL
ROBOT
En este anexo se muestra el diagrama completo del cableado que conecta los distintos
componentes que forman parte del robot
EDICION
Modificaciones
Tol. gen
Escala
1:1
Fecha
Dibujad.
Compr.
1/6/11
Sustituye a:
Plano n 04.01
DIAGRAMA DE
CONEXIONADO
Nombre
Andrs San Milln
Rodrguez
Sustituido por:
E.T.S. Ingenieros
Industriales
Hoja n
1
N Hojas
1
C
DESCRIPCIN DEL SOFTWARE
DESARROLLADO
En este anexo se detallarn las caractersticas de los distintos programas desarrollados
para controlar el robot serpiente. Principalmente diversas aplicaciones creadas para controlar
mediante puerto serie la tarjeta controladora de servos Pololu Micro Serial Servo
C.1.1
Mdulo ApiDeclaratios:
'******************************************************************************
'API constants, listed alphabetically
'******************************************************************************
Public Const DIGCF_PRESENT = &H2
Public Const DIGCF_DEVICEINTERFACE = &H10
Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
Public Const GENERIC_READ = &H80000000
Public Const GENERIC_WRITE = &H40000000
Public Const FILE_SHARE_READ = &H1
Public Const FILE_SHARE_WRITE = &H2
Public Const HidP_Input = 0
C.1.2
Mdulo Funciones
Option Explicit
' Funcin que crea un timer
Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As
Long, ByVal lpTimerFunc As Long) As Long
' Funcin que detiene el timer iniciado
Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Dim Buffer As String
Dim Retraso As Boolean 'Variable que indica que se cumplio el tiempo
' Funcin Callback que se dispara al iniciar el timer
Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc
As Long)
TimeOut = True
End Sub
Function AbrirPuerto(MostrarError As Boolean) As Boolean
On Error GoTo Rutina
'cerramos el puerto por si esta abierto
If frmMain.PuertoSerie.PortOpen Then frmMain.PuertoSerie.PortOpen = False
'Puerto a abrir
frmMain.PuertoSerie.CommPort = Puerto 'el numero del puerto
' 115200 baud, sin paridad, 8 bytes, y un bit de stop.
If Vel_RS232 = "" Then Vel_RS232 = "9600"
frmMain.PuertoSerie.Settings = Vel_RS232 & ",N,8,1"
' lectura completa del buffer
frmMain.PuertoSerie.InputLen = 0
10
C.1.3
Mdulo ModuloUSB
Option Explicit
Dim Capabilities As HIDP_CAPS
Dim DataString As String
Dim DetailData As Long
Dim DetailDataBuffer() As Byte
Dim DeviceAttributes As HIDD_ATTRIBUTES
Dim DevicePathName As String
Dim DeviceInfoSet As Long
Dim HidDevice As Long
Dim LastDevice As Boolean
Dim MyDeviceInfoData As SP_DEVINFO_DATA
Dim MyDeviceInterfaceDetailData As SP_DEVICE_INTERFACE_DETAIL_DATA
Dim MyDeviceInterfaceData As SP_DEVICE_INTERFACE_DATA
Dim Needed As Long
Dim OutputReportData(65) As Byte
Dim DispositivoDetectado As Boolean
Dim PreparsedData As Long
Dim Result As Long
Dim TimeOut As Boolean
'Valores del HID
Const VID = &H1562 '&H8568 (30 v2)
Const PID = &H2312 '&H4865 (30 v2)
'Variable que nos indica si esta detectada la placa
Public DetectBoard As Boolean
Sub DetectarUSB(MostrarError As Boolean)
Dim HidGuid As GUID
Dim MemberIndex As Long
LastDevice = False
11
vbNullString,
0,
(DIGCF_PRESENT
Or
12
MyDeviceInterfaceData,
Or
GENERIC_WRITE,
13
ReadBuffer(0),
CLng(Capabilities.InputReportByteLength),
'Debug.Print NumberOfBytesRead
If Result Then
For Count = 1 To UBound(ReadBuffer)
'Add a leading 0 to values 0 - Fh.
If Len(Hex$(ReadBuffer(Count))) < 2 Then
ByteValue = ReadBuffer(Count)
Else
ByteValue = ReadBuffer(Count)
End If
Debug.Print ByteValue
Next Count
LeerUSB = True
End If
End Function
Private Function EscribirUSB() As Boolean
Dim Count As Integer
Dim NumberOfBytesRead As Long
Dim NumberOfBytesToSend As Long
Dim NumberOfBytesWritten As Long
Dim ReadBuffer() As Byte
Dim SendBuffer() As Byte
If Capabilities.OutputReportByteLength <= 0 Then
Exit Function
End If
'The SendBuffer array begins at 0, so subtract 1 from the number of bytes.
ReDim SendBuffer(Capabilities.OutputReportByteLength - 1)
'The first byte is the Report ID
SendBuffer(0) = 0
14
SendBuffer(0),
CLng(Capabilities.OutputReportByteLength),
'Cabecera ("P")
OutputReportData(1) = nServo
'cabecera (todos=T)
Next TmpC
'si la escritura del usb falla intentamos capturar el HID
If EscribirUSB = False Then Call DetectarUSB(False)
Exit Sub
Rutina:
MsgBox "Error en el sub Enviarposicin", vbInformation, "Error"
End Sub
Sub EnviarPosicionServo(nServo As Integer, Posicion As Byte)
On Error GoTo Rutina
OutputReportData(0) = Asc("S")
OutputReportData(1) = nServo
OutputReportData(2) = Posicion
'Cabecera (I)
OutputReportData(1) = nServo
'N de Servo
OutputReportData(2) = Posicion
'Cabecera ("R")
'N de puerto
Exit Function
Rutina:
MsgBox Error & "...Leyendo el parametro de Ancho del PWM"
End Function
'Lee el parametro de inicio del PWM
Function LeerInicioPWM(Puerto As Integer) As Byte
On Error GoTo Rutina
OutputReportData(0) = Asc("Q")
OutputReportData(1) = Puerto
'Cabecera ("Q")
'N de puerto
Exit Function
Rutina:
MsgBox Error & "... Leyendo el parametro de inicio del PWM"
End Function
Sub EnviarInicioPWM(Puerto As Integer, valor As Byte)
16
'Cabecera ("Z")
'Bit 1
Next aa
Exit Function
Rutina:
MsgBox "Error... al leer la ID", vbExclamation, "Error"
End Function
17
'cabecera (A)
OutputReportData(1) = Velocidad
'Velocidad
C.1.4
Mdulo Variables
C.1.5
Formulario FrmPuerto
Option Explicit
Private Sub CargarPropiedades()
18
19
'Buscamos la controladora
End If
'Leemos las posiciones
Call frmMain.Leer_Posiciones
Unload Me
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
' Carga la configuracin actual de las propiedades
Call CargarPropiedades
End Sub
C.1.6
Formulario frmMain
'CAMARA STUFF'
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal
wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA"
(ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal
nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long
Private mCapHwnd As Long
Private Const CONNECT As Long = 1034
Private Const DISCONNECT As Long = 1035
Private Const GET_FRAME As Long = 1084
Private Const COPY As Long = 1054
Private Declare Function GetTickCount Lib "kernel32" () As Long
Dim LastTime As Long
Dim tcount As Long
Dim Velocidad_motor As Long
Option Explicit
'CAMARA STUFF'
Dim radian As Double
Dim indice As Integer
Dim Mot1 As Byte
Dim Mot2 As Byte
Dim Mot3 As Byte
20
21
22
23
24
25
26
'Rs232
'Usb
Call ModuloUSB.DetectarUSB(True)
End If
'Presenta el formulario
Me.Show
'Leemos las posiciones y cargamos los controles
Call Me.Leer_Posiciones
'Esto da permiso para modificar el valor a los faders
Interactuar = True
'CONTROL POR VOZ'
Vcommand1.Initialized = 1
gMymenu = Vcommand1.MenuCreate(App.EXEName, "state1", 4)
Vcommand1.Enabled = 1
Vcommand1.AddCommand gMymenu, 1, "right", "when you say" + "right", "listen list", 0, ""
Vcommand1.AddCommand gMymenu, 1, "left", "when you say" + "left", "listen list", 0, ""
Vcommand1.AddCommand gMymenu, 1, "forward", "when you say" + "forward", "listen list", 0, ""
Vcommand1.AddCommand gMymenu, 1, "backward", "when you say" + "backward", "listen list", 0, ""
Vcommand1.AddCommand gMymenu, 1, "go", "when you say" + "go", "listen list", 0, ""
Vcommand1.AddCommand gMymenu, 1, "stop", "when you say" + "stop", "listen list", 0, ""
UpdateList
Vcommand1.Activate gMymenu
'CONTROL POR VOZ'
End Sub
Private Sub Option1_Click(Index As Integer)
'Permiso para poder cambiar las opciones
If Interactuar Then
'Valor de la variable de modo
ModoRS232 = Abs(CBool(Option1(0).Value))
' Guardamos el modo de comunicacion (USB=false, RS232=True)
Call Funciones.EscribeINI("Conf.ini", "Settings", "Modo", Trim(Str(ModoRS232)))
MsgBox "Inicialice su controladora y pulse aceptar...", vbInformation, "Inicializacin..."
'Abrimos el puerto seleccionado e intentamos comunicar
27
End If
'Leemos las posiciones
Call Me.Leer_Posiciones
End If
End Sub
Private Sub VS1_Change(Index As Integer)
Call VS1_Scroll(Index)
End Sub
Private Sub VS1_Scroll(Index As Integer)
'Presentamos el valor en el label del canal correspondiente
Lval(Index).Caption = VS1(Index).Value
'Permiso de escritura al USB
If Interactuar Then
'Si el check1 esta habilitado no dejara enviar la posicion
If Check1.Value = 0 Then
If ModoRS232 = RS232 Then
'Enviamos el valor al USB (Numero de servo, posicion)
Call ModuloRs232.EnviarPosicionServo(Index, VS1(Index).Value)
Else
'Enviamos el valor al USB (Numero de servo, posicion)
Call ModuloUSB.EnviarPosicionServo(Index, VS1(Index).Value)
End If
End If
End If
End Sub
Private Sub Personalizado(Index As Integer)
'Presentamos el valor en el label del canal correspondiente
'Permiso de escritura al USB
If Interactuar Then
'Si el check1 esta habilitado no dejara enviar la posicion
If Check1.Value = 0 Then
If ModoRS232 = RS232 Then
28
29
30
C.2.1
Mdulo Representa
31
32
33
C.2.2
Mdulo Funciones
cmd = cmd & Chr(num) ' servo num - 0x.. ' 00-07
' data1
' data2
Sleep 60
DoEvents
End If
End Function
Function hex2dec(sHexStr) As Integer
hex2dec = CLng("&H" & Trim(sHexStr))
End Function
Function dec2hex(val As Integer) As String
dec2hex = Hex(val)
End Function
Function pad(val As String, Optional length As Integer = 1, Optional char As String = "0") As String
' pads a string with chars until len = length
Do While Len(val) < length
val = char & val
34
35
C.2.3
Mdulo Funcionamiento
36
37
C.2.4
Mdulo Constantes
C.2.5
Mdulo Acciones
C.2.6
Formulario Form1
Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal
wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function capCreateCaptureWindow Lib "avicap32.dll" Alias "capCreateCaptureWindowA"
(ByVal lpszWindowName As String, ByVal dwStyle As Long, ByVal X As Long, ByVal Y As Long, ByVal
nWidth As Long, ByVal nHeight As Long, ByVal hwndParent As Long, ByVal nID As Long) As Long
Private Sub cmdOnOff_Click()
If Form1.cmdOnOff.Caption = "Off" Then
38
39
40
Senoide(Amplitud_Horizontal.value,
-Tiempo.Caption,
0,
Senoide(Amplitud_Horizontal.value,
-Tiempo.Caption,
0,
Senoide(Amplitud_Horizontal.value,
-Tiempo.Caption,
0,
Senoide(Amplitud_Horizontal.value,
-Tiempo.Caption,
0,
41
Senoide(Amplitud_Horizontal.value,
-Tiempo.Caption,
0,
Senoide(Amplitud_Horizontal.value,
-Tiempo.Caption,
0,
42
43
D
HARDWARE UTILIZADO
En este anexo se detallarn las caractersticas y toda la informacin disponible sobre los
distintos elementos de hardware utilizados en el robot, tanto elementos electrnicos como
sistemas de actuacin
Hardware utilizado
Testeada en Windows XP (Home y Pro), Windows Vista, Windows 2000 y 2003 Server
Velocidades RS232 soportadas: 9600 (defecto) 19200, 38400, 57600 y 115200 baudios.
Hardware utilizado
Hardware utilizado
Hardware utilizado
Hardware utilizado
Hardware utilizado
Hardware utilizado
Hardware utilizado
Hardware utilizado
10
Hardware utilizado
Frecuencia de pulsos: 50 Hz
11
Hardware utilizado
12
Hardware utilizado
13
Hardware utilizado
14
Hardware utilizado
15
Hardware utilizado
16
Hardware utilizado
17
Hardware utilizado
18
Hardware utilizado
19
Hardware utilizado
iDigi compatible
20
Hardware utilizado
21
Hardware utilizado
22
Hardware utilizado
23
Hardware utilizado
24
Hardware utilizado
25
Hardware utilizado
26
Hardware utilizado
27
Hardware utilizado
28
Hardware utilizado
29
Hardware utilizado
30
Hardware utilizado
31
Hardware utilizado
32
Hardware utilizado
La microcmara espa inalmbrica es un kit que incluye una diminuta cmara de vdeo
de alta resolucin, (mas de 380 lneas de TV), un microtransmisor de vdeo y audio de 50 mW,
incorporado en la misma carcasa de la cmara, receptor, los adaptadores de corriente para
poder conectar a la red tanto el receptor como la cmara y un adaptador de pila de 9 voltios
para la microcmara Es decir incluye todo lo necesario para utilizar la minicmara en sistemas
de vigilancia, espionaje, documentacin, control de acceso y seguridad,
Para recibir la seal de la microcmara, solo hay que conectar el receptor a un televisor
o a un videograbador domstico mediante el cable de vdeo y audio que trae al efecto, y
conectar el alimentador DC. El receptor ofrecer a la salida la seal de vdeo compuesto y
33
Hardware utilizado
audio para poder aplicarse a cualquier TV, monitor de vdeo, VCR, ordenador con
digitalizadora, etc.
Las inmejorables prestaciones del equipo hacen que su rango de aplicaciones sea muy
amplio. Resulta ideal como cmara espa de instalacin inmediata, ya que su diminuto tamao
le permitir ocultarla en cualquier lugar por pequeo que este sea. No menos importante que la
transmisin de imgenes es el sonido.
La microcmara S130347 dispone de un micrfono incorporado que suministra una
calidad de sonido, fundamental para labores de espionaje y vigilancia. Adems, al ser
inalmbrica y funcionar con pilas, no hay cables a la vista lo que facilita todava mas su
colocacin. Puede esconderla en la corbata, en un paquete de tabaco, en un monedero o en
cualquier otro elemento de uso cotidiano sin que nadie sospeche jams que esta siendo espiado
por una cmara en color.
No hay una cmara en color inalmbrica ms pequea. A pesar de su pequeo tamao,
el transmisor tiene la misma potencia que un vdeo sender normal, llegando a los 50 - 200
metros en el exterior. En el interior el rango viene determinado principalmente por el nmero
de obstculos que tiene que atravesar. En las pruebas realizadas por nuestros tcnicos, se
lograron distancias de ms de 60 metros, atravesando paredes y techos.
Dadas las caractersticas tan particulares de esta microcmara y sobre todo debido a su
reducido tamao, la posibilidad de camuflarla u ocultarla en un objeto se convierte en una
labor sencilla, tan solo hay que dejar volar un poco la imaginacin y sobre todo utilizar objetos
cotidianos que permitan no llamar la atencin. De esta manera podremos ocultarla en objetos
tan variados como un sombrero, una corbata, un maletn, un archivador de oficina, un peluche,
etc...
34
Hardware utilizado
CARACTERSTICAS:
Sensor CMOS Color de 1/3
Elemento de imagen
Sistema de TV
PAL
Resolucin
Frecuencia de escaneado
50 Hz
Iluminacin mnima
3 lux
Micrfono
Incorporado en cmara
Potencia de salida
50 mW
Frecuencia de salida
900MHz-1200MHz
Alimentador cmara
Alimentador receptor
12 v. DC
Duracin de la pila 9v
4 a 5 horas
850 gr.
Tabla D.1 Caractersticas de la cmara
35
Hardware utilizado
Los servos se controlan aplicando una seal PWM por su cable de control. Las seales
PWM (Pulse Width Modulation, Modulacin por anchura de pulso) son digitales (pueden valer
0 1).
36
Hardware utilizado
Para posicionar el servo hay que aplicar una seal peridica, de 50Hz (20ms de
periodo). La anchura del pulso determina la posicin del servo. Si la anchura es de 2.3ms, el
servo se sita en un extremo y si la anchura es de 0.3ms se sita en el opuesto. Cualquier otra
anchura entre 0.3 y 2.3 sita el servo en una posicin comprendida entre un extremo y otro.
Por ejemplo, si queremos que se site exactamente en el centro, aplicamos una anchura de
1.3ms.
Cuando se deja de enviar la seal, el servo entra en un estado de reposo, y por tanto se
podr mover con la mano. Mientras se le aplique la seal, permanecer fijado en su posicin,
haciendo fuerza para permanecer en ella.
Las caractersticas tcnicas de este servomotor se detallan a continuacin:
Engranajes de Nylon.
Un ao de garanta.
Dimensiones: 40 x 20 x 36 mm
Peso: 37 g
Conector tipo J.
37
Hardware utilizado
38
E
DESCRIPCIN DEL SOFTWARE
UTILIZADO
En este anexo se detallarn las caractersticas de los distintos programas utilizados para
el desarrollo del presente proyecto. Fundamentalmente han sido programas pertenecientes al
mbito del diseo y la simulacin, al campo de la programacin de aplicaciones informticas y
a la programacin de microcontroladores.
Blender
3D 2.45
SolidWorks
Sketchup
Pro 6
Sketchup
6 (Free
Versin)
Autodesk
Softimage
Mod Tool
Autodesk
XSI
AC3D
Solid
Edge
Juegos
Modelado
mecnico
80
3578
Mercado
Juegos
Juegos Pelculas
Juegos Pelculas
Modelado
mecnico
Precio Final
Suscripcin
Anual
5,000
2,500
Gratis
7,500
331
Gratis
Gratis
Juegos y
efectos
visuales
2600
Si
Si
No
Si
No
No
Si
Si
No
Si
Si
Si
No
Si
Si
Si
Si
Si
Si
Si
FR, EN
EN, JPN
EN ESP
EN ESP
EN
EN, JPN
EN
EN ESP
No
EN
Todos
incluidos
EN
No
No
No
No
No
No
No
No
Muy
buena
<2
meses
Muy
buena
<3
meses
Baja
Buena
Normal
Normal
Norma
<3
meses
< 3 meses
< 1 mes
< 1 mes
<2
meses
Muy
buena
<3
meses
Regular
Bueno
No tiene
Regular
Bueno
Bueno
No tiene
Bueno
Poco
intuitiva
Prctica e
intuitiva
Flexible y
muy
intuitiva
Flexible y
muy
intuitiva
Prctica e
intuitiva
Buena
Buena
Regular
Regular
Buena
Regular
Buena
Excelente
Excelente
No tiene
Educacin Educacin
Juegos
Plataformas
Versin de
prueba
Idiomas
Idiomas
incorporados
Popularidad en
la industria
Tiempo de
aprendizaje
Soporte para
usuarios
particulares
Interfaz
Documentacin
DVD de
entrenamiento
Limpia y
potente
Buena
Buena
Flexible,
potente,
pero no
intuitiva
Excelente
Muy
buena
<2
mes
Muy
buena
<3
meses
Bueno
Bueno
Normal
Flexible,
Flexible
potente,
Potente y
y muy
flexible.
pero no
intuitiva
intuitiva
Excelente Buena Excelente
No
No tiene
Buena
tiene
E.1.1
SketchyPhysics
E.2 V-REP
V-REP (de Virtual Robot Experimentation Platform) es el otro programa utilizado
para realizar las simulaciones fsicas del robot, a diferencia de Sketchup en este programa
solamente se importaron los modelos ya diseados, porque aunque posee capacidades de edicin
de primitivas no resulta tan intuitivo y potente como la alternativa ofrecida por Google.
Este programa es comercial, aunque tiene una versin de estudiantes gratuita que se
utiliz para trabajar; para realizar las simulaciones utiliza tanto los motores fsicos Bullet como
ODE (Open Dynamics Engine) y posee capacidades mucho ms potentes y orientadas hacia la
robtica que Sketchyphysics.
Entre sus funcionalidades destacan:
E.3 JVM-Servo
Este programa fue el utilizado para controlar los servomotores de la primera generacin
de robot serpiente, funciona junto con la tarjeta controladora de servos JVM-Servo 28 y
presenta un interfaz de usuario como la mostrada en la Figura E.2.
E.4 X-CTU
X-CTU es una aplicacin basada en Windows proporcionada por Digi. Este programa
fue diseado para interactuar con los archivos de firmware que se encuentran en los productos
Digi RF y proporcionar una interfaz grfica fcil de utilizar por el usuario final.
El uso de este programa resulta fundamental para configurar apropiadamente los
mdulos Xbee, as como para poder programar la memoria no voltil que llevan incorporada
mediante comandos especficos de estos mdulos. Una vez ejecutado el programa presenta el
aspecto de la Figura E.3.
10
11
12
13
14
15
16
17
18
19
20
21
22