[Jderobot] Ejes Kinect

Jose Villaran jmvillaran13 en gmail.com
Jue Jun 19 17:23:10 CEST 2014


Buenas tardes,
mi problema estaba, efectivamente, en el fichero de calibración que me
estaba desplazando el origen de coordenadas del centro de la cámara y
también realizaba rotaciones que me estaban despistando. Una pregunta Fran,
¿cómo puedo lanzar openni1Server sin ninguna calibración? Si simplemente
quito la línea del fichero de configuración (.cfg) que se encarga de
enlazar con el xml de calibración, me salta un error del tipo:

WaitAnyUpdateAll() failed.....

Gracias y un saludo
            José Manuel



El 17 de junio de 2014, 0:18, Francisco Rivas <franciscomiguel.rivas at urjc.es
> escribió:

> 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 at 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 at 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 at gsyc.es
>>> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>>>
>>
>>
>> _______________________________________________
>> Jde-developers mailing list
>> Jde-developers at 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).
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20140619/ea208b93/attachment.htm 


More information about the Jde-developers mailing list