Informe Trayectoria Robot Diferencial
Informe Trayectoria Robot Diferencial
Informe Trayectoria Robot Diferencial
Datos
Personales
Nombre: Roberto Palacios Código: 747
Curso: 9
Paralelo: A
Fecha: 2021/02/15
Tema: Trayectoria Robot Diferencial
1. OBJETIVO
1.1. Objetivo general
Analizar el comportamiento del Robot diferencial en base a diferentes trayectorias que se
le puede aplicar.
1.2. Objetivos específicos
Investigar sobre comandos específicos en los cuales se desarrolla la plataforma
Matlab, además de investigar la correcta utilización de los controladores para robots
móviles.
Definir un diseño previo conocimientos básicos de Matlab y la creación de formas
con vectores y matrices (vectores Posición)
Implementar el diseño en base a especificaciones con datos obtenidos previamente,
y con fórmulas basadas en la dinámica en la que el robot interactúa.
Comparación de varias respuestas a diferentes estímulos o comportamientos al cual
el robot va a ser sometido para su respectiva comprensión.
3.INTRODUCCIÓN
Al analizar un robot diferencial en cuanto a su trayectoria se puede decir que se base en
una determinada función a realizar ya que el mismo también depende de su
programación ya que a medida que avance el tiempo los robots seguirán evolucionando
puesto que sus necesidades son aún mayores, podemos destacar que en el campo de los
robots móviles se encuentran los robots diferenciales uniciclos los que son capaces de
realizar tareas repetitivas y cotidianas que estas pueden ser para el ser humano, ahora
puesto que las necesidades son aún más exigentes para los robots su modo de operación
tiene que ser la más óptima ay que necesita optimizarse en su totalidad ya sea en costo,
tiempo o simplemente en su movimiento, al tener en cuenta que este tipo de robot
diferencial debe estar regido por movimientos sumamente programados ya que se tiene
que seguir los protocolos para los cuales va a ser su función, siendo este vectores de
posiciones tanto iniciales como finales o simplemente cual controlador sería el mejor
para dicho robot y que a su vez cumpla a cabalidad con el objetivo por el cual fue
construido.
2.MARCO TEÓRICO
Relación y Reconocimiento de comandos Matlab
Al estar trabajando en un entorno de programación avanzado en cuanto a las capacidades
que posee dicho programa se los puede relacionar con las características y finalidades
que posee dicho robot a simular para lo cual tenemos que tener una noción básica en
cuanto a la creación de variables, vectores, opresiones básicas y creación de funciones
las cuales nos ayudara a tener acceso de una manera más inmediato de comandos
relacionados unos con otros generalmente para la graficación de elementos para que su
FACULTAD DE INFORMATICA Y ELECTRONCA
ESCUELA DE INGENIERIA ELECTRONICA CONTROL Y REDES INDUSTRIALES
ROBÓTICA II
PERIODO ACADÉMICO ORDINARIO DE EXCEPCIÓN OCTUBRE – MARZO 2020, RESOLUCIÓN 221. CP.2020
simulación sea más dinámica podemos tener como puntos fundamentales y de los cuales
ampliaremos y modificaremos nuestro robot en cuanto a funciones.
Funciones Matlab.
Estamos acostumbrados a trabajar con funciones del tipo y=f(x) donde f(x) es una
expresión matemática en términos de la variable x. Se calcula un valor de y (salida)
cuando se proporciona un valor de x (entrada) en la expresión. Matlab define muchas
funciones como sin(x), sqrt(x), etc.
Podemos definir nuestras propias funciones guardarlas en un fichero y usarlas de un
modo semejante a las funciones predefinidas. En muchos casos las funciones son los
componentes básicos dentro de un programa de ordenador. Habitualmente, un programa
se subdivide en tareas y cada una de ellas es llevada a cabo por una función, a esta forma
de resolver los problemas se denomina programación estructurada.
La principal ventaja de las funciones es la posibilidad de reutilizar el código en otros
programas distintos al cual fueron definidas.
Como se puede observar en la figura 1 es una ventana que se despliega al crear una función
como ya se habló anteriormente es una forma muy útil de reutilizar código en otra parte de
la programación, ya que se define el nombre de la función sus variables de salida y las
acciones que tendrá que tomar dicha función.
Por otro parte se puede tener en cuenta los ciclos de repetición que posee Matlab como
for,when, y if.
Diseño de parámetros
Tabla 1 diseño de parámetros y caracterización de los mismos
Parámetro Característica
Tiempos establecidos Actúan como parámetros en cuanto a
𝑡, 𝑡𝑠 la velocidad y el tiempo
predeterminado de cada robot.
Condiciones Iniciales Tratan de las condiciones de posición
𝑥𝐶 , 𝑦𝐶 , ∅ en cuanto a los ejes X, Y de dónde
comenzara o partirá dicho robot.
Referencias Deseadas Las referencias deseadas es en base a
su trabajo y como este lo interactúa
𝑥𝑟𝑑 , 𝑦𝑟𝑑
El modelo del robot El modelo de trabajo en el cuan se va
𝑢𝑅𝑒𝑓, 𝑤𝑅𝑒𝑓 a basar nuestro robot
Posición deseada Como se trabajó en la posición de
inicio del robot se lo realiza para la
FACULTAD DE INFORMATICA Y ELECTRONCA
ESCUELA DE INGENIERIA ELECTRONICA CONTROL Y REDES INDUSTRIALES
ROBÓTICA II
PERIODO ACADÉMICO ORDINARIO DE EXCEPCIÓN OCTUBRE – MARZO 2020, RESOLUCIÓN 221. CP.2020
ℎ𝑥𝑑 , ℎ𝑦𝑑 posición deseada de dicho robot ya
que se podría aplicar el mismo
principio que serían las coordinas a las
cuales llegara el robot o nuestra meta
final.
Lazo de control Son las repeticiones por las cuales se
someterá el robot
Controlador El controlador son las acciones que
este deberá tomar dependiendo de su
objetivo en esta parte se puede
encontrar errores de posición de
velocidad, parámetros de control, ley
de control, métodos entre otros .
Funciones y graficación Como se mencionó las funciones son
muy utilizadas para reutilizar líneas de
código, en este caso lo utilizamos para
la graficación del robot en cuanto al
plano trabajado.
Programa Matlab
xr(1)=xc(1)+a*cos(phi(1));
yr(1)=yc(1)+a*sin(phi(1));
Controlador
Funciones y graficación
xre(k) = xrd(k) - xr(k);
yre(k) = yrd(k) - yr(k);
e = [xre(k);yre(k)];
FACULTAD DE INFORMATICA Y ELECTRONCA
ESCUELA DE INGENIERIA ELECTRONICA CONTROL Y REDES INDUSTRIALES
ROBÓTICA II
PERIODO ACADÉMICO ORDINARIO DE EXCEPCIÓN OCTUBRE – MARZO 2020, RESOLUCIÓN 221. CP.2020
J=[cos(phi(k)) -a*sin(phi(k));...
sin(phi(k)) a*cos(phi(k))];
0 1];
v = inv(J)*([xrdp(k);yrdp(k)]+K*tanh(e));
u(k)=v(1 w(k)=v(2);
xrp(k)=u(k)*cos(phi(k))-a*w(k)*sin(phi(k));
yrp(k)=u(k)*sin(phi(k))+a*w(k)*cos(phi(k));
xr(k+1)=xr(k)+ts*xrp(k);
yr(k+1)=yr(k)+ts*yrp(k);
phi(k+1)=phi(k)+ts*w(k);
xc(k+1)=xr(k+1)-a*cos(phi(k+1));
yc(k+1)=yr(k+1)-a*sin(phi(k+1));
end
step=20;
scene= figure
tam= get(0,'ScreenSize');
set(scene,'position',[tam(1) tam(2) tam(3)
tam(4)]);
axis equal;
axis([-7 7 -7 7 0 1]);
view([200 40]);
grid on;
MobileRobot;
M1=MobilePlot(xr(1),yr(1),phi(1),1);hold on
M2=plot(xr(1),yr(1),'b','LineWidth',2);
plot(xrd,yrd,'r','LineWidth',2);
camlight right
for i=1:step:length(t)
delete (M1)
delete (M2)
M1=MobilePlot(xc(i),yc(i),phi(i),1); hold on
M2=plot(xr(1:i),yr(1:i),'b','LineWidth',2);
pause(ts)
end
%% Graficas
figure('Name','Roberto_Palacios_Errores de
control')
subplot(211)
plot(t,xre,'g','linewidth',2), grid on
legend('Error en x')
xlabel('Tiempo'), ylabel('Error [m]')
subplot(212)
plot(t,yre,'g','linewidth',2), grid on
legend('Error en y')
FACULTAD DE INFORMATICA Y ELECTRONCA
ESCUELA DE INGENIERIA ELECTRONICA CONTROL Y REDES INDUSTRIALES
ROBÓTICA II
PERIODO ACADÉMICO ORDINARIO DE EXCEPCIÓN OCTUBRE – MARZO 2020, RESOLUCIÓN 221. CP.2020
xlabel('Tiempo'), ylabel('Error [m]')
figure('Name','Roberto_Palacios_Errores de
Velocidad')
subplot(211)
plot(t,u,'linewidth',2), grid on
legend('Velocidad lineal u')
xlabel('Tiempo'), ylabel('Velocidad [m/s]')
subplot(212)
plot(t,w,'r','linewidth',2), grid on
legend('Velocidad angular w')
xlabel('Tiempo'), ylabel('Velocidad [rad/s]')
Resultados y Pruebas
Se puede tener varias trayectorias en la cual el robot se debera regir pero no todas las
trayectorias se adaptaran al robot ya que algunas podrían estar fuera del rango de trabajo del
mismo la cual se pude ve reflejada en sus graficas de lso errores de control y velocidad como
podemos ver a continuación.
Ejemplo 1
Error de Velocidad
Ejemplo 2
Error de Velocidad
Se puede observar en las figura 2 y 3 que son diferentes tipos de trayectorias dentro del área
de trabajo del robot el cual puede cumplir a cabalidad pero un siendo más complicada que la
otra por ende tiene que tener errores mucho más considerables como es el caso de la
trayectoria de curvas que sus errores de velocidades varían dependiendo de en qué parte se
encuentre el robot a comparación con la trayectoria linear que tiene errores menores y se
estabilizan con mas facilidad.
FACULTAD DE INFORMATICA Y ELECTRONCA
ESCUELA DE INGENIERIA ELECTRONICA CONTROL Y REDES INDUSTRIALES
ROBÓTICA II
PERIODO ACADÉMICO ORDINARIO DE EXCEPCIÓN OCTUBRE – MARZO 2020, RESOLUCIÓN 221. CP.2020
Conclusiones
Los errores tanto de control como de velocidad varían dependiendo de la trayectoria y la
complejidad que este se la ponga.
Sus Errores tanto de control y de posición serán más eficientes y óptimos al definir
correctamente las variantes que rige el sistema.
La posición del robot tiene que estar de acuerdo al espacio de trabajo que este destinado
a llevar sin salirse de los parámetros deseados.
El controlador geométrico es la manera más eficiente de trabajar ya que cuenta con más
facilidad de interpretación y su velocidad es aún más rápida.
Recomendaciones
Al digitar las ecuaciones en el programa Matlab se debe tomar en cuenta que se cumplan
con los parámetros establecidos por el programador.
Diseñar el robot de acuerdo a las necesidades que este tenga que cumplir ya que al agregar
cosas innecesarias el robot se puede volver propenso a errores y ser aún más lento.
Tener en cuenta el espacio de trabajo en el cual el robot trabajara.
Referecias
[1] Landau, L.D. Lifshitz E.M., Mecánica, Vol.1, Curso de Física Teórica, Reverté,
1965.
[2] C i n e m a t i c a y d i n a m i c a “ C a l a m S e c g ” Pagina web:
https://la.matlab.com/videos/-simulation-with-
81877.html?elqsid=1597016744200&potential_use=Stu
dent
[3] Ejercicios en clase_Programacion_Matlab