<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?action=history&amp;feed=atom&amp;title=FollowMe_2010</id>
		<title>FollowMe 2010 - Historial de revisiones</title>
		<link rel="self" type="application/atom+xml" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?action=history&amp;feed=atom&amp;title=FollowMe_2010"/>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;action=history"/>
		<updated>2026-04-05T21:44:43Z</updated>
		<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=2613&amp;oldid=prev</id>
		<title>Aricca en 22:15 11 jun 2012</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=2613&amp;oldid=prev"/>
				<updated>2012-06-11T22:15:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 22:15 11 jun 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot; &gt;Línea 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Source de la actividad&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Source de la actividad&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://activities.sugarlabs.org/es-ES/sugar/addon/4368] http://activities.sugarlabs.org/es-ES/sugar/addon/4368&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://activities.sugarlabs.org/es-ES/sugar/addon/4368] http://activities.sugarlabs.org/es-ES/sugar/addon/4368&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Source del plugin&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/FollowMe] http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/FollowMe&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Web del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Web del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.fing.edu.uy/inco/proyectos/butia/index.html] http://www.fing.edu.uy/inco/proyectos/butia/index.html&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.fing.edu.uy/inco/proyectos/butia/index.html] http://www.fing.edu.uy/inco/proyectos/butia/index.html&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Imágenes del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Imágenes del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.flickr.com/photos/butiarobot] http://www.flickr.com/photos/butiarobot&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.flickr.com/photos/butiarobot] http://www.flickr.com/photos/butiarobot&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Aricca</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=179&amp;oldid=prev</id>
		<title>Andres en 17:31 8 jun 2011</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=179&amp;oldid=prev"/>
				<updated>2011-06-08T17:31:25Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 17:31 8 jun 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot; &gt;Línea 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;youtube&amp;gt;5Nnc9Rn9GbY&amp;lt;/youtube&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Media'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Media'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Enlaces'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Enlaces'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Andres</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=112&amp;oldid=prev</id>
		<title>AlanJAS en 16:40 7 jun 2011</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=112&amp;oldid=prev"/>
				<updated>2011-06-07T16:40:16Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 16:40 7 jun 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Archivo:followme.png|thumb|FollowMe]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>AlanJAS</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=110&amp;oldid=prev</id>
		<title>Piegrande46 en 15:39 7 jun 2011</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=110&amp;oldid=prev"/>
				<updated>2011-06-07T15:39:29Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 15:39 7 jun 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot; &gt;Línea 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Media'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Media'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;iframe width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; src=&amp;quot;http://www.youtube.com/embed/eodDQsemR0o&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;iframe width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; src=&amp;quot;http://www.youtube.com/embed/10SsAsCuB6o&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;object width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://www.youtube.com/v/eodDQsemR0o?version=3&amp;amp;amp;hl=es_ES&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;param name=&amp;quot;allowFullScreen&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;param name=&amp;quot;allowscriptaccess&amp;quot; value=&amp;quot;always&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;embed src=&amp;quot;http://www.youtube.com/v/eodDQsemR0o?version=3&amp;amp;amp;hl=es_ES&amp;quot; type=&amp;quot;application/x-shockwave-flash&amp;quot; width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; allowscriptaccess=&amp;quot;always&amp;quot; allowfullscreen=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&amp;lt;/object&amp;gt;&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Enlaces'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Enlaces'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Source de la actividad&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Source de la actividad&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Piegrande46</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=109&amp;oldid=prev</id>
		<title>Piegrande46 en 15:35 7 jun 2011</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=109&amp;oldid=prev"/>
				<updated>2011-06-07T15:35:23Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 15:35 7 jun 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot; &gt;Línea 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;iframe width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; src=&amp;quot;http://www.youtube.com/embed/eodDQsemR0o&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;iframe width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; src=&amp;quot;http://www.youtube.com/embed/eodDQsemR0o&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;iframe width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; src=&amp;quot;http://www.youtube.com/embed/10SsAsCuB6o&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;iframe width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; src=&amp;quot;http://www.youtube.com/embed/10SsAsCuB6o&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;iframe &lt;/del&gt;width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;src&lt;/del&gt;=&amp;quot;http://www.youtube.com/embed/eodDQsemR0o&amp;quot; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;frameborder&lt;/del&gt;=&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;0&lt;/del&gt;&amp;quot; allowfullscreen&amp;gt;&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;iframe&lt;/del&gt;&amp;gt;&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;object &lt;/ins&gt;width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;gt;&amp;lt;param name=&amp;quot;movie&amp;quot; value&lt;/ins&gt;=&amp;quot;http://www.youtube.com/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;v/eodDQsemR0o?version=3&amp;amp;amp;hl=es_ES&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;param name=&amp;quot;allowFullScreen&amp;quot; value=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;param name=&amp;quot;allowscriptaccess&amp;quot; value=&amp;quot;always&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&amp;lt;&lt;/ins&gt;embed &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;src=&amp;quot;http://www.youtube.com/v&lt;/ins&gt;/eodDQsemR0o&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;?version=3&amp;amp;amp;hl=es_ES&lt;/ins&gt;&amp;quot; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;type&lt;/ins&gt;=&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;application/x-shockwave-flash&amp;quot; width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; allowscriptaccess=&amp;quot;always&lt;/ins&gt;&amp;quot; allowfullscreen&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/embed&lt;/ins&gt;&amp;gt;&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;object&lt;/ins&gt;&amp;gt;&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Enlaces'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Enlaces'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Source de la actividad&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Source de la actividad&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Piegrande46</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=108&amp;oldid=prev</id>
		<title>Piegrande46 en 15:32 7 jun 2011</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=108&amp;oldid=prev"/>
				<updated>2011-06-07T15:32:58Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 15:32 7 jun 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot; &gt;Línea 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Media'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Media'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/del&gt;http://www.youtube.com/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;watch?v&lt;/del&gt;=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;5Nnc9Rn9GbY]&lt;/del&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;iframe width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; src=&amp;quot;&lt;/ins&gt;http://www.youtube.com/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;embed/eodDQsemR0o&amp;quot; frameborder&lt;/ins&gt;=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/ins&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/del&gt;http://www.youtube.com/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;watch?v=&lt;/del&gt;10SsAsCuB6o&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/del&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;iframe width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; src=&amp;quot;&lt;/ins&gt;http://www.youtube.com/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;embed/&lt;/ins&gt;10SsAsCuB6o&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;gt;&lt;/ins&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[&lt;/del&gt;http://www.youtube.com/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;watch?v=&lt;/del&gt;eodDQsemR0o&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/del&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;iframe width=&amp;quot;960&amp;quot; height=&amp;quot;750&amp;quot; src=&amp;quot;&lt;/ins&gt;http://www.youtube.com/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;embed/&lt;/ins&gt;eodDQsemR0o&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;gt;&lt;/ins&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Enlaces'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Enlaces'''''&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Source de la actividad&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Source de la actividad&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://activities.sugarlabs.org/es-ES/sugar/addon/4368]&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://activities.sugarlabs.org/es-ES/sugar/addon/4368] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;http://activities.sugarlabs.org/es-ES/sugar/addon/4368&lt;/ins&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Web del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Web del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.fing.edu.uy/inco/proyectos/butia/index.html]&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.fing.edu.uy/inco/proyectos/butia/index.html] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;http://www.fing.edu.uy/inco/proyectos/butia/index.html&lt;/ins&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Imágenes del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Imágenes del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.flickr.com/photos/butiarobot]&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://www.flickr.com/photos/butiarobot] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;http://www.flickr.com/photos/butiarobot&lt;/ins&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Piegrande46</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=107&amp;oldid=prev</id>
		<title>Piegrande46 en 15:27 7 jun 2011</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=107&amp;oldid=prev"/>
				<updated>2011-06-07T15:27:33Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 15:27 7 jun 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Proyecto ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Media'''''&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://www.youtube.com/watch?v=5Nnc9Rn9GbY]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://www.youtube.com/watch?v=10SsAsCuB6o]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://www.youtube.com/watch?v=eodDQsemR0o]&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;'''''Enlaces'''''&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Source de la actividad&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://activities.sugarlabs.org/es-ES/sugar/addon/4368]&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Web del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://www.fing.edu.uy/inco/proyectos/butia/index.html]&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Imágenes del Proyecto Butiá&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://www.flickr.com/photos/butiarobot]&amp;lt;br /&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Piegrande46</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=106&amp;oldid=prev</id>
		<title>Piegrande46 en 15:18 7 jun 2011</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=106&amp;oldid=prev"/>
				<updated>2011-06-07T15:18:16Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 15:18 7 jun 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''''Proyecto'''''&lt;/del&gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&amp;lt;br /&amp;gt;'''''Objetivos'''''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/del&gt;&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&amp;lt;br /&amp;gt;'''''Trabajo'''''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/del&gt;&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&amp;lt;br /&amp;gt;'''''Mejoras'''''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/del&gt;&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/del&gt;&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== Proyecto ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br /&amp;gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó en proporcionar al robot nuevas características y funcionalidad. &amp;lt;br /&amp;gt;El robot, cuenta con la capacidad de procesamiento de la XO, la cual es muy buena y permite muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web, etc.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. Si bien el objetivo básico fué darle uso a la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, fué que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de actuar en función de ello. Así nació FollowMe.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&amp;lt;br /&amp;gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&amp;lt;br /&amp;gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&amp;lt;br /&amp;gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&amp;lt;br /&amp;gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&amp;lt;br /&amp;gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&amp;lt;br /&amp;gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&amp;lt;br /&amp;gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&amp;lt;br /&amp;gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Piegrande46</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=105&amp;oldid=prev</id>
		<title>Piegrande46 en 15:15 7 jun 2011</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=105&amp;oldid=prev"/>
				<updated>2011-06-07T15:15:59Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 15:15 7 jun 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''''Proyecto'''''&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;en &lt;/ins&gt;proporcionar al robot nuevas características y &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;funcionalidad&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;El robot, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;cuenta &lt;/ins&gt;con la capacidad de procesamiento de la XO, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;la cual es muy buena y permite &lt;/ins&gt;muchas posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, etc&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;'''''Objetivos'''''&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Si bien el &lt;/ins&gt;objetivo básico &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;fué darle uso a &lt;/ins&gt;la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;fué &lt;/ins&gt;que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;actuar &lt;/ins&gt;en función de ello. Así nació FollowMe.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;'''''Trabajo'''''&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;'''''Mejoras'''''&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB).&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;'''''Sources'''''&amp;lt;br /&amp;gt;&lt;/ins&gt;La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br /&amp;gt;'''''Trabajo a futuro'''''&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/ins&gt;Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;El proyecto FollowMe (ahora FollowMe Butiá) se inscribe dentro del proyecto macro denominado Butiá. Su desarrollo se enfocó &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;como medida de &lt;/del&gt;proporcionar al robot &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;de &lt;/del&gt;nuevas características y &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;funciones&lt;/del&gt;. El robot, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;al contar &lt;/del&gt;con la capacidad de procesamiento de la XO, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tiene &lt;/del&gt;muchas &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mas &lt;/del&gt;posibilidades en cuanto a tratamiento de imágenes, audio, aplicaciones web. Los integrantes del proyecto, al ser todos de Ingeniería en Computación, decidimos hacer una mejora desde la parte de software, no descartando en un futuro, realizar algo de hardware. En tal sentido, nuestro proyecto se enfocó en usar la cámara, que hasta aquel momento, no era utilizada. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;El &lt;/del&gt;objetivo básico &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;era usar &lt;/del&gt;la cámara, el tema era encontrar una adecuada funcionalidad para el robot. Una de las ideas iniciales, que luego se concreto, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;era &lt;/del&gt;que el robot tuviera la capacidad &amp;quot;visual&amp;quot; de detectar un color en particular, y luego, de &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;realizar algo &lt;/del&gt;en función de ello. Así nació FollowMe. Solo detectar un color, era algo demasiado básico, por lo cual se le agregó que en función del color, detectara el centro del objeto. Y luego de tener esta información, surgió naturalmenete la necesidad de usar ese punto para hacer algún cambio &amp;quot;físico&amp;quot; en el robot. Al disponer de dos actuadores (los motores) decidimos que la posición del punto en el referencial de la pantalla&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, &lt;/del&gt;significara un cambio de posición en el Butiá. La idea original era seguir al objeto de una manera &amp;quot;natural&amp;quot;, es decir, al mover el objeto, el robot siguiera ese movimiento. Para ello, el centro del objeto retornado por el algoritmo y su posición en la pantalla, nos daba la información para mover al robot. Cuando el punto, se encontraba en el borde izquierdo, significaba que el objeto había sido desplazado hacia la izquierda, por lo cual, el robot debía girar para &amp;quot;centrar&amp;quot; nuevamente el objeto en la pantalla. Para ello dividimos la pantalla en siete zonas verticales diferenciales, para cada una de ellas, el robot tiene una velocidad; las de los extremos, tienen mayor velocidad, ya que el desplazamiento del objeto ha sido mayor y, por tanto, el robot debe centrar el objeto más rápidamente. Las otras zonas tienen velocidades menores y, la central, velocidad nula. Cuando el objeto es &amp;quot;centrado&amp;quot;, queda en esa zona y se logra un punto de &amp;quot;equilibrio&amp;quot; en el sistema, con objeto de evitar el continuo movimiento que a veces, resulta algo molesto. Para dotarlo de mayor inteligencia, se decidió que el robot avance o retroceda &amp;quot;con el objeto&amp;quot;. El algoritmo utilizado, devolvía valores muy dispares, por lo que, no se pudo lograr estabilizarlo como para ser usado en cualquier ambiente. Por tal motivo, se hizo algo similar al movimiento de rotación. Se dividió la pantalla en tres zonas horizontales a lo largo de la pantalla, una &amp;quot;superior&amp;quot;, otra &amp;quot;inferior&amp;quot; y la &amp;quot;central&amp;quot;. Si el punto, que representa al objeto dentro de la XO, se encuentra en la zona superior, el robot se aleja, en cambio, cuando se encuentra en la inferior, avanza. Como en la de rotación, definimos que la zona central fuera un punto de inactividad, un punto de &amp;quot;equilibrio&amp;quot;. De esta forma, la pantalla quedó subdividida en veintiún zonas. En los casos en que no hay movimiento &amp;quot;puro&amp;quot;, es decir, solo de rotación o solo de avance/retroceso, el algoritmo genera un movimiento combinado; cuando el punto está el la esquina superior derecha, el robot primero gira y luego retrocede. En versiones posteriores se debería crear un vector posición en función de las dos coordenadas y generar el movimiento en función de él y no simplemente un movimiento combinado &amp;quot;segmentado&amp;quot;, ya que el robot lo permite. Luego de tener una versión básica pero funcional, se le fueron agregando opciones para parametrizar más la información que recibe y que devuelve. Una de las mejoras fue la posibilidad de calibrar manualmente el color; se coloca el objeto dentro de un cuadrado en la pantalla y haciendo click, un algoritmo detecta el color promedio del objeto y muestra el color calibrado. Este es el color que el algoritmo de seguimiento recibe como entrada. Otro parámetro que recibe, es que tolerancia, que umbral debe tener, para con ese color. Es así que fijamos un valor (que se obtuvo en condiciones de laboratorio) para ese umbral que es de veinticinco en cada componente del RGB. Este valor se puede cambiar, según las condiciones de luz del ambiente. En una nueva versión (aún en desarrollo) es posible calibrar manualmente el color a seguir indicando las tres componentes del mismo (RGB). La actividad que se hizo, fue íntegramente desarrollada con las funciones que trae la librería PyGame, salvo la ventana y la barra de herramientas, que como toda aplicación Sugar, está construida con GTK. Nuestra actividad primero fue desarrollada en una computadora de escritorio corriendo un Fedora. Al momento de tratar de pasar la actividad a la XO nos encontramos con la dificultad de que la librería PyGame que trae la XO (XO 1, que es la que estábamos usando) es la versión 1.8. Esa versión no tiene el módulo &amp;quot;Camera&amp;quot; (cámara) que es fundamental para acceder a la cámara y usar algunos de sus algoritmos. Una opción era adquirir las imágenes con otra librería, pero optamos por la más difícil: adaptar la versión 1.9.1 (la última) a la XO. Tuvimos algunos inconvenientes, pero finalmente, lo logramos. Tuvimos que usar &amp;quot;un truco&amp;quot; para que la actividad reconociera nuestra librería antes que la que trae la XO. Luego de eso, y sugarizada gracias a la librería SugarGame, quedó lista. Para versiones posteriores se ha pensado usar otras cosas como ser la librería de visión artificial OpenCV. Esta librería ofrece grandes posibilidades ya que consta de más de 500 algoritmos para tal fin, entre los que se cuentan, reconocimientos de formas, rostros, etc.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Piegrande46</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=103&amp;oldid=prev</id>
		<title>AlanJAS: Follow me 2010 trasladada a FollowMe 2010: el nombre estaba &quot;mal&quot;</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=FollowMe_2010&amp;diff=103&amp;oldid=prev"/>
				<updated>2011-06-06T23:04:10Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;a href=&quot;/inco/proyectos/butia/mediawiki/index.php/Follow_me_2010&quot; class=&quot;mw-redirect&quot; title=&quot;Follow me 2010&quot;&gt;Follow me 2010&lt;/a&gt; trasladada a &lt;a href=&quot;/inco/proyectos/butia/mediawiki/index.php/FollowMe_2010&quot; title=&quot;FollowMe 2010&quot;&gt;FollowMe 2010&lt;/a&gt;: el nombre estaba &amp;quot;mal&amp;quot;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;tr style='vertical-align: top;' lang='es'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revisión del 23:04 6 jun 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='es'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sin diferencias)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>AlanJAS</name></author>	</entry>

	</feed>