Proyecto Fin de Carrera

Robótica, software y telecomunicaciones.

Error al arrancar KDevelop 4

Ayer se me quedó el ordenador bloqueado mientras programaba y no sé si se debe al propio disco duro o a la inestabilidad de algún programa, quizás mi propio programa (espero que no sea esto). Pero lo que quería comentar es que al reiniciar e intentar arrancar KDevelop, me sale un diálogo de alerta que dice lo siguiente:

Failed to lock the session , probably it is already active in another running instance

y no me deja abrir KDevelop a no ser que reiniciemos de nuevo.

El motivo es que KDevelop crear un archivo  de bloqueo para que el sistema se dé cuenta que ya lo tenemos arrancado y no intentemos abrir muchas instancias, ya que no es necesario con KDevelop 4, pues con una misma instancia podemos trabajar desde varios “workspaces”.

Si os ocurre esto alguna vez, una solución es reiniciar, pero otra solución más rápida es eliminar el archivo ~/.kde/share/apps/kdevelop/sessions/*/lock, donde ~ es la ruta de tu usuario, del tipo /home/myuser/ como ya expliqué en una entrada anterior.

Ejecutamos el siguiente comando:

sudo rm ~/.kde/share/apps/kdevelop/sessions/*/lock

Anuncios

27 mayo 2011 Posted by | all | | 2 comentarios

RoboComp con KDevelop 4

Ayer mismo subí 2 vídeos los cuales espero que sirvan de ayuda para cualquiera que empiece a desarrollar en RoboComp (aunque también puede servir para cualquier programación) pueda trabajar cómodamente con KDevelop 4.

Me hubiera gustado doblar o subtitular los vídeos explicando lo que se hace en cada momento, pero como eso me llevaría su tiempo, veo la necesidad de publicarlos para que puedan ser de utilidad desde ahora. Sabéis que si tenéis cualquier duda, dejar un comentario en el blog es una buena opción, pues intentaré solucionarla lo más rápido posible.

11 mayo 2011 Posted by | all | , | Deja un comentario

Instalar un plugin en KDevelop 4

Una de las ventajas de KDevelop es que su propia concepción está basada en una serie de plugins, simplemente no se aprecian porque están muy bien integrados y normalmente nos vienen instalados por defecto todos los plugins que están estables y bien  probados, esto nos da la ventaja de que no tendremos que ir a buscar los plugins a una página para ir descargándolos e instalándolos pero también es cierto que el número de ellos no es demasiado elevado, comparándolo con otros programas como podría ser Firefox.

En KDevelop 4.2 tenemos unos 32 plugins cargados, pero hay algunos en los que que el equipo de desarrollo trabaja y podría interesarnos probar, o bien crear nuestro propio plugin.

Tenemos 2 remositorios principales donde buscar este tipo de plugins, el Extragear y el Playground, y hasta donde yo entiendo, el Playground es más novedoso e inestable y el Extragear es más estable y probado. Dichos repositorios son los siguientes:

Uno de los plugins que tengo ganas de probar es el Control Flow Graph que permite ver diagramas de flujo de cada función seleccionada con el ratón en KDevelop. Este plugin está alojado en el siguiente repositorio:

Bien lo primero que debemos hacer es bajarnos el plugin con el comando:

git clone git://anongit.kde.org/kdev-control-flow-graph

Antes de continuar tenemos que tener satisfechas las dependencias, en este caso, este plugin tiene dependencia del paquete GraphViz que debe estar instalado en el sistema para que la compilación sea correcta. Las dependencias las podemos ver en los archivos Readme que suele incluir normalmente cualquier software. Si de un paquete no sabemos sus depencencias tampoco importa mucho, en el sentido de que al hacer cmake obtendremos un error diciendo que nos falta tal o cual paquete de software en el sistema.

Para instalar GraphViz en Ubuntu 10.10 podemos instalarlo desde Synaptic o desde consola con apt-get o aptitude, el paquete necesario es graphviz-dev (a la hora de probarlo también pide el paquete kgraphviewer con el mensaje “Could not find the KGraphViewer factory”, no es un problema porque también se encuentra disponible en repositorios de Ubuntu):

sudo aptitude install graphviz-dev
sudo aptitude install kgraphviewer

Nos movemos al directorio que se acaba de crear con el comando:

cd kdev-control-flow-graph/

Y compilamos como lo solemos hacer con cmake . y make:

cmake .
make
sudo make install

Cerramos KDevelop y cuando lo abramos ya tendremos el plugin instalado y funcionando.

Si por algún motivo necesitamos desinstalar el plugin, desde el directorio del plugin ejecutamos el siguiente comando:

make uninstall

Nota*: Aleix Pol, uno de los desarrolladores de KDevelop 4, nos recomienda que al compilar hagamos “cmake -DCMAKE_INSTALL_PREFIX=/usr” en lugar del “cmake .” para que se instale en /usr que normalmente es mejor. Y nos recuerda que la manera correcta de compilar con cmake es:

 mkdir build
 cd build
 cmake ..
 make
 sudo make install

La forma que yo he expuesto inicialmente es el método de compilación personalizada que usamos para construir componentes de RoboComp, aunque en principio también es válido en este caso.

Es posible que KDevelop explote (se cierra repentinamente) ocasionalmente mientras usamos el plugin Control Flow Graph, si te ocurre esto una vez, las próximas veces que habras KDevelop 4 y cargues el plugin también te explotará. La solución en este caso, es iniciar KDevelop y cerrarlo sin intentar cargar el plugin, la próxima vez que vuelvas a iniciar KDevelop volvarás a poder usar Control Flow Graph sin problemas.

Hasta donde lo he probado, KDevelop explota cuando pinchas en el gráfico para que te lleve el cursor a la línea de código correspondiente. Pero aún no estoy seguro de que esto sea muy común o se debe a que estoy con varios workspaces.

Os dejo un video (no es mío) con Control Flow Graph funcionando:

Gracias a todos los desarrolladores de KDevelop por seguir adelante con este fantástico IDE, y en especial a Aleix Pol por su ayuda y a Sandro Andrade, el autor principal del plugin Control Flow Graph.

10 mayo 2011 Posted by | all | , , , | 1 comentario

Herramientas de trabajo

Las herramientas que uso para la programación de mi componente son un gran abanico de aplicaciones y librerías que si bien están lejos de formar un TodoEnUno compacto, a la hora de usar estas herramientas uno se siente cómodo trabajando, y se da cuenta que a pesar de ser independientes, trabajan bien juntas.

Las aplicaciones que utilizo son las siguientes:

  • Kdevelop-> Es un IDE (Entorno de Desarrollo Integrado) muy completo y fácil de usar, con él escribo el código y lo compilo. Su opción de autocompletado funciona realmente bien y te ayuda a avanzar mucho más rápido porque no tienes la necesidad de memorizar los nombres de todos los métodos y variables.
  • QTDesigner-> Es un diseñador de GUI (Interfaz Gráfica de Usuario), simplemente tenemos que maquetar nuestra GUI, y QTDesigner nos genera todo el código necesario para que funcione.
  • QTAssistant-> Nos proporciona todo tipo de información sobre las librerías QT, si bien en kdevelop podemos acceder a cierta información sobre las funciones que usamos, QTAssistant nos dará toda la información.
  • Yakuake-> Es un emulador de terminal similar a la consola de comandos del videojuego Quake, se despliega y se contrae a nuestro gusto, es muy configurable y cómodo de usar. Necesito un terminal para la compilación, navegar por los archivos, arrancar y pasar procesos, etc.
  • Gedit-> Normalmente todo el código lo edito con Kdevelop, sin embargo hay veces que es más rápido y cómodo editar con Gedit, por ejemplo los archivos de configuración de ICE.
  • Kile-> Es el programa que estoy empezando a usar para la documentación del PFC. Kile es una especie de IDE para LaTeX.
  • Cmake-> Es un programa de terminal que se encarga de enlazar todos los archivos para que la compilación sea algo muy sencillo. Sigue la configuración indicada en CMakeLists.txt, por eso ese archivo es tan importante.

Las librerías que utilizo son las siguientes:

  • QT4: Son unas librerías muy completas, desarrolladas por TrollTech (ahora es parte de Nokia), en algún sitio he leído que son la equivalencia a las MCF(Microsoft Class Foundation) de Windows en GNU/Linux. Pero lo cierto es que QT tiene soporte en GNU/Linux, Windows y MacOS. El escritorio KDE ha sido desarrollado completamente con las QT, y por esto rápidamente se asocia esta librería a las interfaces gráficas, pero lo cierto es que son mucho más que unas librerías puramente gráficas.
  • STD: Son las librerías estándar de C++, aunque no se puede decir que le doy un gran uso, son muy fáciles de usar, y lógicamente se puede encontrar muchísima información sobre ellas en internet.
  • OpenCV2: Ya he hablado anteriormente de OpenCV, las librerías para el procesamiento de imágenes. Son las librerías que usaré para el núcleo de mi componente, pues con ellas realizaré el traking y la detección.

A parte de lo anterior tengo que lidiar con ICE(la interface de comunicación entre componentes que usa Robocomp), con las herramientas de Robocomp(replayComp, managerComp, etc.), así como todo lo relacionado con la Kinect(Freenect, kinectComp, etc.).

26 febrero 2011 Posted by | all | , , , , , , , , , | Deja un comentario

   

A %d blogueros les gusta esto: