You are on page 1of 12

DEPARTAMENTO DE LA ENERGA Y MECNICA

CARRERA DE INGENIERIA MECATRNICA

ROBTICA
NRC: 1390

Tarea N 1.2

PAQUETE ROSLAUNCH Y USO DE PYQT

PROFESOR:
Ing. David Loza

ALUMNO:
Miguel Aguirre

Sangolqu, Noviembre del 2017


1. TEMA:
Paquete roslaunch y uso de PyQt

2. OBJETIVOS
2.1. Objetivo General
Identificar la funcionalidad que provee un launcher, adems del desarrollador PyQt
para diferentes aplicaciones y familiarizarse con el entorno de trabajo de este.

2.2. Objetivos Especficos


Disear una interfaz grfica con ventanas emergentes para el control de
movimiento de la tortuga de ROS.
Reconocer el tipo de arquitectura necesaria para que se establezca una
comunicacin entre los nodos utilizados.
Generar la programacin necesaria para cada nodo, adems del archivo
tipo launch con la finalidad de integrar la ejecucin de los nodos
utilizados.

3. MARCO TERICO

3.1. El paquete Qt
3.1.1. Breve historia de Qt
El framework Qt vio la luz de forma pblica por primera vez en el ao 1995. Fue
desarrollado por dos ingenieros noruegos, Haavard Nord (futuro CEO de Trolltech) y
Eirik Chanble-Eng (futuropresidente de Trolltech), como respuesta a la necesidad de
disponer de un GUI para una aplicacin C++ multiplataforma orientado a objetos. Dentro
de la palabra Qt, la letra Q fueescogida debido a su belleza en el editor Emacs de
Haavard, y la letra t se aadi para significar toolkit (de manera similar a Xt,
XToolkit). La compaa se fund en 1994 como Quasar Technologies, y fue
evolucionando hasta convertirse en Trolltech.

En la ltima dcada, Qt ha pasado de ser un producto usado por unos pocos


desarrolladores especializados, a un producto usado por miles de desarrolladores open
source en todo el mundo, por lo que el futuro de esta tecnologa es hoy da muy
prometedor.

3.1.2. Qt y sus componentes principales


3.1.2.1. QtDesigner
QtDesigner es una herramienta de desarrollo que nos permite crear interfaces graficas de
usuario. Nos proporciona un conjunto de componentes estndar y un mecanismo de
conexin llamado signal-slot, con el que conectaremos eventos de la interfaz con la lgica
de programa que han de soportar.
3.1.2.2. QtAssistant

QtAssistant es un componente de Qt que nos permite navegar por la documentacin, en


forma de pginas HTML, e implementa opciones de bsqueda y de extensin.

3.1.3. La evolucin de QtDesigner

En la versin 1.0 y 2.2 de Qt, se creaban los dilogos (diseos de las ventanas) mediante
QtDesigner, y stos que se convertan a cdigo mediante la utilidad UIC (User Interface
Compiler). En esta versin ya se daba soporte al mecanismo estrella de Qt (signals y
slots): el UIC generaba los slots (virtuales) y estos se implementaban con cdigo mediante
herencia.
En la versin 3.0 de Qt, se incorpor el mecanismo del archivo ui.h, que permita
implementar slots sin necesidad de herencia, y que era incluido automticamente por el
cdigo fuente generado por UIC.

En la versin 4.0 de Qt se han corregido todas estas carencias. De hecho, el cambio ms


importante ha sido la posibilidad de integracin de QtDesigner con IDEs existentes (por
ejemplo, Eclipse) lo que deriv en la desaparicin del editor de texto bsico del que haca
gala QtDesigner en su versin 3.0.
Adems, QtDesigner genera el archivo .ui con la interfaz, y el UIC genera el cdigo para
sta (similar al comportamiento de las versiones 1.0 y 2.2, pero generando nicamente un
archivo .h). Ahora, la herencia se realiza de la clase principal de la interfaz y de la interfaz
de objetos de usuario (clases QObject y QDialog), siendo todo este cdigo generado
automticamente.

3.2. Roslaunch
3.2.1. Resumen del paquete

roslaunch es una herramienta para lanzar fcilmente mltiples nodos ROS local y
remotamente a travs de SSH, as como para establecer parmetros en el servidor de
parmetros . Incluye opciones para volver a generar automticamente los procesos que ya
han muerto. roslaunch toma uno o ms archivos de configuracin XML (con la extensin
.launch ) que especifican los parmetros a configurar y los nodos para lanzar, as como
las mquinas en las que se deben ejecutar. roslaunch fue diseado para adaptarse a la
arquitectura ROS de la complejidad a travs de la composicin.

4. DESARROLLO
A continuacin se presenta el desarrollo del ejercicio planteado para la prctica

Planteamiento
Generar un programa que permita controlar los movimientos de la Tortuga
correspondiente al nodo turtlesim_node, mediante una Interfaz grfica en PyQt diseada
por medio de la herramienta de desarrollo QtDesigner. Agregar al diseo de la HMI un
botn de Informacin y uno de Salida.

Solucin

En primer lugar se procede a la instalacin del desarrollador Qt en su versin ara python


pyqt4 y su componente QtDesigner. Se introduce el siguiente comando.

Una vez realizada la instalacin se procede al diseo y creacin de la interfaz grfica y


sus ventanas correspondientes. Como ventana principal se tiene la siguiente, que cuenta
con 4 botones para el movimiento de la Tortuga, adems de los botones requeridos, de
informacin y Salida.
Posteriormente se realiza el diseo de la ventana correspondiente a la Informacin del
programa, en donde se especifica el autor y varias consideraciones ms.

Adems se crea la ventana de verificacin de salida del programa, que corresponde a una
pregunta hacia al usuario para que este conceda el permiso de salir o no del programa.

En todos los casos es necesario asignar nombres a los botones utilizados para facilitar la
programacin posterior de los mismos.

Una vez completo el diseo de cada ventana es necesario guardar las mismas en la carpeta
en donde se encuentra el nodo principal del programa. Es as como estos archivos resultan
ser .ui, es recomendable cambiar el cdigo de estos archivos a uno tipo python para
importarlos de manera ms sencilla, para esto se utilizara el siguiente comando.

A continuacin se procede a realizar el cdigo correspondiente al nodo principal del


programa, mismo que utilizar el mensaje Twist para llevar a cabo el movimiento de la
Tortuga, adems se importa cada uno de los archivos tipo python generados por cada
ventana. Asignamos a dems subfunciones a cada accin de los botones utilizados para
que se realice el movimiento de tortuga o apertura de una ventana de Informacin o
verificacin de salida.
Posteriormente se procede a la creacin del archivo tipo Launch mismo que se encarga
de ejecutar los dems nodos correspondientes al programa. En este caso fue necesario el
llamado del nodo Turtlesim_node para que aparezca la Tortuga a utilizar, adems del
nodo principal main en donde se encuentra el cdigo del programa.

Corrida del programa

A continuacin se procede al uso de roslaunch encargado de ejecutar el archivo tipo


launch en este caso tiene el nombre Tortuga_hmi.launch
Se observa que la ventana principal del programa se abre y al pulsar cada uno de los
botones de movimiento la tortuga logra moverse.

Adems al pulsar el botn de Informacin emerge la ventana de informacin del


programa presentada a continuacin:

De igual manera al pulsar el botn de Salir emerge una ventana de confirmacin de salida,
en donde se asignan botones para confirmar la salida o no.

Siendo el caso de confirmacin de salida se observa a continuacin como el programa se


ha cerrado.
5. ANLISIS DE RESULTADOS

A continuacin se observa la arquitectura del programa y la relacin entre nodos


utilizados, en este caso se puede ver la interaccin del nodo principal main con el nodo
turtlesim por medio del topic /turtle1/cmd_vel al enviar el mensaje tipo Twist como se
explic anteriormente.
6. CONCLUSIONES

Se identific que la herramienta roslaunch nos permite lanzar fcilmente mltiples


nodos ROS de manera local o remota, en cuanto a PyQt se logr familiarizarse
con el ambiente de uno de sus componentes QtDesigner que nos permite realizar
interfaces grficas para luego ser guardadas como archivos tipo python.
Se dise una interfaz grfica utilizando el desarrollador QtDesigner compatible
con archivos tipo python para importarlas hacia un nodo principal que ejecute
estas ventanas y se lleve a cabo el programa requerido.
Se reconoci la arquitectura necesaria para la interaccin entre nodos, esta fue de
un solo canal que da paso a un mensaje tipo Twist con el cual se enva los datos
de movimiento a la tortuga.
Se gener un archivo tipo launch mismo que abre paso a la ejecucin de los nodos
main y Turtlesim_node utilizados para el programa, de esta manera es
necesario nicamente utilizar la herramienta roslaunch para ejecutar este archivo
tipo launch.

7. RECOMENDACIONES

Es de suma importancia reconocer las herramientas y el entorno del desarrollador


de interfaces grficas con la finalidad de utilizar las herramientas precisas para
cada aplicacin.
Es necesario establecer previamente el diseo de cada interfaz grfica para
integrar los elementos necesarios de manera correcta y no tener que modificar el
archivo generado a cada momento.
Es preciso identificar adecuadamente la funcin que cumple cada uno de los nodos
que interviene en el proceso de cada problema, con la finalidad de que exista una
correcta integracin de los mismos y se puedan obtener los resultados deseados.
Es recomendable respetar las pautas que ROS emplea, para esto es necesario
seguir los tutoriales que ofrece para roslaunch.

8. BIBLIOGRAFA

Ros wiki, (2017), ROS Tutorials, Obtenido de:


http://wiki.ros.org/ROS/Tutorials
Kovacevic N., (2015), PyQt: Getting started with PyQt and Qt Designer,
Obtenido de: https://nikolak.com/pyqt-qt-designer- getting-started/
Gonzles D.,, (2008), Tutorial de Qt4 Designer y QDevelop, Obtenido
de:
http://upcommons.upc.edu/bitstream/handle/2099.1/7656/memoriafinalP
FC.pdf?sequence=1

You might also like