[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