<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0124-8170</journal-id>
<journal-title><![CDATA[Ciencia e Ingeniería Neogranadina]]></journal-title>
<abbrev-journal-title><![CDATA[Cienc. Ing. Neogranad.]]></abbrev-journal-title>
<issn>0124-8170</issn>
<publisher>
<publisher-name><![CDATA[Universidad Militar Nueva Granada]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0124-81702012000200007</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[APROXIMACIÓN A LA NAVEGACIÓN AUTÓNOMA DE UNA PLATAFORMA MÓVIL, MEDIANTE VISIÓN ESTEREOSCÓPICA ARTIFICIAL]]></article-title>
<article-title xml:lang="en"><![CDATA[AN APPROACH TO AUTONOMOUS NAVIGATION OF A MOBILE PLATFORM USING A STEREOSCOPIC VISION]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Riveros Guevara]]></surname>
<given-names><![CDATA[Adriana]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Salas López]]></surname>
<given-names><![CDATA[Cindy Natalia]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Solaque Guzmán]]></surname>
<given-names><![CDATA[Leonardo]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Militar Nueva Granada  ]]></institution>
<addr-line><![CDATA[Bogotá ]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Elastómeros PVM  ]]></institution>
<addr-line><![CDATA[Bogotá ]]></addr-line>
<country>Colombia</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad Militar Nueva Granada , Facultad de Ingeniería ]]></institution>
<addr-line><![CDATA[Bogotá ]]></addr-line>
<country>Colombia</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2012</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2012</year>
</pub-date>
<volume>22</volume>
<numero>2</numero>
<fpage>111</fpage>
<lpage>129</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0124-81702012000200007&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0124-81702012000200007&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0124-81702012000200007&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[RESUMEN La visión artificial intenta capturar información relevante del medio ambiente, utilizando cámaras como sensores de ciertas características (formas, colores, texturas, etc.), para el funcionamiento adecuado de algunos mecanismos. Con el fin de obtener una imagen idéntica al entorno real, es necesario generar imágenes estereoscópicas que nos permita obtener la profundidad y así conseguir una representación en 3D. En este documento se plasma cómo se realizó la integración de un sistema de visión estereoscópica artificial a un robot móvil, con el objetivo de reconocer y seguir el centro de un camino. Dicho sistema se encarga de la adquisición, procesamiento y caracterización de imágenes, utilizando procedimientos fuera de línea para calibrar las cámaras y los métodos en línea para generar el mapa de disparidad, aplicación del operador Canny y la Transformada de Hough, empleando las librerías de OpenCV en un proyecto de Consola Win32 en C++. Es importante mencionar que los algoritmos desarrollados en este trabajo fundamentalmente son para ambientes estructurados. Los ambientes pueden clasificarse en: estructurados, no estructurados y semi-estructurados.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[ABSTRACT An artificial vision tries to capture relevant information from environment using cameras as sensors of certain characteristics (shapes, colors, textures, etc.) for a proper functioning of some mechanisms. In order to get an identical image to real environment, it is required to generate stereoscopic images that allow us to get the depth and thus a 3D representation. This paper shows an artificial stereoscopic vision system incorporated to a mobile robot to recognize and follow the center of a path. Such a system handles the capture, processing and characterization of images using offline procedures such to standardize cameras and online methods for a disparity mapping generation, application of the Canny edge detector and the Hough transform, using the OpenCV libraries in Win32 Console project in C++. It`s important to mention that algorithms developed in this work are fundamentally for structured environments. Environments can classified as follows: structured, non-structured and semi-structured.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[visión estereoscópica]]></kwd>
<kwd lng="es"><![CDATA[mapa de disparidad]]></kwd>
<kwd lng="es"><![CDATA[OpenCV]]></kwd>
<kwd lng="es"><![CDATA[Operador Canny]]></kwd>
<kwd lng="es"><![CDATA[Transformada de Hough]]></kwd>
<kwd lng="en"><![CDATA[stereovision]]></kwd>
<kwd lng="en"><![CDATA[disparity mapping]]></kwd>
<kwd lng="en"><![CDATA[Open CV]]></kwd>
<kwd lng="en"><![CDATA[Canny edge detector]]></kwd>
<kwd lng="en"><![CDATA[Hough transform]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  <font size="2" face="verdana">       <p align="center"><font size="4"><b>APROXIMACI&Oacute;N A LA NAVEGACI&Oacute;N AUT&Oacute;NOMA DE UNA PLATAFORMA M&Oacute;VIL, MEDIANTE VISI&Oacute;N ESTEREOSC&Oacute;PICA ARTIFICIAL</b></font></p>     <P align="center"><B><font size="3">AN APPROACH TO AUTONOMOUS NAVIGATION OF A MOBILE PLATFORM USING A STEREOSCOPIC VISION</font></B></p>     <P align="center">Adriana Riveros Guevara    <br> Ing. Mecatr&oacute;nico, Asistente de Investigaci&oacute;n Grupo GIDAM.    <br> Universidad Militar Nueva Granada, Bogot&aacute;, Colombia    <br> <a href="mailto:u1801128@unimilitar.edu.co">u1801128@unimilitar.edu.co</a></p>     <P align="center">Cindy Natalia Salas L&oacute;pez    <br> Ing. Mecatr&oacute;nico, Ingeniera LID    <br> Elast&oacute;meros PVM, Bogot&aacute;, Colombia    ]]></body>
<body><![CDATA[<br> <a href="mailto:u1801115@unimilitar.edu.co">u1801115@unimilitar.edu.co</a></p>     <P align="center">Leonardo Solaque Guzm&aacute;n    <br> Ing. Electr&oacute;nico, Ph.D., Profesor asociado, Facultad de Ingenier&iacute;a,    <br> Investigador grupo GIDAM. Universidad Militar Nueva Granada, Bogot&aacute;, Colombia    <br> <a href="mailto:leonardo.solaque@unimilitar.edu.co">leonardo.solaque@unimilitar.edu.co</a></p>     <p>Fecha de recepci&oacute;n: 9 de julio de 2012 Fecha de aprobaci&oacute;n: 3 de diciembre 2012</p> <hr>     <P><B><font size="3">RESUMEN</font></b></p>      <p>La visi&oacute;n artificial intenta capturar informaci&oacute;n relevante del medio ambiente, utilizando c&aacute;maras como sensores de ciertas caracter&iacute;sticas (formas, colores, texturas, etc.), para el funcionamiento adecuado de algunos mecanismos. Con el fin de obtener una imagen id&eacute;ntica al entorno real, es necesario generar im&aacute;genes estereosc&oacute;picas que nos permita obtener la profundidad y as&iacute; conseguir una representaci&oacute;n en 3D. En este documento se plasma c&oacute;mo se realiz&oacute; la integraci&oacute;n de un sistema de visi&oacute;n estereosc&oacute;pica artificial a un robot m&oacute;vil, con el objetivo de reconocer y seguir el centro de un camino. Dicho sistema se encarga de la adquisici&oacute;n, procesamiento y caracterizaci&oacute;n de im&aacute;genes, utilizando procedimientos fuera de l&iacute;nea para calibrar las c&aacute;maras y los m&eacute;todos en l&iacute;nea para generar el mapa de disparidad, aplicaci&oacute;n del operador Canny y la Transformada de Hough, empleando las librer&iacute;as de OpenCV en un proyecto de Consola Win32 en C++. Es importante mencionar que los algoritmos desarrollados en este trabajo fundamentalmente son para ambientes estructurados. Los ambientes pueden clasificarse en: estructurados, no estructurados y semi-estructurados.</p>     <p><B>Palabras clave:</B> visi&oacute;n estereosc&oacute;pica, mapa de disparidad, OpenCV, Operador Canny, Transformada de Hough.</p> <hr>     <P><B><font size="3">ABSTRACT</font></b></p>     ]]></body>
<body><![CDATA[<p>An artificial vision tries to capture relevant information from environment using cameras as sensors of certain characteristics (shapes, colors, textures, etc.) for a proper functioning of some mechanisms. In order to get an identical image to real environment, it is required to generate stereoscopic images that allow us to get the depth and thus a 3D representation. This paper shows an artificial stereoscopic vision system incorporated to a mobile robot to recognize and follow the center of a path. Such a system handles the capture, processing and characterization of images using offline procedures such to standardize cameras and online methods for a disparity mapping generation, application of the Canny edge detector and the Hough transform, using the OpenCV libraries in Win32 Console project in C++. It`s important to mention that algorithms developed in this work are fundamentally for structured environments. Environments can classified as follows: structured, non-structured and semi-structured.</p>     <p><B>Keywords:</B> stereovision, disparity mapping, Open CV, Canny edge detector, Hough transform.</p> <hr>     <P><B><font size="3">INTRODUCCI&Oacute;N</font></b></p>     <p>En la actualidad, los sistemas de visi&oacute;n artificial se implementan en su gran mayor&iacute;a, en aplicaciones est&aacute;ticas para reconocer formas, colores y control de calidad; el acople de dichos sistemas a robots m&oacute;viles, viene siendo tratado, enfrentando grandes complicaciones como cambios repentinos del entorno (luminosidad y obst&aacute;culos), y las diversas condiciones ambientales y de trabajo; sin embargo, se han hecho desarrollos importantes en este campo, en el &aacute;mbito local e internacional. </p>     <p>En la Universidad Militar Nueva Granada, se han desarrollado proyectos que aplican la rob&oacute;tica m&oacute;vil y la visi&oacute;n artificial; uno de los trabajos m&aacute;s significativos es &ldquo;Dise&ntilde;o y Construcci&oacute;n de un robot Scara con un sistema de visi&oacute;n de m&aacute;quina, que pueda ser utilizado como herramienta did&aacute;ctica en asignaturas de rob&oacute;tica y control&rdquo; &#91;1&#93;, que implementa un sistema de visi&oacute;n de m&aacute;quina que consta de una c&aacute;mara web (Creative Webcam Instant), acoplada a una base especialmente dise&ntilde;ada, con la cual se consigue una vista del &aacute;rea completa. Adem&aacute;s, utiliza un marcador de posici&oacute;n para identificar la posici&oacute;n cero del espacio de trabajo. </p>     <p>En el &aacute;mbito regional, se encuentran proyectos como &ldquo;Interceptor de trayectorias basado en visi&oacute;n artificial&rdquo; &#91;2&#93;, realizado en la Pontificia Universidad Javeriana utilizando la librer&iacute;a OpenCV, en donde se modifica la trayectoria de una peque&ntilde;a bola, la informaci&oacute;n es tomada por una c&aacute;mara y enviada para su posterior procesamiento a una tasa de 30 cuadros por segundo.</p>     <p>Los desarrollos internacionales se han dado principalmente en Europa, tras realizar tesis doctorales; un ejemplo de estas investigaciones lo vemos en &ldquo;Navigation visuelle d'un robot mobile dans un environnement d'ext&eacute;rieur semi-structur&eacute;&rdquo; &#91;3&#93;, en donde se hace un desarrollo de la adquisici&oacute;n y el procesamiento de im&aacute;genes desde el primer nivel que incluye la selecci&oacute;n de c&aacute;maras, pasando por la correcci&oacute;n de las im&aacute;genes, segmentaci&oacute;n por textura, y color, hasta llegar a los algoritmos que permiten la generaci&oacute;n de trayectorias y movilizaci&oacute;n de un robot agr&iacute;cola. Este trabajo se hizo en &ldquo;l'Institut National Polytechnique de Toulouse&rdquo;. En &ldquo;Lane Extraction and Tracking for Robot Navigation in Agricultural Applications&rdquo; &#91;4&#93;, se enfatiza el procesamiento de im&aacute;genes en la segmentaci&oacute;n de colores; este procedimiento en muchas ocasiones, es suficiente para hacer la correcta separaci&oacute;n del terreno por donde se va a navegar, y de los objetos del entorno que pueden tornarse como obst&aacute;culos. Adem&aacute;s, se realiza la extracci&oacute;n de los caminos mediante se&ntilde;ales de video y posicionamiento del robot m&oacute;vil.</p>     <p>Tambi&eacute;n se han realizado proyectos en Sudam&eacute;rica; uno de ellos se describe en &ldquo;Aplicaci&oacute;n de T&eacute;cnicas de Rob&oacute;tica e Inteligencia Artificial sobre un robot m&oacute;vil utilizando el entorno de programaci&oacute;n Visual Studio.Net&rdquo; &#91;5&#93;, en donde se utilizan las librer&iacute;as OpenCV de Intel y el lenguaje de programaci&oacute;n C bajo la plataforma .Net, para desarrollar un algoritmo que permita la detecci&oacute;n de l&iacute;neas y su posterior seguimiento. Se utiliza el filtro Canny para resaltar los bordes y se detectan dos pares de puntos que enmarcan la l&iacute;nea, lo cual permite el seguimiento de la misma.</p>     <p>Este art&iacute;culo se desarrolla en las siguientes secciones: principio de funcionamiento de un sistema estereosc&oacute;pico, elaboraci&oacute;n de la plataforma de prueba, procesamiento de im&aacute;genes, integraci&oacute;n del sistema de visi&oacute;n artificial a la plataforma m&oacute;vil y finalmente, resultados experimentales y conclusiones.</p>     <P><B><font size="3">1. PRINCIPIO DE FUNCIONAMIENTO DE UN SISTEMA ESTEREOSC&Oacute;PICO</font></b></p>     ]]></body>
<body><![CDATA[<p>Contextualizando lo que es el principio de funci&oacute;n estereosc&oacute;pica, a continuaci&oacute;n se presentan algunos conceptos que conllevan a la selecci&oacute;n de las c&aacute;maras y los algoritmos por usar.</p>     <p>En esta secci&oacute;n, se har&aacute; una breve descripci&oacute;n sobre qu&eacute; es la visi&oacute;n artificial, qu&eacute; ventajas tiene su utilizaci&oacute;n, se definir&aacute;n algunos conceptos b&aacute;sicos y su representaci&oacute;n matem&aacute;tica y adem&aacute;s, se nombrar&aacute;n algunos criterios que se utilizaron al escoger las c&aacute;maras que se usaron.</p>     <p><B>1.1. CONTEXTUALIZACI&Oacute;N TE&Oacute;RICA</b></p>     <p>A continuaci&oacute;n, se muestra la definici&oacute;n de algunos conceptos que se deben tener en cuenta para realizar este proyecto:</p>     <p><B>Visi&oacute;n artificial: </B>tambi&eacute;n llamada Visi&oacute;n por Computador, pretende capturar la informaci&oacute;n visual del entorno f&iacute;sico para extraer caracter&iacute;sticas visuales relevantes, utilizando procedimientos autom&aacute;ticos. Seg&uacute;n Marr, &ldquo;Visi&oacute;n es un proceso que produce a partir de im&aacute;genes del mundo exterior una descripci&oacute;n &uacute;til para el observador y no tiene informaci&oacute;n irrelevante&rdquo; &#91;6&#93;.</p>     <p>En la construcci&oacute;n de sus artefactos, el hombre ha imitado muchas veces, a la Naturaleza. En este caso, tambi&eacute;n ocurre. Las c&aacute;maras de v&iacute;deo con sus &oacute;pticas hacen las veces del globo ocular, mientras el computador realizar&aacute; las tareas de procesamiento, emulando el comportamiento del cerebro. Las principales ventajas de la visi&oacute;n artificial respecto de la humana son:</p> <ul>    <li>Es superior midiendo magnitudes f&iacute;sicas.</li>     <li>Es m&aacute;s eficiente para la realizaci&oacute;n de tareas rutinarias.</li>     <li>Es mejor en tareas de bajo nivel de proceso.</li>    </ul>     ]]></body>
<body><![CDATA[<p><B>Visi&oacute;n estereosc&oacute;pica:</B> constituye un procedimiento para obtener la forma de los objetos en la escena. En este caso, la forma se determina mediante la distancia de los objetos en relaci&oacute;n con un sistema de referencia, por lo cual se trata de un m&eacute;todo para obtener la tercera dimensi&oacute;n &#91;7&#93;.</p>     <p>La visi&oacute;n estereosc&oacute;pica toma como referencia, el modelo estereosc&oacute;pico biol&oacute;gico donde el desplazamiento relativo de los ojos permite obtener la profundidad de los objetos o tercera dimensi&oacute;n, mediante un simple proceso de triangulaci&oacute;n a partir de las dos im&aacute;genes generadas por el mismo objeto de la escena 3D en cada ojo. Esto se debe al hecho de que los ojos est&aacute;n distanciados, y hace que las im&aacute;genes de los objetos en sendos ojos, se muestren desplazadas seg&uacute;n la distancia entre los objetos y los ojos.</p>     <p><B>Calibraci&oacute;n de im&aacute;genes:</B> el proceso de calibraci&oacute;n de im&aacute;genes trata de determinar los par&aacute;metros intr&iacute;nsecos de las c&aacute;maras, tales como la distancia focal, el centro del plano sensor y la distorsi&oacute;n de la lente para poder luego, determinar la geometr&iacute;a de los objetos observados por la c&aacute;mara &#91;8&#93;. </p>     <p>Aunque existen distintos m&eacute;todos para calibrar una c&aacute;mara, el procedimiento b&aacute;sico es el mismo en todos ellos:</p> <ul>    <li>Determinar con precisi&oacute;n un conjunto de puntos 3D del mundo exterior.</li>     <li>Fijar sus correspondencias con las proyecciones de estos puntos 3D sobre la imagen proyectada 2D.</li>     <li>Obtener mediante t&eacute;cnicas de optimizaci&oacute;n, la mejor soluci&oacute;n para determinar los par&aacute;metros intr&iacute;nsecos y extr&iacute;nsecos.</li>    </ul>     <p><B>Correspondencia est&eacute;reo:</B> es el proceso mediante el cual dado un punto cualquiera de la escena 3D, se llega a determinar cu&aacute;l es su proyecci&oacute;n en sendas im&aacute;genes del par estereosc&oacute;pico. La correspondencia constituye el principal problema dentro del proceso de la visi&oacute;n estereosc&oacute;pica &#91;8&#93;.</p>     <p><B>Operador Canny:</B> es un algoritmo muy usado en la localizaci&oacute;n de contornos. Se caracteriza por evitar la ruptura de los bordes de los objetos. Su fundamento se basa en un proceso de optimizaci&oacute;n, teniendo en cuenta los siguientes objetivos por maximizar &#91;6&#93;:</p> <ul>    ]]></body>
<body><![CDATA[<li>Aumentar la relaci&oacute;n se&ntilde;al-ruido de la imagen.</li>     <li>Disminuir todo lo posible, la distancia entre el borde detectado y el borde real.</li>     <li>No identificar un borde por un &uacute;nico p&iacute;xel, sino por un conjunto de p&iacute;xeles que tengan una cierta conectividad.</li>    </ul>     <p><B>Transformada de Hough:</B> es un m&eacute;todo utilizado para hallar l&iacute;neas, que se expresan en coordenadas polares, y pueden ser detectadas encontrando el n&uacute;mero de intercepciones entre curvas. En general, podemos definir un umbral del n&uacute;mero m&iacute;nimo de intersecciones necesarios para detectar una l&iacute;nea &#91;6&#93;.</p>     <p><B>1.2. MODELO DE LA C&Aacute;MARA</b></p>     <p>El modelo pinhole asume que la c&aacute;mara es una caja negra que tiene un peque&ntilde;o agujero por donde ingresa una peque&ntilde;a cantidad de luz; por este agujero se proyectan las im&aacute;genes de la superficie en forma inversa. El tama&ntilde;o de la imagen est&aacute; relacionado con la distancia del objeto que se ve reflejada por la distancia focal &#91;9&#93;.</p>     <p>Cuando el plano de la imagen est&aacute; ubicado por delante del centro &oacute;ptico, se obtiene una proyecci&oacute;n de la imagen sin inversi&oacute;n. En la <a href="#f1">Figura 1</a>, se observa el modelo Pinhole cuando P (plano de la imagen) est&aacute; delante de C (centro &oacute;ptico).</p>     <p align="center"><a name="f1"></a><img src="img/revistas/cein/v22n2/v22n2a07f1.jpg"></p> <ul>    <li>El centro &oacute;ptico C es el punto de la lente donde cualquier rayo de luz que pasa por &eacute;l, no sufre desviaci&oacute;n.</li>     ]]></body>
<body><![CDATA[<li>El eje &oacute;ptico es la l&iacute;nea imaginaria que parte del centro &oacute;ptico y corta perpendicularmente el plano imagen.</li>     <li>La distancia focal f es la distancia que existe desde el centro &oacute;ptico al plano focal.</li>     <li>El plano imagen o plano focal se sit&uacute;a en Z = f. Es el plano virtual donde se forma la imagen sin inversi&oacute;n alguna</li>     <li>El punto principal p, es la intersecci&oacute;n del eje &oacute;ptico con el plano imagen.</li>    </ul>     <p><B>1.3. SELECCI&Oacute;N DE LAS C&Aacute;MARAS</b></p>     <p>Se contemplaron diferentes opciones de c&aacute;maras, como se puede observar en la <a href="#t1">Tabla 1</a>, teniendo en cuenta la calidad de la imagen, velocidad y costo, as&iacute; como el tipo de comunicaci&oacute;n; por &uacute;ltimo se opt&oacute; por c&aacute;maras web de alta definici&oacute;n LifeCam HD-5000 de Microsoft, ya que su relaci&oacute;n costo/beneficio era el mejor.</p>     <p align="center"><a name="t1"></a><img src="img/revistas/cein/v22n2/v22n2a07t1.jpg"></p>     <P><B><font size="3">2. PLATAFORMA DE PRUEBA</font></b></p>      <p>En esta secci&oacute;n, se har&aacute; una descripci&oacute;n de c&oacute;mo se realiz&oacute; el dise&ntilde;o de la plataforma m&oacute;vil y de cu&aacute;les fueron los criterios utilizados para elegir los componentes electr&oacute;nicos y mec&aacute;nicos que fueron empleados.</p>      ]]></body>
<body><![CDATA[<p><B>2.1 ARQUITECTURA MEC&Aacute;NICA</b></p>     <p>El sistema de visi&oacute;n escogido hace necesario que el computador est&eacute; embarcado en el robot m&oacute;vil; por esta raz&oacute;n, el dise&ntilde;o se realiz&oacute; partiendo de la idea de que el computador fuera parte integral del dise&ntilde;o. Las dimensiones b&aacute;sicas tambi&eacute;n fueron escogidas con base en las medidas del computador que va embarcado en el robot, siendo este un SONY VAIO PCG-51211L de 13.3''. </p>     <p>El dise&ntilde;o CAD se hizo en Solid Works 2011.  Se elabor&oacute; el prototipo del soporte para las c&aacute;maras, teniendo en cuenta que la distancia horizontal fuera la deseada (10cm-11cm), y garantizando la altura desde el piso a las c&aacute;maras; esta medida se determin&oacute; con base en pruebas donde se tomaron fotos a distintas longitudes, observando que el rango de altura en donde mejor se comportaba, era de 35 cm a 45 cm. Las pruebas que se realizaron para encontrar este rango de operaci&oacute;n, consistieron en elevar 5 cm el sistema est&eacute;reo; cuando las c&aacute;maras estaban muy bajas, se ve&iacute;a el suelo, pero no se pod&iacute;a distinguir con claridad los bordes del mismo; sin embargo cuando se sub&iacute;an mucho, aumentaban las vibraciones de la c&aacute;mara y se generaba un mayor torque, condiciones no recomendables que generan errores significativos en la secuencia de im&aacute;genes.</p>      <p>El tipo de locomoci&oacute;n es con ruedas en una configuraci&oacute;n diferencial, donde todas las llantas son motrices para dar mayor capacidad de carga y superar inconvenientes como la rugosidad y desniveles del terreno; adem&aacute;s de ello, este tipo de locomoci&oacute;n permite ejercer un control m&aacute;s sencillo, menos consumo de potencia y la posibilidad de adaptar un sistema odom&eacute;trico, lo cual hace que este sistema sea el mejor para esta aplicaci&oacute;n en particular. El peso aproximado considerado fue de 10 Kg, por lo cual se escogieron servomotores Tower Pro MG945 con caracter&iacute;sticas descritas en la <a href="#t2">Tabla 2</a>. En la <a href="#f2">Figura 2A</a> se muestra el dise&ntilde;o final CAD.</p>     <p align="center"><a name="t2"></a><img src="img/revistas/cein/v22n2/v22n2a07t2.jpg"></p>     <p align="center"><a name="f2"></a><img src="img/revistas/cein/v22n2/v22n2a07f2.jpg"></p>     <p><B>2.2 ARQUITECTURA ELECTR&Oacute;NICA</b></p>     <p>Al tener como base cuatro servomotores, el sistema mec&aacute;nico, obliga a que la electr&oacute;nica genere se&ntilde;ales PWM para su manejo, y teniendo en cuenta que la comunicaci&oacute;n con el computador se va a realizar de forma inal&aacute;mbrica utilizando sistemas como el Xbee, se hace necesario el enlace serial entre la parte electr&oacute;nica y el dispositivo RF; este sistema debe tener un costo reducido, pero generar buenos resultados, por lo cual se escogi&oacute; el PIC18F4550 para su implementaci&oacute;n, ya que cumple las caracter&iacute;sticas mencionadas y adem&aacute;s, permite posteriores ampliaciones para diferentes aplicaciones. </p>      <p>El programa del microcontrolador recibe los caracteres &lsquo;a', &lsquo;d', &lsquo;i', &lsquo;b' y &lsquo;s' para los movimientos hacia adelante, a la derecha, a la izquierda, hacia atr&aacute;s y parar respectivamente. Seg&uacute;n estas se&ntilde;ales, se indica qu&eacute; motor debe moverse en sentido horario o antihorario para generar el desplazamiento deseado. En la <a href="#f3">Figura 3</a>, se muestra un esquema del funcionamiento de la arquitectura electr&oacute;nica del sistema.</p>     <p align="center"><a name="f3"></a><img src="img/revistas/cein/v22n2/v22n2a07f3.jpg"></p>     ]]></body>
<body><![CDATA[<P align="center"><B>3. PROCESAMIENTO DE IM&Aacute;GENES</b></p>     <p>Esta secci&oacute;n muestra los diferentes subprogramas que fueron realizados para elaborar el software encargado de direccionar la plataforma de pruebas concebida. Estos subprogramas se agruparon en dos tareas principales: detecci&oacute;n de obst&aacute;culos y est&eacute;reo-correspondencia y Detecci&oacute;n del camino y guiado; sin embargo, existen programas auxiliares como Adquisici&oacute;n de im&aacute;genes,  Sobreposici&oacute;n o Warping y Comandos de direccionamiento que cumplen la tarea de integrar las etapas primarias, como se puede observar en la <a href="#f4">Figura 4</a>.</p>     <p align="center"><a name="f4"></a><img src="img/revistas/cein/v22n2/v22n2a07f4.jpg"></p>     <p>Los programas auxiliares y el software principal se hicieron en Visual Studio 2010 como aplicaci&oacute;n de consola win32, en lenguaje C++, utilizando las librer&iacute;as de OpenCV en sus versiones 2.1 y 2.3.</p>      <p><B>3.1 DETECCI&Oacute;N DE OBST&Aacute;CULOS Y EST&Eacute;REO-CORRESPONDENCIA </b></p>     <p>Para llevar a cabo este procedimiento, es necesario calibrar las c&aacute;maras, teniendo en cuenta los siguientes pasos &#91;10&#93;:</p> <ul>    <li>Remover las distorsiones radiales y tangenciales de los lentes, para obtener im&aacute;genes no distorsionadas.</li>     <li>Ajustar los &aacute;ngulos y distancias entre las c&aacute;maras para realizar la rectificaci&oacute;n, y generar im&aacute;genes alineadas y rectificadas.</li>     <li>Encontrar las mismas caracter&iacute;sticas en la c&aacute;mara izquierda y derecha. Este proceso se denomina correspondencia. Aqu&iacute;, se genera un mapa de disparidad que se forma con la diferencia de las &ldquo;x&rdquo; entre las im&aacute;genes de las dos c&aacute;maras; no se toman diferencias en &ldquo;y&rdquo;, porque con la rectificaci&oacute;n, esa diferencia es 0.</li>     <li>Si se conocen los par&aacute;metros de las c&aacute;maras, se puede hallar distancias mediante triangulaci&oacute;n, para generar as&iacute; mapas de profundidad. Este proceso se denomina reproyecci&oacute;n.</li>    ]]></body>
<body><![CDATA[</ul>     <p>Posterior a este proceso, para hallar un valor num&eacute;rico de la distancia en donde se encuentra un obst&aacute;culo, se hace un promedio de los valores que forman el mapa de disparidad; dicho valor se reemplaza en la ecuaci&oacute;n de triangulaci&oacute;n, para generar la longitud hasta el objeto determinado. Esta distancia se utiliza para darle instrucciones al robot para que se detenga o gire.</p>     <p>Para realizar la est&eacute;reo correspondencia, se encuentran en las im&aacute;genes de derecha e izquierda, los puntos de homograf&iacute;a y despu&eacute;s, se sobreponen las im&aacute;genes para generar una visi&oacute;n m&aacute;s amplia que permita al robot moverse adecuadamente.</p>     <p><B>3.2 DETECCI&Oacute;N DEL CAMINO Y GUIADO</b></p>      <p>Despu&eacute;s de revisar la bibliograf&iacute;a que existe sobre el tema, se determinaron los siguientes pasos para lograr el objetivo trazado:</p> <ul>    <li>Transformada geom&eacute;trica de la imagen por medio de la cual se obtiene una imagen en donde se ha eliminado el efecto de la perspectiva.</li>     <li>Extracci&oacute;n de caracter&iacute;sticas; en este caso, la aplicaci&oacute;n del filtro Canny con el fin de obtener los bordes.</li>     <li>Transformada de Hough que halla las posibles l&iacute;neas correspondientes al borde del camino.</li>     <li>Extracci&oacute;n de l&iacute;neas que corresponden al lado derecho e izquierdo del camino.</li>     <li>Obtenci&oacute;n del centro del camino, encontrando el punto medio entre las l&iacute;neas halladas en el paso anterior.</li>     ]]></body>
<body><![CDATA[<li>Guiado del m&oacute;vil con base en el c&aacute;lculo del cambio del &aacute;ngulo de la l&iacute;nea central.</li>     <li>Comunicaci&oacute;n serial para enviar par&aacute;metros de guiado por medio de Xbee.</li>    </ul>     <p>En la <a href="#f5">Figura 5</a>, se muestra un diagrama general de los procesos llevados a cabo; el recuadro superior corresponde a la etapa principal de Detecci&oacute;n de obst&aacute;culos y est&eacute;reo-correspondencia, el inferior muestra la Detecci&oacute;n del camino y guiado, en cada divisi&oacute;n est&aacute;n los procesos correspondientes a los subprogramas ya mencionados, cada programa auxiliar se explica m&aacute;s adelante.</p>     <p align="center"><a name="f5"></a><img src="img/revistas/cein/v22n2/v22n2a07f5.jpg"></p>     <p><B>3.3. SUBPROCESOS Y PROGRAMAS AUXILIARES</b></p>     <p>A continuaci&oacute;n, se explica c&oacute;mo se realiz&oacute; cada subprograma, algunas funciones que se usaron de la librer&iacute;a OpenCV y se relacionan los resultados obtenidos.</p>     <p><B>3.3.1. Generaci&oacute;n del mapa de disparidad</b></p>     <p>Para generar el mapa de disparidad, se leen los archivos .xml y se crea una imagen no distorsionada y rectificada, utilizando la funci&oacute;n cvRemap(); con las nuevas im&aacute;genes se ejecuta la funci&oacute;n cvFind Stereo Correspondence () que tiene como par&aacute;metros las dos im&aacute;genes rectificadas en escala de grises, el tipo de algoritmo, la m&aacute;xima disparidad, etc. Tras ejecutar la funci&oacute;n, se genera un arreglo con las dimensiones de la imagen y valores que oscilan entre 0 y 255 que corresponden a la disparidad; este valor es inversamente proporcional a la profundidad, por lo cual haciendo un promedio entre los valores que m&aacute;s se repiten y que est&aacute;n m&aacute;s cercanos a 255, se puede hallar la disparidad del objeto que se encuentre m&aacute;s pr&oacute;ximo y por lo tanto, a qu&eacute; distancia se encuentra el robot de un obst&aacute;culo. En la <a href="#f6">Figura 6</a>, se muestra un mapa de disparidad generado en uno de los escenarios.</p>     <p align="center"><a name="f6"></a><img src="img/revistas/cein/v22n2/v22n2a07f6.jpg"></p>      ]]></body>
<body><![CDATA[<p><B>3.3.2. C&aacute;lculo de profundidad</b></p>      <p>El c&aacute;lculo de la profundidad se hizo a partir de la <a href="#ec1">ecuaci&oacute;n 1</a>, resultante cuando se dio la triangulaci&oacute;n: </p>     <p><a name="ec1"></a><img src="img/revistas/cein/v22n2/v22n2a07ec1.jpg"></p>     <p>En donde b, es la distancia que hay entre c&aacute;maras; en este caso 10.5 cm, f es la distancia focal que se ve reflejada tras la rectificaci&oacute;n y tiene un valor de 338.43 mm y d es la disparidad que est&aacute; siendo hallada en el proceso anterior, con el promedio de los valores del mapa de disparidad.</p>     <p><B>3.3.3. Sobreposici&oacute;n de im&aacute;genes</b></p>     <p>Este procedimiento se bas&oacute; en dos im&aacute;genes tomadas del par de c&aacute;maras del sistema est&eacute;reo. A estas im&aacute;genes se les hace una transformaci&oacute;n a escala de grises para que pueda ser tratada por las funciones encontradas en las librer&iacute;as de OpenCV. All&iacute; se utiliza la funci&oacute;n cvFindHomography() que recibe como par&aacute;metros, la localizaci&oacute;n de los puntos de homograf&iacute;a obtenidos con la elecci&oacute;n de los &ldquo;keypoints&rdquo; de la imagen. En la <a href="#f7">Figura 7</a>, se observan los &ldquo;keypoints&rdquo; correspondientes a las im&aacute;genes izquierda y derecha, respectivamente.</p>     <p align="center"><a name="f7"></a><img src="img/revistas/cein/v22n2/v22n2a07f7.jpg"></p>      <p>Luego de haber ejecutado la funci&oacute;n, se sobreponen dichas im&aacute;genes y se obtiene la vista panor&aacute;mica deseada. Para encontrar la correspondencia entre las im&aacute;genes, se emplea el m&eacute;todo de RANSAC (RAndom SAmple Consensus) &#91;11&#93;.</p>      <p>La matriz de homograf&iacute;a hallada tambi&eacute;n es usada en el procesamiento online como base para la uni&oacute;n de las im&aacute;genes que est&aacute;n siendo capturadas por la c&aacute;mara.</p>     <p><B>3.3.4. Redimensi&oacute;n</b></p>     ]]></body>
<body><![CDATA[<p>La detecci&oacute;n de obst&aacute;culos y del camino se realiz&oacute; de forma paralela; el hallazgo del camino se ejecut&oacute; con base en videos tomados previamente con una resoluci&oacute;n de 1280X720 a 15 fotogramas/segundo. Sin embargo, se hizo necesario redimensionar la imagen a 426X320 pixeles, ya que con este tama&ntilde;o, se hallaron las matrices necesarias para el proceso alterno (detecci&oacute;n de obst&aacute;culos y est&eacute;reo-correspondencia). </p>     <p>Para hacer el procesamiento m&aacute;s r&aacute;pido, se retira la parte superior de la imagen porque no brinda informaci&oacute;n &uacute;til y s&iacute; puede generar errores en el posterior procesamiento, por lo cual se queda &uacute;nicamente con la regi&oacute;n de inter&eacute;s que tiene un tama&ntilde;o de 426x210 pixeles. La nueva imagen es guardada para ser utilizada en los programas auxiliares que permiten establecer los valores necesarios para la transformaci&oacute;n geom&eacute;trica, lo mismo que la correspondencia entre distancia y pixeles. </p>     <p><B>3.3.5. Transformaci&oacute;n geom&eacute;trica </b></p>     <p>El &aacute;ngulo de vista bajo el cual se adquiere la escena y la distancia de los objetos desde la c&aacute;mara (nombrado el efecto de perspectiva), contribuyen a asociar contenido diferente de informaci&oacute;n a cada pixel de la imagen. La vista en perspectiva de la imagen original, tiene varias desventajas como la variaci&oacute;n del ancho de las marcas y sobretodo, una escala de distancia no lineal.</p>     <p>Para solucionar este problema, se realiz&oacute; una transformaci&oacute;n geom&eacute;trica llamada Inverse Perspective Mapping (IPM), que permite remover el efecto de la perspectiva. La aplicaci&oacute;n de la IPM requiere un conocimiento de las condiciones espec&iacute;ficas de adquisici&oacute;n (posici&oacute;n de la c&aacute;mara, orientaci&oacute;n, &oacute;ptica), y algunas suposiciones de la escena, as&iacute; que la IPM puede ser usada en ambientes estructurados donde por ejemplo: la c&aacute;mara est&aacute; montada en una posici&oacute;n fija o en situaciones donde la calibraci&oacute;n del sistema y el ambiente pueden ser sensados.</p>      <p>En esta etapa, se utiliz&oacute; el programa auxiliar prubirdseye, el &aacute;ngulo &alpha;, la distancia focal y las distancias en &ldquo;y&rdquo; y &ldquo;z&rdquo;; que var&iacute;an mediante trackbars, dando como resultado los siguientes valores: &alpha; = -84&deg; f=350 y= -11 z= 157; el valor m&aacute;s susceptible a cambiar el resultado es el &aacute;ngulo &alpha;, y por ello, para cualquier cambio de inclinaci&oacute;n debe ser variado; aqu&iacute; existe un gran inconveniente porque un terreno irregular lo lleva a cambiar demasiado, por lo cual este valor tendr&iacute;a que ser calculado din&aacute;micamente o el veh&iacute;culo llevar un sistema de suspensi&oacute;n lo suficiente bueno para evitar los sobresaltos. En la <a href="#f8">Figura 8</a>, se muestran los resultados de la IPM.</p>     <p align="center"><a name="f8"></a><img src="img/revistas/cein/v22n2/v22n2a07f8.jpg"></p>     <p><B>3.3.6. Detecci&oacute;n del camino </b></p>     <p>Luego de haber obtenido los valores para obtener la transformada geom&eacute;trica y la relaci&oacute;n entre pixeles y distancia, se trabaja con una imagen de prueba a la cual se le aplica el filtro Canny. </p>     <p><B>Filtro Canny. </B>Por medio de la funci&oacute;n void cvCanny(const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size=3), donde image es la imagen de entrada, edges la imagen de salida, ambas de un canal, threshold1 y threshold2, es el primer y segundo umbral correspondientemente. Por &uacute;ltimo, aperture_size son los par&aacute;metros de apertura del operador sobel.</p>     ]]></body>
<body><![CDATA[<p>El menor valor entre threshold1 y threshold2 se utiliza para vincular los bordes, el mayor valor se emplea para encontrar los segmentos iniciales de los contornos. Los resultados de aplicar el filtro Canny se pueden ver en la <a href="#f9">Figura 9</a>.</p>     <p align="center"><a name="f9"></a><img src="img/revistas/cein/v22n2/v22n2a07f9.jpg"></p>     <p><B>Transformada de Hough. </B>Luego de aplicar el filtro de Canny, se utiliza la transformada de Hough por medio de la funci&oacute;n en OpenCV houghlines2. Esta funci&oacute;n devuelve una secuencia de puntos iniciales y finales correspondiente a cada l&iacute;nea detectada; con el fin de obtener s&oacute;lo aquellas l&iacute;neas que corresponden al borde del camino, se debe eliminar las l&iacute;neas horizontales, adem&aacute;s de hallar un promedio entre las dem&aacute;s l&iacute;neas para obtener una sola que corresponda al borde. Para poder realizar el agrupamiento, se encuentran la pendiente y el punto de corte, y se plantea una relaci&oacute;n de semejanza; es as&iacute; como se promedian estas l&iacute;neas parecidas y se encuentran los dos bordes del camino.</p>      <p>Con base en estas dos l&iacute;neas previamente halladas, se determina su punto medio que corresponder&aacute; con el centro del camino. Los segmentos hallados y su l&iacute;nea central pueden verse en la <a href="#f10">Figura 10</a>.</p>     <p align="center"><a name="f10"></a><img src="img/revistas/cein/v22n2/v22n2a07f10.jpg"></p>     <p><B>3.3.7. Etapa de detecci&oacute;n de camino y guiado</b></p>     <p>Con base en los programas auxiliares y de prueba en donde se procesa s&oacute;lo una imagen, aplicando las diferentes transformaciones y c&aacute;lculos, se crea un nuevo programa en donde se manipula un video para guiar el m&oacute;vil por el centro del camino previamente detectado; se determina el valor del pixel en x, correspondiente al centro de la imagen, y comparando con el valor medio de las coordenadas en x de la l&iacute;nea generada en el paso anterior, se va indicando al robot m&oacute;vil mediante comandos enviados por Xbee, si debe moverse hacia la derecha o izquierda o continuar avanzando.</p>     <P><B><font size="3">4. INTEGRACI&Oacute;N DEL SISTEMA DE VISI&Oacute;N ARTIFICIAL A LA PLATAFORMA M&Oacute;VIL</font></b></p>     <p>Para que la plataforma m&oacute;vil pudiera desempe&ntilde;arse adecuadamente, fue necesario realizar la integraci&oacute;n de los dos programas principales y enviar las instrucciones de movimiento del software mediante el Xbee para que el robot generara los desplazamientos correspondientes. </p>      <p>La <a href="#f11">Figura 11</a> representa la integraci&oacute;n de software y el hardware de la plataforma m&oacute;vil. Existen programas que no requieren ejecuci&oacute;n permanente porque no se ven modificaciones en sus comportamientos y su tiempo de depuraci&oacute;n es largo, por lo cual se compilaron offline, mientras que hay unos que necesitan de su constante actualizaci&oacute;n o programas online. Los subprogramas realizados tanto online como offline, se separaron en dos temas fundamentales: detecci&oacute;n de obst&aacute;culos y detecci&oacute;n del camino, los cuales fueron explicados detalladamente en la secci&oacute;n anterior.</p>     ]]></body>
<body><![CDATA[<p align="center"><a name="f11"></a><img src="img/revistas/cein/v22n2/v22n2a07f11.jpg"></p>     <p>La parte de detecci&oacute;n de obst&aacute;culos tiene prioridad sobre la de detecci&oacute;n del camino; si se presenta una oclusi&oacute;n en el camino, el m&oacute;vil se detendr&aacute; hasta que dicho obst&aacute;culo sea retirado; se realiz&oacute; as&iacute; ya que el camino del escenario de prueba es muy delgado como para evitar el obst&aacute;culo y continuar.</p>     <P><B><font size="3">5. RESULTADOS Y AN&Aacute;LISIS</font></b></p>     <p>Las pruebas se hicieron con base a 13 escenarios en donde se grabaron videos correspondientes a la imagen derecha e izquierda, a los cuales se les aplicaron los algoritmos desarrollados, con el fin de comprobar el buen funcionamiento del programa desarrollado.</p>     <p>Tras realizar el proceso de calibraci&oacute;n y rectificaci&oacute;n, se hall&oacute; la profundidad a diferentes distancias, obteniendo los datos de la <a href="#t3">Tabla 3</a>. Al encontrar y promediar el error absoluto, el resultado es de 1.57 equivalente al 5.9%.</p>     <p align="center"><a name="t3"></a><img src="img/revistas/cein/v22n2/v22n2a07t3.jpg"></p>     <p>Al realizar las gr&aacute;ficas correspondientes de Distancia vs Disparidad representadas en la <a href="#f12">Figura 12</a>, se observa que tienen una relaci&oacute;n inversamente proporcional.</p>     <p align="center"><a name="f12"></a><img src="img/revistas/cein/v22n2/v22n2a07f12.jpg"></p>     <p>El c&aacute;lculo de la distancia se ve limitado, si hay una superficie muy regular porque al estar viendo entornos similares, no se encuentra diferencia alguna por lo cual no se genera un mapa de disparidad adecuado, por esto el robot presenta fallas en la evasi&oacute;n de obst&aacute;culos con objetos grandes con textura y color uniforme, tales como paredes.</p>      <p>Se realiz&oacute; el Warping de las im&aacute;genes, cuyas capturas son utilizadas como entrada en el programa Bird's eye que se encarga de hallar los par&aacute;metros adecuados para eliminar el efecto de la perspectiva.</p>     ]]></body>
<body><![CDATA[<p>Los par&aacute;metros var&iacute;an debido a diferentes factores como los cambios de inclinaci&oacute;n, las irregularidades y el ancho del terreno, adem&aacute;s de la posici&oacute;n inicial del robot; en la <a href="#t4">Tabla 4</a>, se muestran dichos par&aacute;metros obtenidos de 13 escenarios diferentes de pruebas. En la <a href="#f13">Figura 13</a>, se muestran los resultados de los escenarios que mostraron los comportamientos de &eacute;xito y de falla m&aacute;s notorios tras la ejecuci&oacute;n del programa. </p>     <p align="center"><a name="t4"></a><img src="img/revistas/cein/v22n2/v22n2a07t4.jpg"></p>     <p align="center"><a name="f13"></a><img src="img/revistas/cein/v22n2/v22n2a07f13.jpg"></p>      <p>El escenario 4 se puede considerar un escenario de falla debido a los cambios de inclinaci&oacute;n repentinos, as&iacute; como pasar de un campo abierto a un puente, lo cual hace que el reconocimiento de bordes no funcione de la manera deseada. Sin embargo, los escenarios 1 y 2 identifican en forma adecuada, los bordes y el centro del camino, por lo cual logran el objetivo de dirigir (enrutar), apropiadamente la plataforma.</p>      <P><B><font size="3">6. CONCLUSIONES</font></b></p>     <p>Los algoritmos de detecci&oacute;n de camino presentan dificultades por superar, como cambios de iluminaci&oacute;n, terrenos irregulares y ambientes poco estructurados, reflejados principalmente en la implementaci&oacute;n del programa en espacios interiores. A pesar de ello, se tiene una tasa de &eacute;xito significativa, obteniendo un error del 5.9% para encontrar obst&aacute;culos y alcanzando &eacute;xito en nueve de los 13 escenarios escogidos en la detecci&oacute;n y seguimiento del camino, lo cual representa aproximadamente el 70% de resultados satisfactorios.</p>     <p>Para realizar el algoritmo, fue necesario usar el Operador Canny y la Transformada de Hough entre otros; estas funciones otorgaron buenos resultados en la mayor&iacute;a de ocasiones; sin embargo, la extracci&oacute;n de bordes ten&iacute;a inconvenientes con terrenos de pocos contrastes o curvas, por lo cual la implementaci&oacute;n del agrupamiento K-means mejor&oacute; el reconocimiento de los l&iacute;mites del camino; no obstante, dicho algoritmo emple&oacute; un tiempo de c&oacute;mputo alto que no justificaba el beneficio otorgado.</p>     <p>El c&aacute;lculo de profundidad mediante mapas de disparidad, es exitoso en casos en los cuales se vea con claridad la diferencia entre la imagen obtenida por la c&aacute;mara izquierda y la c&aacute;mara derecha; estos resultados muestran un error de cerca del 6% y verifican la relaci&oacute;n inversamente proporcional que existe entre la distancia y la disparidad.</p> <hr>     <P><B><font size="3">REFERENCIAS BIBLIOGR&Aacute;FICAS</font></b></p>     <!-- ref --><p>&#91;1&#93; 	Jim&eacute;nez Robayo C.E., (2008). Dise&ntilde;o y construcci&oacute;n de un robot Scara con un sistema de visi&oacute;n de m&aacute;quina, que pueda ser utilizado como herramienta did&aacute;ctica en asignaturas de rob&oacute;tica y control. Trabajo de Grado (Ingeniero en Mecatr&oacute;nica). Facultad de ingenier&iacute;a, Universidad Militar Nueva Granada. Bogot&aacute;    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000162&pid=S0124-8170201200020000700001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->.</p>     <!-- ref --><p>&#91;2&#93; 	Mart&iacute;nez Mej&iacute;a D.A., (2005). Interceptor de trayectorias basado en visi&oacute;n artificial. Trabajo de Grado (Ingeniero Electr&oacute;nico). Facultad de Ingenier&iacute;a, Pontificia Universidad Javeriana. Bogot&aacute;. 103 p.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000164&pid=S0124-8170201200020000700002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;3&#93; 	Avi&ntilde;a Cervantes J.G., (2005). Navigation visuelle d'un robot mobile dans un environnement d'ext&eacute;rieur semi-structur&eacute;. Toulouse, Ph.D. Th&egrave;se, L'Institut National Polytechnique de Toulouse. 202 p.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000166&pid=S0124-8170201200020000700003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;4&#93; 	Avi&ntilde;a Cervantes J.G.; Deby M.; Hern&aacute;ndez Mar&iacute;n A., (2003). Lane extraction and tracking for robot navigation in agricultural applications. In: Proceedings of ICAR 2003: The 11th International Conference on Advanced Robotics. Coimbra, Portugal.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000168&pid=S0124-8170201200020000700004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;5&#93; 	Verrastro C. y Barneda R., (2006). Aplicaci&oacute;n de t&eacute;cnicas de rob&oacute;tica e inteligencia artificial sobre un robot m&oacute;vil utilizando el entorno de programaci&oacute;n visual studio.net M&oacute;dulo 3: Desarrollo de algoritmo de detecci&oacute;n de l&iacute;neas mediante visi&oacute;n artificial y control de trayectoria. Universidad Tecnol&oacute;gica Nacional. Facultad Regional. Grupo de Inteligencia Artificial y Rob&oacute;tica. Buenos Aires.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000170&pid=S0124-8170201200020000700005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;6&#93; 	Autom&aacute;tica e Inform&aacute;tica Industrial de la Universidad Polit&eacute;cnica de Madrid Departamento de Electr&oacute;nica. Apuntes visi&oacute;n artificial.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000172&pid=S0124-8170201200020000700006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;7&#93; 	Guerrero Hern&aacute;ndez J.M., Pajares Martinsanz G., y Guijarro Mata-Garc&iacute;a M.,  T&eacute;cnicas de procesamiento de im&aacute;genes estereosc&oacute;picas. Departamento de Ingenier&iacute;a de Software e Inteligencia Artificial. Universidad Complutense de Madrid.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000174&pid=S0124-8170201200020000700007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;8&#93; 	Universidad Polit&eacute;cnica de Madrid. Pr&aacute;cticas de rob&oacute;tica y visi&oacute;n artificial.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000176&pid=S0124-8170201200020000700008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;9&#93; 	Tarlea Jim&eacute;nez J., (2009). Sistema de posicionamiento de objetos mediante visi&oacute;n est&eacute;reo embarcable en veh&iacute;culos inteligentes. Trabajo de Grado (Ingeniero en Telecomunicaciones). Facultad de Ingenier&iacute;a. Universidad de Alcal&aacute;, Espa&ntilde;a, 104p.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000178&pid=S0124-8170201200020000700009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>&#91;10&#93; 	Bradsky G., and Kaehler A., (2008). Learning OpenCV: Computer Vision with the OpenCV library.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000180&pid=S0124-8170201200020000700010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <!-- ref --><p>&#91;11&#93; 	Davies E.R., (2012). Computer and Machine Vision: Theory, Algorithms, Practicalities.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000182&pid=S0124-8170201200020000700011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>  </font>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jiménez Robayo]]></surname>
<given-names><![CDATA[C.E]]></given-names>
</name>
</person-group>
<source><![CDATA[Diseño y construcción de un robot Scara con un sistema de visión de máquina, que pueda ser utilizado como herramienta didáctica en asignaturas de robótica y control]]></source>
<year>2008</year>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Martínez Mejía]]></surname>
<given-names><![CDATA[D.A]]></given-names>
</name>
</person-group>
<source><![CDATA[Interceptor de trayectorias basado en visión artificial]]></source>
<year>2005</year>
<page-range>103</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Aviña Cervantes]]></surname>
<given-names><![CDATA[J.G]]></given-names>
</name>
</person-group>
<source><![CDATA[Navigation visuelle d&#8217;un robot mobile dans un environnement d&#8217;extérieur semi-structuré]]></source>
<year>2005</year>
<page-range>202</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Aviña Cervantes]]></surname>
<given-names><![CDATA[J.G]]></given-names>
</name>
<name>
<surname><![CDATA[Deby]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Hernández Marín]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Lane extraction and tracking for robot navigation in agricultural applications]]></source>
<year>2003</year>
<conf-name><![CDATA[ Proceedings of ICAR 2003: The 11th International Conference on Advanced Robotics]]></conf-name>
<conf-loc>Coimbra </conf-loc>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Verrastro]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Barneda]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Aplicación de técnicas de robótica e inteligencia artificial sobre un robot móvil utilizando el entorno de programación visual studio.net Módulo 3: Desarrollo de algoritmo de detección de líneas mediante visión artificial y control de trayectoria]]></source>
<year>2006</year>
<publisher-loc><![CDATA[Buenos Aires ]]></publisher-loc>
<publisher-name><![CDATA[Universidad Tecnológica Nacional. Facultad Regional. Grupo de Inteligencia Artificial y Robótica]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="book">
<source><![CDATA[Automática e Informática Industrial de la Universidad Politécnica de Madrid Departamento de Electrónica]]></source>
<year></year>
<publisher-name><![CDATA[Apuntes visión artificial]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Guerrero Hernández]]></surname>
<given-names><![CDATA[J.M]]></given-names>
</name>
<name>
<surname><![CDATA[Pajares Martinsanz]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Guijarro Mata-García]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Técnicas de procesamiento de imágenes estereoscópicas]]></source>
<year></year>
<publisher-name><![CDATA[Departamento de Ingeniería de Software e Inteligencia Artificial. Universidad Complutense de Madrid]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<collab>Universidad Politécnica de Madrid</collab>
<source><![CDATA[Prácticas de robótica y visión artificial]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tarlea Jiménez]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Sistema de posicionamiento de objetos mediante visión estéreo embarcable en vehículos inteligentes]]></source>
<year>2009</year>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bradsky]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[Kaehler]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Learning OpenCV: Computer Vision with the OpenCV library]]></source>
<year>2008</year>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Davies]]></surname>
<given-names><![CDATA[E.R]]></given-names>
</name>
</person-group>
<source><![CDATA[Computer and Machine Vision: Theory, Algorithms, Practicalities]]></source>
<year>2012</year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
