Universidad
publicado en noviembre 2005
robótica y opensource

CC60V: Seminario de Software Libre - Robótica y OpenSource


Dentro del área de la Robótica, el desarrolo de software es una componente fundamental. El modelo de Software Libre ha tenido una fuerte influencia en este ámbito, favoreciendo el avance y desarrollo tanto de la industria de la robótica como de la investigación académica.


Introducción

La robótica corresponde a un área de la ciencia, donde el hombre ha intentado desarrollar seres autónomos, que lo ayuden en su vida diaria. Históricamente, la robótica ha estado más cercana a la ciencia ficción que a la realidad, mostrándonos ``seres inteligentes'' que ejecutan acciones, caminan, o incluso piensan. Sin embargo, en la realidad, las realizaciones concretas alcanzadas en este campo, recién ahora están alcanzando un cierto grado de desarrollo, como para ver resultados prácticos.

El origen de la robótica, se remonta algunos siglos atrás. Hacia el siglo XVI, Leonardo Da Vinci imaginaba diversos tipos de máquinas, capaces de realizar labores que eran propias del ser humano. Incluso diseñó a través de bosquejos, un robot humanoide, un caballero armado capaz de sentarse, mover los brazos y la cabeza. Más adelante, dos siglos después, encontramos otros intentos de autómatas: robots músicos, una muñeca mecánica capaz de dibujar, o incluso, el famoso ''Turco``, un supuesto robot capaz de jugar al ajedrez. Posteriormente, con la revolución industrial, y el avance de la tecnología, los robots y en general las máquinas, empezaron a encontrar un lugar en la industria, apoyando las actividades de producción del hombre.



Figura: El turco: el primer autómata que jugaba ajedrez
\includegraphics[scale=0.8]{turco.eps}



Ya entrado el siglo XX, nos encontramos con la aparición de la ciencia de la computación, y en particular, con el área de la Inteligencia Artificial. Hacia 1950, aparecen los primeros intentos por desarrollar robots que intenten imitar a los humanos. Por otro lado, la ciencia ficción nos muestra a los robots como una amenaza para los humanos, en un mundo donde el hombre sería dominado por las máquinas pensantes.

Sin embargo, este desarrollo de la robótica no sería posible sin todo el apoyo de la investigación que se realiza en las universidades y centros tecnológicos, a lo largo del mundo. Investigadores de diversas universidades, han visto en la robótica, una forma de llevar a cabo muchos de sus estudios en áreas como la computación, la inteligencia artificial, o los sistemas de control automático. Recién hoy en día podemos ver algunos resultados prácticos de estas investigaciones.

Precisamente, los resultados prácticos de la robótica, se están manifestando hoy en día, a través de la aparición ''pública`` de modelos de robots, cuyo propósito es servir a las personas, en diversas actividades de su vida diaria. Así, encontramos desde robots que buscan ayudar a personas discapacitadas, o robots que ayudan a las labores hogareñas. Esto ha permitido el surgimiento de una nueva industria, la de la robótica, la cual recíen está tratando de ganar un lugar entre los usuarios.

El propósito de este trabajo, es el de estudiar el impacto de las herramientas y metodologías del Software Libre dentro de la robótica, tanto en el ámbito de la industria, como en el área académica. Para ello, se estudian los casos de ciertas empresas que han cambiado su modelo de desarrollo, hacia el Open Source. Por otro lado, se muestran los beneficios que reporta el trabajar (y desarrollar) en ambientes Open Source, dentro de universidades y centros de investigación.



Industria

La industria de la robótica representa un mercado de muy corta existencia. Durante la segunda mitad del siglo XX, han ido apareciendo en escena, diversos modelos de robots, que fundamentalmente se han dedicado al desempeño en labores industriales: manufactura, control automático, etc. En 1960 ocurre el primer gran hito: el robot Unimate es creado e instalado en la empresa General Motors, convirtiéndose en el primer robot de ayuda a la producción industrial.



Figura: Robots de uso industrial
\includegraphics[scale=1.8]{industriales.eps}



A partir de los años 60, comienza lentamente la penetración de los robots en los procesos industriales. Las empresas comienzan una etapa de automatición que implica la necesidad de contar con robots capaces de satisfacer esta creciente demanda. En este escenario, comienzan a aparecer empresas que se dedicaron a proveer de los robots que la industria necesitaba, pero siempre en el ámbito de la producción industrial.

Una vez superada la fase de penetración entre las industrias de procesos, aparece la necesidad de buscar nuevos nichos. De esta manera, surgen los primeros intentos de llevar la robótica a la vida cotidiana. Se busca acercar la robótica al hogar y la oficina, a través de modelos capaces de servir directamente a las personas en sus actividades diarias.

En este nuevo escenario, hacia la década de los 90 surgen varias empresas, tales como Probotics, iRobot, Gecko Systems, K-Team, etc. Estas empresas se iniciaron como simples productores de robots, donde el producto ofrecido era un robot autómata, con un software de control, el cual era también parte del paquete que se vendía. Si el usuario final quería una mayor funcionalidad, debería pagar por ésta. Bajo este esquema, se inició el desarrollo de la industria de robots, propiamente tal, que comenzó su carrera por ingresar y colocar en la vida de las personas, el uso de estas máquinas.

A continuación, se analizán dos casos emblemáticos dentro de esta industria: Probotics (''Robots that work... while you play``), es una empresa creada a partir de Cyperceptions, Inc., en 1998. Esta empresa comenzó sus operaciones (y ventas), basándose en el esquema tradicional, de producir y vender robots, y el software asociado a los robots. Sin embargo, al poco tiempo de existencia, esta empresa se dió cuenta de las oportunidades que representaba el Open Source. Estas oportunidades se referían basicamente a asignarle una mayor importancia a la participación de los usuarios finales (la comunidad), los cuales serín quienes finalmente se interesarían.



Figura: Robot Cye
\includegraphics[scale=1.0]{cye.eps}



De esta manera, Probotics decidió dar un giro fundamental, e inició el cambio hacia el Software Libre. Este cambio, se basó en la gran cantidad de peticiones que hizo la comunidad Linux, para acceder al código fuente de los robots. La idea fué, aprovechar todo lo que tenía que ofrecer la comunidad Linux al robot Cye: manteción, soporte, creación de nuevas herramientas derivadas. El siguiente, es el comunicado oficial dado por Probotics:


Figura: Comunicado de Probotics, anunciando su paso al OpenSource
A Letter to the Open Source Community 


The Probotics team is proud to announce that we are releasing all of our source code to Map-N-Zap under the Gnu Public License. This includes all of our GUI, Iconic programming language, and Robot communtion protocol code. This decision was made in part because of the numerous requests from the linux community for our source code, and the realization that they, and developers for other platforms, have much to offer to our mission, which is to make really cool robotic technology. We would love for you to take our source code and do wonderful things with it. Obviously, since we are releasing under the GPL, any contributions you make will remain under the GPL as will this release, even if we choose to later re-release this code under a proprietary license.

The source code which is released is that of version Map-N-Zap 2.1, with some changes. These changes are briefly described in the included readme. They are mainly work arounds to some proprietary source code which we did not hold the copyright to, and some (very preliminary) additional development.

This is a preliminary release of the source code. We are currently re-designing Map-N-Zap, to improve both the functionality and portability of the code. This code will also be much better documented than our current code. We expect to have this done in around 6 months or so. Until then, we wanted developers to have the opportunity to examine and work with our code.

The only caveat is that our software development team is essentially one person who wrote more than 95% of map-n-zap, and a few others who have contributed to it. As such, we cannot offer any support to developers. We just don't have the resources. What we are doing is creating a mailing list which will be used for announcements of any new developments or generally important things. Also, aa Developer's Forum b-board will soon exist, which will be for you to talk to each other about any issues that arise, although we will monitor it and participate in it as time permits.

The source code is only known to compile under Microsoft Visual C++ 6.0, and makes use of MFC and DirectX. Therefore, it will not directly compile on non MS platforms. However, the dependance on DirectX is not great. A Readme file is included which gives compiliation instructions. Other than that, the code is commented, but there is no global source documentation.

Finally, before downloading the source code, we ask that you fill out the form below and give us some basic information about yourself. Our privacy policy is that we will NOT release any of your information in any way, either by selling it, giving it, or making it available in any form. Nor will we use it internally for any sort of marketing, spam, etc. The only disclaimer to that is that if you check the "Include me on your mailing list" box, you will be added to our developer's mailing list, and receive information from us. We're only asking for the information because we're personally curious about who you are, where you're from, and what OS you're using.

Enjoy, The Probotics Team.





El otro ejemplo, corresponde a la empresa ActivMedia, la que se ha dedicado fundamentalmente al desarrollo de robots móviles, los cuales han encontrado una buena acogida entre investigadores, y docentes. El modelo estrella de esta empresa, es el robot Pioneer. Este robot, inicialmente funcionaba con el software Saphira, el cual funcionaba bajo el esquema de cliente servidor, disponiendo de una plataforma que permitía programar ciertas funcionalidades en un lenguaje específico. Sin embargo, este software por ser de licencias privativas, hacía que la empresa se viera en desventaja a la hora de competir con otros productos que igualmente cumplían con el objetivo buscado. Entonces, ActivMedia dio el golpe sobre la mesa, cambiando su software principal, desarrollando ARIA (ActivMedia Robotics Interface for Application). Este era un sistema desarrollado completamente en C++, orientado a objetos, capaz de manejar concurrencia de threads... pero por sobre todo, es un software con licencia GPL. Esto significa, que el código fuente de la aplicación ahora sería de dominio público. De esta manera, los investigadores (los principales usuarios de estos robots), tendrían acceso al código de las aplicaciones, con lo que se abren nuevas alternativas, tales como un mayor control sobre el software, o las ventajas de que los usuarios puedan disponer del mismo tipo de software que la empresa desarrolladora: las herramientas open source.



Figura: Robot Pioneer
\includegraphics[scale=0.4]{pioneer.eps}



La conclusión principal que se obtiene, es el hecho de ver cómo las empresas dedicadas a la robótica han decidido dejar de tratar de hacer 'ñegocio`` con el software. El objetivo es producir robots, para lo cual el software sólo es un complemento a estos. Por otro lado, al liberar los códigos de los programas, y adherirse al uso de herramientas de dominio público, la comunidad de usuarios consigue hacerse más partícipe de este desarrollo, haciéndose cargo de actividades como el soporte, la mantención, y la documentación del software. Todo finalmente redunda en un producto de mejor calidad para el usuario final, el cual puede ser adaptado a cada caso particular.





Investigación y Docencia

El área de la investigación, es el otro campo que se ha visto muy favorecido por el uso de las herramientas del Open Source. El modelo de desarrollo de la investigación en las universidades, plantea la necesidad de compartir los resultados obtenidos de manera individual. De esta manera surgió internet, para cubrir la necesidad de compartir la información y el conocimiento. Consecuente con esta manera de trabajar (y de pensar), el software libre permite seguir en esta misma senda de desarrollo. Los investigadores pueden utilizar herramientas de dominio público en su trabajo, el cual también estará a disposición de otros investigadores, y también de los mismos alumnos, los cuales también son partícipes de este desarrollo. El principio fundamental, es el del trabajo colaborativo, donde el Software libre representa la plataforma natural para el desarrollo de esta disciplina.

La investigación llevada a cabo en las universidades, ha permitido utilizar a la robótica como un medio de acercar la ciencia, y en particular las ciencias aplicadas, a los estudiantes de las carreras de tecnología a lo largo del mundo. De esta manera, tenemos a los estudiantes como actores fundamentales en los avances de esta disciplina.



Figura: Robot LEGO
\includegraphics[scale=1.0]{lego.eps}



La empresa LEGO ha desarrollado los robots que han sido utilizados durante los últimos años, para llegar a los estudiantes, quienes buscan poder investigar a su manera, haciéndose partícipes de todo el proceso de aprendizaje. Es por esto que se hace necesario contar con herramientas stándares, de libre acceso, para que los estudiantes puedan trabajar de manera conjunta, independiente del tipo de software del que se dispone.



Figura: Robot AIBO
\includegraphics[scale=1.0]{aibo.eps}



La Robocup es la competencia mundial entre equipos de estudiantes, que desarrollan software de control para los robots AIBO de Sony. En esta competencia, equipos de diversas universidades del mundo se enfrentan en partidos de fútbol, para demostrar la habilidad de otorgarles comportamiento inteligente a estas máquinas. En esta competición, los alumnos desarrollan software de control, el cual es licenciado bajo GPL, con lo que se fomenta el desarrollo colaborativo de los estudiantes, en pos de un objetivo común.

En resumen, nuevamente el Software Libre aparece como la mejor alternativa para llevar a cabo el desarrollo en torno a la robótica, siendo consecuente con el modelo de desarrollo colaborativo, donde los logros locales, tanto de estudiantes (en la robocup), como de los investigadores, son finalmente compartidos con el resto de la comunidad, apoyados por el uso de las herramientas de dominio público.





Robótica y Linux

Una vez expuestas los casos en que el Open Source aparece como la mejor opción, presentaremos las distintas alternativas que nos ofrece éste. En primer lugar, aparece el uso del sistema operativo Linux, el cual ha representado una gran alternativa a considerar por diversos equipos de desarrollo. El uso de Linux, plantea una serie de ventajas, tales como:

  • reducción de costos
  • gran cantidad de herramientas disponibles
  • mejor seguridad y estabilidad
  • propiedad del software utlizado
    (ahora el software no pertenece a una empresa externa)




Figura: SciLab
\includegraphics[scale=0.5]{scilab.eps}



Además de Linux, existe una amplia oferta de sofware libre, disponible para cubrir las diversas etapas en el desarrollo de la robótica. Por ejemplo, para el dise no de las componentes mecánicas de los robots, se dispone de QCAD para el diseño 2D, y Blender para diseño en tres dimensiones. Para el desarrollo de circuitos, se dispone de programas como KICAD, o SPICE, que permiten el diseño de circuitos para las componentes de hardware de los robots. Para control automático, y simulación, se tiene a programas como Scilab, el cual proporciona una suite con muchas funcionalidades de cálculo matemático y simulación.

La ventaja concreta de todas estas herramientas, aparte de las ventajas de calidad que puedan presentar (gracias a su desarrollo apoyado por toda la comunidad Open Source), es el hecho de que por ser aplicaciones de dominio público, son accesibles por cualquier persona, desde cualquier parte del mundo, lo que permite que el trabajo de investigación y desarrollo, se realize sobre una base común: el software libre.





Conclusiones

A partir del estudio de dos ámbitos de la robótica, la industria y la actividad en universidades, se ha buscado exponer este campo de las ciencias aplicadas, revisando su historia, y el avance que ha tenido en el último tiempo. Una vez introducidos en esta área, se ha presentado la influencia que ha significado la integración de las metodologías y herramientas del Software Libre.

Existen una serie de conceptos que se pueden extraer de estas experiencias, los cuales son comunes a ambas situaciones descritas. El trabajo colaborativo es uno de ellos, el que se manifiesta en el concepto de comunidad que se forma entre los usuarios de estos sistemas, ya sean investigadores, alumnos, o simplemente personas que adquieren estos robots. Gracias a internet, es posible la integración de estos, a través de foros de discusión y listas de correo. Al mismo tiempo, esa comunidad ahora se hace partícipe del desarrollo, permitiendole estar más cerca de los desarrollos que usan, y dando la oportunidad de adaptar los equipos a cada caso en particualr.

Finalmente, se puede afirmar que el Open Source ha sido la alternativa que esta' permitiendo el crecimiento de esta actividad, la cual en el futuro se espera tenga una fuerta y definitiva penetración entre las personas, y su vida cotidiana.





Bibliografía



  • Actualidad y perspectivas de la robótica
    http://www.metalunivers.com/Tecnica/Hemeroteca/ArticuloCompleto.asp?ID=1464

  • MOTOMAN empresa espa nola de robotica
    http://www.motoman.es/empresa.htm

  • Robotics companies
    http://www.cs.cmu.edu/ chuck/robotpg/robo_corp.html

  • Programacion del Pioneer con JDE
    Robotica: Grupo de Sistemas y Comunicaciones - Universidad Rey Juan Carlos

  • Grupo de Robotica URJC
    http://gsyc.escet.urjc.es/robotica/apuntes.html




0 comentarios

no hay comentarios.



nombre *

e-mail *

web

2 x 4 = *





Mi paso por la Universidad de Chile marca la etapa más importante de mi vida. Primero fue arquitectura en la FAU, luego fueron 8 años de ingeniería, en Beauchef: más de 60 ramos, largas horas de estudio, controles, tareas, cátedras, ayudantías... largas horas de chess en la chacra y computadores en el cec, en el dcc... Aquí he reunido algunos de los proyectos que realicé durante la carrera de ingeniería civil en computación.