Joaquín Bogado

Joaquín Bogado presentó recientemente su tesis para obtener el título de Licenciado en Informática. En la misma, llevó a cabo el desarrollo de un controlador para GNU/Linux que permite que un modelo de cámara muy específico (QHY5T) se pueda utilizar en este sistema operativo. Este controlador funciona como una librería que permite crear programas que, por ejemplo, configuren la cámara de una determinada manera, que puedan pedirle un frame (una foto) a la cámara, etc. Un programa así se denomina visor y para la tesina Joaquín también desarrolló,  además del controlador, un visor de ejemplo que utiliza las funciones más importantes del controlador.

Título: Controlador en espacio de usuario para la cámara QHY5T

Autor: Joaquín Bogado

Fecha de Presentación: 04/06/2014

Presentación

 

DSC_0782 (1)

DSC_0780 (1)

¿Qué  te motivó a trabajar sobre este tema?

La cámara sobre la que trabajé está diseñada para hacer astrofotografía. En su concepción, es muy similar a una webcam, pero cuenta con algunas diferencias fundamentales. El sensor es más sensible a la luz, la cámara no tiene lente (sin un telescopio, no se puede enfocar ningún objeto) y además cuenta con un puerto de guiado para trabajar con monturas ecuatoriales que soporten el protocolo de comunicación ST-4, lo que permite hacer fotografía de larga exposición con guiado.

En mis tiempos libres, me dedico a hacer astronomía amateur. Hace un par de años había comprado la cámara y no andaba en GNU/Linux. Las noches nubladas en las que no podría hacer observaciones me dediqué a investigar como podía hacer para que funcionara. Luego de dos años en los cuales aprendí muchísimo acerca del funcionamiento de cámaras similares y durante los cuales recibí el apoyo de mucha gente de varios países que estaban trabajando en proyectos relacionados con estas tecnologías  (no podría haberlo hecho yo solo), obtuve los primeros resultados mostrables. Para este tiempo ya estaba concluyendo mis estudios y debía elegir un tema para mi tesina y pensé ¿por qué no? Se puede decir que la elección del tema de tesina fue casi accidental. Algo que empezó como un pasatiempo, hoy me permitió recibirme habiendo realizado un trabajo tan serio como divertido. Ojala todos pudieran tener la suerte que tuve yo.

 ¿Cuáles son las ventajas de contar con el diseño de este Driver?

Bueno, el controlador es en espacio de usuario en lugar de en espacio de kernel. Esto tiene ventajas y desventajas. En lo que respecta a las ventajas, no es necesario modificar la base de código del Kernel Linux. El Kernel Linux es un proyecto grande y maduro cuyos estándares de codificación permiten que sea un proyecto de gran calidad. Esto representa dos obstáculos importantes: modificar el kernel no es sencillo y una vez que se logra, que dichos cambios se agreguen a la base de código del kernel oficial, también es difícil. Como el driver es en espacio de usuario, estos inconvenientes dejan de serlo. Además un usuario de GNU/Linux no experto puede utilizar el controlador sin necesidad de modificar el kernel.

Por el lado de las desventajas, los controladores en espacio de kernel crean dispositivos virtuales que otros programas pueden usar, los cuales tienen una interfaz establecida y común. Muchos programas visores utilizan estos dispositivos para acceder a los dispositivos físicos. Dichos programas (algunos de gran madurez y largo tiempo de desarrollo) no pueden utilizarse con esta cámara y hay que modificarlos o escribir visores nuevos.

 ¿En qué aspectos creés que ayudaría a mejorar la experiencia del usuario?

Como ya mencioné, el controlador es más parecido a una librería que a un programa terminado destinado a un usuario final. Esto le permite a otros programadores acceder a las funciones de la cámara y escribir sus propios programas visores. Además, dado que el código fuente del controlador es abierto, otros pueden estudiarlo y mejorarlo (hay muchas cosas que se pueden mejorar). Esto da la oportunidad de que otros aprendan acerca del funcionamiento de cámaras como esta o similares, que se introduzcan al mundo de desarrollo de controladores o al procesamiento de imágenes. El área de la astronomía amateur es un campo de juegos para los informáticos, en los cuales se pueden realizar aportes a la comunidad de aficionados/profesionales de mucha importancia. El esfuerzo invertido en estas tareas vuelve de la mano con conocimientos y experiencias difíciles de conseguir en otros ámbitos de la carrera.

 ¿Con qué obstáculos te encontraste en el desarrollo de la tesis?

Creo que el obstáculo más grande fue escribir. Darle forma de tesina, contar todo lo que había hecho tratando de darle cierta continuidad al texto, no dejar nada afuera, expresar los contenidos en forma clara pensando en que los posibles lectores podían no tener conocimientos técnicos relacionados con la tecnología presentada, pero a la vez profundizando en los aspectos que consideraba de importancia. Definitivamente  no fue una tarea sencilla. Por suerte, hace unos años trabajo en uno de los laboratorios de investigación de nuestra Facultad (en el LINTI) y parte de las actividades tienen que ver con escribir y documentar el trabajo realizado diariamente para presentar dichas actividades en congresos. Me imagino que para aquellos alumnos que deben enfrentar el problema de escribir 70 páginas sobre un tema en particular por primera vez en su carrera, no debe ser un obstáculo fácil de superar.

¿Qué  diferencias tiene tu desarrollo en comparación con otros desarrollos predecesores?

Mi trabajo se basa en un controlador abierto para GNU/Linux para un modelo de cámara similar. Muchas de las rutinas de mi controlador todavía tienen una forma que se asemeja bastante a la de este controlador original. Sin embargo muchos y muy profundos fueron los cambios realizados. Tal vez el más importante tiene que ver con que el controlador de mi tesina utiliza un thread (hilo de procesamiento) separado para la adquisición de los frames, mientras que el controlador original realizaba todas las tareas en un único thread. Esto permite entre otras cosas, que el controlador de mi trabajo logre un rendimiento similar (y en algunos casos, superior) al rendimiento del driver de referencia para el sistema operativo Windows.

 ¿Estás interesado en difundir tu desarrollo? ¿Cuál creés que es su potencialidad?

El desarrollo ya está siendo difundido. El código está publicado en varios repositorios de código en linea y fue enviado al fabricante de la cámara. Muchos de los usuarios de esta cámara que me ayudaron durante el desarrollo del controlador hoy se cuentan entre la base de usuarios del visor y pueden utilizar la cámara en GNU/Linux gracias al desarrollo propuesto en este trabajo. Una sección importante del trabajo de tesis es la de trabajo a futuro, donde se enumeran algunas de las tareas más importantes para seguir con este trabajo. Esto se puede usar de base para futuras tesinas o como dije más arriba, simplemente para introducirse en el desarrollo de controladores.

 ¿Qué influencia tuvo el desarrollo de la tesina para tu desempeño laboral?

Ninguna. Mi tesina de Licenciatura surgió a partir de un pasatiempo. Sin embargo me resulta interesante poder aplicar mis conocimientos en informática en esta actividad que realizo como hobbie y ahora se que todavía hay muchísimo por hacer.

 Algunas de las fotos que se obtuvieron con la cámara:

Plato-RimaPlato-VallisAlpes

 

saturno-20140224-0415-casa-820f

 

marte-24feb-23mar

 

jupiter-20140116-ptorico-1000f

Vuelve al inicio