Robot Miniatura para Terapia de Ratas Taiep
Robot Miniatura para Terapia de Ratas Taiep
TESIS
Presentada para obtener el título de:
Maestro en Ciencias de la Electrónica Opción en Automatización
Presenta:
Directores:
Dr. José Ramón Eguibar Cuenca
** BECARIO CONACYT
Agradecimientos
Realizar un trabajo de tesis es una tarea ardua y extensa por lo que resulta imposible
llevarlo a cabo sin la colaboración y el apoyo de personas, profesores e instituciones, es
por ello que en estas líneas me permito agradecer profundamente todas las aportaciones
que permitieron la conclusión de este proyecto de forma exitosa.
Agradezco a mis padres, Irene Sánchez Salazar y Jeronimo Hernández Silverio, por
apoyarme en cada paso que he dado, en cada decisión que he tomado, por bridarme todo
su amor y por ser un gran ejemplo a seguir.
Les agradezco a mis hermanas, Maria del Rosario y Miriam Areli, por todo el apoyo
que me han brindado en cada etapa de mi vida.
A Nayeli por ayudarme y apoyarme durante todo este proceso y junto a ella cumplir
un sueño más.
Al Dr. José Fernando Reyes Cortés por brindarme todo su apoyo, no solo académi-
camente sino también personalmente, por orientarme adecuadamente adecuadamente con
cada uno de sus consejos y así lograr cumplir esta meta.
Al Dr. José Ramón Eguibar por brindarme todo su apoyo para cumplir este sueño,
por enseñarme una nueva forma de trabajo que en lo personal fue muy enriquecedor, por
permitirme adentrarme nuevamente en el área de la salud y llevarme de la mano en un
mundo casi desconocido para mí, por todo el apoyo académico y personal que me brindo
en toda esta etapa.
A la Dra. Carmen Cortés Sánchez, que de igual forma supo guiarme con sus conoci-
mientos y buenos consejos, los cuales fueron parte fundamental para el desarrollo de este
trabajo.
II
A mis amigos y compañeros con los cuales compartí momentos extraordinarios durante
este proceso y a todas las personas que de alguna u otra forma ayudaron a cumplir esta
meta.
A mis padres Irene Sánchez y Jeronimo Hernández, que han luchado mucho para que mis
hermanas y yo podamos cumplir cada uno de nuestros sueños.
A mis hermanas Maria del Rosario y Miriam Areli, por siempre ser una inspiración para
ser una mejor persona en cada aspecto de mi vida.
A toda mi familia, que simepre me apoyan.
A Nayeli, por acompañarme de la mano en esta travesía.
A mis amigos, que se han vuelto parte de mi familia.
Resumen
En el presente trabajo de tesis se exponen los conceptos que nos permiten entender el
problema motor que presenta el mutante de mielina denominada rata taiep, tema que es
una base importante para el desarrollo de este proyecto.
Para llevar a cabo una rutina programable que aplique una estimulación repetitiva a la
extremidad de una rata sana o una rata taiep, se diseña y se construye un robot móvil de
tracción diferencial. A partir de esta configuración de robot móvil se desarrolla la cinemá-
tica y el modelo dinámico con base en la metodología de Newton-Euler. El desarrollo del
modelo dinámico sienta las bases para poder elaborar un algoritmo de control y se realiza
el análisis de estabilidad asintótica en el sentido de Lyapunov, que garantiza la inmunidad
del control a las condiciones iniciales. Posteriormente se presentan las simulaciones del
algoritmo de control en conjunto con el modelo dinamico desarrollado previamente, las
respuestas que presenta esta simulación son comparadas con las respuestas que presenta
el algoritmo de control tangente hiperbólico y PD; esto permite evaluar el desempeño de
las estructuras de control.
Se desarrolla la etapa de potencia para los motores con los que cuenta el robot móvil,
la cual está basada en transistores BJT. Se elabora una aplicación móvil para el sistema
operativo Android; se usa el protocolo de comunicación Bluetooth para el manejo de datos
que permiten realizar el control del robot móvil de manera remota y así llevar a cabo la
terapia deseada. La aplicación le permite al usuario configurar parámetros de la terapia.
Para realizar en control de posición del robot móvil se desarrolla un firmware que le per-
mite al robot móvil realizar una trayectoria. Se implementa el controlador desarrollado
previamente y el algoritmo de tangente hiperbólico y se logra cerrar el lazo de control con
ayuda de los enconders con los que cuentan los motorreductores.
Por último, se realizan pruebas experimentales del control del robot móvil al realizar
una trayectoria y al llevar a cabo la rutina para la aplicación de la terapia.
VI
Índice general
Resumen VI
Introducción XIII
1. Marco conceptual 1
1.1. Robots móviles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1. Ackerman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2. Triciclo clásico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3. Configuración síncrona . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.4. Direccionamiento diferencial . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Mielina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1. Mutante de mielina taiep . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2. Enfermedades de la mielina . . . . . . . . . . . . . . . . . . . . . . 9
VII
Índice general VIII
4. Control 29
4.1. Propuesta de estructura de control . . . . . . . . . . . . . . . . . . . . . . 29
4.2. Simulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2.1. Ecuación en lazo cerrado (estructura de control propuesta y diná-
mica en conjunto) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5. Instrumentación electrónica 39
5.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.1.1. Tarjeta de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.1.2. Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.1.3. Etapa de potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2. Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.2.1. Aplicación móvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6. Resultados 55
Conclusiones 63
A. Reconocimientos 65
A.1. XXIII Congreso Internacional Anual de la Sociedad Mexicana de Ingeniería
Mecánica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
A.2. 1er. Congreso Internacional de Ciencias de la Ingeniería y Tecnología ECI-
TEC 2017. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.3. Certificación TOEFL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
B. Publicaciones 71
B.1. SOMIM 2017. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
B.2. ECITEC 2017. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
C. Firmware 87
C.1. Firmware para la adquisición el procesamiento de señales de la aplicación
móvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
C.2. Firmware para realizar la simulación del modelo dinámico. . . . . . . . . . 91
C.3. Firmware para el control del robot moóvil. . . . . . . . . . . . . . . . . . . 95
Bibliografía 101
Índice de figuras
2.1. Llantas DU-BRO Super Lite Wheels utilizadas para el sistema de tracción 12
2.2. Motorreductor Pololu de relación 131:1 con codificador de 64 ciclos por
revolución (CPR) para el sistema de tracción. . . . . . . . . . . . . . . . . 12
2.3. Rueda de castor para el soporte del chasis. . . . . . . . . . . . . . . . . . . 14
2.4. Representación general del robot móvil diseñado en SOLIDWORKS. . . . . 14
2.5. Ensamble del prototipo de robot móvil. . . . . . . . . . . . . . . . . . . . . 15
2.6. Primer prototipo mecánico para sujetar las extremidades de los roedores. . 15
2.7. Segundo prototipo mecánico para sujetar las extremidades de los roedores. 16
2.8. Restrictor de movimiento para el cuerpo de los roedores. . . . . . . . . . . 16
IX
Índice de figuras X
XII
Introducción
La denominada robótica móvil ha cobrado una importancia creciente durante los años
ochenta y noventa que responde a la necesidad de extender el campo de la aplicación de
la robótica ya que a diferencia de los robots manipuladores, los robots móviles poseen un
espacio de trabajo ilimitado [1–3].
Tanto en los robots manipuladores como en la robótica móvil existen puntos de interés
común: el modelado cinemático, el modelado dinámico, el control (arquitecturas, algorit-
mos), la planificación, el reconocimiento del entorno, etc [3].
Los robots móviles se mueven en ambientes cambiantes llenos de obstáculos que pueden
ser aleatorios e inesperados. A diferencia de los robots fijos, los robots móviles cambian
con cada movimiento la posición y orientación de su eje coordenadas base. Por lo tanto,
deben reconocer constantemente el ambiente donde se mueven para poder adaptarse ade-
cuadamente [4].
Gracias a estas características, los robots móviles nos otorgan un gran número de po-
sibilidades en la realización de tareas, sea de modo automático o siendo manipulados por
medio de teleoperación limitando todo lo posible la intervención humana [2, 5, 6].
Sus aplicaciones cubren una gran variedad de campos entre los cuales incluyen trabajos
subterráneos (minería, construcción de túneles, etc.) misiones espaciales y exploración pla-
netaria (recolección de muestras, mantenimiento de estaciones orbitales, etc.) vigilancia
e intervención de seguridad (reconocimiento de terrenos, inspección y vigilancia, misio-
nes de búsqueda y rescate, desactivación de explosivos, operación en zonas radioactivas),
aplicaciones militares, aplicaciones marítimas, limpieza de entornos, asistencia médica, in-
vestigación y desarrollo, agricultura, transporte, entre otros [1, 7].
Para que los robots móviles sean capaces de ejecutar de forma autónoma movimientos
XIII
Introducción XIV
previamente planificados y así cumplir con las tareas que se mencionan anteriormente, es
necesario desarrollar un modelo matemático completo que permita observar, a través de
simulaciones, los efectos de diferentes eventos sobre el robot [8] y posteriormente formular
leyes de control que permitan estabilizar el vehículo sobre un punto de trabajo, anulando
el efecto de las perturbaciones y manteniendo acotadas las señales de control [2].
Bajo este contexto se aborda el problema motor que presenta la rata taiep. La ra-
ta taiep es un mutante de mielina neurológico caracterizado por una disminución de la
mielinización (hipomielinización) y una desmielinización progresiva del sistema nervioso
central [9], pero no se afecta la mielina periférica, lo que lo hace un modelo de esclerosis
múltiple. Estas ratas muestran un síndrome motor progresivo caracterizado por temblor,
ataxia, episodios de inmovilidad, epilepsia y parálisis de los miembros posteriores [10].
La mielina es una capa aislante compuesta por proteinas y grasas que se forma alrede-
dor de los nervios, se encuentran en el cerebro, médula espinal y los nervios periféricos. Por
medio de la mielina es como se permite la transmisión de impulsos nerviosos mas rápido a
lo largo de las neuronas, si esta se daña, entonces se genera una reducción en la velocidad
de conduccion en los impulsos nerviosos, dando origen a un grupo de enfermedades, tales
como la esclerosis múltiple.
Existen diversos trabajos donde se estudian los problemas que presentan estos roedores,
ver trabajos de Dr. José Eguibar [11] donde se estudian la crisis epilépticas, Dr. Manuel
Roncagliolo [9] donde se estudia el problema que presenta la vía auditiva central en el
tronco encefálico, entre muchos otros. Sin embargo, actualmente se han desarrollado pocos
dispositivos o mecanismos que permiten apoyar, mediante una terapia, al estudio de los
trastornos del sistema motor que presenta la rata taiep, ver trabajo de Jeff A. Nessler
[12] donde se muestra un dispositivo robótico que permite realizar el estudio del sistema
locomotor después de provocar una lesión en la médula espinal.
Introducción XV
Objetivo General
Desarrollar y construir un prototipo de robot que ejecute rutinas motoras
iterativas variando los desplazamientos, la fuerza y el torque ejecutadas sobre
el tobillo en una extremidad de las ratas y analizar los resultados obtenidos
para determinar si existe una mejora después de aplicar la terapia.
Objetivos particulares
1. Diseñar y construir un robot móvil miniatura para la ejecución de rutinas motoras
iterativas.
En el capítulo 1 se presentan una serie de conceptos que permiten describir las carac-
terísticas principales de los robots móviles, la mielina, la rata taiep.
Para finalizar se presenta una sección donde se presentan las conclusiones del trabajo
desarrollado.
Capítulo 1
Marco conceptual
Por otro lado, la secretaria de salud indica que en el ámbito mundial en promedio 2.3
millones de personas padecen esclerosis múltiple de las cuales aproximadamente 20 mil
son mexicanas, por tal motivo, el estudio de esta enfermedad es de gran importancia para
nuestra sociedad.
Es por eso que resulta de gran importancia estudiar y conocer las características que
presenta el mutante de mielina, puesto que se pretende trabajar sobre los padecimientos
que presenta dicho roedor.
Por tal motivo, el presente capitulo tiene la finalidad de mostrar un panorama general
de los conceptos más importantes relacionados los robots con ruedas. Asimismo se exponen
conceptos referentes a la la mielina, la rata taiep, la locomoción.
1
Capítulo 1. Marco conceptual 2
En general los robots móviles distribuyen sus sistemas de tracción y dirección sobre
los ejes de sus ruedas de acuerdo a las exigencias de velocidad, maniobrabilidad y ca-
racterísticas del terreno. La precisión y rapidez con que el robot móvil debe alcanzar su
Capítulo 1. Marco conceptual 3
1.1.1. Ackerman
Es el utilizado en vehículos de cuatro ruedas convencionales. Este diseño está compuesto
de cuatro ruedas y proporciona una adecuada estabilidad, las ruedas direccionales no son
motrices. Este sistema de locomoción se ilustra en la Fig. (1.3). La rueda delantera interior
gira un ángulo ligeramente superior a la exterior (θ1 > θ0 ) para eliminar el deslizamiento.
Las prolongaciones de los ejes de las ruedas delanteras intersecan en un punto sobre la
prolongación del eje de las ruedas traseras. El lugar de los puntos trazados sobre el suelo
por los centros de los neumáticos son circunferencias concéntricas con centro el eje de
rotación P1 en la figura. Si no se tienen en cuenta las fuerzas centrifugas, los vectores de la
velocidad instantánea son tangentes a estas curvas. El mayor problema de la locomoción
Ackerman es la limitación en la maniobrabilidad [1, 2].
Se elige un robot móvil de tracción diferencial para desarrollar los objetivos de este
trabajo por las características mencionadas anteriormente además de que su construcción
es relativamente fácil y se logra una mejor movilidad en terrenos suficientemente duros y
libres de obstáculos, permitiendo conseguir velocidades relativamente altas [2].
Capítulo 1. Marco conceptual 6
1.2. Mielina
Existen tres tipos de células gliales en el sistema nervioso central maduro: astrocitos,
oligodendrocitos y las células microgliales (ver Fig. 1.7)[14].
(a) Los astrocitos le deben su nom- (b) Los oligodendrocitos son (c) Las células microglia-
bre a la forma irregular de sus cuer- células pequeñas que llevan les se encargan de eliminar
pos celulares, perecidos a la forma a cabo la importante tarea los desechos neuronales y
de una estrella. Ayudan a formar un de aislar los axones, forman- de reparar el daño que es-
revestimiento impermeable que evi- do una vaina de mielina que tas presentan después de
ta que sustancias toxicas en la san- envuelve herméticamente sus una lesión o un recambio
gre ingresen al cerebro y también procesos membranosos alre- natural.
aportan nutrientes a las células ner- dedor del axón.
viosas del cerebro y la médula espi-
nal.
Figura 1.7: Variedades de células neurogliales en el sistema nervioso central de los mamí-
feros.
Los astrocitos, que están restringidos al cerebro y a la médula espinal, tienen elabora-
dos procesos locales que les dan a estas células una apariencia de estrella (de ahí el prefijo
“astro”). Una función principal de los astrocitos es mantener, en una variedad de formas,
un entorno químico apropiado para la señalización neuronal [14].
Los oligodendrocitos, que también están restringidos al sistema nervioso central, esta-
blecen una envoltura laminada y rica en lípidos llamada mielina (ver Fig. 1.8) alrededor
de algunos, pero no de todos, los axones. En el sistema nervioso periférico, las células que
elaboran mielina se llaman células de Schwann (ver Fig. 1.9) [15].
Ambas se encargan de producir la mielina que sirve para aislar los axones de las células
nerviosas, las cuales son células pequeñas con relativamente pocos procesos, proporcionan
Capítulo 1. Marco conceptual 7
la mielina lo que da origen a la denominada materia blanca. Ambos tipos llevan a cabo
la tarea importante de aislar los axones, formando una envoltura de mielina al enrollar
herméticamente sus procesos membranosos alrededor del axón en forma de espiral. Los
oligodendrocitos, que se encuentran en el sistema nervioso central, envuelven un promedio
de 15 internodos axónicos cada uno. Por el contrario, las células de Schwann, que se
producen en el sistema nervioso periférico, envuelven un solo internodo de un solo axón
[15].
Figura 1.8: Diagrama de un axón mielinizado, proceso por el cual los oligodendrocitos en el
sistema nervioso central, y células de Schwann en el sistema nervioso periférico, envuelven
al axón en mielina.
Figura 1.9: Diagrama de una célula de Schwann. Estas células producen las vainas de
mielina que aíslan los axones en el sistema nervioso periférico, son colocadas a lo largo de
un solo axón y forman un segmento de vaina de mielina de aproximadamente 1 mm de
longitud.
y la velocidad de conducción de sus axones. Estas dos últimas características son muy
importantes desde el punto de vista fisiológico, debido a que el tamaño de las fibras afecta
la velocidad a la que los potenciales de acción se llevan al cerebro (ver tabla 1.1) [15].
Tabla 1.1: Tamaño y velocidad de conducción de fibras aferentes en los nervios periféricos
de acuerdo a su nivel de mielinización.
Las fibras grandes conducen los potenciales de acción más rápidamente debido a que la
resistencia interna al flujo de corriente a lo largo del axón es baja y los nodos de Ranvier
están más espaciados a lo largo de su longitud. La velocidad de conducción de las fibras
mielinizadas grandes es aproximadamente seis veces el diámetro del axón, mientras que
la de las fibras finas mielinizadas es cinco veces el diámetro del axón. Cuando la mielini-
zación a lo largo del axón se ve interrumpida por enfermedad, los potenciales de acción
en diferentes axones del nervio comienzan a conducir a velocidades ligeramente diferentes,
y el nervio pierde su sincronía de conducción normal en respuesta a un único estímulo [15].
En el aspecto de movilidad, que hace referencia a la habilidad que tiene un robot móvil
para desplazarse o moverse con libertad en su entorno, la restricción básica de esta configu-
ración es satisfacer la condición de no deslizamiento de las ruedas, la cual fue considerada
previamente en el desarrollo de la dinámica.
Un par de llantas DU-BRO Super lite Wheels (ver Fig. 2.1) con las características
que se muestran en la tabla (2.1).
11
Capítulo 2. Diseño y construcción del robot móvil 12
Figura 2.1: Llantas DU-BRO Super Lite Wheels utilizadas para el sistema de tracción
Dos motorreductores pololu (131:1) con encoder para el sistema de tracción (Fig.
2.2).
Figura 2.2: Motorreductor Pololu de relación 131:1 con codificador de 64 ciclos por revo-
lución (CPR) para el sistema de tracción.
Se hace está elección ya que en un esquema de control en lazo cerrado se requiere retro-
alimentar la respuesta o salida del motor la cual se compara con un ángulo deseado o
referencia lo que genera una señal de error, esta es procesada por el algoritmo de control
para cumplir con el objetivo de que los motores alcancen el ángulo deseado y el error de
posición tienda a ser cero.
Capítulo 2. Diseño y construcción del robot móvil 13
Para llevar a cabo esta tarea, los motores utilizan encoder de posición para detectar el
comportamiento de su respuesta. Existen dos tipos de encoder, el incremental que genera
de salida un tren de pulsos que proporcional al ángulo de giro del rotor y el absoluto que
genera una palabra digital codificada en formato binario, específicamente el motorreduc-
tor Pololu cuenta con un encoder incremental de cuadratura magnético que consta de una
resistencia magnética colocada sobre el perímetro de un disco magnético. La resistencia es
un transductor que convierte el campo magnético en corriente eléctrica y cuya resistencia
eléctrica varía en función de la intensidad del campo magnético aplicado. El valor de la
resistencia magnética depende de la forma en la que fluye la corriente y el campo magné-
tico (efecto Hall).
Al ser un encoder incremental de cuadratura con dos canales A y B que están fuera de
fase 90 grados, es posible conocer la dirección de rotación o sentido de giro del movimiento,
es decir, indica si el desplazamiento rotacional tiene dirección negativa (en el sentido del
giro de las manecillas del reloj) o positiva (en sentido contrario al giro de las manecillas
del reloj); esto es importante para detectar el signo del error de posición.
El encoder proporciona una resolución de 64 conteos por revolución (CPR) del eje
del motor, que corresponde a 8400 CPR del eje de salida de la caja de engranaje. Otras
especificaciones otorgadas por el fabricante se pueden observar en la tabla (2.2).
En la Fig. 2.4 se observa una representación general del robot móvil diseñado en SOLID-
WORKS.
(a) (b)
Figura 2.6: Primer prototipo mecánico para sujetar las extremidades de los roedores.
Capítulo 2. Diseño y construcción del robot móvil 16
(a) (b)
Figura 2.7: Segundo prototipo mecánico para sujetar las extremidades de los roedores.
(a) (b)
Los modelos geométricos y cinemáticos se emplean tanto para la simulación como pa-
ra el control. Existen herramientas matemáticas que nos permiten modelar la posición y
orientación del robot, se basan en empleo de transformaciones homogéneas (operaciones de
rotación y traslación) entre los sistemas de referencia, lo que permite obtener el modelo
directo donde es posible obtener la posición y orientación del efector final del robot en
función de las variables de articulación u obtener el modelo inverso donde las variables
articulares hacen que la posición y orientación del efector final sea la deseada [1, 2].
Por otra parte, el modelo dinámico se refiere a la derivación de las ecuaciones de movi-
miento del robot, obteniendo las velocidades lineales y angulares, las cuales vienen dadas
por las fuerzas y pares que se aplican a la estructura mecánica y dependen también de las
magnitudes de las masas y de su distribución. Las relaciones involucradas constituyen el
modelo dinámico del robot. La identificación del modelo dinámico de un robot es en gene-
ral difícil lo que complica el desarrollo e implementación de un sistema de control, por tal
motivo, muchos sistemas de control de robot se basan en el modelo cinemático, obtenien-
do resultados aceptables cuando los movimientos del robot son suaves y sin aceleraciones
significativas. Sin embargo, cuando se requiere realizar movimientos rápidos con acelera-
ciones y masas importantes, la consideración del modelo dinámico resulta imprescindible.
El modelo dinámico es muy útil para el diseño mecánico de la estructura, la elección de
actuadores, la determinación de estrategias de control y la simulación por computadora
del movimiento del robot [2, 5]. En este capítulo se desarrollan los modelos previamente
descritos que nos permitirán posteriormente evaluar el desempeño de nuevos algoritmos
de control durante la etapa de simulaciones.
17
Capítulo 3. Modelo cinemático y dinámico de un robot móvil de tracción diferencial 18
3.1. Cinemática
La cinemática es la parte de la física que aborda el problema de la descripción geométri-
ca del movimiento de sistemas mecánicos sin tomar en cuenta las fuerzas que lo producen
[1, 2, 5]. Además del problema puramente geométrico involucrado en el posicionamiento
estático, se consideran las variaciones en el tiempo de las posiciones y orientaciones; es
decir, las velocidades [2].
donde f −1
R [x, y, z, θ, φ, ψ] es función inversa de la ec. (3.1).
Capítulo 3. Modelo cinemático y dinámico de un robot móvil de tracción diferencial 19
ésta relaciona la velocidad articular q̇ ∈ Rn con la velocidad lineal v = dtd [x, y, z]T =
[ẋ, ẏ, ż]T ∈ R3 y la velocidad angular ẇ = dtd [θ, φ, ψ]T = [θ̇, φ̇, ψ̇]T ∈ R3 , además el mapeo
es descrito en términos de una matriz J(q ) = ∂f ∂q R (q )
∈ R6×n denominada jacobiano del
robot o jacobiano analítico:
" #
Jv (q )
J(q ) = , (3.4)
Jw (q )
El jacobiano del robot representa una importante herramienta en robótica que sirve para
caracterizar a un robot, encontrar configuraciones singulares, analizar redundancia, de-
terminar la cinemática diferencial inversa, así como describir la relación entre la fuerza
aplicada y los pares o torques resultantes. Es indispensable para el análisis y diseño de
algoritmos de control cartesiano [1, 22].
Los vectores p 0 , p 1 representan al mismo punto p, de tal forma que, las ecs. (3.6) y
(3.7) pueden ser relacionadas entre sí, de la siguiente forma:
p 0 = R01 p 1 , (3.8)
donde la matriz R01 ∈ R3×3 es la matriz de transformación de las coordenadas del punto
p del sistema de referencia Σ1 [x1 , y1 , z1 ] hacia las coordenadas del sistema Σ0 [x0 , y0 , z0 ].
En otras palabras, dado un punto p 1 en el sistema Σ1 [x1 , y1 , z1 ], entonces R01 p 1 representa
el mismo vector expresado con respecto al sistema de referencia Σ0 [x0 , y0 , z0 ]. De manera
análoga, la transformación inversa R01 significa la orientación del sistema de referencia
Σ0 [x0 , y0 , z0 ] relativa al sistema de referencia Σ1 [x1 , y1 , z1 ] [22].
Por lo que la matriz de rotación al rededor del eje z es representada por Rz (θ).
cos(θ) − sin(θ) 0
sin(θ) cos(θ) 0 . (3.9)
0 0 1
El robot móvil se mueve sobre una superficie plana horizontal, es decir la energía
potencial es constante.
No existe deslizamiento.
De acuerdo con las hipótesis anteriores, se aborda el caso bidimensional debido a que el
robot solo se mueve en un plano [1, 2].
Capítulo 3. Modelo cinemático y dinámico de un robot móvil de tracción diferencial 22
Con base en la Fig. 3.3, el análisis se inicia fijando un sistema de referencia Σ0 [x0 , y0 , z0 ],
de un forma conveniente. Subsecuentemente, se coloca un sistema de referencia Σ1 [x1 , y1 , z1 ],
el cual nos permite hallar los componentes de traslación y la orientación del robot móvil
respecto al sistema de referencias Σ0 . Es posible determinar la postura del robot en el eje
coordenado inercial Σ0 mediante la siguiente relación:
Σ0 = Rz (θ)Σ1 (3.10)
Para el caso de Σ2 , también es posible definir los componentes del centro de masa del
robot como se observa en la ec. (3.11).:
" # " #
x2 x0 + L1 cos(θ)
= (3.11)
y2 y0 + L1 sin(θ)
Capítulo 3. Modelo cinemático y dinámico de un robot móvil de tracción diferencial 23
θ̇ w
vD − vI φ̇D − φ̇I
w= =R , (3.14)
2L 2L
donde φ̇D y φ̇I son velocidades angulares, R es el radio de las ruedas y 2L es la distancia
de separación entre las dos ruedas de tracción.
Estas restricciones no holonómicas definen la velocidad del centro de masa del robot (Σ2 ),
al forzarla a cero y usando la matriz de transformación Rz (θ) hallamos la velocidad del
centro de masa de la siguiente forma:
Capítulo 3. Modelo cinemático y dinámico de un robot móvil de tracción diferencial 24
Al igualar los términos de y de las ecs. (3.16) y (3.17) se demuestra que el robot móvil sólo
se desplaza con movimientos curvos (hacia adelante y hacia atrás) pero no lateralmente.
Se aplican las propiedades de matrices de rotación y las reglas de rotación para determinar
la orientación del sistema de referencia Σ1 con respecto a Σ2 [22], con lo que se obtiene
ẏ1 = vw −L1 θ̇ y, al igualarla con cero se demuestra que en ausencia de deslizamiento lateral
tenemos:
vw = L1 θ̇. (3.18)
3.2. Dinámica
El modelo dinámico de un robot permite explicar todos los fenómenos físicos que se
encuentran en su estructura mecánica, tales como efectos inerciales, fuerzas centrípetas
y de Coriolis, par gravitacional y fricción, lo cuales son fenómenos físicos intrínsecos o
propios de la naturaleza dinámica del robot [1]. Consiste en encontrar el mapeo entre
las fuerzas ejercidas sobre su estructura, y las posiciones, velocidades y aceleraciones [5].
La utilidad del modelo dinámico es fundamental para propósitos de simulación, diseño y
construcción del sistema mecánico, así como el análisis y diseño de algoritmos de control
[1].
Por otra parte, si un cuerpo rígido rota con velocidad angular w y la aceleración angular
w’ , el momento angular que actúa en el cuerpo viene dado por la ecuación de Euler:
N = Iω ′ + ω × Iω (3.20)
siendo I el tensor de inercias del cuerpo en sistema {C} cuyo origen está en el centro
de masas. Una vez calculada la aceleración del centro de masas, pueden aplicarse las
ecuaciones de Newton-Euler para determinar la fuerza y el par que actuarán en el centro
de masa de cada sistema de referencia [2]:
Fi = mvc′ i (3.21)
Figura 3.4: Diagrama de cuerpo libre del robot móvil de direccionamiento diferencial. FlI y
FlD son las fuerzas longitudinales, FoI y FoD son las fuerzas laterales del robot, vl y vo son
las velocidades, al y ao son las aceleraciones del centro de masa del robot, respectivamente.
Asumiendo que el robot es un cuerpo rígido, usamos coordenadas polares para repre-
sentar la posición del centro de masa del móvil con respecto a Σ0 , la cual es definida como
x0 = r cos(θ) e iy0 = r sin(θ) de acuerdo a la Fig. (3.4), por lo tanto:
r̂¨ = r̈eiθ + 2iṙθ̇eiθ + irθ̈eiθ − rθ̇2 eiθ = (r̈ − rθ̇2 )eiθ + (2ṙθ̇ + rθ̈)ei(θ+π/2) (3.25)
Capítulo 3. Modelo cinemático y dinámico de un robot móvil de tracción diferencial 27
Con la ec. (3.24) se definen las velocidades y con la ec. (3.25) se definen las aceleraciones que
se observan en el diagrama de cuerpo libre de la Fig. 3.4, dichas expresiones se muestran
a continuación.
vl = ṙ ⇒ v̇l = r̈, (3.26)
Las ecs. (3.30)-(3.32) representan los movimientos de translación y rotación que son ob-
tenidas de las ecuaciones de torque neto [28]. Sustituyendo las ecs. (3.28) y (3.29) en las
ecs. (3.30) y (3.32), respectivamente, obtenemos las ecs. (3.33)-(3.35).
L L1
θ̈ = (FlI − FlD ) + (FoI − FoD ) . (3.35)
I I
Capítulo 3. Modelo cinemático y dinámico de un robot móvil de tracción diferencial 28
FlI + FlD
v̇l = + vo θ̇, (3.36)
M
FoI − FoD
v̇o = − vl θ̇ (3.37)
M
L L1
θ̈ = 2
(FlI − FlD ) + (FoI − FoD ) (3.38)
I c + M L1 Ic + M L21
Al sustituir la ec. (3.18) que hace referencia a las restricciones de movimiento en las ecs.
(3.36)-(3.38), se obtienen las expresiones que se muestran a continuación:
FlI + FlD
v̇l = + L1 θ̇2 . (3.39)
M
L M L1 v1 θ̇
θ̈ = 2
(FlI − FlD ) + . (3.40)
I c + M L1 Ic + M L21
Se asocia el radio de las ruedas en las ecs. (3.39) y (3.40) como se observa a continuación:
Las ecuaciones anteriores permiten hallar la relación con el torque de las ruedas, obteniendo
las siguientes ecuaciones.
1
M v̇l − M L1 θ̇2 = (τI + τD ) (3.43)
R
L
(Ic + M L21 )θ̈ − M L1 vl θ̇ =
(τI − τD ). (3.44)
R
Las ecs. (3.43) y (3.44) se puede expresar de forma matricial como se observa en la ec.
(3.45) que representa las ecuaciones generales de la dinámica.
" #" # " #" # " #" #
M 0 v̇l 0 −M L1 θ̇ vl 1 1 1 τI
+ = (3.45)
0 Ic + M L21 θ̈ M L1 θ̇ 0 θ̇ R L −L τD
Capítulo 4
Control
29
Capítulo 4. Control 30
Es posible expresar la ec. (4.4) en variables de estado para definir la ecuación de lazo
cerrado como se observa en la ec. (4.5).
" # " #
d q̃ − q̇
= h i (4.5)
dt q̇ M −1 (q ) kp cosh(q̃) sinh(q̃)
1+cosh2 (q̃)
− k cosh(q̇) sinh(q̇)
v 1+cosh2 (q̇) − C(q , q̇ ) q̇ − B q̇
Para demostrar que el punto de equilibrio de la ecuación de lazo cerrado es estable, con-
sideramos la siguiente función candidata de Lyapunov:
q T q
1 2 2
V (q̇ , q̃ ) = q̇ T M (q )q̇ + ln(1 + cosh (q̃ )) kp ln(1 + cosh (q̃ )) , (4.6)
2
donde V (q̇ , q̃ ) es definida positiva ya que el primer término es positivo debido a que en
la energía cinética la matriz M (q ) es definida positiva [1] y el segundo término que es la
energía potencial artificial con kp , es definida positiva por diseño. Al aplicar la derivada
temporal a la ec. (4.6) se obtiene la ec. (4.7).
1 sinh(q̃) cosh(q̃)
V̇ (q̇ , q̃ ) = q̇ T M (q )q̈ + q̇ T Ṁ (q )q̇ − kp q̇ (4.7)
2 1 + cosh2 (q̃)
En la ec. (4.8) el primer término se cancela con el segundo, el tercero se cancela con el
cuarto al aplicar la propiedad de antisimetría [1], resultando la ec. (4.9).
sinh(q̇) cosh(q̇)
V̇ (q̇ , q̃ ) = −q̇ T kv 2 − q̇ T B q̇ ≤ 0. (4.9)
1 + cosh (q̇)
Capítulo 4. Control 31
Por lo que queda demostrada la estabilidad global del punto de equilibrio en la ecuación
de lazo cerrado.
4.2. Simulaciones
Un simulador se caracteriza por reproducir fielmente todos los fenómenos físicos de un
sistema mecatrónico, por lo tanto desarrollar un proceso de simulación es una etapa no
trivial ya que involucra aspectos tales como seleccionar el método numérico más adecuado
y las finalidades del problema a resolver. Para esta situación es importante la identifica-
ción paramétrica, la caracterización de sensores y servomotores, la estimación de señales
usando la posición por ejemplo, la velocidad y aceleración de movimiento.
Figura 4.3: Diagrama a bloques de la ecuación en lazo cerrado (Dinámica del robot móvil
y el controlador propuesto).
Para esta etapa se lleva a cabo la simulación de modelo dinámico previamente desa-
rrollado en conjunto con la propuesta de algoritmo de control, lo que nos permite observar
el comportamiento del robot móvil al realizar una trayectoria. De igual forma, se simula
la dinámica del robot móvil en conjunto con el algoritmo de control tangente hiperbólico
y PD, con esto es posible hacer una comparación y definir si el algoritmo de control que
se diseñó presenta un mejor desempeño y robustez.
Capítulo 4. Control 33
Para llevar a cabo el proceso simulación se utiliza el software MATLAB del cual se
aplica la función ode45, el cual utiliza el método de Runge-Kutta de cuarto y quinto orden
para la integración numérica de ecuaciones diferenciales de primer orden. Dicho método
se basa en aproximar la solución a través de la serie de Taylor con las primeras cuatro y
cinco derivadas, es decir, a través de cuatro y cinco líneas tangentes.
Aunado a este código se programan tres funciones más que trabajan a la par con el
programa principal.
En las figs. (4.4-4.6) se observan las respuestas de torque de cada rueda, los errores de
posición y la posición final del centro de masa del robot móvil, al aplicar la propuesta de
controlador.
Figura 4.4: Error de posición de las ruedas del robot móvil al aplicar el controlador pro-
puesto.
(a) Torque requerido por la rueda izquierda. (b) Torque requerido por la rueda derecha.
Figura 4.6: Posición final del centro de masa del robot móvil al aplicar la propuesta de
controlador.
En las figs. (4.7-4.9) se observan las respuestas de torque de cada rueda, los errores
de posición y la posición final del centro de masa del robot móvil, al aplicar controlador
tangente hiperbólico.
Figura 4.7: Error de posición del centro de masa del robot móvil al aplicar el controlador
tangente hiperbólico.
Capítulo 4. Control 36
(a) Torque requerido por la rueda izquierda. (b) Torque requerido por la rueda derecha.
Figura 4.9: Posición final del centro de masa del robot móvil al aplicar el controlador
tangente hiperbólico.
Capítulo 4. Control 37
En las figs. (4.10-4.12) se observan las respuestas de torque de cada rueda, los errores
de posición y la posición final del centro de masa del robot móvil, al aplicar controlador
PD.
Figura 4.10: Error de posición del centro de masa del robot móvil al aplicar el controlador
PD.
(a) Torque requerido por la rueda izquierda. (b) Torque requerido por la rueda derecha.
Figura 4.12: Posición final del centro de masa del robot móvil al aplicar el controlador PD.
Instrumentación electrónica
5.1. Hardware
En la Fig. 5.1 se presenta un diagrama a bloques del hardware con el que cuenta el
robot móvil.
39
Capítulo 5. Instrumentación electrónica 40
5.1.2. Bluetooth
Bluetooth es un protocolo de comunicación de datos de forma inalámbrica, diseñado
para dispositivos de bajo consumo, que requieren corto alcance de emisión a bajo costo.
Permite la comunicación entre diferentes dispositivos mediante un enlace por radio fre-
cuencia en la banda de 2.4 GHz.
A grandes rasgos, el hardware de un sistema Bluetooth está formado por dos partes:
Un controlador compuesto por un procesador de señales digitales DSP por sus si-
glas en inglés, un CPU para procesar las instrucciones Bluetooth con el dispositivo
anfitrión e interfaces del dispositivo anfitrión. Esto le permite enviar y recibir datos,
paginación y peticiones, establecimiento de conexiones y tipos de enlace, transferen-
cia de mensajes o paquetes de datos.
Específicamente en este trabajo se hace uso de un módulo Bluetooth HC-06 que dispone
de 4 pines, dos de alimentación (Vcc y GND) y dos de comunicación (Rx y Tx), solo puede
actuar como esclavo, es decir, solo puede conectarse a un módulo maestro y a ningún otro,
por lo tanto dispone de menos instrucciones a las que atiende, comparado con el módulo
HC-05 que puede actuar también como maestro permitiéndole conectarse a varios módulos
esclavos.
τ =r∗F ∗g (5.2)
par(N m)
ef iciencia(η) = (5.3)
potencia(W )
En las tablas 5.3 y 5.4 se presentan los resultados obtenidos al realizar todo el proceso
de caracterización de los motores izquierdo y derecho respectivamente.
Capítulo 5. Instrumentación electrónica 43
volteje (V) corriente (A) Potencia (W) Fuerza (kg) Par o torque (Nm) Eficiencia (tau / W)
0 0 0 0 0 0
volteje (V) corriente (A) Potencia (W) Fuerza (kg) Par o torque (Nm) Eficiencia (tau / W)
0 0 0 0 0 0
Figura 5.4: Diagrama esquemático del puente H con transistores en configuración Darling-
ton y optoacoplador.
Ic 6A
Ib = = = 600mA (5.4)
βf 10
transistor.
Ic 600mA
Ib = = = 12mA (5.5)
βf 50
De esta forma sabemos que se necesita una corriente de 12 mA para saturar el arreglo de
transistores (Darlington).
Para el diseño del puente H se consideró un optoacoplador 4N25 que cumple con la
función de conmutar los estados de activación del puente H pero también permite aislar
la etapa de potencia de la etapa de control en caso de que se presenten corrientes o vol-
tajes excesivos. El optoacoplador con salida a transistor consiste en un diodo emisor de
infrarrojos acoplado ópticamente a un detector de un fototransistor.
Para la resistencia 3 se realiza el mismo procedimiento, pero debido a que son los mismos
transistores que en el caso anterior, se puede hacer uso de una resistencia del mismo valor.
Es muy importante asegurar que nunca se activen al mismo tiempo los dos sentidos
de giro ya que se generaría un corto circuito, por tal motivo se implementa un circuito
de protección con base en compuertas NOT (74LS04) y compuertas AND (74ALS11) (ver
fig. 5.5).
Capítulo 5. Instrumentación electrónica 47
Figura 5.5: Diagrama esquemático del circuito de protección para el puente H con com-
puertas lógicas.
Para suministrar el voltaje a los motores, a la tarjeta de control y al resto del Hardware
se elige una batería de polímero de litio (LI-PO por sus siglas en inglés) Turnigy 1000mAh
2S 7.4 V (Ver Fig. 5.6). Esto debido a las ventajas que ofrecen por el tamaño, el peso y
las características eléctricas (ver tabla 5.5) con las que cuenta.
5.2. Firmware
5.2.1. Aplicación móvil
Para llevar a cabo el control de la fisioterapia que se le aplica a la rata taiep, se desa-
rrolló una aplicación móvil en la plataforma de MIT App Inventor que permite desarrollar
aplicaciones dedicadas al sistema operativo Android. Es herramienta es fácil de usar al
estar basada en diseño y edición de bloques, lo que permite generar aplicaciones en menor
tiempo.
La aplicación móvil cuenta con la sección de emparejamiento del Bluetooth del celular
con el módulo HC-06, contando con los botones de “CONECTAR” y “DESCONECTAR”.
Capítulo 5. Instrumentación electrónica 49
Finalmente se observan los botones de “Iniciar rutina” y “Detener ruina” que le permiten
al usuario comenzar o detener la rutina en el momento que lo requiera. Los elementos
descritos anteriormente se pueden observar en la Fig. 5.8.
En esta sección se hace uso del componente ClienteBluetooth que permitirá realizar la
conexión y el envío y recepción de datos entre el teléfono móvil y el módulo HC-06.
Con el botón “CONECTAR” se genera una la lista con los nombres y direcciones de
los dispositivos disponibles para la conexión (ver Fig. 5.9). Esto se programa mediante un
evento llamado “antes de la selección”, como se observa en la Fig. 5.10.
Capítulo 5. Instrumentación electrónica 50
Figura 5.9: Lista con los nombres y direcciones de los dispositivos Bluetooth disponibles
para emparejar.
Figura 5.10: Bloques para generar la lista con los nombres y direcciones de los dispositivos
Bluetooth disponibles para emparejar.
Los mismos eventos son programados para el botón “DESCONECTAR”, la única dife-
rencia es que en el evento “después de la selección” se genera la desconexión del módulo
Bluetooth. Este proceso se presenta en la Fig. 5.12.
Capítulo 5. Instrumentación electrónica 51
Configuración de parámetros
Para comenzar esta sección se inicializan 5 variables globales (ver Fig. 5.13), tres son
los datos que se enviaran al microcontrolador, para realizar la rutina con las características
que el usuario desee. Esta información es la que se describió anteriormente (número de
repeticiones, torque (el usuario puede elegir entre tres niveles de energía distintos) y magni-
tud del desplazamiento). Las dos restantes son las señales que recibirá el microcontrolador
para comenzar o detener la rutina.
En esta etapa el usuario puede ingresar los parámetros que desee mediante los campos
de texto que se observan en la aplicación (Ver Fig. 5.14).
Capítulo 5. Instrumentación electrónica 52
Figura 5.14: Campos de texto para que el usuario ingrese los parámetros deseados.
Los datos ingresados por el usuario son procesados al programar el evento “clic” del
botón “Cargar parámetros”. Los datos son guardados en las variables previamente inicia-
lizadas, que posteriormente son enviadas en una cadena de números de 1 Byte al micro-
controlador. Los bloques que se encargan de realizar esta tarea se observan en la Fig.
5.15.
En los botones “Iniciar rutina” y “Detener ruina”, también se programa el evento “clic”,
donde se envía nuevamente una cadena de números de 1 Byte que representan la señal de
inicio y de paro de la rutina a ejecutar. Después de que los datos son enviados al micro-
controlador, todas las variables son reiniciadas con el valor de cero para poder ingresar
una configuración en cuanto el usuario así lo desee. Este proceso se puede observar en las
Figs. 5.16 y 5.17.
Para el procesamiento de los datos se realiza una comunicación serial a una velocidad
de 9600 baudios por segundo entre la tarjeta de control y la aplicación móvil.
En el programa se separan los datos de la cadena para asignarlos a los procesos corres-
pondientes, es decir, se obtiene la información del número de repeticiones, el torque con el
que robot móvil debe realizar la rutina y la magnitud del desplazamiento que debe realizar.
Para las señales de inicio y paro de la rutina se manejan dos números arbitrarios (900
para iniciar la rutina y 800 para detenerla) los cuales también son identificados por el
microcontrolador permitiendo realizar la acción correspondiente.
Por último se programan los movimientos que debe realizar el robot móvil para emular
la flexión y extensión de la extremidad.
Resultados
55
Capítulo 6. Resultados 56
En las imágenes mostradas anteriormente se observan dos rutinas con parámetros dis-
tintos, la primera de ellas es con un desplazamiento de 25 cm, con el nivel de energía 1 y
5 repeticiones (ver figs. 6.1 y 6.2). La segunda rutina se configura con un desplazamiento
de 13cm, el nivel de energía 3 y nuevamente 5 repeticiones (ver figs. 6.3 y 6.4).
Por otra parte, en Arduino se puede observar la configuración cargada para las rutinas
requeridas, con el número de repeticiones, los valores de PWM necesarios por cada rueda
para ejecutar el desplazamiento requerido y el número de repeticiones. Lo descrito ante-
riormente se observa en la fig. (6.5) donde se muestra la configuración y los parámetros
ingresados por el usuario para tres rutinas distintas.
Capítulo 6. Resultados 57
En la fig. (6.6) se observan las pruebas realizadas del restrictor con un par de ratas
taiep de 3 meses de edad.
(a) (b)
Por otra parte, se realizó un programa que no permite realizar una trayectoria contro-
lando las ruedas del robot móvil. Como primer paso se leen las señales de los encoders con
las cuales se puede conocer la posición y el sentido de giro de las ruedas. Al procesar estas
señales se puede calcular la velocidad y el error de posición.
Como siguiente paso se implementa las ecuaciones de control para cada rueda el cual
posteriormente es acotado de acuerdo a las necesidades del movimiento del robot móvil,
por ejemplo, se restringe el valor máximo de tau a 3 ya que el valor máximo en el que
pueden trabajar los motores son 3 N. Lo mismo sucede para el caso de movimiento en
reversa que podrían requerir torques negativos lo que significa que el sentido de giro debe
cambiar y así como el signo del torque requerido, el cual debe ser positivo sin importar el
sentido de giro de las ruedas.
Para ambos casos el valor de torque se mapea para poder tener una salida PWM ya
que el valor de torque que se obtiene no se puede implementar directamente a los motores,
así que dichos valores se mapean en un rango de 0 a 255 que es la resolución con la que
cuentan las salidas analógicas del Arduino.
Por último, se implementa un pequeño menú con el que es posible elegir entre ingresar
los valores de las ganancias requeridas y las posiciones deseadas, detener el movimiento de
los motores y resetear todas las variables del programa.
Y por último, se presentan las gráficas de posición, los torques aplicados y el error de
posición de las dos ruedas.
Como se observa en las fig. 6.11 la posición de los motores es alcanzada con un sobretiro
muy pequeño.
(a) Torque aplicado a rueda izquierda (b) Torque aplicado a rueda derecha
Figura 6.12: Gráficas de torques aplicados a las ruedas del robot móvil para realizar la
trayectoria deseada.
En el caso de las gráficas de torque (fig. 6.12) se observa como el controlador aplicado
acota los valores que puede alcanzar el torque máximo, lo que evita que el motor trabaje
en la zona de saturación. También es posible observar que conforme se alcanza la posición
Capítulo 6. Resultados 62
deseada el nivel de torque baja y aunque se muestra una pequeña variación al alcanzar la
posición deseada, al ser en un periodo de tiempo corto no afecta el posicionamiento del
robot móvil.
(a) Error de posición de la rueda izquierda (b) Error de posición de la rueda derecha
Figura 6.13: Gráficas de error posición de las ruedas del robot móvil.
Para el caso de las gráficas de error de posición (ver fig. 6.13) el comportamiento
adecuado, ya que como se observa, la posición deseada es alcanzada sin grandes variaciones
al aplicar el control.
Conclusiones
63
Conclusiones 64
esto a su vez permite conocer los valores con los que se puede llevar a cabo un control ade-
cuado, por ejemplo, conocer los límites de voltajes y corriente en los que se puede trabajar.
Para el caso de las simulaciones y las pruebas físicas del control, el proceso de sinto-
nización de ganancia es de gran importancia y complicado al mismo tiempo, ya que al no
existir un método que nos proporcione el valor correcto de las ganancias que satisfagan el
control adecuado, es necesario realizar distintas pruebas hasta poder hallar los valores con
los cuales nuestro proceso de control presente un mejor desempeño.
En el caso de las pruebas experimentales para la realizar una trayectoria, los resultados
con el controlador tangente hiperbólico fueron satisfactorias pero en el caso del controlador
propuesto los valores que se calculaban para los torque resultaban muy pequeños lo cual
indefinía los valores de PWM necesarios para las ruedas. Aunque en las simulaciones se
logró implementar dicho algoritmo, las respuestas obtenidas nos permitieron comprobar
que los valores que se calculaban eran muy pequeños, por tal motivo se concluye que este
controlador no es adecuado para nuestro prototipo aunque no se descarta que este contro-
lador pueda funcionar con otro prototipo de mayores dimensiones.
Se deben buscar materiales que nos permitan construir un elemento mecánico que no
dañe la extremidad de la rata y así poder realizar las pruebas en condiciones adecuadas
para el roedor y para obtener resultados correctos.
Agregar sensores que permitan complementar la información del entorno donde el robot
móvil realiza su movimiento.
Apéndice A
Reconocimientos
65
Reconocimientos 67
Publicaciones
71
01023456819 4442 3162413 5 42 595 59819562040
8161410318113 55 502319260 42
!"#$%&'()*)+,*#-.(&/01234541678917:;<1=78:4;>91:8?87>5@A4B1>C
D^EF
_VFGMH^IUJJKLL^MVJLGNHG`OPQQFTF
MMFHRNNOLJSLLUTJ
HLOPU^HSVJHLMUOFJNPWF^TF
GaMbJLUHLQNLPJXJOLTRYFVLZ.[&&(-'Z(\['&(]
cdefghijkldmkniogmepekgqidrpestgqduviwnxyizd{|eij}lf~dmilgesd~vidm{geinmyxirpestgq~vi
wnxyigmedeknizggxinmyxb
bbbbbbbbbbbbbbbbbbb¡b
¡b¢bb£b¤¥b¢b¦¡b§bbb¡b̈bb¢bbbb¡¡b©ª«©¬b¡b
®bb¯bbbbb¡b¡¤°b¢b§±¬¤b¦¡b®®ªb¡b¨bb¢bbbb¡¡b
©ª«©¬b¡b
²bb¡b³ bbb´b¡µ¶¡¡bbb
i
b
,·¸¹%·º
»8>:8?87>5@A4B1>>86=;¼;=1>91:1;B4½;:58A4541678>161>¼;=48>917:;?;¾84B4547;98>16=85¼;:;=4@6;B8>:8?87>
5;64¼3B;98:1><36891>3>¼:46=4¼;B1>8?¾174A8>1>1¿1=73;:91¿8:5;;37@685;58A4541678>¼B;64¿4=;98>=862:;6
1À;=74739Á¼;:;1>78>1:1Â341:194>1Ã;:1>7:3=73:;>91=867:8BÂ3151¾8:16B;:1>¼31>7;91B:8?87CÄ8:B87;678Á161>717:;?;¾8
>1¼:1>167;1B94>1Ã8<;6ÅB4>4>5;715Å74=89136;1>7:3=73:;91=867:8B;=87;9;ÁÂ3116=86¾3678=861B1>7394891B;
=4615Å74=;<B;946Å54=;9136:8?875@A4B91=86¿423:;=4@694¿1:16=4;B¼1:5471>453B;:<;6;B4½;:1B=85¼8:7;541678Â31
1B:8?875@A4B¼:1>167;;B1¿1=73;:36;7:;<1=78:4;91>1;9;ÁB8>:1>3B7;98>8?716498>>1=85¼;:;6=86B;:1>¼31>7;;9Â34:49;
;B>453B;:B;946Å54=;;>8=4;9;;36=867:8B;98:ÄÆ?;¾8B;54>5;7:;<1=78:4;C
b´bÇbbb b¦bÈbÈbbbbbb£¡bb
!ɸ,!Ê
b
ËÌ158?4B1:8?87>;:1;?B178¼1:¿8:558A15167>4636B454719Í8:Î>¼;=1>=85¼;:19785;64¼3B;78::8?87>;698618¿7Ì14:
5;468?¾1=74A1>4>78=;::<837;37868583>B<¼B;661958A15167>Í47Ì2:1;7;==3:;=<Á¿8:7Ì4>Á474>61=1>>;:<7891>426
=867:8B>7:3=73:1>7Ì;745¼:8A17Ì1:8?87Ï>:1>¼86>1CËÌ1:1¿8:1Á467Ì4>Í8:ÎÍ1¼:1>1677Ì15;7Ì15;74=;B91>426;69;6;B<>4>Á
8¿;?836919=867:8B>7:3=73:1ÁÍÌ4=Ì78217Ì1:Í47Ì7Ì1>739<8¿7Ì1Î4615;74=>;699<6;54=>8¿;58?4B1:8?878¿94¿¿1:1674;B
=86¿423:;7486;BB8Í>3>78>453B;71;69;6;B<½17Ì1?1Ì;A48:7Ì;77Ì158?4B1:8?87¼:1>167>ÁÍÌ1647¼1:¿8:5>;91>4:19
7:;¾1=78:<CËÌ1:1>3B7>8?7;4619;:1=85¼;:19Í47Ì7Ì1:1>¼86>1;=Â34:19?<>453B;74627Ì19<6;54=>;>>8=4;719Í47Ì7Ì1ÄÆ
=867:8BB1:Á3691:7Ì1>;517:;¾1=78:<Cii
УѴb¦¦bbbbÒb£bbbÓ£bÒ¯Ôi
b
917:;?;¾84B4547;98Á;94¿1:16=4;91B8>:8?87>
Õ$Ö×'.[*ZØ&&(-' 5;64¼3B;98:1>¿4¾8>B8>=3;B1>1>7Å6:1>7:462498>;=35¼B4:
7;:1;>9167:891361>¼;=48917:;?;¾89171:546;98¼8:>3>
ÙB91>;::8BB891:8?87>5@A4B1>:1>¼8691;B;61=1>49;991 9;3451
6>4861>¿Ú>4=;>CÄ8:B87;678Á=86B;¿46;B49;991
1À71691:1B=;5¼891B;;¼B4=;=4@691B;:8?@74=;Á>3 =;¼51 67;:B;58A4B49;991B:8?87<911>7;5;61:;>3
45¼8:7;6=4;:;94=;¼:46=4¼;B5167116Â31¼8>116361>¼;=48 ;=49;9917:;?;¾8Á>1Ì;=13>89136>4>715;B8=85878:
ÛÜÜÝÞßààáâãããä åæÞä çèéèêëìíÞîèíèéïðñìíÞòÞßóäôõÞÜöåÛå
01023456819 4442 3162413 5 42 595 59819562040
8161410318113 55 502319260 42
¼;:;Â311B:8?87¼319;91>¼B;½;:>1B4?:15167116>31>¼;=48 5Þ681À4>7191>B4½;541678C
917:;?;¾8÷øùC Æ1;=31:98=86B;>Ì4¼@71>4>;671:48:1>Á>1;?8:9;1B=;>8
ú94¿1:16=4;91B8>:8?87>¿4¾8>ÁB8>:8?87>5@A4B1> ?494516>486;B91?498;Â311B:8?87>8B8>1531A11636
=;5?4;6=86=;9;58A4541678B;¼8>4=4@6<8:4167;=4@691 ¼B;68÷øùC
>31¾191=88:916;9;>?;>1CÄ8:=86>42341671Á91?16 Ù6?;>1;B;þ42CøÁ1B;6ÅB4>4>>1464=4;¿4¾;69836>4>715;
:1=868=1:=86>7;671516711B;5?4167198691>1531A16 91:1¿1:16=4; 97 9Á9Á98 9136¿8:5;=86A1641671C
¼;:;¼891:;9;¼7;:>1;91=3;9;51671CÄ;:;Â3136>4>715; 03?>1=3167151671Á>1=8B8=;36>4>715;91:1¿1:16=4;
:8?@74=85@A4B¼319;>1:1À478>861=1>47;=867;:=8636;
?316;17;¼;91>16>;98<7161:=41:782:;9891;378685Ú;
7 ÁÁ 8Á1B=3;B68>¼1:5471Ì;BB;:B8>=85¼861671>91
7:;ø>B;=ø4@ø6ø<B;8:4167;=4@691B:8?875@A4B:1>¼1=78;B
÷ûùC >4>715;91:1¿1:16=4;> 9C
»8>:8?87>5@A4B1>91?16>1:=;¼;=1>911¾1=37;:91 ý86>491:;69836:8?875@A4B9194:1==486;541678
¿8:5;;37@685;58A4541678>¼:1A4;51671¼B;64¿4=;98> 94¿1:16=4;B68Ì8B86@54=8Â31>1531A11636¼B;68
¼;:;B8=3;B>1:1Â341:1¿8:53B;:B1<1>91=867:8BÂ31 Ì8:4½867;BÁ>1¼319191>=:4?4:>3=4615Å74=;=86B;>1=CøC
¼1:547;61>7;?4B4½;:1BA1ÌÚ=3B8>8?:136¼3678917:;?;¾8Á
;63B;6981B1¿1=7891B;>¼1:73:?;=4861><5;671641698
;=87;9;>B;>>1Ã;B1>91=867:8B÷üùC 9 =8>78 Á£9 >4678 ÁÁ ø
Ä8:7;B5874A8Á>194>1Ã;36;1>7:3=73:;91=867:8BÂ31
¼:1>167;3651¾8:91>15¼1Ã8<:8?3>71½=85¼;:;98=861B 98691Á1>B;¼8>4=4@691B:8?87Á 1>B;8:4167;=4@6
9136=867:8B;98:ÄÆCÄ;:;1A;B3;:1B91>15¼1Ã891B 91B:8?87Á9<9 >86B;>167:;9;>91=867:8B91A1B8=49;9
=867:8B;98:¼:1A4;51671516=486;98Á>11B42136:8?87 B461;B<;623B;:91B:8?87Á:1>¼1=74A;51671÷ùÁB;>=3;B1>
5@A4B917:;==4@694¿1:16=4;B<;Â311>711>=;¼;½91 >861À¼:1>;9;>16B;>1=>Cû<üC
58A1:>116BÚ61;:1=7;Á24:;:>8?:1>Ú54>58<7:;½;:=3:A;>
÷øùÁ>3=86>7:3==4@61>:1B;74A;51671¿Å=4B<>1B82:;36;
51¾8:58A4B49;91671::168>>3¿4=416715167193:8><B4?:1>
91 8?>7Å=3B8>Á ¼1:54741698 =86>1234: A1B8=49;91>
:1B;74A;51671;B7;>÷üùÁB8Â31:1>3B7;;91=3;98¼;:;1>71
74¼891;6ÅB4>4>Cý86?;>1161>7;=86¿423:;=4@6Á>1
91>;::8BB;B;=4615Å74=;Â3191>=:4?1B;¼8>4=4@6<
8:4167;=4@691B:8?875@A4B<¼8>71:48:51671>1:1;B4½;B;
946Å54=;91?498;Â311>7;91?1>1:46=B349;16B;1>7:3=73:;
5;715Å74=;91B8>;B28:4758>91=867:8B÷øùCþ46;B51671Á>1
¼:1>167;6B8>:1>3B7;98>Â31>18?741616;B:1;B4½;:B;
>453B;=4@691B;946Å54=;16=86¾3678=86B;¼:8¼31>7;91
=867:8B;98:<;B=867:8B;98:ÄÆÁB8Â31¼1:54711¿1=73;:36;
=85¼;:;=4@691B;:1>¼31>7;Â31¼:1>167;=;9;36891B8>
;B28:4758>C
ÿ$ÖÊ('0.(&+Z('0(&
ÙB5891B;98=4615Å74=81>1B1>739489158A454167891
>4>715;>51=Å64=8>>46=86>491:;:B;>¿31:½;>Â31;¿1=7;6
94=Ì858A4541678CÄ;:;1B:8?875@A4B9194:1==486;541678 (Ø[Õ¸(). )Z&**[Z'Z) 97 9Á9Á98 ø7 øÁÁ ø ø8 +
94¿1:16=4;BÁ1B¼:8¼@>478¼:46=4¼;B91B5891B;98=4615Å74=8 û7 ûÁûÁû8[(.'Z)&[(#([]Z)]('.*+]*[('.&(-'Z]
1>:1¼:1>167;:B;A1B8=49;991B:8?8716¿36=4@6;B;> [*#*.-(]$û!)]Z().'&(Z)[&(-''.[])Z*)[ØZ)Z
A1B8=49;91>91B;>:319;>=86¾367;51671;B8>¼;:Å517:8> .[&&(-'ûz)]Z(0.[*Z])[ØZ)!ø)]Z().'&(Z]&'.[*
218517:4=8>91B:8?87÷2ùC Z )]"Z[*.&(-'Z])[ØZ)+ )]0'Ø]*#ØZ)&[(#
36:8?875@A4B=86:319;>1>3694>¼8>474A8Â3191?1 ]*[('.&(-'Z]-(]$
58A1:>1>8?:136;>3¼1:¿4=415194;671B;;==4@691:319;>
5867;9;>161BÁ>1;>3516B;>>42341671>Ì4¼@71>4>4 % &Ç '&%
5ÞÙB:8?875@A4B>1531A1>8?:136;>3¼1:¿4=41¼B;6; Ç 'û $ û Á û
Ì8:4½867;BÁ1>91=4:B;161:2Ú;¼8716=4;B1>=86>7;671C Ç (û% $&Ç (û&%Á ü
5Þ»8>1¾1>91:1¿1:16=4;>86¼1:¼1694=3B;:1>;B>31B8C
5Þ681À4>7161B151678>¿B1À4?B1>16B;1>7:3=73:;91B
:8?87Á46=B3<1698B;>:319;>C 98691&Ç<&%>86A1B8=49;91>;623B;:1><Ç1>1B:;94891B;>
5ÞÙB=867;=78167:1=;9;:319;<1B>31B8>1:193=1;36 :319;>CË;5?4161>¼8>4?B191¿464:B8>=85¼861671>91B
>8B8¼3678C
ÛÜÜÝÞßààáâãããä åæÞß çèéèêëìíÞîèíèéïðñìíÞòÞßóäôõÞÜöåÛå
01023456819 4442 3162413 5 42 595 59819562040
8161410318113 55 502319260 42
B7 B 1=C
üøC
455
B@A 7 65 6C
BB'øûB ÂÂ(>46Ìø B=8>Ì BÒB
9B78
:7998 :
û ÁB
JBB I I
'=8>ÌûB C üø
CÔDÔEFmnlgxdikgigxmlslmdikgisnemnhi
Æ1B;1=Cû3:1785;58>B;;=1B1:;=4@6 BÁB;=3;B1>
Ä;:;=8516½;:94=Ì8;6ÅB4>4>Á>1=86>491:;B;>42341671 >3>747349;16B;1=CüøÁ8?71641698B;1=CüûC
1>7:3=73:;91=867:8B4 I > 46Ì B=8>Ì B >46Ì B=8>Ì B
5=8>ÌÂ>4û6ÌÂ
7 8>Ì 6 5
8 Ò 967
=8>ÌÂ>4û6ÌÂ
7 ø'=8>Ì 6
8 ÁBÒ ø'=8>Ìû
JBB B ( ø'=8>ÌûB ÒB
5=%65Ò 967 ø'= Â
85 Â
7 8 7
79Ò£:
9=Ç: 9 8
87
7=8>ÌÂ
£>46ÌÂ (
£89
8
7 8
87
79Ò£:7=8>ÌÂ
£>
8
46Ì£8
8
Á
û,
(B BB
IýÁ' ø B BB
I (BÒ
I >4
6ÌB
= BCüû
8û>Ì
9 ø'=8>ÌÂ
7 û
£ 8: 9 ø'=8>ÌÂ
7 û
£ 8: û ø'=8>ÌB
98691B;2;6;6=û4;û¼:8¼8:=486;BHG <B;2;6ûÀ;6ø=4; >12Ù6
ûû B;1=Cüû1B¼:451:71:5468>1=;6=1B;=861B
91:4A;74A;HG >865;7:4=1>94;286;B1><ÂG 1> ¼:83¼641998;Á919B171;:6=714>:4851
>1=;6=1B;=861B=3;:78;B;¼B4=;:B;
7:Ú;÷øùÁ:1>3B7;698B;1=CüüC
1B1::8:91¼8>4=4@6B(BC
Æ1B54>585898Á>1=86>491:;B;1>7:3=73:;2161:;B91B;
ÛÜÜÝÞßààáâãããä åæÞà çèéèêëìíÞîèíèéïðñìíÞòÞßóäôõÞÜöåÛå
01023456819 4442 3162413 5 42 595 59819562040
8161410318113 55 502319260 42
I >
Á(BÒ
JBB 46Ì
B=8û>Ì
B
ø'= 8>ÌB K9C üü
Ä8:B8Â31Â319;9158>7:;9;B;1>7;?4B49;92B8?;B91B
¼3678911Â34B4?:4816B;1=3;=4@691B;½8=1::;98C
CÔLÔEjxmlslmdikgisnemnhiFci
ÙB=867:8B¼:8¼8:=486;B91:4A;74A81>7Å9;98¼8:B;>42341671
1=3;=4@64
5Ò 98
5=%67 65B8 5Ò 98
6(7 65B8
6Á ü2 (Ø[QN·&Ø&(-'']*&[[Z*R).[Ø&.Ø[Z&*'.[*][*Ø).
7
9=Ç8
:799Ò£8:7 99Ò£8
9B£: 7 :7
9B£: +Z('0(&'&*'"Ø'.*S(]'.Z*'¸(Ø]('O$
ÙB;6ÅB4>4>>8?:1B;1À4>716=4;Á364=49;9<1>7;?4B49;991B
¼3678911Â34B4?:48911>71;B28:475891=867:8B1>7Å
;5¼B4;5167198=35167;98÷øÁø9ùC
Æ1>¼31>91=85¼:8?;:B;1>7;?4B49;991;5?8>
=867:8B;98:1>>1¼3191>453B;:36;7:;<1=78:4;>45¼B1¼;:;
¼891:=85¼;:;:1B91>15¼1Ã891=;9;368C
M$Ö̧(Ø]&(*')$
Ù6B;>þ42>Cü),Â31>1¼:1>167;6;=867463;=4@6Á>18?>1:A;6
B8>94;2:;5;>;?B8Â31>91B;946Å54=;91B:8?875@A4BÁ1B
;B28:475891=867:8B¼:8¼31>78Á<B;1=3;=4@616B;½8
=1::;98=86;5?8>=867:8B;98:1>Cb (Ø[T·&Ø&(-'']*&[[Z*R).[Ø&.Ø[Z&*'.[*]P.+
Z('0(&'&*'"Ø'.*S(]'.Z*'¸(Ø]('O$
Ù6B;>þ42>C-)3>1¼:1>167;6B8>:1>3B7;98>8?716498>;B
>453B;:36;7:;<1=78:4;:1=7;=86464=4816ÀÁ<U9Á95C<
¿46ÀÁ<U9Áø5C91B;946Å54=;=861B=867:8B;98:
¼:8¼31>78C018?>1:A;B;¼8>4=4@6¿46;B91=167:8915;>;
91B:8?875@A4BÁ1B1::8:91B;¼8>4=4@6<1B78:Â31Â31
:1Â341:1=;9;:319;¼;:;:1;B4½;:B;7:;<1=78:4;91>1;9;Á
:1>¼1=74A;51671C
(Ø["N.('0(&Z][*#*.-(](]'.Z'¸(Ø]('O$
(Ø[VNP*)(&(-'\(']Z]&'.[*Z )]](&[]&*'.[*]Z*[
(Ø[MNP[*Ø).Z).[Ø&.Ø[Z&*'.[*](]'.Z' [*Ø).*]Z('0(&Z][*#*.-(]$
¸(Ø]('O$
ÛÜÜÝÞßààáâãããä åæÞã çèéèêëìíÞîèíèéïðñìíÞòÞßóäôõÞÜöåÛå
01023456819 4442 3162413 5 42 595 59819562040
8161410318113 55 502319260 42
(Ø[ÕÕN·[[*[Z*)(&(-'Z]&'.[*Z )Z][*#*.-(]
](&'Z*]&*'.[*]Z*[P.$
(Ø[W·[[*[Z*)(&(-'Z]&'.[*Z )Z][*#*.-(]
](&'Z*]&*'.[*]Z*[[*Ø).*$
(Ø[Õÿ*[#Ø[#Ø[(Z**[&Z[ØZ[[]([]
.[+&.*[(Z)Z]](&[]&*'.[*]Z*[P.]Z('0(&Z]
(Ø[XN*[#Ø[#Ø[(Z**[&Z[ØZ[[]([] [*#*.-(]$
.[+&.*[(Z)Z]](&[]&*'.[*]Z*[[*Ø).*]Z('0(&
Z][*#*.-(]$ Q$ÖÊ*').[Ø&&(-'Z][*.*.(*Z][*#*.-(]$
Ù6B;>þ42>Cø9)øû>1¼:1>167;6B8>:1>3B7;98>8?716498> Ä;:;B;=86>7:3==4@691B¼:87874¼8>1=86>491:@1B>42341671
;B>453B;:B;7:;<1=78:4;91>=:47;161B=;>8;671:48:=86B; 5;71:4;BC
946Å54=;91B:8?875@A4B<=867:8B;98:ÄÆC018?>1:A;B;
¼8>4=4@6¿46;B91=167:8915;>;91B:8?875@A4BÁ1B1::8:91 5Þ36;?;>1=4:=3B;:91¼BÅ>74=891Zû=5<919Cü=591
B;¼8>4=4@6<1B78:Â31Â31:1Â341:1=;9;:319;¼;:;:1;B4½;: 1>¼1>8:=8581B=31:¼891B:8?87C
B;7:;<1=78:4;91>1;9;Á:1>¼1=74A;51671C 5Þ36¼;:91BB;67;>=851:=4;B1>Æ3)[$\03¼1:B471
]Ì11B>91Z-C,û=5C
5Þû5878::193=78:1>¼8B8B3øüø4øü-ÆÀ-»55=86
16=891:C
5Þø:319;91=;>78:C
(Ø[ÕYP*)(&(-'\(']Z]&'.[*Z )]](&[]&*'.[*]Z*[
P.]Z('0(&Z][*#*.-(]$ (Ø[Õ"N^().\[*'.]Z[*.*.(*Z[*#*.-(]$
Ù6B;þ42Cøü>1¼:1>167;1B¼:87874¼8¿46;B91:8?875@A4B
Â31>1=86>7:3<@C
ÛÜÜÝÞßààáâãããä åæÞ_ çèéèêëìíÞîèíèéïðñìíÞòÞßóäôõÞÜöåÛå
01023456819 4442 3162413 5 42 595 59819562040
8161410318113 55 502319260 42
T$ÖÊ*'&]Ø)(-' ÷-ù4Cj31ÁþÁË;62Á[C»43Á[Cj;8CIÓ£gÒ¯b
b¦bbµbb´bÒ¯b
ý858>1;¼:1=4;16B8>:1>3B7;98>91B;>>453B;=4861>>1 Òú¼¼
B419ú:b74¿4=4b;B£;671
BB421b6Ñ
=1µÁbË;
<B8:i
þb:;6=4>c:
83¼¡Áb
B82:@91>;::8BB;:36;1>7:3=73:;91=867:8B=863651¾8: û`9Cþ
øûC$1
C <1>ý8:71>Cbbbb£b
91>15¼1Ã8Â311B=867:;B8:ÄÆCúB=85¼;:;:B;þ42>C-<ø9 ÷2ù CøaÙ9CúB¿;8512;Á¼¼Cø22)ø-9Áû9øûC
>18?>1:A;36;5;<8:1À;=7473991B=867:8B;98:91>;::8BB;98 ÷3ùþC$1<1>ý8:71>Á`Cý49486¾;:;½ÁÙb;:2;>0878C
16B;3?4=;=4@6¿46;B91B=167:8915;>;91B:8?875@A4BÁ16 ¿;8512;Á´¼b
B;>þ42>C2<øø>18?>1:A;Â311B1>7;987:;6>478:48Â31
¼:1>167;1B=867:8B;98:ÄÆ1>5Å>=8:78Â311BÂ31¼:1>167; úB ¼Cû-Áûb£
9øøb CCøaÙ9C
1B=867:8B;98:91>;::8BB;98ÁB8Â31>3¼869:Ú;36;51¾8: ÷ø9ù$C k1
b BB<ÁbC
0;674?ÁÅøÃ;1½Ù9
C
CÄ:1674=b1d;
bBBÁ¼
¼Cü2)büÁb
:1>¼31>7;91B=867:8B;98:ÄÆÁB8=3;B:1>3B7;1::@618¼31>78 ø2ü)ø2-Áû99üC
Â31Á;B=85¼;:;:B;>þ42>C3<øû>191531>7:;Â311B
=867:8B;98:ÄÆ:1Â341:13678:Â315ÅÀ45891ø6C¼;:;
:1;B4½;:B;7:;<1=78:4;91>1;9;¼8:>1:36=867:8B;98:68
;=87;98Á<;36Â311B5878:68>1;=;¼;½91¼:8¼8:=486;:
94=Ì;161:2Ú;Á=861>7;;==4@6>1B11À4217:;?;¾;:16B;½86;
91>;73:;=4@6365;<8:7415¼8Á;¿1=7;98;>Ú1B7415¼891
A49;91B5878:CÙ>7868>3=191161B=;>891B=867:8B;98:
Â31>191>;::8BB@91?498;Â31¼8:94>1Ã8Á>1B4547;B;
161:2Ú;Â311B=867:8B;98:¼31911À424:B1;B5878:Á16B8>
:1>3B7;98>>18?>1:A;Â311B78Â315ÅÀ458Â31:1Â341:1=86
1B=867:8B;98:94>1Ã;981>91øCû6Á¼8:B87;678Á>1
=85¼:31?;Â31631>7:894>1Ã8741613651¾8:91>15¼1Ã8C
ý8587:;?;¾8;¿373:8>145¼B15167;:Å1B;B28:4758
94>1Ã;98161B¼:87874¼8Â31>1=86>7:3<@ÁB8Â31¼1:5474:Å
=85¼:8?;:B8>:1>3B7;98>8?716498>16B;>>453B;=4861><16
=;>891>1::1Â31:498>1:1;B4½;:;6B;>;91=3;=4861>
¼1:7461671>C
$ÙþÙ$Ù6ý;ú0
Þ
÷øù`CþC$1<1>ý8:71>ÁÇ´bbbÇb
ÁøaÙ9CúB¿;8512;Á¼¼Cøüø)øüüÁûø)
üû-Áüü,)ü2ûÁü3)2,Áû9øøC
÷ûùÄ1:1½ú::123Ú6ÁË8A;:ú::4;2;Áb4BB;>1Ã8:ý;::4BB8Á
c8::8>7417;d3:7;98ÁÄ19:;½;\:712;Áb;:2;>0878Á
$;58>ú::123Ú6Á08785;<8:\B5198CÇbbb
I b³¦b b¦bbb
bb®¯b£b³be¯bb
£Á¼¼C-2Á-3C364A1:>49;9ú37@685;91
f31:17;:8û9øøC
÷üùúC\BB1:8[;73:861Á$8?@74=;44;64¼3B;98:1><:8?87>
5@A4B1>ÁøaÙ9C4;:=85?8Á¼¼Cû2)ü9Áû2Áû3Á
[;:=1B86;û99øC
÷2ù$C
¦¦ÆÌ
;83g;94ÁúCú?3d;
b b7;?C³£
b
¯bb
¯¯b
¯b¦bb
Ñgbµ¯´bb¦b¦ÑÒCú9A
$8
÷ùhC ?8ýÌ7ú3167Á85CþCûd;9ø8üÁC[C
4;Cbg¯¯b
bb¦bbgµbѵb
C;ÙËý867:8BËÌ18:<iú¼¼B4=;7486>:8?87>C
û9ø-C
÷,ù$C01:Í;<Á`C`1Í177Cµ£b¦b¢bb
û
-2¯)û3,Cb30
Ñúµbû992Cbµ£Á-;Ù9CËÌ85>86Á¼¼C
ÛÜÜÝÞßààáâãããä åæÞô çèéèêëìíÞîèíèéïðñìíÞòÞßóäôõÞÜöåÛå
Publicaciones 80
1
567895 9 7 5
9 756 57
56895
4
!"#$%&#'($)*!+*,')*#,-.$/0)
12#!3,*,43!#','#1$5#-#)*,3#,,/,),-+,#3
6789:;<=>7?=@A:?8B8=:CD78EF:CGHI@JKL:?878=@M:N:JO@?PKJHI@JKM7QR8<S>9T7?
O>:8E7HU7?9E7?Q:8O@?PKJDB8EF:C
GL7E>;
P7==:O9:8E97J=:;7<;:EP?R89E7HU7:JP?V7:8O9:8E97J=:;7<;:EP?R89E7@WE9R8X>P@Q7P9C7E9R8Y
Z:8:QK?9P7[89\:?J9=7=X>PR8@Q7=:]>:T;7YX\YD78O;7>=9@NGD>?D^_OY[YO@;YI7?=98:J=:D78
U78>:;HOY]Y`a`bH]>:T;7H]>:YHUKc9E@Y
d
8JP9P>P@=:L9J9@;@SV7YZ:8:QK?9P7[89\:?J9=7=X>PR8@Q7=:]>:T;7YX\YGeD>?fbGHOY[YO@;YI7?=98:J=:
D78U78>:;HOY]Y`a`bH]>:T;7H]>:YHUKc9E@Y
/ -.& $ghijkilminolplkqliqorsrtuiplilvnuklilmiwxplyuzimri{ukpqo|{{x}kzilmi~uwlmrwuiwxk~x{uiilmi{ukqoumi
wli|kiousuqi~}xmi|linlo~xqlirsuowroilminousml~ri~uquoi|linolplkqrilmi~|qrkqliwli~xlmxkriwlku~xkrwri
orqriqrxlniukilmi|puiwlmi~uwlmuiwxk~x{uiwlprooummrwuziplipx~|mri|kriqorl{quoxri{ukiwupirmuoxq~upiwli
{ukqoumiimupiolp|mqrwupiusqlkxwupipli~|lpqorkilkiox{rpi|linlo~xqlki{u~nroroilmiwlpl~nlyuiwli{rwri|kui
zinrorixkrmxroiplinolplkqrkix~lklpiwlminouquqxnui{ukpqo|xwuiii
,!,0*,-'!,2M@T@PQR\9;=98BQ9E77;S@?9PQ@J=:E@8P?@;E@8P?@;=:P?7N:EP@?97qrxlnQ9:;987Y
40-)*,')gikiqxpiuoilinolplkqiqliwlpxkzi{ukpqo|{qxukziwkr~x{i~uwlmxkirkwi{ukqoumiuiri~usxmliousuqi
qrqirmmupi|piquiqr{mliqli~uquoinousml~iqrqinolplkqpiqli~lmxki~|qrkqi{rmmlwiorqiqrxlnixqiqli|pliui
qliwkr~x{i~uwlmiqrqiliwllmunlwzilipx~|mrqliriqortl{quoixqiqui{ukqoumirmuoxq~pirkwiqliolp|mqpi
usqrxklwirolipukixkiornpiqrqirmmui|piqui{u~nroliqlinlouo~rk{liuilr{iuklixkrmmziqlix~rlpiui
qlinouquqnlirolipuki
*-U@T9;:?@T@P=N87Q9EJE@8P?@;7;S@?9PFQJP?7:EP@?NE@8P?@;qrxlnQN:;98Y
¹¢ ²ËÇŤ¥¦§¨©ª«¹¢«²ËÇŦ¬§¨©Ì 7J?:JP?9EE9@8:J8@F@;@8RQ9E7J98P?@=>E9=7J7
L>8=7Q:8P7=@:8fH:;Q@=:;@=98BQ9E@J: > 889\:;E98:QBP9E@J:?:W?:J:8P78E@8;7
:E>7E9R8GGY
=:J7??@;;7W@?:;QKP@=@=:_:ÍP@8Î<>;:?W7?7;@
E>7;J:?:>9:?:>8=97S?7Q7=:E>:?W@;9T?:\:? °¡¤Ñ«¡¤Ñ̈¡Ñ³ÑËѰ¤¥¦Ñ§¨©ÑåѦ¬Ñ§¨©ÑåÑåÑæÑ³°£Ñ®Ñ³GG
9S>?7GTYD:?:W?:J:8P7;7W@J9E9R8=:;E:8P?@
=:Q7J7=:;QR\9;:QW;:78=@E@@?=:87=7J X;?:;7E9@87?;7J:¡E>7E9@8:JNGGJ:@TP9:8:
W@;7?:JHÏТϧ¤¥¦§¨©Ë¬¦¬§¨©©Ñ¢ÑÏÒÓÔH>:7; >:«¡Å¢£±ÙÇ Å¨ N7;9S>7;7?;77E:?@J:W?>:T7
=9:?:8E97?=7EÕ@Q@?:J>;P7=@;7\:;@E9=7=ÏС¢ >:£±¢ÇŨ¡H=:Q@JP?78=@7JV>::;?@T@P8@
ÑÏ¡ÒÓÔËϨ¡ÒÓ§Ô·Ö©N;77 E
:;:? 7
E 9
R 8×
ÏØ¢§ÏØÙ W>:=:=:JW;7C7?J:;7P:?7;Q:8P:HW@?;@P78P@H;7J
:E>7E9@8:JáNGbJ:?::JE?9T:8=:;7J9S>9:8P:
Ϩ¡Æ©Ò¬¨Ë§ÆÏ¡¨¡ËϨةҬ§¨ËÚÆ©YO@8;@78P:?9@?HJ: @?Q7
=:98:8;7J\:;@E9=7=:JN7E:;:?7E9@8:J>:J:
:JW:E99E78:8:;=97S?7Q7=:E>:?W@;9T?:E@Q@ £É¡¢Þ߸¼Þ à ËÇŨ ª
ß¶ ¡¹ G
J:@TJ:?\77E@8P98>7E9R8
£É¢Ï¡Û Ñ£¡É¢ÏØªÑ §ÝçËÜǹũ¨ØÙÜÇţɨ¡¢èâ§é¿Ù龩ÌG
£±¢Ï¨¡Û Ñ£¡±¢Ï¡¨¡Ë쬯 e 7J:E>7E9@8:J78P:?9@?:JJ:W>:=::cW?:J7?=:
@?Q7Q7P?9E97;E@Q@J:@TJ:?\7:8;7:E>7E9R8
ÊÉ¢ÏØÙϨ¡¹Û ÊÉ¢£¡ÉÙ£±¨¡ªa GeY
ʱ ¢ÆÏ¡¨¡ÙϨØÛ ʱ¢£¡±Ë£É¨¡ÑÌf °ÜÑ
åÑ
åÑ
ݤËÜÇÆæÑ ³°£¡êÑ̈ØÑ³Ë °åÑÙÜÇæ¨¡ÑÜÇæ¨¡Ñåѳ°£êÑ̈¡Ñ³¢
æ
° æÑ
æÑ
ÇÑÙÇ Ñ³ ° é Ñ
Ýé ë Ñ³Ì Ge
<JW@J9T;:F7;;7?;7?:;7E9R8:8P?:P@?>:JH º
>:?C7JN7E:;:?7E9@8:J7;:cW?:J7?;7J:S>8=7;:N ìg/ -.!),-
=:_:ÍP@8J@T?::;J9JP:Q7=:?::?:8E97ÁÅYD: <8;7J9S>?7JÎeJ:W?:J:8P78;@J?:J>;P7=@J
E@8J9=:?7ÜE@Q@;7Q7J7P@P7;=:?@T@PQR\9; =:;7JJ9Q>;7E9@8:J=:Q@=:;@=98BQ9E@:8
;;78P7JHE>:?W@N7EP>7=@?:J:Ý¢ÝËÜǹÅE@8
;@>:J:=:98:;7=98BQ9E7=:;\:FVE>;@E@Q@J: WE@?@8W>>8:PJ@P77;=E:@E8@P?8@P;?7@=;7@=?@]?6é¢íî§ïð©Ùíµ§ï¡©N7;7
@TJ:?\77E@8P98>7E9R8Y
±ñòÖѧóð©Ñ µ Å·ç±ñòÖѧóð©Ñ
é¢íîç±Åñ·ç òѧóð©ÑñÓôòѧó¡©Ùí ç±ñòѧóð©ÑñÓôòѧó¡©Y
ÈÉ¿ËÈɾ ¢ÜÊɪȱ¿Ùȱ¾Ñ¢ÑÜʱH`
ݨآ§ÈÉ¿ÙÈɾ©Ç˧ȱ¿Ùȱ¾©ÇÅY
D:J>JP9P>N:8;7J:E>7E9@8:JaNf:8;7J
:E>7E9@8:J`NH=:989:8=@7JV;@J9S>9:8P:
£¡É¢Þ߸·Þ ¡ ±¢Þ߸¼Þ
à Ë£±¨ª£¡
ß¶
à Ù£±¨Ñ
ß¶ ¡á
¨Ø¢¿ã·àâ â §È ÙÈ ©Ë âä §È ÙÈ ©Y
Öä É¿ ɾ ¿ã·àâÖä ±¿ ±¾ Gb
e
7 T
5#À.*,g]@J9E9R8987;=:;E:8P?@=:Q7J7Î7E@8;7 5#À.*,õgö@?>:?:>:?9=@W@?;7?>:=7=:?:EF7W7?7
W?@W>:JP7=:E@8P?@;7=@?NTE@8:;E@8P?@;7=@?]6Y ?:7;9C7?;7P?7N:EP@?97=:J:7=7÷7E@8;7W?@W>:JP7=:
E@8P?@;7=@?NTE@8:;E@8P?@;7=@?]6Y
D:;;:\R7E7T@;7E@8JP?>EE9R8=:;W?@P@P9W@=:
?@T@PQR\9;7JVE@Q@:;=9J:@:98JP?>Q:8P7E9R8
=:;7:P7W7=:W@P:8E97W>:8P:A>:8@J
W:?Q9P9?B8HE@Q@P?7T7@7>P>?@H?:7;9C7?;7J
7 T W?>:T7JVJ9E7J=:;E@8P?@;=:P?7N:EP@?97\:?
9S>?7eY
õg($'!.-#$-
]7?7;7:P7W7=:J9Q>;7E9@8:JJ:=:989R>87
P?7N:EP@?97?:EP7E@8989E9@:8cHNøbHbEQN98
cHNøabHbEQYXQT@JE@8P?@;7=@?:J?:7;9C7?@8;7
5#À.*,ìg<??@?:8:;=:JW;7C7Q9:8P@J@T?::;::cÎ7 P?7N:EP@?97=:J:7=7;;:S78=@7;=:JP98@E@Q@J:
E@8;7W?@W>:JP7=:E@8P?@;7=@?NTE@8:;E@8P?@;7=@? @TJ:?\7:8;79S>?7Y7?:JW>:JP7=:;]6
]6Y W?:J:8P7>8:JP7=@P?78J9P@?9@QBJE@?P@\:?
9S>?7HJ98:QT7?S@H?:>9:?:=:>87J:7;=:
E@8P?@;P@?>:QBJS?78=:\:?9S>?7eH:8
E@QW7?7E9R87;7;S@?9PQ@=:E@8P?@;W?@W>:JP@H
W@?J:?>8E@8P?@;7=@?8@7E@P7=@Y<JP77EE9R8
7E@?P7:;P9:QW@=:\9=7=:;@J7EP>7=@?:JW>:JP@
>:?:>:?9?B8P?7T77?:8;7C@87=:J7P>?7E9R8
W7?7E>QW;9?J>@T:P9\@YO@Q@P?7T7@7>P>?@J:
?:7;9C7?B8W?>:T7JVJ9E7J>:W:?Q9P9?B8:Q>;7?;7
P:?7W97?:>:?9=7N:\7;>7?;@J?:J>;P7=@J>:
W?:J:8P::;?@:=@?Y
a
Apéndice C
Firmware
87
Firmware 88
}
else
analogWrite(5,PWM1);
analogWrite(8,PWM2);
adelante();
delay(distancia*200);
alto();
atras();
delay(distancia*190);
alto();
Serial.print("rep: ");
Serial.print(repeticiones);
Serial.print(" ");
Serial.print("PWM izq: ");
Serial.print(PWM1);
Serial.print(" ");
Serial.print("PWM der: ");
Serial.print(PWM2);
Serial.print(" ");
Serial.print("dis: ");
Serial.print(distancia);
Serial.print(" ");
Serial.print("rep act: ");
Serial.println(j);
}
alto();
configuracion[0]=0; //restableciendo
configuracion[1]=0; //los parametros
configuracion[2]=0; //de configuracion.
Serial.print("rep: ");
Serial.print(repeticiones);
Serial.print(" ");
Serial.print("PWM izq: ");
Serial.print(PWM1);
Serial.print(" ");
Serial.print("PWM der: ");
Firmware 90
Serial.print(PWM2);
Serial.print(" ");
Serial.print("dis: ");
Serial.println(distancia);
}//fin de else if
else
delay(10);
repeticiones=configuracion[0]; //Asignando los parametros
PWM1=PWM3[configuracion[1]]; // de configuracion para
PWM2=PWM4[configuracion[1]];
distancia=configuracion[2]; // ejecutar la rutina.
Serial.print("rep: ");
Serial.print(repeticiones);
Serial.print(" ");
Serial.print("PWM izq: ");
Serial.print(PWM1);
Serial.print(" ");
Serial.print("PWM der: ");
Serial.print(PWM2);
Serial.print(" ");
Serial.print("dis: ");
Serial.println(distancia);
//fin if
}//fin while 1
}//fin void loop
void adelante(){ //Funcion adelante
digitalWrite(4,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(9,LOW);
}
void atras(){ //Funcion atras
digitalWrite(4,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
Firmware 91
digitalWrite(9,HIGH);
}
void alto(){ //Funcion alto
digitalWrite(4,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(9,LOW);
}
q1=x(:,1);
q2=x(:,2);
qp1=x(:,3);
qp2=x(:,4);
th=x(:,5);
[n,m]=size(t);
xef=zeros(n,1);
Firmware 92
yef=zeros(n,1);
tef=zeros(n,1);
int_trap_x=zeros(n,1);
int_trap_y=zeros(n,1);
int_trap_th=zeros(n,1);
Ix=zeros(n,1); Iy=zeros(n,1);
[xef,yef,tef]=cinematica_movil(R,L,qp1,qp2,th);
for k=1:n
[qtilde,tau]=controlador_movil([q1(k);q2(k)],[qp1(k);qp2(k)]);
tau1(k)=tau(1);
tau2(k)=tau(2);
qtilde1(k)=qtilde(1);
qtilde2(k)=qtilde(2);
[xef(k),yef(k),tef(k)]=cinematica_movil(R,L,qp1(k),qp2(k),th(k));
end
for a=1:n
int_trap_x(a)=trapz(t,xef);
int_trap_y(a)=trapz(t,yef);
int_trap_th(a)=trapz(t,tef);
end
for w=2:n
Ix(w)=Ix(w-1)+h*xef(w);
Iy(w)=Iy(w-1)+h*yef(w);
end
figure
plot(t,qtilde1)
title(’Error de posicion X’,’FontSize’,18)
Firmware 93
xlabel(’tiempo(s)’,’FontSize’,16)
ylabel(’error(cm)’,’FontSize’,16)
grid on
figure
plot(t,qtilde2)
title(’Error de posicion Y’,’FontSize’,18)
xlabel(’tiempo(s)’,’FontSize’,16)
ylabel(’error(cm)’,’FontSize’,16)
grid on
figure
plot(int_trap_x,int_trap_y,’*’,’MarkerSize’,18)
title(’Posicion final del centro de masa’,’FontSize’,18)
xlabel(’Desplazamiento (m)’,’FontSize’,16)
ylabel(’Desplazamiento (m)’,’FontSize’,16)
grid on
figure
plot(t,tau1)
title(’Torque rueda izquierda’,’FontSize’,18)
xlabel(’tiempo (s)’,’FontSize’,16)
ylabel(’torque (x10^{-2} N)’,’FontSize’,16)
grid on
figure
plot(t,tau2)
title(’Torque rueda derecha’,’FontSize’,18)
xlabel(’tiempo (s)’,’FontSize’,16)
ylabel(’torque (x10^{-2} N)’,’FontSize’,16)
grid on
kp2=55;
Kp=[kp1,0;0,kp2];
%% ganancia derivativa
kv1=0.5*kp1;
kv2=0.5*kp2;
Kv=[kv1,0;0,kv2];
%% vector de posiciones deseadas
qd1=2*pi;
qd2=2*pi;
qd=[qd1;qd2];
%% vector de error de posicion
% ERROR GRADOS
qtilde=pi/180*qd-q;
qtgrados=(180/pi)*qtilde;
qpgrados=180*qp/pi;
%% ley de control
%propuesta
% tau1=(Kp(1,1)*((cosh(qtgrados(1))*sinh(qtgrados(1)))/(1+
(cosh(qtgrados(1))^2))))-(Kv(1,1)*((cosh(qpgrados(1))*
sinh(qpgrados(1)))/(1+(cosh(qpgrados(1))^2))));
% tau2=(Kp(2,2)*((cosh(qtgrados(2))*sinh(qtgrados(2)))/(1+
(cosh(qtgrados(2))^2))))-(Kv(2,2)*((cosh(qpgrados(2))*
sinh(qpgrados(2)))/(1+(cosh(qpgrados(2))^2))));
%tangente hiperbolico
% tau1=(Kp(1,1)*tanh(qtgrados(1)))-(Kv(1,1)*tanh(qpgrados(1)));
% tau2=(Kp(2,2)*tanh(qtgrados(2)))-(Kv(2,2)*tanh(qpgrados(2)));
%PD
tau1=(Kp(1,1)*qtgrados(1))-(Kv(1,1)*qpgrados(1));
tau2=(Kp(2,2)*qtgrados(2))-(Kv(2,2)*qpgrados(2));
tau=[tau1;tau2];
end
function xp = control_movil(~,x)
R=3.81;L=8.54;
%% vector de posiciones articulares
q = [x(1);x(2)];
%% vector de velocidades articulares
Firmware 95
qp = [x(3);x(4)];
qp1=x(3);qp2=x(4);
thp=(R/(2*L))*(qp1-qp2);
%% matriz de masas e inercias
M=[786 0;0 954.99];
%% matriz de coriolis y fuerzas centrÃpetas
C=[0 -707.4*thp;707.4*thp 0];
%% obtencion del control
[~,tau]=controlador_movil(q,qp);
%% vector de aceleracion articular
qpp=M^(-1)*(tau-C*qp);
%% vector de salida para ode45
xp=[qp1;qp2;qpp(1);qpp(2);thp];
end
{
Serial.begin(115200);//Inicializacion puerto serial.
pinMode(2,INPUT); //Pin de Lectura AI Encoder (Declaracion como entrada).
pinMode(3,INPUT); //Pin de Lectura BI Encoder (Declaracion como entrada).
pinMode(18,INPUT); //Pin de Lectura AD Encoder (Declaracion como entrada).
pinMode(19,INPUT); //Pin de Lectura BD Encoder (Declaracion como entrada).
pinMode(4,OUTPUT); //Pin Giro atras.
pinMode(5,OUTPUT); //PWM. //
pinMode(6,OUTPUT); //Pin Giro adelante. //Ruedas
pinMode(7,OUTPUT); //Pin Giro atras. //Traccion
pinMode(8,OUTPUT); //PWM. //
pinMode(9,OUTPUT); //Pin Giro adelante.
//Lectura A como interrupcion.
attachInterrupt(digitalPinToInterrupt(AI),lecturaAI,CHANGE);
//Lectura B como interrupcion.
attachInterrupt(digitalPinToInterrupt(BI),lecturaBI,CHANGE);
//Lectura A como interrupcion.
attachInterrupt(digitalPinToInterrupt(AD),lecturaAD,CHANGE);
//Lectura B como interrupcion.
attachInterrupt(digitalPinToInterrupt(BD),lecturaBD,CHANGE);
Timer1.initialize(50000);//Incializacion de Timer1 a 50 milisegundos.
Timer1.attachInterrupt(controlador);//Lectura de Timer1 como Interrupcion.
}
//////////////////LECTURA DE ENCODERS////////////////////////////
//Funciones para conteo de lecturas de acuerdo al sentido de giro.
void lecturaAI()
{
SAI=digitalRead(AI);
contador_I += (SAI != SBI) ? +1 : -1;
}
void lecturaBI()
{
SBI=digitalRead(BI);
contador_I += (SAI == SBI) ? +1 : -1;
}
void lecturaAD()
Firmware 97
{
SAD=digitalRead(AD);
contador_D += (SAD != SBD) ? +1 : -1;
}
void lecturaBD()
{
SBD=digitalRead(BD);
contador_D += (SAD == SBD) ? +1 : -1;
}
void controlador()
{
//Funcion para obtener Posicion y Velocidad actual, Error de posicion
y TAU de ambas ruedas.
//Conversion para obtener posicion en grados de la rueda izquierda.
posicion_actual_I=(contador_I*0.0428571429);
// Calculo del error de posicion de la rueda izquierda.
error_posicion_I=posicion_deseada_I-posicion_actual_I;
// Calculo de la velocidad de la rueda izquierda.
velocidad_I=(posicion_actual_I-posicion_anterior_I)/0.05;
posicion_anterior_I=posicion_actual_I; // Posicion anterior
//Conversion para obtener posicion en grados de la rueda derecha.
posicion_actual_D=(contador_D*0.0428571429);
// Calculo del error de posicion de la rueda derecha.
error_posicion_D=posicion_deseada_D-posicion_actual_D;
// Calculo de la velocidad de la rueda derecha.
velocidad_D=(posicion_actual_D-posicion_anterior_D)/0.05;
posicion_anterior_D=posicion_actual_D; //Posicion anterior.
/////// Calculo de torque para la rueda izquierda //////
tau_I=kpi*(tanh(error_posicion_I))-kvi*(tanh(velocidad_I));
/////// Calculo de torque para la rueda derecha ////////
tau_D=kpd*(tanh(error_posicion_D))-kvd*(tanh(velocidad_D));
if (tau_I==0)
{
digitalWrite(4,LOW);
analogWrite(5,0);
Firmware 98
digitalWrite(6,LOW);
}
else if (tau_I>0)
{
if(tau_I>3)
{
tau_I=3;
}
digitalWrite(4,LOW);
digitalWrite(6,HIGH);
PWMI=map(tau_I,0,3,40,255);
analogWrite(5,PWMI);
}
else if(tau_I<0)
{
if(tau_I<-3)
{
tau_I=-3;
}
tau_I=(-1)*tau_I;
digitalWrite(4,HIGH);
digitalWrite(6,LOW);
PWMI=map(tau_I,0,3,40,255);
analogWrite(5,PWMI);
}
if (tau_D==0)
{
digitalWrite(7,LOW);
analogWrite(8,0);
digitalWrite(9,LOW);
}
else if (tau_D>0)
{
if(tau_D>3)
{
Firmware 99
tau_D=3;
}
digitalWrite(9,LOW);
digitalWrite(7,HIGH);
PWMD=map(tau_D,0,3,30,255);
analogWrite(8,PWMD);
}
else if(tau_D<0)
{
if(tau_D<-3)
{
tau_D=-3;
}
tau_D=(-1)*tau_D;
digitalWrite(9,HIGH);
digitalWrite(7,LOW);
PWMD=map(tau_D,0,3,30,255);
analogWrite(8,PWMD);
}
}
analogWrite(8,0);
digitalWrite(9,LOW);
break;
case ’i’://seleccion de giro izquierda
kpi=1.6949;
kvi=0.41*kpi;
posicion_deseada_I=720;
kpd=1.849;
kvd=0.459*kpd;
posicion_deseada_D=720;
break;
}//switch
}
Bibliografía
[1] J. F. Reyes Cortés, Robótica: Control de Robots Manipuladores, 1a Ed. Alfaomega,
pp 509-546, 2011.
[2] A. Ollero Baturone, Robótica: Manipuladores y robots móviles, 1a Ed. Marcombo, pp.
8-11, 28-30, 258, 259, 2001.
[3] L. I. Gracia Calandín, Modelado cinemático y control de robots móviles con ruedas.
Departamento de Ingeniería de Sistemas y Automática, pp 31, Universidad Politécnica
de Valencia.
[4] Pérez Arreguín, Tovar Arriaga, Villaseñor Carrillo, Gorrostieta Hurtado, Pedraza Or-
tega, Vargas Soto, Ramos Arreguín, Sotomayor Olmedo, Robot Móvil de Tracción
Diferencial con Plataforma de Control Modular para Investigación y Desarrollo Ágil
de Proyectos, pp 78,79. Universidad Autónoma de Querétaro, Facultad de Informáti-
ca, 2011.
[5] C. Canudas de Wit, B. Ciciliano, G. Bastin, Theory of Robot Control, 1a Ed. Springer,
pp 263-386, 1996.
[7] E. Grisales Ramírez, Control de un robot móvil en entornos domésticos, pp 1,2. Uni-
versidad Nacional de Colombia, Departamento de Ingeniería Eléctrica, Electrónica y
Computación, 2013.
101
Bibliografía 102
[10] R. Eguibar, C. Cortés, A. Ugarte, A. León, The myelin mutant rat taiep as a model
of neuroimmunological disease, Advances in Neuroimmune Biology 5. pp 9-17, 2014.
[13] H. Cruz, Una Introducción a los Robots Móviles, pp. 1-25, 2008.
[21] F. Rocha, Análisis de la locomoción en la rata taiep: Rol de las vías inhibitorias, 2013.
[22] J. F. Reyes Cortés, Matlab: Aplicado a la robótica y mecatrónica, pp. 141-188, 2014.
Bibliografía 103
[24] X. Chen, F. Hao, B. Ma, Periodic event-triggered cooperative control of multiple non-
holonomic wheeled mobile. IET Control Theory & Applications robots, 2017.
[26] K. Wang, X. Jiao, K. Wang, B. Dai, Adaptive optimal kinematic tracking control of
nonholonomic mobile robot. Chinese Automation Congress (CAC), 2015.
[28] R. Serway, J. Jewett, Physics for Scientists and Engineers with Modern Physics, 7a
Ed. Thomso, pp. 278-296. 2008.
[29] F. Reyes Cortés, J. Cid Monjaraz, E. Vargas Soto. Mecatrónica: Control y automati-
zación, 1a Ed. Alfaomega, pp 281-285. 2011.