UNIVERSIDAD POLITÉCNICA SALESIANA
SEDE GUAYAQUIL
CARRERA DE ELECTRÓNICA Y AUTOMATIZACIÓN
Materia
ROBÓTICA-PRÁCTICAS
Práctica
Robot móvil diferencial o Uniciclo
Autores:
ISRAEL MOYA
BETSIE BERMEO
PABLO BANDERAS
Docente
Ing. Geovanny García, MSc
Guayaquil - Ecuador
Período 64
Índice general
Índice de Figuras II
Índice de Tablas III
1. Tema 1
1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . 2
1.1.2. Objetivos específicos . . . . . . . . . . . . . . . . . . . 2
1.2. Recursos utilizados . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Marco teórico 3
2.1. Robots Móviles . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Cinemática de Robots Móviles . . . . . . . . . . . . . . . . . 4
2.3. Modelado Matemático . . . . . . . . . . . . . . . . . . . . . . 4
2.4. Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Desarrollo 6
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. Desarrollo de la práctica . . . . . . . . . . . . . . . . . . . . . 6
4. Conclusiones y Recomendaciones 14
4.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . 14
I
Índice de Figuras
1.1. Software Matlab . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.1. Robots Móviles . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Cinemática de Robots Móviles . . . . . . . . . . . . . . . . . . 4
2.3. Modelado Matemático . . . . . . . . . . . . . . . . . . . . . . 5
2.4. Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Paso 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2. Paso 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3. Paso 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.4. Paso 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.5. Paso 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.6. Simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.7. Movimiento en X y Y . . . . . . . . . . . . . . . . . . . . . . 12
3.8. Comando que permite que rote en sentido antihorario . . . . 13
3.9. Rotación de 270 en sentido antihorario . . . . . . . . . . . . . 13
II
Índice de Tablas
III
Capítulo 1
Tema
Práctica 1 de Robótica
Figura 1.1: Software Matlab
1
1.1. OBJETIVOS 2
1.1. Objetivos
1.1.1. Objetivo general
Desarrollar un algoritmo para el control de velocidad de un robot móvil
diferencial o uniciclo.
1.1.2. Objetivos específicos
Realizar el algoritmo en MATLAB del modelo cinemático.
Realizar cambio de velocidades lineales para que robot avance y
retroceda.
Realizar cambio de velocidades lineales para que robot gire a la
izquierda y gire a la derecha.
Utilizar Matlab para simular posición y velocidad del robot ingresados
por el usuario.
1.2. Recursos utilizados
Computadora
Software Matlab
Capítulo 2
Marco teórico
2.1. Robots Móviles
La robótica móvil puede entenderse de manera sencilla como sistemas
robóticos capaces de moverse a través de diversos entornos y que disponen
de habilidades que les permiten llevar a cabo tareas complejas, ya sea de
manera autónoma o mediante control humano. Estos robots están equipados
con sensores y actuadores, que les brindan la capacidad de percibir el entorno
y modificarlo según sea necesario.
En esta descripción, se mencionan dos términos fundamentales en la
robótica: sensores y actuadores. Los sensores son dispositivos que permiten
recoger información del entorno, la cual luego es procesada para que el robot
pueda percibir estímulos y actuar en consecuencia, como los sensores de
luz, sonido, GPS, de gases, entre otros. Por otro lado, los actuadores son
dispositivos que permiten al robot interactuar con el entorno, ejecutando
acciones sobre él. Estos incluyen, por ejemplo, mecanismos para manipular
objetos, herramientas como soldadores, y motores que facilitan el movimiento
del robot o la realización de diversas tareas.
Los robots móviles tienen la ventaja de poder realizar funciones
que son inaccesibles para robots manipuladores (otro tipo de robots)
debido a sus limitaciones físicas y su dependencia de estaciones fijas. Sin
embargo, al integrar manipuladores en robots móviles, es posible expandir
considerablemente sus capacidades.
[Perez, 2022]
3
2.2. CINEMÁTICA DE ROBOTS MÓVILES 4
Figura 2.1: Robots Móviles
2.2. Cinemática de Robots Móviles
Un robot diferencial opera de la siguiente manera: si ambas ruedas giran
a la misma velocidad y en la misma dirección, el robot avanzará en línea
recta. Si se invierte la dirección de giro manteniendo la misma velocidad,
el robot retrocederá. Si ambas ruedas giran en la misma dirección pero con
velocidades distintas, el robot se desplazará hacia el lado de la rueda más
rápida. Por ejemplo, si la rueda derecha gira más rápido que la izquierda,
el robot se moverá hacia la izquierda. Finalmente, si las ruedas giran a la
misma velocidad pero en direcciones opuestas, el robot girará sobre su propio
eje, en sentido horario o antihorario. [roboticoss, 2021]
Figura 2.2: Cinemática de Robots Móviles
2.3. Modelado Matemático
Para determinar la ubicación de un robot móvil en un plano cartesiano, se
utiliza el modelo cinemático diferencial directo. Este modelo establece una
relación entre las velocidades del punto de control o de interés (h(x,y)) y
las velocidades de los actuadores, asumiendo que el vehículo es una masa
puntual, sin considerar fuerzas adicionales como momentos de inercia o
fricción. Para construir el modelo cinemático, se parte de la geometría de
un robot tipo diferencial, como se muestra en la Figura 2, donde la posición
del robot está definida por el punto h(x,y) y su orientación por el ángulo
(phi). Cabe destacar que este modelo solo proporciona las velocidades, no
las posiciones. Por lo tanto, para obtener la posición y orientación del robot,
es necesario integrar las velocidades durante un intervalo de tiempo constante
2.4. MATLAB 5
(ts), conocido como tiempo de muestreo. [roboticoss, 2021]
Figura 2.3: Modelado Matemático
2.4. Matlab
MATLAB (del inglés MATrix LABoratory) es un software de
programación de alto nivel creado por MathWorks, diseñado principalmente
para realizar análisis numérico, simulaciones y visualización de datos. Se
emplea comúnmente en campos como ingeniería, ciencias físicas, finanzas y
otras áreas que demandan procesamiento y análisis avanzado de datos. Este
entorno de trabajo facilita a los usuarios llevar a cabo cálculos matemáticos
y estadísticos complejos, manipular matrices, visualizar datos de manera
efectiva y automatizar tareas mediante el uso de scripts. [formadoresit, 2024]
Figura 2.4: Matlab
Capítulo 3
Desarrollo
3.1. Introducción
Durante la práctica realizada en clase, se abordó el desarrollo de
un algoritmo para el control de velocidad de un robot móvil, enfocado
en dos tipos específicos: diferencial y uniciclo. Utilizando MATLAB
como herramienta de simulación, se buscó aplicar conceptos de modelado
cinemático para comprender y controlar los movimientos del robot de manera
efectiva.
El objetivo principal de esta práctica fue implementar un modelo que
permitiera simular maniobras básicas, como avanzar, retroceder y realizar
giros hacia los lados, ajustando las velocidades lineales del robot según
las necesidades del movimiento. Asimismo, se exploraron las capacidades
de MATLAB para visualizar y analizar la posición y velocidad del robot
con datos proporcionados por el usuario. Esta actividad fue diseñada para
reforzar los conocimientos teóricos en cinemática y control, permitiendo
aplicar de manera práctica los conceptos aprendidos en el aula mediante
herramientas computacionales modernas.
3.2. Desarrollo de la práctica
El desarrollo de la práctica se desarrollo en el siguiente orden:
Lo primero fue la incorporación de una variable global llamada M1,
utilizada para gestionar el carrito en la simulación. Esto resolvió el
problema de acumulación de múltiples carritos en pantalla, ya que
6
3.2. DESARROLLO DE LA PRÁCTICA 7
anteriormente cada carrito se dibujaba sin eliminar el anterior. Con
M1, se logró referenciar el carrito actual y eliminarlo antes de dibujar
uno nuevo, gar
Figura 3.1: Paso 1
Como segundo paso, se implementó una comprobación para eliminar
el carrito previo, resolviendo la acumulación de objetos en pantalla.
Usando isempty(M1), se verifica si existe un carrito anterior y, de
ser así, se elimina con delete(M1). Este ajuste, incluido dentro de
simulateTrajectory, garantiza que el dibujo del carrito sea dinámico
y evita múltiples instancias visibles.
3.2. DESARROLLO DE LA PRÁCTICA 8
Figura 3.2: Paso 2
Como tercer paso, se inicializó el carrito antes de comenzar el bucle, ya
que previamente no se dibujaba hasta que este iniciaba. Se agregó una
línea al inicio de la función simulateTrajectory que utiliza MobilePlot
para dibujar el carrito inicial. Esto permite que el carrito sea visible
desde el inicio de la simulación, mejorando la experiencia visual del
proceso.
3.2. DESARROLLO DE LA PRÁCTICA 9
Figura 3.3: Paso 3
Como cuarto paso, se ajustó el bucle para eliminar el carrito anterior
antes de dibujar uno nuevo en cada iteración. Esto se logró añadiendo
delete(M1) antes de redibujar con MobilePlot, asegurando que solo
haya un carrito visible en pantalla y evitando cualquier confusión visual
durante la simulación.
3.2. DESARROLLO DE LA PRÁCTICA 10
Figura 3.4: Paso 4
Como quinto paso, se separó la lógica de movimiento y dibujo del
carrito en una función independiente llamada simulateTrajectory. Esto
permitió encapsular la simulación de la trayectoria, mejorando tanto
la legibilidad como el mantenimiento del código, y promoviendo una
estructura más modular y organizada.
3.2. DESARROLLO DE LA PRÁCTICA 11
Figura 3.5: Paso 5
Finalmente se realizo la simulación del movimiento en (X) y (Y), al
igual que la rotación solicitada de 270° que equivale a 3(pi/2).
3.2. DESARROLLO DE LA PRÁCTICA 12
Figura 3.6: Simulación
Figura 3.7: Movimiento en X y Y
3.2. DESARROLLO DE LA PRÁCTICA 13
Figura 3.8: Comando que permite que rote en sentido antihorario
Figura 3.9: Rotación de 270 en sentido antihorario
Capítulo 4
Conclusiones y
Recomendaciones
4.1. Conclusiones
La implementación de algoritmos de simulación, como los realizados
en MATLAB en clase, nos pudimos dar cuenta que permite validar el
comportamiento cinemático de los robots móviles, facilitando el diseño
y ajuste previo a su aplicación en entornos reales donde se requiera.
La capacidad de los robots móviles para realizar movimientos precisos,
como giros y cambios de dirección controlados, los convierte en
herramientas clave para aplicaciones en espacios reducidos o escenarios
que requieren alta precisión, como realizado en clase que modificando
las funciones necesarias obteníamos un movimiento controlado.
El desarrollo práctico y experimental a través del software Matlab ha
sido una herramienta muy útil para comprensión de lo que implica el
movimiento de un robot y que variables se encuentran inmiscuidas en
esta.
4.2. Recomendaciones
Se recomienda colocar bien las funciones, variables y el código mismo
del movimiento ya que puede generar inconvenientes.
14
4.2. RECOMENDACIONES 15
Se recomienda no utilizar Matlab en linea para que todo funcione
correctamente.
Se recomienda verificar que todo este correctamente colocado ya que
puede dar error y problemas en el movimiento del Robot.
Bibliografía
formadoresit. ¿Qué es Matlab y para qué sirve? 2024.
N. Oliva. Redes de comunicaciones industriales. 2013, 2013.
A. R. Penin. Sistemas SCADA. 2008, 2008.
A. E. G. Perez. Robótica móvil: Qué es y sus aplicaciones. 2022.
roboticoss. Modelo cinemático y simulación de un robot móvil diferencial.
2021.
Penin [2008] Oliva [2013]
16