<?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>0012-7353</journal-id>
<journal-title><![CDATA[DYNA]]></journal-title>
<abbrev-journal-title><![CDATA[Dyna rev.fac.nac.minas]]></abbrev-journal-title>
<issn>0012-7353</issn>
<publisher>
<publisher-name><![CDATA[Universidad Nacional de Colombia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0012-73532012000500003</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[APLICACIÓN DE UN ROBOT COMERCIAL DE BAJO COSTE EN TAREAS DE SEGUIMIENTO DE OBJETOS]]></article-title>
<article-title xml:lang="en"><![CDATA[APPLICATION OF A LOW COST COMMERCIAL ROBOT IN TASKS OF TRACKING OF OBJECTS]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[QUINTIÁN PARDO]]></surname>
<given-names><![CDATA[HÉCTOR]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[CALVO ROLLE]]></surname>
<given-names><![CDATA[JOSÉ LUIS]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[FONTENLA ROMERO]]></surname>
<given-names><![CDATA[OSCAR]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de La Coruña  ]]></institution>
<addr-line><![CDATA[La Coruña ]]></addr-line>
<country>España</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad de La Coruña  ]]></institution>
<addr-line><![CDATA[La Coruña ]]></addr-line>
<country>España</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Universidad de La Coruña  ]]></institution>
<addr-line><![CDATA[La Coruña ]]></addr-line>
<country>España</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>10</month>
<year>2012</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>10</month>
<year>2012</year>
</pub-date>
<volume>79</volume>
<numero>175</numero>
<fpage>24</fpage>
<lpage>33</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_arttext&amp;pid=S0012-73532012000500003&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_abstract&amp;pid=S0012-73532012000500003&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.co/scielo.php?script=sci_pdf&amp;pid=S0012-73532012000500003&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[La visión computacional desempeña un papel fundamental en el campo de la robótica móvil, dada la gran cantidad de información sobre el entorno que puede ser extraída de una imagen. El objetivo del trabajo desarrollado es conseguir un comportamiento autónomo de un robot comercial de bajo coste denominado Rovio, en la tarea de seguir un objeto móvil de forma autónoma. Para lograrlo, ha sido necesario desarrollar un conjunto de funciones, unas de manejo del robot y otras para llevar a cabo la comunicación y transferencia de datos con él.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[The computer vision plays a key role in the field of mobile robotics, given the large amount of information about the environment that can be extracted from an image. The aim of the work developed is to get a robot autonomous behavior of a low cost commercial called Rovio on the task of following a moving object independently. To achieve this, it has been necessary to develop a set of functions, ones for robot management and others to carry out communication and data transfer with it. Tests are performed to determine the stability of the proposed and implemented to measure the precision obtained.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Seguimiento]]></kwd>
<kwd lng="es"><![CDATA[ROVIO]]></kwd>
<kwd lng="es"><![CDATA[OpenCV]]></kwd>
<kwd lng="es"><![CDATA[detector de circularidad]]></kwd>
<kwd lng="es"><![CDATA[teleoperación]]></kwd>
<kwd lng="en"><![CDATA[Follow]]></kwd>
<kwd lng="en"><![CDATA[ROVIO]]></kwd>
<kwd lng="en"><![CDATA[OpenCV]]></kwd>
<kwd lng="en"><![CDATA[circularity detector]]></kwd>
<kwd lng="en"><![CDATA[teleoperation]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="center"><font size="4" face="Verdana, Arial, Helvetica, sans-serif"><b>APLICACI&Oacute;N DE UN ROBOT COMERCIAL DE BAJO COSTE EN TAREAS DE  SEGUIMIENTO DE OBJETOS</b></font></p>     <p align="center"><i><font size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">APPLICATION OF A LOW COST  COMMERCIAL ROBOT IN TASKS OF TRACKING OF OBJECTS</font></b></font></i></p>     <p align="center">&nbsp;</p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>H&Eacute;CTOR QUINTI&Aacute;N PARDO</b>    <br>   <i>Universidad de La Coru&ntilde;a, La Coru&ntilde;a, Espa&ntilde;a, Ingeniero Industrial, <a href="mailto:hector.quintian@udc.es">hector.quintian@udc.es</a></i></font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>JOS&Eacute; LUIS CALVO ROLLE</b>    <br>   <i>Universidad de La Coru&ntilde;a, La Coru&ntilde;a, Espa&ntilde;a, Doctor Ingeniero Industrial, <a href="mailto:jlcalvo@udc.es">jlcalvo@udc.es</a></i></font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>OSCAR FONTENLA ROMERO</b>    <br>   <i>Universidad de La Coru&ntilde;a, La Coru&ntilde;a, Espa&ntilde;a, Doctor en Inform&aacute;tica, <a href="mailto:ofontenla@udc.es">ofontenla@udc.es</a></i></font></p>     <p align="center">&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Recibido para revisar Diciembre 21 de 2011, aceptado Mayo 8 de 2012, versi&oacute;n final Mayo 14 de 2012</b></font></p>     <p>&nbsp;</p> <hr>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN:</b> La visi&oacute;n computacional desempe&ntilde;a un papel fundamental en el campo de la rob&oacute;tica m&oacute;vil, dada la gran cantidad de informaci&oacute;n sobre el entorno que puede ser extra&iacute;da de una imagen.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El objetivo del trabajo desarrollado es conseguir un comportamiento aut&oacute;nomo de un robot comercial de bajo coste denominado Rovio, en la tarea de seguir un objeto m&oacute;vil de forma aut&oacute;noma. Para lograrlo, ha sido necesario desarrollar un conjunto de funciones, unas de manejo del robot y otras para llevar a cabo la comunicaci&oacute;n y transferencia de datos con &eacute;l.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se realizan pruebas para determinar la estabilidad de la propuesta implementada y para poder medir la precisi&oacute;n que se obtiene.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>PALABRAS CLAVE:</b> Seguimiento, ROVIO, OpenCV, detector de circularidad, teleoperaci&oacute;n.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>ABSTRACT:</b> The computer vision plays a key role in the field of mobile robotics, given the large amount of information about the environment that can be extracted from an image.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">The aim of the work developed is to get a robot autonomous behavior of a low cost commercial called Rovio on the task of following a moving object independently. To achieve this, it has been necessary to develop a set of functions, ones for robot management and others to carry out communication and data transfer with it.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Tests are performed to determine the stability of the proposed and implemented to measure the precision obtained.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>KEYWORDS:</b> Follow, ROVIO, OpenCV, circularity detector, teleoperation.</font></p> <hr>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>1. INTRODUCCI&Oacute;N</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La rob&oacute;tica es una disciplina en la que se combinan diversas &aacute;reas de conocimiento como la mec&aacute;nica, electr&oacute;nica, inform&aacute;tica, inteligencia artificial, ingenier&iacute;a de control&hellip;, cuyo principal objetivo es la automatizaci&oacute;n de procesos para la reducci&oacute;n de costes y/o mejora de las condiciones laborales.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La rob&oacute;tica es capaz de aportar una mayor flexibilidad, una mejora de la calidad y un incremento de la seguridad laboral &#91;1&#93;. Por ello la rob&oacute;tica ha sido empleada en gran cantidad de procesos industriales como: manutenci&oacute;n de productos, soldadura, aplicaci&oacute;n de producto (pintura, pegado&hellip;), carga y descarga de m&aacute;quinas, mecanizaci&oacute;n, procesos de corte, ensamblado de productos, paletizaci&oacute;n, medici&oacute;n e inspecci&oacute;n &#91;2&#93;.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si bien en la actualidad los robots industriales realizan m&uacute;ltiples tareas con gran precisi&oacute;n y rapidez, el principal h&aacute;ndicap que presentan est&aacute; en la falta de movilidad de los mismos, pudiendo s&oacute;lo actuar dentro de la zona su trabajo, entendiendo esta como el volumen del espacio definido por los puntos accesibles por el elemento terminal del robot &#91;1&#93;.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Dentro de la rob&oacute;tica se encuentra la rob&oacute;tica m&oacute;vil, disciplina que se centra en el estudio de la movilidad de los robots. Dentro de la misma la mayor parte de las aplicaciones se centran bien en la teleoperaci&oacute;n de robots &#91;3&#93;(movimientos controlados por un operador humano), o bien en el comportamiento aut&oacute;nomo de los mismos (sin ning&uacute;n tipo de control por parte de los seres humanos).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la rob&oacute;tica m&oacute;vil, uno de los aspectos fundamentales es la obtenci&oacute;n de informaci&oacute;n del entorno en el que el robot se desenvuelve. Para ello los robots m&oacute;viles disponen de m&uacute;ltiples sensores, como pueden ser sensores de proximidad, de presi&oacute;n, de luz&hellip; Sin embargo la cantidad de informaci&oacute;n que se puede extraer de dichos sensores es limitada, sin embargo han sido utilizados en gran cantidad de trabajos como &#91;4,5&#93; debido a que la informaci&oacute;n procedente de dichos sensores es muy f&aacute;cil de procesar e interpretar. Una de las opciones de sensorizaci&oacute;n que mayor importancia tiene en la actualidad, est&aacute; en la visi&oacute;n computacional, ya que de a partir de una imagen es posible extraer gran cantidad de informaci&oacute;n como pueden ser distancias, ubicaci&oacute;n, posici&oacute;n, formas y colores de objetos&hellip;</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los principales inconvenientes que plantea la visi&oacute;n computacional en robots son el coste computacional que requiere la extracci&oacute;n y el procesado de informaci&oacute;n de im&aacute;genes, as&iacute; como la dependencia de las condiciones del entorno, en t&eacute;rminos de iluminaci&oacute;n, presencia de objetos, etc. Dicho coste no supondr&iacute;a un problema en otros &aacute;mbitos, sin embargo en la rob&oacute;tica m&oacute;vil s&iacute;, ya que la mayor&iacute;a de las operaciones sobre los robots deben realizarse en tiempo real.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este trabajo se presentan un conjunto de funciones para el manejo de un robot m&oacute;vil comercial denominado Rovio as&iacute; como un algoritmo basado en reglas para el seguimiento de objetos que utiliza instrucciones de tipo giro incremental, disponibles en el robot, para conseguir realizar el seguimiento de un objeto. La principal ventaja de este sistema frente a otros, es su baja carga computacional, lo que constituye un aspecto fundamental a la hora de conseguir un control en tiempo real&hellip;</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Muchos han sido los autores que han tratado tanto el seguimiento de objetos en tiempo real &#91;6-9&#93;, as&iacute; como el del desarrollo de controladores de gran precisi&oacute;n &#91;10-12&#93; o t&eacute;cnicas de control inteligente &#91;13-15&#93;.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sin embargo dichos estudios no son de aplicaci&oacute;n en el presente trabajo debido a dos motivos:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El robot empleado en este trabajo, dispone de un controlador interno con el que s&oacute;lo es posible comunicar mediante instrucciones preestablecidas, permitiendo s&oacute;lo &oacute;rdenes de giro &quot;incrementales&quot;, o &aacute;ngulos de giro absolutos no inferiores a 20 grados. Por ello no es posible tener gran precisi&oacute;n en el control de los actuadores.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El elevado coste temporal empleado en la transferencia de im&aacute;genes a la estaci&oacute;n de trabajo imposibilita el uso de algoritmos de control de gran precisi&oacute;n que precisan de un elevado coste computacional.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Este robot tambi&eacute;n ha sido previamente usado en algunos trabajos como en &#91;16&#93;, pero con una finalidad distinta a la del presente trabajo, siendo el objetivo de &#91;16&#93; el evitar obst&aacute;culos fijos en lugar de realizar el seguimiento de objetos como ocurre en el presente trabajo.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En los siguientes puntos se dar&aacute; una visi&oacute;n de la arquitectura del robot y se describir&aacute;n el conjunto de funciones desarrolladas para el control del robot, describiendo m&aacute;s en detalle el algoritmo de seguimiento empleado, para finalizar con un conjunto de experimentos encaminados a medir la estabilidad y precisi&oacute;n del sistema implementado.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>2. COMPONENTES DEL SISTEMA</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para poder realizar la esta investigaci&oacute;n han sido necesarios los siguientes elementos:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Robot m&oacute;vil comercial de bajo coste denominado Rovio.</font></li>       ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Estaci&oacute;n de trabajo formada por un ordenador con conexi&oacute;n wifi.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Router inal&aacute;mbrico.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>2.1. Robot m&oacute;vil    <br>   </b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se ha utilizado un robot comercial denominado Rovio que est&aacute; provisto de 3 ruedas omnidireccionales dispuestas en una configuraci&oacute;n de tri&aacute;ngulo, una de ellas trasera y las otras 2 a ambos lados del robot formando un &aacute;ngulo de 60 grados con respecto a la trasera (ver <a href="#fig01">figura 1</a>). Las dimensiones: 34.29 x 30.48 x 35.56 cm y el peso de: 2.3 Kg &#91;17&#93;.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <a name="fig01"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig01.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El robot Rovio dispone de: c&aacute;mara multiresoluci&oacute;n, sensor de infrarrojos, micr&oacute;fono, altavoz, leds en parte frontal y superior, antena de comunicaci&oacute;n wifi, brazo orientable en eje vertical para el posicionamiento de la c&aacute;mara (ver <a href="#fig02">figura 2</a>)&hellip;</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="fig02"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig02.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las principales ventajas del robot as&iacute; como de la configuraci&oacute;n empleada, son:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El sistema de control de los actuadores, as&iacute; como la comunicaci&oacute;n con los sensores, est&aacute; totalmente integrado en Rovio.</font></li>       ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Posee una gran movilidad, gracias a la disposici&oacute;n de sus ruedas.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como inconvenientes principales:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">a pesar de que dispone de una interfaz gr&aacute;fica para el manejo del robot, esta no es v&aacute;lida para el manejo aut&oacute;nomo del mismo, ya que es de c&oacute;digo cerrado, lo que ha llevado a tener que establecer el protocolo de comunicaci&oacute;n con el robot para el env&iacute;o de &oacute;rdenes y la lectura de datos.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El tiempo de transferencia de im&aacute;genes es elevado, lo que provoca que se tenga que usar una resoluci&oacute;n inferior a la m&aacute;xima permitida por el robot.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>2.2. Estaci&oacute;n de trabajo</b>    <br>   </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el presente trabajo, Rovio ser&aacute; manejado por una estaci&oacute;n de trabajo, consistente en un ordenador con conexi&oacute;n wifi, en la que se programar&aacute;n los comportamientos aut&oacute;nomos del robot y comunicando con &eacute;l a trav&eacute;s de wifi.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El proyecto ha sido desarrollado en el sistema operativo Linux bajo Ubuntu 9.10, en un ordenador port&aacute;til con procesador AMD Athlon 2650e con 2 GB de memoria RAM, con adaptador wifi 802.11b/g.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para el procesado y an&aacute;lisis de im&aacute;genes, se ha utilizado la librer&iacute;a de tratamiento de im&aacute;genes OpenCV &#91;20&#93;, teniendo como principal ventaja frente a otros programas de tratamiento de im&aacute;genes que este es de distribuci&oacute;n libre.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>2.3. Router inal&aacute;mbrico    <br>   </b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El proceso de comunicaci&oacute;n con Rovio se realiza a trav&eacute;s de wifi, bien por medio de router o bien directamente con el robot. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este proyecto la comunicaci&oacute;n es realizada a trav&eacute;s de un router inal&aacute;mbrico Thomsom TCW710 (<a href="#fig03">figura 3</a>).</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="fig03"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig03.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La comunicaci&oacute;n con Rovio se realiza a trav&eacute;s de wifi empleando el protocolo HTTP (HyperText Transfer Protocol), donde las &oacute;rdenes que son enviadas al robot, tienen que ser peticiones CGI (Common Gateway Interface) &#91;18&#93;. El protocolo HTTP es el protocolo usado en cada transacci&oacute;n de la web y cuyo objetivo es coordinar la transferencia de datos, en este caso, entre la estaci&oacute;n de trabajo y el robot.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El uso del sistema operativo Linux, permite el uso de un comando denominado &quot;CURL&quot;, con el que es posible la transferencia de datos entre la estaci&oacute;n de trabajo y el robot sin preocuparse del proceso de establecimiento y finalizaci&oacute;n de la comunicaci&oacute;n entre ambos. Sin embargo se ha preferido usar &quot;SOCKETS&quot; &#91;19&#93;, con los que es necesario establecer la comunicaci&oacute;n, solicitar el env&iacute;o de datos y finalizar la comunicaci&oacute;n. No obstante, con &quot;SOCKETS&quot;, se consigue que el proceso de comunicaci&oacute;n sea independiente del sistema oper&aacute;tico empleado, al contrario que con el comando &quot;CURL&quot;, el cual es propio de Linux.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>3. TRABAJO DESARROLLADO</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para la consecuci&oacute;n del objetivo global de la investigaci&oacute;n, ha sido necesario realizar tres grandes tareas, que se indican a continuaci&oacute;n:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Desarrollo y programaci&oacute;n de una librer&iacute;a de funciones para el control de Rovio desde el terminal de trabajo, en el cual se implementar&aacute;n los comportamientos aut&oacute;nomos.</font></li>       ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Desarrollo e implementaci&oacute;n de un algoritmo para el seguimiento de objetos, en concreto una pelota de color naranja.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Creaci&oacute;n de un API (Application Programming Interface) de la librer&iacute;a desarrollada para la documentaci&oacute;n de las funciones.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En los siguientes subapartados se desarrolla cada una de ellas por separado.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.1. Librer&iacute;a de funciones de control    <br>   </b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La interfaz gr&aacute;fica de que dispone Rovio es de c&oacute;digo cerrado. Por ello, el primer paso para el manejo de Rovio, ha sido la realizaci&oacute;n de una librer&iacute;a de funciones b&aacute;sicas para el control de los movimientos, recepci&oacute;n de im&aacute;genes, manejo de luces y comprobaci&oacute;n del estado de los distintos componentes: direcci&oacute;n de rotaci&oacute;n de cada rueda, n&uacute;mero de pulsos de los encoders de cada rueda desde la &uacute;ltima lectura, nivel de bater&iacute;a, etc. Tambi&eacute;n se implementa la funci&oacute;n de detecci&oacute;n de caras disponible en OpenCV, basada en el m&eacute;todo de Viola and Johns &#91;21&#93;. Por &uacute;ltimo se desarrollan dos funciones de mayor complejidad, usando como base las anteriores para la teleoperaci&oacute;n del robot y para el c&aacute;lculo del centroide de una pelota de color naranja.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Teleoperaci&oacute;n de Rovio</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El objetivo de esta funci&oacute;n, es conseguir que los movimientos del robot puedan ser totalmente controlados por un operador humano desde el teclado de la estaci&oacute;n de trabajo. Adem&aacute;s de un control total sobre los movimientos del robot tambi&eacute;n es necesaria la recepci&oacute;n de im&aacute;genes en tiempo real para que el operador humano pueda manejar el robot en el entorno en que este se encuentre, ya que el robot puede encontrarse en zonas donde el operador no est&eacute; presente.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se han implementado los mismos movimientos disponibles en la interfaz gr&aacute;fica. Tambi&eacute;n se ha a&ntilde;adido la posibilidad de mover el &quot;cuello&quot; de Rovio con incrementos de 5 grados, lo cual no es posible en la interfaz gr&aacute;fica, en la que el &quot;cuello&quot; (ver <a href="#fig01">figura 1</a>), s&oacute;lo puede adoptar 3 posiciones, baja, media o alta. Esta nueva funcionalidad ha sido desarrollada con objeto de poder realizar el seguimiento de un objeto tambi&eacute;n en el eje vertical si fuese necesario.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para la teleoperaci&oacute;n, cada vez que se recibe una imagen, se leen los eventos producidos en el teclado vaciando el buffer del mismo, ya que al pulsar de manera continua, el n&uacute;mero de pulsaciones almacenadas es dependiente de la configuraci&oacute;n del teclado. Se asocia a cada evento de teclado una acci&oacute;n, enviando la instrucci&oacute;n correspondiente a Rovio mediante petici&oacute;n CGI.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>C&aacute;lculo del centroide</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El objetivo de esta funci&oacute;n es calcular el centroide de una pelota de color naranja dentro de una imagen enviada por Rovio. Para ello se opt&oacute; por dos alternativas:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La primera se basa s&oacute;lo en el color de los objetos para el c&aacute;lculo del centroide.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La segunda tiene en cuenta adem&aacute;s la forma de los objetos.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La detecci&oacute;n s&oacute;lo por color tiene un coste computacional inferior a la detecci&oacute;n por color y forma, sin embargo la detecci&oacute;n mediante color y forma aporta una mayor robustez a la detecci&oacute;n, permitiendo distinguir entre objetos de distintas formas y mismo color.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Bas&aacute;ndose s&oacute;lo en el color</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se calcula el centroide s&oacute;lo del conjunto de puntos cuyos valores RGB (Red, Green, Blue) se encuentre pr&oacute;ximos a los valores del naranja de la pelota buscada. Para dicho c&aacute;lculo se siguen los siguientes pasos:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se recorre la imagen pixel a pixel, realizando la suma de las coordenadas de aquellos pixeles cuyo valor de RGB este dentro del rango de valores de RGB que se consideran como el color naranja de la pelota buscada.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se guarda el n&uacute;mero total de pixeles que cumplen la condici&oacute;n anterior.</font></li>       ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si el n&uacute;mero total de pixeles del paso anterior es inferior a 20, se reporta como falso positivo, lo que implica que no hay ninguna pelota dentro de la imagen.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si el n&uacute;mero total de pixeles del paso anterior es superior a 20, se divide la suma realizada en el primer paso, entre el n&uacute;mero total de pixeles del segundo paso, obteni&eacute;ndose as&iacute; el centroide de la pelota buscada.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Bas&aacute;ndose en el color y la forma</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este m&eacute;todo, a la imagen lo primero que se le aplica es un detector de circularidad, de modo que se descarte cualquier objeto que no sea un c&iacute;rculo. Una vez identificado todo aquello que constituye un c&iacute;rculo, caben 3 posibilidades:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">si no hay ning&uacute;n circulo, no habr&aacute; pelota, </font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">si hay un c&iacute;rculo, se comprobar&aacute; si los valores medios de RGB en el interior del c&iacute;rculo, son pr&oacute;ximos a los valores de referencia, en cuyo caso se considera que es el objeto buscado.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si hay m&aacute;s de un c&iacute;rculo, se comprobar&aacute; cu&aacute;l de ellos tiene unos valores de RGB m&aacute;s pr&oacute;ximos a los de referencia, estableciendo el mismo como la pelota buscada.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De esta forma es posible discriminar objetos del mismo color que no sean la pelota y tambi&eacute;n se consigue ser menos restrictivo en cuanto a nivel de iluminaci&oacute;n. La <a href="#fig04">figura 4</a> muestra, con un c&iacute;rculo rojo el centroide obtenido usando solo el filtro de color, y con un c&iacute;rculo verde, el centroide usando el filtro de color m&aacute;s el detector de circularidad. Los pixels filtrados por el filtro de color han sido pintados en azul.</font></p>     ]]></body>
<body><![CDATA[<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="fig04"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig04.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>3.2. Algoritmo de seguimiento y acercamiento a pelota    <br>   </b></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El objetivo del algoritmo desarrollado es el realizar el seguimiento y acercamiento a un objeto mediante el robot Rovio de forma aut&oacute;noma. En particular se ha implementado el seguimiento de una pelota de color naranja.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El seguimiento de objetos ha sido objeto de estudio de en m&uacute;ltiples trabajos &#91;3-6&#93;, en los cuales se obtienen resultados muy precisos gracias a que se dispone del modelo cinem&aacute;tico del robot o bien mediante el uso de algoritmos de control complejos y con elevado coste computacional. Sin embargo, el robot empleado en este estudio no permite ninguna de las anteriores alternativas, ya que no se dispone del modelo cinem&aacute;tico del mismo y el coste computacional empleado en la transferencia de im&aacute;genes hace inviable el empleo de algoritmos con un alto coste computacional. Por ello el algoritmo desarrollado consiste en un sistema basado en reglas, con bajo coste computacional. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A continuaci&oacute;n se presenta el pseudoc&oacute;digo de dicho algoritmo basado en reglas:</font></p>     <p><img src="/img/revistas/dyna/v79n175/v79n175a03alg01.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Instrucciones para el movimiento de Rovio</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para realizar la implementaci&oacute;n del algoritmo desarrollado, es necesario el uso de instrucciones de giro del robot. Para ello, Rovio dispone de dos tipos de instrucciones de giro distintas &#91;22&#93;:</font></p> <ul>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&quot;Giro incremental&quot;.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">&quot;Girar un &aacute;ngulo&quot;</font></li>     ]]></body>
<body><![CDATA[</ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La primera variante, son instrucciones de giro que por s&iacute; solas no son capaces de vencer las fuerzas internas del robot, por lo que deben de combinarse una sucesi&oacute;n de instrucciones en un corto espacio de tiempo, produciendo peque&ntilde;os movimientos. El principal inconveniente es que no permite precisar con exactitud los grados que va a girar el robot, sin embargo, experimentalmente se ha comprobado que se puede conseguir un &aacute;ngulo de giro de entre 3 y 6 grados, concatenando 3 instrucciones de giro.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La segunda variante las instrucciones de giro permiten que el robot gire unos determinados &aacute;ngulos (20&ordm;, 30&ordm;, 45&ordm;, 55&ordm;, 65&ordm;, etc.). El principal problema que plantea es la imposibilidad de realizar giros de &aacute;ngulo inferior a 20&ordm;. Como variante de esta opci&oacute;n estar&iacute;a el enviar una instrucci&oacute;n de giro de 90&ordm;, seguida por una instrucci&oacute;n de parada con un espacio de tiempo para que gire el &aacute;ngulo deseado, sin embargo los retardos producidos por el coste temporal de la recepci&oacute;n y procesado de im&aacute;genes imposibilitan dicha opci&oacute;n.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Algoritmo de seguimiento y acercamiento</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El algoritmo desarrollado realiza el seguimiento y acercamiento a un objeto, en este estudio se trata de una pelota de color naranja, sin embargo este algoritmo s&oacute;lo precisa las coordenadas del centroide del objeto a seguir, de modo que el proceso de detecci&oacute;n y c&aacute;lculo del centroide es competencia de la funci&oacute;n explicada en el apartado anterior.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El algoritmo implementado es un sistema basado en reglas que lo que hace es determinar la posici&oacute;n del objeto respecto al centro de la imagen, para determinar en qu&eacute; direcci&oacute;n debe de moverse Rovio. Tambi&eacute;n se almacena la &uacute;ltima posici&oacute;n del objeto, para poder determinar, por diferencia con la posici&oacute;n actual, la direcci&oacute;n que est&aacute; siguiendo el objeto. De esta forma, en caso de que el objeto salga del campo de visi&oacute;n de Rovio, el robot seguir&aacute; girando en la misma direcci&oacute;n hasta encuadrarlo de nuevo dentro de su campo de visi&oacute;n.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Experimentalmente se ha comprobado que para poder obtener un adecuado refresco de im&aacute;genes (un refresco de unos 100ms) a la par de conseguir que el robot se mueva de forma fluida y no intermitente, era necesario enviar una instrucci&oacute;n de giro cada vez que se reciba una imagen, en lugar de enviar varias instrucciones de giro entre im&aacute;genes consecutivas. Adem&aacute;s no se debe de realizar m&aacute;s de tres veces consecutivas el ciclo de recepci&oacute;n de imagen y env&iacute;o de una misma instrucci&oacute;n. Es decir si se quiere que el robot gire a la derecha, recibiremos una imagen y enviaremos una instrucci&oacute;n de giro a derecha, recibiremos la siguiente y enviaremos una nueva instrucci&oacute;n, recibiremos la tercera imagen y enviaremos la tercera instrucci&oacute;n, recibiremos la cuarta y sin embargo no podremos enviar una cuarta instrucci&oacute;n igual a las dem&aacute;s, sino que tendremos que esperar a una sexta imagen. De esta forma evitamos que la inercias alcanzadas por Rovio sean excesivas (espera de 2 ciclos por cada 3 ciclos de movimiento), consiguiendo un mayor control sobre Rovio.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El n&uacute;mero de ciclos de acci&oacute;n consecutivos y de espera, han sido calculados de forma experimental y sobre un mismo tipo de suelo (baldosa lisa), sin embargo para otros suelos con mayores coeficientes de fricci&oacute;n, esta relaci&oacute;n podr&iacute;a aumentar, obteni&eacute;ndose un movimiento m&aacute;s r&aacute;pido, con el mismo ratio de error. Relaciones inferiores de 3 a 2 har&iacute;an que Rovio se moviese de forma no continua o incluso que no llegase a moverse.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>4. PRUEBAS REALIZADAS</b></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se realizan pruebas al algoritmo de seguimiento y acercamiento a pelota una vez implementado, utilizando en todas ellas la m&iacute;nima velocidad de movimiento permitida por el robot, con objeto de ver los resultados que se obtienen con &eacute;l. Las principales pruebas realizadas son las dos que se muestran a continuaci&oacute;n:</font></p> <ol>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se dispuso una pelota naranja de 6 cm de di&aacute;metro a una distancia de 92 cm de la rueda trasera de Rovio y 28 cm a la derecha de la misma (<a href="#fig05">figura 5</a>). El objetivo de esta prueba es que el robot mediante el algoritmo desarrollado centre la pelota lo m&aacute;s r&aacute;pido que pueda as&iacute; como con el menor error posible. Par ello se parte de la posici&oacute;n inicial mostrada en la <a href="#fig05">figura 5</a> y se arranca el algoritmo para que centre la pelota, al mismo tiempo que se toman medidas de posici&oacute;n de la pelota en la imagen en distintos instantes temporales desde el inicio del algoritmo hasta la estabilizaci&oacute;n del robot. </font></li>     </ol>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <a name="fig05"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig05.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Dicha prueba se repiti&oacute; para distintos m&aacute;rgenes de error permitidos respecto al centro de la imagen (<a href="#fig06">figura 6</a>), para determinar qu&eacute; valores de margen de error eran aceptables para obtener un control estable de Rovio.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="fig06"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig06.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este experimento, s&oacute;lo se tienen en consideraci&oacute;n las coordenadas en el eje horizontal, ya que las verticales implicar&iacute;an un movimiento del &aacute;ngulo de la c&aacute;mara, siendo el control mucho m&aacute;s complejo. Adem&aacute;s, estas medidas se han elegido de forma que la pelota quede lo m&aacute;s a la derecha de la imagen, para que as&iacute; Rovio adquiera la m&aacute;xima inercia posible, que se corresponder&iacute;a con el peor caso.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se realizaron 3 pruebas para m&aacute;rgenes de error respecto del centro de la imagen, del &plusmn;20% del ancho de la imagen, de &plusmn;10% y del &plusmn;5% (<a href="#fig06">figura 6</a>).</font></p> <ol>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el segundo experimento lo que se ha tratado es de medir el error producido usando las instrucciones de giro de que dispone Rovio. Estas medidas son dependientes del suelo sobre el que este Rovio por lo que en los experimentos se ha usado un suelo de baldosa lisa, ya que provoca los mayores errores por el bajo coeficiente de rozamiento de dicho suelo.</font></li>     </ol>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este experimento, se han realizado 5 medidas para cada uno de los &aacute;ngulos de giro disponibles en forma de instrucci&oacute;n, se ha promediado y calculado los errores y su desviaci&oacute;n. Los &aacute;ngulos disponibles en forma de instrucci&oacute;n son 20&ordm;, 30&ordm;, 45&ordm;, 55&ordm;, 65&ordm;, 80&ordm;, 90&ordm;, 100&ordm;, 110&ordm;, 125&ordm;, 135&ordm;, 150&ordm;, 160&ordm;, 170&ordm; y 180&ordm;. Todos ellos pueden realizarse tanto a la derecha como a la izquierda, cubriendo as&iacute; un &aacute;rea de giro de 360 &ordm;.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para realizar las medidas se ha utilizado una c&aacute;mara ubicada en el techo, se ha tomado una imagen de referencia, y con cada instrucci&oacute;n de giro se toma una nueva imagen, de modo que, superponiendo las im&aacute;genes, se puede calcular el &aacute;ngulo girado con cada instrucci&oacute;n.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="fig07"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig07.gif"></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>5. RESULTADOS</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En este apartado se muestran los resultados de los 2 experimentos realizados, cuya metodolog&iacute;a ha sido explicada en el apartado anterior.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Primer experimento</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el primer experimento se grafica la posici&oacute;n de la pelota en pixeles (eje vertical), en funci&oacute;n del tiempo en milisegundos (eje horizontal) (<a href="#fig09">figura 9</a>) para distintos m&aacute;rgenes de error permitidos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para graficar la respuesta obtenida, se ha procedido a realizar un desplazamiento del eje de coordenadas de modo que el nuevo eje de coordenadas se sit&uacute;e sobre el centro de la pelota en su posici&oacute;n inicial (<a href="#fig08">figura 8</a>). El eje de coordenadas original se sit&uacute;a en la esquina superior izquierda de la imagen (im&aacute;genes de 320x240), por lo que para desplazarlo al centro de la pelota, la cual se encuentra a 300 pixeles a la derecha del borde izquierdo de la imagen, ser&aacute; necesario restar a las coordenadas originales 300 pixeles en el eje horizontal y cambiar el signo resultante, ya que el nuevo eje de coordenadas se incrementa hacia la izquierda. As&iacute; por ejemplo si el c&aacute;lculo del centroide de la pelota da como resultado (280,y), al mover el eje de coordenadas, tendremos (280-300)*-1=+20 lo que quiere decir que la pelota se ha desplazado 20 pixeles a la izquierda de la posici&oacute;n inicial de la misma.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="fig08"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig08.gif"></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mediante este cambio del eje de coordenadas, el centro de la imagen tendr&aacute; coordenadas (160,y), y un punto en el extremo derecho de la imagen tendr&aacute; (-20,y).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para el primer experimento, se obtuvieron los siguientes resultados:</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="fig09"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig09.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las l&iacute;neas continuas en color, representan los m&aacute;rgenes de % admitidos, por lo que para que el sistema sea estable la respuesta (l&iacute;nea discontinua) debe de permanecer, despu&eacute;s del estado transitorio, dentro de los m&aacute;rgenes de error (l&iacute;neas continuas). La l&iacute;nea continua negra representa las coordenadas del centro de la imagen (<a href="#fig09">figuras 9</a> y <a href="#fig10">10</a>).</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="fig10"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03fig10.gif"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Segundo experimento</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el segundo, se representa en una tabla el &aacute;ngulo real girado por cada instrucci&oacute;n de &quot;girar un &aacute;ngulo&quot; de las que dispone Rovio. Dichas medidas han sido realizadas 5 veces para cada &aacute;ngulo, obteni&eacute;ndose la media de los &aacute;ngulos girados, el error medio y la desviaci&oacute;n (<a href="#tab01">tabla 1</a>).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para el segundo experimento, se obtuvieron los siguientes resultados:</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a name="tab01"></a></font><img src="/img/revistas/dyna/v79n175/v79n175a03tab01.gif"></p>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>6. CONCLUSIONES Y DISCUSION</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">De los resultados anteriores se deduce que un margen igual o inferior al &plusmn;5% de error, da lugar a que la respuesta del sistema sea oscilante &#91;23&#93;, &#91;24&#93; de modo que no ser&aacute; posible conseguir centrar la pelota dentro de ese margen.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si se aumenta el margen de error permitido, se observa que se consigue estabilizar el sistema, obteniendo en el caso de &plusmn;10% una respuesta con mayor sobreoscilaci&oacute;n &#91;24&#93;, &#91;25&#93; que en el caso del &plusmn;20% donde la respuesta no presenta ning&uacute;n tipo de sobreoscilaci&oacute;n. Ello es debido a que al aumentar los m&aacute;rgenes, una vez que se entre dentro de la zona de error permitido, se dejar&aacute; de enviar ordenes de movimiento al robot, teniendo un mayor margen de espacio para que act&uacute;e la inercia sin conseguir que el centro de la pelota salga de los m&aacute;rgenes establecidos. La opci&oacute;n m&aacute;s recomendable es la del &plusmn;20%, ya que si se efect&uacute;a el seguimiento de un objeto en movimiento con fuertes y constantes cambios de direcci&oacute;n, el margen del &plusmn;10% en ocasiones no es suficiente, provocando inestabilidades.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En cuanto a los resultados del segundo experimento, se deduce que el error medio cometido por las instrucciones de giro, es de 1.4&ordm;, sin embargo el error tiene una alta repetitividad. Esto se debe a que Rovio dispone de un encoder en cada una de las ruedas, el cual le aporta informaci&oacute;n precisa sobre el &aacute;ngulo girado, sin embargo, el error no es cero, puesto que cuando se produce un deslizamiento de una de las ruedas, el robot no se mueve pero si se computa el &aacute;ngulo giro por la rueda. Este deslizamiento es muy dependiente de la superficie sobre la que se mueva el robot, por ello en los experimentos realizados se ha elegido una superficie con poco agarre, como es el caso de la baldosa lisa.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El principal problema de estas instrucciones de &quot;girar un &aacute;ngulo&quot;, es que Rovio no dispone de &aacute;ngulos de giro inferiores a 20&ordm;, por lo que este tipo de instrucciones no servir&aacute;n para realizar el seguimiento de un objeto de forma estable.</font></p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>REFERENCIAS </b></font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>&#91;1&#93;</b> Siegwart, R., Introduction to autonomous mobile robots. The MIT Press, 2004.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000160&pid=S0012-7353201200050000300001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;2&#93;</b> Turiel, J., Fraile, J.C. and Peran, J. R., Aplicaciones de la Rob&oacute;tica: &Uacute;ltimas tendencias y nuevas perspectivas, Dyna, pp. 61-68, 2002.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000161&pid=S0012-7353201200050000300002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;3&#93;</b> Santonja, R. A. and Sabater, J., Robots trepadores de estructura paralela Dyna, pp. 55-59, 2000.    &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=S0012-7353201200050000300003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;4&#93;</b> Floreano, D. and Mondada, F., Evolutionary neurocontrollers for autonomous mobile robots, Neural networks : the official journal of the International Neural Network Society, vol. 11, no. 7-8, pp. 1461-1478, Oct. 1998.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000163&pid=S0012-7353201200050000300004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;5&#93;</b> Meeden, L., An incremental approach to developing intelligent neural network controllers for robots, IEEE transactions on systems, man, and cybernetics. Part B, vol. 26, no. 3, pp. 474-85, Jan. 1996.    &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=S0012-7353201200050000300005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;6&#93;</b> Brezak, M., and Petrovic, I., Global Vision Based Tracking of Multiple Mobile Robots in Subpixel Precision, 2007 5th IEEE International Conference on Industrial Informatics, pp. 473-478, Jul. 2007.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000165&pid=S0012-7353201200050000300006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;7&#93;</b> Rui, L., Zhijiang, D. and LINING, S., Moving Object Tracking based on Mobile Robot Vision, Area, pp. 3625-3630, 2009.    &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=S0012-7353201200050000300007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;8&#93;</b> Rokunuzzaman, MD., Sekiyama, K. and Fukuda, T., Real Time Detection and Evaluation of Region Of Interest by Mobile Robot using Vision, 18th IEEE International Symposium on Robot and Human Interactive Communication, pp.1149 - 1154, 2009.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000167&pid=S0012-7353201200050000300008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;9&#93;</b> Guo, X., Wang, C. and Qu, Z., Object Tracking for Autonomous Mobile Robot based on Feedback of Monocular-vision 2007 2nd IEEE Conference on Industrial Electronics and Applications, pp. 467-470, May. 2007.    &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=S0012-7353201200050000300009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;10&#93;</b> Xu, D., Zhao, D., YI, J. and Tan, X., Trajectory Tracking Control of a Four-wheel Differentially Driven Mobile Robot, IEEE transactions on systems, man, and cybernetics. Part B, vol. 39, no. 3, pp. 788-99, Jul. 2009.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000169&pid=S0012-7353201200050000300010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;11&#93;</b> Hwang, W., Park, J., Kwon, H. and Anjum, M., Vision tracking system for mobile robots using two Kalman filters and a slip detector, 2010 International Conference on Control Automation and Systems (ICCAS),, pp. 2041-2046, 2010.    &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=S0012-7353201200050000300011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;12&#93;</b> Fukao, T., Nakagawa, H. and Adachi, N., Adaptive tracking control of a nonholonomic mobile robot, IEEE Transactions on Robotics and Automation, vol. 16, no. 5, pp. 609-615, 2000.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000171&pid=S0012-7353201200050000300012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;13&#93;</b> Mach&aacute;n-Gonz&aacute;lez, I., L&oacute;pez-Garc&iacute;a, H. and Calvo-Rolle, J. L., Controlador Neuro-Robusto para sistemas no lineales, Dyna, vol. 86, pp. 308-317, 2011.    &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=S0012-7353201200050000300013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;14&#93;</b> Jim&eacute;nez, J.A., Ovalle, D.A., Ochoa, J.F., SMART: Sistemas Multi-Agente Rob&oacute;tico, Dyna, 75 (154), pp. 179-186, 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000173&pid=S0012-7353201200050000300014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;15&#93;</b> Ram&iacute;rez, J.F., Jim&eacute;nez, J.A., &Aacute;lvarez, J.S., Ciclo de dise&ntilde;o de un robot para el aprendizaje y desarrollo de la creatividad en ingenier&iacute;a, Dyna, 170, pp. 51-58, 2011.    &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=S0012-7353201200050000300015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;16&#93;</b> Begum, A. and Lee, M., A Simple Visual Servoing and Navigation Algorithm for an Omnidirectional Robot, Human-Centric Computing (HumanCom), pp. 1-5, 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000175&pid=S0012-7353201200050000300016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;17&#93;</b> WOWWEE GROUP LIMITED, Rovio user manual, 2008.    &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=S0012-7353201200050000300017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;18&#93;</b> Mora, S. L., Programaci&oacute;n de servidores web con CGI, SSI e IDC, Club Universitario, p. 1, 2001.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000177&pid=S0012-7353201200050000300018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;19&#93;</b> Donahoo, M. J. and Calvert, K. L., TCP/IP sockets in C: practical guide for programmers, Morgan Kaufmann Pub, 2009.    &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=S0012-7353201200050000300019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;20&#93;</b> Bradski, G. and Kaehler, A., Learning OpenCV, O´Reilly, Sep. 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000179&pid=S0012-7353201200050000300020&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;21&#93;</b> Viola, P. and Jones, M., Robust real-time object detection, International Journal of Computer Vision, vol. 57, no. 2, pp. 137-154, 2002.    &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=S0012-7353201200050000300021&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;22&#93;</b> WOWWEE GROUP LIMITED, API Specification for Rovio, 2008.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000181&pid=S0012-7353201200050000300022&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;23&#93;</b> Dorsey, J., Sistemas de control continuos y discretos, McGraw-Hill, 2005.    &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=S0012-7353201200050000300023&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;24&#93;</b> Ogata, K., Modern Control Engineering, Prince Hall, P. 965, 2002.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000183&pid=S0012-7353201200050000300024&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><br>   <b>&#91;25&#93;</b> Silva, C. W. D., Modeling and Control of Engineering Systems, CRC Press, 2009.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=000184&pid=S0012-7353201200050000300025&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Siegwart]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<source><![CDATA[Introduction to autonomous mobile robots]]></source>
<year>2004</year>
<publisher-name><![CDATA[The MIT Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Turiel]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Fraile]]></surname>
<given-names><![CDATA[J.C.]]></given-names>
</name>
<name>
<surname><![CDATA[Peran]]></surname>
<given-names><![CDATA[J. R.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Aplicaciones de la Robótica: Últimas tendencias y nuevas perspectivas]]></article-title>
<source><![CDATA[Dyna]]></source>
<year>2002</year>
<page-range>61-68</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Santonja]]></surname>
<given-names><![CDATA[R. A.]]></given-names>
</name>
<name>
<surname><![CDATA[Sabater]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Robots trepadores de estructura paralela]]></article-title>
<source><![CDATA[Dyna]]></source>
<year>2000</year>
<page-range>55-59</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Floreano]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Mondada]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Evolutionary neurocontrollers for autonomous mobile robots, Neural networks]]></article-title>
<source><![CDATA[the official journal of the International Neural Network Society]]></source>
<year>Oct.</year>
<month> 1</month>
<day>99</day>
<volume>11</volume>
<numero>7-8</numero>
<issue>7-8</issue>
<page-range>1461-1478</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Meeden]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An incremental approach to developing intelligent neural network controllers for robots]]></article-title>
<source><![CDATA[IEEE transactions on systems, man, and cybernetics. Part B]]></source>
<year>Jan.</year>
<month> 1</month>
<day>99</day>
<volume>26</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>474-85</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Brezak]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Petrovic]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Global Vision Based Tracking of Multiple Mobile Robots in Subpixel Precision]]></article-title>
<source><![CDATA[]]></source>
<year>Jul.</year>
<month> 2</month>
<day>00</day>
<conf-name><![CDATA[ 2007 5th IEEE International Conference on Industrial Informatics]]></conf-name>
<conf-loc> </conf-loc>
<page-range>473-478</page-range></nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rui]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Zhijiang]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[LINING]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
</person-group>
<source><![CDATA[Moving Object Tracking based on Mobile Robot Vision]]></source>
<year>2009</year>
<page-range>3625-3630</page-range></nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Rokunuzzaman]]></surname>
<given-names><![CDATA[MD.]]></given-names>
</name>
<name>
<surname><![CDATA[Sekiyama]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
<name>
<surname><![CDATA[Fukuda]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Real Time Detection and Evaluation of Region Of Interest by Mobile Robot using Vision]]></article-title>
<source><![CDATA[]]></source>
<year>2009</year>
<conf-name><![CDATA[ 18th IEEE International Symposium on Robot and Human Interactive Communication]]></conf-name>
<conf-loc> </conf-loc>
<page-range>1149 - 1154</page-range></nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Guo]]></surname>
<given-names><![CDATA[X.]]></given-names>
</name>
<name>
<surname><![CDATA[Wang]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Qu]]></surname>
<given-names><![CDATA[Z.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Object Tracking for Autonomous Mobile Robot based on Feedback of Monocular-vision 2007]]></article-title>
<source><![CDATA[]]></source>
<year>May.</year>
<month> 2</month>
<day>00</day>
<conf-name><![CDATA[ 2nd IEEE Conference on Industrial Electronics and Applications]]></conf-name>
<conf-loc> </conf-loc>
<page-range>467-470</page-range></nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Xu]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Zhao]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[YI]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Tan]]></surname>
<given-names><![CDATA[X.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Trajectory Tracking Control of a Four-wheel Differentially Driven Mobile Robot]]></article-title>
<source><![CDATA[IEEE transactions on systems, man, and cybernetics. Part B]]></source>
<year>Jul.</year>
<month> 2</month>
<day>00</day>
<volume>39</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>788-99</page-range></nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hwang]]></surname>
<given-names><![CDATA[W.]]></given-names>
</name>
<name>
<surname><![CDATA[Park]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Kwon]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
<name>
<surname><![CDATA[Anjum]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Vision tracking system for mobile robots using two Kalman filters and a slip detector]]></article-title>
<source><![CDATA[]]></source>
<year>2010</year>
<conf-name><![CDATA[ 2010 International Conference on Control Automation and Systems (ICCAS)]]></conf-name>
<conf-loc> </conf-loc>
<page-range>2041-2046</page-range></nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fukao]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
<name>
<surname><![CDATA[Nakagawa]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
<name>
<surname><![CDATA[Adachi]]></surname>
<given-names><![CDATA[N.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Adaptive tracking control of a nonholonomic mobile robot]]></article-title>
<source><![CDATA[IEEE Transactions on Robotics and Automation]]></source>
<year>2000</year>
<volume>16</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>609-615</page-range></nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Machán-González]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[López-García]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
<name>
<surname><![CDATA[Calvo-Rolle]]></surname>
<given-names><![CDATA[J. L.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Controlador Neuro-Robusto para sistemas no lineales]]></article-title>
<source><![CDATA[Dyna]]></source>
<year>2011</year>
<numero>86</numero>
<issue>86</issue>
<page-range>308-317</page-range></nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jiménez]]></surname>
<given-names><![CDATA[J.A.]]></given-names>
</name>
<name>
<surname><![CDATA[Ovalle]]></surname>
<given-names><![CDATA[D.A.]]></given-names>
</name>
<name>
<surname><![CDATA[Ochoa]]></surname>
<given-names><![CDATA[J.F.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[SMART:: Sistemas Multi-Agente Robótico]]></article-title>
<source><![CDATA[Dyna]]></source>
<year>2008</year>
<volume>75</volume>
<numero>154</numero>
<issue>154</issue>
<page-range>179-186</page-range></nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ramírez]]></surname>
<given-names><![CDATA[J.F.]]></given-names>
</name>
<name>
<surname><![CDATA[Jiménez]]></surname>
<given-names><![CDATA[J.A.]]></given-names>
</name>
<name>
<surname><![CDATA[Álvarez]]></surname>
<given-names><![CDATA[J.S.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Ciclo de diseño de un robot para el aprendizaje y desarrollo de la creatividad en ingeniería]]></article-title>
<source><![CDATA[Dyna]]></source>
<year>2011</year>
<numero>170</numero>
<issue>170</issue>
<page-range>51-58</page-range></nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Begum]]></surname>
<given-names><![CDATA[A.]]></given-names>
</name>
<name>
<surname><![CDATA[Lee]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<source><![CDATA[A Simple Visual Servoing and Navigation Algorithm for an Omnidirectional Robot]]></source>
<year>2010</year>
<page-range>1-5</page-range><publisher-name><![CDATA[Human-Centric Computing (HumanCom)]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="">
<collab>WOWWEE GROUP LIMITED</collab>
<source><![CDATA[Rovio user manual]]></source>
<year>2008</year>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Mora]]></surname>
<given-names><![CDATA[S. L.]]></given-names>
</name>
</person-group>
<source><![CDATA[Programación de servidores web con CGI]]></source>
<year>2001</year>
<publisher-name><![CDATA[SSI e IDCClub Universitario]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Donahoo]]></surname>
<given-names><![CDATA[M. J.]]></given-names>
</name>
<name>
<surname><![CDATA[Calvert]]></surname>
<given-names><![CDATA[K. L.]]></given-names>
</name>
</person-group>
<source><![CDATA[TCP/IP sockets in C:: practical guide for programmers]]></source>
<year>2009</year>
<publisher-name><![CDATA[Morgan Kaufmann Pub]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bradski]]></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]]></source>
<year>Sep.</year>
<month> 2</month>
<day>00</day>
<publisher-name><![CDATA[O´Reilly]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B21">
<label>21</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Viola]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Jones]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Robust real-time object detection]]></article-title>
<source><![CDATA[International Journal of Computer Vision]]></source>
<year>2002</year>
<volume>57</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>137-154</page-range></nlm-citation>
</ref>
<ref id="B22">
<label>22</label><nlm-citation citation-type="">
<collab>WOWWEE GROUP LIMITED</collab>
<source><![CDATA[API Specification for Rovio]]></source>
<year>2008</year>
</nlm-citation>
</ref>
<ref id="B23">
<label>23</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dorsey]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[Sistemas de control continuos y discretos]]></source>
<year>2005</year>
<publisher-name><![CDATA[McGraw-Hill]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B24">
<label>24</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ogata]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
</person-group>
<source><![CDATA[Modern Control Engineering]]></source>
<year>2002</year>
<publisher-name><![CDATA[Prince Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B25">
<label>25</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Silva]]></surname>
<given-names><![CDATA[C. W. D.]]></given-names>
</name>
</person-group>
<source><![CDATA[Modeling and Control of Engineering Systems]]></source>
<year>2009</year>
<publisher-name><![CDATA[CRC Press]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
