2. Descripción e instalación de las herramientas utilizadasbibing.us.es › proyectos › abreproy...
Transcript of 2. Descripción e instalación de las herramientas utilizadasbibing.us.es › proyectos › abreproy...
15
2. Descripción e instalación de las herramientas utilizadas
Las herramientas utilizadas para desarrollo de este proyecto han sido estudiadas
previamente, ya que estas no son comúnmente utilizadas en la Ingeniería Industrial.
2.1. Eclipse
Eclipse es un entorno de desarrollo integrado de código abierto multiplataforma.
Eclipse, tradicionalmente ha sido usado para desarrollar entornos de desarrollo
integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit
(JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados
también para desarrollar el mismo Eclipse).
2.1 Pantalla de inicio de Eclipse
Existen gran cantidad de opciones para configurar nuestro programa Eclipse, en
este apartado se comentará cuáles y de qué forma van a ser instaladas. Para este
proyecto en concreto, vamos utilizar Eclipse con capacidad de desarrollo de lenguaje
Java y C++.
En este proyecto únicamente se ha instalado una versión de Eclipse a la que más
tarde se le ha añadido la capacidad de desarrollo de lenguaje C++. Esta versión es
Eclipse Classic 3.5.2 (Proyecto Galileo), que posiblemente en la actualidad haya sido
mejorado a una versión superior. Es por ello que se recomienda descargar la última
versión del producto, a no ser que especifique que no soporta opciones necesarias en
este proyecto. Esto último es muy poco probable.
16
2.1.1. Características
Eclipse dispone de un editor de texto con resaltado de sintaxis, lo que nos permite
movernos a través de nuestro programa con mayor sencillez. La compilación es en
tiempo real, así podemos detectar errores al mismo tiempo que escribimos el código.
2.1.2. Perspectiva Java
En Java desarrollaremos todo el programa excepto la visualización en tres
dimensiones, que está escrita en lenguaje C++. En la versión de Eclipse que vamos a
descargar, las herramientas de desarrollo del lenguaje Java vienen ya instaladas.
En caso de querer utilizar otra versión de Eclipse tendrá que descargar e instalar la
herramienta Java en su versión de Eclipse.
2.1.2.1. Instalación
Al ser Eclipse una herramienta de código abierto podemos descargarla
gratuitamente. Para ello debemos entrar en la página oficial: http://www.eclipse.org/.
En esta página podremos encontrar en el apartado de descargas diversas versiones de
Eclipse para distintos propósitos, desde versiones para desarrollo del lenguaje C y C++,
lenguaje PHP, hasta la las versiones basadas en lenguaje Java.
2.2 Página Web de descarga de Eclipse
En nuestro caso descargaremos la versión Eclipse Classic 3.5.2 (163 MB). Una vez
descargado descomprimimos el archivo. Es conveniente que la carpeta resultante al
17
descomprimir el archivo la situemos en un directorio para albergar nuestro programa.
Una opción recomendable sería guardarlo directamente en C:\.
El ejecutable de la herramienta se encuentra dentro de la carpeta y se llama
eclipse.exe. Si queremos hacer más flexible nuestro programa podemos establecer un
acceso directo en nuestro escritorio.
2.1.2.2. Introducción a la herramienta
Al arrancar el programa se nos pedirá que determinemos el directorio del espacio
de trabajo. En ese directorio se guardarán todos los archivos y actualizaciones que
realicemos sobre el programa.
Nótese que en caso de cambiar el directorio de trabajo abriríamos el mismo
programa pero sin las actualizaciones, versiones y archivos guardados en el otro
espacio de trabajo. Esto quiere decir que podemos tener tantas versiones del
programa como nos apetezca.
Una vez abierto el programa lo primero que tenemos que hacer es crear un nuevo
proyecto en el guardaremos todos los paquetes que creemos:
File > New > Java Project
2.3 Creación de un proyecto Java
Acto seguido se deberá crear un paquete (package). Los paquetes nos ayudan a
mantener ordenadas las clases:
File > New > Package
18
A partir de este punto un usuario conocedor del lenguaje Java podrá avanzar sin
problemas.
2.1.3. Perspectiva C++
Tal y como hemos explicado anteriormente, en C++ sólo vamos a escribir una
pequeña parte del proyecto, la dedicada a la representación en tres dimensiones del
brazo robótico.
En el punto anterior se ha mostrado como descargar e instalar una versión de
Eclipse, esta versión sólo tiene capacidad de desarrollo de código Java, por lo que en
este apartado vamos a explicar cómo añadir la perspectiva C++ a nuestra versión de
Eclipse.
2.1.3.1. Instalación
Para añadir esta perspectiva tenemos que instalarla a través de:
Help > Install New Software
2.4 Herramienta de instalación de sofware
19
En ella seleccionamos trabajar con Galileo (esto es en caso de no existir una
versión superior). Una vez que aparezca todo el software disponible vamos a buscar e
instalar los siguientes paquetes:
Eclipse C/C++ Development Platform
Eclipse C/C++ Development Tools
o CDT GNU Toolchain Build Support
o CDT GNU Toolchain Debug Support
Eclipse C/C++ DSF gdb Debugger Integration
Una vez instalado todo este software seremos capaces de elegir en Eclipse si
queremos trabajar bajo perspectiva Java o C++. Pero Eclipse no está preparado aún
para trabajar con el programa C++ que queremos desarrollar en tres dimensiones. Para
ello, antes habrá que instalar el compilador Mingw y tener compilado ODE en nuestro
ordenador.
Las herramientas Mingw y ODE son expuestas en el punto 2.3, donde también se
comentará su instalación y uso.
2.1.3.2. Configuración
En este apartado se supone que ya se tienen instaladas o compiladas las
herramientas Mingw y ODE. En caso contrario vaya al apartado donde se explica la
instalación de estas (2.3). Una vez estén instaladas todas las herramientas necesarias
podríamos crear sin problemas nuestro proyecto C++ en el que podremos trabajar con
visualización en tres dimensiones.
Para ello el primer paso será crear un nuevo proyecto C++. En la ventana de
creación de proyecto elegiremos MinGW en “Toolchains” o Cadena de herramientas.
Hay que destacar que en los siguientes pasos también se supondrá que la herramienta
ODE ha sido guardada En “C:\”.
El siguiente paso es configurar las propiedades del proyecto. Lo primero es incluir
el directorio "C:\ODE\include" en:
Properties > C/C++ Build > Settings > Tool Settings > GCC C++ Compiler >
Directories
También tenemos que añadir al Path de búsqueda de librerías los directorios
"C:\ODE\lib\DebugSingleDLL" y "C:\ODE\lib\ODE_DLL_FILE". El Path se encuentra en:
Properties > C/C++ Build > Settings > Tool Settings > MinGW C++ Linker > Libraries
> Library search path
20
Justamente sobre el cuadro de modificación de las rutas de búsqueda de librerías
se encuentra el cuadro “Libraries”, al que añadiremos los siguientes nombres de
librerías:
ODE
drawstuffd
ws2_32
La última librería que podemos apreciar en la lista es necesaria para poder realizar
la comunicación a través de TCP IP.
A continuación nos aseguramos de que en la siguiente ruta estén activadas las
opciones “MinGW GCC” y “CDT Internal Builder”:
Properties > C/C++ Build > Tool Chain Editor
En “Properties > C/C++ General > Path and Symbols > Includes > GNU C++” debe
estar incluido el directorio "C:\ODE\include". Así como en la pestaña Library Paths
deben encontrarse las rutas:
"C:\ODE\lib\DebugSingleDLL"
"C:\ODE\lib\ODE_DLL_FILE"
2.2. ANTLR
ANTLR (ANother Tool for Language
Recognition – Otra herramienta para
reconocimiento de lenguajes) es una
herramienta creada principalmente por
Terrence Parr, que opera sobre lenguajes,
proporcionando un marco para construir
reconocedores (parsers), intérpretes,
compiladores y productores del lenguaje a
partir de las descripciones gramaticales de los
mismos (conteniendo acciones semánticas a
realizarse en varios lenguajes de
programación).
Al igual que la herramienta antes
mencionada (Eclipse), ANTLR es una herramienta gratuita de libre distribución.
21
2.2.1. Introducción
ANTLR entra dentro de la categoría de meta-programas, por ser un programa que
escribe otros programas. Partiendo de la descripción formal de la gramática de un
lenguaje, ANTLR genera un programa que determina si una sentencia palabra
pertenece a dicho lenguaje (reconocedor), utilizando algoritmos de parsing. Si a dicha
gramática, se le añaden acciones escritas en un lenguaje de programación, el
reconocedor se transforma en un traductor o intérprete.
Además, ANTLR proporciona facilidades para la creación de estructuras
intermedias de análisis (como ser ASTs - Abstract Sintax Tree), para recorrer dichas
estructuras, y provee mecanismos para recuperarse automáticamente de errores y
realizar reportes de los mismos.
ANTLR es un proyecto bajo licencia BSD, viniendo con todo el código fuente
disponible, y preparado para su instalación bajo plataformas Linux, Windows y Mac OS
X.
En nuestro caso hemos instalado Eclipse para el desarrollo del lenguaje Java, por
lo que al integrar ANTLR en Eclipse, éste nos generará dos archivos .java, el Lexer y el
Parser. Para utilizar ANTLR tendremos que crear un nuevo archivo de gramática.
La gran ventaja de esta herramienta es fácilmente observable si comparamos el
número de líneas de código escrito con el generado. Por ejemplo, uno de los archivos
de gramática escritos en el desarrollo de este programa dispone de 639 líneas. De él se
genera el analizador de léxico, de 5801 líneas, y el sintáctico, de 9519.
2.2.2. Lexer
El Lexer, como su propio nombre indica, es un analizador de léxico. Se trata de un
programa que recibe como entrada el código fuente de otro programa (secuencia de
caracteres) y produce una salida compuesta de tokens (componentes léxicos) o
símbolos. Estos tokens sirven para una posterior etapa del proceso de producción,
siendo éstos a su vez la entrada para el analizador sintáctico (en inglés Parser).
2.2.3. Parser
El analizador sintáctico es una de las partes de un compilador que transforma su
entrada en otras estructuras (comúnmente árboles), que son más útiles para el
posterior análisis y capturan la jerarquía implícita de la entrada. El analizador léxico
anteriormente descrito crea tokens de una secuencia de caracteres en entrada y son
22
estos tokens los que son procesados por el analizador sintáctico para construir la
estructura de datos, por ejemplo un árbol de análisis.
2.2.4. Instalación
El primer paso es integrar el software en nuestro programa Eclipse. Para ello
entraremos en la siguiente página: http://antlr.org/ Al acceder a la parte de descargas
buscamos la última versión que en este caso es la 3.2 y descargamos el archivo
“Complete ANTLR 3.2.jar, all tools, runtime, etc.”.
Una vez descargado es recomendable crear una carpeta, a la que le pondremos de
nombre Antlr-3.2 por ejemplo. Dentro de esta carpeta crearemos otra que se llame
“lib”, dentro de la cual guardaremos nuestro archivo .jar que acabamos de descargar.
Tal y como hicimos con la carpeta donde guardamos nuestro programa Eclipse,
haremos lo mismo con la carpeta de Antlr, guardandola en el disco duro.
El siguiente paso es arrancar nuestro programa Eclipse. Para integrar nuevo
software en Eclipse iremos a
Help > Install new software
Tenemos que buscar aquello que necesitamos instalar en nuestra versión de
Eclipse. Para ello iremos a la página principal de antlr, desde allí a “Wiki” y en la
documentación buscaremos la integración con entornos de desarrollo (Integration
with Development Eviroment). Seguiremos el link de Eclipse, seguido de ANTLR IDE. En
la zona de descargas e instalación podemos ver los requisitos del sistema para que
funcione la herramienta.
2.5 Instalación de Software
23
Al volver a la ventana de instalación de nuevo software elegimos trabajar con
“Galileo” y habrá que buscar los requisitos del sistema e instalarlos.
Estos requisitos podemos verlos en la siguiente imagen y son:
GEF
Zest
Dynamic Language Toolkit (DLTK) Core
A continuación será necesario instalar más software. Para ello haremos uso del
link que aparece justo debajo de los requisitos del sistema, en
Donwload/Install > Via Update Manager
http://antlrv3ide.sourceforge.net/updates
Este link lo añadiremos como localización en el botón “Add” de “Work with”. De
los resultados que salgan se descargarán e instalarán todos.
2.6 Requisitos de ANTLR
24
2.2.5. Configuración
En este apartado se explicará como configurar correctamente nuestro programa
ANTLR para su correcto funcionamiento en Eclipse.
En primer lugar iremos a
Window > Preferences > ANTLR
y nos aseguraremos que está marcado el “Mark generated resources as derived”.
Esta opción sirve para que el programa no nos permita modificar el código generado
por ANTLR. Tal y como se verá más adelante la herramienta ANTLR genera código Java
a raíz de código que escribimos nosotros mismos en un lenguaje especifico de esta
herramienta para la gramática. Al marcar esta opción se nos preguntará si queremos
editar el archivo ya que en cualquier momento podemos perder los cambios si
volvemos a compilar la gramática ANTLR.
Seguidamente vamos a:
ANTLR > Builder > Installed Packages > Add > Home: > Directory.
Aquí introduciremos el directorio donde guardamos la carpeta lib en la q se
encuentra el archivo .jar que se descargó al principio del punto de Instalación.
Hacemos clic en OK.
2.7 Configuración de ANTLR. Agregar archivo .jar
25
Ahora vamos a
ANTLR > Code Generator.
En caso de querer activar la siguiente opción, esta nos permitirá tener más
ordenado el código, ya que el código escrito por nosotros y el generado por ANTLR se
situarán en diferentes carpetas. Para hacer esto tendremos que marcar la opción
“Project relative folder” y le pondremos el nombre deseado, como por ejemplo
“ANTLR - Generado”.
Lo mejor en este caso es marcar también la opción “Append java package to
output folder”, que servirá para organizar el código generado con las mismas
subcarpetas que en el código original.
Existen multitud de opciones configurables para hacer nuestra tarea más sencilla.
Una de ellas es configurar la política de tabulación que se encuentra en:
ANTLR > Editor
En mi caso la he configurado a “Tabs only”, “Indentation size”=4 y “Displayed tab
size”=4. En la sección “Content Assistant” desactivaremos la opción “Enable auto
activation”. Haremos lo mismo con la opción “Enable folding” en el submenú
“Folding”.
Por último haremos uso del archivo ANTLR .jar que habíamos descargado y
guardado en “C:\ANTLR\lib”. Arrastraremos este archivo a Eclipse y lo soltaremos en la
carpeta de nuestro proyecto. Lo añadiremos al “path” haciendo clic con el botón
derecho en el archivo y activando la opción:
Build Path > Add to build Path
2.2.6. Introducción a la herramienta
Una vez realizada toda esta configuración podremos empezar a escribir nuestro
programa. Con esta configuración podemos añadir a nuestro proyecto Java la
capacidad de convertirse en un proyecto ANTLR. Para ello haremos clic con el botón
derecho del ratón sobre nuestro proyecto y marcaremos la opción:
ANTLR IDE > Add ANTLR Support
Tal y como vimos en el apartado 2.1.2.2, crearemos un nuevo paquete, dentro del
cual vamos a crear un archivo de gramática combinada.
26
Cada vez que guardemos este archivo de gramática, Eclipse compilará el archivo y
lo guardará dentro de la carpeta de código ANTLR generado. Tenemos que decirle a la
herramienta que queremos que todos los archivos que se encuentren dentro de esta
carpeta sean tratados como “Source folder”. Para ello hacemos click con el botón
derecho y marcamos lo siguiente:
Build Path > Use as Source Folder
Una vez que empecemos a escribir nos daremos cuenta que en los archivos Java
de código generado tenemos varios “Warnings”. Normalmente estas alertas no vamos
a tenerlas en cuenta nunca. Los archivos de código generado cambian
constantemente, y en caso de haber algún error en nuestra gramática este se reflejará
al compilar la misma en el archivo “.g” donde la estamos escribiendo.
Existe una herramienta que nos permitirá que estas alertas no se reflejen en los
iconos de cada archivo de nuestro proyecto. Esta es otra herramienta más para
mantener limpio y ordenado nuestro proyecto. Podemos encontrarla en la siguiente
página:
http://code.google.com/p/javadude/wiki/DynamicWorkingSets
2.8 Javadude
La página dispone del enlace del que tenemos que descargarnos la herramienta.
Asimismo también dispone de las instrucciones necesarias para la instalación. Aunque
en resumen lo único que hay que hacer es añadir el enlace
http://javadude.googlecode.com/svn/trunk/com.javadude.updatesite
a la herramienta de instalación de nuevo software de Eclipse, y seleccionar en
“Miscellaneous” la herramienta “Derived File Warning Cleaner Feature”. Remarcar que
esta herramienta sólo eliminará las alertas de los archivos marcados como derivados
de otros, y no las alertas de los que creamos nosotros.
Para añadir esta herramienta al proyecto únicamente tendremos que hacer clic
con el botón derecho del ratón sobre el proyecto, y seleccionar la opción
“Add/Remove Derived Source Warning Cleaner Nature”.
27
2.3. Visualización 3D
En este apartado se tratarán de explicar las herramientas necesarias para poder
desarrollar y visualizar la aplicación en tres dimensiones en código C++. Estas
herramientas son Mingw y ODE.
2.3.1. Mingw
Esta herramienta también conocida como MinGW32, es una implementación de
los compiladores GCC para la plataforma Win32, que permite migrar la capacidad de
este compilador en entornos Windows. Además incluye un conjunto de la API de
win32, permitiendo un desarrollo de aplicaciones nativas para esa plataforma,
pudiendo generar ejecutables y bibliotecas usando la API de Windows.
2.3.1.1. Instalación
La instalación de esta herramienta es muy sencilla, lo único que hay que hacer es
descargar el instalador y ejecutarlo. MinGW puede ser descargado gratuitamente de
su página oficial:
http://sourceforge.net/projects/mingw/
Una vez instalada la herramienta, Eclipse detectará automáticamente su
existencia y la añadirá a la lista de posibles compiladores.
2.3.2. ODE (Open Dynamics Engine)
ODE es un motor físico cuyos dos componentes principales son el motor de
simulación dinámico de cuerpo rígido y el motor de detención de colisiones. Es un
software de distribución libre bajo licencia BSD y LGPL.
2.9 ODE (Open Dynamics Engine)
En nuestro proyecto, gracias a esta herramienta, vamos a ser capaces de
representar en tres dimensiones un brazo robótico esquemático.
En caso de disponer de una versión de ODE sin compilar, tendrá que realizar los
pasos necesarios para compilarlo según su sistema operativo. Este paso no es objeto
de este proyecto, por lo que si necesita de una versión compilada, podrá referirse a la
28
documentación digital de este proyecto, donde se encuentran los archivos ODE para
Windows, o acceder a la siguiente documentación online:
http://corengine.wordpress.com/2009/02/28/como-compilar-ode-v011-en-
windows-para-el-compilador-mingw-con-premake4/
Ahí se explica de qué forma vamos a conseguir todos los archivos necesarios para
poder trabajar con ODE.
2.10 Ejemplo de visualización con ODE
2.3.2.1. Archivos necesarios
Cuando dispongamos de una versión válida de ODE localizaremos en ella los
siguientes archivos. En primer lugar necesitamos de unas determinadas librerías, estas
deben encontrarse en la carpeta “lib”, y son:
ode.dll
drawstuffd.dll
También necesitamos disponer de la carpeta include en la que deben encontrarse
los archivos .h con el mismo nombre que las librerías.
2.4. JVM (Máquina Virtual Java)
JVM (Java Virtual Machine) es una máquina virtual de proceso nativo, es decir,
ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones
expresadas en un código binario especial (el Java bytecode), el cuál es generado por el
compilador del lenguaje Java.
El código binario de Java no es un lenguaje de alto nivel, sino un verdadero código
máquina de bajo nivel, viable incluso como lenguaje de entrada para un
29
microprocesador físico. Como todas las piezas del rompecabezas Java, fue desarrollada
originalmente por Sun Microsystems.
La máquina virtual Java es una pieza fundamental en la
plataforma Java. Básicamente se sitúa en un nivel superior
al hardware del sistema sobre el que se pretende ejecutar
la aplicación, y éste actúa como un puente que entiende
tanto él bytecode, como el sistema sobre el que se
pretende ejecutar. Así, cuando se escribe una aplicación
Java, se hace pensando que será ejecutada en una máquina
virtual Java en concreto, siendo ésta la que en última instancia convierte de código
bytecode a código nativo del dispositivo final.
La gran ventaja de la máquina virtual Java es aportar portabilidad al lenguaje de
manera que desde Sun Microsystems se han creado diferentes máquinas virtuales Java
para diferentes arquitecturas y así un programa escrito en Windows puede ser
interpretado en un entorno Linux. Tan sólo es necesario disponer de dicha máquina
virtual para dichos entornos. De ahí el famoso axioma que sigue Java, "escríbelo una
vez, ejecútalo en cualquier parte".
2.4.1. Instalación
La máquina virtual de Java puede ser descargada desde su página oficial:
http://www.java.com/
Una vez descargada, el proceso de instalación es muy intuitivo, por lo que no
merece mención en esta memoria.
2.11 Logo de Java