[Jderobot] Ejes Kinect

Francisco Rivas franciscomiguel.rivas en urjc.es
Mar Jun 17 00:18:49 CEST 2014


Buenas,

si no introduces ninguna calibración al componente openni1Server él utiliza
una calibración por defecto que es la siguiente:
        this->cameras[cam].fdistx=515;
        this->cameras[cam].fdisty=515;
        this->cameras[cam].v0=h/2;
        this->cameras[cam].u0=w/2;
        this->cameras[cam].position.X=0;
        this->cameras[cam].position.Y=0;
        this->cameras[cam].position.Z=0;
        this->cameras[cam].foa.X=0;
        this->cameras[cam].foa.Y=1;
        this->cameras[cam].foa.Z=0;
       this->cameras[cam].roll=0;

Básicamente lo que hace es asumir que el sensor está ubicado en la posición
(0,0,0) y que su foa es (0,1,0) con un roll=0.
Si el sensor esta de situado de forma paralela a lo que estás capturando, Y
sería la distancia al sensor, X sería la posición (izqueirda-derecha) y Z
la altura. Ojo que estos valores no son realmente así... pero para darte
una idea de cómo se ubica el sensor y cómo se hacen las proyecciones te
puede valer.


un saludo,
Fran.




El 17 de junio de 2014, 0:07, Jose Villaran <jmvillaran13 en gmail.com>
escribió:

> Buenas noches,
> lo primero muchas gracias a los dos por vuestra rápida respuesta. Respecto
> a lo que me comentaba Edgar, en principio intentaré utilizar la nube de
> puntos en vez de la imagen de profundidad porque tengo que realizar varias
> transformaciones sobre ellos y a priori me parece más sencillo por estar
> los puntos ya calculados.
>
> Respecto a los ejes, con relación a lo que planteaba Fran, he pintado los
> puntos de la nube que da el componente openni1server (kinect real) sobre un
> lienzo 2D para ver la forma efectiva que tiene de representarlos. Para mi
> sorpresa, estoy prácticamente seguro que la disposición que tienen los ejes
> es la siguiente:
>
> - Origen: esquina inferior derecha.
>      - Eje X: apuntando hacia la izquierda.
>      - Eje Y: apuntando hacia dentro (profundidad).
>      - Eje Z: apuntando hacia dentro.
>
> Seguiré trabajando sobre ello y cualquier cosa que aclare la comentaré
> para cerrar el hilo de forma clara.
>
> Muchas gracias otra vez,
> José Manuel
>
>
>
>
> El 16 de junio de 2014, 13:13, Francisco Pérez <f.perez475 en gmail.com>
> escribió:
>
> Hola Jose,
>>
>> hasta hace poco he estado pegándome con el sensor simulado de kinect, y
>> esto
>> es lo que más o menos he sacado de la experiencia. El sensor de kinect
>> trabaja con imágenes en color (RGB) y profundidad (DEPTH) y, utilizando la
>> información que nos ofrecen las imágenes en profundidad se puede construir
>> una nube de puntos en 3D que represente lo que el sensor está percibiendo.
>> Al tratarse ambas de imágenes en 2D, el sistema de coordenadas que se
>> utiliza es el mismo que utiliza tu monitor, es decir:
>>
>>      - Origen: esquina superior izquierda (origen del sensor).
>>      - Eje X: desde el origen apuntando hacia la derecha.
>>      - Eje Y: desde el origen apuntando hacia abajo.
>>      - Eje Z: desde el origen apuntando hacia dentro de la pantalla.
>>
>> O si lo quieres más claro (como el sistema de coordenadas tradicional),
>> rotando 180º en el eje X y trasladando el origen a la esquina inferior
>> izquierda, tendrías:
>>
>>      - Origen: esquina inferior izquierda (origen del sensor).
>>      - Eje X: mismo sitio.
>>      - Eje Y: apuntando hacia arriba.
>>      - Eje Z: apuntando hacia fuera de la pantalla.
>>
>>
>> Aquí [1] tienes una imagen con el kinect simulado en gazebo y los ejes
>> superpuestos según mis pruebas.
>>
>> <
>> http://jderobot-developer-list.2315034.n4.nabble.com/file/n4642294/ejes_kinect.png
>> >
>>
>> En cuanto a que las coordenadas no toman valores negativos eso depende de
>> dónde estén los objetos que el kinect está percibiendo. Lo que sí es
>> seguro
>> que el valor de profundidad Z nunca podrá tomar valores negativos, ya que
>> eso supondría que el objeto está detrás del kinect, por lo que éste no
>> podría "verlo". En cuanto a la X y la Y, si los objetos que el kinect está
>> percibiendo están en el un cuadrante distinto al cuarto (según el sistema
>> de
>> referencia tradicional), sí podrán tomar valores negativos. En la imagen
>> que
>> enlazo antes [1] tienes un esquema con todo eso indicado.
>> Repito, todo esto lo baso en mi experiencia con el sensor simulado y
>> habiendo hecho pruebas sobre el simulador, no he llegado a investigar si
>> el
>> sensor real funciona exactamente igual, ya que JdeRobot utiliza su propio
>> algoritmo para definir la nube de puntos a partir de los datos de las
>> imágenes en profundidad, apoyándose en la librería pcl (Point Cloud
>> Library).
>>
>> [1] http://jderobot.org/store/fperez/uploads/images/ejes_kinect.png
>>
>>
>>
>> --
>> View this message in context:
>> http://jderobot-developer-list.2315034.n4.nabble.com/Jderobot-Ejes-Kinect-tp4642293p4642294.html
>> Sent from the Jderobot Developer List mailing list archive at Nabble.com.
>> _______________________________________________
>> Jde-developers mailing list
>> Jde-developers en gsyc.es
>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>
>
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>
>


-- 
------------------------------------------------------------------
Linkedin: linkedin.com/in/fmrivas

Laboratorio de Análisis del Movimiento, Biomecánica, Ergonomía y Control
Motor (LAMBECOM).
Departamento de Fisioterapia, Terapia Ocupacional, Rehabilitación y
Medicina Física.
Universidad Rey Juan Carlos (URJC).
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20140617/7b50580a/attachment.htm 


More information about the Jde-developers mailing list