<?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/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nfurquez</id>
		<title>Proyecto Butiá - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nfurquez"/>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php/Especial:Contribuciones/Nfurquez"/>
		<updated>2026-04-05T22:26:20Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Espacio_para_grupos_2013&amp;diff=4698</id>
		<title>Espacio para grupos 2013</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Espacio_para_grupos_2013&amp;diff=4698"/>
				<updated>2013-10-31T17:21:02Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: Página creada con 'Cada grupo debe crearse un link como el del ejemplo a continuación: &amp;lt;br&amp;gt;  Nombre Proyecto&amp;lt;br&amp;gt;'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cada grupo debe crearse un link como el del ejemplo a continuación: &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[ejemplo|Nombre Proyecto]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Wiki_Buti%C3%A1&amp;diff=4697</id>
		<title>Wiki Butiá</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Wiki_Buti%C3%A1&amp;diff=4697"/>
				<updated>2013-10-31T17:09:26Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Proyecto Butiá ==&lt;br /&gt;
&lt;br /&gt;
Este proyecto plantea como objetivo crear una plataforma simple, la cual ponga al alcance de estudiantes escolares o liceales las herramientas necesarias para permitirles interiorizarse con la programación de  comportamientos para robots.&lt;br /&gt;
El proyecto Butiá trata de ampliar las capacidades sensoriales y de actuación de la computadora XO del proyecto OLPC, transformandola en una plataforma robótica móvil.&lt;br /&gt;
Actualmente la implementación 1.0 del proyecto está siendo utilizado en formato de kit, distribuido a 28 liceos públicos del Uruguay, con un set de sensores y piezas que permiten cambiar la ubicación de los sensores en la plataforma móvil donde se coloca la computadora XO.&amp;lt;br&amp;gt;&lt;br /&gt;
A su vez el proyecto Butiá fue desarrollado teniendo en mente el hecho que agregar nuevos sensores o actuadores a la plataforma sea muy sencillo, esto abre la posibilidad a que usuarios interesados con el hardware puedan implementar fácilmente sus propios sensores y actuadores. Incluso el [http://es.wikipedia.org/wiki/Dise%C3%B1o_industrial diseño industrial] del robot es abierto lo cual permite realizarlo con materiales reciclados o de bajo costo.&lt;br /&gt;
&lt;br /&gt;
== Desarrollo ==&lt;br /&gt;
&lt;br /&gt;
La plataforma Butiá esta liberada como software libre a la comunidad, tu puedes contribuir con el proyecto como desarrollador uniéndote en [http://sourceforge.net/projects/butia/ Proyecto Butiá en SourceForge] &amp;lt;br/&amp;gt;&lt;br /&gt;
El código fuente del software (plugins, toribio, tortubots, etc) está versionado bajo sistema de control [http://git-scm.com/ GIT], para saber más vea [[Git Butia]].&amp;lt;br/&amp;gt;&lt;br /&gt;
El código de firmware y PCBs esta versionado bajo sistema de control [http://git-scm.com/ GIT], en el git de USB4all [http://sourceforge.net/projects/usb4all/ USB4all en SourceForge] &amp;lt;br/&amp;gt;&lt;br /&gt;
Actualmente estamos trabajando en una nueva placa ([[usb4butia|USB4butia]]) para el [[Butia2|Butiá 2.0]] que busca bajar costos, ser más robusto al permitir conectar dispositivos y hacer más simple la construcción de la placa de E/S al utilizar la plataforma [[usb4all|USB4all]]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Se puede participar a través de la lista de correo de desarrollo [https://www.fing.edu.uy/mailman/listinfo/butia-devel-l butiá-devel-l], también puede ver el [https://www.fing.edu.uy/pipermail/butia-devel-l/ historial] de la misma. &amp;lt;br/&amp;gt;&lt;br /&gt;
También puede participar de las reuniones Butiá, las mismas son los días '''Jueves a las 18hs en el Laboratorio de Robótica'''.&amp;lt;br/&amp;gt;&lt;br /&gt;
Puede ver el desarrollo de las reuniones en [[Actas Reuniones Butia]]. &amp;lt;br/&amp;gt; &lt;br /&gt;
Propuestas de discusiones para las reuniones [[Discusiones para las reuniones]]. &amp;lt;br/&amp;gt;&lt;br /&gt;
Este proyecto se realiza con el apoyo de [http://www.antel.com.uy ANTel].&lt;br /&gt;
&lt;br /&gt;
== Construcción ==&lt;br /&gt;
&lt;br /&gt;
* [[construcción_Butiá_V1.0|Construyendo un Robot Butiáv1.0 paso a paso]]&lt;br /&gt;
* [[construcción_Butiá_V1.8|Construyendo un Robot Butiáv1.8 paso a paso]]&lt;br /&gt;
* [[construcción_Butiá_V2.0|Construyendo un Robot Butiáv2.0 paso a paso]]&lt;br /&gt;
* [[flashearIdAX12|Como flashear los motores AX12]]&lt;br /&gt;
* [[Motores|Información general sobre motores]]&lt;br /&gt;
* [[Otros Materiales|Butiá V2.0 en madera]]&lt;br /&gt;
&lt;br /&gt;
== Lenguajes de programación ==&lt;br /&gt;
&lt;br /&gt;
El Robot butiá puede controlarse fácilmente desde cualquier [http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n lenguaje de programación] con soporte de conexiones [http://es.wikipedia.org/wiki/TCP/IP TCP/IP]. De todas maneras damos soporte para algunas plataformas concretas mediante [http://es.wikipedia.org/wiki/Plugin plugins], [http://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones API's] o [http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado IDEs]. Algunos ejemplos son:&amp;lt;br&amp;gt;&lt;br /&gt;
[[TortuBots]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Butialo]] (Lua)&amp;lt;br&amp;gt;&lt;br /&gt;
[[Python]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutoriales ==&lt;br /&gt;
&lt;br /&gt;
En esta sección encontrarás información de como programar el comportamiento del robot Butiá.&lt;br /&gt;
&lt;br /&gt;
* [[Ejemplo_recibir_ordenes_con_aplausos| Cómo controlar el robot Butiá mediante aplausos]]&lt;br /&gt;
* [[tortugarte_variables|Como almacenar los valores leídos de los sensores utilizando TortugArte con Butiá]]&lt;br /&gt;
* [[Evitar_obstaculos|Como evitar obstaculos utilizando TortugArte con Butiá]]&lt;br /&gt;
* [[Evitar_caida|Como evitar caer de una mesa]]&lt;br /&gt;
* [[Ejemplo_seguidor_de_líneas_sencillo|Como hacer un seguidor de líneas sencillo]]&lt;br /&gt;
* [[Ejemplo_seguidor_de_líneas|Como hacer un seguidor de líneas avanzado]]&lt;br /&gt;
* [[Ejemplo_sumo|Como hacer un luchador de Sumo]]&lt;br /&gt;
* [[Transformando_a_cms_el_valor_del_sensor_de_distancia|Transformando a centímetros la salida del sensor de distancia]]&lt;br /&gt;
* [[Butiá_que_habla|Butiá que habla]]&lt;br /&gt;
* [[Modularizando|Como modularizar un programa en Tortugarte]]&lt;br /&gt;
* [[video_tutoriales|Video Tutoriales]]&lt;br /&gt;
* [[Preguntas_frecuentes|Preguntas Frecuentes]]&lt;br /&gt;
* [[FollowMe|Utilizar plugin FollowMe]]&lt;br /&gt;
* [[USB4butiá| Cómo construir una placa USB4Butià]]&lt;br /&gt;
* [[Ejemplos_de_Aplicaciones_en_Butialo|Ejemplos de Lua en Butialo]]&lt;br /&gt;
* [[HackPoints|Como utilizar los HackPoints]]&lt;br /&gt;
* [[Medir voltaje y resistencia | Como medir voltaje y resistencia]]&lt;br /&gt;
* [[Tutorial_de_armado_de_butiá_con_motores_de_corriente_Continua | Tutorial de armado de butiá con motores de corriente Continua]]&lt;br /&gt;
&lt;br /&gt;
== Actividades para realizar con el robot relacionadas con otras ciencias ==&lt;br /&gt;
&lt;br /&gt;
[[Biología y Butiá]]&lt;br /&gt;
&lt;br /&gt;
== ButiArte ==&lt;br /&gt;
&lt;br /&gt;
A puro arte &amp;lt;br&amp;gt;&lt;br /&gt;
[[remeras|Remeras]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Cuadernolas Butiá y Sumo]]&lt;br /&gt;
&lt;br /&gt;
== Sumo.uy: Desafío aptos para Butiá en evento de SUMO Robótico ==&lt;br /&gt;
&lt;br /&gt;
Son numerosas las instituciones educativas que a nivel mundial desarrollan exposiciones robóticas.&amp;lt;br&amp;gt;&lt;br /&gt;
En nuestro país, la [http://www.fing.edu.uy Facultad de Ingeniería] de la [http://www.udelar.edu.uy Universidad de la República] es pionera. &amp;lt;br&amp;gt;&lt;br /&gt;
Desde 2004, año a año el evento [http://www.fing.edu.uy/sumo.uy sumo.uy] ha cumplido con éxito su misión: hacer que la sociedad sea partícipe, y no mero testigo, de los avances en robótica e inteligencia artificial.&amp;lt;br&amp;gt;&lt;br /&gt;
'''[http://www.fing.edu.uy/sumo.uy sumo.uy]''' ofrece un entorno abierto a todo público, donde universitarios y no universitarios, liceales, adultos y niños, uruguayos y extranjeros pueden interactuar, presentar sus trabajos y plantear sus inquietudes relacionadas con la temática del evento.&amp;lt;br&amp;gt;&lt;br /&gt;
En el marco de la edición 2013 de este evento se podrá participar con el robot Butiá en tres desafíos:&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo%20Escolar_2013_v0.1.pdf Desafío Escolar]&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo%20B%C3%A1sico_2013_v0.1.pdf Desafío Básico]&lt;br /&gt;
&lt;br /&gt;
[http://www.fing.edu.uy/inco/eventos/sumo.uy/Documentos/Desaf%C3%ADo_Avanzado_sumo.uy_2013.pdf_v0.1.pdf Desafío Avanzado]&lt;br /&gt;
&lt;br /&gt;
Para desafíos anteriores mire [[sumo.uy historial desafios Butiá| aquí]]&lt;br /&gt;
&lt;br /&gt;
==Sumo.uy: Experiencias desafíos Butiá==&lt;br /&gt;
&lt;br /&gt;
* Sumo.uy 2011 ( [[Sumo.uy_2011_Resumen_desafío_Butiá|español]] | [[Sumo.uy_2011_Summary_Butiá_challenge|ingles]] )&lt;br /&gt;
&lt;br /&gt;
== Curso Butiá: Robótica educativa ==&lt;br /&gt;
{{AP|Proyectos Butiá}}&lt;br /&gt;
En esta sección se mantiene un historial de proyectos que se realizan y/o fueron realizados en el curso.&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_abiertos|Proyectos abiertos para realizar en el marco del &amp;quot;Proyecto Butiá&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2013|Proyectos electiva Butiá 2013]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_electiva_butia_2012|Proyectos electiva Butiá 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_mtbutia_2011|Proyectos módulo taller butiá 2011]]&lt;br /&gt;
&lt;br /&gt;
* [[proyectos_mtbutia_2010|Proyectos módulo taller butiá 2010]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2011|Espacio de documentación de los grupos 2011]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2012|Espacio de documentación de los grupos 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_para_grupos_2013|Espacio de documentación de los grupos 2013]]&lt;br /&gt;
&lt;br /&gt;
== Extensión Universitaria ==&lt;br /&gt;
&lt;br /&gt;
* [[talleres_y_charlas|Talleres y charlas]]&lt;br /&gt;
&lt;br /&gt;
* [[mega_construccion_2010|Construyendo los robots]]&lt;br /&gt;
&lt;br /&gt;
* [[entrega_de_Butiá_V1.0|Entrega de 28 robots Butiá en el evento Sumo.uy 2010]]&lt;br /&gt;
&lt;br /&gt;
* [[espacio_liceos|Experiencias realizadas por nuestro usuarios]]&lt;br /&gt;
&lt;br /&gt;
* [[Robótica_educativa_con_el_robot_Butiá_Proyecto_Estímulo_a_la_Cultura_Científica_y_Tecnológica,_Prociencia,_18-21/07/2012|Prociencia 2012]]&lt;br /&gt;
&lt;br /&gt;
* [[quiero_una_USB4Butia|Proyectos - Quiero una USB4Butia]]&lt;br /&gt;
&lt;br /&gt;
== Publicaciones científicas ==&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el congreso Inforedu2013 &amp;quot;Congreso Internacional de Informática en la Educación&amp;quot; [http://www.inforedu2013.mes.edu.cu/ponencia/uruguay/rob%C3%B3tica-educativa-en-uruguay-de-la-mano-del-robot-buti%C3%A1 Robótica educativa de la mano del robot Butiá]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el congreso WEEF 2012 &amp;quot;Engineering Education for Sustainable Development and Social Inclusión&amp;quot; [http://www.weef2012.edu.ar/papersFinal/information.php?doc=227 1 adolescente. 1 computadora. 1 robot]&lt;br /&gt;
&lt;br /&gt;
*Artículo publicado en OLPC, [http://www.olpcnews.com/use_cases/technology/usb4butia_a_truly_free_as_in_freedom_input_output_board.html USB4butia - A Truly Free (as in Freedom) Input/Output Board]&lt;br /&gt;
&lt;br /&gt;
*Poster presentado en el Congreso Argentino de SistemasEmbebidos, Case2012, Buenos Aires, Argentina:&lt;br /&gt;
[http://www.sase.com.ar/2012/files/2011/11/case2012_memorias_pp235-end.pdf FollowMe: seguimiento de objetos mediante el uso de webcam y plataforma Butiá] pag. 281&lt;br /&gt;
&lt;br /&gt;
*Poster presentado en el Congreso Argentino de SistemasEmbebidos, Case2012, Buenos Aires, Argentina:&lt;br /&gt;
[http://www.sase.com.ar/2012/files/2011/11/case2012_memorias_pp235-end.pdf USB4BUTIA: Interfaz Robótica Educativa de simple fabricación y bajo costo] pag. 282&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el evento &amp;quot;apropiación y desarrollo: modelos 1 a 1&amp;quot; 2012 organizado por Flor de Ceibo: [http://www.fing.edu.uy/inco/proyectos/butia/files/butia_edu1a1_v1.4_ponencia_completa.pdf Butiá, transformando tu XO en un robot móvil programable]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el evento &amp;quot;apropiación y desarrollo: modelos 1 a 1&amp;quot; 2012 organizado por Flor de Ceibo: [http://www.fing.edu.uy/inco/proyectos/butia/files/De_tortugarte_a_butia_en_la_escuela_primaria.pdf De la tortuga al robot Butiá, experiencias en el uso de Tortugarte en la escuela primaria]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el Encuentro Desarrolladores Uruguay, eduJAM 2012: [http://wiki.sugarlabs.org/images/1/13/Turtle_sensors.pdf How open hardware and software can empower students and communities]&lt;br /&gt;
&lt;br /&gt;
*Artículo presentado en el Simposio Argentino de Sistemas Embebidos, Sase2011, Buenos Aires, Argentina: &lt;br /&gt;
[http://www.sase.com.ar/2011/case/articulos-case/butia-plataforma-robotica-generica-para-la-ensenanza-de-la-informatica/ Butiá: Plataforma robótica genérica para la enseñanza de la informática]&lt;br /&gt;
&lt;br /&gt;
== Material de Presentaciones Butiá ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:poster_olpc-sf.jpg|thumb|Poster presentado en OLPC - San Francisco / 2011]]&lt;br /&gt;
[[Archivo:OLPC - SF 2012.png|thumb|Poster presentado en OLPC - San Francisco / 2012]]&lt;br /&gt;
[[Archivo:OLPC - SF 2013.png|thumb|Poster presentado en OLPC - San Francisco / 2013]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/proyecto_butia_capacitacion_5_2012.pdf Butiá: Sistema robótico constructivo de bajo costo para uso educativo, Encuentro Nacional de Voluntarios 2012, Squeakfest 2012]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/Turtle%20sensors.pdf How open hardware and software can empower students and communities, eduJAM2012]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/de_la_tortuga_al_robot_butia.pdf De la tortuga al robot Butiá, Experiencias en el uso de Tortugarte en la escuela primaria, en el evento apropiación y desarrollo: modelos 1 a 1, organizado por Flor de Ceibo]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/butia-1a1.pdf Butiá: Plataforma robótica genérica para la enseñanza inicial y media, en el evento apropiación y desarrollo: modelos 1 a 1, organizado por Flor de Ceibo]&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/files/butia-seminarioFIERGS_handout.pdf Charla del robot Butiá en el Seminario FIERGS, Porto Alegre, Brasil]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/pres_seMINArios_2011_handouts.pdf Charla del robot Butiá el los seMINArios del Instituto de Computación, UdelaR, Montevideo, Uruguay, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/presCASE2011HandsOut.pdf Charla del robot Butiá en el congreso argentino de sistemas embebidos, Buenos Aires, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/butia-jornadasANTel-FIng2011.pdf Charla del robot Butiá en las jornadas de telecomunicaciones realizadas, Rocha, Uruguay, 2011]&lt;br /&gt;
&lt;br /&gt;
* [http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/public/presCPBRASIL.pdf Charla del robot Butiá en el campus party, San Pablo, Brasil, 2011]&lt;br /&gt;
&lt;br /&gt;
== El robot Butiá en los medios ==&lt;br /&gt;
&lt;br /&gt;
[[notas_en_tv|Notas en televisión]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Notas en Radio]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_en_blogs|Notas en Blogs]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[congresos_y_seminarios|Congresos y Seminarios]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_revistas|Notas en revistas]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[notas_diarios|Notas en periódicos]]&lt;br /&gt;
&lt;br /&gt;
== Multimedia ==&lt;br /&gt;
&lt;br /&gt;
[[nuestros_videos|Videos]]&lt;br /&gt;
&lt;br /&gt;
[[pistas butiá|Pistas]]&lt;br /&gt;
&lt;br /&gt;
== Comunicación ==&lt;br /&gt;
* [http://www.facebook.com/group.php?gid=147042805312846 Seguinos en Facebook uniendote al grupo]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://plus.google.com/u/0/108413393520841902443/posts Seguinos en google+]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://www.fing.edu.uy/mailman/listinfo/butia-list Lista de correo butia-list]&amp;lt;br&amp;gt;&lt;br /&gt;
* [https://www.fing.edu.uy/mailman/listinfo/butia-devel-l Lista de correo butiá-devel-l para tratar temas relacionados con el desarrollo de la plataforma]&amp;lt;br&amp;gt;&lt;br /&gt;
* [[instructivo_newsgroup|Instructivo para el uso del Newsgroup de fing]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Preguntas Frecuentes (f.a.q) sobre el Butiá ==&lt;br /&gt;
&lt;br /&gt;
Puede encontrarse una lista de preguntas frecuentes y su respuesta en [[preguntas_frecuentes]]&lt;br /&gt;
&lt;br /&gt;
== Empezando a utilizar wiki ==&lt;br /&gt;
&lt;br /&gt;
Consulta la [http://meta.wikimedia.org/wiki/Ayuda:Contenido Guía de usuario] para obtener información sobre el uso del software wiki.&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustes de configuración]&lt;br /&gt;
* [http://www.mediawiki.org/wiki/Manual:FAQ/es FAQ de MediaWiki]&lt;br /&gt;
&lt;br /&gt;
[[Main page (English)]]&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4689</id>
		<title>Proyectos electiva butia 2013</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4689"/>
				<updated>2013-10-31T01:43:09Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[urbi_butia_2013|Butiá Urbi]]&lt;br /&gt;
* [[openRAVE_butia_2013|Butiá OpenRAVE]]&lt;br /&gt;
* [[ros_butia_2013|Integración de ROS a la plataforma Butiá]]&lt;br /&gt;
* [[V-REP_butia_2013|Butiá V-REP]]&lt;br /&gt;
* [[webots_butia_2013|Butiá Webots]]&lt;br /&gt;
* [[butialo_toribio_2013|Migrar Butialo a plataforma Toribio]]&lt;br /&gt;
* [[arroja_pelota_2013|Desafío arroja pelotas IEEE SEK]]&lt;br /&gt;
* [[bio_hardware_2013|Sensores y actuadores bio-inspirados]]&lt;br /&gt;
* [[plugin_colores_2013|Plugin para turtlebots que permita usar la cámara como sensor de colores]]&lt;br /&gt;
* [[plugin_QR_2013|Plugin para turtlebots que permita usar la cámara para procesar códigos QR]]&lt;br /&gt;
* [[pinguino_butia_2013|Pinguino para USB4Butiá]]&lt;br /&gt;
* [[ide_web_usb4butia_2013|IDE web para desarrollar firmware para USB4Butiá]]&lt;br /&gt;
* [[libreria_camara_butia_2013|Biblioteca que permita el uso de la cámara a mas de un plugin a la vez]]&lt;br /&gt;
* [[makey4butia_2013|Generar un modulo similar al Makey Makey para USB4Butiá]]&lt;br /&gt;
* [[monitor_2013|Desarrollar un monitor de la plataforma Butiá]]&lt;br /&gt;
* [[testing_2013|Diseñar test unitarios y de integración]]&lt;br /&gt;
* [[eventos_2013|Paleta orientada a eventos]]&lt;br /&gt;
* [[reconocimiento_voz_2013|Paleta para primitivas de reconocimiento de voz en tortuga]]&lt;br /&gt;
* [[eventos_al_x_server_2013|Paleta para primitivas de accesibilidad a personas con discapacidad en tortuga]]&lt;br /&gt;
* [[swarm_butia_2013|Robótica colaborativa inspirada en colonia de hormigas con butiá]]&lt;br /&gt;
* [[medir_2013|Actividad medir butiá]]&lt;br /&gt;
* [[firmwareVM_2013|Maquina virtual en firmware que pueda correr un programa tortuga sin tener XO conectada]]&lt;br /&gt;
* [[barrearaIR_2013|Implementar el control para la barreara el módulo IR usado en laboratorio de física]]&lt;br /&gt;
* [[descubrimiento_bloques|Descubrimiento de bloques en paleta de tortuga de forma automática]]&lt;br /&gt;
* [[pwm_2013|Control de velocidad en motores de CC mediante PWM]]&lt;br /&gt;
* [[export_logo_2013|Agregar al export to logo de turtle art instrucciones para manejo del robot butiá]]&lt;br /&gt;
* [[comportamiento_tortuga_2013|Agregar soporte de comportamientos para tortuga]]&lt;br /&gt;
* [[turtle_bots_confusión|Realizar una actividad del tipo turtle art confusion para guiar en desafíos simples de robótica a usuarios iniciales]]&lt;br /&gt;
* [[harware_adaptador_sensor_a_audio2013|Realizar una módulo hardware adaptador de sensor butiá a entrada de audio para XO]]&lt;br /&gt;
* [[juegoRobotica|Continuación juego robótica (segunda pantalla)]]&lt;br /&gt;
* [[butiaArania|Butiá Araña]]&lt;br /&gt;
* [[butiaActuadorLapiz|Butiá Actuador Lápiz]]&lt;br /&gt;
* [[Fútbol_butia_2013|Fútbol de robots con butiá]]&lt;br /&gt;
* [[butia_gps|Butia bloque para usar gps usb en TurtleBlocks]]&lt;br /&gt;
* [[butia_android_2011|Butia Android]]&lt;br /&gt;
* [[butia_bloque_medir|Butia bloque medir]]&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Makey4butia_2013&amp;diff=4544</id>
		<title>Makey4butia 2013</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Makey4butia_2013&amp;diff=4544"/>
				<updated>2013-08-19T14:48:56Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: Página creada con 'El proyecto propone generar un nuevo sensor para la placa Usb4Butiá que le permita ser usada como el Makey Makey (http://www.makeymakey.com/).   '''Tutor''':   '''Capacidades a...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;El proyecto propone generar un nuevo sensor para la placa Usb4Butiá que le permita ser usada como el Makey Makey (http://www.makeymakey.com/). &lt;br /&gt;
&lt;br /&gt;
'''Tutor''': &lt;br /&gt;
&lt;br /&gt;
'''Capacidades a desarrollar''': Electrónica y Programación.&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4543</id>
		<title>Proyectos electiva butia 2013</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4543"/>
				<updated>2013-08-19T14:34:38Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[urbi_butia_2013|Butiá Urbi]]&lt;br /&gt;
* [[openRAVE_butia_2013|Butiá OpenRAVE]]&lt;br /&gt;
* [[ros_butia_2013|Integración de ROS a la plataforma Butiá]]&lt;br /&gt;
* [[V-REP_butia_2013|Butiá V-REP]]&lt;br /&gt;
* [[butialo_toribio_2013|Migrar Butialo a plataforma Toribio]]&lt;br /&gt;
* [[arroja_pelota_2013|Desafío arroja pelotas IEEE SEK]]&lt;br /&gt;
* [[bio_hardware_2013|Sensores y actuadores bio-inspirados]]&lt;br /&gt;
* [[plugin_colores_2013|Plugin para turtlebots que permita usar la cámara como sensor de colores]]&lt;br /&gt;
* [[pinguino_butia_2013|Pinguino para USB4Butiá]]&lt;br /&gt;
* [[ide_web_usb4butia_2013|IDE web para desarrollar firmware para USB4Butiá]]&lt;br /&gt;
* [[libreria_camara_butia_2013|Librería que permita el uso de la cámara a mas de un plugin a la vez]]&lt;br /&gt;
* [[makey4butia_2013|Generar un modulo similar al Makey Makey para USB4Butiá]]&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4542</id>
		<title>Proyectos electiva butia 2013</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4542"/>
				<updated>2013-08-19T14:34:24Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[urbi_butia_2013|Butiá Urbi]]&lt;br /&gt;
* [[openRAVE_butia_2013|Butiá OpenRAVE]]&lt;br /&gt;
* [[ros_butia_2013|Integración de ROS a la plataforma Butiá]]&lt;br /&gt;
* [[V-REP_butia_2013|Butiá V-REP]]&lt;br /&gt;
* [[butialo_toribio_2013|Migrar Butialo a plataforma Toribio]]&lt;br /&gt;
* [[arroja_pelota_2013|Desafío arroja pelotas IEEE SEK]]&lt;br /&gt;
* [[bio_hardware_2013|Sensores y actuadores bio-inspirados]]&lt;br /&gt;
* [[plugin_colores_2013|Plugin para turtlebots que permita usar la cámara como sensor de colores]]&lt;br /&gt;
* [[pinguino_butia_2013|Pinguino para USB4Butiá]]&lt;br /&gt;
* [[ide_web_usb4butia_2013|IDE web para desarrollar firmware para USB4Butiá]]&lt;br /&gt;
* [[libreria_camara_butia_2013|Librería que permita el uso de la cámara a mas de un plugin a la vez]]&lt;br /&gt;
* [[makey_usb4butia_2013|Generar un modulo similar al Makey Makey para USB4Butiá]]&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Biblioteca_camara_butia_2013&amp;diff=4541</id>
		<title>Biblioteca camara butia 2013</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Biblioteca_camara_butia_2013&amp;diff=4541"/>
				<updated>2013-08-19T14:26:51Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: Página creada con 'El ambiente Tortubots tiene varios plugins que permiten el uso de la cámara como sensor (FollowMe, Plugin de marcas), pero tienen un problema y es que no pueden ser usados los ...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;El ambiente Tortubots tiene varios plugins que permiten el uso de la cámara como sensor (FollowMe, Plugin de marcas), pero tienen un problema y es que no pueden ser usados los dos plugins a la vez. Potencialmente podrían existir nuevos plugins que hagan uso de la cámara y que el uso en conjunto genere una experiencia mas rica para los estudiantes. &lt;br /&gt;
&lt;br /&gt;
Este proyecto propone generar un prototipo que permita usar dos o mas plugins de visión a la vez, en principio se propone investigar los formatos de imagen que manejan Artoolkit, Pygame y OpenCV y la potencialidad de conversión de formatos, dejando documentado como agregar un nuevo formato. Luego generar una librería que pueda capturar una imagen y enviarla en los formatos numerados antes. Como escenario final deseable, modificar los plugins de Follome y Plugin de marcas para el uso de la libreria.&lt;br /&gt;
&lt;br /&gt;
'''Tutor''': .&lt;br /&gt;
&lt;br /&gt;
'''Capacidades a desarrollar''': Programación.&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4540</id>
		<title>Proyectos electiva butia 2013</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4540"/>
				<updated>2013-08-19T14:02:00Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[urbi_butia_2013|Butiá Urbi]]&lt;br /&gt;
* [[openRAVE_butia_2013|Butiá OpenRAVE]]&lt;br /&gt;
* [[ros_butia_2013|Integración de ROS a la plataforma Butiá]]&lt;br /&gt;
* [[V-REP_butia_2013|Butiá V-REP]]&lt;br /&gt;
* [[butialo_toribio_2013|Migrar Butialo a plataforma Toribio]]&lt;br /&gt;
* [[arroja_pelota_2013|Desafío arroja pelotas IEEE SEK]]&lt;br /&gt;
* [[bio_hardware_2013|Sensores y actuadores bio-inspirados]]&lt;br /&gt;
* [[plugin_colores_2013|Plugin para turtlebots que permita usar la cámara como sensor de colores]]&lt;br /&gt;
* [[pinguino_butia_2013|Pinguino para USB4Butiá]]&lt;br /&gt;
* [[ide_web_usb4butia_2013|IDE web para desarrollar firmware para USB4Butiá]]&lt;br /&gt;
* [[libreria_camara_butia_2013|Librería que permita el uso de la cámara a mas de un plugin a la vez]]&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4539</id>
		<title>Proyectos electiva butia 2013</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Proyectos_electiva_butia_2013&amp;diff=4539"/>
				<updated>2013-08-19T13:54:38Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[urbi_butia_2013|Butiá Urbi]]&lt;br /&gt;
* [[openRAVE_butia_2013|Butiá OpenRAVE]]&lt;br /&gt;
* [[ros_butia_2013|Integración de ROS a la plataforma Butiá]]&lt;br /&gt;
* [[V-REP_butia_2013|Butiá V-REP]]&lt;br /&gt;
* [[butialo_toribio_2013|Migrar Butialo a plataforma Toribio]]&lt;br /&gt;
* [[arroja_pelota_2013|Desafío arroja pelotas IEEE SEK]]&lt;br /&gt;
* [[bio_hardware_2013|Sensores y actuadores bio-inspirados]]&lt;br /&gt;
* [[plugin_colores_2013|Plugin para turtlebots que permita usar la cámara como sensor de colores]]&lt;br /&gt;
* [[pinguino_butia_2013|Pinguino para USB4Butiá]]&lt;br /&gt;
* [[ide_web_usb4butia_2013|IDE web para desarrollar firmware para USB4Butiá]]&lt;br /&gt;
* [[multi_cap_butia_2013|Librería que permita el uso de la cámara a mas de un plugin a la vez]]&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3909</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3909"/>
				<updated>2013-01-27T23:16:32Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Actividad para agregar marcas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Viendo Señal&amp;quot;''':Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Distancia Señal&amp;quot;''':Este icono devuelve la distancia trigonométrica desde la cámara hasta el centro de la señal, la magnitud utilizada son mm. &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo están todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si está pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las características de estos iconos.&lt;br /&gt;
&lt;br /&gt;
En este ejemplo se puede ver como se utiliza, en el código de la izquierda si la cámara ve, la señal de curva, moverá 100 la tortuga hacia adelante y luego girara a la derecha un angulo aleatorio entre -30 y 30.&lt;br /&gt;
En el ejemplo de la derecha si ve la señal de ''Contramano'' se movera hacia atras y cambiara la pluma a rojo, sino cambiara a azul y se movera 100 hacia adelante&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
==== Ejemplos usando la paleta y Butia ====&lt;br /&gt;
Usando la marca de ''Pare'', el Butia detiene la marcha. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:ButiaSenialesEjemplo1.png|400px|left]] &amp;lt;videoflash&amp;gt;vF9ZhQYIwVg&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Usando la marca de ''Seda el paso'', el Butia disminuye la velocidad. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:ButiaSenialesEjemplo2.png|350px|left]]&amp;lt;videoflash&amp;gt;Mbs5GT8vuIM&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Usando la marca de ''Contramano'', el Butia gira hasta no ver la marca y luego sigue adelante. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:ButiaSenialesEjemplo3.png|300px|left]] &amp;lt;videoflash&amp;gt;m04N9YJ7qd4&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
=== Actividad para agregar marcas ===&lt;br /&gt;
&lt;br /&gt;
Se creo una actividad por la cual se puede agregar o quitar marcas, de una manera mas amena al usuario (docentes o educandos), se puede descargar la misma desde (Agregar link), &lt;br /&gt;
La actividad se puede instalar sin tener el Plugin o Tortugarte/TortuBots, pero al abrirla avisa al usuario que no se encuentra alguno de estos elementos.&lt;br /&gt;
En la primer pestaña se puede ver una lista con los identificadores de las señales que están instaladas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Si existe un icono asociado se muestra a la derecha al seleccionarlo, si no lo tiene se muestra un icono general.&lt;br /&gt;
TODO:Poner imagenes con ambos ejemplos&lt;br /&gt;
[[Archivo:NewPatternsListaConSeleccion.png]]&lt;br /&gt;
&lt;br /&gt;
En la segunda pestaña se encuentran los campos para poder agregar una señal, Identificador, tamaño, ruta al archivo .patt y como opcional la ruta al archivo .svg que servirá de icono en la paleta.&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se encuentra el link a la wiki que dice como generar el .patt&lt;br /&gt;
En el caso que se quiera poner una identificador de señal que ya exista, la actividad preguntara si se quiere sobrescribir.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3908</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3908"/>
				<updated>2013-01-27T23:15:21Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Paleta reconocimiento de marcas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Viendo Señal&amp;quot;''':Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no.&lt;br /&gt;
&lt;br /&gt;
'''&amp;quot;Distancia Señal&amp;quot;''':Este icono devuelve la distancia trigonométrica desde la cámara hasta el centro de la señal, la magnitud utilizada son mm. &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo están todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si está pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las características de estos iconos.&lt;br /&gt;
&lt;br /&gt;
En este ejemplo se puede ver como se utiliza, en el código de la izquierda si la cámara ve, la señal de curva, moverá 100 la tortuga hacia adelante y luego girara a la derecha un angulo aleatorio entre -30 y 30.&lt;br /&gt;
En el ejemplo de la derecha si ve la señal de ''Contramano'' se movera hacia atras y cambiara la pluma a rojo, sino cambiara a azul y se movera 100 hacia adelante&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
==== Ejemplos usando la paleta y Butia ====&lt;br /&gt;
Usando la marca de ''Pare'', el Butia detiene la marcha. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:ButiaSenialesEjemplo1.png|400px|left]] &amp;lt;videoflash&amp;gt;vF9ZhQYIwVg&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Usando la marca de ''Seda el paso'', el Butia disminuye la velocidad. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:ButiaSenialesEjemplo2.png|350px|left]]&amp;lt;videoflash&amp;gt;Mbs5GT8vuIM&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Usando la marca de ''Contramano'', el Butia gira hasta no ver la marca y luego sigue adelante. &amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:ButiaSenialesEjemplo3.png|300px|left]] &amp;lt;videoflash&amp;gt;m04N9YJ7qd4&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
=== Actividad para agregar marcas ===&lt;br /&gt;
&lt;br /&gt;
Se creo una actividad por la cual se puede agregar o quitar marcas, de una manera mas amena al usuario (docentes o educandos), se puede descargar la misma desde (Poner link), &lt;br /&gt;
La actividad se puede instalar sin tener el Plugin o Tortugarte/TortuBots, pero al abrirla avisa al usuario que no se encuentra alguno de estos elementos.&lt;br /&gt;
En la primer pestaña se puede ver una lista con los identificadores de las señales que están instaladas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Si existe un icono asociado se muestra a la derecha al seleccionarlo, si no lo tiene se muestra un icono general.&lt;br /&gt;
TODO:Poner imagenes con ambos ejemplos&lt;br /&gt;
[[Archivo:NewPatternsListaConSeleccion.png]]&lt;br /&gt;
&lt;br /&gt;
En la segunda pestaña se encuentran los campos para poder agregar una señal, Identificador, tamaño, ruta al archivo .patt y como opcional la ruta al archivo .svg que servirá de icono en la paleta.&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se encuentra el link a la wiki que dice como generar el .patt&lt;br /&gt;
En el caso que se quiera poner una identificador de señal que ya exista, la actividad preguntara si se quiere sobrescribir.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:ButiaSenialesEjemplo3.png&amp;diff=3907</id>
		<title>Archivo:ButiaSenialesEjemplo3.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:ButiaSenialesEjemplo3.png&amp;diff=3907"/>
				<updated>2013-01-27T23:11:20Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:ButiaSenialesEjemplo2.png&amp;diff=3906</id>
		<title>Archivo:ButiaSenialesEjemplo2.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:ButiaSenialesEjemplo2.png&amp;diff=3906"/>
				<updated>2013-01-27T23:07:04Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: subió una nueva versión de «Archivo:ButiaSenialesEjemplo2.png»: Tenia un error la imagen original&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:ButiaSenialesEjemplo2.png&amp;diff=3905</id>
		<title>Archivo:ButiaSenialesEjemplo2.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:ButiaSenialesEjemplo2.png&amp;diff=3905"/>
				<updated>2013-01-27T23:01:10Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:ButiaSenialesEjemplo1.png&amp;diff=3904</id>
		<title>Archivo:ButiaSenialesEjemplo1.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:ButiaSenialesEjemplo1.png&amp;diff=3904"/>
				<updated>2013-01-27T22:51:59Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3903</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3903"/>
				<updated>2013-01-27T22:38:46Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Objetivos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
==== Ejemplos usando la paleta ====&lt;br /&gt;
Usando la marca de ''Pare'', el Butia detiene la marcha. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;videoflash&amp;gt;vF9ZhQYIwVg&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Usando la marca de ''Seda el paso'', el Butia disminuye la velocidad. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;videoflash&amp;gt;Mbs5GT8vuIM&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Usando la marca de ''Contramano'', el Butia gira hasta no ver la marca y luego sigue adelante. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;videoflash&amp;gt;m04N9YJ7qd4&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
=== Actividad para agregar marcas ===&lt;br /&gt;
&lt;br /&gt;
Se creo una actividad por la cual se puede agregar o quitar marcas, de una manera mas amena al usuario (docentes o educandos), se puede descargar la misma desde (Poner link), &lt;br /&gt;
La actividad se puede instalar sin tener el Plugin o Tortugarte/TortuBots, pero al abrirla avisa al usuario que no se encuentra alguno de estos elementos.&lt;br /&gt;
En la primer pestaña se puede ver una lista con los identificadores de las señales que están instaladas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Si existe un icono asociado se muestra a la derecha al seleccionarlo, si no lo tiene se muestra un icono general.&lt;br /&gt;
TODO:Poner imagenes con ambos ejemplos&lt;br /&gt;
[[Archivo:NewPatternsListaConSeleccion.png]]&lt;br /&gt;
&lt;br /&gt;
En la segunda pestaña se encuentran los campos para poder agregar una señal, Identificador, tamaño, ruta al archivo .patt y como opcional la ruta al archivo .svg que servirá de icono en la paleta.&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se encuentra el link a la wiki que dice como generar el .patt&lt;br /&gt;
En el caso que se quiera poner una identificador de señal que ya exista, la actividad preguntara si se quiere sobrescribir.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3901</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3901"/>
				<updated>2013-01-26T22:56:10Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Paleta reconocimiento de marcas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
==== Ejemplos usando la paleta ====&lt;br /&gt;
Usando la marca de ''Pare'', el Butia detiene la marcha. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;videoflash&amp;gt;vF9ZhQYIwVg&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Usando la marca de ''Seda el paso'', el Butia disminuye la velocidad. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;videoflash&amp;gt;Mbs5GT8vuIM&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
Usando la marca de ''Contramano'', el Butia gira hasta no ver la marca y luego sigue adelante. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;videoflash&amp;gt;m04N9YJ7qd4&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
=== Actividad para agregar marcas ===&lt;br /&gt;
&lt;br /&gt;
Se creo una actividad por la cual se puede agregar o quitar marcas, de una manera mas amena al usuario (docentes o educandos), se puede descargar la misma desde (Poner link), &lt;br /&gt;
La actividad se puede instalar sin tener el Plugin o Tortugarte/TortuBots, pero al abrirla avisa al usuario que no se encuentra alguno de estos elementos.&lt;br /&gt;
En la primer pestaña se puede ver una lista con los identificadores de las señales que están instaladas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Si existe un icono asociado se muestra a la derecha al seleccionarlo, si no lo tiene se muestra un icono general.&lt;br /&gt;
TODO:Poner imagenes con ambos ejemplos&lt;br /&gt;
[[Archivo:NewPatternsListaConSeleccion.png]]&lt;br /&gt;
&lt;br /&gt;
En la segunda pestaña se encuentran los campos para poder agregar una señal, Identificador, tamaño, ruta al archivo .patt y como opcional la ruta al archivo .svg que servirá de icono en la paleta.&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se encuentra el link a la wiki que dice como generar el .patt&lt;br /&gt;
En el caso que se quiera poner una identificador de señal que ya exista, la actividad preguntara si se quiere sobrescribir.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3900</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3900"/>
				<updated>2013-01-26T22:47:47Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Paleta reconocimiento de marcas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;videoflash&amp;gt;vF9ZhQYIwVg&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;videoflash&amp;gt;Mbs5GT8vuIM&amp;lt;/videoflash&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;videoflash&amp;gt;m04N9YJ7qd4&amp;lt;/videoflash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
=== Actividad para agregar marcas ===&lt;br /&gt;
&lt;br /&gt;
Se creo una actividad por la cual se puede agregar o quitar marcas, de una manera mas amena al usuario (docentes o educandos), se puede descargar la misma desde (Poner link), &lt;br /&gt;
La actividad se puede instalar sin tener el Plugin o Tortugarte/TortuBots, pero al abrirla avisa al usuario que no se encuentra alguno de estos elementos.&lt;br /&gt;
En la primer pestaña se puede ver una lista con los identificadores de las señales que están instaladas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Si existe un icono asociado se muestra a la derecha al seleccionarlo, si no lo tiene se muestra un icono general.&lt;br /&gt;
TODO:Poner imagenes con ambos ejemplos&lt;br /&gt;
[[Archivo:NewPatternsListaConSeleccion.png]]&lt;br /&gt;
&lt;br /&gt;
En la segunda pestaña se encuentran los campos para poder agregar una señal, Identificador, tamaño, ruta al archivo .patt y como opcional la ruta al archivo .svg que servirá de icono en la paleta.&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se encuentra el link a la wiki que dice como generar el .patt&lt;br /&gt;
En el caso que se quiera poner una identificador de señal que ya exista, la actividad preguntara si se quiere sobrescribir.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3899</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3899"/>
				<updated>2013-01-26T22:29:38Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Actividad para agregar marcas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
=== Actividad para agregar marcas ===&lt;br /&gt;
&lt;br /&gt;
Se creo una actividad por la cual se puede agregar o quitar marcas, de una manera mas amena al usuario (docentes o educandos), se puede descargar la misma desde (Poner link), &lt;br /&gt;
La actividad se puede instalar sin tener el Plugin o Tortugarte/TortuBots, pero al abrirla avisa al usuario que no se encuentra alguno de estos elementos.&lt;br /&gt;
En la primer pestaña se puede ver una lista con los identificadores de las señales que están instaladas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Si existe un icono asociado se muestra a la derecha al seleccionarlo, si no lo tiene se muestra un icono general.&lt;br /&gt;
TODO:Poner imagenes con ambos ejemplos&lt;br /&gt;
[[Archivo:NewPatternsListaConSeleccion.png]]&lt;br /&gt;
&lt;br /&gt;
En la segunda pestaña se encuentran los campos para poder agregar una señal, Identificador, tamaño, ruta al archivo .patt y como opcional la ruta al archivo .svg que servirá de icono en la paleta.&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se encuentra el link a la wiki que dice como generar el .patt&lt;br /&gt;
En el caso que se quiera poner una identificador de señal que ya exista, la actividad preguntara si se quiere sobrescribir.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3796</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3796"/>
				<updated>2013-01-16T22:57:21Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Actividad para agregar marcas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
=== Actividad para agregar marcas ===&lt;br /&gt;
TODO: Agregar imágenes de la actividad para agregar marcas&lt;br /&gt;
Se creo una actividad por la cual se puede agregar o quitar marcas, de una manera mas amena al usuario (docentes o educandos), se puede descargar la misma desde (Poner link), &lt;br /&gt;
La actividad se puede instalar sin tener el Plugin o Tortugarte/TortuBots, pero al abrirla avisa al usuario que no se encuentra alguno de estos elementos.&lt;br /&gt;
En la primer pestaña se puede ver una lista con los identificadores de las señales que están instaladas.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
Si existe un icono asociado se muestra a la derecha al seleccionarlo, si no lo tiene se muestra un icono general.&lt;br /&gt;
TODO:Poner imagenes con ambos ejemplos&lt;br /&gt;
[[Archivo:NewPatternsListaConSeleccion.png]]&lt;br /&gt;
&lt;br /&gt;
En la segunda pestaña se encuentran los campos para poder agregar una señal, Identificador, tamaño, ruta al archivo .patt y como opcional la ruta al archivo .svg que servirá de icono en la paleta.&lt;br /&gt;
[[Archivo:NewPattersSegundaPestaña.png]]&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se encuentra el link a la wiki que dice como generar el .patt&lt;br /&gt;
En el caso que se quiera poner una identificador de señal que ya exista, la actividad preguntara si se quiere sobrescribir.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:NewPattersSegundaPesta%C3%B1a.png&amp;diff=3795</id>
		<title>Archivo:NewPattersSegundaPestaña.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:NewPattersSegundaPesta%C3%B1a.png&amp;diff=3795"/>
				<updated>2013-01-16T22:50:27Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: Segunda pestaña donde se agregan marcas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Segunda pestaña donde se agregan marcas&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:NewPatternsListaConSeleccion.png&amp;diff=3794</id>
		<title>Archivo:NewPatternsListaConSeleccion.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:NewPatternsListaConSeleccion.png&amp;diff=3794"/>
				<updated>2013-01-16T22:49:10Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: Pestaña donde se selecciona las marcas con una marca seleccionada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pestaña donde se selecciona las marcas con una marca seleccionada&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:NewPatternsLista.png&amp;diff=3793</id>
		<title>Archivo:NewPatternsLista.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:NewPatternsLista.png&amp;diff=3793"/>
				<updated>2013-01-16T22:48:22Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: Lista de primera pestaña de la actividad NewPatters&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lista de primera pestaña de la actividad NewPatters&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Reconociendo_seniales_Ejemplo.png&amp;diff=3792</id>
		<title>Archivo:Reconociendo seniales Ejemplo.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Reconociendo_seniales_Ejemplo.png&amp;diff=3792"/>
				<updated>2013-01-16T22:44:05Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: subió una nueva versión de «Archivo:Reconociendo seniales Ejemplo.png»: Se cambia el ejemplo por el nuevo bloque booleano&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En la imagen se puede ver un ejemplo de codigo turtlebots que usa la paleta de reconocimiento de señales. Puede compararse contra Verdadero/Falso o 1/0&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Paleta_reco_marcas.png&amp;diff=3791</id>
		<title>Archivo:Paleta reco marcas.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Paleta_reco_marcas.png&amp;diff=3791"/>
				<updated>2013-01-16T22:31:24Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: subió una nueva versión de «Archivo:Paleta reco marcas.png»: Se agrego el nuevo bloque para booleano&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paleta de reconocimiento de marcas&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3705</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3705"/>
				<updated>2013-01-10T14:52:21Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Actividad para agregar marcas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
=== Actividad para agregar marcas ===&lt;br /&gt;
TODO: Agregar imágenes de la actividad para agregar marcas&lt;br /&gt;
Se creo una actividad por la cual se puede agregar o quitar marcas, de una manera mas amena al usuario (docentes o educandos), se puede descargar la misma desde (Poner link), &lt;br /&gt;
La actividad se puede instalar sin tener el Plugin o Tortugarte/TortuBots, pero al abrirla avisa al usuario que no se encuentra alguno de estos elementos.&lt;br /&gt;
En la primer pestaña se puede ver una lista con los identificadores de las señales que están instaladas.&lt;br /&gt;
&amp;lt;Poner imagen con primer pestaña&amp;gt;&lt;br /&gt;
Si existe un icono asociado se muestra a la derecha al seleccionarlo, si no lo tiene se muestra un icono general.&lt;br /&gt;
&amp;lt;Poner imagenes con ambos ejemplos&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En la segunda pestaña se encuentran los campos para poder agregar una señal, Identificador, tamaño, ruta al archivo .patt y como opcional la ruta al archivo .svg que servirá de icono en la paleta.&lt;br /&gt;
&amp;lt;Poner imagen de segunda pestaña&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En esta pestaña se encuentra el link a la wiki que dice como generar el .patt&lt;br /&gt;
En el caso que se quiera poner una identificador de señal que ya exista, la actividad preguntara si se quiere sobrescribir.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3704</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3704"/>
				<updated>2013-01-10T14:37:55Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
=== Actividad para agregar marcas ===&lt;br /&gt;
TODO: Agregar imágenes de la actividad para agregar marcas&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3703</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3703"/>
				<updated>2013-01-10T14:29:05Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Trabajos a Futuro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* &amp;lt;strike&amp;gt;'''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt; '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&amp;lt;/strike&amp;gt;&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3702</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3702"/>
				<updated>2013-01-10T14:25:21Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Objetivos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
Ejemplos de marcas:&lt;br /&gt;
[[Archivo:StopMark.png]] [[Archivo:YieldMark.png]]&lt;br /&gt;
&lt;br /&gt;
Una de las cosas que nos permite la librería (ARToolKit) es que las marcas no necesariamente tienen que estar en color, permitiendo así imprimirlas en cualquier impresora siempre y cuando se mantenga el tamaño.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; &lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
===Compilar archivos===&lt;br /&gt;
Son necesarias los siguientes paquetes debian para poder compilar:&lt;br /&gt;
libglib-2.0-dev, freeglut3-dev, libgstreamer0.10-dev, libxi-dev&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* '''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&lt;br /&gt;
* '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3080</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3080"/>
				<updated>2012-09-22T15:10:44Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Paleta reconocimiento de marcas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Carlos Lima&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
Paleta:&lt;br /&gt;
[[Archivo:Paleta_reco_marcas.png]]&lt;br /&gt;
La paleta posee botones fijos que son:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Viendo Senial&amp;quot; TODO:ICONO&lt;br /&gt;
&lt;br /&gt;
Este icono recibe como parámetro un icono de señal (imagen o texto), y nos dice si la cámara lo esta viendo o no. En principio se puede comparar contra Verdadero/Falso o 1/0&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Parar Camara&amp;quot; TODO:ICONO&lt;br /&gt;
&lt;br /&gt;
El resto se autogenera leyendo el archivo pattern_detection/library/multiPatternDetection/Data/object_data, en este archivo estan todos las marcas que se pueden ver con la paleta, uno de los datos que se ponen dentro es un identificador (nombre) que al iniciarse se lee y luego se busca en la carpeta pattern_detection/images/ si tiene el icono correspondiente, si esta pone la imagen como aparece en la paleta, sino lo encuentra generara el icono pero con el texto del nombre. En la sección [[Butia_reconocimiento_marcas]] se puede ver las caracteristicas de estos iconos.&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
[[Archivo:reconociendo_seniales_Ejemplo.png]]&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
TODO: imágenes de la paleta&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
TODO:&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* '''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&lt;br /&gt;
* '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Reconociendo_seniales_Ejemplo.png&amp;diff=3079</id>
		<title>Archivo:Reconociendo seniales Ejemplo.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Reconociendo_seniales_Ejemplo.png&amp;diff=3079"/>
				<updated>2012-09-22T15:09:26Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: En la imagen se puede ver un ejemplo de codigo turtlebots que usa la paleta de reconocimiento de señales. Puede compararse contra Verdadero/Falso o 1/0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;En la imagen se puede ver un ejemplo de codigo turtlebots que usa la paleta de reconocimiento de señales. Puede compararse contra Verdadero/Falso o 1/0&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Paleta_reco_marcas.png&amp;diff=3078</id>
		<title>Archivo:Paleta reco marcas.png</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Archivo:Paleta_reco_marcas.png&amp;diff=3078"/>
				<updated>2012-09-22T14:53:55Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: Paleta de reconocimiento de marcas&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paleta de reconocimiento de marcas&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	<entry>
		<id>http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3029</id>
		<title>Butia reconocimiento marcas</title>
		<link rel="alternate" type="text/html" href="http://164.73.124.35/inco/proyectos/butia/mediawiki/index.php?title=Butia_reconocimiento_marcas&amp;diff=3029"/>
				<updated>2012-09-10T18:06:28Z</updated>
		
		<summary type="html">&lt;p&gt;Nfurquez: /* Generación de nuevas marcas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Integrantes ==&lt;br /&gt;
* Nicolás Fúrquez&lt;br /&gt;
* Carlos Lima&lt;br /&gt;
* Rafael Sisto&lt;br /&gt;
&lt;br /&gt;
== Objetivos ==&lt;br /&gt;
* Utilizando [http://www.hitl.washington.edu/artoolkit/ ARToolKit] construir un plugin para Tortugarte/Tortublocks que permita reconocer las marcas. Esto puede ser utilizado para que el robot se localice y navegue en un entorno.&lt;br /&gt;
&lt;br /&gt;
== Documentación de la solución ==&lt;br /&gt;
Se desarrolló un api que obtiene la información almacenada de las marcas y mediante la ayuda de ARToolKit se detectan las mismas en las capturas de la cámara.&lt;br /&gt;
&lt;br /&gt;
El código fuente e instrucciones de instalación se pueden encontrar en el repositorio utilizado: &lt;br /&gt;
[https://github.com/rsisto/multiPatternRecognition multiPatternRecognition]&lt;br /&gt;
&lt;br /&gt;
=== Diagrama de componentes ===&lt;br /&gt;
En el siguiente diagrama pueden visualizarse los componentes y su interacción. pattern_detection funciona como plugin de TurtleBlocks, que a su vez utiliza la librería multiPatternDetection (a través de un binding de python a C). Esta última utiliza funciones de ARToolKit para la detección de marcas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Arq_pattern_detection.png|centro|500px|Arquitectura de detección de patrones con ARToolKit]]&lt;br /&gt;
&lt;br /&gt;
=== Paleta reconocimiento de marcas ===&lt;br /&gt;
TODO: imágenes de la paleta y documentar cada elemento&lt;br /&gt;
&lt;br /&gt;
TODO: cómo se usa y ejemplo de código turtleart&lt;br /&gt;
&lt;br /&gt;
=== Desafíos y problemas encontrados ===&lt;br /&gt;
* La librería ARToolKit requiere la librería libglut.so.3 para funcionar, sin embargo en las XO no es posible instalar la librería en carpetas del sistema. Esto causa que al intentar cargar la librería con C types en python se devuelva el error ''OSError: libglut.so.3: cannot open shared object file: No such file or directory''. Para evitar este problema, se adjunta la librería en la carpeta del plugin y se carga en python previo a cargar la librería de ARToolkit con el siguiente comando: ''cdll.LoadLibrary(&amp;quot;lib/libglut.so.3&amp;quot;)''.&lt;br /&gt;
&lt;br /&gt;
== Instalación de plugin ==&lt;br /&gt;
TODO: imágenes de la paleta&lt;br /&gt;
&lt;br /&gt;
== Generación de nuevas marcas ==&lt;br /&gt;
TODO: Generación de pdf con marca para imprimir.&lt;br /&gt;
&lt;br /&gt;
Luego de generados los archivos para imprimir, se deberán generar los archivos de patrones. &lt;br /&gt;
Para realizar esto:&lt;br /&gt;
# Acceder al [[Generador de patrones para plugin Reconocimento de marcas]]&lt;br /&gt;
# Seleccionar el origen de donde se generará el patrón. Si se utiliza la cámara, seleccionar ''Camera Mode''. Si se carga la imagen del patrón (incluyendo el recuadro negro) desde un archivo, seleccionar ''Load marker Image''&lt;br /&gt;
# Seleccionar tamaño de patrón, por ejemplo, si el patrón (incluyendo el recuadro negro) mide 16x16 cm, seleccionar ''16x16''&lt;br /&gt;
# Seleccionar porcentaje del recuadro que representa el patrón. Por ejemplo, si todo el recuadro mide 16cm y el borde negro mide 2cm, el patrón mide 12x12cm, por lo tanto 75%. &lt;br /&gt;
# Una vez que se vea un recuadro rojo alrededor de la marca con el rectángulo negro, presionar el botón ''Get Pattern''. Aparecerá un recuadro con los patrones reconocidos, navegar con el botón ''next'' al deseado y presionar ''Save current''. Darle un nombre al archivo en minúsculas, con la extensión '''.patt''', por ejemplo mimarca.patt&lt;br /&gt;
&lt;br /&gt;
En este punto se tiene el archivo .patt generado y como último paso se debe configurar el plugin para poder comenzar a utilizarlo. Para esto:&lt;br /&gt;
# Copiar archivo generado (extensión .patt) a la carpeta ''pattern_detection/library/multiPatternDetection/Data/''&lt;br /&gt;
# Editar el archivo '''object_data''' en esa misma carpeta:&lt;br /&gt;
## Incrementar en 1 el número que aparece al principio (Cantidad de marcas a ser detectados). &lt;br /&gt;
## Agregar a continuación en el mismo archivo las líneas correspondientes al patrón, de la siguiente manera:&lt;br /&gt;
### Una línea representando el id de la marca&lt;br /&gt;
### Línea con el nombre de archivo .patt generado anteriormente&lt;br /&gt;
### Línea conteniendo tamaño en milímetros de la marca&lt;br /&gt;
### Línea conteniendo 2 decimales, separados por 1 espacio representando el punto medio de la marca.&lt;br /&gt;
## Guardar el archivo y cerrar.&lt;br /&gt;
# La marca está lista para ser utilizada y aparecerá en la paleta de Tortugarte luego de reiniciar. Por defecto aparecerá un texto con el id de la marca, pero es posible agregar un ícono, generando 1 imagen en formato svg y colocándola en la carpeta '''images/'''. Por ejemplo, para la marca con id '''Stop''' dentro del archivo  '''object_data''', se debe generar 2 imágenes, una nombrándola como '''Stop'''small.svg de 40x40px y creando una copia de la misma con el nombre '''Stop'''off.svg pero de 70x70px.&lt;br /&gt;
&lt;br /&gt;
== Trabajos a Futuro ==&lt;br /&gt;
TODO:&lt;br /&gt;
* '''Mayor versatilidad para marcas''': El reconocimiento de marcas con ARToolKit facilitó el desarrollo de la solución, ya que al ser utilizado en otras actividades en las terminales XO acortaba el tiempo del proyecto, ya que no se tuvo que hacer un análisis de factibilidad y se tenía la librería ya compilada para los mismos, además que la generación de patrones ya viene resuelta. Sin embargo, al utilizar este API, las marcas están limitadas a una forma cuadrada y que estén contenidas dentro de un recuadro negro. Para poder evitar estas limitantes se sugiere utilizar un API de más bajo nivel como OpenCV para poder reconocer otros tipos de marcas, como por ejemplo, personas, caras, objetos, etc.&lt;br /&gt;
* '''Bloque para obtener distancia a marca''': La librería creada en C actualiza el estado de las marcas cuando detecta la presencia de las mismas. Entre esa información, se encuentra una matriz que tiene la posición de la marca respecto a la cámara. Se sugiere que con esta información se cree un nuevo bloque '''Distancia a la marca''', similar al detectar marca, que reciba como parámetro el id de marca y devuelva la distancia a la marca.&lt;br /&gt;
* '''Internacionalización''': La paleta desarrollada se realizó en idioma español, pero sería recomendable internacionalizar las etiquetas para que pueda ser localizado a otros idiomas de TurtleArt, por lo menos en inglés.&lt;/div&gt;</summary>
		<author><name>Nfurquez</name></author>	</entry>

	</feed>