Beruflich Dokumente
Kultur Dokumente
Objetivo general
Desarrollar un sistema implementado en un robot móvil capaz de viajar de un punto a otro y
evadir obstáculos (de tamaño mayor a una lata) durante su recorrido con la ayuda de un
Kinect. El sistema debe decidir qué ruta es mejor para llegar a su punto objetivo un ambiente
controlado, es decir con un suelo firme y plano sin perturbaciones
Objetivos específicos
Alcance
El alcance del presente proyecto comprende la primera fase del desarrollo de un robot de
servicio donde únicamente se desarrollará un sistema de navegación en un entorno no
conocido de antemano, en el cual habrá obstáculos y deberá viajar de un punto a otro de
manera autónoma evadiendo dichos obstáculos con la ayuda de un Kinect y un algoritmo de
planeación de trayectorias. El entorno en el cual se realizarán las pruebas de navegación será
en un ambiente controlado descrito por un terreno plano sin des niveles. El robot utilizado es
de fabricación propia hecho en madera, de tracción diferencial y dos ruedas de bola. El
desarrollo de este proyecto cubrirse en un plazo máximo de 15 semanas.
Marco teórico
Este trabajo se enfoca en estudiar las bases o fundamentos para desarrollar un sistema de
visión artificial. Si bien, innovar casi siempre ha resultado ser el camino al éxito, no siempre
se tiene que innovar para poder trascender, basta con aportar una mejora pequeña y a pesar
de ser pequeña puede ser significativa, por ello se debe conocer que existió, existe y existirá,
(esto último en el futuro cercano claro) para nutrir lo más que se puede a nuestro proyecto.
La aplicación de la visión artificial tiene un sinfín de áreas, tales como la robótica, la médica,
la de control, la industrial, etc.
Para poder empezar a hablar de lo que es la visión artificial (Rojas, Silva, Molina, 2007)
primero habrá que definir lo que es. La visión artificial es aquella que emula la vista a través
de una computadora, que dota a un sistema de cómputo de ese sentido, es evidente que será
un proceso digital y que los resultados obtenidos a partir de este proceso deben ser superiores
a los humanos.
Ortigoza, Ruiz, Caballero y Kussul (2009) estudiaron una de las aplicaciones más
interesantes de esta tecnología en el área médica. Debido a la complejidad que compone el
ser humano es imposible poder recrearlo de manera precisa, sin embargo, se pueden
desarrollar atributos individuales e implementarlos en el cuerpo humano, por ejemplo, un
sistema de visión artificial en personas ciegas. Se puede implementar un sistema capaz tomar
imágenes del exterior y recrear patrones de puntos que reconstruyen una imagen, esta imagen
no solo se reconstruye a manera de patrón, sino que se transmite a una malla implantada en
la cabeza del invidente para generar una serie de pulsos que le bridan una noción bastante
general del entorno que lo rodea.
KINECT
Se trata de un dispositivo desarrollado por Microsoft para su videoconsola Xbox 360, el cual
permite a los programadores implementar aplicaciones capaces de reconocer gestos y
emplear comandos mediante la voz.
El dispositivo Kinect está diseñado para poder localizarlo encima o debajo del monitor o del
televisor con el que se interactuará. Kinect tiene una composición horizontal en la que se
albergan:
Una cámara RGB que proporciona una resolución VGA (Video Graphics Adapter)
de 8 bits (640x480).
Un sensor de profundidad monocromo de resolución VGA de 11 bits que proporciona
211 = 2048 niveles de sensibilidad.
Un array de cuatro micrófonos.
El sensor de profundidad consiste en una combinación de un laser infrarrojo y un sensor
monocromo CMOS (Complementary Metal-Oxide-Semiconductor) de infrarrojos. Esto le
permite capturar video 3D bajo cualquier tipo de luz ambiental. El láser infrarrojo se proyecta
sobre cada uno de los objetos que se encuentre a su alcance. El sensor recibe el infrarrojo
reflejado por los objetos. Analizando las longitudes de onda de la señal reflejada, el
dispositivo calcula la distancia a la que se encuentran los objetos. Kinect cuenta además con
un motor en su base, el cual le permite modificar su inclinación. Además dispone de una
conexión USB (Universal Serial Bus), gracias a la cuál es posible comunicarnos con él e
implementar aplicaciones que manipulen los datos que proporciona. Desde el punto de vista
de la programación, Kinect cuenta con un API desarrollada por Microsoft capaz de realizar
detección y seguimiento de objetos –como cuerpo, cabeza, manos–, identificación de gestos,
etc. Además, desde su aparición, tanto la liberación por parte de PrimeSense del código de
los drivers del sensor de profundidad, como la labor de ingeniería inversa desarrollada por
algunas comunidades, han permitido que los desarrolladores puedan implementar APIs con
las que poder manipular el dispositivo Kinect empleando alternativas libres (Jurado Monroy,
Albusac Jiménez and Castro Sánchez, 2013).
Tecnología CMOS
Un Active Píxel Sensor (APS) es un sensor que detecta la luz basado en tecnología CMOS y
por ello es más conocido como sensor CMOS. Gracias a esta tecnología de construcción es
posible integrar más funciones en un chip sensor, tales como control de luminosidad,
corrección de contraste, conversión analógico-digital, etc. El APS, al igual que el sensor
CCD, se basa en el efecto fotoeléctrico, ya que está formado por numerosos fotodiodos, uno
para cada píxel, que producen una corriente eléctrica que varía en función de la intensidad
de luz recibida. En el CMOS, a diferencia del CCD, se incluye un conversor digital en el
propio chip y se incorpora un amplificador de la señal eléctrica en cada fotodiodo mientras
que en un CCD se tiene que enviar la señal eléctrica producida al exterior y amplificarla.
Antecedentes
Ya en 1939, cuando el grupo General Motors montó la exposición “Futurama”, en el marco
de la Exposición Universal de Nueva York, el diseñador Norman Bel Geddes, había
imaginado autopistas o coches teledirigidos que circulaban a gran velocidad y con toda
seguridad. Más tarde en 1958, el mismo grupo testaba en la autopista, el prototipo “Firebirdd
III”, que disponía de un piloto automático, capaz de seguir un cable colocado bajo el
pavimento. En 1984, el alemán Ernst Dickmanns de la Universidad de Munich y sus equipos,
hicieron circular a 96 km/h en una autopista desierta, una furgoneta Mercedes-Benz sin
ninguna intervención humana. En Francia, I’ INRIA presentó en 1996 un prototipo, el
“CyCab”, para ilustrar el potencial de la robótica en los desplazamientos urbanos
(CETELEM, 2016).
En 1969, John McCarthy, conocido como uno de los padres de la inteligencia artificial,
describe algo similar al vehículo autónomo moderno en un ensayo titulado “Computer
Controlled Cars“. McCarthy se refiere a un “chófer automático”, capaz de navegar por una
vía pública a través de una “entrada de cámara de televisión que usa la misma entrada visual
disponible para un controlador humano”; a principios de 1990, el investigador de Carnegie
Mellon, Dean Pomerleau, escribe una tesis doctoral que describe cómo las redes neuronales
podrían permitir que un vehículo autónomo captara imágenes en bruto de la carretera,
enviando órdenes a los controles de dirección en tiempo real. Pomerleau no es el único
investigador que trabaja en carros autodirigidos, pero su uso de redes neuronales demuestra
ser mucho más eficiente que los intentos alternativos de dividir manualmente las imágenes
en categorías “viales” y “no viales”. En 1995, Pomerleau y su colega investigador, Todd
Jochem, llevan su sistema de auto-conducción Navlab a la carretera. Su minivan autónoma
(ellos tienen que controlar la velocidad y el frenado) recorre 2,797 millas de costa a costa,
desde Pittsburgh, Pennsylvania hasta San Diego, California, en un viaje que la pareja llama
“No Hands Across America”, Sin Manos A Través de América (Matus, 2017).
Es a partir del año 2000 cuando este tema se acelera: las investigaciones han progresado
notablemente y en particular en Estados Unidos, cuando DARPA (Defense Advanced
Research Projects Agency) elige organizar dos carreras, en 2004-2005 y después en 2007,
con una recompensa extraordinaria para el que consiguiera hacer circular durante una
distancia concreta, un coche sin ninguna intervención humana. Es en estas carreras donde
toman parte los primeros prototipos de coches inteligentes sin piloto. El premio “Grand
Challenge” de 2005 lo ganó un laboratorio de búsqueda electrónica de la Universidad de
Stanford a la que pertenecía el futuro director de investigación del proyecto Google. Su
prototipo, el Volkswagen Touareg Stanley, recorrió 212 km en el desierto con total
autonomía (CETELEM, 2016).
Para 2013, las principales compañías automotrices, incluidas General Motors, Ford,
Mercedes Benz, BMW y otras, están trabajando en sus propias tecnologías autónomas.
Nissan se la juega incluso con una fecha, al anunciar que lanzará varios autos sin conductor
para el año 2020.
ARROYO SÁNCHEZ, (2013) obtuvo un método de SLAM que pueda ser usado en el
sistema de navegación a bordo de un robot de búsqueda y rescate. Para lograr esto se
exploraron varias técnicas, desde el uso de tecnologías de última generación como el sensor
Kinect hasta nuevos y poderosos algoritmos computacionales.
Carrillo & Ortega, en 2015, publican un artículo en donde introducen modelos matemáticos
para controlar el comportamiento de vehículos en un mundo virtual; estos comportamientos
consideran dos situaciones: 1) en toma de curvas, donde la complejidad es resultado de
mantener al vehículo a una velocidad segura durante la toma de la curva y dentro del carril y
2) de seguimiento vehicular, donde es esencial mantener una distancia segura entre los
vehículos, así como evitar que el vehículo seguidor quede rezagado con respecto al líder.
Usando información básica sobre la posición de los vehículos se desarrollan modelos
matemáticos que explican el ángulo de dirección y la velocidad en curvas de vehículos
autónomos. Desarrollaron un modelo para predecir la velocidad del vehículo autónomo en
curvas considerando datos previos en otras curvas. Se propusieron dos modelos para
controlar el comportamiento para acelerar y desacelerar de los vehículos autónomos en
situaciones de seguimiento de coche, el primer modelo se calibra con un algoritmo propuesto
y asemeja el comportamiento humano para acelerar y frenar, el segundo proporciona una
distancia segura para evitar colisiones cuando el líder frena repentinamente, además emplea
la máxima capacidad para acelerar y desacelerar del vehículo autónomo y asemeja el
comportamiento humano.
Cárdenas, Gómez & Martínez (2016), desarrollaron un asistente robótico que permite ayudar
a las personas con discapacidad visual a desplazarse en un entorno cerrado desconocido.
Basado en técnicas confiables para realizar el proceso de Localización y Mapeado
Simultáneo o SLAM (del inglés Simultaneus Localization And Mapping); el robot crea un
mapa del entorno y es capaz de navegar por el mismo a partir de los algoritmos desarrollados.
Adicionalmente el robot puede conectarse e interactuar con cualquier terminal Android lo
que permite al usuario comunicarse directamente con el robot de forma inalámbrica y dar las
órdenes necesarias para que el asistente acuda al llamado del usuario; el funcionamiento del
robot está basado en un framework de tipo open source que cuenta con innumerables
herramientas y librerías que facilitan de gran manera la labor de desarrollar software de
interpretación robótica en lenguajes de programación básicos como C++, Python y Java.
Sistema Operativo Robótico o ROS (del inglés Robot Operating System) cuenta con una
comunidad de desarrolladores por todo el mundo que dan gran soporte a la plataforma y
solventan de muy buena manera las inquietudes presentadas por otros desarrolladores, siendo
esta una ventaja del software de tipo open source.
En esta propuesta se diseña el robot llamado Vitour, que desempeña la tarea de construir
mapas haciendo uso de la técnica de SLAM con las imágenes captadas por el sensor Kinect
que se instala en el mismo. Por otra parte, el robot es incapaz de crear el mapa de manera
autónoma, es decir que el asistente es controlado remotamente desde un terminal Android
para la fabricación del mapa. Los resultados tienen gran acierto y brindan una información
fiable sobre la cual es posible trabajar la etapa posterior de navegación. (Cárdenas, Gómez
& Martínez, 2016).
Metodología
Para el desarrollo de este proyecto se usará la metodología VD1 2221 mostrada en la figura
1.
Figura 1. Modelo de diseño del proceso VD1 2221 para la realización del proyecto.
Cronograma de actividades
Cronograma de actividades
Semanas
Mes Enero Febrero Marzo Abril Mayo
Actividades 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3
Definir proyecto
Definir problemática
Definir la justificacion del proyector
Definir el objetivo del proyecto
Definir el alcance del proyecto
Definir la metodologia del proyecto
Realizar el cronogama de actividades
Definir el modelo dinamico
Simular modelo
Familiarización con la programacion del kinect
Identificacion obstaculos
Trazado de trayectorias
Algoritmo para desarrollar trayectoria
Algoritmos para evación de objetos
Validacion de funcionamiento
Generación de artículo
Figura 1. Configuración de las ruedas de un robot móvil con tracción diferencial con dos puntos de contacto
de apoyo.
Fuente: Siegwart, R. and Nourbakhsh, I. (2004). Introduction to autonomous mobile robots. Cambridge,
Mass.: MIT Press, p.35.
Figura 2. Vista superior de una rueda giratoria idealizada. Para una rueda que gira alrededor del eje y, el
movimiento a lo largo del eje x.
Fuente: Siegwart, R. and Nourbakhsh, I. (2004). Introduction to autonomous mobile robots. Cambridge,
Mass.: MIT Press, p.35.///cambiar
𝑹
Bajo el accionamiento diferencial, para que cada una de las dos ruedas motrices muestre un
movimiento de rodadura, el robot debe girar alrededor de un punto que se encuentra en el eje
común de las dos ruedas motrices. Al variar la velocidad relativa de las dos ruedas, se puede
variar el punto de esta rotación y elegir las diferentes trayectorias del vehículo. En cada
instante en el tiempo, el punto en el que el robot gira debe tener la propiedad de que las ruedas
izquierda y derecha siguen un camino que se mueve alrededor del ICC (Centro Instantáneo
de Curvatura) con la misma velocidad angular 𝜔, y por lo tanto
Donde 𝑙 es la distancia a lo largo del eje entre los centros de las dos ruedas, la rueda izquierda
se mueve con la velocidad 𝑣𝑙 a lo largo del suelo y la derecha con velocidad 𝑣𝑟 , y 𝑅 es la
distancia señalada del ICC al punto medio entre las dos ruedas. 𝑣𝑙 , 𝑣𝑟 , 𝜔 y 𝑅 son todas
funciones del tiempo. En cualquier instante en el tiempo, resolviendo para 𝑅 y 𝜔 resulta en
𝑙 𝑣𝑙 + 𝑣𝑟
𝑅= ( ) ~(3)
2 𝑣𝑟 − 𝑣𝑙
𝑣𝑟 − 𝑣𝑙
𝜔= ~(4)
𝑙
1 𝑡
𝑦(𝑡) = ∫ (𝑣𝑟 (𝑡) + 𝑣𝑙 (𝑡)) ∗ sin(𝜃(𝑡)) 𝑑𝑡 ~(11)
2 0
1 𝑡
𝜃(𝑡) = ∫ (𝑣 (𝑡) − 𝑣𝑙 (𝑡)) 𝑑𝑡 ~(12)
𝑙 0 𝑟
Bibliografía
CETELEM (2016). El coche autónomo. Los conductores, dispuestos a ceder la conducción
a la tecnología. El Observatorio Cetelem. [en línea] Madrid: CETELEM, pp.22-23.
Disponible en: https://elobservatoriocetelem.es/ [Accesado 2 Feb. 2018].
Matus, D. (2017). La historia de los carros autónomos contada en unos pocos hitos. [Blog]
DIGITAL TRENDS ES. Available at: https://es.digitaltrends.com/autos/historia-carros-
autonomos/ [Accesado 2 Feb. 2018].
Rojas Hernández, Rogelio; Silva Ortigoza, Ramón; Molina Vilchis, María Aurora “La Visión
Artificial en la Robótica” Polibits, núm. 35, 2007, pp. 22-28 Instituto Politécnico Nacional
Distrito Federal, México
Ortigoza-Ayala, Luis Octavio; Ruiz-Huerta, Leopoldo; Caballero-Ruiz, Alberto; Kussul,
Ernst Visión artificial en el humano Revista Médica del Instituto Mexicano del Seguro
Social, vol. 47, núm. 4, 2009, pp. 393- 398 Instituto Mexicano del Seguro Social Distrito
Federal, México.
Jurado Monroy, F., Albusac Jiménez, J. and Castro Sánchez, J. (2013). Desarrollo de
Videojuegos. Desarrollo de Componentes. 2nd ed. Real, España: Universidad de Castilla La
Mancha, pp.236-237.
Arroyo Sánchez, G. (2013). Localización y mapeo simultáneos para robot de búsqueda en
entornos de desastre. Maestría. Universidad nacional autónoma de México.
Cárdenas Caicedo, J., Gómez Arciniegas, J. & Martinez Bedoya, C. (2016). Asistente
robótico para personas con discapacidad visual. Ingeniería. Fundación Universitaria Los
Libertadores Facultad de Ingenierías.
Carrillo-González, José Gerardo, Ortega-Magaña, Ricardo, Arámburo-Lizárraga, Jesús,
Modeling the Turning Speed and Car Following Behaviors of Autonomous Vehicles in a
Virtual World. Ingeniería. Investigación y Tecnología [en linea] 2015, XVI (Julio-
Septiembre): [Fecha de consulta: 2 de febrero de 2018] Disponible
en:<http://www.redalyc.org/articulo.oa?id=40440683007> ISSN 1405-7743
Bourdon, Gerard, Ruaux, Pascal and Delaplace, Stephane, Instantaneous Fuzzy Modelling
for Obstacles Avoidance, Systems, Man and Cybernetics. Intelligent Systems for the 21 st
Century, IEEE International Conference, 22-25 Oct 1 995, Vancouver, BC, Canada.
Cross, N. (2007). Engineering design methods. 3rd ed. Chichester: Wiley, pp.28-42.
Siegwart, R. and Nourbakhsh, I. (2004). Introduction to autonomous mobile robots.
Cambridge, Mass.: MIT Press, p..