Diferencia entre revisiones de «Discusión:Plugin QR 2013»
m (→Tercera etapa) |
m (→Concluciones) |
||
(No se muestran 21 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
− | == | + | == Introducción == |
Este proyecto propone la creación de una paleta que permita procesar códigos QR con la cámara de la XO y obtener el string asociado al mismo. | Este proyecto propone la creación de una paleta que permita procesar códigos QR con la cámara de la XO y obtener el string asociado al mismo. | ||
Línea 6: | Línea 6: | ||
Principalmente el problema puede descomponerse en dos grupos: | Principalmente el problema puede descomponerse en dos grupos: | ||
− | * Decodificar | + | * Decodificar imágenes QR en código nativo python, evitando la compilación para diferentes arquitecturas. |
− | * Agregar una paleta que permita capturar y decodificar | + | * Agregar una paleta que permita capturar y decodificar imágenes en formato QR. |
− | + | ||
== Investigacion == | == Investigacion == | ||
=== Primera etapa === | === Primera etapa === | ||
− | Dado que en la | + | Dado que en la actualidad los códigos QR están siendo cada vez mas utilizado para distintos ámbitos, se pensó que podría existir alguna herramienta Open Source que cumpliera con algunos de los objetivos de nuestro proyecto. |
− | Luego de | + | Luego de algún tiempo de investigación y pruebas de varias herramientas gratuitas, concluimos que en la actualidad no existe una herramienta que cumpla con nuestras condiciones. |
− | Encontramos algunas | + | Encontramos algunas bibliotecas de Python como [[qrencode]] o [[libqrencode]] que permiten a partir de un texto y/o URL generar una imagen QR. |
− | Al momento de la | + | Al momento de la decodificación de QR encontramos muchos ejemplos escritos en lenguajes de programación '''C, Java, Perl, Python'''. Pero todos ellos tienen un denominador común, y es que todos ellos utilizaban bibliotecas en C para la decodificación. Dichas bibliotecas son componentes del modulo Zbar (binario generado en C). Además podemos decir que dicho código no fue localizado. |
En consecuencia para poder utilizar dicho modulo deben ser descargados para las arquitecturas a utilizar. | En consecuencia para poder utilizar dicho modulo deben ser descargados para las arquitecturas a utilizar. | ||
=== Segunda etapa === | === Segunda etapa === | ||
− | Dadas las dificultades | + | Dadas las dificultades descritas anteriormente se plantea al equipo analizar el costo de desarrollar el algoritmo de decodificación QR en Python. |
− | Se | + | Se realizó dicha investigación y se entregan diferentes documentos: |
− | 1- | + | 1- Análisis detallado para resolver la decodificación de QR [[Archivo:Analisis_decodificación_QR_Code.pdf]]. |
2- Documento de riesgos [[Archivo:Riesgos_decodificación_QR_Code.pdf]]. | 2- Documento de riesgos [[Archivo:Riesgos_decodificación_QR_Code.pdf]]. | ||
− | 3- Cronograma de | + | 3- Cronograma de implementación y testing [[Archivo:Cronograma.pdf]]. |
=== Tercera etapa === | === Tercera etapa === | ||
− | A partir de la | + | A partir de la documentación entregada se llego a la conclusión que siendo un algoritmo complejo de desarrollar se optó por seguir otros caminos. Entre otros, investigar Perl. Se investigó y los ejemplos no fueron exitosos. En consecuencia se sigue el camino de Python utilizando bibliotecas en C, en particular Zbar. |
− | == | + | En paralelo se agregó un nuevo plugin a TurtleBots llamado qr, dicho plugin permite capturar imágenes y decodificarlas. |
− | Las pruebas fueron realizadas en 3 distribuciones de | + | Para la captura desde TurteBlots se utilizo Streamer. |
+ | [[Archivo:paleta.png]] | ||
+ | |||
+ | == Procedimiento == | ||
+ | |||
+ | == Instalación == | ||
+ | Las pruebas fueron realizadas en 3 distribuciones de Linux (Ubuntu, Fedora, Sugar). | ||
+ | |||
+ | A continuación se indican los comandos para instalar las bibliotecas qrtools, zbar y Streamer. | ||
Ubuntu: | Ubuntu: | ||
'sudo apt-get install python-qrtools' | 'sudo apt-get install python-qrtools' | ||
+ | 'sudo apt-get install streamer' | ||
− | Fedora: | + | Fedora y Sugar: |
'sudo yum install pyqt4 qrencode python-imaging zbar-devel' | 'sudo yum install pyqt4 qrencode python-imaging zbar-devel' | ||
'sudo easy_install zbar' si dicho comando falla ejecutar 'sudo yum install zbar-devel' | 'sudo easy_install zbar' si dicho comando falla ejecutar 'sudo yum install zbar-devel' | ||
+ | |||
+ | Posteriormente se agrega el plugin qr a la actividad TurtleBots... | ||
+ | |||
+ | == Trabajo a futuro == | ||
+ | 1- Implementar el algoritmo de decodificación nativo en Python, y sustituir las bibliotecas binarias (zbar). | ||
+ | |||
+ | == Conclusiones == | ||
+ | - Dicho proyecto lo abocamos mas a la investigación, ya que nos enfrentamos a varios problemas (entre ellos se puede nombrar a la incompatibilidad entre archivos binarios y distribuciones linux). | ||
+ | |||
+ | == Referencias == | ||
+ | [[Java / C]] | ||
+ | http://www.chuidiang.com/clinux/herramientas/librerias.php | ||
+ | |||
+ | [[QR Python]] | ||
+ | http://ralgozino.wordpress.com/2011/06/13/how-to-create-and-decode-a-qr-code-in-python-using-qrtools/ | ||
+ | Paquetes y Dependencias | ||
+ | http://blog.desdelinux.net/como-identificar-las-dependencias-de-un-paquete-o-archivo-binario/ | ||
+ | http://www.linux-magazine.es/issue/62/043-047_PythonLM62.pdf | ||
+ | |||
+ | [[QR Perl]] | ||
+ | http://oylenshpeegul.typepad.com/blog/2012/01/reading-qr-codes-in-perl.html | ||
+ | http://search.cpan.org/~kurihara/Imager-QRCode/lib/Imager/QRCode.pm | ||
+ | http://www.foo.be/docs/tpj/issues/vol5_2/tpj0502-0008.html | ||
+ | http://iharder.sourceforge.net/current/macosx/imagesnap/ | ||
+ | |||
+ | [[Python & C]] | ||
+ | http://stackoverflow.com/questions/9420673/is-it-possible-to-compile-c-code-using-python |
Revisión actual del 00:08 19 jun 2014
Contenido
Introducción
Este proyecto propone la creación de una paleta que permita procesar códigos QR con la cámara de la XO y obtener el string asociado al mismo.
Análisis del problema
Principalmente el problema puede descomponerse en dos grupos:
- Decodificar imágenes QR en código nativo python, evitando la compilación para diferentes arquitecturas.
- Agregar una paleta que permita capturar y decodificar imágenes en formato QR.
Investigacion
Primera etapa
Dado que en la actualidad los códigos QR están siendo cada vez mas utilizado para distintos ámbitos, se pensó que podría existir alguna herramienta Open Source que cumpliera con algunos de los objetivos de nuestro proyecto. Luego de algún tiempo de investigación y pruebas de varias herramientas gratuitas, concluimos que en la actualidad no existe una herramienta que cumpla con nuestras condiciones.
Encontramos algunas bibliotecas de Python como qrencode o libqrencode que permiten a partir de un texto y/o URL generar una imagen QR. Al momento de la decodificación de QR encontramos muchos ejemplos escritos en lenguajes de programación C, Java, Perl, Python. Pero todos ellos tienen un denominador común, y es que todos ellos utilizaban bibliotecas en C para la decodificación. Dichas bibliotecas son componentes del modulo Zbar (binario generado en C). Además podemos decir que dicho código no fue localizado. En consecuencia para poder utilizar dicho modulo deben ser descargados para las arquitecturas a utilizar.
Segunda etapa
Dadas las dificultades descritas anteriormente se plantea al equipo analizar el costo de desarrollar el algoritmo de decodificación QR en Python. Se realizó dicha investigación y se entregan diferentes documentos:
1- Análisis detallado para resolver la decodificación de QR Archivo:Analisis decodificación QR Code.pdf. 2- Documento de riesgos Archivo:Riesgos decodificación QR Code.pdf. 3- Cronograma de implementación y testing Archivo:Cronograma.pdf.
Tercera etapa
A partir de la documentación entregada se llego a la conclusión que siendo un algoritmo complejo de desarrollar se optó por seguir otros caminos. Entre otros, investigar Perl. Se investigó y los ejemplos no fueron exitosos. En consecuencia se sigue el camino de Python utilizando bibliotecas en C, en particular Zbar.
En paralelo se agregó un nuevo plugin a TurtleBots llamado qr, dicho plugin permite capturar imágenes y decodificarlas. Para la captura desde TurteBlots se utilizo Streamer.
Procedimiento
Instalación
Las pruebas fueron realizadas en 3 distribuciones de Linux (Ubuntu, Fedora, Sugar).
A continuación se indican los comandos para instalar las bibliotecas qrtools, zbar y Streamer.
Ubuntu: 'sudo apt-get install python-qrtools' 'sudo apt-get install streamer'
Fedora y Sugar: 'sudo yum install pyqt4 qrencode python-imaging zbar-devel' 'sudo easy_install zbar' si dicho comando falla ejecutar 'sudo yum install zbar-devel'
Posteriormente se agrega el plugin qr a la actividad TurtleBots...
Trabajo a futuro
1- Implementar el algoritmo de decodificación nativo en Python, y sustituir las bibliotecas binarias (zbar).
Conclusiones
- Dicho proyecto lo abocamos mas a la investigación, ya que nos enfrentamos a varios problemas (entre ellos se puede nombrar a la incompatibilidad entre archivos binarios y distribuciones linux).
Referencias
Java / C http://www.chuidiang.com/clinux/herramientas/librerias.php
QR Python http://ralgozino.wordpress.com/2011/06/13/how-to-create-and-decode-a-qr-code-in-python-using-qrtools/ Paquetes y Dependencias http://blog.desdelinux.net/como-identificar-las-dependencias-de-un-paquete-o-archivo-binario/ http://www.linux-magazine.es/issue/62/043-047_PythonLM62.pdf
QR Perl http://oylenshpeegul.typepad.com/blog/2012/01/reading-qr-codes-in-perl.html http://search.cpan.org/~kurihara/Imager-QRCode/lib/Imager/QRCode.pm http://www.foo.be/docs/tpj/issues/vol5_2/tpj0502-0008.html http://iharder.sourceforge.net/current/macosx/imagesnap/
Python & C http://stackoverflow.com/questions/9420673/is-it-possible-to-compile-c-code-using-python