[Jderobot] Modificaciones en Geometry

Roberto Calvo rocapal en gsyc.urjc.es
Vie Ago 2 11:00:10 CEST 2013


Me parece bien, porque la abstracción que tenemos con vector* o matriz*
no es total. Si mañana cambiamos eigen por otra librería nos toca
modificar código.

Lo único es que habría que cambiar todo progeo.

A ver que comenta Alex.

El vie, 02-08-2013 a las 00:15 +0200, Eduardo Perdices escribió:
> Hola,
> 
> ¿hay alguna razón para que exista tanta cantidad de clases?, tenemos
> vector2d, vector2h, vector3d, vector3h, matriz3x3, matrix3x4, etc.
> Todas esas clases en realidad no aportan nada, ya que simplemente le
> dan otro nombre a algo que ya existe en Eigen, y el propia Eigen te da
> para ellos todo lo que quieras:
> 
> http://eigen.tuxfamily.org/1/classEigen_1_1Vector.html
> http://eigen.tuxfamily.org/1/classEigen_1_1Matrix.html
> 
> operaciones, normalizado, y un montón de historias más.
> 
> Luego, si lo que se quiere es una librería para geometría, con tener
> clases de este tipo valdría: Plane, Line2D, Line3D, Segment2D,
> Segment3D, Point2D, Point3D, y que todas ellas tiren directamente de
> Eigen o de las clases inferiores, es decir, los constructores del
> Line2D podrían ser:
> 
> Line2D(double p1x, double p1y, double p2x, double p2y);
> Line2D(Eigen::Vector2d p1, Eigen::Vector2d p2);
> Line2D(Point2D p1, Point2D p2);
> Line2D(double vx, double vy, double vz);
> Line2D(Eigen::Vector3d v);
> 
> Y el Point2D sería:
> 
> Point2D(double x, double y, double h=1.0);
> Point2D(Eigen::Vector2d p, double h=1.0);
> Point2D(Eigen::Vector3d p);
> 
> Con eso das la opción para que acepte cualquier cosa, con H o sin H.
> Por cierto, a la hora de utilizar Eigen utilizad siempre que podáis
> double, ya que hay problemas con los float entre la versión 32b y 64b
> (ahora mismo está todo el float).
> 
> Saludos.
> 
> El 01/08/13 14:08, Roberto Calvo escribió:
> 
> > Alex, le he estado dando una vuelta toda esta mañana a la librería
> > Geometry.
> > 
> > Sobre el CMakeLists.txt
> >    - He añadido cpp's que faltaban, sino fallaban las referencias cuando
> > compilabas contra la librería.
> >    - He añadido también los target link a las librerías (tinyxml GLU),
> > sino quien use libgeometry.so las tiene que añadir y no tiene sentido.
> > 
> >    - Faltan por añadir que avise de las dependencias (tinyxml, GLU,
> > eigen) y los include. Yo las he puesto a pelo en el CMakeLists pero
> > sería bueno que lo hiciera automáticamente con cmake.
> > 
> > Sobre Progeo, funciona perfecto! :-) Las pruebas al menos que tenía yo
> > siguen funcionando bien. He modificado la clase para que tenga 2
> > constructores, uno para el XML y otro para pasarle la información
> > directamente en matrices. Ahhh también he cambiado el define de la
> > cabecera que era igual que progeo1 y al estar definida no entraba en
> > progeo2.h
> > 
> > También he visto alguna otra cosa como que Matriz3x3 tiene el método
> > "getMatriz" y Matriz4x4 tiene el método "getMatrix". Deberíamos
> > unificarlo todo. Además tendríamos que usar siempre el inglés para el
> > código fuente.
> > 
> > He abierto un bug en [1] para tenerlo controlado, tenemos que dejar esta
> > librería lista para usar :-) Si quieres/queréis cuenta para el redmine y
> > poder actualizar los bugs dímelo.
> > 
> > Un saludo!
> > 
> > [1] http://sarastro.gsyc.es/issues/26
> > 
> > 
> > El mié, 31-07-2013 a las 17:40 +0200, Roberto Calvo escribió:
> > > El mié, 31-07-2013 a las 17:32 +0200, Alejandro Hernández escribió:
> > > > En principio debería de ser estable, utiliza las mismas formulas
> > > > matemáticas que progeo, pero en lugar de GSL, utiliza Eigen. No la he
> > > > testeado lo suficiente para para asegurarte 100% que funciona todo
> > > > correctamente. El parseador de XML es el mismo en ambas versiones.
> > > Ok! Pues le voy a dedicar un rato a todo esto, y voy a integrarlo todo
> > > con geometry.
> > > 
> > > Te cuento si veo algún problema.
> > > 
> > > > 
> > > > 
> > > > 
> > > > Alejandro Hernández Cordero
> > > > 
> > > > 
> > > >    
> > > > 
> > > > 
> > > > 
> > > > Visit and play my Curriculum vitae
> > > > -> https://googledrive.com/host/0BytBL_SySiIjX19Pd1o5dlZaRHc/Game.html
> > > > 
> > > > 
> > > > El 31 de julio de 2013 17:29, Roberto Calvo <rocapal en gsyc.urjc.es>
> > > > escribió:
> > > >         El mié, 31-07-2013 a las 15:54 +0200, Alejandro Hernández
> > > >         escribió:
> > > >         > Hola,
> > > >         >
> > > >         >
> > > >         > Siéntete libre de mejorar la biblioteca, cuanto más completa
> > > >         este
> > > >         > mucho mejor.
> > > >         >
> > > >         >
> > > >         > Ahora mismo utilizamos los vectores math::vector2 (o
> > > >         math::vector2H en
> > > >         > homogeneas), igual para el caso de puntos 3D. Estas clases
> > > >         utilizan
> > > >         > Eigen. Ahora mismo solo existe vector y no la clase punto.
> > > >         Puedes
> > > >         > crearte una clase nueva que sea punto en esencia tiene que
> > > >         ser muy
> > > >         > parecida a la del Vector.
> > > >         
> > > >         
> > > >         Genial, pues creo que modificando la clase Segmento tendré
> > > >         suficiente,
> > > >         porque veo que la nueva implementación de progeo utiliza
> > > >         Vector3H y
> > > >         Vector2H así que no es necesario crearse una nueva clase para
> > > >         punto3D
> > > >         ¿no crees?
> > > >         
> > > >         int Progeo::project(math::Vector3H in, math::Vector2H &out)
> > > >         
> > > >         Por cierto, sobre la la librería de Progeo que está dentro de
> > > >         geometry
> > > >         ¿es estable? Es la siguiente versión de progeo ¿verdad? Se
> > > >         puede
> > > >         integrar sin problemas o aún está por desarrollar.
> > > >         
> > > >         Veo que para inicializar hace falta el fichero XML ¿donde está
> > > >         definido
> > > >         el formato? Aún así, casi seguro que le añado un par de
> > > >         métodos para
> > > >         pasarle directamente las matrices de posición, K y RT para
> > > >         utilizarla
> > > >         directamente desd código sin tener que generar el fichero.
> > > >         
> > > >         Ahora mismo tengo una parte del calibrador funcionando con
> > > >         progeo
> > > >         antigua, dime cuanto de estable es esta y ya lo paso todo para
> > > >         que
> > > >         utilice geometry.
> > > >         
> > > >         Un saludo!
> > > >         
> > > >         
> > > >         >
> > > >         > Alejandro Hernández Cordero
> > > >         >
> > > >         >
> > > >         >
> > > >         >
> > > >         >
> > > >         >
> > > >         > Visit and play my Curriculum vitae
> > > >         > ->
> > > >         https://googledrive.com/host/0BytBL_SySiIjX19Pd1o5dlZaRHc/Game.html
> > > >         >
> > > >         >
> > > >         > El 30 de julio de 2013 16:33, Roberto Calvo
> > > >         <rocapal en gsyc.urjc.es>
> > > >         > escribió:
> > > >         >
> > > >         >         Hola,
> > > >         >
> > > >         >         He desarrollado un par de métodos para trabajar con
> > > >         segmentos
> > > >         >         en 3D
> > > >         >         porque no lo he encontrado en geometry. Básicamente
> > > >         es para
> > > >         >         dado 2puntos
> > > >         >         3D, obtener la recta, y luego sobre la recta hallar
> > > >         puntos con
> > > >         >         una Z
> > > >         >         concreta y saber si un punto dado la contiene en esa
> > > >         recta 3D.
> > > >         >
> > > >         >         Alex, ¿como es la mejor manera de integrarlo? ¿Lo
> > > >         añado dentro
> > > >         >         de
> > > >         >         Segmento? ¿Que tipo de datos usáis para representar
> > > >         puntos en
> > > >         >         3D, el
> > > >         >         HPoint3D de progeo o algún otro?
> > > >         >
> > > >         >         Me ha dicho Edu que andáis modificándola para
> > > >         unificar con
> > > >         >         Eigen ¿ves
> > > >         >         algún problema en que añada ya el código o espero?
> > > >         >
> > > >         >         Ya me contáis.
> > > >         >         Un saludo!
> > > >         >
> > > >         >
> > > >         >         --
> > > >         >         Roberto Calvo Palomino        | Robotics Lab (GSyC)
> > > >         >         R&D Android Mobile Engineer   | Universidad Rey Juan
> > > >         Carlos
> > > >         >
> > > >         >         Twitter: @rocapal
> > > >         >         Linkedin: http://www.linkedin.com/in/rocapal
> > > >         >
> > > >         >
> > > >         >
> > > >         
> > > >         --
> > > >         Roberto Calvo Palomino        | Robotics Lab (GSyC)
> > > >         R&D Android Mobile Engineer   | Universidad Rey Juan Carlos
> > > >         
> > > >         Twitter: @rocapal
> > > >         Linkedin: http://www.linkedin.com/in/rocapal
> > > >         
> > > >         
> > > > 
> > > > 
> 
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers

-- 
Roberto Calvo Palomino        | Robotics Lab (GSyC) 
R&D Android Mobile Engineer   | Universidad Rey Juan Carlos

Twitter: @rocapal 
Linkedin: http://www.linkedin.com/in/rocapal



More information about the Jde-developers mailing list