Documente Academic
Documente Profesional
Documente Cultură
Facultad de Ingeniería
Escuela de Ingeniería Mecatrónica
CURSO : ROBÓTICA
CICLO : IX
TRUJILLO - PERÚ
2017
ÍNDICE
1. Resumen.................................................................................................... 1
2. Capítulo I.................................................................................................... 1
2.1. Planteamiento del Problema ................................................................ 1
2.2. Hipótesis .............................................................................................. 2
2.3. Objetivos .............................................................................................. 2
2.4. Materiales ............................................................................................ 2
3. Capítulo II................................................................................................... 3
3.1. Procedimiento ...................................................................................... 3
3.1.1. Configuración del Robot Móvil Ackerman ...................................... 3
3.1.2. Modelo Cinemático del Robot Móvil Ackerman .............................. 4
3.1.3. Modelo Dinámico de la configuración Ackerman............................ 8
3.1.4. Modelo dinámico del motor DC .................................................... 12
3.1.5.Diseño Cad………………………………………………………………..13
4. Capítulo III................................................................................................ 14
4.1. Conclusiones ...................................................................................... 14
4.2. Bibliografía ......................................................................................... 14
4.3. Anexos ............................................................................................... 15
1. Resumen
hacer más eficiente el movimiento autónomo de los robots. Gran cantidad de estas
una cámara IP, con navegación autónoma dentro del terreno, detectando y/o evitando
Se resalta que todo el proyecto fue realizado en un entorno gráfico (GUIDE) del
programa Matlab.
2. Capítulo I
1
2.2. Hipótesis
2.3. Objetivos
A. General
mismsas.
B. Específico
usando Matlab.
2.4. Materiales:
2
Voltaje de Operación: 5V DC
Chip Ethernet: Wiznet W5100
Velocidad Ethernet: 10/100 Mbps
Shiled Ethernet Interface: SPI
Compatible con Arduino Uno, Mega,
Leonardo
2 Lector MicroSD Card
3 Motor Voltaje de operación : 6V DC
4 Access Point Voltaje de operación : 12V DC
5 Repetidor de señal Voltaje de operación : 12V DC
6 Rele Voltaje de operación : 6V DC
Transistor NPN
3 Pines
Temperatura mácxima: 25°C
Transistor BD135 Maxima corriente Ic:1.5A
Máxma carga de disipación Ptot:12.5W
Disipación:1.25W
7 Tipo de transistor:Bipolar
8 Cable alimentación n° 18
9 Cable Ethernet Para puerto RJ45
10 Platina 1/4x1"
11 Pernos 3/16x2"
12 Baterias una de 6V y otra de 12V
3. Capítulo II
3.1. Procedimiento
de las ruedas delanteras de tal forma que, a bajas velocidades, todas las
[19]. Esto se produce debido a que, a baja velocidad, cada rueda sigue una
3
rotación común Cr. Esta configuración se analiza utilizando el modelo de la
frontales (Φi, Φo) y las ruedas traseras se consideran como una rueda
velocidades del robot en un marco inercial fijo. La postura del robot se define
referencia local (XL, YL), la velocidad global del robot se define según la
ecuación (1).
4
𝑇𝑘 = { 𝑡 ∈ ℝ|𝑘𝑇𝑠 ≤ 𝑡 < (𝑘 + 1)𝑇𝑠 }, 𝑘 = 0, 1, 2, … (2)
muestra en (4).
𝑡 𝑡
𝜃(𝑡) = 𝜃(𝑡𝑘 ) + ∫ 𝜔(𝑡𝑘 )𝑑𝜏 = 𝜃(𝑡𝑘 ) + 𝜔(𝑡𝑘 ) ∫ 𝑑𝜏 = 𝜃(𝑡𝑘 ) + (𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 ) … (4)
𝑡𝑘 𝑡𝑘
Se sustituye este resultado en la ecuación (3) para (x, y). Cabe destacar
que las funciones evaluadas en tk son constantes (x (tk), y (tk), θ (tk)) ya que
𝑣𝑥 (𝑡𝑘 ) 𝑣𝑦 (𝑡𝑘 )
∴ 𝑥(𝑡) = 𝑥(𝑡𝑘 ) + [sin(𝜃(𝑡𝑘 ) + (𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 )) − sin(𝜃(𝑡𝑘 ))] + [cos(𝜃(𝑡𝑘 ) + (𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 )) − cos(𝜃(𝑡𝑘 ))]
𝜔(𝑡𝑘 ) 𝜔(𝑡𝑘 )
𝑡 𝑡
𝑦(𝑡) = 𝑦(𝑡𝑘 ) + 𝑣𝑥 (𝑡𝑘 ) ∫ sin(𝜃(𝑡𝑘 ) + (𝜏 − 𝑡𝑘 )𝜔(𝑡𝑘 )) 𝑑𝜏 + 𝑣𝑦 (𝑡𝑘 ) ∫ cos(𝜃(𝑡𝑘 ) + (𝜏 − 𝑡𝑘 )𝜔(𝑡𝑘 )) 𝑑𝜏
𝑡𝑘 𝑡𝑘
𝑣𝑥 (𝑡𝑘 ) 𝑡 𝑣𝑦 (𝑡𝑘 ) 𝑡
= 𝑦(𝑡𝑘 ) − cos(𝜃(𝑡𝑘 ) + (𝜏 − 𝑡𝑘 )𝜔(𝑡𝑘 ))|𝑡 + sin(𝜃(𝑡𝑘 ) + (𝜏 − 𝑡𝑘 )𝜔(𝑡𝑘 ))|𝑡 … (6)
𝜔(𝑡𝑘 ) 𝑘 𝜔(𝑡𝑘 ) 𝑘
𝑣𝑥 (𝑡𝑘 ) 𝑣𝑦 (𝑡𝑘 )
∴ 𝑦(𝑡) = 𝑦(𝑡𝑘 ) + [cos(𝜃(𝑡𝑘 )) − cos(𝜃(𝑡𝑘 ) + (𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 ))] + [sin(𝜃(𝑡𝑘 ) + (𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 )) − sin(𝜃(𝑡𝑘 ))]
𝜔(𝑡𝑘 ) 𝜔(𝑡𝑘 )
5
Ambas expresiones (5) y (6) se pueden simplificar aplicando identidades
𝑣𝑥 (𝑡𝑘 )
⇒ 𝑥(𝑡) = 𝑥(𝑡𝑘 ) + 2 sin(0.5(𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 )) cos (𝜃(𝑡𝑘 ) + 0.5((𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 )))
𝜔(𝑡𝑘 )
𝑣𝑦 (𝑡𝑘 )
−2 sin(0.5(𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 ) + 𝜃(𝑡𝑘 )) sin(0.5(𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 ))
𝜔(𝑡𝑘 )
𝑣𝑥 (𝑡𝑘 ) … (8)
⇒ y(𝑡) = 𝑦(𝑡𝑘 ) + 2 sin(0.5(𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 ) + 𝜃(𝑡𝑘 )) sin (0.5((𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 )))
𝜔(𝑡𝑘 )
𝑣𝑦 (𝑡𝑘 )
+2 cos(0.5(𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 ) + 𝜃(𝑡𝑘 )) sin(0.5(𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 ))
𝜔(𝑡𝑘 )
𝜃(𝑡) = 𝜃(𝑡𝑘 ) + (𝑡 − 𝑡𝑘 )𝜔(𝑡𝑘 )
𝑣𝑥 (𝑡𝑘 )
𝑥(𝑡𝑘+1 ) = 𝑥(𝑡𝑘 ) + 2 sin(0.5(𝑡𝑘+1 − 𝑡𝑘 )𝜔(𝑡𝑘 )) cos (𝜃(𝑡𝑘 ) + 0.5((𝑡𝑘+1 − 𝑡𝑘 )𝜔(𝑡𝑘 )))
𝜔(𝑡𝑘 )
𝑣𝑦 (𝑡𝑘 )
−2 sin(0.5(𝑡𝑘+1 − 𝑡𝑘 )𝜔(𝑡𝑘 ) + 𝜃(𝑡𝑘 )) sin(0.5(𝑡𝑘+1 − 𝑡𝑘 )𝜔(𝑡𝑘 ))
𝜔(𝑡𝑘 )
𝑣𝑥 (𝑡𝑘 ) … (9)
y(𝑡𝑘+1 ) = 𝑦(𝑡𝑘 ) + 2 sin(0.5(𝑡𝑘+1 − 𝑡𝑘 )𝜔(𝑡𝑘 ) + 𝜃(𝑡𝑘 )) sin (0.5((𝑡𝑘+1 − 𝑡𝑘 )𝜔(𝑡𝑘 )))
𝜔(𝑡𝑘 )
𝑣𝑦 (𝑡𝑘 )
+2 cos(0.5(𝑡𝑘+1 − 𝑡𝑘 )𝜔(𝑡𝑘 ) + 𝜃(𝑡𝑘 )) sin(0.5(𝑡𝑘+1 − 𝑡𝑘 )𝜔(𝑡𝑘 ))
𝜔(𝑡𝑘 )
𝜃(𝑡𝑘+1 ) = 𝜃(𝑡𝑘 ) + (𝑡𝑘+1 − 𝑡𝑘 )𝜔(𝑡𝑘 )
modelo cinemático del robot en (10). Esta ecuación puede considerarse como
robot (vx, vy, ω) con su movimiento global (x, y, θ). Se muestra en esta
6
ecuación la notación a utilizar en los algoritmos de fusión propuestos,
2 2
sin(0.5(𝑇𝑠 )𝜔𝑘 ) cos(𝜃𝑘 + 0.5(𝑇𝑠 𝜔𝑘 )) − sin(0.5(𝑇𝑠 )𝜔𝑘 + 𝜃𝑘 ) sin(0.5(𝑇𝑠 𝜔𝑘 )) 0
𝑥𝑘+1 𝑥𝑘 𝜔𝑘 𝜔𝑘 𝑣𝑥
[𝑦𝑘+1 ] = [𝑦𝑘 ] + 𝑇𝑠 2 2 [𝑣𝑦 ] … (10)
𝜃𝑘+1 𝜃𝑘 sin(0.5(𝑇𝑠 )𝜔𝑘 + 𝜃𝑘 ) sin(0.5(𝑇𝑠 𝜔𝑘 )) cos(0.5(𝑇𝑠 )𝜔𝑘 + 𝜃𝑘 ) sin(0.5(𝑇𝑠 𝜔𝑘 )) 0 𝜔
𝜔𝑘 𝜔𝑘 𝑘
[ 0 0 𝑇𝑠 ]
2 2
sin(0.5(𝑇𝑠 )𝜔𝑘−1 ) cos(𝜃𝑘−1 + 0.5(𝑇𝑠 𝜔𝑘−1 )) − sin(0.5(𝑇𝑠 )𝜔𝑘−1 + 𝜃𝑘−1 ) sin(0.5(𝑇𝑠 𝜔𝑘−1 )) 0
𝑥𝑘 𝑥𝑘−1 𝜔𝑘−1 𝜔𝑘−1 𝑣𝑥
[𝑦𝑘 ] = [𝑦𝑘−1 ] + 𝑇𝑠 2 2 [𝑣𝑦 ] … (10)
𝜃𝑘 𝜃𝑘−1 sin(0.5(𝑇𝑠 )𝜔𝑘−1 + 𝜃𝑘−1 ) sin(0.5(𝑇𝑠 𝜔𝑘−1 )) cos(0.5(𝑇𝑠 )𝜔𝑘−1 + 𝜃𝑘−1 ) sin(0.5(𝑇𝑠 𝜔𝑘−1 )) 0 𝜔
𝜔𝑘−1 𝜔𝑘−1 𝑘−1
[ 0 0 𝑇𝑠 ]
(10) considerando que sin (ωk · 0, 5Ts) ≈ 0, 5Tsωk. Además se considera que
7
eje de avance XL tal y como se muestra en la figura 19(c). Este ángulo β se
𝑣𝑥̇ 𝐸𝑗𝑒 𝑋𝐿
𝑎𝑡 = { 𝑣 ̇ 𝐸𝑗𝑒 𝑌
𝑦 𝐿
… (12)
agrupar en los ejes locales (XL, YL) los términos de las aceleraciones an y at
𝑎𝑥 = 𝑣𝑥̇ − 𝑣𝑦 𝜔
… (13)
𝑎𝑦 = 𝑣𝑦̇ + 𝑣𝑥 𝜔
robot (𝛼𝑥 , 𝛼𝑦 , 𝛼) en términos de las fuerzas que han sido aplicadas por los
8
sistema dinámicamente equivalente formado por tres partículas con masa 𝑀𝑟 ,
se deben aplicar:
𝐼𝐺 𝐼𝐺 𝐼𝐺
𝑀𝑓 = , 𝑀𝑟 = , 𝑀𝑐 = 𝑀𝐺 − ( ) … (18)
𝑅𝑓 (𝑅𝑓 + 𝑅𝑟 ) 𝑅𝑟 (𝑅𝑓 + 𝑅𝑟 ) 𝑅𝑓 𝑅𝑟
entre sí por lo que 𝑅𝑓 = 𝑅𝑟 = 𝑅𝑁 ; con esto se reduce (18) a (19) en donde las
𝐼𝐺 𝛾
𝑀𝑓 = 𝑀𝑟 = 2 = 𝛾𝑀𝐺 , 𝜆𝛼 =
2𝑅𝑁 1−𝛿
… (19)
𝐼𝐺 𝑀𝐺 𝑅𝑁
𝑀𝑐 = 𝑀𝐺 − ( 2) = 𝛿𝑀𝐺 , 𝜆𝛼 =
𝑅𝑁 𝐼𝐺
forma rectangular (con longitud c y ancho b), por lo que, para este caso, se
1
obtienen los parámetros al sustituir 𝐼𝐺 = (𝑏 2 + 𝑐 2 )𝑀𝐺 en (19) asignando
12
9
𝑅𝑁 = 0.5𝑙 = 0.5𝑐. Con esto, se muestran los parámetros en la ecuación (20).
Esta deducción de los parámetros se puede hacer de forma exacta para otras
1 2 1 𝑏 2
𝐼𝐺 = (𝑏 + 𝑐 2 )𝑀𝐺 , 𝛾 = (1 + ( ) )
12 6 𝑐
𝑏 2
1+( ) 6
𝛿 = (1 − 𝑐 ), 𝜆𝛼 = … (20)
3 𝑏 2
𝑐 (1 + ( ) )
𝑐
1
𝜆𝛼 = 0.5, 𝜆𝛼 𝛾 =
𝑐
(21) y (22).
respectivamente.
10
𝑀𝑓 𝑎𝑓,𝑦 + 𝑀𝑐 𝑎𝑐,𝑦 + 𝑀𝑟 𝑎𝑟,𝑦 − (𝐹𝑦𝑓 cos ∅ + 𝐹𝑥𝑓 sin ∅ + 𝐹𝑦𝑟 ) = 0 … (24)
ecuación (26).
𝛾
𝑀𝐺 𝑎𝑥 − 𝛿𝑀𝐺 𝑎𝑥 = 𝛾𝑀𝐺 (𝑎𝑓,𝑥 + 𝑎𝑟,𝑥 ) → 𝑎𝑥 = (𝑎 + 𝑎𝑟,𝑥 ) = 𝜆𝑎 (𝑎𝑓,𝑥 + 𝑎𝑟,𝑥 )
1 − 𝛿 𝑓,𝑥
𝛾
𝑀𝐺 𝑎𝑦 − 𝛿𝑀𝐺 𝑎𝑦 = 𝛾𝑀𝐺 (𝑎𝑓,𝑦 + 𝑎𝑟,𝑦 ) → 𝑎𝑥 = (𝑎 + 𝑎𝑟,𝑦 ) = 𝜆𝑎 (𝑎𝑓,𝑦 + 𝑎𝑟,𝑦 )
1 − 𝛿 𝑓,𝑦
𝛾𝑀𝐺 𝛾𝑀𝐺
𝛼= (𝑅𝑓 𝑎𝑓,𝑦 − 𝑅𝑟 𝑎𝑟,𝑦 ) = 𝑅 (𝑎 − 𝑎𝑟,𝑦 ) = 𝜆𝑎 𝛾(𝑎𝑓,𝑦 − 𝑎𝑟,𝑦 )
𝐼𝐺 𝐼𝐺 𝑁 𝑓,𝑦
11
notación. Se observa que el modelo (27) del robot Ackerman con
𝑣𝑥 𝑣𝑥 𝑣𝑦 𝜔 + 𝜆𝑎 𝑢1
𝑣 𝑣
[ 𝑦 ] = [ 𝑦] + 𝑇𝑠 [−𝑣𝑥 𝜔 + 𝜆𝑎 𝑢2 ] … (28)
𝜔 𝑘 𝜔 𝑘−1 𝜆𝛼 𝛾𝑢3 𝑘−1
Se obtiene el modelo dinámico global del robot tal y como se muestra en (29).
𝑥 𝑥 𝑣𝑥 cos 𝜃 − 𝑣𝑦 sin 𝜃
𝑦 𝑦 𝑣𝑥 sin 𝜃 + 𝑣𝑦 cos 𝜃
𝜃 𝜃 𝜔
𝑣𝑥 = 𝑣𝑥 + 𝑇𝑠 𝑣𝑦 𝜔 + 𝜆𝑎 𝑢1 … (29)
𝑣𝑦 𝑣𝑦 −𝑣𝑥 𝜔 + 𝜆𝑎 𝑢2
[ 𝜔 ]𝑘 [ 𝜔 ]𝑘−1
[ 𝜆 𝛾𝑢
𝛼 3 ]𝑘−1
𝑣 𝑣 𝜆 𝑢
[ 𝑥] = [ 𝑥] + 𝑇𝑠 [ 𝑎 1 ] … (30)
𝜔 𝑘 𝜔 𝑘−1 𝜆𝛼 𝛾𝑢3 𝑘−1
𝑥 𝑥 𝑣𝑥 cos 𝜃
𝑦 𝑦 𝑣𝑥 sin 𝜃
𝜃 = 𝜃 + 𝑇𝑠 𝜔 … (31)
𝑣𝑥 𝑣𝑥 𝜆𝑎 𝑢1
[ 𝜔 ]𝑘 [ 𝜔 ]𝑘−1 [ 𝜆𝛼 𝛾𝑢3 ]𝑘−1
𝑑𝑖
𝑒𝑎 = 𝑖𝑅 + 𝐿 + 𝑒𝑏 (32)
𝑑𝑡
𝑒𝑏 = 𝑘𝑏 𝜃̇ (33)
12
𝜏 − 𝐵𝜃̇ = 𝐽𝜃̈ (34)
𝜏 = 𝑘𝑖 𝑖 (35)
𝜏 = 𝐾𝑖 𝐼(𝑠) (39)
𝐼(𝑠) 1
= (40)
𝑉𝑎 (𝑠) − 𝑉𝑏 (𝑠) 𝐿𝑠 + 𝑅
13
4. Capítulo III
4.1. Conclusiones
poseer error casi nulo. Sin embargo, para obtener sensores de dicha calidad
SimMechanics de Matlab.
4.2. Bibliografía
[1] http://mardukferreteria.com/detalle.php?producto=322&marca=23
[2] http://www.directindustry.es/prod/steinel-normalien-ag/product-126303-
1559015.html
[3] http://articulo.mercadolibre.com.ve/MLV-459591604-motor-6v-para-carrito-o-
moto-electrica-montable-_JM
[5] http://www.grupogonher.com/herramientas/servicio-automotriz/grasas.html
[6] http://www.nextiafenix.com/producto/resistencia-1k-1w4/
[7] http://circuit-diagramz.com/bd-135-transistors/
[8] https://www.sotudo.com.br/produto/rele-12v-10a
[9] https://www.miki.pro/pcb-y-pines.html
[10] http://simple.ripley.com.pe/hp-laptop-stream-14-ax004la-14-intel-celeron-
32gb-4gb-funda-mouse-audifonos-2004190808055p
[11] https://es.mathworks.com/products/matlab.html
14
[12] http://eyesunelectronics.com/producto/eyebaby-camara-ip-wifi/
[13] https://www.bosch-professional.com/es/es/gws-20-230-jh-33804-ocs-p/
[15] http://www.sodimac.com.pe/sodimac-pe/product/1060627/Taladro-de-Banco-
500-W/1060627
[19] J.Y. Wong. Theory of Ground Vehicles. John Wiley & Sons, 2008.
Series. Springer US, 2012. ISBN: 9780387263960 (vid. págs. 27, 49, 57).
4.3. Anexos
FOTOGRAFÍAS
15
16
Fig. 19. Cinemática de un robot en configuración Ackerman [21]
17
Fig. 20: Dinámica de un robot en configuración Ackerman como un cuerpo rígido y como
18
19
20
21
Circuito de conexión
22
CÓDIGO EN MATLAB APLICADO AL RECONOCIMIENTO DE LA FRUTA
close all;
clc
fprintf('\n');
fprintf('\n');
23
fprintf('%s%\n',' UNIVERSIDAD NACIONAL DE TRUJILLO');
fprintf('\n');
fprintf('\n');
%video=videoinput('winvideo',1);
%set(video)
%video.ReturnedColorSpace='rgb';
%preview(video)
%im_RGB=getsanpshot(video);
im_RGB=imread('preprocesar.jpg');
ARTIFICAL EN MATLAB');
pause
DIM=size(im_RGB);
figure(1)
subplot(2,3,1)
%imshow(im_RGB)
NARANJAS';'IMAGEN ORIGINAL'})
24
umb=graythresh(im_RGB);
im_bin=im2bw(im_RGB,umb);
v=5;
SE=strel('square',v);
im_gray=rgb2gray(im_RGB);
im_edge=edge(im_gray,'sobel');
im_dilate=imdilate(im_edge,SE);
im_bin2=imfill(im_dilate,'holes');
25
%PROCESAMIENTO DE PROPIEDADES DE LA IMAGEN
[l, ne]=bwlabel(im_bin2); %crea matriz de detalles con relacion a una matriz binaria,
(blancos y negros)
propied=regionprops(1);
hold on
for i=1:size(propied,1)
x=propied(i).Centroid(1);
y=propied(i).Centroid(2);
plot(x,y,'*')
end
%Busca areas menores a < 1250 y eliminarlas son los defectos de la imagen
s=find([propied.Area]<1250);
for i=1:size(s,2)
end
26
for n=1:size(s,2)
d=round(propied(s(n)).BoundingBox);
im_bin2(d(2):d(2)+d(4),d(1):d(1)+d(3))=0;
end
[l2, ne2]=bwlabel(im_bin2);
propied2=regionprops(l2);
NUMERO_DE_NARANJAS=ne2;
subplot(2,3,2)
hold on
for i=1:size(propied2,1)
x=propied2(i).Centroid(1);
y=propied2(i).Centroid(2);
plot(x,y,'*')
end
B=bwboundaries(im_bin2);
for k=1:length(B)
27
boundary=B{k};
plot(boundary(:,2),boundary(:,1),'r','LineWidth',2)
end
subplot(2,3,3)
GRI=rgb2gray(im_RGB);
imshow(GRI)
AREA=[propied2.Area];
%izquierda de la caja
CAJAS=[propied2.BoundingBox];
subplot(2,3,4)
RECO=imcrop(im_RGB,[CAJA1]);
imshow(RECO)
title({'NARANJA'})
subplot(2,3,5)
imshow(im_bin2)
title({'IMAGEN BINARIA'})
28
%Procesamiento de histogramas
GRIS=rgb2gray(RECO);
RED=RECO(:,:,1);
GREEN=RECO(:,:,2);
BLUE=RECO(:,:,3);
subplot(2,3,6)
imhist(GRIS)
title({'HISTOGRAMA NARANJA'})
%CARACTERISTICAS NARANJA
fprintf('\n')
TAMANOAREA=12500;
if (AREA<= TAMANOAREA)
else
end
fprintf('\n')
sumR=sum(RED,1);
sumR1=sum(sumR,2);
sumG=sum(GREEN,1);
sumG1=sum(sumG,2);
sumB=sum(BLUE,1);
sumB1=sum(sumB,2);
imtool(RECO)
29
%DESICION DE RECHAZO O ACEPTADO
fprintf('\n')
fprintf('\n')
M1=0;
fprintf('\n')
fprintf('\n')
M1=0;
else
fprintf('\n')
fprintf('\n')
M1=1;
end
30
function varargout = procesamiento_imagen_ok(varargin)
procesamiento_imagen_ok.fig
% singleton*.
PROCESAMIENTO_IMAGEN_OK('CALLBACK',hObject,eventData,handles,...)
% existing singleton*. Starting from the left, property value pairs are
An
varargin.
31
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
gui_Singleton = 1;
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
else
gui_mainfcn(gui_State, varargin{:});
end
32
function procesamiento_imagen_ok_OpeningFcn(hObject, eventdata, handles,
varargin)
VARARGIN)
a=imread('fondo3.jpg');
axes(handles.axes9);
image(a)
axis off
%a=imread('fondo2.jpg');
%axes(handles.axes7);
%image(a)
%axis off
handles.output = hObject;
guidata(hObject, handles);
UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
33
function varargout = procesamiento_imagen_ok_OutputFcn(hObject, eventdata,
handles)
varargout{1} = handles.output;
if nombre==0
return
end
img_RGB=imread(fullfile(dire,nombre));
axes(handles.axes1)
imshow(img_RGB)
handles.img=img_RGB;
guidata(hObject,handles)
34
function procesar_Callback(hObject, eventdata, handles)
im_RGB=handles.img;
DIM=size(im_RGB);
umb=graythresh(im_RGB);
im_bin=im2bw(im_RGB,umb);
v=5;
SE=strel('square',v);
im_gray=rgb2gray(im_RGB);
im_edge=edge(im_gray,'sobel');
im_dilate=imdilate(im_edge,SE);
im_bin2=imfill(im_dilate,'holes');
35
%PROCESAMIENTO DE PROPIEDADES DE LA IMAGEN
[l, ne]=bwlabel(im_bin2); %crea matriz de detalles con relacion a una matriz binaria,
(blancos y negros)
propied=regionprops(1);
hold on
for i=1:size(propied,1)
x=propied(i).Centroid(1);
y=propied(i).Centroid(2);
plot(x,y,'*')
end
%Busca areas menores a < 1250 y eliminarlas son los defectos de la imagen
s=find([propied.Area]<1250);
for i=1:size(s,2)
end
for n=1:size(s,2)
d=round(propied(s(n)).BoundingBox);
im_bin2(d(2):d(2)+d(4),d(1):d(1)+d(3))=0;
end
[l2, ne2]=bwlabel(im_bin2);
36
propied2=regionprops(l2);
NUMERO_DE_NARANJAS=ne2;
axes(handles.axes2);
hold on
for i=1:size(propied2,1)
x=propied2(i).Centroid(1);
y=propied2(i).Centroid(2);
plot(x,y,'*')
end
B=bwboundaries(im_bin2);
for k=1:length(B)
boundary=B{k};
plot(boundary(:,2),boundary(:,1),'r','LineWidth',2)
end
axes(handles.axes3);
GRI=rgb2gray(im_RGB);
imshow(GRI)
AREA=[propied2.Area];
37
%Caja [x1,y1,ancho,largo] donde x1 y y1 son coordenadas superior
%izquierda de la caja
CAJAS=[propied2.BoundingBox];
axes(handles.axes4);
RECO=imcrop(im_RGB,[CAJA1]);
imshow(RECO)
title({'NARANJA'})
axes(handles.axes5);
imshow(im_bin2)
title({'IMAGEN BINARIA'})
%Procesamiento de histogramas
GRIS=rgb2gray(RECO);
RED=RECO(:,:,1);
GREEN=RECO(:,:,2);
BLUE=RECO(:,:,3);
axes(handles.axes6);
imhist(GRIS)
title({'HISTOGRAMA NARANJA'})
%CARACTERISTICAS NARANJA
TAMANOAREA=12500;
if (AREA<= TAMANOAREA)
38
msgbox('NARANJA DE TAMAÑO PEQUEÑO');
else
end
fprintf('\n')
sumR=sum(RED,1);
sumR1=sum(sumR,2);
sumG=sum(GREEN,1);
sumG1=sum(sumG,2);
sumB=sum(BLUE,1);
sumB1=sum(sumB,2);
imtool(RECO)
M1=0;
M1=0;
else
M1=1;
end
39
% hObject handle to regresar (see GCBO)
close(procesamiento_imagen_ok);
untitled
TELEOPERADO
gui_Singleton = 1;
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
else
gui_mainfcn(gui_State, varargin{:});
end
40
% --- Executes just before untitled is made visible.
a=imread('fondo2.jpg');
axes(handles.axes4);
image(a)
axis off
handles.output = hObject;
guidata(hObject, handles);
axis off
% uiwait(handles.figure1);
41
% --- Outputs from this function are returned to the command line.
varargout{1} = handles.output;
a=get(hObject,'Value');
if a == 1
urlread('http://192.168.0.110/?adelante');
else
urlread('http://192.168.0.110/?parada1');
42
end
a=get(hObject,'Value');
if a == 1
urlread('http://192.168.0.110/?atras');
else
urlread('http://192.168.0.110/?parada1');
end
43
a=get(hObject,'Value');
if a == 1
urlread('http://192.168.0.110/?izquierda');
else
urlread('http://192.168.0.110/?parada2');
end
a=get(hObject,'Value');
if a == 1
urlread('http://192.168.0.110/?derecha');
else
urlread('http://192.168.0.110/?parada2');
end
44
% --- Executes on button press in prender_camara.
global url
axes(handles.imagen_camara);
url='http://192.168.43.1:8080/shot.jpg';
ss = imread(url);
fh = image(ss);
while(1)
ss = imread(url);
set(fh,'CData',ss);
drawnow;
end
45
% --- Executes on button press in guardar_imagen.
rgb = getimage(handles.imagen_estatica);
% Guardar archivo
fName = fullfile(ruta,nomb);
imwrite(rgb,fName);
close(untitled);
procesamiento_imagen_ok
46
GRÁFICA DEL ENLACE IP DEL ROBOT MÓVIL
DIBUJOS CAD
47
SIMULACIÓN SOLIDOWORKS – SIMULINK
48
49