http://www.tree3d.net

http://www.tree3d.net
tree3d es un software completo para la elaboración del inventario forestal surgido de la colaboración entre Igo Software, la Consejería de Industria, energía y Medio Ambiente de la Junta de Extremadura, y la Universidad de Extremadura.
Con este proyecto se pretende realizar el inventario forestal de manera más rápida y económica.

Como características especiales de este trabajo tenemos:
– Herramienta para realizar el inventario previo.
– Visualizador en 3D de datos LIDAR
– Cálculo automático del volumen y clasificación de la madera
– Herramienta para dispositivos móviles para facilitar el trabajo de campo
– Datos vertidos en un SIG en 3D

Algunos vídeos del proyecto son:


abril 26, 2010 at 11:25 am Deja un comentario

Conecta-t canal Extremadura. Igo Software

Programa conecta-t del Canal Extremadura. Igo Software y realidad virtual

[Vimeo 10432337]

marzo 25, 2010 at 3:18 pm 2 comentarios

Girona 2010. Comunicación. Desarrollo de aplicaciones SIG 3D personalizadas.

Las jornadas de Girona se acercan, esperamos que sean tan divertidas y productivas como siempre. Esta es la comunicación que hemos enviado este año:

Desarrollo personalizado de aplicaciones SIG 3D

M. de la Calle Alonso(1),D.Gómez-Deck (1),V. Olaya Ferrero (2)

(1) IGO SOFTWARE. C/Santiago Caldera 4 Cáceres. mdelacalle@igosoftware.es

(2) Universidad de Extremadura, volaya@unex.es

Resumen

En los últimos años la proliferación de aplicaciones 3D en SIG ha sido enorme, desde la aparición de Google Earth el usuario está familiarizado con entornos 3D. Por otra parte lo ordenadores con aceleración 3D son comunes en la actualidad y el acceso a banda ancha es prácticamente generalizado, ademas cada vez hay mayor cantidad de datos públicos que pueden ser utilizados por clientes SIG que sean capas de recibir datos de internet.Hay varias librerías apropiadas para la realización de este tipo de aplicaciones. IGO SOFTWARE a comenzado a desarrollar aplicaciones 3D con las librería Nasa World Wind SDK para java.Decidimos usar estar librerías por su robustez, sencillez, cantidad de ejemplo, estar hechas en java (nos permite su unión a muchas librerías SIG) y su uso de caché local.

Las aplicaciones desarrolladas en 3D no sólo son visualmente más atractivas, también nos ofrecen más información que el SIG clásico en 2D. Gracias a la integración de librerías como SEXTANTE ahora es posible también realizar análisis.

En un futuro se espera poder desarrollar también algoritmos de análisis en 3D usando dicha plataforma.Por otra parte, llevamos desde hace algunos años desarrollando aplicaciones para el tratamiento de nubes de puntos proveniente de Láser Escáner y LIDAR, esta plataforma es ideal para mostrar nubes de puntos, por lo que es perfecta para visualizar nubes de puntos georreferenciadas.

Mostraremos ejemplos de aplicaciones programadas con estas librerías y las posibilidades que vemos de cara a un futuro a este tipo de desarrollos

Key words: 3D, LIDAR, SEXTANTE, NASA WORLD WIND, LÁSER ESCÁNER, JAVA, JOGl, EUCLID

Introducción

Uno de los próximos pasos en la computación debería ser la generalización del uso del 3D para todas la aplicaciones que lo permitan. El mundo SIG no es ajeno a ello, y lo que comenzó por el uso de globos 3D donde representamos información 2D debe evolucionar a que los SIG sean capaces de representar  y analizar la información en 3D.

Nuestros planes futuros pasan por la elaboración de librerías genéricas para el manejo de geometrías en 3D y por su visualización en productos SIG tales como Nasa World Wind

Euclid

Es un Framework para manejar geometrías multidimensional y multiprecisión Es decir podemos trabajar con él indistintamente típicamente de las dimensiones en que tengamos los datos 2D – 3D y de su precisión Euclid se encarga de gestionar todo de manera que siempre los cálculos sean correctos.
Se han desarrollado multitud de optimizaciones que nos permiten por ejemplo construir un octGrid con 127 millones de puntos con color estas optimizaciones se han hecho en dos sentidos:

  1. Optimizar el uso de la memoria. Uso apropiado de las Clases de java. (Clases Buffer)
  2. Aprovechamiento de la arquitectura de múltiples núcleos de los procesadores de ultima generación usando las posibilidades de programación multihilo de java.

Un ejemplo de como funciona euclid son las clases de generalización de una bola n-dimensional, esta sería la clase n-Ball su especialización a 2D sería Disk y la especialización a 3D sería Ball


Figura 1: Euclid

Un método que funcionaría en las n-dimensiones podría ser:

public double distanceToBoundary(final VectorT point)

{

return center.distance(point) – radius;

}

Este método devolvería para cualquier dimensión la distancia al borde.

Hay muchos ejemplos de algoritmos u operaciones que pueden son multidimensionales, EUCLID nos abstrae de ello y nos permite trabajar con uno u otra.

S3xtante

Sextante (Sistema Extremeño de Análisis Territorial , http://sextantegis.blogspot.com/). La primera aplicación de Euclid ha sido hacer que funcionen en n-dimensiones los algoritmos de Sextante que fueran n-dimensionales. Haciendo cambios muy pequeños en los algoritmos, es decir, simplemente implementando Euclid y trabajando con operaciones de nuestro framework de geometrías estos pasan a poder ser usados en 3D sin ningún tipo especial de cambio.

Un ejemplo sencillo en este sentido lo encontramos en el clasico buffer o zona de influencia. Si tomamos, por ejemplo, un segmento lineal (una linea con tan sólo 2 nodos, uno inicial y otro final), el buffer calculado para una distancia dada seria un rectángulo de longitud la misma que el segmento y de altura el doble que la distancia de influencia. Llevando este concepto a 3D el resultado sería un cilindro de radio dicha distancia y altura la longitud del segmento. De igual modo puede extenderse para otras figuras mas complejas, siendo siempre el resultado una nueva figura tridimensional.

Cuando un algoritmo no es multidimensional, el Euclid no es suficiente para solucionar la nueva tarea. Este es el caso, por ejemplo, de los algoritmos de interpolación, que en lugar de generar capas raster (2D), ahora han de generar volúmenes raster (sustituir píxeles por voxels). El uso de Euclid soluciona la entrada de datos, puesto que estos son vectoriales, pero los resultados, que no son de tipo vectorial, no pueden gestionarse de igual modo. El algoritmo de interpolación, por su parte, al no estar implementado en la librería, debe modificarse igualmente

Aplicaciones personalizadas. Framework 3D.

Las aplicaciones SIG 3D que vamos a programar pueden ser muy distintas, pero su arquitectura básica es la siguiente:

GeoTools → Acceso a datos SIG

Proj4 → Manejo de proyecciones

Euclid → Geometrías

S3xtante → Análisis

Nasa World Wind → Visualización

Según los requerimientos pueden incluirse más elementos a la arquitectura pero estas 5 librerías suelen ser el mínimo común entre todas ellas.

Figura 2: Arquitectura

El visualizador (Nasa World Wind) tiene algunas características que lo hacen una herramienta imprescindible:

  • Uso del caché local. Acelera muchísimo la experiencia de usuario, además se pueden distribuir las aplicaciones con su caché de manera que todo va muy rápido.
  • Fácil de implementar un applet.

También cuenta con algunos inconvenientes como es que usa JOGL en una versión que ya no está en uso, además este proyecto ha sido abandonado por SUN y su API ha cambiado enormemente en las últimas versiones lo que dificulta enormemente el desarrollo en openGL

Playas 3D

Aplicación típica que muestra datos de usuario, permite moverse por toda Andalucía y visualizar los perfiles de aguas de baño de las playas de esa comunidad. Tiene un buscador de playas y es una aplicación muy sencilla

Figura 3: Playas 3D

Sig Histórico

Este desarrollo es bastante simple pero tiene el interés de introducir la variable temporal en el SIG.

Figura 4: SIG Histórico

Visor LIDAR 3D

No existen visores LIDAR en 3D dentro del panorama OpenSource siendo nubes de puntos 3D, con este visualizador podremos ver estas nubes y diseñar herramientas para trabajar con esa nube y visualizarlas en 3D en el acto. Este visor es experimental totalmente y para él se han utilizado numerosas optimizaciones, ya que los datos LIDAR suelen ser muy pesados.

Se utilizan técnicas como LOD (Level of Detail) y se llevan al límite las capacidades de visualización de Nasa World Wind y JOGL

Conclusiones

Creemos que el uso de 3D está especialmente indicado para muchas actividades que realizan los usuarios SIG en la actualidad. Dentro del panorama opensource, como se puede ver en esta comunicación, tenemos herramientas suficientes para construir una arquitectura que nos permite hacer aplicaciones SIG personalizadas. Por otra parte, aunque existe estas librerías, vimos también que cuando hemos querido empezar a desarrollar herramientas de análisis, no teníamos todo lo que necesitábamos por lo que ha habido que implementar librerías para ello.

febrero 24, 2010 at 7:03 am Deja un comentario

Scaner Móvil Autónomo Robotizado

Desde principio de año estamos colaborando con el laboratorio de robótica de la Universidad de Extremadura (ROBOLAB) y la empresa INGEOCAR en un proyecto de Investigación Financiado por la Junta de Extremadura y ya empezamos a ver los primeros prototipos.

El proyecto surge de la necesidad de obtener modelos 3D de manera rápida y con gran calidad para múltiples necesidades tales como:

  • Mecanismo de visualización, estudio y seguimiento temporal de monumentos histórico-artísticos, obras civiles, etc.
  • Mecanismo de investigación y registro en actividades arqueológicas.
  • Fuente de información de muy alta calidad para diseño y restauración arquitectónica, ya que los modelos evacuados permiten la inclusión (total o parcial) de otros modelos métricos sintéticos (via CAD) o adquiridos/generados por otras fuentes.
  • Fuente de información para la creación de productos visuales interactivos como sistemas de información, videojuegos, aplicaciones de entornos virtuales interactivos, realidad aumentada, etc

El proyecto consiste en el diseño y desarrollo de un sistema móvil provisto de un sistema inercial (INS) asociado a un GPS, capaz de captar datos mixtos (Escáner Láser (ahí es donde entramos nosotros) y vídeo, es decir un robot autónomo con un un Escáner Láser encima.

Por ahora se está diseñando la plataforma móvil sobre la que irá el equipo, tiene que cumplir ciertos requerimientos para poder andar por las ciudades (subir bordillos y cosas así) y se ha decidido diseñarlo y fabricarlo desde 0.

Las imágenes del prototipo son:

El diseño básico consiste en dos módulos:

Sistema de adquisición de datos:

  • Subsistema 1 Grupo de Cámaras Point Grey Research calibradas y distribuidas en el forntal del vehículo con el mínimo solape y conectadas con un ordenador abordo que almacenará datos 2D en disco.
  • Subsistema 2. Módulo de captura de datos Láser.
  • Subsistema 3. INS/GPS que determina la orientación

Sistema de proceso de datos y generación del modelo 3D. Básicamente en este módulo con todos su submódulos se integrarán datos 2d Y 3d y por procesado software se obtendrán todos los productos esperados:

  1. Modelos de nubes de puntos coloreadas (Escáner)
  2. Modelos de mallas (proceso de triangulación y procesado de nubes de puntos apoyados en los datos inerciales y los datos 2D.
  3. Modelos texturizados (las texturas se obtienen de las cámaras)

Todos estos modelos quedan georeferenciados de manera automática por el módulo INS/GPS.

Uno de los problemas que se intentará resolver es todo lo que supone el proceso de la gran cantidad de datos que captura el escáner láser, ese campo es donde IGO SOFTWARE participará más activamente, aplicaremos todos los conocimientos que hemos ido adquiriendo en el proceso de nube de puntos a lo largo del último año y medio y con ayuda de el grupo de robótica de la Universidad esperamos construir un prototipo que se muestre rápido y eficiente a la hora de capturar modelos de datos 3D multirresolución de muy alta precisión

febrero 20, 2010 at 2:28 pm Deja un comentario

Simulador de poda de frutales. 3D

[Vimeo 9400915]

El simulador de poda de frutales es una aplicación que hemos terminado recientemente, que se compone de dos partes principales, una de contenidos y otra de simulación. Fue realizada para el SEXPE, en concreto para el Centro de Formación Profesional de Don Benito, quienes necesitaban una aplicación con la que pudieran explicar a sus alumnos, de una manera práctica, cómo podar árboles frutales, sin tener que esperar a una estación del año en concreto.

Los trabajos comenzaron el año pasado y estamos acabando de implantar  la herramienta en las instalaciones de Don Benito, para que sus alumnos puedan empezar a utilizarla y aprender las diferentes técnicas de poda de frutales que se usan en la actualidad, al tiempo que podrán consultar información teórica, albergada en un apartado de contenidos.

El desarrollo de esta aplicación se ejecutó en diversas fases, la primera de ellas fue la de documentación, durante la cual contamos con la colaboración de un experto en poda que además de sus conocimientos prácticos, nos brindó valiosa información. También se utilizó bibliografía.

Una vez recopilada toda la documentación se dio paso a la siguiente fase, en la que se diferenciaron dos equipos. Uno de ellos era el encargado de la simulación, su finalidad era desarrollar una herramienta en 3d que simulara la poda de árboles frutales de pepita y hueso, durante sus tres primeros años, utilizando los tipos de poda más representativos: Poda de Producción y Poda de Formación (Palmeta y Vaso).

Unidad de Simulación:

Se trata de un mundo virtual en 3D, parecido a un videojuego, que representa un campo de árboles frutales. En él se pueden practicar los pasos más importantes de la poda, observando en directo su efecto sobre el crecimiento del árbol.

Para poder observar los efectos de la poda en el árbol, hemos desarollado un modelo de crecimiento, los árboles crecerán dependiendo de factores reales, hemos desarrollado un simulador de crecimiento de árboles

Éste tiene en cuenta tanto los cortes que hace el usuario como los efectos de la luz sobre el crecimiento del árbol, es decir que las ramas crecen en dirección de la luz. También se simula el efecto de sombras, asi que ramas que reciben poca luz van a crecer menos. Como todas las simulaciones , nuestro modelo sigue siendo una aproximación, dado a la complejidad de los procesos reales y a la necesidad de calcular el crecimiento de un árbol entero de la manera más rápida posible.

Para representar los árboles en 3D. Al final decidimos usar Panda3D, una 3D game engine desarollado por Disney para su línea de videojuegos que esta siendo mantenido y ampliado constantemente por Carnegie Mellon University. Panda3D puede ser usado con Python, lo que permite un desarollo facil y rápido, mientras sus funcionalidades de bajo nivel están implementadas en C, aumentando de esa manera la velocidad, un factor crucial para los videojuegos. La engine ofrece todo que se necesita para el desarollo de mundos 3D y videojuegos, grafos de escnea, I/O, audio, soporte de shaders, la posibilidad de importar modelos 3D de diferentes formatos (Blender, Maya, …), detection de colisiones y hasta física. También incluye herramientas de analisis de performance y una librería de widgets para crear interfacaces simples. No obstante, teniamos que integrar un par de cosas para tener toda la funcionalidad deseada, entre ellos una librería para poder utilizar la Wiimote de Nintendo y otro framework de widgets para integrar los datos de la parte teórica, que vienen en formato html.
La aplicación final ofrece en total 24 escenarios diferentes: dos tipos de poda (vaso y palmeta) del primer, segundo y tercer a√±o en cuatro especies de árboles frutales (melocotonero, manzano, ciruelo, peral). Las especies de árboles se distinguen tanto por sus propiedades de crecimiento como por su modelo visual.

Unidad de Contenidos:

Por su parte, el equipo de documentación se encargó de la producción de la parte de la herramienta destinada a la transmisión de la información teórica. En la que se plasmaron de manera didáctica diferentes contenidos propios de estos cursos.

Al terminar la fase de documentación, toda la información se organizó en un “árbol de contenidos”, formado por 3 bloques principales, divididos a su vez en tres temas cada uno:

  1. Conocimientos Previos: Morfología y Fisiología Frutal; Equipos y Herramientas de Poda y Principios Generales de Poda.
  2. Poda de Formación: Descripción; Formaciones en Volumen y Formaciones Planas.
  3. Poda de Producción: Descripción; Frutales de Hueso y Frutales de Pepita

Estos temas estaban compuestos por sus correspondientes contenidos, los cuales tienen tanto información teórica como gráfica, bien sean fotos o ilustraciones, dependiendo de lo que conviniera más al contenido en concreto.

Esta parte de la herramienta está destinada a la consulta por parte del alumno cuando practica con las simulaciones o en cualquier otro momento que necesite acceder a esta información.

En los próximos días esperamos poder liberar todo lo relacionado (estamos pendientes del permiso del promotor del proyecto) con la poda 3D

El curso de poda será liberado con licencia Creative Commons y el software con licencia aún por determinar pero en todo caso libre.

Publicaremos en el blog cuando esté disponible

febrero 13, 2010 at 8:43 am 24 comentarios

CISL 09 Cáceres

Bueno, pues parece que esta vez jugamos en casa y tenemos un evento espectacular aquí mismo . Estaremos en la Conferencia Internacional de Software Libre durante los días 1 al 4 de diciembre. Hemos tenido suerte y hemos resultado ganadores de un concursito que realizó la Junta de Extremadura y el CENATIC y tendremos un stand en la conferencia. Desde aqui invitamos a todo el que se quiera pasar a ver las cosas que hacemos.
Que pena que no la hagan siempre aqui!!

noviembre 29, 2009 at 9:03 am 1 comentario

Aplicaciones SIG personalizadas en 3D

Hemos desarrollado nuestra primera aplicación SIG personalizada sobre el SDK de java de Nasa World Wind, estas librerías nos permiten usar de manera muy cómoda un globo 3D para representar información geográfica sobre él. Hay algunas librerías más que permiten hacer esto, privativas y libres, pero WW es la que más cómodo nos ha resultado para trabajar sobre ella.

Son unas librerías completas con gran cantidad de ejemplos en los que está hecho casi todo lo que se puede necesitar en una aplicación de este tipo. Las librerías funcionan sobre JOGL, que un port directo de las librerías gráficas OpenGL, lo que nos permite tocar e l 3d desde java a bastante bajo nivel. Una de las cosas que más nos han gustado ha sido ver como usa el caché local, cada zona que se visita, queda toda la información guardada en la máquina cliente, siendo realmente rápido el acceso a todos los datos en una segunda visita.

También hay algunos problemas que pretendemos abordar más adelante. No hay una forma suficientemente buena aún para mostrar información vectorial, la más fácil es tomarla de servidores WMS, pero no siempre están disponibles los datos del usuario, más adelante, esperamos poder hacerlo, mientras hay algún proyecto que ha hecho cosas parecidas, aunque parece parado, este proyecto es GEOWIND, al menos revisando su código se puede aprender bastante, pero no está listo para hacer ningún producto basándonos en este código.

La aplicación que hemos desarrollado, se encarga de mostrar los perfiles de baño de las playas de andalucía, ha sido desarrollado para la empresa Infraeco y el cliente final es la Consejería de Medio Ambiente de la Junta de Andalucía.

Pongo un pequeño vídeo de su funcionamiento, este resultado se ha conseguido con menos de dos semanas de desarrollo.

[Vimeo 7372384]

noviembre 2, 2009 at 7:44 am 2 comentarios

Entradas antiguas Entradas recientes


Entradas recientes

Blog Stats

  • 69,116 hits

Top Clicks

  • Ninguna