Uniciclo

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

Simulacion y construcción de una plataforma uniciclo

Galo Ninacuri, Flavio Jaramillo


[email protected], [email protected],
Estudiantes, Espoch, EIECRI

, [email protected]
ESTUDIANTE, ESPOCH, EIECR
1. INTRODUCCIÒN
La Robótica móvil es un área de investigación activa donde investigadores de todo el mundo
encuentran nuevas tecnologías para mejorar la inteligencia de los robots móviles y las áreas de
aplicación. Entre las distintas estructuras de robots, el tipo uniciclo es el más utilizado en varias
tareas debido a su buena movilidad y configuración simple. Esta estructura del robot se ha
utilizado en varias aplicaciones como vigilancia, limpieza de pisos y el transporte de carga
industrial que utiliza los vehículos autónomos guiados [1].
Los Robots Móviles tipo uniciclo, están constituidos básicamente por una estructura mecánica
que consta de dos ruedas fijas convencionales sobre el mismo eje, controladas de manera
independiente y una rueda local que le confiere estabilidad, permitiéndole navegar a través de
un determinado ambiente de trabajo de forma autónoma. Dicha autonomía se refiere a la
capacidad de percibir, planificar y actuar sin la intervención del operador humano para alcanzar
determinados objetivos, tomando en cuenta que para ejecutar tareas que requieren altas
velocidades o transporte de cargas, es fundamental considerar la dinámica del robot, además de
su cinemática. Los robots móviles se utilizan en áreas que son demasiado peligrosas para los
seres humanos o las misiones que con llevan demasiado tiempo. Esta inteligencia es
suministrada por el sistema de control del vehículo [2].

2. OBJETIVO GENERAL

Simular y controlar una plataforma uniciclo mediante la utilización del software


Matlab.

3. OBJETIVOS ESPECÍFICOS:

 Realizar la conexión del software Matlab y la plataforma.


 Realizar un algoritmo en Matlab tal que logre controlar la plataforma física.
 Realizar pruebas de funcionamiento evaluando los resultados del prototipo.

4. MODELOS DEL ROBOT MÓVIL


El robot móvil tipo uniciclo presenta las ventajas de alta movilidad, alta tracción con ruedas
neumáticas y una simple configuración de las mismas, aunque el robot móvil sea el mismo, los
modelos matemáticos que existen para representarlo son muy variados. Cada modelo
matemático tiene características diversas a tal punto que ellos representan diversas propiedades
cinemáticas y dinámicas del mismo robot móvil. Dicho modelo tendrá una utilidad diferente de
acuerdo a las propiedades o comportamientos que el usuario necesite observar. Por cuanto se
procede a la modelación matemática tanto de la cinemática como de la dinámica de un robot
móvil tipo uniciclo, con la finalidad de conocer las velocidades lineal y angular a la que se
desplaza el robot, así como también su ubicación posición y orientación. [3]
A. Modelo Cinemático Los modelos cinemáticos de un robot móvil son usados dentro del
diseño de controladores cuando el robot desempeña tareas o misiones a baja velocidad y con
poca carga en relación a su estructura (ver Fig. 1).

Fig. 1 Modelo de la estructura cinemática del robot


El modelo cinemático del robot móvil, considerando la restricción no holonómica, puede ser
representado por:

donde los estados son: x y, , y las entradas: u,.

B. Modelo Dinámico Basado en los aportes del trabajo de Zhang et al., (1998) se obtiene un
modelo con diferentes entradas a las usadas por Zhang y con ligeras modificaciones que
permiten anular el vector de incertidumbres cuando las variables medidas son despreciables.
La Fig. 2, muestra las variables consideras en la modelación dinámica
Modelo Dinámico Basado en los aportes del trabajo de Zhang et al., (1998) se obtiene un
modelo con diferentes entradas a las usadas por Zhang y con ligeras modificaciones que
permiten anular el vector de incertidumbres cuando las variables medidas son despreciables. La
Fig. 2, muestra las variables consideras en la modelación dinámica [4].

Fig. 2 Parámetros del robot móvil tipo uniciclo


5. CONEXIÓN MATLAB Y ARDUINO MEDIANTE PUERTO SERIAL
Arduino y el puerto USB
Conectamos nuestra placa Arduino al ordenador y mediante la IDE de Arduino le cargamos el
programa adioes.pde ubicado en
ArduinoIO/pde/adioes
Este programa es imprescindible para que Arduino sea capaz de reconocer los comandos que le
envía Matlab.
Arduino utiliza el puerto /dev/ttyACM0/, el cual es inaccesible para Matlab. Para solucionar
esto, deberemos crear un enlace simbólico y hacerlo accesible para todos los usuarios. Abrimos
la Terminal:

sudo ln -s /dev/ttyACM0 /dev/ttyS101


sudo chmod 777 /dev/ttyS101
También funciona con /dev/ttyUSB0 en vez de /dev/ttyS101.
Matlab
Ahora deberemos asegurarnos de que el archivo pathdef.m, ubicado dentro de la carpeta
toolbox/local de Matlab, se pueda editar. Para ello escribimos el siguiente comando en la
terminal, cambiando la ruta de acuerdo a dónde tenemos instalado Matlab si fuera necesario:
sudo chmod 777 usr/local/matlab/R2013a/toolbox/local/pathdef.m
Finalmente copiamos los archivos arduino.m, contents.m y install_arduino.m desde ArduinoIO
a la carpeta bin de Matlab.
cd /home/transductor/directorio-donde-tengo-mi-ArduinoIO/ArduinoIO/
sudo cp *.m /usr/local/matlab/mi-version-matlab-R201X/bin/
Fig. 3 Comunicación Matlab y puerto serial

6. DESARROLLO
Código Matlab
A continuación, se escribe el código utilizado para el control de la plataforma una vez terminada
la comunicación:
clc
close all
clear all
delete(instrfind({'Port'},{'COM7'})) %limpias el puerto del arduino
a=arduino('COM7'); % abre el puerto
a.pinMode(6,'output') % defines salidas
a.pinMode(9,'output')
a.pinMode(10,'output')
a.pinMode(11,'output')
a.digitalWrite(6,0); % inicia en 0 todo
a.digitalWrite(9,0);
a.digitalWrite(10,0);
a.digitalWrite(11,0);

dist= 25; %cambiar la distancia aqui


v = 100;
movrob=2; % modificar el movimiento desde 1 a 4

tm=0.1
t=0:tm:dist

if (dist > 0)
d1= 0;
d2 = dist;
end

%velocidades lineales
if (movrob == 1)
d1= -dist;
d2= 0;
w1=0;
u1=-0.5;
end
if (movrob == 2)
w1=0;
u1=0.5;
end
if (movrob == 3)
d1= -10;
d2=10;
w1=-0.5;
u1=-0.5;
end
if (movrob == 4)
d1= -10;
d2=10;
w1=0.5;
u1=-0.5;
end

u=u1*ones(1,length(t));
w=w1*ones(1,length(t));
%p iniciales
xr(1)=0;
yr(1)=0;
phi(1)=0;

for k=1: length(t)


xrp(k)=u(k)*cos(phi(k));
yrp(k)=u(k)*sin(phi(k));

xr(k+1)=xr(k)+tm*xrp(k);
yr(k+1)=yr(k)+tm*yrp(k);
phi(k+1)=phi(k)+tm*w(k);
end
pasos=10; fig=figure;
set(fig, 'position',[10 60 980 600]);
axis square; cameratoolbar
axis([d1 d2 -6 6 0 1]); grid on
MobileRobot;
M1=MobilePlot(xr(1),yr(1),phi(1));
hold on; plot(xr, yr);

for i=1: pasos: length(t);


delete(M1)
M1=MobilePlot(xr(i),yr(i),phi(i)); hold on
fprintf('valor x: %d valorn y: %d valor phi: %d
\n',xr(i),yr(i),phi(i))
% casos posibles
% cuando va recto
if(phi(i)==0)
if(xr(i)<0 && yr(i)==0)
a.analogWrite(6,0);
a.analogWrite(9,v);
a.analogWrite(10,v);
a.analogWrite(11,0);
end

if(xr(i)>0 && yr(i)==0)


a.analogWrite(6,v);
a.analogWrite(9,0);
a.analogWrite(10,0);
a.analogWrite(11,v);end
end
% hay giros
if(phi(i)~=0)
if(w>0)
if(u>0)
%giro adelnate izq

end
if(u<0)
%giro atras der
a.analogWrite(6,v);
a.analogWrite(9,0);
a.analogWrite(10,0);
a.analogWrite(11,50);
end
else
if(u>0)
% giro adelante der

a.analogWrite(6,0);
a.analogWrite(9,50);
a.analogWrite(10,v);
a.analogWrite(11,0);
end
if(u<0)
%giro atras izq

a.analogWrite(6,50);
a.analogWrite(9,0);
a.analogWrite(10,0);
a.analogWrite(11,v);

end
end
end
pause(0.3)
end
a.analogWrite(6,0);
a.analogWrite(9,0);
a.analogWrite(10,0);
a.analogWrite(11,0);
delete(instrfind({'Port'},{'COM7'}))

7. CONCLUSIÓN

 Se logró la simulación y implementación de la plataforma uniciclo,


mostrando los 4 movimientos, adelante, atrás, derecha, izquierda.
 Se comprendió de mejor manera los movimientos de dicha plataforma.
8. REFERENCIAS BIBLIOGRÁFICAS

[1] D. Rico Diez, Diseño de robot Uniciclo , Valencia, 2018.

[2] S. Nieva y J. A. Breña Moral, BaneBots, Plataforma Movil, Madrid:


EDUCAMADRID, 2009.

[3] Y. FM, «https://www.xataka.com,» 03 Agosto 2018. [En línea]. Available:


https://www.xataka.com/basics/que-Arduino-Matlab-como-funciona-que-puedes-hacer-
uno. [Último acceso: 25 Abril 2019].

[4] Obdrzalek David, Gottscheber Achim, Matlab 2018: International Conference,


RapperswilJona, Switzerland, May 27-30, 2010. Springer. p 200, 2011.
[5] F. Nieves Cruz, «Matlab + Arduino : Serial Port Communication» 01 Octubre 2006.
[En línea]. Available: https://www.gestiopolis.com/la-investigacion-exploratoria/.
[Último acceso: 15 Junio 2019].

También podría gustarte