[Jderobot-dev] dependencias y paquetizado de jderobot
JoseMaria
jmplaza en gsyc.es
Jue Ene 10 14:02:05 CET 2013
Hola,
al hilo de los fallos de compilación y dependencias de opencv que habeis
detectado os comento algunas cosas.
Jderobot es una plataforma potente para aplicaciones de robótica, visión
artificial y domótica. Incluye ya muchas líneas de código y se apoya
también en mucho software de terceros (gazebo, pcl, opencv, openni,
openGL, gtk...). Una mejora importante para la inminente jderobot-5.1 es
el cambio de autotools a cmake para la cadena de compilación. Otra
mejora significativa es hacer unos paquetes debian renovados de todo el
entorno.
Un componente jderobot puede depender de otros, de bibliotecas nuestras
y de software de terceros, tal o cual versión. Borja y Maikel han creado
una tabla de dependencias realista (en [1]) que explicita qué
dependencias tiene cada pieza software. Esas dependencias las
incorporaremos a la cadena de compilación CMake (en los cmake.lists
respectivos, etc.) y también a las dependencias entre paquetes. La idea
de fondo es que jderobot se pueda instalar y usar (a) desde código
fuente directamente y (b) usando paquetes debian.
--------------------- Jderobot desde código fuente
El camino (a) será el que useis la mayoría de los que estais haciendo
PFC/TFM/TFG pues permite beneficiarse de las últimas versiones de todo,
que son las que hay en el repositorio. El paso (a1) es bajarse el código
fuente de nuestro repositorio, de todo el proyecto jderobot o sólo de
los componentes/piezas que necesites. OJO es muy probable que no
necesites todo lo que tiene jderobot, como lo hemos diseñado modular,
basta que te instales los componentes, herramientas o bibliotecas que
realmente necesites. El paso (a2) es compilar usando cmake
exclusivamente de los componentes que uno quiere. (a3) Lo normal es que
no tengas instalada alguna biblioteca o software de terceros de los que
depende el componente que quieres. En ese caso instalate ese software de
terceros (usando su paquete debian, o desde su código fuente, cómo sea)
y lanza cmake de nuevo. Si la dependencia es de una biblioteca,
herramienta o componente nuestro, compila eso primero, instalalo y luego
vuelve al cmake del que te dio el problema. Y así hasta que compiles y
puedas ejecutar los componentes que necesites.
La tendencia general es adaptar jderobot a las últimas versiones del
software de terceros que vayan surgiendo, para aprovechar sus mejoras.
La tabla de dependencias es el lugar de referencia para saber si tal
componente tira con tal o cual versión de opencv, o de gazebo, etc..
Estamos volcando mucho esfuerzo en actualizar esa tabla, las
dependencias en cmake y en los paquetes debian.
Adicionalmente prepararemos un cmake global de 'todo el proyecto
jderobot' que se encarga de llamar a todos los cmakes de los
componentes, herramientas y biblioteca que forman el entorno. No
obstante, lo recomendado es instalar sólo los componentes, herramientas
y bibliotecas que necesitas.
-------------------------------------Jderobot desde paquete debian
El camino (b) será el que usen por ejemplo los alumnos del Master de
Visión Artificial o el Master de Sistemas Telemáticos e Informáticos,
puesto que simplifica mucho la instalación del entorno. Ya lo hicieron
el año pasado. En principio las distribuciones soportadas son Debian y
la última estable de Ubuntu (en principio versiones de 32 y de 64 bits).
Estamos preparando 1 paquete por cada componente, biblioteca o
herramienta y metapaquetes (jderobot-drivers, jderobot-tools,
jderobot-libs... incluso un jderobot-completo) de nuestro software. Unos
paquetes dependen de otros, de modo que al instalar el paquete de un
componente, por ejemplo, tire de esas dependencias explícitas y te
instale también automáticamente el paquete debian de cada cosa de las
que depende.
En cuanto al software de terceros, muchos tienen ya su propio paquete
debian oficial. Pondremos eso en las dependecias de nuestros paquetes.
Para el software de terceros sin paquete debian oficial haremos nosotros
un paquete concreto (por ejempo gazebo) y a ese engancharemos las
dependencias en los paquetes de nuestros componentes.
Los paquetes los iremos actualizando a medida que mejoremos cosas
significativas, para que la versión paquetizada y la versión en el svn
no sean muy distintas.
Estamos a punto de sacar la versión 5.1 de jderobot...
impresionante :-). Y sobre esta plataforma tenemos ya unas aplicaciones
brillantes (ElderCare, TrafficMonitor, Surveillance, AutoNav...) y más
que están en camino. Ánimo!!
JoseMaria
[1]
http://jderobot.org/index.php/Manual-5#Tables_of_components.2Flibraries.2Ftools_and_their_dependencies
--
http://gsyc.es/jmplaza
Universidad Rey Juan Carlos
More information about the Jde-developers
mailing list