Está en la página 1de 43

UNIVERSIDAD CATÓLICA DE SANTA MARÍA

FACULTAD DE CIENCIAS E INGENIERÍAS FÍSICAS Y


FORMALES
ESCUELA PROFESIONAL DE INGENIERA MECÁNICA,
MECÁNICA ELÉCTRICA Y MECATRÓNICA

PROYECTO MECATRÓNICO
“DISEÑO DE UN ROBOT DE PATRULLAJE NOCTURNO
USANDO VISIÓN ARTIFICIAL Y NAVEGACIÓN GPS”

Docente: Dr. Marcelo Quispe Ccachuco


Realizado por:

 Lopa Lazo Juan Miguel


 Tejada Benavidez Paulo

Arequipa – Perú
2020
INDICE GENERAL

1. Introducción............................................................................................................4
2. Descripción del Proyecto........................................................................................5
2.1. Navegación y Evasión de obstáculos.......................................................................................5
2.2. Detección de Movimiento........................................................................................................6
2.3. Procesamiento y filtrado de imágenes......................................................................................6
2.4. Clasificación usando Red Neuronal Convolucional................................................................7
3. Antecedentes...........................................................................................................8
3.1. Navegación de Robots Autónomos..........................................................................................8
3.2. Procesamiento de imágenes para aumentar el rendimiento de una red neuronal.....................9
3.3. Detección y clasificación de objetos usando una red neuronal convolucional......................10
4. Marco Teórico.......................................................................................................10
4.1. Sistema de Navegación Autónoma por GPS..........................................................................10
4.1.1. Módulo GPS..............................................................................................................................14
4.1.2. Brújula Magnética.....................................................................................................................16
4.2. Sistema de Navegación Inercial.............................................................................................17
4.2.1. Módulo Inercial.........................................................................................................................18
4.3. Visión Artificial.....................................................................................................................20
4.3.1. Adquisición de Imágenes...........................................................................................................21
4.3.2. Procesamiento de Imagen.........................................................................................................21
4.3.3. Análisis de Imágenes y Comprensión........................................................................................22
4.4. Detección de objetos usando Raspberry Pi............................................................................22
4.4.1. Parámetros de la Red Neuronal................................................................................................23

5. Desarrollo del Proyecto........................................................................................23


5.1. Pruebas del Módulo GPS NEO-6M.......................................................................................23
5.1.1. Pines del módulo GPS................................................................................................................24
5.1.2. Implementación del módulo GPS:.............................................................................................25
5.2. Funcionamiento del Módulo Magnetómetro HMC5883L.....................................................29
5.2.1. Pines del Módulo Magnetómetro.............................................................................................29
5.2.2. Pines del módulo magnetómetro..............................................................................................30
5.2.3. Implementación del módulo Magnetómetro:...........................................................................31

6. Presupuesto...........................................................................................................36
7. Cronograma..........................................................................................................37
8. Normas y Estándares...........................................................................................38
Bibliografía................................................................................................................40

1. Introducción
El reconocimiento de objetos es una parte fundamental de cualquier sistema de vigilancia.
Es motivo de suma preocupación identificar intrusos y objetos extraños en el área donde se realiza
la vigilancia. El rendimiento del sistema de vigilancia que utiliza la cámara tradicional a la luz del
día es muy superior en comparación con la noche. El principal problema de la vigilancia durante la
noche es que los objetos capturados por las cámaras tradicionales tienen poco contraste con el
fondo debido a la ausencia de luz ambiental en el espectro visible.

Asimismo, la mayor parte de sistemas de vigilancia actuales en nuestro país requieren de una gran
cantidad de cámaras y otros dispositivos para cubrir un área relativamente grande, lo cual puede
conllevar una inversión muy elevada. Y aquí es donde nos hacemos la pregunta, ¿Qué tal si en
lugar de optar por muchos dispositivos de vigilancia optamos por un solo dispositivo pero
que pueda cubrir un área completa?

La investigación existente que utiliza distintos tipos de dispositivos de vigilancia se ha centrado


principalmente en los métodos de detección humana durante el día cuando hay luz exterior, pero la
detección humana durante las horas nocturnas cuando no hay luz exterior es difícil. Por lo tanto, se
han utilizado métodos que emplean iluminadores adicionales de infrarrojo cercano (NIR) y
cámaras NIR o cámaras térmicas. Sin embargo, en el caso de los iluminadores NIR, existen
limitaciones en cuanto al ángulo y la distancia de iluminación. También hay dificultades porque la
potencia del iluminador debe ajustarse de forma adaptativa dependiendo de si el objeto está cerca o
lejos. En el caso de las cámaras térmicas, su coste sigue siendo elevado, lo que dificulta su
instalación y uso en diversos lugares.

Por esta razón en este proyecto se plantea una solución a este problema, la cual involucra la
realización de un prototipo robótico controlado por GPS que pueda servir para el patrullaje
diurno y nocturno de una determinada área, mediante una cámara de infrarrojos montada en el
robot, este capturara imágenes en condiciones de mucha o poca luz y la imagen se mejora
utilizando diferentes algoritmos de mejora basados en el dominio espacial para obtener una imagen
que sea más fácil de entrenar para una red neuronal. En nuestro proyecto se busca usar una red
neuronal convolucional, la cual sirva para la detección y clasificación de objetos, asi como el
almacenamiento de las imágenes para su posterior revisión.
2. Descripción del Proyecto
2.1. Navegación y Evasión de obstáculos

Como se mencionó anteriormente la navegación de nuestro robot se realizará mediante una


señal de GPS, pero no únicamente usando esta señal, ya que si bien es cierto el GPS(Global
Positioning System) nos da información sobre la posición o velocidad de una forma topológica,
no nos muestra si hay algún obstáculo en algún camino o si alguna vía está bloqueada.

Para esto se busca fusionar la navegación GPS con una navegación basada en sensores, en la
cual se colecta información de los sensores del robot, ya sea de proximidad, orientación,
velocidad, etc. Y con ayuda de un microprocesador esta información sirve para que el robot
tome decisiones, ya que se busca que el robot sea completamente autónomo.

Figura Nro. 1 Módulo GPS NEO-6M

Para esto se crearán waypoints usando la información del GPS, con el objetivo de que el robot
siga una ruta ya establecida previamente permitiendo que el robot pueda navegar de un punto a
otro que preprogramado enrutado a Robot móvil autónomo evitando el obstáculo usando visión
artificial con la cámara.

Figura Nro. 2 Cámara de Arduino para el trabajo de Visión Artificial


2.2. Detección de Movimiento

Para esto se usará el principio de detección de movimiento de fotogramas, donde se compara


un fotograma a él fotograma anterior, y si hay diferencia en los píxeles es porque ha habido
movimiento.

A si mismo, se usará la biblioteca Open CV de Python para hacer la adquisición y el


procesamiento de las imágenes.

2.3. Procesamiento y filtrado de imágenes

Se aplicarán una serié de transformaciones espaciales para mejorar la calidad de la imagen,


luego se aplicará un filtro Canny, el cual es parte de la biblioteca Open CV.

Este filtro servirá para detección de bordes de imágenes, una combinación de la detección de
movimiento con el filtro canny se puede ver a continuación:

Figura Nro. 3 Procesado y filtrado de imágenes


2.4. Clasificación usando Red Neuronal Convolucional

La CNN es un tipo de Red Neuronal Artificial que procesa sus capas imitando al cortex visual
del cerebro humano para identificar distintas características en las entradas. Para ello, la CNN
contiene varias capas ocultas especializadas y con una jerarquía: esto significa que las primeras
capas detectan propiedades o formas básicas y se van especializando hasta llegar a capas más
profundas capaces de reconocer formas complejas como un rostro o una silueta. La red
neuronal por sí misma ha de reconocer una gran cantidad de imágenes para que la pueda captar
las características únicas de cada objeto y a su vez poder generalizarlo. Cada imagen se trata de
una matriz de pixeles cuyo valor va de 0 a 255 pero se normaliza para la red neuronal de 0 a 1,
como podrá observarse en la aplicación del proyecto. Como punto de partida la red toma como
entrada los píxeles de una imagen. En el caso de nuestro proyecto, las imágenes serán en escala
de grises y las entradas serán de 50x50 píxeles de alto y ancho, por lo que habrá en total 2500
neuronas. En caso de que dispusiéramos de una imagen a color serían necesarios tres canales
distintos: red, green y blue, utilizando entonces un total de 50x50x3 = 7500 neuronas de
entrada para la capa de entrada de la red.

Figura Nro. 4 Clasificación de Imágenes usando Redes Neuronales Convolucionales


3. Antecedentes
3.1. Navegación de Robots Autónomos.

a) “Navigation of Mobile Robot Using Global Positioning System (GPS) and Obstacle
Avoidance System with Commanded Loop Daisy Chaining Application Method”
(Hamid and Adom 2020)

En esta investigación se propone un robot móvil equipado con sistema de navegación GPS
y sistema de evitación de obstáculos con estructura móvil de bajo costo, módulo GPS y
sensor de sonda. La combinación de GPS y Sonar determinará la posición y la evitación de
obstáculos para el robot móvil. El robot móvil debe navegar de acuerdo con el punto de ruta
preestablecido en el módulo GPS y el sensor de sonda detecta el obstáculo durante la
navegación del robot móvil activando el sensor de sonda en secuencia mediante el método
de aplicación de conexión en cadena de bucle ordenado. El robot móvil puede navegar a
través del punto de ruta deseado y al mismo tiempo aplicar las reglas para evitar obstáculos

b) Sensor-Fusion Based Navigation for Mobile Robot in Outdoor Environment


(Multiples Autores 2019)

En esta investigación se propone un algoritmo para la navegación autónoma de un robot


móvil en un entorno exterior. Esta pista de navegación consta de un borde de color que
contiene obstáculos y algunas superficies no planificadas junto con algunos puntos
específicos para las alarmas de GPS (Sistema de posicionamiento global). El objetivo
principal es evitar bordes de colores y obstáculos con el fin de implementar una navegación
autónoma en exteriores.

c) Autonomous Navigation of Mobile Robot based on DGPS/INS Sensor Fusion by


EKF in Semi-outdoor Structured Environment (Múltiples Autores 2010)
En este artículo se ilustra un método eficiente para la localización en exteriores que
incorpora DGPS, codificador y sensor IMU basado en EKF. Para mostrar los rendimientos
de localización del algoritmo de fusión propuesto, los autores han implementado el
algoritmo propuesto y aplicado la plataforma de robot publicitario que está funcionando
bien durante 80 días en el entorno estructurado semi-exterior real.
3.2. Procesamiento de imágenes para aumentar el rendimiento de una red neuronal

a) “Effects of Varying Resolution on Performance of CNN based Image


Classification: An Experimental Study”

Este artículo propone una metodología (métodos de prueba de entrenamiento TOTV,


TVTV) y presenta el estudio experimental sobre los efectos de la resolución variable en la
clasificación de imágenes basada en CNN para el conjunto de datos de imágenes estándar
MNIST y CIFAR10. Este articulo prueba que la degradación de imágenes afecta en el
rendimiento de la clasificación de imágenes usando CNNs.

b) “Understanding How Image Quality Affects Deep Neural Networks”

En este artículo se comparan 4 modelos de redes neuronales profundas de última generación


para la clasificación de imágenes bajo distorsiones de calidad. También consideraron cinco
tipos de distorsiones de calidad: desenfoque, ruido, contraste, JPEG y compresión
JPEG2000. Al final demostraron que las redes existentes son susceptibles a estas
distorsiones de calidad, particularmente al desenfoque y al ruido.

c) “Impact of low resolution on image recognition with deep neural networks: an


experimental study”

En este artículo se evaluó experimentalmente el impacto de la baja resolución en la


precisión de clasificación de varias arquitecturas neuronales notables de los últimos años
(AlexNet,VGGnet). Además, concluyeron que existe la posibilidad de mejorar el
rendimiento de las redes neuronales en la tarea de reconocimiento de imágenes de baja
resolución aplicando super resolución antes de la clasificación.

d) “Enhancing the Performance of Convolutional Neural Networks on Quality


Degraded Datasets”

En este artículo se realizó investigación exhaustiva sobre el efecto del ruido en la


clasificación de imágenes y sugerimos una arquitectura generalizada de un modelo de doble
canal para tratar imágenes de entrada con calidad degradada. Compararon el modelo de
doble canal propuesto con un modelo único simple y demostraron que mejora el
rendimiento general de las redes neuronales en varios tipos de conjuntos de datos de entrada
con calidad degradada.
3.3. Detección y clasificación de objetos usando una red neuronal convolucional

a) “Object Detection Using Convolutional Neural Networks”

En este artículo, las redes neuronales convolucionales (CNN) se utilizan para detectar
objetos en el entorno. Se comparan dos modelos de última generación para la detección de
objetos, el detector de caja múltiple (SSD) de disparo único con MobileNetV1 y una red
neuronal convolucional basada en regiones más rápidas (Faster-RCNN) con InceptionV2.
El resultado muestra que un modelo es ideal para la aplicación en tiempo real debido a la
velocidad y el otro puede usarse para una detección de objetos más precisa.

b) “Image Classification Using Convolutional Neural Networks With Multi-stage


Feature (Multiples Autores 2008)”

En esta investigación los autores proponen un método para combinar características de


múltiples capas en modelos de CNN dados. Además, los modelos CNN ya aprendidos con
imágenes de entrenamiento se reutilizan para extraer características de múltiples capas. El
método de fusión propuesto se evalúa de acuerdo con los conjuntos de datos de referencia
de clasificación de imágenes, CIFAR-10, NORB y SVHN. En todos los casos, mostraron
que el método propuesto mejora los rendimientos reportados de los modelos existentes en
un 0.38%, 3.22% y 0.13%, respectivamente.

4. Marco Teórico
4.1. Sistema de Navegación Autónoma por GPS

Un sistema de Navegación Autónoma trata en todo momento de determinar la posición actual


del vehículo, o sea conocer de forma continua el vector de posición respecto al origen de un
sistema coordenado. Para averiguar este vector deposición, se puede partir del vector de
velocidad y realizar una integración respecto a tiempo. Otra opción sería partir del vector de
aceleración y tras dos integrantes respecto al tiempo, hallar el vector de posición. Ambos
cálculos requieren el conocimiento de las condiciones iniciales. Respecto a la posición, la
condición inicial es encontrarse en el origen del sistema o en un punto de coordenadas
conocidas. Por otro lado respecto a la velocidad, la condición inicial es velocidad cero.

Uno de los problemas fundamentales de la cartografía ha sido siempre el conseguir de forma


precisa determinar la posición en el espacio de los fenómenos a cartografiar. Tradicionalmente
se han utilizado técnicas de topografía basadas en la triangulación. Hoy en día se cuenta con el
sistema GPS que permite determinar las coordenadas de cualquier punto de la superficie
terrestre con mayor precisión que los antiguos métodos topográficos.

Figura Nro. 5 Vehículo Autónomo dirigido por GPS.

La tecnología GPS (Global Positioning System) fue diseñada originalmente con propósitos
militares pero rápidamente se vio su aplicabilidad en el mundo civil, fundamentalmente en
navegación y topografía.

El sistema consta de tres componentes:

 Componente espacial: Formado por 24 satélites situados a unos 20200 km de la Tierra y


que pasan por el mismo lugar cada 12 horas de manera que se puede contar en cualquier
lugar y en cualquier momento con, al menos, 4 de estos satélites con un ángulo de
elevación de por lo menos 15°.
Cada satélite lleva a bordo varios relojes atómicos de gran precisión y emiten
constantemente una señal característica de cada satélite que contiene entre otras cosas la
posición del mismo.

 Componente de control: Formado por una serie de estaciones de observación cercanas al


Ecuador encargados de controlar la posición orbital de los satélites y calibrar y sincronizar
los relojes.

 Usuarios con un receptor GPS: Entre las actividades la navegación marítima o terrestre,
excursionismo, topografía, control de maquinaria, etc.
Dependiendo de las necesidades existen tres modos de utilización de un dispositivo GPS:

 Navegación autónoma con un receptor simple, la precisión es de 20 metros para


usuarios militares y 100 metros para usuarios civiles. Utilizado en navegación marina.
 Posicionamiento diferencial corregido (DGPS) con precisiones de 0.5 a 5 metros
utilizado en SIG, navegación costera, posicionamiento de vehículos, etc.

 Posicionamiento diferencial de fase con precisiones entre 0.5 y 20 mm, utilizado en


control de maquinaria y topografía.

Figura Nro. 6 Descripción del Sistema GPS.

El cálculo del posicionamiento se basa en la medición de la distancia desde la posición de cada


satélite a Tierra. Puesto que la señal emitida por el satélite incluye la hora en que fue emitida y
el receptor conoce la hora de llegada, la distancia se puede calcular como:

d=c ∆ t

donde c es la velocidad de la luz.

Se genera de este modo una pseudoesfera con centro en el satélite y radio igual a la distancia
medida. Si se dispone de tres satélites se tienen 3 pseudoesferas cuya intersección genera un
único punto que es la posición del receptor. Sin embargo para obtener una medida hacen falta
al menos cuatro satélites debido a las diferencias temporales en la recepción de las señales de
los satélites.
Las distancias medidas por un receptor GPS están sujetas a las siguientes fuentes de error:

 Retrasos atmosféricos sobre la señal.

 Errores en los relojes.

 Efecto multitrayectoria, la señal puede llegar al receptor rebotada desde alguna superficie
reflectora (láminas de agua, edificios) obteniéndose una medida de distancia errónea.

 Pérdida de precisión debido a que los satélites están muy juntos. Un receptor GPS puede
proporcionar una medida de esta pérdida tanto en la horizontal (HDOP) como en la vertical
(VDOP).

 Disponibilidad selectiva, distorsiones introducidas a propósito por el ejército americano


para disminuir la precisión a los usuarios civiles o a países extranjeros. Los satélites del
sistema GPS disponen además de una señal, que permite posicionamiento de alta precisión,
pero que es sólo accesible a aplicaciones militares.

Figura Nro. 7 Posicionamiento de los Satélites respecto a la Tierra.

La técnica DGPS permite solventar muchos de estos errores alcanzándose precisiones de 2 a 3


metros. Se basa en la conexión del receptor a un receptor de referencia fijo. Este último, puesto
que conoce su posición, puede calcular el error de la señal del GPS y transmitirlo al receptor
móvil para que lo corrija.

Esta corrección puede realizarse en tiempo real o en postproceso mediante programas que
descargan por internet los ficheros con los errores y los tiempos en que se han medido estos
errores para corregir las posiciones medidas por el receptor móvil y almacenado en otro
fichero.
La técnica de Posicionamiento diferencial de fase requiere como mínimo dos receptores que
deben utilizarse de forma simultanea para, tomando varias medidas, conseguir una reducción
de errores mediante procedimientos estadísticos.

4.1.1. Módulo GPS

Los dispositivos NEO-6 son una familia de receptores fabricados por U-Blox, que pueden ser
conectados con facilidad a un autómata o procesador como Arduino o Raspberry Pi. Los GPS
NEO-6 disponen de interface de comunicación UART, SPI, DDC (I2C) y USB. Soportan los
protocolos NMEA, UBX binary y RTCM.

La familia de receptores GPS NEO-6 están diseñados para tener un pequeño tamaño, pequeño
coste, y pequeño consumo. La intensidad de corriente necesaria es de unos 37mA en modo de
medición continuo. La tensión de alimentación es de 2.7 a 3.6V para los modelos NEO-6Q/6M,
y 1.75-2.0V para los modelos NEO-6G.

El GPS NEO-6 tiene un tiempo de encendido cold y warm de unos 30s, y en hot 1 segundo. La
frecuencia máxima de medición es de 5Hz. La precisión que en posición es de 2.5m, en
velocidad 0,1m/s y en orientación 0.5º, valores más que aceptables para un sistema de
posicionamiento GPS. Los GPS son muy empleados en proyectos de electrónica, Arduino y
Raspberry Pi, especialmente en el caso de robots y vehículos como cuadricópteros.

Figura Nro. 8 Módulo GPS NEO-6 para Raspberry Pi.

La conexión es sencilla, ya que vamos la UART disponible en el receptor de GPS. En primer


lugar alimentamos el módulo conectando Vcc y Gnd del módulo, a 5V y Gnd del
Microcontrolador. Para que la conexión no interfiera con el puerto serie normal vamos a usar la
librería SoftSerial para establecer una comunicación empleando cualquiera de los pines.

Usaremos el Pin 3 para RX y el Pin 4 para TX, debemos recordar que en la comunicación serial
los pines se conectan con sus opuestos, es decir, RX - TX y viceversa, por lo que el esquema es
el siguiente.

Figura Nro. 9 Terminales del Módulo GPS NEO-6.

Mientras que la conexión con el módulo, vista desde el Microcontrolador, quedaría de la


siguiente forma.

Figura Nro. 10 Conexión del Módulo GPS NEO-6 al Microcontrolador Raspberry Pi.

4.1.2. Brújula Magnética


Una brújula digital es un sensor que mide el valor del campo magnético en tres ejes. Con esta
medición, es posible estimar la orientación del dispositivo respecto al campo magnético de la
tierra.

El chip Honeywell HMC5883 es un chip de superficie que incorpora tres sensores de


magnetoresistencia, cancelación de desfases, y conversores de 12 bits, lo que le proporciona
una precisión de ±2ºC. La comunicación con el chip Honeywell HMC5833 se realiza a través
del bus I2C, por lo que es sencillo obtener los datos medidos. La tensión de alimentación es de
bajo voltaje de 1.8 a 3.3V.

Sin embargo, la medición de estos sensores se ve afectada por la presencia de campos


magnéticos y metales. Por tanto, para aplicaciones de navegación es necesario combinar estos
sensores con acelerómetros y giroscopios, o IMU’s.

Figura Nro. 11 Brújula Digital HCM5883

La conexión es sencilla, simplemente alimentamos el módulo desde Raspberry Pi o Arduino


mediante GND y 5V y conectamos el pin SDA y SCL de Arduino con los pines
correspondientes del sensor.

Figura Nro. 12 Terminales de la Brújula Digital HCM5883.

Mientras que la conexión vista desde el lado de Arduino quedaría así.


Figura Nro. 13 Conexión de la Bújula Digital al Microcontrolador Arduino.

4.2. Sistema de Navegación Inercial

Un Sistema de Navegación Inercial (Inertial Navigation System) es un conjunto de sensores


empleado para obtener la aceleración en cada uno de los tres ejes de movimiento X, Y y Z. De
esta forma, a partir de unos sensores de movimiento (acelerómetros), unos sensores de rotación
(giróscopos) y un pequeño computador (necesario para obtener la posición y la velocidad
integrando la aceleración), es capaz de estimar la posición, orientación y velocidad de un objeto
sin necesidad de una referencia externa.

Los sistemas de navegación inerciales se suelen utilizar en navegación marítima, aeronaves,


misiles y naves espaciales, ya que un INS es capaz de detectar un cambio en la posición
geográfica (un pequeño desplazamiento al norte o al este), un cambio en su velocidad (módulo
y dirección) y un cambio en su orientación (rotación alrededor de un eje). Como este sistema
no necesita una referencia externa (sólo inicialmente), es inmune a las interferencias que podría
sufrir otro sistema, como el GPS.

Existen diferentes tecnologías para construir los acelerómetros: mecánicos, eléctricos, etc. Una
posible estructura consiste en utilizar un dinamómetro (instrumento que se utiliza para medir
fuerzas). Como sabemos, la segunda ley de Newton establece que

F=m∗a

de esta forma si conocemos la masa del objeto, podemos medir con el dinamómetro la fuerza F
que actúa sobre la masa, simplemente despejando de la ecuación obtenemos la aceleración:
F
a=
m

Los giróscopos son dispositivos empleados para medir la orientación. Presentan la ventaja
frente a las brújulas magnéticas que son inmunes en relación con las anomalías
electromagnéticas y ferromagnéticas que afectan a las primeras. Por otra parte, pueden
aplicarse en situaciones en las que no existe campo geomagnético apreciable o cuando existen
campos locales que provocan importantes perturbaciones.

Los giróscopos, o giroscopios, mecánicos están constituidos por un volante o masa que rota
suficientemente rápido alrededor de un eje, con la propiedad de que el eje de rotación de la
masa mantenga siempre su orientación. Si el eje de rotación del giróscopo es visto por un
observador sobre la Tierra, observaría un movimiento aparente de rotación que es debido a la
propia rotación de la Tierra sobre su eje. Sin embargo, si el eje del giróscopo está en la
dirección de giro de la Tierra (en dirección a la estrella polar), no se produce el movimiento
aparente. También existen giróscopos electrónicos, que emplean el efecto de aceleración
Coriolis.

Figura Nro. 14 Principio del Sistema de Navegación Inercial.

4.2.1. Módulo Inercial

Una unidad de medición inercial o IMU (del inglés inertial measurement unit), es un


dispositivo electrónico que mide e informa acerca de la velocidad, orientación y fuerzas
gravitacionales de un aparato, usando una combinación de acelerómetros y giróscopos. Las
unidades de medición inercial son normalmente usadas para maniobrar aviones,
incluyendo vehículos aéreos no tripulados, entre muchos otros usos, y además naves espaciales,
incluyendo transbordadores, satélites y aterrizadores.

La IMU es el componente principal de los sistemas de navegación inercial usados


en aviones, naves espaciales, buques y misiles guiados entre otros. En este uso, los datos
recolectados por los sensores de una IMU permiten a un computador seguir la posición del
aparato, usando un método conocido como navegación por estima.

a. Módulo Inercial MPU-6050


El MPU-6050 es una unidad de medición inercial (IMU) de seis grados de libertad (6DOF)
fabricado por Invensense, que combina un acelerómetro de 3 ejes y un giroscopio de 3 ejes. La
comunicación puede realizarse tanto por SPI como por bus I2C, por lo que es sencillo obtener
los datos medidos. La tensión de alimentación es de bajo voltaje entre 2.4 a 3.6V.

Dispone de conversores analógicos digitales (ADC) de 16bits. El rango del acelerómetro puede
ser ajustado a ±2g, ±4g, ±8g, y ±16g, el del giroscopio a ±250, ±500, ±1000, and ±2000°/sec.

Es un sensor consume 3.5mA, con todos los sensores y el DMP activados. Dispone de un
sensor de temperatura embebido, un reloj de alta precisión e interrupciones programables.
También puede conectarse a otros dispositivos I2C como master. El MPU-6050 incorpora un
procesador interno (DMP Digital Motion Processor) que ejecuta complejos algortimos de
MotionFusion para combinar las mediciones de los sensores internos, evitando tener que
realizar los filtros de forma exterior.

El MPU-6050 es uno de los IMUs más empleados por su gran calidad y precio. Será uno de los
componentes que con mayor frecuencia incorporaremos a nuestros proyectos de electrónica y
robótica.

Figura Nro. 15 Módulo Inercial MPU-6050.


La conexión es sencilla, simplemente alimentamos el módulo desde el Raspberry Pi mediante
GND y 5V y conectamos el pin SDA y SCL de Arduino con los pines correspondientes del
sensor.

Figura Nro. 16 Terminales de Conexión del Módulo Inercial MPU-6050.

Mientras que la conexión vista desde el lado de Arduino quedaría así.

Figura Nro. 17 Conexión del Módulo Inercial MPU-6050 al Microcontrolador Raspberry Pi.

4.3. Visión Artificial

La Visión Artificial es una ciencia que incluye métodos de Adquisición, Procesamiento y


Análisis de Imágenes del mundo real con el objetivo de tratar y producir mediante una máquina
información.
Una manera simple de comprender este sistema es basarnos en nuestros propios sentidos. Los
humanos usamos nuestros ojos para comprender el mundo que nos rodea, y la visión artificial
trata de producir ese mismo efecto en máquinas. Éstas podrán percibir y entender una imagen
o secuencia de imágenes y actuar según convenga en una determinada situación. La
comprensión en los dispositivos se consigue gracias a una descomposición de la imagen en
pequeños fragmentos (píxeles) y en su posterior estudio.

Figura Nro. 18 Intensidad del Pixel según la Luz Percibida.

4.3.1. Adquisición de Imágenes

La adquisición de imágenes es el proceso de traducir el mundo analógico que nos rodea en


datos binarios compuestos de ceros y unos, interpretados como imágenes digitales.

La mayoría de las veces, los datos brutos adquiridos por estos dispositivos deben procesarse
posteriormente para ser explotados de manera más eficiente en los siguientes pasos.

4.3.2. Procesamiento de Imagen

El segundo componente de Visión Artificial es el procesamiento de imágenes de bajo nivel. A


los datos binarios adquiridos en el primer paso se le aplican una serie de algoritmos para inferir
información de bajo nivel sobre partes de la imagen. Este tipo de información se caracteriza por
bordes de imagen, características de punto o segmentos, por ejemplo. Son todos los elementos
geométricos básicos que construyen objetos en imágenes.

Figura Nro. 19 Adquisición y Procesamiento de una Imagen.

4.3.3. Análisis de Imágenes y Comprensión

El último paso es el análisis real de los datos, que permitirá la toma de decisiones.
Se aplican algoritmos de alto nivel, utilizando tanto los datos de imagen como la información
de bajo nivel calculada en los pasos anteriores.

4.4. Detección de objetos usando Raspberry Pi

Vamos a hacer un detector de objetos en imágenes utilizando YOLO, un tipo de técnica muy
novedosa (2016), acrónimo de “You Only Look Once” y que es la más rápida del momento,
permitiendo su uso en video en tiempo real.

Esta técnica utiliza un tipo de red Neuronal Convolucional llamada Darknet para


la clasificacion de imágenes y le añade la parte de la detección, es decir un “cuadradito” con las
posiciones x e y, alto y ancho del objeto encontrado.

La dificultad de esta tarea es enorme: poder localizar las áreas de las imágenes, que para
una red neuronal es tan sólo una matriz de pixeles de colores, posicionar múltiples objetos y
clasificarlos. YOLO lo hace todo “de una sola pasada” a su red convolucional. En resultados
sobre el famoso COCO Dataset clasifica y detecta 80 clases de objetos distintos y etiquetar y
posicionar hasta 1000 objetos (en 1 imagen!)

4.4.1. Parámetros de la Red Neuronal

 Tamaño de imagen que procesa la red: este será fijo, pues encaja con el resto de la red
y es de 416 pixeles. Todas las imágenes que le pasemos serán redimensionadas antes de
entrar en la red.
 Cantidad de cajas por imagen: Estás serán la cantidad de objetos máximos que
queremos detectar.
 etiquetas: estas serán las de los objetos que queramos detectar. En este ejemplo sólo
detectaremos 1 tipo de objeto, pero podrían ser múltiples.
 epochs: la cantidad de iteraciones sobre TODO el dataset que realizará la red neuronal
para entrenar. (Recuerda, que a muchas épocas tardará más tiempo y también el riesgo
de overfitting)
 train_times: este valor se refiera a la cantidad de veces de entrenar una MISMA
imagen. Esto sirve sobre todo en datasets pequeños, además que haremos algo de data
augmentation sobre las imágenes cada vez.
 saved_weights_name: una vez entrenada la red, guardaremos sus pesos en este archivo
y lo usaremos para hacer las predicciones.

5. Desarrollo del Proyecto


5.1. Pruebas del Módulo GPS NEO-6M

El módulo GPS en su modelo GY-GPS6MV2 viene con un módulo de serie U-Blox NEO 6M
equipado en el PCB, una EEPROM con configuración de fábrica, una pila de botón para
mantener los datos de configuración en la memoria EEPROM, un indicador LED y una antena
cerámica.

También posee los pines o conectores Vcc, Rx, Tx y Gnd por el que se puede conectar a algún
microcontrolador mediante una interfaz serial. Para que nuestro módulo GPS funcione a la
perfección se recomienda hacer las pruebas en un ambiente abierto o cercano a la ventana para
una correcta recepción de la señal.

5.1.1. Pines del módulo GPS

El módulo GPS tiene las siguientes conexiones:

Figura Nro. 20 Pines de conexión del Módulo GPS NEO-6M.

Es importante mencionar que el pin de recepción del módulo GPS debe de ir conectado al pin
digital 3 del Arduino y el de transmisión al pin digital 4 del Arduino. Se realizaron las
conexiones que se muestran en la siguiente imagen:
Figura Nro. 21 Conexión del Módulo GPS NEO-6M al Microcontrolador Arduino.

 Se conecto el pin 5V del Arduino UNO al pin Vcc del módulo GPS.
 Se conecto el pin GND del Arduino UNO al pin GND del módulo GPS.
 Se conecto el pin digital 4 del Arduino UNO al pin Tx del módulo GPS.
 Se conecto el pin digital 3 del Arduino UNO al pin Rx del módulo GPS.

5.1.2. Implementación del módulo GPS:

Figura Nro. 22 Montaje del Módulo GPS NEO-6M en el Chasis.


Cabe indicar que este módulo GPS también se puede alimentar con una tensión de 5V ya que
posee un regulador integrado dentro de sí. Pero si la tensión supera este valor, podría haber
problemas con el módulo GPS.

A continuación, cargaremos el siguiente código a nuestro Arduino, en el cual se puede apreciar


que se emplea la librería “SoftwareSerial”, esta librería nos permite establecer puertos seriales
aparte de los que tiene el Arduino por defecto, que son el pin 0 y el 1, pero estos se usan para la
comunicación entre el Arduino y la PC, así que crearemos dos más para que no haya ningún
conflicto.

El primer código redactado para la lectura del módulo GPS es el siguiente:

También se puede ver que se configuro la velocidad de lectura y escritura de la comunicación


del pc con el Arduino, esto para tener una buena velocidad de lectura.

Se obtuvo el siguiente resultado:


Esta es la información como la envía el módulo GPS, podemos ver que son valores difíciles de
interpretar, esto se debe a que el módulo sigue el protocolo NMEA (siglas de National Marine
Electronics Asociation), las cuales son sentencias estándares para la recepción de datos GPS.

Una de ellas y la más usada son las sentencias $GPRMC, las cuales tienen la siguiente
estructura:
$GPRMC,044235.000,A,4322.0289,N,00824.5210,W,0.39,65.46,020615,,,A*44

Donde si analizamos la trama de este ejemplo y basándose en el protocolo NMEA, podríamos


determinar las siguientes variables:

 044235.000 representa la hora GMT (04:42:35)


 “A” es la indicación de que el dato de posición está fijado y es correcto. “V” sería no
válido
 4322.0289 representa la longitud (43º 22.0289´)
 N representa el Norte
 00824.5210 representa la latitud (8º 24.5210´)
 W representa el Oeste
 0.39 representa la velocidad en nudos
 65.46 representa la orientación en grados
 020615 representa la fecha (2 de Junio del 2015)

Como vimos, de la trama de datos que nos envía nuestro módulo GPS podemos obtener varias
variables, siendo las importantes para proyectos de posicionamiento la latitud y la longitud.

Para desencriptar esta información por así decirlo, sería muy difícil hacerlo directamente, ya
que implicaría muchas líneas de código. Una forma más directa es el uso de librerías, en este
caso usaremos “Tiny GPS”.

Luego, podemos usar un ejemplo dado por esta librería para la lectura de la información del
GPS:
Y se obtuvo lo siguiente:

Como se puede ver, con este código se puede obtener latitud, longitud, altitud, e incluso la hora
y el día.

5.2. Funcionamiento del Módulo Magnetómetro HMC5883L

EL HMC5883L es un magnetómetro de 3 ejes, con este podemos leer las componentes del
campo magnético presente, de esta forma conociendo la dirección del campo magnético
terrestre podemos calcular la orientación con respecto al norte magnético de la tierra, esto
siempre y cuando nuestro sensor no esté expuesto a algún campo magnético externo u algún
objeto metálico que altere el campo magnético terrestre.

5.2.1. Pines del Módulo Magnetómetro

El módulo trabaja con 3.3V, pero tiene un regulador interno por lo que se puede alimentar con
5V o con 3.3V en sus pines respectivos. Su dirección I2C es 0x1E, dirección que no podemos
cambiar, por esta razón no se puede conectar otro HMC5883 en el bus I2C, pero si podemos
conectar otros dispositivos que tengan dirección distinta.
Tiene dos modos de Funcionamiento, Modo Continuous-Measurement (continuo), en donde el
magnetómetro está constantemente realizado mediciones y actualizando los registros x, y, z;
correspondientes a las lecturas. Y el modo Single-Measurement , aquí el magnetómetro solo
realiza una medida cuando el Arduino le solicite.

Asimismo, podemos configurar el rango de medición en Gales (9.81 m/s 2=981 Ga) desde
±0.88Ga hasta ±8.1Ga a las que se le aplica ganancias de 1370 a 230 respectivamente y de esta
forma tener un rango de salida de 12bits.

5.2.2. Pines del módulo magnetómetro

Este módulo generalmente cuenta con 6 pines, de los cuales solo se usan 5, los cuales son los
siguientes:

Figura Nro. 23 Pines de Conexión del Módulo Magnetómetro.

Como se pudo ver, tienes dos pines de comunicación analógicos, lo que sustenta la
comunicación I2C. Se realizo el siguiente conexionado:

Figura Nro. 24 Conexión del Módulo Magnetómetro al Microcontrolador Arduino.

 El pin de alimentación puede ir tanto a 5V como a 3V.


 El conexionado de tierra va al puerto de tierra del Arduino.
 El pin SCL va al pin analógico A5.
 El pin SCL va al pin analógico A4.

5.2.3. Implementación del módulo Magnetómetro:

Antena GPS

Módulo
Magnetómetro

Módulo GPS

Figura Nro. 25 Montaje del Módulo Magnetómetro al Chasis.

Ahora, podemos probar las lecturas del campo magnético, para lo cual se realizó el siguiente
código:
Y se obtuvo lo siguiente:

Se pudo ver que se usaron 2 librerías, llamadas HMC5883L y I2Cdev, las cuales fueron creadas
por “Jeff Rowberg”. Y son de libre acceso en internet.
Nuevamente mencionamos que estos valores están con ganancia, para tener el valor real hay
que dividirlo entre 1090 (ganancia por defecto) y de esta forma obtener la medida en Gauss.

Si queremos modificar el rango y ganancia debemos agregar después de inicializar el


magnetómetro la siguiente línea de código:

magnetómetro.setGain(value)

De esta forma podemos establecer un nuevo rango de medición. El campo magnético terrestre
dependiendo del lugar puede variar entre 0,25-0,65 Ga, teniendo en cuenta esto es mejor si solo
vamos a medir el campo terrestre es mejor trabajar con el rango por defecto, si queremos mayor
precisión podemos bajar el rango a 0.88 Ga. pero se podría saturar la lectura si existe un campo
magnético externo.

Es importante mencionar que estos son los componentes del campo magnético terrestre, sin
embargo, para este proyecto nos interesa saber hacia donde se esta dirigiendo el vehículo, esto
se puede conseguir hallando la resultante de estos componentes, bueno, si quiera de los
componentes x y, de manera que tengamos el ángulo que esta haciendo el vehículo con
respecto al Norte, donde este significaría 0 grados.

Mx
N

Ɵ
My

Figura Nro. 26 Eje de Coordenas de Trabajo del Módulo Magnetómetro.

Donde:

θ=atan ( My
Mx )
Teniendo esto en cuenta, podemos calcular la dirección a la que esta yendo el vehículo, sin
embargo, siempre hay pequeños errores que se producen debido a la declinación magnética,
que se deben corregir.

Para esto, podemos entrar a la página de “Find the magnetic declination at your location”, con
lo cual se obtuvo lo siguiente:

Figura Nro. 27 Ubicación en Tiempo Real del Vehículo Autónomo.

Se puede ver que se obtuvo una declinación magnética de -5°46’. Y para corregir el ángulo de
la dirección del vehículo solo se tiene que restar el ángulo menos la declinación magnética:

angulo=angulo−declinación

Ahora si se puede aplicar esto al código, como se muestra a continuación:


Y se obtuvo lo siguiente:
El ángulo equivalente es el que nos interesa, ya que con este se puede definir un valor vectorial
desde el cual se puede definir la dirección en la que el vehículo está orientado.
6. Presupuesto

COSTES DIRECTOS
   

COSTES DIRECTOS  

Costo del Cantidad Coste total al fin


 
Proyecto elementos del Proyecto  

Impresión de Piezas $ 17.35    

Base Cámara $ 0.39 2 $ 00.79  

Chasís del Vehículo $ 7.23 1 $ 07.23  

Conexión de Ruedas 1 $ 1.55 2 $ 03.11

Conexión de Ruedas 2 $ 1.55 2 $ 03.11

Adaptador de Motor $ 0.40 4 $ 03.11  

Cámara Marker Focus $ 50.61 1 $ 50.61  

Controlador
$ 72.02 1 $ 72.02
RaspberryPi3B +Kit  

Arduino Uno $ 8.34 1 $ 8.34

Motores CC. $ 12.51 4 $ 50.04  

Ruedas $ 1.39 4 $ 5.56  

Magnetómetro 3-ejes
$ 4.17  1 $ 4.17
HMC5883L  

Módulo GPS NEO-6M $ 19.47 1 $ 19.47

Baterías de Iones $ 7.79 3 $ 23.37

Portabaterías $ 1.95 1 $ 1.95

SUBTOTAL:     $ 252.88  

AMORTIZACIÓN:     10%  

TOTAL:     $ 278.168  
7. Cronograma
CUADRO DE ACTIVIDADES-PROYECTO MECATRÓNICO

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
ACTIVIDADES
05 al 12 al 19 al 26 al 01 al 09 al 16 al 23 al 01 al 07 al 14 al 21 al 01 al 04 al 11 al 18 al 25 al 01 al
11 18 25 31 08 15 22 30 06 13 20 31 03 10 17 24 31 07
Oct. Oct. Oct. Oct. Nov. Nov. Nov. Nov. Dic. Dic. Dic. Dic. Ene. Ene. Ene. Ene. Ene. Ene.
Planeamiento del
Proyecto
Evaluación del
Proyecto
Revisión de
Información
Planos Terminados
Compra de los
componentes
Control de
Movimiento
Programación Visión
Artificial
Construcción del
vehículo
Inserción Control de
Movimiento
Diseño Neurona
Convolucional
Pruebas de
funcionamiento
Correcciones
Recopilación de
Resultados

Elaboración Informe
8. Normas y Estándares

ISO y ASTM Internacional han elaborado conjuntamente la estructura para el desarrollo de


estándares en la fabricación aditiva, un marco que ayudará a satisfacer las necesidades de nuevas
normas técnicas en este campo de rápido crecimiento. La fabricación aditiva (AM), también
conocida como la impresión 3D, es el proceso de unión de capa sobre capa de materiales, en
contraposición a los métodos de fabricación "sustractivo", como el mecanizado.

La nueva estructura ayudará a:

 Orientar el trabajo de expertos y organizaciones de normalización globales implicados en


AM normalización;
 Identificar las normas relacionadas con las deficiencias y necesidades de la industria AM;
 Evitar la superposición y duplicación de esfuerzos en el desarrollo de normas AM;
 Garantizar la cohesión entre los estándares de AM;
 Priorizar áreas de normalización; y,
 Mejorar la usabilidad y aceptación entre la comunidad AM, incluidos los fabricantes,
empresarios, consumidores y otros.

Sobre la base de esta estructura, las normas pueden ser desarrollados en tres niveles:

 Normas generales (e.gs., conceptos, requisitos comunes, guías, seguridad);


 Normas para grandes categorías de materiales (por ejemplo, polvos metálicos) o procesos
(por ejemplo, polvo de la cama de fusión); y,
 Normas especializadas para un material específico (por ejemplo, polvos de aleación de
aluminio), el proceso (por ejemplo, extrusión de material con ABS), o la aplicación (e.gs,
aeroespacial, médica, automotriz).

"Esta estructura ayudará a los expertos en todo el mundo interactúan de una manera más racional y
significativa, lo que lleva a la integración y aplicación de nuevas tecnologías a un ritmo acelerado",
dijo Carl Dekker, presidente de MET-L-FLO Inc., y presidente de la ASTM Internacional de
comisión de las tecnologías de fabricación aditiva (F42). "En el futuro, podríamos ver aún más
beneficios, como capacitación laboral uniforme y una mayor habilidad para centrarse en la mejora
de calidad constante en lugar de posibles especificaciones confusión rodea."
"Este enfoque coordinado para el desarrollo de normas en AM es crucial para la construcción de
unas normas sólidas en todos los niveles", dijo Joerg Lenz, coordinador de proyectos de
colaboración en Electro Optical Systems y presidente del Comité Técnico ISO 261 en la
fabricación aditiva (ISO / TC 261) ". los normalizadores pueden ver cómo esta nueva estructura
permite que se unen, dando lugar a una mayor innovación en campos como la industria
aeroespacial, médicos, y de automoción, así como otros beneficios tales como una plataforma para
las actividades de certificación ".

Esta estructura fue aprobada conjuntamente por F42 e ISO / TC 261 después de una reunión de
julio en Tokio. Esto refleja el progreso bajo las Normas de desarrollo en colaboración con acuerdo
de la Organización firmado hace cinco años entre las dos organizaciones de normalización
respetados a nivel mundial. En la creación de este documento, ambos grupos revisados pasadas,
presentes y previstas esfuerzos de desarrollo de normas.

La nueva estructura no limita el alcance de trabajo para cualquier organización de estándares, pero
proporciona un marco en el que se puede satisfacer la mayoría de las necesidades de normas. Un
documento de orientación compañera también se está desarrollando para acompañar a esta
estructura.

Este marco es parte del acuerdo de cooperación Normas asociados Organización para el Desarrollo
(PSDO) que fue aprobada en 2011 por los respectivos órganos de gobierno de las normas ISO y
ASTM en consulta con la institución nacional miembro de ISO en ASTM tiene su sede legal
(ANSI).
Bibliografía

Chae, H., Choi, S., Yu, W., & Cho, J. (2010, October). Autonomous navigation of mobile robot
based on DGPS/INS sensor fusion by EKF in semi-outdoor structured environment. In 2010
IEEE/RSJ International Conference on Intelligent Robots and Systems (pp. 1222-1227). IEEE.

Dodge, S., & Karam, L. (2016, June). Understanding how image quality affects deep neural
networks. In 2016 eighth international conference on quality of multimedia experience
(QoMEX) (pp. 1-6). IEEE.

Galvez, R. L., Bandala, A. A., Dadios, E. P., Vicerra, R. R. P., & Maningo, J. M. Z. (2018,
October). Object detection using convolutional neural networks. In TENCON 2018-2018
IEEE Region 10 Conference (pp. 2023-2027). IEEE.

Hamid, M. H. A., Adom, A. H., Rahim, N. A., & Rahiman, M. H. F. (2009, March). Navigation of
mobile robot using Global Positioning System (GPS) and obstacle avoidance system with
commanded loop daisy chaining application method. In 2009 5th International Colloquium on
Signal Processing & Its Applications (pp. 176-181). IEEE.

Kannojia, S. P., & Jaiswal, G. (2018). Effects of varying resolution on performance of CNN based
image classification: An experimental study. Int. J. Comput. Sci. Eng, 6, 451-456.

Khan, M. Y. A., Mustafa, E., Nawaz, A., Saleem, N., & Illahi, U. (2019). Sensor-fusion based
navigation for mobile robot in outdoor environment. Mehran University Research Journal of
Engineering and Technology, 38(1), 113-128.

Koziarski, M., & Cyganek, B. (2018). Impact of low resolution on image recognition with deep
neural networks: An experimental study. International Journal of Applied Mathematics and
Computer Science, 28(4), 735-744.

Yim, J., & Sohn, K. A. (2017, November). Enhancing the performance of convolutional neural
networks on quality degraded datasets. In 2017 International Conference on Digital Image
Computing: Techniques and Applications (DICTA) (pp. 1-8). IEEE.

También podría gustarte