[Jderobot] ¿Bug en progeo?

Roberto Calvo rocapal en gsyc.urjc.es
Vie Sep 6 13:42:45 CEST 2013


Genial Edu, era justo eso :-)

He estado mirando y veo que no hay nada de graphic2optical y viceversa
en las librerías, asi que lo voy a meter dentro de Progeo. 

Gracias por la explicación!

El jue, 05-09-2013 a las 20:30 +0200, Eduardo Perdices escribió:
> Hola,
> 
> si miras los cálculos que se hacen en el project son estos:
> 
>     a = RT*in;
>     out = K*a.head(3);
>     out(0) = out(0)/out(2);
>     out(1) = out(1)/out(2);
>     out(2) = 1.0;
> 
> En tu caso "a" valdría (0,0,800) y out saldría (159.5*800, 119.5*800,
> 800), que al dividir por 800 te saldría el número bien.
> 
> Después como tenemos lo de pasar de coordinadas ópticas a coordenadas
> gráficas se hace esto:
> 
>     double aux = out(0);
>     out(0) = out(1);
>     out(1) = this->rows-1-aux;
> 
> Y aquí out valdría (119.5, rows  - 1 - 159.5), si en tu caso tienes el
> 240, te sale el resultado que has puesto. La cosa es que después de
> hacer un project tienes que hacer la operación inversa, pasar de nuevo
> de coordenadas gráficas a coordenadas ópticas y de nuevo te saldrá el
> (159.9, 119.5).
> 
> Al hacer un backproject es lo contrario, primero hacer el cambio de
> coordenadas y luego llamas a backproject. Esto se hace así porque en
> progeo los valores en 2D que se toman como entrada y salida tienen
> como sistema de coordenadas el sistema x-y típico de las gráficas,
> algo así:
> 
> /\
> |
> | X
> |     Y
> ----------->
> 
> y no el sistema que se utiliza en la mayoría de imágenes que es así:
> 
>      X
> ------------->
> |
> |
> |  Y
> |
> \/
> 
> Yo particularmente creo que habría que trabajar directamente con
> coordenadas ópticas, puesto que es lo que se hace en la mayoría de los
> sitios, pero ahora mismo Progeo funciona como digo. Viene esto mejor
> explicado aquí:
> 
> http://jderobot.org/Manual-4.3#Progeo_Library
> 
> Saludos.
> 
> El 05/09/13 19:21, Roberto Calvo escribió:
> 
> > Hola,
> > 
> > Os quiero comentar un comportamiento que me estoy encontrando con
> > Progeo, a ver si a alguno más os ha pasado o es un bug de la librería.
> > 
> > Parto de la siguiente configuración de la cámara de Progeo:
> > 
> > Camera:
> > 
> >      Position: (X,Y,Z,H)=(0,0,0,0,0,0,0,0)
> >      Focus of Attention: (x,y,z,h)=(0,0,0,0,0,0,0,0)
> > 
> >      Focus DistanceX(vertical): 272,2 mm
> >      Focus DistanceY(horizontal): 272,2 mm
> >      Skew: 65,75091 
> >      Optical Center: (x,y)=(159,5 , 119,5)
> > 
> > K Matrix: 
> > 272.171       0   159.5
> >       0 272.171   119.5
> >       0       0       1
> > 
> > R&T Matrix:
> > 1 0 0 0
> > 0 1 0 0
> > 0 0 1 0
> > 0 0 0 1
> > 
> > 
> > Hasta aquí parece estar todo bien. También funciona bien el hecho de
> > usar cualquier pixel, pasar a punto 3D y ese mismo punto 3D o cualquiera
> > de su recta hacer al project y que vuelta a dar el mismo pixel.
> > 
> > El caso es que estoy teniendo problemas con el centro óptico.
> > Teóricamente cualquier punto 3D que sea del estilo (0, 0, Z) debería
> > hacer el project al centro óptico que se corresponde con el centro de la
> > imágen. El centro óptico es (159.5,119.5).
> > 
> > Sin embargo al hacer el project del punto 3D (0,0,800) me devuelve el
> > píxel (119.5, 79.5). No sé si se me está escapando algo, o es fruto de
> > algún bug o problema de memoria.
> > 
> > ¿Alguien más está trabajando con la librería de Progeo nueva?
> > 
> > 
> 
> _______________________________________________
> 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